gamegold 6.5.0 → 6.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -234,17 +234,17 @@ let r=i(0);var a=i(13);let s=i(25),n=i(70),o=i(68),p=i(8),d=i(31),h=i(79),l=i(45
234
234
  */
235
235
  let r=i(0),a=i(42),s=i(2),n=i(29),o=i(25),p=i(30);class d{constructor(e){if(!(this instanceof d))return new d(e);this.level=d.levels.NONE,this.colors=d.HAS_TTY,this.console=!0,this.shrink=!0,this.closed=!0,this.closing=!1,this.$filename=null,this.stream=null,this.contexts=Object.create(null),this.locker=new o,this.refreshTimestamp(),e&&this.set(e)}refreshTimestamp(){var e=`${(e=new Date).getFullYear()}.${e.getMonth()+1}.`+e.getDate();return!(this.hisTimestamp&&this.hisTimestamp==e||(this.hisTimestamp=e,0))}get filename(){return p.join(this.$filepath,this.hisTimestamp+"_"+this.$filename)}set(e){r(e),r(this.closed),"string"==typeof e?this.setLevel(e):(null!=e.level&&(r("string"==typeof e.level),this.setLevel(e.level)),null!=e.colors&&d.HAS_TTY&&(r("boolean"==typeof e.colors),this.colors=e.colors),null!=e.console&&(r("boolean"==typeof e.console),this.console=e.console),null!=e.shrink&&(r("boolean"==typeof e.shrink),this.shrink=e.shrink),null!=e.filename&&(r("string"==typeof e.filename,"Bad file."),this.$filename=e.filename),null!=e.filepath&&(r("string"==typeof e.filepath,"Bad file."),this.$filepath=e.filepath))}async open(){var e=await this.locker.lock();try{return await this._open()}finally{e()}}async _open(){this.$filename&&(this.stream||a.unsupported||(this.shrink&&await this.truncate(),this.stream=await l(this.filename),this.stream.once("error",this.handleError.bind(this)))),this.closed=!1}async close(){var e=await this.locker.lock();try{return await this._close()}finally{e()}}async _close(){if(null!=this.timer&&(n.clearTimeout(this.timer),this.timer=null),a.unsupported)this.closed=!0,this.stream=null;else{if(this.stream){try{this.closing=!0,e=this.stream,await new Promise((t,i)=>{let r=()=>{e.removeListener("error",a),e.removeListener("close",s)},a=e=>{r(),i(e)},s=()=>{r(),t(e)};e.removeAllListeners("error"),e.removeAllListeners("close"),e.once("error",a),e.once("close",s),e.close()})}finally{this.closing=!1}this.stream=null}var e;this.closed=!0}}async truncate(){if(this.$filename&&!a.unsupported){let s;r(!this.stream);try{s=await a.stat(this.filename)}catch(e){if("ENOENT"===e.code)return;throw e}var e,t,i=d.MAX_FILE_SIZE;s.size<=i+i/10||(this.debug("Truncating log file to %d bytes.",i),e=await a.open(this.filename,"r+"),t=Buffer.allocUnsafe(i),await a.read(e,t,0,i,s.size-i),await a.ftruncate(e,i),await a.write(e,t,0,i,0),await a.close(e))}}handleError(e){try{this.stream.close()}catch(e){}this.stream=null,this.retry()}async reopen(){var e=await this.locker.lock();try{return await this._reopen()}finally{e()}}async _reopen(){if(!this.stream&&!this.closed&&!a.unsupported){try{this.stream=await l(this.filename)}catch(e){return void this.retry()}this.stream.once("error",this.handleError.bind(this))}}retry(){r(null==this.timer),this.timer=n.setTimeout(()=>{this.timer=null,this.reopen()},1e4,this)}setFile(e){r("string"==typeof e),r(!this.stream,"Log stream has already been created."),this.$filename=e}setLevel(e){e=d.levels[e.toUpperCase()],r(null!=e,"Invalid log level."),this.level=e}error(...e){var t;this.level<d.levels.ERROR||((t=e[0])instanceof Error?this.logError(d.levels.ERROR,null,t):this.log(d.levels.ERROR,null,e))}warning(...e){var t;this.level<d.levels.WARNING||((t=e[0])instanceof Error?this.logError(d.levels.WARNING,null,t):this.log(d.levels.WARNING,null,e))}info(...e){var t;this.level<d.levels.INFO||((t=e[0])instanceof Error?this.logError(d.levels.INFO,null,t):this.log(d.levels.INFO,null,e))}debug(...e){var t;this.level<d.levels.DEBUG||((t=e[0])instanceof Error?this.logError(d.levels.DEBUG,null,t):this.log(d.levels.DEBUG,null,e))}spam(...e){var t;this.level<d.levels.SPAM||((t=e[0])instanceof Error?this.logError(d.levels.SPAM,null,t):this.log(d.levels.SPAM,null,e))}log(e,t,i){this.closed||this.level<e||(this.writeConsole(e,t,i),this.writeStream(e,t,i))}context(e){let t=this.contexts[e];return t||(t=new h(this,e),this.contexts[e]=t),t}writeConsole(e,t,i){var a,n=d.levelsByVal[e];if(r(n,"Invalid log level."),!this.console)return!1;if(!process.stdout){let r=`[${n}] [${s.dataOfUTC()}] `;return t&&(r+=`(${t}) `),"object"==typeof i[0]?e===d.levels.ERROR?console.error(r,i[0]):console.log(r,i[0]):(r+=s.format(i,!1),e===d.levels.ERROR?console.error(r):console.log(r),!0)}let o;return o=this.colors?(a=d.styles[e],r(a),`[${a}m[${n}] [${s.dataOfUTC()}] `):`[${n}] [${s.dataOfUTC()}] `,t&&(o+=`(${t}) `),o=o+s.format(i,this.colors)+"\n",(e===d.levels.ERROR?process.stderr:process.stdout).write(o)}writeStream(e,t,i){if(e=d.prefixByVal[e],r(e,"Invalid log level."),this.stream&&!this.closing){let r=`[${e}] [${s.dataOfUTC()}] `;if(t&&(r+=`(${t}) `),r=r+s.format(i,!1)+"\n",this.refreshTimestamp()){try{this.stream.close()}catch(e){}this.stream=null,this.reopen().then(()=>{this.stream.write(r)}).catch(e=>{})}else this.stream.write(r)}}logError(e,t,i){if(!this.closed){a.unsupported&&this.console&&e<=d.levels.WARNING&&console.error(i);let r=String(i.message).replace(/^ *Error: */,"");e!==d.levels.ERROR&&(r="Error: "+r),this.log(e,t,[r]),e<=d.levels.WARNING&&this.stream&&this.stream.write(i.stack+"\n")}}memory(e){var t=s.memoryUsage();this.log(d.levels.DEBUG,e,["Memory: rss=%dmb, js-heap=%d/%dmb native-heap=%dmb",t.total,t.jsHeap,t.jsHeapTotal,t.nativeHeap])}}class h{constructor(e,t){r("string"==typeof t),this.logger=e,this.module=t}open(){return this.logger.open()}close(){return this.logger.close()}setFile(e){this.logger.setFile(e)}setLevel(e){this.logger.setLevel(e)}error(...e){var t;this.logger.level<d.levels.ERROR||((t=e[0])instanceof Error?this.logError(d.levels.ERROR,t):this.log(d.levels.ERROR,e))}warning(...e){var t;this.logger.level<d.levels.WARNING||((t=e[0])instanceof Error?this.logError(d.levels.WARNING,t):this.log(d.levels.WARNING,e))}info(...e){var t;this.logger.level<d.levels.INFO||((t=e[0])instanceof Error?this.logError(d.levels.INFO,t):this.log(d.levels.INFO,e))}debug(...e){var t;this.logger.level<d.levels.DEBUG||((t=e[0])instanceof Error?this.logError(d.levels.DEBUG,t):this.log(d.levels.DEBUG,e))}spam(...e){var t;this.logger.level<d.levels.SPAM||((t=e[0])instanceof Error?this.logError(d.levels.SPAM,t):this.log(d.levels.SPAM,e))}log(e,t){this.logger.log(e,this.module,t)}context(e){return new h(this.logger,e)}logError(e,t){this.logger.logError(e,this.module,t)}memory(){this.logger.memory(this.module)}}function l(e){return new Promise((t,i)=>{let r=a.createWriteStream(e,{flags:"a"}),s=()=>{r.removeListener("error",n),r.removeListener("open",o)},n=e=>{try{r.close()}catch(e){}s(),i(e)},o=()=>{s(),t(r)};r.once("error",n),r.once("open",o)})}d.HAS_TTY=Boolean(process.stdout&&process.stdout.isTTY),d.MAX_FILE_SIZE=20<<20,d.levels={NONE:0,ERROR:1,WARNING:2,INFO:3,DEBUG:4,SPAM:5},d.levelsByVal=["none","error","warning","info","debug","spam"],d.prefixByVal=["N","E","W","I","D","S"],d.styles=["0","1;31","1;33","94","90","90"],d.global=new d,e.exports=d},function(e,t,i){
236
236
  /*!
237
- * validator.js - validator for vallnet
237
+ * common.js - p2p constants for vallnet
238
238
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
239
239
  * https://github.com/bookmansoft/gamegold
240
240
  */
241
- let r=i(0),a=i(2);class s extends Error{constructor(e,t){super(),this.type="ValidationError",this.message=`${e=e,"number"==typeof(e=Array.isArray(e)?e[0]:e)?"Param #"+e:e} must be a ${t}.`,Error.captureStackTrace&&Error.captureStackTrace(this,s)}}e.exports=class{constructor(e){this.data=[],e&&this.init(e)}init(e){r(e&&"object"==typeof e),Array.isArray(e)||(e=[e]),this.data=e.map(e=>Array.isArray(e)?e.map(e=>e&&"string"==typeof e?e.replace(/\'/g,'"'):e):e&&"string"==typeof e?e.replace(/\'/g,'"'):e)}has(e){for(var t of(r("string"==typeof e||"number"==typeof e,"Key must be a string or number."),this.data))if(null!=t[e])return!0;return!1}get(e,t){if(void 0===t&&(t=null),Array.isArray(e)){var i=e;for(let e of i){var a=this.get(e);if(null!==a)return a}}else for(var n of(r("string"==typeof e||"number"==typeof e,"Key must be a string or number."),this.data)){if(!n||"object"!=typeof n)throw new s("data","object");if(null!=(n=n[e]))return n}return t}typeOf(e){return null==(e=this.get(e))?"null":typeof e}str(e,t){let i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("string"!=typeof(i="number"==typeof i?String(i):i))throw new s(e,"number");return i}int(e,t){var i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("string"!=typeof i){if("number"==typeof i&&Number.isSafeInteger(i))return i}else if(/^\-?\d+$/.test(i)&&(i=parseInt(i,10),Number.isSafeInteger(i)))return i;throw new s(e,"int")}uint(e,t){var i=this.int(e);if(void 0===t&&(t=null),null===i)return t;if(i<0)throw new s(e,"uint");return i}float(e,t){var i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("string"!=typeof i){if("number"==typeof i&&isFinite(i))return i}else if(/^\-?\d*(?:\.\d*)?$/.test(i)&&/\d/.test(i)&&(i=parseFloat(i),isFinite(i)))return i;throw new s(e,"float")}ufloat(e,t){var i=this.float(e);if(void 0===t&&(t=null),null===i)return t;if(i<0)throw new s(e,"positive float");return i}fixed(e,t,i){var r=this.float(e);if(void 0===i&&(i=null),null===r)return i;try{return a.fromFloat(r,t||0)}catch(t){throw new s(e,"fixed number")}}ufixed(e,t,i){if(void 0===i&&(i=null),null===(t=this.fixed(e,t)))return i;if(t<0)throw new s(e,"positive fixed number");return t}i8(e,t){var i=this.int(e);if(void 0===t&&(t=null),null===i)return t;if(i<-128||127<i)throw new s(e,"i8");return i}i16(e,t){var i=this.int(e);if(void 0===t&&(t=null),null===i)return t;if(i<-32768||32767<i)throw new s(e,"i16");return i}i32(e,t){var i=this.int(e);if(void 0===t&&(t=null),null===i)return t;if((0|i)!==i)throw new s(e,"int32");return i}i64(e,t){return this.int(e,t)}u8(e,t){var i=this.uint(e);if(void 0===t&&(t=null),null===i)return t;if((255&i)!==i)throw new s(e,"uint8");return i}u16(e,t){var i=this.uint(e);if(void 0===t&&(t=null),null===i)return t;if((65535&i)!==i)throw new s(e,"uint16");return i}u32(e,t){var i=this.uint(e);if(void 0===t&&(t=null),null===i)return t;if(i>>>0!==i)throw new s(e,"uint32");return i}u64(e,t){return this.uint(e,t)}hash(e,t){var i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("string"!=typeof i){if(!Buffer.isBuffer(i))throw new s(e,"hash");if(32!==i.length)throw new s(e,"hash");return i.toString("hex")}if(64!==i.length)throw new s(e,"hex string");if(!/^[0-9a-f]+$/i.test(i))throw new s(e,"hex string");let r="";for(let e=0;e<i.length;e+=2)r=i.slice(e,e+2)+r;return r}numhash(e,t){return"string"===this.typeOf(e)?this.hash(e,t):this.uint(e,t)}bool(e,t){var i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("number"==typeof i){if(1===i)return!0;if(0===i)return!1}if("string"!=typeof i){if("boolean"!=typeof i)throw new s(e,"boolean");return i}if("true"===i||"1"===i)return!0;if("false"===i||"0"===i)return!1;throw new s(e,"boolean")}buf(e,t,i){var r=this.get(e);if(i=i||"hex",void 0===t&&(t=null),null===r)return t;if("string"!=typeof r){if(Buffer.isBuffer(r))return r;throw new s(e,"buffer")}if((t=Buffer.from(r,i)).length!==Buffer.byteLength(r,i))throw new s(e,i+" string");return t}array(e,t){var i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("string"!=typeof i){if(Array.isArray(i))return i;throw new s(e,"list/array")}try{var r=JSON.parse(i);if(Array.isArray(r))return r}catch(e){}var a,n=[];for(a of i.trim().split(/\s*,\s*/))0!==a.length&&n.push(a);return n}obj(e,t){let i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if(i.constructor==String)try{i=JSON.parse(i)}catch(t){throw new s(e,"object")}if("object"!=typeof i)throw new s(e,"object");return i}func(e,t){var i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("function"!=typeof i)throw new s(e,"function");return i}}},function(e,t){e.exports=require("http")},function(e,t){e.exports=require("url")},function(e,t,i){
241
+ i=i(67),t.PROTOCOL_VERSION=70015,t.MIN_VERSION=70001,t.HEADERS_VERSION=31800,t.PONG_VERSION=6e4,t.BLOOM_VERSION=70011,t.COMPACT_VERSION=70014,t.COMPACT_WITNESS_VERSION=70015,t.services={NETWORK:1,GETUTXO:2,BLOOM:4,WITNESS:8},t.LOCAL_SERVICES=0|t.services.NETWORK|t.services.WITNESS,t.REQUIRED_SERVICES=0|t.services.NETWORK,t.USER_AGENT=`/${i.protocol}:${i.version}/`,t.MAX_MESSAGE=5e7,t.BAN_TIME=86400,t.BAN_SCORE=100},function(e,t,i){
242
242
  /*!
243
- * common.js - p2p constants for vallnet
243
+ * validator.js - validator for vallnet
244
244
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
245
245
  * https://github.com/bookmansoft/gamegold
246
246
  */
247
- i=i(67),t.PROTOCOL_VERSION=70015,t.MIN_VERSION=70001,t.HEADERS_VERSION=31800,t.PONG_VERSION=6e4,t.BLOOM_VERSION=70011,t.COMPACT_VERSION=70014,t.COMPACT_WITNESS_VERSION=70015,t.services={NETWORK:1,GETUTXO:2,BLOOM:4,WITNESS:8},t.LOCAL_SERVICES=0|t.services.NETWORK|t.services.WITNESS,t.REQUIRED_SERVICES=0|t.services.NETWORK,t.USER_AGENT=`/${i.protocol}:${i.version}/`,t.MAX_MESSAGE=5e7,t.BAN_TIME=86400,t.BAN_SCORE=100},function(e,t,i){
247
+ let r=i(0),a=i(2);class s extends Error{constructor(e,t){super(),this.type="ValidationError",this.message=`${e=e,"number"==typeof(e=Array.isArray(e)?e[0]:e)?"Param #"+e:e} must be a ${t}.`,Error.captureStackTrace&&Error.captureStackTrace(this,s)}}e.exports=class{constructor(e){this.data=[],e&&this.init(e)}init(e){r(e&&"object"==typeof e),Array.isArray(e)||(e=[e]),this.data=e.map(e=>Array.isArray(e)?e.map(e=>e&&"string"==typeof e?e.replace(/\'/g,'"'):e):e&&"string"==typeof e?e.replace(/\'/g,'"'):e)}has(e){for(var t of(r("string"==typeof e||"number"==typeof e,"Key must be a string or number."),this.data))if(null!=t[e])return!0;return!1}get(e,t){if(void 0===t&&(t=null),Array.isArray(e)){var i=e;for(let e of i){var a=this.get(e);if(null!==a)return a}}else for(var n of(r("string"==typeof e||"number"==typeof e,"Key must be a string or number."),this.data)){if(!n||"object"!=typeof n)throw new s("data","object");if(null!=(n=n[e]))return n}return t}typeOf(e){return null==(e=this.get(e))?"null":typeof e}str(e,t){let i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("string"!=typeof(i="number"==typeof i?String(i):i))throw new s(e,"number");return i}int(e,t){var i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("string"!=typeof i){if("number"==typeof i&&Number.isSafeInteger(i))return i}else if(/^\-?\d+$/.test(i)&&(i=parseInt(i,10),Number.isSafeInteger(i)))return i;throw new s(e,"int")}uint(e,t){var i=this.int(e);if(void 0===t&&(t=null),null===i)return t;if(i<0)throw new s(e,"uint");return i}float(e,t){var i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("string"!=typeof i){if("number"==typeof i&&isFinite(i))return i}else if(/^\-?\d*(?:\.\d*)?$/.test(i)&&/\d/.test(i)&&(i=parseFloat(i),isFinite(i)))return i;throw new s(e,"float")}ufloat(e,t){var i=this.float(e);if(void 0===t&&(t=null),null===i)return t;if(i<0)throw new s(e,"positive float");return i}fixed(e,t,i){var r=this.float(e);if(void 0===i&&(i=null),null===r)return i;try{return a.fromFloat(r,t||0)}catch(t){throw new s(e,"fixed number")}}ufixed(e,t,i){if(void 0===i&&(i=null),null===(t=this.fixed(e,t)))return i;if(t<0)throw new s(e,"positive fixed number");return t}i8(e,t){var i=this.int(e);if(void 0===t&&(t=null),null===i)return t;if(i<-128||127<i)throw new s(e,"i8");return i}i16(e,t){var i=this.int(e);if(void 0===t&&(t=null),null===i)return t;if(i<-32768||32767<i)throw new s(e,"i16");return i}i32(e,t){var i=this.int(e);if(void 0===t&&(t=null),null===i)return t;if((0|i)!==i)throw new s(e,"int32");return i}i64(e,t){return this.int(e,t)}u8(e,t){var i=this.uint(e);if(void 0===t&&(t=null),null===i)return t;if((255&i)!==i)throw new s(e,"uint8");return i}u16(e,t){var i=this.uint(e);if(void 0===t&&(t=null),null===i)return t;if((65535&i)!==i)throw new s(e,"uint16");return i}u32(e,t){var i=this.uint(e);if(void 0===t&&(t=null),null===i)return t;if(i>>>0!==i)throw new s(e,"uint32");return i}u64(e,t){return this.uint(e,t)}hash(e,t){var i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("string"!=typeof i){if(!Buffer.isBuffer(i))throw new s(e,"hash");if(32!==i.length)throw new s(e,"hash");return i.toString("hex")}if(64!==i.length)throw new s(e,"hex string");if(!/^[0-9a-f]+$/i.test(i))throw new s(e,"hex string");let r="";for(let e=0;e<i.length;e+=2)r=i.slice(e,e+2)+r;return r}numhash(e,t){return"string"===this.typeOf(e)?this.hash(e,t):this.uint(e,t)}bool(e,t){var i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("number"==typeof i){if(1===i)return!0;if(0===i)return!1}if("string"!=typeof i){if("boolean"!=typeof i)throw new s(e,"boolean");return i}if("true"===i||"1"===i)return!0;if("false"===i||"0"===i)return!1;throw new s(e,"boolean")}buf(e,t,i){var r=this.get(e);if(i=i||"hex",void 0===t&&(t=null),null===r)return t;if("string"!=typeof r){if(Buffer.isBuffer(r))return r;throw new s(e,"buffer")}if((t=Buffer.from(r,i)).length!==Buffer.byteLength(r,i))throw new s(e,i+" string");return t}array(e,t){var i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("string"!=typeof i){if(Array.isArray(i))return i;throw new s(e,"list/array")}try{var r=JSON.parse(i);if(Array.isArray(r))return r}catch(e){}var a,n=[];for(a of i.trim().split(/\s*,\s*/))0!==a.length&&n.push(a);return n}obj(e,t){let i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if(i.constructor==String)try{i=JSON.parse(i)}catch(t){throw new s(e,"object")}if("object"!=typeof i)throw new s(e,"object");return i}func(e,t){var i=this.get(e);if(void 0===t&&(t=null),null===i)return t;if("function"!=typeof i)throw new s(e,"function");return i}}},function(e,t){e.exports=require("http")},function(e,t){e.exports=require("url")},function(e,t,i){
248
248
  /*!
249
249
  * mnemonic.js - hd mnemonics for vallnet
250
250
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
@@ -266,7 +266,7 @@ let r=i(2);var a=i(94);let s=i(4),n=i(1);class o extends a{constructor(e){super(
266
266
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
267
267
  * https://github.com/bookmansoft/gamegold
268
268
  */
269
- let r=i(0);var a=i(74);let s=i(10),n=i(2),o=i(45),p=i(4),d=i(1);function h(e){if(!(this instanceof h))return new h(e);this.host="0.0.0.0",this.port=0,this.services=0,this.time=0,this.hostname="0.0.0.0:0",this.raw=o.ZERO_IP,e&&this.fromOptions(e)}h.DEFAULT_SERVICES=0|a.services.NETWORK|a.services.WITNESS|a.services.BLOOM,h.prototype.fromOptions=function(e){return r("string"==typeof e.host),r("number"==typeof e.port),this.raw=o.toBuffer(e.host),this.host=o.toString(this.raw),this.port=e.port,e.services&&(r("number"==typeof e.services),this.services=e.services),e.time&&(r("number"==typeof e.time),this.time=e.time),this.hostname=o.toHostname(this.host,this.port),this},h.fromOptions=function(e){return(new h).fromOptions(e)},h.prototype.hasServices=function(e){return(this.services&e)===e},h.isIPv4=function(){return o.isIPv4(this.raw)},h.isIPv6=function(){return o.isIPv6(this.raw)},h.prototype.isNull=function(){return o.isNull(this.raw)},h.prototype.isLocal=function(){return o.isLocal(this.raw)},h.prototype.isValid=function(){return o.isValid(this.raw)},h.prototype.isRoutable=function(){return o.isRoutable(this.raw)},h.prototype.isOnion=function(){return o.isOnion(this.raw)},h.prototype.equal=function(e){return 0===this.compare(e)},h.prototype.compare=function(e){var t=this.raw.compare(e.raw);return 0!==t?t:this.port-e.port},h.prototype.getReachability=function(e){return o.getReachability(this.raw,e.raw)},h.prototype.setNull=function(){this.raw=o.ZERO_IP,this.host="0.0.0.0",this.hostname=o.toHostname(this.host,this.port)},h.prototype.setHost=function(e){this.raw=o.toBuffer(e),this.host=o.toString(this.raw),this.hostname=o.toHostname(this.host,this.port)},h.prototype.setPort=function(e){r(0<=e&&e<=65535),this.port=e,this.hostname=o.toHostname(this.host,e)},h.prototype.fromHost=function(e,t,i){return i=s.get(i),r(0<=t&&t<=65535),this.raw=o.toBuffer(e),this.host=o.toString(this.raw),this.port=t,this.services=h.DEFAULT_SERVICES,this.time=i.now(),this.hostname=o.toHostname(this.host,this.port),this},h.fromHost=function(e,t,i){return(new h).fromHost(e,t,i)},h.prototype.fromHostname=function(e,t){return t=s.get(t),e=o.fromHostname(e,t.port),this.fromHost(e.host,e.port,t)},h.fromHostname=function(e,t){return(new h).fromHostname(e,t)},h.prototype.fromSocket=function(e,t){var i=e.remoteAddress;e=e.remotePort;return r("string"==typeof i),r("number"==typeof e),this.fromHost(o.normalize(i),e,t)},h.fromSocket=function(e,t){return(new h).fromSocket(e,t)},h.prototype.fromReader=function(e,t){return this.time=t?e.readU32():0,this.services=e.readU32(),e.readU32(),this.raw=e.readBytes(16),this.host=o.toString(this.raw),this.port=e.readU16BE(),this.hostname=o.toHostname(this.host,this.port),this},h.prototype.fromRaw=function(e,t){return this.fromReader(new d(e),t)},h.fromReader=function(e,t){return(new h).fromReader(e,t)},h.fromRaw=function(e,t){return(new h).fromRaw(e,t)},h.prototype.toWriter=function(e,t){return t&&e.writeU32(this.time),e.writeU32(this.services),e.writeU32(0),e.writeBytes(this.raw),e.writeU16BE(this.port),e},h.prototype.getSize=function(e){return 26+(e?4:0)},h.prototype.toRaw=function(e){var t=this.getSize(e);return this.toWriter(new p(t),e).render()},h.prototype.toJSON=function(){return{host:this.host,port:this.port,services:this.services,time:this.time}},h.prototype.fromJSON=function(e){return r(n.isU16(e.port)),r(n.isU32(e.services)),r(n.isU32(e.time)),this.raw=o.toBuffer(e.host),this.host=e.host,this.port=e.port,this.services=e.services,this.time=e.time,this.hostname=o.toHostname(this.host,this.port),this},h.fromJSON=function(e){return(new h).fromJSON(e)},h.prototype.inspect=function(){return"<NetAddress: hostname="+this.hostname+" services="+this.services.toString(2)+" date="+n.date(this.time)+">"},e.exports=h},function(e,t){e.exports=require("buffer")},function(e,t,i){
269
+ let r=i(0);var a=i(71);let s=i(10),n=i(2),o=i(45),p=i(4),d=i(1);function h(e){if(!(this instanceof h))return new h(e);this.host="0.0.0.0",this.port=0,this.services=0,this.time=0,this.hostname="0.0.0.0:0",this.raw=o.ZERO_IP,e&&this.fromOptions(e)}h.DEFAULT_SERVICES=0|a.services.NETWORK|a.services.WITNESS|a.services.BLOOM,h.prototype.fromOptions=function(e){return r("string"==typeof e.host),r("number"==typeof e.port),this.raw=o.toBuffer(e.host),this.host=o.toString(this.raw),this.port=e.port,e.services&&(r("number"==typeof e.services),this.services=e.services),e.time&&(r("number"==typeof e.time),this.time=e.time),this.hostname=o.toHostname(this.host,this.port),this},h.fromOptions=function(e){return(new h).fromOptions(e)},h.prototype.hasServices=function(e){return(this.services&e)===e},h.isIPv4=function(){return o.isIPv4(this.raw)},h.isIPv6=function(){return o.isIPv6(this.raw)},h.prototype.isNull=function(){return o.isNull(this.raw)},h.prototype.isLocal=function(){return o.isLocal(this.raw)},h.prototype.isValid=function(){return o.isValid(this.raw)},h.prototype.isRoutable=function(){return o.isRoutable(this.raw)},h.prototype.isOnion=function(){return o.isOnion(this.raw)},h.prototype.equal=function(e){return 0===this.compare(e)},h.prototype.compare=function(e){var t=this.raw.compare(e.raw);return 0!==t?t:this.port-e.port},h.prototype.getReachability=function(e){return o.getReachability(this.raw,e.raw)},h.prototype.setNull=function(){this.raw=o.ZERO_IP,this.host="0.0.0.0",this.hostname=o.toHostname(this.host,this.port)},h.prototype.setHost=function(e){this.raw=o.toBuffer(e),this.host=o.toString(this.raw),this.hostname=o.toHostname(this.host,this.port)},h.prototype.setPort=function(e){r(0<=e&&e<=65535),this.port=e,this.hostname=o.toHostname(this.host,e)},h.prototype.fromHost=function(e,t,i){return i=s.get(i),r(0<=t&&t<=65535),this.raw=o.toBuffer(e),this.host=o.toString(this.raw),this.port=t,this.services=h.DEFAULT_SERVICES,this.time=i.now(),this.hostname=o.toHostname(this.host,this.port),this},h.fromHost=function(e,t,i){return(new h).fromHost(e,t,i)},h.prototype.fromHostname=function(e,t){return t=s.get(t),e=o.fromHostname(e,t.port),this.fromHost(e.host,e.port,t)},h.fromHostname=function(e,t){return(new h).fromHostname(e,t)},h.prototype.fromSocket=function(e,t){var i=e.remoteAddress;e=e.remotePort;return r("string"==typeof i),r("number"==typeof e),this.fromHost(o.normalize(i),e,t)},h.fromSocket=function(e,t){return(new h).fromSocket(e,t)},h.prototype.fromReader=function(e,t){return this.time=t?e.readU32():0,this.services=e.readU32(),e.readU32(),this.raw=e.readBytes(16),this.host=o.toString(this.raw),this.port=e.readU16BE(),this.hostname=o.toHostname(this.host,this.port),this},h.prototype.fromRaw=function(e,t){return this.fromReader(new d(e),t)},h.fromReader=function(e,t){return(new h).fromReader(e,t)},h.fromRaw=function(e,t){return(new h).fromRaw(e,t)},h.prototype.toWriter=function(e,t){return t&&e.writeU32(this.time),e.writeU32(this.services),e.writeU32(0),e.writeBytes(this.raw),e.writeU16BE(this.port),e},h.prototype.getSize=function(e){return 26+(e?4:0)},h.prototype.toRaw=function(e){var t=this.getSize(e);return this.toWriter(new p(t),e).render()},h.prototype.toJSON=function(){return{host:this.host,port:this.port,services:this.services,time:this.time}},h.prototype.fromJSON=function(e){return r(n.isU16(e.port)),r(n.isU32(e.services)),r(n.isU32(e.time)),this.raw=o.toBuffer(e.host),this.host=e.host,this.port=e.port,this.services=e.services,this.time=e.time,this.hostname=o.toHostname(this.host,this.port),this},h.fromJSON=function(e){return(new h).fromJSON(e)},h.prototype.inspect=function(){return"<NetAddress: hostname="+this.hostname+" services="+this.services.toString(2)+" date="+n.date(this.time)+">"},e.exports=h},function(e,t){e.exports=require("buffer")},function(e,t,i){
270
270
  /*!
271
271
  * cleanse.js - memzero for vallnet
272
272
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
@@ -294,7 +294,7 @@ let r=i(0),a=i(121),s=i(1),n=i(4),o=i(3),p=a.sum32,d=a.mul32,h=Buffer.alloc(0);c
294
294
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
295
295
  * https://github.com/bookmansoft/gamegold
296
296
  */
297
- t.ASN1=i(250),t.AsyncObject=i(59),t.base32=i(186),t.base58=i(57),t.bech32=i(198),t.Bloom=i(86),t.co=i(29),t.encoding=i(3),t.enforce=i(366),t.fs=i(42),t.GCSFilter=i(367),t.Heap=i(228),t.Int64=i(91),t.IP=i(45),t.List=i(125),t.Lock=i(25),t.LRU=i(52),t.MappedLock=i(158),t.murmur3=i(121),t.nfkd=i(225),t.PEM=i(184),t.ProtoWriter=i(136),t.ProtoReader=i(135),t.RBT=i(219),t.BufferReader=i(1),t.RollingFilter=i(187),t.StaticWriter=i(4),t.util=i(2),t.Validator=i(71),t.BufferWriter=i(17);var{verifyData:r,signObj:a,verifyObj:s,generateKey:n}=i(60),r=(t.verifyData=r,t.signObj=a,t.verifyObj=s,t.generateKey=n,i(114)).sortWithSeq;t.sortWithSeq=r},function(e,t,i){
297
+ t.ASN1=i(250),t.AsyncObject=i(59),t.base32=i(186),t.base58=i(57),t.bech32=i(198),t.Bloom=i(86),t.co=i(29),t.encoding=i(3),t.enforce=i(366),t.fs=i(42),t.GCSFilter=i(367),t.Heap=i(228),t.Int64=i(91),t.IP=i(45),t.List=i(125),t.Lock=i(25),t.LRU=i(52),t.MappedLock=i(158),t.murmur3=i(121),t.nfkd=i(225),t.PEM=i(184),t.ProtoWriter=i(136),t.ProtoReader=i(135),t.RBT=i(219),t.BufferReader=i(1),t.RollingFilter=i(187),t.StaticWriter=i(4),t.util=i(2),t.Validator=i(72),t.BufferWriter=i(17);var{verifyData:r,signObj:a,verifyObj:s,generateKey:n}=i(60),r=(t.verifyData=r,t.signObj=a,t.verifyObj=s,t.generateKey=n,i(114)).sortWithSeq;t.sortWithSeq=r},function(e,t,i){
298
298
  /*!
299
299
  * mempool.js - mempool for vallnet
300
300
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
@@ -344,7 +344,7 @@ e.exports={unittest:!1,localhost:!1}},function(e,t,i){
344
344
  * wallet.js - wallet object for vallnet
345
345
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
346
346
  */
347
- let r=i(0);var a=i(13);let s=i(10),n=i(2),o=i(3),p=i(25),d=i(158),h=i(114).sortWithSeq,l=i(6),c=i(81),u=i(1),f=i(4),m=i(57),g=i(260);i(179);let w=i(90),v=i(61),y=i(8),b=i(53),x=i(11),S=i(180),_=i(101),E=i(75),k=i(22),R=i(116),A=i(263),I=i(52),C=i(18),O=i(20),N=i(7),T=i(236),P=i(31),B=_.Mnemonic,{opcodes:L,hashType:M}=i(14),D=i(140),V=i(68),U=i(69),H=i(117),z=i(37),F=i(15),K=i(34),j=i(44),{NotifyMsg:q,ContractStatus:W,ContractType:G,PropStatus:Y}=i(5),X=i(26).VerifyError,$=i(129).ErItem,J=i(130).ErAbolishItem,Z=i(188).EnchancementItem,Q=i(50),ee=i(42),te=i(67),ie=i(62).txdb,re=i(23);class ae extends a{constructor(e,t){super(),r(e,"DB required."),this.db=e,this.network=e.network,this.logger=e.logger,this.readLock=new d,this.writeLock=new p,this.sendLock=new p,this.utxoBlacklist=new Map,this.utxoBlacklistTTL=3e4,this.indexCache=new I(1e4),this.accountCache=new I(1e4),this.pathCache=new I(1e5),this.current=null,this.wid=0,this.id=null,this.initialized=!1,this.watchOnly=!1,this.accountDepth=0,this.token=o.ZERO_HASH,this.tokenDepth=0,this.master=new A,this.txdb=new g(this),this.account=null,this.securityMode=!1,this.rootPrivateKey=null,this.rootKeyEncrypted=!1,this.rootKeyIv=null,this.rootKeyCiphertext=null,t&&this.fromOptions(t)}fromOptions(e){let t,i,a=e.master;return a?("string"==typeof a&&(a=_.PrivateKey.fromBase58(a,this.network)),r(_.isPrivate(a),"Must create wallet with hd private key.")):(i=new B(e.mnemonic),a=_.fromMnemonic(i,this.network)),r(a.network===this.network,"Network mismatch for master key."),this.master.fromKey(a,i),null!=e.wid&&(r(n.isU32(e.wid)),this.wid=e.wid),e.id&&(r(v.isName(e.id),"Bad wallet ID."),t=e.id),null!=e.initialized&&(r("boolean"==typeof e.initialized),this.initialized=e.initialized),null!=e.watchOnly&&(r("boolean"==typeof e.watchOnly),this.watchOnly=e.watchOnly),null!=e.accountDepth&&(r(n.isU32(e.accountDepth)),this.accountDepth=e.accountDepth),e.token&&(r(Buffer.isBuffer(e.token)),r(32===e.token.length),this.token=e.token),t=t||this.getID(),this.id=t,this}static fromOptions(e,t){return new ae(e).fromOptions(t)}async init(e){var t=e.passphrase;r(!this.initialized),this.initialized=!0,t&&await this.master.encrypt(t),e=await this._createAccount(e,t);r(e),this.account=e,this.logger.info("Wallet initialized (%s).",this.id),await this.txdb.open()}async open(){r(this.initialized);var e=await this.getAccount(0);if(!e)throw new Error("Default account not found.");this.account=e,this.logger.info("Wallet opened (%s).",this.id),await this.txdb.open()}async ensureNotifyKey(){this.notifyKey||(await this.ensureAccount({name:"alliance",witness:!0}),this.notifyKey=await this.createReceive("alliance",1,this.master),this.notifyAddress=this.notifyKey.getAddress("string"))}async createAllianceInfo(e,t,i){var r={alliancename:e,nodeid:t};return e?(r.alliancePrivateKey=l.hash256(Buffer.concat([Buffer.from(e),this.master.key.privateKey])),i?(r.prv=Buffer.alloc(0),r.pub=Buffer.from(i,"hex"),r.awardAddress=y.fromWitnessPubkeyhash(l.hash160(r.pub),this.network.type).toString(this.network.type),i=l.hash256(Buffer.concat([r.pub,Buffer.from(t.toString())])),r.mnemonic=new B({entropy:i,language:this.master.mnemonic.language,passphrase:this.master.mnemonic.passphrase})):(i=l.hash256(Buffer.concat([Buffer.from(e+"-"+t),this.master.key.privateKey])),r.mnemonic=new B({entropy:i,language:this.master.mnemonic.language,passphrase:this.master.mnemonic.passphrase}),r.prv=l.hash256(Buffer.from(r.mnemonic.toSeed().toString("hex"))),r.pub=C.publicKeyCreate(r.prv,!0),e=A.fromKey(_.fromMnemonic(r.mnemonic),this.network.type).key.deriveAccount(44,0).derive(9).derive(1),r.awardAddress=y.fromWitnessPubkeyhash(l.hash160(e.publicKey),this.network.type).toString(this.network.type))):(i=await this.createReceive("alliance",t,this.master),r.prv=i.privateKey,r.pub=i.publicKey,r.awardAddress=y.fromWitnessPubkeyhash(l.hash160(r.pub),this.network.type).toString(this.network.type),e=l.hash256(Buffer.concat([r.prv,r.pub])),r.mnemonic=new B({entropy:e,language:this.master.mnemonic.language,passphrase:this.master.mnemonic.passphrase})),r.address=y.fromWitnessPubkeyhash(l.hash160(r.pub),this.network.type).toString(),r}async writeLocking(e){return this.writeLock.lock(e)}async destroy(){var e=await this.writeLocking();try{var t=await this.sendLock.lock();try{this.db.unregister(this),await this.master.destroy(),this.readLock.destroy()}finally{t(),this.sendLock.destroy()}}finally{e(),this.writeLock.destroy()}}async addSharedKey(e,t){var i=await this.writeLocking();try{return await this._addSharedKey(e,t)}finally{i()}}async _addSharedKey(e,t){if(t||(t=e,e=null),!(e=await this.getAccount(e=null==e?0:e)))throw new Error("Account not found.");let i;this.start();try{i=await e.addSharedKey(t)}catch(e){throw this.drop(),e}return await this.commit(),i}async removeSharedKey(e,t){var i=await this.writeLocking();try{return await this._removeSharedKey(e,t)}finally{i()}}async _removeSharedKey(e,t){if(t||(t=e,e=null),!(e=await this.getAccount(e=null==e?0:e)))throw new Error("Account not found.");let i;this.start();try{i=await e.removeSharedKey(t)}catch(e){throw this.drop(),e}return await this.commit(),i}async setPassphrase(e,t){e&&await this.decrypt(e),t&&await this.encrypt(t)}async encrypt(e){var t=await this.writeLocking();try{return await this._encrypt(e)}finally{t()}}async _encrypt(e){e=await this.master.encrypt(e,!0),this.start();try{await this.db.encryptKeys(this,e)}catch(t){throw c(e),this.drop(),t}c(e),this.save(),await this.commit()}async decrypt(e){var t=await this.writeLocking();try{return await this._decrypt(e)}finally{t()}}async _decrypt(e){e=await this.master.decrypt(e,!0),this.start();try{await this.db.decryptKeys(this,e)}catch(t){throw c(e),this.drop(),t}c(e),this.save(),await this.commit()}async rename(e){var t=await this.writeLocking();try{return await this.db.rename(this,e)}finally{t()}}async writeBalanceLog(e){var t=await this.writeLocking();try{return await this.db.writeBalanceLog(this,e)}finally{t()}}async renameAccount(e,t){var i=await this.writeLocking();try{return await this._renameAccount(e,t)}finally{i()}}async _renameAccount(e,t){if(!v.isName(t))throw new Error("Bad account name.");var i=await this.getAccount(e);if(!i)throw new Error("Account not found.");if(0===i.accountIndex)throw new Error("Cannot rename default account.");if(await this.hasAccount(t))throw new Error("Account name not available.");var r;e=i.name,this.start(),this.db.renameAccount(i,t),await this.commit(),this.indexCache.remove(e),e=this.pathCache.values();for(r of e)r.account===i.accountIndex&&(r.name=t)}async lock(){var e=await this.writeLocking();try{var t=await this.sendLock.lock();try{await this.master.lock()}finally{t()}}finally{e()}}unlock(e,t){return this.master.unlock(e,t)}getID(){r(this.master.key,"Cannot derive id.");var e,t=this.master.key.derive(44);(e=new f(37)).writeBytes(t.publicKey),e.writeU32(this.network.magic),t=l.hash160(e.render());return(e=new f(27)).writeU8(3),e.writeU8(190),e.writeU8(4),e.writeBytes(t),e.writeChecksum(),m.encode(e.render())}async createAccount(e,t){var i=await this.writeLocking();try{return await this._createAccount(e,t)}finally{i()}}async _createAccount(e,t){let i,a,s=e.name,o=(s=s||this.accountDepth.toString(10),0);if(0!=this.accountDepth&&(o=n.hashInt(s)),await this.hasAccountIndex(o))throw new Error("Account Index Conflict.");if(await this.hasAccount(s))throw new Error("Account already exists.");if(await this.unlock(t),this.watchOnly&&e.accountKey){if("string"==typeof(i=e.accountKey)&&(i=_.PublicKey.fromBase58(i,this.network)),!_.isPublic(i))throw new Error("Must add HD public keys to watch only wallet.");r(i.network===this.network,"Network mismatch for watch only key.")}else r(this.master.key),i=(i=this.master.key.deriveAccount(44,o)).toPublic();t={wid:this.wid,id:this.id,name:0===this.accountDepth?"default":s,witness:e.witness,watchOnly:this.watchOnly,accountKey:i,accountIndex:o,type:e.type,m:e.m,n:e.n,keys:e.keys},this.start();try{(a=R.fromOptions(this.db,t)).wallet=this,await a.init()}catch(e){throw this.drop(),e}return this.logger.info("Created account %s/%s/%d.",a.id,a.name,a.accountIndex),this.accountDepth++,this.save(),await this.commit(),a}async ensureAccount(e,t){var i=e.name;return(i=await this.getAccount(i))||this.createAccount(e,t)}getAccounts(){return this.db.getAccounts(this.wid)}getAccountMap(){return this.db.getAccountMap(this.wid)}getAddressHashes(e){return null!=e?this.getAccountHashes(e):this.db.getWalletHashes(this.wid)}async getAccountHashes(e){return e=await this.ensureIndex(e,!0),this.db.getAccountHashes(this.wid,e)}async getAccount(e){if(this.account&&(null==e||"default"===e||"number"==typeof e&&0===e||"string"==typeof e&&0===e.length))return this.account;if(-1===(e=await this.getAccountIndex(e)))return null;var t=await this.readLock.lock(e);try{return await this._getAccount(e)}finally{t()}}async _getAccount(e){var t=this.accountCache.get(e);return t||((t=await this.db.getAccount(this.wid,e))?(t.wallet=this,t.wid=this.wid,t.id=this.id,t.watchOnly=this.watchOnly,await t.open(),this.accountCache.set(e,t),t):null)}async getAccountIndex(e){var t;return null==e?-1:"number"==typeof e?e:null!=(t=this.indexCache.get(e))?t:-1===(t=await this.db.getAccountIndex(this.wid,e))?-1:(this.indexCache.set(e,t),t)}async getAccountName(e){var t;return"string"==typeof e?e:(t=this.accountCache.get(e))?t.name:this.db.getAccountName(this.wid,e)}async hasAccount(e){return-1!==(e=await this.getAccountIndex(e))&&(!!this.accountCache.has(e)||this.db.hasAccount(this.wid,e))}async hasAccountIndex(e){return!!this.accountCache.has(e)||this.db.hasAccount(this.wid,e)}createReceive(e,t=0,i=null){return this.createKey(e,0,t,i)}createChange(e){return this.createKey(e,1)}createNested(e){return this.createKey(e,2)}async createKey(e,t,i=0,r=null){var a=await this.writeLocking();try{return await this._createKey(e,t,i,r)}finally{a()}}async _createKey(e,t,i=0,r=null){if(null==t&&(t=e,e=null),!(e=await this.getAccount(e=e||0)))throw new Error("Account not found.");let a;this.start();try{a=await e.createKey(t,i,r)}catch(e){throw this.drop(),e}return await this.commit(),a}async deriveKey(e,t,i,r=null){let a=null;var s=await this.writeLocking();try{this.start(),a=await this._deriveKey(e,t,i,r),await this.commit()}catch(e){throw this.drop(),e}finally{s()}return a}async _deriveKey(e,t,i=0,r=null){if(null==t&&(t=e,e=null),e=e||0,e=parseInt(e),e=await this.getAccount(e))return t=await e.deriveKey(t,i,r),await e.saveKey(t),t;throw new Error("Account not found.")}save(){return this.db.save(this)}async saveAccount(e){var t=await this.writeLocking();try{this.start(),e._save(),await this.commit(),0==e.accountIndex&&(this.account=e)}finally{t()}}start(){return this.db.start(this)}drop(){return this.db.drop(this)}clear(){return this.db.clear(this)}commit(){return this.db.commit(this)}async hasAddress(e){return e=y.getHash(e,"hex"),null!=await this.getPath(e)}async ownedAddress(e){return!!await this.getKey(e)}async checkAndRepairUTXOs(){if(this.logger.info("Starting UTXO check and repair process..."),this.db.$parent){try{var e=await this.getPending();if(0<e.length){this.logger.info("Found %d pending transactions, attempting to resend...",e.length);var t,i=[];for(t of e)i.push(t.tx);var r,a=h(i),s=[];for(r of a)try{await this.db.send(r),this.logger.debug("Resent transaction: %s",r.txid())}catch(e){this.logger.warning("Failed to resend transaction %s: %s",r.txid(),e.message),s.push(r)}if(0<s.length)for(var n of(this.logger.info("Abandoning %d failed transactions...",s.length),s))try{await this.abandon(n.txid()),this.logger.debug("Abandoned transaction: %s",n.txid())}catch(e){this.logger.warning("Failed to abandon transaction %s: %s",n.txid(),e.message)}}else this.logger.info("No pending transactions found.")}catch(e){this.logger.warning("Error processing pending transactions: %s",e.message)}var o=[];let g=0,w=0;try{var p,d=new Set;for(p of await this.getPending())d.add(p.hash);var l=await this.getCoins();for(let t=0;t<l.length;t+=1e3){var c,u=l.slice(t,t+1e3);for(c of u)try{if(d.has(c.hash))this.logger.debug("UTXO %s/%d belongs to pending transaction, waiting for confirmation.",c.hash,c.index);else if(!await this.db.$parent.getCoin(c.hash,c.index)){o.push({hash:c.txid(),index:c.index});try{this.txdb.addSystemConservedCoin(c);try{var f,m=await this.txdb.getCredit(c.hash,c.index);m&&(f=await this.getPath(c.getAddress()))&&(this.current||this.start(),await this.txdb.removeCredit(m,f),this.txdb.removeLocked(c),this.logger.info("Fixed UTXO %s/%d by removing from UTXO set",c.hash,c.index))}catch(e){this.logger.warning("Failed to remove UTXO %s/%d from set: %s",c.hash,c.index,e.message)}this.logger.info("Fixed UTXO %s/%d by adding to system conserved coins",c.hash,c.index),w++}catch(e){this.logger.warning("Failed to fix UTXO %s/%d: %s",c.hash,c.index,e.message)}}}catch(e){this.logger.warning("Error checking UTXO %s/%d: %s",c.hash,c.index,e.message)}(g+=u.length)%1e3==0&&this.logger.info("UTXO check progress: %d processed, %d fixed",g,w)}if(this.current)try{await this.commit(),this.logger.info("UTXO check changes committed to database")}catch(e){this.logger.error("Error committing UTXO check changes: %s",e.message)}this.logger.info("UTXO check completed: processed %d UTXOs, found %d issues, fixed %d issues",g,o.length,w)}catch(e){this.logger.error("Error in UTXO check process: %s",e.message)}}else this.logger.warning("No parent chain available for UTXO verification, skipping...")}async forceRescan(){try{this.logger.info("Starting force rescan process..."),this.db&&(this.db.rescanning=!0),await this.db.getTip(),await this.db.rescan(0),this.logger.info("Force rescan completed successfully.")}catch(e){throw this.logger.error("Error during force rescan: %s",e.message),e}finally{this.db&&(this.db.rescanning=!1)}}async injectRootKey(e,t){var i=await this.writeLocking();try{await this._cleanLocalKeys();var r=random.randomBytes(16),a=await this.master.derive(t),s=aes.encipher(e,a,r);this.rootPrivateKey=e,this.rootKeyEncrypted=!0,this.rootKeyIv=r,this.rootKeyCiphertext=s,this.securityMode=!0,this.logger.info("Root private key injected successfully in security mode.")}finally{i()}}async extractRootKey(e){var t,i,r=await this.writeLocking();try{if(this.securityMode&&this.rootKeyEncrypted)return t=await this.master.derive(e),i=aes.decipher(this.rootKeyCiphertext,t,this.rootKeyIv),await this._cleanLocalKeys(),this.logger.info("Root private key extracted successfully."),i;throw new Error("Not in security mode or root key not encrypted.")}finally{r()}}async deriveKeyFromRoot(e,t){if(!this.securityMode)throw new Error("Not in security mode.");var i;this.rootKeyEncrypted&&(t=await this.master.derive(t),this.rootPrivateKey=aes.decipher(this.rootKeyCiphertext,t,this.rootKeyIv));let r=_.PrivateKey.fromRaw(this.rootPrivateKey);for(i of e.split("/").filter(e=>"m"!==e)){var a=parseInt(i.replace("'","")),s=i.endsWith("'");r=r.derive(a,s)}return r}async _cleanLocalKeys(){var e;for(e of(this.master.key&&(this.master.key.destroy(!0),this.master.key=null),await this.getAccounts())){var t=await this.getAccount(e.name);t&&(t.key=null)}this.accountCache.clear(),this.pathCache.clear()}async getPath(e){return(e=await this.readPath(e))?(e.name=await this.getAccountName(e.account),r(e.name),this.pathCache.set(e.hash,e),e):null}async readPath(e){e=y.getHash(e,"hex");var t=this.pathCache.get(e);return t||((t=await this.db.getPath(this.wid,e))?(t.id=this.id,t):null)}async hasPath(e){return e=y.getHash(e,"hex"),!!this.pathCache.has(e)||this.db.hasPath(this.wid,e)}async getPaths(e){if(null!=e)return this.getAccountPaths(e);var t,i=[];for(t of await this.db.getWalletPaths(this.wid))t.id=this.id,t.name=await this.getAccountName(t.account),r(t.name),this.pathCache.set(t.hash,t),i.push(t);return i}async getAccountPaths(e){var t,i=await this.ensureIndex(e,!0),a=await this.getAccountHashes(i),s=await this.getAccountName(e),n=(r(s),[]);for(t of a){var o=await this.readPath(t);r(o),r(o.account===i),o.name=s,this.pathCache.set(o.hash,o),n.push(o)}return n}async importKey(e,t,i){var r=await this.writeLocking();try{return await this._importKey(e,t,i)}finally{r()}}async _importKey(e,t,i){if(e&&"object"==typeof e&&(i=t,t=e,e=null),null==e&&(e=0),r(t.network===this.network,"Network mismatch for key."),this.watchOnly){if(t.privateKey)throw new Error("Cannot import privkey into watch-only wallet.")}else if(!t.privateKey)throw new Error("Cannot import pubkey into non watch-only wallet.");var a=t.getHash("hex");if(await this.getPath(a))throw new Error("Key already exists.");if(!(a=await this.getAccount(e)))throw new Error("Account not found.");if(a.type!==R.types.PUBKEYHASH)throw new Error("Cannot import into non-pkh account.");await this.unlock(i),e=S.fromRing(a,t).toPath(),this.master.encrypted&&(e.data=this.master.encipher(e.data,e.hash),r(e.data),e.encrypted=!0),this.start();try{await a.savePath(e)}catch(e){throw this.drop(),e}await this.commit()}async importAddress(e,t){var i=await this.writeLocking();try{return await this._importAddress(e,t)}finally{i()}}async _importAddress(e,t){if(t||(t=e,e=null),null==e&&(e=0),t.network!==this.network)throw new Error("Network mismatch for address.");if(!this.watchOnly)throw new Error("Cannot import address into non watch-only wallet.");if(await this.getPath(t))throw new Error("Address already exists.");if(!(e=await this.getAccount(e)))throw new Error("Account not found.");if(e.type!==R.types.PUBKEYHASH)throw new Error("Cannot import into non-pkh account.");t=w.fromAddress(e,t),this.start();try{await e.savePath(t)}catch(e){throw this.drop(),e}await this.commit()}async fund(e,t){var i=await this.writeLocking();try{var r=await this._fund(e,t);return this.addUTXOToBlacklist(r),r}finally{i()}}async _fund(e,t){if(t=t||{},!this.initialized)throw new Error("Wallet is not initialized.");if(this.watchOnly)throw new Error("Cannot fund from watch-only wallet.");let i;if(i=t.account&&(i=t.account,this.db.$parent)&&this.db.$parent.config.str("account-change")?this.db.$parent.config.str("account-change"):i){if(!(i=await this.getAccount(i)))throw new Error("Account not found.")}else i=this.account;if(!i.initialized)throw new Error("Account is not initialized.");let a,s=t.rate;null==s&&(s=await this.db.estimateFee(t.blocks)),a=t.smart?await this.getSmartCoins(i.name):(a=await this.getCoins(i.name),this.txdb.filterConserved(a));var n,o,p=await this.getPending();let d=new Set;for(n of p)for(o of n.tx.inputs){var h=z.toKey(o.prevout.hash,o.prevout.index);d.add(h)}return this.cleanupUTXOBlacklist(),a=a.filter(e=>(e=z.toKey(e.hash,e.index),!d.has(e)&&!this.utxoBlacklist.has(e))),await e.fund(a,{allowPreInput:t.allowPreInput,noChange:t.noChange,selection:t.selection,round:t.round,depth:t.depth,hardFee:t.hardFee,subtractFee:t.subtractFee,subtractIndex:t.subtractIndex,changeAddress:i.change.getAddress(),height:this.db.curHeight,rate:s,maxFee:t.maxFee,estimate:e=>this.estimateSize(e),network:this.network}),!t.allowInfiniteFee&&t.noChange&&r(e.getFee()<=T.MAX_FEE,"TX exceeds MAX_FEE."),a}async getAccountByAddress(e){return e=y.getHash(e,"hex"),(e=await this.getPath(e))?this.getAccount(e.account):null}async estimateSize(e){var t=N.WITNESS_SCALE_FACTOR,i=y.fromScript(e);if(!i)return-1;var r=await this.getAccountByAddress(i);if(!r)return-1;let a=0;if(e.isScripthash()&&r.witness)switch(r.type){case R.types.PUBKEYHASH:a=4*(a+23);break;case R.types.MULTISIG:a=4*(a+35)}switch(r.type){case R.types.PUBKEYHASH:a=a+74+34;break;case R.types.MULTISIG:a=(a=(a=(a=(a+=1)+74*r.m)+3+1)+34*r.n)+1+1}return r.witness?a=((a+=1)+t-1)/t|0:a+=o.sizeVarint(a),a}async createTX(e){var t,i=e.outputs,a=new b;for(t of(r(Array.isArray(i),"Outputs must be an array."),r(0<i.length,"No outputs available."),e.comment&&("object"==typeof e.comment&&(e.comment=JSON.stringify(e.comment)),a.outputs.push(k.fromScript(x.createScript(Buffer.from(e.comment),x.types.NULLDATA),0))),i)){var s=new k(t),n=s.getAddress();if(s.isDust())throw new Error("Output is dust.");if(0<s.value){if(!n)throw new Error("Cannot send to unknown address.");if(n.isNull())throw new Error("Cannot send to null address.")}a.outputs.push(s)}let o=null;if(e.inputs)for(var p of e.inputs){var d=await this.getTX(p.hash);d&&(d=j.fromTX(d.tx,p.index,-1,0))&&(o=d.getAddress(),e.allowPreInput=!0,a.addCoin(d))}else await this.fund(a,e);if(o&&((i=new k).value=a.getFee()-T.MIN_FEE,i.script.fromAddress(o),a.outputs.push(i),a.changeIndex=a.outputs.length-1),!1!==e.sort&&a.sortMembers(),null!=e.locktime&&a.setLocktime(e.locktime),r(a.isSane(),"TX failed sanity check."),r(a.verifyInputs(this.db.curHeight+1),"TX failed context check."),0===await this.template(a))throw new Error("Templating failed.");return a}async send(e,t){var i=await this.sendLock.lock();try{return await this._send(e,t)}finally{i()}}async _send(e,t){return t&&(e.account=t),t=await this.createTX(e,!0),await this.sign(t),this.sendMTX(t,{sendafter:e.sendafter})}async sendMTX(e,t={}){if(!e.isSigned())throw new Error("TX could not be fully signed.");var i=e.toTX();if(i.getSigopsCost(e.view)>O.MAX_TX_SIGOPS_COST)throw new Error("TX exceeds policy sigops.");if(i.getWeight()>O.MAX_TX_WEIGHT)throw new Error("TX exceeds policy weight.");return t.sendafter||(this.logger.debug("Sending wallet tx (%s): %s",this.id,i.txid()),await this.db.addTX(i),await this.db.send(i)),i}async resend(){var e,t,i=await this.getPending(),r=(0<i.length&&this.logger.info("Rebroadcasting %d transactions.",i.length),[]);for(e of i)r.push(e.tx);for(t of h(r))await this.db.send(t);return r}async deriveInputs(e){r(e.mutable);var t,i=[];for(t of await this.getInputPaths(e)){var a=await this.getAccount(t.account);a&&(a=a.derivePath(t,this.master))&&i.push(a)}return i}async getKey(e){try{var t,i=y.getHash(e,"hex",this.network.type),r=await this.getPath(i);return r&&(t=await this.getAccount(r.account))?t.derivePath(r,this.master):null}catch{return null}}async exportToFile(e){if(!ee.unsupported){var t=await this.db.getTip(),i=n.date();let l="",c=[n.fmt("# Wallet Backup "),n.fmt("# Dump created by %s %s",te.protocol,te.version),n.fmt("# * Created on %s",i),n.fmt("# * Best block at time of backup was %d (%s).",t.height,n.revHex(t.hash)),n.fmt("# * File: %s",e.file),""];t="W %s wid= %s";var r,a,s,o=this.toRaw().toString("base64");t=(e.password&&e.network?(r=E.encrypt({body:o,password:e.password,network:e.network}),r=n.fmt(t,r,this.wid),c.push("# Encrypted Wallet: "+r)):(r=n.fmt(t,o,this.wid),c.push(r)),await this.getAccounts());for(a of t){var p=await this.getAccount(a);p=n.fmt("C %s name= %s index= %d",p.toRaw().toString("base64"),p.name,p.accountIndex);c.push(p)}for(s of await this.getAddressHashes()){let t,r=0,a=-1,o=-1,p="S";(d=await this.getPrivateKey(s))?(r=d.account,a=d.branch,o=d.index,(h=await this.getPath(s))&&1===h.keyType?(p=d.toSecret(),t=d.getAddress("string"),e.password&&e.network&&(p="# Encrypted Secret: "+(h=E.encrypt({body:p,password:e.password,network:e.network})))):t=""):t=y.fromWitnessPubkeyhash(Buffer.from(s,"hex"),this.network.type).toString();var d=t?"A %s %s label= account= %s branch= %s index= %s addr= %s":"A %s %s label= account= %s branch= %s index= %s",h=t?n.fmt(d,p,i,r,a,o,t):n.fmt(d,p,i,r,a,o);c.push(h),e.fragment&&1e5<c.length&&(l=c.join("\n"),await ee.writeFile(e.file.split(".").reduce((e,t)=>(e?e+="."+t:e=t+"-1",e),""),l,"utf8"),c=[])}c.push(""),c.push("# End of dump"),c.push(""),l=c.join("\n"),await ee.writeFile(e.file,l,"utf8")}}async getPrivateKey(e,t){if(e=y.getHash(e,"hex"),!(e=await this.getPath(e)))return null;var i=await this.getAccount(e.account);return i?(await this.unlock(t),(t=i.derivePath(e,this.master)).privateKey?t:null):null}async getInputPaths(e){if(r(e.mutable),!e.hasCoins())throw new Error("Not all coins available.");var t,i=[];for(t of e.getInputHashes("hex")){var a=await this.getPath(t);a&&i.push(a)}return i}async getOutputPaths(e){var t,i=[];for(t of e.getOutputHashes("hex")){var r=await this.getPath(t);r&&i.push(r)}return i}async setLookahead(e,t){var i=await this.writeLocking();try{return await this._setLookahead(e,t)}finally{i()}}async _setLookahead(e,t){if(null==t&&(t=e,e=null),!(e=await this.getAccount(e=null==e?0:e)))throw new Error("Account not found.");this.start();try{await e.setLookahead(t)}catch(e){throw this.drop(),e}await this.commit()}async syncOutputDepth(e){var t,i=new Map;for(t of e.outputs){var a=t.path;a&&-1!==a.index&&(i.has(a.account)||i.set(a.account,[]),i.get(a.account).push(a))}var s,n,o=[];for([s,n]of i){let e=-1,t=-1,i=-1;for(var p of n)switch(p.branch){case 0:p.index>e&&(e=p.index);break;case 1:p.index>t&&(t=p.index);break;case 2:p.index>i&&(i=p.index)}e+=2,t+=2,i+=2;var d=await this.getAccount(s);(d=(r(d),await d.syncDepth(e,t,i)))&&o.push(d)}return o}async getRedeem(e){"string"==typeof e&&(e=Buffer.from(e,"hex"));var t=await this.getKey(e.toString("hex"));return t?t.getRedeem(e):null}async template(e){var t=await this.deriveInputs(e);return e.sign(t)}async onSaleList(e,t){return(await(await this.getPropList()).predict(async(e,i)=>!!i.bid&&await this.belongToAccount(t,i.bid.address))).where([["pst",Y.Sale]]).paginate(10,e).records()}async mySaleList(e,t){return(await(await this.getPropList()).predict(async(e,i)=>this.belongToAccount(t,i.current.address))).where([["pst",Y.Sale]]).paginate(10,e).records()}async getPropList(){let e=await this.db.loadVpList();var t=[];for(let i=0;i<e.length;i++){let r=e[i];t.push((async()=>{await this.getPrivateKey(r.current.address)&&(e[i]=[r.pid,r])})())}return await Promise.all(t),new re(e)}async propCreate(e,t){var i,a=new b;for(i of e){var s=await this.ensureCp(i.cid,!0);if(s&&i.cid!=this.network.genesisId&&(i.gold=(0|i.gold)>>>0,!(i.gold<N.MINPROPVALUE))){if(i.pid){if(this.db.$parent&&await this.db.$parent.chain.db.getVp(i.pid))continue}else i.pid=H();i.oid||(i.oid=i.pid),a.propCreate(s.current.address,i),i.index=a.outputs.length-1}}if(0<a.outputs.length){t?await this.fund(a,{account:t}):await this.fund(a),await this.sign(a);var n,o=a.commit();for(n of(await this.db.addTX(o[0]),await this.db.send(o[0]),r(o[0].verify(o[1],x.flags.STANDARD_VERIFY_FLAGS)),e))n.hash=o[0].hash("hex"),n.txid=o[0].txid();return o}return[]}async attach(e,t){var i,a=new b;for(i of e)a.attach(i.address,i.value,i.data);if(0<a.outputs.length){t?await this.fund(a,{account:t}):await this.fund(a),await this.sign(a);var s,n=a.commit();for(s of(await this.db.addTX(n[0]),await this.db.send(n[0]),r(n[0].verify(n[1],x.flags.STANDARD_VERIFY_FLAGS)),e))s.hash=n[0].hash("hex"),s.txid=n[0].txid();return n}return[]}async sendSecret(e,t,i){let r=this.db.$contacts.get(e);if(!r||!r.sender){var a=(await this.createReceive(i)).getAddress("string");if(e==a)throw new V(U.errors.TYPE_ERROR,"Forbid Sending to Self Address.");r=await this.db.ensureContact({contact:e,messenger:a,wallet:this,account:i})}if(r)return r.send(t);throw new V(U.errors.TYPE_ERROR,"Invalid Address.")}async commNotify(e){r(!!e),r(!!e.dst),r(!!e.content);var t=new b,i=e.src||this.getReceive().toString(),a=(i=new q(G.notify,H(),this.db.curHeight,{src:i,dst:e.dst,content:e.content}),k.fromScript(x.createScript(i.toRaw(),x.types.NULLDATA),0));t.outputs.push(a),a={address:e.dst,locktime:N.BLOCK_DAY,locktype:"csb",value:.1*N.COIN},t.outputs.push(new k(a)),e.account?await this.fund(t,{account:e.account,noChange:!0,allowInfiniteFee:!0}):await this.fund(t,{noChange:!0,allowInfiniteFee:!0}),await this.sign(t),a=t.commit();return r(a[0].verify(a[1],x.flags.STANDARD_VERIFY_FLAGS)),await this.db.addTX(a[0]),this.logger.debug("Sending tx on wallet(%s): %s",this.id,a[0].txid()),await this.db.send(a[0]),i.hash=a[0].hash("hex"),i.height=-1,i}async cpRegister(e,t,i,a){if(r(!!t&&"object"==typeof t),!await this.db.client.execute("canExecute",[{confirm:!1,cid:t.cid,name:t.name,oper:G.cpRegister}]))throw new V(U.errors.TYPE_ERROR,"Invalid CP Register Info.");let s=new b;e||(n=await this.createReceive(i),e=n.getAddress());var n=await this.getKey(e);if(!n)throw new V(U.errors.TYPE_ERROR,"Invalid CP Register Address, Not along to this wallet.");if(t.pubAddress=e.toString(),t.pubKey=n.getPublicKey("hex"),t.signMethod="secp256k1",n=await this.createAllianceInfo(),t.register=n.pub.toString("hex"),s.cpRegister(e,N.registerFee,t),n=async()=>{i?await this.fund(s,{account:i}):await this.fund(s),await this.sign(s);var a=s.commit();return r(a[0].verify(a[1],x.flags.STANDARD_VERIFY_FLAGS)),await this.db.addTX(a[0]),await this.db.send(a[0]),t.txid=a[0].txid(),t.addr=e.toString(),a},!a)return n();n()}getSCAddress(e){return e=Q.fromMnemonic(B.fromOptions(N.SmartContractMnemonic),this.network).deriveAccount(44,e).derive(9).derive(1),y.fromWitnessPubkeyhash(l.hash160(e.publicKey),this.network)}async cpChange(e,t){var i=await this.ensureCp(e.cid);if(i.cid==this.network.genesisId||"ATHENA"==i.name)throw new V(U.errors.TYPE_ERROR,"Invalid cp name.");var a=await this.getTX(i.current.hash);if(!a)throw new V(U.errors.TYPE_ERROR,"Do not have permission to change this info.");if(a=a.tx,!await this.belongToAccount(t,a.outputs[0].getAddress()))throw new V(U.errors.TYPE_ERROR,"Invalid account info.");if(e.newName){if(!await this.db.client.execute("canExecute",[{confirm:!1,cid:i.cid,name:e.newName,oper:G.cpChange}]))throw new V(U.errors.TYPE_ERROR,"Invalid CP Change Info.")}else e.newName=i.name;return e.addr||(e.addr=y.fromString(i.current.address)),i=b.cpChange(a,e),t?await this.fund(i,{allowPreInput:!0,account:t}):await this.fund(i,{allowPreInput:!0}),await this.sign(i),a=i.commit(),await this.db.send(a[0]),r(a[0].verify(a[1],x.flags.STANDARD_VERIFY_FLAGS)),e.txid=a[0].txid(),a}async propExchangeList(e,t,i=!1){var a,s,n,o=new b,p=[];for([a,s,n]of e){var d,h=null;if(h=await this.getTX(a.hash)){if(h=h.tx,d=a.index,h&&h.outputs&&!(h.outputs.length<=d)){if(i){if(!await this.ownedAddress(h.outputs[d].getAddress())){this.logger.error("not owned prop:",a.hash,a.index);continue}}else if(!await this.belongToAccount(t,h.outputs[d].getAddress())){this.logger.error("not owned prop:",a.hash,a.index);continue}var l=h.outputs[d].getReturnData();l&&(o.propExchange(h,d,s),l.index=o.outputs.length-1,l.addr=s.toString(),p.push(l))}}else this.logger.error("tx not find:",a.hash,n)}return t?await this.fund(o,{allowPreInput:!0,account:t}):await this.fund(o,{allowPreInput:!0}),await this.sign(o),e=o.commit(),await this.db.addTX(e[0]),await this.db.send(e[0]),r(e[0].verify(e[1],x.flags.STANDARD_VERIFY_FLAGS)),e.push(p),e}async propDonate(e,t){var i=e.index;if(!(e=await this.getTX(e.hash))||!e.tx||!e.tx.outputs||e.tx.outputs.length<=i)throw new V(U.errors.TYPE_ERROR,"Invalid tx info.");if(!await this.belongToAccount(t,e.tx.outputs[i].getAddress()))throw new V(U.errors.TYPE_ERROR,"Props that do not belong to you.");if(!(t=e.tx.outputs[i].getReturnData()))throw new V(U.errors.TYPE_ERROR,"Invalid tx info.");if(t.cid&&t.cid==this.network.genesisId)throw new X(e.tx,"invalid","Special props that can not to donate",100);var r=new b;return(e=(r.addInputFromTx(e.tx,i),r.addOutput(x.createScript(Buffer.from(JSON.stringify({value:e.tx.outputs[i].value,cid:t.cid,pid:t.pid,oid:t.oid,gaddr:this.getAddress().toString(this.network)})),x.types.NULLDATA),0),await this.sign(r,null,M.NONE|M.ANYONECANPAY),r.commit())).push(t),e}async propReceive(e,t){var i=(e=b.fromTX(e,1)).inputs[0].prevout,r=e.outputs[0].getReturnData();e.view.addOutput({hash:e.inputs[0].prevout.hash,index:e.inputs[0].prevout.index},new k({value:r.value})),e.outputs.pop();let a=this.getAddress().toString(this.network);t&&(s={cid:r.cid,uid:t},a=(s=await this.tokenCreate(s,t)).data.addr),e.outputs.push(k.fromScript(a,r.value,{oper:G.propExchange,pid:r.pid,cid:r.cid,oid:r.oid,prev:{hash:i.hash,index:i.index}})),t?await this.fund(e,{allowPreInput:!0,account:t}):await this.fund(e,{allowPreInput:!0}),await this.sign(e,null,M.ALL,[0]);var s=e.commit();return await this.db.send(s[0]),r.simAddr=a,[s[0],null,r]}async belongToAccount(e,t){return!!t&&!(!(t=await this.getAccountByAddress(t))||e&&t.name!==e)}async propExchange(e,t,i){let a=null,s=0;var n;return Array.isArray(e)?(a=e[0],s=e[1]):(n=await this.getTX(e.hash))&&(a=n.tx,s=e.index),!a||!a.outputs||a.outputs.length<=s?(this.logger.error("Invalid tx info."),null):await this.ownedAddress(a.outputs[s].getAddress())?(n=a.outputs[s].getReturnData())?(e=(new b).propExchange(a,s,t),n.index=e.outputs.length-1,i?await this.fund(e,{allowPreInput:!0,account:i}):await this.fund(e,{allowPreInput:!0}),await this.sign(e),t=e.commit(),await this.db.addTX(t[0]),await this.db.send(t[0]),r(t[0].verify(t[1],x.flags.STANDARD_VERIFY_FLAGS)),t.push(n),t):(this.logger.error("Invalid tx info."),null):(this.logger.error("Invalid user."),null)}async propFound(e,t,i){if(e=await this.getTX(e),r(e),!(e=e.tx))throw new V(U.errors.TYPE_ERROR,"Invalid hex string.");var a=e.outputs[t],s=a.getReturnData();if(!s||s.oper!==G.propExchange&&s.oper!==G.propCreate)throw new V(U.errors.TYPE_ERROR,"Invalid tx type.");if(s.cid==this.network.genesisId)throw new X(block,"invalid","prop found supertoken",100);var n=new b;n.addInputFromTx(e,t),e=k.fromScript(a.getAddress(),a.value),n.outputs.push(e),i?await this.fund(n,{allowPreInput:!0,subtractFee:!0,account:i}):await this.fund(n,{allowPreInput:!0,subtractFee:!0}),await this.sign(n),t=n.commit();return await this.db.send(t[0]),r(t[0].verify(t[1],x.flags.STANDARD_VERIFY_FLAGS)),t.push(s),t}async propSale(e,t,i,a){let s=await this.getTX(e);if(!s)throw new V(U.errors.TYPE_ERROR,"Invalid tx info.");if(s.getDepth(this.db.curHeight)<=0)throw new V(U.errors.TYPE_ERROR,"No enough confirmations.");if(!(s=s.tx))throw new V(U.errors.TYPE_ERROR,"Invalid tx info.");var n=s.outputs[t].getReturnData([x.opcodes.OP_PROPEXCHANGE,x.opcodes.OP_PROPCREATE]);if(!n)throw new V(U.errors.TYPE_ERROR,"Invalid tx type.");if(!await this.ownedAddress(s.outputs[t].getAddress()))throw new V(U.errors.TYPE_ERROR,"Invalid tx info.");var o=await this.getCoin(e,t);if(!o||-1===o.height)throw new V(U.errors.WALLET_INSUFFICIENT_FUNDS,"Invalid coin.");if(await this.txdb.isSpent(e,t))throw new V(U.errors.WALLET_INSUFFICIENT_FUNDS,"Invalid coin.");if(i<=s.outputs[t].value)throw new V(U.errors.TYPE_ERROR,"Invalid fixed price.");if(n.cid==this.network.genesisId)throw new X(s,"invalid","prop not for sale",100);return e=(o=new b).addInputFromTx(s,t),t={oper:G.propSale,pid:n.pid,prev:{hash:e.prevout.hash,index:e.prevout.index},fixed:i,period:this.db.curHeight+N.BLOCK_DAY},n=k.fromScript(x.createScript(Buffer.from(JSON.stringify(t)),x.types.NULLDATA),0),o.outputs.push(n),await this.sign(o,null,M.SINGLE|M.ANYONECANPAY),e=o.commit(),r(e[0].verify(e[1],x.flags.STANDARD_VERIFY_FLAGS)),await this.db.send(e[0]),e}async propBuy(e,t,i){let r=null;try{(a=await this.db.client.execute("getPropById",[e]))&&(r=a[0])}catch(e){console.log("remote get prop by id",e.message)}if(!(r=r||this.db.propList.get(e))||r.pst!=Y.Sale||!r.bid||!r.bid.raw)throw new V(U.errors.INVALID_PARAMS,"Invalid Tx Hash.");var a=F.fromRaw(Buffer.from(r.bid.raw,"hex")),s=(e=(await this.createReceive(i)).getAddress(),r.gold);if(t<s)throw new Error("wrong price");if(1<a.outputs.length&&t<a.outputs[1].value)throw new Error("low bid price than before");var n=b.fromTX(a,1);if(!n.outputs[0].getReturnType(L.OP_RETURN))throw new Error("not a sale order");return await this.remove(a.hash("hex")),n.view.addOutput({hash:n.inputs[0].prevout.hash,index:n.inputs[0].prevout.index},new k({value:r.gold})),t=new k({address:r.current.address,value:t}),n.addOutput(t),t={oper:G.propExchange,pid:r.pid,cid:r.cid,oid:r.oid,prev:{hash:n.inputs[0].prevout.hash,index:n.inputs[0].prevout.index}},e=k.fromScript(e,s,t),n.outputs.push(e),i?await this.fund(n,{allowPreInput:!0,account:i}):await this.fund(n,{allowPreInput:!0}),await this.sign(n,null,M.ALL,[0]),s=n.commit(),r.owned||this.db.client.watchOutpoint((new z).fromOptions(a.inputs[0].prevout)),await this.db.send(s[0]),s}async getTXByAmount(e,t){let i=null;var r;for(r of await this.getCoins(t))if(!(r.height<=0)&&r.value==e){i=r;break}return i&&(t=await this.getTX(i.hash))?[t.tx,i.index,i.height]:[]}async contractCreate(e,t,i,a,s){if(this.db.transactionList.query(e,a)!=W.None)throw new V(U.errors.TYPE_ERROR,"Contract with the same address finded.");if(0!=parseInt(t%1e3,10))throw new V(U.errors.TYPE_ERROR,"Contract source should an integer multiple of 1000.");if(!await K.checkSum(this.network,e,a))throw new V(U.errors.TYPE_ERROR,"Create contract with an invalid Address or a Address with old transations.");let n=!1,[o,p,d]=await this.getTXByAmount(t,s);if(!o){n=!0;var h=new b;let e="";e=(s?await this.createReceive(s):this).getAddress(),h.outputs.push(k.fromScript(e,t)),s?await this.fund(h,{allowPreInput:!0,account:s}):await this.fund(h,{allowPreInput:!0}),await this.sign(h),h=h.commit(),r(h[0].verify(h[1],x.flags.STANDARD_VERIFY_FLAGS)),o=h[0],p=0,d=-1}(h=new b).addInputFromTx(o,p,d);let l="";l=(s?await this.createReceive(s):this).getAddress();var c=await this.getKey(l);e={oper:G.contractCreate,type:e,addr:a,src:t,dst:i,srcact:s,alice:c.getPublicKey("hex"),period:this.db.curHeight+N.TRANSACTION_PERIOD},a=k.fromScript(x.createScript(Buffer.from(JSON.stringify(e)),x.types.NULLDATA),0),h.outputs.push(a),await this.sign(h,null,M.SINGLE|M.ANYONECANPAY),t=h.commit();return n&&await this.db.send(o),await this.db.send(t[0]),t}async contractPromise(e,t){if(!(e=this.db.transactionList.get(e))||e.transStatus!=W.CreatedOnMem)throw new V(U.errors.INVALID_PARAMS,"Invalid Tx id.");if(!(e=F.fromRaw(Buffer.from(e.raw,"hex"))))throw new V(U.errors.TYPE_ERROR,"Invalid Tx id.");var i=K.parseContract(e);if(!i||i.oper!==G.contractCreate)throw new V(U.errors.TYPE_ERROR,"Invalid tx type.");var r=b.fromTX(e,1);if(!r.outputs[0].getReturnType(L.OP_RETURN))throw new Error("not a valid contract");r.view.addOutput({hash:r.inputs[0].prevout.hash,index:r.inputs[0].prevout.index},new k({value:i.src}));let a="";a=(t?await this.createReceive(t):this).getAddress();var s=await this.getKey(a);e={oper:G.contractPromise,prevhash:e.hash("hex"),type:i.type,addr:i.addr,dst:i.dst,srcact:i.srcact,dstact:t,bob:s.getPublicKey("hex"),period:i.period},t=new x([D.fromSymbol("promise"),D.fromData(Buffer.from(JSON.stringify(e))),D.fromSymbol("drop"),D.fromSymbol("greaterthan"),D.fromSymbol("drop"),D.fromSymbol("if"),D.fromData(l.hash160(Buffer.from(e.bob,"hex"))),D.fromSymbol("else"),D.fromData(l.hash160(Buffer.from(i.alice,"hex"))),D.fromSymbol("endif"),D.fromSymbol("checksig")]),r.outputs.push(k.fromScript(t,i.src)),await this.remove(e.prevhash),await this.sign(r,null,M.ALL,[0]),s=r.commit();return await this.db.send(s[0]),e.current={hash:s[0].hash("hex"),index:0},e.raw=s[0].toRaw().toString("hex"),e.transStatus=W.Promised,this.db.transactionList.saveContract(e,!0),s}async contractExecute(e,t){if(!(e=this.db.transactionList.get(e))||e.transStatus!=W.Confirmed&&e.transStatus!=W.Expired)throw new V(U.errors.INVALID_PARAMS,"Invalid Tx id.");if(!(e=F.fromRaw(Buffer.from(e.raw,"hex"))))throw new V(U.errors.TYPE_ERROR,"Invalid Tx id.");t=t||1;var i=K.parseContract(e);if(!i||i.oper!==G.contractPromise)throw new V(U.errors.TYPE_ERROR,"Invalid tx type.");var a=e.outputs[1].getReturnData();if(!a||a.oper!==G.contractPromise)throw new V(U.errors.TYPE_ERROR,"Invalid tx type.");r.strictEqual(i.addr,a.addr),r.strictEqual(i.type,a.type),r.strictEqual(i.dst,a.dst),r.strictEqual(i.period,a.period),r.strictEqual(i.srcact,a.srcact),r.strictEqual(i.dstact,a.dstact);var s=this.db.transactionList.query(i.type,i.addr);if(s!=W.Confirmed&&s!=W.Expired)throw new V(U.errors.TYPE_ERROR,"Contract Promise not Check yet.");if(s==W.Expired&&1!=t||s==W.Confirmed&&2!=t)throw new V(U.errors.TYPE_ERROR,"Invalid Executor.");let n=i.srcact,o=(2==t&&(n=i.dstact),"");o=(n?await this.createReceive(n):this).getAddress();var p=new b,d=(p.addInputFromTx(e,1),{oper:G.contractExecute,type:i.type,addr:i.addr,master:t});d=k.fromScript(x.createScript(Buffer.from(JSON.stringify(d)),x.types.NULLDATA),0),p.outputs.push(d),d=k.fromScript(o,e.outputs[1].value),p.outputs.push(d),e=1==t?await P.fromPublic(Buffer.from(i.ori.alice,"hex")):await P.fromPublic(Buffer.from(a.bob,"hex")),d=await this.getKey(e.getAddress()),await p.signAsync(d,x.hashType.ALL,this.db.workers),t=p.commit();return r(t[0].verify(t[1],x.flags.STANDARD_VERIFY_FLAGS,s)),await this.db.send(t[0]),t}async htlcDeal(e,t){var i=await this.getTX(e.hash);let r=null;if(t){if(!(t=await this.getAccount(t)))throw new V(U.errors.TYPE_ERROR,"Invalid Account.");r=t.getReceive().toString()}else r=this.getReceive().toString();t=new b;var a=(new x).pushOp(L.OP_1);e.suggest&&a.pushData(Buffer.from(e.sa,"hex")),t.addInput({prevout:{hash:e.hash,index:e.index},script:a}),t.addOutput(r,i.tx.outputs[e.index].value-1e4),t.view.addOutput({hash:e.hash,index:e.index},new k(i.tx.outputs[e.index])),await this.sign(t,null,M.ALL),a=t.commit();return await this.db.send(a[0]),a}async htlcCancel(e,t){let i=null;var r=await this.getTX(e.hash);if(!(i=r?r.tx.outputs[e.index]:i))throw new V(U.errors.TYPE_ERROR,"Invalid Input.");let a=null;if(t){if(!(r=await this.getAccount(t)))throw new V(U.errors.TYPE_ERROR,"Invalid Account.");a=r.getReceive().toString()}else a=this.getReceive().toString();return t=new b,r=(new x).pushOp(L.OP_0),e.suggest&&r.pushData(Buffer.from(e.sa,"hex")),t.addInput({prevout:{hash:e.hash,index:e.index},script:r}),e.suggest?t.setSequence(0,2*N.HTLC_CANCEL_PERIOD,!1):t.setSequence(0,N.HTLC_CANCEL_PERIOD,!1),t.addOutput(a,i.value-1e4),t.view.addOutput({hash:e.hash,index:e.index},new k(i)),r=await this.getKey(e.master),await t.signAsync(r,x.hashType.ALL,this.db.workers),e=t.commit(),await this.db.send(e[0]),e}async sendContracts(e,t,i){var r,a=new b;for(r of e)a.outputs.push(i.create(r));return t?await this.fund(a,{account:t}):await this.fund(a),await this.sign(a),e=a.commit(),await this.db.addTX(e[0]),await this.db.send(e[0]),e}async tokenCreate(e,t="",i){r(e&&"object"==typeof e,"Token data should be a object"),r(e.cid,"Token data should has a cid property"),r(e.uid,"Token data should has a uid property"),e.time=!0,await this.ensureAccount({name:t,witness:!0});let a=null;if(i){if(!await this.belongToAccount(t,i))throw new V(U.errors.TYPE_ERROR,`tokenCreate address error: addr:${i} is not belongs to account:`+t);a=await this.getKey(i)}else a=await this.createReceive(t,n.hashInt(e.cid),this.master);return a.signData(e)}async sign(e,t,i=x.hashType.ALL,r){if(this.watchOnly)throw new Error("Cannot sign from a watch-only wallet.");return await this.unlock(t),t=await this.deriveInputs(e),e.signAsync(t,i,this.db.workers,r)}getCoinView(e){return this.txdb.getCoinView(e)}getSpentView(e){return this.txdb.getSpentView(e)}toDetails(e){return this.txdb.toDetails(e)}getDetails(e){return this.txdb.getDetails(e)}async getCoin(e,t){return this.txdb.getCoin(e,t)}async getCredit(e,t){return this.txdb.getCredit(e,t)}async getStatusOfSC(e){return this.txdb.getStatusOfSC(e)}async setStatusOfSC(e,t){var i=await this.writeLocking();try{this.txdb.start();try{await this.txdb._setStatusOfSC(e,t),await this.txdb.commit()}catch(e){throw this.txdb.drop(),e}}finally{i()}}getLockedCoins(){return this.txdb.lockedCoins.values}getTX(e){return this.txdb.getTX(e)}getBlocks(){return this.txdb.getBlocks()}getBlock(e){return this.txdb.getBlock(e)}async add(e,t,i){var r=await this.writeLocking();try{return await this._add(e,t,i)}finally{r()}}async _add(e,t,i){let r,a;this.txdb.start();try{(r=await this.txdb._add(e,t,i))&&(a=await this.syncOutputDepth(r)),await this.txdb.commit()}catch(e){throw this.txdb.drop(),e}return a&&0<a.length&&(this.db.emit("address",this.id,a),this.emit("address",a)),r}async resetBalance(){var e,t=await this.writeLocking();try{this.txdb.start();try{for(e of(this.txdb.pending.unconfirmed=0,this.txdb.pending.confirmed=0,await this.getAccounts())){var i=await this.getBalance(e);this.txdb.pending.unconfirmed+=i.unconfirmed,this.txdb.pending.confirmed+=i.confirmed}this.txdb.put(ie.R,this.txdb.pending.commit()),await this.txdb.commit()}catch(e){throw this.txdb.drop(),e}}finally{t()}return this.txdb.state.toBalance()}async unconfirm(e){var t=await this.writeLocking();try{return await this.txdb.unconfirm(e)}finally{t()}}async remove(e){var t=await this.writeLocking();try{return await this.txdb.remove(e)}finally{t()}}async zap(e,t){var i=await this.writeLocking();try{return await this._zap(e,t)}finally{i()}}async _zap(e,t){return e=await this.ensureIndex(e),this.txdb.zap(e,t)}async abandon(e){var t=await this.writeLocking();try{return await this._abandon(e)}finally{t()}}_abandon(e){return this.txdb.abandon(e)}addUserConservedCoin(e){return this.txdb.addUserConservedCoin(e)}addSystemConservedCoin(e){return this.txdb.addSystemConservedCoin(e)}conserveCoin(e){return this.txdb.addUserConservedCoin(e)}unConserveCoin(e){return this.txdb.removeUserConservedCoin(e)}isConserved(e){return this.txdb.isConserved(e)}getConserved(){return this.txdb.getConserved()}async getHistory(e){return e=await this.ensureIndex(e),this.txdb.getHistory(e)}async getCoins(e){return e=await this.ensureIndex(e),this.txdb.getCoins(e)}async getCredits(e){return e=await this.ensureIndex(e),this.txdb.getCredits(e)}async getSmartCoins(e){e=await this.getCredits(e);var t,i,r,a=[],s=await this.getPending(),n=new Set;for(t of s)for(i of t.tx.inputs){var o=z.toKey(i.prevout.hash,i.prevout.index);n.add(o)}for(r of e){var p=r.coin,d=z.toKey(p.hash,p.index);r.spent||this.isConserved(p)||n.has(d)||-1===p.height&&!r.own||a.push(p)}return a}async getPending(e){return e=await this.ensureIndex(e),this.txdb.getPending(e)}async getBalance(e){return e=await this.ensureIndex(e),this.txdb.getBalance(e)}async queryBalanceLog(e,t=0){return(e=await this.ensureIndex(e))?this.db.queryBalanceLog(this.wid,e,t):[]}async getRange(e,t){return e&&"object"==typeof e&&(t=e,e=null),e=await this.ensureIndex(e),this.txdb.getRange(e,t)}async getLast(e,t){return e=await this.ensureIndex(e),this.txdb.getLast(e,t)}async ensureIndex(e,t){if(null==e){if(t)throw new Error("No account provided.");return null}if(-1===(t=await this.getAccountIndex(e)))throw new Error("Account not found.");return t}getAddress(e){return this.account.getAddress(e)}getReceive(e){return this.account.getReceive(e)}getChange(e){return this.account.getChange(e)}getNested(e){return this.account.getNested(e)}inspect(){return{wid:this.wid,id:this.id,network:this.network.type,initialized:this.initialized,accountDepth:this.accountDepth,token:this.token.toString("hex"),tokenDepth:this.tokenDepth,state:this.txdb.state?this.txdb.state.toJSON(!0):null,master:this.master,account:this.account}}toJSON(e){return{network:this.network.type,wid:this.wid,id:this.id,initialized:this.initialized,watchOnly:this.watchOnly,accountDepth:this.accountDepth,token:this.token.toString("hex"),tokenDepth:this.tokenDepth,height:this.db.curHeight,state:this.txdb.state.toJSON(!0),master:this.master.toJSON(e),account:this.account.toJSON(!0)}}getSize(){var e=0;return(e+=50)+o.sizeVarString(this.id,"ascii")+o.sizeVarlen(this.master.getSize())}toRaw(){var e=this.getSize();return(e=new f(e)).writeU32(this.network.magic),e.writeU32(this.wid),e.writeVarString(this.id,"ascii"),e.writeU8(this.initialized?1:0),e.writeU8(this.watchOnly?1:0),e.writeU32(this.accountDepth),e.writeBytes(this.token),e.writeU32(this.tokenDepth),e.writeVarBytes(this.master.toRaw()),e.render()}fromRaw(e){e=new u(e);var t=s.fromMagic(e.readU32());return this.wid=e.readU32(),this.id=e.readVarString("ascii"),this.initialized=1===e.readU8(),this.watchOnly=1===e.readU8(),this.accountDepth=e.readU32(),this.token=e.readBytes(32),this.tokenDepth=e.readU32(),this.master.fromRaw(e.readVarBytes()),r(t===this.db.network,"Wallet network mismatch."),this}static fromRaw(e,t){return new ae(e).fromRaw(t)}static isWallet(e){return e instanceof ae}async issueCreate(e,t,i){var r=new $(e),a=((a=(r.source.subjectName||(r.source.subjectName=r.erid),P.fromPrivate(Buffer.from(e.key,"hex"),!0,this.network))).witness=!0,r.sign(a,!0,this.network),r.toOptions(!0));return i?this.send({outputs:[{address:e.address,value:1e4}],comment:a},t):(r=await this.send({outputs:[{address:e.address,value:1e4}],comment:a},t),a.txid=r.txid()),a}async caAbolish(e,t,i){var r=P.fromPrivate(Buffer.from(e.key,"hex"),!0,this.network),a=(r.witness=!0,await this.db.client.execute("ca.byId",[e.erid]));if(!a)throw new V(U.errors.TYPE_ERROR,"ca.abolish: Invalid erid.");if(a.source.cid!=e.cid)throw new V(U.errors.TYPE_ERROR,"ca.abolish: Invalid cid.");if(a.source.uid!=e.uid)throw new V(U.errors.TYPE_ERROR,"ca.abolish: Invalid uid.");var s=a.signature;if(a.sign(r,!0,this.network),a.witness!=e.witness||a.signature!=s)throw new V(U.errors.TYPE_ERROR,"ca.abolish: You have no permission to abolish this witness.");return(a=new J(e)).sign(r),s=a.toOptions(!0),i?this.send({outputs:[{address:e.address,value:1e4}],comment:s},t):await this.send({outputs:[{address:e.address,value:1e4}],comment:s},t),s}async enchanceCp(e,t){var i=((e=new Z(e)).oper="enchanceCp",await this.ensureCp(e.to)),r=await this.ensureCp(e.from);if(!(r=await this.getKey(r.pubAddress)))throw new V(U.errors.TYPE_ERROR,"Invalid cid, Not along to this wallet.");return e.sign(r),r=e.toOptions(!0),[await this.send({outputs:[{address:i.pubAddress,value:1e4}],comment:r},t),r]}async ensureCp(e,t=!1){if(await this.db.flushCP([e]),(e=this.db.cpList.getItem(e))||t)return e;throw new V(U.errors.TYPE_ERROR,"Invalid cid, cannot find cp.")}addUTXOToBlacklist(e){if(e&&Array.isArray(e)){var t,i=Date.now();for(t of e){var r=z.toKey(t.hash,t.index);this.utxoBlacklist.set(r,i)}}}cleanupUTXOBlacklist(){var e,t,i=Date.now();for([e,t]of this.utxoBlacklist)i-t>this.utxoBlacklistTTL&&this.utxoBlacklist.delete(e)}}e.exports=ae},function(e,t,i){
347
+ let r=i(0);var a=i(13);let s=i(10),n=i(2),o=i(3),p=i(25),d=i(158),h=i(114).sortWithSeq,l=i(6),c=i(81),u=i(1),f=i(4),m=i(57),g=i(260);i(179);let w=i(90),v=i(61),y=i(8),b=i(53),x=i(11),S=i(180),_=i(101),E=i(75),k=i(22),R=i(116),A=i(263),I=i(52),C=i(18),O=i(20),N=i(7),T=i(236),P=i(31),B=_.Mnemonic,{opcodes:L,hashType:M}=i(14),D=i(140),V=i(68),U=i(69),H=i(117),z=i(37),F=i(15),K=i(34),j=i(44),{NotifyMsg:q,ContractStatus:W,ContractType:G,PropStatus:Y}=i(5),X=i(26).VerifyError,$=i(129).ErItem,J=i(130).ErAbolishItem,Z=i(188).EnchancementItem,Q=i(50),ee=i(42),te=i(67),ie=i(62).txdb,re=i(23);class ae extends a{constructor(e,t){super(),r(e,"DB required."),this.db=e,this.network=e.network,this.logger=e.logger,this.readLock=new d,this.writeLock=new p,this.sendLock=new p,this.utxoBlacklist=new Map,this.utxoBlacklistTTL=3e4,this.indexCache=new I(1e4),this.accountCache=new I(1e4),this.pathCache=new I(1e5),this.current=null,this.wid=0,this.id=null,this.initialized=!1,this.watchOnly=!1,this.accountDepth=0,this.token=o.ZERO_HASH,this.tokenDepth=0,this.master=new A,this.txdb=new g(this),this.account=null,this.securityMode=!1,this.rootPrivateKey=null,this.rootKeyEncrypted=!1,this.rootKeyIv=null,this.rootKeyCiphertext=null,t&&this.fromOptions(t)}fromOptions(e){let t,i,a=e.master;return a?("string"==typeof a&&(a=_.PrivateKey.fromBase58(a,this.network)),r(_.isPrivate(a),"Must create wallet with hd private key.")):(i=new B(e.mnemonic),a=_.fromMnemonic(i,this.network)),r(a.network===this.network,"Network mismatch for master key."),this.master.fromKey(a,i),null!=e.wid&&(r(n.isU32(e.wid)),this.wid=e.wid),e.id&&(r(v.isName(e.id),"Bad wallet ID."),t=e.id),null!=e.initialized&&(r("boolean"==typeof e.initialized),this.initialized=e.initialized),null!=e.watchOnly&&(r("boolean"==typeof e.watchOnly),this.watchOnly=e.watchOnly),null!=e.accountDepth&&(r(n.isU32(e.accountDepth)),this.accountDepth=e.accountDepth),e.token&&(r(Buffer.isBuffer(e.token)),r(32===e.token.length),this.token=e.token),t=t||this.getID(),this.id=t,this}static fromOptions(e,t){return new ae(e).fromOptions(t)}async init(e){var t=e.passphrase;r(!this.initialized),this.initialized=!0,t&&await this.master.encrypt(t),e=await this._createAccount(e,t);r(e),this.account=e,this.logger.info("Wallet initialized (%s).",this.id),await this.txdb.open()}async open(){r(this.initialized);var e=await this.getAccount(0);if(!e)throw new Error("Default account not found.");this.account=e,this.logger.info("Wallet opened (%s).",this.id),await this.txdb.open()}async ensureNotifyKey(){this.notifyKey||(await this.ensureAccount({name:"alliance",witness:!0}),this.notifyKey=await this.createReceive("alliance",1,this.master),this.notifyAddress=this.notifyKey.getAddress("string"))}async createAllianceInfo(e,t,i){var r={alliancename:e,nodeid:t};return e?(r.alliancePrivateKey=l.hash256(Buffer.concat([Buffer.from(e),this.master.key.privateKey])),i?(r.prv=Buffer.alloc(0),r.pub=Buffer.from(i,"hex"),r.awardAddress=y.fromWitnessPubkeyhash(l.hash160(r.pub),this.network.type).toString(this.network.type),i=l.hash256(Buffer.concat([r.pub,Buffer.from(t.toString())])),r.mnemonic=new B({entropy:i,language:this.master.mnemonic.language,passphrase:this.master.mnemonic.passphrase})):(i=l.hash256(Buffer.concat([Buffer.from(e+"-"+t),this.master.key.privateKey])),r.mnemonic=new B({entropy:i,language:this.master.mnemonic.language,passphrase:this.master.mnemonic.passphrase}),r.prv=l.hash256(Buffer.from(r.mnemonic.toSeed().toString("hex"))),r.pub=C.publicKeyCreate(r.prv,!0),e=A.fromKey(_.fromMnemonic(r.mnemonic),this.network.type).key.deriveAccount(44,0).derive(9).derive(1),r.awardAddress=y.fromWitnessPubkeyhash(l.hash160(e.publicKey),this.network.type).toString(this.network.type))):(await this.ensureAccount({name:"alliance",witness:!0}),i=await this.createReceive("alliance",t,this.master),r.prv=i.privateKey,r.pub=i.publicKey,r.awardAddress=y.fromWitnessPubkeyhash(l.hash160(r.pub),this.network.type).toString(this.network.type),e=l.hash256(Buffer.concat([r.prv,r.pub])),r.mnemonic=new B({entropy:e,language:this.master.mnemonic.language,passphrase:this.master.mnemonic.passphrase})),r.address=y.fromWitnessPubkeyhash(l.hash160(r.pub),this.network.type).toString(),r}async writeLocking(e){return this.writeLock.lock(e)}async destroy(){var e=await this.writeLocking();try{var t=await this.sendLock.lock();try{this.db.unregister(this),await this.master.destroy(),this.readLock.destroy()}finally{t(),this.sendLock.destroy()}}finally{e(),this.writeLock.destroy()}}async addSharedKey(e,t){var i=await this.writeLocking();try{return await this._addSharedKey(e,t)}finally{i()}}async _addSharedKey(e,t){if(t||(t=e,e=null),!(e=await this.getAccount(e=null==e?0:e)))throw new Error("Account not found.");let i;this.start();try{i=await e.addSharedKey(t)}catch(e){throw this.drop(),e}return await this.commit(),i}async removeSharedKey(e,t){var i=await this.writeLocking();try{return await this._removeSharedKey(e,t)}finally{i()}}async _removeSharedKey(e,t){if(t||(t=e,e=null),!(e=await this.getAccount(e=null==e?0:e)))throw new Error("Account not found.");let i;this.start();try{i=await e.removeSharedKey(t)}catch(e){throw this.drop(),e}return await this.commit(),i}async setPassphrase(e,t){e&&await this.decrypt(e),t&&await this.encrypt(t)}async encrypt(e){var t=await this.writeLocking();try{return await this._encrypt(e)}finally{t()}}async _encrypt(e){e=await this.master.encrypt(e,!0),this.start();try{await this.db.encryptKeys(this,e)}catch(t){throw c(e),this.drop(),t}c(e),this.save(),await this.commit()}async decrypt(e){var t=await this.writeLocking();try{return await this._decrypt(e)}finally{t()}}async _decrypt(e){e=await this.master.decrypt(e,!0),this.start();try{await this.db.decryptKeys(this,e)}catch(t){throw c(e),this.drop(),t}c(e),this.save(),await this.commit()}async rename(e){var t=await this.writeLocking();try{return await this.db.rename(this,e)}finally{t()}}async writeBalanceLog(e){var t=await this.writeLocking();try{return await this.db.writeBalanceLog(this,e)}finally{t()}}async renameAccount(e,t){var i=await this.writeLocking();try{return await this._renameAccount(e,t)}finally{i()}}async _renameAccount(e,t){if(!v.isName(t))throw new Error("Bad account name.");var i=await this.getAccount(e);if(!i)throw new Error("Account not found.");if(0===i.accountIndex)throw new Error("Cannot rename default account.");if(await this.hasAccount(t))throw new Error("Account name not available.");var r;e=i.name,this.start(),this.db.renameAccount(i,t),await this.commit(),this.indexCache.remove(e),e=this.pathCache.values();for(r of e)r.account===i.accountIndex&&(r.name=t)}async lock(){var e=await this.writeLocking();try{var t=await this.sendLock.lock();try{await this.master.lock()}finally{t()}}finally{e()}}unlock(e,t){return this.master.unlock(e,t)}getID(){r(this.master.key,"Cannot derive id.");var e,t=this.master.key.derive(44);(e=new f(37)).writeBytes(t.publicKey),e.writeU32(this.network.magic),t=l.hash160(e.render());return(e=new f(27)).writeU8(3),e.writeU8(190),e.writeU8(4),e.writeBytes(t),e.writeChecksum(),m.encode(e.render())}async createAccount(e,t){var i=await this.writeLocking();try{return await this._createAccount(e,t)}finally{i()}}async _createAccount(e,t){let i,a,s=e.name,o=(s=s||this.accountDepth.toString(10),0);if(0!=this.accountDepth&&(o=n.hashInt(s)),await this.hasAccountIndex(o))throw new Error("Account Index Conflict.");if(await this.hasAccount(s))throw new Error("Account already exists.");if(await this.unlock(t),this.watchOnly&&e.accountKey){if("string"==typeof(i=e.accountKey)&&(i=_.PublicKey.fromBase58(i,this.network)),!_.isPublic(i))throw new Error("Must add HD public keys to watch only wallet.");r(i.network===this.network,"Network mismatch for watch only key.")}else r(this.master.key),i=(i=this.master.key.deriveAccount(44,o)).toPublic();t={wid:this.wid,id:this.id,name:0===this.accountDepth?"default":s,witness:e.witness,watchOnly:this.watchOnly,accountKey:i,accountIndex:o,type:e.type,m:e.m,n:e.n,keys:e.keys},this.start();try{(a=R.fromOptions(this.db,t)).wallet=this,await a.init()}catch(e){throw this.drop(),e}return this.logger.info("Created account %s/%s/%d.",a.id,a.name,a.accountIndex),this.accountDepth++,this.save(),await this.commit(),a}async ensureAccount(e,t){var i=e.name;return(i=await this.getAccount(i))||this.createAccount(e,t)}getAccounts(){return this.db.getAccounts(this.wid)}getAccountMap(){return this.db.getAccountMap(this.wid)}getAddressHashes(e){return null!=e?this.getAccountHashes(e):this.db.getWalletHashes(this.wid)}async getAccountHashes(e){return e=await this.ensureIndex(e,!0),this.db.getAccountHashes(this.wid,e)}async getAccount(e){if(this.account&&(null==e||"default"===e||"number"==typeof e&&0===e||"string"==typeof e&&0===e.length))return this.account;if(-1===(e=await this.getAccountIndex(e)))return null;var t=await this.readLock.lock(e);try{return await this._getAccount(e)}finally{t()}}async _getAccount(e){var t=this.accountCache.get(e);return t||((t=await this.db.getAccount(this.wid,e))?(t.wallet=this,t.wid=this.wid,t.id=this.id,t.watchOnly=this.watchOnly,await t.open(),this.accountCache.set(e,t),t):null)}async getAccountIndex(e){var t;return null==e?-1:"number"==typeof e?e:null!=(t=this.indexCache.get(e))?t:-1===(t=await this.db.getAccountIndex(this.wid,e))?-1:(this.indexCache.set(e,t),t)}async getAccountName(e){var t;return"string"==typeof e?e:(t=this.accountCache.get(e))?t.name:this.db.getAccountName(this.wid,e)}async hasAccount(e){return-1!==(e=await this.getAccountIndex(e))&&(!!this.accountCache.has(e)||this.db.hasAccount(this.wid,e))}async hasAccountIndex(e){return!!this.accountCache.has(e)||this.db.hasAccount(this.wid,e)}createReceive(e,t=0,i=null){return this.createKey(e,0,t,i)}createChange(e){return this.createKey(e,1)}createNested(e){return this.createKey(e,2)}async createKey(e,t,i=0,r=null){var a=await this.writeLocking();try{return await this._createKey(e,t,i,r)}finally{a()}}async _createKey(e,t,i=0,r=null){if(null==t&&(t=e,e=null),!(e=await this.getAccount(e=e||0)))throw new Error("Account not found.");let a;this.start();try{a=await e.createKey(t,i,r)}catch(e){throw this.drop(),e}return await this.commit(),a}async deriveKey(e,t,i,r=null){let a=null;var s=await this.writeLocking();try{this.start(),a=await this._deriveKey(e,t,i,r),await this.commit()}catch(e){throw this.drop(),e}finally{s()}return a}async _deriveKey(e,t,i=0,r=null){if(null==t&&(t=e,e=null),e=e||0,e=parseInt(e),e=await this.getAccount(e))return t=await e.deriveKey(t,i,r),await e.saveKey(t),t;throw new Error("Account not found.")}save(){return this.db.save(this)}async saveAccount(e){var t=await this.writeLocking();try{this.start(),e._save(),await this.commit(),0==e.accountIndex&&(this.account=e)}finally{t()}}start(){return this.db.start(this)}drop(){return this.db.drop(this)}clear(){return this.db.clear(this)}commit(){return this.db.commit(this)}async hasAddress(e){return e=y.getHash(e,"hex"),null!=await this.getPath(e)}async ownedAddress(e){return!!await this.getKey(e)}async checkAndRepairUTXOs(){if(this.logger.info("Starting UTXO check and repair process..."),this.db.$parent){try{var e=await this.getPending();if(0<e.length){this.logger.info("Found %d pending transactions, attempting to resend...",e.length);var t,i=[];for(t of e)i.push(t.tx);var r,a=h(i),s=[];for(r of a)try{await this.db.send(r),this.logger.debug("Resent transaction: %s",r.txid())}catch(e){this.logger.warning("Failed to resend transaction %s: %s",r.txid(),e.message),s.push(r)}if(0<s.length)for(var n of(this.logger.info("Abandoning %d failed transactions...",s.length),s))try{await this.abandon(n.txid()),this.logger.debug("Abandoned transaction: %s",n.txid())}catch(e){this.logger.warning("Failed to abandon transaction %s: %s",n.txid(),e.message)}}else this.logger.info("No pending transactions found.")}catch(e){this.logger.warning("Error processing pending transactions: %s",e.message)}var o=[];let g=0,w=0;try{var p,d=new Set;for(p of await this.getPending())d.add(p.hash);var l=await this.getCoins();for(let t=0;t<l.length;t+=1e3){var c,u=l.slice(t,t+1e3);for(c of u)try{if(d.has(c.hash))this.logger.debug("UTXO %s/%d belongs to pending transaction, waiting for confirmation.",c.hash,c.index);else if(!await this.db.$parent.getCoin(c.hash,c.index)){o.push({hash:c.txid(),index:c.index});try{this.txdb.addSystemConservedCoin(c);try{var f,m=await this.txdb.getCredit(c.hash,c.index);m&&(f=await this.getPath(c.getAddress()))&&(this.current||this.start(),await this.txdb.removeCredit(m,f),this.txdb.removeLocked(c),this.logger.info("Fixed UTXO %s/%d by removing from UTXO set",c.hash,c.index))}catch(e){this.logger.warning("Failed to remove UTXO %s/%d from set: %s",c.hash,c.index,e.message)}this.logger.info("Fixed UTXO %s/%d by adding to system conserved coins",c.hash,c.index),w++}catch(e){this.logger.warning("Failed to fix UTXO %s/%d: %s",c.hash,c.index,e.message)}}}catch(e){this.logger.warning("Error checking UTXO %s/%d: %s",c.hash,c.index,e.message)}(g+=u.length)%1e3==0&&this.logger.info("UTXO check progress: %d processed, %d fixed",g,w)}if(this.current)try{await this.commit(),this.logger.info("UTXO check changes committed to database")}catch(e){this.logger.error("Error committing UTXO check changes: %s",e.message)}this.logger.info("UTXO check completed: processed %d UTXOs, found %d issues, fixed %d issues",g,o.length,w)}catch(e){this.logger.error("Error in UTXO check process: %s",e.message)}}else this.logger.warning("No parent chain available for UTXO verification, skipping...")}async forceRescan(){try{this.logger.info("Starting force rescan process..."),this.db&&(this.db.rescanning=!0),await this.db.getTip(),await this.db.rescan(0),this.logger.info("Force rescan completed successfully.")}catch(e){throw this.logger.error("Error during force rescan: %s",e.message),e}finally{this.db&&(this.db.rescanning=!1)}}async injectRootKey(e,t){var i=await this.writeLocking();try{await this._cleanLocalKeys();var r=random.randomBytes(16),a=await this.master.derive(t),s=aes.encipher(e,a,r);this.rootPrivateKey=e,this.rootKeyEncrypted=!0,this.rootKeyIv=r,this.rootKeyCiphertext=s,this.securityMode=!0,this.logger.info("Root private key injected successfully in security mode.")}finally{i()}}async extractRootKey(e){var t,i,r=await this.writeLocking();try{if(this.securityMode&&this.rootKeyEncrypted)return t=await this.master.derive(e),i=aes.decipher(this.rootKeyCiphertext,t,this.rootKeyIv),await this._cleanLocalKeys(),this.logger.info("Root private key extracted successfully."),i;throw new Error("Not in security mode or root key not encrypted.")}finally{r()}}async deriveKeyFromRoot(e,t){if(!this.securityMode)throw new Error("Not in security mode.");var i;this.rootKeyEncrypted&&(t=await this.master.derive(t),this.rootPrivateKey=aes.decipher(this.rootKeyCiphertext,t,this.rootKeyIv));let r=_.PrivateKey.fromRaw(this.rootPrivateKey);for(i of e.split("/").filter(e=>"m"!==e)){var a=parseInt(i.replace("'","")),s=i.endsWith("'");r=r.derive(a,s)}return r}async _cleanLocalKeys(){var e;for(e of(this.master.key&&(this.master.key.destroy(!0),this.master.key=null),await this.getAccounts())){var t=await this.getAccount(e.name);t&&(t.key=null)}this.accountCache.clear(),this.pathCache.clear()}async getPath(e){return(e=await this.readPath(e))?(e.name=await this.getAccountName(e.account),r(e.name),this.pathCache.set(e.hash,e),e):null}async readPath(e){e=y.getHash(e,"hex");var t=this.pathCache.get(e);return t||((t=await this.db.getPath(this.wid,e))?(t.id=this.id,t):null)}async hasPath(e){return e=y.getHash(e,"hex"),!!this.pathCache.has(e)||this.db.hasPath(this.wid,e)}async getPaths(e){if(null!=e)return this.getAccountPaths(e);var t,i=[];for(t of await this.db.getWalletPaths(this.wid))t.id=this.id,t.name=await this.getAccountName(t.account),r(t.name),this.pathCache.set(t.hash,t),i.push(t);return i}async getAccountPaths(e){var t,i=await this.ensureIndex(e,!0),a=await this.getAccountHashes(i),s=await this.getAccountName(e),n=(r(s),[]);for(t of a){var o=await this.readPath(t);r(o),r(o.account===i),o.name=s,this.pathCache.set(o.hash,o),n.push(o)}return n}async importKey(e,t,i){var r=await this.writeLocking();try{return await this._importKey(e,t,i)}finally{r()}}async _importKey(e,t,i){if(e&&"object"==typeof e&&(i=t,t=e,e=null),null==e&&(e=0),r(t.network===this.network,"Network mismatch for key."),this.watchOnly){if(t.privateKey)throw new Error("Cannot import privkey into watch-only wallet.")}else if(!t.privateKey)throw new Error("Cannot import pubkey into non watch-only wallet.");var a=t.getHash("hex");if(await this.getPath(a))throw new Error("Key already exists.");if(!(a=await this.getAccount(e)))throw new Error("Account not found.");if(a.type!==R.types.PUBKEYHASH)throw new Error("Cannot import into non-pkh account.");await this.unlock(i),e=S.fromRing(a,t).toPath(),this.master.encrypted&&(e.data=this.master.encipher(e.data,e.hash),r(e.data),e.encrypted=!0),this.start();try{await a.savePath(e)}catch(e){throw this.drop(),e}await this.commit()}async importAddress(e,t){var i=await this.writeLocking();try{return await this._importAddress(e,t)}finally{i()}}async _importAddress(e,t){if(t||(t=e,e=null),null==e&&(e=0),t.network!==this.network)throw new Error("Network mismatch for address.");if(!this.watchOnly)throw new Error("Cannot import address into non watch-only wallet.");if(await this.getPath(t))throw new Error("Address already exists.");if(!(e=await this.getAccount(e)))throw new Error("Account not found.");if(e.type!==R.types.PUBKEYHASH)throw new Error("Cannot import into non-pkh account.");t=w.fromAddress(e,t),this.start();try{await e.savePath(t)}catch(e){throw this.drop(),e}await this.commit()}async fund(e,t){var i=await this.writeLocking();try{var r,a=await this._fund(e,t),s=[];for(r of e.inputs){var n=e.view.getCoinFor(r);n&&s.push(n)}return this.addUTXOToBlacklist(s),a}finally{i()}}async _fund(e,t){if(t=t||{},!this.initialized)throw new Error("Wallet is not initialized.");if(this.watchOnly)throw new Error("Cannot fund from watch-only wallet.");let i;if(i=t.account&&(i=t.account,this.db.$parent)&&this.db.$parent.config.str("account-change")?this.db.$parent.config.str("account-change"):i){if(!(i=await this.getAccount(i)))throw new Error("Account not found.")}else i=this.account;if(!i.initialized)throw new Error("Account is not initialized.");let a,s=t.rate;return null==s&&(s=await this.db.estimateFee(t.blocks)),a=t.smart?await this.getSmartCoins(i.name):(a=await this.getCoins(i.name),this.txdb.filterConserved(a)),this.cleanupUTXOBlacklist(),a=a.filter(e=>(e=z.toKey(e.hash,e.index),!this.utxoBlacklist.has(e))),await e.fund(a,{allowPreInput:t.allowPreInput,noChange:t.noChange,selection:t.selection,round:t.round,depth:t.depth,hardFee:t.hardFee,subtractFee:t.subtractFee,subtractIndex:t.subtractIndex,changeAddress:i.change.getAddress(),height:this.db.curHeight,rate:s,maxFee:t.maxFee,estimate:e=>this.estimateSize(e),network:this.network}),!t.allowInfiniteFee&&t.noChange&&r(e.getFee()<=T.MAX_FEE,"TX exceeds MAX_FEE."),a}async getAccountByAddress(e){return e=y.getHash(e,"hex"),(e=await this.getPath(e))?this.getAccount(e.account):null}async estimateSize(e){var t=N.WITNESS_SCALE_FACTOR,i=y.fromScript(e);if(!i)return-1;var r=await this.getAccountByAddress(i);if(!r)return-1;let a=0;if(e.isScripthash()&&r.witness)switch(r.type){case R.types.PUBKEYHASH:a=4*(a+23);break;case R.types.MULTISIG:a=4*(a+35)}switch(r.type){case R.types.PUBKEYHASH:a=a+74+34;break;case R.types.MULTISIG:a=(a=(a=(a=(a+=1)+74*r.m)+3+1)+34*r.n)+1+1}return r.witness?a=((a+=1)+t-1)/t|0:a+=o.sizeVarint(a),a}async createTX(e){var t,i=e.outputs,a=new b;for(t of(r(Array.isArray(i),"Outputs must be an array."),r(0<i.length,"No outputs available."),e.comment&&("object"==typeof e.comment&&(e.comment=JSON.stringify(e.comment)),a.outputs.push(k.fromScript(x.createScript(Buffer.from(e.comment),x.types.NULLDATA),0))),i)){var s=new k(t),n=s.getAddress();if(s.isDust())throw new Error("Output is dust.");if(0<s.value){if(!n)throw new Error("Cannot send to unknown address.");if(n.isNull())throw new Error("Cannot send to null address.")}a.outputs.push(s)}let o=null;if(e.inputs)for(var p of e.inputs){var d=await this.getTX(p.hash);d&&(d=j.fromTX(d.tx,p.index,-1,0))&&(o=d.getAddress(),e.allowPreInput=!0,a.addCoin(d))}else await this.fund(a,e);if(o&&((i=new k).value=a.getFee()-T.MIN_FEE,i.script.fromAddress(o),a.outputs.push(i),a.changeIndex=a.outputs.length-1),!1!==e.sort&&a.sortMembers(),null!=e.locktime&&a.setLocktime(e.locktime),r(a.isSane(),"TX failed sanity check."),r(a.verifyInputs(this.db.curHeight+1),"TX failed context check."),0===await this.template(a))throw new Error("Templating failed.");return a}async send(e,t){var i=await this.sendLock.lock();try{return await this._send(e,t)}finally{i()}}async _send(e,t){return t&&(e.account=t),t=await this.createTX(e,!0),await this.sign(t),this.sendMTX(t,{sendafter:e.sendafter})}async sendMTX(e,t={}){if(!e.isSigned())throw new Error("TX could not be fully signed.");var i=e.toTX();if(i.getSigopsCost(e.view)>O.MAX_TX_SIGOPS_COST)throw new Error("TX exceeds policy sigops.");if(i.getWeight()>O.MAX_TX_WEIGHT)throw new Error("TX exceeds policy weight.");return t.sendafter||(this.logger.debug("Sending wallet tx (%s): %s",this.id,i.txid()),await this.db.addTX(i),await this.db.send(i)),i}async resend(){var e,t,i=await this.getPending(),r=(0<i.length&&this.logger.info("Rebroadcasting %d transactions.",i.length),[]);for(e of i)r.push(e.tx);for(t of h(r))await this.db.send(t);return r}async deriveInputs(e){r(e.mutable);var t,i=[];for(t of await this.getInputPaths(e)){var a=await this.getAccount(t.account);a&&(a=a.derivePath(t,this.master))&&i.push(a)}return i}async getKey(e){try{var t,i=y.getHash(e,"hex",this.network.type),r=await this.getPath(i);return r&&(t=await this.getAccount(r.account))?t.derivePath(r,this.master):null}catch{return null}}async exportToFile(e){if(!ee.unsupported){var t=await this.db.getTip(),i=n.date();let l="",c=[n.fmt("# Wallet Backup "),n.fmt("# Dump created by %s %s",te.protocol,te.version),n.fmt("# * Created on %s",i),n.fmt("# * Best block at time of backup was %d (%s).",t.height,n.revHex(t.hash)),n.fmt("# * File: %s",e.file),""];t="W %s wid= %s";var r,a,s,o=this.toRaw().toString("base64");t=(e.password&&e.network?(r=E.encrypt({body:o,password:e.password,network:e.network}),r=n.fmt(t,r,this.wid),c.push("# Encrypted Wallet: "+r)):(r=n.fmt(t,o,this.wid),c.push(r)),await this.getAccounts());for(a of t){var p=await this.getAccount(a);p=n.fmt("C %s name= %s index= %d",p.toRaw().toString("base64"),p.name,p.accountIndex);c.push(p)}for(s of await this.getAddressHashes()){let t,r=0,a=-1,o=-1,p="S";(d=await this.getPrivateKey(s))?(r=d.account,a=d.branch,o=d.index,(h=await this.getPath(s))&&1===h.keyType?(p=d.toSecret(),t=d.getAddress("string"),e.password&&e.network&&(p="# Encrypted Secret: "+(h=E.encrypt({body:p,password:e.password,network:e.network})))):t=""):t=y.fromWitnessPubkeyhash(Buffer.from(s,"hex"),this.network.type).toString();var d=t?"A %s %s label= account= %s branch= %s index= %s addr= %s":"A %s %s label= account= %s branch= %s index= %s",h=t?n.fmt(d,p,i,r,a,o,t):n.fmt(d,p,i,r,a,o);c.push(h),e.fragment&&1e5<c.length&&(l=c.join("\n"),await ee.writeFile(e.file.split(".").reduce((e,t)=>(e?e+="."+t:e=t+"-1",e),""),l,"utf8"),c=[])}c.push(""),c.push("# End of dump"),c.push(""),l=c.join("\n"),await ee.writeFile(e.file,l,"utf8")}}async getPrivateKey(e,t){if(e=y.getHash(e,"hex"),!(e=await this.getPath(e)))return null;var i=await this.getAccount(e.account);return i?(await this.unlock(t),(t=i.derivePath(e,this.master)).privateKey?t:null):null}async getInputPaths(e){if(r(e.mutable),!e.hasCoins())throw new Error("Not all coins available.");var t,i=[];for(t of e.getInputHashes("hex")){var a=await this.getPath(t);a&&i.push(a)}return i}async getOutputPaths(e){var t,i=[];for(t of e.getOutputHashes("hex")){var r=await this.getPath(t);r&&i.push(r)}return i}async setLookahead(e,t){var i=await this.writeLocking();try{return await this._setLookahead(e,t)}finally{i()}}async _setLookahead(e,t){if(null==t&&(t=e,e=null),!(e=await this.getAccount(e=null==e?0:e)))throw new Error("Account not found.");this.start();try{await e.setLookahead(t)}catch(e){throw this.drop(),e}await this.commit()}async syncOutputDepth(e){var t,i=new Map;for(t of e.outputs){var a=t.path;a&&-1!==a.index&&(i.has(a.account)||i.set(a.account,[]),i.get(a.account).push(a))}var s,n,o=[];for([s,n]of i){let e=-1,t=-1,i=-1;for(var p of n)switch(p.branch){case 0:p.index>e&&(e=p.index);break;case 1:p.index>t&&(t=p.index);break;case 2:p.index>i&&(i=p.index)}e+=2,t+=2,i+=2;var d=await this.getAccount(s);(d=(r(d),await d.syncDepth(e,t,i)))&&o.push(d)}return o}async getRedeem(e){"string"==typeof e&&(e=Buffer.from(e,"hex"));var t=await this.getKey(e.toString("hex"));return t?t.getRedeem(e):null}async template(e){var t=await this.deriveInputs(e);return e.sign(t)}async onSaleList(e,t){return(await(await this.getPropList()).predict(async(e,i)=>!!i.bid&&await this.belongToAccount(t,i.bid.address))).where([["pst",Y.Sale]]).paginate(10,e).records()}async mySaleList(e,t){return(await(await this.getPropList()).predict(async(e,i)=>this.belongToAccount(t,i.current.address))).where([["pst",Y.Sale]]).paginate(10,e).records()}async getPropList(){let e=await this.db.loadVpList();var t=[];for(let i=0;i<e.length;i++){let r=e[i];t.push((async()=>{await this.getPrivateKey(r.current.address)&&(e[i]=[r.pid,r])})())}return await Promise.all(t),new re(e)}async propCreate(e,t){var i,a=new b;for(i of e){var s=await this.ensureCp(i.cid,!0);if(s&&i.cid!=this.network.genesisId&&(i.gold=(0|i.gold)>>>0,!(i.gold<N.MINPROPVALUE))){if(i.pid){if(this.db.$parent&&await this.db.$parent.chain.db.getVp(i.pid))continue}else i.pid=H();i.oid||(i.oid=i.pid),a.propCreate(s.current.address,i),i.index=a.outputs.length-1}}if(0<a.outputs.length){t?await this.fund(a,{account:t}):await this.fund(a),await this.sign(a);var n,o=a.commit();for(n of(await this.db.addTX(o[0]),await this.db.send(o[0]),r(o[0].verify(o[1],x.flags.STANDARD_VERIFY_FLAGS)),e))n.hash=o[0].hash("hex"),n.txid=o[0].txid();return o}return[]}async attach(e,t){var i,a=new b;for(i of e)a.attach(i.address,i.value,i.data);if(0<a.outputs.length){t?await this.fund(a,{account:t}):await this.fund(a),await this.sign(a);var s,n=a.commit();for(s of(await this.db.addTX(n[0]),await this.db.send(n[0]),r(n[0].verify(n[1],x.flags.STANDARD_VERIFY_FLAGS)),e))s.hash=n[0].hash("hex"),s.txid=n[0].txid();return n}return[]}async sendSecret(e,t,i){let r=this.db.$contacts.get(e);if(!r||!r.sender){var a=(await this.createReceive(i)).getAddress("string");if(e==a)throw new V(U.errors.TYPE_ERROR,"Forbid Sending to Self Address.");r=await this.db.ensureContact({contact:e,messenger:a,wallet:this,account:i})}if(r)return r.send(t);throw new V(U.errors.TYPE_ERROR,"Invalid Address.")}async commNotify(e){r(!!e),r(!!e.dst),r(!!e.content);var t=new b,i=e.src||this.getReceive().toString(),a=(i=new q(G.notify,H(),this.db.curHeight,{src:i,dst:e.dst,content:e.content}),k.fromScript(x.createScript(i.toRaw(),x.types.NULLDATA),0));t.outputs.push(a),a={address:e.dst,locktime:N.BLOCK_DAY,locktype:"csb",value:.1*N.COIN},t.outputs.push(new k(a)),e.account?await this.fund(t,{account:e.account,noChange:!0,allowInfiniteFee:!0}):await this.fund(t,{noChange:!0,allowInfiniteFee:!0}),await this.sign(t),a=t.commit();return r(a[0].verify(a[1],x.flags.STANDARD_VERIFY_FLAGS)),await this.db.addTX(a[0]),this.logger.debug("Sending tx on wallet(%s): %s",this.id,a[0].txid()),await this.db.send(a[0]),i.hash=a[0].hash("hex"),i.height=-1,i}async cpRegister(e,t,i,a){if(r(!!t&&"object"==typeof t),!await this.db.client.execute("canExecute",[{confirm:!1,cid:t.cid,name:t.name,oper:G.cpRegister}]))throw new V(U.errors.TYPE_ERROR,"Invalid CP Register Info.");let s=new b;e||(n=await this.createReceive(i),e=n.getAddress());var n=await this.getKey(e);if(!n)throw new V(U.errors.TYPE_ERROR,"Invalid CP Register Address, Not along to this wallet.");if(t.pubAddress=e.toString(),t.pubKey=n.getPublicKey("hex"),t.signMethod="secp256k1",n=await this.createAllianceInfo(),t.register=n.pub.toString("hex"),s.cpRegister(e,N.registerFee,t),n=async()=>{i?await this.fund(s,{account:i}):await this.fund(s),await this.sign(s);var a=s.commit();return r(a[0].verify(a[1],x.flags.STANDARD_VERIFY_FLAGS)),await this.db.addTX(a[0]),await this.db.send(a[0]),t.txid=a[0].txid(),t.addr=e.toString(),a},!a)return n();n()}getSCAddress(e){return e=Q.fromMnemonic(B.fromOptions(N.SmartContractMnemonic),this.network).deriveAccount(44,e).derive(9).derive(1),y.fromWitnessPubkeyhash(l.hash160(e.publicKey),this.network)}async cpChange(e,t){var i=await this.ensureCp(e.cid);if(i.cid==this.network.genesisId||"ATHENA"==i.name)throw new V(U.errors.TYPE_ERROR,"Invalid cp name.");var a=await this.getTX(i.current.hash);if(!a)throw new V(U.errors.TYPE_ERROR,"Do not have permission to change this info.");if(a=a.tx,!await this.belongToAccount(t,a.outputs[0].getAddress()))throw new V(U.errors.TYPE_ERROR,"Invalid account info.");if(e.newName){if(!await this.db.client.execute("canExecute",[{confirm:!1,cid:i.cid,name:e.newName,oper:G.cpChange}]))throw new V(U.errors.TYPE_ERROR,"Invalid CP Change Info.")}else e.newName=i.name;return e.addr||(e.addr=y.fromString(i.current.address)),i=b.cpChange(a,e),t?await this.fund(i,{allowPreInput:!0,account:t}):await this.fund(i,{allowPreInput:!0}),await this.sign(i),a=i.commit(),await this.db.send(a[0]),r(a[0].verify(a[1],x.flags.STANDARD_VERIFY_FLAGS)),e.txid=a[0].txid(),a}async propExchangeList(e,t,i=!1){var a,s,n,o=new b,p=[];for([a,s,n]of e){var d,h=null;if(h=await this.getTX(a.hash)){if(h=h.tx,d=a.index,h&&h.outputs&&!(h.outputs.length<=d)){if(i){if(!await this.ownedAddress(h.outputs[d].getAddress())){this.logger.error("not owned prop:",a.hash,a.index);continue}}else if(!await this.belongToAccount(t,h.outputs[d].getAddress())){this.logger.error("not owned prop:",a.hash,a.index);continue}var l=h.outputs[d].getReturnData();l&&(o.propExchange(h,d,s),l.index=o.outputs.length-1,l.addr=s.toString(),p.push(l))}}else this.logger.error("tx not find:",a.hash,n)}return t?await this.fund(o,{allowPreInput:!0,account:t}):await this.fund(o,{allowPreInput:!0}),await this.sign(o),e=o.commit(),await this.db.addTX(e[0]),await this.db.send(e[0]),r(e[0].verify(e[1],x.flags.STANDARD_VERIFY_FLAGS)),e.push(p),e}async propDonate(e,t){var i=e.index;if(!(e=await this.getTX(e.hash))||!e.tx||!e.tx.outputs||e.tx.outputs.length<=i)throw new V(U.errors.TYPE_ERROR,"Invalid tx info.");if(!await this.belongToAccount(t,e.tx.outputs[i].getAddress()))throw new V(U.errors.TYPE_ERROR,"Props that do not belong to you.");if(!(t=e.tx.outputs[i].getReturnData()))throw new V(U.errors.TYPE_ERROR,"Invalid tx info.");if(t.cid&&t.cid==this.network.genesisId)throw new X(e.tx,"invalid","Special props that can not to donate",100);var r=new b;return(e=(r.addInputFromTx(e.tx,i),r.addOutput(x.createScript(Buffer.from(JSON.stringify({value:e.tx.outputs[i].value,cid:t.cid,pid:t.pid,oid:t.oid,gaddr:this.getAddress().toString(this.network)})),x.types.NULLDATA),0),await this.sign(r,null,M.NONE|M.ANYONECANPAY),r.commit())).push(t),e}async propReceive(e,t){var i=(e=b.fromTX(e,1)).inputs[0].prevout,r=e.outputs[0].getReturnData();e.view.addOutput({hash:e.inputs[0].prevout.hash,index:e.inputs[0].prevout.index},new k({value:r.value})),e.outputs.pop();let a=this.getAddress().toString(this.network);t&&(s={cid:r.cid,uid:t},a=(s=await this.tokenCreate(s,t)).data.addr),e.outputs.push(k.fromScript(a,r.value,{oper:G.propExchange,pid:r.pid,cid:r.cid,oid:r.oid,prev:{hash:i.hash,index:i.index}})),t?await this.fund(e,{allowPreInput:!0,account:t}):await this.fund(e,{allowPreInput:!0}),await this.sign(e,null,M.ALL,[0]);var s=e.commit();return await this.db.send(s[0]),r.simAddr=a,[s[0],null,r]}async belongToAccount(e,t){return!!t&&!(!(t=await this.getAccountByAddress(t))||e&&t.name!==e)}async propExchange(e,t,i){let a=null,s=0;var n;return Array.isArray(e)?(a=e[0],s=e[1]):(n=await this.getTX(e.hash))&&(a=n.tx,s=e.index),!a||!a.outputs||a.outputs.length<=s?(this.logger.error("Invalid tx info."),null):await this.ownedAddress(a.outputs[s].getAddress())?(n=a.outputs[s].getReturnData())?(e=(new b).propExchange(a,s,t),n.index=e.outputs.length-1,i?await this.fund(e,{allowPreInput:!0,account:i}):await this.fund(e,{allowPreInput:!0}),await this.sign(e),t=e.commit(),await this.db.addTX(t[0]),await this.db.send(t[0]),r(t[0].verify(t[1],x.flags.STANDARD_VERIFY_FLAGS)),t.push(n),t):(this.logger.error("Invalid tx info."),null):(this.logger.error("Invalid user."),null)}async propFound(e,t,i){if(e=await this.getTX(e),r(e),!(e=e.tx))throw new V(U.errors.TYPE_ERROR,"Invalid hex string.");var a=e.outputs[t],s=a.getReturnData();if(!s||s.oper!==G.propExchange&&s.oper!==G.propCreate)throw new V(U.errors.TYPE_ERROR,"Invalid tx type.");if(s.cid==this.network.genesisId)throw new X(block,"invalid","prop found supertoken",100);var n=new b;n.addInputFromTx(e,t),e=k.fromScript(a.getAddress(),a.value),n.outputs.push(e),i?await this.fund(n,{allowPreInput:!0,subtractFee:!0,account:i}):await this.fund(n,{allowPreInput:!0,subtractFee:!0}),await this.sign(n),t=n.commit();return await this.db.send(t[0]),r(t[0].verify(t[1],x.flags.STANDARD_VERIFY_FLAGS)),t.push(s),t}async propSale(e,t,i,a){let s=await this.getTX(e);if(!s)throw new V(U.errors.TYPE_ERROR,"Invalid tx info.");if(s.getDepth(this.db.curHeight)<=0)throw new V(U.errors.TYPE_ERROR,"No enough confirmations.");if(!(s=s.tx))throw new V(U.errors.TYPE_ERROR,"Invalid tx info.");var n=s.outputs[t].getReturnData([x.opcodes.OP_PROPEXCHANGE,x.opcodes.OP_PROPCREATE]);if(!n)throw new V(U.errors.TYPE_ERROR,"Invalid tx type.");if(!await this.ownedAddress(s.outputs[t].getAddress()))throw new V(U.errors.TYPE_ERROR,"Invalid tx info.");var o=await this.getCoin(e,t);if(!o||-1===o.height)throw new V(U.errors.WALLET_INSUFFICIENT_FUNDS,"Invalid coin.");if(await this.txdb.isSpent(e,t))throw new V(U.errors.WALLET_INSUFFICIENT_FUNDS,"Invalid coin.");if(i<=s.outputs[t].value)throw new V(U.errors.TYPE_ERROR,"Invalid fixed price.");if(n.cid==this.network.genesisId)throw new X(s,"invalid","prop not for sale",100);return e=(o=new b).addInputFromTx(s,t),t={oper:G.propSale,pid:n.pid,prev:{hash:e.prevout.hash,index:e.prevout.index},fixed:i,period:this.db.curHeight+N.BLOCK_DAY},n=k.fromScript(x.createScript(Buffer.from(JSON.stringify(t)),x.types.NULLDATA),0),o.outputs.push(n),await this.sign(o,null,M.SINGLE|M.ANYONECANPAY),e=o.commit(),r(e[0].verify(e[1],x.flags.STANDARD_VERIFY_FLAGS)),await this.db.send(e[0]),e}async propBuy(e,t,i){let r=null;try{(a=await this.db.client.execute("getPropById",[e]))&&(r=a[0])}catch(e){console.log("remote get prop by id",e.message)}if(!(r=r||this.db.propList.get(e))||r.pst!=Y.Sale||!r.bid||!r.bid.raw)throw new V(U.errors.INVALID_PARAMS,"Invalid Tx Hash.");var a=F.fromRaw(Buffer.from(r.bid.raw,"hex")),s=(e=(await this.createReceive(i)).getAddress(),r.gold);if(t<s)throw new Error("wrong price");if(1<a.outputs.length&&t<a.outputs[1].value)throw new Error("low bid price than before");var n=b.fromTX(a,1);if(!n.outputs[0].getReturnType(L.OP_RETURN))throw new Error("not a sale order");return await this.remove(a.hash("hex")),n.view.addOutput({hash:n.inputs[0].prevout.hash,index:n.inputs[0].prevout.index},new k({value:r.gold})),t=new k({address:r.current.address,value:t}),n.addOutput(t),t={oper:G.propExchange,pid:r.pid,cid:r.cid,oid:r.oid,prev:{hash:n.inputs[0].prevout.hash,index:n.inputs[0].prevout.index}},e=k.fromScript(e,s,t),n.outputs.push(e),i?await this.fund(n,{allowPreInput:!0,account:i}):await this.fund(n,{allowPreInput:!0}),await this.sign(n,null,M.ALL,[0]),s=n.commit(),r.owned||this.db.client.watchOutpoint((new z).fromOptions(a.inputs[0].prevout)),await this.db.send(s[0]),s}async getTXByAmount(e,t){let i=null;var r;for(r of await this.getCoins(t))if(!(r.height<=0)&&r.value==e){i=r;break}return i&&(t=await this.getTX(i.hash))?[t.tx,i.index,i.height]:[]}async contractCreate(e,t,i,a,s){if(this.db.transactionList.query(e,a)!=W.None)throw new V(U.errors.TYPE_ERROR,"Contract with the same address finded.");if(0!=parseInt(t%1e3,10))throw new V(U.errors.TYPE_ERROR,"Contract source should an integer multiple of 1000.");if(!await K.checkSum(this.network,e,a))throw new V(U.errors.TYPE_ERROR,"Create contract with an invalid Address or a Address with old transations.");let n=!1,[o,p,d]=await this.getTXByAmount(t,s);if(!o){n=!0;var h=new b;let e="";e=(s?await this.createReceive(s):this).getAddress(),h.outputs.push(k.fromScript(e,t)),s?await this.fund(h,{allowPreInput:!0,account:s}):await this.fund(h,{allowPreInput:!0}),await this.sign(h),h=h.commit(),r(h[0].verify(h[1],x.flags.STANDARD_VERIFY_FLAGS)),o=h[0],p=0,d=-1}(h=new b).addInputFromTx(o,p,d);let l="";l=(s?await this.createReceive(s):this).getAddress();var c=await this.getKey(l);e={oper:G.contractCreate,type:e,addr:a,src:t,dst:i,srcact:s,alice:c.getPublicKey("hex"),period:this.db.curHeight+N.TRANSACTION_PERIOD},a=k.fromScript(x.createScript(Buffer.from(JSON.stringify(e)),x.types.NULLDATA),0),h.outputs.push(a),await this.sign(h,null,M.SINGLE|M.ANYONECANPAY),t=h.commit();return n&&await this.db.send(o),await this.db.send(t[0]),t}async contractPromise(e,t){if(!(e=this.db.transactionList.get(e))||e.transStatus!=W.CreatedOnMem)throw new V(U.errors.INVALID_PARAMS,"Invalid Tx id.");if(!(e=F.fromRaw(Buffer.from(e.raw,"hex"))))throw new V(U.errors.TYPE_ERROR,"Invalid Tx id.");var i=K.parseContract(e);if(!i||i.oper!==G.contractCreate)throw new V(U.errors.TYPE_ERROR,"Invalid tx type.");var r=b.fromTX(e,1);if(!r.outputs[0].getReturnType(L.OP_RETURN))throw new Error("not a valid contract");r.view.addOutput({hash:r.inputs[0].prevout.hash,index:r.inputs[0].prevout.index},new k({value:i.src}));let a="";a=(t?await this.createReceive(t):this).getAddress();var s=await this.getKey(a);e={oper:G.contractPromise,prevhash:e.hash("hex"),type:i.type,addr:i.addr,dst:i.dst,srcact:i.srcact,dstact:t,bob:s.getPublicKey("hex"),period:i.period},t=new x([D.fromSymbol("promise"),D.fromData(Buffer.from(JSON.stringify(e))),D.fromSymbol("drop"),D.fromSymbol("greaterthan"),D.fromSymbol("drop"),D.fromSymbol("if"),D.fromData(l.hash160(Buffer.from(e.bob,"hex"))),D.fromSymbol("else"),D.fromData(l.hash160(Buffer.from(i.alice,"hex"))),D.fromSymbol("endif"),D.fromSymbol("checksig")]),r.outputs.push(k.fromScript(t,i.src)),await this.remove(e.prevhash),await this.sign(r,null,M.ALL,[0]),s=r.commit();return await this.db.send(s[0]),e.current={hash:s[0].hash("hex"),index:0},e.raw=s[0].toRaw().toString("hex"),e.transStatus=W.Promised,this.db.transactionList.saveContract(e,!0),s}async contractExecute(e,t){if(!(e=this.db.transactionList.get(e))||e.transStatus!=W.Confirmed&&e.transStatus!=W.Expired)throw new V(U.errors.INVALID_PARAMS,"Invalid Tx id.");if(!(e=F.fromRaw(Buffer.from(e.raw,"hex"))))throw new V(U.errors.TYPE_ERROR,"Invalid Tx id.");t=t||1;var i=K.parseContract(e);if(!i||i.oper!==G.contractPromise)throw new V(U.errors.TYPE_ERROR,"Invalid tx type.");var a=e.outputs[1].getReturnData();if(!a||a.oper!==G.contractPromise)throw new V(U.errors.TYPE_ERROR,"Invalid tx type.");r.strictEqual(i.addr,a.addr),r.strictEqual(i.type,a.type),r.strictEqual(i.dst,a.dst),r.strictEqual(i.period,a.period),r.strictEqual(i.srcact,a.srcact),r.strictEqual(i.dstact,a.dstact);var s=this.db.transactionList.query(i.type,i.addr);if(s!=W.Confirmed&&s!=W.Expired)throw new V(U.errors.TYPE_ERROR,"Contract Promise not Check yet.");if(s==W.Expired&&1!=t||s==W.Confirmed&&2!=t)throw new V(U.errors.TYPE_ERROR,"Invalid Executor.");let n=i.srcact,o=(2==t&&(n=i.dstact),"");o=(n?await this.createReceive(n):this).getAddress();var p=new b,d=(p.addInputFromTx(e,1),{oper:G.contractExecute,type:i.type,addr:i.addr,master:t});d=k.fromScript(x.createScript(Buffer.from(JSON.stringify(d)),x.types.NULLDATA),0),p.outputs.push(d),d=k.fromScript(o,e.outputs[1].value),p.outputs.push(d),e=1==t?await P.fromPublic(Buffer.from(i.ori.alice,"hex")):await P.fromPublic(Buffer.from(a.bob,"hex")),d=await this.getKey(e.getAddress()),await p.signAsync(d,x.hashType.ALL,this.db.workers),t=p.commit();return r(t[0].verify(t[1],x.flags.STANDARD_VERIFY_FLAGS,s)),await this.db.send(t[0]),t}async htlcDeal(e,t){var i=await this.getTX(e.hash);let r=null;if(t){if(!(t=await this.getAccount(t)))throw new V(U.errors.TYPE_ERROR,"Invalid Account.");r=t.getReceive().toString()}else r=this.getReceive().toString();t=new b;var a=(new x).pushOp(L.OP_1);e.suggest&&a.pushData(Buffer.from(e.sa,"hex")),t.addInput({prevout:{hash:e.hash,index:e.index},script:a}),t.addOutput(r,i.tx.outputs[e.index].value-1e4),t.view.addOutput({hash:e.hash,index:e.index},new k(i.tx.outputs[e.index])),await this.sign(t,null,M.ALL),a=t.commit();return await this.db.send(a[0]),a}async htlcCancel(e,t){let i=null;var r=await this.getTX(e.hash);if(!(i=r?r.tx.outputs[e.index]:i))throw new V(U.errors.TYPE_ERROR,"Invalid Input.");let a=null;if(t){if(!(r=await this.getAccount(t)))throw new V(U.errors.TYPE_ERROR,"Invalid Account.");a=r.getReceive().toString()}else a=this.getReceive().toString();return t=new b,r=(new x).pushOp(L.OP_0),e.suggest&&r.pushData(Buffer.from(e.sa,"hex")),t.addInput({prevout:{hash:e.hash,index:e.index},script:r}),e.suggest?t.setSequence(0,2*N.HTLC_CANCEL_PERIOD,!1):t.setSequence(0,N.HTLC_CANCEL_PERIOD,!1),t.addOutput(a,i.value-1e4),t.view.addOutput({hash:e.hash,index:e.index},new k(i)),r=await this.getKey(e.master),await t.signAsync(r,x.hashType.ALL,this.db.workers),e=t.commit(),await this.db.send(e[0]),e}async sendContracts(e,t,i){var r,a=new b;for(r of e)a.outputs.push(i.create(r));return t?await this.fund(a,{account:t}):await this.fund(a),await this.sign(a),e=a.commit(),await this.db.addTX(e[0]),await this.db.send(e[0]),e}async tokenCreate(e,t="",i){r(e&&"object"==typeof e,"Token data should be a object"),r(e.cid,"Token data should has a cid property"),r(e.uid,"Token data should has a uid property"),e.time=!0,await this.ensureAccount({name:t,witness:!0});let a=null;if(i){if(!await this.belongToAccount(t,i))throw new V(U.errors.TYPE_ERROR,`tokenCreate address error: addr:${i} is not belongs to account:`+t);a=await this.getKey(i)}else a=await this.createReceive(t,n.hashInt(e.cid),this.master);return a.signData(e)}async sign(e,t,i=x.hashType.ALL,r){if(this.watchOnly)throw new Error("Cannot sign from a watch-only wallet.");return await this.unlock(t),t=await this.deriveInputs(e),e.signAsync(t,i,this.db.workers,r)}getCoinView(e){return this.txdb.getCoinView(e)}getSpentView(e){return this.txdb.getSpentView(e)}toDetails(e){return this.txdb.toDetails(e)}getDetails(e){return this.txdb.getDetails(e)}async getCoin(e,t){return this.txdb.getCoin(e,t)}async getCredit(e,t){return this.txdb.getCredit(e,t)}async getStatusOfSC(e){return this.txdb.getStatusOfSC(e)}async setStatusOfSC(e,t){var i=await this.writeLocking();try{this.txdb.start();try{await this.txdb._setStatusOfSC(e,t),await this.txdb.commit()}catch(e){throw this.txdb.drop(),e}}finally{i()}}getLockedCoins(){return this.txdb.lockedCoins.values}getTX(e){return this.txdb.getTX(e)}getBlocks(){return this.txdb.getBlocks()}getBlock(e){return this.txdb.getBlock(e)}async add(e,t,i){var r=await this.writeLocking();try{return await this._add(e,t,i)}finally{r()}}async _add(e,t,i){let r,a;this.txdb.start();try{(r=await this.txdb._add(e,t,i))&&(a=await this.syncOutputDepth(r)),await this.txdb.commit()}catch(e){throw this.txdb.drop(),e}return a&&0<a.length&&(this.db.emit("address",this.id,a),this.emit("address",a)),r}async resetBalance(){var e,t=await this.writeLocking();try{this.txdb.start();try{for(e of(this.txdb.pending.unconfirmed=0,this.txdb.pending.confirmed=0,await this.getAccounts())){var i=await this.getBalance(e);this.txdb.pending.unconfirmed+=i.unconfirmed,this.txdb.pending.confirmed+=i.confirmed}this.txdb.put(ie.R,this.txdb.pending.commit()),await this.txdb.commit()}catch(e){throw this.txdb.drop(),e}}finally{t()}return this.txdb.state.toBalance()}async unconfirm(e){var t=await this.writeLocking();try{return await this.txdb.unconfirm(e)}finally{t()}}async remove(e){var t=await this.writeLocking();try{return await this.txdb.remove(e)}finally{t()}}async zap(e,t){var i=await this.writeLocking();try{return await this._zap(e,t)}finally{i()}}async _zap(e,t){return e=await this.ensureIndex(e),this.txdb.zap(e,t)}async abandon(e){var t=await this.writeLocking();try{return await this._abandon(e)}finally{t()}}_abandon(e){return this.txdb.abandon(e)}addUserConservedCoin(e){return this.txdb.addUserConservedCoin(e)}addSystemConservedCoin(e){return this.txdb.addSystemConservedCoin(e)}conserveCoin(e){return this.txdb.addUserConservedCoin(e)}unConserveCoin(e){return this.txdb.removeUserConservedCoin(e)}isConserved(e){return this.txdb.isConserved(e)}getConserved(){return this.txdb.getConserved()}async getHistory(e){return e=await this.ensureIndex(e),this.txdb.getHistory(e)}async getCoins(e){return e=await this.ensureIndex(e),this.txdb.getCoins(e)}async getCredits(e){return e=await this.ensureIndex(e),this.txdb.getCredits(e)}async getSmartCoins(e){var t,i=[];for(t of await this.getCredits(e)){var r=t.coin;t.spent||this.isConserved(r)||-1===r.height&&!t.own||i.push(r)}return i}async getPending(e){return e=await this.ensureIndex(e),this.txdb.getPending(e)}async getBalance(e){return e=await this.ensureIndex(e),this.txdb.getBalance(e)}async queryBalanceLog(e,t=0){return(e=await this.ensureIndex(e))?this.db.queryBalanceLog(this.wid,e,t):[]}async getRange(e,t){return e&&"object"==typeof e&&(t=e,e=null),e=await this.ensureIndex(e),this.txdb.getRange(e,t)}async getLast(e,t){return e=await this.ensureIndex(e),this.txdb.getLast(e,t)}async ensureIndex(e,t){if(null==e){if(t)throw new Error("No account provided.");return null}if(-1===(t=await this.getAccountIndex(e)))throw new Error("Account not found.");return t}getAddress(e){return this.account.getAddress(e)}getReceive(e){return this.account.getReceive(e)}getChange(e){return this.account.getChange(e)}getNested(e){return this.account.getNested(e)}inspect(){return{wid:this.wid,id:this.id,network:this.network.type,initialized:this.initialized,accountDepth:this.accountDepth,token:this.token.toString("hex"),tokenDepth:this.tokenDepth,state:this.txdb.state?this.txdb.state.toJSON(!0):null,master:this.master,account:this.account}}toJSON(e){return{network:this.network.type,wid:this.wid,id:this.id,initialized:this.initialized,watchOnly:this.watchOnly,accountDepth:this.accountDepth,token:this.token.toString("hex"),tokenDepth:this.tokenDepth,height:this.db.curHeight,state:this.txdb.state.toJSON(!0),master:this.master.toJSON(e),account:this.account.toJSON(!0)}}getSize(){var e=0;return(e+=50)+o.sizeVarString(this.id,"ascii")+o.sizeVarlen(this.master.getSize())}toRaw(){var e=this.getSize();return(e=new f(e)).writeU32(this.network.magic),e.writeU32(this.wid),e.writeVarString(this.id,"ascii"),e.writeU8(this.initialized?1:0),e.writeU8(this.watchOnly?1:0),e.writeU32(this.accountDepth),e.writeBytes(this.token),e.writeU32(this.tokenDepth),e.writeVarBytes(this.master.toRaw()),e.render()}fromRaw(e){e=new u(e);var t=s.fromMagic(e.readU32());return this.wid=e.readU32(),this.id=e.readVarString("ascii"),this.initialized=1===e.readU8(),this.watchOnly=1===e.readU8(),this.accountDepth=e.readU32(),this.token=e.readBytes(32),this.tokenDepth=e.readU32(),this.master.fromRaw(e.readVarBytes()),r(t===this.db.network,"Wallet network mismatch."),this}static fromRaw(e,t){return new ae(e).fromRaw(t)}static isWallet(e){return e instanceof ae}async issueCreate(e,t,i){var r=new $(e),a=((a=(r.source.subjectName||(r.source.subjectName=r.erid),P.fromPrivate(Buffer.from(e.key,"hex"),!0,this.network))).witness=!0,r.sign(a,!0,this.network),r.toOptions(!0));return i?this.send({outputs:[{address:e.address,value:1e4}],comment:a},t):(r=await this.send({outputs:[{address:e.address,value:1e4}],comment:a},t),a.txid=r.txid()),a}async caAbolish(e,t,i){var r=P.fromPrivate(Buffer.from(e.key,"hex"),!0,this.network),a=(r.witness=!0,await this.db.client.execute("ca.byId",[e.erid]));if(!a)throw new V(U.errors.TYPE_ERROR,"ca.abolish: Invalid erid.");if(a.source.cid!=e.cid)throw new V(U.errors.TYPE_ERROR,"ca.abolish: Invalid cid.");if(a.source.uid!=e.uid)throw new V(U.errors.TYPE_ERROR,"ca.abolish: Invalid uid.");var s=a.signature;if(a.sign(r,!0,this.network),a.witness!=e.witness||a.signature!=s)throw new V(U.errors.TYPE_ERROR,"ca.abolish: You have no permission to abolish this witness.");return(a=new J(e)).sign(r),s=a.toOptions(!0),i?this.send({outputs:[{address:e.address,value:1e4}],comment:s},t):await this.send({outputs:[{address:e.address,value:1e4}],comment:s},t),s}async enchanceCp(e,t){var i=((e=new Z(e)).oper="enchanceCp",await this.ensureCp(e.to)),r=await this.ensureCp(e.from);if(!(r=await this.getKey(r.pubAddress)))throw new V(U.errors.TYPE_ERROR,"Invalid cid, Not along to this wallet.");return e.sign(r),r=e.toOptions(!0),[await this.send({outputs:[{address:i.pubAddress,value:1e4}],comment:r},t),r]}async ensureCp(e,t=!1){if(await this.db.flushCP([e]),(e=this.db.cpList.getItem(e))||t)return e;throw new V(U.errors.TYPE_ERROR,"Invalid cid, cannot find cp.")}addUTXOToBlacklist(e){if(e&&Array.isArray(e)){var t,i=Date.now();for(t of e){var r=z.toKey(t.hash,t.index);this.utxoBlacklist.set(r,i)}}}cleanupUTXOBlacklist(){var e,t,i=Date.now();for([e,t]of this.utxoBlacklist)i-t>this.utxoBlacklistTTL&&this.utxoBlacklist.delete(e)}}e.exports=ae},function(e,t,i){
348
348
  /*!
349
349
  * BlockMeta.js - walletdb records
350
350
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
@@ -780,17 +780,17 @@ var r=i(320),a=i(321);let s,n=i(0),o=i(25),p=i(29),d=Buffer.from([0]),h=Buffer.f
780
780
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
781
781
  * https://github.com/bookmansoft/gamegold
782
782
  */
783
- let r=i(0),a=i(219),s=Buffer.alloc(0);function n(e){if(!(this instanceof n))return new n(e);this.location=e||"memory",this.options={},this.tree=new a(l,!0)}function o(e,t){this.options=t||{},this.ops=[],this.db=e,this.written=!1}function p(e,t,i){this.type=e,this.key=t,this.value=i}function d(e,t){this.db=e,this.options=new h(t),this.iter=null,this.ended=!1,this.total=0,this.init()}function h(e){this.keys=!0,this.values=!0,this.start=null,this.end=null,this.gt=!1,this.lt=!1,this.keyAsBuffer=!0,this.valueAsBuffer=!0,this.reverse=!1,this.limit=-1,e&&this.fromOptions(e)}function l(e,t){return e.compare(t)}n.prototype.search=function(e){if("string"==typeof e&&(e=Buffer.from(e,"utf8")),r(Buffer.isBuffer(e),"Key must be a Buffer."),e=this.tree.search(e))return e.value},n.prototype.insert=function(e,t){return"string"==typeof e&&(e=Buffer.from(e,"utf8")),null==(t="string"==typeof t?Buffer.from(t,"utf8"):t)&&(t=s),r(Buffer.isBuffer(e),"Key must be a Buffer."),r(Buffer.isBuffer(t),"Value must be a Buffer."),null!=this.tree.insert(e,t)},n.prototype.remove=function(e){return"string"==typeof e&&(e=Buffer.from(e,"utf8")),r(Buffer.isBuffer(e),"Key must be a Buffer."),null!=this.tree.remove(e)},n.prototype.range=function(e,t){return"string"==typeof e&&(e=Buffer.from(e,"utf8")),"string"==typeof t&&(t=Buffer.from(t,"utf8")),r(!e||Buffer.isBuffer(e),"Key must be a Buffer."),r(!t||Buffer.isBuffer(t),"Key must be a Buffer."),this.tree.range(e,t)},n.prototype.open=function(e,t){t||(t=e,e=null),this.options=e=e||{},setImmediate(t)},n.prototype.close=function(e){setImmediate(e)},n.prototype.get=function(e,t,i){i||(i=t,t=null),t=t||{};let r=this.search(e);if(r)!1===t.asBuffer&&(r=r.toString("utf8")),setImmediate(()=>i(null,r));else{let e=new Error("MEMDB_NOTFOUND: Key not found.");e.notFound=!0,e.type="NotFoundError",setImmediate(()=>i(e))}},n.prototype.put=function(e,t,i,r){r||(r=i,i=null),this.insert(e,t),setImmediate(r)},n.prototype.del=function(e,t,i){i||(i=t,t=null),this.remove(e),setImmediate(i)},n.prototype.batch=function(e,t,i){if(i||(i=t,t=null),t=new o(this,t),!e)return t;t.ops=e,t.write(i)},n.prototype.iterator=function(e){return new d(this,e)},n.prototype.getProperty=function(e){return""},n.prototype.approximateSize=function(e,t,i){var r;e=this.range(e,t);let a=0;for(r of e)a=(a+=r.key.length)+r.value.length;setImmediate(()=>i(null,a))},n.destroy=function(e,t){setImmediate(t)},n.repair=function(e,t){setImmediate(t)},o.prototype.put=function(e,t){return r(!this.written,"Already written."),this.ops.push(new p("put",e,t)),this},o.prototype.del=function(e){return r(!this.written,"Already written."),this.ops.push(new p("del",e)),this},o.prototype.write=function(e){if(this.written)setImmediate(()=>e(new Error("Already written.")));else{for(var t of this.ops)switch(t.type){case"put":this.db.insert(t.key,t.value);break;case"del":this.db.remove(t.key);break;default:return setImmediate(()=>e(new Error("Bad op."))),this}this.ops=[],this.written=!0,setImmediate(e)}return this},o.prototype.clear=function(){return r(!this.written,"Already written."),this.ops=[],this},d.prototype.init=function(){var e=this.db.tree.snapshot();e=this.db.tree.iterator(e);this.options.reverse?this.options.end?(e.seekMax(this.options.end),this.options.lt&&e.valid()&&0===e.compare(this.options.end)&&e.prev()):e.seekLast():this.options.start?(e.seekMin(this.options.start),this.options.gt&&e.valid()&&0===e.compare(this.options.start)&&e.next()):e.seekFirst(),this.iter=e},d.prototype.next=function(e){var t=this.options,i=this.iter;if(this.iter){let r;if(t.reverse?(r=i.prev())&&t.start&&(t.gt?i.compare(t.start)<=0&&(r=!1):i.compare(t.start)<0&&(r=!1)):(r=i.next())&&t.end&&(t.lt?0<=i.compare(t.end)&&(r=!1):0<i.compare(t.end)&&(r=!1)),r){if(-1!==t.limit){if(this.total>=t.limit)return this.iter=null,void setImmediate(e);this.total+=1}let r=i.key,a=i.value;t.keys||(r=s),t.values||(a=s),t.keyAsBuffer||(r=r.toString("utf8")),t.valueAsBuffer||(a=a.toString("utf8")),setImmediate(()=>e(null,r,a))}else this.iter=null,setImmediate(e)}else setImmediate(()=>e(new Error("Cannot call next.")))},d.prototype.seek=function(e){r(this.iter,"Already ended."),"string"==typeof e&&(e=Buffer.from(e,"utf8")),r(Buffer.isBuffer(e),"Key must be a Buffer."),this.options.reverse?this.iter.seekMax(e):this.iter.seekMin(e)},d.prototype.end=function(e){this.ended?setImmediate(()=>e(new Error("Already ended."))):(this.ended=!0,this.iter=null,setImmediate(e))},h.prototype.fromOptions=function(e){return null!=e.keys&&(r("boolean"==typeof e.keys),this.keys=e.keys),null!=e.values&&(r("boolean"==typeof e.values),this.values=e.values),null!=e.start&&(this.start=e.start),null!=e.end&&(this.end=e.end),null!=e.gte&&(this.start=e.gte),null!=e.lte&&(this.end=e.lte),null!=e.gt&&(this.gt=!0,this.start=e.gt),null!=e.lt&&(this.lt=!0,this.end=e.lt),null!=this.start&&("string"==typeof this.start&&(this.start=Buffer.from(this.start,"utf8")),r(Buffer.isBuffer(this.start),"`start` must be a Buffer.")),null!=this.end&&("string"==typeof this.end&&(this.end=Buffer.from(this.end,"utf8")),r(Buffer.isBuffer(this.end),"`end` must be a Buffer.")),null!=e.keyAsBuffer&&(r("boolean"==typeof e.keyAsBuffer),this.keyAsBuffer=e.keyAsBuffer),null!=e.valueAsBuffer&&(r("boolean"==typeof e.valueAsBuffer),this.valueAsBuffer=e.valueAsBuffer),null!=e.reverse&&(r("boolean"==typeof e.reverse),this.reverse=e.reverse),null!=e.limit&&(r("number"==typeof e.limit),this.limit=e.limit),this},e.exports=n},,,function(e,t,i){i.r(t),i.d(t,"Headers",(function(){return O})),i.d(t,"Request",(function(){return q})),i.d(t,"Response",(function(){return D})),i.d(t,"FetchError",(function(){return f})),i.d(t,"AbortError",(function(){return G}));var r=i(19),a=i(72),s=i(73),n=i(182),o=i(118),p=i(43);let d,h=r.Readable,l=Symbol("buffer"),c=Symbol("type");class u{constructor(){this[c]="";var e=arguments[0],t=arguments[1],i=[];let r=0;if(e){var a=e,s=Number(a.length);for(let e=0;e<s;e++){var n=a[e];let t;t=n instanceof Buffer?n:ArrayBuffer.isView(n)?Buffer.from(n.buffer,n.byteOffset,n.byteLength):n instanceof ArrayBuffer?Buffer.from(n):n instanceof u?n[l]:Buffer.from("string"==typeof n?n:String(n)),r+=t.length,i.push(t)}}this[l]=Buffer.concat(i),(e=t&&void 0!==t.type&&String(t.type).toLowerCase())&&!/[^\u0020-\u007E]/.test(e)&&(this[c]=e)}get size(){return this[l].length}get type(){return this[c]}text(){return Promise.resolve(this[l].toString())}arrayBuffer(){var e=(e=this[l]).buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return Promise.resolve(e)}stream(){var e=new h;return e._read=function(){},e.push(this[l]),e.push(null),e}toString(){return"[object Blob]"}slice(){var e=this.size,t=arguments[0],i=arguments[1];let r,a;return r=void 0===t?0:t<0?Math.max(e+t,0):Math.min(t,e),a=void 0===i?e:i<0?Math.max(e+i,0):Math.min(i,e),t=Math.max(a-r,0),i=this[l].slice(r,r+t),(e=new u([],{type:arguments[2]}))[l]=i,e}}function f(e,t,i){Error.call(this,e),this.message=e,this.type=t,i&&(this.code=this.errno=i.code),Error.captureStackTrace(this,this.constructor)}Object.defineProperties(u.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}}),Object.defineProperty(u.prototype,Symbol.toStringTag,{value:"Blob",writable:!1,enumerable:!1,configurable:!0}),((f.prototype=Object.create(Error.prototype)).constructor=f).prototype.name="FetchError";try{d=require("encoding").convert}catch(t){}let m=Symbol("Body internals"),g=r.PassThrough;function w(e){var t=this,i=void 0===(i=(a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{}).size)?0:i,a=void 0===(a=a.timeout)?0:a;null==e?e=null:y(e)?e=Buffer.from(e.toString()):b(e)||Buffer.isBuffer(e)||("[object ArrayBuffer]"===Object.prototype.toString.call(e)?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof r||(e=Buffer.from(String(e)))),this[m]={body:e,disturbed:!1,error:null},this.size=i,this.timeout=a,e instanceof r&&e.on("error",(function(e){e="AbortError"===e.name?e:new f(`Invalid response body while trying to fetch ${t.url}: `+e.message,"system",e),t[m].error=e}))}function v(){var e=this;if(this[m].disturbed)return w.Promise.reject(new TypeError("body used already for: "+this.url));if(this[m].disturbed=!0,this[m].error)return w.Promise.reject(this[m].error);let t=this.body;if(null===t)return w.Promise.resolve(Buffer.alloc(0));if(b(t)&&(t=t.stream()),Buffer.isBuffer(t))return w.Promise.resolve(t);if(!(t instanceof r))return w.Promise.resolve(Buffer.alloc(0));let i=[],a=0,s=!1;return new w.Promise((function(r,n){let o;e.timeout&&(o=setTimeout((function(){s=!0,n(new f(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))}),e.timeout)),t.on("error",(function(t){"AbortError"===t.name?(s=!0,n(t)):n(new f(`Invalid response body while trying to fetch ${e.url}: `+t.message,"system",t))})),t.on("data",(function(t){s||null===t||(e.size&&a+t.length>e.size?(s=!0,n(new f(`content size at ${e.url} over limit: `+e.size,"max-size"))):(a+=t.length,i.push(t)))})),t.on("end",(function(){if(!s){clearTimeout(o);try{r(Buffer.concat(i,a))}catch(t){n(new f(`Could not create Buffer from response body for ${e.url}: `+t.message,"system",t))}}}))}))}function y(e){return"object"==typeof e&&"function"==typeof e.append&&"function"==typeof e.delete&&"function"==typeof e.get&&"function"==typeof e.getAll&&"function"==typeof e.has&&"function"==typeof e.set&&("URLSearchParams"===e.constructor.name||"[object URLSearchParams]"===Object.prototype.toString.call(e)||"function"==typeof e.sort)}function b(e){return"object"==typeof e&&"function"==typeof e.arrayBuffer&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.constructor&&"string"==typeof e.constructor.name&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function x(e){var t,i;let a=e.body;if(e.bodyUsed)throw new Error("cannot clone body after it is used");return a instanceof r&&"function"!=typeof a.getBoundary&&(t=new g,i=new g,a.pipe(t),a.pipe(i),e[m].body=t,a=i),a}function S(e){return null===e?null:"string"==typeof e?"text/plain;charset=UTF-8":y(e)?"application/x-www-form-urlencoded;charset=UTF-8":b(e)?e.type||null:Buffer.isBuffer(e)||"[object ArrayBuffer]"===Object.prototype.toString.call(e)||ArrayBuffer.isView(e)?null:"function"==typeof e.getBoundary?"multipart/form-data;boundary="+e.getBoundary():e instanceof r?null:"text/plain;charset=UTF-8"}function _(e){return null===(e=e.body)?0:b(e)?e.size:Buffer.isBuffer(e)?e.length:e&&"function"==typeof e.getLengthSync&&(e._lengthRetrievers&&0==e._lengthRetrievers.length||e.hasKnownLength&&e.hasKnownLength())?e.getLengthSync():null}w.prototype={get body(){return this[m].body},get bodyUsed(){return this[m].disturbed},arrayBuffer(){return v.call(this).then((function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}))},blob(){let e=this.headers&&this.headers.get("content-type")||"";return v.call(this).then((function(t){return Object.assign(new u([],{type:e.toLowerCase()}),{[l]:t})}))},json(){var e=this;return v.call(this).then((function(t){try{return JSON.parse(t.toString())}catch(t){return w.Promise.reject(new f(`invalid json response body at ${e.url} reason: `+t.message,"invalid-json"))}}))},text(){return v.call(this).then((function(e){return e.toString()}))},buffer(){return v.call(this)},textConverted(){var e=this;return v.call(this).then((function(t){{var i=e.headers;if("function"!=typeof d)throw new Error("The package `encoding` must be installed to use the textConverted() function");let r,a,s=i.get("content-type"),n="utf-8";return s&&(r=/charset=([^;]*)/i.exec(s)),a=t.slice(0,1024).toString(),!(r=!r&&a?/<meta.+?charset=(['"])(.+?)\1/i.exec(a):r)&&a&&((r=/<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(a))||(r=/<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(a))&&r.pop(),r=r&&/charset=(.*)/i.exec(r.pop())),!(r=!r&&a?/<\?xml.+?encoding=(['"])(.+?)\1/i.exec(a):r)||"gb2312"!==(n=r.pop())&&"gbk"!==n||(n="gb18030"),d(t,"UTF-8",n).toString()}}))}},Object.defineProperties(w.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}}),w.mixIn=function(e){for(var t of Object.getOwnPropertyNames(w.prototype)){var i;t in e||(i=Object.getOwnPropertyDescriptor(w.prototype,t),Object.defineProperty(e,t,i))}},w.Promise=global.Promise;let E=/[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/,k=/[^\t\x20-\x7e\x80-\xff]/;function R(e){if(e=""+e,E.test(e)||""===e)throw new TypeError(e+" is not a legal HTTP header name")}function A(e){if(e=""+e,k.test(e))throw new TypeError(e+" is not a legal HTTP header value")}function I(e,t){for(var i in t=t.toLowerCase(),e)if(i.toLowerCase()===t)return i}let C=Symbol("map");class O{constructor(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:void 0;if(this[C]=Object.create(null),e instanceof O){var t,i=e.raw();for(t of Object.keys(i))for(var r of i[t])this.append(t,r)}else if(null!=e){if("object"!=typeof e)throw new TypeError("Provided initializer must be an object");var a=e[Symbol.iterator];if(null!=a){if("function"!=typeof a)throw new TypeError("Header pairs must be iterable");var s,n,o=[];for(s of e){if("object"!=typeof s||"function"!=typeof s[Symbol.iterator])throw new TypeError("Each header pair must be iterable");o.push(Array.from(s))}for(n of o){if(2!==n.length)throw new TypeError("Each header pair must be a name/value tuple");this.append(n[0],n[1])}}else for(var p of Object.keys(e)){var d=e[p];this.append(p,d)}}}get(e){return R(e=""+e),void 0===(e=I(this[C],e))?null:this[C][e].join(", ")}forEach(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:void 0;let i=N(this),r=0;for(;r<i.length;){var a=i[r],s=a[0];e.call(t,a[1],s,this),i=N(this),r++}}set(e,t){t=""+t,R(e=""+e),A(t);var i=I(this[C],e);this[C][void 0!==i?i:e]=[t]}append(e,t){t=""+t,R(e=""+e),A(t);var i=I(this[C],e);void 0!==i?this[C][i].push(t):this[C][e]=[t]}has(e){return R(e=""+e),void 0!==I(this[C],e)}delete(e){R(e=""+e),void 0!==(e=I(this[C],e))&&delete this[C][e]}raw(){return this[C]}keys(){return P(this,"key")}values(){return P(this,"value")}[Symbol.iterator](){return P(this,"key+value")}}function N(e,t){return t=1<arguments.length&&void 0!==t?t:"key+value",Object.keys(e[C]).sort().map("key"===t?function(e){return e.toLowerCase()}:"value"===t?function(t){return e[C][t].join(", ")}:function(t){return[t.toLowerCase(),e[C][t].join(", ")]})}O.prototype.entries=O.prototype[Symbol.iterator],Object.defineProperty(O.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(O.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});let T=Symbol("internal");function P(e,t){var i=Object.create(B);return i[T]={target:e,kind:t,index:0},i}let B=Object.setPrototypeOf({next(){var e,t,i;if(this&&Object.getPrototypeOf(this)===B)return i=(e=this[T]).target,t=e.index,(i=N(i,e.kind)).length<=t?{value:void 0,done:!0}:(this[T].index=t+1,{value:i[t],done:!1});throw new TypeError("Value of `this` is not a HeadersIterator")}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(B,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});let L=Symbol("Response internals"),M=a.STATUS_CODES;class D{constructor(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null,t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=(w.call(this,e,t),t.status||200),r=new O(t.headers);null==e||r.has("Content-Type")||(e=S(e))&&r.append("Content-Type",e),this[L]={url:t.url,status:i,statusText:t.statusText||M[i],headers:r,counter:t.counter}}get url(){return this[L].url||""}get status(){return this[L].status}get ok(){return 200<=this[L].status&&this[L].status<300}get redirected(){return 0<this[L].counter}get statusText(){return this[L].statusText}get headers(){return this[L].headers}clone(){return new D(x(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}}w.mixIn(D.prototype),Object.defineProperties(D.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}}),Object.defineProperty(D.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});let V=Symbol("Request internals"),U=s.URL||n.URL,H=s.parse,z=s.format;function F(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new U(e).toString()),H(e)}let K="destroy"in r.Readable.prototype;function j(e){return"object"==typeof e&&"object"==typeof e[V]}class q{constructor(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};let i,r=(j(e)?i=F(e.url):(i=e&&e.href?F(e.href):F(""+e),e={}),t.method||e.method||"GET");if(r=r.toUpperCase(),(null!=t.body||j(e)&&null!==e.body)&&("GET"===r||"HEAD"===r))throw new TypeError("Request with GET/HEAD method cannot have body");var a=null!=t.body?t.body:j(e)&&null!==e.body?x(e):null,s=(w.call(this,a,{timeout:t.timeout||e.timeout||0,size:t.size||e.size||0}),new O(t.headers||e.headers||{}));null==a||s.has("Content-Type")||(a=S(a))&&s.append("Content-Type",a);let n=j(e)?e.signal:null;if(null!=(n="signal"in t?t.signal:n)&&(!(a=(a=n)&&"object"==typeof a&&Object.getPrototypeOf(a))||"AbortSignal"!==a.constructor.name))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[V]={method:r,redirect:t.redirect||e.redirect||"follow",headers:s,parsedURL:i,signal:n},this.follow=void 0!==t.follow?t.follow:void 0!==e.follow?e.follow:20,this.compress=void 0!==t.compress?t.compress:void 0===e.compress||e.compress,this.counter=t.counter||e.counter||0,this.agent=t.agent||e.agent}get method(){return this[V].method}get url(){return z(this[V].parsedURL)}get headers(){return this[V].headers}get redirect(){return this[V].redirect}get signal(){return this[V].signal}clone(){return new q(this)}}function W(e){var t,i=e[V].parsedURL,a=new O(e[V].headers);if(a.has("Accept")||a.set("Accept","*/*"),!i.protocol||!i.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(i.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof r.Readable&&!K)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let s=null,n=(null==e.body&&/^(POST|PUT)$/i.test(e.method)&&(s="0"),(s=null!=e.body&&"number"==typeof(t=_(e))?String(t):s)&&a.set("Content-Length",s),a.has("User-Agent")||a.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!a.has("Accept-Encoding")&&a.set("Accept-Encoding","gzip,deflate"),e.agent);return"function"==typeof n&&(n=n(i)),Object.assign({},i,{method:e.method,headers:(t=a,i=Object.assign({__proto__:null},t[C]),void 0!==(t=I(t[C],"Host"))&&(i[t]=i[t][0]),i),agent:n})}function G(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}w.mixIn(q.prototype),Object.defineProperty(q.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(q.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}}),((G.prototype=Object.create(Error.prototype)).constructor=G).prototype.name="AbortError";let Y=s.URL||n.URL,X=r.PassThrough;function $(e,t){if($.Promise)return w.Promise=$.Promise,new $.Promise((function(i,s){let n=new q(e,t);var d=W(n),h=("https:"===d.protocol?o:a).request;let l=n.signal,c=null,u=function(){var e=new G("The user aborted a request.");s(e),n.body&&n.body instanceof r.Readable&&J(n.body,e),c&&c.body&&c.body.emit("error",e)};if(l&&l.aborted)u();else{let e,t=function(){u(),m()},r=h(d);l&&l.addEventListener("abort",t),n.timeout&&r.once("socket",(function(t){e=setTimeout((function(){s(new f("network timeout at: "+n.url,"request-timeout")),m()}),n.timeout)})),r.on("error",(function(e){s(new f(`request to ${n.url} failed, reason: `+e.message,"system",e)),c&&c.body&&J(c.body,e),m()}));{let e;(h=r).on("socket",(function(t){e=t})),h.on("response",(function(t){var i=t.headers;"chunked"!==i["transfer-encoding"]||i["content-length"]||t.once("close",(function(t){e&&0<e.listenerCount("data")&&!t&&((t=new Error("Premature close")).code="ERR_STREAM_PREMATURE_CLOSE",function(e){l&&l.aborted||c&&c.body&&J(c.body,e)}(t))}))}))}function m(){r.abort(),l&&l.removeEventListener("abort",t),clearTimeout(e)}parseInt(process.version.substring(1))<14&&r.on("socket",(function(e){e.addListener("close",(function(t){var i=0<e.listenerCount("data");!c||!i||t||l&&l.aborted||((i=new Error("Premature close")).code="ERR_STREAM_PREMATURE_CLOSE",c.body.emit("error",i))}))})),r.on("response",(function(r){clearTimeout(e);var a,o=(e=>{var t,i=new O;for(t of Object.keys(e))if(!E.test(t))if(Array.isArray(e[t]))for(var r of e[t])k.test(r)||(void 0===i[C][t]?i[C][t]=[r]:i[C][t].push(r));else k.test(e[t])||(i[C][t]=[e[t]]);return i})(r.headers);if($.isRedirect(r.statusCode)){var d=o.get("Location");let e=null;try{e=null===d?null:new Y(d,n.url).toString()}catch(v){if("manual"!==n.redirect)return s(new f("uri requested responds with an invalid redirect URL: "+d,"invalid-redirect")),void m()}switch(n.redirect){case"error":return s(new f("uri requested responds with a redirect, redirect mode is set to error: "+n.url,"no-redirect")),void m();case"manual":if(null!==e)try{o.set("Location",e)}catch(v){s(v)}break;case"follow":if(null===e)break;if(n.counter>=n.follow)s(new f("maximum redirect reached at: "+n.url,"max-redirect"));else{var h={headers:new O(n.headers),follow:n.follow,counter:n.counter+1,agent:n.agent,compress:n.compress,method:n.method,body:n.body,signal:n.signal,timeout:n.timeout,size:n.size};if(!((e,t)=>(t=new Y(t).hostname)===(e=new Y(e).hostname)||"."===t[t.length-e.length-1]&&t.endsWith(e))(n.url,e)||(a=n.url,new Y(e).protocol!==new Y(a).protocol))for(var u of["authorization","www-authenticate","cookie","cookie2"])h.headers.delete(u);303!==r.statusCode&&n.body&&null===_(n)?s(new f("Cannot follow redirect with body being a readable stream","unsupported-redirect")):(303!==r.statusCode&&(301!==r.statusCode&&302!==r.statusCode||"POST"!==n.method)||(h.method="GET",h.body=void 0,h.headers.delete("content-length")),i($(new q(e,h))))}return void m()}}r.once("end",(function(){l&&l.removeEventListener("abort",t)}));let g=r.pipe(new X),w={url:n.url,status:r.statusCode,statusText:r.statusMessage,headers:o,size:n.size,timeout:n.timeout,counter:n.counter};var v;d=o.get("Content-Encoding");n.compress&&"HEAD"!==n.method&&null!==d&&204!==r.statusCode&&304!==r.statusCode?(v={flush:p.Z_SYNC_FLUSH,finishFlush:p.Z_SYNC_FLUSH},"gzip"==d||"x-gzip"==d?(g=g.pipe(p.createGunzip(v)),c=new D(g,w),i(c)):"deflate"==d||"x-deflate"==d?((v=r.pipe(new X)).once("data",(function(e){g=8==(15&e[0])?g.pipe(p.createInflate()):g.pipe(p.createInflateRaw()),c=new D(g,w),i(c)})),v.on("end",(function(){c||(c=new D(g,w),i(c))}))):("br"==d&&"function"==typeof p.createBrotliDecompress&&(g=g.pipe(p.createBrotliDecompress())),c=new D(g,w),i(c))):(c=new D(g,w),i(c))})),d=r,null===(h=(h=n).body)?d.end():b(h)?h.stream().pipe(d):Buffer.isBuffer(h)?(d.write(h),d.end()):h.pipe(d)}}));throw new Error("native promise missing, set fetch.Promise to your favorite alternative")}function J(e,t){e.destroy?e.destroy(t):(e.emit("error",t),e.end())}$.isRedirect=function(e){return 301===e||302===e||303===e||307===e||308===e},$.Promise=global.Promise,t.default=$},function(e,t){e.exports=function(e){this.next=null,this.prev=null,this.value=e}},function(e,t,i){
783
+ let r=i(0),a=i(219),s=Buffer.alloc(0);function n(e){if(!(this instanceof n))return new n(e);this.location=e||"memory",this.options={},this.tree=new a(l,!0)}function o(e,t){this.options=t||{},this.ops=[],this.db=e,this.written=!1}function p(e,t,i){this.type=e,this.key=t,this.value=i}function d(e,t){this.db=e,this.options=new h(t),this.iter=null,this.ended=!1,this.total=0,this.init()}function h(e){this.keys=!0,this.values=!0,this.start=null,this.end=null,this.gt=!1,this.lt=!1,this.keyAsBuffer=!0,this.valueAsBuffer=!0,this.reverse=!1,this.limit=-1,e&&this.fromOptions(e)}function l(e,t){return e.compare(t)}n.prototype.search=function(e){if("string"==typeof e&&(e=Buffer.from(e,"utf8")),r(Buffer.isBuffer(e),"Key must be a Buffer."),e=this.tree.search(e))return e.value},n.prototype.insert=function(e,t){return"string"==typeof e&&(e=Buffer.from(e,"utf8")),null==(t="string"==typeof t?Buffer.from(t,"utf8"):t)&&(t=s),r(Buffer.isBuffer(e),"Key must be a Buffer."),r(Buffer.isBuffer(t),"Value must be a Buffer."),null!=this.tree.insert(e,t)},n.prototype.remove=function(e){return"string"==typeof e&&(e=Buffer.from(e,"utf8")),r(Buffer.isBuffer(e),"Key must be a Buffer."),null!=this.tree.remove(e)},n.prototype.range=function(e,t){return"string"==typeof e&&(e=Buffer.from(e,"utf8")),"string"==typeof t&&(t=Buffer.from(t,"utf8")),r(!e||Buffer.isBuffer(e),"Key must be a Buffer."),r(!t||Buffer.isBuffer(t),"Key must be a Buffer."),this.tree.range(e,t)},n.prototype.open=function(e,t){t||(t=e,e=null),this.options=e=e||{},setImmediate(t)},n.prototype.close=function(e){setImmediate(e)},n.prototype.get=function(e,t,i){i||(i=t,t=null),t=t||{};let r=this.search(e);if(r)!1===t.asBuffer&&(r=r.toString("utf8")),setImmediate(()=>i(null,r));else{let e=new Error("MEMDB_NOTFOUND: Key not found.");e.notFound=!0,e.type="NotFoundError",setImmediate(()=>i(e))}},n.prototype.put=function(e,t,i,r){r||(r=i,i=null),this.insert(e,t),setImmediate(r)},n.prototype.del=function(e,t,i){i||(i=t,t=null),this.remove(e),setImmediate(i)},n.prototype.batch=function(e,t,i){if(i||(i=t,t=null),t=new o(this,t),!e)return t;t.ops=e,t.write(i)},n.prototype.iterator=function(e){return new d(this,e)},n.prototype.getProperty=function(e){return""},n.prototype.approximateSize=function(e,t,i){var r;e=this.range(e,t);let a=0;for(r of e)a=(a+=r.key.length)+r.value.length;setImmediate(()=>i(null,a))},n.destroy=function(e,t){setImmediate(t)},n.repair=function(e,t){setImmediate(t)},o.prototype.put=function(e,t){return r(!this.written,"Already written."),this.ops.push(new p("put",e,t)),this},o.prototype.del=function(e){return r(!this.written,"Already written."),this.ops.push(new p("del",e)),this},o.prototype.write=function(e){if(this.written)setImmediate(()=>e(new Error("Already written.")));else{for(var t of this.ops)switch(t.type){case"put":this.db.insert(t.key,t.value);break;case"del":this.db.remove(t.key);break;default:return setImmediate(()=>e(new Error("Bad op."))),this}this.ops=[],this.written=!0,setImmediate(e)}return this},o.prototype.clear=function(){return r(!this.written,"Already written."),this.ops=[],this},d.prototype.init=function(){var e=this.db.tree.snapshot();e=this.db.tree.iterator(e);this.options.reverse?this.options.end?(e.seekMax(this.options.end),this.options.lt&&e.valid()&&0===e.compare(this.options.end)&&e.prev()):e.seekLast():this.options.start?(e.seekMin(this.options.start),this.options.gt&&e.valid()&&0===e.compare(this.options.start)&&e.next()):e.seekFirst(),this.iter=e},d.prototype.next=function(e){var t=this.options,i=this.iter;if(this.iter){let r;if(t.reverse?(r=i.prev())&&t.start&&(t.gt?i.compare(t.start)<=0&&(r=!1):i.compare(t.start)<0&&(r=!1)):(r=i.next())&&t.end&&(t.lt?0<=i.compare(t.end)&&(r=!1):0<i.compare(t.end)&&(r=!1)),r){if(-1!==t.limit){if(this.total>=t.limit)return this.iter=null,void setImmediate(e);this.total+=1}let r=i.key,a=i.value;t.keys||(r=s),t.values||(a=s),t.keyAsBuffer||(r=r.toString("utf8")),t.valueAsBuffer||(a=a.toString("utf8")),setImmediate(()=>e(null,r,a))}else this.iter=null,setImmediate(e)}else setImmediate(()=>e(new Error("Cannot call next.")))},d.prototype.seek=function(e){r(this.iter,"Already ended."),"string"==typeof e&&(e=Buffer.from(e,"utf8")),r(Buffer.isBuffer(e),"Key must be a Buffer."),this.options.reverse?this.iter.seekMax(e):this.iter.seekMin(e)},d.prototype.end=function(e){this.ended?setImmediate(()=>e(new Error("Already ended."))):(this.ended=!0,this.iter=null,setImmediate(e))},h.prototype.fromOptions=function(e){return null!=e.keys&&(r("boolean"==typeof e.keys),this.keys=e.keys),null!=e.values&&(r("boolean"==typeof e.values),this.values=e.values),null!=e.start&&(this.start=e.start),null!=e.end&&(this.end=e.end),null!=e.gte&&(this.start=e.gte),null!=e.lte&&(this.end=e.lte),null!=e.gt&&(this.gt=!0,this.start=e.gt),null!=e.lt&&(this.lt=!0,this.end=e.lt),null!=this.start&&("string"==typeof this.start&&(this.start=Buffer.from(this.start,"utf8")),r(Buffer.isBuffer(this.start),"`start` must be a Buffer.")),null!=this.end&&("string"==typeof this.end&&(this.end=Buffer.from(this.end,"utf8")),r(Buffer.isBuffer(this.end),"`end` must be a Buffer.")),null!=e.keyAsBuffer&&(r("boolean"==typeof e.keyAsBuffer),this.keyAsBuffer=e.keyAsBuffer),null!=e.valueAsBuffer&&(r("boolean"==typeof e.valueAsBuffer),this.valueAsBuffer=e.valueAsBuffer),null!=e.reverse&&(r("boolean"==typeof e.reverse),this.reverse=e.reverse),null!=e.limit&&(r("number"==typeof e.limit),this.limit=e.limit),this},e.exports=n},,,function(e,t,i){i.r(t),i.d(t,"Headers",(function(){return O})),i.d(t,"Request",(function(){return q})),i.d(t,"Response",(function(){return D})),i.d(t,"FetchError",(function(){return f})),i.d(t,"AbortError",(function(){return G}));var r=i(19),a=i(73),s=i(74),n=i(182),o=i(118),p=i(43);let d,h=r.Readable,l=Symbol("buffer"),c=Symbol("type");class u{constructor(){this[c]="";var e=arguments[0],t=arguments[1],i=[];let r=0;if(e){var a=e,s=Number(a.length);for(let e=0;e<s;e++){var n=a[e];let t;t=n instanceof Buffer?n:ArrayBuffer.isView(n)?Buffer.from(n.buffer,n.byteOffset,n.byteLength):n instanceof ArrayBuffer?Buffer.from(n):n instanceof u?n[l]:Buffer.from("string"==typeof n?n:String(n)),r+=t.length,i.push(t)}}this[l]=Buffer.concat(i),(e=t&&void 0!==t.type&&String(t.type).toLowerCase())&&!/[^\u0020-\u007E]/.test(e)&&(this[c]=e)}get size(){return this[l].length}get type(){return this[c]}text(){return Promise.resolve(this[l].toString())}arrayBuffer(){var e=(e=this[l]).buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return Promise.resolve(e)}stream(){var e=new h;return e._read=function(){},e.push(this[l]),e.push(null),e}toString(){return"[object Blob]"}slice(){var e=this.size,t=arguments[0],i=arguments[1];let r,a;return r=void 0===t?0:t<0?Math.max(e+t,0):Math.min(t,e),a=void 0===i?e:i<0?Math.max(e+i,0):Math.min(i,e),t=Math.max(a-r,0),i=this[l].slice(r,r+t),(e=new u([],{type:arguments[2]}))[l]=i,e}}function f(e,t,i){Error.call(this,e),this.message=e,this.type=t,i&&(this.code=this.errno=i.code),Error.captureStackTrace(this,this.constructor)}Object.defineProperties(u.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}}),Object.defineProperty(u.prototype,Symbol.toStringTag,{value:"Blob",writable:!1,enumerable:!1,configurable:!0}),((f.prototype=Object.create(Error.prototype)).constructor=f).prototype.name="FetchError";try{d=require("encoding").convert}catch(t){}let m=Symbol("Body internals"),g=r.PassThrough;function w(e){var t=this,i=void 0===(i=(a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{}).size)?0:i,a=void 0===(a=a.timeout)?0:a;null==e?e=null:y(e)?e=Buffer.from(e.toString()):b(e)||Buffer.isBuffer(e)||("[object ArrayBuffer]"===Object.prototype.toString.call(e)?e=Buffer.from(e):ArrayBuffer.isView(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):e instanceof r||(e=Buffer.from(String(e)))),this[m]={body:e,disturbed:!1,error:null},this.size=i,this.timeout=a,e instanceof r&&e.on("error",(function(e){e="AbortError"===e.name?e:new f(`Invalid response body while trying to fetch ${t.url}: `+e.message,"system",e),t[m].error=e}))}function v(){var e=this;if(this[m].disturbed)return w.Promise.reject(new TypeError("body used already for: "+this.url));if(this[m].disturbed=!0,this[m].error)return w.Promise.reject(this[m].error);let t=this.body;if(null===t)return w.Promise.resolve(Buffer.alloc(0));if(b(t)&&(t=t.stream()),Buffer.isBuffer(t))return w.Promise.resolve(t);if(!(t instanceof r))return w.Promise.resolve(Buffer.alloc(0));let i=[],a=0,s=!1;return new w.Promise((function(r,n){let o;e.timeout&&(o=setTimeout((function(){s=!0,n(new f(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))}),e.timeout)),t.on("error",(function(t){"AbortError"===t.name?(s=!0,n(t)):n(new f(`Invalid response body while trying to fetch ${e.url}: `+t.message,"system",t))})),t.on("data",(function(t){s||null===t||(e.size&&a+t.length>e.size?(s=!0,n(new f(`content size at ${e.url} over limit: `+e.size,"max-size"))):(a+=t.length,i.push(t)))})),t.on("end",(function(){if(!s){clearTimeout(o);try{r(Buffer.concat(i,a))}catch(t){n(new f(`Could not create Buffer from response body for ${e.url}: `+t.message,"system",t))}}}))}))}function y(e){return"object"==typeof e&&"function"==typeof e.append&&"function"==typeof e.delete&&"function"==typeof e.get&&"function"==typeof e.getAll&&"function"==typeof e.has&&"function"==typeof e.set&&("URLSearchParams"===e.constructor.name||"[object URLSearchParams]"===Object.prototype.toString.call(e)||"function"==typeof e.sort)}function b(e){return"object"==typeof e&&"function"==typeof e.arrayBuffer&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.constructor&&"string"==typeof e.constructor.name&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function x(e){var t,i;let a=e.body;if(e.bodyUsed)throw new Error("cannot clone body after it is used");return a instanceof r&&"function"!=typeof a.getBoundary&&(t=new g,i=new g,a.pipe(t),a.pipe(i),e[m].body=t,a=i),a}function S(e){return null===e?null:"string"==typeof e?"text/plain;charset=UTF-8":y(e)?"application/x-www-form-urlencoded;charset=UTF-8":b(e)?e.type||null:Buffer.isBuffer(e)||"[object ArrayBuffer]"===Object.prototype.toString.call(e)||ArrayBuffer.isView(e)?null:"function"==typeof e.getBoundary?"multipart/form-data;boundary="+e.getBoundary():e instanceof r?null:"text/plain;charset=UTF-8"}function _(e){return null===(e=e.body)?0:b(e)?e.size:Buffer.isBuffer(e)?e.length:e&&"function"==typeof e.getLengthSync&&(e._lengthRetrievers&&0==e._lengthRetrievers.length||e.hasKnownLength&&e.hasKnownLength())?e.getLengthSync():null}w.prototype={get body(){return this[m].body},get bodyUsed(){return this[m].disturbed},arrayBuffer(){return v.call(this).then((function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}))},blob(){let e=this.headers&&this.headers.get("content-type")||"";return v.call(this).then((function(t){return Object.assign(new u([],{type:e.toLowerCase()}),{[l]:t})}))},json(){var e=this;return v.call(this).then((function(t){try{return JSON.parse(t.toString())}catch(t){return w.Promise.reject(new f(`invalid json response body at ${e.url} reason: `+t.message,"invalid-json"))}}))},text(){return v.call(this).then((function(e){return e.toString()}))},buffer(){return v.call(this)},textConverted(){var e=this;return v.call(this).then((function(t){{var i=e.headers;if("function"!=typeof d)throw new Error("The package `encoding` must be installed to use the textConverted() function");let r,a,s=i.get("content-type"),n="utf-8";return s&&(r=/charset=([^;]*)/i.exec(s)),a=t.slice(0,1024).toString(),!(r=!r&&a?/<meta.+?charset=(['"])(.+?)\1/i.exec(a):r)&&a&&((r=/<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(a))||(r=/<meta[\s]+?content=(['"])(.+?)\1[\s]+?http-equiv=(['"])content-type\3/i.exec(a))&&r.pop(),r=r&&/charset=(.*)/i.exec(r.pop())),!(r=!r&&a?/<\?xml.+?encoding=(['"])(.+?)\1/i.exec(a):r)||"gb2312"!==(n=r.pop())&&"gbk"!==n||(n="gb18030"),d(t,"UTF-8",n).toString()}}))}},Object.defineProperties(w.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}}),w.mixIn=function(e){for(var t of Object.getOwnPropertyNames(w.prototype)){var i;t in e||(i=Object.getOwnPropertyDescriptor(w.prototype,t),Object.defineProperty(e,t,i))}},w.Promise=global.Promise;let E=/[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/,k=/[^\t\x20-\x7e\x80-\xff]/;function R(e){if(e=""+e,E.test(e)||""===e)throw new TypeError(e+" is not a legal HTTP header name")}function A(e){if(e=""+e,k.test(e))throw new TypeError(e+" is not a legal HTTP header value")}function I(e,t){for(var i in t=t.toLowerCase(),e)if(i.toLowerCase()===t)return i}let C=Symbol("map");class O{constructor(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:void 0;if(this[C]=Object.create(null),e instanceof O){var t,i=e.raw();for(t of Object.keys(i))for(var r of i[t])this.append(t,r)}else if(null!=e){if("object"!=typeof e)throw new TypeError("Provided initializer must be an object");var a=e[Symbol.iterator];if(null!=a){if("function"!=typeof a)throw new TypeError("Header pairs must be iterable");var s,n,o=[];for(s of e){if("object"!=typeof s||"function"!=typeof s[Symbol.iterator])throw new TypeError("Each header pair must be iterable");o.push(Array.from(s))}for(n of o){if(2!==n.length)throw new TypeError("Each header pair must be a name/value tuple");this.append(n[0],n[1])}}else for(var p of Object.keys(e)){var d=e[p];this.append(p,d)}}}get(e){return R(e=""+e),void 0===(e=I(this[C],e))?null:this[C][e].join(", ")}forEach(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:void 0;let i=N(this),r=0;for(;r<i.length;){var a=i[r],s=a[0];e.call(t,a[1],s,this),i=N(this),r++}}set(e,t){t=""+t,R(e=""+e),A(t);var i=I(this[C],e);this[C][void 0!==i?i:e]=[t]}append(e,t){t=""+t,R(e=""+e),A(t);var i=I(this[C],e);void 0!==i?this[C][i].push(t):this[C][e]=[t]}has(e){return R(e=""+e),void 0!==I(this[C],e)}delete(e){R(e=""+e),void 0!==(e=I(this[C],e))&&delete this[C][e]}raw(){return this[C]}keys(){return P(this,"key")}values(){return P(this,"value")}[Symbol.iterator](){return P(this,"key+value")}}function N(e,t){return t=1<arguments.length&&void 0!==t?t:"key+value",Object.keys(e[C]).sort().map("key"===t?function(e){return e.toLowerCase()}:"value"===t?function(t){return e[C][t].join(", ")}:function(t){return[t.toLowerCase(),e[C][t].join(", ")]})}O.prototype.entries=O.prototype[Symbol.iterator],Object.defineProperty(O.prototype,Symbol.toStringTag,{value:"Headers",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(O.prototype,{get:{enumerable:!0},forEach:{enumerable:!0},set:{enumerable:!0},append:{enumerable:!0},has:{enumerable:!0},delete:{enumerable:!0},keys:{enumerable:!0},values:{enumerable:!0},entries:{enumerable:!0}});let T=Symbol("internal");function P(e,t){var i=Object.create(B);return i[T]={target:e,kind:t,index:0},i}let B=Object.setPrototypeOf({next(){var e,t,i;if(this&&Object.getPrototypeOf(this)===B)return i=(e=this[T]).target,t=e.index,(i=N(i,e.kind)).length<=t?{value:void 0,done:!0}:(this[T].index=t+1,{value:i[t],done:!1});throw new TypeError("Value of `this` is not a HeadersIterator")}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(B,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});let L=Symbol("Response internals"),M=a.STATUS_CODES;class D{constructor(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null,t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=(w.call(this,e,t),t.status||200),r=new O(t.headers);null==e||r.has("Content-Type")||(e=S(e))&&r.append("Content-Type",e),this[L]={url:t.url,status:i,statusText:t.statusText||M[i],headers:r,counter:t.counter}}get url(){return this[L].url||""}get status(){return this[L].status}get ok(){return 200<=this[L].status&&this[L].status<300}get redirected(){return 0<this[L].counter}get statusText(){return this[L].statusText}get headers(){return this[L].headers}clone(){return new D(x(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}}w.mixIn(D.prototype),Object.defineProperties(D.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}}),Object.defineProperty(D.prototype,Symbol.toStringTag,{value:"Response",writable:!1,enumerable:!1,configurable:!0});let V=Symbol("Request internals"),U=s.URL||n.URL,H=s.parse,z=s.format;function F(e){return/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)&&(e=new U(e).toString()),H(e)}let K="destroy"in r.Readable.prototype;function j(e){return"object"==typeof e&&"object"==typeof e[V]}class q{constructor(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};let i,r=(j(e)?i=F(e.url):(i=e&&e.href?F(e.href):F(""+e),e={}),t.method||e.method||"GET");if(r=r.toUpperCase(),(null!=t.body||j(e)&&null!==e.body)&&("GET"===r||"HEAD"===r))throw new TypeError("Request with GET/HEAD method cannot have body");var a=null!=t.body?t.body:j(e)&&null!==e.body?x(e):null,s=(w.call(this,a,{timeout:t.timeout||e.timeout||0,size:t.size||e.size||0}),new O(t.headers||e.headers||{}));null==a||s.has("Content-Type")||(a=S(a))&&s.append("Content-Type",a);let n=j(e)?e.signal:null;if(null!=(n="signal"in t?t.signal:n)&&(!(a=(a=n)&&"object"==typeof a&&Object.getPrototypeOf(a))||"AbortSignal"!==a.constructor.name))throw new TypeError("Expected signal to be an instanceof AbortSignal");this[V]={method:r,redirect:t.redirect||e.redirect||"follow",headers:s,parsedURL:i,signal:n},this.follow=void 0!==t.follow?t.follow:void 0!==e.follow?e.follow:20,this.compress=void 0!==t.compress?t.compress:void 0===e.compress||e.compress,this.counter=t.counter||e.counter||0,this.agent=t.agent||e.agent}get method(){return this[V].method}get url(){return z(this[V].parsedURL)}get headers(){return this[V].headers}get redirect(){return this[V].redirect}get signal(){return this[V].signal}clone(){return new q(this)}}function W(e){var t,i=e[V].parsedURL,a=new O(e[V].headers);if(a.has("Accept")||a.set("Accept","*/*"),!i.protocol||!i.hostname)throw new TypeError("Only absolute URLs are supported");if(!/^https?:$/.test(i.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(e.signal&&e.body instanceof r.Readable&&!K)throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8");let s=null,n=(null==e.body&&/^(POST|PUT)$/i.test(e.method)&&(s="0"),(s=null!=e.body&&"number"==typeof(t=_(e))?String(t):s)&&a.set("Content-Length",s),a.has("User-Agent")||a.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)"),e.compress&&!a.has("Accept-Encoding")&&a.set("Accept-Encoding","gzip,deflate"),e.agent);return"function"==typeof n&&(n=n(i)),Object.assign({},i,{method:e.method,headers:(t=a,i=Object.assign({__proto__:null},t[C]),void 0!==(t=I(t[C],"Host"))&&(i[t]=i[t][0]),i),agent:n})}function G(e){Error.call(this,e),this.type="aborted",this.message=e,Error.captureStackTrace(this,this.constructor)}w.mixIn(q.prototype),Object.defineProperty(q.prototype,Symbol.toStringTag,{value:"Request",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperties(q.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}}),((G.prototype=Object.create(Error.prototype)).constructor=G).prototype.name="AbortError";let Y=s.URL||n.URL,X=r.PassThrough;function $(e,t){if($.Promise)return w.Promise=$.Promise,new $.Promise((function(i,s){let n=new q(e,t);var d=W(n),h=("https:"===d.protocol?o:a).request;let l=n.signal,c=null,u=function(){var e=new G("The user aborted a request.");s(e),n.body&&n.body instanceof r.Readable&&J(n.body,e),c&&c.body&&c.body.emit("error",e)};if(l&&l.aborted)u();else{let e,t=function(){u(),m()},r=h(d);l&&l.addEventListener("abort",t),n.timeout&&r.once("socket",(function(t){e=setTimeout((function(){s(new f("network timeout at: "+n.url,"request-timeout")),m()}),n.timeout)})),r.on("error",(function(e){s(new f(`request to ${n.url} failed, reason: `+e.message,"system",e)),c&&c.body&&J(c.body,e),m()}));{let e;(h=r).on("socket",(function(t){e=t})),h.on("response",(function(t){var i=t.headers;"chunked"!==i["transfer-encoding"]||i["content-length"]||t.once("close",(function(t){e&&0<e.listenerCount("data")&&!t&&((t=new Error("Premature close")).code="ERR_STREAM_PREMATURE_CLOSE",function(e){l&&l.aborted||c&&c.body&&J(c.body,e)}(t))}))}))}function m(){r.abort(),l&&l.removeEventListener("abort",t),clearTimeout(e)}parseInt(process.version.substring(1))<14&&r.on("socket",(function(e){e.addListener("close",(function(t){var i=0<e.listenerCount("data");!c||!i||t||l&&l.aborted||((i=new Error("Premature close")).code="ERR_STREAM_PREMATURE_CLOSE",c.body.emit("error",i))}))})),r.on("response",(function(r){clearTimeout(e);var a,o=(e=>{var t,i=new O;for(t of Object.keys(e))if(!E.test(t))if(Array.isArray(e[t]))for(var r of e[t])k.test(r)||(void 0===i[C][t]?i[C][t]=[r]:i[C][t].push(r));else k.test(e[t])||(i[C][t]=[e[t]]);return i})(r.headers);if($.isRedirect(r.statusCode)){var d=o.get("Location");let e=null;try{e=null===d?null:new Y(d,n.url).toString()}catch(v){if("manual"!==n.redirect)return s(new f("uri requested responds with an invalid redirect URL: "+d,"invalid-redirect")),void m()}switch(n.redirect){case"error":return s(new f("uri requested responds with a redirect, redirect mode is set to error: "+n.url,"no-redirect")),void m();case"manual":if(null!==e)try{o.set("Location",e)}catch(v){s(v)}break;case"follow":if(null===e)break;if(n.counter>=n.follow)s(new f("maximum redirect reached at: "+n.url,"max-redirect"));else{var h={headers:new O(n.headers),follow:n.follow,counter:n.counter+1,agent:n.agent,compress:n.compress,method:n.method,body:n.body,signal:n.signal,timeout:n.timeout,size:n.size};if(!((e,t)=>(t=new Y(t).hostname)===(e=new Y(e).hostname)||"."===t[t.length-e.length-1]&&t.endsWith(e))(n.url,e)||(a=n.url,new Y(e).protocol!==new Y(a).protocol))for(var u of["authorization","www-authenticate","cookie","cookie2"])h.headers.delete(u);303!==r.statusCode&&n.body&&null===_(n)?s(new f("Cannot follow redirect with body being a readable stream","unsupported-redirect")):(303!==r.statusCode&&(301!==r.statusCode&&302!==r.statusCode||"POST"!==n.method)||(h.method="GET",h.body=void 0,h.headers.delete("content-length")),i($(new q(e,h))))}return void m()}}r.once("end",(function(){l&&l.removeEventListener("abort",t)}));let g=r.pipe(new X),w={url:n.url,status:r.statusCode,statusText:r.statusMessage,headers:o,size:n.size,timeout:n.timeout,counter:n.counter};var v;d=o.get("Content-Encoding");n.compress&&"HEAD"!==n.method&&null!==d&&204!==r.statusCode&&304!==r.statusCode?(v={flush:p.Z_SYNC_FLUSH,finishFlush:p.Z_SYNC_FLUSH},"gzip"==d||"x-gzip"==d?(g=g.pipe(p.createGunzip(v)),c=new D(g,w),i(c)):"deflate"==d||"x-deflate"==d?((v=r.pipe(new X)).once("data",(function(e){g=8==(15&e[0])?g.pipe(p.createInflate()):g.pipe(p.createInflateRaw()),c=new D(g,w),i(c)})),v.on("end",(function(){c||(c=new D(g,w),i(c))}))):("br"==d&&"function"==typeof p.createBrotliDecompress&&(g=g.pipe(p.createBrotliDecompress())),c=new D(g,w),i(c))):(c=new D(g,w),i(c))})),d=r,null===(h=(h=n).body)?d.end():b(h)?h.stream().pipe(d):Buffer.isBuffer(h)?(d.write(h),d.end()):h.pipe(d)}}));throw new Error("native promise missing, set fetch.Promise to your favorite alternative")}function J(e,t){e.destroy?e.destroy(t):(e.emit("error",t),e.end())}$.isRedirect=function(e){return 301===e||302===e||303===e||307===e||308===e},$.Promise=global.Promise,t.default=$},function(e,t){e.exports=function(e){this.next=null,this.prev=null,this.value=e}},function(e,t,i){
784
784
  /*!
785
785
  * accountdb.js - storage for account management
786
786
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
787
787
  */
788
- let r=i(27),a=i(0),s=i(61),n=i(97),o=i(116),p=i(400),d=i(62),h=d.walletdb,l=i(6),c=i(132),u=i(102),f=i(142),m=i(37),g=i(8);i(15),i(53);let w=i(157),v=i(50),y=i(75);i(101);let b=i(34),{BlockFinalType:x,ContractEnvType:S}=i(5),_=i(133),E=i(402),k=i(23);var R=i(59);let A=i(2),I=i(114).sortWithSeq,C=i(25),O=i(158),N=i(52),T=i(86),P=i(3),B=P.U32,L=i(264),M=i(265),D=i(266),V=D.vpItem,U=i(407),H=U.vpItem,z=i(240);i(408);let F=z.cpItem,K=i(130),j=K.ErAbolishItem,q=i(35).broadcast,W=i(123),G=W.vpItem,Y=i(129),X=Y.ErItem,$=i(409),J=$.AuditItem,Z=i(232),Q=i(90),ee=i(410),te=i(233),ie=i(98),re=i(411),ae=i(179),se=i(31),ne=i(29),oe=i(42),pe=i(69),de=pe.errors,he=i(68);class le extends R{constructor(e){super(),this.readyLoad=!1,this.options=new p(e),this.network=this.options.network,this.logger=this.options.logger.context("wallet"),this.workers=this.options.workers,this.keys={hmacSalt:P.DefaultChainCode},e.keys&&e.keys.hmacSalt&&(a(Buffer.isBuffer(e.keys.hmacSalt)),this.keys.hmacSalt=e.keys.hmacSalt),this.client=this.options.client,this.client&&(this.client.wdb=this),this.jsonp=this.options.jsonp,this.jsonp&&(this.jsonp.wdb=this),this.spv=this.options.spv,this.feeRate=this.options.feeRate,this.db=f(this.options),this.rpc=new L(this),this.primary=null,this.state=new ee,this.wallets=new Map,this.depth=0,this.rescanning=!1,this.bound=!1,this.newRecord=!0,this.readLock=new O,this.writeLock=new C,this.txLock=new C,this.scanLock=new C,this.widCache=new N(1e4),this.pathMapCache=new N(5e4),this.filter=new T,this.middleHashMem=new Set,this.middleHashChain=new Set,this.autoTaskMgr=new _(this),this.transactionList=new M(this),this.htlcList=new D(this),this.commentList=new U(this),this.NotifyList=new k,this.propList=new W(this),this.$contacts=new k,this.cpList=new z(this),this.cpMemList=new z(this),this.auditList=new $(this),this.erList=new Y(this),this.erAbList=new K(this),this.hmacConnection=[],this._init()}async logAudit(e){e.height=this.curHeight,e.time=A.now(),e.erid=l.sha256(A.stringify(e)).toString("hex"),e=new J(e),await this.auditList.setAudit(e)}async getAccountByAddress(e,t){if(e){let a=null;if(a=t?await this.getWalletsByTX(t):await this.getWallets())for(var i of a)if(i=await this.get(i)){var r=await i.getPath(e);if(r)return[i.wid,r.name,i.id]}}return[0,"",""]}_init(){let e=1e6,t=-1;this.spv&&(e=2e4,t=T.flags.ALL),this.filter=T.fromRate(e,.001,t)}get mode(){return S.Wallet}async getTXFromAll(e){return this.getTXFromDb(e)}async checkNewRecord(){var e={createIfMissing:this.db.options.createIfMissing,errorIfExists:this.db.options.errorIfExists};this.db.options.createIfMissing=!1,this.db.options.errorIfExists=!0;try{await this.db.open();var t=await this.db.checkVersion(h,6);this.newRecord="new"==t}catch(e){if(-1!=e.message.indexOf("does not exist (create_if_missing is false)"))this.newRecord=!0;else{if(-1==e.message.indexOf("exists (error_if_exists is true)"))throw e;this.newRecord=!1}}try{await this.db.close()}catch(e){}this.db.options.createIfMissing=e.createIfMissing,this.db.options.errorIfExists=e.errorIfExists}async isNewRecord(){return await this.checkNewRecord(),this.newRecord}setmnemonic(e){if(this.options.mnemonic=this.options.mnemonic||{},e.bits)this.options.mnemonic={bits:e.bits};else if(e.entropy)this.options.mnemonic={entropy:Buffer.from(e.entropy,"hex")};else if(e.phrase){var t=this.testmnemonic(e.phrase);if(0!=t.code)throw t.msg;this.options.mnemonic={phrase:e.phrase}}e.passphrase&&(this.options.mnemonic.passphrase=e.passphrase),e.language&&(this.options.mnemonic.language=e.language)}testmnemonic(e){try{return new w(e),{code:0}}catch(e){return{code:-1,msg:e.message}}}async getContracts(e){var t=await this.db.values({gte:d.txdb.tx(P.NULL_HASH),lte:d.txdb.tx(P.HIGH_HASH),parse:e=>A.parseJson(e.toString())});return e?t.filter(t=>t.srcact==e||t.dstact==e):t}isFull(){return this.spv||this.synced||!1}async _open(e){}async handleNotify(e,t=!1){if(!t){let i=e.body.content;if("string"==typeof i)try{i=JSON.parse(e.body.content)}catch(e){return}"object"==typeof i&&"secret"===i.type&&(t={contact:e.body.src,messenger:e.body.dst},i.init&&(t.init=Buffer.from(i.init,"hex")),i.packet&&(t.packet=Buffer.from(i.packet)),await this.handleSecret(t))}}async handleSecret(e){if(e.contact&&e.messenger&&e.contact!=e.messenger){try{g.fromString(e.contact,this.network.type),g.fromString(e.messenger,this.network.type)}catch(e){return}var t=await this.ensureContact(e);t&&await t.ensureMessenger(e).answer(e)}}async scanContact(e,t=-1){var i=async e=>{var t;e.witness&&"witnesspubkeyhash"==e.getType()&&(t=e.witness.getPubkeyhashInput()[1],e=g.fromWitness(e.witness).toString(),t)&&e&&await this.ensureContact({contact:e,publicKey:t})};if(0<=t&&t<e.inputs.length)await i(e.inputs[t]);else for(var r of e.inputs)await i(r)}async ensureContact(e){if(!e.contact||e.contact==e.messenger)return null;try{g.fromString(e.contact,this.network.type),e.messenger&&g.fromString(e.messenger,this.network.type)}catch(e){return null}e.network=this.network.type,this.$contacts.get(e.contact)||this.$contacts.set(e.contact,new E(e));var t=this.$contacts.get(e.contact);if(e.messenger&&!(e=t.ensureMessenger(e)).wallet){var i,[i,r]=await this.getAccountByAddress(e.address);if(!(i=await this.get(i)))return;e.wallet=i,e.account=r}return t}getCps(){return this.db.values({gte:d.txdb.cp(P.ZERO_CID,"hex"),lte:d.txdb.cp(P.MAX_CID,"hex"),parse:e=>F.fromRaw(e)})}async _close(){for(var e of(await this.disconnect(),this.http&&this.options.listen&&await this.http.close(),this.wallets.values()))await e.destroy();await this.db.close(),this.options.listen&&await this.logger.close()}async destroy(){await this.db.destroy(),this.widCache.reset(),this.pathMapCache.reset()}async load(e){if(this.readyLoad){var t=await this.ensure({id:"primary",witness:!0,mnemonic:this.options.mnemonic}),i=await this.txLock.lock();try{await this.init(e),await this.watch(),await t.createReceive(0,1,t.master,this.network.type),await t.ensureNotifyKey(),await this.sync()}finally{i()}if(this.$parent&&this.$parent.config.str("account-change")&&await t.ensureAccount({name:this.$parent.config.str("account-change"),witness:!0}),this.$parent&&this.$parent.config.array("unable-utxo"))for(var r of this.$parent.config.array("unable-utxo"))r=r.split("|"),t.conserveCoin(new m(r[0],parseInt(r[1])))}}async disconnect(){this.client&&await this.client._close(),this.jsonp&&await this.jsonp._close()}async flushCP(e,t=!1){this.client&&(e=e||[],t||(e=this.cpList.excludeCids(e),t=t||0<e.length),t)&&await this.client.execute("cp.remoteQuery",[[["cid","include",e]]])}async watch(){let e=this.db.iterator({gte:h.p(P.NULL_HASH),lte:h.p(P.HIGH_HASH)}),t=0,i=0;for(;;){var r=await e.next();if(!r)break;try{var a=h.pp(r.key);this.addHash(a,!1)}catch(t){throw await e.end(),t}t++}for(e=this.db.iterator({gte:h.o(P.NULL_HASH,0),lte:h.o(P.HIGH_HASH,4294967295)});;){var s=await e.next();if(!s)break;try{var[n,o]=h.oo(s.key);this.addOutpoint(n,o)}catch(t){throw await e.end(),t}i++}this.logger.info("Filter: Added %d hashes to AccountDB filter.",t),this.logger.info("Filter: Added %d outpoints to AccountDB filter.",i),await this.setFilter()}async sync(){if(this.client){let t,i=this.curHeight;for(;0<=i;){var e=await this.getBlock(i);if(!e)break;if(t=await this.client.getEntry(e.hash))break;i--}t||(i=this.state.startHeight,t=await this.client.getEntry(this.state.startHash))||(i=0),await this.cpList.loadHistory(),await this.cpMemList.loadHistory(),await this.propList.loadHistory(),await this.htlcList.loadHistory(),await this.commentList.loadHistory(),await this.transactionList.loadHistory(),await this.loadContact(),await this.erList.loadHistory(),await this.auditList.loadHistory(),await this.erAbList.loadHistory(),await this._rescan(i,!1)}}cleanupCache(){var e,t,i;for(t of(this.pathMapCache&&1e4<this.pathMapCache.size&&(e=new N(5e3),this.pathMapCache=e,this.logger.info("Cleaned up pathMapCache, size reduced")),this.wallets.values()))t.pathCache&&1e4<t.pathCache.size&&(i=new N(5e3),t.pathCache=i),t.accountCache&&1e3<t.accountCache.size&&(i=new N(500),t.accountCache=i);if(global.gc)try{global.gc()}catch(e){}}async _rescan(e,t=!0){if(this.client){null==e&&(e=this.state.startHeight),a(e>>>0===e,"WDB: Must pass in a height.");var i=process.memoryUsage();if(0===e){for(var r of(this.logger.info("Rescan starting from height 0, memory usage: %s MB",Math.round(i.rss/1024/1024)),this.logger.info("Wiping business data from AccountDB..."),await this.wipe(),this.logger.info("Resetting wallet TXDB states..."),this.wallets.values()))r.txdb.state=new r.txdb.state.constructor(r.wid,r.id),r.txdb.pending=r.txdb.state.clone();(n=new ie).height=0,n.hash=this.network.genesis.hash,await this.resetState(n,!1);try{this.rescanning=!0,this.logger.info("Starting rescan from height 0"),await this.client.rescan(0,this.eid),this.cleanupCache();var s=process.memoryUsage();this.logger.info("Rescan completed, total memory used: %s MB (peak increase: %s MB)",Math.round(s.rss/1024/1024),Math.round((s.rss-i.rss)/1024/1024))}finally{this.rescanning=!1,this.cleanupCache()}}else{var n=this.curHeight,o=(s=(this.logger.info("Rescan starting at height %d, current height %d, memory usage: %s MB",e,n,Math.round(i.rss/1024/1024)),n-e+1),Math.ceil(s/1e3));this.logger.info("AccountDB is scanning %d blocks in %d batches.",s,o),await this.rollback(e,t);try{this.rescanning=!0,this.logger.info("Starting rescan from height %d to %d",e,n),await this.client.rescan(e,this.eid),this.cleanupCache();var p=process.memoryUsage();this.logger.info("Rescan completed, total memory used: %s MB (peak increase: %s MB)",Math.round(p.rss/1024/1024),Math.round((p.rss-i.rss)/1024/1024))}finally{this.rescanning=!1,this.cleanupCache()}}}}async rescan(e){var t=await this.txLock.lock();try{return await this._rescan(e,!1)}finally{t()}}async send(e){return this.client?this.client.send(e):(this.emit("send",e),Promise.resolve())}async getTX(e){for(var t of this.wallets.values())if(t=await t.getTX(e))return t.tx;return null}async getTXFromDb(e){for(var t of this.wallets.values())if(t=await t.getTX(e))return t.tx;return null}async getExtendTX(e){for(var t of this.wallets.values())if(t=await t.getTX(e))return t;return null}async removeTX(e){this.client?await this.client.removeTX(e):this.emit("remove",e)}async estimateFee(e){return 0<this.feeRate?this.feeRate:!this.client||(e=await this.client.estimateFee(e))<this.network.feeRate?this.network.feeRate:e>this.network.maxFeeRate?this.network.maxFeeRate:e}setFilter(){return this.client?this.client.setFilter(this.filter):(this.emit("filter.set",this.filter),Promise.resolve())}resetFilter(){return this.client?this.client.resetFilter():(this.emit("filter.reset"),Promise.resolve())}backup(e){return this.db.backup(e)}async wipe(){this.logger.warning("Wiping AccountDB TXDB..."),this.logger.warning("I hope you know what you're doing.");var e=this.db.iterator({gte:Buffer.from([0]),lte:Buffer.from([255])}),t=this.db.batch();let i=0;for(;;){var r=await e.next();if(!r)break;try{switch(r.key[0]){case 98:case 99:case 101:case 116:case 111:case 104:case 82:t.del(r.key),i++}}catch(t){throw await e.end(),t}}this.logger.warning("Wiped %d txdb records.",i),await t.write()}async getDepth(){var e=this.db.iterator({gte:h.w(0),lte:h.w(4294967295),reverse:!0,limit:1}),t=await e.next();return t?(await e.end(),h.ww(t.key)+1):1}start(e){return a(!e.current,"WDB: Batch already started."),e.current=this.db.batch(),e.accountCache.start(),e.pathCache.start(),e.current}drop(e){var t=this.batch(e);e.current=null,e.accountCache.drop(),e.pathCache.drop(),t.clear()}clear(e){var t=this.batch(e);e.accountCache.clear(),e.pathCache.clear(),t.clear()}batch(e){return a(e.current,"WDB: Batch does not exist."),e.current}async commit(e){var t=this.batch(e);try{await t.write()}catch(e){throw this.drop(),e}e.current=null,e.accountCache.commit(),e.pathCache.commit()}testFilter(e){return this.filter.test(e,"hex")}addHash(e,t=!0){this.filter.add(e,"hex"),t&&(t=Buffer.from(e,"hex"),this.client?this.client.addFilter(t):this.emit("filter.add",t))}addOutpoint(e,t){e=new m(e,t),this.filter.add(e.toRaw())}dump(){return this.db.dump()}register(e){a(!this.wallets.has(e.wid)),this.wallets.set(e.wid,e)}unregister(e){a(this.wallets.has(e.wid)),this.wallets.delete(e.wid)}async getWalletID(e){var t;return e?"number"==typeof e?e:this.widCache.get(e)||((t=await this.db.get(h.l(e)))?(t=t.readUInt32LE(0,!0),this.widCache.set(e,t),t):null):null}async get(e){if(!(e=await this.getWalletID(e)))return null;var t=await this.readLock.lock(e);try{return await this._get(e)}finally{t()}}async _get(e){var t=this.wallets.get(e);return t||((t=await this.db.get(h.w(e)))?(await(e=n.fromRaw(this,t)).open(),this.register(e),e):null)}async loadBackup(e,t){if(oe.unsupported)throw new he(de.INTERNAL_ERROR,"FS not available.");let i=null;var r;for(r of(await oe.readFile(e,"utf8")).split(/\n+/))if(0!==(r=r.trim()).length){if(/^\s*#/.test(r)){if(!r.startsWith("# Encrypted Wallet: "))continue;var s=r.replace("# Encrypted Wallet: ","").split(/\s+/);if(3<=s.length&&"W"===s[0]){if(!t)throw new he(de.INTERNAL_ERROR,"Password is required for encrypted wallet data.");var p=s[1];try{var d=y.decrypt({body:p,password:t,network:this.network});s[1]=d,r=s.join(" ")}catch(e){throw this.logger.error("loadBackup: Failed to decrypt wallet: "+e.message),new he(de.INTERNAL_ERROR,"Failed to decrypt wallet data. Please check your password.")}}}var h=r.split(/\s+/);if(h.length<4)throw new he(de.DESERIALIZATION_ERROR,"Malformed wallet Data File.");switch(h[0]){case"W":var l=Buffer.from(h[1],"base64");l=n.fromRaw(this,l);await this.replace(l),i=await this.get(l.id),this.logger.info("Import Wallet %s(%s)",i.id,i.wid);break;case"C":l=Buffer.from(h[1],"base64");(c=((u=o.fromRaw(this,l)).wallet=i,u.wid=i.wid,u.id=i.id,u.initialized=!0,u.watchOnly=i.watchOnly,u.receive=u.deriveReceive(u.receiveDepth-1),u.change=u.deriveChange(u.changeDepth-1),u.witness&&(u.nested=u.deriveNested(u.nestedDepth-1)),i.master.key.deriveAccount(44,u.accountIndex))).publicKey.toString("hex")!==u.accountKey.publicKey.toString("hex")&&a(c.publicKey.toString("hex")==u.accountKey.publicKey.toString("hex")),await i.saveAccount(u),this.logger.info("Import Account %s(%s)",u.name,u.accountIndex);break;case"A":{let r=h[1];var c=parseInt(h[5]),u=parseInt(h[7]),f=parseInt(h[9]);let a=11<h.length&&h[11]?h[11].trim():"";if(r.startsWith("# Encrypted Secret: ")){if(!t)throw new he(de.INTERNAL_ERROR,"Password is required for encrypted secret data.");var m=r.replace("# Encrypted Secret: ","");try{r=y.decrypt({body:m,password:t,network:this.network})}catch(e){throw this.logger.error("loadBackup: Failed to decrypt secret: "+e.message),new he(de.INTERNAL_ERROR,"Failed to decrypt secret data. Please check your password.")}}if(u<0||f<0){if("S"!==r)try{var g=pe.parseSecret(r,this.network);await i.importKey(c,g)}catch(e){this.logger.error(`loadBackup: ${e.message} account/secret: ${c}/`+a)}}else{m=await i.deriveKey(c,u,f);var w=await i.deriveKey(c,u,f,i.master);m.getAddress("string")!==w.getAddress("string")&&this.logger.error(`loadBackup: not-equal: ${m.getAddress("string")} != `+w.getAddress("string")),a=m.getAddress("string")}this.logger.info("Import Address %s %s %s %s",c,u,f,a);break}}}return i.accountCache.reset(),i}save(e){var t=e.wid,i=e.id,r=this.batch(e);this.widCache.set(i,t),r.put(h.w(t),e.toRaw()),r.put(h.l(i),B(t))}async rename(e,t){var i=await this.writeLock.lock();try{return await this._rename(e,t)}finally{i()}}async _rename(e,t){var i=e.id;if(!s.isName(t))throw new Error("WDB: Bad wallet ID.");if(await this.has(t))throw new Error("WDB: ID not available.");this.start(e).del(h.l(i)),e.id=t,this.save(e),await this.commit(e),this.widCache.remove(i);var r;i=e.pathCache.values();for(r of i)r.id=t}async replace(e){var t=await this.writeLock.lock();try{return await this._replace(e)}finally{t()}}async _replace(e){var t=this.start(e);t.del(h.l(e.id)),t.del(h.w(e.wid)),this.save(e),await this.commit(e),this.widCache.remove(e.id),this.wallets.delete(e.wid)}renameAccount(e,t){var i=e.wallet;this.batch(i).del(h.i(e.wid,e.name)),e.name=t,this.saveAccount(e)}async auth(e,t){if("string"==typeof t){if(!A.isHex256(t))throw new Error("WDB Authentication: Invalid Token.");t=Buffer.from(t,"hex")}e=v.getHmac(e.toString(),this.keys.hmacSalt);var i=r.createHmac("sha256",e.random);i=Buffer.from(i.update(e.token).digest("hex"),"hex");if(!c(t,i))throw new Error("WDB Authentication: CRC Error.")}async create(e){var t=await this.writeLock.lock();e=e||{};try{return await this._create(e)}finally{t()}}async _create(e){if(await this.has(e.id))throw new Error("WDB: Wallet already exists.");"string"==typeof e.mnemonic&&(e.mnemonic={phrase:e.mnemonic}),e.mnemonic=e.mnemonic||{},!e.mnemonic.language&&this.options.mnemonic&&this.options.mnemonic.language&&(e.mnemonic.language=this.options.mnemonic.language);var t=n.fromOptions(this,e);return t.wid=this.depth++,await t.init(e),this.register(t),this.logger.info("Created wallet %s in AccountDB.",t.id),t}async has(e){return null!=await this.getWalletID(e)}async ensure(e){return await this.get(e.id)||this.create(e)}async getAccount(e,t){return(e=await this.db.get(h.a(e,t)))?o.fromRaw(this,e):null}getAccounts(e){return this.db.values({gte:h.n(e,0),lte:h.n(e,4294967295),parse:e=>e.toString("ascii")})}async getAccountMap(e){for(var t={},i=this.db.iterator({gte:h.n(e,0),lte:h.n(e,4294967295),values:!0});;){var r=await i.next();if(!r)break;try{var[,a]=h.nn(r.key);t[a]=r.value.toString("ascii")}catch(e){throw await i.end(),e}}return t}async getAccountIndex(e,t){return(e=await this.db.get(h.i(e,t)))?e.readUInt32LE(0,!0):-1}async getAccountName(e,t){return(e=await this.db.get(h.n(e,t)))?e.toString("ascii"):null}saveAccount(e){var t=e.wid,i=e.wallet,r=e.accountIndex,a=e.name,s=this.batch(i);s.put(h.a(t,r),e.toRaw()),s.put(h.i(t,a),B(r)),s.put(h.n(t,r),Buffer.from(a,"ascii")),i.accountCache.push(r,e)}hasAccount(e,t){return"number"==typeof e&&"number"==typeof t&&this.db.has(h.a(e,t))}async getPathMap(e){var t=this.pathMapCache.get(e);return t||((t=await this.db.get(h.p(e)))?(t=re.fromRaw(e,t),this.pathMapCache.set(e,t),t):null)}saveKey(e,t){return this.savePath(e,t.toPath())}async savePath(e,t){var i=e.wid,r=t.hash,a=this.batch(e);this.addHash(r);let s=await this.getPathMap(r);(s=s||new re(r)).add(i)&&(this.pathMapCache.set(r,s),e.pathCache.push(r,t),a.put(h.p(r),s.toRaw()),a.put(h.P(i,r),t.toRaw()),a.put(h.r(i,t.account,r),null))}async getPath(e,t){var i=await this.db.get(h.P(e,t));return i?((i=Q.fromRaw(i)).wid=e,i.hash=t,i):null}hasPath(e,t){return this.db.has(h.P(e,t))}getHashes(){return this.db.keys({gte:h.p(P.NULL_HASH),lte:h.p(P.HIGH_HASH),parse:h.pp})}getOutpoints(){return this.db.keys({gte:h.o(P.NULL_HASH,0),lte:h.o(P.HIGH_HASH,4294967295),parse:e=>{var[e,t]=h.oo(e);return new m(e,t)}})}getWalletHashes(e){return this.db.keys({gte:h.P(e,P.NULL_HASH),lte:h.P(e,P.HIGH_HASH),parse:h.Pp})}getAccountHashes(e,t){return this.db.keys({gte:h.r(e,t,P.NULL_HASH),lte:h.r(e,t,P.HIGH_HASH),parse:h.rr})}async getWalletPaths(e){var t,i=[];for(t of await this.db.range({gte:h.P(e,P.NULL_HASH),lte:h.P(e,P.HIGH_HASH)})){var r=h.Pp(t.key),a=Q.fromRaw(t.value);a.hash=r,a.wid=e,i.push(a)}return i}async encryptKeys(e,t){var i,r,s=e.wid,n=await e.getPaths(),o=this.batch(e);for(i of n)i.data&&(a(!i.encrypted),r=Buffer.from(i.hash,"hex").slice(0,16),(i=i.clone()).data=u.encipher(i.data,t,r),i.encrypted=!0,e.pathCache.push(i.hash,i),o.put(h.P(s,i.hash),i.toRaw()))}async decryptKeys(e,t){var i,r,s=e.wid,n=await e.getPaths(),o=this.batch(e);for(i of n)i.data&&(a(i.encrypted),r=Buffer.from(i.hash,"hex").slice(0,16),(i=i.clone()).data=u.decipher(i.data,t,r),i.encrypted=!1,e.pathCache.push(i.hash,i),o.put(h.P(s,i.hash),i.toRaw()))}async resend(){var e,t,i={};for(e of await this.db.keys({gte:h.w(0),lte:h.w(4294967295)})){var r=h.ww(e),a=await this.resendPending(r);a&&Array.isArray(a)&&(i[r]=a)}for(t of Object.keys(i))if(await this.get(parseInt(t)))for(var s of i[t]){try{await this.send(s)}catch(e){this.logger.warning("wdb resend:",e.message)}await ne.timeout(50)}}async resendPending(e){var t=await this.get(e),i=await this.db.keys({gte:d.txdb.prefix(e,d.txdb.p(P.NULL_HASH)),lte:d.txdb.prefix(e,d.txdb.p(P.HIGH_HASH))});if(0!==i.length){this.logger.info("Rebroadcasting %d transactions for %d.",i.length,e);var r,a=[];for(r of i){var s=d.txdb.pp(r),n=d.txdb.prefix(e,d.txdb.t(s));if((n=await this.db.get(n))&&!(n=ae.fromRaw(n)).tx.isCoinbase())try{var o=await b.FactoryOfContract({tx:n.tx,env:this});await o.isBlockFinal()==x.Expired?t&&(await this.removeTX(n.tx),await t.remove(s),await o.erase()):"notify"!=o.oper&&a.push(n.tx)}catch(e){this.logger.error("TX(%s) Smart Contract Error: %s",n.tx.txid(),e.message)}}return I(a)}}getWallets(){return this.db.keys({gte:h.l("\0"),lte:h.l("ÿ"),parse:h.ll})}async getWalletsByTX(e){var t,i=new Set;if(!e.isCoinbase())for(var r of e.inputs)if(r=r.prevout,this.testFilter(r.toRaw())&&(r=await this.getOutpointMap(r.hash,r.index)))for(var a of r.wids)i.add(a);for(t of e.getOutputHashes("hex"))if(this.testFilter(t)){var s=await this.getPathMap(t);if(s)for(var n of s.wids)i.add(n)}return 0===i.size?null:i}async getState(){var e=await this.db.get(h.R);return e?ee.fromRaw(e):null}async init(e){var t=this.options.startHeight;let i;if(this.client){if(null!=t){if(!(i=await this.client.getEntry(t)))throw new Error("WDB: Could not find start block.")}else i=await this.client.getTip();i=ie.fromEntry(i)}else i=ie.fromEntry(this.network.genesis);var r;if(this.logger.info("Initializing AccountDB chain state (height %d).",i.height),(t=await this.getState())?this.state=t:await this.resetState(i,!1),await this.ensure({id:"primary",witness:!0,mnemonic:this.options.mnemonic}),e&&e.backup)for(r of e.backup.split(","))await this.loadBackup(r.trim(),e.backupPassword)}async resetState(e,t){for(var i=this.state.clone(),r=(i.startHeight=e.height,i.startHash=e.hash,i.height=e.height,i.marked=t,this.db.batch()),a=this.db.iterator({gte:h.h(e.height),lte:h.h(4294967295),values:!1});;){var s=await a.next();if(!s)break;try{r.del(s.key)}catch(e){throw await a.end(),e}}r.put(h.h(e.height),e.toHash()),r.put(h.R,i.toRaw()),await r.write(),this.state=i}async syncState(e){var t=this.state.clone(),i=this.db.batch();if(e.height<t.height){let a=t.height;var r=a-e.height;for(let e=0;e<r;e++)i.del(h.h(a--))}else e.height>t.height&&a(e.height===t.height+1,`Bad chain sync tip ${e.height} while state `+t.height);t.height=e.height,i.put(h.h(e.height),e.toHash()),i.put(h.R,t.toRaw()),await i.write(),this.state=t,q("block/tips",t)}get curHeight(){return this.state.height}get tidCreator(){return d.txdb.tx}get finder(){return this.getTXFromDb.bind(this)}rpcExecute(){return this.rpc.execute.apply(this.rpc,arguments)}async getBlockMap(e){var t=await this.db.get(h.b(e));return t?te.fromRaw(e,t):null}writeBlockMap(e,t,i){this.batch(e).put(h.b(t),i.toRaw())}unwriteBlockMap(e,t){this.batch(e).del(h.b(t))}async getOutpointMap(e,t){var i=await this.db.get(h.o(e,t));return i?Z.fromRaw(e,t,i):null}writeOutpointMap(e,t,i,r){e=this.batch(e),this.addOutpoint(t,i),e.put(h.o(t,i),r.toRaw())}unwriteOutpointMap(e,t,i){this.batch(e).del(h.o(t,i))}async writeBalanceLog(e,t){var i=h.log(e.wid,t.aidx,t.height,t.hash),r=(t=Buffer.from(JSON.stringify(t)),await this.writeLock.lock());try{this.start(e).put(i,t),await this.commit(e)}finally{r()}}async queryBalanceLog(e,t,i=0){return this.db.values({gte:h.log(e,t,i,P.NULL_HASH),lte:h.log(e,t,this.curHeight,P.HIGH_HASH),parse:e=>JSON.parse(e.toString())})}async getBlock(e){var t,i=await this.db.get(h.h(e));return i?((t=new ie).hash=i.toString("hex"),t.height=e,t):null}async getTip(){var e=await this.getBlock(this.curHeight);if(e)return e;throw new Error("WDB: Tip not found!")}async rollback(e,t=!0){if(e>this.curHeight)throw new Error("WDB: Cannot rollback to the future.");if(e===this.curHeight)return this.logger.debug("Rolled back to same height (%d).",e),!0;this.logger.info("Rolling back %d AccountDB blocks to height %d.",this.curHeight-e,e);var i=await this.getBlock(e);let r=!1;return i?(await this.revert(i.height),await this.syncState(i),t):(i=new ie,e>=this.state.startHeight?(i.height=this.state.startHeight,i.hash=this.state.startHash,r=this.state.marked,this.logger.warning("Rolling back AccountDB to start block (%d).",i.height)):(i.height=0,i.hash=this.network.genesis.hash,r=!1,this.logger.warning("Rolling back AccountDB to genesis block.")),await this.revert(i.height),await this.resetState(i,r),!1)}async revert(e){var t=this.db.iterator({gte:h.b(e+1),lte:h.b(4294967295),reverse:!0,values:!0});let i=0,r=0,a=0;for(;;){var s=await t.next();if(!s)break;try{var n=h.bb(s.key);let e=te.fromRaw(n,s.value),t=e.toArray();for(let s=t.length-1;0<=s;s--){var o=await this.getTX(t[s].hash);o&&await this._unconfirm(o,e),i++,a++,this.logger.info(`Rolled back ${r} blocks (${i} transactions, batch size: ${a}).`),5<=a&&(this.cleanupCache(),global.gc&&global.gc(),await new Promise(e=>setTimeout(e,10)),a=0)}r++,e=null,t=null,global.gc&&global.gc()}catch(e){throw await t.end(),e}}0<a&&(this.logger.info(`Rolled back ${r} blocks (${i} transactions, final batch size: ${a}).`),this.cleanupCache(),global.gc)&&global.gc(),this.logger.info("Rolled back %d AccountDB transactions in total",i)}async addBlock(e,t){var i=await this.txLock.lock();try{return await this._addBlock(e,t)}finally{i()}}async _addBlock(e,t){var i=ie.fromEntry(e);let r=0;if(i.height<this.curHeight)this.logger.warning("AccountDB is connecting low blocks (%d).",i.height);else{if(i.height===this.curHeight)this.logger.warning("Already saw AccountDB block (%d).",i.height);else if(i.height!==this.curHeight+1)throw new Error(`WDB(addBlock): Bad disconnection (height mismatch, tip ${i.height} while state ${this.curHeight})`);if(await this.syncState(i),await this.propList.save(),!(this.options.checkpoints&&i.height<=this.network.lastCheckpoint)){for(var a of t)await this._insert(a,i)&&r++;0<r&&this.logger.info("Connected AccountDB block %s (tx=%d).",A.revHex(i.hash),r)}}return r}async removeBlock(e,t){var i=await this.txLock.lock();try{return await this._removeBlock(e,t)}finally{i()}}async _removeBlock(e,t){if((e=ie.fromEntry(e)).height>this.curHeight)return this.logger.warning("AccountDB is disconnecting high blocks (%d).",e.height),0;if(e.height!==this.curHeight)throw new Error(`WDB(removeBlock): Bad disconnection (height mismatch, tip ${e.height} / ${A.revHex(e.hash)} while state ${this.curHeight})`);var i=await this.getBlock(e.height-1);if(!i)throw new Error(`WDB(removeBlock): Bad disconnection (no previous block of ${e.height} / ${A.revHex(e.hash)}).`);var r=await this.getBlockMap(e.height);if(r){for(let e=t.length-1;0<=e;e--)await this._unconfirm(t[e],r);this.logger.warning("Disconnected wallet block %s (tx=%d).",A.revHex(e.hash),r.txs.size)}return await this.syncState(i),await this.propList.save(),r?r.txs.size:0}async rescanBlock(e,t){if(this.rescanning){var i=await this.scanLock.lock();try{await this._addBlock(e,t)}catch(e){throw this.emit("error",e),e}finally{i()}}else this.logger.warning("Unsolicited rescan block: %s.",e.height)}async addTX(e,t,i){var r=await this.txLock.lock();try{return await this._insert(e,t,i)}finally{r()}}listNotify(e){return this.NotifyList.deletes([["h","<",this.curHeight-12]]),this.NotifyList.query(e)}listContact(e,t,i){return this.$contacts.query(e,t,i)}async setCp(e){await this.batchPut(d.txdb.cp(e.cid),e.toRaw())}async delCp(e){await this.batchDel(d.txdb.cp(e))}async delVp(e){var t=this.db.batch();t.del(d.txdb.VP(e.pid)),await t.write()}async setVp(e,t){var i=this.db.batch();i.put(d.txdb.VP(e.pid),e.toRaw()),await i.write()}async getVp(e){return(e=await this.db.get(d.txdb.VP(e)))?G.fromRaw(e):null}async getVpByAddress(e){return{list:[],count:0}}async getVpByOid(e){return{list:[],count:0}}async loadVpList(){return this.db.values({gte:d.txdb.VP(P.ZERO_CID,"hex"),lte:d.txdb.VP(P.MAX_CID,"hex"),parse:e=>G.fromRaw(e)})}async saveContact(e){var t=this.db.batch();t.put(d.txdb.CT(e.getAddress()),e.toRaw()),await t.write()}async loadContact(e){var t;for(t of await this.db.values({gte:d.txdb.CT(P.ZERO_HASH160_HEX),lte:d.txdb.CT(P.MAX_HASH160_HEX),parse:e=>E.fromRaw(e,this)}))t.sender&&(t.sender.wallet=await this.get(t.sender.wid)),this.$contacts.set(t.address,t)}async delHtlc(e){var t;(e=new V(e)).id&&(this.htlcList.delete(e.id),this.htlcList.delAccount(e),(t=this.db.batch()).del(d.txdb.VH(e.shash,e.sidx)),await t.write())}async setSuggest(e){e=new V(e);var t,[t,i]=(this.htlcList.set(e.id,e),await this.getAccountByAddress(e.aa)),[t,i]=(t&&this.htlcList.setAccount(e,t,i),await this.getAccountByAddress(e.ba));(t=(t&&this.htlcList.setAccount(e,t,i),this.db.batch())).put(d.txdb.VH(e.shash,e.sidx),e.toRaw()),await t.write()}async setAssent(e){e=new V(e);var t,[t,i]=(this.htlcList.set(e.id,e),await this.getAccountByAddress(e.ab)),[t,i]=(t&&this.htlcList.setAccount(e,t,i),await this.getAccountByAddress(e.bb));(t=(t&&this.htlcList.setAccount(e,t,i),this.db.batch())).put(d.txdb.VH(e.shash,e.sidx),e.toRaw()),await t.write()}async loadHtlcList(){return this.db.values({gte:d.txdb.VH(P.ZERO_CID,0),lte:d.txdb.VH(P.MAX_CID,4294967295),parse:e=>V.fromRaw(e)})}async delComment(e){var t;(e=new H(e)).id&&(this.commentList.delete(e.id),this.commentList.delAccount(e),(t=this.db.batch()).del(d.txdb.VC(e.shash,e.sidx)),await t.write())}async setComment(e){e=new H(e);var t,[t,i]=(this.commentList.set(e.id,e),await this.getAccountByAddress(e.bob));(t=(t&&(this.commentList.setAccount(e,t,i),this.emit("comm.comment",e)),this.db.batch())).put(d.txdb.VC(e.shash,e.sidx),e.toRaw()),await t.write()}async loadCommentList(){return this.db.values({gte:d.txdb.VC(P.ZERO_CID,0),lte:d.txdb.VC(P.MAX_CID,4294967295),parse:e=>H.fromRaw(e)})}async delEr(e){var t=this.db.batch();t.del(d.txdb.ER(e.erid)),t.del(d.txdb.ERR(e.witness,e.erid,e.txid)),await t.write()}async setEr(e,t){t&&e.source&&(i=g.fromWitnessPubkeyhash(l.hash160(Buffer.from(e.source.pubkey,"hex")),this.network),[i,t]=await this.getAccountByAddress(i,t),e.wid=i,e.account=t);var i=this.db.batch();t=d.txdb.ERR(e.witness,e.erid,e.txid);i.put(t,e.toRaw()),i.put(d.txdb.ER(e.erid),t),await i.write()}async getEr(e){var t;return(e=await this.db.get(d.txdb.ER(e)))&&([,,t]=d.txdb.ERRR(e),e=await this.db.get(e))?((e=X.fromRaw(e)).txid=t,e):null}async byPubkey(e,t,i=!1){var r,a=new k;e=await this.db.values({gte:d.txdb.ERR(e,P.NULL_HASH,P.NULL_HASH),lte:d.txdb.ERR(e,P.HIGH_HASH,P.HIGH_HASH),parse:e=>X.fromRaw(e)});let s=[],n=new Map;if(i){for(var o of e)(!n.get(o.source.cluster)||o.startHeight>n.get(o.source.cluster).startHeight)&&n.set(o.source.cluster,await this.caVerifyObj(o));s=n.values()}else s=e;for(r of s)a.set(r.erid,r);return a.query(t)}async caVerifyObj(e){var t={verify:!1};if(!e||e.validHeight<=this.curHeight)return t;var i=await this.erAbList.getErAb(e.erid);return i&&i.abolishHeight<this.curHeight?t:(i=se.fromPublic(Buffer.from(e.witness,"hex"),this.network.type),e.verify(i)?(e.verify=!0,0<(i=this.cpList.query([["pubKey",e.witness]])).list.length&&(e.cpid=i.list[0].cid),e):t)}async delErAbolish(e){var t=this.db.batch();t.del(d.txdb.ERA(e.erid)),await t.write()}async setErAbolish(e){var t=this.db.batch();t.put(d.txdb.ERA(e.erid),e.toRaw()),await t.write()}async getErAbolish(e){return(e=await this.db.get(d.txdb.ERA(e)))?j.fromRaw(e):null}loadErAbolishList(){return this.db.values({gte:d.txdb.ERA(P.ZERO_CID),lte:d.txdb.ERA(P.MAX_CID),parse:e=>j.fromRaw(e)})}async delAudit(e){var t=this.db.batch();t.del(d.txdb.AU(e.erid)),await t.write()}async setAudit(e){var t=this.db.batch();t.put(d.txdb.AU(e.erid),e.toRaw()),await t.write()}async getAudit(e){return(e=await this.db.get(d.txdb.AU(e)))?J.fromRaw(e):null}async loadAuditList(){return this.db.values({gte:d.txdb.AU(P.NULL_HASH),lte:d.txdb.AU(P.HIGH_HASH),parse:e=>J.fromRaw(e)})}async batchPut(e,t){var i=this.db.batch();i.put(e,t),await i.write()}async batchDel(e){var t=this.db.batch();t.del(e),await t.write()}async _insert(e,t,i){a(!e.mutable,"WDB: Cannot add mutable TX.");let r=await this.getWalletsByTX(e);if(r){this.logger.info("Incoming transaction for %d wallets in AccountDB (%s).",r.size,e.txid()),!t||this.state.marked||(this.logger.info("Marking AccountDB start block at %s (%d).",A.revHex(t.hash),t.height),await this.resetState(t,!0));let o=!1;for(var s of r){var n=await this.get(s);a(n),await n.add(e,t,i)&&(this.logger.info("Added transaction to wallet in AccountDB: %s (%d).",n.id,s),o=!0)}o||(r=null)}try{var o=await b.FactoryOfContract({env:this,block:t,tx:e});t?await o.confirm():await o.insert()}catch(o){t?this.logger.error("TX(%s) Smart Contract Confirm Error: %s",e.txid(),o.message):this.logger.error("TX(%s) Smart Contract Insert Error: %s",e.txid(),o.message)}return r}async _unconfirm(e,t){if(t)try{let i=await b.FactoryOfContract({env:this,block:t,tx:e});await i.unconfirm(),i=null}catch(e){this.logger.error("Smart Contract Unconfirm Error: %s",e.message)}var i,r=e.hash("hex");if(!(e=t.txs.get(r).wids))return null;for(i of e){let e=await this.get(i);a(e),await e.unconfirm(r),e=null,global.gc&&global.gc()}}async resetChain(e){var t=await this.txLock.lock();try{return await this._resetChain(e)}finally{t()}}async _resetChain(e){if(e.height>this.curHeight)throw new Error(`WDB: Bad reset height ${e.height} while curHeight `+this.curHeight);var t;for(t of(await this.rollback(e.height)||await this._rescan(),await this.getWallets())){var i,r=await this.get(t);for(i of await r.getPending())try{await r.abandon(i.hash)}catch(e){}}}async saveMSTrans(e){var t=await this.writeLock.lock();try{return await this._saveMSTrans(e)}finally{t()}}async _saveMSTrans(e){var t=this.db.batch();t.put(h.ms(g.getHash(e.addr,"hex"),e.txid),Buffer.from(JSON.stringify(e))),await t.write()}async listMSTrans(e){return e=g.getHash(e,"hex"),this.db.values({gte:h.ms(e,P.NULL_HASH),lte:h.ms(e,P.HIGH_HASH),parse:e=>JSON.parse(e.toString())})}async delMSTrans(e,t){var i=await this.writeLock.lock();try{return await this._delMSTrans(e,t)}finally{i()}}async _delMSTrans(e,t){e=g.getHash(e,"hex");var i=this.db.batch();i.del(h.ms(e,t)),await i.write()}}le.layout=h,e.exports=le},function(e,t,i){
788
+ let r=i(27),a=i(0),s=i(61),n=i(97),o=i(116),p=i(400),d=i(62),h=d.walletdb,l=i(6),c=i(132),u=i(102),f=i(142),m=i(37),g=i(8);i(15),i(53);let w=i(157),v=i(50),y=i(75);i(101);let b=i(34),{BlockFinalType:x,ContractEnvType:S}=i(5),_=i(133),E=i(402),k=i(23);var R=i(59);let A=i(2),I=i(114).sortWithSeq,C=i(25),O=i(158),N=i(52),T=i(86),P=i(3),B=P.U32,L=i(264),M=i(265),D=i(266),V=D.vpItem,U=i(407),H=U.vpItem,z=i(240);i(408);let F=z.cpItem,K=i(130),j=K.ErAbolishItem,q=i(35).broadcast,W=i(123),G=W.vpItem,Y=i(129),X=Y.ErItem,$=i(409),J=$.AuditItem,Z=i(232),Q=i(90),ee=i(410),te=i(233),ie=i(98),re=i(411),ae=i(179),se=i(31),ne=i(29),oe=i(42),pe=i(69),de=pe.errors,he=i(68);class le extends R{constructor(e){super(),this.readyLoad=!1,this.options=new p(e),this.network=this.options.network,this.logger=this.options.logger.context("wallet"),this.workers=this.options.workers,this.keys={hmacSalt:P.DefaultChainCode},e.keys&&e.keys.hmacSalt&&(a(Buffer.isBuffer(e.keys.hmacSalt)),this.keys.hmacSalt=e.keys.hmacSalt),this.client=this.options.client,this.client&&(this.client.wdb=this),this.jsonp=this.options.jsonp,this.jsonp&&(this.jsonp.wdb=this),this.spv=this.options.spv,this.feeRate=this.options.feeRate,this.db=f(this.options),this.rpc=new L(this),this.primary=null,this.state=new ee,this.wallets=new Map,this.depth=0,this.rescanning=!1,this.bound=!1,this.newRecord=!0,this.readLock=new O,this.writeLock=new C,this.txLock=new C,this.scanLock=new C,this.widCache=new N(1e4),this.pathMapCache=new N(5e4),this.filter=new T,this.middleHashMem=new Set,this.middleHashChain=new Set,this.autoTaskMgr=new _(this),this.transactionList=new M(this),this.htlcList=new D(this),this.commentList=new U(this),this.NotifyList=new k,this.propList=new W(this),this.$contacts=new k,this.cpList=new z(this),this.cpMemList=new z(this),this.auditList=new $(this),this.erList=new Y(this),this.erAbList=new K(this),this.hmacConnection=[],this._init()}async logAudit(e){e.height=this.curHeight,e.time=A.now(),e.erid=l.sha256(A.stringify(e)).toString("hex"),e=new J(e),await this.auditList.setAudit(e)}async getAccountByAddress(e,t){if(e){let a=null;if(a=t?await this.getWalletsByTX(t):await this.getWallets())for(var i of a)if(i=await this.get(i)){var r=await i.getPath(e);if(r)return[i.wid,r.name,i.id]}}return[0,"",""]}_init(){let e=1e6,t=-1;this.spv&&(e=2e4,t=T.flags.ALL),this.filter=T.fromRate(e,.001,t)}get mode(){return S.Wallet}async getTXFromAll(e){return this.getTXFromDb(e)}async checkNewRecord(){var e={createIfMissing:this.db.options.createIfMissing,errorIfExists:this.db.options.errorIfExists};this.db.options.createIfMissing=!1,this.db.options.errorIfExists=!0;try{await this.db.open();var t=await this.db.checkVersion(h,6);this.newRecord="new"==t}catch(e){if(-1!=e.message.indexOf("does not exist (create_if_missing is false)"))this.newRecord=!0;else{if(-1==e.message.indexOf("exists (error_if_exists is true)"))throw e;this.newRecord=!1}}try{await this.db.close()}catch(e){}this.db.options.createIfMissing=e.createIfMissing,this.db.options.errorIfExists=e.errorIfExists}async isNewRecord(){return await this.checkNewRecord(),this.newRecord}setmnemonic(e){if(this.options.mnemonic=this.options.mnemonic||{},e.bits)this.options.mnemonic={bits:e.bits};else if(e.entropy)this.options.mnemonic={entropy:Buffer.from(e.entropy,"hex")};else if(e.phrase){var t=this.testmnemonic(e.phrase);if(0!=t.code)throw t.msg;this.options.mnemonic={phrase:e.phrase}}e.passphrase&&(this.options.mnemonic.passphrase=e.passphrase),e.language&&(this.options.mnemonic.language=e.language)}testmnemonic(e){try{return new w(e),{code:0}}catch(e){return{code:-1,msg:e.message}}}async getContracts(e){var t=await this.db.values({gte:d.txdb.tx(P.NULL_HASH),lte:d.txdb.tx(P.HIGH_HASH),parse:e=>A.parseJson(e.toString())});return e?t.filter(t=>t.srcact==e||t.dstact==e):t}isFull(){return this.spv||this.synced||!1}async _open(e){}async handleNotify(e,t=!1){if(!t){let i=e.body.content;if("string"==typeof i)try{i=JSON.parse(e.body.content)}catch(e){return}"object"==typeof i&&"secret"===i.type&&(t={contact:e.body.src,messenger:e.body.dst},i.init&&(t.init=Buffer.from(i.init,"hex")),i.packet&&(t.packet=Buffer.from(i.packet)),await this.handleSecret(t))}}async handleSecret(e){if(e.contact&&e.messenger&&e.contact!=e.messenger){try{g.fromString(e.contact,this.network.type),g.fromString(e.messenger,this.network.type)}catch(e){return}var t=await this.ensureContact(e);t&&await t.ensureMessenger(e).answer(e)}}async scanContact(e,t=-1){var i=async e=>{var t;e.witness&&"witnesspubkeyhash"==e.getType()&&(t=e.witness.getPubkeyhashInput()[1],e=g.fromWitness(e.witness).toString(),t)&&e&&await this.ensureContact({contact:e,publicKey:t})};if(0<=t&&t<e.inputs.length)await i(e.inputs[t]);else for(var r of e.inputs)await i(r)}async ensureContact(e){if(!e.contact||e.contact==e.messenger)return null;try{g.fromString(e.contact,this.network.type),e.messenger&&g.fromString(e.messenger,this.network.type)}catch(e){return null}e.network=this.network.type,this.$contacts.get(e.contact)||this.$contacts.set(e.contact,new E(e));var t=this.$contacts.get(e.contact);if(e.messenger&&!(e=t.ensureMessenger(e)).wallet){var i,[i,r]=await this.getAccountByAddress(e.address);if(!(i=await this.get(i)))return;e.wallet=i,e.account=r}return t}getCps(){return this.db.values({gte:d.txdb.cp(P.ZERO_CID,"hex"),lte:d.txdb.cp(P.MAX_CID,"hex"),parse:e=>F.fromRaw(e)})}async _close(){for(var e of(await this.disconnect(),this.http&&this.options.listen&&await this.http.close(),this.wallets.values()))await e.destroy();await this.db.close(),this.options.listen&&await this.logger.close()}async destroy(){await this.db.destroy(),this.widCache.reset(),this.pathMapCache.reset()}async load(e){if(this.readyLoad){var t=await this.ensure({id:"primary",witness:!0,mnemonic:this.options.mnemonic}),i=await this.txLock.lock();try{await this.init(e),await this.watch(),await t.createReceive(0,1,t.master,this.network.type),await t.ensureNotifyKey(),await this.sync()}finally{i()}if(this.$parent&&this.$parent.config.str("account-change")&&await t.ensureAccount({name:this.$parent.config.str("account-change"),witness:!0}),this.$parent&&this.$parent.config.array("unable-utxo"))for(var r of this.$parent.config.array("unable-utxo"))r=r.split("|"),t.conserveCoin(new m(r[0],parseInt(r[1])))}}async disconnect(){this.client&&await this.client._close(),this.jsonp&&await this.jsonp._close()}async flushCP(e,t=!1){this.client&&(e=e||[],t||(e=this.cpList.excludeCids(e),t=t||0<e.length),t)&&await this.client.execute("cp.remoteQuery",[[["cid","include",e]]])}async watch(){let e=this.db.iterator({gte:h.p(P.NULL_HASH),lte:h.p(P.HIGH_HASH)}),t=0,i=0;for(;;){var r=await e.next();if(!r)break;try{var a=h.pp(r.key);this.addHash(a,!1)}catch(t){throw await e.end(),t}t++}for(e=this.db.iterator({gte:h.o(P.NULL_HASH,0),lte:h.o(P.HIGH_HASH,4294967295)});;){var s=await e.next();if(!s)break;try{var[n,o]=h.oo(s.key);this.addOutpoint(n,o)}catch(t){throw await e.end(),t}i++}this.logger.info("Filter: Added %d hashes to AccountDB filter.",t),this.logger.info("Filter: Added %d outpoints to AccountDB filter.",i),await this.setFilter()}async sync(){if(this.client){let t,i=this.curHeight;for(;0<=i;){var e=await this.getBlock(i);if(!e)break;if(t=await this.client.getEntry(e.hash))break;i--}t||(i=this.state.startHeight,t=await this.client.getEntry(this.state.startHash))||(i=0),await this.cpList.loadHistory(),await this.cpMemList.loadHistory(),await this.propList.loadHistory(),await this.htlcList.loadHistory(),await this.commentList.loadHistory(),await this.transactionList.loadHistory(),await this.loadContact(),await this.erList.loadHistory(),await this.auditList.loadHistory(),await this.erAbList.loadHistory(),await this._rescan(i,!1)}}cleanupCache(){var e,t,i;for(t of(this.pathMapCache&&1e4<this.pathMapCache.size&&(e=new N(5e3),this.pathMapCache=e,this.logger.info("Cleaned up pathMapCache, size reduced")),this.wallets.values()))t.pathCache&&1e4<t.pathCache.size&&(i=new N(5e3),t.pathCache=i),t.accountCache&&1e3<t.accountCache.size&&(i=new N(500),t.accountCache=i);if(global.gc)try{global.gc()}catch(e){}}async _rescan(e,t=!0){if(this.client){null==e&&(e=this.state.startHeight),a(e>>>0===e,"WDB: Must pass in a height.");var i=process.memoryUsage();if(0===e){for(var r of(this.logger.info("Rescan starting from height 0, memory usage: %s MB",Math.round(i.rss/1024/1024)),this.logger.info("Wiping business data from AccountDB..."),await this.wipe(),this.logger.info("Resetting wallet TXDB states..."),this.wallets.values()))r.txdb.state=new r.txdb.state.constructor(r.wid,r.id),r.txdb.pending=r.txdb.state.clone();(n=new ie).height=0,n.hash=this.network.genesis.hash,await this.resetState(n,!1);try{this.rescanning=!0,this.logger.info("Starting rescan from height 0"),await this.client.rescan(0,this.eid),this.cleanupCache();var s=process.memoryUsage();this.logger.info("Rescan completed, total memory used: %s MB (peak increase: %s MB)",Math.round(s.rss/1024/1024),Math.round((s.rss-i.rss)/1024/1024))}finally{this.rescanning=!1,this.cleanupCache()}}else{var n=this.curHeight,o=(s=(this.logger.info("Rescan starting at height %d, current height %d, memory usage: %s MB",e,n,Math.round(i.rss/1024/1024)),n-e+1),Math.ceil(s/1e3));this.logger.info("AccountDB is scanning %d blocks in %d batches.",s,o),await this.rollback(e,t);try{this.rescanning=!0,this.logger.info("Starting rescan from height %d to %d",e,n),await this.client.rescan(e,this.eid),this.cleanupCache();var p=process.memoryUsage();this.logger.info("Rescan completed, total memory used: %s MB (peak increase: %s MB)",Math.round(p.rss/1024/1024),Math.round((p.rss-i.rss)/1024/1024))}finally{this.rescanning=!1,this.cleanupCache()}}}}async rescan(e){var t=await this.txLock.lock();try{return await this._rescan(e,!1)}finally{t()}}async send(e){return this.client?this.client.send(e):(this.emit("send",e),Promise.resolve())}async getTX(e){for(var t of this.wallets.values())if(t=await t.getTX(e))return t.tx;return null}async getTXFromDb(e){for(var t of this.wallets.values())if(t=await t.getTX(e))return t.tx;return null}async getExtendTX(e){for(var t of this.wallets.values())if(t=await t.getTX(e))return t;return null}async removeTX(e){this.client?await this.client.removeTX(e):this.emit("remove",e)}async estimateFee(e){return 0<this.feeRate?this.feeRate:!this.client||(e=await this.client.estimateFee(e))<this.network.feeRate?this.network.feeRate:e>this.network.maxFeeRate?this.network.maxFeeRate:e}setFilter(){return this.client?this.client.setFilter(this.filter):(this.emit("filter.set",this.filter),Promise.resolve())}resetFilter(){return this.client?this.client.resetFilter():(this.emit("filter.reset"),Promise.resolve())}backup(e){return this.db.backup(e)}async wipe(){this.logger.warning("Wiping AccountDB TXDB..."),this.logger.warning("I hope you know what you're doing.");var e=this.db.iterator({gte:Buffer.from([0]),lte:Buffer.from([255])}),t=this.db.batch();let i=0;for(;;){var r=await e.next();if(!r)break;try{switch(r.key[0]){case 98:case 99:case 101:case 116:case 111:case 104:case 82:t.del(r.key),i++}}catch(t){throw await e.end(),t}}this.logger.warning("Wiped %d txdb records.",i),await t.write()}async getDepth(){var e=this.db.iterator({gte:h.w(0),lte:h.w(4294967295),reverse:!0,limit:1}),t=await e.next();return t?(await e.end(),h.ww(t.key)+1):1}start(e){return a(!e.current,"WDB: Batch already started."),e.current=this.db.batch(),e.accountCache.start(),e.pathCache.start(),e.current}drop(e){var t=this.batch(e);e.current=null,e.accountCache.drop(),e.pathCache.drop(),t.clear()}clear(e){var t=this.batch(e);e.accountCache.clear(),e.pathCache.clear(),t.clear()}batch(e){return a(e.current,"WDB: Batch does not exist."),e.current}async commit(e){var t=this.batch(e);try{await t.write()}catch(e){throw this.drop(),e}e.current=null,e.accountCache.commit(),e.pathCache.commit()}testFilter(e){return this.filter.test(e,"hex")}addHash(e,t=!0){this.filter.add(e,"hex"),t&&(t=Buffer.from(e,"hex"),this.client?this.client.addFilter(t):this.emit("filter.add",t))}addOutpoint(e,t){e=new m(e,t),this.filter.add(e.toRaw())}dump(){return this.db.dump()}register(e){a(!this.wallets.has(e.wid)),this.wallets.set(e.wid,e)}unregister(e){a(this.wallets.has(e.wid)),this.wallets.delete(e.wid)}async getWalletID(e){var t;return e?"number"==typeof e?e:this.widCache.get(e)||((t=await this.db.get(h.l(e)))?(t=t.readUInt32LE(0,!0),this.widCache.set(e,t),t):null):null}async get(e){if(!(e=await this.getWalletID(e)))return null;var t=await this.readLock.lock(e);try{return await this._get(e)}finally{t()}}async _get(e){var t=this.wallets.get(e);return t||((t=await this.db.get(h.w(e)))?(await(e=n.fromRaw(this,t)).open(),this.register(e),e):null)}async loadBackup(e,t){if(oe.unsupported)throw new he(de.INTERNAL_ERROR,"FS not available.");let i=null;var r;for(r of(await oe.readFile(e,"utf8")).split(/\n+/))if(0!==(r=r.trim()).length){if(/^\s*#/.test(r)){if(!r.startsWith("# Encrypted Wallet: "))continue;var s=r.replace("# Encrypted Wallet: ","").split(/\s+/);if(3<=s.length&&"W"===s[0]){if(!t)throw new he(de.INTERNAL_ERROR,"Password is required for encrypted wallet data.");var p=s[1];try{var d=y.decrypt({body:p,password:t,network:this.network});s[1]=d,r=s.join(" ")}catch(e){throw this.logger.error("loadBackup: Failed to decrypt wallet: "+e.message),new he(de.INTERNAL_ERROR,"Failed to decrypt wallet data. Please check your password.")}}}var h=r.split(/\s+/);if(h.length<4)throw new he(de.DESERIALIZATION_ERROR,"Malformed wallet Data File.");switch(h[0]){case"W":var l=Buffer.from(h[1],"base64");l=n.fromRaw(this,l);await this.replace(l),i=await this.get(l.id),this.logger.info("Import Wallet %s(%s)",i.id,i.wid);break;case"C":l=Buffer.from(h[1],"base64");(c=((u=o.fromRaw(this,l)).wallet=i,u.wid=i.wid,u.id=i.id,u.initialized=!0,u.watchOnly=i.watchOnly,u.receive=u.deriveReceive(u.receiveDepth-1),u.change=u.deriveChange(u.changeDepth-1),u.witness&&(u.nested=u.deriveNested(u.nestedDepth-1)),i.master.key.deriveAccount(44,u.accountIndex))).publicKey.toString("hex")!==u.accountKey.publicKey.toString("hex")&&a(c.publicKey.toString("hex")==u.accountKey.publicKey.toString("hex")),await i.saveAccount(u),this.logger.info("Import Account %s(%s)",u.name,u.accountIndex);break;case"A":{let r=h[1];var c=parseInt(h[5]),u=parseInt(h[7]),f=parseInt(h[9]);let a=11<h.length&&h[11]?h[11].trim():"";if(r.startsWith("# Encrypted Secret: ")){if(!t)throw new he(de.INTERNAL_ERROR,"Password is required for encrypted secret data.");var m=r.replace("# Encrypted Secret: ","");try{r=y.decrypt({body:m,password:t,network:this.network})}catch(e){throw this.logger.error("loadBackup: Failed to decrypt secret: "+e.message),new he(de.INTERNAL_ERROR,"Failed to decrypt secret data. Please check your password.")}}if(u<0||f<0){if("S"!==r)try{var g=pe.parseSecret(r,this.network);await i.importKey(c,g)}catch(e){this.logger.error(`loadBackup: ${e.message} account/secret: ${c}/`+a)}}else{m=await i.deriveKey(c,u,f);var w=await i.deriveKey(c,u,f,i.master);m.getAddress("string")!==w.getAddress("string")&&this.logger.error(`loadBackup: not-equal: ${m.getAddress("string")} != `+w.getAddress("string")),a=m.getAddress("string")}this.logger.info("Import Address %s %s %s %s",c,u,f,a);break}}}return i.accountCache.reset(),i}save(e){var t=e.wid,i=e.id,r=this.batch(e);this.widCache.set(i,t),r.put(h.w(t),e.toRaw()),r.put(h.l(i),B(t))}async rename(e,t){var i=await this.writeLock.lock();try{return await this._rename(e,t)}finally{i()}}async _rename(e,t){var i=e.id;if(!s.isName(t))throw new Error("WDB: Bad wallet ID.");if(await this.has(t))throw new Error("WDB: ID not available.");this.start(e).del(h.l(i)),e.id=t,this.save(e),await this.commit(e),this.widCache.remove(i);var r;i=e.pathCache.values();for(r of i)r.id=t}async replace(e){var t=await this.writeLock.lock();try{return await this._replace(e)}finally{t()}}async _replace(e){var t=this.start(e);t.del(h.l(e.id)),t.del(h.w(e.wid)),this.save(e),await this.commit(e),this.widCache.remove(e.id),this.wallets.delete(e.wid)}renameAccount(e,t){var i=e.wallet;this.batch(i).del(h.i(e.wid,e.name)),e.name=t,this.saveAccount(e)}async auth(e,t){if("string"==typeof t){if(!A.isHex256(t))throw new Error("WDB Authentication: Invalid Token.");t=Buffer.from(t,"hex")}e=v.getHmac(e.toString(),this.keys.hmacSalt);var i=r.createHmac("sha256",e.random);i=Buffer.from(i.update(e.token).digest("hex"),"hex");if(!c(t,i))throw new Error("WDB Authentication: CRC Error.")}async create(e){var t=await this.writeLock.lock();e=e||{};try{return await this._create(e)}finally{t()}}async _create(e){if(await this.has(e.id))throw new Error("WDB: Wallet already exists.");"string"==typeof e.mnemonic&&(e.mnemonic={phrase:e.mnemonic}),e.mnemonic=e.mnemonic||{},!e.mnemonic.language&&this.options.mnemonic&&this.options.mnemonic.language&&(e.mnemonic.language=this.options.mnemonic.language);var t=n.fromOptions(this,e);return t.wid=this.depth++,await t.init(e),this.register(t),this.logger.info("Created wallet %s in AccountDB.",t.id),t}async has(e){return null!=await this.getWalletID(e)}async ensure(e){return await this.get(e.id)||this.create(e)}async getAccount(e,t){return(e=await this.db.get(h.a(e,t)))?o.fromRaw(this,e):null}getAccounts(e){return this.db.values({gte:h.n(e,0),lte:h.n(e,4294967295),parse:e=>e.toString("ascii")})}async getAccountMap(e){for(var t={},i=this.db.iterator({gte:h.n(e,0),lte:h.n(e,4294967295),values:!0});;){var r=await i.next();if(!r)break;try{var[,a]=h.nn(r.key);t[a]=r.value.toString("ascii")}catch(e){throw await i.end(),e}}return t}async getAccountIndex(e,t){return(e=await this.db.get(h.i(e,t)))?e.readUInt32LE(0,!0):-1}async getAccountName(e,t){return(e=await this.db.get(h.n(e,t)))?e.toString("ascii"):null}saveAccount(e){var t=e.wid,i=e.wallet,r=e.accountIndex,a=e.name,s=this.batch(i);s.put(h.a(t,r),e.toRaw()),s.put(h.i(t,a),B(r)),s.put(h.n(t,r),Buffer.from(a,"ascii")),i.accountCache.push(r,e)}hasAccount(e,t){return"number"==typeof e&&"number"==typeof t&&this.db.has(h.a(e,t))}async getPathMap(e){var t=this.pathMapCache.get(e);return t||((t=await this.db.get(h.p(e)))?(t=re.fromRaw(e,t),this.pathMapCache.set(e,t),t):null)}saveKey(e,t){return this.savePath(e,t.toPath())}async savePath(e,t){var i=e.wid,r=t.hash,a=this.batch(e);this.addHash(r);let s=await this.getPathMap(r);(s=s||new re(r)).add(i)&&(this.pathMapCache.set(r,s),e.pathCache.push(r,t),a.put(h.p(r),s.toRaw()),a.put(h.P(i,r),t.toRaw()),a.put(h.r(i,t.account,r),null))}async getPath(e,t){var i=await this.db.get(h.P(e,t));return i?((i=Q.fromRaw(i)).wid=e,i.hash=t,i):null}hasPath(e,t){return this.db.has(h.P(e,t))}getHashes(){return this.db.keys({gte:h.p(P.NULL_HASH),lte:h.p(P.HIGH_HASH),parse:h.pp})}getOutpoints(){return this.db.keys({gte:h.o(P.NULL_HASH,0),lte:h.o(P.HIGH_HASH,4294967295),parse:e=>{var[e,t]=h.oo(e);return new m(e,t)}})}getWalletHashes(e){return this.db.keys({gte:h.P(e,P.NULL_HASH),lte:h.P(e,P.HIGH_HASH),parse:h.Pp})}getAccountHashes(e,t){return this.db.keys({gte:h.r(e,t,P.NULL_HASH),lte:h.r(e,t,P.HIGH_HASH),parse:h.rr})}async getWalletPaths(e){var t,i=[];for(t of await this.db.range({gte:h.P(e,P.NULL_HASH),lte:h.P(e,P.HIGH_HASH)})){var r=h.Pp(t.key),a=Q.fromRaw(t.value);a.hash=r,a.wid=e,i.push(a)}return i}async encryptKeys(e,t){var i,r,s=e.wid,n=await e.getPaths(),o=this.batch(e);for(i of n)i.data&&(a(!i.encrypted),r=Buffer.from(i.hash,"hex").slice(0,16),(i=i.clone()).data=u.encipher(i.data,t,r),i.encrypted=!0,e.pathCache.push(i.hash,i),o.put(h.P(s,i.hash),i.toRaw()))}async decryptKeys(e,t){var i,r,s=e.wid,n=await e.getPaths(),o=this.batch(e);for(i of n)i.data&&(a(i.encrypted),r=Buffer.from(i.hash,"hex").slice(0,16),(i=i.clone()).data=u.decipher(i.data,t,r),i.encrypted=!1,e.pathCache.push(i.hash,i),o.put(h.P(s,i.hash),i.toRaw()))}async resend(){var e,t,i={};for(e of await this.db.keys({gte:h.w(0),lte:h.w(4294967295)})){var r=h.ww(e),a=await this.resendPending(r);a&&Array.isArray(a)&&(i[r]=a)}for(t of Object.keys(i))if(await this.get(parseInt(t)))for(var s of i[t]){try{await this.send(s)}catch(e){this.logger.warning("wdb resend:",e.message)}await ne.timeout(50)}}async resendPending(e){var t=await this.get(e),i=await this.db.keys({gte:d.txdb.prefix(e,d.txdb.p(P.NULL_HASH)),lte:d.txdb.prefix(e,d.txdb.p(P.HIGH_HASH))});if(0!==i.length){this.logger.info("Rebroadcasting %d transactions for %d.",i.length,e);var r,a=[];for(r of i){var s=d.txdb.pp(r),n=d.txdb.prefix(e,d.txdb.t(s));if((n=await this.db.get(n))&&!(n=ae.fromRaw(n)).tx.isCoinbase())try{var o=await b.FactoryOfContract({tx:n.tx,env:this});await o.isBlockFinal()==x.Expired?t&&(await this.removeTX(n.tx),await t.remove(s),await o.erase()):"notify"!=o.oper&&a.push(n.tx)}catch(e){this.logger.error("TX(%s) Smart Contract Error: %s",n.tx.txid(),e.message)}}return I(a)}}getWallets(){return this.db.keys({gte:h.l("\0"),lte:h.l("ÿ"),parse:h.ll})}async getWalletsByTX(e){var t,i=new Set;if(!e.isCoinbase())for(var r of e.inputs)if(r=r.prevout,this.testFilter(r.toRaw())&&(r=await this.getOutpointMap(r.hash,r.index)))for(var a of r.wids)i.add(a);for(t of e.getOutputHashes("hex"))if(this.testFilter(t)){var s=await this.getPathMap(t);if(s)for(var n of s.wids)i.add(n)}return 0===i.size?null:i}async getState(){var e=await this.db.get(h.R);return e?ee.fromRaw(e):null}async init(e){var t=this.options.startHeight;let i;if(this.client){if(null!=t){if(!(i=await this.client.getEntry(t)))throw new Error("WDB: Could not find start block.")}else i=await this.client.getTip();i=ie.fromEntry(i)}else i=ie.fromEntry(this.network.genesis);var r;if(this.logger.info("Initializing AccountDB chain state (height %d).",i.height),(t=await this.getState())?this.state=t:await this.resetState(i,!1),await this.ensure({id:"primary",witness:!0,mnemonic:this.options.mnemonic}),e&&e.backup)for(r of e.backup.split(","))await this.loadBackup(r.trim(),e.backupPassword)}async resetState(e,t){for(var i=this.state.clone(),r=(i.startHeight=e.height,i.startHash=e.hash,i.height=e.height,i.marked=t,this.db.batch()),a=this.db.iterator({gte:h.h(e.height),lte:h.h(4294967295),values:!1});;){var s=await a.next();if(!s)break;try{r.del(s.key)}catch(e){throw await a.end(),e}}r.put(h.h(e.height),e.toHash()),r.put(h.R,i.toRaw()),await r.write(),this.state=i}async syncState(e){var t=this.state.clone(),i=this.db.batch();if(e.height<t.height){let a=t.height;var r=a-e.height;for(let e=0;e<r;e++)i.del(h.h(a--))}else e.height>t.height&&a(e.height===t.height+1,`Bad chain sync tip ${e.height} while state `+t.height);t.height=e.height,i.put(h.h(e.height),e.toHash()),i.put(h.R,t.toRaw()),await i.write(),this.state=t,q("block/tips",t)}get curHeight(){return this.state.height}get tidCreator(){return d.txdb.tx}get finder(){return this.getTXFromDb.bind(this)}rpcExecute(){return this.rpc.execute.apply(this.rpc,arguments)}async getBlockMap(e){var t=await this.db.get(h.b(e));return t?te.fromRaw(e,t):null}writeBlockMap(e,t,i){this.batch(e).put(h.b(t),i.toRaw())}unwriteBlockMap(e,t){this.batch(e).del(h.b(t))}async getOutpointMap(e,t){var i=await this.db.get(h.o(e,t));return i?Z.fromRaw(e,t,i):null}writeOutpointMap(e,t,i,r){e=this.batch(e),this.addOutpoint(t,i),e.put(h.o(t,i),r.toRaw())}unwriteOutpointMap(e,t,i){this.batch(e).del(h.o(t,i))}async writeBalanceLog(e,t){var i=h.log(e.wid,t.aidx,t.height,t.hash),r=(t=Buffer.from(JSON.stringify(t)),await this.writeLock.lock());try{this.start(e).put(i,t),await this.commit(e)}finally{r()}}async queryBalanceLog(e,t,i=0){return this.db.values({gte:h.log(e,t,i,P.NULL_HASH),lte:h.log(e,t,this.curHeight,P.HIGH_HASH),parse:e=>JSON.parse(e.toString())})}async getBlock(e){var t,i=await this.db.get(h.h(e));return i?((t=new ie).hash=i.toString("hex"),t.height=e,t):null}async getTip(){var e=await this.getBlock(this.curHeight);if(e)return e;throw new Error("WDB: Tip not found!")}async rollback(e,t=!0){if(e>this.curHeight)throw new Error("WDB: Cannot rollback to the future.");if(e===this.curHeight)return this.logger.debug("Rolled back to same height (%d).",e),!0;this.logger.info("Rolling back %d AccountDB blocks to height %d.",this.curHeight-e,e);var i=await this.getBlock(e);let r=!1;return i?(await this.revert(i.height),await this.syncState(i),t):(i=new ie,e>=this.state.startHeight?(i.height=this.state.startHeight,i.hash=this.state.startHash,r=this.state.marked,this.logger.warning("Rolling back AccountDB to start block (%d).",i.height)):(i.height=0,i.hash=this.network.genesis.hash,r=!1,this.logger.warning("Rolling back AccountDB to genesis block.")),await this.revert(i.height),await this.resetState(i,r),!1)}async revert(e){var t=this.db.iterator({gte:h.b(e+1),lte:h.b(4294967295),reverse:!0,values:!0});let i=0,r=0,a=0;for(;;){var s=await t.next();if(!s)break;try{var n=h.bb(s.key);let e=te.fromRaw(n,s.value),t=e.toArray();for(let s=t.length-1;0<=s;s--){var o=await this.getTX(t[s].hash);o&&await this._unconfirm(o,e),i++,a++,this.logger.info(`Rolled back ${r} blocks (${i} transactions, batch size: ${a}).`),5<=a&&(this.cleanupCache(),global.gc&&global.gc(),await new Promise(e=>setTimeout(e,10)),a=0)}r++,e=null,t=null,global.gc&&global.gc()}catch(e){throw await t.end(),e}}0<a&&(this.logger.info(`Rolled back ${r} blocks (${i} transactions, final batch size: ${a}).`),this.cleanupCache(),global.gc)&&global.gc(),this.logger.info("Rolled back %d AccountDB transactions in total",i)}async addBlock(e,t){var i=await this.txLock.lock();try{return await this._addBlock(e,t)}finally{i()}}async _addBlock(e,t){var i=ie.fromEntry(e);let r=0;if(i.height<this.curHeight)this.logger.warning("AccountDB is connecting low blocks (%d).",i.height);else{if(i.height===this.curHeight)this.logger.warning("Already saw AccountDB block (%d).",i.height);else if(i.height!==this.curHeight+1)throw new Error(`WDB(addBlock): Bad disconnection (height mismatch, tip ${i.height} while state ${this.curHeight})`);if(await this.syncState(i),await this.propList.save(),!(this.options.checkpoints&&i.height<=this.network.lastCheckpoint)){for(var a of t)await this._insert(a,i)&&r++;0<r&&this.logger.info("Connected AccountDB block %s (tx=%d).",A.revHex(i.hash),r)}}return r}async removeBlock(e,t){var i=await this.txLock.lock();try{return await this._removeBlock(e,t)}finally{i()}}async _removeBlock(e,t){if((e=ie.fromEntry(e)).height>this.curHeight)return this.logger.warning("AccountDB is disconnecting high blocks (%d).",e.height),0;if(e.height!==this.curHeight)throw new Error(`WDB(removeBlock): Bad disconnection (height mismatch, tip ${e.height} / ${A.revHex(e.hash)} while state ${this.curHeight})`);var i=await this.getBlock(e.height-1);if(!i)throw new Error(`WDB(removeBlock): Bad disconnection (no previous block of ${e.height} / ${A.revHex(e.hash)}).`);var r=await this.getBlockMap(e.height);if(r){for(let e=t.length-1;0<=e;e--)await this._unconfirm(t[e],r);this.logger.warning("Disconnected wallet block %s (tx=%d).",A.revHex(e.hash),r.txs.size)}return await this.syncState(i),await this.propList.save(),r?r.txs.size:0}async rescanBlock(e,t){if(this.rescanning){var i=await this.scanLock.lock();try{await this._addBlock(e,t)}catch(e){throw this.emit("error",e),e}finally{i()}}else this.logger.warning("Unsolicited rescan block: %s.",e.height)}async addTX(e,t,i){var r=await this.txLock.lock();try{return await this._insert(e,t,i)}finally{r()}}listNotify(e){return this.NotifyList.deletes([["h","<",this.curHeight-12]]),this.NotifyList.query(e)}listContact(e,t,i){return this.$contacts.query(e,t,i)}async setCp(e){await this.batchPut(d.txdb.cp(e.cid),e.toRaw())}async delCp(e){await this.batchDel(d.txdb.cp(e))}async delVp(e){var t=this.db.batch();t.del(d.txdb.VP(e.pid)),await t.write()}async setVp(e,t){var i=this.db.batch();i.put(d.txdb.VP(e.pid),e.toRaw()),await i.write()}async getVp(e){return(e=await this.db.get(d.txdb.VP(e)))?G.fromRaw(e):null}async getVpByAddress(e){return{list:[],count:0}}async getVpByOid(e){return{list:[],count:0}}async loadVpList(){return this.db.values({gte:d.txdb.VP(P.ZERO_CID,"hex"),lte:d.txdb.VP(P.MAX_CID,"hex"),parse:e=>G.fromRaw(e)})}async saveContact(e){var t=this.db.batch();t.put(d.txdb.CT(e.getAddress()),e.toRaw()),await t.write()}async loadContact(e){var t;for(t of await this.db.values({gte:d.txdb.CT(P.ZERO_HASH160_HEX),lte:d.txdb.CT(P.MAX_HASH160_HEX),parse:e=>E.fromRaw(e,this)}))t.sender&&(t.sender.wallet=await this.get(t.sender.wid)),this.$contacts.set(t.address,t)}async delHtlc(e){var t;(e=new V(e)).id&&(this.htlcList.delete(e.id),this.htlcList.delAccount(e),(t=this.db.batch()).del(d.txdb.VH(e.shash,e.sidx)),await t.write())}async setSuggest(e){e=new V(e);var t,[t,i]=(this.htlcList.set(e.id,e),await this.getAccountByAddress(e.aa)),[t,i]=(t&&this.htlcList.setAccount(e,t,i),await this.getAccountByAddress(e.ba));(t=(t&&this.htlcList.setAccount(e,t,i),this.db.batch())).put(d.txdb.VH(e.shash,e.sidx),e.toRaw()),await t.write()}async setAssent(e){e=new V(e);var t,[t,i]=(this.htlcList.set(e.id,e),await this.getAccountByAddress(e.ab)),[t,i]=(t&&this.htlcList.setAccount(e,t,i),await this.getAccountByAddress(e.bb));(t=(t&&this.htlcList.setAccount(e,t,i),this.db.batch())).put(d.txdb.VH(e.shash,e.sidx),e.toRaw()),await t.write()}async loadHtlcList(){return this.db.values({gte:d.txdb.VH(P.ZERO_CID,0),lte:d.txdb.VH(P.MAX_CID,4294967295),parse:e=>V.fromRaw(e)})}async delComment(e){var t;(e=new H(e)).id&&(this.commentList.delete(e.id),this.commentList.delAccount(e),(t=this.db.batch()).del(d.txdb.VC(e.shash,e.sidx)),await t.write())}async setComment(e){e=new H(e);var t,[t,i]=(this.commentList.set(e.id,e),await this.getAccountByAddress(e.bob));(t=(t&&(this.commentList.setAccount(e,t,i),this.emit("comm.comment",e)),this.db.batch())).put(d.txdb.VC(e.shash,e.sidx),e.toRaw()),await t.write()}async loadCommentList(){return this.db.values({gte:d.txdb.VC(P.ZERO_CID,0),lte:d.txdb.VC(P.MAX_CID,4294967295),parse:e=>H.fromRaw(e)})}async delEr(e){var t=this.db.batch();t.del(d.txdb.ER(e.erid)),t.del(d.txdb.ERR(e.witness,e.erid,e.txid)),await t.write()}async setEr(e,t){t&&e.source&&(i=g.fromWitnessPubkeyhash(l.hash160(Buffer.from(e.source.pubkey,"hex")),this.network),[i,t]=await this.getAccountByAddress(i,t),e.wid=i,e.account=t);var i=this.db.batch();t=d.txdb.ERR(e.witness,e.erid,e.txid);i.put(t,e.toRaw()),i.put(d.txdb.ER(e.erid),t),await i.write()}async getEr(e){var t;return(e=await this.db.get(d.txdb.ER(e)))&&([,,t]=d.txdb.ERRR(e),e=await this.db.get(e))?((e=X.fromRaw(e)).txid=t,e):null}async byPubkey(e,t,i=!1){var r,a=new k;e=await this.db.values({gte:d.txdb.ERR(e,P.NULL_HASH,P.NULL_HASH),lte:d.txdb.ERR(e,P.HIGH_HASH,P.HIGH_HASH),parse:e=>X.fromRaw(e)});let s=[],n=new Map;if(i){for(var o of e)(!n.get(o.source.cluster)||o.startHeight>n.get(o.source.cluster).startHeight)&&n.set(o.source.cluster,await this.caVerifyObj(o));s=n.values()}else s=e;for(r of s)a.set(r.erid,r);return a.query(t)}async caVerifyObj(e){var t={verify:!1};if(!e||e.validHeight<=this.curHeight)return t;var i=await this.erAbList.getErAb(e.erid);return i&&i.abolishHeight<this.curHeight?t:(i=se.fromPublic(Buffer.from(e.witness,"hex"),this.network.type),e.verify(i)?(e.verify=!0,0<(i=this.cpList.query([["pubKey",e.witness]])).list.length&&(e.cpid=i.list[0].cid),e):t)}async delErAbolish(e){var t=this.db.batch();t.del(d.txdb.ERA(e.erid)),await t.write()}async setErAbolish(e){var t=this.db.batch();t.put(d.txdb.ERA(e.erid),e.toRaw()),await t.write()}async getErAbolish(e){return(e=await this.db.get(d.txdb.ERA(e)))?j.fromRaw(e):null}loadErAbolishList(){return this.db.values({gte:d.txdb.ERA(P.ZERO_CID),lte:d.txdb.ERA(P.MAX_CID),parse:e=>j.fromRaw(e)})}async delAudit(e){var t=this.db.batch();t.del(d.txdb.AU(e.erid)),await t.write()}async setAudit(e){var t=this.db.batch();t.put(d.txdb.AU(e.erid),e.toRaw()),await t.write()}async getAudit(e){return(e=await this.db.get(d.txdb.AU(e)))?J.fromRaw(e):null}async loadAuditList(){return this.db.values({gte:d.txdb.AU(P.NULL_HASH),lte:d.txdb.AU(P.HIGH_HASH),parse:e=>J.fromRaw(e)})}async batchPut(e,t){var i=this.db.batch();i.put(e,t),await i.write()}async batchDel(e){var t=this.db.batch();t.del(e),await t.write()}async _insert(e,t,i){a(!e.mutable,"WDB: Cannot add mutable TX.");let r=await this.getWalletsByTX(e);if(r){this.logger.info("Incoming transaction for %d wallets in AccountDB (%s).",r.size,e.txid()),!t||this.state.marked||(this.logger.info("Marking AccountDB start block at %s (%d).",A.revHex(t.hash),t.height),await this.resetState(t,!0));let p=!1;for(var s of r){var n=await this.get(s);if(a(n),await n.add(e,t,i)&&(this.logger.info("Added transaction to wallet in AccountDB: %s (%d).",n.id,s),p=!0,0<n.txdb.systemConservedCoins.size))for(let t=0;t<e.outputs.length;t++){var o=new m(e.hash("hex"),t);n.txdb.isSystemConserved(o)&&(n.txdb.removeSystemConservedCoin(o),this.logger.info("System conserved coin recovered:",e.hash("hex"),t))}}p||(r=null)}try{var p=await b.FactoryOfContract({env:this,block:t,tx:e});t?await p.confirm():await p.insert()}catch(p){t?this.logger.error("TX(%s) Smart Contract Confirm Error: %s",e.txid(),p.message):this.logger.error("TX(%s) Smart Contract Insert Error: %s",e.txid(),p.message)}return r}async _unconfirm(e,t){if(t)try{let i=await b.FactoryOfContract({env:this,block:t,tx:e});await i.unconfirm(),i=null}catch(e){this.logger.error("Smart Contract Unconfirm Error: %s",e.message)}var i,r=e.hash("hex");if(!(e=t.txs.get(r).wids))return null;for(i of e){let e=await this.get(i);a(e),await e.unconfirm(r),e=null,global.gc&&global.gc()}}async resetChain(e){var t=await this.txLock.lock();try{return await this._resetChain(e)}finally{t()}}async _resetChain(e){if(e.height>this.curHeight)throw new Error(`WDB: Bad reset height ${e.height} while curHeight `+this.curHeight);var t;for(t of(await this.rollback(e.height)||await this._rescan(),await this.getWallets())){var i,r=await this.get(t);for(i of await r.getPending())try{await r.abandon(i.hash)}catch(e){}}}async saveMSTrans(e){var t=await this.writeLock.lock();try{return await this._saveMSTrans(e)}finally{t()}}async _saveMSTrans(e){var t=this.db.batch();t.put(h.ms(g.getHash(e.addr,"hex"),e.txid),Buffer.from(JSON.stringify(e))),await t.write()}async listMSTrans(e){return e=g.getHash(e,"hex"),this.db.values({gte:h.ms(e,P.NULL_HASH),lte:h.ms(e,P.HIGH_HASH),parse:e=>JSON.parse(e.toString())})}async delMSTrans(e,t){var i=await this.writeLock.lock();try{return await this._delMSTrans(e,t)}finally{i()}}async _delMSTrans(e,t){e=g.getHash(e,"hex");var i=this.db.batch();i.del(h.ms(e,t)),await i.write()}}le.layout=h,e.exports=le},function(e,t,i){
789
789
  /*!
790
790
  * txdb.js - persistent transaction pool
791
791
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
792
792
  */
793
- let r=i(2),a=i(52),s=i(0),n=i(28),o=i(51),p=i(44),d=i(37),h=i(232),l=i(62).txdb,c=i(3),u=i(20),f=i(11),m=i(233),g=i(179),w=i(234),v=i(374),y=i(235);i(97),i(98);let b=i(375);i(15);let x=i(34),S=i(95),_=i(14).nestingCodes;class E{constructor(e){this.wallet=e,this.walletdb=e.db,this.logger=this.walletdb.logger,this.network=this.walletdb.network,this.options=this.walletdb.options,this.coinCache=new a(this.options.coinCache),this.userConservedCoins=new Set,this.systemConservedCoins=new Set,this.lockedCoins=new Map,this.virtualAmount=new Map,this.state=null,this.pending=null,this.events=[]}async open(){let e=null;try{e=await this.getState()}catch(t){this.logger.info("TXDB State Format Error."),e=null}e?(this.state=e,this.logger.info("TXDB loaded for %s.",this.wallet.id)):(this.state=new v(this.wallet.wid,this.wallet.id),this.logger.info("TXDB created for %s.",this.wallet.id)),this.logger.info("TXDB State: tx=%d coin=%s.",this.state.tx,this.state.coin),this.logger.info("Balance: unconfirmed=%s confirmed=%s.",n.btc(this.state.unconfirmed),n.btc(this.state.confirmed)),this.pending=this.state.clone(),await this.loadLockedCoins(),this.state=this.pending}start(){return this.coinCache.pending&&this.coinCache.drop(),this.pending=this.state.clone(),this.coinCache.start(),this.wallet.current||this.wallet.start()}drop(){return this.pending=null,this.events.length=0,this.coinCache.drop(),this.wallet.drop()}clear(){return this.pending=this.state.clone(),this.events.length=0,this.coinCache.drop(),this.wallet.clear()}async commit(){try{await this.wallet.commit()}catch(e){throw this.pending=null,this.events.length=0,this.coinCache.drop(),e}if(this.pending.committed)for(var[e,t,i]of(this.state=this.pending,this.events))this.walletdb.emit(e,this.wallet.id,t,i),"tx"==e&&this.walletdb.emit("tx.received."+t.rhash(),this.wallet.id,t,i),this.wallet.emit(e,t,i);this.pending=null,this.events.length=0,this.coinCache.commit()}emit(e,t,i){this.events.push([e,t,i])}prefix(e){return s(this.wallet.wid),l.prefix(this.wallet.wid,e)}put(e,t){s(this.wallet.current),this.wallet.current.put(this.prefix(e),t)}del(e){s(this.wallet.current),this.wallet.current.del(this.prefix(e))}get(e){return this.walletdb.db.get(this.prefix(e))}has(e){return this.walletdb.db.has(this.prefix(e))}range(e){return e.gte&&(e.gte=this.prefix(e.gte)),e.lte&&(e.lte=this.prefix(e.lte)),this.walletdb.db.range(e)}keys(e){return e.gte&&(e.gte=this.prefix(e.gte)),e.lte&&(e.lte=this.prefix(e.lte)),this.walletdb.db.keys(e)}values(e){return e.gte&&(e.gte=this.prefix(e.gte)),e.lte&&(e.lte=this.prefix(e.lte)),this.walletdb.db.values(e)}async getPath(e){return(e=e.getAddress())?this.wallet.getPath(e):null}async hasPath(e){return!!(e=e.getAddress())&&this.wallet.hasPath(e)}async saveCredit(e,t){var i=e.coin,r=i.toKey(),a=e.toRaw();let s=await this.walletdb.getOutpointMap(i.hash,i.index);s=s||new h(i.hash,i.index),this.pending||this.start(),s.add(this.wallet.wid)&&this.walletdb.writeOutpointMap(this.wallet,i.hash,i.index,s),this.put(l.c(i.hash,i.index),a),this.put(l.C(t.account,i.hash,i.index),null),this.coinCache.push(r,e)}async removeCredit(e,t){var i=(e=e.coin).toKey();this.pending||this.start(),await this.removeOutpointMap(e.hash,e.index),this.del(l.C(t.account,e.hash,e.index)),this.del(l.c(e.hash,e.index)),this.coinCache.unpush(i)}spendCredit(e,t,i){var r=t.inputs[i].prevout;t=d.fromTX(t,i);this.put(l.d(t.hash,t.index),e.coin.toRaw()),this.put(l.s(r.hash,r.index),t.toRaw())}unspendCredit(e,t){var i=e.inputs[t].prevout;e=d.fromTX(e,t);this.del(l.s(i.hash,i.index)),this.del(l.d(e.hash,e.index))}writeInput(e,t){var i=e.inputs[t].prevout;e=d.fromTX(e,t);this.put(l.s(i.hash,i.index),e.toRaw())}removeInput(e,t){e=e.inputs[t].prevout,this.del(l.s(e.hash,e.index))}async resolveInput(e,t,i,r,a,n){var o,p=e.hash("hex");return!!(p=await this.getSpender(p,t))&&!await this.hasSpentCoin(p)&&(o=await this.getTX(p.hash),s(o),(e=y.fromTX(e,t,i,r)).own=n,this.spendCredit(e,o.tx,p.index),-1===o.height&&(e.spent=!0,-1!==i&&(this.changeConfirmed(e.coin,1),e.coin.lockedByLocktime(i,r)||e.coin.lockedBySequence(i,r))&&this.addLocked(e.coin),await this.saveCredit(e,a)),!0)}async isDoubleSpend(e){for(var{prevout:t}of e.inputs)if(await this.isSpent(t.hash,t.index))return!0;return!1}async isRBF(e){if(e.isRBF())return!0;for(var{prevout:t}of e.inputs)if(t=l.r(t.hash),await this.has(t))return!0;return!1}async getSpender(e,t){return(e=await this.get(l.s(e,t)))?d.fromRaw(e):null}isSpent(e,t){return this.has(l.s(e,t))}async removeOutpointMap(e,t){var i=await this.walletdb.getOutpointMap(e,t);i&&i.remove(this.wallet.wid)&&(this.pending||this.start(),0===i.wids.size?this.walletdb.unwriteOutpointMap(this.wallet,e,t):this.walletdb.writeOutpointMap(this.wallet,e,t,i))}async addBlockMap(e,t){let i=await this.walletdb.getBlockMap(t);(i=i||new m(t)).add(e,this.wallet.wid)&&(this.pending||this.start(),this.walletdb.writeBlockMap(this.wallet,t,i))}async removeBlockMap(e,t){var i=await this.walletdb.getBlockMap(t);i&&i.remove(e,this.wallet.wid)&&(this.pending||this.start(),0===i.txs.size?this.walletdb.unwriteBlockMap(this.wallet,t):this.walletdb.writeBlockMap(this.wallet,t,i))}getBlocks(){return this.keys({gte:l.b(0),lte:l.b(4294967295),parse:e=>l.bb(e)})}async getStatusOfSC(e){return(e=await this.get(l.de(e)))?{txs:e.toString().split(",")}:{}}async _setStatusOfSC(e,t){t=t.reduce((e,t)=>(e&&(e+=","),e+t),""),this.put(l.de(e),Buffer.from(t))}async getBlock(e){return(e=await this.get(l.b(e)))?b.fromRaw(e):null}async addBlock(e,t){var i=l.b(t.height);let r,a=await this.get(i);a||(r=b.fromMeta(t),a=r.toRaw()),r=Buffer.allocUnsafe(a.length+32),a.copy(r,0),t=r.readUInt32LE(40,!0),r.writeUInt32LE(t+1,40,!0),e.copy(r,a.length),this.put(i,r)}async removeBlock(e,t){var i=l.b(t),r=await this.get(i);if(r){var a,s=r.readUInt32LE(40,!0);if(0===s)this.del(i);else{let n=e;"string"==typeof e&&(n=Buffer.from(e,"hex")),r.slice(-32).equals(n)?1===s?this.del(i):((a=r.slice(0,-32)).writeUInt32LE(s-1,40,!0),this.put(i,a)):(this.logger.warning("Block hash mismatch in removeBlock: expected %s, got %s at height %d","string"==typeof e?e:e.toString("hex"),r.slice(-32).toString("hex"),t),this.del(i))}}}async addBlockSlow(e,t){let i=await this.getBlock(t.height);(i=i||b.fromMeta(t)).add(e)&&this.put(l.b(t.height),i.toRaw())}async removeBlockSlow(e,t){var i=await this.getBlock(t);i&&i.remove(e)&&(0===i.hashes.length?this.del(l.b(t)):this.put(l.b(t),i.toRaw()))}async _add(e,t,i){s(!e.mutable,"Cannot add mutable TX to wallet.");try{i=i||{};var a=e.hash("hex"),n=await this.getTX(a);if(t){if(!e.isCoinbase()){var o=await this.getSpentCredits(e);for(let r=0;r<e.inputs.length;r++){var p=e.inputs[r],d=p.prevout;let a=o[r];if(a||(a=await this.getCredit(d.hash,d.index)))try{await this.emitCoinSpent(p,a.coin,e,t)}catch(i){this.logger.error("add block:",i.message)}}}if(n)return-1===n.height||(this.logger.debug("txdb._add: Existing tx is already confirmed.",r.revHex(a)),this.walletdb.rescanning)?await this._confirm(n,t):null;await this.removeConflicts(e,!1),this.del(l.r(a))}else{if(n&&!i.reorg)return null;if(await this.isRBF(e))return this.put(l.r(a),null),null;if(!await this.removeConflicts(e,!0))return null}var h=g.fromTX(e,t);return await this.insert(h,t)}catch(i){throw this.logger.error("txdb._add error:",i.message),this.drop(),i}}async insert(e,t){try{var i,a=process.memoryUsage(),n=Math.round(a.heapUsed/1024/1024),o=(2048<n&&(this.logger.warning("High memory usage detected in txdb.insert: %dmb JS heap, pausing for garbage collection",n),global.gc)&&(global.gc(),this.logger.info("Garbage collection completed in txdb.insert")),e.tx),p=e.hash,d=t?t.height:-1,h=t?t.mtp:0,c=new k(this,e,t),u=new Set;let S=!1,_=!1;if(!o.isCoinbase())for(let e=0;e<o.inputs.length;e++){var f=o.inputs[e].prevout,m=await this.getCredit(f.hash,f.index);if(m){var g=m.coin;if(!t&&!await this.verifyInput(o,e,g))return this.clear(),null;var w=await this.getPath(g);s(w),c.setInput(e,w,g),u.add(w.account),this.spendCredit(m,o,e),this.changeUnconfirmed(g,-1),t?(this.changeConfirmed(g,-1),await this.removeCredit(m,w),this.removeLocked(g)):(m.spent=!0,await this.saveCredit(m,w)),_=!0,S=!0}else this.writeInput(o,e)}for(let e=0;e<o.outputs.length;e++){var v,b=o.outputs[e],x=await this.getPath(b);x&&(c.setOutput(e,x),u.add(x.account),await this.resolveInput(o,e,d,h,x,S)||((v=y.fromTX(o,e,d,h)).own=S,this.changeUnconfirmed(b,1),t&&this.changeConfirmed(b,1),await this.saveCredit(v,x),(v.coin.lockedByLocktime(d,h)||v.coin.lockedBySequence(d,h))&&this.addLocked(v.coin)),_=!0)}if(!_)return this.clear(),null;for(i of(this.put(l.t(p),e.toRaw()),this.logger.spam("layout.t insert",r.revHex(p)),this.put(l.m(e.mtime,p),null),t?this.put(l.h(d,p),null):this.put(l.p(p),null),u))this.put(l.T(i,p),null),this.put(l.M(i,e.mtime,p),null),t?this.put(l.H(i,d,p),null):this.put(l.P(i,p),null);return t&&(await this.addBlockMap(p,d),await this.addBlock(o.hash(),t),this.refreshLocked(d,r.now())),this.pending.tx++,this.put(l.R,this.pending.commit()),this.unConserveTX(o),this.emit("tx",o,c),this.emit("balance",this.pending.toBalance(),c),c}catch(e){throw this.logger.error("txdb.insert error:",e.message),this.clear(),e}}async _confirm(e,t){try{var i,a=e.tx,n=e.hash,o=t.height,p=t.mtp||t.time,d=new k(this,e,t),h=new Set;let v=!1;if(e.setBlock(t),!a.isCoinbase()){var c=await this.getSpentCredits(a);for(let e=0;e<a.inputs.length;e++){var u=a.inputs[e].prevout;let t=c[e];if(!t){if(!(t=await this.getCredit(u.hash,u.index)))continue;this.spendCredit(t,a,e),this.changeUnconfirmed(t.coin,-1)}var f=t.coin,m=await this.getPath(f);s(m),d.setInput(e,m,f),h.add(m.account),this.changeConfirmed(f,-1),await this.removeCredit(t,m),this.removeLocked(t.coin),v=!0}}for(let e=0;e<a.outputs.length;e++){var g=a.outputs[e],w=await this.getPath(g);if(w&&(d.setOutput(e,w),h.add(w.account),!await this.resolveInput(a,e,o,p,w,v))){let t=await this.getCredit(n,e);t||((t=y.fromTX(a,e,o,p)).own=!0,this.changeUnconfirmed(g,1)),t.spent&&await this.updateSpentCoin(a,e,o),this.changeConfirmed(g,1),t.coin.time=p,t.coin.height=o,await this.saveCredit(t,w),(t.coin.lockedByLocktime(o,p)||t.coin.lockedBySequence(o,p))&&this.addLocked(t.coin)}}for(i of(this.del(l.r(n)),this.put(l.t(n),e.toRaw()),this.logger.spam("layout.t confirm",r.revHex(n)),this.del(l.p(n)),this.put(l.h(o,n),null),h))this.put(l.T(i,n),null),this.put(l.M(i,e.mtime,n),null),this.del(l.P(i,n)),this.put(l.H(i,o,n),null);return t&&(await this.addBlockMap(n,o),await this.addBlock(a.hash(),t),this.refreshLocked(o,r.now())),this.put(l.R,this.pending.commit()),this.unConserveTX(a),this.emit("confirmed",a,d),this.emit("balance",this.pending.toBalance(),d),d}catch(e){throw this.logger.error("txdb._confirm error:",e.message),this.clear(),e}}async remove(e){return(e=await this.getTX(e))?this.removeRecursive(e):null}changeUnconfirmed(e,t){e.isColored||(this.pending||this.start(),1===t?(this.pending.coin++,this.pending.unconfirmed+=e.value):(this.pending.coin--,this.pending.unconfirmed-=e.value))}changeConfirmed(e,t){e.isColored||(this.pending||this.start(),1===t?this.pending.confirmed+=e.value:this.pending.confirmed-=e.value)}changeLocked(e,t,i){t.isColored||(1===i?e.locked+=t.value:e.locked-=t.value)}async removeRecursive(e){s(e);var t=e.tx,i=e.hash;for(let e=0;e<t.outputs.length;e++){var r=await this.getSpender(i,e);r&&(r=await this.getTX(r.hash),await this.removeRecursive(r))}return this.start(),e=await this.erase(e,e.getBlock()),s(e),await this.commit(),e}async unconfirm(e){let t;this.start();try{t=await this._unconfirm(e),await this.commit()}catch(e){throw this.drop(),e}return t}async _unconfirm(e){return(e=await this.getTX(e))&&-1!==e.height?this.disconnect(e,e.getBlock()):null}async disconnect(e,t){try{s(t);var i,a=e.tx,n=e.hash,o=t.height,p=t.mtp||t.time,d=new k(this,e,t),h=new Set;if(e.unsetBlock(),!a.isCoinbase()){var c=await this.getSpentCredits(a);for(let t=0;t<a.inputs.length;t++){var u=c[t];if(u){var f=u.coin;try{s(-1!==f.height)}catch(e){this.logger.warning("tx(%s): coin.height = -1: %s",a.txid(),e.message)}var m=await this.getPath(f);s(m),d.setInput(t,m,f),h.add(m.account),this.changeConfirmed(f,1),u.spent=!0,await this.saveCredit(u,m),(u.coin.lockedByLocktime(o,p)||u.coin.lockedBySequence(o,p))&&this.addLocked(u.coin)}}}for(let e=0;e<a.outputs.length;e++){var g,w=a.outputs[e],v=await this.getPath(w);v&&((g=await this.getCredit(n,e))?(g.spent&&await this.updateSpentCoin(a,e,o),d.setOutput(e,v),h.add(v.account),this.changeConfirmed(w,-1),g.coin.height=-1,await this.saveCredit(g,v)):await this.updateSpentCoin(a,e,o))}for(i of(await this.removeBlockMap(n,o),await this.removeBlock(n,o),this.refreshLocked(o,r.now()),this.put(l.t(n),e.toRaw()),this.put(l.p(n),null),this.del(l.h(o,n)),h))this.put(l.P(i,n),null),this.del(l.H(i,o,n));return this.put(l.R,this.pending.commit()),this.emit("unconfirmed",a,d),this.emit("balance",this.pending.toBalance(),d),d}catch(e){throw this.logger.error("txdb.disconnect error:",e.message),this.clear(),e}}async erase(e,t){try{var i,a=e.tx,n=e.hash,o=t?t.height:-1,p=t?t.mtp:0,d=new k(this,e,t),h=new Set;if(!a.isCoinbase()){var c=await this.getSpentCredits(a);for(let e=0;e<a.inputs.length;e++){var u,f,m=c[e];m?(u=m.coin,f=await this.getPath(u),s(f),d.setInput(e,f,u),h.add(f.account),this.changeUnconfirmed(u,1),t&&this.changeConfirmed(u,1),this.unspendCredit(a,e),await this.saveCredit(m,f),(m.coin.lockedByLocktime(o,p)||m.coin.lockedBySequence(o,p))&&this.addLocked(m.coin)):this.removeInput(a,e)}}for(let e=0;e<a.outputs.length;e++){var g,w=a.outputs[e],v=await this.getPath(w);v&&(d.setOutput(e,v),h.add(v.account),g=y.fromTX(a,e,o,p),this.changeUnconfirmed(w,-1),t&&this.changeConfirmed(w,-1),await this.removeCredit(g,v),this.removeLocked(g.coin))}for(i of(this.del(l.r(n)),this.del(l.t(n)),this.logger.spam("layout.t erase",r.revHex(n)),this.del(l.m(e.mtime,n)),t?this.del(l.h(o,n)):this.del(l.p(n)),h))this.del(l.T(i,n)),this.del(l.M(i,e.mtime,n)),t?this.del(l.H(i,o,n)):this.del(l.P(i,n));t&&(await this.removeBlockMap(n,o),await this.removeBlockSlow(n,o),this.refreshLocked(o,r.now())),this.pending.tx--,this.put(l.R,this.pending.commit());try{await(await x.FactoryOfContract({env:this.walletdb,tx:a,block:t})).erase()}catch(e){this.logger.error("TX(%s) Smart Contract Erase Error: %s",a.txid(),e.message)}return this.emit("tx.remove",a,d),this.emit("balance",this.pending.toBalance(),d),d}catch(e){throw this.logger.error("txdb.erase error:",e.message),this.clear(),e}}async removeConflict(e){var t;return e?(t=e.tx,this.logger.warning("Handling conflicting tx: %s.",t.txid()),this.drop(),e=await this.removeRecursive(e),this.start(),this.logger.warning("Removed conflict: %s.",t.txid()),this.emit("conflict",t,e),e):Promise.resolve()}async removeConflicts(e,t){var i=e.hash("hex"),r=[];if(!e.isCoinbase()){for(let o=0;o<e.inputs.length;o++){if((a=e.inputs[o].prevout).hash!==c.NULL_HASH&&(a=await this.getSpender(a.hash,a.index))&&a.hash!==i){var a=await this.getTX(a.hash),n=(s(a),a.getBlock());if(t&&n)return!1;r[o]=a}}for(var o of r)await this.removeConflict(o)}return!0}async verifyInput(e,t,i){var r=f.flags.MANDATORY_VERIFY_FLAGS;return!this.options.verify||e.verifyInput(t,i,r)}conserveTX(e){if(!e.isCoinbase())for(var t of e.inputs)this.conserveCoin(t.prevout)}unConserveTX(e){if(!e.isCoinbase())for(var t of e.inputs)this.removeUserConservedCoin(t.prevout)}addUserConservedCoin(e){this.userConservedCoins.add(e.toKey())}removeUserConservedCoin(e){return this.userConservedCoins.delete(e.toKey())}addSystemConservedCoin(e){this.systemConservedCoins.add(e.toKey())}removeSystemConservedCoin(e){return this.systemConservedCoins.delete(e.toKey())}isUserConserved(e){return this.userConservedCoins.has(e.toKey())}isSystemConserved(e){return this.systemConservedCoins.has(e.toKey())}isConserved(e){return this.isUserConserved(e)}filterConserved(e){var t,i=[];for(t of e)this.isUserConserved(t)||this.isSystemConserved(t)||i.push(t);return i}getConserved(){var e,t,i=[];for(e of this.userConservedCoins.keys())i.push(d.fromKey(e));for(t of this.systemConservedCoins.keys())i.push(d.fromKey(t));return i}getAccountHistoryHashes(e){return this.keys({gte:l.T(e,c.NULL_HASH),lte:l.T(e,c.HIGH_HASH),parse:e=>{var[,e]=l.Tt(e);return e}})}getHistoryHashes(e){return null!=e?this.getAccountHistoryHashes(e):this.keys({gte:l.t(c.NULL_HASH),lte:l.t(c.HIGH_HASH),parse:e=>l.tt(e)})}getAccountPendingHashes(e){return this.keys({gte:l.P(e,c.NULL_HASH),lte:l.P(e,c.HIGH_HASH),parse:e=>{var[,e]=l.Pp(e);return e}})}getPendingHashes(e){return null!=e?this.getAccountPendingHashes(e):this.keys({gte:l.p(c.NULL_HASH),lte:l.p(c.HIGH_HASH),parse:e=>l.pp(e)})}getAccountOutpoints(e){return void 0!==e&&null!=e?this.keys({gte:l.C(e,c.NULL_HASH,0),lte:l.C(e,c.HIGH_HASH,4294967295),parse:e=>{var[,e,t]=l.Cc(e);return new d(e,t)}}):this.keys({gte:l.c(c.NULL_HASH,0),lte:l.c(c.HIGH_HASH,4294967295),parse:e=>{var[e,t]=l.cc(e);return new d(e,t)}})}getAccountHeightRangeHashes(e,t){var i=t.start||0,r=t.end||4294967295;return this.keys({gte:l.H(e,i,c.NULL_HASH),lte:l.H(e,r,c.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,,e]=l.Hh(e);return e}})}getHeightRangeHashes(e,t){var i;return e&&"object"==typeof e&&(t=e,e=null),null!=e?this.getAccountHeightRangeHashes(e,t):(e=t.start||0,i=t.end||4294967295,this.keys({gte:l.h(e,c.NULL_HASH),lte:l.h(i,c.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,e]=l.hh(e);return e}}))}getHeightHashes(e){return this.getHeightRangeHashes({start:e,end:e})}getAccountRangeHashes(e,t){var i=t.start||0,r=t.end||4294967295;return this.keys({gte:l.M(e,i,c.NULL_HASH),lte:l.M(e,r,c.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,,e]=l.Mm(e);return e}})}getRangeHashes(e,t){var i;return e&&"object"==typeof e&&(t=e,e=null),null!=e?this.getAccountRangeHashes(e,t):(e=t.start||0,i=t.end||4294967295,this.keys({gte:l.m(e,c.NULL_HASH),lte:l.m(i,c.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,e]=l.mm(e);return e}}))}async getRange(e,t){var i,r=[];e&&"object"==typeof e&&(t=e,e=null),e=await this.getRangeHashes(e,t);for(i of e){var a=await this.getTX(i);s(a),r.push(a)}return r}getLast(e,t){return this.getRange(e,{start:0,end:4294967295,reverse:!0,limit:t||10})}getHistory(e){return null!=e?this.getAccountHistory(e):this.values({gte:l.t(c.NULL_HASH),lte:l.t(c.HIGH_HASH),parse:g.fromRaw})}async getAccountHistory(e){var t,i=[];for(t of await this.getHistoryHashes(e)){var r=await this.getTX(t);s(r),i.push(r)}return i}async getPending(e){var t,i=[];for(t of await this.getPendingHashes(e)){var r=await this.getTX(t);s(r),i.push(r)}return i}getCredits(e){return void 0!==e&&null!=e?this.getAccountCredits(e):this.range({gte:l.c(c.NULL_HASH,0),lte:l.c(c.HIGH_HASH,4294967295),parse:(e,t)=>{var[e,i]=l.cc(e),r=(t=y.fromRaw(t),d.toKey(e,i));return t.coin.hash=e,t.coin.index=i,this.coinCache.set(r,t),t}})}async fillCoins(){var e;for(e of await this.keys({gte:l.C(0,c.NULL_HASH,0),lte:l.C(4294967295,c.HIGH_HASH,4294967295),parse:e=>{var t,[e,t,i]=l.Cc(e);return(t=new d(t,i)).wid=this.wallet.wid,t.account=e,[t.toKey(),t]}})){var t=await this.get(l.c(e[1].hash,e[1].index));t&&((t=y.fromRaw(t)).coin.hash=e[1].hash,t.coin.index=e[1].index,this.coinCache.set(e[0],t))}}async getAccountCredits(e){var t,i=[];for(t of await this.getAccountOutpoints(e)){var r=await this.getCredit(t.hash,t.index);r||(this.logger.warning("getAccountCredits: credit not found.",t.hash,t.index),s(r)),i.push(r)}return i}async getSpentCredits(e){if(e.isCoinbase())return[];var t=e.hash("hex");let i=[];for(let t=0;t<e.inputs.length;t++)i.push(null);return await this.range({gte:l.d(t,0),lte:l.d(t,4294967295),parse:(t,r)=>{var[,t]=l.dd(t),a=(r=p.fromRaw(r),e.inputs[t]);s(a),r.hash=a.prevout.hash,r.index=a.prevout.index,i[t]=new y(r)}}),i}async getCoins(e){let t=[];var i,r,a,n=await this.getPending();let o=new Set;for(i of n)for(r of i.tx.inputs){var p=d.toKey(r.prevout.hash,r.prevout.index);o.add(p)}if(void 0!==e&&null!=e)for(a of await this.getAccountOutpoints(e)){var h=await this.getCredit(a.hash,a.index),u=(h||(this.logger.warning("getCoins: credit not found.",a.hash,a.index),s(h)),d.toKey(a.hash,a.index));h.spent||o.has(u)||t.push(h.coin)}else await this.range({gte:l.c(c.NULL_HASH,0),lte:l.c(c.HIGH_HASH,4294967295),parse:(e,i)=>{var[e,r]=l.cc(e),a=(i=y.fromRaw(i),d.toKey(e,r));i.coin.hash=e,i.coin.index=r,this.coinCache.set(a,i),i.spent||o.has(a)||t.push(i.coin)}});return t}async getSpentCoins(e){if(e.isCoinbase())return[];var t,i=[];for(t of await this.getSpentCredits(e))t?i.push(t.coin):i.push(null);return i}async getCoinView(e){var t=new o;if(!e.isCoinbase())for(var i of e.inputs)i=i.prevout,(i=await this.getCoin(i.hash,i.index))&&t.addCoin(i);return t}async getSpentView(e){var t,i=new o;if(!e.isCoinbase())for(t of await this.getSpentCoins(e))t&&i.addCoin(t);return i}async getState(){var e=await this.get(l.R);return e?v.fromRaw(this.wallet.wid,this.wallet.id,e):null}async loadLockedCoins(){var e,t=this.walletdb.curHeight,i=r.now();for(e of await this.wallet.getCredits()){var a=e.coin;a.getAddress()&&(a.lockedByLocktime(t,i)||a.lockedBySequence(t,i))&&this.addLocked(a)}}refreshLocked(e,t){var i;for(i of this.lockedCoins.values())i.lockedByLocktime(e,t)||i.lockedBySequence(e,t)||this.removeLocked(i)}addLocked(e){var t=l.prefix(this.wallet.wid,l.c(e.hash,e.index));this.lockedCoins.has(t)||(this.lockedCoins.set(t,e),this.changeLocked(this.pending,e,1))}removeLocked(e){var t=l.prefix(this.wallet.wid,l.c(e.hash,e.index));this.lockedCoins.has(t)&&(this.lockedCoins.delete(t),this.changeLocked(this.pending,e,-1))}async getTX(e){return(e=await this.get(l.t(e)))?g.fromRaw(e):null}async getDetails(e){return(e=await this.getTX(e))?this.toDetails(e):null}async toDetails(e){var t,i=[];if(!Array.isArray(e))return this._toDetail(e);for(t of e){var r=await this._toDetail(t);r&&i.push(r)}return i}async _toDetail(e){var t=e.tx,i=e.getBlock(),r=new k(this,e,i),a=await this.getSpentCoins(t);for(let e=0;e<t.inputs.length;e++){var s=a[e];let t=null;s&&(t=await this.getPath(s)),r.setInput(e,t,s)}for(let e=0;e<t.outputs.length;e++){var n=t.outputs[e];n=await this.getPath(n);r.setOutput(e,n)}return r}hasTX(e){return this.has(l.t(e))}async getCoin(e,t){return(e=await this.getCredit(e,t))?e.coin:null}async emitCoinSpent(e,t,i,r){(i={env:this.walletdb,block:r,tx:i,hash:e.prevout.hash,i:e.prevout.index,height:r.height,output:t,type:t.getReturnType(),data:t.getReturnData(_)}).data&&await S(i).spent(e)}async getCredit(e,t){var i=this.state,r=d.toKey(e,t),a=this.coinCache.get(r);return a||((a=await this.get(l.c(e,t)))?((a=y.fromRaw(a)).coin.hash=e,a.coin.index=t,i===this.state&&this.coinCache.set(r,a),a):null)}async getSpentCoin(e,t){return(e=await this.get(l.d(e.hash,e.index)))?(e=p.fromRaw(e),t&&(e.hash=t.hash,e.index=t.index),e):null}hasSpentCoin(e){return this.has(l.d(e.hash,e.index))}async updateSpentCoin(e,t,i){e=d.fromTX(e,t);(t=await this.getSpender(e.hash,e.index))&&(e=await this.getSpentCoin(t,e))&&(e.height=i,this.put(l.d(t.hash,t.index),e.toRaw()))}async hasCoin(e,t){var i=d.toKey(e,t);return!!this.coinCache.has(i)||this.has(l.c(e,t))}async getBalance(e){if(null!=e)return this.getAccountBalance(e);e=await this.getCredits();var t,i,r,a=new w(this.wallet.wid,this.wallet.id,-1),s=this.walletdb.curHeight,n=this.network.now();for(t of e){var o=t.coin;o.isColored||(t.spent||(a.unconfirmed+=o.value),-1!==o.height&&(a.confirmed+=o.value)),(o.lockedByLocktime(s,n)||o.lockedBySequence(s,n))&&this.changeLocked(a,o,1)}for([i,r]of this.virtualAmount)a.unconfirmed+=r;return a}addAccountAmount(e,t){this.virtualAmount.has(e)?this.virtualAmount.set(e,this.virtualAmount.get(e)+t):this.virtualAmount.set(e,t)}checkAccountAmount(e){this.virtualAmount.get(e)&&this.virtualAmount.delete(e)}async getAccountBalance(e){var t,i=await this.getAccountCredits(e),r=new w(this.wallet.wid,this.wallet.id,e),a=this.walletdb.curHeight,s=this.network.now();for(t of i){var n=t.coin;n.isColored||(t.spent||(r.unconfirmed+=n.value),-1!==n.height&&(r.confirmed+=n.value)),(n.lockedByLocktime(a,s)||n.lockedBySequence(a,s))&&this.changeLocked(r,n,1)}return this.virtualAmount.get(e)&&(r.unconfirmed+=this.virtualAmount.get(e)),r}async zap(e,t){s(r.isU32(t));var i,a=r.now(),n=[];for(i of await this.getRange(e,{start:0,end:a-t}))-1===i.height&&(s(a-i.mtime>=t),this.logger.debug("Zapping TX: %s (%s)",i.tx.txid(),this.wallet.id),await this.remove(i.hash),n.push(i.hash));return n}async abandon(e){if(await this.has(l.p(e)))return this.remove(e)}}E.layout=l;class k{constructor(e,t,i){this.wallet=e.wallet,this.network=this.wallet.network,this.wid=this.wallet.wid,this.id=this.wallet.id,this.chainHeight=e.walletdb.curHeight,this.hash=t.hash,this.tx=t.tx,this.mtime=t.mtime,this.size=this.tx.getSize(),this.vsize=this.tx.getVirtualSize(),this.block=null,this.height=-1,this.time=0,i&&(this.block=i.hash,this.height=i.height,this.time=i.time),this.inputs=[],this.outputs=[],this.init()}init(){for(var e of this.tx.inputs){var t=new R;t.address=e.getAddress(),this.inputs.push(t)}for(var i of this.tx.outputs){var r=new R;r.value=i.value,r.address=i.getAddress(),this.outputs.push(r)}}setInput(e,t,i){var r=this.inputs[e];r.prevout=this.tx.inputs[e].prevout,i&&(r.value=i.value,r.address=i.getAddress()),t&&(r.path=t)}setOutput(e,t){e=this.outputs[e],t&&(e.path=t)}getDepth(){var e;return-1===this.height||(e=this.chainHeight-this.height)<0?0:1+e}getFee(){let e=0,t=0;for(var i of this.inputs){if(!i.path)return 0;e+=i.value}for(var r of this.outputs)t+=r.value;return e-t}getRate(e){return u.getRate(this.vsize,e)}toJSON(){var e=this.getFee();let t=this.getRate(e);return Number.isSafeInteger(t)||(t=0),{wid:this.wid,id:this.id,hash:r.revHex(this.hash),height:this.height,block:this.block?r.revHex(this.block):null,time:this.time,mtime:this.mtime,date:r.date(this.time||this.mtime),size:this.size,virtualSize:this.vsize,fee:e,rate:t,confirmations:this.getDepth(),inputs:this.inputs.map(e=>e.getJSON(this.network)),outputs:this.outputs.map(e=>e.getJSON(this.network)),tx:this.tx.toRaw().toString("hex")}}}class R{constructor(){this.value=0,this.address=null,this.path=null}toJSON(){return this.getJSON()}getJSON(e){return{prevout:this.prevout?this.prevout.toJSON():null,value:this.value,address:this.address?this.address.toString(e):null,path:this.path?this.path.toJSON():null}}}e.exports=E},function(e,t){e.exports=require("child_process")},function(e,t,i){
793
+ let r=i(2),a=i(52),s=i(0),n=i(28),o=i(51),p=i(44),d=i(37),h=i(232),l=i(62).txdb,c=i(3),u=i(20),f=i(11),m=i(233),g=i(179),w=i(234),v=i(374),y=i(235);i(97),i(98);let b=i(375);i(15);let x=i(34),S=i(95),_=i(14).nestingCodes;class E{constructor(e){this.wallet=e,this.walletdb=e.db,this.logger=this.walletdb.logger,this.network=this.walletdb.network,this.options=this.walletdb.options,this.coinCache=new a(this.options.coinCache),this.userConservedCoins=new Set,this.systemConservedCoins=new Set,this.lockedCoins=new Map,this.virtualAmount=new Map,this.state=null,this.pending=null,this.events=[]}async open(){let e=null;try{e=await this.getState()}catch(t){this.logger.info("TXDB State Format Error."),e=null}e?(this.state=e,this.logger.info("TXDB loaded for %s.",this.wallet.id)):(this.state=new v(this.wallet.wid,this.wallet.id),this.logger.info("TXDB created for %s.",this.wallet.id)),this.logger.info("TXDB State: tx=%d coin=%s.",this.state.tx,this.state.coin),this.logger.info("Balance: unconfirmed=%s confirmed=%s.",n.btc(this.state.unconfirmed),n.btc(this.state.confirmed)),this.pending=this.state.clone(),await this.loadLockedCoins(),this.state=this.pending}start(){return this.coinCache.pending&&this.coinCache.drop(),this.pending=this.state.clone(),this.coinCache.start(),this.wallet.current||this.wallet.start()}drop(){return this.pending=null,this.events.length=0,this.coinCache.drop(),this.wallet.drop()}clear(){return this.pending=this.state.clone(),this.events.length=0,this.coinCache.drop(),this.wallet.clear()}async commit(){try{await this.wallet.commit()}catch(e){throw this.pending=null,this.events.length=0,this.coinCache.drop(),e}if(this.pending.committed)for(var[e,t,i]of(this.state=this.pending,this.events))this.walletdb.emit(e,this.wallet.id,t,i),"tx"==e&&this.walletdb.emit("tx.received."+t.rhash(),this.wallet.id,t,i),this.wallet.emit(e,t,i);this.pending=null,this.events.length=0,this.coinCache.commit()}emit(e,t,i){this.events.push([e,t,i])}prefix(e){return s(this.wallet.wid),l.prefix(this.wallet.wid,e)}put(e,t){s(this.wallet.current),this.wallet.current.put(this.prefix(e),t)}del(e){s(this.wallet.current),this.wallet.current.del(this.prefix(e))}get(e){return this.walletdb.db.get(this.prefix(e))}has(e){return this.walletdb.db.has(this.prefix(e))}range(e){return e.gte&&(e.gte=this.prefix(e.gte)),e.lte&&(e.lte=this.prefix(e.lte)),this.walletdb.db.range(e)}keys(e){return e.gte&&(e.gte=this.prefix(e.gte)),e.lte&&(e.lte=this.prefix(e.lte)),this.walletdb.db.keys(e)}values(e){return e.gte&&(e.gte=this.prefix(e.gte)),e.lte&&(e.lte=this.prefix(e.lte)),this.walletdb.db.values(e)}async getPath(e){return(e=e.getAddress())?this.wallet.getPath(e):null}async hasPath(e){return!!(e=e.getAddress())&&this.wallet.hasPath(e)}async saveCredit(e,t){var i=e.coin,r=i.toKey(),a=e.toRaw();let s=await this.walletdb.getOutpointMap(i.hash,i.index);s=s||new h(i.hash,i.index),this.pending||this.start(),s.add(this.wallet.wid)&&this.walletdb.writeOutpointMap(this.wallet,i.hash,i.index,s),this.put(l.c(i.hash,i.index),a),this.put(l.C(t.account,i.hash,i.index),null),this.coinCache.push(r,e)}async removeCredit(e,t){var i=(e=e.coin).toKey();this.pending||this.start(),await this.removeOutpointMap(e.hash,e.index),this.del(l.C(t.account,e.hash,e.index)),this.del(l.c(e.hash,e.index)),this.coinCache.unpush(i)}spendCredit(e,t,i){var r=t.inputs[i].prevout;t=d.fromTX(t,i);this.put(l.d(t.hash,t.index),e.coin.toRaw()),this.put(l.s(r.hash,r.index),t.toRaw())}unspendCredit(e,t){var i=e.inputs[t].prevout;e=d.fromTX(e,t);this.del(l.s(i.hash,i.index)),this.del(l.d(e.hash,e.index))}writeInput(e,t){var i=e.inputs[t].prevout;e=d.fromTX(e,t);this.put(l.s(i.hash,i.index),e.toRaw())}removeInput(e,t){e=e.inputs[t].prevout,this.del(l.s(e.hash,e.index))}async resolveInput(e,t,i,r,a,n){var o,p=e.hash("hex");return!!(p=await this.getSpender(p,t))&&!await this.hasSpentCoin(p)&&(o=await this.getTX(p.hash),s(o),(e=y.fromTX(e,t,i,r)).own=n,this.spendCredit(e,o.tx,p.index),-1===o.height&&(e.spent=!0,-1!==i&&(this.changeConfirmed(e.coin,1),e.coin.lockedByLocktime(i,r)||e.coin.lockedBySequence(i,r))&&this.addLocked(e.coin),await this.saveCredit(e,a)),!0)}async isDoubleSpend(e){for(var{prevout:t}of e.inputs)if(await this.isSpent(t.hash,t.index))return!0;return!1}async isRBF(e){if(e.isRBF())return!0;for(var{prevout:t}of e.inputs)if(t=l.r(t.hash),await this.has(t))return!0;return!1}async getSpender(e,t){return(e=await this.get(l.s(e,t)))?d.fromRaw(e):null}isSpent(e,t){return this.has(l.s(e,t))}async removeOutpointMap(e,t){var i=await this.walletdb.getOutpointMap(e,t);i&&i.remove(this.wallet.wid)&&(this.pending||this.start(),0===i.wids.size?this.walletdb.unwriteOutpointMap(this.wallet,e,t):this.walletdb.writeOutpointMap(this.wallet,e,t,i))}async addBlockMap(e,t){let i=await this.walletdb.getBlockMap(t);(i=i||new m(t)).add(e,this.wallet.wid)&&(this.pending||this.start(),this.walletdb.writeBlockMap(this.wallet,t,i))}async removeBlockMap(e,t){var i=await this.walletdb.getBlockMap(t);i&&i.remove(e,this.wallet.wid)&&(this.pending||this.start(),0===i.txs.size?this.walletdb.unwriteBlockMap(this.wallet,t):this.walletdb.writeBlockMap(this.wallet,t,i))}getBlocks(){return this.keys({gte:l.b(0),lte:l.b(4294967295),parse:e=>l.bb(e)})}async getStatusOfSC(e){return(e=await this.get(l.de(e)))?{txs:e.toString().split(",")}:{}}async _setStatusOfSC(e,t){t=t.reduce((e,t)=>(e&&(e+=","),e+t),""),this.put(l.de(e),Buffer.from(t))}async getBlock(e){return(e=await this.get(l.b(e)))?b.fromRaw(e):null}async addBlock(e,t){var i=l.b(t.height);let r,a=await this.get(i);a||(r=b.fromMeta(t),a=r.toRaw()),r=Buffer.allocUnsafe(a.length+32),a.copy(r,0),t=r.readUInt32LE(40,!0),r.writeUInt32LE(t+1,40,!0),e.copy(r,a.length),this.put(i,r)}async removeBlock(e,t){var i=l.b(t),r=await this.get(i);if(r){var a,s=r.readUInt32LE(40,!0);if(0===s)this.del(i);else{let n=e;"string"==typeof e&&(n=Buffer.from(e,"hex")),r.slice(-32).equals(n)?1===s?this.del(i):((a=r.slice(0,-32)).writeUInt32LE(s-1,40,!0),this.put(i,a)):(this.logger.warning("Block hash mismatch in removeBlock: expected %s, got %s at height %d","string"==typeof e?e:e.toString("hex"),r.slice(-32).toString("hex"),t),this.del(i))}}}async addBlockSlow(e,t){let i=await this.getBlock(t.height);(i=i||b.fromMeta(t)).add(e)&&this.put(l.b(t.height),i.toRaw())}async removeBlockSlow(e,t){var i=await this.getBlock(t);i&&i.remove(e)&&(0===i.hashes.length?this.del(l.b(t)):this.put(l.b(t),i.toRaw()))}async _add(e,t,i){s(!e.mutable,"Cannot add mutable TX to wallet.");try{i=i||{};var a=e.hash("hex"),n=await this.getTX(a);if(t){if(!e.isCoinbase()){var o=await this.getSpentCredits(e);for(let r=0;r<e.inputs.length;r++){var p=e.inputs[r],d=p.prevout;let a=o[r];if(a||(a=await this.getCredit(d.hash,d.index)))try{await this.emitCoinSpent(p,a.coin,e,t)}catch(i){this.logger.error("add block:",i.message)}}}if(n)return-1===n.height||(this.logger.debug("txdb._add: Existing tx is already confirmed.",r.revHex(a)),this.walletdb.rescanning)?await this._confirm(n,t):null;await this.removeConflicts(e,!1),this.del(l.r(a))}else{if(n&&!i.reorg)return null;if(await this.isRBF(e))return this.put(l.r(a),null),null;if(!await this.removeConflicts(e,!0))return null}var h=g.fromTX(e,t);return await this.insert(h,t)}catch(i){throw this.logger.error("txdb._add error:",i.message),this.drop(),i}}async insert(e,t){try{var i,a=process.memoryUsage(),n=Math.round(a.heapUsed/1024/1024),o=(2048<n&&(this.logger.warning("High memory usage detected in txdb.insert: %dmb JS heap, pausing for garbage collection",n),global.gc)&&(global.gc(),this.logger.info("Garbage collection completed in txdb.insert")),e.tx),p=e.hash,d=t?t.height:-1,h=t?t.mtp:0,c=new k(this,e,t),u=new Set;let S=!1,_=!1;if(!o.isCoinbase())for(let e=0;e<o.inputs.length;e++){var f=o.inputs[e].prevout,m=await this.getCredit(f.hash,f.index);if(m){var g=m.coin;if(!t&&!await this.verifyInput(o,e,g))return this.clear(),null;var w=await this.getPath(g);s(w),c.setInput(e,w,g),u.add(w.account),this.spendCredit(m,o,e),this.changeUnconfirmed(g,-1),t?(this.changeConfirmed(g,-1),await this.removeCredit(m,w),this.removeLocked(g)):(m.spent=!0,await this.saveCredit(m,w)),_=!0,S=!0}else this.writeInput(o,e)}for(let e=0;e<o.outputs.length;e++){var v,b=o.outputs[e],x=await this.getPath(b);x&&(c.setOutput(e,x),u.add(x.account),await this.resolveInput(o,e,d,h,x,S)||((v=y.fromTX(o,e,d,h)).own=S,this.changeUnconfirmed(b,1),t&&this.changeConfirmed(b,1),await this.saveCredit(v,x),(v.coin.lockedByLocktime(d,h)||v.coin.lockedBySequence(d,h))&&this.addLocked(v.coin)),_=!0)}if(!_)return this.clear(),null;for(i of(this.put(l.t(p),e.toRaw()),this.logger.spam("layout.t insert",r.revHex(p)),this.put(l.m(e.mtime,p),null),t?this.put(l.h(d,p),null):this.put(l.p(p),null),u))this.put(l.T(i,p),null),this.put(l.M(i,e.mtime,p),null),t?this.put(l.H(i,d,p),null):this.put(l.P(i,p),null);return t&&(await this.addBlockMap(p,d),await this.addBlock(o.hash(),t),this.refreshLocked(d,r.now())),this.pending.tx++,this.put(l.R,this.pending.commit()),this.unConserveTX(o),this.emit("tx",o,c),this.emit("balance",this.pending.toBalance(),c),c}catch(e){throw this.logger.error("txdb.insert error:",e.message),this.clear(),e}}async _confirm(e,t){try{var i,a=e.tx,n=e.hash,o=t.height,p=t.mtp||t.time,d=new k(this,e,t),h=new Set;let v=!1;if(e.setBlock(t),!a.isCoinbase()){var c=await this.getSpentCredits(a);for(let e=0;e<a.inputs.length;e++){var u=a.inputs[e].prevout;let t=c[e];if(!t){if(!(t=await this.getCredit(u.hash,u.index)))continue;this.spendCredit(t,a,e),this.changeUnconfirmed(t.coin,-1)}var f=t.coin,m=await this.getPath(f);s(m),d.setInput(e,m,f),h.add(m.account),this.changeConfirmed(f,-1),await this.removeCredit(t,m),this.removeLocked(t.coin),v=!0}}for(let e=0;e<a.outputs.length;e++){var g=a.outputs[e],w=await this.getPath(g);if(w&&(d.setOutput(e,w),h.add(w.account),!await this.resolveInput(a,e,o,p,w,v))){let t=await this.getCredit(n,e);t||((t=y.fromTX(a,e,o,p)).own=!0,this.changeUnconfirmed(g,1)),t.spent&&await this.updateSpentCoin(a,e,o),this.changeConfirmed(g,1),t.coin.time=p,t.coin.height=o,await this.saveCredit(t,w),(t.coin.lockedByLocktime(o,p)||t.coin.lockedBySequence(o,p))&&this.addLocked(t.coin)}}for(i of(this.del(l.r(n)),this.put(l.t(n),e.toRaw()),this.logger.spam("layout.t confirm",r.revHex(n)),this.del(l.p(n)),this.put(l.h(o,n),null),h))this.put(l.T(i,n),null),this.put(l.M(i,e.mtime,n),null),this.del(l.P(i,n)),this.put(l.H(i,o,n),null);return t&&(await this.addBlockMap(n,o),await this.addBlock(a.hash(),t),this.refreshLocked(o,r.now())),this.put(l.R,this.pending.commit()),this.unConserveTX(a),this.emit("confirmed",a,d),this.emit("balance",this.pending.toBalance(),d),d}catch(e){throw this.logger.error("txdb._confirm error:",e.message),this.clear(),e}}async remove(e){return(e=await this.getTX(e))?this.removeRecursive(e):null}changeUnconfirmed(e,t){e.isColored||(this.pending||this.start(),1===t?(this.pending.coin++,this.pending.unconfirmed+=e.value):(this.pending.coin--,this.pending.unconfirmed-=e.value))}changeConfirmed(e,t){e.isColored||(this.pending||this.start(),1===t?this.pending.confirmed+=e.value:this.pending.confirmed-=e.value)}changeLocked(e,t,i){t.isColored||(1===i?e.locked+=t.value:e.locked-=t.value)}async removeRecursive(e){s(e);var t=e.tx,i=e.hash;for(let e=0;e<t.outputs.length;e++){var r=await this.getSpender(i,e);r&&(r=await this.getTX(r.hash),await this.removeRecursive(r))}return this.start(),e=await this.erase(e,e.getBlock()),s(e),await this.commit(),e}async unconfirm(e){let t;this.start();try{t=await this._unconfirm(e),await this.commit()}catch(e){throw this.drop(),e}return t}async _unconfirm(e){return(e=await this.getTX(e))&&-1!==e.height?this.disconnect(e,e.getBlock()):null}async disconnect(e,t){try{s(t);var i,a=e.tx,n=e.hash,o=t.height,p=t.mtp||t.time,d=new k(this,e,t),h=new Set;if(e.unsetBlock(),!a.isCoinbase()){var c=await this.getSpentCredits(a);for(let t=0;t<a.inputs.length;t++){var u=c[t];if(u){var f=u.coin;try{s(-1!==f.height)}catch(e){this.logger.warning("tx(%s): coin.height = -1: %s",a.txid(),e.message)}var m=await this.getPath(f);s(m),d.setInput(t,m,f),h.add(m.account),this.changeConfirmed(f,1),u.spent=!0,await this.saveCredit(u,m),(u.coin.lockedByLocktime(o,p)||u.coin.lockedBySequence(o,p))&&this.addLocked(u.coin)}}}for(let e=0;e<a.outputs.length;e++){var g,w=a.outputs[e],v=await this.getPath(w);v&&((g=await this.getCredit(n,e))?(g.spent&&await this.updateSpentCoin(a,e,o),d.setOutput(e,v),h.add(v.account),this.changeConfirmed(w,-1),g.coin.height=-1,await this.saveCredit(g,v)):await this.updateSpentCoin(a,e,o))}for(i of(await this.removeBlockMap(n,o),await this.removeBlock(n,o),this.refreshLocked(o,r.now()),this.put(l.t(n),e.toRaw()),this.put(l.p(n),null),this.del(l.h(o,n)),h))this.put(l.P(i,n),null),this.del(l.H(i,o,n));return this.put(l.R,this.pending.commit()),this.emit("unconfirmed",a,d),this.emit("balance",this.pending.toBalance(),d),d}catch(e){throw this.logger.error("txdb.disconnect error:",e.message),this.clear(),e}}async erase(e,t){try{var i,a=e.tx,n=e.hash,o=t?t.height:-1,p=t?t.mtp:0,d=new k(this,e,t),h=new Set;if(!a.isCoinbase()){var c=await this.getSpentCredits(a);for(let e=0;e<a.inputs.length;e++){var u,f,m=c[e];m?(u=m.coin,f=await this.getPath(u),s(f),d.setInput(e,f,u),h.add(f.account),this.changeUnconfirmed(u,1),t&&this.changeConfirmed(u,1),this.unspendCredit(a,e),await this.saveCredit(m,f),(m.coin.lockedByLocktime(o,p)||m.coin.lockedBySequence(o,p))&&this.addLocked(m.coin)):this.removeInput(a,e)}}for(let e=0;e<a.outputs.length;e++){var g,w=a.outputs[e],v=await this.getPath(w);v&&(d.setOutput(e,v),h.add(v.account),g=y.fromTX(a,e,o,p),this.changeUnconfirmed(w,-1),t&&this.changeConfirmed(w,-1),await this.removeCredit(g,v),this.removeLocked(g.coin))}for(i of(this.del(l.r(n)),this.del(l.t(n)),this.logger.spam("layout.t erase",r.revHex(n)),this.del(l.m(e.mtime,n)),t?this.del(l.h(o,n)):this.del(l.p(n)),h))this.del(l.T(i,n)),this.del(l.M(i,e.mtime,n)),t?this.del(l.H(i,o,n)):this.del(l.P(i,n));t&&(await this.removeBlockMap(n,o),await this.removeBlockSlow(n,o),this.refreshLocked(o,r.now())),this.pending.tx--,this.put(l.R,this.pending.commit());try{await(await x.FactoryOfContract({env:this.walletdb,tx:a,block:t})).erase()}catch(e){this.logger.error("TX(%s) Smart Contract Erase Error: %s",a.txid(),e.message)}return this.emit("tx.remove",a,d),this.emit("balance",this.pending.toBalance(),d),d}catch(e){throw this.logger.error("txdb.erase error:",e.message),this.clear(),e}}async removeConflict(e){var t;return e?(t=e.tx,this.logger.warning("Handling conflicting tx: %s.",t.txid()),this.drop(),e=await this.removeRecursive(e),this.start(),this.logger.warning("Removed conflict: %s.",t.txid()),this.emit("conflict",t,e),e):Promise.resolve()}async removeConflicts(e,t){var i=e.hash("hex"),r=[];if(!e.isCoinbase()){for(let o=0;o<e.inputs.length;o++){if((a=e.inputs[o].prevout).hash!==c.NULL_HASH&&(a=await this.getSpender(a.hash,a.index))&&a.hash!==i){var a=await this.getTX(a.hash),n=(s(a),a.getBlock());if(t&&n)return!1;r[o]=a}}for(var o of r)await this.removeConflict(o)}return!0}async verifyInput(e,t,i){var r=f.flags.MANDATORY_VERIFY_FLAGS;return!this.options.verify||e.verifyInput(t,i,r)}conserveTX(e){if(!e.isCoinbase())for(var t of e.inputs)this.conserveCoin(t.prevout)}unConserveTX(e){if(!e.isCoinbase())for(var t of e.inputs)this.removeUserConservedCoin(t.prevout)}addUserConservedCoin(e){this.userConservedCoins.add(e.toKey())}removeUserConservedCoin(e){return this.userConservedCoins.delete(e.toKey())}addSystemConservedCoin(e){this.systemConservedCoins.add(e.toKey())}removeSystemConservedCoin(e){return this.systemConservedCoins.delete(e.toKey())}isUserConserved(e){return this.userConservedCoins.has(e.toKey())}isSystemConserved(e){return this.systemConservedCoins.has(e.toKey())}isConserved(e){return this.isUserConserved(e)}filterConserved(e){var t,i=[];for(t of e)this.isUserConserved(t)||this.isSystemConserved(t)||i.push(t);return i}getConserved(){var e,t,i=[];for(e of this.userConservedCoins.keys())i.push(d.fromKey(e));for(t of this.systemConservedCoins.keys())i.push(d.fromKey(t));return i}getAccountHistoryHashes(e){return this.keys({gte:l.T(e,c.NULL_HASH),lte:l.T(e,c.HIGH_HASH),parse:e=>{var[,e]=l.Tt(e);return e}})}getHistoryHashes(e){return null!=e?this.getAccountHistoryHashes(e):this.keys({gte:l.t(c.NULL_HASH),lte:l.t(c.HIGH_HASH),parse:e=>l.tt(e)})}getAccountPendingHashes(e){return this.keys({gte:l.P(e,c.NULL_HASH),lte:l.P(e,c.HIGH_HASH),parse:e=>{var[,e]=l.Pp(e);return e}})}getPendingHashes(e){return null!=e?this.getAccountPendingHashes(e):this.keys({gte:l.p(c.NULL_HASH),lte:l.p(c.HIGH_HASH),parse:e=>l.pp(e)})}getAccountOutpoints(e){return void 0!==e&&null!=e?this.keys({gte:l.C(e,c.NULL_HASH,0),lte:l.C(e,c.HIGH_HASH,4294967295),parse:e=>{var[,e,t]=l.Cc(e);return new d(e,t)}}):this.keys({gte:l.c(c.NULL_HASH,0),lte:l.c(c.HIGH_HASH,4294967295),parse:e=>{var[e,t]=l.cc(e);return new d(e,t)}})}getAccountHeightRangeHashes(e,t){var i=t.start||0,r=t.end||4294967295;return this.keys({gte:l.H(e,i,c.NULL_HASH),lte:l.H(e,r,c.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,,e]=l.Hh(e);return e}})}getHeightRangeHashes(e,t){var i;return e&&"object"==typeof e&&(t=e,e=null),null!=e?this.getAccountHeightRangeHashes(e,t):(e=t.start||0,i=t.end||4294967295,this.keys({gte:l.h(e,c.NULL_HASH),lte:l.h(i,c.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,e]=l.hh(e);return e}}))}getHeightHashes(e){return this.getHeightRangeHashes({start:e,end:e})}getAccountRangeHashes(e,t){var i=t.start||0,r=t.end||4294967295;return this.keys({gte:l.M(e,i,c.NULL_HASH),lte:l.M(e,r,c.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,,e]=l.Mm(e);return e}})}getRangeHashes(e,t){var i;return e&&"object"==typeof e&&(t=e,e=null),null!=e?this.getAccountRangeHashes(e,t):(e=t.start||0,i=t.end||4294967295,this.keys({gte:l.m(e,c.NULL_HASH),lte:l.m(i,c.HIGH_HASH),limit:t.limit,reverse:t.reverse,parse:e=>{var[,e]=l.mm(e);return e}}))}async getRange(e,t){var i,r=[];e&&"object"==typeof e&&(t=e,e=null),e=await this.getRangeHashes(e,t);for(i of e){var a=await this.getTX(i);s(a),r.push(a)}return r}getLast(e,t){return this.getRange(e,{start:0,end:4294967295,reverse:!0,limit:t||10})}getHistory(e){return null!=e?this.getAccountHistory(e):this.values({gte:l.t(c.NULL_HASH),lte:l.t(c.HIGH_HASH),parse:g.fromRaw})}async getAccountHistory(e){var t,i=[];for(t of await this.getHistoryHashes(e)){var r=await this.getTX(t);s(r),i.push(r)}return i}async getPending(e){var t,i=[];for(t of await this.getPendingHashes(e)){var r=await this.getTX(t);s(r),i.push(r)}return i}getCredits(e){return void 0!==e&&null!=e?this.getAccountCredits(e):this.range({gte:l.c(c.NULL_HASH,0),lte:l.c(c.HIGH_HASH,4294967295),parse:(e,t)=>{var[e,i]=l.cc(e),r=(t=y.fromRaw(t),d.toKey(e,i));return t.coin.hash=e,t.coin.index=i,this.coinCache.set(r,t),t}})}async fillCoins(){var e;for(e of await this.keys({gte:l.C(0,c.NULL_HASH,0),lte:l.C(4294967295,c.HIGH_HASH,4294967295),parse:e=>{var t,[e,t,i]=l.Cc(e);return(t=new d(t,i)).wid=this.wallet.wid,t.account=e,[t.toKey(),t]}})){var t=await this.get(l.c(e[1].hash,e[1].index));t&&((t=y.fromRaw(t)).coin.hash=e[1].hash,t.coin.index=e[1].index,this.coinCache.set(e[0],t))}}async getAccountCredits(e){var t,i=[];for(t of await this.getAccountOutpoints(e)){var r=await this.getCredit(t.hash,t.index);r||(this.logger.warning("getAccountCredits: credit not found.",t.hash,t.index),s(r)),i.push(r)}return i}async getSpentCredits(e){if(e.isCoinbase())return[];var t=e.hash("hex");let i=[];for(let t=0;t<e.inputs.length;t++)i.push(null);return await this.range({gte:l.d(t,0),lte:l.d(t,4294967295),parse:(t,r)=>{var[,t]=l.dd(t),a=(r=p.fromRaw(r),e.inputs[t]);s(a),r.hash=a.prevout.hash,r.index=a.prevout.index,i[t]=new y(r)}}),i}async getCoins(e){let t=[];var i;if(void 0!==e&&null!=e)for(i of await this.getAccountOutpoints(e)){var r=await this.getCredit(i.hash,i.index);r||(this.logger.warning("getCoins: credit not found.",i.hash,i.index),s(r)),r.spent||t.push(r.coin)}else await this.range({gte:l.c(c.NULL_HASH,0),lte:l.c(c.HIGH_HASH,4294967295),parse:(e,i)=>{var[e,r]=l.cc(e),a=(i=y.fromRaw(i),d.toKey(e,r));i.coin.hash=e,i.coin.index=r,this.coinCache.set(a,i),i.spent||t.push(i.coin)}});return t}async getSpentCoins(e){if(e.isCoinbase())return[];var t,i=[];for(t of await this.getSpentCredits(e))t?i.push(t.coin):i.push(null);return i}async getCoinView(e){var t=new o;if(!e.isCoinbase())for(var i of e.inputs)i=i.prevout,(i=await this.getCoin(i.hash,i.index))&&t.addCoin(i);return t}async getSpentView(e){var t,i=new o;if(!e.isCoinbase())for(t of await this.getSpentCoins(e))t&&i.addCoin(t);return i}async getState(){var e=await this.get(l.R);return e?v.fromRaw(this.wallet.wid,this.wallet.id,e):null}async loadLockedCoins(){var e,t=this.walletdb.curHeight,i=r.now();for(e of await this.wallet.getCredits()){var a=e.coin;a.getAddress()&&(a.lockedByLocktime(t,i)||a.lockedBySequence(t,i))&&this.addLocked(a)}}refreshLocked(e,t){var i;for(i of this.lockedCoins.values())i.lockedByLocktime(e,t)||i.lockedBySequence(e,t)||this.removeLocked(i)}addLocked(e){var t=l.prefix(this.wallet.wid,l.c(e.hash,e.index));this.lockedCoins.has(t)||(this.lockedCoins.set(t,e),this.changeLocked(this.pending,e,1))}removeLocked(e){var t=l.prefix(this.wallet.wid,l.c(e.hash,e.index));this.lockedCoins.has(t)&&(this.lockedCoins.delete(t),this.changeLocked(this.pending,e,-1))}async getTX(e){return(e=await this.get(l.t(e)))?g.fromRaw(e):null}async getDetails(e){return(e=await this.getTX(e))?this.toDetails(e):null}async toDetails(e){var t,i=[];if(!Array.isArray(e))return this._toDetail(e);for(t of e){var r=await this._toDetail(t);r&&i.push(r)}return i}async _toDetail(e){var t=e.tx,i=e.getBlock(),r=new k(this,e,i),a=await this.getSpentCoins(t);for(let e=0;e<t.inputs.length;e++){var s=a[e];let t=null;s&&(t=await this.getPath(s)),r.setInput(e,t,s)}for(let e=0;e<t.outputs.length;e++){var n=t.outputs[e];n=await this.getPath(n);r.setOutput(e,n)}return r}hasTX(e){return this.has(l.t(e))}async getCoin(e,t){return(e=await this.getCredit(e,t))?e.coin:null}async emitCoinSpent(e,t,i,r){(i={env:this.walletdb,block:r,tx:i,hash:e.prevout.hash,i:e.prevout.index,height:r.height,output:t,type:t.getReturnType(),data:t.getReturnData(_)}).data&&await S(i).spent(e)}async getCredit(e,t){var i=this.state,r=d.toKey(e,t),a=this.coinCache.get(r);return a||((a=await this.get(l.c(e,t)))?((a=y.fromRaw(a)).coin.hash=e,a.coin.index=t,i===this.state&&this.coinCache.set(r,a),a):null)}async getSpentCoin(e,t){return(e=await this.get(l.d(e.hash,e.index)))?(e=p.fromRaw(e),t&&(e.hash=t.hash,e.index=t.index),e):null}hasSpentCoin(e){return this.has(l.d(e.hash,e.index))}async updateSpentCoin(e,t,i){e=d.fromTX(e,t);(t=await this.getSpender(e.hash,e.index))&&(e=await this.getSpentCoin(t,e))&&(e.height=i,this.put(l.d(t.hash,t.index),e.toRaw()))}async hasCoin(e,t){var i=d.toKey(e,t);return!!this.coinCache.has(i)||this.has(l.c(e,t))}async getBalance(e){if(null!=e)return this.getAccountBalance(e);e=await this.getCredits();var t,i,r,a=new w(this.wallet.wid,this.wallet.id,-1),s=this.walletdb.curHeight,n=this.network.now();for(t of e){var o=t.coin;o.isColored||(t.spent||(a.unconfirmed+=o.value),-1!==o.height&&(a.confirmed+=o.value)),(o.lockedByLocktime(s,n)||o.lockedBySequence(s,n))&&this.changeLocked(a,o,1)}for([i,r]of this.virtualAmount)a.unconfirmed+=r;return a}addAccountAmount(e,t){this.virtualAmount.has(e)?this.virtualAmount.set(e,this.virtualAmount.get(e)+t):this.virtualAmount.set(e,t)}checkAccountAmount(e){this.virtualAmount.get(e)&&this.virtualAmount.delete(e)}async getAccountBalance(e){var t,i=await this.getAccountCredits(e),r=new w(this.wallet.wid,this.wallet.id,e),a=this.walletdb.curHeight,s=this.network.now();for(t of i){var n=t.coin;n.isColored||(t.spent||(r.unconfirmed+=n.value),-1!==n.height&&(r.confirmed+=n.value)),(n.lockedByLocktime(a,s)||n.lockedBySequence(a,s))&&this.changeLocked(r,n,1)}return this.virtualAmount.get(e)&&(r.unconfirmed+=this.virtualAmount.get(e)),r}async zap(e,t){s(r.isU32(t));var i,a=r.now(),n=[];for(i of await this.getRange(e,{start:0,end:a-t}))-1===i.height&&(s(a-i.mtime>=t),this.logger.debug("Zapping TX: %s (%s)",i.tx.txid(),this.wallet.id),await this.remove(i.hash),n.push(i.hash));return n}async abandon(e){if(await this.has(l.p(e)))return this.remove(e)}}E.layout=l;class k{constructor(e,t,i){this.wallet=e.wallet,this.network=this.wallet.network,this.wid=this.wallet.wid,this.id=this.wallet.id,this.chainHeight=e.walletdb.curHeight,this.hash=t.hash,this.tx=t.tx,this.mtime=t.mtime,this.size=this.tx.getSize(),this.vsize=this.tx.getVirtualSize(),this.block=null,this.height=-1,this.time=0,i&&(this.block=i.hash,this.height=i.height,this.time=i.time),this.inputs=[],this.outputs=[],this.init()}init(){for(var e of this.tx.inputs){var t=new R;t.address=e.getAddress(),this.inputs.push(t)}for(var i of this.tx.outputs){var r=new R;r.value=i.value,r.address=i.getAddress(),this.outputs.push(r)}}setInput(e,t,i){var r=this.inputs[e];r.prevout=this.tx.inputs[e].prevout,i&&(r.value=i.value,r.address=i.getAddress()),t&&(r.path=t)}setOutput(e,t){e=this.outputs[e],t&&(e.path=t)}getDepth(){var e;return-1===this.height||(e=this.chainHeight-this.height)<0?0:1+e}getFee(){let e=0,t=0;for(var i of this.inputs){if(!i.path)return 0;e+=i.value}for(var r of this.outputs)t+=r.value;return e-t}getRate(e){return u.getRate(this.vsize,e)}toJSON(){var e=this.getFee();let t=this.getRate(e);return Number.isSafeInteger(t)||(t=0),{wid:this.wid,id:this.id,hash:r.revHex(this.hash),height:this.height,block:this.block?r.revHex(this.block):null,time:this.time,mtime:this.mtime,date:r.date(this.time||this.mtime),size:this.size,virtualSize:this.vsize,fee:e,rate:t,confirmations:this.getDepth(),inputs:this.inputs.map(e=>e.getJSON(this.network)),outputs:this.outputs.map(e=>e.getJSON(this.network)),tx:this.tx.toRaw().toString("hex")}}}class R{constructor(){this.value=0,this.address=null,this.path=null}toJSON(){return this.getJSON()}getJSON(e){return{prevout:this.prevout?this.prevout.toJSON():null,value:this.value,address:this.address?this.address.toString(e):null,path:this.path?this.path.toJSON():null}}}e.exports=E},function(e,t){e.exports=require("child_process")},function(e,t,i){
794
794
  /*!
795
795
  * master.js - master process for vallnet
796
796
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
@@ -807,7 +807,7 @@ let r=i(0),a=i(2),s=i(25),n=i(58),o=i(81),p=i(102),d=i(124),h=i(191),l=i(1),c=i(
807
807
  * Copyright (c) 2019-2022, Bookman Software (MIT License).
808
808
  * https://github.com/bookmansoft/gamegold
809
809
  */
810
- let r=i(0),a=i(61);i(97);let s=i(62).walletdb,n=i(116),o=i(69),p=o.errors,d=o.MAGIC_STRING,h=i(68),l=i(42),c=i(88),u=i(2),f=i(153),m=i(3),g=i(71),w=i(28),v=i(11),y=i(7),b=i(6),x=i(18),S=i(50),_=i(8),E=i(31),k=i(109),R=i(53),A=i(37),I=i(15),C=i(235),O=i(110),N=i(111),{ContractType:T,ContractState:P,PropStatus:B,HtlcStatus:L}=i(5),M=i(112),D=i(75),V=i(117),U=i(14).opcodes,H=i(30),z=i(403);e.exports=class extends o{constructor(e){super(e),r(e,"RPC requires a WalletDB."),this.wdb=e,this.keys=e.keys,this.network=e.network,this.logger=e.logger.context("rpc"),this.client=e.client,this.init()}init(){this.add("sys.alliance.create",this.allianceCreate),this.add("sys.alliance.import",this.allianceImport),this.add("sys.alliance.delete",this.allianceDelete),this.add("sys.alliance.refresh",this.refreshAlliance),this.add("sys.alliance.refresh.async",this.refreshAllianceAsync),this.add("sys.alliance.gettoken",this.getAllianceNodeToken),this.add("sys.alliance.user",this.allianceUserCreate),this.add("wallet",this.routerOfWallet),this.add("wallet.create",this.mkwallet),this.add("wallet.export",this.dumpWallet),this.add("wallet.exports.admin",this.dumpWallets),this.add("wallet.import",this.importWallet),this.add("wallet.exportmnemonic.admin",this.exportMnemonic),this.add("wallet.importmnemonic.admin",this.importMnemonic),this.add("wallet.list",this.getWallets),this.add("wallet.info",this.getWalletInfo),this.add("wallet.block",this.getWalletBlock),this.add("wallet.layouth",this.getWalletLayoutH),this.add("wallet.encrypt",this.encryptWallet),this.add("wallet.decrypt",this.decryptWallet),this.add("wallet.changepassphrase",this.changePassphrase),this.add("wallet.lock",this.walletLock),this.add("wallet.unlock",this.unlock),this.add("wallet.blocks",this.getblocks),this.add("wallet.auth",this.walletAuth),this.add("wallet.rescan",this.rescan),this.add("wallet.checkutxo",this.checkUTXO),this.add("key",this.routerOfKey),this.add("key.export.private",this.dumpPrivKey),this.add("key.export.public",this.getKey),this.add("key.master.admin",this.masterkey),this.add("key.import.private",this.importPrivKey),this.add("key.import.public",this.importPubkey),this.add("key.import.address",this.importAddress),this.add("key.shared.add",this.addShared),this.add("key.shared.del",this.removeShared),this.add("key.root.inject.admin",this.injectRootKey),this.add("key.root.extract.admin",this.extractRootKey),this.add("account",this.routerOfAccount),this.add("account.list",this.listAccounts),this.add("account.map",this.mapAccounts),this.add("account.get",this.accountGet),this.add("account.create",this.accountCreate),this.add("account.received",this.getReceivedByAccount),this.add("account.listreceived",this.listReceivedByAccount),this.add("account.virtualadd.admin",this.accountVirtualAdd),this.add("account.checkamount",this.accountCheckAmount),this.add("balance.confirmed",this.getBalance),this.add("balance.all",this.getBalanceAll),this.add("balance.check",this.checkBalance),this.add("balance.unconfirmed",this.getUnconfirmedBalance),this.add("balance.log",this.getBalanceLog),this.add("comm.notify",this.commNotify),this.add("comm.hash",this.calcHash),this.add("comm.listNotify",this.listNotify),this.add("comm.secret",this.sendSecret),this.add("comm.querySecret",this.querySecret),this.add("comm.listContact",this.listContact),this.add("comm.scanContact",this.scanContact),this.add("comm.comment",this.sendComment),this.add("comm.comment.query",this.commentQuery),this.add("sys.walletdb.stop",this.stop),this.add("sys.walletnode.shutdown",this.shutdown),this.add("sys.walletdb.create",this.createWalletDb),this.add("sys.walletdb.destroy",this.destroyWalletDb),this.add("sys.zap",this.zap),this.add("sys.setfee",this.setTXFee),this.add("sys.message.sign",this.signMessage),this.add("sys.log",this.sysLog),this.add("address",this.routerOfAddress),this.add("address.list",this.getAddressesByAccount),this.add("address.index",this.getAddressesByIndex),this.add("address.receive",this.getAccountAddress),this.add("address.change",this.getAccountChangeAddress),this.add("address.nested",this.getAccountNestedAddress),this.add("address.calc",this.calcAddress),this.add("address.create",this.createAddress),this.add("address.create.admin",this.createAddressAdmin),this.add("address.receive.create",this.createAddress),this.add("address.change.create",this.createChange),this.add("address.nested.create",this.createNested),this.add("address.import",this.importAddress),this.add("address.key.admin",this.getPrivKey),this.add("address.wif.admin",this.getwif),this.add("address.has",this.ownedAddress),this.add("address.amount",this.getReceivedByAddress),this.add("address.account",this.getAccount),this.add("address.received",this.getReceivedByAddress),this.add("address.received.list",this.listReceivedByAddress),this.add("cp",this.routerOfCp),this.add("cp.create",this.cpRegister),this.add("cp.create.async",this.cpRegisterAsync),this.add("cp.change",this.cpChange),this.add("cp.query",this.cpQuery),this.add("cp.query.remote",this.cpQueryRemote),this.add("cp.mine",this.cpMine),this.add("cp.user",this.getUserToken),this.add("sc",this.routerOfSc),this.add("sc.register",this.scRegister),this.add("sc.run",this.scRun),this.add("ca",this.routerOfCa),this.add("ca.issue",this.caIssue),this.add("ca.user.status",this.caUserStatus),this.add("ca.user.log",this.caUserLog),this.add("ca.abolish",this.caAbolish),this.add("ca.enchance",this.enchanceCp),this.add("ca.list.me",this.queryMyErlist),this.add("ca.list.remote",this.queryErList),this.add("ca.issue.async",this.caIssueAsync),this.add("ca.abolish.async",this.caAbolishAsync),this.add("ca.issue.public",this.caIssuePublic),this.add("ca.abolish.public",this.caAbolishPublic),this.add("prop",this.routerOfProp),this.add("prop.create",this.propCreate),this.add("prop.createlist",this.propCreateList),this.add("prop.send",this.propExchange),this.add("prop.sendlist",this.propSendList),this.add("prop.sendlist.admin",this.propSendListAdmin),this.add("prop.found",this.propFound),this.add("inscription.create",this.inscriptionCreate),this.add("prop.wallet.byid",this.propGet),this.add("prop.wallet.byoid",this.listPropByOid),this.add("prop.wallet.byaddress",this.listProp),this.add("prop.sale",this.propSale),this.add("prop.buy",this.propBuy),this.add("contract",this.routerOfContract),this.add("contract.create",this.contractCreate),this.add("contract.promise",this.contractPromise),this.add("contract.execute",this.contractExecute),this.add("contract.mine",this.contractOfMine),this.add("htlc",this.routerOfHTLC),this.add("htlc.suggest",this.htlcSuggest),this.add("htlc.suggest.cancel",this.htlcSuggestCancel),this.add("htlc.suggest.deal",this.htlcSuggestDeal),this.add("htlc.assent",this.htlcAssent),this.add("htlc.assent.cancel",this.htlcAssentCancel),this.add("htlc.assent.deal",this.htlcAssentDeal),this.add("htlc.query",this.htlcQuery),this.add("vote.send",this.sendVote),this.add("vote.send.async",this.sendVoteAsync),this.add("oracle.send",this.sendOracle),this.add("tx.get.wallet",this.getTransaction),this.add("tx.list",this.listTransactions),this.add("tx.create",this.createTX),this.add("tx.attach",this.attach),this.add("tx.send",this.sendTX),this.add("tx.send.async",this.sendTXAsync),this.add("tx.last",this.getLast),this.add("tx.pending",this.getPending),this.add("tx.pending.get",this.getPendingItem),this.add("tx.pending.hash",this.getPendingHash),this.add("tx.pending.count",this.getPendingCount),this.add("tx.resend.admin",this.resendWalletTransactions),this.add("tx.mstrans",this.listMSTrans),this.add("tx.mstrans.sign",this.signMSTrans),this.add("tx.history",this.getHistory),this.add("tx.history.since",this.listSinceBlock),this.add("tx.range",this.getRange),this.add("tx.abandon.admin",this.abandonTransaction),this.add("tx.abandonall.admin",this.abandonPending),this.add("tx.importprunedfunds.admin",this.importPrunedFunds),this.add("tx.removeprunedfunds.admin",this.removePrunedFunds),this.add("tx.resendall.admin",this.resend),this.add("tx.sign.admin",this.signTX),this.add("tx.fund.admin",this.fundRawTransaction),this.add("coin",this.routerOfCoin),this.add("coin.get",this.getCoin),this.add("coin.spender",this.getSpender),this.add("coin.spent",this.getSpent),this.add("coin.cache",this.getCoincacheSize),this.add("coin.check",this.checkUnspent),this.add("coin.list",this.listUnspent),this.add("coin.selectone",this.selectone),this.add("coin.conserved.get",this.getConservedCoins),this.add("coin.conserved.add",this.conserveCoin),this.add("coin.conserved.del",this.unConserveCoin),this.add("coin.conserved.list",this.listConservedUnspent),this.add("coin.conserved.oper.list",this.listOperUnspent),this.add("coin.locked.list",this.listLockedUnspent)}async routerOfCoin(e){throw new h(p.MISC_ERROR,"\n coin.get 查询硬币-UTXO\n coin.remove.admin 移除指定硬币(管理员判断为状态异常者)\n coin.spender 查询硬币的消费者\n coin.list 列表硬币-UTXO\n coin.conserved.get 获取钱包保持的Coin的信息\n coin.conserved.add 钱包增加需要保持的Coin\n coin.conserved.del 钱包减少需要保持的Coin\n coin.conserved.list 列表钱包保持的UTXO\n coin.conserved.oper.list 批量锁定/解锁一组UTXO \n coin.locked.list 列表目前交易层锁定的UTXO\n ")}async routerOfContract(e){throw new h(p.MISC_ERROR,"\n contract.create 发布交易对合约\n contract.promise 签署交易对合约\n contract.execute 执行交易对合约\n contract.mine 获取已签署交易对合约列表\n contract.list 查询并返回交易对\n ")}async routerOfHTLC(e){throw new h(p.MISC_ERROR,"\n htlc.suggest 发布跨链合约\n htlc.suggest.deal 兑现合约\n htlc.suggest.cancel 取消合约\n htlc.assent 响应跨链合约\n htlc.assent.deal 兑现响应\n htlc.assent.cancel 取消响应\n htlc.query 查询合约\n ")}async routerOfWallet(e){throw new h(p.MISC_ERROR,"\n wallet.create 创建钱包\n wallet.list 列表钱包\n wallet.info 查询钱包概要\n wallet.block 查询区块信息\n wallet.exportmnemonic.admin 导出钱包助记词备份\n wallet.importmnemonic.admin 导入钱包助记词备份\n wallet.export 导出钱包备份\n wallet.import 导入钱包备份\n wallet.encrypt 将主私钥永久加密\n wallet.decrypt 将主私钥永久解密\n wallet.changepassphrase 在主私钥已经加密的情况下,修改其加密密码,要提交旧/新两个密码。如果尚未加密则执行失败\n wallet.lock 在主私钥已加密的前提下,清理内存中的密钥信息以确保锁定,相当于手工执行自动锁定\n wallet.unlock 在主私钥已加密的前提下,解密主私钥,持续一段时间后自动锁定\n wallet.blocks 列表钱包相关区块\n ")}async routerOfAddress(e){throw new h(p.MISC_ERROR,"\n address.list 列表指定账户下地址\n address.receive 列表指定账户下收款地址\n address.change 列表指定账户下找零地址\n address.nested 列表指定账户下嵌套地址\n address.create 创建一个收款地址\n address.create.admin 创建一个收款地址,回显私钥\n address.receive.create 创建一个收款地址\n address.change.create 创建一个找零地址\n address.nested.create 创建一个嵌套地址\n address.import 导入一个地址\n address.key.admin 查询地址的密钥\n address.amount 查询指定地址上的余额\n address.account 查询指定地址对应的账户\n address.wif.admin 查询地址对应的私钥\n address.has 判断钱包是否包含地址\n address.received 根据地址查询进项总额\n address.received.list 根据地址查询进项\n address.filter 在订单流水中,查询符合筛选条件的地址集\n ")}async routerOfAccount(e){throw new h(p.MISC_ERROR,"\n account.list 列表账户\n account.get 查询账户\n account.create 创建账户\n account.received 查询收款总额\n account.listreceived 列表收款记录\n balance.confirmed 已确认余额\n balance.all 余额\n balance.unconfirmed 未确认余额\n balance.log 查询指定账户变更日志\n ")}async routerOfKey(e){throw new h(p.MISC_ERROR,"\n key.export.private 根据输入地址,导出私钥\n key.export.public 根据输入地址,打出公钥\n key.master.admin 导出根密钥和助记词, 注意 encrypt 状态下无法导出私钥\n key.import.private 导入私钥\n key.import.public 导入公钥\n key.import.address 导入地址\n key.shared.add 新增共享公钥\n key.shared.del 删除共享公钥\n ")}async routerOfCp(e){throw new h(p.MISC_ERROR,"\n cp.create 创建CP记录\n cp.change 修改CP记录\n cp.remoteQuery 查询全节点中的CP列表\n cp.query 查询本地CP列表\n cp.byClass 根据游戏类别查询CP记录\n cp.byName 根据名称查询CP记录\n cp.byId 根据ID查询CP记录\n cp.mine 当前操作员注册的CP\n cp.user 生成用户令牌(钱包)\n ")}async routerOfSc(e){throw new h(p.MISC_ERROR,"\n sc.model 查询托管合约模板列表\n sc.register 指定托管合约模板,创建新的实例\n sc.query 查询托管合约实例列表\n sc.run 调用托管合约实例\n ")}async routerOfCa(e){throw new h(p.MISC_ERROR,"\n ca.issue 电子证书签发\n ca.abolish 电子证书废止记录\n ca.verify 电子证书验证\n ca.user.status 根据企业证书编号和用户编号查询\n ca.user.log 根据企业证书编号和用户编号查询日志\n ca.enchance CA机构间增信\n ca.rank 查询CA信用等级\n ca.list 查询电子证书列表\n ca.list.ab 查询电子证书废止记录列表\n ca.list.me 查询钱包内证书列表\n ")}async routerOfProp(e){throw new h(p.MISC_ERROR,"\n prop.create 创建道具\n prop.send 转移道具\n prop.createlist 批量创建道具\n prop.sendlist 批量转移道具\n prop.found 熔铸道具\n prop.byaddress 根据地址查询道具\n prop.byid 根据PID查询道具\n prop.wallet.byaddress 根据地址查询自己拥有的道具\n prop.wallet.byid 根据PID查询自己拥有的道具\n prop.wallet.byoid 根据OID查询自己拥有的道具\n ")}async allianceCreate(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"sys.alliance.create password nodeid alliancename (host): 创建联盟节点证书 备份密码 节点编号 盟友名称 (节点地址)");e=(t=new g([e])).str(0);var r=t.uint(1,0),a=t.str(2,"").trim();t=t.str(3,"");if(!r||!e)throw new h(p.MISC_ERROR,"节点编号、备份密码都不能为空");if(a==this.wdb.$parent.config.allianceName)throw new h(p.MISC_ERROR,`子网名称不能和当前网络名称[${this.wdb.$parent.config.allianceName}]相同`);if(!this.wdb.$parent||!this.wdb.$parent.config.identityKey)throw new h(p.MISC_ERROR,"identityKey not set yet, please run sys.alliance.gettoken without params first");var[i,s]=await this.accessControl(i,""),n={body:{language:(n=await i.createAllianceInfo(a,r)).mnemonic.language,phrase:n.mnemonic.getPhrase(),passphrase:n.mnemonic.passphrase,alliancePrivateKey:n.alliancePrivateKey.toString("hex"),allianceName:a,allianceNodeId:r,awardAddress:n.awardAddress,allianceNodeToken:{network:this.network.type,alliancename:a,sn:r,prv:n.prv.toString("hex"),pub:n.pub.toString("hex"),address:n.address},notifyAddress:i.notifyAddress,authorized:""},password:e,network:this.network.type,file:this.network.type+`-${a}-${r}.keystore`};let o=D.encrypt(n);if(this.wdb.$parent){let i=!1;for(var d of this.wdb.$parent.config.alliances)if((d=d.split("|"))[0]==a&&d[1]==r){i=!0;break}i||(this.wdb.$parent.pool.authdb.addKnown(t,Buffer.from(n.body.allianceNodeToken.pub,"hex")),o=D.encrypt(n),this.wdb.$parent.config.alliances.push(`${a}|${r}|${o}|${e}|${n.body.awardAddress}|`+t),await this.wdb.$parent.saveConfigAsync())}e={host:t,an:n.body.allianceNodeToken.alliancename,ai:n.body.allianceNodeToken.sn,key:n.body.allianceNodeToken.pub};var u=c.signObj(e,i.notifyKey.privateKey);return await i.commNotify({dst:i.notifyAddress,content:JSON.stringify({cmd:"peeradd",payload:e,sig:u,pub:i.notifyKey.publicKey.toString("hex")})}),l.unsupported||await l.writeFile(n.file,o,"utf8"),e=(await i.getAccount(s)).getReceive().toString(),await this.wdb.logAudit({address:e,oper:"node.create",hash:a+"."+r,index:0}),{nodeid:r,alliancename:a,host:t,peerPubkey:n.body.allianceNodeToken.pub,awardAddress:n.body.awardAddress,file:n.file,notifyAddress:i.notifyAddress}}async allianceImport(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"sys.alliance.import password nodeid alliancename key (host): 导入联盟节点 备份密码 节点编号 盟友名称 节点公钥 (节点地址)");if(!this.wdb.$parent||!this.wdb.$parent.config.identityKey)throw new h(p.MISC_ERROR,"identityKey not set yet, please run sys.alliance.gettoken without params first");e=(t=new g([e])).str(0);var r=t.uint(1,0),a=t.str(2,""),s=t.str(3,"");t=t.str(4,"");if(!r||!e||!s)throw new h(p.MISC_ERROR,"节点编号、备份密码、节点公钥都不能为空");var[i,n]=await this.accessControl(i,""),o=await i.createAllianceInfo(a,r,s),d=Buffer.from(this.wdb.$parent.config.identityKey,"hex"),u=(d=x.publicKeyCreate(d,!0),(this.wdb.$parent.config.publicHost||"127.0.0.1")+":"+(this.wdb.$parent.config.publicPort||this.wdb.$parent.config.port||this.network.port));o={body:{alliancePrivateKey:o.alliancePrivateKey.toString("hex"),allianceName:a,allianceNodeId:r,allianceNodeToken:{network:this.network.type,alliancename:a,sn:r,pub:o.pub.toString("hex"),address:o.address},awardAddress:o.awardAddress,notifyAddress:i.notifyAddress,authorized:"",masterPub:d.toString("hex"),masterAddress:u},password:e,network:this.network.type,file:this.network.type+`-${a}-${r}.keystore`};let f;if(this.wdb.$parent){let i=!1;for(var m of this.wdb.$parent.config.alliances)if((m=m.split("|"))[0]==a&&m[1]==r){i=!0;break}i||(this.wdb.$parent.pool.authdb.addKnown(t,Buffer.from(s,"hex")),f=D.encrypt(o),this.wdb.$parent.config.alliances.push(`${a}|${r}|${f}|${e}|${o.body.awardAddress}|`+t),await this.wdb.$parent.saveConfigAsync())}else f=D.encrypt(o);return l.unsupported||await l.writeFile(o.file,f,"utf8"),d={host:t,key:o.body.allianceNodeToken.pub,an:o.body.allianceNodeToken.alliancename,ai:o.body.allianceNodeToken.sn},u=c.signObj(d,i.notifyKey.privateKey),await i.commNotify({dst:i.notifyAddress,content:JSON.stringify({cmd:"peeradd",payload:d,sig:u,pub:i.notifyKey.publicKey.toString("hex")})}),s=(await i.getAccount(n)).getReceive().toString(),await this.wdb.logAudit({address:s,oper:"node.create",hash:a+"."+r,index:0}),{nodeid:r,alliancename:a,host:t,peerPubkey:o.body.allianceNodeToken.pub,awardAddress:o.body.awardAddress,file:o.file,notifyAddress:i.notifyAddress}}async refreshAlliance(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.alliance.refresh amount: 为联盟成员批量充值 [充值金额(可选, 缺省为0)]");var r=new g([e]).uint(0,0);if(5e9<r)throw new h(p.MISC_ERROR,"无效的充值金额(10000~5000000000)");var[a,s]=await this.accessControl(i);if(this.wdb.$parent)for(var n of this.wdb.$parent.config.alliances){n=n.split("|");var o=(1e4<r&&_.fromString(n[4],this.network.type).isWitnessPubkeyhash()&&await a.send({outputs:[{address:n[4],value:r}]},s),D.decrypt({network:this.network.type,password:n[3],body:n[2]}));n=(this.wdb.$parent.rpc.addPeer&&await this.wdb.$parent.rpc.addPeer([n[5],o.allianceNodeToken.pub,null,null,null,!0]),{host:n[5],key:o.allianceNodeToken.pub,an:o.allianceNodeToken.alliancename,ai:o.allianceNodeToken.sn}),o=c.signObj(n,a.notifyKey.privateKey);await a.commNotify({dst:a.notifyAddress,content:JSON.stringify({cmd:"peeradd",payload:n,sig:o,pub:a.notifyKey.publicKey.toString("hex"),enableBIP:!0})})}}async refreshAllianceAsync(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.alliance.refresh.async amount: 为联盟成员批量充值 充值金额");var r=new g([e]).uint(0,0);if(r<1e4||5e9<r)throw new h(p.MISC_ERROR,"无效的充值金额(10000~5000000000)");var[a,s]=await this.accessControl(i);if(this.wdb.$parent)for(var n of this.wdb.$parent.config.alliances){n=n.split("|");var o=(_.fromString(n[4],this.network.type).isWitnessPubkeyhash()&&a.send({outputs:[{address:n[4],value:r}]},s),D.decrypt({network:this.network.type,password:n[3],body:n[2]}));n=(this.wdb.$parent.rpc.addPeer&&await this.wdb.$parent.rpc.addPeer([n[5],o.allianceNodeToken.pub,null,null,null,!0]),{host:n[5],key:o.allianceNodeToken.pub,an:o.allianceNodeToken.alliancename,ai:o.allianceNodeToken.sn}),o=c.signObj(n,a.notifyKey.privateKey);a.commNotify({dst:a.notifyAddress,content:JSON.stringify({cmd:"peeradd",payload:n,sig:o,pub:a.notifyKey.publicKey.toString("hex")})})}}async allianceDelete(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"sys.alliance.delete nodeid alliancename: 删除联盟节点证书 节点编号 盟友名称");var r=(t=new g([e])).uint(0,0),a=t.str(1,""),[s,e]=await this.accessControl(i,"");if(!r||!a)throw new h(p.MISC_ERROR,"节点编号、节点名称都不能为空");if(this.wdb.$parent)for(let e=0;e<this.wdb.$parent.config.alliances.length;e++){var n,o=this.wdb.$parent.config.alliances[e].split("|");o[0]==a&&o[1]==r&&(this.wdb.$parent.config.alliances.splice(e,1),await this.wdb.$parent.config.saveAsync(),o[5])&&(o={host:o[5],an:a,ai:r},n=c.signObj(o,s.notifyKey.privateKey),await s.commNotify({dst:s.notifyAddress,content:JSON.stringify({cmd:"peerdel",payload:o,sig:n,pub:s.notifyKey.publicKey.toString("hex")})}))}return t=(await s.getAccount(e)).getReceive().toString(),await this.wdb.logAudit({address:t,oper:"node.delete",hash:a+"."+r,index:0}),!0}async getAllianceNodeToken(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.alliance.gettoken (nodeid alliancename pubkey): 创建联盟节点信道密钥 (节点编号 盟友名称)");e=(t=new g([e])).uint(0,0);var r=t.str(1);t=t.str(2);if(this.wdb.$parent)return[i]=await this.accessControl(i),i=await i.createAllianceInfo(r,e,t),r||(this.wdb.$parent.config.identityKey?(i.prv=Buffer.from(this.wdb.$parent.config.identityKey,"hex"),i.pub=x.publicKeyCreate(i.prv,!0),i.address=_.fromWitnessPubkeyhash(b.hash160(i.pub),this.network.type).toString()):(this.wdb.$parent.pool.options.identityKey=i.prv,this.wdb.$parent.config.identityKey=i.prv.toString("hex"),await this.wdb.$parent.saveConfigAsync())),{network:this.network.type,alliancename:r,sn:e,prv:i.prv.toString("hex"),pub:i.pub.toString("hex"),address:i.address};throw new h(p.MISC_ERROR,"this cmd can only run on fullnode.")}async allianceUserCreate(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.alliance.user cid uid (alliancename): 创建企业用户 企业编号 用户编号 (盟友名称)");return this.$allianceUserCreate(e,i)}async $allianceUserCreate(e,t,i){var r=(e=new g([e])).str(0),a=e.uint(1);let s=null,n=null;return n=(e=e.str(2,""))?([t]=await this.accessControl(t),b.hash256(Buffer.concat([Buffer.from(e),t.master.key.privateKey]))):Buffer.from(this.wdb.$parent.config.alliancePrivateKey,"hex"),e=E.fromPrivate(n,!0,this.network),(t=E.fromPrivate(b.hash256(Buffer.concat([Buffer.from(r+"-"+a),e.privateKey]),!0,this.network))).witness=!0,s=t.signData({cid:r,uid:a}),i&&(s.prvkey=t.privateKey.toString("hex")),s}async isReady(e){return this.wdb.isFull()}async checkUTXO(e,t,i){if(t)throw new h(p.MISC_ERROR,"wallet.checkutxo: 检查并修复钱包 UTXO");var r,a={};for(r of await this.wdb.getWallets())try{var s=await this.wdb.get(r);s?(this.logger.info(`Starting UTXO check for wallet ${r}...`),await s.checkAndRepairUTXOs(),this.logger.info("UTXO check completed for wallet "+r),a[r]="success"):a[r]="wallet not found"}catch(e){this.logger.error(`Error checking UTXO for wallet ${r}: `+e.message),a[r]="error: "+e.message}return a}async injectRootKey(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"key.root.inject.admin rootKey passphrase: 注入根私钥 根私钥(hex) 加密密码");t=new g([e]);var[e,,]=await this.accessControl(i);i=t.buf(0,"hex"),t=t.str(1);if(i&&t)return await e.injectRootKey(i,t),this.wdb.$parent&&this.wdb.$parent.signalRootKeyInjected&&this.wdb.$parent.signalRootKeyInjected(),{success:!0,message:"Root private key injected successfully in security mode."};throw new h(p.MISC_ERROR,"根私钥和加密密码都不能为空")}async extractRootKey(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"key.root.extract.admin passphrase: 注出根私钥 加密密码");t=new g([e]);var[e,,]=await this.accessControl(i);if(i=t.str(0))return{success:!0,rootKey:(await e.extractRootKey(i)).toString("hex"),message:"Root private key extracted successfully."};throw new h(p.MISC_ERROR,"加密密码不能为空")}async shutdown(e,t){return this.wdb.$parent&&this.wdb.$parent.close().catch(e=>{setImmediate(()=>{throw e})}).finally(async()=>{await new Promise(e=>{setTimeout(e,1e4)}),process.exit(0)}),"Stopping."}async stop(e,t,i){if(t||0!==e.length)throw new h(p.MISC_ERROR,"sys.walletdb.stop");return this.wdb.close(),"Stopping walletdb..."}async destroyWalletDb(e,t,i){if(t||0!==e.length)throw new h(p.MISC_ERROR,"sys.walletdb.destroy: 删除钱包数据库");return await this.wdb.close(),await this.wdb.destroy(),"Destroyed."}async createWalletDb(e,t,i){if(t||0!==e.length)throw new h(p.MISC_ERROR,"sys.walletdb.create: 删除原有钱包数据库并重建");return await this.wdb.close(),await this.wdb.destroy(),await this.wdb.open(),"Created."}async fundRawTransaction(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,'tx.fund.admin "hexstring" ( options openid )');let r=new g([e]);var[t,e]=await this.accessControl(i,r.str(2,"")),a=(i=r.buf(0),r.obj(1));if(!i)throw new h(p.TYPE_ERROR,"Invalid hex string.");if(0===(i=R.fromRaw(i)).outputs.length)throw new h(p.INVALID_PARAMETER,"TX must have at least one output.");let s=null,n=null;if(a){let e=new g([a]);s=e.ufixed("feeRate",8),n=(n=e.str("changeAddress"))&&o.parseAddress(n,this.network)}return await t.fund(i,{rate:s,changeAddress:n,account:e}),{hex:i.toRaw().toString("hex"),changepos:i.changeIndex,fee:w.btc(i.getFee(),!0)}}async dumpPrivKey(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"key.export.private address [account]");t=new g([e]);var[e,r]=await this.accessControl(i,t.str(1,""));t=t.str(0,"");if(!this.wdb.options.acl.isRoot(i.options.cid)&&!await e.belongToAccount(r,t))throw new h(p.MISC_ERROR,"Invald Account.");if(i=o.parseHash(t,this.network),r=await e.getPrivateKey(i))return r.toSecret();throw new h(p.MISC_ERROR,"Key not found.")}async exportMnemonic(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,"wallet.exportmnemonic.admin password: 备份钱包助记符 备份密码");t=new g([e]);var[e,i]=await this.accessControl(i);if(!(t=t.str(0)))throw new h(p.MISC_ERROR,"wallet.exportmnemonic.admin: Invalid password");if("primary"==e.id&&"default"!=i)throw new h(p.MISC_ERROR,"wallet.exportmnemonic.admin: Invalid Account");return i={body:{phrase:e.master.mnemonic.getPhrase(),language:e.master.mnemonic.language,passphrase:e.master.mnemonic.passphrase},password:t,network:this.network,file:`./${this.network.type}-wallet${e.db.options.spv?"-spv":""}.keystore`},this.wdb.$parent&&(i.body.awardAddress=this.wdb.$parent.config.coinbaseAddress),await D.writeEncryptFile(i),D.encrypt(i)}async importMnemonic(e,t,i){if(t||2!==e.length)throw new h(p.MISC_ERROR,"wallet.importmnemonic.admin encrypt password: 导入钱包助记符 备份文本 备份密码");var r;t=new g([e]);let a=D.decrypt({body:t.str(0),password:t.str(1),network:this.network});for(r of("string"==typeof a&&(a=JSON.parse(a)),this.wdb.$parent&&(a.awardAddress=this.wdb.$parent.config.coinbaseAddress),await this.wdb.getWallets()))if((await this.wdb.get(r)).master.mnemonic.getPhrase()===a.phrase)throw new h(p.MISC_ERROR,"wallet.importmnemonic.admin: 相同助记词已被使用");return(e=await this.wdb.ensure({id:V(),type:"pubkeyhash",m:1,n:1,mnemonic:a,passphrase:null,master:null,witness:!0,watchOnly:!1,accountKey:null}))?e.toJSON(!1):null}async dumpWallet(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"wallet.export filename (fragment password wid): 导出钱包备份 备份文件全路径 (分片存储 true/false) (加密密码) (钱包ID)");let r;if(e=(t=new g([e])).str(3,null)){if(!(r=await this.wdb.get(e)))throw new h(p.TYPE_ERROR,"Invalid wallet ID.")}else{var[e]=await this.accessControl(i);r=e}if(i=t.str(0))return e=t.bool(1,!1),t=t.str(2,null),await r.exportToFile({file:i,fragment:e,password:t,network:this.network}),!0;throw new h(p.TYPE_ERROR,"Invalid filename.")}async dumpWallets(e,t,i){if(t)throw new h(p.MISC_ERROR,"wallet.exports.admin (password): 导出所有钱包备份 (加密密码)");var r,a=new g([e]).str(0,null);for(r of await this.wdb.getWallets())await(await this.wdb.get(r)).exportToFile({file:`backup-${r}.txt`,password:a,network:this.network});return!0}async encryptWallet(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,'wallet.encrypt "passphrase"');t=new g([e]);var[e,i]=await this.accessControl(i);t=t.str(0,"");if("primary"==e.id&&"default"!=i)throw new h(p.MISC_ERROR,"Invalid Account");if(e.master.encrypted)throw new h(p.WALLET_WRONG_ENC_STATE,"Already running with an encrypted wallet.");if(t.length<1)throw new h(p.MISC_ERROR,'wallet.encrypt "passphrase"');try{await e.setPassphrase(null,t)}catch(e){throw new h(p.WALLET_ENCRYPTION_FAILED,"Encryption failed.")}return"wallet encrypted"}async getAccount(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,'address.account "address"');t=new g([e]);var[e,i]=await this.accessControl(i);return("primary"!=e.id||"default"==i)&&(i=t.str(0,""),t=o.parseHash(i,this.network),i=await e.getPath(t))?i.name:""}async getAddressesByIndex(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,'address.index "index"');t=new g([e]);var[e,i]=await this.accessControl(i);if("primary"!=e.id||"default"==i){var r,a=t.uint(0);for(r of await e.getPaths("default")){var s=r.toAddress();if(0==r.branch&&r.index==a)return s.toString(this.network)}}}async accessControl(e,t){let i=await this.wdb.get("primary");if(this.wdb.options.acl.isRoot(e.options.cid))"primary"!==e.options.wid?(i=await this.wdb.get(e.options.wid),t=null):"*"===(t=t||"default")&&(t=null);else if("primary"!==e.options.wid){if(!await i.belongToAccount(e.options.cid,e.options.wid))throw new h(p.TYPE_ERROR,"Invalid wid.");i=await this.wdb.get(e.options.wid),t=null}else t=e.options.cid;return await i.ensureAccount({name:t,witness:!0}),[i,t]}async getAddressesByAccount(e,t,i){if(t)throw new h(p.MISC_ERROR,'address.list "account"');t=new g([e]);var r,[e,i]=await this.accessControl(i,t.str(0,"")),a=[],s=[],n=[];for(r of await e.getPaths(i)){var o=r.toAddress();(0==r.branch?a:1==r.branch?s:n).push(o.toString(this.network))}return[a,s,n]}async getAccountAddress(e,t,i){if(t)throw new h(p.MISC_ERROR,'address.receive "account"');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));if(t=await e.getAccount(i))return t.receive.getAddress("string")}async getAccountChangeAddress(e,t,i){if(t)throw new h(p.MISC_ERROR,"address.change account");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));if(t=await e.getAccount(i))return t.change.getAddress("string")}async getAccountNestedAddress(e,t,i){if(t)throw new h(p.MISC_ERROR,'address.nested.list "account"');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));if(t=await e.getAccount(i))return t.nested.getAddress("string")}async getBalance(e,t,i){if(t||3<e.length)throw new h(p.MISC_ERROR,'balance.confirmed ( "account" minconf includeWatchonly )');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,"")),r=t.u32(1,0);t=t.bool(2,!1);if(e.watchOnly!==t)return 0;let a;return t=await e.getBalance(i),a=0<r?t.confirmed:t.unconfirmed,w.btc(a,!0)}async getBalanceLog(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,'balance.log "account" (height)');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0));t=t.uint(1,0);return e.queryBalanceLog(i,t)}async getBalanceAll(e,t,i){if(t||3<e.length)throw new h(p.MISC_ERROR,'balance.all ( "account" minconf includeWatchonly )');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0));return(await e.getBalance(i)).toJSON()}async checkBalance(e,t,i){if(t)throw new h(p.MISC_ERROR,"balance.check");t=new g([e]);var[e,,]=await this.accessControl(i,t.str(0));return(await e.resetBalance()).toJSON()}async getUserToken(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"cp.user cid uid: 生成登录令牌 厂商编码 用户编码");e=(t=new g([e])).str(0),t=t.str(1);var[i]=await this.accessControl(i);return i.tokenCreate({cid:e,uid:t},t)}async masterkey(e,t,i){var[i,r]=await this.accessControl(i);if("primary"==i.id||"default"==r)return i.master.toJSON(!0)}async getHistory(e,t,i){if(t||1<e.length)throw new h(p.MISC_ERROR,"tx.history (page acct):查询交易历史记录 (页码 账号)");var r=(t=new g([e])).uint(0,1);if(r<1)throw new h(p.MISC_ERROR,"页面必须是大于0的数字");var[e,i]=await this.accessControl(i,t.str(1));t=await e.getHistory(i);a.sortTX(t);let s=0;var n,o=[];for(n of t){if(s<10*(r-1));else{if(s>=10*r)break;o.push(n)}s++}return i=await e.toDetails(o),(e={}).items=i,e.pageSize=10,e.pageNum=r,e.total=t.length,e}async sendSecret(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"comm.secret dst message (openid): 安全通信消息 收信地址 信息内容 (玩家账号)");e=(t=new g([e])).str(0,"");var r=t.str(1,""),[i,t]=(t=t.str(2,""),await this.accessControl(i,t));if(o.parseAddress(e,this.network))return i.sendSecret(e,r,t);throw new h(p.TYPE_ERROR,"Invalid Destination Address.")}async querySecret(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"comm.querySecret src dst pac (openid): 通信解密 发信地址 收信地址 密文 (玩家账号)");e=(t=new g([e])).str(0,"");var r=t.str(1,""),a=t.str(2,""),[t,s]=await this.accessControl(i,t.str(3,""));return this.wdb.options.acl.isRoot(i.options.cid)||await t.belongToAccount(s,r)?(s=(t=await t.db.ensureContact(i={contact:e,messenger:r,wallet:t,account:s})).ensureMessenger(i),i=x.ecdh(Buffer.from(t.publicKey,"hex"),Buffer.from(s.privateKey,"hex")),({aeskey:t,aesiv:s}=S.getAes(i.toString(),this.network)),{code:0,msg:{src:e,dst:r,content:Buffer.from(u.decrypt(t,s,a),"hex").toString()}}):{code:-1,msg:{src:e,dst:r,content:"Invald Account."}}}async calcHash(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"comm.hash content: 计算输入的哈希值");return t=new g([e]).str(0,""),b.hash256(Buffer.from(t)).toString("hex")}async commNotify(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"comm.notify addr content (openid): 发送点对点消息 地址 内容 (玩家账号)");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0,"");t=t.obj(1,{});return e.commNotify({dst:r,content:t,account:i})}async scanContact(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,'comm.scanContact "txid" ( index )');t=new g([e]);var[e,,]=await this.accessControl(i);i=t.hash(0),r(i,"Hash is required."),t=t.uint(1,-1);if(!i)throw new h(p.TYPE_ERROR,"Invalid parameter");if(e=await e.getTX(i))return this.wdb.scanContact(e.tx,t);throw new h(p.WALLET_ERROR,"TX not found.")}async listContact(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.listContact: 列表联系人");return t=new g([e]).array(0,[]),this.wdb.listContact(t,null,["address"])}async listNotify(e,t,i){if(t)throw new h(p.MISC_ERROR,"comm.listNotify (query): 通知列表 (查询条件,使用 account 参数可分账号查询)");return t=new g([e]).array(0,[]),this.wdb.listNotify(t)}async getReceivedByAccount(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,'account.received "account" ( minconf )');t=new g([e]);var r,a,[e,i]=await this.accessControl(i,t.str(0,"")),s=t.u32(1,0),n=this.wdb.curHeight,o=(t=await e.getPaths(i),new Set);for(r of t)o.add(r.hash);let d=0,l=-1;for(a of await e.getHistory(i)){var c=a.getDepth(n);if(!(c<s))for(var u of((-1===l||c<l)&&(l=c),a.tx.outputs)){var f=u.getHash("hex");f&&o.has(f)&&(d+=u.value)}}return w.btc(d,!0)}async getReceivedByAddress(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,'address.received "address" ( minconf )');t=new g([e]);var r,[e,,]=await this.accessControl(i),a=(i=t.str(0,""),t.u32(1,0)),s=this.wdb.curHeight,n=o.parseHash(i,this.network);let d=0;for(r of await e.getHistory())if(!(r.getDepth(s)<a))for(var l of r.tx.outputs)l.getHash("hex")===n&&(d+=l.value);return w.btc(d,!0)}async _toWalletTX(e,t){var i,[e,,]=await this.accessControl(e),r=await e.toDetails(t);if(!r)throw new h(p.WALLET_ERROR,"TX not found.");let a=!0;for(i of r.inputs)if(i.path){a=!1;break}var s=[];let n=0,o=0;for(let e=0;e<r.outputs.length;e++){var d=r.outputs[e];d.path?1!==d.path.branch&&(s.push({account:d.path.name,address:d.address.toString(this.network),category:"receive",amount:w.btc(d.value,!0),label:d.path.name,vout:e}),o+=d.value):a||(s.push({account:"",address:d.address?d.address.toString(this.network):null,category:"send",amount:-w.btc(d.value,!0),fee:-w.btc(r.getFee(),!0),vout:e}),n+=d.value)}return{amount:w.btc(a?o:-n,!0),confirmations:r.confirmations,blockhash:r.block?u.revHex(r.block):null,blockindex:r.index,blocktime:r.time,txid:u.revHex(r.hash),walletconflicts:[],time:r.mtime,timereceived:r.mtime,"bip125-replaceable":"no",details:s,hex:r.tx.toRaw().toString("hex")}}async getTransaction(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,'tx.get.wallet "txid" ( includeWatchonly )');t=new g([e]);var[e,,]=await this.accessControl(i),a=t.hash(0);r(a,"Hash is required."),t=t.bool(1,!1);if(!a)throw new h(p.TYPE_ERROR,"Invalid parameter");if(e=await e.getTX(a))return this._toWalletTX(i,e,t);throw new h(p.WALLET_ERROR,"TX not found.")}async abandonPending(e,t,i){if(t)throw new h(p.MISC_ERROR,"tx.abandonall.admin [account]: 废弃所有挂起的交易");t=new g([e]);var r,[a,e]=await this.accessControl(i,t.str(0,""));for(r of await a.getPending(e))try{await a.abandon(r.hash)}catch(e){this.logger.warning(e.message)}return null}async abandonTransaction(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,'tx.abandon.admin "txid"');t=new g([e]);var[e,,]=await this.accessControl(i);if(!(i=t.hash(0)))throw new h(p.TYPE_ERROR,"Invalid parameter.");if(await e.abandon(i))return null;throw new h(p.WALLET_ERROR,"Transaction not in wallet.")}async getUnconfirmedBalance(e,t,i){if(t||1<e.length)throw new h(p.MISC_ERROR,"balance.unconfirmed");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));t=await e.getBalance(i);return w.btc(t.unconfirmed,!0)}async importPrivKey(e,t,i){if(t||e.length<1||4<e.length)throw new h(p.MISC_ERROR,'key.import.private account "privatekey" passphrase [rescan]');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,"")),r=t.str(1),a=t.str(2);t=t.bool(3,!1);return(r=o.parseSecret(r,this.network)).witness=!0,await e.importKey(i,r,a),t&&await this.wdb.rescan(0),!0}async walletAuth(e,t,i){return!0}async importWallet(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,'wallet.import "filename" ( rescan password )');e=(t=new g([e])).str(0);var r,a=t.bool(1,!1),s=t.str(2,null);for(r of e.split(",").map(e=>e.trim()))r&&await this.wdb.loadBackup(r,s);return a&&await this.wdb.rescan(0),!0}async importAddress(e,t,i){if(t||e.length<1||4<e.length)throw new h(p.MISC_ERROR,"address.import account address [rescan p2sh]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));let r=t.str(1,"");var a=t.bool(2,!1);if(t.bool(3,!1)){let e=t.buf(0);if(!e)throw new h(p.TYPE_ERROR,"Invalid parameters.");e=v.fromRaw(e),e=v.createScript(e.hash160(),v.types.SCRIPTHASH),r=_.fromScript(e)}else r=o.parseAddress(r,this.network);return await e.importAddress(i,r),a&&await this.wdb.rescan(0),!0}async importPubkey(e,t,i){if(t||e.length<1||4<e.length)throw new h(p.MISC_ERROR,"key.import.public account pubkey [rescan]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,"")),r=t.buf(1);t=t.bool(2,!1);if(r)return r=E.fromPublic(r,this.network),await e.importKey(i,r),t&&await this.wdb.rescan(0),!0;throw new h(p.TYPE_ERROR,"Invalid parameter.")}async listAccounts(e,t,i){if(t||2<e.length)throw new h(p.MISC_ERROR,"account.list ( minconf includeWatchonly)");t=new g([e]);var r,[a]=await this.accessControl(i),s=t.u32(0,0),n=t.bool(1,!1),o={};for(r of await a.getAccounts()){var d=await a.getBalance(r);let e=d.unconfirmed;0<s&&(e=d.confirmed),a.watchOnly!==n&&(e=0),o[r]=w.btc(e,!0)}return o}async mapAccounts(e,t,i){if(t||2<e.length)throw new h(p.MISC_ERROR,"account.list ( minconf includeWatchonly)");t=new g([e]);var[e]=await this.accessControl(i);return t.u32(0,0),t.bool(1,!1),e.getAccountMap()}async listConservedUnspent(e,t,i){if(t||0<e.length)throw new h(p.MISC_ERROR,"coin.conserved.list: 查询已经保持的Unspent列表");var r,[t]=await this.accessControl(i),a=[];for(r of t.getConserved())a.push({txid:r.txid(),vout:r.index});return a}async accountVirtualAdd(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"account.virtualadd.admin account amount: 虚增账户余额 账户名称 金额");t=new g([e]);var[e]=await this.accessControl(i,t.str(2,""));i=t.str(0),t=t.u64(1),i=await e.ensureIndex(i);return e.txdb.addAccountAmount(i,t),!0}async accountCheckAmount(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"account.checkamount account: 验证账户余额 账户名称");t=new g([e]);var[e]=await this.accessControl(i,t.str(2,""));i=t.str(0),t=await e.ensureIndex(i);return e.txdb.checkAccountAmount(t),!0}async listReceivedByAccount(e,t,i){if(t||3<e.length)throw new h(p.MISC_ERROR,"account.listreceived ( minconf includeempty includeWatchonly )");e=(t=new g([e])).u32(0,0);var r=t.bool(1,!1);t=t.bool(2,!1);return this._listReceived(i,e,r,t,!0)}async listReceivedByAddress(e,t,i){if(t||3<e.length)throw new h(p.MISC_ERROR,"address.received.list ( minconf includeempty includeWatchonly )");e=(t=new g([e])).u32(0,0);var r=t.bool(1,!1);t=t.bool(2,!1);return this._listReceived(i,e,r,t,!1)}async _listReceived(e,t,i,r,a){var s,n,o,[p]=await this.accessControl(e),d=(e=await p.getPaths(),this.wdb.curHeight);let h=new Map;for(s of e){var l=s.toAddress();h.set(s.hash,{involvesWatchonly:p.watchOnly,address:l.toString(this.network),account:s.name,amount:0,confirmations:-1,label:""})}for(n of await p.getHistory()){var c=n.getDepth(d);if(!(c<t))for(var u of n.tx.outputs){var f,m=u.getAddress();m&&(f=m.getHash("hex"),f=h.get(f))&&((-1===f.confirmations||c<f.confirmations)&&(f.confirmations=c),f.address=m.toString(this.network),f.amount+=u.value)}}let g=[];for(o of h.values())g.push(o);if(a){let e=new Map;for(var v of g){var y=e.get(v.account);y?y.amount+=v.amount:(e.set(v.account,v),v.address=void 0)}for(var b of(g=[],e.values()))g.push(b)}var x,S=[];for(x of g)if(i||0!==x.amount){-1===x.confirmations&&(x.confirmations=0);try{x.amount=w.btc(x.amount,!0),S.push(x)}catch(e){this.logger.error("invalid amount:entry(%s) msg(%s)",JSON.stringify(x),e.message)}}return S}async listSinceBlock(e,t,i){if(t)throw new h(p.MISC_ERROR,'tx.history.since ( "blockhash" target-confirmations includeWatchonly account)');var r=this.wdb.curHeight,[e,a]=(t=new g([e]),await this.accessControl(i,t.str(3,""))),s=t.hash(0),n=t.u32(1,0);t=t.bool(2,!1);if(e.watchOnly!==t)return[];let o=-1;-1===(o=s&&(t=await this.client.getEntry(s))?t.height:o)&&(o=r);var d,l,c=[];let f;for(d of await e.getHistory(a))d.height<o||d.getDepth(r)<n||((!f||d.height>f)&&(f=d),l=await this._toListTX(i,d),c.push(l));return{transactions:c,lastblock:f&&f.block?u.revHex(f.block):m.NULL_HASH}}async _toListTX(e,t){var[e]=await this.accessControl(e),i=await e.toDetails(t);if(!i)throw new h(p.WALLET_ERROR,"TX not found.");let a=!0;for(let e of i.inputs)if(e.path){a=!1;break}let s,n,o,d,l,c,f=0,m=0;for(let e=0;e<i.outputs.length;e++){let t=i.outputs[e];t.path?1!==t.path.branch&&(m+=t.value,n=t,d=e):(f+=t.value,s=t,o=e)}return c=a?(l=n,d):(l=s,o),l||(r(!a),a=!0,l=n,c=d),{account:l.path?l.path.name:"",address:l.address?l.address.toString(this.network):null,category:a?"receive":"send",amount:w.btc(a?m:-f,!0),label:l.path?l.path.name:void 0,vout:c,confirmations:i.getDepth(),blockhash:i.block?u.revHex(i.block):null,blockindex:i.index,blocktime:i.time,txid:u.revHex(i.hash),walletconflicts:[],time:i.mtime,timereceived:i.mtime,"bip125-replaceable":"no"}}async listTransactions(e,t,i){if(t||4<e.length)throw new h(p.MISC_ERROR,'tx.list ( "account" count from includeWatchonly)');t=new g([e]);var[e,r]=await this.accessControl(i,t.str(0,"")),s=t.u32(1,10),n=t.u32(2,0);t=t.bool(3,!1);if(e.watchOnly!==t)return[];var o=await e.getHistory(r),d=(t=(a.sortTX(o),n+s),Math.min(t,o.length)),l=[];for(let e=n;e<d;e++){var c=o[e];c=await this._toListTX(i,c);l.push(c)}return l}async selectone(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"coin.selectone options (account)");t=new g([e]);var r,[a,e]=await this.accessControl(i,t.str(1,"")),s=t.obj(0,{}),n=[];for(r of await a.getCoins(e)){var o=r.getDepth(this.wdb.curHeight),d=r.getAddress();if(d){var l=r.getHash("hex");if(l&&!r.isColored&&!(s.value&&r.value<s.value||r.coinbase&&0<r.height&&this.wdb.curHeight<r.height+y.COINBASE_MATURITY)&&(l=await a.getKey(l),n.push({txid:r.txid(),vout:r.index,address:d?d.toString(this.network):null,account:l?l.name:void 0,redeemScript:l&&l.script?l.script.toJSON():void 0,scriptPubKey:r.script.toJSON(),amount:w.btc(r.value,!0),confirmations:o,spendable:!a.isConserved(r),solvable:!0}),s.len&&n.length>=s.len))break}}return n}async listUnspent(e,t,i){if(t||4<e.length)throw new h(p.MISC_ERROR,'coin.list ( minconf maxconf ["address", account] )');let r=new g([e]);var[s,t]=await this.accessControl(i,r.str(3,"")),n=r.u32(0,1),d=r.u32(1,9999999),l=r.array(2),c=this.wdb.curHeight,u=new Set;if(l&&0<l.length){let e=new g([l]);for(let t=0;t<l.length;t++){var f=e.str(t,"");f=o.parseHash(f,this.network);if(u.has(f))throw new h(p.INVALID_PARAMETER,"Duplicate address.");u.add(f)}}e=await s.getCoins(t);var m,v,y,b,x=(a.sortCoins(e),[]);for(m of e)m.isColored||(v=m.getDepth(c))<n||d<v||((y=m.getAddress())?(b=m.getHash("hex"),l&&0<l.length&&(!b||!u.has(b))||(b=await s.getKey(b),x.push({txid:m.txid(),vout:m.index,address:y?y.toString(this.network):null,account:b?b.name:void 0,redeemScript:b&&b.script?b.script.toJSON():void 0,scriptPubKey:m.script.toJSON(),amount:w.btc(m.value,!0),confirmations:v,spendable:!s.isConserved(m),solvable:!0}))):this.logger.error("mistaken coin: miss address",m.hash,m.index));return x}async checkUnspent(e,t,r){if(t)throw new h(p.MISC_ERROR,"coin.check (account)");t=new g([e]);let[a,s]=await this.accessControl(r,t.str(0,""));var n,o=[];if(this.wdb.$parent){let t=0,r=0,p=null;try{null!=s?(n=await a.ensureIndex(s),p=await a.txdb.getAccountOutpoints(n),Array.isArray(p)&&(p=p.filter(e=>null!==e)),r=p?p.length:0):this.logger.info("Starting global UTXO check, processing in batches of %d",1e3),0<r&&this.logger.info("Found %d UTXOs to check, processing in batches of %d",r,1e3)}catch(e){this.logger.warning("Failed to get total UTXO count: %s",e.message)}if(null!=s&&p){let i=0;for(;i<p.length;)try{var d,l,c,u=p.slice(i,i+1e3),f=[];for(d of u){var w=await a.txdb.getCredit(d.hash,d.index);w&&!w.spent&&f.push(w.coin)}for(l of f)try{await this.wdb.$parent.getCoin(l.hash,l.index)||o.push(l.txid(),l.index)}catch(e){this.logger.warning("Error checking UTXO %s/%d: %s",l.hash,l.index,e.message)}(t+=f.length)%1e3==0&&(0<r?(c=Math.round(t/r*100),this.logger.info("UTXO check progress: %d/%d (%d%%)",t,r,c)):this.logger.info("UTXO check progress: %d processed",t)),i+=1e3}catch(e){this.logger.error("Error processing UTXO batch: %s",e.message),i+=1e3}}else{let r=!0,s=null;for(;r;)try{let n=[],p=i(62).txdb,d=0,h=null;for(var v of(await a.txdb.range({gte:s||p.c(m.NULL_HASH,0),lte:p.c(m.HIGH_HASH,4294967295),parse:(e,t)=>{if(1e3<=d)return!1;h=e;var[e,i]=p.cc(e),r=(t=C.fromRaw(t),A.toKey(e,i));return t.coin.hash=e,t.coin.index=i,a.txdb.coinCache.set(r,t),t.spent||(n.push(t.coin),d++),!0}}),s=h,n))try{await this.wdb.$parent.getCoin(v.hash,v.index)||o.push({hash:v.txid(),index:v.index})}catch(e){this.logger.warning("Error checking UTXO %s/%d: %s",v.hash,v.index,e.message)}(t+=n.length)%1e3==0&&this.logger.info("UTXO check progress: %d processed",t),r=1e3===n.length}catch(e){this.logger.error("Error processing UTXO batch: %s",e.message),r=!0}}this.logger.info("UTXO check completed: processed %d UTXOs, found %d issues",t,o.length)}return o}async listProp(e,t,i){if(t||4<e.length)throw new h(p.MISC_ERROR,"prop.wallet.byaddress ( minconf maxconf [address, account] )");let r=new g([e]);var[s,t]=await this.accessControl(i,r.str(3,"")),n=r.u32(0,1),d=r.u32(1,9999999),l=r.array(2),c=this.wdb.curHeight,u=new Set;if(l){let e=new g([l]);for(let t=0;t<l.length;t++){var f=e.str(t,"");f=o.parseHash(f,this.network);if(u.has(f))throw new h(p.INVALID_PARAMETER,"Duplicate address.");u.add(f)}}e=await s.getCoins(t);var m,v=(a.sortCoins(e),[]);for(m of e){var y,b,x,S=m.getDepth(c);S<n||d<S||(y=m.getAddress())&&(b=m.getHash("hex"),!l||b&&u.has(b))&&(b=await s.getKey(b),x=m.getReturnData([U.OP_PROPCREATE,U.OP_PROPCREATE]))&&v.push({txid:m.txid(),vout:m.index,address:y?y.toString(this.network):null,account:b?b.name:void 0,amount:w.btc(m.value,!0),confirmations:S,spendable:!s.isConserved(m),solvable:!0,nd:x})}return v}async listPropByOid(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"prop.wallet.byoid oid");t=new g([e]);var r,[s,e]=await this.accessControl(i,t.str(1,"")),n=t.str(0),o=this.wdb.curHeight,d=(i=await s.getCoins(e),a.sortCoins(i),[]);for(r of i){var l,c,u,f=r.getDepth(o);f<0||9999999<f||(l=r.getAddress())&&(c=r.getHash("hex"),c=await s.getKey(c),u=r.getReturnData([U.OP_PROPCREATE,U.OP_PROPEXCHANGE]))&&u.oid==n&&d.push({txid:r.txid(),vout:r.index,address:l?l.toString(this.network):null,account:c?c.name:void 0,amount:w.btc(r.value,!0),confirmations:f,spendable:!s.isConserved(r),solvable:!0,nd:u})}return{list:d,count:d.length}}async listLockedUnspent(e,t,i){if(t||2<e.length)throw new h(p.MISC_ERROR,'coin.list.locked ["address", account]');let r=new g([e]);var[s,t]=await this.accessControl(i,r.str(1,"")),n=r.array(0),d=this.wdb.curHeight,l=u.now(),c=new Set;if(n){let e=new g([n]);for(let t=0;t<n.length;t++){var f=e.str(t,"");f=o.parseHash(f,this.network);if(c.has(f))throw new h(p.INVALID_PARAMETER,"Duplicate address.");c.add(f)}}let m;m=account?await s.getCoins(t):s.getLockedCoins(),a.sortCoins(m);var v,y,b,x,S,_,E,k=[];for(v of m)(v.lockedByLocktime(d,l)||v.lockedBySequence(d,l))&&(y=v.getAddress())&&(b=v.getDepth(d),E=v.getHash("hex"),!n||E&&c.has(E))&&([x,S,_]=v.getLockStatus(),E=await s.getKey(E),k.push({txid:v.txid(),vout:v.index,address:y?y.toString(this.network):null,account:E?E.name:void 0,redeemScript:E&&E.script?E.script.toJSON():void 0,scriptPubKey:v.script.toJSON(),amount:w.btc(v.value,!0),confirmations:b,spendable:!1,solvable:!0,locktype:x,lockheight:S,locktime:_}));return k}async listOperUnspent(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,'coin.conserved.oper.list unlock ([{"txid":"txid","vout":n},...]) 保持/解除保持一组UTXO: true/false [{"txid": "交易id","vout": "输出序号"}]');let r=new g([e]);var a,[s]=await this.accessControl(i),n=r.bool(0,!1);if(!(t=r.array(1)))throw new h(p.TYPE_ERROR,"Invalid parameter.");for(a of t){let e=new g([a]);var o=e.hash("txid"),d=e.u32("vout");if(null==o||null==d)throw new h(p.INVALID_PARAMETER,"Invalid parameter.");o=new A(o,d),n?s.unConserveCoin(o):s.conserveCoin(o)}return!0}async setTXFee(e,t,i){if(t||e.length<1||1<e.length)throw new h(p.MISC_ERROR,"sys.setfee rate");if(null==(t=new g([e]).ufixed(0,8)))throw new h(p.TYPE_ERROR,"Invalid parameter.");return this.wdb.feeRate=t,!0}async signMessage(e,t,i){if(t||2!==e.length)throw new h(p.MISC_ERROR,'sys.message.sign "address" "message"');t=new g([e]);var[e]=await this.accessControl(i);if(!e.master.key)throw new h(p.WALLET_UNLOCK_NEEDED,"Wallet is locked.");i=t.str(0,""),i=o.parseHash(i,this.network);if(e=await e.getKey(i))return i=t.str(1,""),e.sign(b.hash256(Buffer.from(d+i,"utf8"))).toString("base64");throw new h(p.WALLET_ERROR,"Address not found.")}async changePassphrase(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,'wallet.changepassphrase "oldpassphrase" "newpassphrase"');t=new g([e]);var[e]=await this.accessControl(i);i=t.str(0,""),t=t.str(1,"");if(!e.master.encrypted)throw new h(p.WALLET_WRONG_ENC_STATE,"Wallet is not encrypted.");if(i.length<1||t.length<1)throw new h(p.INVALID_PARAMETER,"Invalid parameter");return await e.setPassphrase(i,t),null}async unlock(e,t,i){var r=new g([e]),[i]=await this.accessControl(i),a=r.str(0);r=r.u32(1,60);if(t||i.master.encrypted&&0==e.length)throw new h(p.MISC_ERROR,'wallet.unlock "passphrase" timeout');if(!i.master.encrypted)throw new h(p.WALLET_WRONG_ENC_STATE,"Wallet is not encrypted.");if(a.length<1)throw new h(p.INVALID_PARAMETER,"Invalid parameter");if(null==r)throw new h(p.TYPE_ERROR,"Invalid parameter");return await i.unlock(a,r),null}async decryptWallet(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,'wallet.decrypt "passphrase"');t=new g([e]);var[e]=await this.accessControl(i);i=t.str(0,"");if(!e.master.encrypted)throw new h(p.WALLET_WRONG_ENC_STATE,"Running with an decrypted wallet.");if(i.length<1)throw new h(p.MISC_ERROR,'wallet.decrypt "passphrase"');try{await e.setPassphrase(i)}catch(e){throw new h(p.WALLET_ENCRYPTION_FAILED,"Decryption failed.")}return"wallet decrypted"}async importPrunedFunds(e,t,i){if(t||e.length<2||3<e.length)throw new h(p.MISC_ERROR,'tx.importprunedfunds.admin "rawtransaction" "txoutproof" ( "label" )');if(e=(t=new g([e])).buf(0),t=t.buf(1),!e||!t)throw new h(p.TYPE_ERROR,"Invalid parameter.");e=I.fromRaw(e);var r=(t=k.fromRaw(t)).hash("hex");if(!t.verify())throw new h(p.VERIFY_ERROR,"Invalid proof.");if(!t.hasTX(e.hash("hex")))throw new h(p.VERIFY_ERROR,"Invalid proof.");var a=await this.client.getEntry(r);if(-1===a)throw new h(p.VERIFY_ERROR,"Invalid proof.");if(r={hash:r,time:t.time,mtp:t.mtp,height:a},await this.wdb.addTX(e,r))return null;throw new h(p.WALLET_ERROR,"No tracked address for TX.")}async removePrunedFunds(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,'tx.removeprunedfunds.admin "txid"');t=new g([e]);var[e]=await this.accessControl(i);if(!(i=t.hash(0)))throw new h(p.TYPE_ERROR,"Invalid parameter.");if(await e.remove(i))return null;throw new h(p.WALLET_ERROR,"Transaction not in wallet.")}async getWallets(e,t,i){return this.wdb.getWallets()}async getWalletBlock(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"wallet.block height");t=new g([e]);var[e]=await this.accessControl(i);i=t.uint(0);return(t=await e.getBlock(i))?t.toJSON():null}async getWalletLayoutH(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"wallet.layouth height");return t=new g([e]).uint(0),(e=await this.wdb.getBlock(t))?e.toJSON():null}async getWalletInfo(e,t,i){if(t)throw new h(p.MISC_ERROR,"wallet.info");return((t=new g([e]).str(0,""))?await this.wdb.get(t):(await this.accessControl(i))[0]).toJSON(!1)}async scRegister(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"sc.register options (account): 发布合约 合约参数列表 (子账户)");t=new g([e]);var[r,a]=await this.accessControl(i,t.str(1,""));let s=t.obj(0);if(!s)throw new h(p.MISC_ERROR,"sc.register: options is null");let n=1e5;switch(s.oper){case"change":if(s.oper=T.scState,!s.dst||!s.state)throw new h(p.TYPE_ERROR,"sc.register: dst or state is null.");if(!this.wdb.$parent)throw new h(p.TYPE_ERROR,"sc.register: not support this operation.");var o=await this.wdb.$parent.chain.db.getSCList([["options.dst",s.dst]]);if(!o||0==o.list.length)throw new h(p.TYPE_ERROR,"sc.register: contract not exist.");switch(o.list[0].options.state){case P.Normal:if(s.state!=P.Frozen&&s.state!=P.Destroy)throw new h(p.TYPE_ERROR,"Contract State Error");break;case P.Frozen:if(s.state!=P.Normal&&s.state!=P.Destroy)throw new h(p.TYPE_ERROR,"Contract State Error");break;default:throw new h(p.TYPE_ERROR,"Contract State Error")}if(s.addr=o.list[0].options.addr,await r.belongToAccount(a,s.addr))break;throw new h(p.MISC_ERROR,"sc.register: Invald Account.");case"update":if(s.oper=T.scUpdate,!s.dst)throw new h(p.TYPE_ERROR,"sc.register: dst is null.");if(!this.wdb.$parent)throw new h(p.TYPE_ERROR,"sc.register: not support this operation.");if(!(o=await this.wdb.$parent.chain.db.getSCList([["options.dst",s.dst]]))||0==o.list.length)throw new h(p.TYPE_ERROR,"sc.register: contract not exist.");if(o.list[0].options.state!=P.Normal)throw new h(p.TYPE_ERROR,"sc.register: contract state error.");if(s.addr=o.list[0].options.addr,await r.belongToAccount(a,s.addr))break;throw new h(p.MISC_ERROR,"sc.register: Invald Account.");default:if(n=1e8,s.oper=T.scRegister,s.addr=(await r.createReceive(a)).getAddress("string"),s.dst=r.getSCAddress(u.hashInt(s.addr)).toString(),this.wdb.$parent&&(o=await this.wdb.$parent.chain.db.getSCList([["options.dst",s.dst]]))&&0<o.list.length)throw new h(p.TYPE_ERROR,"sc.register: contract address conflict.")}return(e=(await r.getPrivateKey(s.addr)).signData(s)).data.sig=e.sig,s=e.data,i=await r.send({subtractFee:!1,sort:!1,outputs:[{address:s.dst,value:n}],comment:JSON.stringify(s)},a),await this.wdb.logAudit({address:s.addr,oper:s.oper,hash:i.hash("hex"),index:0}),s.txid=i.rhash(),s}async scRun(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,'sc.run str options (account): 调用合约 逗分参数字符串("合约收款地址,转账金额") 参数对象 (子账户)');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0).split(","),a=(t=t.obj(1,{}),r.shift());if(!this.wdb.$parent)throw new h(p.TYPE_ERROR,"sc.run: not support this operation.");var s=await this.wdb.$parent.chain.db.getSCList([["options.dst",a]]);if(!s||0==s.list.length)throw new h(p.TYPE_ERROR,"sc.run: contract not exist.");if(1!=s.list[0].options.state)throw new h(p.TYPE_ERROR,`sc.run: contract execute disabled(state ${s.list[0].options.state}).`);if(t.ver&&t.ver!=s.list[0].options.ver)throw new h(p.TYPE_ERROR,"sc.run: contract version inconsistency.");return s=(0|parseInt(r.shift()))>>>0,o.parseAddress(a,this.network),r=await e.send({subtractFee:!1,sort:!1,outputs:[{address:a,value:s}],comment:JSON.stringify({oper:"scrun",params:t})},i),a=await e.getAccount(i),await this.wdb.logAudit({address:a.receive.getAddress("string"),oper:T.scRun,hash:r.hash("hex"),index:0}),(await e.getDetails(r.hash("hex"))).toJSON()}async cpRegister(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,'cp.create name "ip,addr,class,rate" (openid): 注册厂商 名称(不少于4个字符) "IP地址,注册地址,类别,媒体分成比例" (子账号)');return this.$cpRegister(e,i,!1)}async cpRegisterAsync(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,'cp.create.async name "ip,addr,class,rate" (openid): 注册厂商 名称(不少于4个字符) "IP地址,注册地址,类别,媒体分成比例" (子账号)');return this.$cpRegister(e,i,!0)}async $cpRegister(e,t,i){e=new g([e]);var r=decodeURIComponent(e.str(0)),a=(o=e.str(1,"").split(","))[0],s=o[1],n=o[2],o=o[3]?parseInt(o[3]):15,[t,e]=await this.accessControl(t,e.str(2,"")),d=f.verifyDataFormat({name:r,ip:a,grate:o,cls:n});if(d)throw new h(p.MISC_ERROR,d);return d={cid:V(),oper:T.cpRegister,name:r,ip:a,grate:o,cls:n},await t.cpRegister(u.isBech32(s)?s:null,d,e,i),d}async cpChange(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,'cp.change cid "newname,ip,addr,class,rate" "openid": 修改厂商信息 CP编号 "新的名称,IP,新的注册地址,类别,分成比例" 授权账号');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),a=t.str(0),s=(t=decodeURIComponent(t.str(1,"")).split(","))[0],n=t[1];let o=t[2];var d=t[3];t=parseInt(t[4])||null;if(l=f.verifyDataFormat({name:s,ip:n,grate:t,cls:d}))throw new h(p.MISC_ERROR,l);o&&(o=_.fromString(o),r(o instanceof _,"Not an address."));var l={cid:a,newName:s,ip:n,addr:o,grate:t,cls:d},[,,]=await e.cpChange(l,i);return l.addr=l.addr.toString(),l}async cpQuery(e,t,i){if(t)throw new h(p.MISC_ERROR,"cp.query (conditions account): 查询钱包中的厂商列表 (复合条件 子帐号)");t=new g([e]);var r,[a,s]=await this.accessControl(i,t.str(1,""));e=t.array(0,[]),i=a.db.cpList.query(e);for(r of i.list)r.owned=await a.belongToAccount(s,r.current.address);return i}async cpQueryRemote(e,t,i){if(t)throw new h(p.MISC_ERROR,"cp.query.remote conditions: 查询厂商列表 (复合条件)");t=new g([e]);var r,[a,s]=await this.accessControl(i,t.str(1,""));e=t.array(0,[]),i=await a.db.client.execute("cp.remoteQuery",[e]);for(r of i.list)r.owned=await a.belongToAccount(s,r.current.address);return i}async cpMine(e,t,i){if(t)throw new h(p.MISC_ERROR,"cp.mine (conditions account): 查询钱包中归属当前操作员/指定账户的厂商列表 (复合条件 子帐号)");t=new g([e]);let[r,a]=await this.accessControl(i,t.str(1,""));return(e=t.array(0,[])).push(["size",-1]),(await r.db.cpList.predict(async(e,t)=>r.belongToAccount(a,t.current.address))).query(e)}async htlcSuggest(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"htlc.suggest params [account]: 发起HTLC 参数对象({alice, bob, amount, rate}) [子账户]");e=(t=new g([e])).obj(0,{});var r,[i,t]=await this.accessControl(i,t.str(1,""));if(!e.ab)throw new h(p.MISC_ERROR,"htlc.suggest: params.ab(alice bchain address) is null");if(!Number.isInteger(e.amount))throw new h(p.MISC_ERROR,"htlc.suggest: illegal params.amount");if(e.amount=parseInt(e.amount),e.amount<0||e.amount>1e4*y.COIN)throw new h(p.MISC_ERROR,"htlc.suggest: illegal params.amount");if(e.rate=parseFloat(e.rate),e.rate<0||e.amount*e.rate>y.MAX_MONEY)throw new h(p.MISC_ERROR,"htlc.suggest: illegal params.rate");if(e.target)return r=(await i.createReceive(t)).getAddress().toString(this.network),e={amount:e.amount,rate:e.rate,dst:e.target,aa:_.fromString(r).hash,ab:_.fromString(e.ab).hash,ba:_.fromString(e.ba).hash},[i]=await i.sendContracts([e],t,O),i?{txid:i.rhash(),aa:r}:null;throw new h(p.MISC_ERROR,"htlc.suggest: params.target is null")}async htlcAssent(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"htlc.assent params({txid}) [account]: 响应HTLC 参数对象 [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));t=t.obj(0,{});if(!Number.isInteger(t.amount))throw new h(p.MISC_ERROR,"htlc.assent: illegal params.amount");if(t.amount=parseInt(t.amount),t.amount<0||t.amount>1e4*y.COIN)throw new h(p.MISC_ERROR,"htlc.assent: illegal params.amount");if(t.rate=parseFloat(t.rate),t.rate<0||t.amount*t.rate>y.MAX_MONEY)throw new h(p.MISC_ERROR,"htlc.assent: illegal params.rate");var r=(await e.createReceive(i)).getAddress().toString(this.network),[t]=(r={src:t.src,dst:t.dst,hash:t.hash,index:t.index,ab:Buffer.from(t.ab,"hex"),ba:Buffer.from(t.ba,"hex"),bb:_.fromString(r).hash,amount:t.amount*t.rate},await e.sendContracts([r],i,N));return t?{txid:t.rhash()}:null}async htlcSuggestDeal(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"htlc.suggest.deal params({txid,index,sa}) [account]: 兑付HTLC 参数对象 [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,"")),[e,,]=(t=t.obj(0),t={suggest:!0,hash:u.revHex(t.txid),index:t.index,sa:t.sa},await e.htlcDeal(t,i));return e?{txid:e.rhash()}:null}async htlcQuery(e,t,i){if(t)throw new h(p.MISC_ERROR,"htlc.query query: 条件查询HTLC合约 条件数组");return(t=new g([e]).array(0,[])).push(["pst","!=",L.Cancel]),this.wdb.htlcList.query(t)}async htlcAssentDeal(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"htlc.assent.deal params({txid,index,sa}) [account]: 兑付HTLC 参数对象 [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,"")),[e,,]=(t=t.obj(0),t={hash:u.revHex(t.txid),index:t.index,sa:t.sa},await e.htlcDeal(t,i));return e?{txid:e.rhash()}:null}async htlcAssentCancel(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"htlc.assent.cancel params({txid, index, master}) [account]: 取消HTLC应答 参数对象 [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,"")),[e,,]=(t=t.obj(0),t={hash:u.revHex(t.txid),index:t.index,master:t.bb},await e.htlcCancel(t,i));return e?{txid:e.rhash()}:null}async htlcSuggestCancel(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"htlc.suggest.cancel params({txid, index, sa, master}) [account]: 取消HTLC请求 参数对象 [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,"")),[e,,]=(t=t.obj(0),t={suggest:!0,hash:u.revHex(t.txid),index:t.index,sa:t.sa,master:t.aa},await e.htlcCancel(t,i));return e?{txid:e.rhash()}:null}async sendComment(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"comm.comment params [account]: 发起附言交易 参数对象({body, bob}) [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));t=t.obj(0,{});if(!Number.isInteger(t.amount))throw new h(p.MISC_ERROR,"comm.comment: illegal params.amount");if(t.amount=parseInt(t.amount),t.amount<0||t.amount>1e4*y.COIN)throw new h(p.MISC_ERROR,"comm.comment: illegal params.amount");var r={bob:t.bob,body:t.body,amount:t.amount};t.alice||(t.alice=e.getAddress(),i&&(a=await e.createReceive(i),t.alice=a.getAddress()));var a=(await e.getPrivateKey(t.alice)).signData(r),[t]=(a.data.sig=a.sig,await e.sendContracts([a.data],i,M));return t?{txid:t.rhash()}:null}async commentQuery(e,t,i){if(t)throw new h(p.MISC_ERROR,"comm.comment.query query: 条件查询附言输出 条件数组");return t=new g([e]).array(0,[]),this.wdb.commentList.query(t)}async contractExecute(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"contract.execute tid master: 执行交易对合约 交易编号 执行方(1-发起人,2-承兑人)");t=new g([e]);var[e]=await this.accessControl(i),[e,,]=(i=t.str(0),t=t.u32(1,2),await e.contractExecute(i,t));return e.toJSON()}async contractPromise(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"contract.promise tid [openid]: 签署交易对合约 交易编号(type.address) [子账号]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,"")),[e,,]=(t=t.str(0),await e.contractPromise(t,i));return e.toJSON()}async contractOfMine(e,t,i){if(t||e.length<1||3<e.length)throw new h(p.MISC_ERROR,"contract.mine type page [openid]: 获取已签署交易对合约列表 交易对类型 页码 [子账号]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.uint(0,1);t=t.uint(1,1);return e.db.getContracts(r,t,i)}async contractCreate(e,t,i){if(t||e.length<4||5<e.length)throw new h(p.MISC_ERROR,"contract.create type src dst addr [openid] : 发布一个交易对合约 交易对类型 出让游戏金数值 换取兑换币数值 兑换币收款地址 [子账号]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(4,"")),r=t.u64(0),a=t.u64(1),s=t.u64(2),[e,,]=(t=t.str(3),await e.contractCreate(r,a,s,t,i));return e.toJSON()}async propGet(e,t,i){if(t)throw new h(p.MISC_ERROR,"prop.wallet.byid pid: 查询自己的物品 PID");return t=new g([e]).str(0,""),e=[],(t=await this.wdb.propList.getVp(t))&&t.pst!=B.Delete&&e.push(t),e}async propQuery(e,t,i){if(t)throw new h(p.MISC_ERROR,"prop.query query: 条件查询自己的物品 条件数组");t=new g([e]);var[e]=await this.accessControl(i,t.str(1,""));return(i=t.array(0,[])).push(["pst","!=",B.Delete]),(await e.getPropList()).query(i)}async mySaleList(e,t,i){if(t)throw new h(p.MISC_ERROR,"prop.query.auction (page acct): 查询自己拍卖的物品 (页码 账户)");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));t=t.uint(0,1);return e.mySaleList(t,i)}async onSaleList(e,t,i){e=new g([e]);var[i,r]=await this.accessControl(i,e.str(1,""));e=e.uint(0,1);return i.onSaleList(e,r)}async propBuy(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"prop.buy pid price [openid] : 竞拍道具 道具编号 出价 [子账号]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0),[e,,]=(t=t.u64(1),await e.propBuy(r,t,i));return e.toJSON()}async propFound(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"prop.found pid (openid): 熔铸道具 道具编号 (账号)");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));t=t.str(0);if(!(t=await e.db.propList.getVp(t))||t.pst==B.Delete)throw new h(p.MISC_ERROR,"prop.found prop not exist");if(!await e.ownedAddress(t.current.address))throw new h(p.MISC_ERROR,"prop.found: current account not owned prop.");if(t.pst!=B.Ready)throw new h(p.MISC_ERROR,"prop.found prop can not be found on current status");var[e,,t]=await e.propFound(t.current.hash,t.current.index,i);if(e&&t)return{hash:e.hash("hex"),txid:e.rhash(),index:0,cid:t.cid,pid:t.pid,oid:t.oid,gold:e.outputs[0].value}}async propSale(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"prop.sale pid fixedPrice [openid]: 拍卖道具 道具编号 一口价 [子帐号]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0);if(!(r=await e.db.propList.getVp(r))||r.pst==B.Delete)throw new h(p.MISC_ERROR,"prop.sale prop not exist");if(r.pst!=B.Ready)throw new h(p.MISC_ERROR,"prop.sale prop cannt be sent on current status");t=t.u64(1,0);var[e,,]=await e.propSale(r.current.hash,r.current.index,t,i);return e.toJSON()}async propSendListAdmin(e,t,i){return this.propSendList(e,t,i,!0)}async propSendList(e,t,i,r=!1){if(t||e.length<1)throw new h(p.MISC_ERROR,"prop.sendlist (addr|txid|index)(n,) [openid]: 批量转移道具 道具数组(地址|交易ID|输出索引) [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,"")),a=[];if((t=t.str(0).split(","))&&Array.isArray(t))for(var s of t){var n,o;3<=(s=s.split("|")).length&&(n=s[0],o=new A(u.revHex(s[1]),parseInt(s[2])),4<=s.length?a.push([o,_.fromString(n),s[3]]):a.push([o,_.fromString(n)]))}var[t,,e]=await e.propExchangeList(a,i,r);if(t&&e){let i=t.hash("hex"),r=t.rhash();return e.map(e=>({hash:i,txid:r,cid:e.cid,pid:e.pid,oid:e.oid,gold:e.gold,addr:e.addr}))}}async propReceive(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"prop.receive tx [account]: 捐赠接收函数 捐赠交易字符串 [接收账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));if(!(t=t.buf(0)))throw new h(p.TYPE_ERROR,"Invalid TX Info.");t=I.fromRaw(t);var[e,,t]=await e.propReceive(t,i);if(e&&t)return{hash:e.hash("hex"),txid:e.rhash(),cid:t.cid,pid:t.pid,oid:t.oid,gold:t.gold,addr:t.simAddr,gaddr:t.gaddr}}async propDonate(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"prop.donate pid [openid]: 捐赠道具函数 道具ID [发起账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));t=t.str(0);if(!(t=await e.db.propList.getVp(t))||t.pst==B.Delete)throw new h(p.MISC_ERROR,"prop not exist");if(t.pst!=B.Ready)throw new h(p.MISC_ERROR,"prop cannt be sent on current status");t=new A(t.current.hash,t.current.index);var[e,,t]=await e.propDonate(t,i);if(e&&t)return{hash:e.hash("hex"),txid:e.rhash(),cid:t.cid,pid:t.pid,oid:t.oid,gold:t.gold,raw:e.toRaw().toString("hex")}}async propExchange(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"prop.send addr pid [openid]: 转移道具函数 接收地址 物品编号 [发起账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0);t=t.str(1);if(!(t=await e.db.propList.getVp(t))||t.pst==B.Delete)throw new h(p.MISC_ERROR,"prop.send prop not exist");if(t.pst!=B.Ready)throw new h(p.MISC_ERROR,"prop.send prop cannt be sent on current status");var[e,,t]=await e.propExchange(new A(t.current.hash,t.current.index),_.fromString(r),i);if(e&&t)return{hash:e.hash("hex"),txid:e.rhash(),cid:t.cid,pid:t.pid,oid:t.oid,gold:t.gold,addr:r}}async propCreateList(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"prop.createlist (cid|oid|gold|pid)(n,) [openid]: 批量创建道具 道具信息数组 [发起账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));let r=[];if((t=t.str(0).split(","))&&Array.isArray(t))for(var a of t)if(3<=(a=a.split("|")).length){var s=a[0],n=a[1],o=parseInt(a[2]);let e=null;4<=a.length&&(e=a[3]),o<y.MINPROPVALUE||r.push([s,n,o,e])}r=r.map(e=>{var[e,t,i,r]=e;return{oper:T.propCreate,cid:e,oid:t,gold:i,pid:r}});var[t,,]=await e.propCreate(r,i);return t?r:null}readImageAsBlob(e,t){l.readFile(e).then(i=>{var r=z.getType(H.basename(e));t(null,{hex:i.toString("hex"),type:r})}).catch(e=>{t(e,null)})}async inscriptionCreate(e,t,i){if(!(t||e.length<2)){t=new g([e]);var[e,r]=await this.accessControl(i,t.str(4,"")),a=t.str(0);let d=t.str(1);if((t=t.u64(2,y.MINPROPVALUE))<y.MINPROPVALUE)throw new h(p.PROP_MINVALUE,"inscription.create: not a valid value");if(0<=d.indexOf("file:")){let e=d.replace("file:","")||"docs/eth.jpg";d=await new Promise(t=>{this.readImageAsBlob(e,(e,i)=>{e?console.error("Error reading inscription:",e):t(i)})})}else{if(!(0<=d.indexOf("data:")))throw new h(p.MISC_ERROR,"inscription.create cid content gold (openid): 创建道具 厂商编码 素材(file:filename or data:{hex,type}) 含金量 [账户]");d=JSON.parse(d.replace("data:",""))}var s,n=await e.createReceive(r),o=b.sha256(Buffer.from(JSON.stringify(d))).toString("hex");if(o=await this.caIssuePublic([JSON.stringify({blob:d,hash:o,height:0}),n.getAddress("string"),"",r],null,i))return n={oper:T.propCreate,cid:a,gold:t,type:"inscription",oid:o.erid},[i,s]=await e.propCreate([n],r),i?n:null}throw new h(p.MISC_ERROR,"inscription.create cid content gold (openid): 创建道具 厂商编码 素材(file:filename or data:{hex,type}) 含金量 [账户]")}async propCreate(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"prop.create cid oid gold pid (openid): 创建道具 厂商编码 道具类别码 含金量 道具编码(可填空) [账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(4,"")),r=t.str(0),a=t.str(1),s=t.u64(2,y.MINPROPVALUE);t=t.str(3,null);if(s<y.MINPROPVALUE)throw new h(p.PROP_MINVALUE,"prop.create: not a valid value");r={oper:T.propCreate,cid:r,oid:a,gold:s,pid:t};var[a,,]=await e.propCreate([r],i);return a?r:null}async attach(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"tx.attach addr amount data (openid): 发送附言交易 地址 金额 附言结构 [账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(3,"")),r=t.str(0),a=t.u64(1),[a,,]=(r=((t=t.obj(2,{})).oper=T.attach,{address:r,value:a,data:t}),await e.attach([r],i));return a?r:null}async walletLock(e,t,i){if(t)throw new h(p.MISC_ERROR,"wallet.lock [passphrase]");var[t]=await this.accessControl(i);if(!t.master.encrypted){if((i=new g([e]).str(0,"")).length<1)throw new h(p.MISC_ERROR,"Wallet is not encrypted, please run wallet.lock passphrase");try{await t.setPassphrase(null,i)}catch(e){throw new h(p.WALLET_ENCRYPTION_FAILED,"Encryption failed.")}}return await t.lock(),null}async listMSTrans(e,t,i){if(t)throw new h(p.MISC_ERROR,"tx.mstrans");return t=new g([e]).str(0,""),this.wdb.listMSTrans(t)}async signMSTrans(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"tx.mstrans.sign txid");e=(t=new g([e])).str(0,"");var r=t.str(1,""),[i,t]=await this.accessControl(i,t.str(2,""));if(!(e=await this.wdb.db.get(s.ms(_.getHash(e,"hex"),r))))throw new h(p.MISC_ERROR,"tx.mstrans.sign txid");if(e=JSON.parse(e.toString()),!await i.belongToAccount(t,e.addr))throw new h(p.MISC_ERROR,"tx.mstrans.sign invalid account");var a,o=await this.wdb.get(e.addr);o&&o.account.type==n.types.MULTISIG&&((a=R.fromRaw(e.data,"hex")).view=await o.getCoinView(a),await o.sign(a),a.isSigned()?await o.sendMTX(a):await i.send({subtractFee:!1,sort:!1,outputs:[{address:e.contract,value:1e4}],comment:JSON.stringify({oper:"scrun",params:{oper:"sign",addr:e.addr,tx:a.toRaw().toString("hex")}})},t),await this.wdb.delMSTrans(e.addr,r))}async resendWalletTransactions(e,t,i){if(t||0!==e.length)throw new h(p.MISC_ERROR,"tx.resend.admin");var r,[t]=await this.accessControl(i),a=[];for(r of await t.resend())a.push(r.txid());return a}async resend(e,t,i){if(t||0!==e.length)throw new h(p.MISC_ERROR,"tx.resendall.admin: 重发挂起交易");var r=await this.wdb.resend();if(r)for(var a of Object.keys(r))if(a)for(var s of r[a])await this.wdb.send(s);return!0}async rescan(e,t,i){if(t)throw new h(p.MISC_ERROR,'wallet.rescan ( "height" )');return t=new g([e]).u32(0),await this.wdb.rescan(t),this.logger.info("Rescanning..."),!0}async createAddress(e,t,i){if(t||2<e.length)throw new h(p.MISC_ERROR,'address.create ( "account" "uid" )');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));t=t.u32(1,0);return(e=await e.createReceive(i,t))?e.toJSON():null}async calcAddress(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"address.calc account(must be typeof number) branch index");t=new g([e]);let[a,s]=await this.accessControl(i,t.int(0,0));return e=t.u32(1,0),i=t.u32(2,0),"default"==s&&(s=0),t=(await a.deriveKey(s,e,i,a.master)).toJSON(),i=(e=await a.deriveKey(s,e,i))?e.toJSON():null,r(t.address==i.address,"address derived from prv not equals which derived from pub."),i}async createAddressAdmin(e,t,i){if(t||1<e.length)throw new h(p.MISC_ERROR,'address.create.admin ( "account" )');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));return(t=await e.createReceive(i,0,e.master))?t.toJSON(!0):null}async createChange(e,t,i){if(t||1<e.length)throw new h(p.MISC_ERROR,'address.change.create ( "account" )');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));return(t=await e.createChange(i))?t.toJSON():null}async createNested(e,t,i){if(t||1<e.length)throw new h(p.MISC_ERROR,'address.nested.create ( "account" )');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));return(t=await e.createNested(i))?t.toJSON():null}async mkwallet(e,t,i){var r=(e=new g([e])).str(4);if(r)for(var a of await this.wdb.getWallets())if((await this.wdb.get(a)).master.mnemonic.getPhrase()===body.phrase)throw new h(p.MISC_ERROR,"wallet.create: 相同助记词已被使用");return(r=await this.wdb.ensure({id:V(),type:e.str(1),m:e.u32(2),n:e.u32(3),mnemonic:r,passphrase:e.str(5),master:e.str(6),witness:e.bool(7),watchOnly:e.bool(8),accountKey:e.str(9)}))?r.toJSON(!1):null}async accountGet(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"account.get account: 查询账户");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));return(t=await e.getAccount(i))?t.toJSON():null}async getPending(e,t,i){if(t)throw new h(p.MISC_ERROR,"tx.pending [account]: 查询挂起的交易");t=new g([e]);var r,[e,i]=await this.accessControl(i,t.str(0,"")),s=(t=await e.getPending(i),a.sortTX(t),[]);for(r of await e.toDetails(t))s.push(r.toJSON());return s}async getPendingItem(e,t,i){var r,a=(e=new g([e])).hash(0,""),[s,i]=await this.accessControl(i,e.str(1,""));for(r of await s.getPending(i))if(r.hash==a)return(r=await s.toDetails(r)).toJSON()}async getPendingHash(e,t,i){e=new g([e]);var r,[i,e]=await this.accessControl(i,e.str(0,"")),s=(e=await i.getPending(e),a.sortTX(e),[]);for(r of await i.toDetails(e))s.push(u.revHex(r.hash));return s}async getPendingCount(e,t,i){if(t)throw new h(p.MISC_ERROR,"tx.pending.count [account]: 查询挂起的交易数");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));t=await e.ensureIndex(i);return(await e.txdb.getPendingHashes(t)).length}async accountCreate(e,t,i){e=new g([e]);var r,[i]=await this.accessControl(i),a=e.obj(0);e=e.str(1),a={name:(a=new g([a])).str("name"),witness:a.bool("witness",!0),type:a.str("type","pubkeyhash"),m:a.u32("m",1),n:a.u32("n",1),watchOnly:a.bool("watch",!1),accountKey:a.str("key",null),lookahead:a.u32("lookahead",10)};try{let t=await i.getAccount(a.name);return t?t.toJSON():((r=(t=await i.createAccount(a,e)).toJSON()).isNew=!0,r)}catch(t){return null}}async getblocks(e,t,i){if(t)throw new h(p.MISC_ERROR,"wallet.blocks");var[t]=await this.accessControl(i);return await t.getBlocks()}async getKey(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,"key.export.public address: 查询地址的密钥");t=new g([e]);var[e]=await this.accessControl(i);i=t.str(0);return(t=(r(i,"Address is required."),await e.getKey(i)))?t.toJSON():null}async getPrivKey(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,"address.key.admin address: 查询地址的密钥");t=new g([e]);var[e,a]=await this.accessControl(i);t=t.str(0);if(r(t,"Address is required."),this.wdb.options.acl.isRoot(i.options.cid)||await e.belongToAccount(a,t))return(i=await e.getKey(t))?i.toJSON(!0):null;throw new h(p.MISC_ERROR,"Invald Account.")}async getwif(e,t,i){if(t||1!=e.length)throw new h(p.MISC_ERROR,"address.wif.admin address: 查询地址对应的私钥 地址");t=new g([e]);var[e]=await this.accessControl(i);i=t.str(0),t=t.str(1);return(e=(r(i,"Address is required."),await e.getPrivateKey(i,t)))?e.toSecret():null}async ownedAddress(e,t,i){if(t||1!=e.length)throw new h(p.MISC_ERROR,"address.has address: 查询钱包是否拥有一个地址 地址");t=new g([e]);var[e]=await this.accessControl(i);i=t.str(0);return r(i,"Address is required."),e.ownedAddress(i)}async getCoin(e,t,i){e=new g([e]);var[i]=await this.accessControl(i),a=e.hash(0);e=e.u32(1);return(i=(r(a,"Hash is required."),r(null!=e,"Index is required."),await i.getCoin(a,e)))?i.getJSON(this.network):null}async getSpender(e,t,i){e=new g([e]);var[i]=await this.accessControl(i),a=e.hash(0);e=e.u32(1);return(i=(r(a,"Hash is required."),r(null!=e,"Index is required."),await i.txdb.getSpender(a,e)))?{hash:u.revHex(i.hash),index:i.index}:null}async getSpent(e,t,i){e=new g([e]);var[i]=await this.accessControl(i),a=e.hash(0);e=e.u32(1),r(a,"Hash is required."),r(null!=e,"Index is required."),i=await i.txdb.getSpentCoin({hash:a,index:e});return{hash:u.revHex(i.hash),index:i.index,value:i.value,height:i.height,version:i.version,time:i.time}}async getCoincacheSize(e,t,i){var[i]=await this.accessControl(i);return i.txdb.coinCache.size}async conserveCoin(e,t,i){if(t||2!=e.length)throw new h(p.MISC_ERROR,"coin.conserved.add txhash index: 新增需要保持的硬币: 交易Hash 输出序号");t=new g([e]);var[e]=await this.accessControl(i);i=t.hash(0),t=t.u32(1),r(i,"Hash is required."),r(null!=t,"Index is required."),i=new A(i,t);return e.conserveCoin(i),!0}async getConservedCoins(e,t,i){if(t||0<e.length)throw new h(p.MISC_ERROR,"coin.conserved.get: 查询已经保持的Coin列表");var r,[t]=await this.accessControl(i),a=[];for(r of t.getConserved())a.push(r.toJSON());return a}async unConserveCoin(e,t,i){if(t||2!=e.length)throw new h(p.MISC_ERROR,"coin.conserved.del: 减少需要保持的硬币: 交易Hash 输出序号");t=new g([e]);var[e]=await this.accessControl(i);i=t.hash(0),t=t.u32(1),r(i,"Hash is required."),r(null!=t,"Index is required."),i=new A(i,t);return e.unConserveCoin(i),!0}async addShared(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"key.shared.add [account] key: 新增共享公钥 [账号] 公钥");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));t=t.str(1);return await e.addSharedKey(i,t),!0}async removeShared(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"key.shared.del [account] key: 删除共享公钥 [账号] 公钥");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));t=t.str(1);return await e.removeSharedKey(i,t),!0}async zap(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.zap [age]: 移除挂起交易 挂起时长(默认三天)");t=new g([e]);var[e]=await this.accessControl(i);i=t.str(0),t=t.u32(1,259200);return r(t,"Age is required."),await e.zap(i,t),!0}async sendOracle(e,t,i){if(!(t||e.length<3||4<e.length)){t=new g([e]);var[e,i]=await this.accessControl(i,t.str(3,"")),r=t.str(0,null),a=t.str(1,null);if(null==(t=t.u64(2)))throw new h(p.TYPE_ERROR,"Invalid parameter.");if(r&&a)return t={subtractFee:!1,selection:"age",sort:!1,outputs:[{address:(await e.createReceive(i)).getAddress("string"),value:t}],comment:JSON.stringify({oper:T.vote,type:"oracle",k:r,v:a})},r=await e.send(t,i),(await e.getDetails(r.hash("hex"))).toJSON()}throw new h(p.MISC_ERROR,"oracle.send k v amount [openid]")}async sendVote(e,t,i){if(t||e.length<2||3<e.length)throw new h(p.MISC_ERROR,"vote.send addresses amount [openid]");t=new g([e]);var r,[e,i]=await this.accessControl(i,t.str(2,"")),a=t.str(0);if(null==(t=t.u64(1)))throw new h(p.TYPE_ERROR,"Invalid parameter.");for(r of a.split(","))if(!o.parseAddress(r,this.network))throw new h(p.TYPE_ERROR,"Invalid address.");return t={subtractFee:!1,selection:"age",sort:!1,outputs:[{address:(await e.createReceive(i)).getAddress("string"),value:t}],comment:`{"oper": "${T.vote}", "type": "mine", "ca": "${a}"}`},a=await e.send(t,i),(await e.getDetails(a.hash("hex"))).toJSON()}async sendVoteAsync(e,t,i){if(t||e.length<2||3<e.length)throw new h(p.MISC_ERROR,"vote.send.async addresses amount [openid]");t=new g([e]);var r,[e,i]=await this.accessControl(i,t.str(2,"")),a=t.str(0);if(null==(t=t.u64(1)))throw new h(p.TYPE_ERROR,"Invalid parameter.");for(r of a.split(","))if(!o.parseAddress(r,this.network))throw new h(p.TYPE_ERROR,"Invalid address.");t={subtractFee:!1,selection:"age",sort:!1,outputs:[{address:(await e.createReceive(i)).getAddress("string"),value:t}],comment:`{"oper": "${T.vote}", "type": "mine", "ca": "${a}"}`},e.send(t,i)}async sendTX(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"tx.send addr amount [openid]:发送交易 地址 金额 [发起账户]");if(this.wdb.$parent&&this.wdb.$parent.config.abandon)throw new h(p.MISC_ERROR,"Alliance Cert Invalid.");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0);t=t.u64(1),r=await e.send({outputs:[{address:r,value:t}]},i);return(await e.getDetails(r.hash("hex"))).toJSON()}async sendTXAsync(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"tx.send.async addr amount [openid]:发送交易 地址 金额 [发起账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0);t=t.u64(1);e.send({outputs:[{address:r,value:t}]},i)}async signTX(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"tx.sign.admin txdata [sendnow passphrase]: 对交易签名/发送 交易原始数据 [立即发送 解锁密码]");t=new g([e]);var[e]=await this.accessControl(i),a=(i=t.buf(0),r(i,"TX is required."),t.bool(1,!1));t=t.str(2);(i=R.fromRaw(i)).view=await e.getCoinView(i),await e.sign(i,t);let s=null;return s=(a&&i.isSigned()?await e.sendMTX(i):i).getJSON(this.network),e.account.type==n.types.MULTISIG&&(t=i.getMultisig(this.network),s.ms={m:t.m,n:t.n,c:t.c}),s}async createTX(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"tx.create options outputs [openid]: 创建交易 参数对象 输出数组 [子账号]");if(this.wdb.$parent&&this.wdb.$parent.config.abandon)throw new h(p.MISC_ERROR,"Alliance Cert Invalid.");t=new g([e]);var[r,e]=await this.accessControl(i,t.str(2,""));i=t.obj(0),t=t.array(1);if(Array.isArray(i.in))for(var a of i.in)a.hash=u.revHex(a.hash);var s,o={comment:(i=new g([i])).obj("comment",null),sendnow:i.bool("sendnow",!0),account:i.str("account"),rate:i.u64("rate"),blocks:i.u32("blocks"),maxFee:i.u64("maxFee"),selection:i.str("selection"),smart:i.bool("smart"),subtractFee:i.bool("subtractFee"),subtractIndex:i.get("subtractIndex"),depth:i.u32(["confirmations","depth"]),inputs:i.array("in",null),outputs:[]};for(s of t){var d=new g([s]),l={value:d.u64("value")};if(l.address=d.str("address"),!l.address){var c=d.str("account");if(c){await r.ensureAccount({name:c,witness:!0});var f=await r.createReceive(c);if(!f)throw new h(p.MISC_ERROR,`tx.create: account ${c} not exist`);l.address=f.getAddress("string")}}if((c=d.buf("script"))&&(l.script=v.fromRaw(c)),(f=d.str("locktype"))&&(d=d.u64("locktime",0))){if("no"!=f&&"clb"!=f&&"clt"!=f&&"csb"!=f&&"cst"!=f)throw new h(p.MISC_ERROR,'locktype should be "no"-不锁定 or "clb"-绝对高度锁定 or clt(绝对时间锁定) or "csb"-相对高度锁定 or "cst"-相对时间锁定 !');if(f==v.outputLockType.CHECKABSOLUTETIME&&d<=y.LOCKTIME_THRESHOLD)throw new h(p.MISC_ERROR,"lock absolute time should not less than 500000000!");if(f==v.outputLockType.CHECKABSOLUTEBLOCK&&d>y.LOCKTIME_THRESHOLD)throw new h(p.MISC_ERROR,"lock absolute block should not more than 500000000!");if((f==v.outputLockType.CHECKRELATIVEBLOCK||f==v.outputLockType.CHECKRELATIVETIME)&&65535<d)throw new h(p.MISC_ERROR,"lock relative block/time should not more than 65535!");l.locktype=f,l.locktime=d}o.outputs.push(l)}e&&(o.account=e);let m=null;return o.sendnow?(i=await r.send(o),m=(t=await r.getDetails(i.hash("hex"))).toJSON()):(e=await r.createTX(o),await r.sign(e),m=e.getJSON(this.network),r.account.type==n.types.MULTISIG&&(i=e.getMultisig(this.network),m.ms={m:i.m,n:i.n,c:i.c})),m}async getLast(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"tx.last account [limit]: 最近的交易 账号 [最大记录数]");t=new g([e]);var r,[e,i]=await this.accessControl(i,t.str(0)),a=(t=t.u32(1),[]);i=await e.getLast(i,t);for(r of await e.toDetails(i))a.push(r.toJSON());return a}async getRange(e,t,i){if(t||e.length<4)throw new h(p.MISC_ERROR,"tx.range account start end limit [reserve]: 指定时限内的交易 账号 开始时间 结束时间 最大记录数 [反转]");t=new g([e]);var r,[e,i]=await this.accessControl(i,t.str(0,"")),a=(t={start:t.u32(1),end:t.u32(2),limit:t.u32(3),reverse:t.bool(4)},i=await e.getRange(i,t),[]);for(r of await e.toDetails(i))a.push(r.toJSON());return a}async caUserStatus(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"ca.user.status cid uid (query)");e=(t=new g([e])).str(0,"");var r=t.uint(1,0),a=t.array(2,[]);let s=null;for(let e=0;e<a.length;e++){var n=a[e];n&&Array.isArray(n)?"alliancename"==n[0]&&(s=n[1],delete a[e]):delete a[e]}var[t]=await this.accessControl(i);e=await this.$allianceUserCreate([e,r,s],i);return a.push(["pubkey",e.data.pubkey]),a.push(["merge",!0]),t.db.client.execute("ca.list",[a])}async caUserLog(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"ca.user.log cid uid (query)");e=(t=new g([e])).str(0,"");var r=t.uint(1,0),a=t.array(2,[]);let s=null;for(let e=0;e<a.length;e++){var n=a[e];n&&Array.isArray(n)?"alliancename"==n[0]&&(s=n[1],delete a[e]):delete a[e]}var[t,,]=await this.accessControl(i,e);e=await this.$allianceUserCreate([e,r,s],i);return a.push(["pubkey",e.data.pubkey]),t.db.client.execute("ca.list",[a])}async sysLog(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.log (query openid)");e=(t=new g([e])).array(0,[]);var r,[a,,]=await this.accessControl(i,t.str(1,"")),s=[];for(r of(await this.wdb.auditList.query(e)).list){var n=Object.assign({},r),d=o.parseHash(r.address,this.network);(d=await a.getPath(d))&&(n.account=d.name),n.time=new Date(1e3*r.time).toLocaleString(),s.push(n)}return s}async caIssuePublic(e,t,i){if(t||e.length<2||4<e.length)throw new h(p.MISC_ERROR,"ca.issue.public cert witness [pubkey openid]: 签发证书 证书对象 见证地址 [原始存证签名公钥 支付账户]");e=(t=new g([e])).obj(0,{});var r=t.str(1,""),a=t.str(2,""),[i,t]=await this.accessControl(i,t.str(3,""));if(64!=e.hash.length)throw new h(p.TYPE_ERROR,"err hash length");var s=await i.db.client.execute("ca.byId",[e.hash]);if(s)return s;if(s=await i.getPrivateKey(r))return e.height||(e.height=y.retargetInterval),await i.issueCreate({erid:e.hash,key:s.privateKey.toString("hex"),address:s.getAddress().toString(),witness:s.publicKey.toString("hex"),validHeight:this.wdb.curHeight+e.height,source:{subjectName:e.name||"",pubkey:a,subjectHash:e.hash,cluster:e.cluster,blob:e.blob}},t);throw new h(p.TYPE_ERROR,"Invalid witness.")}async caAbolishPublic(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"ca.abolish.public array[[erid height [openid]]]: 废止授信交易 废止交易信息数组");var r,a=[];for(r of new g([e]).array(0,[])){var[s,n]=await this.accessControl(i,r[3]),o=r[0],d=parseInt(r[1]),l=await this.wdb.erList.query([["erid",o]]),c=(l=_.fromWitnessPubkeyhash(b.hash160(Buffer.from(l.list[0].witness,"hex")),this.network.type).toString(),await s.getKey(l));if(!c)throw new h(p.TYPE_ERROR,"Invalid witness.");(s=await s.caAbolish({key:c.privateKey.toString("hex"),witness:c.publicKey.toString("hex"),address:l,erid:o,abolishHeight:d,cid:"",uid:0},n))&&a.push(s)}return a}async caIssue(e,t,i){if(t||e.length<3||4<e.length)throw new h(p.MISC_ERROR,"ca.issue cert uid cid [openid]: 签发证书 证书对象 见证人 见证人归属单位 [消费账户]");return this.$caIssue(e,i,!1)}async caIssueAsync(e,t,i){if(t||e.length<3||4<e.length)throw new h(p.MISC_ERROR,"ca.issue.async cert uid cid [openid]: 签发证书 证书对象 见证人 见证人归属单位 [消费账户]");return this.$caIssue(e,i,!0)}async $caIssue(e,t,i){var r=(e=new g([e])).obj(0,{}),a=e.uint(1,0),s=e.str(2,""),[e,n]=await this.accessControl(t,e.str(3,""));if(!(o=await e.ensureCp(s))||"forbidden"==o.cls)throw new h(p.MISC_ERROR,"Invalid Account");if(64!=r.hash.length)throw new h(p.TYPE_ERROR,"err hash length");var o=await this.$allianceUserCreate([s,a],t),d=[];if(d.push(["pubkey",o.data.pubkey]),d.push(["source.subjectHash",r.hash]),0<(await e.db.client.execute("ca.list",[d])).count)throw new h(p.TYPE_ERROR,"cert.hash conflicted");if(await e.db.client.execute("ca.byId",[r.hash]))throw new h(p.TYPE_ERROR,"cert.hash conflicted");return r.height||(r.height=y.retargetInterval),o=await this.$allianceUserCreate([s,a],t,!0),await e.issueCreate({erid:r.hash,key:o.prvkey,witness:o.data.pubkey,address:o.data.addr,validHeight:this.wdb.curHeight+r.height,source:{subjectName:r.name,pubkey:o.data.pubkey,subjectHash:r.hash,cluster:r.cluster,cid:s,uid:a}},n,i)}async caAbolish(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"ca.abolish [[uid cid erid height [openid]]]: 废止授信交易 废止交易信息数组");return this.$caAbolish(e,i,!1)}async caAbolishAsync(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"ca.abolish.async [[uid cid erid height [openid]]]: 废止授信交易 废止交易信息数组");return this.$caAbolish(e,i,!0)}async $caAbolish(e,t,i){var r,a=[];for(r of new g([e]).array(0,[])){var s,n=r[0],o=r[1],p=r[2],d=parseInt(r[3]),[s,h]=await this.accessControl(t,r[4]),l=await this.$allianceUserCreate([o,n],t,!0);(s=await s.caAbolish({cid:o,uid:n,key:l.prvkey,witness:l.data.pubkey,address:l.data.addr,erid:p,abolishHeight:d},h,i))&&a.push(s)}return a}async enchanceCp(e,t,i){if(t||e.length<2||4<e.length)throw new h(p.MISC_ERROR,"ca.enchance toCid fromCid height [openid]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(3)),r=t.str(0,0),a=t.str(1,0);let s=t.uint(2,0);(!s||s<this.wdb.curHeight)&&(s=this.wdb.curHeight+y.retargetInterval);var[t,e]=await e.enchanceCp({to:r,from:a,enchanceHeight:s},i);return t&&e?e:null}async queryErList(e,t,i){if(t)throw new h(p.MISC_ERROR,"ca.query.remote conditions: 查询存证列表 (复合条件)");t=new g([e]);var[e,,]=await this.accessControl(i,t.str(1,""));i=t.array(0,[]);return e.db.client.execute("ca.list",[i])}async queryMyErlist(e,t,i){if(t)throw new h(p.MISC_ERROR,"ca.list.me query: 条件查询自己的电子权利 条件数组");return t=new g([e]).array(0,[]),this.wdb.erList.query(t)}}},function(e,t,i){var r=i(23);let{ContractEnvType:a,ContractStatus:s}=i(5),n=i(6),o=i(89);e.exports=class extends r{constructor(e){super(),this.db=e}async loadHistory(){var e;for(e of await this.db.getContracts())e&&(e.period<this.db.curHeight&&e.transStatus==s.CreatedOnMem?await this.delTransContract(e,!0):(e.id=e.type+"."+e.addr,await this.saveContract(e),e.transStatus==s.Promised&&this.db.autoTaskMgr.addTask(new o(this.db.network.txcheckpoint,e),this.db.network.txchecktime[e.type])))}query(e,t){return(e=this.get(e+"."+t))?e.transStatus:s.None}async addTransContract(e,t,i=!1){t.id=t.type+"."+t.addr;var r=this.get(t.id);e===a.Mempool&&((t=r||t).transStatus||(t.transStatus=s.CreatedOnMem),await this.saveContract(t,i))}async saveContract(e,t=!1){e.id=e.id||e.type+"."+e.addr,this.set(e.id,e),t&&(t=n.hash256(Buffer.from(e.id)).toString("hex"),await this.db.batchPut(this.db.tidCreator(t),Buffer.from(JSON.stringify(e))))}async promiseContract(e,t=!1){let i=!1;var r=e.type+"."+e.addr;let a=this.get(r);return a&&a.oper==e.oper||(i=!0,a=e),(!a.transStatus||a.transStatus<s.Promised)&&(i=!0,a.transStatus=s.Promised),i&&await this.saveContract(a,t),i}async confirmContract(e,t,i){e=e.type+"."+e.addr,!(e=this.get(e))||e.transStatus!=s.Promised||t!=s.Confirmed&&t!=s.Expired||(e.transStatus=t,await this.saveContract(e,i))}async delTransContract(e,t){var i=e.type+"."+e.addr,r=this.get(i);r&&r.oper==e.oper&&(this.delete(i),t)&&(r=n.hash256(Buffer.from(i)).toString("hex"),await this.db.batchDel(this.db.tidCreator(r)))}}},function(e,t,i){let r=i(5).HtlcStatus;i=i(23);class a extends i{constructor(e){super(),this.db=e}async loadHistory(){var e,t;for(e of(this.clear(),await this.db.loadHtlcList()))this.set(e.id,e),e.wid&&e.account&&(t=e.wid+"."+e.account,this.account.get(t)||this.account.set(t,new Map),this.account.get(t).set(e.id,e))}setAccount(e,t,i){this.delAccount(e),t&&i&&(e.wid=t,e.account=i,this.account.get(t=e.wid+"."+e.account)||this.account.set(t,new Map),this.account.get(t).set(e.id,e))}delAccount(e){var t;e&&e.wid&&e.account&&(t=e.wid+"."+e.account,this.account.get(t))&&this.account.get(t).delete(e.id)}}a.vpItem=class e{constructor(e){this.fromOptions(e||{})}fromOptions(e){this.shash=e.shash,this.sidx=e.sidx,this.sheight=e.sheight,this.ahash=e.ahash,this.aidx=e.aidx,this.aheight=e.aheight,this.src=e.src,this.dst=e.dst,this.aa=e.aa,this.ab=e.ab,this.ba=e.ba,this.bb=e.bb,this.amount=e.amount,this.rate=e.rate,this.pst=e.pst}toRaw(){var e={};return e.shash=this.shash,e.sidx=this.sidx,e.sheight=this.sheight,e.ahash=this.ahash,e.aidx=this.aidx,e.aheight=this.aheight,e.src=this.src,e.dst=this.dst,e.amount=this.amount,e.rate=this.rate,e.pst=this.pst||r.Init,e.aa=this.aa||"",e.ab=this.ab||"",e.ba=this.ba||"",e.bb=this.bb||"",Buffer.from(JSON.stringify(e),"utf-8")}get id(){return""+this.shash+this.sidx}fromRaw(e){return e=JSON.parse(e.toString("utf8")),this.fromOptions(e),this}static fromRaw(t){return(new e).fromRaw(t)}},e.exports=a},,,,,,,,,,,,,,function(e,t,i){
810
+ let r=i(0),a=i(61);i(97);let s=i(62).walletdb,n=i(116),o=i(69),p=o.errors,d=o.MAGIC_STRING,h=i(68),l=i(42),c=i(88),u=i(2),f=i(153),m=i(3),g=i(72),w=i(28),v=i(11),y=i(7),b=i(6),x=i(18),S=i(50),_=i(8),E=i(31),k=i(109),R=i(53),A=i(37),I=i(15),C=i(235),O=i(110),N=i(111),{ContractType:T,ContractState:P,PropStatus:B,HtlcStatus:L}=i(5),M=i(112),D=i(75),V=i(117),U=i(14).opcodes,H=i(30),z=i(403);e.exports=class extends o{constructor(e){super(e),r(e,"RPC requires a WalletDB."),this.wdb=e,this.keys=e.keys,this.network=e.network,this.logger=e.logger.context("rpc"),this.client=e.client,this.init()}init(){this.add("sys.alliance.create",this.allianceCreate),this.add("sys.alliance.import",this.allianceImport),this.add("sys.alliance.delete",this.allianceDelete),this.add("sys.alliance.refresh",this.refreshAlliance),this.add("sys.alliance.refresh.async",this.refreshAllianceAsync),this.add("sys.alliance.gettoken",this.getAllianceNodeToken),this.add("sys.alliance.user",this.allianceUserCreate),this.add("wallet",this.routerOfWallet),this.add("wallet.create",this.mkwallet),this.add("wallet.export",this.dumpWallet),this.add("wallet.exports.admin",this.dumpWallets),this.add("wallet.import",this.importWallet),this.add("wallet.exportmnemonic.admin",this.exportMnemonic),this.add("wallet.importmnemonic.admin",this.importMnemonic),this.add("wallet.list",this.getWallets),this.add("wallet.info",this.getWalletInfo),this.add("wallet.block",this.getWalletBlock),this.add("wallet.layouth",this.getWalletLayoutH),this.add("wallet.encrypt",this.encryptWallet),this.add("wallet.decrypt",this.decryptWallet),this.add("wallet.changepassphrase",this.changePassphrase),this.add("wallet.lock",this.walletLock),this.add("wallet.unlock",this.unlock),this.add("wallet.blocks",this.getblocks),this.add("wallet.auth",this.walletAuth),this.add("wallet.rescan",this.rescan),this.add("wallet.checkutxo",this.checkUTXO),this.add("key",this.routerOfKey),this.add("key.export.private",this.dumpPrivKey),this.add("key.export.public",this.getKey),this.add("key.master.admin",this.masterkey),this.add("key.import.private",this.importPrivKey),this.add("key.import.public",this.importPubkey),this.add("key.import.address",this.importAddress),this.add("key.shared.add",this.addShared),this.add("key.shared.del",this.removeShared),this.add("key.root.inject.admin",this.injectRootKey),this.add("key.root.extract.admin",this.extractRootKey),this.add("account",this.routerOfAccount),this.add("account.list",this.listAccounts),this.add("account.map",this.mapAccounts),this.add("account.get",this.accountGet),this.add("account.create",this.accountCreate),this.add("account.received",this.getReceivedByAccount),this.add("account.listreceived",this.listReceivedByAccount),this.add("account.virtualadd.admin",this.accountVirtualAdd),this.add("account.checkamount",this.accountCheckAmount),this.add("balance.confirmed",this.getBalance),this.add("balance.all",this.getBalanceAll),this.add("balance.check",this.checkBalance),this.add("balance.unconfirmed",this.getUnconfirmedBalance),this.add("balance.log",this.getBalanceLog),this.add("comm.notify",this.commNotify),this.add("comm.hash",this.calcHash),this.add("comm.listNotify",this.listNotify),this.add("comm.secret",this.sendSecret),this.add("comm.querySecret",this.querySecret),this.add("comm.listContact",this.listContact),this.add("comm.scanContact",this.scanContact),this.add("comm.comment",this.sendComment),this.add("comm.comment.query",this.commentQuery),this.add("sys.walletdb.stop",this.stop),this.add("sys.walletnode.shutdown",this.shutdown),this.add("sys.walletdb.create",this.createWalletDb),this.add("sys.walletdb.destroy",this.destroyWalletDb),this.add("sys.zap",this.zap),this.add("sys.setfee",this.setTXFee),this.add("sys.message.sign",this.signMessage),this.add("sys.log",this.sysLog),this.add("address",this.routerOfAddress),this.add("address.list",this.getAddressesByAccount),this.add("address.index",this.getAddressesByIndex),this.add("address.receive",this.getAccountAddress),this.add("address.change",this.getAccountChangeAddress),this.add("address.nested",this.getAccountNestedAddress),this.add("address.calc",this.calcAddress),this.add("address.create",this.createAddress),this.add("address.create.admin",this.createAddressAdmin),this.add("address.receive.create",this.createAddress),this.add("address.change.create",this.createChange),this.add("address.nested.create",this.createNested),this.add("address.import",this.importAddress),this.add("address.key.admin",this.getPrivKey),this.add("address.wif.admin",this.getwif),this.add("address.has",this.ownedAddress),this.add("address.amount",this.getReceivedByAddress),this.add("address.account",this.getAccount),this.add("address.received",this.getReceivedByAddress),this.add("address.received.list",this.listReceivedByAddress),this.add("cp",this.routerOfCp),this.add("cp.create",this.cpRegister),this.add("cp.create.async",this.cpRegisterAsync),this.add("cp.change",this.cpChange),this.add("cp.query",this.cpQuery),this.add("cp.query.remote",this.cpQueryRemote),this.add("cp.mine",this.cpMine),this.add("cp.user",this.getUserToken),this.add("sc",this.routerOfSc),this.add("sc.register",this.scRegister),this.add("sc.run",this.scRun),this.add("ca",this.routerOfCa),this.add("ca.issue",this.caIssue),this.add("ca.user.status",this.caUserStatus),this.add("ca.user.log",this.caUserLog),this.add("ca.abolish",this.caAbolish),this.add("ca.enchance",this.enchanceCp),this.add("ca.list.me",this.queryMyErlist),this.add("ca.list.remote",this.queryErList),this.add("ca.issue.async",this.caIssueAsync),this.add("ca.abolish.async",this.caAbolishAsync),this.add("ca.issue.public",this.caIssuePublic),this.add("ca.abolish.public",this.caAbolishPublic),this.add("prop",this.routerOfProp),this.add("prop.create",this.propCreate),this.add("prop.createlist",this.propCreateList),this.add("prop.send",this.propExchange),this.add("prop.sendlist",this.propSendList),this.add("prop.sendlist.admin",this.propSendListAdmin),this.add("prop.found",this.propFound),this.add("inscription.create",this.inscriptionCreate),this.add("prop.wallet.byid",this.propGet),this.add("prop.wallet.byoid",this.listPropByOid),this.add("prop.wallet.byaddress",this.listProp),this.add("prop.sale",this.propSale),this.add("prop.buy",this.propBuy),this.add("contract",this.routerOfContract),this.add("contract.create",this.contractCreate),this.add("contract.promise",this.contractPromise),this.add("contract.execute",this.contractExecute),this.add("contract.mine",this.contractOfMine),this.add("htlc",this.routerOfHTLC),this.add("htlc.suggest",this.htlcSuggest),this.add("htlc.suggest.cancel",this.htlcSuggestCancel),this.add("htlc.suggest.deal",this.htlcSuggestDeal),this.add("htlc.assent",this.htlcAssent),this.add("htlc.assent.cancel",this.htlcAssentCancel),this.add("htlc.assent.deal",this.htlcAssentDeal),this.add("htlc.query",this.htlcQuery),this.add("vote.send",this.sendVote),this.add("vote.send.async",this.sendVoteAsync),this.add("oracle.send",this.sendOracle),this.add("tx.get.wallet",this.getTransaction),this.add("tx.list",this.listTransactions),this.add("tx.create",this.createTX),this.add("tx.attach",this.attach),this.add("tx.send",this.sendTX),this.add("tx.send.async",this.sendTXAsync),this.add("tx.last",this.getLast),this.add("tx.pending",this.getPending),this.add("tx.pending.get",this.getPendingItem),this.add("tx.pending.hash",this.getPendingHash),this.add("tx.pending.count",this.getPendingCount),this.add("tx.resend.admin",this.resendWalletTransactions),this.add("tx.mstrans",this.listMSTrans),this.add("tx.mstrans.sign",this.signMSTrans),this.add("tx.history",this.getHistory),this.add("tx.history.since",this.listSinceBlock),this.add("tx.range",this.getRange),this.add("tx.abandon.admin",this.abandonTransaction),this.add("tx.abandonall.admin",this.abandonPending),this.add("tx.importprunedfunds.admin",this.importPrunedFunds),this.add("tx.removeprunedfunds.admin",this.removePrunedFunds),this.add("tx.resendall.admin",this.resend),this.add("tx.sign.admin",this.signTX),this.add("tx.fund.admin",this.fundRawTransaction),this.add("coin",this.routerOfCoin),this.add("coin.get",this.getCoin),this.add("coin.spender",this.getSpender),this.add("coin.spent",this.getSpent),this.add("coin.cache",this.getCoincacheSize),this.add("coin.check",this.checkUnspent),this.add("coin.list",this.listUnspent),this.add("coin.selectone",this.selectone),this.add("coin.conserved.get",this.getConservedCoins),this.add("coin.conserved.add",this.conserveCoin),this.add("coin.conserved.del",this.unConserveCoin),this.add("coin.conserved.list",this.listConservedUnspent),this.add("coin.conserved.oper.list",this.listOperUnspent),this.add("coin.locked.list",this.listLockedUnspent)}async routerOfCoin(e){throw new h(p.MISC_ERROR,"\n coin.get 查询硬币-UTXO\n coin.remove.admin 移除指定硬币(管理员判断为状态异常者)\n coin.spender 查询硬币的消费者\n coin.list 列表硬币-UTXO\n coin.conserved.get 获取钱包保持的Coin的信息\n coin.conserved.add 钱包增加需要保持的Coin\n coin.conserved.del 钱包减少需要保持的Coin\n coin.conserved.list 列表钱包保持的UTXO\n coin.conserved.oper.list 批量锁定/解锁一组UTXO \n coin.locked.list 列表目前交易层锁定的UTXO\n ")}async routerOfContract(e){throw new h(p.MISC_ERROR,"\n contract.create 发布交易对合约\n contract.promise 签署交易对合约\n contract.execute 执行交易对合约\n contract.mine 获取已签署交易对合约列表\n contract.list 查询并返回交易对\n ")}async routerOfHTLC(e){throw new h(p.MISC_ERROR,"\n htlc.suggest 发布跨链合约\n htlc.suggest.deal 兑现合约\n htlc.suggest.cancel 取消合约\n htlc.assent 响应跨链合约\n htlc.assent.deal 兑现响应\n htlc.assent.cancel 取消响应\n htlc.query 查询合约\n ")}async routerOfWallet(e){throw new h(p.MISC_ERROR,"\n wallet.create 创建钱包\n wallet.list 列表钱包\n wallet.info 查询钱包概要\n wallet.block 查询区块信息\n wallet.exportmnemonic.admin 导出钱包助记词备份\n wallet.importmnemonic.admin 导入钱包助记词备份\n wallet.export 导出钱包备份\n wallet.import 导入钱包备份\n wallet.encrypt 将主私钥永久加密\n wallet.decrypt 将主私钥永久解密\n wallet.changepassphrase 在主私钥已经加密的情况下,修改其加密密码,要提交旧/新两个密码。如果尚未加密则执行失败\n wallet.lock 在主私钥已加密的前提下,清理内存中的密钥信息以确保锁定,相当于手工执行自动锁定\n wallet.unlock 在主私钥已加密的前提下,解密主私钥,持续一段时间后自动锁定\n wallet.blocks 列表钱包相关区块\n ")}async routerOfAddress(e){throw new h(p.MISC_ERROR,"\n address.list 列表指定账户下地址\n address.receive 列表指定账户下收款地址\n address.change 列表指定账户下找零地址\n address.nested 列表指定账户下嵌套地址\n address.create 创建一个收款地址\n address.create.admin 创建一个收款地址,回显私钥\n address.receive.create 创建一个收款地址\n address.change.create 创建一个找零地址\n address.nested.create 创建一个嵌套地址\n address.import 导入一个地址\n address.key.admin 查询地址的密钥\n address.amount 查询指定地址上的余额\n address.account 查询指定地址对应的账户\n address.wif.admin 查询地址对应的私钥\n address.has 判断钱包是否包含地址\n address.received 根据地址查询进项总额\n address.received.list 根据地址查询进项\n address.filter 在订单流水中,查询符合筛选条件的地址集\n ")}async routerOfAccount(e){throw new h(p.MISC_ERROR,"\n account.list 列表账户\n account.get 查询账户\n account.create 创建账户\n account.received 查询收款总额\n account.listreceived 列表收款记录\n balance.confirmed 已确认余额\n balance.all 余额\n balance.unconfirmed 未确认余额\n balance.log 查询指定账户变更日志\n ")}async routerOfKey(e){throw new h(p.MISC_ERROR,"\n key.export.private 根据输入地址,导出私钥\n key.export.public 根据输入地址,打出公钥\n key.master.admin 导出根密钥和助记词, 注意 encrypt 状态下无法导出私钥\n key.import.private 导入私钥\n key.import.public 导入公钥\n key.import.address 导入地址\n key.shared.add 新增共享公钥\n key.shared.del 删除共享公钥\n ")}async routerOfCp(e){throw new h(p.MISC_ERROR,"\n cp.create 创建CP记录\n cp.change 修改CP记录\n cp.remoteQuery 查询全节点中的CP列表\n cp.query 查询本地CP列表\n cp.byClass 根据游戏类别查询CP记录\n cp.byName 根据名称查询CP记录\n cp.byId 根据ID查询CP记录\n cp.mine 当前操作员注册的CP\n cp.user 生成用户令牌(钱包)\n ")}async routerOfSc(e){throw new h(p.MISC_ERROR,"\n sc.model 查询托管合约模板列表\n sc.register 指定托管合约模板,创建新的实例\n sc.query 查询托管合约实例列表\n sc.run 调用托管合约实例\n ")}async routerOfCa(e){throw new h(p.MISC_ERROR,"\n ca.issue 电子证书签发\n ca.abolish 电子证书废止记录\n ca.verify 电子证书验证\n ca.user.status 根据企业证书编号和用户编号查询\n ca.user.log 根据企业证书编号和用户编号查询日志\n ca.enchance CA机构间增信\n ca.rank 查询CA信用等级\n ca.list 查询电子证书列表\n ca.list.ab 查询电子证书废止记录列表\n ca.list.me 查询钱包内证书列表\n ")}async routerOfProp(e){throw new h(p.MISC_ERROR,"\n prop.create 创建道具\n prop.send 转移道具\n prop.createlist 批量创建道具\n prop.sendlist 批量转移道具\n prop.found 熔铸道具\n prop.byaddress 根据地址查询道具\n prop.byid 根据PID查询道具\n prop.wallet.byaddress 根据地址查询自己拥有的道具\n prop.wallet.byid 根据PID查询自己拥有的道具\n prop.wallet.byoid 根据OID查询自己拥有的道具\n ")}async allianceCreate(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"sys.alliance.create password nodeid alliancename (host): 创建联盟节点证书 备份密码 节点编号 盟友名称 (节点地址)");e=(t=new g([e])).str(0);var r=t.uint(1,0),a=t.str(2,"").trim();t=t.str(3,"");if(!r||!e)throw new h(p.MISC_ERROR,"节点编号、备份密码都不能为空");if(a==this.wdb.$parent.config.allianceName)throw new h(p.MISC_ERROR,`子网名称不能和当前网络名称[${this.wdb.$parent.config.allianceName}]相同`);if(!this.wdb.$parent||!this.wdb.$parent.config.identityKey)throw new h(p.MISC_ERROR,"identityKey not set yet, please run sys.alliance.gettoken without params first");var[i,s]=await this.accessControl(i,""),n={body:{language:(n=await i.createAllianceInfo(a,r)).mnemonic.language,phrase:n.mnemonic.getPhrase(),passphrase:n.mnemonic.passphrase,alliancePrivateKey:n.alliancePrivateKey.toString("hex"),allianceName:a,allianceNodeId:r,awardAddress:n.awardAddress,allianceNodeToken:{network:this.network.type,alliancename:a,sn:r,prv:n.prv.toString("hex"),pub:n.pub.toString("hex"),address:n.address},notifyAddress:i.notifyAddress,authorized:""},password:e,network:this.network.type,file:this.network.type+`-${a}-${r}.keystore`};let o=D.encrypt(n);if(this.wdb.$parent){let i=!1;for(var d of this.wdb.$parent.config.alliances)if((d=d.split("|"))[0]==a&&d[1]==r){i=!0;break}i||(this.wdb.$parent.pool.authdb.addKnown(t,Buffer.from(n.body.allianceNodeToken.pub,"hex")),o=D.encrypt(n),this.wdb.$parent.config.alliances.push(`${a}|${r}|${o}|${e}|${n.body.awardAddress}|`+t),await this.wdb.$parent.saveConfigAsync())}e={host:t,an:n.body.allianceNodeToken.alliancename,ai:n.body.allianceNodeToken.sn,key:n.body.allianceNodeToken.pub};var u=c.signObj(e,i.notifyKey.privateKey);return await i.commNotify({dst:i.notifyAddress,content:JSON.stringify({cmd:"peeradd",payload:e,sig:u,pub:i.notifyKey.publicKey.toString("hex")})}),l.unsupported||await l.writeFile(n.file,o,"utf8"),e=(await i.getAccount(s)).getReceive().toString(),await this.wdb.logAudit({address:e,oper:"node.create",hash:a+"."+r,index:0}),{nodeid:r,alliancename:a,host:t,peerPubkey:n.body.allianceNodeToken.pub,awardAddress:n.body.awardAddress,file:n.file,notifyAddress:i.notifyAddress}}async allianceImport(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"sys.alliance.import password nodeid alliancename key (host): 导入联盟节点 备份密码 节点编号 盟友名称 节点公钥 (节点地址)");if(!this.wdb.$parent||!this.wdb.$parent.config.identityKey)throw new h(p.MISC_ERROR,"identityKey not set yet, please run sys.alliance.gettoken without params first");e=(t=new g([e])).str(0);var r=t.uint(1,0),a=t.str(2,""),s=t.str(3,"");t=t.str(4,"");if(!r||!e||!s)throw new h(p.MISC_ERROR,"节点编号、备份密码、节点公钥都不能为空");var[i,n]=await this.accessControl(i,""),o=await i.createAllianceInfo(a,r,s),d=Buffer.from(this.wdb.$parent.config.identityKey,"hex"),u=(d=x.publicKeyCreate(d,!0),(this.wdb.$parent.config.publicHost||"127.0.0.1")+":"+(this.wdb.$parent.config.publicPort||this.wdb.$parent.config.port||this.network.port));o={body:{alliancePrivateKey:o.alliancePrivateKey.toString("hex"),allianceName:a,allianceNodeId:r,allianceNodeToken:{network:this.network.type,alliancename:a,sn:r,pub:o.pub.toString("hex"),address:o.address},awardAddress:o.awardAddress,notifyAddress:i.notifyAddress,authorized:"",masterPub:d.toString("hex"),masterAddress:u},password:e,network:this.network.type,file:this.network.type+`-${a}-${r}.keystore`};let f;if(this.wdb.$parent){let i=!1;for(var m of this.wdb.$parent.config.alliances)if((m=m.split("|"))[0]==a&&m[1]==r){i=!0;break}i||(this.wdb.$parent.pool.authdb.addKnown(t,Buffer.from(s,"hex")),f=D.encrypt(o),this.wdb.$parent.config.alliances.push(`${a}|${r}|${f}|${e}|${o.body.awardAddress}|`+t),await this.wdb.$parent.saveConfigAsync())}else f=D.encrypt(o);return l.unsupported||await l.writeFile(o.file,f,"utf8"),d={host:t,key:o.body.allianceNodeToken.pub,an:o.body.allianceNodeToken.alliancename,ai:o.body.allianceNodeToken.sn},u=c.signObj(d,i.notifyKey.privateKey),await i.commNotify({dst:i.notifyAddress,content:JSON.stringify({cmd:"peeradd",payload:d,sig:u,pub:i.notifyKey.publicKey.toString("hex")})}),s=(await i.getAccount(n)).getReceive().toString(),await this.wdb.logAudit({address:s,oper:"node.create",hash:a+"."+r,index:0}),{nodeid:r,alliancename:a,host:t,peerPubkey:o.body.allianceNodeToken.pub,awardAddress:o.body.awardAddress,file:o.file,notifyAddress:i.notifyAddress}}async refreshAlliance(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.alliance.refresh amount: 为联盟成员批量充值 [充值金额(可选, 缺省为0)]");var r=new g([e]).uint(0,0);if(5e9<r)throw new h(p.MISC_ERROR,"无效的充值金额(10000~5000000000)");var[a,s]=await this.accessControl(i);if(this.wdb.$parent)for(var n of this.wdb.$parent.config.alliances){n=n.split("|");var o=(1e4<r&&_.fromString(n[4],this.network.type).isWitnessPubkeyhash()&&await a.send({outputs:[{address:n[4],value:r}]},s),D.decrypt({network:this.network.type,password:n[3],body:n[2]}));n=(this.wdb.$parent.rpc.addPeer&&await this.wdb.$parent.rpc.addPeer([n[5],o.allianceNodeToken.pub,null,null,null,!0]),{host:n[5],key:o.allianceNodeToken.pub,an:o.allianceNodeToken.alliancename,ai:o.allianceNodeToken.sn}),o=c.signObj(n,a.notifyKey.privateKey);await a.commNotify({dst:a.notifyAddress,content:JSON.stringify({cmd:"peeradd",payload:n,sig:o,pub:a.notifyKey.publicKey.toString("hex"),enableBIP:!0})})}}async refreshAllianceAsync(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.alliance.refresh.async amount: 为联盟成员批量充值 充值金额");var r=new g([e]).uint(0,0);if(r<1e4||5e9<r)throw new h(p.MISC_ERROR,"无效的充值金额(10000~5000000000)");var[a,s]=await this.accessControl(i);if(this.wdb.$parent)for(var n of this.wdb.$parent.config.alliances){n=n.split("|");var o=(_.fromString(n[4],this.network.type).isWitnessPubkeyhash()&&a.send({outputs:[{address:n[4],value:r}]},s),D.decrypt({network:this.network.type,password:n[3],body:n[2]}));n=(this.wdb.$parent.rpc.addPeer&&await this.wdb.$parent.rpc.addPeer([n[5],o.allianceNodeToken.pub,null,null,null,!0]),{host:n[5],key:o.allianceNodeToken.pub,an:o.allianceNodeToken.alliancename,ai:o.allianceNodeToken.sn}),o=c.signObj(n,a.notifyKey.privateKey);a.commNotify({dst:a.notifyAddress,content:JSON.stringify({cmd:"peeradd",payload:n,sig:o,pub:a.notifyKey.publicKey.toString("hex")})})}}async allianceDelete(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"sys.alliance.delete nodeid alliancename: 删除联盟节点证书 节点编号 盟友名称");var r=(t=new g([e])).uint(0,0),a=t.str(1,""),[s,e]=await this.accessControl(i,"");if(!r||!a)throw new h(p.MISC_ERROR,"节点编号、节点名称都不能为空");if(this.wdb.$parent)for(let e=0;e<this.wdb.$parent.config.alliances.length;e++){var n,o=this.wdb.$parent.config.alliances[e].split("|");o[0]==a&&o[1]==r&&(this.wdb.$parent.config.alliances.splice(e,1),await this.wdb.$parent.config.saveAsync(),o[5])&&(o={host:o[5],an:a,ai:r},n=c.signObj(o,s.notifyKey.privateKey),await s.commNotify({dst:s.notifyAddress,content:JSON.stringify({cmd:"peerdel",payload:o,sig:n,pub:s.notifyKey.publicKey.toString("hex")})}))}return t=(await s.getAccount(e)).getReceive().toString(),await this.wdb.logAudit({address:t,oper:"node.delete",hash:a+"."+r,index:0}),!0}async getAllianceNodeToken(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.alliance.gettoken (nodeid alliancename pubkey): 创建联盟节点信道密钥 (节点编号 盟友名称)");e=(t=new g([e])).uint(0,0);var r=t.str(1);t=t.str(2);if(this.wdb.$parent)return[i]=await this.accessControl(i),i=await i.createAllianceInfo(r,e,t),r||(this.wdb.$parent.config.identityKey?(i.prv=Buffer.from(this.wdb.$parent.config.identityKey,"hex"),i.pub=x.publicKeyCreate(i.prv,!0),i.address=_.fromWitnessPubkeyhash(b.hash160(i.pub),this.network.type).toString()):(this.wdb.$parent.pool.options.identityKey=i.prv,this.wdb.$parent.config.identityKey=i.prv.toString("hex"),await this.wdb.$parent.saveConfigAsync())),{network:this.network.type,alliancename:r,sn:e,prv:i.prv.toString("hex"),pub:i.pub.toString("hex"),address:i.address};throw new h(p.MISC_ERROR,"this cmd can only run on fullnode.")}async allianceUserCreate(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.alliance.user cid uid (alliancename): 创建企业用户 企业编号 用户编号 (盟友名称)");return this.$allianceUserCreate(e,i)}async $allianceUserCreate(e,t,i){var r=(e=new g([e])).str(0),a=e.uint(1);let s=null,n=null;return n=(e=e.str(2,""))?([t]=await this.accessControl(t),b.hash256(Buffer.concat([Buffer.from(e),t.master.key.privateKey]))):Buffer.from(this.wdb.$parent.config.alliancePrivateKey,"hex"),e=E.fromPrivate(n,!0,this.network),(t=E.fromPrivate(b.hash256(Buffer.concat([Buffer.from(r+"-"+a),e.privateKey]),!0,this.network))).witness=!0,s=t.signData({cid:r,uid:a}),i&&(s.prvkey=t.privateKey.toString("hex")),s}async isReady(e){return this.wdb.isFull()}async checkUTXO(e,t,i){if(t)throw new h(p.MISC_ERROR,"wallet.checkutxo: 检查并修复钱包 UTXO");var r,a={};for(r of await this.wdb.getWallets())try{var s=await this.wdb.get(r);s?(this.logger.info(`Starting UTXO check for wallet ${r}...`),await s.checkAndRepairUTXOs(),this.logger.info("UTXO check completed for wallet "+r),a[r]="success"):a[r]="wallet not found"}catch(e){this.logger.error(`Error checking UTXO for wallet ${r}: `+e.message),a[r]="error: "+e.message}return a}async injectRootKey(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"key.root.inject.admin rootKey passphrase: 注入根私钥 根私钥(hex) 加密密码");t=new g([e]);var[e,,]=await this.accessControl(i);i=t.buf(0,"hex"),t=t.str(1);if(i&&t)return await e.injectRootKey(i,t),this.wdb.$parent&&this.wdb.$parent.signalRootKeyInjected&&this.wdb.$parent.signalRootKeyInjected(),{success:!0,message:"Root private key injected successfully in security mode."};throw new h(p.MISC_ERROR,"根私钥和加密密码都不能为空")}async extractRootKey(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"key.root.extract.admin passphrase: 注出根私钥 加密密码");t=new g([e]);var[e,,]=await this.accessControl(i);if(i=t.str(0))return{success:!0,rootKey:(await e.extractRootKey(i)).toString("hex"),message:"Root private key extracted successfully."};throw new h(p.MISC_ERROR,"加密密码不能为空")}async shutdown(e,t){return this.wdb.$parent&&this.wdb.$parent.close().catch(e=>{setImmediate(()=>{throw e})}).finally(async()=>{await new Promise(e=>{setTimeout(e,1e4)}),process.exit(0)}),"Stopping."}async stop(e,t,i){if(t||0!==e.length)throw new h(p.MISC_ERROR,"sys.walletdb.stop");return this.wdb.close(),"Stopping walletdb..."}async destroyWalletDb(e,t,i){if(t||0!==e.length)throw new h(p.MISC_ERROR,"sys.walletdb.destroy: 删除钱包数据库");return await this.wdb.close(),await this.wdb.destroy(),"Destroyed."}async createWalletDb(e,t,i){if(t||0!==e.length)throw new h(p.MISC_ERROR,"sys.walletdb.create: 删除原有钱包数据库并重建");return await this.wdb.close(),await this.wdb.destroy(),await this.wdb.open(),"Created."}async fundRawTransaction(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,'tx.fund.admin "hexstring" ( options openid )');let r=new g([e]);var[t,e]=await this.accessControl(i,r.str(2,"")),a=(i=r.buf(0),r.obj(1));if(!i)throw new h(p.TYPE_ERROR,"Invalid hex string.");if(0===(i=R.fromRaw(i)).outputs.length)throw new h(p.INVALID_PARAMETER,"TX must have at least one output.");let s=null,n=null;if(a){let e=new g([a]);s=e.ufixed("feeRate",8),n=(n=e.str("changeAddress"))&&o.parseAddress(n,this.network)}return await t.fund(i,{rate:s,changeAddress:n,account:e}),{hex:i.toRaw().toString("hex"),changepos:i.changeIndex,fee:w.btc(i.getFee(),!0)}}async dumpPrivKey(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"key.export.private address [account]");t=new g([e]);var[e,r]=await this.accessControl(i,t.str(1,""));t=t.str(0,"");if(!this.wdb.options.acl.isRoot(i.options.cid)&&!await e.belongToAccount(r,t))throw new h(p.MISC_ERROR,"Invald Account.");if(i=o.parseHash(t,this.network),r=await e.getPrivateKey(i))return r.toSecret();throw new h(p.MISC_ERROR,"Key not found.")}async exportMnemonic(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,"wallet.exportmnemonic.admin password: 备份钱包助记符 备份密码");t=new g([e]);var[e,i]=await this.accessControl(i);if(!(t=t.str(0)))throw new h(p.MISC_ERROR,"wallet.exportmnemonic.admin: Invalid password");if("primary"==e.id&&"default"!=i)throw new h(p.MISC_ERROR,"wallet.exportmnemonic.admin: Invalid Account");return i={body:{phrase:e.master.mnemonic.getPhrase(),language:e.master.mnemonic.language,passphrase:e.master.mnemonic.passphrase},password:t,network:this.network,file:`./${this.network.type}-wallet${e.db.options.spv?"-spv":""}.keystore`},this.wdb.$parent&&(i.body.awardAddress=this.wdb.$parent.config.coinbaseAddress),await D.writeEncryptFile(i),D.encrypt(i)}async importMnemonic(e,t,i){if(t||2!==e.length)throw new h(p.MISC_ERROR,"wallet.importmnemonic.admin encrypt password: 导入钱包助记符 备份文本 备份密码");var r;t=new g([e]);let a=D.decrypt({body:t.str(0),password:t.str(1),network:this.network});for(r of("string"==typeof a&&(a=JSON.parse(a)),this.wdb.$parent&&(a.awardAddress=this.wdb.$parent.config.coinbaseAddress),await this.wdb.getWallets()))if((await this.wdb.get(r)).master.mnemonic.getPhrase()===a.phrase)throw new h(p.MISC_ERROR,"wallet.importmnemonic.admin: 相同助记词已被使用");return(e=await this.wdb.ensure({id:V(),type:"pubkeyhash",m:1,n:1,mnemonic:a,passphrase:null,master:null,witness:!0,watchOnly:!1,accountKey:null}))?e.toJSON(!1):null}async dumpWallet(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"wallet.export filename (fragment password wid): 导出钱包备份 备份文件全路径 (分片存储 true/false) (加密密码) (钱包ID)");let r;if(e=(t=new g([e])).str(3,null)){if(!(r=await this.wdb.get(e)))throw new h(p.TYPE_ERROR,"Invalid wallet ID.")}else{var[e]=await this.accessControl(i);r=e}if(i=t.str(0))return e=t.bool(1,!1),t=t.str(2,null),await r.exportToFile({file:i,fragment:e,password:t,network:this.network}),!0;throw new h(p.TYPE_ERROR,"Invalid filename.")}async dumpWallets(e,t,i){if(t)throw new h(p.MISC_ERROR,"wallet.exports.admin (password): 导出所有钱包备份 (加密密码)");var r,a=new g([e]).str(0,null);for(r of await this.wdb.getWallets())await(await this.wdb.get(r)).exportToFile({file:`backup-${r}.txt`,password:a,network:this.network});return!0}async encryptWallet(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,'wallet.encrypt "passphrase"');t=new g([e]);var[e,i]=await this.accessControl(i);t=t.str(0,"");if("primary"==e.id&&"default"!=i)throw new h(p.MISC_ERROR,"Invalid Account");if(e.master.encrypted)throw new h(p.WALLET_WRONG_ENC_STATE,"Already running with an encrypted wallet.");if(t.length<1)throw new h(p.MISC_ERROR,'wallet.encrypt "passphrase"');try{await e.setPassphrase(null,t)}catch(e){throw new h(p.WALLET_ENCRYPTION_FAILED,"Encryption failed.")}return"wallet encrypted"}async getAccount(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,'address.account "address"');t=new g([e]);var[e,i]=await this.accessControl(i);return("primary"!=e.id||"default"==i)&&(i=t.str(0,""),t=o.parseHash(i,this.network),i=await e.getPath(t))?i.name:""}async getAddressesByIndex(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,'address.index "index"');t=new g([e]);var[e,i]=await this.accessControl(i);if("primary"!=e.id||"default"==i){var r,a=t.uint(0);for(r of await e.getPaths("default")){var s=r.toAddress();if(0==r.branch&&r.index==a)return s.toString(this.network)}}}async accessControl(e,t){let i=await this.wdb.get("primary");if(this.wdb.options.acl.isRoot(e.options.cid))"primary"!==e.options.wid?(i=await this.wdb.get(e.options.wid),t=null):"*"===(t=t||"default")&&(t=null);else if("primary"!==e.options.wid){if(!await i.belongToAccount(e.options.cid,e.options.wid))throw new h(p.TYPE_ERROR,"Invalid wid.");i=await this.wdb.get(e.options.wid),t=null}else t=e.options.cid;return await i.ensureAccount({name:t,witness:!0}),[i,t]}async getAddressesByAccount(e,t,i){if(t)throw new h(p.MISC_ERROR,'address.list "account"');t=new g([e]);var r,[e,i]=await this.accessControl(i,t.str(0,"")),a=[],s=[],n=[];for(r of await e.getPaths(i)){var o=r.toAddress();(0==r.branch?a:1==r.branch?s:n).push(o.toString(this.network))}return[a,s,n]}async getAccountAddress(e,t,i){if(t)throw new h(p.MISC_ERROR,'address.receive "account"');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));if(t=await e.getAccount(i))return t.receive.getAddress("string")}async getAccountChangeAddress(e,t,i){if(t)throw new h(p.MISC_ERROR,"address.change account");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));if(t=await e.getAccount(i))return t.change.getAddress("string")}async getAccountNestedAddress(e,t,i){if(t)throw new h(p.MISC_ERROR,'address.nested.list "account"');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));if(t=await e.getAccount(i))return t.nested.getAddress("string")}async getBalance(e,t,i){if(t||3<e.length)throw new h(p.MISC_ERROR,'balance.confirmed ( "account" minconf includeWatchonly )');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,"")),r=t.u32(1,0);t=t.bool(2,!1);if(e.watchOnly!==t)return 0;let a;return t=await e.getBalance(i),a=0<r?t.confirmed:t.unconfirmed,w.btc(a,!0)}async getBalanceLog(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,'balance.log "account" (height)');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0));t=t.uint(1,0);return e.queryBalanceLog(i,t)}async getBalanceAll(e,t,i){if(t||3<e.length)throw new h(p.MISC_ERROR,'balance.all ( "account" minconf includeWatchonly )');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0));return(await e.getBalance(i)).toJSON()}async checkBalance(e,t,i){if(t)throw new h(p.MISC_ERROR,"balance.check");t=new g([e]);var[e,,]=await this.accessControl(i,t.str(0));return(await e.resetBalance()).toJSON()}async getUserToken(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"cp.user cid uid: 生成登录令牌 厂商编码 用户编码");e=(t=new g([e])).str(0),t=t.str(1);var[i]=await this.accessControl(i);return i.tokenCreate({cid:e,uid:t},t)}async masterkey(e,t,i){var[i,r]=await this.accessControl(i);if("primary"==i.id||"default"==r)return i.master.toJSON(!0)}async getHistory(e,t,i){if(t||1<e.length)throw new h(p.MISC_ERROR,"tx.history (page acct):查询交易历史记录 (页码 账号)");var r=(t=new g([e])).uint(0,1);if(r<1)throw new h(p.MISC_ERROR,"页面必须是大于0的数字");var[e,i]=await this.accessControl(i,t.str(1));t=await e.getHistory(i);a.sortTX(t);let s=0;var n,o=[];for(n of t){if(s<10*(r-1));else{if(s>=10*r)break;o.push(n)}s++}return i=await e.toDetails(o),(e={}).items=i,e.pageSize=10,e.pageNum=r,e.total=t.length,e}async sendSecret(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"comm.secret dst message (openid): 安全通信消息 收信地址 信息内容 (玩家账号)");e=(t=new g([e])).str(0,"");var r=t.str(1,""),[i,t]=(t=t.str(2,""),await this.accessControl(i,t));if(o.parseAddress(e,this.network))return i.sendSecret(e,r,t);throw new h(p.TYPE_ERROR,"Invalid Destination Address.")}async querySecret(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"comm.querySecret src dst pac (openid): 通信解密 发信地址 收信地址 密文 (玩家账号)");e=(t=new g([e])).str(0,"");var r=t.str(1,""),a=t.str(2,""),[t,s]=await this.accessControl(i,t.str(3,""));return this.wdb.options.acl.isRoot(i.options.cid)||await t.belongToAccount(s,r)?(s=(t=await t.db.ensureContact(i={contact:e,messenger:r,wallet:t,account:s})).ensureMessenger(i),i=x.ecdh(Buffer.from(t.publicKey,"hex"),Buffer.from(s.privateKey,"hex")),({aeskey:t,aesiv:s}=S.getAes(i.toString(),this.network)),{code:0,msg:{src:e,dst:r,content:Buffer.from(u.decrypt(t,s,a),"hex").toString()}}):{code:-1,msg:{src:e,dst:r,content:"Invald Account."}}}async calcHash(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"comm.hash content: 计算输入的哈希值");return t=new g([e]).str(0,""),b.hash256(Buffer.from(t)).toString("hex")}async commNotify(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"comm.notify addr content (openid): 发送点对点消息 地址 内容 (玩家账号)");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0,"");t=t.obj(1,{});return e.commNotify({dst:r,content:t,account:i})}async scanContact(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,'comm.scanContact "txid" ( index )');t=new g([e]);var[e,,]=await this.accessControl(i);i=t.hash(0),r(i,"Hash is required."),t=t.uint(1,-1);if(!i)throw new h(p.TYPE_ERROR,"Invalid parameter");if(e=await e.getTX(i))return this.wdb.scanContact(e.tx,t);throw new h(p.WALLET_ERROR,"TX not found.")}async listContact(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.listContact: 列表联系人");return t=new g([e]).array(0,[]),this.wdb.listContact(t,null,["address"])}async listNotify(e,t,i){if(t)throw new h(p.MISC_ERROR,"comm.listNotify (query): 通知列表 (查询条件,使用 account 参数可分账号查询)");return t=new g([e]).array(0,[]),this.wdb.listNotify(t)}async getReceivedByAccount(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,'account.received "account" ( minconf )');t=new g([e]);var r,a,[e,i]=await this.accessControl(i,t.str(0,"")),s=t.u32(1,0),n=this.wdb.curHeight,o=(t=await e.getPaths(i),new Set);for(r of t)o.add(r.hash);let d=0,l=-1;for(a of await e.getHistory(i)){var c=a.getDepth(n);if(!(c<s))for(var u of((-1===l||c<l)&&(l=c),a.tx.outputs)){var f=u.getHash("hex");f&&o.has(f)&&(d+=u.value)}}return w.btc(d,!0)}async getReceivedByAddress(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,'address.received "address" ( minconf )');t=new g([e]);var r,[e,,]=await this.accessControl(i),a=(i=t.str(0,""),t.u32(1,0)),s=this.wdb.curHeight,n=o.parseHash(i,this.network);let d=0;for(r of await e.getHistory())if(!(r.getDepth(s)<a))for(var l of r.tx.outputs)l.getHash("hex")===n&&(d+=l.value);return w.btc(d,!0)}async _toWalletTX(e,t){var i,[e,,]=await this.accessControl(e),r=await e.toDetails(t);if(!r)throw new h(p.WALLET_ERROR,"TX not found.");let a=!0;for(i of r.inputs)if(i.path){a=!1;break}var s=[];let n=0,o=0;for(let e=0;e<r.outputs.length;e++){var d=r.outputs[e];d.path?1!==d.path.branch&&(s.push({account:d.path.name,address:d.address.toString(this.network),category:"receive",amount:w.btc(d.value,!0),label:d.path.name,vout:e}),o+=d.value):a||(s.push({account:"",address:d.address?d.address.toString(this.network):null,category:"send",amount:-w.btc(d.value,!0),fee:-w.btc(r.getFee(),!0),vout:e}),n+=d.value)}return{amount:w.btc(a?o:-n,!0),confirmations:r.confirmations,blockhash:r.block?u.revHex(r.block):null,blockindex:r.index,blocktime:r.time,txid:u.revHex(r.hash),walletconflicts:[],time:r.mtime,timereceived:r.mtime,"bip125-replaceable":"no",details:s,hex:r.tx.toRaw().toString("hex")}}async getTransaction(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,'tx.get.wallet "txid" ( includeWatchonly )');t=new g([e]);var[e,,]=await this.accessControl(i),a=t.hash(0);r(a,"Hash is required."),t=t.bool(1,!1);if(!a)throw new h(p.TYPE_ERROR,"Invalid parameter");if(e=await e.getTX(a))return this._toWalletTX(i,e,t);throw new h(p.WALLET_ERROR,"TX not found.")}async abandonPending(e,t,i){if(t)throw new h(p.MISC_ERROR,"tx.abandonall.admin [account]: 废弃所有挂起的交易");t=new g([e]);var r,[a,e]=await this.accessControl(i,t.str(0,""));for(r of await a.getPending(e))try{await a.abandon(r.hash)}catch(e){this.logger.warning(e.message)}return null}async abandonTransaction(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,'tx.abandon.admin "txid"');t=new g([e]);var[e,,]=await this.accessControl(i);if(!(i=t.hash(0)))throw new h(p.TYPE_ERROR,"Invalid parameter.");if(await e.abandon(i))return null;throw new h(p.WALLET_ERROR,"Transaction not in wallet.")}async getUnconfirmedBalance(e,t,i){if(t||1<e.length)throw new h(p.MISC_ERROR,"balance.unconfirmed");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));t=await e.getBalance(i);return w.btc(t.unconfirmed,!0)}async importPrivKey(e,t,i){if(t||e.length<1||4<e.length)throw new h(p.MISC_ERROR,'key.import.private account "privatekey" passphrase [rescan]');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,"")),r=t.str(1),a=t.str(2);t=t.bool(3,!1);return(r=o.parseSecret(r,this.network)).witness=!0,await e.importKey(i,r,a),t&&await this.wdb.rescan(0),!0}async walletAuth(e,t,i){return!0}async importWallet(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,'wallet.import "filename" ( rescan password )');e=(t=new g([e])).str(0);var r,a=t.bool(1,!1),s=t.str(2,null);for(r of e.split(",").map(e=>e.trim()))r&&await this.wdb.loadBackup(r,s);return a&&await this.wdb.rescan(0),!0}async importAddress(e,t,i){if(t||e.length<1||4<e.length)throw new h(p.MISC_ERROR,"address.import account address [rescan p2sh]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));let r=t.str(1,"");var a=t.bool(2,!1);if(t.bool(3,!1)){let e=t.buf(0);if(!e)throw new h(p.TYPE_ERROR,"Invalid parameters.");e=v.fromRaw(e),e=v.createScript(e.hash160(),v.types.SCRIPTHASH),r=_.fromScript(e)}else r=o.parseAddress(r,this.network);return await e.importAddress(i,r),a&&await this.wdb.rescan(0),!0}async importPubkey(e,t,i){if(t||e.length<1||4<e.length)throw new h(p.MISC_ERROR,"key.import.public account pubkey [rescan]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,"")),r=t.buf(1);t=t.bool(2,!1);if(r)return r=E.fromPublic(r,this.network),await e.importKey(i,r),t&&await this.wdb.rescan(0),!0;throw new h(p.TYPE_ERROR,"Invalid parameter.")}async listAccounts(e,t,i){if(t||2<e.length)throw new h(p.MISC_ERROR,"account.list ( minconf includeWatchonly)");t=new g([e]);var r,[a]=await this.accessControl(i),s=t.u32(0,0),n=t.bool(1,!1),o={};for(r of await a.getAccounts()){var d=await a.getBalance(r);let e=d.unconfirmed;0<s&&(e=d.confirmed),a.watchOnly!==n&&(e=0),o[r]=w.btc(e,!0)}return o}async mapAccounts(e,t,i){if(t||2<e.length)throw new h(p.MISC_ERROR,"account.list ( minconf includeWatchonly)");t=new g([e]);var[e]=await this.accessControl(i);return t.u32(0,0),t.bool(1,!1),e.getAccountMap()}async listConservedUnspent(e,t,i){if(t||0<e.length)throw new h(p.MISC_ERROR,"coin.conserved.list: 查询已经保持的Unspent列表");var r,[t]=await this.accessControl(i),a=[];for(r of t.getConserved())a.push({txid:r.txid(),vout:r.index});return a}async accountVirtualAdd(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"account.virtualadd.admin account amount: 虚增账户余额 账户名称 金额");t=new g([e]);var[e]=await this.accessControl(i,t.str(2,""));i=t.str(0),t=t.u64(1),i=await e.ensureIndex(i);return e.txdb.addAccountAmount(i,t),!0}async accountCheckAmount(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"account.checkamount account: 验证账户余额 账户名称");t=new g([e]);var[e]=await this.accessControl(i,t.str(2,""));i=t.str(0),t=await e.ensureIndex(i);return e.txdb.checkAccountAmount(t),!0}async listReceivedByAccount(e,t,i){if(t||3<e.length)throw new h(p.MISC_ERROR,"account.listreceived ( minconf includeempty includeWatchonly )");e=(t=new g([e])).u32(0,0);var r=t.bool(1,!1);t=t.bool(2,!1);return this._listReceived(i,e,r,t,!0)}async listReceivedByAddress(e,t,i){if(t||3<e.length)throw new h(p.MISC_ERROR,"address.received.list ( minconf includeempty includeWatchonly )");e=(t=new g([e])).u32(0,0);var r=t.bool(1,!1);t=t.bool(2,!1);return this._listReceived(i,e,r,t,!1)}async _listReceived(e,t,i,r,a){var s,n,o,[p]=await this.accessControl(e),d=(e=await p.getPaths(),this.wdb.curHeight);let h=new Map;for(s of e){var l=s.toAddress();h.set(s.hash,{involvesWatchonly:p.watchOnly,address:l.toString(this.network),account:s.name,amount:0,confirmations:-1,label:""})}for(n of await p.getHistory()){var c=n.getDepth(d);if(!(c<t))for(var u of n.tx.outputs){var f,m=u.getAddress();m&&(f=m.getHash("hex"),f=h.get(f))&&((-1===f.confirmations||c<f.confirmations)&&(f.confirmations=c),f.address=m.toString(this.network),f.amount+=u.value)}}let g=[];for(o of h.values())g.push(o);if(a){let e=new Map;for(var v of g){var y=e.get(v.account);y?y.amount+=v.amount:(e.set(v.account,v),v.address=void 0)}for(var b of(g=[],e.values()))g.push(b)}var x,S=[];for(x of g)if(i||0!==x.amount){-1===x.confirmations&&(x.confirmations=0);try{x.amount=w.btc(x.amount,!0),S.push(x)}catch(e){this.logger.error("invalid amount:entry(%s) msg(%s)",JSON.stringify(x),e.message)}}return S}async listSinceBlock(e,t,i){if(t)throw new h(p.MISC_ERROR,'tx.history.since ( "blockhash" target-confirmations includeWatchonly account)');var r=this.wdb.curHeight,[e,a]=(t=new g([e]),await this.accessControl(i,t.str(3,""))),s=t.hash(0),n=t.u32(1,0);t=t.bool(2,!1);if(e.watchOnly!==t)return[];let o=-1;-1===(o=s&&(t=await this.client.getEntry(s))?t.height:o)&&(o=r);var d,l,c=[];let f;for(d of await e.getHistory(a))d.height<o||d.getDepth(r)<n||((!f||d.height>f)&&(f=d),l=await this._toListTX(i,d),c.push(l));return{transactions:c,lastblock:f&&f.block?u.revHex(f.block):m.NULL_HASH}}async _toListTX(e,t){var[e]=await this.accessControl(e),i=await e.toDetails(t);if(!i)throw new h(p.WALLET_ERROR,"TX not found.");let a=!0;for(let e of i.inputs)if(e.path){a=!1;break}let s,n,o,d,l,c,f=0,m=0;for(let e=0;e<i.outputs.length;e++){let t=i.outputs[e];t.path?1!==t.path.branch&&(m+=t.value,n=t,d=e):(f+=t.value,s=t,o=e)}return c=a?(l=n,d):(l=s,o),l||(r(!a),a=!0,l=n,c=d),{account:l.path?l.path.name:"",address:l.address?l.address.toString(this.network):null,category:a?"receive":"send",amount:w.btc(a?m:-f,!0),label:l.path?l.path.name:void 0,vout:c,confirmations:i.getDepth(),blockhash:i.block?u.revHex(i.block):null,blockindex:i.index,blocktime:i.time,txid:u.revHex(i.hash),walletconflicts:[],time:i.mtime,timereceived:i.mtime,"bip125-replaceable":"no"}}async listTransactions(e,t,i){if(t||4<e.length)throw new h(p.MISC_ERROR,'tx.list ( "account" count from includeWatchonly)');t=new g([e]);var[e,r]=await this.accessControl(i,t.str(0,"")),s=t.u32(1,10),n=t.u32(2,0);t=t.bool(3,!1);if(e.watchOnly!==t)return[];var o=await e.getHistory(r),d=(t=(a.sortTX(o),n+s),Math.min(t,o.length)),l=[];for(let e=n;e<d;e++){var c=o[e];c=await this._toListTX(i,c);l.push(c)}return l}async selectone(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"coin.selectone options (account)");t=new g([e]);var r,[a,e]=await this.accessControl(i,t.str(1,"")),s=t.obj(0,{}),n=[];for(r of await a.getCoins(e)){var o=r.getDepth(this.wdb.curHeight),d=r.getAddress();if(d){var l=r.getHash("hex");if(l&&!r.isColored&&!(s.value&&r.value<s.value||r.coinbase&&0<r.height&&this.wdb.curHeight<r.height+y.COINBASE_MATURITY)&&(l=await a.getKey(l),n.push({txid:r.txid(),vout:r.index,address:d?d.toString(this.network):null,account:l?l.name:void 0,redeemScript:l&&l.script?l.script.toJSON():void 0,scriptPubKey:r.script.toJSON(),amount:w.btc(r.value,!0),confirmations:o,spendable:!a.isConserved(r),solvable:!0}),s.len&&n.length>=s.len))break}}return n}async listUnspent(e,t,i){if(t||4<e.length)throw new h(p.MISC_ERROR,'coin.list ( minconf maxconf ["address", account] )');let r=new g([e]);var[s,t]=await this.accessControl(i,r.str(3,"")),n=r.u32(0,1),d=r.u32(1,9999999),l=r.array(2),c=this.wdb.curHeight,u=new Set;if(l&&0<l.length){let e=new g([l]);for(let t=0;t<l.length;t++){var f=e.str(t,"");f=o.parseHash(f,this.network);if(u.has(f))throw new h(p.INVALID_PARAMETER,"Duplicate address.");u.add(f)}}e=await s.getCoins(t);var m,v,y,b,x=(a.sortCoins(e),[]);for(m of e)m.isColored||(v=m.getDepth(c))<n||d<v||((y=m.getAddress())?(b=m.getHash("hex"),l&&0<l.length&&(!b||!u.has(b))||(b=await s.getKey(b),x.push({txid:m.txid(),vout:m.index,address:y?y.toString(this.network):null,account:b?b.name:void 0,redeemScript:b&&b.script?b.script.toJSON():void 0,scriptPubKey:m.script.toJSON(),amount:w.btc(m.value,!0),confirmations:v,spendable:!s.isConserved(m),solvable:!0}))):this.logger.error("mistaken coin: miss address",m.hash,m.index));return x}async checkUnspent(e,t,r){if(t)throw new h(p.MISC_ERROR,"coin.check (account)");t=new g([e]);let[a,s]=await this.accessControl(r,t.str(0,""));var n,o=[];if(this.wdb.$parent){let t=0,r=0,p=null;try{null!=s?(n=await a.ensureIndex(s),p=await a.txdb.getAccountOutpoints(n),Array.isArray(p)&&(p=p.filter(e=>null!==e)),r=p?p.length:0):this.logger.info("Starting global UTXO check, processing in batches of %d",1e3),0<r&&this.logger.info("Found %d UTXOs to check, processing in batches of %d",r,1e3)}catch(e){this.logger.warning("Failed to get total UTXO count: %s",e.message)}if(null!=s&&p){let i=0;for(;i<p.length;)try{var d,l,c,u=p.slice(i,i+1e3),f=[];for(d of u){var w=await a.txdb.getCredit(d.hash,d.index);w&&!w.spent&&f.push(w.coin)}for(l of f)try{await this.wdb.$parent.getCoin(l.hash,l.index)||o.push(l.txid(),l.index)}catch(e){this.logger.warning("Error checking UTXO %s/%d: %s",l.hash,l.index,e.message)}(t+=f.length)%1e3==0&&(0<r?(c=Math.round(t/r*100),this.logger.info("UTXO check progress: %d/%d (%d%%)",t,r,c)):this.logger.info("UTXO check progress: %d processed",t)),i+=1e3}catch(e){this.logger.error("Error processing UTXO batch: %s",e.message),i+=1e3}}else{let r=!0,s=null;for(;r;)try{let n=[],p=i(62).txdb,d=0,h=null;for(var v of(await a.txdb.range({gte:s||p.c(m.NULL_HASH,0),lte:p.c(m.HIGH_HASH,4294967295),parse:(e,t)=>{if(1e3<=d)return!1;h=e;var[e,i]=p.cc(e),r=(t=C.fromRaw(t),A.toKey(e,i));return t.coin.hash=e,t.coin.index=i,a.txdb.coinCache.set(r,t),t.spent||(n.push(t.coin),d++),!0}}),s=h,n))try{await this.wdb.$parent.getCoin(v.hash,v.index)||o.push({hash:v.txid(),index:v.index})}catch(e){this.logger.warning("Error checking UTXO %s/%d: %s",v.hash,v.index,e.message)}(t+=n.length)%1e3==0&&this.logger.info("UTXO check progress: %d processed",t),r=1e3===n.length}catch(e){this.logger.error("Error processing UTXO batch: %s",e.message),r=!0}}this.logger.info("UTXO check completed: processed %d UTXOs, found %d issues",t,o.length)}return o}async listProp(e,t,i){if(t||4<e.length)throw new h(p.MISC_ERROR,"prop.wallet.byaddress ( minconf maxconf [address, account] )");let r=new g([e]);var[s,t]=await this.accessControl(i,r.str(3,"")),n=r.u32(0,1),d=r.u32(1,9999999),l=r.array(2),c=this.wdb.curHeight,u=new Set;if(l){let e=new g([l]);for(let t=0;t<l.length;t++){var f=e.str(t,"");f=o.parseHash(f,this.network);if(u.has(f))throw new h(p.INVALID_PARAMETER,"Duplicate address.");u.add(f)}}e=await s.getCoins(t);var m,v=(a.sortCoins(e),[]);for(m of e){var y,b,x,S=m.getDepth(c);S<n||d<S||(y=m.getAddress())&&(b=m.getHash("hex"),!l||b&&u.has(b))&&(b=await s.getKey(b),x=m.getReturnData([U.OP_PROPCREATE,U.OP_PROPCREATE]))&&v.push({txid:m.txid(),vout:m.index,address:y?y.toString(this.network):null,account:b?b.name:void 0,amount:w.btc(m.value,!0),confirmations:S,spendable:!s.isConserved(m),solvable:!0,nd:x})}return v}async listPropByOid(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"prop.wallet.byoid oid");t=new g([e]);var r,[s,e]=await this.accessControl(i,t.str(1,"")),n=t.str(0),o=this.wdb.curHeight,d=(i=await s.getCoins(e),a.sortCoins(i),[]);for(r of i){var l,c,u,f=r.getDepth(o);f<0||9999999<f||(l=r.getAddress())&&(c=r.getHash("hex"),c=await s.getKey(c),u=r.getReturnData([U.OP_PROPCREATE,U.OP_PROPEXCHANGE]))&&u.oid==n&&d.push({txid:r.txid(),vout:r.index,address:l?l.toString(this.network):null,account:c?c.name:void 0,amount:w.btc(r.value,!0),confirmations:f,spendable:!s.isConserved(r),solvable:!0,nd:u})}return{list:d,count:d.length}}async listLockedUnspent(e,t,i){if(t||2<e.length)throw new h(p.MISC_ERROR,'coin.list.locked ["address", account]');let r=new g([e]);var[s,t]=await this.accessControl(i,r.str(1,"")),n=r.array(0),d=this.wdb.curHeight,l=u.now(),c=new Set;if(n){let e=new g([n]);for(let t=0;t<n.length;t++){var f=e.str(t,"");f=o.parseHash(f,this.network);if(c.has(f))throw new h(p.INVALID_PARAMETER,"Duplicate address.");c.add(f)}}let m;m=account?await s.getCoins(t):s.getLockedCoins(),a.sortCoins(m);var v,y,b,x,S,_,E,k=[];for(v of m)(v.lockedByLocktime(d,l)||v.lockedBySequence(d,l))&&(y=v.getAddress())&&(b=v.getDepth(d),E=v.getHash("hex"),!n||E&&c.has(E))&&([x,S,_]=v.getLockStatus(),E=await s.getKey(E),k.push({txid:v.txid(),vout:v.index,address:y?y.toString(this.network):null,account:E?E.name:void 0,redeemScript:E&&E.script?E.script.toJSON():void 0,scriptPubKey:v.script.toJSON(),amount:w.btc(v.value,!0),confirmations:b,spendable:!1,solvable:!0,locktype:x,lockheight:S,locktime:_}));return k}async listOperUnspent(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,'coin.conserved.oper.list unlock ([{"txid":"txid","vout":n},...]) 保持/解除保持一组UTXO: true/false [{"txid": "交易id","vout": "输出序号"}]');let r=new g([e]);var a,[s]=await this.accessControl(i),n=r.bool(0,!1);if(!(t=r.array(1)))throw new h(p.TYPE_ERROR,"Invalid parameter.");for(a of t){let e=new g([a]);var o=e.hash("txid"),d=e.u32("vout");if(null==o||null==d)throw new h(p.INVALID_PARAMETER,"Invalid parameter.");o=new A(o,d),n?s.unConserveCoin(o):s.conserveCoin(o)}return!0}async setTXFee(e,t,i){if(t||e.length<1||1<e.length)throw new h(p.MISC_ERROR,"sys.setfee rate");if(null==(t=new g([e]).ufixed(0,8)))throw new h(p.TYPE_ERROR,"Invalid parameter.");return this.wdb.feeRate=t,!0}async signMessage(e,t,i){if(t||2!==e.length)throw new h(p.MISC_ERROR,'sys.message.sign "address" "message"');t=new g([e]);var[e]=await this.accessControl(i);if(!e.master.key)throw new h(p.WALLET_UNLOCK_NEEDED,"Wallet is locked.");i=t.str(0,""),i=o.parseHash(i,this.network);if(e=await e.getKey(i))return i=t.str(1,""),e.sign(b.hash256(Buffer.from(d+i,"utf8"))).toString("base64");throw new h(p.WALLET_ERROR,"Address not found.")}async changePassphrase(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,'wallet.changepassphrase "oldpassphrase" "newpassphrase"');t=new g([e]);var[e]=await this.accessControl(i);i=t.str(0,""),t=t.str(1,"");if(!e.master.encrypted)throw new h(p.WALLET_WRONG_ENC_STATE,"Wallet is not encrypted.");if(i.length<1||t.length<1)throw new h(p.INVALID_PARAMETER,"Invalid parameter");return await e.setPassphrase(i,t),null}async unlock(e,t,i){var r=new g([e]),[i]=await this.accessControl(i),a=r.str(0);r=r.u32(1,60);if(t||i.master.encrypted&&0==e.length)throw new h(p.MISC_ERROR,'wallet.unlock "passphrase" timeout');if(!i.master.encrypted)throw new h(p.WALLET_WRONG_ENC_STATE,"Wallet is not encrypted.");if(a.length<1)throw new h(p.INVALID_PARAMETER,"Invalid parameter");if(null==r)throw new h(p.TYPE_ERROR,"Invalid parameter");return await i.unlock(a,r),null}async decryptWallet(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,'wallet.decrypt "passphrase"');t=new g([e]);var[e]=await this.accessControl(i);i=t.str(0,"");if(!e.master.encrypted)throw new h(p.WALLET_WRONG_ENC_STATE,"Running with an decrypted wallet.");if(i.length<1)throw new h(p.MISC_ERROR,'wallet.decrypt "passphrase"');try{await e.setPassphrase(i)}catch(e){throw new h(p.WALLET_ENCRYPTION_FAILED,"Decryption failed.")}return"wallet decrypted"}async importPrunedFunds(e,t,i){if(t||e.length<2||3<e.length)throw new h(p.MISC_ERROR,'tx.importprunedfunds.admin "rawtransaction" "txoutproof" ( "label" )');if(e=(t=new g([e])).buf(0),t=t.buf(1),!e||!t)throw new h(p.TYPE_ERROR,"Invalid parameter.");e=I.fromRaw(e);var r=(t=k.fromRaw(t)).hash("hex");if(!t.verify())throw new h(p.VERIFY_ERROR,"Invalid proof.");if(!t.hasTX(e.hash("hex")))throw new h(p.VERIFY_ERROR,"Invalid proof.");var a=await this.client.getEntry(r);if(-1===a)throw new h(p.VERIFY_ERROR,"Invalid proof.");if(r={hash:r,time:t.time,mtp:t.mtp,height:a},await this.wdb.addTX(e,r))return null;throw new h(p.WALLET_ERROR,"No tracked address for TX.")}async removePrunedFunds(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,'tx.removeprunedfunds.admin "txid"');t=new g([e]);var[e]=await this.accessControl(i);if(!(i=t.hash(0)))throw new h(p.TYPE_ERROR,"Invalid parameter.");if(await e.remove(i))return null;throw new h(p.WALLET_ERROR,"Transaction not in wallet.")}async getWallets(e,t,i){return this.wdb.getWallets()}async getWalletBlock(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"wallet.block height");t=new g([e]);var[e]=await this.accessControl(i);i=t.uint(0);return(t=await e.getBlock(i))?t.toJSON():null}async getWalletLayoutH(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"wallet.layouth height");return t=new g([e]).uint(0),(e=await this.wdb.getBlock(t))?e.toJSON():null}async getWalletInfo(e,t,i){if(t)throw new h(p.MISC_ERROR,"wallet.info");return((t=new g([e]).str(0,""))?await this.wdb.get(t):(await this.accessControl(i))[0]).toJSON(!1)}async scRegister(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"sc.register options (account): 发布合约 合约参数列表 (子账户)");t=new g([e]);var[r,a]=await this.accessControl(i,t.str(1,""));let s=t.obj(0);if(!s)throw new h(p.MISC_ERROR,"sc.register: options is null");let n=1e5;switch(s.oper){case"change":if(s.oper=T.scState,!s.dst||!s.state)throw new h(p.TYPE_ERROR,"sc.register: dst or state is null.");if(!this.wdb.$parent)throw new h(p.TYPE_ERROR,"sc.register: not support this operation.");var o=await this.wdb.$parent.chain.db.getSCList([["options.dst",s.dst]]);if(!o||0==o.list.length)throw new h(p.TYPE_ERROR,"sc.register: contract not exist.");switch(o.list[0].options.state){case P.Normal:if(s.state!=P.Frozen&&s.state!=P.Destroy)throw new h(p.TYPE_ERROR,"Contract State Error");break;case P.Frozen:if(s.state!=P.Normal&&s.state!=P.Destroy)throw new h(p.TYPE_ERROR,"Contract State Error");break;default:throw new h(p.TYPE_ERROR,"Contract State Error")}if(s.addr=o.list[0].options.addr,await r.belongToAccount(a,s.addr))break;throw new h(p.MISC_ERROR,"sc.register: Invald Account.");case"update":if(s.oper=T.scUpdate,!s.dst)throw new h(p.TYPE_ERROR,"sc.register: dst is null.");if(!this.wdb.$parent)throw new h(p.TYPE_ERROR,"sc.register: not support this operation.");if(!(o=await this.wdb.$parent.chain.db.getSCList([["options.dst",s.dst]]))||0==o.list.length)throw new h(p.TYPE_ERROR,"sc.register: contract not exist.");if(o.list[0].options.state!=P.Normal)throw new h(p.TYPE_ERROR,"sc.register: contract state error.");if(s.addr=o.list[0].options.addr,await r.belongToAccount(a,s.addr))break;throw new h(p.MISC_ERROR,"sc.register: Invald Account.");default:if(n=1e8,s.oper=T.scRegister,s.addr=(await r.createReceive(a)).getAddress("string"),s.dst=r.getSCAddress(u.hashInt(s.addr)).toString(),this.wdb.$parent&&(o=await this.wdb.$parent.chain.db.getSCList([["options.dst",s.dst]]))&&0<o.list.length)throw new h(p.TYPE_ERROR,"sc.register: contract address conflict.")}return(e=(await r.getPrivateKey(s.addr)).signData(s)).data.sig=e.sig,s=e.data,i=await r.send({subtractFee:!1,sort:!1,outputs:[{address:s.dst,value:n}],comment:JSON.stringify(s)},a),await this.wdb.logAudit({address:s.addr,oper:s.oper,hash:i.hash("hex"),index:0}),s.txid=i.rhash(),s}async scRun(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,'sc.run str options (account): 调用合约 逗分参数字符串("合约收款地址,转账金额") 参数对象 (子账户)');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0).split(","),a=(t=t.obj(1,{}),r.shift());if(!this.wdb.$parent)throw new h(p.TYPE_ERROR,"sc.run: not support this operation.");var s=await this.wdb.$parent.chain.db.getSCList([["options.dst",a]]);if(!s||0==s.list.length)throw new h(p.TYPE_ERROR,"sc.run: contract not exist.");if(1!=s.list[0].options.state)throw new h(p.TYPE_ERROR,`sc.run: contract execute disabled(state ${s.list[0].options.state}).`);if(t.ver&&t.ver!=s.list[0].options.ver)throw new h(p.TYPE_ERROR,"sc.run: contract version inconsistency.");return s=(0|parseInt(r.shift()))>>>0,o.parseAddress(a,this.network),r=await e.send({subtractFee:!1,sort:!1,outputs:[{address:a,value:s}],comment:JSON.stringify({oper:"scrun",params:t})},i),a=await e.getAccount(i),await this.wdb.logAudit({address:a.receive.getAddress("string"),oper:T.scRun,hash:r.hash("hex"),index:0}),(await e.getDetails(r.hash("hex"))).toJSON()}async cpRegister(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,'cp.create name "ip,addr,class,rate" (openid): 注册厂商 名称(不少于4个字符) "IP地址,注册地址,类别,媒体分成比例" (子账号)');return this.$cpRegister(e,i,!1)}async cpRegisterAsync(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,'cp.create.async name "ip,addr,class,rate" (openid): 注册厂商 名称(不少于4个字符) "IP地址,注册地址,类别,媒体分成比例" (子账号)');return this.$cpRegister(e,i,!0)}async $cpRegister(e,t,i){e=new g([e]);var r=decodeURIComponent(e.str(0)),a=(o=e.str(1,"").split(","))[0],s=o[1],n=o[2],o=o[3]?parseInt(o[3]):15,[t,e]=await this.accessControl(t,e.str(2,"")),d=f.verifyDataFormat({name:r,ip:a,grate:o,cls:n});if(d)throw new h(p.MISC_ERROR,d);return d={cid:V(),oper:T.cpRegister,name:r,ip:a,grate:o,cls:n},await t.cpRegister(u.isBech32(s)?s:null,d,e,i),d}async cpChange(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,'cp.change cid "newname,ip,addr,class,rate" "openid": 修改厂商信息 CP编号 "新的名称,IP,新的注册地址,类别,分成比例" 授权账号');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),a=t.str(0),s=(t=decodeURIComponent(t.str(1,"")).split(","))[0],n=t[1];let o=t[2];var d=t[3];t=parseInt(t[4])||null;if(l=f.verifyDataFormat({name:s,ip:n,grate:t,cls:d}))throw new h(p.MISC_ERROR,l);o&&(o=_.fromString(o),r(o instanceof _,"Not an address."));var l={cid:a,newName:s,ip:n,addr:o,grate:t,cls:d},[,,]=await e.cpChange(l,i);return l.addr=l.addr.toString(),l}async cpQuery(e,t,i){if(t)throw new h(p.MISC_ERROR,"cp.query (conditions account): 查询钱包中的厂商列表 (复合条件 子帐号)");t=new g([e]);var r,[a,s]=await this.accessControl(i,t.str(1,""));e=t.array(0,[]),i=a.db.cpList.query(e);for(r of i.list)r.owned=await a.belongToAccount(s,r.current.address);return i}async cpQueryRemote(e,t,i){if(t)throw new h(p.MISC_ERROR,"cp.query.remote conditions: 查询厂商列表 (复合条件)");t=new g([e]);var r,[a,s]=await this.accessControl(i,t.str(1,""));e=t.array(0,[]),i=await a.db.client.execute("cp.remoteQuery",[e]);for(r of i.list)r.owned=await a.belongToAccount(s,r.current.address);return i}async cpMine(e,t,i){if(t)throw new h(p.MISC_ERROR,"cp.mine (conditions account): 查询钱包中归属当前操作员/指定账户的厂商列表 (复合条件 子帐号)");t=new g([e]);let[r,a]=await this.accessControl(i,t.str(1,""));return(e=t.array(0,[])).push(["size",-1]),(await r.db.cpList.predict(async(e,t)=>r.belongToAccount(a,t.current.address))).query(e)}async htlcSuggest(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"htlc.suggest params [account]: 发起HTLC 参数对象({alice, bob, amount, rate}) [子账户]");e=(t=new g([e])).obj(0,{});var r,[i,t]=await this.accessControl(i,t.str(1,""));if(!e.ab)throw new h(p.MISC_ERROR,"htlc.suggest: params.ab(alice bchain address) is null");if(!Number.isInteger(e.amount))throw new h(p.MISC_ERROR,"htlc.suggest: illegal params.amount");if(e.amount=parseInt(e.amount),e.amount<0||e.amount>1e4*y.COIN)throw new h(p.MISC_ERROR,"htlc.suggest: illegal params.amount");if(e.rate=parseFloat(e.rate),e.rate<0||e.amount*e.rate>y.MAX_MONEY)throw new h(p.MISC_ERROR,"htlc.suggest: illegal params.rate");if(e.target)return r=(await i.createReceive(t)).getAddress().toString(this.network),e={amount:e.amount,rate:e.rate,dst:e.target,aa:_.fromString(r).hash,ab:_.fromString(e.ab).hash,ba:_.fromString(e.ba).hash},[i]=await i.sendContracts([e],t,O),i?{txid:i.rhash(),aa:r}:null;throw new h(p.MISC_ERROR,"htlc.suggest: params.target is null")}async htlcAssent(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"htlc.assent params({txid}) [account]: 响应HTLC 参数对象 [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));t=t.obj(0,{});if(!Number.isInteger(t.amount))throw new h(p.MISC_ERROR,"htlc.assent: illegal params.amount");if(t.amount=parseInt(t.amount),t.amount<0||t.amount>1e4*y.COIN)throw new h(p.MISC_ERROR,"htlc.assent: illegal params.amount");if(t.rate=parseFloat(t.rate),t.rate<0||t.amount*t.rate>y.MAX_MONEY)throw new h(p.MISC_ERROR,"htlc.assent: illegal params.rate");var r=(await e.createReceive(i)).getAddress().toString(this.network),[t]=(r={src:t.src,dst:t.dst,hash:t.hash,index:t.index,ab:Buffer.from(t.ab,"hex"),ba:Buffer.from(t.ba,"hex"),bb:_.fromString(r).hash,amount:t.amount*t.rate},await e.sendContracts([r],i,N));return t?{txid:t.rhash()}:null}async htlcSuggestDeal(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"htlc.suggest.deal params({txid,index,sa}) [account]: 兑付HTLC 参数对象 [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,"")),[e,,]=(t=t.obj(0),t={suggest:!0,hash:u.revHex(t.txid),index:t.index,sa:t.sa},await e.htlcDeal(t,i));return e?{txid:e.rhash()}:null}async htlcQuery(e,t,i){if(t)throw new h(p.MISC_ERROR,"htlc.query query: 条件查询HTLC合约 条件数组");return(t=new g([e]).array(0,[])).push(["pst","!=",L.Cancel]),this.wdb.htlcList.query(t)}async htlcAssentDeal(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"htlc.assent.deal params({txid,index,sa}) [account]: 兑付HTLC 参数对象 [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,"")),[e,,]=(t=t.obj(0),t={hash:u.revHex(t.txid),index:t.index,sa:t.sa},await e.htlcDeal(t,i));return e?{txid:e.rhash()}:null}async htlcAssentCancel(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"htlc.assent.cancel params({txid, index, master}) [account]: 取消HTLC应答 参数对象 [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,"")),[e,,]=(t=t.obj(0),t={hash:u.revHex(t.txid),index:t.index,master:t.bb},await e.htlcCancel(t,i));return e?{txid:e.rhash()}:null}async htlcSuggestCancel(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"htlc.suggest.cancel params({txid, index, sa, master}) [account]: 取消HTLC请求 参数对象 [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,"")),[e,,]=(t=t.obj(0),t={suggest:!0,hash:u.revHex(t.txid),index:t.index,sa:t.sa,master:t.aa},await e.htlcCancel(t,i));return e?{txid:e.rhash()}:null}async sendComment(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"comm.comment params [account]: 发起附言交易 参数对象({body, bob}) [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));t=t.obj(0,{});if(!Number.isInteger(t.amount))throw new h(p.MISC_ERROR,"comm.comment: illegal params.amount");if(t.amount=parseInt(t.amount),t.amount<0||t.amount>1e4*y.COIN)throw new h(p.MISC_ERROR,"comm.comment: illegal params.amount");var r={bob:t.bob,body:t.body,amount:t.amount};t.alice||(t.alice=e.getAddress(),i&&(a=await e.createReceive(i),t.alice=a.getAddress()));var a=(await e.getPrivateKey(t.alice)).signData(r),[t]=(a.data.sig=a.sig,await e.sendContracts([a.data],i,M));return t?{txid:t.rhash()}:null}async commentQuery(e,t,i){if(t)throw new h(p.MISC_ERROR,"comm.comment.query query: 条件查询附言输出 条件数组");return t=new g([e]).array(0,[]),this.wdb.commentList.query(t)}async contractExecute(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"contract.execute tid master: 执行交易对合约 交易编号 执行方(1-发起人,2-承兑人)");t=new g([e]);var[e]=await this.accessControl(i),[e,,]=(i=t.str(0),t=t.u32(1,2),await e.contractExecute(i,t));return e.toJSON()}async contractPromise(e,t,i){if(t||e.length<1||2<e.length)throw new h(p.MISC_ERROR,"contract.promise tid [openid]: 签署交易对合约 交易编号(type.address) [子账号]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,"")),[e,,]=(t=t.str(0),await e.contractPromise(t,i));return e.toJSON()}async contractOfMine(e,t,i){if(t||e.length<1||3<e.length)throw new h(p.MISC_ERROR,"contract.mine type page [openid]: 获取已签署交易对合约列表 交易对类型 页码 [子账号]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.uint(0,1);t=t.uint(1,1);return e.db.getContracts(r,t,i)}async contractCreate(e,t,i){if(t||e.length<4||5<e.length)throw new h(p.MISC_ERROR,"contract.create type src dst addr [openid] : 发布一个交易对合约 交易对类型 出让游戏金数值 换取兑换币数值 兑换币收款地址 [子账号]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(4,"")),r=t.u64(0),a=t.u64(1),s=t.u64(2),[e,,]=(t=t.str(3),await e.contractCreate(r,a,s,t,i));return e.toJSON()}async propGet(e,t,i){if(t)throw new h(p.MISC_ERROR,"prop.wallet.byid pid: 查询自己的物品 PID");return t=new g([e]).str(0,""),e=[],(t=await this.wdb.propList.getVp(t))&&t.pst!=B.Delete&&e.push(t),e}async propQuery(e,t,i){if(t)throw new h(p.MISC_ERROR,"prop.query query: 条件查询自己的物品 条件数组");t=new g([e]);var[e]=await this.accessControl(i,t.str(1,""));return(i=t.array(0,[])).push(["pst","!=",B.Delete]),(await e.getPropList()).query(i)}async mySaleList(e,t,i){if(t)throw new h(p.MISC_ERROR,"prop.query.auction (page acct): 查询自己拍卖的物品 (页码 账户)");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));t=t.uint(0,1);return e.mySaleList(t,i)}async onSaleList(e,t,i){e=new g([e]);var[i,r]=await this.accessControl(i,e.str(1,""));e=e.uint(0,1);return i.onSaleList(e,r)}async propBuy(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"prop.buy pid price [openid] : 竞拍道具 道具编号 出价 [子账号]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0),[e,,]=(t=t.u64(1),await e.propBuy(r,t,i));return e.toJSON()}async propFound(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"prop.found pid (openid): 熔铸道具 道具编号 (账号)");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));t=t.str(0);if(!(t=await e.db.propList.getVp(t))||t.pst==B.Delete)throw new h(p.MISC_ERROR,"prop.found prop not exist");if(!await e.ownedAddress(t.current.address))throw new h(p.MISC_ERROR,"prop.found: current account not owned prop.");if(t.pst!=B.Ready)throw new h(p.MISC_ERROR,"prop.found prop can not be found on current status");var[e,,t]=await e.propFound(t.current.hash,t.current.index,i);if(e&&t)return{hash:e.hash("hex"),txid:e.rhash(),index:0,cid:t.cid,pid:t.pid,oid:t.oid,gold:e.outputs[0].value}}async propSale(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"prop.sale pid fixedPrice [openid]: 拍卖道具 道具编号 一口价 [子帐号]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0);if(!(r=await e.db.propList.getVp(r))||r.pst==B.Delete)throw new h(p.MISC_ERROR,"prop.sale prop not exist");if(r.pst!=B.Ready)throw new h(p.MISC_ERROR,"prop.sale prop cannt be sent on current status");t=t.u64(1,0);var[e,,]=await e.propSale(r.current.hash,r.current.index,t,i);return e.toJSON()}async propSendListAdmin(e,t,i){return this.propSendList(e,t,i,!0)}async propSendList(e,t,i,r=!1){if(t||e.length<1)throw new h(p.MISC_ERROR,"prop.sendlist (addr|txid|index)(n,) [openid]: 批量转移道具 道具数组(地址|交易ID|输出索引) [子账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,"")),a=[];if((t=t.str(0).split(","))&&Array.isArray(t))for(var s of t){var n,o;3<=(s=s.split("|")).length&&(n=s[0],o=new A(u.revHex(s[1]),parseInt(s[2])),4<=s.length?a.push([o,_.fromString(n),s[3]]):a.push([o,_.fromString(n)]))}var[t,,e]=await e.propExchangeList(a,i,r);if(t&&e){let i=t.hash("hex"),r=t.rhash();return e.map(e=>({hash:i,txid:r,cid:e.cid,pid:e.pid,oid:e.oid,gold:e.gold,addr:e.addr}))}}async propReceive(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"prop.receive tx [account]: 捐赠接收函数 捐赠交易字符串 [接收账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));if(!(t=t.buf(0)))throw new h(p.TYPE_ERROR,"Invalid TX Info.");t=I.fromRaw(t);var[e,,t]=await e.propReceive(t,i);if(e&&t)return{hash:e.hash("hex"),txid:e.rhash(),cid:t.cid,pid:t.pid,oid:t.oid,gold:t.gold,addr:t.simAddr,gaddr:t.gaddr}}async propDonate(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"prop.donate pid [openid]: 捐赠道具函数 道具ID [发起账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));t=t.str(0);if(!(t=await e.db.propList.getVp(t))||t.pst==B.Delete)throw new h(p.MISC_ERROR,"prop not exist");if(t.pst!=B.Ready)throw new h(p.MISC_ERROR,"prop cannt be sent on current status");t=new A(t.current.hash,t.current.index);var[e,,t]=await e.propDonate(t,i);if(e&&t)return{hash:e.hash("hex"),txid:e.rhash(),cid:t.cid,pid:t.pid,oid:t.oid,gold:t.gold,raw:e.toRaw().toString("hex")}}async propExchange(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"prop.send addr pid [openid]: 转移道具函数 接收地址 物品编号 [发起账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0);t=t.str(1);if(!(t=await e.db.propList.getVp(t))||t.pst==B.Delete)throw new h(p.MISC_ERROR,"prop.send prop not exist");if(t.pst!=B.Ready)throw new h(p.MISC_ERROR,"prop.send prop cannt be sent on current status");var[e,,t]=await e.propExchange(new A(t.current.hash,t.current.index),_.fromString(r),i);if(e&&t)return{hash:e.hash("hex"),txid:e.rhash(),cid:t.cid,pid:t.pid,oid:t.oid,gold:t.gold,addr:r}}async propCreateList(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"prop.createlist (cid|oid|gold|pid)(n,) [openid]: 批量创建道具 道具信息数组 [发起账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(1,""));let r=[];if((t=t.str(0).split(","))&&Array.isArray(t))for(var a of t)if(3<=(a=a.split("|")).length){var s=a[0],n=a[1],o=parseInt(a[2]);let e=null;4<=a.length&&(e=a[3]),o<y.MINPROPVALUE||r.push([s,n,o,e])}r=r.map(e=>{var[e,t,i,r]=e;return{oper:T.propCreate,cid:e,oid:t,gold:i,pid:r}});var[t,,]=await e.propCreate(r,i);return t?r:null}readImageAsBlob(e,t){l.readFile(e).then(i=>{var r=z.getType(H.basename(e));t(null,{hex:i.toString("hex"),type:r})}).catch(e=>{t(e,null)})}async inscriptionCreate(e,t,i){if(!(t||e.length<2)){t=new g([e]);var[e,r]=await this.accessControl(i,t.str(4,"")),a=t.str(0);let d=t.str(1);if((t=t.u64(2,y.MINPROPVALUE))<y.MINPROPVALUE)throw new h(p.PROP_MINVALUE,"inscription.create: not a valid value");if(0<=d.indexOf("file:")){let e=d.replace("file:","")||"docs/eth.jpg";d=await new Promise(t=>{this.readImageAsBlob(e,(e,i)=>{e?console.error("Error reading inscription:",e):t(i)})})}else{if(!(0<=d.indexOf("data:")))throw new h(p.MISC_ERROR,"inscription.create cid content gold (openid): 创建道具 厂商编码 素材(file:filename or data:{hex,type}) 含金量 [账户]");d=JSON.parse(d.replace("data:",""))}var s,n=await e.createReceive(r),o=b.sha256(Buffer.from(JSON.stringify(d))).toString("hex");if(o=await this.caIssuePublic([JSON.stringify({blob:d,hash:o,height:0}),n.getAddress("string"),"",r],null,i))return n={oper:T.propCreate,cid:a,gold:t,type:"inscription",oid:o.erid},[i,s]=await e.propCreate([n],r),i?n:null}throw new h(p.MISC_ERROR,"inscription.create cid content gold (openid): 创建道具 厂商编码 素材(file:filename or data:{hex,type}) 含金量 [账户]")}async propCreate(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"prop.create cid oid gold pid (openid): 创建道具 厂商编码 道具类别码 含金量 道具编码(可填空) [账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(4,"")),r=t.str(0),a=t.str(1),s=t.u64(2,y.MINPROPVALUE);t=t.str(3,null);if(s<y.MINPROPVALUE)throw new h(p.PROP_MINVALUE,"prop.create: not a valid value");r={oper:T.propCreate,cid:r,oid:a,gold:s,pid:t};var[a,,]=await e.propCreate([r],i);return a?r:null}async attach(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"tx.attach addr amount data (openid): 发送附言交易 地址 金额 附言结构 [账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(3,"")),r=t.str(0),a=t.u64(1),[a,,]=(r=((t=t.obj(2,{})).oper=T.attach,{address:r,value:a,data:t}),await e.attach([r],i));return a?r:null}async walletLock(e,t,i){if(t)throw new h(p.MISC_ERROR,"wallet.lock [passphrase]");var[t]=await this.accessControl(i);if(!t.master.encrypted){if((i=new g([e]).str(0,"")).length<1)throw new h(p.MISC_ERROR,"Wallet is not encrypted, please run wallet.lock passphrase");try{await t.setPassphrase(null,i)}catch(e){throw new h(p.WALLET_ENCRYPTION_FAILED,"Encryption failed.")}}return await t.lock(),null}async listMSTrans(e,t,i){if(t)throw new h(p.MISC_ERROR,"tx.mstrans");return t=new g([e]).str(0,""),this.wdb.listMSTrans(t)}async signMSTrans(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"tx.mstrans.sign txid");e=(t=new g([e])).str(0,"");var r=t.str(1,""),[i,t]=await this.accessControl(i,t.str(2,""));if(!(e=await this.wdb.db.get(s.ms(_.getHash(e,"hex"),r))))throw new h(p.MISC_ERROR,"tx.mstrans.sign txid");if(e=JSON.parse(e.toString()),!await i.belongToAccount(t,e.addr))throw new h(p.MISC_ERROR,"tx.mstrans.sign invalid account");var a,o=await this.wdb.get(e.addr);o&&o.account.type==n.types.MULTISIG&&((a=R.fromRaw(e.data,"hex")).view=await o.getCoinView(a),await o.sign(a),a.isSigned()?await o.sendMTX(a):await i.send({subtractFee:!1,sort:!1,outputs:[{address:e.contract,value:1e4}],comment:JSON.stringify({oper:"scrun",params:{oper:"sign",addr:e.addr,tx:a.toRaw().toString("hex")}})},t),await this.wdb.delMSTrans(e.addr,r))}async resendWalletTransactions(e,t,i){if(t||0!==e.length)throw new h(p.MISC_ERROR,"tx.resend.admin");var r,[t]=await this.accessControl(i),a=[];for(r of await t.resend())a.push(r.txid());return a}async resend(e,t,i){if(t||0!==e.length)throw new h(p.MISC_ERROR,"tx.resendall.admin: 重发挂起交易");var r=await this.wdb.resend();if(r)for(var a of Object.keys(r))if(a)for(var s of r[a])await this.wdb.send(s);return!0}async rescan(e,t,i){if(t)throw new h(p.MISC_ERROR,'wallet.rescan ( "height" )');return t=new g([e]).u32(0),await this.wdb.rescan(t),this.logger.info("Rescanning..."),!0}async createAddress(e,t,i){if(t||2<e.length)throw new h(p.MISC_ERROR,'address.create ( "account" "uid" )');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));t=t.u32(1,0);return(e=await e.createReceive(i,t))?e.toJSON():null}async calcAddress(e,t,i){if(t||e.length<3)throw new h(p.MISC_ERROR,"address.calc account(must be typeof number) branch index");t=new g([e]);let[a,s]=await this.accessControl(i,t.int(0,0));return e=t.u32(1,0),i=t.u32(2,0),"default"==s&&(s=0),t=(await a.deriveKey(s,e,i,a.master)).toJSON(),i=(e=await a.deriveKey(s,e,i))?e.toJSON():null,r(t.address==i.address,"address derived from prv not equals which derived from pub."),i}async createAddressAdmin(e,t,i){if(t||1<e.length)throw new h(p.MISC_ERROR,'address.create.admin ( "account" )');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));return(t=await e.createReceive(i,0,e.master))?t.toJSON(!0):null}async createChange(e,t,i){if(t||1<e.length)throw new h(p.MISC_ERROR,'address.change.create ( "account" )');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));return(t=await e.createChange(i))?t.toJSON():null}async createNested(e,t,i){if(t||1<e.length)throw new h(p.MISC_ERROR,'address.nested.create ( "account" )');t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));return(t=await e.createNested(i))?t.toJSON():null}async mkwallet(e,t,i){var r=(e=new g([e])).str(4);if(r)for(var a of await this.wdb.getWallets())if((await this.wdb.get(a)).master.mnemonic.getPhrase()===body.phrase)throw new h(p.MISC_ERROR,"wallet.create: 相同助记词已被使用");return(r=await this.wdb.ensure({id:V(),type:e.str(1),m:e.u32(2),n:e.u32(3),mnemonic:r,passphrase:e.str(5),master:e.str(6),witness:e.bool(7),watchOnly:e.bool(8),accountKey:e.str(9)}))?r.toJSON(!1):null}async accountGet(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"account.get account: 查询账户");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));return(t=await e.getAccount(i))?t.toJSON():null}async getPending(e,t,i){if(t)throw new h(p.MISC_ERROR,"tx.pending [account]: 查询挂起的交易");t=new g([e]);var r,[e,i]=await this.accessControl(i,t.str(0,"")),s=(t=await e.getPending(i),a.sortTX(t),[]);for(r of await e.toDetails(t))s.push(r.toJSON());return s}async getPendingItem(e,t,i){var r,a=(e=new g([e])).hash(0,""),[s,i]=await this.accessControl(i,e.str(1,""));for(r of await s.getPending(i))if(r.hash==a)return(r=await s.toDetails(r)).toJSON()}async getPendingHash(e,t,i){e=new g([e]);var r,[i,e]=await this.accessControl(i,e.str(0,"")),s=(e=await i.getPending(e),a.sortTX(e),[]);for(r of await i.toDetails(e))s.push(u.revHex(r.hash));return s}async getPendingCount(e,t,i){if(t)throw new h(p.MISC_ERROR,"tx.pending.count [account]: 查询挂起的交易数");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));t=await e.ensureIndex(i);return(await e.txdb.getPendingHashes(t)).length}async accountCreate(e,t,i){e=new g([e]);var r,[i]=await this.accessControl(i),a=e.obj(0);e=e.str(1),a={name:(a=new g([a])).str("name"),witness:a.bool("witness",!0),type:a.str("type","pubkeyhash"),m:a.u32("m",1),n:a.u32("n",1),watchOnly:a.bool("watch",!1),accountKey:a.str("key",null),lookahead:a.u32("lookahead",10)};try{let t=await i.getAccount(a.name);return t?t.toJSON():((r=(t=await i.createAccount(a,e)).toJSON()).isNew=!0,r)}catch(t){return null}}async getblocks(e,t,i){if(t)throw new h(p.MISC_ERROR,"wallet.blocks");var[t]=await this.accessControl(i);return await t.getBlocks()}async getKey(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,"key.export.public address: 查询地址的密钥");t=new g([e]);var[e]=await this.accessControl(i);i=t.str(0);return(t=(r(i,"Address is required."),await e.getKey(i)))?t.toJSON():null}async getPrivKey(e,t,i){if(t||1!==e.length)throw new h(p.MISC_ERROR,"address.key.admin address: 查询地址的密钥");t=new g([e]);var[e,a]=await this.accessControl(i);t=t.str(0);if(r(t,"Address is required."),this.wdb.options.acl.isRoot(i.options.cid)||await e.belongToAccount(a,t))return(i=await e.getKey(t))?i.toJSON(!0):null;throw new h(p.MISC_ERROR,"Invald Account.")}async getwif(e,t,i){if(t||1!=e.length)throw new h(p.MISC_ERROR,"address.wif.admin address: 查询地址对应的私钥 地址");t=new g([e]);var[e]=await this.accessControl(i);i=t.str(0),t=t.str(1);return(e=(r(i,"Address is required."),await e.getPrivateKey(i,t)))?e.toSecret():null}async ownedAddress(e,t,i){if(t||1!=e.length)throw new h(p.MISC_ERROR,"address.has address: 查询钱包是否拥有一个地址 地址");t=new g([e]);var[e]=await this.accessControl(i);i=t.str(0);return r(i,"Address is required."),e.ownedAddress(i)}async getCoin(e,t,i){e=new g([e]);var[i]=await this.accessControl(i),a=e.hash(0);e=e.u32(1);return(i=(r(a,"Hash is required."),r(null!=e,"Index is required."),await i.getCoin(a,e)))?i.getJSON(this.network):null}async getSpender(e,t,i){e=new g([e]);var[i]=await this.accessControl(i),a=e.hash(0);e=e.u32(1);return(i=(r(a,"Hash is required."),r(null!=e,"Index is required."),await i.txdb.getSpender(a,e)))?{hash:u.revHex(i.hash),index:i.index}:null}async getSpent(e,t,i){e=new g([e]);var[i]=await this.accessControl(i),a=e.hash(0);e=e.u32(1),r(a,"Hash is required."),r(null!=e,"Index is required."),i=await i.txdb.getSpentCoin({hash:a,index:e});return{hash:u.revHex(i.hash),index:i.index,value:i.value,height:i.height,version:i.version,time:i.time}}async getCoincacheSize(e,t,i){var[i]=await this.accessControl(i);return i.txdb.coinCache.size}async conserveCoin(e,t,i){if(t||2!=e.length)throw new h(p.MISC_ERROR,"coin.conserved.add txhash index: 新增需要保持的硬币: 交易Hash 输出序号");t=new g([e]);var[e]=await this.accessControl(i);i=t.hash(0),t=t.u32(1),r(i,"Hash is required."),r(null!=t,"Index is required."),i=new A(i,t);return e.conserveCoin(i),!0}async getConservedCoins(e,t,i){if(t||0<e.length)throw new h(p.MISC_ERROR,"coin.conserved.get: 查询已经保持的Coin列表");var r,[t]=await this.accessControl(i),a=[];for(r of t.getConserved())a.push(r.toJSON());return a}async unConserveCoin(e,t,i){if(t||2!=e.length)throw new h(p.MISC_ERROR,"coin.conserved.del: 减少需要保持的硬币: 交易Hash 输出序号");t=new g([e]);var[e]=await this.accessControl(i);i=t.hash(0),t=t.u32(1),r(i,"Hash is required."),r(null!=t,"Index is required."),i=new A(i,t);return e.unConserveCoin(i),!0}async addShared(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"key.shared.add [account] key: 新增共享公钥 [账号] 公钥");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));t=t.str(1);return await e.addSharedKey(i,t),!0}async removeShared(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"key.shared.del [account] key: 删除共享公钥 [账号] 公钥");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(0,""));t=t.str(1);return await e.removeSharedKey(i,t),!0}async zap(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.zap [age]: 移除挂起交易 挂起时长(默认三天)");t=new g([e]);var[e]=await this.accessControl(i);i=t.str(0),t=t.u32(1,259200);return r(t,"Age is required."),await e.zap(i,t),!0}async sendOracle(e,t,i){if(!(t||e.length<3||4<e.length)){t=new g([e]);var[e,i]=await this.accessControl(i,t.str(3,"")),r=t.str(0,null),a=t.str(1,null);if(null==(t=t.u64(2)))throw new h(p.TYPE_ERROR,"Invalid parameter.");if(r&&a)return t={subtractFee:!1,selection:"age",sort:!1,outputs:[{address:(await e.createReceive(i)).getAddress("string"),value:t}],comment:JSON.stringify({oper:T.vote,type:"oracle",k:r,v:a})},r=await e.send(t,i),(await e.getDetails(r.hash("hex"))).toJSON()}throw new h(p.MISC_ERROR,"oracle.send k v amount [openid]")}async sendVote(e,t,i){if(t||e.length<2||3<e.length)throw new h(p.MISC_ERROR,"vote.send addresses amount [openid]");t=new g([e]);var r,[e,i]=await this.accessControl(i,t.str(2,"")),a=t.str(0);if(null==(t=t.u64(1)))throw new h(p.TYPE_ERROR,"Invalid parameter.");for(r of a.split(","))if(!o.parseAddress(r,this.network))throw new h(p.TYPE_ERROR,"Invalid address.");return t={subtractFee:!1,selection:"age",sort:!1,outputs:[{address:(await e.createReceive(i)).getAddress("string"),value:t}],comment:`{"oper": "${T.vote}", "type": "mine", "ca": "${a}"}`},a=await e.send(t,i),(await e.getDetails(a.hash("hex"))).toJSON()}async sendVoteAsync(e,t,i){if(t||e.length<2||3<e.length)throw new h(p.MISC_ERROR,"vote.send.async addresses amount [openid]");t=new g([e]);var r,[e,i]=await this.accessControl(i,t.str(2,"")),a=t.str(0);if(null==(t=t.u64(1)))throw new h(p.TYPE_ERROR,"Invalid parameter.");for(r of a.split(","))if(!o.parseAddress(r,this.network))throw new h(p.TYPE_ERROR,"Invalid address.");t={subtractFee:!1,selection:"age",sort:!1,outputs:[{address:(await e.createReceive(i)).getAddress("string"),value:t}],comment:`{"oper": "${T.vote}", "type": "mine", "ca": "${a}"}`},e.send(t,i)}async sendTX(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"tx.send addr amount [openid]:发送交易 地址 金额 [发起账户]");if(this.wdb.$parent&&this.wdb.$parent.config.abandon)throw new h(p.MISC_ERROR,"Alliance Cert Invalid.");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0);t=t.u64(1),r=await e.send({outputs:[{address:r,value:t}]},i);return(await e.getDetails(r.hash("hex"))).toJSON()}async sendTXAsync(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"tx.send.async addr amount [openid]:发送交易 地址 金额 [发起账户]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(2,"")),r=t.str(0);t=t.u64(1);e.send({outputs:[{address:r,value:t}]},i)}async signTX(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"tx.sign.admin txdata [sendnow passphrase]: 对交易签名/发送 交易原始数据 [立即发送 解锁密码]");t=new g([e]);var[e]=await this.accessControl(i),a=(i=t.buf(0),r(i,"TX is required."),t.bool(1,!1));t=t.str(2);(i=R.fromRaw(i)).view=await e.getCoinView(i),await e.sign(i,t);let s=null;return s=(a&&i.isSigned()?await e.sendMTX(i):i).getJSON(this.network),e.account.type==n.types.MULTISIG&&(t=i.getMultisig(this.network),s.ms={m:t.m,n:t.n,c:t.c}),s}async createTX(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"tx.create options outputs [openid]: 创建交易 参数对象 输出数组 [子账号]");if(this.wdb.$parent&&this.wdb.$parent.config.abandon)throw new h(p.MISC_ERROR,"Alliance Cert Invalid.");t=new g([e]);var[r,e]=await this.accessControl(i,t.str(2,""));i=t.obj(0),t=t.array(1);if(Array.isArray(i.in))for(var a of i.in)a.hash=u.revHex(a.hash);var s,o={comment:(i=new g([i])).obj("comment",null),sendnow:i.bool("sendnow",!0),account:i.str("account"),rate:i.u64("rate"),blocks:i.u32("blocks"),maxFee:i.u64("maxFee"),selection:i.str("selection"),smart:i.bool("smart"),subtractFee:i.bool("subtractFee"),subtractIndex:i.get("subtractIndex"),depth:i.u32(["confirmations","depth"]),inputs:i.array("in",null),outputs:[]};for(s of t){var d=new g([s]),l={value:d.u64("value")};if(l.address=d.str("address"),!l.address){var c=d.str("account");if(c){await r.ensureAccount({name:c,witness:!0});var f=await r.createReceive(c);if(!f)throw new h(p.MISC_ERROR,`tx.create: account ${c} not exist`);l.address=f.getAddress("string")}}if((c=d.buf("script"))&&(l.script=v.fromRaw(c)),(f=d.str("locktype"))&&(d=d.u64("locktime",0))){if("no"!=f&&"clb"!=f&&"clt"!=f&&"csb"!=f&&"cst"!=f)throw new h(p.MISC_ERROR,'locktype should be "no"-不锁定 or "clb"-绝对高度锁定 or clt(绝对时间锁定) or "csb"-相对高度锁定 or "cst"-相对时间锁定 !');if(f==v.outputLockType.CHECKABSOLUTETIME&&d<=y.LOCKTIME_THRESHOLD)throw new h(p.MISC_ERROR,"lock absolute time should not less than 500000000!");if(f==v.outputLockType.CHECKABSOLUTEBLOCK&&d>y.LOCKTIME_THRESHOLD)throw new h(p.MISC_ERROR,"lock absolute block should not more than 500000000!");if((f==v.outputLockType.CHECKRELATIVEBLOCK||f==v.outputLockType.CHECKRELATIVETIME)&&65535<d)throw new h(p.MISC_ERROR,"lock relative block/time should not more than 65535!");l.locktype=f,l.locktime=d}o.outputs.push(l)}e&&(o.account=e);let m=null;return o.sendnow?(i=await r.send(o),m=(t=await r.getDetails(i.hash("hex"))).toJSON()):(e=await r.createTX(o),await r.sign(e),m=e.getJSON(this.network),r.account.type==n.types.MULTISIG&&(i=e.getMultisig(this.network),m.ms={m:i.m,n:i.n,c:i.c})),m}async getLast(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"tx.last account [limit]: 最近的交易 账号 [最大记录数]");t=new g([e]);var r,[e,i]=await this.accessControl(i,t.str(0)),a=(t=t.u32(1),[]);i=await e.getLast(i,t);for(r of await e.toDetails(i))a.push(r.toJSON());return a}async getRange(e,t,i){if(t||e.length<4)throw new h(p.MISC_ERROR,"tx.range account start end limit [reserve]: 指定时限内的交易 账号 开始时间 结束时间 最大记录数 [反转]");t=new g([e]);var r,[e,i]=await this.accessControl(i,t.str(0,"")),a=(t={start:t.u32(1),end:t.u32(2),limit:t.u32(3),reverse:t.bool(4)},i=await e.getRange(i,t),[]);for(r of await e.toDetails(i))a.push(r.toJSON());return a}async caUserStatus(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"ca.user.status cid uid (query)");e=(t=new g([e])).str(0,"");var r=t.uint(1,0),a=t.array(2,[]);let s=null;for(let e=0;e<a.length;e++){var n=a[e];n&&Array.isArray(n)?"alliancename"==n[0]&&(s=n[1],delete a[e]):delete a[e]}var[t]=await this.accessControl(i);e=await this.$allianceUserCreate([e,r,s],i);return a.push(["pubkey",e.data.pubkey]),a.push(["merge",!0]),t.db.client.execute("ca.list",[a])}async caUserLog(e,t,i){if(t||e.length<2)throw new h(p.MISC_ERROR,"ca.user.log cid uid (query)");e=(t=new g([e])).str(0,"");var r=t.uint(1,0),a=t.array(2,[]);let s=null;for(let e=0;e<a.length;e++){var n=a[e];n&&Array.isArray(n)?"alliancename"==n[0]&&(s=n[1],delete a[e]):delete a[e]}var[t,,]=await this.accessControl(i,e);e=await this.$allianceUserCreate([e,r,s],i);return a.push(["pubkey",e.data.pubkey]),t.db.client.execute("ca.list",[a])}async sysLog(e,t,i){if(t)throw new h(p.MISC_ERROR,"sys.log (query openid)");e=(t=new g([e])).array(0,[]);var r,[a,,]=await this.accessControl(i,t.str(1,"")),s=[];for(r of(await this.wdb.auditList.query(e)).list){var n=Object.assign({},r),d=o.parseHash(r.address,this.network);(d=await a.getPath(d))&&(n.account=d.name),n.time=new Date(1e3*r.time).toLocaleString(),s.push(n)}return s}async caIssuePublic(e,t,i){if(t||e.length<2||4<e.length)throw new h(p.MISC_ERROR,"ca.issue.public cert witness [pubkey openid]: 签发证书 证书对象 见证地址 [原始存证签名公钥 支付账户]");e=(t=new g([e])).obj(0,{});var r=t.str(1,""),a=t.str(2,""),[i,t]=await this.accessControl(i,t.str(3,""));if(64!=e.hash.length)throw new h(p.TYPE_ERROR,"err hash length");var s=await i.db.client.execute("ca.byId",[e.hash]);if(s)return s;if(s=await i.getPrivateKey(r))return e.height||(e.height=y.retargetInterval),await i.issueCreate({erid:e.hash,key:s.privateKey.toString("hex"),address:s.getAddress().toString(),witness:s.publicKey.toString("hex"),validHeight:this.wdb.curHeight+e.height,source:{subjectName:e.name||"",pubkey:a,subjectHash:e.hash,cluster:e.cluster,blob:e.blob}},t);throw new h(p.TYPE_ERROR,"Invalid witness.")}async caAbolishPublic(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"ca.abolish.public array[[erid height [openid]]]: 废止授信交易 废止交易信息数组");var r,a=[];for(r of new g([e]).array(0,[])){var[s,n]=await this.accessControl(i,r[3]),o=r[0],d=parseInt(r[1]),l=await this.wdb.erList.query([["erid",o]]),c=(l=_.fromWitnessPubkeyhash(b.hash160(Buffer.from(l.list[0].witness,"hex")),this.network.type).toString(),await s.getKey(l));if(!c)throw new h(p.TYPE_ERROR,"Invalid witness.");(s=await s.caAbolish({key:c.privateKey.toString("hex"),witness:c.publicKey.toString("hex"),address:l,erid:o,abolishHeight:d,cid:"",uid:0},n))&&a.push(s)}return a}async caIssue(e,t,i){if(t||e.length<3||4<e.length)throw new h(p.MISC_ERROR,"ca.issue cert uid cid [openid]: 签发证书 证书对象 见证人 见证人归属单位 [消费账户]");return this.$caIssue(e,i,!1)}async caIssueAsync(e,t,i){if(t||e.length<3||4<e.length)throw new h(p.MISC_ERROR,"ca.issue.async cert uid cid [openid]: 签发证书 证书对象 见证人 见证人归属单位 [消费账户]");return this.$caIssue(e,i,!0)}async $caIssue(e,t,i){var r=(e=new g([e])).obj(0,{}),a=e.uint(1,0),s=e.str(2,""),[e,n]=await this.accessControl(t,e.str(3,""));if(!(o=await e.ensureCp(s))||"forbidden"==o.cls)throw new h(p.MISC_ERROR,"Invalid Account");if(64!=r.hash.length)throw new h(p.TYPE_ERROR,"err hash length");var o=await this.$allianceUserCreate([s,a],t),d=[];if(d.push(["pubkey",o.data.pubkey]),d.push(["source.subjectHash",r.hash]),0<(await e.db.client.execute("ca.list",[d])).count)throw new h(p.TYPE_ERROR,"cert.hash conflicted");if(await e.db.client.execute("ca.byId",[r.hash]))throw new h(p.TYPE_ERROR,"cert.hash conflicted");return r.height||(r.height=y.retargetInterval),o=await this.$allianceUserCreate([s,a],t,!0),await e.issueCreate({erid:r.hash,key:o.prvkey,witness:o.data.pubkey,address:o.data.addr,validHeight:this.wdb.curHeight+r.height,source:{subjectName:r.name,pubkey:o.data.pubkey,subjectHash:r.hash,cluster:r.cluster,cid:s,uid:a}},n,i)}async caAbolish(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"ca.abolish [[uid cid erid height [openid]]]: 废止授信交易 废止交易信息数组");return this.$caAbolish(e,i,!1)}async caAbolishAsync(e,t,i){if(t||e.length<1)throw new h(p.MISC_ERROR,"ca.abolish.async [[uid cid erid height [openid]]]: 废止授信交易 废止交易信息数组");return this.$caAbolish(e,i,!0)}async $caAbolish(e,t,i){var r,a=[];for(r of new g([e]).array(0,[])){var s,n=r[0],o=r[1],p=r[2],d=parseInt(r[3]),[s,h]=await this.accessControl(t,r[4]),l=await this.$allianceUserCreate([o,n],t,!0);(s=await s.caAbolish({cid:o,uid:n,key:l.prvkey,witness:l.data.pubkey,address:l.data.addr,erid:p,abolishHeight:d},h,i))&&a.push(s)}return a}async enchanceCp(e,t,i){if(t||e.length<2||4<e.length)throw new h(p.MISC_ERROR,"ca.enchance toCid fromCid height [openid]");t=new g([e]);var[e,i]=await this.accessControl(i,t.str(3)),r=t.str(0,0),a=t.str(1,0);let s=t.uint(2,0);(!s||s<this.wdb.curHeight)&&(s=this.wdb.curHeight+y.retargetInterval);var[t,e]=await e.enchanceCp({to:r,from:a,enchanceHeight:s},i);return t&&e?e:null}async queryErList(e,t,i){if(t)throw new h(p.MISC_ERROR,"ca.query.remote conditions: 查询存证列表 (复合条件)");t=new g([e]);var[e,,]=await this.accessControl(i,t.str(1,""));i=t.array(0,[]);return e.db.client.execute("ca.list",[i])}async queryMyErlist(e,t,i){if(t)throw new h(p.MISC_ERROR,"ca.list.me query: 条件查询自己的电子权利 条件数组");return t=new g([e]).array(0,[]),this.wdb.erList.query(t)}}},function(e,t,i){var r=i(23);let{ContractEnvType:a,ContractStatus:s}=i(5),n=i(6),o=i(89);e.exports=class extends r{constructor(e){super(),this.db=e}async loadHistory(){var e;for(e of await this.db.getContracts())e&&(e.period<this.db.curHeight&&e.transStatus==s.CreatedOnMem?await this.delTransContract(e,!0):(e.id=e.type+"."+e.addr,await this.saveContract(e),e.transStatus==s.Promised&&this.db.autoTaskMgr.addTask(new o(this.db.network.txcheckpoint,e),this.db.network.txchecktime[e.type])))}query(e,t){return(e=this.get(e+"."+t))?e.transStatus:s.None}async addTransContract(e,t,i=!1){t.id=t.type+"."+t.addr;var r=this.get(t.id);e===a.Mempool&&((t=r||t).transStatus||(t.transStatus=s.CreatedOnMem),await this.saveContract(t,i))}async saveContract(e,t=!1){e.id=e.id||e.type+"."+e.addr,this.set(e.id,e),t&&(t=n.hash256(Buffer.from(e.id)).toString("hex"),await this.db.batchPut(this.db.tidCreator(t),Buffer.from(JSON.stringify(e))))}async promiseContract(e,t=!1){let i=!1;var r=e.type+"."+e.addr;let a=this.get(r);return a&&a.oper==e.oper||(i=!0,a=e),(!a.transStatus||a.transStatus<s.Promised)&&(i=!0,a.transStatus=s.Promised),i&&await this.saveContract(a,t),i}async confirmContract(e,t,i){e=e.type+"."+e.addr,!(e=this.get(e))||e.transStatus!=s.Promised||t!=s.Confirmed&&t!=s.Expired||(e.transStatus=t,await this.saveContract(e,i))}async delTransContract(e,t){var i=e.type+"."+e.addr,r=this.get(i);r&&r.oper==e.oper&&(this.delete(i),t)&&(r=n.hash256(Buffer.from(i)).toString("hex"),await this.db.batchDel(this.db.tidCreator(r)))}}},function(e,t,i){let r=i(5).HtlcStatus;i=i(23);class a extends i{constructor(e){super(),this.db=e}async loadHistory(){var e,t;for(e of(this.clear(),await this.db.loadHtlcList()))this.set(e.id,e),e.wid&&e.account&&(t=e.wid+"."+e.account,this.account.get(t)||this.account.set(t,new Map),this.account.get(t).set(e.id,e))}setAccount(e,t,i){this.delAccount(e),t&&i&&(e.wid=t,e.account=i,this.account.get(t=e.wid+"."+e.account)||this.account.set(t,new Map),this.account.get(t).set(e.id,e))}delAccount(e){var t;e&&e.wid&&e.account&&(t=e.wid+"."+e.account,this.account.get(t))&&this.account.get(t).delete(e.id)}}a.vpItem=class e{constructor(e){this.fromOptions(e||{})}fromOptions(e){this.shash=e.shash,this.sidx=e.sidx,this.sheight=e.sheight,this.ahash=e.ahash,this.aidx=e.aidx,this.aheight=e.aheight,this.src=e.src,this.dst=e.dst,this.aa=e.aa,this.ab=e.ab,this.ba=e.ba,this.bb=e.bb,this.amount=e.amount,this.rate=e.rate,this.pst=e.pst}toRaw(){var e={};return e.shash=this.shash,e.sidx=this.sidx,e.sheight=this.sheight,e.ahash=this.ahash,e.aidx=this.aidx,e.aheight=this.aheight,e.src=this.src,e.dst=this.dst,e.amount=this.amount,e.rate=this.rate,e.pst=this.pst||r.Init,e.aa=this.aa||"",e.ab=this.ab||"",e.ba=this.ba||"",e.bb=this.bb||"",Buffer.from(JSON.stringify(e),"utf-8")}get id(){return""+this.shash+this.sidx}fromRaw(e){return e=JSON.parse(e.toString("utf8")),this.fromOptions(e),this}static fromRaw(t){return(new e).fromRaw(t)}},e.exports=a},,,,,,,,,,,,,,function(e,t,i){
811
811
  /*!
812
812
  * int64.js - int64 object for javascript.
813
813
  * Copyright (c) 2017, Christopher Jeffrey (MIT License).
@@ -856,7 +856,7 @@ let r=i(0),a=i(288),s=i(58);i=t;let n=Buffer.from("00000000000000000000000000000
856
856
  * @author Feross Aboukhadijeh <https://feross.org>
857
857
  * @license MIT
858
858
  */
859
- e.exports=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},function(e,t,i){var r=i(334);t.fromCallback=function(e,t){if(void 0===e){var i=new Promise((function(t,i){e=function(e,r){e?i(e):t(r)}}));e[void 0!==t?t:"promise"]=i}else if("function"!=typeof e)throw new TypeError("Callback must be a function");return e},t.fromPromise=function(e,t){if(void 0===t)return e;e.then((function(e){r(()=>t(null,e))})).catch((function(e){r(()=>t(e))}))}},function(e,t){e.exports=process.nextTick.bind(process)},function(e,t,i){var r=i(108),a=i(30),s=(i=i(87),require),n=process.config&&process.config.variables||{},o=!!process.env.PREBUILDS_ONLY,p=process.versions.modules,d=process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE||"undefined"!=typeof window&&window.process&&"renderer"===window.process.type?"electron":"node",h=i.arch(),l=i.platform(),c=process.env.LIBC||("linux"===l&&r.existsSync("/etc/alpine-release")?"musl":"glibc"),u=process.env.ARM_VERSION||("arm64"===h?"8":n.arm_version)||"",f=(process.versions.uv||"").split(".")[0];function m(e){return s(m.path(e))}function g(e){try{return r.readdirSync(e)}catch(e){return[]}}function w(e,t){return(t=g(e).filter(t))[0]&&a.join(e,t[0])}function v(e){return/\.node$/.test(e)}function y(e){var t=e.split("."),i={file:e,specificity:0};if("node"===t.pop()){for(var r=0;r<t.length;r++){var a=t[r];if("node"===a||"electron"===a||"node-webkit"===a)i.runtime=a;else if("napi"===a)i.napi=!0;else if("abi"===a.slice(0,3))i.abi=a.slice(3);else if("uv"===a.slice(0,2))i.uv=a.slice(2);else if("armv"===a.slice(0,4))i.armv=a.slice(4);else{if("glibc"!==a&&"musl"!==a)continue;i.libc=a}i.specificity++}return i}}function b(e,t){return function(i){var r;return null!=i&&!!(i.runtime===e||"node"===(r=i).runtime&&r.napi)&&!(i.abi!==t&&!i.napi||i.uv&&i.uv!==f||i.armv&&i.armv!==u||i.libc&&i.libc!==c)}}function x(e){return function(t,i){return t.runtime!==i.runtime?t.runtime===e?-1:1:t.abi!==i.abi?t.abi?-1:1:t.specificity!==i.specificity?t.specificity>i.specificity?-1:1:0}}(e.exports=m).path=function(e){e=a.resolve(e||".");try{var t=s(a.join(e,"package.json")).name.toUpperCase().replace(/-/g,"_");process.env[t+"_PREBUILD"]&&(e=process.env[t+"_PREBUILD"])}catch(e){}if(!o){if(t=w(a.join(e,"build/Release"),v))return t;if(t=w(a.join(e,"build/Debug"),v))return t}if(t=i(e))return t;if(t=i(a.dirname(process.execPath)))return t;throw t=["platform="+l,"arch="+h,"runtime="+d,"abi="+p,"uv="+f,u?"armv="+u:"","libc="+c,"node="+process.versions.node,process.versions&&process.versions.electron?"electron="+process.versions.electron:"","webpack=true"].filter(Boolean).join(" "),new Error("No native build was found for "+t+"\n loaded from: "+e+"\n");function i(e){var t=g(e=a.join(e,"prebuilds",l+"-"+h)).map(y).filter(b(d,p)).sort(x(d))[0];if(t)return a.join(e,t.file)}},m.parseTags=y,m.matchTags=b,m.compareTags=x},function(e,t,i){var r=i(48);let a=i(144).AbstractChainedBatch,s=i(146);function n(e){a.call(this,e),this.context=s.batch_init(e.context)}n.prototype._put=function(e,t){s.batch_put(this.context,e,t)},n.prototype._del=function(e){s.batch_del(this.context,e)},n.prototype._clear=function(){s.batch_clear(this.context)},n.prototype._write=function(e,t){s.batch_write(this.context,e,t)},r.inherits(n,a),e.exports=n},function(e,t,i){var r=i(48);let a=i(144).AbstractIterator,s=i(146);function n(e,t){a.call(this,e),this.context=s.iterator_init(e.context,t),this.cache=null,this.finished=!1}r.inherits(n,a),n.prototype._seek=function(e){if(0===e.length)throw new Error("cannot seek() to an empty target");this.cache=null,s.iterator_seek(this.context,e),this.finished=!1},n.prototype._next=function(e){return this.cache&&this.cache.length?process.nextTick(e,null,this.cache.pop(),this.cache.pop()):this.finished?process.nextTick(e):s.iterator_next(this.context,(t,i,r)=>{if(t)return e(t);this.cache=i,this.finished=r,this._next(e)}),this},n.prototype._end=function(e){delete this.cache,s.iterator_end(this.context,e)},e.exports=n},function(e,t,i){let r=i(339),a=i(340),s=i(341),n=a.implSymbol;function o(t){if(!this||this[n]||!(this instanceof o))throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");var i=[];for(let e=0;e<arguments.length&&e<2;++e)i[e]=arguments[e];i[0]=r.USVString(i[0]),void 0!==i[1]&&(i[1]=r.USVString(i[1])),e.exports.setup(this,i)}o.prototype.toJSON=function(){if(!this||!e.exports.is(this))throw new TypeError("Illegal invocation");var t=[];for(let e=0;e<arguments.length&&e<0;++e)t[e]=arguments[e];return this[n].toJSON.apply(this[n],t)},Object.defineProperty(o.prototype,"href",{get(){return this[n].href},set(e){e=r.USVString(e),this[n].href=e},enumerable:!0,configurable:!0}),o.prototype.toString=function(){if(this&&e.exports.is(this))return this.href;throw new TypeError("Illegal invocation")},Object.defineProperty(o.prototype,"origin",{get(){return this[n].origin},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"protocol",{get(){return this[n].protocol},set(e){e=r.USVString(e),this[n].protocol=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"username",{get(){return this[n].username},set(e){e=r.USVString(e),this[n].username=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"password",{get(){return this[n].password},set(e){e=r.USVString(e),this[n].password=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"host",{get(){return this[n].host},set(e){e=r.USVString(e),this[n].host=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"hostname",{get(){return this[n].hostname},set(e){e=r.USVString(e),this[n].hostname=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"port",{get(){return this[n].port},set(e){e=r.USVString(e),this[n].port=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"pathname",{get(){return this[n].pathname},set(e){e=r.USVString(e),this[n].pathname=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"search",{get(){return this[n].search},set(e){e=r.USVString(e),this[n].search=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"hash",{get(){return this[n].hash},set(e){e=r.USVString(e),this[n].hash=e},enumerable:!0,configurable:!0}),e.exports={is:e=>!!e&&e[n]instanceof s.implementation,create(e,t){var i=Object.create(o.prototype);return this.setup(i,e,t),i},setup(e,t,i){((i=i||{}).wrapper=e)[n]=new s.implementation(t,i),e[n][a.wrapperSymbol]=e},interface:o,expose:{Window:{URL:o},Worker:{URL:o}}}},function(e,t,i){var r={};function a(e){return e<0?-1:1}function s(e,t){t.unsigned||--e;let i=t.unsigned?0:-Math.pow(2,e),r=Math.pow(2,e)-1,s=t.moduloBitLength?Math.pow(2,t.moduloBitLength):Math.pow(2,e),n=t.moduloBitLength?Math.pow(2,t.moduloBitLength-1):Math.pow(2,e-1);return function(e,o){let p=+e;if((o=o||{}).enforceRange){if(!Number.isFinite(p))throw new TypeError("Argument is not a finite number");if((p=a(p)*Math.floor(Math.abs(p)))<i||p>r)throw new TypeError("Argument is not in byte range")}else{if(!isNaN(p)&&o.clamp)return(p=(p=(e=p)%1==.5&&0==(1&e)?Math.floor(e):Math.round(e))<i?i:p)>r?r:p;if(!Number.isFinite(p)||0===p)return 0;if(p=a(p)*Math.floor(Math.abs(p)),p%=s,!t.unsigned&&p>=n)return p-s;if(t.unsigned)if(p<0)p+=s;else if(-0===p)return 0}return p}}(e.exports=r).void=function(){},r.boolean=function(e){return!!e},r.byte=s(8,{unsigned:!1}),r.octet=s(8,{unsigned:!0}),r.short=s(16,{unsigned:!1}),r["unsigned short"]=s(16,{unsigned:!0}),r.long=s(32,{unsigned:!1}),r["unsigned long"]=s(32,{unsigned:!0}),r["long long"]=s(32,{unsigned:!1,moduloBitLength:64}),r["unsigned long long"]=s(32,{unsigned:!0,moduloBitLength:64}),r.double=function(e){if(e=+e,Number.isFinite(e))return e;throw new TypeError("Argument is not a finite floating-point value")},r["unrestricted double"]=function(e){if(e=+e,isNaN(e))throw new TypeError("Argument is NaN");return e},r.float=r.double,r["unrestricted float"]=r["unrestricted double"],r.DOMString=function(e,t){return(t=t||{}).treatNullAsEmptyString&&null===e?"":String(e)},r.ByteString=function(e,t){var i,r=String(e);for(let e=0;void 0!==(i=r.codePointAt(e));++e)if(255<i)throw new TypeError("Argument is not a valid bytestring");return r},r.USVString=function(e){var t=String(e),i=t.length,r=[];for(let e=0;e<i;++e){var a,s=t.charCodeAt(e);s<55296||57343<s?r.push(String.fromCodePoint(s)):!(56320<=s&&s<=57343)&&e!==i-1&&56320<=(a=t.charCodeAt(e+1))&&a<=57343?(r.push(String.fromCodePoint(65536+1024*(1023&s)+(1023&a))),++e):r.push(String.fromCodePoint(65533))}return r.join("")},r.Date=function(e,t){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e},r.RegExp=function(e,t){return e instanceof RegExp?e:new RegExp(e)}},function(e,t,i){e.exports.mixin=function(e,t){var i=Object.getOwnPropertyNames(t);for(let r=0;r<i.length;++r)Object.defineProperty(e,i[r],Object.getOwnPropertyDescriptor(t,i[r]))},e.exports.wrapperSymbol=Symbol("wrapper"),e.exports.implSymbol=Symbol("impl"),e.exports.wrapperForImpl=function(t){return t[e.exports.wrapperSymbol]},e.exports.implForWrapper=function(t){return t[e.exports.implSymbol]}},function(e,t,i){let r=i(49);t.implementation=class{constructor(e){var t=e[0];let i=null;if(void 0!==(e=e[1])&&"failure"===(i=r.basicURLParse(e)))throw new TypeError("Invalid base URL");if("failure"===(e=r.basicURLParse(t,{baseURL:i})))throw new TypeError("Invalid URL");this._url=e}get href(){return r.serializeURL(this._url)}set href(e){if("failure"===(e=r.basicURLParse(e)))throw new TypeError("Invalid URL");this._url=e}get origin(){return r.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(e){r.basicURLParse(e+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(e){r.cannotHaveAUsernamePasswordPort(this._url)||r.setTheUsername(this._url,e)}get password(){return this._url.password}set password(e){r.cannotHaveAUsernamePasswordPort(this._url)||r.setThePassword(this._url,e)}get host(){var e=this._url;return null===e.host?"":null===e.port?r.serializeHost(e.host):r.serializeHost(e.host)+":"+r.serializeInteger(e.port)}set host(e){this._url.cannotBeABaseURL||r.basicURLParse(e,{url:this._url,stateOverride:"host"})}get hostname(){return null===this._url.host?"":r.serializeHost(this._url.host)}set hostname(e){this._url.cannotBeABaseURL||r.basicURLParse(e,{url:this._url,stateOverride:"hostname"})}get port(){return null===this._url.port?"":r.serializeInteger(this._url.port)}set port(e){r.cannotHaveAUsernamePasswordPort(this._url)||(""===e?this._url.port=null:r.basicURLParse(e,{url:this._url,stateOverride:"port"}))}get pathname(){return this._url.cannotBeABaseURL?this._url.path[0]:0===this._url.path.length?"":"/"+this._url.path.join("/")}set pathname(e){this._url.cannotBeABaseURL||(this._url.path=[],r.basicURLParse(e,{url:this._url,stateOverride:"path start"}))}get search(){return null===this._url.query||""===this._url.query?"":"?"+this._url.query}set search(e){var t=this._url;""===e?t.query=null:(e="?"===e[0]?e.substring(1):e,t.query="",r.basicURLParse(e,{url:t,stateOverride:"query"}))}get hash(){return null===this._url.fragment||""===this._url.fragment?"":"#"+this._url.fragment}set hash(e){""===e?this._url.fragment=null:(e="#"===e[0]?e.substring(1):e,this._url.fragment="",r.basicURLParse(e,{url:this._url,stateOverride:"fragment"}))}toJSON(){return this.href}}},function(e,t,i){var r=i(222),a=i(343),s={TRANSITIONAL:0,NONTRANSITIONAL:1};function n(e){return e.split("\0").map((function(e){return e.normalize("NFC")})).join("\0")}function o(e){for(var t=0,i=a.length-1;t<=i;){var r=Math.floor((t+i)/2),s=a[r];if(s[0][0]<=e&&s[0][1]>=e)return s;s[0][0]>e?i=r-1:t=r+1}return null}var p=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function d(e){return e.replace(p,"_").length}var h=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;function l(e,t,i){for(var a=((e,t,i)=>{for(var r=!1,a="",n=d(e),p=0;p<n;++p){var h=e.codePointAt(p),l=o(h);switch(l[1]){case"disallowed":r=!0,a+=String.fromCodePoint(h);break;case"ignored":break;case"mapped":a+=String.fromCodePoint.apply(String,l[2]);break;case"deviation":a+=i===s.TRANSITIONAL?String.fromCodePoint.apply(String,l[2]):String.fromCodePoint(h);break;case"valid":a+=String.fromCodePoint(h);break;case"disallowed_STD3_mapped":t?(r=!0,a+=String.fromCodePoint(h)):a+=String.fromCodePoint.apply(String,l[2]);break;case"disallowed_STD3_valid":t&&(r=!0),a+=String.fromCodePoint(h)}}return{string:a,error:r}})(e,t,i),p=(a.string=n(a.string),a.string.split(".")),c=0;c<p.length;++c)try{var u=(e=>{"xn--"===e.substr(0,4)&&(e=r.toUnicode(e));for(var t=!1,i=((n(e)!==e||"-"===e[3]&&"-"===e[4]||"-"===e[0]||"-"===e[e.length-1]||-1!==e.indexOf(".")||0===e.search(h))&&(t=!0),d(e)),a=0;a<i;++a){var p=o(e.codePointAt(a));if(l===s.TRANSITIONAL&&"valid"!==p[1]||l===s.NONTRANSITIONAL&&"valid"!==p[1]&&"deviation"!==p[1]){t=!0;break}}return{label:e,error:t}})(p[c]);p[c]=u.label,a.error=a.error||u.error}catch(e){a.error=!0}return{string:p.join("."),error:a.error}}e.exports.toASCII=function(e,t,i,a){var s=l(e,t,i),n=(n=s.string.split(".")).map((function(e){try{return r.toASCII(e)}catch(t){return s.error=!0,e}}));if(a){(253<(e=n.slice(0,n.length-1).join(".").length).length||0===e.length)&&(s.error=!0);for(var o=0;o<n.length;++o)if(63<n.length||0===n.length){s.error=!0;break}}return s.error?null:n.join(".")},e.exports.toUnicode=function(e,t){return{domain:(e=l(e,t,s.NONTRANSITIONAL)).string,error:e.error}},e.exports.PROCESSING_OPTIONS=s},function(e){e.exports=JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]')},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("block",["tips"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("chain",["full"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("header",["block"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("inv",["inv","tx","block"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("mempool",["transaction"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("config",["changed"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("p2p",["transaction","block","headers"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("prop",["receive"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("notify",["receive","remove"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("ca",["issue","unissue","abolish","unabolish"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("cp",["register"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("sc",["publish"])}},e.exports=i},function(e){e.exports=JSON.parse('{"name":"vallnet","version":"6.5.0","description":"Vallnet Core","license":"MIT","repository":"git://gitee.com/bookmanSoftware/ggserver","homepage":"https://gitee.com/bookmanSoftware/ggserver","bugs":{"url":"https://gitee.com/bookmanSoftware/ggserver/issues"},"author":"bookman <ceo@920.cc>","contributors":["bookman <ceo@920.cc>"],"keywords":["vallnet","gamegold","bitcoin","blockchain","cryptocurrency","wallet"],"engines":{"node":">=12.20.0"},"dependencies":{"@babel/runtime-corejs3":"^7.29.2","acorn":"^8.16.0","async":"^3.2.6","bn.js":"^5.2.3","crc-32":"1.2.0","create-hmac":"1.1.7","crypto-js":"3.1.9-1","elliptic":"^6.5.4","level-errors":"^3.0.0","level-iterator-stream":"^5.0.0","level-js":"^6.0.0","leveldown":"^6.0.2","lodash":"^4.17.23","mime":"^3.0.0","n64":"^0.2.10","node-fetch":"^2.6.7","node-sql-parser":"^4.0.0","punycode":"^2.3.1","randombytes":"^2.1.0","socket.io":"^4.2.0","supports-color":"^8.1.1","uuid":"^3.4.0","uws":"10.148.1","xtend":"4.0.0"},"optionalDependencies":{"secp256k1":"3.8.0"},"devDependencies":{"@babel/core":"^7.15.8","@babel/plugin-transform-runtime":"^7.15.8","@babel/preset-env":"^7.15.8","ajv":"^6.12.6","ajv-keywords":"^3.5.2","babel-loader":"^8.2.2","chai":"^4.3.4","cross-env":"^5.2.1","gamerpc":"^7.0.0","hash.js":"^1.1.3","mocha":"^10.1.0","node-loader":"^1.0.3","should":"^13.2.3","uglifyjs-webpack-plugin":"^2.2.0","webpack":"^4.44.2","webpack-cli":"^4.7.2","webpack-dev-server":"^4.1.0","yargs":"^15.4.1"},"main":"./lib/gamegold.js","bin":{"gg":"./bin/cli","gn":"./bin/node","gspv":"./bin/spvnode"},"scripts":{"start":"node --expose-gc bin/node --genesis --network=testnet --mining=false --workers=false --bip150=false --bip151=false --log-file=true --max-old-space-size=8192","t1":"node --expose-gc bin/node --genesis --network=testnet --mining=true --workers=true --prefix=~/.gamegold/t1 --dev-mode=false --force-sync=true --max-old-space-size=8192","t2":"node --expose-gc bin/node --genesis --network=testnet --mining=false --workers=true --prefix=~/.gamegold/t2 --dev-mode=false --force-sync=true --nodes=127.0.0.1:2100 --port-offset=10","pre":"npm install --registry=https://registry.npmmirror.com","auto":"pm2 startOrRestart pm2.config.js & pm2 monit","log":"pm2 startOrRestart pm2.config.js & pm2 log","stop":"pm2 delete pm2.config.js","master":"node --expose-gc --max-old-space-size=8192 bin/node --genesis --network=main --mining=false --workers=true --bip150=false --bip151=false --host=127.0.0.1 --http-host=127.0.0.1 --prefix=~/.gamegold/main --dev-mode=false --force-sync=false","slaver":"node --expose-gc bin/node --genesis --network=main --mining=false --workers=false --bip150=false --bip151=false --nodes=127.0.0.1:2100 --port-offset=10 --keystore=testnet-bookman-1.keystore --prefix=~/.gamegold/slaver","dot112":"node --expose-gc bin/node --genesis --network=main --mining=false --workers=true --bip150=false --bip151=false --host=127.0.0.1 --http-host=127.0.0.1 --prefix=~/.gamegold/dot112 --dev-mode=false --max-old-space-size=8192 --force-sync=true","dot1":"node --expose-gc bin/node --genesis --network=main --mining=false --workers=true --bip150=false --bip151=false --host=127.0.0.1 --http-host=127.0.0.1 --prefix=~/.gamegold/dot1 --port-offset=10 --prefix=~/.gamegold/dot1 --nodes=127.0.0.1:2000 --dev-mode=false --max-old-space-size=12288 --force-sync=true","dot2":"node --expose-gc bin/node --genesis --network=main --mining=false --workers=true --bip150=false --bip151=false --host=127.0.0.1 --http-host=127.0.0.1 --prefix=~/.gamegold/dot2 --port-offset=20 --prefix=~/.gamegold/dot2 --nodes=127.0.0.1:2000 --dev-mode=false --max-old-space-size=8192 --force-sync=true","n0":"node --expose-gc bin/node --genesis --network=testnet --mining=false --workers=false --log-file=true --wshost=127.0.0.1 --wsport=2104 --prefix=~/.gamegold/f0 --bip151=true --bip150=true --nodes=127.0.0.1:2110","n1":"node --expose-gc bin/node --genesis --network=testnet --mining=false --workers=false --log-file=true --wshost=127.0.0.1 --wsport=2114 --prefix=~/.gamegold/f1 --bip151=true --bip150=true --nodes=127.0.0.1:2100 --port-offset=10 --password=bookman --keystore=testnet-mchain-1.keystore","f0":"node --expose-gc bin/node --genesis --network=testnet --mining=true --workers=true --log-file=true --wshost=127.0.0.1 --wsport=2104 --prefix=~/.gamegold/f0 --bip151=true --bip150=true --nodes=127.0.0.1:2110","f1":"node --expose-gc bin/node --genesis --network=testnet --mining=false --workers=true --log-file=true --wshost=127.0.0.1 --wsport=2114 --prefix=~/.gamegold/f1 --bip151=true --bip150=true --nodes=127.0.0.1:2100 --port-offset=10 --dev-mode=false --max-old-space-size=8192 --force-sync=true --password=bookman --keystore=testnet-bookman-1.keystore","f2":"node --expose-gc bin/node --genesis --network=testnet --mining=false --workers=true --log-file=true --wshost=127.0.0.1 --wsport=2124 --prefix=~/.gamegold/f2 --bip151=true --bip150=true --nodes=127.0.0.1:2100 --port-offset=20 --dev-mode=false --max-old-space-size=8192 --force-sync=true --password=bookman --keystore=testnet-bookman-2.keystore","spv":"node --expose-gc bin/spvnode --genesis --network=testnet --http-remote-port=2102","wallet":"node --expose-gc bin/wallet --genesis --network=testnet --http-remote-port=2102","cli":"node --expose-gc bin/cli --network=main","mock":"node --expose-gc mock/game","clean":"rm -f {browser/,}{gamegold.js,gamegold-worker.js}","fuzz":"node scripts/fuzz verify","docs":"jsdoc -c jsdoc.json","lint":"eslint $(cat .eslintfiles) || exit 0","lint-file":"eslint","test":"mocha --reporter spec test/*.js --timeout=900000","test-browser":"cross-env NODE_OPTIONS=--max-old-space-size=8192 GAMEGOLD_NO_NATIVE=1 GAMEGOLD_NO_SECP256K1=1 mocha --reporter spec test/*.js --timeout=900000","test-file":"mocha --reporter spec","test-file-browser":"cross-env GAMEGOLD_NO_NATIVE=1 GAMEGOLD_NO_SECP256K1=1 mocha --reporter spec","webpack":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.browser.js","webpack-browser":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.browser.js","webpack-cordova":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.cordova.js","webpack-cordova-server":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack-dev-server --config webpack.cordova.js","webpack-compat":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.compat.js","webpack-node":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.node.js & node webpack.replace.js","webpack-node-dev":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.node-dev.js","webpack-light":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.light.js & node webpack.replace-light.js","cover":"istanbul cover node_modules/mocha/bin/_mocha -- -R spec"}}')},function(e,t,i){function r(e,t){if(!e)throw new r.AssertionError({message:t,actual:e,expected:!0,operator:"==",stackStartFunction:r})}function a(e,t,i){if("string"!=typeof e)throw new r.AssertionError({message:t,actual:o(e),expected:"string",operator:"typeof ==",stackStartFunction:i})}function s(e,t,i){if("function"!=typeof e)throw new r.AssertionError({message:t,actual:o(e),expected:"function",operator:"typeof ==",stackStartFunction:i})}function n(e,t,i){if(!Buffer.isBuffer(e))throw new r.AssertionError({message:t,actual:o(e),expected:"buffer",operator:"typeof ==",stackStartFunction:i})}function o(e){var t=typeof e;switch(t){case"object":if(null===e)return"null";if(Array.isArray(e))return"array";if(Buffer.isBuffer(e))return"buffer";if(ArrayBuffer.isView(e))return"arraybuffer";if(e instanceof Error)return"error";if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp";break;case"number":if(isFinite(e))break;return"nan"}return t}function p(e){if(void 0===e)return"undefined";if(null===e)return"null";if(void 0===(e=Object.getPrototypeOf(e)))throw new Error("Bad prototype.");return null===e?"Null":e.constructor?e.constructor.name||"Unknown":"Object"}function d(e){return e.name||"Unknown"}i=i(0),Object.setPrototypeOf(r,i),r.typeOf=function e(t,i,s){if(a(i,"`expected` must be a string.",e),(t=o(t))!==i)throw new r.AssertionError({message:s,actual:t,expected:i,operator:"typeof ==",stackStartFunction:e})},r.notTypeOf=function e(t,i,s){if(a(i,"`expected` must be a string.",e),(t=o(t))===i)throw new r.AssertionError({message:s,actual:t,expected:i,operator:"typeof !=",stackStartFunction:e})},r.instanceOf=function e(t,i,a){if(s(i,"`parent` must be a constructor.",e),!(t instanceof i))throw new r.AssertionError({message:a,actual:p(t),expected:d(i),operator:"instanceof",stackStartFunction:e})},r.notInstanceOf=function e(t,i,a){if(s(i,"`parent` must be a constructor.",e),t instanceof i)throw new r.AssertionError({message:a,actual:p(t),expected:d(i),operator:"not instanceof",stackStartFunction:e})},r.bufferEqual=function e(t,i,a){if(n(t,"`actual` must be a buffer.",e),n(i,"`expected` must be a buffer.",e),t!==i&&!t.equals(i))throw new r.AssertionError({message:a,actual:t.toString("hex"),expected:i.toString("hex"),operator:"===",stackStartFunction:e})},r.notBufferEqual=function e(t,i,a){if(n(t,"`actual` must be a buffer.",e),n(i,"`expected` must be a buffer.",e),t===i||t.equals(i))throw new r.AssertionError({message:a,actual:t.toString("hex"),expected:i.toString("hex"),operator:"!==",stackStartFunction:e})},e.exports=r},function(e,t,i){e.exports=["的","一","是","在","不","了","有","和","人","这","中","大","为","上","个","国","我","以","要","他","时","来","用","们","生","到","作","地","于","出","就","分","对","成","会","可","主","发","年","动","同","工","也","能","下","过","子","说","产","种","面","而","方","后","多","定","行","学","法","所","民","得","经","十","三","之","进","着","等","部","度","家","电","力","里","如","水","化","高","自","二","理","起","小","物","现","实","加","量","都","两","体","制","机","当","使","点","从","业","本","去","把","性","好","应","开","它","合","还","因","由","其","些","然","前","外","天","政","四","日","那","社","义","事","平","形","相","全","表","间","样","与","关","各","重","新","线","内","数","正","心","反","你","明","看","原","又","么","利","比","或","但","质","气","第","向","道","命","此","变","条","只","没","结","解","问","意","建","月","公","无","系","军","很","情","者","最","立","代","想","已","通","并","提","直","题","党","程","展","五","果","料","象","员","革","位","入","常","文","总","次","品","式","活","设","及","管","特","件","长","求","老","头","基","资","边","流","路","级","少","图","山","统","接","知","较","将","组","见","计","别","她","手","角","期","根","论","运","农","指","几","九","区","强","放","决","西","被","干","做","必","战","先","回","则","任","取","据","处","队","南","给","色","光","门","即","保","治","北","造","百","规","热","领","七","海","口","东","导","器","压","志","世","金","增","争","济","阶","油","思","术","极","交","受","联","什","认","六","共","权","收","证","改","清","美","再","采","转","更","单","风","切","打","白","教","速","花","带","安","场","身","车","例","真","务","具","万","每","目","至","达","走","积","示","议","声","报","斗","完","类","八","离","华","名","确","才","科","张","信","马","节","话","米","整","空","元","况","今","集","温","传","土","许","步","群","广","石","记","需","段","研","界","拉","林","律","叫","且","究","观","越","织","装","影","算","低","持","音","众","书","布","复","容","儿","须","际","商","非","验","连","断","深","难","近","矿","千","周","委","素","技","备","半","办","青","省","列","习","响","约","支","般","史","感","劳","便","团","往","酸","历","市","克","何","除","消","构","府","称","太","准","精","值","号","率","族","维","划","选","标","写","存","候","毛","亲","快","效","斯","院","查","江","型","眼","王","按","格","养","易","置","派","层","片","始","却","专","状","育","厂","京","识","适","属","圆","包","火","住","调","满","县","局","照","参","红","细","引","听","该","铁","价","严","首","底","液","官","德","随","病","苏","失","尔","死","讲","配","女","黄","推","显","谈","罪","神","艺","呢","席","含","企","望","密","批","营","项","防","举","球","英","氧","势","告","李","台","落","木","帮","轮","破","亚","师","围","注","远","字","材","排","供","河","态","封","另","施","减","树","溶","怎","止","案","言","士","均","武","固","叶","鱼","波","视","仅","费","紧","爱","左","章","早","朝","害","续","轻","服","试","食","充","兵","源","判","护","司","足","某","练","差","致","板","田","降","黑","犯","负","击","范","继","兴","似","余","坚","曲","输","修","故","城","夫","够","送","笔","船","占","右","财","吃","富","春","职","觉","汉","画","功","巴","跟","虽","杂","飞","检","吸","助","升","阳","互","初","创","抗","考","投","坏","策","古","径","换","未","跑","留","钢","曾","端","责","站","简","述","钱","副","尽","帝","射","草","冲","承","独","令","限","阿","宣","环","双","请","超","微","让","控","州","良","轴","找","否","纪","益","依","优","顶","础","载","倒","房","突","坐","粉","敌","略","客","袁","冷","胜","绝","析","块","剂","测","丝","协","诉","念","陈","仍","罗","盐","友","洋","错","苦","夜","刑","移","频","逐","靠","混","母","短","皮","终","聚","汽","村","云","哪","既","距","卫","停","烈","央","察","烧","迅","境","若","印","洲","刻","括","激","孔","搞","甚","室","待","核","校","散","侵","吧","甲","游","久","菜","味","旧","模","湖","货","损","预","阻","毫","普","稳","乙","妈","植","息","扩","银","语","挥","酒","守","拿","序","纸","医","缺","雨","吗","针","刘","啊","急","唱","误","训","愿","审","附","获","茶","鲜","粮","斤","孩","脱","硫","肥","善","龙","演","父","渐","血","欢","械","掌","歌","沙","刚","攻","谓","盾","讨","晚","粒","乱","燃","矛","乎","杀","药","宁","鲁","贵","钟","煤","读","班","伯","香","介","迫","句","丰","培","握","兰","担","弦","蛋","沉","假","穿","执","答","乐","谁","顺","烟","缩","征","脸","喜","松","脚","困","异","免","背","星","福","买","染","井","概","慢","怕","磁","倍","祖","皇","促","静","补","评","翻","肉","践","尼","衣","宽","扬","棉","希","伤","操","垂","秋","宜","氢","套","督","振","架","亮","末","宪","庆","编","牛","触","映","雷","销","诗","座","居","抓","裂","胞","呼","娘","景","威","绿","晶","厚","盟","衡","鸡","孙","延","危","胶","屋","乡","临","陆","顾","掉","呀","灯","岁","措","束","耐","剧","玉","赵","跳","哥","季","课","凯","胡","额","款","绍","卷","齐","伟","蒸","殖","永","宗","苗","川","炉","岩","弱","零","杨","奏","沿","露","杆","探","滑","镇","饭","浓","航","怀","赶","库","夺","伊","灵","税","途","灭","赛","归","召","鼓","播","盘","裁","险","康","唯","录","菌","纯","借","糖","盖","横","符","私","努","堂","域","枪","润","幅","哈","竟","熟","虫","泽","脑","壤","碳","欧","遍","侧","寨","敢","彻","虑","斜","薄","庭","纳","弹","饲","伸","折","麦","湿","暗","荷","瓦","塞","床","筑","恶","户","访","塔","奇","透","梁","刀","旋","迹","卡","氯","遇","份","毒","泥","退","洗","摆","灰","彩","卖","耗","夏","择","忙","铜","献","硬","予","繁","圈","雪","函","亦","抽","篇","阵","阴","丁","尺","追","堆","雄","迎","泛","爸","楼","避","谋","吨","野","猪","旗","累","偏","典","馆","索","秦","脂","潮","爷","豆","忽","托","惊","塑","遗","愈","朱","替","纤","粗","倾","尚","痛","楚","谢","奋","购","磨","君","池","旁","碎","骨","监","捕","弟","暴","割","贯","殊","释","词","亡","壁","顿","宝","午","尘","闻","揭","炮","残","冬","桥","妇","警","综","招","吴","付","浮","遭","徐","您","摇","谷","赞","箱","隔","订","男","吹","园","纷","唐","败","宋","玻","巨","耕","坦","荣","闭","湾","键","凡","驻","锅","救","恩","剥","凝","碱","齿","截","炼","麻","纺","禁","废","盛","版","缓","净","睛","昌","婚","涉","筒","嘴","插","岸","朗","庄","街","藏","姑","贸","腐","奴","啦","惯","乘","伙","恢","匀","纱","扎","辩","耳","彪","臣","亿","璃","抵","脉","秀","萨","俄","网","舞","店","喷","纵","寸","汗","挂","洪","贺","闪","柬","爆","烯","津","稻","墙","软","勇","像","滚","厘","蒙","芳","肯","坡","柱","荡","腿","仪","旅","尾","轧","冰","贡","登","黎","削","钻","勒","逃","障","氨","郭","峰","币","港","伏","轨","亩","毕","擦","莫","刺","浪","秘","援","株","健","售","股","岛","甘","泡","睡","童","铸","汤","阀","休","汇","舍","牧","绕","炸","哲","磷","绩","朋","淡","尖","启","陷","柴","呈","徒","颜","泪","稍","忘","泵","蓝","拖","洞","授","镜","辛","壮","锋","贫","虚","弯","摩","泰","幼","廷","尊","窗","纲","弄","隶","疑","氏","宫","姐","震","瑞","怪","尤","琴","循","描","膜","违","夹","腰","缘","珠","穷","森","枝","竹","沟","催","绳","忆","邦","剩","幸","浆","栏","拥","牙","贮","礼","滤","钠","纹","罢","拍","咱","喊","袖","埃","勤","罚","焦","潜","伍","墨","欲","缝","姓","刊","饱","仿","奖","铝","鬼","丽","跨","默","挖","链","扫","喝","袋","炭","污","幕","诸","弧","励","梅","奶","洁","灾","舟","鉴","苯","讼","抱","毁","懂","寒","智","埔","寄","届","跃","渡","挑","丹","艰","贝","碰","拔","爹","戴","码","梦","芽","熔","赤","渔","哭","敬","颗","奔","铅","仲","虎","稀","妹","乏","珍","申","桌","遵","允","隆","螺","仓","魏","锐","晓","氮","兼","隐","碍","赫","拨","忠","肃","缸","牵","抢","博","巧","壳","兄","杜","讯","诚","碧","祥","柯","页","巡","矩","悲","灌","龄","伦","票","寻","桂","铺","圣","恐","恰","郑","趣","抬","荒","腾","贴","柔","滴","猛","阔","辆","妻","填","撤","储","签","闹","扰","紫","砂","递","戏","吊","陶","伐","喂","疗","瓶","婆","抚","臂","摸","忍","虾","蜡","邻","胸","巩","挤","偶","弃","槽","劲","乳","邓","吉","仁","烂","砖","租","乌","舰","伴","瓜","浅","丙","暂","燥","橡","柳","迷","暖","牌","秧","胆","详","簧","踏","瓷","谱","呆","宾","糊","洛","辉","愤","竞","隙","怒","粘","乃","绪","肩","籍","敏","涂","熙","皆","侦","悬","掘","享","纠","醒","狂","锁","淀","恨","牲","霸","爬","赏","逆","玩","陵","祝","秒","浙","貌","役","彼","悉","鸭","趋","凤","晨","畜","辈","秩","卵","署","梯","炎","滩","棋","驱","筛","峡","冒","啥","寿","译","浸","泉","帽","迟","硅","疆","贷","漏","稿","冠","嫩","胁","芯","牢","叛","蚀","奥","鸣","岭","羊","凭","串","塘","绘","酵","融","盆","锡","庙","筹","冻","辅","摄","袭","筋","拒","僚","旱","钾","鸟","漆","沈","眉","疏","添","棒","穗","硝","韩","逼","扭","侨","凉","挺","碗","栽","炒","杯","患","馏","劝","豪","辽","勃","鸿","旦","吏","拜","狗","埋","辊","掩","饮","搬","骂","辞","勾","扣","估","蒋","绒","雾","丈","朵","姆","拟","宇","辑","陕","雕","偿","蓄","崇","剪","倡","厅","咬","驶","薯","刷","斥","番","赋","奉","佛","浇","漫","曼","扇","钙","桃","扶","仔","返","俗","亏","腔","鞋","棱","覆","框","悄","叔","撞","骗","勘","旺","沸","孤","吐","孟","渠","屈","疾","妙","惜","仰","狠","胀","谐","抛","霉","桑","岗","嘛","衰","盗","渗","脏","赖","涌","甜","曹","阅","肌","哩","厉","烃","纬","毅","昨","伪","症","煮","叹","钉","搭","茎","笼","酷","偷","弓","锥","恒","杰","坑","鼻","翼","纶","叙","狱","逮","罐","络","棚","抑","膨","蔬","寺","骤","穆","冶","枯","册","尸","凸","绅","坯","牺","焰","轰","欣","晋","瘦","御","锭","锦","丧","旬","锻","垄","搜","扑","邀","亭","酯","迈","舒","脆","酶","闲","忧","酚","顽","羽","涨","卸","仗","陪","辟","惩","杭","姚","肚","捉","飘","漂","昆","欺","吾","郎","烷","汁","呵","饰","萧","雅","邮","迁","燕","撒","姻","赴","宴","烦","债","帐","斑","铃","旨","醇","董","饼","雏","姿","拌","傅","腹","妥","揉","贤","拆","歪","葡","胺","丢","浩","徽","昂","垫","挡","览","贪","慰","缴","汪","慌","冯","诺","姜","谊","凶","劣","诬","耀","昏","躺","盈","骑","乔","溪","丛","卢","抹","闷","咨","刮","驾","缆","悟","摘","铒","掷","颇","幻","柄","惠","惨","佳","仇","腊","窝","涤","剑","瞧","堡","泼","葱","罩","霍","捞","胎","苍","滨","俩","捅","湘","砍","霞","邵","萄","疯","淮","遂","熊","粪","烘","宿","档","戈","驳","嫂","裕","徙","箭","捐","肠","撑","晒","辨","殿","莲","摊","搅","酱","屏","疫","哀","蔡","堵","沫","皱","畅","叠","阁","莱","敲","辖","钩","痕","坝","巷","饿","祸","丘","玄","溜","曰","逻","彭","尝","卿","妨","艇","吞","韦","怨","矮","歇"]},function(e,t,i){e.exports=["的","一","是","在","不","了","有","和","人","這","中","大","為","上","個","國","我","以","要","他","時","來","用","們","生","到","作","地","於","出","就","分","對","成","會","可","主","發","年","動","同","工","也","能","下","過","子","說","產","種","面","而","方","後","多","定","行","學","法","所","民","得","經","十","三","之","進","著","等","部","度","家","電","力","裡","如","水","化","高","自","二","理","起","小","物","現","實","加","量","都","兩","體","制","機","當","使","點","從","業","本","去","把","性","好","應","開","它","合","還","因","由","其","些","然","前","外","天","政","四","日","那","社","義","事","平","形","相","全","表","間","樣","與","關","各","重","新","線","內","數","正","心","反","你","明","看","原","又","麼","利","比","或","但","質","氣","第","向","道","命","此","變","條","只","沒","結","解","問","意","建","月","公","無","系","軍","很","情","者","最","立","代","想","已","通","並","提","直","題","黨","程","展","五","果","料","象","員","革","位","入","常","文","總","次","品","式","活","設","及","管","特","件","長","求","老","頭","基","資","邊","流","路","級","少","圖","山","統","接","知","較","將","組","見","計","別","她","手","角","期","根","論","運","農","指","幾","九","區","強","放","決","西","被","幹","做","必","戰","先","回","則","任","取","據","處","隊","南","給","色","光","門","即","保","治","北","造","百","規","熱","領","七","海","口","東","導","器","壓","志","世","金","增","爭","濟","階","油","思","術","極","交","受","聯","什","認","六","共","權","收","證","改","清","美","再","採","轉","更","單","風","切","打","白","教","速","花","帶","安","場","身","車","例","真","務","具","萬","每","目","至","達","走","積","示","議","聲","報","鬥","完","類","八","離","華","名","確","才","科","張","信","馬","節","話","米","整","空","元","況","今","集","溫","傳","土","許","步","群","廣","石","記","需","段","研","界","拉","林","律","叫","且","究","觀","越","織","裝","影","算","低","持","音","眾","書","布","复","容","兒","須","際","商","非","驗","連","斷","深","難","近","礦","千","週","委","素","技","備","半","辦","青","省","列","習","響","約","支","般","史","感","勞","便","團","往","酸","歷","市","克","何","除","消","構","府","稱","太","準","精","值","號","率","族","維","劃","選","標","寫","存","候","毛","親","快","效","斯","院","查","江","型","眼","王","按","格","養","易","置","派","層","片","始","卻","專","狀","育","廠","京","識","適","屬","圓","包","火","住","調","滿","縣","局","照","參","紅","細","引","聽","該","鐵","價","嚴","首","底","液","官","德","隨","病","蘇","失","爾","死","講","配","女","黃","推","顯","談","罪","神","藝","呢","席","含","企","望","密","批","營","項","防","舉","球","英","氧","勢","告","李","台","落","木","幫","輪","破","亞","師","圍","注","遠","字","材","排","供","河","態","封","另","施","減","樹","溶","怎","止","案","言","士","均","武","固","葉","魚","波","視","僅","費","緊","愛","左","章","早","朝","害","續","輕","服","試","食","充","兵","源","判","護","司","足","某","練","差","致","板","田","降","黑","犯","負","擊","范","繼","興","似","餘","堅","曲","輸","修","故","城","夫","夠","送","筆","船","佔","右","財","吃","富","春","職","覺","漢","畫","功","巴","跟","雖","雜","飛","檢","吸","助","昇","陽","互","初","創","抗","考","投","壞","策","古","徑","換","未","跑","留","鋼","曾","端","責","站","簡","述","錢","副","盡","帝","射","草","衝","承","獨","令","限","阿","宣","環","雙","請","超","微","讓","控","州","良","軸","找","否","紀","益","依","優","頂","礎","載","倒","房","突","坐","粉","敵","略","客","袁","冷","勝","絕","析","塊","劑","測","絲","協","訴","念","陳","仍","羅","鹽","友","洋","錯","苦","夜","刑","移","頻","逐","靠","混","母","短","皮","終","聚","汽","村","雲","哪","既","距","衛","停","烈","央","察","燒","迅","境","若","印","洲","刻","括","激","孔","搞","甚","室","待","核","校","散","侵","吧","甲","遊","久","菜","味","舊","模","湖","貨","損","預","阻","毫","普","穩","乙","媽","植","息","擴","銀","語","揮","酒","守","拿","序","紙","醫","缺","雨","嗎","針","劉","啊","急","唱","誤","訓","願","審","附","獲","茶","鮮","糧","斤","孩","脫","硫","肥","善","龍","演","父","漸","血","歡","械","掌","歌","沙","剛","攻","謂","盾","討","晚","粒","亂","燃","矛","乎","殺","藥","寧","魯","貴","鐘","煤","讀","班","伯","香","介","迫","句","豐","培","握","蘭","擔","弦","蛋","沉","假","穿","執","答","樂","誰","順","煙","縮","徵","臉","喜","松","腳","困","異","免","背","星","福","買","染","井","概","慢","怕","磁","倍","祖","皇","促","靜","補","評","翻","肉","踐","尼","衣","寬","揚","棉","希","傷","操","垂","秋","宜","氫","套","督","振","架","亮","末","憲","慶","編","牛","觸","映","雷","銷","詩","座","居","抓","裂","胞","呼","娘","景","威","綠","晶","厚","盟","衡","雞","孫","延","危","膠","屋","鄉","臨","陸","顧","掉","呀","燈","歲","措","束","耐","劇","玉","趙","跳","哥","季","課","凱","胡","額","款","紹","卷","齊","偉","蒸","殖","永","宗","苗","川","爐","岩","弱","零","楊","奏","沿","露","桿","探","滑","鎮","飯","濃","航","懷","趕","庫","奪","伊","靈","稅","途","滅","賽","歸","召","鼓","播","盤","裁","險","康","唯","錄","菌","純","借","糖","蓋","橫","符","私","努","堂","域","槍","潤","幅","哈","竟","熟","蟲","澤","腦","壤","碳","歐","遍","側","寨","敢","徹","慮","斜","薄","庭","納","彈","飼","伸","折","麥","濕","暗","荷","瓦","塞","床","築","惡","戶","訪","塔","奇","透","梁","刀","旋","跡","卡","氯","遇","份","毒","泥","退","洗","擺","灰","彩","賣","耗","夏","擇","忙","銅","獻","硬","予","繁","圈","雪","函","亦","抽","篇","陣","陰","丁","尺","追","堆","雄","迎","泛","爸","樓","避","謀","噸","野","豬","旗","累","偏","典","館","索","秦","脂","潮","爺","豆","忽","托","驚","塑","遺","愈","朱","替","纖","粗","傾","尚","痛","楚","謝","奮","購","磨","君","池","旁","碎","骨","監","捕","弟","暴","割","貫","殊","釋","詞","亡","壁","頓","寶","午","塵","聞","揭","炮","殘","冬","橋","婦","警","綜","招","吳","付","浮","遭","徐","您","搖","谷","贊","箱","隔","訂","男","吹","園","紛","唐","敗","宋","玻","巨","耕","坦","榮","閉","灣","鍵","凡","駐","鍋","救","恩","剝","凝","鹼","齒","截","煉","麻","紡","禁","廢","盛","版","緩","淨","睛","昌","婚","涉","筒","嘴","插","岸","朗","莊","街","藏","姑","貿","腐","奴","啦","慣","乘","夥","恢","勻","紗","扎","辯","耳","彪","臣","億","璃","抵","脈","秀","薩","俄","網","舞","店","噴","縱","寸","汗","掛","洪","賀","閃","柬","爆","烯","津","稻","牆","軟","勇","像","滾","厘","蒙","芳","肯","坡","柱","盪","腿","儀","旅","尾","軋","冰","貢","登","黎","削","鑽","勒","逃","障","氨","郭","峰","幣","港","伏","軌","畝","畢","擦","莫","刺","浪","秘","援","株","健","售","股","島","甘","泡","睡","童","鑄","湯","閥","休","匯","舍","牧","繞","炸","哲","磷","績","朋","淡","尖","啟","陷","柴","呈","徒","顏","淚","稍","忘","泵","藍","拖","洞","授","鏡","辛","壯","鋒","貧","虛","彎","摩","泰","幼","廷","尊","窗","綱","弄","隸","疑","氏","宮","姐","震","瑞","怪","尤","琴","循","描","膜","違","夾","腰","緣","珠","窮","森","枝","竹","溝","催","繩","憶","邦","剩","幸","漿","欄","擁","牙","貯","禮","濾","鈉","紋","罷","拍","咱","喊","袖","埃","勤","罰","焦","潛","伍","墨","欲","縫","姓","刊","飽","仿","獎","鋁","鬼","麗","跨","默","挖","鏈","掃","喝","袋","炭","污","幕","諸","弧","勵","梅","奶","潔","災","舟","鑑","苯","訟","抱","毀","懂","寒","智","埔","寄","屆","躍","渡","挑","丹","艱","貝","碰","拔","爹","戴","碼","夢","芽","熔","赤","漁","哭","敬","顆","奔","鉛","仲","虎","稀","妹","乏","珍","申","桌","遵","允","隆","螺","倉","魏","銳","曉","氮","兼","隱","礙","赫","撥","忠","肅","缸","牽","搶","博","巧","殼","兄","杜","訊","誠","碧","祥","柯","頁","巡","矩","悲","灌","齡","倫","票","尋","桂","鋪","聖","恐","恰","鄭","趣","抬","荒","騰","貼","柔","滴","猛","闊","輛","妻","填","撤","儲","簽","鬧","擾","紫","砂","遞","戲","吊","陶","伐","餵","療","瓶","婆","撫","臂","摸","忍","蝦","蠟","鄰","胸","鞏","擠","偶","棄","槽","勁","乳","鄧","吉","仁","爛","磚","租","烏","艦","伴","瓜","淺","丙","暫","燥","橡","柳","迷","暖","牌","秧","膽","詳","簧","踏","瓷","譜","呆","賓","糊","洛","輝","憤","競","隙","怒","粘","乃","緒","肩","籍","敏","塗","熙","皆","偵","懸","掘","享","糾","醒","狂","鎖","淀","恨","牲","霸","爬","賞","逆","玩","陵","祝","秒","浙","貌","役","彼","悉","鴨","趨","鳳","晨","畜","輩","秩","卵","署","梯","炎","灘","棋","驅","篩","峽","冒","啥","壽","譯","浸","泉","帽","遲","矽","疆","貸","漏","稿","冠","嫩","脅","芯","牢","叛","蝕","奧","鳴","嶺","羊","憑","串","塘","繪","酵","融","盆","錫","廟","籌","凍","輔","攝","襲","筋","拒","僚","旱","鉀","鳥","漆","沈","眉","疏","添","棒","穗","硝","韓","逼","扭","僑","涼","挺","碗","栽","炒","杯","患","餾","勸","豪","遼","勃","鴻","旦","吏","拜","狗","埋","輥","掩","飲","搬","罵","辭","勾","扣","估","蔣","絨","霧","丈","朵","姆","擬","宇","輯","陝","雕","償","蓄","崇","剪","倡","廳","咬","駛","薯","刷","斥","番","賦","奉","佛","澆","漫","曼","扇","鈣","桃","扶","仔","返","俗","虧","腔","鞋","棱","覆","框","悄","叔","撞","騙","勘","旺","沸","孤","吐","孟","渠","屈","疾","妙","惜","仰","狠","脹","諧","拋","黴","桑","崗","嘛","衰","盜","滲","臟","賴","湧","甜","曹","閱","肌","哩","厲","烴","緯","毅","昨","偽","症","煮","嘆","釘","搭","莖","籠","酷","偷","弓","錐","恆","傑","坑","鼻","翼","綸","敘","獄","逮","罐","絡","棚","抑","膨","蔬","寺","驟","穆","冶","枯","冊","屍","凸","紳","坯","犧","焰","轟","欣","晉","瘦","禦","錠","錦","喪","旬","鍛","壟","搜","撲","邀","亭","酯","邁","舒","脆","酶","閒","憂","酚","頑","羽","漲","卸","仗","陪","闢","懲","杭","姚","肚","捉","飄","漂","昆","欺","吾","郎","烷","汁","呵","飾","蕭","雅","郵","遷","燕","撒","姻","赴","宴","煩","債","帳","斑","鈴","旨","醇","董","餅","雛","姿","拌","傅","腹","妥","揉","賢","拆","歪","葡","胺","丟","浩","徽","昂","墊","擋","覽","貪","慰","繳","汪","慌","馮","諾","姜","誼","兇","劣","誣","耀","昏","躺","盈","騎","喬","溪","叢","盧","抹","悶","諮","刮","駕","纜","悟","摘","鉺","擲","頗","幻","柄","惠","慘","佳","仇","臘","窩","滌","劍","瞧","堡","潑","蔥","罩","霍","撈","胎","蒼","濱","倆","捅","湘","砍","霞","邵","萄","瘋","淮","遂","熊","糞","烘","宿","檔","戈","駁","嫂","裕","徙","箭","捐","腸","撐","曬","辨","殿","蓮","攤","攪","醬","屏","疫","哀","蔡","堵","沫","皺","暢","疊","閣","萊","敲","轄","鉤","痕","壩","巷","餓","禍","丘","玄","溜","曰","邏","彭","嘗","卿","妨","艇","吞","韋","怨","矮","歇"]},function(e,t,i){e.exports=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"]},function(e,t,i){e.exports=["abaisser","abandon","abdiquer","abeille","abolir","aborder","aboutir","aboyer","abrasif","abreuver","abriter","abroger","abrupt","absence","absolu","absurde","abusif","abyssal","académie","acajou","acarien","accabler","accepter","acclamer","accolade","accroche","accuser","acerbe","achat","acheter","aciduler","acier","acompte","acquérir","acronyme","acteur","actif","actuel","adepte","adéquat","adhésif","adjectif","adjuger","admettre","admirer","adopter","adorer","adoucir","adresse","adroit","adulte","adverbe","aérer","aéronef","affaire","affecter","affiche","affreux","affubler","agacer","agencer","agile","agiter","agrafer","agréable","agrume","aider","aiguille","ailier","aimable","aisance","ajouter","ajuster","alarmer","alchimie","alerte","algèbre","algue","aliéner","aliment","alléger","alliage","allouer","allumer","alourdir","alpaga","altesse","alvéole","amateur","ambigu","ambre","aménager","amertume","amidon","amiral","amorcer","amour","amovible","amphibie","ampleur","amusant","analyse","anaphore","anarchie","anatomie","ancien","anéantir","angle","angoisse","anguleux","animal","annexer","annonce","annuel","anodin","anomalie","anonyme","anormal","antenne","antidote","anxieux","apaiser","apéritif","aplanir","apologie","appareil","appeler","apporter","appuyer","aquarium","aqueduc","arbitre","arbuste","ardeur","ardoise","argent","arlequin","armature","armement","armoire","armure","arpenter","arracher","arriver","arroser","arsenic","artériel","article","aspect","asphalte","aspirer","assaut","asservir","assiette","associer","assurer","asticot","astre","astuce","atelier","atome","atrium","atroce","attaque","attentif","attirer","attraper","aubaine","auberge","audace","audible","augurer","aurore","automne","autruche","avaler","avancer","avarice","avenir","averse","aveugle","aviateur","avide","avion","aviser","avoine","avouer","avril","axial","axiome","badge","bafouer","bagage","baguette","baignade","balancer","balcon","baleine","balisage","bambin","bancaire","bandage","banlieue","bannière","banquier","barbier","baril","baron","barque","barrage","bassin","bastion","bataille","bateau","batterie","baudrier","bavarder","belette","bélier","belote","bénéfice","berceau","berger","berline","bermuda","besace","besogne","bétail","beurre","biberon","bicycle","bidule","bijou","bilan","bilingue","billard","binaire","biologie","biopsie","biotype","biscuit","bison","bistouri","bitume","bizarre","blafard","blague","blanchir","blessant","blinder","blond","bloquer","blouson","bobard","bobine","boire","boiser","bolide","bonbon","bondir","bonheur","bonifier","bonus","bordure","borne","botte","boucle","boueux","bougie","boulon","bouquin","bourse","boussole","boutique","boxeur","branche","brasier","brave","brebis","brèche","breuvage","bricoler","brigade","brillant","brioche","brique","brochure","broder","bronzer","brousse","broyeur","brume","brusque","brutal","bruyant","buffle","buisson","bulletin","bureau","burin","bustier","butiner","butoir","buvable","buvette","cabanon","cabine","cachette","cadeau","cadre","caféine","caillou","caisson","calculer","calepin","calibre","calmer","calomnie","calvaire","camarade","caméra","camion","campagne","canal","caneton","canon","cantine","canular","capable","caporal","caprice","capsule","capter","capuche","carabine","carbone","caresser","caribou","carnage","carotte","carreau","carton","cascade","casier","casque","cassure","causer","caution","cavalier","caverne","caviar","cédille","ceinture","céleste","cellule","cendrier","censurer","central","cercle","cérébral","cerise","cerner","cerveau","cesser","chagrin","chaise","chaleur","chambre","chance","chapitre","charbon","chasseur","chaton","chausson","chavirer","chemise","chenille","chéquier","chercher","cheval","chien","chiffre","chignon","chimère","chiot","chlorure","chocolat","choisir","chose","chouette","chrome","chute","cigare","cigogne","cimenter","cinéma","cintrer","circuler","cirer","cirque","citerne","citoyen","citron","civil","clairon","clameur","claquer","classe","clavier","client","cligner","climat","clivage","cloche","clonage","cloporte","cobalt","cobra","cocasse","cocotier","coder","codifier","coffre","cogner","cohésion","coiffer","coincer","colère","colibri","colline","colmater","colonel","combat","comédie","commande","compact","concert","conduire","confier","congeler","connoter","consonne","contact","convexe","copain","copie","corail","corbeau","cordage","corniche","corpus","correct","cortège","cosmique","costume","coton","coude","coupure","courage","couteau","couvrir","coyote","crabe","crainte","cravate","crayon","créature","créditer","crémeux","creuser","crevette","cribler","crier","cristal","critère","croire","croquer","crotale","crucial","cruel","crypter","cubique","cueillir","cuillère","cuisine","cuivre","culminer","cultiver","cumuler","cupide","curatif","curseur","cyanure","cycle","cylindre","cynique","daigner","damier","danger","danseur","dauphin","débattre","débiter","déborder","débrider","débutant","décaler","décembre","déchirer","décider","déclarer","décorer","décrire","décupler","dédale","déductif","déesse","défensif","défiler","défrayer","dégager","dégivrer","déglutir","dégrafer","déjeuner","délice","déloger","demander","demeurer","démolir","dénicher","dénouer","dentelle","dénuder","départ","dépenser","déphaser","déplacer","déposer","déranger","dérober","désastre","descente","désert","désigner","désobéir","dessiner","destrier","détacher","détester","détourer","détresse","devancer","devenir","deviner","devoir","diable","dialogue","diamant","dicter","différer","digérer","digital","digne","diluer","dimanche","diminuer","dioxyde","directif","diriger","discuter","disposer","dissiper","distance","divertir","diviser","docile","docteur","dogme","doigt","domaine","domicile","dompter","donateur","donjon","donner","dopamine","dortoir","dorure","dosage","doseur","dossier","dotation","douanier","double","douceur","douter","doyen","dragon","draper","dresser","dribbler","droiture","duperie","duplexe","durable","durcir","dynastie","éblouir","écarter","écharpe","échelle","éclairer","éclipse","éclore","écluse","école","économie","écorce","écouter","écraser","écrémer","écrivain","écrou","écume","écureuil","édifier","éduquer","effacer","effectif","effigie","effort","effrayer","effusion","égaliser","égarer","éjecter","élaborer","élargir","électron","élégant","éléphant","élève","éligible","élitisme","éloge","élucider","éluder","emballer","embellir","embryon","émeraude","émission","emmener","émotion","émouvoir","empereur","employer","emporter","emprise","émulsion","encadrer","enchère","enclave","encoche","endiguer","endosser","endroit","enduire","énergie","enfance","enfermer","enfouir","engager","engin","englober","énigme","enjamber","enjeu","enlever","ennemi","ennuyeux","enrichir","enrobage","enseigne","entasser","entendre","entier","entourer","entraver","énumérer","envahir","enviable","envoyer","enzyme","éolien","épaissir","épargne","épatant","épaule","épicerie","épidémie","épier","épilogue","épine","épisode","épitaphe","époque","épreuve","éprouver","épuisant","équerre","équipe","ériger","érosion","erreur","éruption","escalier","espadon","espèce","espiègle","espoir","esprit","esquiver","essayer","essence","essieu","essorer","estime","estomac","estrade","étagère","étaler","étanche","étatique","éteindre","étendoir","éternel","éthanol","éthique","ethnie","étirer","étoffer","étoile","étonnant","étourdir","étrange","étroit","étude","euphorie","évaluer","évasion","éventail","évidence","éviter","évolutif","évoquer","exact","exagérer","exaucer","exceller","excitant","exclusif","excuse","exécuter","exemple","exercer","exhaler","exhorter","exigence","exiler","exister","exotique","expédier","explorer","exposer","exprimer","exquis","extensif","extraire","exulter","fable","fabuleux","facette","facile","facture","faiblir","falaise","fameux","famille","farceur","farfelu","farine","farouche","fasciner","fatal","fatigue","faucon","fautif","faveur","favori","fébrile","féconder","fédérer","félin","femme","fémur","fendoir","féodal","fermer","féroce","ferveur","festival","feuille","feutre","février","fiasco","ficeler","fictif","fidèle","figure","filature","filetage","filière","filleul","filmer","filou","filtrer","financer","finir","fiole","firme","fissure","fixer","flairer","flamme","flasque","flatteur","fléau","flèche","fleur","flexion","flocon","flore","fluctuer","fluide","fluvial","folie","fonderie","fongible","fontaine","forcer","forgeron","formuler","fortune","fossile","foudre","fougère","fouiller","foulure","fourmi","fragile","fraise","franchir","frapper","frayeur","frégate","freiner","frelon","frémir","frénésie","frère","friable","friction","frisson","frivole","froid","fromage","frontal","frotter","fruit","fugitif","fuite","fureur","furieux","furtif","fusion","futur","gagner","galaxie","galerie","gambader","garantir","gardien","garnir","garrigue","gazelle","gazon","géant","gélatine","gélule","gendarme","général","génie","genou","gentil","géologie","géomètre","géranium","germe","gestuel","geyser","gibier","gicler","girafe","givre","glace","glaive","glisser","globe","gloire","glorieux","golfeur","gomme","gonfler","gorge","gorille","goudron","gouffre","goulot","goupille","gourmand","goutte","graduel","graffiti","graine","grand","grappin","gratuit","gravir","grenat","griffure","griller","grimper","grogner","gronder","grotte","groupe","gruger","grutier","gruyère","guépard","guerrier","guide","guimauve","guitare","gustatif","gymnaste","gyrostat","habitude","hachoir","halte","hameau","hangar","hanneton","haricot","harmonie","harpon","hasard","hélium","hématome","herbe","hérisson","hermine","héron","hésiter","heureux","hiberner","hibou","hilarant","histoire","hiver","homard","hommage","homogène","honneur","honorer","honteux","horde","horizon","horloge","hormone","horrible","houleux","housse","hublot","huileux","humain","humble","humide","humour","hurler","hydromel","hygiène","hymne","hypnose","idylle","ignorer","iguane","illicite","illusion","image","imbiber","imiter","immense","immobile","immuable","impact","impérial","implorer","imposer","imprimer","imputer","incarner","incendie","incident","incliner","incolore","indexer","indice","inductif","inédit","ineptie","inexact","infini","infliger","informer","infusion","ingérer","inhaler","inhiber","injecter","injure","innocent","inoculer","inonder","inscrire","insecte","insigne","insolite","inspirer","instinct","insulter","intact","intense","intime","intrigue","intuitif","inutile","invasion","inventer","inviter","invoquer","ironique","irradier","irréel","irriter","isoler","ivoire","ivresse","jaguar","jaillir","jambe","janvier","jardin","jauger","jaune","javelot","jetable","jeton","jeudi","jeunesse","joindre","joncher","jongler","joueur","jouissif","journal","jovial","joyau","joyeux","jubiler","jugement","junior","jupon","juriste","justice","juteux","juvénile","kayak","kimono","kiosque","label","labial","labourer","lacérer","lactose","lagune","laine","laisser","laitier","lambeau","lamelle","lampe","lanceur","langage","lanterne","lapin","largeur","larme","laurier","lavabo","lavoir","lecture","légal","léger","légume","lessive","lettre","levier","lexique","lézard","liasse","libérer","libre","licence","licorne","liège","lièvre","ligature","ligoter","ligue","limer","limite","limonade","limpide","linéaire","lingot","lionceau","liquide","lisière","lister","lithium","litige","littoral","livreur","logique","lointain","loisir","lombric","loterie","louer","lourd","loutre","louve","loyal","lubie","lucide","lucratif","lueur","lugubre","luisant","lumière","lunaire","lundi","luron","lutter","luxueux","machine","magasin","magenta","magique","maigre","maillon","maintien","mairie","maison","majorer","malaxer","maléfice","malheur","malice","mallette","mammouth","mandater","maniable","manquant","manteau","manuel","marathon","marbre","marchand","mardi","maritime","marqueur","marron","marteler","mascotte","massif","matériel","matière","matraque","maudire","maussade","mauve","maximal","méchant","méconnu","médaille","médecin","méditer","méduse","meilleur","mélange","mélodie","membre","mémoire","menacer","mener","menhir","mensonge","mentor","mercredi","mérite","merle","messager","mesure","métal","météore","méthode","métier","meuble","miauler","microbe","miette","mignon","migrer","milieu","million","mimique","mince","minéral","minimal","minorer","minute","miracle","miroiter","missile","mixte","mobile","moderne","moelleux","mondial","moniteur","monnaie","monotone","monstre","montagne","monument","moqueur","morceau","morsure","mortier","moteur","motif","mouche","moufle","moulin","mousson","mouton","mouvant","multiple","munition","muraille","murène","murmure","muscle","muséum","musicien","mutation","muter","mutuel","myriade","myrtille","mystère","mythique","nageur","nappe","narquois","narrer","natation","nation","nature","naufrage","nautique","navire","nébuleux","nectar","néfaste","négation","négliger","négocier","neige","nerveux","nettoyer","neurone","neutron","neveu","niche","nickel","nitrate","niveau","noble","nocif","nocturne","noirceur","noisette","nomade","nombreux","nommer","normatif","notable","notifier","notoire","nourrir","nouveau","novateur","novembre","novice","nuage","nuancer","nuire","nuisible","numéro","nuptial","nuque","nutritif","obéir","objectif","obliger","obscur","observer","obstacle","obtenir","obturer","occasion","occuper","océan","octobre","octroyer","octupler","oculaire","odeur","odorant","offenser","officier","offrir","ogive","oiseau","oisillon","olfactif","olivier","ombrage","omettre","onctueux","onduler","onéreux","onirique","opale","opaque","opérer","opinion","opportun","opprimer","opter","optique","orageux","orange","orbite","ordonner","oreille","organe","orgueil","orifice","ornement","orque","ortie","osciller","osmose","ossature","otarie","ouragan","ourson","outil","outrager","ouvrage","ovation","oxyde","oxygène","ozone","paisible","palace","palmarès","palourde","palper","panache","panda","pangolin","paniquer","panneau","panorama","pantalon","papaye","papier","papoter","papyrus","paradoxe","parcelle","paresse","parfumer","parler","parole","parrain","parsemer","partager","parure","parvenir","passion","pastèque","paternel","patience","patron","pavillon","pavoiser","payer","paysage","peigne","peintre","pelage","pélican","pelle","pelouse","peluche","pendule","pénétrer","pénible","pensif","pénurie","pépite","péplum","perdrix","perforer","période","permuter","perplexe","persil","perte","peser","pétale","petit","pétrir","peuple","pharaon","phobie","phoque","photon","phrase","physique","piano","pictural","pièce","pierre","pieuvre","pilote","pinceau","pipette","piquer","pirogue","piscine","piston","pivoter","pixel","pizza","placard","plafond","plaisir","planer","plaque","plastron","plateau","pleurer","plexus","pliage","plomb","plonger","pluie","plumage","pochette","poésie","poète","pointe","poirier","poisson","poivre","polaire","policier","pollen","polygone","pommade","pompier","ponctuel","pondérer","poney","portique","position","posséder","posture","potager","poteau","potion","pouce","poulain","poumon","pourpre","poussin","pouvoir","prairie","pratique","précieux","prédire","préfixe","prélude","prénom","présence","prétexte","prévoir","primitif","prince","prison","priver","problème","procéder","prodige","profond","progrès","proie","projeter","prologue","promener","propre","prospère","protéger","prouesse","proverbe","prudence","pruneau","psychose","public","puceron","puiser","pulpe","pulsar","punaise","punitif","pupitre","purifier","puzzle","pyramide","quasar","querelle","question","quiétude","quitter","quotient","racine","raconter","radieux","ragondin","raideur","raisin","ralentir","rallonge","ramasser","rapide","rasage","ratisser","ravager","ravin","rayonner","réactif","réagir","réaliser","réanimer","recevoir","réciter","réclamer","récolter","recruter","reculer","recycler","rédiger","redouter","refaire","réflexe","réformer","refrain","refuge","régalien","région","réglage","régulier","réitérer","rejeter","rejouer","relatif","relever","relief","remarque","remède","remise","remonter","remplir","remuer","renard","renfort","renifler","renoncer","rentrer","renvoi","replier","reporter","reprise","reptile","requin","réserve","résineux","résoudre","respect","rester","résultat","rétablir","retenir","réticule","retomber","retracer","réunion","réussir","revanche","revivre","révolte","révulsif","richesse","rideau","rieur","rigide","rigoler","rincer","riposter","risible","risque","rituel","rival","rivière","rocheux","romance","rompre","ronce","rondin","roseau","rosier","rotatif","rotor","rotule","rouge","rouille","rouleau","routine","royaume","ruban","rubis","ruche","ruelle","rugueux","ruiner","ruisseau","ruser","rustique","rythme","sabler","saboter","sabre","sacoche","safari","sagesse","saisir","salade","salive","salon","saluer","samedi","sanction","sanglier","sarcasme","sardine","saturer","saugrenu","saumon","sauter","sauvage","savant","savonner","scalpel","scandale","scélérat","scénario","sceptre","schéma","science","scinder","score","scrutin","sculpter","séance","sécable","sécher","secouer","sécréter","sédatif","séduire","seigneur","séjour","sélectif","semaine","sembler","semence","séminal","sénateur","sensible","sentence","séparer","séquence","serein","sergent","sérieux","serrure","sérum","service","sésame","sévir","sevrage","sextuple","sidéral","siècle","siéger","siffler","sigle","signal","silence","silicium","simple","sincère","sinistre","siphon","sirop","sismique","situer","skier","social","socle","sodium","soigneux","soldat","soleil","solitude","soluble","sombre","sommeil","somnoler","sonde","songeur","sonnette","sonore","sorcier","sortir","sosie","sottise","soucieux","soudure","souffle","soulever","soupape","source","soutirer","souvenir","spacieux","spatial","spécial","sphère","spiral","stable","station","sternum","stimulus","stipuler","strict","studieux","stupeur","styliste","sublime","substrat","subtil","subvenir","succès","sucre","suffixe","suggérer","suiveur","sulfate","superbe","supplier","surface","suricate","surmener","surprise","sursaut","survie","suspect","syllabe","symbole","symétrie","synapse","syntaxe","système","tabac","tablier","tactile","tailler","talent","talisman","talonner","tambour","tamiser","tangible","tapis","taquiner","tarder","tarif","tartine","tasse","tatami","tatouage","taupe","taureau","taxer","témoin","temporel","tenaille","tendre","teneur","tenir","tension","terminer","terne","terrible","tétine","texte","thème","théorie","thérapie","thorax","tibia","tiède","timide","tirelire","tiroir","tissu","titane","titre","tituber","toboggan","tolérant","tomate","tonique","tonneau","toponyme","torche","tordre","tornade","torpille","torrent","torse","tortue","totem","toucher","tournage","tousser","toxine","traction","trafic","tragique","trahir","train","trancher","travail","trèfle","tremper","trésor","treuil","triage","tribunal","tricoter","trilogie","triomphe","tripler","triturer","trivial","trombone","tronc","tropical","troupeau","tuile","tulipe","tumulte","tunnel","turbine","tuteur","tutoyer","tuyau","tympan","typhon","typique","tyran","ubuesque","ultime","ultrason","unanime","unifier","union","unique","unitaire","univers","uranium","urbain","urticant","usage","usine","usuel","usure","utile","utopie","vacarme","vaccin","vagabond","vague","vaillant","vaincre","vaisseau","valable","valise","vallon","valve","vampire","vanille","vapeur","varier","vaseux","vassal","vaste","vecteur","vedette","végétal","véhicule","veinard","véloce","vendredi","vénérer","venger","venimeux","ventouse","verdure","vérin","vernir","verrou","verser","vertu","veston","vétéran","vétuste","vexant","vexer","viaduc","viande","victoire","vidange","vidéo","vignette","vigueur","vilain","village","vinaigre","violon","vipère","virement","virtuose","virus","visage","viseur","vision","visqueux","visuel","vital","vitesse","viticole","vitrine","vivace","vivipare","vocation","voguer","voile","voisin","voiture","volaille","volcan","voltiger","volume","vorace","vortex","voter","vouloir","voyage","voyelle","wagon","xénon","yacht","zèbre","zénith","zeste","zoologie"]},function(e,t,i){e.exports=["abaco","abbaglio","abbinato","abete","abisso","abolire","abrasivo","abrogato","accadere","accenno","accusato","acetone","achille","acido","acqua","acre","acrilico","acrobata","acuto","adagio","addebito","addome","adeguato","aderire","adipe","adottare","adulare","affabile","affetto","affisso","affranto","aforisma","afoso","africano","agave","agente","agevole","aggancio","agire","agitare","agonismo","agricolo","agrumeto","aguzzo","alabarda","alato","albatro","alberato","albo","albume","alce","alcolico","alettone","alfa","algebra","aliante","alibi","alimento","allagato","allegro","allievo","allodola","allusivo","almeno","alogeno","alpaca","alpestre","altalena","alterno","alticcio","altrove","alunno","alveolo","alzare","amalgama","amanita","amarena","ambito","ambrato","ameba","america","ametista","amico","ammasso","ammenda","ammirare","ammonito","amore","ampio","ampliare","amuleto","anacardo","anagrafe","analista","anarchia","anatra","anca","ancella","ancora","andare","andrea","anello","angelo","angolare","angusto","anima","annegare","annidato","anno","annuncio","anonimo","anticipo","anzi","apatico","apertura","apode","apparire","appetito","appoggio","approdo","appunto","aprile","arabica","arachide","aragosta","araldica","arancio","aratura","arazzo","arbitro","archivio","ardito","arenile","argento","argine","arguto","aria","armonia","arnese","arredato","arringa","arrosto","arsenico","arso","artefice","arzillo","asciutto","ascolto","asepsi","asettico","asfalto","asino","asola","aspirato","aspro","assaggio","asse","assoluto","assurdo","asta","astenuto","astice","astratto","atavico","ateismo","atomico","atono","attesa","attivare","attorno","attrito","attuale","ausilio","austria","autista","autonomo","autunno","avanzato","avere","avvenire","avviso","avvolgere","azione","azoto","azzimo","azzurro","babele","baccano","bacino","baco","badessa","badilata","bagnato","baita","balcone","baldo","balena","ballata","balzano","bambino","bandire","baraonda","barbaro","barca","baritono","barlume","barocco","basilico","basso","batosta","battuto","baule","bava","bavosa","becco","beffa","belgio","belva","benda","benevole","benigno","benzina","bere","berlina","beta","bibita","bici","bidone","bifido","biga","bilancia","bimbo","binocolo","biologo","bipede","bipolare","birbante","birra","biscotto","bisesto","bisnonno","bisonte","bisturi","bizzarro","blando","blatta","bollito","bonifico","bordo","bosco","botanico","bottino","bozzolo","braccio","bradipo","brama","branca","bravura","bretella","brevetto","brezza","briglia","brillante","brindare","broccolo","brodo","bronzina","brullo","bruno","bubbone","buca","budino","buffone","buio","bulbo","buono","burlone","burrasca","bussola","busta","cadetto","caduco","calamaro","calcolo","calesse","calibro","calmo","caloria","cambusa","camerata","camicia","cammino","camola","campale","canapa","candela","cane","canino","canotto","cantina","capace","capello","capitolo","capogiro","cappero","capra","capsula","carapace","carcassa","cardo","carisma","carovana","carretto","cartolina","casaccio","cascata","caserma","caso","cassone","castello","casuale","catasta","catena","catrame","cauto","cavillo","cedibile","cedrata","cefalo","celebre","cellulare","cena","cenone","centesimo","ceramica","cercare","certo","cerume","cervello","cesoia","cespo","ceto","chela","chiaro","chicca","chiedere","chimera","china","chirurgo","chitarra","ciao","ciclismo","cifrare","cigno","cilindro","ciottolo","circa","cirrosi","citrico","cittadino","ciuffo","civetta","civile","classico","clinica","cloro","cocco","codardo","codice","coerente","cognome","collare","colmato","colore","colposo","coltivato","colza","coma","cometa","commando","comodo","computer","comune","conciso","condurre","conferma","congelare","coniuge","connesso","conoscere","consumo","continuo","convegno","coperto","copione","coppia","copricapo","corazza","cordata","coricato","cornice","corolla","corpo","corredo","corsia","cortese","cosmico","costante","cottura","covato","cratere","cravatta","creato","credere","cremoso","crescita","creta","criceto","crinale","crisi","critico","croce","cronaca","crostata","cruciale","crusca","cucire","cuculo","cugino","cullato","cupola","curatore","cursore","curvo","cuscino","custode","dado","daino","dalmata","damerino","daniela","dannoso","danzare","datato","davanti","davvero","debutto","decennio","deciso","declino","decollo","decreto","dedicato","definito","deforme","degno","delegare","delfino","delirio","delta","demenza","denotato","dentro","deposito","derapata","derivare","deroga","descritto","deserto","desiderio","desumere","detersivo","devoto","diametro","dicembre","diedro","difeso","diffuso","digerire","digitale","diluvio","dinamico","dinnanzi","dipinto","diploma","dipolo","diradare","dire","dirotto","dirupo","disagio","discreto","disfare","disgelo","disposto","distanza","disumano","dito","divano","divelto","dividere","divorato","doblone","docente","doganale","dogma","dolce","domato","domenica","dominare","dondolo","dono","dormire","dote","dottore","dovuto","dozzina","drago","druido","dubbio","dubitare","ducale","duna","duomo","duplice","duraturo","ebano","eccesso","ecco","eclissi","economia","edera","edicola","edile","editoria","educare","egemonia","egli","egoismo","egregio","elaborato","elargire","elegante","elencato","eletto","elevare","elfico","elica","elmo","elsa","eluso","emanato","emblema","emesso","emiro","emotivo","emozione","empirico","emulo","endemico","enduro","energia","enfasi","enoteca","entrare","enzima","epatite","epilogo","episodio","epocale","eppure","equatore","erario","erba","erboso","erede","eremita","erigere","ermetico","eroe","erosivo","errante","esagono","esame","esanime","esaudire","esca","esempio","esercito","esibito","esigente","esistere","esito","esofago","esortato","esoso","espanso","espresso","essenza","esso","esteso","estimare","estonia","estroso","esultare","etilico","etnico","etrusco","etto","euclideo","europa","evaso","evidenza","evitato","evoluto","evviva","fabbrica","faccenda","fachiro","falco","famiglia","fanale","fanfara","fango","fantasma","fare","farfalla","farinoso","farmaco","fascia","fastoso","fasullo","faticare","fato","favoloso","febbre","fecola","fede","fegato","felpa","feltro","femmina","fendere","fenomeno","fermento","ferro","fertile","fessura","festivo","fetta","feudo","fiaba","fiducia","fifa","figurato","filo","finanza","finestra","finire","fiore","fiscale","fisico","fiume","flacone","flamenco","flebo","flemma","florido","fluente","fluoro","fobico","focaccia","focoso","foderato","foglio","folata","folclore","folgore","fondente","fonetico","fonia","fontana","forbito","forchetta","foresta","formica","fornaio","foro","fortezza","forzare","fosfato","fosso","fracasso","frana","frassino","fratello","freccetta","frenata","fresco","frigo","frollino","fronde","frugale","frutta","fucilata","fucsia","fuggente","fulmine","fulvo","fumante","fumetto","fumoso","fune","funzione","fuoco","furbo","furgone","furore","fuso","futile","gabbiano","gaffe","galateo","gallina","galoppo","gambero","gamma","garanzia","garbo","garofano","garzone","gasdotto","gasolio","gastrico","gatto","gaudio","gazebo","gazzella","geco","gelatina","gelso","gemello","gemmato","gene","genitore","gennaio","genotipo","gergo","ghepardo","ghiaccio","ghisa","giallo","gilda","ginepro","giocare","gioiello","giorno","giove","girato","girone","gittata","giudizio","giurato","giusto","globulo","glutine","gnomo","gobba","golf","gomito","gommone","gonfio","gonna","governo","gracile","grado","grafico","grammo","grande","grattare","gravoso","grazia","greca","gregge","grifone","grigio","grinza","grotta","gruppo","guadagno","guaio","guanto","guardare","gufo","guidare","ibernato","icona","identico","idillio","idolo","idra","idrico","idrogeno","igiene","ignaro","ignorato","ilare","illeso","illogico","illudere","imballo","imbevuto","imbocco","imbuto","immane","immerso","immolato","impacco","impeto","impiego","importo","impronta","inalare","inarcare","inattivo","incanto","incendio","inchino","incisivo","incluso","incontro","incrocio","incubo","indagine","india","indole","inedito","infatti","infilare","inflitto","ingaggio","ingegno","inglese","ingordo","ingrosso","innesco","inodore","inoltrare","inondato","insano","insetto","insieme","insonnia","insulina","intasato","intero","intonaco","intuito","inumidire","invalido","invece","invito","iperbole","ipnotico","ipotesi","ippica","iride","irlanda","ironico","irrigato","irrorare","isolato","isotopo","isterico","istituto","istrice","italia","iterare","labbro","labirinto","lacca","lacerato","lacrima","lacuna","laddove","lago","lampo","lancetta","lanterna","lardoso","larga","laringe","lastra","latenza","latino","lattuga","lavagna","lavoro","legale","leggero","lembo","lentezza","lenza","leone","lepre","lesivo","lessato","lesto","letterale","leva","levigato","libero","lido","lievito","lilla","limatura","limitare","limpido","lineare","lingua","liquido","lira","lirica","lisca","lite","litigio","livrea","locanda","lode","logica","lombare","londra","longevo","loquace","lorenzo","loto","lotteria","luce","lucidato","lumaca","luminoso","lungo","lupo","luppolo","lusinga","lusso","lutto","macabro","macchina","macero","macinato","madama","magico","maglia","magnete","magro","maiolica","malafede","malgrado","malinteso","malsano","malto","malumore","mana","mancia","mandorla","mangiare","manifesto","mannaro","manovra","mansarda","mantide","manubrio","mappa","maratona","marcire","maretta","marmo","marsupio","maschera","massaia","mastino","materasso","matricola","mattone","maturo","mazurca","meandro","meccanico","mecenate","medesimo","meditare","mega","melassa","melis","melodia","meninge","meno","mensola","mercurio","merenda","merlo","meschino","mese","messere","mestolo","metallo","metodo","mettere","miagolare","mica","micelio","michele","microbo","midollo","miele","migliore","milano","milite","mimosa","minerale","mini","minore","mirino","mirtillo","miscela","missiva","misto","misurare","mitezza","mitigare","mitra","mittente","mnemonico","modello","modifica","modulo","mogano","mogio","mole","molosso","monastero","monco","mondina","monetario","monile","monotono","monsone","montato","monviso","mora","mordere","morsicato","mostro","motivato","motosega","motto","movenza","movimento","mozzo","mucca","mucosa","muffa","mughetto","mugnaio","mulatto","mulinello","multiplo","mummia","munto","muovere","murale","musa","muscolo","musica","mutevole","muto","nababbo","nafta","nanometro","narciso","narice","narrato","nascere","nastrare","naturale","nautica","naviglio","nebulosa","necrosi","negativo","negozio","nemmeno","neofita","neretto","nervo","nessuno","nettuno","neutrale","neve","nevrotico","nicchia","ninfa","nitido","nobile","nocivo","nodo","nome","nomina","nordico","normale","norvegese","nostrano","notare","notizia","notturno","novella","nucleo","nulla","numero","nuovo","nutrire","nuvola","nuziale","oasi","obbedire","obbligo","obelisco","oblio","obolo","obsoleto","occasione","occhio","occidente","occorrere","occultare","ocra","oculato","odierno","odorare","offerta","offrire","offuscato","oggetto","oggi","ognuno","olandese","olfatto","oliato","oliva","ologramma","oltre","omaggio","ombelico","ombra","omega","omissione","ondoso","onere","onice","onnivoro","onorevole","onta","operato","opinione","opposto","oracolo","orafo","ordine","orecchino","orefice","orfano","organico","origine","orizzonte","orma","ormeggio","ornativo","orologio","orrendo","orribile","ortensia","ortica","orzata","orzo","osare","oscurare","osmosi","ospedale","ospite","ossa","ossidare","ostacolo","oste","otite","otre","ottagono","ottimo","ottobre","ovale","ovest","ovino","oviparo","ovocito","ovunque","ovviare","ozio","pacchetto","pace","pacifico","padella","padrone","paese","paga","pagina","palazzina","palesare","pallido","palo","palude","pandoro","pannello","paolo","paonazzo","paprica","parabola","parcella","parere","pargolo","pari","parlato","parola","partire","parvenza","parziale","passivo","pasticca","patacca","patologia","pattume","pavone","peccato","pedalare","pedonale","peggio","peloso","penare","pendice","penisola","pennuto","penombra","pensare","pentola","pepe","pepita","perbene","percorso","perdonato","perforare","pergamena","periodo","permesso","perno","perplesso","persuaso","pertugio","pervaso","pesatore","pesista","peso","pestifero","petalo","pettine","petulante","pezzo","piacere","pianta","piattino","piccino","picozza","piega","pietra","piffero","pigiama","pigolio","pigro","pila","pilifero","pillola","pilota","pimpante","pineta","pinna","pinolo","pioggia","piombo","piramide","piretico","pirite","pirolisi","pitone","pizzico","placebo","planare","plasma","platano","plenario","pochezza","poderoso","podismo","poesia","poggiare","polenta","poligono","pollice","polmonite","polpetta","polso","poltrona","polvere","pomice","pomodoro","ponte","popoloso","porfido","poroso","porpora","porre","portata","posa","positivo","possesso","postulato","potassio","potere","pranzo","prassi","pratica","precluso","predica","prefisso","pregiato","prelievo","premere","prenotare","preparato","presenza","pretesto","prevalso","prima","principe","privato","problema","procura","produrre","profumo","progetto","prolunga","promessa","pronome","proposta","proroga","proteso","prova","prudente","prugna","prurito","psiche","pubblico","pudica","pugilato","pugno","pulce","pulito","pulsante","puntare","pupazzo","pupilla","puro","quadro","qualcosa","quasi","querela","quota","raccolto","raddoppio","radicale","radunato","raffica","ragazzo","ragione","ragno","ramarro","ramingo","ramo","randagio","rantolare","rapato","rapina","rappreso","rasatura","raschiato","rasente","rassegna","rastrello","rata","ravveduto","reale","recepire","recinto","recluta","recondito","recupero","reddito","redimere","regalato","registro","regola","regresso","relazione","remare","remoto","renna","replica","reprimere","reputare","resa","residente","responso","restauro","rete","retina","retorica","rettifica","revocato","riassunto","ribadire","ribelle","ribrezzo","ricarica","ricco","ricevere","riciclato","ricordo","ricreduto","ridicolo","ridurre","rifasare","riflesso","riforma","rifugio","rigare","rigettato","righello","rilassato","rilevato","rimanere","rimbalzo","rimedio","rimorchio","rinascita","rincaro","rinforzo","rinnovo","rinomato","rinsavito","rintocco","rinuncia","rinvenire","riparato","ripetuto","ripieno","riportare","ripresa","ripulire","risata","rischio","riserva","risibile","riso","rispetto","ristoro","risultato","risvolto","ritardo","ritegno","ritmico","ritrovo","riunione","riva","riverso","rivincita","rivolto","rizoma","roba","robotico","robusto","roccia","roco","rodaggio","rodere","roditore","rogito","rollio","romantico","rompere","ronzio","rosolare","rospo","rotante","rotondo","rotula","rovescio","rubizzo","rubrica","ruga","rullino","rumine","rumoroso","ruolo","rupe","russare","rustico","sabato","sabbiare","sabotato","sagoma","salasso","saldatura","salgemma","salivare","salmone","salone","saltare","saluto","salvo","sapere","sapido","saporito","saraceno","sarcasmo","sarto","sassoso","satellite","satira","satollo","saturno","savana","savio","saziato","sbadiglio","sbalzo","sbancato","sbarra","sbattere","sbavare","sbendare","sbirciare","sbloccato","sbocciato","sbrinare","sbruffone","sbuffare","scabroso","scadenza","scala","scambiare","scandalo","scapola","scarso","scatenare","scavato","scelto","scenico","scettro","scheda","schiena","sciarpa","scienza","scindere","scippo","sciroppo","scivolo","sclerare","scodella","scolpito","scomparto","sconforto","scoprire","scorta","scossone","scozzese","scriba","scrollare","scrutinio","scuderia","scultore","scuola","scuro","scusare","sdebitare","sdoganare","seccatura","secondo","sedano","seggiola","segnalato","segregato","seguito","selciato","selettivo","sella","selvaggio","semaforo","sembrare","seme","seminato","sempre","senso","sentire","sepolto","sequenza","serata","serbato","sereno","serio","serpente","serraglio","servire","sestina","setola","settimana","sfacelo","sfaldare","sfamato","sfarzoso","sfaticato","sfera","sfida","sfilato","sfinge","sfocato","sfoderare","sfogo","sfoltire","sforzato","sfratto","sfruttato","sfuggito","sfumare","sfuso","sgabello","sgarbato","sgonfiare","sgorbio","sgrassato","sguardo","sibilo","siccome","sierra","sigla","signore","silenzio","sillaba","simbolo","simpatico","simulato","sinfonia","singolo","sinistro","sino","sintesi","sinusoide","sipario","sisma","sistole","situato","slitta","slogatura","sloveno","smarrito","smemorato","smentito","smeraldo","smilzo","smontare","smottato","smussato","snellire","snervato","snodo","sobbalzo","sobrio","soccorso","sociale","sodale","soffitto","sogno","soldato","solenne","solido","sollazzo","solo","solubile","solvente","somatico","somma","sonda","sonetto","sonnifero","sopire","soppeso","sopra","sorgere","sorpasso","sorriso","sorso","sorteggio","sorvolato","sospiro","sosta","sottile","spada","spalla","spargere","spatola","spavento","spazzola","specie","spedire","spegnere","spelatura","speranza","spessore","spettrale","spezzato","spia","spigoloso","spillato","spinoso","spirale","splendido","sportivo","sposo","spranga","sprecare","spronato","spruzzo","spuntino","squillo","sradicare","srotolato","stabile","stacco","staffa","stagnare","stampato","stantio","starnuto","stasera","statuto","stelo","steppa","sterzo","stiletto","stima","stirpe","stivale","stizzoso","stonato","storico","strappo","stregato","stridulo","strozzare","strutto","stuccare","stufo","stupendo","subentro","succoso","sudore","suggerito","sugo","sultano","suonare","superbo","supporto","surgelato","surrogato","sussurro","sutura","svagare","svedese","sveglio","svelare","svenuto","svezia","sviluppo","svista","svizzera","svolta","svuotare","tabacco","tabulato","tacciare","taciturno","tale","talismano","tampone","tannino","tara","tardivo","targato","tariffa","tarpare","tartaruga","tasto","tattico","taverna","tavolata","tazza","teca","tecnico","telefono","temerario","tempo","temuto","tendone","tenero","tensione","tentacolo","teorema","terme","terrazzo","terzetto","tesi","tesserato","testato","tetro","tettoia","tifare","tigella","timbro","tinto","tipico","tipografo","tiraggio","tiro","titanio","titolo","titubante","tizio","tizzone","toccare","tollerare","tolto","tombola","tomo","tonfo","tonsilla","topazio","topologia","toppa","torba","tornare","torrone","tortora","toscano","tossire","tostatura","totano","trabocco","trachea","trafila","tragedia","tralcio","tramonto","transito","trapano","trarre","trasloco","trattato","trave","treccia","tremolio","trespolo","tributo","tricheco","trifoglio","trillo","trincea","trio","tristezza","triturato","trivella","tromba","trono","troppo","trottola","trovare","truccato","tubatura","tuffato","tulipano","tumulto","tunisia","turbare","turchino","tuta","tutela","ubicato","uccello","uccisore","udire","uditivo","uffa","ufficio","uguale","ulisse","ultimato","umano","umile","umorismo","uncinetto","ungere","ungherese","unicorno","unificato","unisono","unitario","unte","uovo","upupa","uragano","urgenza","urlo","usanza","usato","uscito","usignolo","usuraio","utensile","utilizzo","utopia","vacante","vaccinato","vagabondo","vagliato","valanga","valgo","valico","valletta","valoroso","valutare","valvola","vampata","vangare","vanitoso","vano","vantaggio","vanvera","vapore","varano","varcato","variante","vasca","vedetta","vedova","veduto","vegetale","veicolo","velcro","velina","velluto","veloce","venato","vendemmia","vento","verace","verbale","vergogna","verifica","vero","verruca","verticale","vescica","vessillo","vestale","veterano","vetrina","vetusto","viandante","vibrante","vicenda","vichingo","vicinanza","vidimare","vigilia","vigneto","vigore","vile","villano","vimini","vincitore","viola","vipera","virgola","virologo","virulento","viscoso","visione","vispo","vissuto","visura","vita","vitello","vittima","vivanda","vivido","viziare","voce","voga","volatile","volere","volpe","voragine","vulcano","zampogna","zanna","zappato","zattera","zavorra","zefiro","zelante","zelo","zenzero","zerbino","zibetto","zinco","zircone","zitto","zolla","zotico","zucchero","zufolo","zulu","zuppa"]},function(e,t,i){e.exports=["あいこくしん","あいさつ","あいだ","あおぞら","あかちゃん","あきる","あけがた","あける","あこがれる","あさい","あさひ","あしあと","あじわう","あずかる","あずき","あそぶ","あたえる","あたためる","あたりまえ","あたる","あつい","あつかう","あっしゅく","あつまり","あつめる","あてな","あてはまる","あひる","あぶら","あぶる","あふれる","あまい","あまど","あまやかす","あまり","あみもの","あめりか","あやまる","あゆむ","あらいぐま","あらし","あらすじ","あらためる","あらゆる","あらわす","ありがとう","あわせる","あわてる","あんい","あんがい","あんこ","あんぜん","あんてい","あんない","あんまり","いいだす","いおん","いがい","いがく","いきおい","いきなり","いきもの","いきる","いくじ","いくぶん","いけばな","いけん","いこう","いこく","いこつ","いさましい","いさん","いしき","いじゅう","いじょう","いじわる","いずみ","いずれ","いせい","いせえび","いせかい","いせき","いぜん","いそうろう","いそがしい","いだい","いだく","いたずら","いたみ","いたりあ","いちおう","いちじ","いちど","いちば","いちぶ","いちりゅう","いつか","いっしゅん","いっせい","いっそう","いったん","いっち","いってい","いっぽう","いてざ","いてん","いどう","いとこ","いない","いなか","いねむり","いのち","いのる","いはつ","いばる","いはん","いびき","いひん","いふく","いへん","いほう","いみん","いもうと","いもたれ","いもり","いやがる","いやす","いよかん","いよく","いらい","いらすと","いりぐち","いりょう","いれい","いれもの","いれる","いろえんぴつ","いわい","いわう","いわかん","いわば","いわゆる","いんげんまめ","いんさつ","いんしょう","いんよう","うえき","うえる","うおざ","うがい","うかぶ","うかべる","うきわ","うくらいな","うくれれ","うけたまわる","うけつけ","うけとる","うけもつ","うける","うごかす","うごく","うこん","うさぎ","うしなう","うしろがみ","うすい","うすぎ","うすぐらい","うすめる","うせつ","うちあわせ","うちがわ","うちき","うちゅう","うっかり","うつくしい","うったえる","うつる","うどん","うなぎ","うなじ","うなずく","うなる","うねる","うのう","うぶげ","うぶごえ","うまれる","うめる","うもう","うやまう","うよく","うらがえす","うらぐち","うらない","うりあげ","うりきれ","うるさい","うれしい","うれゆき","うれる","うろこ","うわき","うわさ","うんこう","うんちん","うんてん","うんどう","えいえん","えいが","えいきょう","えいご","えいせい","えいぶん","えいよう","えいわ","えおり","えがお","えがく","えきたい","えくせる","えしゃく","えすて","えつらん","えのぐ","えほうまき","えほん","えまき","えもじ","えもの","えらい","えらぶ","えりあ","えんえん","えんかい","えんぎ","えんげき","えんしゅう","えんぜつ","えんそく","えんちょう","えんとつ","おいかける","おいこす","おいしい","おいつく","おうえん","おうさま","おうじ","おうせつ","おうたい","おうふく","おうべい","おうよう","おえる","おおい","おおう","おおどおり","おおや","おおよそ","おかえり","おかず","おがむ","おかわり","おぎなう","おきる","おくさま","おくじょう","おくりがな","おくる","おくれる","おこす","おこなう","おこる","おさえる","おさない","おさめる","おしいれ","おしえる","おじぎ","おじさん","おしゃれ","おそらく","おそわる","おたがい","おたく","おだやか","おちつく","おっと","おつり","おでかけ","おとしもの","おとなしい","おどり","おどろかす","おばさん","おまいり","おめでとう","おもいで","おもう","おもたい","おもちゃ","おやつ","おやゆび","およぼす","おらんだ","おろす","おんがく","おんけい","おんしゃ","おんせん","おんだん","おんちゅう","おんどけい","かあつ","かいが","がいき","がいけん","がいこう","かいさつ","かいしゃ","かいすいよく","かいぜん","かいぞうど","かいつう","かいてん","かいとう","かいふく","がいへき","かいほう","かいよう","がいらい","かいわ","かえる","かおり","かかえる","かがく","かがし","かがみ","かくご","かくとく","かざる","がぞう","かたい","かたち","がちょう","がっきゅう","がっこう","がっさん","がっしょう","かなざわし","かのう","がはく","かぶか","かほう","かほご","かまう","かまぼこ","かめれおん","かゆい","かようび","からい","かるい","かろう","かわく","かわら","がんか","かんけい","かんこう","かんしゃ","かんそう","かんたん","かんち","がんばる","きあい","きあつ","きいろ","ぎいん","きうい","きうん","きえる","きおう","きおく","きおち","きおん","きかい","きかく","きかんしゃ","ききて","きくばり","きくらげ","きけんせい","きこう","きこえる","きこく","きさい","きさく","きさま","きさらぎ","ぎじかがく","ぎしき","ぎじたいけん","ぎじにってい","ぎじゅつしゃ","きすう","きせい","きせき","きせつ","きそう","きぞく","きぞん","きたえる","きちょう","きつえん","ぎっちり","きつつき","きつね","きてい","きどう","きどく","きない","きなが","きなこ","きぬごし","きねん","きのう","きのした","きはく","きびしい","きひん","きふく","きぶん","きぼう","きほん","きまる","きみつ","きむずかしい","きめる","きもだめし","きもち","きもの","きゃく","きやく","ぎゅうにく","きよう","きょうりゅう","きらい","きらく","きりん","きれい","きれつ","きろく","ぎろん","きわめる","ぎんいろ","きんかくじ","きんじょ","きんようび","ぐあい","くいず","くうかん","くうき","くうぐん","くうこう","ぐうせい","くうそう","ぐうたら","くうふく","くうぼ","くかん","くきょう","くげん","ぐこう","くさい","くさき","くさばな","くさる","くしゃみ","くしょう","くすのき","くすりゆび","くせげ","くせん","ぐたいてき","くださる","くたびれる","くちこみ","くちさき","くつした","ぐっすり","くつろぐ","くとうてん","くどく","くなん","くねくね","くのう","くふう","くみあわせ","くみたてる","くめる","くやくしょ","くらす","くらべる","くるま","くれる","くろう","くわしい","ぐんかん","ぐんしょく","ぐんたい","ぐんて","けあな","けいかく","けいけん","けいこ","けいさつ","げいじゅつ","けいたい","げいのうじん","けいれき","けいろ","けおとす","けおりもの","げきか","げきげん","げきだん","げきちん","げきとつ","げきは","げきやく","げこう","げこくじょう","げざい","けさき","げざん","けしき","けしごむ","けしょう","げすと","けたば","けちゃっぷ","けちらす","けつあつ","けつい","けつえき","けっこん","けつじょ","けっせき","けってい","けつまつ","げつようび","げつれい","けつろん","げどく","けとばす","けとる","けなげ","けなす","けなみ","けぬき","げねつ","けねん","けはい","げひん","けぶかい","げぼく","けまり","けみかる","けむし","けむり","けもの","けらい","けろけろ","けわしい","けんい","けんえつ","けんお","けんか","げんき","けんげん","けんこう","けんさく","けんしゅう","けんすう","げんそう","けんちく","けんてい","けんとう","けんない","けんにん","げんぶつ","けんま","けんみん","けんめい","けんらん","けんり","こあくま","こいぬ","こいびと","ごうい","こうえん","こうおん","こうかん","ごうきゅう","ごうけい","こうこう","こうさい","こうじ","こうすい","ごうせい","こうそく","こうたい","こうちゃ","こうつう","こうてい","こうどう","こうない","こうはい","ごうほう","ごうまん","こうもく","こうりつ","こえる","こおり","ごかい","ごがつ","ごかん","こくご","こくさい","こくとう","こくない","こくはく","こぐま","こけい","こける","ここのか","こころ","こさめ","こしつ","こすう","こせい","こせき","こぜん","こそだて","こたい","こたえる","こたつ","こちょう","こっか","こつこつ","こつばん","こつぶ","こてい","こてん","ことがら","ことし","ことば","ことり","こなごな","こねこね","このまま","このみ","このよ","ごはん","こひつじ","こふう","こふん","こぼれる","ごまあぶら","こまかい","ごますり","こまつな","こまる","こむぎこ","こもじ","こもち","こもの","こもん","こやく","こやま","こゆう","こゆび","こよい","こよう","こりる","これくしょん","ころっけ","こわもて","こわれる","こんいん","こんかい","こんき","こんしゅう","こんすい","こんだて","こんとん","こんなん","こんびに","こんぽん","こんまけ","こんや","こんれい","こんわく","ざいえき","さいかい","さいきん","ざいげん","ざいこ","さいしょ","さいせい","ざいたく","ざいちゅう","さいてき","ざいりょう","さうな","さかいし","さがす","さかな","さかみち","さがる","さぎょう","さくし","さくひん","さくら","さこく","さこつ","さずかる","ざせき","さたん","さつえい","ざつおん","ざっか","ざつがく","さっきょく","ざっし","さつじん","ざっそう","さつたば","さつまいも","さてい","さといも","さとう","さとおや","さとし","さとる","さのう","さばく","さびしい","さべつ","さほう","さほど","さます","さみしい","さみだれ","さむけ","さめる","さやえんどう","さゆう","さよう","さよく","さらだ","ざるそば","さわやか","さわる","さんいん","さんか","さんきゃく","さんこう","さんさい","ざんしょ","さんすう","さんせい","さんそ","さんち","さんま","さんみ","さんらん","しあい","しあげ","しあさって","しあわせ","しいく","しいん","しうち","しえい","しおけ","しかい","しかく","じかん","しごと","しすう","じだい","したうけ","したぎ","したて","したみ","しちょう","しちりん","しっかり","しつじ","しつもん","してい","してき","してつ","じてん","じどう","しなぎれ","しなもの","しなん","しねま","しねん","しのぐ","しのぶ","しはい","しばかり","しはつ","しはらい","しはん","しひょう","しふく","じぶん","しへい","しほう","しほん","しまう","しまる","しみん","しむける","じむしょ","しめい","しめる","しもん","しゃいん","しゃうん","しゃおん","じゃがいも","しやくしょ","しゃくほう","しゃけん","しゃこ","しゃざい","しゃしん","しゃせん","しゃそう","しゃたい","しゃちょう","しゃっきん","じゃま","しゃりん","しゃれい","じゆう","じゅうしょ","しゅくはく","じゅしん","しゅっせき","しゅみ","しゅらば","じゅんばん","しょうかい","しょくたく","しょっけん","しょどう","しょもつ","しらせる","しらべる","しんか","しんこう","じんじゃ","しんせいじ","しんちく","しんりん","すあげ","すあし","すあな","ずあん","すいえい","すいか","すいとう","ずいぶん","すいようび","すうがく","すうじつ","すうせん","すおどり","すきま","すくう","すくない","すける","すごい","すこし","ずさん","すずしい","すすむ","すすめる","すっかり","ずっしり","ずっと","すてき","すてる","すねる","すのこ","すはだ","すばらしい","ずひょう","ずぶぬれ","すぶり","すふれ","すべて","すべる","ずほう","すぼん","すまい","すめし","すもう","すやき","すらすら","するめ","すれちがう","すろっと","すわる","すんぜん","すんぽう","せあぶら","せいかつ","せいげん","せいじ","せいよう","せおう","せかいかん","せきにん","せきむ","せきゆ","せきらんうん","せけん","せこう","せすじ","せたい","せたけ","せっかく","せっきゃく","ぜっく","せっけん","せっこつ","せっさたくま","せつぞく","せつだん","せつでん","せっぱん","せつび","せつぶん","せつめい","せつりつ","せなか","せのび","せはば","せびろ","せぼね","せまい","せまる","せめる","せもたれ","せりふ","ぜんあく","せんい","せんえい","せんか","せんきょ","せんく","せんげん","ぜんご","せんさい","せんしゅ","せんすい","せんせい","せんぞ","せんたく","せんちょう","せんてい","せんとう","せんぬき","せんねん","せんぱい","ぜんぶ","ぜんぽう","せんむ","せんめんじょ","せんもん","せんやく","せんゆう","せんよう","ぜんら","ぜんりゃく","せんれい","せんろ","そあく","そいとげる","そいね","そうがんきょう","そうき","そうご","そうしん","そうだん","そうなん","そうび","そうめん","そうり","そえもの","そえん","そがい","そげき","そこう","そこそこ","そざい","そしな","そせい","そせん","そそぐ","そだてる","そつう","そつえん","そっかん","そつぎょう","そっけつ","そっこう","そっせん","そっと","そとがわ","そとづら","そなえる","そなた","そふぼ","そぼく","そぼろ","そまつ","そまる","そむく","そむりえ","そめる","そもそも","そよかぜ","そらまめ","そろう","そんかい","そんけい","そんざい","そんしつ","そんぞく","そんちょう","ぞんび","ぞんぶん","そんみん","たあい","たいいん","たいうん","たいえき","たいおう","だいがく","たいき","たいぐう","たいけん","たいこ","たいざい","だいじょうぶ","だいすき","たいせつ","たいそう","だいたい","たいちょう","たいてい","だいどころ","たいない","たいねつ","たいのう","たいはん","だいひょう","たいふう","たいへん","たいほ","たいまつばな","たいみんぐ","たいむ","たいめん","たいやき","たいよう","たいら","たいりょく","たいる","たいわん","たうえ","たえる","たおす","たおる","たおれる","たかい","たかね","たきび","たくさん","たこく","たこやき","たさい","たしざん","だじゃれ","たすける","たずさわる","たそがれ","たたかう","たたく","ただしい","たたみ","たちばな","だっかい","だっきゃく","だっこ","だっしゅつ","だったい","たてる","たとえる","たなばた","たにん","たぬき","たのしみ","たはつ","たぶん","たべる","たぼう","たまご","たまる","だむる","ためいき","ためす","ためる","たもつ","たやすい","たよる","たらす","たりきほんがん","たりょう","たりる","たると","たれる","たれんと","たろっと","たわむれる","だんあつ","たんい","たんおん","たんか","たんき","たんけん","たんご","たんさん","たんじょうび","だんせい","たんそく","たんたい","だんち","たんてい","たんとう","だんな","たんにん","だんねつ","たんのう","たんぴん","だんぼう","たんまつ","たんめい","だんれつ","だんろ","だんわ","ちあい","ちあん","ちいき","ちいさい","ちえん","ちかい","ちから","ちきゅう","ちきん","ちけいず","ちけん","ちこく","ちさい","ちしき","ちしりょう","ちせい","ちそう","ちたい","ちたん","ちちおや","ちつじょ","ちてき","ちてん","ちぬき","ちぬり","ちのう","ちひょう","ちへいせん","ちほう","ちまた","ちみつ","ちみどろ","ちめいど","ちゃんこなべ","ちゅうい","ちゆりょく","ちょうし","ちょさくけん","ちらし","ちらみ","ちりがみ","ちりょう","ちるど","ちわわ","ちんたい","ちんもく","ついか","ついたち","つうか","つうじょう","つうはん","つうわ","つかう","つかれる","つくね","つくる","つけね","つける","つごう","つたえる","つづく","つつじ","つつむ","つとめる","つながる","つなみ","つねづね","つのる","つぶす","つまらない","つまる","つみき","つめたい","つもり","つもる","つよい","つるぼ","つるみく","つわもの","つわり","てあし","てあて","てあみ","ていおん","ていか","ていき","ていけい","ていこく","ていさつ","ていし","ていせい","ていたい","ていど","ていねい","ていひょう","ていへん","ていぼう","てうち","ておくれ","てきとう","てくび","でこぼこ","てさぎょう","てさげ","てすり","てそう","てちがい","てちょう","てつがく","てつづき","でっぱ","てつぼう","てつや","でぬかえ","てぬき","てぬぐい","てのひら","てはい","てぶくろ","てふだ","てほどき","てほん","てまえ","てまきずし","てみじか","てみやげ","てらす","てれび","てわけ","てわたし","でんあつ","てんいん","てんかい","てんき","てんぐ","てんけん","てんごく","てんさい","てんし","てんすう","でんち","てんてき","てんとう","てんない","てんぷら","てんぼうだい","てんめつ","てんらんかい","でんりょく","でんわ","どあい","といれ","どうかん","とうきゅう","どうぐ","とうし","とうむぎ","とおい","とおか","とおく","とおす","とおる","とかい","とかす","ときおり","ときどき","とくい","とくしゅう","とくてん","とくに","とくべつ","とけい","とける","とこや","とさか","としょかん","とそう","とたん","とちゅう","とっきゅう","とっくん","とつぜん","とつにゅう","とどける","ととのえる","とない","となえる","となり","とのさま","とばす","どぶがわ","とほう","とまる","とめる","ともだち","ともる","どようび","とらえる","とんかつ","どんぶり","ないかく","ないこう","ないしょ","ないす","ないせん","ないそう","なおす","ながい","なくす","なげる","なこうど","なさけ","なたでここ","なっとう","なつやすみ","ななおし","なにごと","なにもの","なにわ","なのか","なふだ","なまいき","なまえ","なまみ","なみだ","なめらか","なめる","なやむ","ならう","ならび","ならぶ","なれる","なわとび","なわばり","にあう","にいがた","にうけ","におい","にかい","にがて","にきび","にくしみ","にくまん","にげる","にさんかたんそ","にしき","にせもの","にちじょう","にちようび","にっか","にっき","にっけい","にっこう","にっさん","にっしょく","にっすう","にっせき","にってい","になう","にほん","にまめ","にもつ","にやり","にゅういん","にりんしゃ","にわとり","にんい","にんか","にんき","にんげん","にんしき","にんずう","にんそう","にんたい","にんち","にんてい","にんにく","にんぷ","にんまり","にんむ","にんめい","にんよう","ぬいくぎ","ぬかす","ぬぐいとる","ぬぐう","ぬくもり","ぬすむ","ぬまえび","ぬめり","ぬらす","ぬんちゃく","ねあげ","ねいき","ねいる","ねいろ","ねぐせ","ねくたい","ねくら","ねこぜ","ねこむ","ねさげ","ねすごす","ねそべる","ねだん","ねつい","ねっしん","ねつぞう","ねったいぎょ","ねぶそく","ねふだ","ねぼう","ねほりはほり","ねまき","ねまわし","ねみみ","ねむい","ねむたい","ねもと","ねらう","ねわざ","ねんいり","ねんおし","ねんかん","ねんきん","ねんぐ","ねんざ","ねんし","ねんちゃく","ねんど","ねんぴ","ねんぶつ","ねんまつ","ねんりょう","ねんれい","のいず","のおづま","のがす","のきなみ","のこぎり","のこす","のこる","のせる","のぞく","のぞむ","のたまう","のちほど","のっく","のばす","のはら","のべる","のぼる","のみもの","のやま","のらいぬ","のらねこ","のりもの","のりゆき","のれん","のんき","ばあい","はあく","ばあさん","ばいか","ばいく","はいけん","はいご","はいしん","はいすい","はいせん","はいそう","はいち","ばいばい","はいれつ","はえる","はおる","はかい","ばかり","はかる","はくしゅ","はけん","はこぶ","はさみ","はさん","はしご","ばしょ","はしる","はせる","ぱそこん","はそん","はたん","はちみつ","はつおん","はっかく","はづき","はっきり","はっくつ","はっけん","はっこう","はっさん","はっしん","はったつ","はっちゅう","はってん","はっぴょう","はっぽう","はなす","はなび","はにかむ","はぶらし","はみがき","はむかう","はめつ","はやい","はやし","はらう","はろうぃん","はわい","はんい","はんえい","はんおん","はんかく","はんきょう","ばんぐみ","はんこ","はんしゃ","はんすう","はんだん","ぱんち","ぱんつ","はんてい","はんとし","はんのう","はんぱ","はんぶん","はんぺん","はんぼうき","はんめい","はんらん","はんろん","ひいき","ひうん","ひえる","ひかく","ひかり","ひかる","ひかん","ひくい","ひけつ","ひこうき","ひこく","ひさい","ひさしぶり","ひさん","びじゅつかん","ひしょ","ひそか","ひそむ","ひたむき","ひだり","ひたる","ひつぎ","ひっこし","ひっし","ひつじゅひん","ひっす","ひつぜん","ぴったり","ぴっちり","ひつよう","ひてい","ひとごみ","ひなまつり","ひなん","ひねる","ひはん","ひびく","ひひょう","ひほう","ひまわり","ひまん","ひみつ","ひめい","ひめじし","ひやけ","ひやす","ひよう","びょうき","ひらがな","ひらく","ひりつ","ひりょう","ひるま","ひるやすみ","ひれい","ひろい","ひろう","ひろき","ひろゆき","ひんかく","ひんけつ","ひんこん","ひんしゅ","ひんそう","ぴんち","ひんぱん","びんぼう","ふあん","ふいうち","ふうけい","ふうせん","ぷうたろう","ふうとう","ふうふ","ふえる","ふおん","ふかい","ふきん","ふくざつ","ふくぶくろ","ふこう","ふさい","ふしぎ","ふじみ","ふすま","ふせい","ふせぐ","ふそく","ぶたにく","ふたん","ふちょう","ふつう","ふつか","ふっかつ","ふっき","ふっこく","ぶどう","ふとる","ふとん","ふのう","ふはい","ふひょう","ふへん","ふまん","ふみん","ふめつ","ふめん","ふよう","ふりこ","ふりる","ふるい","ふんいき","ぶんがく","ぶんぐ","ふんしつ","ぶんせき","ふんそう","ぶんぽう","へいあん","へいおん","へいがい","へいき","へいげん","へいこう","へいさ","へいしゃ","へいせつ","へいそ","へいたく","へいてん","へいねつ","へいわ","へきが","へこむ","べにいろ","べにしょうが","へらす","へんかん","べんきょう","べんごし","へんさい","へんたい","べんり","ほあん","ほいく","ぼうぎょ","ほうこく","ほうそう","ほうほう","ほうもん","ほうりつ","ほえる","ほおん","ほかん","ほきょう","ぼきん","ほくろ","ほけつ","ほけん","ほこう","ほこる","ほしい","ほしつ","ほしゅ","ほしょう","ほせい","ほそい","ほそく","ほたて","ほたる","ぽちぶくろ","ほっきょく","ほっさ","ほったん","ほとんど","ほめる","ほんい","ほんき","ほんけ","ほんしつ","ほんやく","まいにち","まかい","まかせる","まがる","まける","まこと","まさつ","まじめ","ますく","まぜる","まつり","まとめ","まなぶ","まぬけ","まねく","まほう","まもる","まゆげ","まよう","まろやか","まわす","まわり","まわる","まんが","まんきつ","まんぞく","まんなか","みいら","みうち","みえる","みがく","みかた","みかん","みけん","みこん","みじかい","みすい","みすえる","みせる","みっか","みつかる","みつける","みてい","みとめる","みなと","みなみかさい","みねらる","みのう","みのがす","みほん","みもと","みやげ","みらい","みりょく","みわく","みんか","みんぞく","むいか","むえき","むえん","むかい","むかう","むかえ","むかし","むぎちゃ","むける","むげん","むさぼる","むしあつい","むしば","むじゅん","むしろ","むすう","むすこ","むすぶ","むすめ","むせる","むせん","むちゅう","むなしい","むのう","むやみ","むよう","むらさき","むりょう","むろん","めいあん","めいうん","めいえん","めいかく","めいきょく","めいさい","めいし","めいそう","めいぶつ","めいれい","めいわく","めぐまれる","めざす","めした","めずらしい","めだつ","めまい","めやす","めんきょ","めんせき","めんどう","もうしあげる","もうどうけん","もえる","もくし","もくてき","もくようび","もちろん","もどる","もらう","もんく","もんだい","やおや","やける","やさい","やさしい","やすい","やすたろう","やすみ","やせる","やそう","やたい","やちん","やっと","やっぱり","やぶる","やめる","ややこしい","やよい","やわらかい","ゆうき","ゆうびんきょく","ゆうべ","ゆうめい","ゆけつ","ゆしゅつ","ゆせん","ゆそう","ゆたか","ゆちゃく","ゆでる","ゆにゅう","ゆびわ","ゆらい","ゆれる","ようい","ようか","ようきゅう","ようじ","ようす","ようちえん","よかぜ","よかん","よきん","よくせい","よくぼう","よけい","よごれる","よさん","よしゅう","よそう","よそく","よっか","よてい","よどがわく","よねつ","よやく","よゆう","よろこぶ","よろしい","らいう","らくがき","らくご","らくさつ","らくだ","らしんばん","らせん","らぞく","らたい","らっか","られつ","りえき","りかい","りきさく","りきせつ","りくぐん","りくつ","りけん","りこう","りせい","りそう","りそく","りてん","りねん","りゆう","りゅうがく","りよう","りょうり","りょかん","りょくちゃ","りょこう","りりく","りれき","りろん","りんご","るいけい","るいさい","るいじ","るいせき","るすばん","るりがわら","れいかん","れいぎ","れいせい","れいぞうこ","れいとう","れいぼう","れきし","れきだい","れんあい","れんけい","れんこん","れんさい","れんしゅう","れんぞく","れんらく","ろうか","ろうご","ろうじん","ろうそく","ろくが","ろこつ","ろじうら","ろしゅつ","ろせん","ろてん","ろめん","ろれつ","ろんぎ","ろんぱ","ろんぶん","ろんり","わかす","わかめ","わかやま","わかれる","わしつ","わじまし","わすれもの","わらう","われる"]},function(e,t,i){e.exports=["ábaco","abdomen","abeja","abierto","abogado","abono","aborto","abrazo","abrir","abuelo","abuso","acabar","academia","acceso","acción","aceite","acelga","acento","aceptar","ácido","aclarar","acné","acoger","acoso","activo","acto","actriz","actuar","acudir","acuerdo","acusar","adicto","admitir","adoptar","adorno","aduana","adulto","aéreo","afectar","afición","afinar","afirmar","ágil","agitar","agonía","agosto","agotar","agregar","agrio","agua","agudo","águila","aguja","ahogo","ahorro","aire","aislar","ajedrez","ajeno","ajuste","alacrán","alambre","alarma","alba","álbum","alcalde","aldea","alegre","alejar","alerta","aleta","alfiler","alga","algodón","aliado","aliento","alivio","alma","almeja","almíbar","altar","alteza","altivo","alto","altura","alumno","alzar","amable","amante","amapola","amargo","amasar","ámbar","ámbito","ameno","amigo","amistad","amor","amparo","amplio","ancho","anciano","ancla","andar","andén","anemia","ángulo","anillo","ánimo","anís","anotar","antena","antiguo","antojo","anual","anular","anuncio","añadir","añejo","año","apagar","aparato","apetito","apio","aplicar","apodo","aporte","apoyo","aprender","aprobar","apuesta","apuro","arado","araña","arar","árbitro","árbol","arbusto","archivo","arco","arder","ardilla","arduo","área","árido","aries","armonía","arnés","aroma","arpa","arpón","arreglo","arroz","arruga","arte","artista","asa","asado","asalto","ascenso","asegurar","aseo","asesor","asiento","asilo","asistir","asno","asombro","áspero","astilla","astro","astuto","asumir","asunto","atajo","ataque","atar","atento","ateo","ático","atleta","átomo","atraer","atroz","atún","audaz","audio","auge","aula","aumento","ausente","autor","aval","avance","avaro","ave","avellana","avena","avestruz","avión","aviso","ayer","ayuda","ayuno","azafrán","azar","azote","azúcar","azufre","azul","baba","babor","bache","bahía","baile","bajar","balanza","balcón","balde","bambú","banco","banda","baño","barba","barco","barniz","barro","báscula","bastón","basura","batalla","batería","batir","batuta","baúl","bazar","bebé","bebida","bello","besar","beso","bestia","bicho","bien","bingo","blanco","bloque","blusa","boa","bobina","bobo","boca","bocina","boda","bodega","boina","bola","bolero","bolsa","bomba","bondad","bonito","bono","bonsái","borde","borrar","bosque","bote","botín","bóveda","bozal","bravo","brazo","brecha","breve","brillo","brinco","brisa","broca","broma","bronce","brote","bruja","brusco","bruto","buceo","bucle","bueno","buey","bufanda","bufón","búho","buitre","bulto","burbuja","burla","burro","buscar","butaca","buzón","caballo","cabeza","cabina","cabra","cacao","cadáver","cadena","caer","café","caída","caimán","caja","cajón","cal","calamar","calcio","caldo","calidad","calle","calma","calor","calvo","cama","cambio","camello","camino","campo","cáncer","candil","canela","canguro","canica","canto","caña","cañón","caoba","caos","capaz","capitán","capote","captar","capucha","cara","carbón","cárcel","careta","carga","cariño","carne","carpeta","carro","carta","casa","casco","casero","caspa","castor","catorce","catre","caudal","causa","cazo","cebolla","ceder","cedro","celda","célebre","celoso","célula","cemento","ceniza","centro","cerca","cerdo","cereza","cero","cerrar","certeza","césped","cetro","chacal","chaleco","champú","chancla","chapa","charla","chico","chiste","chivo","choque","choza","chuleta","chupar","ciclón","ciego","cielo","cien","cierto","cifra","cigarro","cima","cinco","cine","cinta","ciprés","circo","ciruela","cisne","cita","ciudad","clamor","clan","claro","clase","clave","cliente","clima","clínica","cobre","cocción","cochino","cocina","coco","código","codo","cofre","coger","cohete","cojín","cojo","cola","colcha","colegio","colgar","colina","collar","colmo","columna","combate","comer","comida","cómodo","compra","conde","conejo","conga","conocer","consejo","contar","copa","copia","corazón","corbata","corcho","cordón","corona","correr","coser","cosmos","costa","cráneo","cráter","crear","crecer","creído","crema","cría","crimen","cripta","crisis","cromo","crónica","croqueta","crudo","cruz","cuadro","cuarto","cuatro","cubo","cubrir","cuchara","cuello","cuento","cuerda","cuesta","cueva","cuidar","culebra","culpa","culto","cumbre","cumplir","cuna","cuneta","cuota","cupón","cúpula","curar","curioso","curso","curva","cutis","dama","danza","dar","dardo","dátil","deber","débil","década","decir","dedo","defensa","definir","dejar","delfín","delgado","delito","demora","denso","dental","deporte","derecho","derrota","desayuno","deseo","desfile","desnudo","destino","desvío","detalle","detener","deuda","día","diablo","diadema","diamante","diana","diario","dibujo","dictar","diente","dieta","diez","difícil","digno","dilema","diluir","dinero","directo","dirigir","disco","diseño","disfraz","diva","divino","doble","doce","dolor","domingo","don","donar","dorado","dormir","dorso","dos","dosis","dragón","droga","ducha","duda","duelo","dueño","dulce","dúo","duque","durar","dureza","duro","ébano","ebrio","echar","eco","ecuador","edad","edición","edificio","editor","educar","efecto","eficaz","eje","ejemplo","elefante","elegir","elemento","elevar","elipse","élite","elixir","elogio","eludir","embudo","emitir","emoción","empate","empeño","empleo","empresa","enano","encargo","enchufe","encía","enemigo","enero","enfado","enfermo","engaño","enigma","enlace","enorme","enredo","ensayo","enseñar","entero","entrar","envase","envío","época","equipo","erizo","escala","escena","escolar","escribir","escudo","esencia","esfera","esfuerzo","espada","espejo","espía","esposa","espuma","esquí","estar","este","estilo","estufa","etapa","eterno","ética","etnia","evadir","evaluar","evento","evitar","exacto","examen","exceso","excusa","exento","exigir","exilio","existir","éxito","experto","explicar","exponer","extremo","fábrica","fábula","fachada","fácil","factor","faena","faja","falda","fallo","falso","faltar","fama","familia","famoso","faraón","farmacia","farol","farsa","fase","fatiga","fauna","favor","fax","febrero","fecha","feliz","feo","feria","feroz","fértil","fervor","festín","fiable","fianza","fiar","fibra","ficción","ficha","fideo","fiebre","fiel","fiera","fiesta","figura","fijar","fijo","fila","filete","filial","filtro","fin","finca","fingir","finito","firma","flaco","flauta","flecha","flor","flota","fluir","flujo","flúor","fobia","foca","fogata","fogón","folio","folleto","fondo","forma","forro","fortuna","forzar","fosa","foto","fracaso","frágil","franja","frase","fraude","freír","freno","fresa","frío","frito","fruta","fuego","fuente","fuerza","fuga","fumar","función","funda","furgón","furia","fusil","fútbol","futuro","gacela","gafas","gaita","gajo","gala","galería","gallo","gamba","ganar","gancho","ganga","ganso","garaje","garza","gasolina","gastar","gato","gavilán","gemelo","gemir","gen","género","genio","gente","geranio","gerente","germen","gesto","gigante","gimnasio","girar","giro","glaciar","globo","gloria","gol","golfo","goloso","golpe","goma","gordo","gorila","gorra","gota","goteo","gozar","grada","gráfico","grano","grasa","gratis","grave","grieta","grillo","gripe","gris","grito","grosor","grúa","grueso","grumo","grupo","guante","guapo","guardia","guerra","guía","guiño","guion","guiso","guitarra","gusano","gustar","haber","hábil","hablar","hacer","hacha","hada","hallar","hamaca","harina","haz","hazaña","hebilla","hebra","hecho","helado","helio","hembra","herir","hermano","héroe","hervir","hielo","hierro","hígado","higiene","hijo","himno","historia","hocico","hogar","hoguera","hoja","hombre","hongo","honor","honra","hora","hormiga","horno","hostil","hoyo","hueco","huelga","huerta","hueso","huevo","huida","huir","humano","húmedo","humilde","humo","hundir","huracán","hurto","icono","ideal","idioma","ídolo","iglesia","iglú","igual","ilegal","ilusión","imagen","imán","imitar","impar","imperio","imponer","impulso","incapaz","índice","inerte","infiel","informe","ingenio","inicio","inmenso","inmune","innato","insecto","instante","interés","íntimo","intuir","inútil","invierno","ira","iris","ironía","isla","islote","jabalí","jabón","jamón","jarabe","jardín","jarra","jaula","jazmín","jefe","jeringa","jinete","jornada","joroba","joven","joya","juerga","jueves","juez","jugador","jugo","juguete","juicio","junco","jungla","junio","juntar","júpiter","jurar","justo","juvenil","juzgar","kilo","koala","labio","lacio","lacra","lado","ladrón","lagarto","lágrima","laguna","laico","lamer","lámina","lámpara","lana","lancha","langosta","lanza","lápiz","largo","larva","lástima","lata","látex","latir","laurel","lavar","lazo","leal","lección","leche","lector","leer","legión","legumbre","lejano","lengua","lento","leña","león","leopardo","lesión","letal","letra","leve","leyenda","libertad","libro","licor","líder","lidiar","lienzo","liga","ligero","lima","límite","limón","limpio","lince","lindo","línea","lingote","lino","linterna","líquido","liso","lista","litera","litio","litro","llaga","llama","llanto","llave","llegar","llenar","llevar","llorar","llover","lluvia","lobo","loción","loco","locura","lógica","logro","lombriz","lomo","lonja","lote","lucha","lucir","lugar","lujo","luna","lunes","lupa","lustro","luto","luz","maceta","macho","madera","madre","maduro","maestro","mafia","magia","mago","maíz","maldad","maleta","malla","malo","mamá","mambo","mamut","manco","mando","manejar","manga","maniquí","manjar","mano","manso","manta","mañana","mapa","máquina","mar","marco","marea","marfil","margen","marido","mármol","marrón","martes","marzo","masa","máscara","masivo","matar","materia","matiz","matriz","máximo","mayor","mazorca","mecha","medalla","medio","médula","mejilla","mejor","melena","melón","memoria","menor","mensaje","mente","menú","mercado","merengue","mérito","mes","mesón","meta","meter","método","metro","mezcla","miedo","miel","miembro","miga","mil","milagro","militar","millón","mimo","mina","minero","mínimo","minuto","miope","mirar","misa","miseria","misil","mismo","mitad","mito","mochila","moción","moda","modelo","moho","mojar","molde","moler","molino","momento","momia","monarca","moneda","monja","monto","moño","morada","morder","moreno","morir","morro","morsa","mortal","mosca","mostrar","motivo","mover","móvil","mozo","mucho","mudar","mueble","muela","muerte","muestra","mugre","mujer","mula","muleta","multa","mundo","muñeca","mural","muro","músculo","museo","musgo","música","muslo","nácar","nación","nadar","naipe","naranja","nariz","narrar","nasal","natal","nativo","natural","náusea","naval","nave","navidad","necio","néctar","negar","negocio","negro","neón","nervio","neto","neutro","nevar","nevera","nicho","nido","niebla","nieto","niñez","niño","nítido","nivel","nobleza","noche","nómina","noria","norma","norte","nota","noticia","novato","novela","novio","nube","nuca","núcleo","nudillo","nudo","nuera","nueve","nuez","nulo","número","nutria","oasis","obeso","obispo","objeto","obra","obrero","observar","obtener","obvio","oca","ocaso","océano","ochenta","ocho","ocio","ocre","octavo","octubre","oculto","ocupar","ocurrir","odiar","odio","odisea","oeste","ofensa","oferta","oficio","ofrecer","ogro","oído","oír","ojo","ola","oleada","olfato","olivo","olla","olmo","olor","olvido","ombligo","onda","onza","opaco","opción","ópera","opinar","oponer","optar","óptica","opuesto","oración","orador","oral","órbita","orca","orden","oreja","órgano","orgía","orgullo","oriente","origen","orilla","oro","orquesta","oruga","osadía","oscuro","osezno","oso","ostra","otoño","otro","oveja","óvulo","óxido","oxígeno","oyente","ozono","pacto","padre","paella","página","pago","país","pájaro","palabra","palco","paleta","pálido","palma","paloma","palpar","pan","panal","pánico","pantera","pañuelo","papá","papel","papilla","paquete","parar","parcela","pared","parir","paro","párpado","parque","párrafo","parte","pasar","paseo","pasión","paso","pasta","pata","patio","patria","pausa","pauta","pavo","payaso","peatón","pecado","pecera","pecho","pedal","pedir","pegar","peine","pelar","peldaño","pelea","peligro","pellejo","pelo","peluca","pena","pensar","peñón","peón","peor","pepino","pequeño","pera","percha","perder","pereza","perfil","perico","perla","permiso","perro","persona","pesa","pesca","pésimo","pestaña","pétalo","petróleo","pez","pezuña","picar","pichón","pie","piedra","pierna","pieza","pijama","pilar","piloto","pimienta","pino","pintor","pinza","piña","piojo","pipa","pirata","pisar","piscina","piso","pista","pitón","pizca","placa","plan","plata","playa","plaza","pleito","pleno","plomo","pluma","plural","pobre","poco","poder","podio","poema","poesía","poeta","polen","policía","pollo","polvo","pomada","pomelo","pomo","pompa","poner","porción","portal","posada","poseer","posible","poste","potencia","potro","pozo","prado","precoz","pregunta","premio","prensa","preso","previo","primo","príncipe","prisión","privar","proa","probar","proceso","producto","proeza","profesor","programa","prole","promesa","pronto","propio","próximo","prueba","público","puchero","pudor","pueblo","puerta","puesto","pulga","pulir","pulmón","pulpo","pulso","puma","punto","puñal","puño","pupa","pupila","puré","quedar","queja","quemar","querer","queso","quieto","química","quince","quitar","rábano","rabia","rabo","ración","radical","raíz","rama","rampa","rancho","rango","rapaz","rápido","rapto","rasgo","raspa","rato","rayo","raza","razón","reacción","realidad","rebaño","rebote","recaer","receta","rechazo","recoger","recreo","recto","recurso","red","redondo","reducir","reflejo","reforma","refrán","refugio","regalo","regir","regla","regreso","rehén","reino","reír","reja","relato","relevo","relieve","relleno","reloj","remar","remedio","remo","rencor","rendir","renta","reparto","repetir","reposo","reptil","res","rescate","resina","respeto","resto","resumen","retiro","retorno","retrato","reunir","revés","revista","rey","rezar","rico","riego","rienda","riesgo","rifa","rígido","rigor","rincón","riñón","río","riqueza","risa","ritmo","rito","rizo","roble","roce","rociar","rodar","rodeo","rodilla","roer","rojizo","rojo","romero","romper","ron","ronco","ronda","ropa","ropero","rosa","rosca","rostro","rotar","rubí","rubor","rudo","rueda","rugir","ruido","ruina","ruleta","rulo","rumbo","rumor","ruptura","ruta","rutina","sábado","saber","sabio","sable","sacar","sagaz","sagrado","sala","saldo","salero","salir","salmón","salón","salsa","salto","salud","salvar","samba","sanción","sandía","sanear","sangre","sanidad","sano","santo","sapo","saque","sardina","sartén","sastre","satán","sauna","saxofón","sección","seco","secreto","secta","sed","seguir","seis","sello","selva","semana","semilla","senda","sensor","señal","señor","separar","sepia","sequía","ser","serie","sermón","servir","sesenta","sesión","seta","setenta","severo","sexo","sexto","sidra","siesta","siete","siglo","signo","sílaba","silbar","silencio","silla","símbolo","simio","sirena","sistema","sitio","situar","sobre","socio","sodio","sol","solapa","soldado","soledad","sólido","soltar","solución","sombra","sondeo","sonido","sonoro","sonrisa","sopa","soplar","soporte","sordo","sorpresa","sorteo","sostén","sótano","suave","subir","suceso","sudor","suegra","suelo","sueño","suerte","sufrir","sujeto","sultán","sumar","superar","suplir","suponer","supremo","sur","surco","sureño","surgir","susto","sutil","tabaco","tabique","tabla","tabú","taco","tacto","tajo","talar","talco","talento","talla","talón","tamaño","tambor","tango","tanque","tapa","tapete","tapia","tapón","taquilla","tarde","tarea","tarifa","tarjeta","tarot","tarro","tarta","tatuaje","tauro","taza","tazón","teatro","techo","tecla","técnica","tejado","tejer","tejido","tela","teléfono","tema","temor","templo","tenaz","tender","tener","tenis","tenso","teoría","terapia","terco","término","ternura","terror","tesis","tesoro","testigo","tetera","texto","tez","tibio","tiburón","tiempo","tienda","tierra","tieso","tigre","tijera","tilde","timbre","tímido","timo","tinta","tío","típico","tipo","tira","tirón","titán","títere","título","tiza","toalla","tobillo","tocar","tocino","todo","toga","toldo","tomar","tono","tonto","topar","tope","toque","tórax","torero","tormenta","torneo","toro","torpedo","torre","torso","tortuga","tos","tosco","toser","tóxico","trabajo","tractor","traer","tráfico","trago","traje","tramo","trance","trato","trauma","trazar","trébol","tregua","treinta","tren","trepar","tres","tribu","trigo","tripa","triste","triunfo","trofeo","trompa","tronco","tropa","trote","trozo","truco","trueno","trufa","tubería","tubo","tuerto","tumba","tumor","túnel","túnica","turbina","turismo","turno","tutor","ubicar","úlcera","umbral","unidad","unir","universo","uno","untar","uña","urbano","urbe","urgente","urna","usar","usuario","útil","utopía","uva","vaca","vacío","vacuna","vagar","vago","vaina","vajilla","vale","válido","valle","valor","válvula","vampiro","vara","variar","varón","vaso","vecino","vector","vehículo","veinte","vejez","vela","velero","veloz","vena","vencer","venda","veneno","vengar","venir","venta","venus","ver","verano","verbo","verde","vereda","verja","verso","verter","vía","viaje","vibrar","vicio","víctima","vida","vídeo","vidrio","viejo","viernes","vigor","vil","villa","vinagre","vino","viñedo","violín","viral","virgo","virtud","visor","víspera","vista","vitamina","viudo","vivaz","vivero","vivir","vivo","volcán","volumen","volver","voraz","votar","voto","voz","vuelo","vulgar","yacer","yate","yegua","yema","yerno","yeso","yodo","yoga","yogur","zafiro","zanja","zapato","zarza","zona","zorro","zumo","zurdo"]},function(e,t,i){var r=4294967296,a=2147483648,s=2147483647,n=null;e.exports=class e{constructor(e){void 0===e&&(e=(new Date).getTime()),this.mt=new Array(624),this.mti=625,this.seed(e)}seed(e){var t;for(this.mt[0]=e>>>0,this.mti=1;this.mti<624;this.mti++)t=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30,this.mt[this.mti]=(1812433253*((4294901760&t)>>>16)<<16)+1812433253*(65535&t)+this.mti,this.mt[this.mti]>>>=0}seedArray(e){var t,i=1,r=0,a=e.length<624?624:e.length;for(this.seed(19650218);0<a;a--)t=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1664525*((4294901760&t)>>>16)<<16)+1664525*(65535&t))+e[r]+r,this.mt[i]>>>=0,r++,624<=++i&&(this.mt[0]=this.mt[623],i=1),e.length<=r&&(r=0);for(a=623;a;a--)t=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1566083941*((4294901760&t)>>>16)<<16)+1566083941*(65535&t))-i,this.mt[i]>>>=0,624<=++i&&(this.mt[0]=this.mt[623],i=1);this.mt[0]=2147483648}int(){var e,t,i=new Array(0,2567483615);if(624<=this.mti){for(625===this.mti&&this.seed(5489),t=0;t<227;t++)e=this.mt[t]&a|this.mt[t+1]&s,this.mt[t]=this.mt[t+397]^e>>>1^i[1&e];for(;t<623;t++)e=this.mt[t]&a|this.mt[t+1]&s,this.mt[t]=this.mt[t+-227]^e>>>1^i[1&e];e=this.mt[623]&a|this.mt[0]&s,this.mt[623]=this.mt[396]^e>>>1^i[1&e],this.mti=0}return e=this.mt[this.mti++],(e=(e=(e=(e^=e>>>11)^e<<7&2636928640)^e<<15&4022730752)^e>>>18)>>>0}randomBytes(e){var t=Buffer.alloc(e);for(let i=0;i<e;i+=4)t.writeUInt32LE(this.int(),i);return t}int31(){return this.int()>>>1}real(){return this.int()*(1/(r-1))}realx(){return(this.int()+.5)*(1/r)}random(){return this.int()*(1/r)}rndHiRes(){return 1/9007199254740992*(67108864*(this.int()>>>5)+(this.int()>>>6))}static random(){return(n=n||new e).random()}}},function(e,t,i){
859
+ e.exports=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},function(e,t,i){var r=i(334);t.fromCallback=function(e,t){if(void 0===e){var i=new Promise((function(t,i){e=function(e,r){e?i(e):t(r)}}));e[void 0!==t?t:"promise"]=i}else if("function"!=typeof e)throw new TypeError("Callback must be a function");return e},t.fromPromise=function(e,t){if(void 0===t)return e;e.then((function(e){r(()=>t(null,e))})).catch((function(e){r(()=>t(e))}))}},function(e,t){e.exports=process.nextTick.bind(process)},function(e,t,i){var r=i(108),a=i(30),s=(i=i(87),require),n=process.config&&process.config.variables||{},o=!!process.env.PREBUILDS_ONLY,p=process.versions.modules,d=process.versions&&process.versions.electron||process.env.ELECTRON_RUN_AS_NODE||"undefined"!=typeof window&&window.process&&"renderer"===window.process.type?"electron":"node",h=i.arch(),l=i.platform(),c=process.env.LIBC||("linux"===l&&r.existsSync("/etc/alpine-release")?"musl":"glibc"),u=process.env.ARM_VERSION||("arm64"===h?"8":n.arm_version)||"",f=(process.versions.uv||"").split(".")[0];function m(e){return s(m.path(e))}function g(e){try{return r.readdirSync(e)}catch(e){return[]}}function w(e,t){return(t=g(e).filter(t))[0]&&a.join(e,t[0])}function v(e){return/\.node$/.test(e)}function y(e){var t=e.split("."),i={file:e,specificity:0};if("node"===t.pop()){for(var r=0;r<t.length;r++){var a=t[r];if("node"===a||"electron"===a||"node-webkit"===a)i.runtime=a;else if("napi"===a)i.napi=!0;else if("abi"===a.slice(0,3))i.abi=a.slice(3);else if("uv"===a.slice(0,2))i.uv=a.slice(2);else if("armv"===a.slice(0,4))i.armv=a.slice(4);else{if("glibc"!==a&&"musl"!==a)continue;i.libc=a}i.specificity++}return i}}function b(e,t){return function(i){var r;return null!=i&&!!(i.runtime===e||"node"===(r=i).runtime&&r.napi)&&!(i.abi!==t&&!i.napi||i.uv&&i.uv!==f||i.armv&&i.armv!==u||i.libc&&i.libc!==c)}}function x(e){return function(t,i){return t.runtime!==i.runtime?t.runtime===e?-1:1:t.abi!==i.abi?t.abi?-1:1:t.specificity!==i.specificity?t.specificity>i.specificity?-1:1:0}}(e.exports=m).path=function(e){e=a.resolve(e||".");try{var t=s(a.join(e,"package.json")).name.toUpperCase().replace(/-/g,"_");process.env[t+"_PREBUILD"]&&(e=process.env[t+"_PREBUILD"])}catch(e){}if(!o){if(t=w(a.join(e,"build/Release"),v))return t;if(t=w(a.join(e,"build/Debug"),v))return t}if(t=i(e))return t;if(t=i(a.dirname(process.execPath)))return t;throw t=["platform="+l,"arch="+h,"runtime="+d,"abi="+p,"uv="+f,u?"armv="+u:"","libc="+c,"node="+process.versions.node,process.versions&&process.versions.electron?"electron="+process.versions.electron:"","webpack=true"].filter(Boolean).join(" "),new Error("No native build was found for "+t+"\n loaded from: "+e+"\n");function i(e){var t=g(e=a.join(e,"prebuilds",l+"-"+h)).map(y).filter(b(d,p)).sort(x(d))[0];if(t)return a.join(e,t.file)}},m.parseTags=y,m.matchTags=b,m.compareTags=x},function(e,t,i){var r=i(48);let a=i(144).AbstractChainedBatch,s=i(146);function n(e){a.call(this,e),this.context=s.batch_init(e.context)}n.prototype._put=function(e,t){s.batch_put(this.context,e,t)},n.prototype._del=function(e){s.batch_del(this.context,e)},n.prototype._clear=function(){s.batch_clear(this.context)},n.prototype._write=function(e,t){s.batch_write(this.context,e,t)},r.inherits(n,a),e.exports=n},function(e,t,i){var r=i(48);let a=i(144).AbstractIterator,s=i(146);function n(e,t){a.call(this,e),this.context=s.iterator_init(e.context,t),this.cache=null,this.finished=!1}r.inherits(n,a),n.prototype._seek=function(e){if(0===e.length)throw new Error("cannot seek() to an empty target");this.cache=null,s.iterator_seek(this.context,e),this.finished=!1},n.prototype._next=function(e){return this.cache&&this.cache.length?process.nextTick(e,null,this.cache.pop(),this.cache.pop()):this.finished?process.nextTick(e):s.iterator_next(this.context,(t,i,r)=>{if(t)return e(t);this.cache=i,this.finished=r,this._next(e)}),this},n.prototype._end=function(e){delete this.cache,s.iterator_end(this.context,e)},e.exports=n},function(e,t,i){let r=i(339),a=i(340),s=i(341),n=a.implSymbol;function o(t){if(!this||this[n]||!(this instanceof o))throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.");if(arguments.length<1)throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.");var i=[];for(let e=0;e<arguments.length&&e<2;++e)i[e]=arguments[e];i[0]=r.USVString(i[0]),void 0!==i[1]&&(i[1]=r.USVString(i[1])),e.exports.setup(this,i)}o.prototype.toJSON=function(){if(!this||!e.exports.is(this))throw new TypeError("Illegal invocation");var t=[];for(let e=0;e<arguments.length&&e<0;++e)t[e]=arguments[e];return this[n].toJSON.apply(this[n],t)},Object.defineProperty(o.prototype,"href",{get(){return this[n].href},set(e){e=r.USVString(e),this[n].href=e},enumerable:!0,configurable:!0}),o.prototype.toString=function(){if(this&&e.exports.is(this))return this.href;throw new TypeError("Illegal invocation")},Object.defineProperty(o.prototype,"origin",{get(){return this[n].origin},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"protocol",{get(){return this[n].protocol},set(e){e=r.USVString(e),this[n].protocol=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"username",{get(){return this[n].username},set(e){e=r.USVString(e),this[n].username=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"password",{get(){return this[n].password},set(e){e=r.USVString(e),this[n].password=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"host",{get(){return this[n].host},set(e){e=r.USVString(e),this[n].host=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"hostname",{get(){return this[n].hostname},set(e){e=r.USVString(e),this[n].hostname=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"port",{get(){return this[n].port},set(e){e=r.USVString(e),this[n].port=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"pathname",{get(){return this[n].pathname},set(e){e=r.USVString(e),this[n].pathname=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"search",{get(){return this[n].search},set(e){e=r.USVString(e),this[n].search=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"hash",{get(){return this[n].hash},set(e){e=r.USVString(e),this[n].hash=e},enumerable:!0,configurable:!0}),e.exports={is:e=>!!e&&e[n]instanceof s.implementation,create(e,t){var i=Object.create(o.prototype);return this.setup(i,e,t),i},setup(e,t,i){((i=i||{}).wrapper=e)[n]=new s.implementation(t,i),e[n][a.wrapperSymbol]=e},interface:o,expose:{Window:{URL:o},Worker:{URL:o}}}},function(e,t,i){var r={};function a(e){return e<0?-1:1}function s(e,t){t.unsigned||--e;let i=t.unsigned?0:-Math.pow(2,e),r=Math.pow(2,e)-1,s=t.moduloBitLength?Math.pow(2,t.moduloBitLength):Math.pow(2,e),n=t.moduloBitLength?Math.pow(2,t.moduloBitLength-1):Math.pow(2,e-1);return function(e,o){let p=+e;if((o=o||{}).enforceRange){if(!Number.isFinite(p))throw new TypeError("Argument is not a finite number");if((p=a(p)*Math.floor(Math.abs(p)))<i||p>r)throw new TypeError("Argument is not in byte range")}else{if(!isNaN(p)&&o.clamp)return(p=(p=(e=p)%1==.5&&0==(1&e)?Math.floor(e):Math.round(e))<i?i:p)>r?r:p;if(!Number.isFinite(p)||0===p)return 0;if(p=a(p)*Math.floor(Math.abs(p)),p%=s,!t.unsigned&&p>=n)return p-s;if(t.unsigned)if(p<0)p+=s;else if(-0===p)return 0}return p}}(e.exports=r).void=function(){},r.boolean=function(e){return!!e},r.byte=s(8,{unsigned:!1}),r.octet=s(8,{unsigned:!0}),r.short=s(16,{unsigned:!1}),r["unsigned short"]=s(16,{unsigned:!0}),r.long=s(32,{unsigned:!1}),r["unsigned long"]=s(32,{unsigned:!0}),r["long long"]=s(32,{unsigned:!1,moduloBitLength:64}),r["unsigned long long"]=s(32,{unsigned:!0,moduloBitLength:64}),r.double=function(e){if(e=+e,Number.isFinite(e))return e;throw new TypeError("Argument is not a finite floating-point value")},r["unrestricted double"]=function(e){if(e=+e,isNaN(e))throw new TypeError("Argument is NaN");return e},r.float=r.double,r["unrestricted float"]=r["unrestricted double"],r.DOMString=function(e,t){return(t=t||{}).treatNullAsEmptyString&&null===e?"":String(e)},r.ByteString=function(e,t){var i,r=String(e);for(let e=0;void 0!==(i=r.codePointAt(e));++e)if(255<i)throw new TypeError("Argument is not a valid bytestring");return r},r.USVString=function(e){var t=String(e),i=t.length,r=[];for(let e=0;e<i;++e){var a,s=t.charCodeAt(e);s<55296||57343<s?r.push(String.fromCodePoint(s)):!(56320<=s&&s<=57343)&&e!==i-1&&56320<=(a=t.charCodeAt(e+1))&&a<=57343?(r.push(String.fromCodePoint(65536+1024*(1023&s)+(1023&a))),++e):r.push(String.fromCodePoint(65533))}return r.join("")},r.Date=function(e,t){if(!(e instanceof Date))throw new TypeError("Argument is not a Date object");if(!isNaN(e))return e},r.RegExp=function(e,t){return e instanceof RegExp?e:new RegExp(e)}},function(e,t,i){e.exports.mixin=function(e,t){var i=Object.getOwnPropertyNames(t);for(let r=0;r<i.length;++r)Object.defineProperty(e,i[r],Object.getOwnPropertyDescriptor(t,i[r]))},e.exports.wrapperSymbol=Symbol("wrapper"),e.exports.implSymbol=Symbol("impl"),e.exports.wrapperForImpl=function(t){return t[e.exports.wrapperSymbol]},e.exports.implForWrapper=function(t){return t[e.exports.implSymbol]}},function(e,t,i){let r=i(49);t.implementation=class{constructor(e){var t=e[0];let i=null;if(void 0!==(e=e[1])&&"failure"===(i=r.basicURLParse(e)))throw new TypeError("Invalid base URL");if("failure"===(e=r.basicURLParse(t,{baseURL:i})))throw new TypeError("Invalid URL");this._url=e}get href(){return r.serializeURL(this._url)}set href(e){if("failure"===(e=r.basicURLParse(e)))throw new TypeError("Invalid URL");this._url=e}get origin(){return r.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(e){r.basicURLParse(e+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(e){r.cannotHaveAUsernamePasswordPort(this._url)||r.setTheUsername(this._url,e)}get password(){return this._url.password}set password(e){r.cannotHaveAUsernamePasswordPort(this._url)||r.setThePassword(this._url,e)}get host(){var e=this._url;return null===e.host?"":null===e.port?r.serializeHost(e.host):r.serializeHost(e.host)+":"+r.serializeInteger(e.port)}set host(e){this._url.cannotBeABaseURL||r.basicURLParse(e,{url:this._url,stateOverride:"host"})}get hostname(){return null===this._url.host?"":r.serializeHost(this._url.host)}set hostname(e){this._url.cannotBeABaseURL||r.basicURLParse(e,{url:this._url,stateOverride:"hostname"})}get port(){return null===this._url.port?"":r.serializeInteger(this._url.port)}set port(e){r.cannotHaveAUsernamePasswordPort(this._url)||(""===e?this._url.port=null:r.basicURLParse(e,{url:this._url,stateOverride:"port"}))}get pathname(){return this._url.cannotBeABaseURL?this._url.path[0]:0===this._url.path.length?"":"/"+this._url.path.join("/")}set pathname(e){this._url.cannotBeABaseURL||(this._url.path=[],r.basicURLParse(e,{url:this._url,stateOverride:"path start"}))}get search(){return null===this._url.query||""===this._url.query?"":"?"+this._url.query}set search(e){var t=this._url;""===e?t.query=null:(e="?"===e[0]?e.substring(1):e,t.query="",r.basicURLParse(e,{url:t,stateOverride:"query"}))}get hash(){return null===this._url.fragment||""===this._url.fragment?"":"#"+this._url.fragment}set hash(e){""===e?this._url.fragment=null:(e="#"===e[0]?e.substring(1):e,this._url.fragment="",r.basicURLParse(e,{url:this._url,stateOverride:"fragment"}))}toJSON(){return this.href}}},function(e,t,i){var r=i(222),a=i(343),s={TRANSITIONAL:0,NONTRANSITIONAL:1};function n(e){return e.split("\0").map((function(e){return e.normalize("NFC")})).join("\0")}function o(e){for(var t=0,i=a.length-1;t<=i;){var r=Math.floor((t+i)/2),s=a[r];if(s[0][0]<=e&&s[0][1]>=e)return s;s[0][0]>e?i=r-1:t=r+1}return null}var p=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function d(e){return e.replace(p,"_").length}var h=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/;function l(e,t,i){for(var a=((e,t,i)=>{for(var r=!1,a="",n=d(e),p=0;p<n;++p){var h=e.codePointAt(p),l=o(h);switch(l[1]){case"disallowed":r=!0,a+=String.fromCodePoint(h);break;case"ignored":break;case"mapped":a+=String.fromCodePoint.apply(String,l[2]);break;case"deviation":a+=i===s.TRANSITIONAL?String.fromCodePoint.apply(String,l[2]):String.fromCodePoint(h);break;case"valid":a+=String.fromCodePoint(h);break;case"disallowed_STD3_mapped":t?(r=!0,a+=String.fromCodePoint(h)):a+=String.fromCodePoint.apply(String,l[2]);break;case"disallowed_STD3_valid":t&&(r=!0),a+=String.fromCodePoint(h)}}return{string:a,error:r}})(e,t,i),p=(a.string=n(a.string),a.string.split(".")),c=0;c<p.length;++c)try{var u=(e=>{"xn--"===e.substr(0,4)&&(e=r.toUnicode(e));for(var t=!1,i=((n(e)!==e||"-"===e[3]&&"-"===e[4]||"-"===e[0]||"-"===e[e.length-1]||-1!==e.indexOf(".")||0===e.search(h))&&(t=!0),d(e)),a=0;a<i;++a){var p=o(e.codePointAt(a));if(l===s.TRANSITIONAL&&"valid"!==p[1]||l===s.NONTRANSITIONAL&&"valid"!==p[1]&&"deviation"!==p[1]){t=!0;break}}return{label:e,error:t}})(p[c]);p[c]=u.label,a.error=a.error||u.error}catch(e){a.error=!0}return{string:p.join("."),error:a.error}}e.exports.toASCII=function(e,t,i,a){var s=l(e,t,i),n=(n=s.string.split(".")).map((function(e){try{return r.toASCII(e)}catch(t){return s.error=!0,e}}));if(a){(253<(e=n.slice(0,n.length-1).join(".").length).length||0===e.length)&&(s.error=!0);for(var o=0;o<n.length;++o)if(63<n.length||0===n.length){s.error=!0;break}}return s.error?null:n.join(".")},e.exports.toUnicode=function(e,t){return{domain:(e=l(e,t,s.NONTRANSITIONAL)).string,error:e.error}},e.exports.PROCESSING_OPTIONS=s},function(e){e.exports=JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]')},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("block",["tips"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("chain",["full"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("header",["block"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("inv",["inv","tx","block"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("mempool",["transaction"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("config",["changed"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("p2p",["transaction","block","headers"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("prop",["receive"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("notify",["receive","remove"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("ca",["issue","unissue","abolish","unabolish"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("cp",["register"])}},e.exports=i},function(e,t,i){i=i(33);i=new class extends i{constructor(){super("sc",["publish"])}},e.exports=i},function(e){e.exports=JSON.parse('{"name":"vallnet","version":"6.5.3","description":"Vallnet Core","license":"MIT","repository":"git://gitee.com/bookmanSoftware/ggserver","homepage":"https://gitee.com/bookmanSoftware/ggserver","bugs":{"url":"https://gitee.com/bookmanSoftware/ggserver/issues"},"author":"bookman <ceo@920.cc>","contributors":["bookman <ceo@920.cc>"],"keywords":["vallnet","gamegold","bitcoin","blockchain","cryptocurrency","wallet"],"engines":{"node":">=12.20.0"},"dependencies":{"@babel/runtime-corejs3":"^7.29.2","acorn":"^8.16.0","async":"^3.2.6","bn.js":"^5.2.3","crc-32":"1.2.0","create-hmac":"1.1.7","crypto-js":"3.1.9-1","elliptic":"^6.5.4","level-errors":"^3.0.0","level-iterator-stream":"^5.0.0","level-js":"^6.0.0","leveldown":"^6.0.2","lodash":"^4.17.23","mime":"^3.0.0","n64":"^0.2.10","node-fetch":"^2.6.7","node-sql-parser":"^4.0.0","punycode":"^2.3.1","randombytes":"^2.1.0","socket.io":"^4.2.0","supports-color":"^8.1.1","uuid":"^3.4.0","uws":"10.148.1","xtend":"4.0.0"},"optionalDependencies":{"secp256k1":"3.8.0"},"devDependencies":{"@babel/core":"^7.15.8","@babel/plugin-transform-runtime":"^7.15.8","@babel/preset-env":"^7.15.8","ajv":"^6.12.6","ajv-keywords":"^3.5.2","babel-loader":"^8.2.2","chai":"^4.3.4","cross-env":"^5.2.1","gamerpc":"^7.0.0","hash.js":"^1.1.3","mocha":"^10.1.0","node-loader":"^1.0.3","should":"^13.2.3","uglifyjs-webpack-plugin":"^2.2.0","webpack":"^4.44.2","webpack-cli":"^4.7.2","webpack-dev-server":"^4.1.0","yargs":"^15.4.1"},"main":"./lib/gamegold.js","bin":{"gg":"./bin/cli","gn":"./bin/node","gspv":"./bin/spvnode"},"scripts":{"start":"node --expose-gc bin/node --genesis --network=testnet --mining=false --workers=false --bip150=false --bip151=false --log-file=true --max-old-space-size=8192","t1":"node --expose-gc bin/node --genesis --network=testnet --mining=true --workers=true --prefix=~/.gamegold/t1 --dev-mode=false --force-sync=true --max-old-space-size=8192","t2":"node --expose-gc bin/node --genesis --network=testnet --mining=false --workers=true --prefix=~/.gamegold/t2 --dev-mode=false --force-sync=true --nodes=127.0.0.1:2100 --port-offset=10","pre":"npm install --registry=https://registry.npmmirror.com","auto":"pm2 startOrRestart pm2.config.js & pm2 monit","log":"pm2 startOrRestart pm2.config.js & pm2 log","stop":"pm2 delete pm2.config.js","master":"node --expose-gc --max-old-space-size=8192 bin/node --genesis --network=main --mining=false --workers=true --bip150=false --bip151=false --host=127.0.0.1 --http-host=127.0.0.1 --prefix=~/.gamegold/main --dev-mode=false --force-sync=false","slaver":"node --expose-gc bin/node --genesis --network=main --mining=false --workers=false --bip150=false --bip151=false --nodes=127.0.0.1:2100 --port-offset=10 --keystore=testnet-bookman-1.keystore --prefix=~/.gamegold/slaver","dot112":"node --expose-gc bin/node --genesis --network=main --mining=false --workers=true --bip150=false --bip151=false --host=127.0.0.1 --http-host=127.0.0.1 --prefix=~/.gamegold/dot112 --dev-mode=false --max-old-space-size=8192","dot1":"node --expose-gc bin/node --genesis --network=main --mining=false --workers=true --bip150=false --bip151=false --host=127.0.0.1 --http-host=127.0.0.1 --prefix=~/.gamegold/dot1 --port-offset=10 --prefix=~/.gamegold/dot1 --nodes=127.0.0.1:2000 --dev-mode=false --max-old-space-size=12288 --force-sync=true","dot2":"node --expose-gc bin/node --genesis --network=main --mining=false --workers=true --bip150=false --bip151=false --host=127.0.0.1 --http-host=127.0.0.1 --prefix=~/.gamegold/dot2 --port-offset=20 --prefix=~/.gamegold/dot2 --nodes=127.0.0.1:2000 --dev-mode=false --max-old-space-size=8192 --force-sync=true","n0":"node --expose-gc bin/node --genesis --network=testnet --mining=false --workers=false --log-file=true --wshost=127.0.0.1 --wsport=2104 --prefix=~/.gamegold/f0 --bip151=true --bip150=true --nodes=127.0.0.1:2110","n1":"node --expose-gc bin/node --genesis --network=testnet --mining=false --workers=false --log-file=true --wshost=127.0.0.1 --wsport=2114 --prefix=~/.gamegold/f1 --bip151=true --bip150=true --nodes=127.0.0.1:2100 --port-offset=10 --password=bookman --keystore=testnet-mchain-1.keystore","f0":"node --expose-gc bin/node --genesis --network=testnet --mining=true --workers=true --log-file=true --wshost=127.0.0.1 --wsport=2104 --prefix=~/.gamegold/f0 --bip151=true --bip150=true --nodes=127.0.0.1:2110","f1":"node --expose-gc bin/node --genesis --network=testnet --mining=false --workers=true --log-file=true --wshost=127.0.0.1 --wsport=2114 --prefix=~/.gamegold/f1 --bip151=true --bip150=true --nodes=127.0.0.1:2100 --port-offset=10 --dev-mode=false --max-old-space-size=8192 --force-sync=true --password=bookman --keystore=testnet-bookman-1.keystore","f2":"node --expose-gc bin/node --genesis --network=testnet --mining=false --workers=true --log-file=true --wshost=127.0.0.1 --wsport=2124 --prefix=~/.gamegold/f2 --bip151=true --bip150=true --nodes=127.0.0.1:2100 --port-offset=20 --dev-mode=false --max-old-space-size=8192 --force-sync=true --password=bookman --keystore=testnet-bookman-2.keystore","spv":"node --expose-gc bin/spvnode --genesis --network=testnet --http-remote-port=2102","wallet":"node --expose-gc bin/wallet --genesis --network=testnet --http-remote-port=2102","cli":"node --expose-gc bin/cli --network=main","mock":"node --expose-gc mock/game","clean":"rm -f {browser/,}{gamegold.js,gamegold-worker.js}","fuzz":"node scripts/fuzz verify","docs":"jsdoc -c jsdoc.json","lint":"eslint $(cat .eslintfiles) || exit 0","lint-file":"eslint","test":"mocha --reporter spec test/*.js --timeout=900000","test-browser":"cross-env NODE_OPTIONS=--max-old-space-size=8192 GAMEGOLD_NO_NATIVE=1 GAMEGOLD_NO_SECP256K1=1 mocha --reporter spec test/*.js --timeout=900000","test-file":"mocha --reporter spec","test-file-browser":"cross-env GAMEGOLD_NO_NATIVE=1 GAMEGOLD_NO_SECP256K1=1 mocha --reporter spec","webpack":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.browser.js","webpack-browser":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.browser.js","webpack-cordova":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.cordova.js","webpack-cordova-server":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack-dev-server --config webpack.cordova.js","webpack-compat":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.compat.js","webpack-node":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.node.js & node webpack.replace.js","webpack-node-dev":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.node-dev.js","webpack-light":"SET NODE_OPTIONS=--openssl-legacy-provider & webpack --config webpack.light.js & node webpack.replace-light.js","cover":"istanbul cover node_modules/mocha/bin/_mocha -- -R spec"}}')},function(e,t,i){function r(e,t){if(!e)throw new r.AssertionError({message:t,actual:e,expected:!0,operator:"==",stackStartFunction:r})}function a(e,t,i){if("string"!=typeof e)throw new r.AssertionError({message:t,actual:o(e),expected:"string",operator:"typeof ==",stackStartFunction:i})}function s(e,t,i){if("function"!=typeof e)throw new r.AssertionError({message:t,actual:o(e),expected:"function",operator:"typeof ==",stackStartFunction:i})}function n(e,t,i){if(!Buffer.isBuffer(e))throw new r.AssertionError({message:t,actual:o(e),expected:"buffer",operator:"typeof ==",stackStartFunction:i})}function o(e){var t=typeof e;switch(t){case"object":if(null===e)return"null";if(Array.isArray(e))return"array";if(Buffer.isBuffer(e))return"buffer";if(ArrayBuffer.isView(e))return"arraybuffer";if(e instanceof Error)return"error";if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp";break;case"number":if(isFinite(e))break;return"nan"}return t}function p(e){if(void 0===e)return"undefined";if(null===e)return"null";if(void 0===(e=Object.getPrototypeOf(e)))throw new Error("Bad prototype.");return null===e?"Null":e.constructor?e.constructor.name||"Unknown":"Object"}function d(e){return e.name||"Unknown"}i=i(0),Object.setPrototypeOf(r,i),r.typeOf=function e(t,i,s){if(a(i,"`expected` must be a string.",e),(t=o(t))!==i)throw new r.AssertionError({message:s,actual:t,expected:i,operator:"typeof ==",stackStartFunction:e})},r.notTypeOf=function e(t,i,s){if(a(i,"`expected` must be a string.",e),(t=o(t))===i)throw new r.AssertionError({message:s,actual:t,expected:i,operator:"typeof !=",stackStartFunction:e})},r.instanceOf=function e(t,i,a){if(s(i,"`parent` must be a constructor.",e),!(t instanceof i))throw new r.AssertionError({message:a,actual:p(t),expected:d(i),operator:"instanceof",stackStartFunction:e})},r.notInstanceOf=function e(t,i,a){if(s(i,"`parent` must be a constructor.",e),t instanceof i)throw new r.AssertionError({message:a,actual:p(t),expected:d(i),operator:"not instanceof",stackStartFunction:e})},r.bufferEqual=function e(t,i,a){if(n(t,"`actual` must be a buffer.",e),n(i,"`expected` must be a buffer.",e),t!==i&&!t.equals(i))throw new r.AssertionError({message:a,actual:t.toString("hex"),expected:i.toString("hex"),operator:"===",stackStartFunction:e})},r.notBufferEqual=function e(t,i,a){if(n(t,"`actual` must be a buffer.",e),n(i,"`expected` must be a buffer.",e),t===i||t.equals(i))throw new r.AssertionError({message:a,actual:t.toString("hex"),expected:i.toString("hex"),operator:"!==",stackStartFunction:e})},e.exports=r},function(e,t,i){e.exports=["的","一","是","在","不","了","有","和","人","这","中","大","为","上","个","国","我","以","要","他","时","来","用","们","生","到","作","地","于","出","就","分","对","成","会","可","主","发","年","动","同","工","也","能","下","过","子","说","产","种","面","而","方","后","多","定","行","学","法","所","民","得","经","十","三","之","进","着","等","部","度","家","电","力","里","如","水","化","高","自","二","理","起","小","物","现","实","加","量","都","两","体","制","机","当","使","点","从","业","本","去","把","性","好","应","开","它","合","还","因","由","其","些","然","前","外","天","政","四","日","那","社","义","事","平","形","相","全","表","间","样","与","关","各","重","新","线","内","数","正","心","反","你","明","看","原","又","么","利","比","或","但","质","气","第","向","道","命","此","变","条","只","没","结","解","问","意","建","月","公","无","系","军","很","情","者","最","立","代","想","已","通","并","提","直","题","党","程","展","五","果","料","象","员","革","位","入","常","文","总","次","品","式","活","设","及","管","特","件","长","求","老","头","基","资","边","流","路","级","少","图","山","统","接","知","较","将","组","见","计","别","她","手","角","期","根","论","运","农","指","几","九","区","强","放","决","西","被","干","做","必","战","先","回","则","任","取","据","处","队","南","给","色","光","门","即","保","治","北","造","百","规","热","领","七","海","口","东","导","器","压","志","世","金","增","争","济","阶","油","思","术","极","交","受","联","什","认","六","共","权","收","证","改","清","美","再","采","转","更","单","风","切","打","白","教","速","花","带","安","场","身","车","例","真","务","具","万","每","目","至","达","走","积","示","议","声","报","斗","完","类","八","离","华","名","确","才","科","张","信","马","节","话","米","整","空","元","况","今","集","温","传","土","许","步","群","广","石","记","需","段","研","界","拉","林","律","叫","且","究","观","越","织","装","影","算","低","持","音","众","书","布","复","容","儿","须","际","商","非","验","连","断","深","难","近","矿","千","周","委","素","技","备","半","办","青","省","列","习","响","约","支","般","史","感","劳","便","团","往","酸","历","市","克","何","除","消","构","府","称","太","准","精","值","号","率","族","维","划","选","标","写","存","候","毛","亲","快","效","斯","院","查","江","型","眼","王","按","格","养","易","置","派","层","片","始","却","专","状","育","厂","京","识","适","属","圆","包","火","住","调","满","县","局","照","参","红","细","引","听","该","铁","价","严","首","底","液","官","德","随","病","苏","失","尔","死","讲","配","女","黄","推","显","谈","罪","神","艺","呢","席","含","企","望","密","批","营","项","防","举","球","英","氧","势","告","李","台","落","木","帮","轮","破","亚","师","围","注","远","字","材","排","供","河","态","封","另","施","减","树","溶","怎","止","案","言","士","均","武","固","叶","鱼","波","视","仅","费","紧","爱","左","章","早","朝","害","续","轻","服","试","食","充","兵","源","判","护","司","足","某","练","差","致","板","田","降","黑","犯","负","击","范","继","兴","似","余","坚","曲","输","修","故","城","夫","够","送","笔","船","占","右","财","吃","富","春","职","觉","汉","画","功","巴","跟","虽","杂","飞","检","吸","助","升","阳","互","初","创","抗","考","投","坏","策","古","径","换","未","跑","留","钢","曾","端","责","站","简","述","钱","副","尽","帝","射","草","冲","承","独","令","限","阿","宣","环","双","请","超","微","让","控","州","良","轴","找","否","纪","益","依","优","顶","础","载","倒","房","突","坐","粉","敌","略","客","袁","冷","胜","绝","析","块","剂","测","丝","协","诉","念","陈","仍","罗","盐","友","洋","错","苦","夜","刑","移","频","逐","靠","混","母","短","皮","终","聚","汽","村","云","哪","既","距","卫","停","烈","央","察","烧","迅","境","若","印","洲","刻","括","激","孔","搞","甚","室","待","核","校","散","侵","吧","甲","游","久","菜","味","旧","模","湖","货","损","预","阻","毫","普","稳","乙","妈","植","息","扩","银","语","挥","酒","守","拿","序","纸","医","缺","雨","吗","针","刘","啊","急","唱","误","训","愿","审","附","获","茶","鲜","粮","斤","孩","脱","硫","肥","善","龙","演","父","渐","血","欢","械","掌","歌","沙","刚","攻","谓","盾","讨","晚","粒","乱","燃","矛","乎","杀","药","宁","鲁","贵","钟","煤","读","班","伯","香","介","迫","句","丰","培","握","兰","担","弦","蛋","沉","假","穿","执","答","乐","谁","顺","烟","缩","征","脸","喜","松","脚","困","异","免","背","星","福","买","染","井","概","慢","怕","磁","倍","祖","皇","促","静","补","评","翻","肉","践","尼","衣","宽","扬","棉","希","伤","操","垂","秋","宜","氢","套","督","振","架","亮","末","宪","庆","编","牛","触","映","雷","销","诗","座","居","抓","裂","胞","呼","娘","景","威","绿","晶","厚","盟","衡","鸡","孙","延","危","胶","屋","乡","临","陆","顾","掉","呀","灯","岁","措","束","耐","剧","玉","赵","跳","哥","季","课","凯","胡","额","款","绍","卷","齐","伟","蒸","殖","永","宗","苗","川","炉","岩","弱","零","杨","奏","沿","露","杆","探","滑","镇","饭","浓","航","怀","赶","库","夺","伊","灵","税","途","灭","赛","归","召","鼓","播","盘","裁","险","康","唯","录","菌","纯","借","糖","盖","横","符","私","努","堂","域","枪","润","幅","哈","竟","熟","虫","泽","脑","壤","碳","欧","遍","侧","寨","敢","彻","虑","斜","薄","庭","纳","弹","饲","伸","折","麦","湿","暗","荷","瓦","塞","床","筑","恶","户","访","塔","奇","透","梁","刀","旋","迹","卡","氯","遇","份","毒","泥","退","洗","摆","灰","彩","卖","耗","夏","择","忙","铜","献","硬","予","繁","圈","雪","函","亦","抽","篇","阵","阴","丁","尺","追","堆","雄","迎","泛","爸","楼","避","谋","吨","野","猪","旗","累","偏","典","馆","索","秦","脂","潮","爷","豆","忽","托","惊","塑","遗","愈","朱","替","纤","粗","倾","尚","痛","楚","谢","奋","购","磨","君","池","旁","碎","骨","监","捕","弟","暴","割","贯","殊","释","词","亡","壁","顿","宝","午","尘","闻","揭","炮","残","冬","桥","妇","警","综","招","吴","付","浮","遭","徐","您","摇","谷","赞","箱","隔","订","男","吹","园","纷","唐","败","宋","玻","巨","耕","坦","荣","闭","湾","键","凡","驻","锅","救","恩","剥","凝","碱","齿","截","炼","麻","纺","禁","废","盛","版","缓","净","睛","昌","婚","涉","筒","嘴","插","岸","朗","庄","街","藏","姑","贸","腐","奴","啦","惯","乘","伙","恢","匀","纱","扎","辩","耳","彪","臣","亿","璃","抵","脉","秀","萨","俄","网","舞","店","喷","纵","寸","汗","挂","洪","贺","闪","柬","爆","烯","津","稻","墙","软","勇","像","滚","厘","蒙","芳","肯","坡","柱","荡","腿","仪","旅","尾","轧","冰","贡","登","黎","削","钻","勒","逃","障","氨","郭","峰","币","港","伏","轨","亩","毕","擦","莫","刺","浪","秘","援","株","健","售","股","岛","甘","泡","睡","童","铸","汤","阀","休","汇","舍","牧","绕","炸","哲","磷","绩","朋","淡","尖","启","陷","柴","呈","徒","颜","泪","稍","忘","泵","蓝","拖","洞","授","镜","辛","壮","锋","贫","虚","弯","摩","泰","幼","廷","尊","窗","纲","弄","隶","疑","氏","宫","姐","震","瑞","怪","尤","琴","循","描","膜","违","夹","腰","缘","珠","穷","森","枝","竹","沟","催","绳","忆","邦","剩","幸","浆","栏","拥","牙","贮","礼","滤","钠","纹","罢","拍","咱","喊","袖","埃","勤","罚","焦","潜","伍","墨","欲","缝","姓","刊","饱","仿","奖","铝","鬼","丽","跨","默","挖","链","扫","喝","袋","炭","污","幕","诸","弧","励","梅","奶","洁","灾","舟","鉴","苯","讼","抱","毁","懂","寒","智","埔","寄","届","跃","渡","挑","丹","艰","贝","碰","拔","爹","戴","码","梦","芽","熔","赤","渔","哭","敬","颗","奔","铅","仲","虎","稀","妹","乏","珍","申","桌","遵","允","隆","螺","仓","魏","锐","晓","氮","兼","隐","碍","赫","拨","忠","肃","缸","牵","抢","博","巧","壳","兄","杜","讯","诚","碧","祥","柯","页","巡","矩","悲","灌","龄","伦","票","寻","桂","铺","圣","恐","恰","郑","趣","抬","荒","腾","贴","柔","滴","猛","阔","辆","妻","填","撤","储","签","闹","扰","紫","砂","递","戏","吊","陶","伐","喂","疗","瓶","婆","抚","臂","摸","忍","虾","蜡","邻","胸","巩","挤","偶","弃","槽","劲","乳","邓","吉","仁","烂","砖","租","乌","舰","伴","瓜","浅","丙","暂","燥","橡","柳","迷","暖","牌","秧","胆","详","簧","踏","瓷","谱","呆","宾","糊","洛","辉","愤","竞","隙","怒","粘","乃","绪","肩","籍","敏","涂","熙","皆","侦","悬","掘","享","纠","醒","狂","锁","淀","恨","牲","霸","爬","赏","逆","玩","陵","祝","秒","浙","貌","役","彼","悉","鸭","趋","凤","晨","畜","辈","秩","卵","署","梯","炎","滩","棋","驱","筛","峡","冒","啥","寿","译","浸","泉","帽","迟","硅","疆","贷","漏","稿","冠","嫩","胁","芯","牢","叛","蚀","奥","鸣","岭","羊","凭","串","塘","绘","酵","融","盆","锡","庙","筹","冻","辅","摄","袭","筋","拒","僚","旱","钾","鸟","漆","沈","眉","疏","添","棒","穗","硝","韩","逼","扭","侨","凉","挺","碗","栽","炒","杯","患","馏","劝","豪","辽","勃","鸿","旦","吏","拜","狗","埋","辊","掩","饮","搬","骂","辞","勾","扣","估","蒋","绒","雾","丈","朵","姆","拟","宇","辑","陕","雕","偿","蓄","崇","剪","倡","厅","咬","驶","薯","刷","斥","番","赋","奉","佛","浇","漫","曼","扇","钙","桃","扶","仔","返","俗","亏","腔","鞋","棱","覆","框","悄","叔","撞","骗","勘","旺","沸","孤","吐","孟","渠","屈","疾","妙","惜","仰","狠","胀","谐","抛","霉","桑","岗","嘛","衰","盗","渗","脏","赖","涌","甜","曹","阅","肌","哩","厉","烃","纬","毅","昨","伪","症","煮","叹","钉","搭","茎","笼","酷","偷","弓","锥","恒","杰","坑","鼻","翼","纶","叙","狱","逮","罐","络","棚","抑","膨","蔬","寺","骤","穆","冶","枯","册","尸","凸","绅","坯","牺","焰","轰","欣","晋","瘦","御","锭","锦","丧","旬","锻","垄","搜","扑","邀","亭","酯","迈","舒","脆","酶","闲","忧","酚","顽","羽","涨","卸","仗","陪","辟","惩","杭","姚","肚","捉","飘","漂","昆","欺","吾","郎","烷","汁","呵","饰","萧","雅","邮","迁","燕","撒","姻","赴","宴","烦","债","帐","斑","铃","旨","醇","董","饼","雏","姿","拌","傅","腹","妥","揉","贤","拆","歪","葡","胺","丢","浩","徽","昂","垫","挡","览","贪","慰","缴","汪","慌","冯","诺","姜","谊","凶","劣","诬","耀","昏","躺","盈","骑","乔","溪","丛","卢","抹","闷","咨","刮","驾","缆","悟","摘","铒","掷","颇","幻","柄","惠","惨","佳","仇","腊","窝","涤","剑","瞧","堡","泼","葱","罩","霍","捞","胎","苍","滨","俩","捅","湘","砍","霞","邵","萄","疯","淮","遂","熊","粪","烘","宿","档","戈","驳","嫂","裕","徙","箭","捐","肠","撑","晒","辨","殿","莲","摊","搅","酱","屏","疫","哀","蔡","堵","沫","皱","畅","叠","阁","莱","敲","辖","钩","痕","坝","巷","饿","祸","丘","玄","溜","曰","逻","彭","尝","卿","妨","艇","吞","韦","怨","矮","歇"]},function(e,t,i){e.exports=["的","一","是","在","不","了","有","和","人","這","中","大","為","上","個","國","我","以","要","他","時","來","用","們","生","到","作","地","於","出","就","分","對","成","會","可","主","發","年","動","同","工","也","能","下","過","子","說","產","種","面","而","方","後","多","定","行","學","法","所","民","得","經","十","三","之","進","著","等","部","度","家","電","力","裡","如","水","化","高","自","二","理","起","小","物","現","實","加","量","都","兩","體","制","機","當","使","點","從","業","本","去","把","性","好","應","開","它","合","還","因","由","其","些","然","前","外","天","政","四","日","那","社","義","事","平","形","相","全","表","間","樣","與","關","各","重","新","線","內","數","正","心","反","你","明","看","原","又","麼","利","比","或","但","質","氣","第","向","道","命","此","變","條","只","沒","結","解","問","意","建","月","公","無","系","軍","很","情","者","最","立","代","想","已","通","並","提","直","題","黨","程","展","五","果","料","象","員","革","位","入","常","文","總","次","品","式","活","設","及","管","特","件","長","求","老","頭","基","資","邊","流","路","級","少","圖","山","統","接","知","較","將","組","見","計","別","她","手","角","期","根","論","運","農","指","幾","九","區","強","放","決","西","被","幹","做","必","戰","先","回","則","任","取","據","處","隊","南","給","色","光","門","即","保","治","北","造","百","規","熱","領","七","海","口","東","導","器","壓","志","世","金","增","爭","濟","階","油","思","術","極","交","受","聯","什","認","六","共","權","收","證","改","清","美","再","採","轉","更","單","風","切","打","白","教","速","花","帶","安","場","身","車","例","真","務","具","萬","每","目","至","達","走","積","示","議","聲","報","鬥","完","類","八","離","華","名","確","才","科","張","信","馬","節","話","米","整","空","元","況","今","集","溫","傳","土","許","步","群","廣","石","記","需","段","研","界","拉","林","律","叫","且","究","觀","越","織","裝","影","算","低","持","音","眾","書","布","复","容","兒","須","際","商","非","驗","連","斷","深","難","近","礦","千","週","委","素","技","備","半","辦","青","省","列","習","響","約","支","般","史","感","勞","便","團","往","酸","歷","市","克","何","除","消","構","府","稱","太","準","精","值","號","率","族","維","劃","選","標","寫","存","候","毛","親","快","效","斯","院","查","江","型","眼","王","按","格","養","易","置","派","層","片","始","卻","專","狀","育","廠","京","識","適","屬","圓","包","火","住","調","滿","縣","局","照","參","紅","細","引","聽","該","鐵","價","嚴","首","底","液","官","德","隨","病","蘇","失","爾","死","講","配","女","黃","推","顯","談","罪","神","藝","呢","席","含","企","望","密","批","營","項","防","舉","球","英","氧","勢","告","李","台","落","木","幫","輪","破","亞","師","圍","注","遠","字","材","排","供","河","態","封","另","施","減","樹","溶","怎","止","案","言","士","均","武","固","葉","魚","波","視","僅","費","緊","愛","左","章","早","朝","害","續","輕","服","試","食","充","兵","源","判","護","司","足","某","練","差","致","板","田","降","黑","犯","負","擊","范","繼","興","似","餘","堅","曲","輸","修","故","城","夫","夠","送","筆","船","佔","右","財","吃","富","春","職","覺","漢","畫","功","巴","跟","雖","雜","飛","檢","吸","助","昇","陽","互","初","創","抗","考","投","壞","策","古","徑","換","未","跑","留","鋼","曾","端","責","站","簡","述","錢","副","盡","帝","射","草","衝","承","獨","令","限","阿","宣","環","雙","請","超","微","讓","控","州","良","軸","找","否","紀","益","依","優","頂","礎","載","倒","房","突","坐","粉","敵","略","客","袁","冷","勝","絕","析","塊","劑","測","絲","協","訴","念","陳","仍","羅","鹽","友","洋","錯","苦","夜","刑","移","頻","逐","靠","混","母","短","皮","終","聚","汽","村","雲","哪","既","距","衛","停","烈","央","察","燒","迅","境","若","印","洲","刻","括","激","孔","搞","甚","室","待","核","校","散","侵","吧","甲","遊","久","菜","味","舊","模","湖","貨","損","預","阻","毫","普","穩","乙","媽","植","息","擴","銀","語","揮","酒","守","拿","序","紙","醫","缺","雨","嗎","針","劉","啊","急","唱","誤","訓","願","審","附","獲","茶","鮮","糧","斤","孩","脫","硫","肥","善","龍","演","父","漸","血","歡","械","掌","歌","沙","剛","攻","謂","盾","討","晚","粒","亂","燃","矛","乎","殺","藥","寧","魯","貴","鐘","煤","讀","班","伯","香","介","迫","句","豐","培","握","蘭","擔","弦","蛋","沉","假","穿","執","答","樂","誰","順","煙","縮","徵","臉","喜","松","腳","困","異","免","背","星","福","買","染","井","概","慢","怕","磁","倍","祖","皇","促","靜","補","評","翻","肉","踐","尼","衣","寬","揚","棉","希","傷","操","垂","秋","宜","氫","套","督","振","架","亮","末","憲","慶","編","牛","觸","映","雷","銷","詩","座","居","抓","裂","胞","呼","娘","景","威","綠","晶","厚","盟","衡","雞","孫","延","危","膠","屋","鄉","臨","陸","顧","掉","呀","燈","歲","措","束","耐","劇","玉","趙","跳","哥","季","課","凱","胡","額","款","紹","卷","齊","偉","蒸","殖","永","宗","苗","川","爐","岩","弱","零","楊","奏","沿","露","桿","探","滑","鎮","飯","濃","航","懷","趕","庫","奪","伊","靈","稅","途","滅","賽","歸","召","鼓","播","盤","裁","險","康","唯","錄","菌","純","借","糖","蓋","橫","符","私","努","堂","域","槍","潤","幅","哈","竟","熟","蟲","澤","腦","壤","碳","歐","遍","側","寨","敢","徹","慮","斜","薄","庭","納","彈","飼","伸","折","麥","濕","暗","荷","瓦","塞","床","築","惡","戶","訪","塔","奇","透","梁","刀","旋","跡","卡","氯","遇","份","毒","泥","退","洗","擺","灰","彩","賣","耗","夏","擇","忙","銅","獻","硬","予","繁","圈","雪","函","亦","抽","篇","陣","陰","丁","尺","追","堆","雄","迎","泛","爸","樓","避","謀","噸","野","豬","旗","累","偏","典","館","索","秦","脂","潮","爺","豆","忽","托","驚","塑","遺","愈","朱","替","纖","粗","傾","尚","痛","楚","謝","奮","購","磨","君","池","旁","碎","骨","監","捕","弟","暴","割","貫","殊","釋","詞","亡","壁","頓","寶","午","塵","聞","揭","炮","殘","冬","橋","婦","警","綜","招","吳","付","浮","遭","徐","您","搖","谷","贊","箱","隔","訂","男","吹","園","紛","唐","敗","宋","玻","巨","耕","坦","榮","閉","灣","鍵","凡","駐","鍋","救","恩","剝","凝","鹼","齒","截","煉","麻","紡","禁","廢","盛","版","緩","淨","睛","昌","婚","涉","筒","嘴","插","岸","朗","莊","街","藏","姑","貿","腐","奴","啦","慣","乘","夥","恢","勻","紗","扎","辯","耳","彪","臣","億","璃","抵","脈","秀","薩","俄","網","舞","店","噴","縱","寸","汗","掛","洪","賀","閃","柬","爆","烯","津","稻","牆","軟","勇","像","滾","厘","蒙","芳","肯","坡","柱","盪","腿","儀","旅","尾","軋","冰","貢","登","黎","削","鑽","勒","逃","障","氨","郭","峰","幣","港","伏","軌","畝","畢","擦","莫","刺","浪","秘","援","株","健","售","股","島","甘","泡","睡","童","鑄","湯","閥","休","匯","舍","牧","繞","炸","哲","磷","績","朋","淡","尖","啟","陷","柴","呈","徒","顏","淚","稍","忘","泵","藍","拖","洞","授","鏡","辛","壯","鋒","貧","虛","彎","摩","泰","幼","廷","尊","窗","綱","弄","隸","疑","氏","宮","姐","震","瑞","怪","尤","琴","循","描","膜","違","夾","腰","緣","珠","窮","森","枝","竹","溝","催","繩","憶","邦","剩","幸","漿","欄","擁","牙","貯","禮","濾","鈉","紋","罷","拍","咱","喊","袖","埃","勤","罰","焦","潛","伍","墨","欲","縫","姓","刊","飽","仿","獎","鋁","鬼","麗","跨","默","挖","鏈","掃","喝","袋","炭","污","幕","諸","弧","勵","梅","奶","潔","災","舟","鑑","苯","訟","抱","毀","懂","寒","智","埔","寄","屆","躍","渡","挑","丹","艱","貝","碰","拔","爹","戴","碼","夢","芽","熔","赤","漁","哭","敬","顆","奔","鉛","仲","虎","稀","妹","乏","珍","申","桌","遵","允","隆","螺","倉","魏","銳","曉","氮","兼","隱","礙","赫","撥","忠","肅","缸","牽","搶","博","巧","殼","兄","杜","訊","誠","碧","祥","柯","頁","巡","矩","悲","灌","齡","倫","票","尋","桂","鋪","聖","恐","恰","鄭","趣","抬","荒","騰","貼","柔","滴","猛","闊","輛","妻","填","撤","儲","簽","鬧","擾","紫","砂","遞","戲","吊","陶","伐","餵","療","瓶","婆","撫","臂","摸","忍","蝦","蠟","鄰","胸","鞏","擠","偶","棄","槽","勁","乳","鄧","吉","仁","爛","磚","租","烏","艦","伴","瓜","淺","丙","暫","燥","橡","柳","迷","暖","牌","秧","膽","詳","簧","踏","瓷","譜","呆","賓","糊","洛","輝","憤","競","隙","怒","粘","乃","緒","肩","籍","敏","塗","熙","皆","偵","懸","掘","享","糾","醒","狂","鎖","淀","恨","牲","霸","爬","賞","逆","玩","陵","祝","秒","浙","貌","役","彼","悉","鴨","趨","鳳","晨","畜","輩","秩","卵","署","梯","炎","灘","棋","驅","篩","峽","冒","啥","壽","譯","浸","泉","帽","遲","矽","疆","貸","漏","稿","冠","嫩","脅","芯","牢","叛","蝕","奧","鳴","嶺","羊","憑","串","塘","繪","酵","融","盆","錫","廟","籌","凍","輔","攝","襲","筋","拒","僚","旱","鉀","鳥","漆","沈","眉","疏","添","棒","穗","硝","韓","逼","扭","僑","涼","挺","碗","栽","炒","杯","患","餾","勸","豪","遼","勃","鴻","旦","吏","拜","狗","埋","輥","掩","飲","搬","罵","辭","勾","扣","估","蔣","絨","霧","丈","朵","姆","擬","宇","輯","陝","雕","償","蓄","崇","剪","倡","廳","咬","駛","薯","刷","斥","番","賦","奉","佛","澆","漫","曼","扇","鈣","桃","扶","仔","返","俗","虧","腔","鞋","棱","覆","框","悄","叔","撞","騙","勘","旺","沸","孤","吐","孟","渠","屈","疾","妙","惜","仰","狠","脹","諧","拋","黴","桑","崗","嘛","衰","盜","滲","臟","賴","湧","甜","曹","閱","肌","哩","厲","烴","緯","毅","昨","偽","症","煮","嘆","釘","搭","莖","籠","酷","偷","弓","錐","恆","傑","坑","鼻","翼","綸","敘","獄","逮","罐","絡","棚","抑","膨","蔬","寺","驟","穆","冶","枯","冊","屍","凸","紳","坯","犧","焰","轟","欣","晉","瘦","禦","錠","錦","喪","旬","鍛","壟","搜","撲","邀","亭","酯","邁","舒","脆","酶","閒","憂","酚","頑","羽","漲","卸","仗","陪","闢","懲","杭","姚","肚","捉","飄","漂","昆","欺","吾","郎","烷","汁","呵","飾","蕭","雅","郵","遷","燕","撒","姻","赴","宴","煩","債","帳","斑","鈴","旨","醇","董","餅","雛","姿","拌","傅","腹","妥","揉","賢","拆","歪","葡","胺","丟","浩","徽","昂","墊","擋","覽","貪","慰","繳","汪","慌","馮","諾","姜","誼","兇","劣","誣","耀","昏","躺","盈","騎","喬","溪","叢","盧","抹","悶","諮","刮","駕","纜","悟","摘","鉺","擲","頗","幻","柄","惠","慘","佳","仇","臘","窩","滌","劍","瞧","堡","潑","蔥","罩","霍","撈","胎","蒼","濱","倆","捅","湘","砍","霞","邵","萄","瘋","淮","遂","熊","糞","烘","宿","檔","戈","駁","嫂","裕","徙","箭","捐","腸","撐","曬","辨","殿","蓮","攤","攪","醬","屏","疫","哀","蔡","堵","沫","皺","暢","疊","閣","萊","敲","轄","鉤","痕","壩","巷","餓","禍","丘","玄","溜","曰","邏","彭","嘗","卿","妨","艇","吞","韋","怨","矮","歇"]},function(e,t,i){e.exports=["abandon","ability","able","about","above","absent","absorb","abstract","absurd","abuse","access","accident","account","accuse","achieve","acid","acoustic","acquire","across","act","action","actor","actress","actual","adapt","add","addict","address","adjust","admit","adult","advance","advice","aerobic","affair","afford","afraid","again","age","agent","agree","ahead","aim","air","airport","aisle","alarm","album","alcohol","alert","alien","all","alley","allow","almost","alone","alpha","already","also","alter","always","amateur","amazing","among","amount","amused","analyst","anchor","ancient","anger","angle","angry","animal","ankle","announce","annual","another","answer","antenna","antique","anxiety","any","apart","apology","appear","apple","approve","april","arch","arctic","area","arena","argue","arm","armed","armor","army","around","arrange","arrest","arrive","arrow","art","artefact","artist","artwork","ask","aspect","assault","asset","assist","assume","asthma","athlete","atom","attack","attend","attitude","attract","auction","audit","august","aunt","author","auto","autumn","average","avocado","avoid","awake","aware","away","awesome","awful","awkward","axis","baby","bachelor","bacon","badge","bag","balance","balcony","ball","bamboo","banana","banner","bar","barely","bargain","barrel","base","basic","basket","battle","beach","bean","beauty","because","become","beef","before","begin","behave","behind","believe","below","belt","bench","benefit","best","betray","better","between","beyond","bicycle","bid","bike","bind","biology","bird","birth","bitter","black","blade","blame","blanket","blast","bleak","bless","blind","blood","blossom","blouse","blue","blur","blush","board","boat","body","boil","bomb","bone","bonus","book","boost","border","boring","borrow","boss","bottom","bounce","box","boy","bracket","brain","brand","brass","brave","bread","breeze","brick","bridge","brief","bright","bring","brisk","broccoli","broken","bronze","broom","brother","brown","brush","bubble","buddy","budget","buffalo","build","bulb","bulk","bullet","bundle","bunker","burden","burger","burst","bus","business","busy","butter","buyer","buzz","cabbage","cabin","cable","cactus","cage","cake","call","calm","camera","camp","can","canal","cancel","candy","cannon","canoe","canvas","canyon","capable","capital","captain","car","carbon","card","cargo","carpet","carry","cart","case","cash","casino","castle","casual","cat","catalog","catch","category","cattle","caught","cause","caution","cave","ceiling","celery","cement","census","century","cereal","certain","chair","chalk","champion","change","chaos","chapter","charge","chase","chat","cheap","check","cheese","chef","cherry","chest","chicken","chief","child","chimney","choice","choose","chronic","chuckle","chunk","churn","cigar","cinnamon","circle","citizen","city","civil","claim","clap","clarify","claw","clay","clean","clerk","clever","click","client","cliff","climb","clinic","clip","clock","clog","close","cloth","cloud","clown","club","clump","cluster","clutch","coach","coast","coconut","code","coffee","coil","coin","collect","color","column","combine","come","comfort","comic","common","company","concert","conduct","confirm","congress","connect","consider","control","convince","cook","cool","copper","copy","coral","core","corn","correct","cost","cotton","couch","country","couple","course","cousin","cover","coyote","crack","cradle","craft","cram","crane","crash","crater","crawl","crazy","cream","credit","creek","crew","cricket","crime","crisp","critic","crop","cross","crouch","crowd","crucial","cruel","cruise","crumble","crunch","crush","cry","crystal","cube","culture","cup","cupboard","curious","current","curtain","curve","cushion","custom","cute","cycle","dad","damage","damp","dance","danger","daring","dash","daughter","dawn","day","deal","debate","debris","decade","december","decide","decline","decorate","decrease","deer","defense","define","defy","degree","delay","deliver","demand","demise","denial","dentist","deny","depart","depend","deposit","depth","deputy","derive","describe","desert","design","desk","despair","destroy","detail","detect","develop","device","devote","diagram","dial","diamond","diary","dice","diesel","diet","differ","digital","dignity","dilemma","dinner","dinosaur","direct","dirt","disagree","discover","disease","dish","dismiss","disorder","display","distance","divert","divide","divorce","dizzy","doctor","document","dog","doll","dolphin","domain","donate","donkey","donor","door","dose","double","dove","draft","dragon","drama","drastic","draw","dream","dress","drift","drill","drink","drip","drive","drop","drum","dry","duck","dumb","dune","during","dust","dutch","duty","dwarf","dynamic","eager","eagle","early","earn","earth","easily","east","easy","echo","ecology","economy","edge","edit","educate","effort","egg","eight","either","elbow","elder","electric","elegant","element","elephant","elevator","elite","else","embark","embody","embrace","emerge","emotion","employ","empower","empty","enable","enact","end","endless","endorse","enemy","energy","enforce","engage","engine","enhance","enjoy","enlist","enough","enrich","enroll","ensure","enter","entire","entry","envelope","episode","equal","equip","era","erase","erode","erosion","error","erupt","escape","essay","essence","estate","eternal","ethics","evidence","evil","evoke","evolve","exact","example","excess","exchange","excite","exclude","excuse","execute","exercise","exhaust","exhibit","exile","exist","exit","exotic","expand","expect","expire","explain","expose","express","extend","extra","eye","eyebrow","fabric","face","faculty","fade","faint","faith","fall","false","fame","family","famous","fan","fancy","fantasy","farm","fashion","fat","fatal","father","fatigue","fault","favorite","feature","february","federal","fee","feed","feel","female","fence","festival","fetch","fever","few","fiber","fiction","field","figure","file","film","filter","final","find","fine","finger","finish","fire","firm","first","fiscal","fish","fit","fitness","fix","flag","flame","flash","flat","flavor","flee","flight","flip","float","flock","floor","flower","fluid","flush","fly","foam","focus","fog","foil","fold","follow","food","foot","force","forest","forget","fork","fortune","forum","forward","fossil","foster","found","fox","fragile","frame","frequent","fresh","friend","fringe","frog","front","frost","frown","frozen","fruit","fuel","fun","funny","furnace","fury","future","gadget","gain","galaxy","gallery","game","gap","garage","garbage","garden","garlic","garment","gas","gasp","gate","gather","gauge","gaze","general","genius","genre","gentle","genuine","gesture","ghost","giant","gift","giggle","ginger","giraffe","girl","give","glad","glance","glare","glass","glide","glimpse","globe","gloom","glory","glove","glow","glue","goat","goddess","gold","good","goose","gorilla","gospel","gossip","govern","gown","grab","grace","grain","grant","grape","grass","gravity","great","green","grid","grief","grit","grocery","group","grow","grunt","guard","guess","guide","guilt","guitar","gun","gym","habit","hair","half","hammer","hamster","hand","happy","harbor","hard","harsh","harvest","hat","have","hawk","hazard","head","health","heart","heavy","hedgehog","height","hello","helmet","help","hen","hero","hidden","high","hill","hint","hip","hire","history","hobby","hockey","hold","hole","holiday","hollow","home","honey","hood","hope","horn","horror","horse","hospital","host","hotel","hour","hover","hub","huge","human","humble","humor","hundred","hungry","hunt","hurdle","hurry","hurt","husband","hybrid","ice","icon","idea","identify","idle","ignore","ill","illegal","illness","image","imitate","immense","immune","impact","impose","improve","impulse","inch","include","income","increase","index","indicate","indoor","industry","infant","inflict","inform","inhale","inherit","initial","inject","injury","inmate","inner","innocent","input","inquiry","insane","insect","inside","inspire","install","intact","interest","into","invest","invite","involve","iron","island","isolate","issue","item","ivory","jacket","jaguar","jar","jazz","jealous","jeans","jelly","jewel","job","join","joke","journey","joy","judge","juice","jump","jungle","junior","junk","just","kangaroo","keen","keep","ketchup","key","kick","kid","kidney","kind","kingdom","kiss","kit","kitchen","kite","kitten","kiwi","knee","knife","knock","know","lab","label","labor","ladder","lady","lake","lamp","language","laptop","large","later","latin","laugh","laundry","lava","law","lawn","lawsuit","layer","lazy","leader","leaf","learn","leave","lecture","left","leg","legal","legend","leisure","lemon","lend","length","lens","leopard","lesson","letter","level","liar","liberty","library","license","life","lift","light","like","limb","limit","link","lion","liquid","list","little","live","lizard","load","loan","lobster","local","lock","logic","lonely","long","loop","lottery","loud","lounge","love","loyal","lucky","luggage","lumber","lunar","lunch","luxury","lyrics","machine","mad","magic","magnet","maid","mail","main","major","make","mammal","man","manage","mandate","mango","mansion","manual","maple","marble","march","margin","marine","market","marriage","mask","mass","master","match","material","math","matrix","matter","maximum","maze","meadow","mean","measure","meat","mechanic","medal","media","melody","melt","member","memory","mention","menu","mercy","merge","merit","merry","mesh","message","metal","method","middle","midnight","milk","million","mimic","mind","minimum","minor","minute","miracle","mirror","misery","miss","mistake","mix","mixed","mixture","mobile","model","modify","mom","moment","monitor","monkey","monster","month","moon","moral","more","morning","mosquito","mother","motion","motor","mountain","mouse","move","movie","much","muffin","mule","multiply","muscle","museum","mushroom","music","must","mutual","myself","mystery","myth","naive","name","napkin","narrow","nasty","nation","nature","near","neck","need","negative","neglect","neither","nephew","nerve","nest","net","network","neutral","never","news","next","nice","night","noble","noise","nominee","noodle","normal","north","nose","notable","note","nothing","notice","novel","now","nuclear","number","nurse","nut","oak","obey","object","oblige","obscure","observe","obtain","obvious","occur","ocean","october","odor","off","offer","office","often","oil","okay","old","olive","olympic","omit","once","one","onion","online","only","open","opera","opinion","oppose","option","orange","orbit","orchard","order","ordinary","organ","orient","original","orphan","ostrich","other","outdoor","outer","output","outside","oval","oven","over","own","owner","oxygen","oyster","ozone","pact","paddle","page","pair","palace","palm","panda","panel","panic","panther","paper","parade","parent","park","parrot","party","pass","patch","path","patient","patrol","pattern","pause","pave","payment","peace","peanut","pear","peasant","pelican","pen","penalty","pencil","people","pepper","perfect","permit","person","pet","phone","photo","phrase","physical","piano","picnic","picture","piece","pig","pigeon","pill","pilot","pink","pioneer","pipe","pistol","pitch","pizza","place","planet","plastic","plate","play","please","pledge","pluck","plug","plunge","poem","poet","point","polar","pole","police","pond","pony","pool","popular","portion","position","possible","post","potato","pottery","poverty","powder","power","practice","praise","predict","prefer","prepare","present","pretty","prevent","price","pride","primary","print","priority","prison","private","prize","problem","process","produce","profit","program","project","promote","proof","property","prosper","protect","proud","provide","public","pudding","pull","pulp","pulse","pumpkin","punch","pupil","puppy","purchase","purity","purpose","purse","push","put","puzzle","pyramid","quality","quantum","quarter","question","quick","quit","quiz","quote","rabbit","raccoon","race","rack","radar","radio","rail","rain","raise","rally","ramp","ranch","random","range","rapid","rare","rate","rather","raven","raw","razor","ready","real","reason","rebel","rebuild","recall","receive","recipe","record","recycle","reduce","reflect","reform","refuse","region","regret","regular","reject","relax","release","relief","rely","remain","remember","remind","remove","render","renew","rent","reopen","repair","repeat","replace","report","require","rescue","resemble","resist","resource","response","result","retire","retreat","return","reunion","reveal","review","reward","rhythm","rib","ribbon","rice","rich","ride","ridge","rifle","right","rigid","ring","riot","ripple","risk","ritual","rival","river","road","roast","robot","robust","rocket","romance","roof","rookie","room","rose","rotate","rough","round","route","royal","rubber","rude","rug","rule","run","runway","rural","sad","saddle","sadness","safe","sail","salad","salmon","salon","salt","salute","same","sample","sand","satisfy","satoshi","sauce","sausage","save","say","scale","scan","scare","scatter","scene","scheme","school","science","scissors","scorpion","scout","scrap","screen","script","scrub","sea","search","season","seat","second","secret","section","security","seed","seek","segment","select","sell","seminar","senior","sense","sentence","series","service","session","settle","setup","seven","shadow","shaft","shallow","share","shed","shell","sheriff","shield","shift","shine","ship","shiver","shock","shoe","shoot","shop","short","shoulder","shove","shrimp","shrug","shuffle","shy","sibling","sick","side","siege","sight","sign","silent","silk","silly","silver","similar","simple","since","sing","siren","sister","situate","six","size","skate","sketch","ski","skill","skin","skirt","skull","slab","slam","sleep","slender","slice","slide","slight","slim","slogan","slot","slow","slush","small","smart","smile","smoke","smooth","snack","snake","snap","sniff","snow","soap","soccer","social","sock","soda","soft","solar","soldier","solid","solution","solve","someone","song","soon","sorry","sort","soul","sound","soup","source","south","space","spare","spatial","spawn","speak","special","speed","spell","spend","sphere","spice","spider","spike","spin","spirit","split","spoil","sponsor","spoon","sport","spot","spray","spread","spring","spy","square","squeeze","squirrel","stable","stadium","staff","stage","stairs","stamp","stand","start","state","stay","steak","steel","stem","step","stereo","stick","still","sting","stock","stomach","stone","stool","story","stove","strategy","street","strike","strong","struggle","student","stuff","stumble","style","subject","submit","subway","success","such","sudden","suffer","sugar","suggest","suit","summer","sun","sunny","sunset","super","supply","supreme","sure","surface","surge","surprise","surround","survey","suspect","sustain","swallow","swamp","swap","swarm","swear","sweet","swift","swim","swing","switch","sword","symbol","symptom","syrup","system","table","tackle","tag","tail","talent","talk","tank","tape","target","task","taste","tattoo","taxi","teach","team","tell","ten","tenant","tennis","tent","term","test","text","thank","that","theme","then","theory","there","they","thing","this","thought","three","thrive","throw","thumb","thunder","ticket","tide","tiger","tilt","timber","time","tiny","tip","tired","tissue","title","toast","tobacco","today","toddler","toe","together","toilet","token","tomato","tomorrow","tone","tongue","tonight","tool","tooth","top","topic","topple","torch","tornado","tortoise","toss","total","tourist","toward","tower","town","toy","track","trade","traffic","tragic","train","transfer","trap","trash","travel","tray","treat","tree","trend","trial","tribe","trick","trigger","trim","trip","trophy","trouble","truck","true","truly","trumpet","trust","truth","try","tube","tuition","tumble","tuna","tunnel","turkey","turn","turtle","twelve","twenty","twice","twin","twist","two","type","typical","ugly","umbrella","unable","unaware","uncle","uncover","under","undo","unfair","unfold","unhappy","uniform","unique","unit","universe","unknown","unlock","until","unusual","unveil","update","upgrade","uphold","upon","upper","upset","urban","urge","usage","use","used","useful","useless","usual","utility","vacant","vacuum","vague","valid","valley","valve","van","vanish","vapor","various","vast","vault","vehicle","velvet","vendor","venture","venue","verb","verify","version","very","vessel","veteran","viable","vibrant","vicious","victory","video","view","village","vintage","violin","virtual","virus","visa","visit","visual","vital","vivid","vocal","voice","void","volcano","volume","vote","voyage","wage","wagon","wait","walk","wall","walnut","want","warfare","warm","warrior","wash","wasp","waste","water","wave","way","wealth","weapon","wear","weasel","weather","web","wedding","weekend","weird","welcome","west","wet","whale","what","wheat","wheel","when","where","whip","whisper","wide","width","wife","wild","will","win","window","wine","wing","wink","winner","winter","wire","wisdom","wise","wish","witness","wolf","woman","wonder","wood","wool","word","work","world","worry","worth","wrap","wreck","wrestle","wrist","write","wrong","yard","year","yellow","you","young","youth","zebra","zero","zone","zoo"]},function(e,t,i){e.exports=["abaisser","abandon","abdiquer","abeille","abolir","aborder","aboutir","aboyer","abrasif","abreuver","abriter","abroger","abrupt","absence","absolu","absurde","abusif","abyssal","académie","acajou","acarien","accabler","accepter","acclamer","accolade","accroche","accuser","acerbe","achat","acheter","aciduler","acier","acompte","acquérir","acronyme","acteur","actif","actuel","adepte","adéquat","adhésif","adjectif","adjuger","admettre","admirer","adopter","adorer","adoucir","adresse","adroit","adulte","adverbe","aérer","aéronef","affaire","affecter","affiche","affreux","affubler","agacer","agencer","agile","agiter","agrafer","agréable","agrume","aider","aiguille","ailier","aimable","aisance","ajouter","ajuster","alarmer","alchimie","alerte","algèbre","algue","aliéner","aliment","alléger","alliage","allouer","allumer","alourdir","alpaga","altesse","alvéole","amateur","ambigu","ambre","aménager","amertume","amidon","amiral","amorcer","amour","amovible","amphibie","ampleur","amusant","analyse","anaphore","anarchie","anatomie","ancien","anéantir","angle","angoisse","anguleux","animal","annexer","annonce","annuel","anodin","anomalie","anonyme","anormal","antenne","antidote","anxieux","apaiser","apéritif","aplanir","apologie","appareil","appeler","apporter","appuyer","aquarium","aqueduc","arbitre","arbuste","ardeur","ardoise","argent","arlequin","armature","armement","armoire","armure","arpenter","arracher","arriver","arroser","arsenic","artériel","article","aspect","asphalte","aspirer","assaut","asservir","assiette","associer","assurer","asticot","astre","astuce","atelier","atome","atrium","atroce","attaque","attentif","attirer","attraper","aubaine","auberge","audace","audible","augurer","aurore","automne","autruche","avaler","avancer","avarice","avenir","averse","aveugle","aviateur","avide","avion","aviser","avoine","avouer","avril","axial","axiome","badge","bafouer","bagage","baguette","baignade","balancer","balcon","baleine","balisage","bambin","bancaire","bandage","banlieue","bannière","banquier","barbier","baril","baron","barque","barrage","bassin","bastion","bataille","bateau","batterie","baudrier","bavarder","belette","bélier","belote","bénéfice","berceau","berger","berline","bermuda","besace","besogne","bétail","beurre","biberon","bicycle","bidule","bijou","bilan","bilingue","billard","binaire","biologie","biopsie","biotype","biscuit","bison","bistouri","bitume","bizarre","blafard","blague","blanchir","blessant","blinder","blond","bloquer","blouson","bobard","bobine","boire","boiser","bolide","bonbon","bondir","bonheur","bonifier","bonus","bordure","borne","botte","boucle","boueux","bougie","boulon","bouquin","bourse","boussole","boutique","boxeur","branche","brasier","brave","brebis","brèche","breuvage","bricoler","brigade","brillant","brioche","brique","brochure","broder","bronzer","brousse","broyeur","brume","brusque","brutal","bruyant","buffle","buisson","bulletin","bureau","burin","bustier","butiner","butoir","buvable","buvette","cabanon","cabine","cachette","cadeau","cadre","caféine","caillou","caisson","calculer","calepin","calibre","calmer","calomnie","calvaire","camarade","caméra","camion","campagne","canal","caneton","canon","cantine","canular","capable","caporal","caprice","capsule","capter","capuche","carabine","carbone","caresser","caribou","carnage","carotte","carreau","carton","cascade","casier","casque","cassure","causer","caution","cavalier","caverne","caviar","cédille","ceinture","céleste","cellule","cendrier","censurer","central","cercle","cérébral","cerise","cerner","cerveau","cesser","chagrin","chaise","chaleur","chambre","chance","chapitre","charbon","chasseur","chaton","chausson","chavirer","chemise","chenille","chéquier","chercher","cheval","chien","chiffre","chignon","chimère","chiot","chlorure","chocolat","choisir","chose","chouette","chrome","chute","cigare","cigogne","cimenter","cinéma","cintrer","circuler","cirer","cirque","citerne","citoyen","citron","civil","clairon","clameur","claquer","classe","clavier","client","cligner","climat","clivage","cloche","clonage","cloporte","cobalt","cobra","cocasse","cocotier","coder","codifier","coffre","cogner","cohésion","coiffer","coincer","colère","colibri","colline","colmater","colonel","combat","comédie","commande","compact","concert","conduire","confier","congeler","connoter","consonne","contact","convexe","copain","copie","corail","corbeau","cordage","corniche","corpus","correct","cortège","cosmique","costume","coton","coude","coupure","courage","couteau","couvrir","coyote","crabe","crainte","cravate","crayon","créature","créditer","crémeux","creuser","crevette","cribler","crier","cristal","critère","croire","croquer","crotale","crucial","cruel","crypter","cubique","cueillir","cuillère","cuisine","cuivre","culminer","cultiver","cumuler","cupide","curatif","curseur","cyanure","cycle","cylindre","cynique","daigner","damier","danger","danseur","dauphin","débattre","débiter","déborder","débrider","débutant","décaler","décembre","déchirer","décider","déclarer","décorer","décrire","décupler","dédale","déductif","déesse","défensif","défiler","défrayer","dégager","dégivrer","déglutir","dégrafer","déjeuner","délice","déloger","demander","demeurer","démolir","dénicher","dénouer","dentelle","dénuder","départ","dépenser","déphaser","déplacer","déposer","déranger","dérober","désastre","descente","désert","désigner","désobéir","dessiner","destrier","détacher","détester","détourer","détresse","devancer","devenir","deviner","devoir","diable","dialogue","diamant","dicter","différer","digérer","digital","digne","diluer","dimanche","diminuer","dioxyde","directif","diriger","discuter","disposer","dissiper","distance","divertir","diviser","docile","docteur","dogme","doigt","domaine","domicile","dompter","donateur","donjon","donner","dopamine","dortoir","dorure","dosage","doseur","dossier","dotation","douanier","double","douceur","douter","doyen","dragon","draper","dresser","dribbler","droiture","duperie","duplexe","durable","durcir","dynastie","éblouir","écarter","écharpe","échelle","éclairer","éclipse","éclore","écluse","école","économie","écorce","écouter","écraser","écrémer","écrivain","écrou","écume","écureuil","édifier","éduquer","effacer","effectif","effigie","effort","effrayer","effusion","égaliser","égarer","éjecter","élaborer","élargir","électron","élégant","éléphant","élève","éligible","élitisme","éloge","élucider","éluder","emballer","embellir","embryon","émeraude","émission","emmener","émotion","émouvoir","empereur","employer","emporter","emprise","émulsion","encadrer","enchère","enclave","encoche","endiguer","endosser","endroit","enduire","énergie","enfance","enfermer","enfouir","engager","engin","englober","énigme","enjamber","enjeu","enlever","ennemi","ennuyeux","enrichir","enrobage","enseigne","entasser","entendre","entier","entourer","entraver","énumérer","envahir","enviable","envoyer","enzyme","éolien","épaissir","épargne","épatant","épaule","épicerie","épidémie","épier","épilogue","épine","épisode","épitaphe","époque","épreuve","éprouver","épuisant","équerre","équipe","ériger","érosion","erreur","éruption","escalier","espadon","espèce","espiègle","espoir","esprit","esquiver","essayer","essence","essieu","essorer","estime","estomac","estrade","étagère","étaler","étanche","étatique","éteindre","étendoir","éternel","éthanol","éthique","ethnie","étirer","étoffer","étoile","étonnant","étourdir","étrange","étroit","étude","euphorie","évaluer","évasion","éventail","évidence","éviter","évolutif","évoquer","exact","exagérer","exaucer","exceller","excitant","exclusif","excuse","exécuter","exemple","exercer","exhaler","exhorter","exigence","exiler","exister","exotique","expédier","explorer","exposer","exprimer","exquis","extensif","extraire","exulter","fable","fabuleux","facette","facile","facture","faiblir","falaise","fameux","famille","farceur","farfelu","farine","farouche","fasciner","fatal","fatigue","faucon","fautif","faveur","favori","fébrile","féconder","fédérer","félin","femme","fémur","fendoir","féodal","fermer","féroce","ferveur","festival","feuille","feutre","février","fiasco","ficeler","fictif","fidèle","figure","filature","filetage","filière","filleul","filmer","filou","filtrer","financer","finir","fiole","firme","fissure","fixer","flairer","flamme","flasque","flatteur","fléau","flèche","fleur","flexion","flocon","flore","fluctuer","fluide","fluvial","folie","fonderie","fongible","fontaine","forcer","forgeron","formuler","fortune","fossile","foudre","fougère","fouiller","foulure","fourmi","fragile","fraise","franchir","frapper","frayeur","frégate","freiner","frelon","frémir","frénésie","frère","friable","friction","frisson","frivole","froid","fromage","frontal","frotter","fruit","fugitif","fuite","fureur","furieux","furtif","fusion","futur","gagner","galaxie","galerie","gambader","garantir","gardien","garnir","garrigue","gazelle","gazon","géant","gélatine","gélule","gendarme","général","génie","genou","gentil","géologie","géomètre","géranium","germe","gestuel","geyser","gibier","gicler","girafe","givre","glace","glaive","glisser","globe","gloire","glorieux","golfeur","gomme","gonfler","gorge","gorille","goudron","gouffre","goulot","goupille","gourmand","goutte","graduel","graffiti","graine","grand","grappin","gratuit","gravir","grenat","griffure","griller","grimper","grogner","gronder","grotte","groupe","gruger","grutier","gruyère","guépard","guerrier","guide","guimauve","guitare","gustatif","gymnaste","gyrostat","habitude","hachoir","halte","hameau","hangar","hanneton","haricot","harmonie","harpon","hasard","hélium","hématome","herbe","hérisson","hermine","héron","hésiter","heureux","hiberner","hibou","hilarant","histoire","hiver","homard","hommage","homogène","honneur","honorer","honteux","horde","horizon","horloge","hormone","horrible","houleux","housse","hublot","huileux","humain","humble","humide","humour","hurler","hydromel","hygiène","hymne","hypnose","idylle","ignorer","iguane","illicite","illusion","image","imbiber","imiter","immense","immobile","immuable","impact","impérial","implorer","imposer","imprimer","imputer","incarner","incendie","incident","incliner","incolore","indexer","indice","inductif","inédit","ineptie","inexact","infini","infliger","informer","infusion","ingérer","inhaler","inhiber","injecter","injure","innocent","inoculer","inonder","inscrire","insecte","insigne","insolite","inspirer","instinct","insulter","intact","intense","intime","intrigue","intuitif","inutile","invasion","inventer","inviter","invoquer","ironique","irradier","irréel","irriter","isoler","ivoire","ivresse","jaguar","jaillir","jambe","janvier","jardin","jauger","jaune","javelot","jetable","jeton","jeudi","jeunesse","joindre","joncher","jongler","joueur","jouissif","journal","jovial","joyau","joyeux","jubiler","jugement","junior","jupon","juriste","justice","juteux","juvénile","kayak","kimono","kiosque","label","labial","labourer","lacérer","lactose","lagune","laine","laisser","laitier","lambeau","lamelle","lampe","lanceur","langage","lanterne","lapin","largeur","larme","laurier","lavabo","lavoir","lecture","légal","léger","légume","lessive","lettre","levier","lexique","lézard","liasse","libérer","libre","licence","licorne","liège","lièvre","ligature","ligoter","ligue","limer","limite","limonade","limpide","linéaire","lingot","lionceau","liquide","lisière","lister","lithium","litige","littoral","livreur","logique","lointain","loisir","lombric","loterie","louer","lourd","loutre","louve","loyal","lubie","lucide","lucratif","lueur","lugubre","luisant","lumière","lunaire","lundi","luron","lutter","luxueux","machine","magasin","magenta","magique","maigre","maillon","maintien","mairie","maison","majorer","malaxer","maléfice","malheur","malice","mallette","mammouth","mandater","maniable","manquant","manteau","manuel","marathon","marbre","marchand","mardi","maritime","marqueur","marron","marteler","mascotte","massif","matériel","matière","matraque","maudire","maussade","mauve","maximal","méchant","méconnu","médaille","médecin","méditer","méduse","meilleur","mélange","mélodie","membre","mémoire","menacer","mener","menhir","mensonge","mentor","mercredi","mérite","merle","messager","mesure","métal","météore","méthode","métier","meuble","miauler","microbe","miette","mignon","migrer","milieu","million","mimique","mince","minéral","minimal","minorer","minute","miracle","miroiter","missile","mixte","mobile","moderne","moelleux","mondial","moniteur","monnaie","monotone","monstre","montagne","monument","moqueur","morceau","morsure","mortier","moteur","motif","mouche","moufle","moulin","mousson","mouton","mouvant","multiple","munition","muraille","murène","murmure","muscle","muséum","musicien","mutation","muter","mutuel","myriade","myrtille","mystère","mythique","nageur","nappe","narquois","narrer","natation","nation","nature","naufrage","nautique","navire","nébuleux","nectar","néfaste","négation","négliger","négocier","neige","nerveux","nettoyer","neurone","neutron","neveu","niche","nickel","nitrate","niveau","noble","nocif","nocturne","noirceur","noisette","nomade","nombreux","nommer","normatif","notable","notifier","notoire","nourrir","nouveau","novateur","novembre","novice","nuage","nuancer","nuire","nuisible","numéro","nuptial","nuque","nutritif","obéir","objectif","obliger","obscur","observer","obstacle","obtenir","obturer","occasion","occuper","océan","octobre","octroyer","octupler","oculaire","odeur","odorant","offenser","officier","offrir","ogive","oiseau","oisillon","olfactif","olivier","ombrage","omettre","onctueux","onduler","onéreux","onirique","opale","opaque","opérer","opinion","opportun","opprimer","opter","optique","orageux","orange","orbite","ordonner","oreille","organe","orgueil","orifice","ornement","orque","ortie","osciller","osmose","ossature","otarie","ouragan","ourson","outil","outrager","ouvrage","ovation","oxyde","oxygène","ozone","paisible","palace","palmarès","palourde","palper","panache","panda","pangolin","paniquer","panneau","panorama","pantalon","papaye","papier","papoter","papyrus","paradoxe","parcelle","paresse","parfumer","parler","parole","parrain","parsemer","partager","parure","parvenir","passion","pastèque","paternel","patience","patron","pavillon","pavoiser","payer","paysage","peigne","peintre","pelage","pélican","pelle","pelouse","peluche","pendule","pénétrer","pénible","pensif","pénurie","pépite","péplum","perdrix","perforer","période","permuter","perplexe","persil","perte","peser","pétale","petit","pétrir","peuple","pharaon","phobie","phoque","photon","phrase","physique","piano","pictural","pièce","pierre","pieuvre","pilote","pinceau","pipette","piquer","pirogue","piscine","piston","pivoter","pixel","pizza","placard","plafond","plaisir","planer","plaque","plastron","plateau","pleurer","plexus","pliage","plomb","plonger","pluie","plumage","pochette","poésie","poète","pointe","poirier","poisson","poivre","polaire","policier","pollen","polygone","pommade","pompier","ponctuel","pondérer","poney","portique","position","posséder","posture","potager","poteau","potion","pouce","poulain","poumon","pourpre","poussin","pouvoir","prairie","pratique","précieux","prédire","préfixe","prélude","prénom","présence","prétexte","prévoir","primitif","prince","prison","priver","problème","procéder","prodige","profond","progrès","proie","projeter","prologue","promener","propre","prospère","protéger","prouesse","proverbe","prudence","pruneau","psychose","public","puceron","puiser","pulpe","pulsar","punaise","punitif","pupitre","purifier","puzzle","pyramide","quasar","querelle","question","quiétude","quitter","quotient","racine","raconter","radieux","ragondin","raideur","raisin","ralentir","rallonge","ramasser","rapide","rasage","ratisser","ravager","ravin","rayonner","réactif","réagir","réaliser","réanimer","recevoir","réciter","réclamer","récolter","recruter","reculer","recycler","rédiger","redouter","refaire","réflexe","réformer","refrain","refuge","régalien","région","réglage","régulier","réitérer","rejeter","rejouer","relatif","relever","relief","remarque","remède","remise","remonter","remplir","remuer","renard","renfort","renifler","renoncer","rentrer","renvoi","replier","reporter","reprise","reptile","requin","réserve","résineux","résoudre","respect","rester","résultat","rétablir","retenir","réticule","retomber","retracer","réunion","réussir","revanche","revivre","révolte","révulsif","richesse","rideau","rieur","rigide","rigoler","rincer","riposter","risible","risque","rituel","rival","rivière","rocheux","romance","rompre","ronce","rondin","roseau","rosier","rotatif","rotor","rotule","rouge","rouille","rouleau","routine","royaume","ruban","rubis","ruche","ruelle","rugueux","ruiner","ruisseau","ruser","rustique","rythme","sabler","saboter","sabre","sacoche","safari","sagesse","saisir","salade","salive","salon","saluer","samedi","sanction","sanglier","sarcasme","sardine","saturer","saugrenu","saumon","sauter","sauvage","savant","savonner","scalpel","scandale","scélérat","scénario","sceptre","schéma","science","scinder","score","scrutin","sculpter","séance","sécable","sécher","secouer","sécréter","sédatif","séduire","seigneur","séjour","sélectif","semaine","sembler","semence","séminal","sénateur","sensible","sentence","séparer","séquence","serein","sergent","sérieux","serrure","sérum","service","sésame","sévir","sevrage","sextuple","sidéral","siècle","siéger","siffler","sigle","signal","silence","silicium","simple","sincère","sinistre","siphon","sirop","sismique","situer","skier","social","socle","sodium","soigneux","soldat","soleil","solitude","soluble","sombre","sommeil","somnoler","sonde","songeur","sonnette","sonore","sorcier","sortir","sosie","sottise","soucieux","soudure","souffle","soulever","soupape","source","soutirer","souvenir","spacieux","spatial","spécial","sphère","spiral","stable","station","sternum","stimulus","stipuler","strict","studieux","stupeur","styliste","sublime","substrat","subtil","subvenir","succès","sucre","suffixe","suggérer","suiveur","sulfate","superbe","supplier","surface","suricate","surmener","surprise","sursaut","survie","suspect","syllabe","symbole","symétrie","synapse","syntaxe","système","tabac","tablier","tactile","tailler","talent","talisman","talonner","tambour","tamiser","tangible","tapis","taquiner","tarder","tarif","tartine","tasse","tatami","tatouage","taupe","taureau","taxer","témoin","temporel","tenaille","tendre","teneur","tenir","tension","terminer","terne","terrible","tétine","texte","thème","théorie","thérapie","thorax","tibia","tiède","timide","tirelire","tiroir","tissu","titane","titre","tituber","toboggan","tolérant","tomate","tonique","tonneau","toponyme","torche","tordre","tornade","torpille","torrent","torse","tortue","totem","toucher","tournage","tousser","toxine","traction","trafic","tragique","trahir","train","trancher","travail","trèfle","tremper","trésor","treuil","triage","tribunal","tricoter","trilogie","triomphe","tripler","triturer","trivial","trombone","tronc","tropical","troupeau","tuile","tulipe","tumulte","tunnel","turbine","tuteur","tutoyer","tuyau","tympan","typhon","typique","tyran","ubuesque","ultime","ultrason","unanime","unifier","union","unique","unitaire","univers","uranium","urbain","urticant","usage","usine","usuel","usure","utile","utopie","vacarme","vaccin","vagabond","vague","vaillant","vaincre","vaisseau","valable","valise","vallon","valve","vampire","vanille","vapeur","varier","vaseux","vassal","vaste","vecteur","vedette","végétal","véhicule","veinard","véloce","vendredi","vénérer","venger","venimeux","ventouse","verdure","vérin","vernir","verrou","verser","vertu","veston","vétéran","vétuste","vexant","vexer","viaduc","viande","victoire","vidange","vidéo","vignette","vigueur","vilain","village","vinaigre","violon","vipère","virement","virtuose","virus","visage","viseur","vision","visqueux","visuel","vital","vitesse","viticole","vitrine","vivace","vivipare","vocation","voguer","voile","voisin","voiture","volaille","volcan","voltiger","volume","vorace","vortex","voter","vouloir","voyage","voyelle","wagon","xénon","yacht","zèbre","zénith","zeste","zoologie"]},function(e,t,i){e.exports=["abaco","abbaglio","abbinato","abete","abisso","abolire","abrasivo","abrogato","accadere","accenno","accusato","acetone","achille","acido","acqua","acre","acrilico","acrobata","acuto","adagio","addebito","addome","adeguato","aderire","adipe","adottare","adulare","affabile","affetto","affisso","affranto","aforisma","afoso","africano","agave","agente","agevole","aggancio","agire","agitare","agonismo","agricolo","agrumeto","aguzzo","alabarda","alato","albatro","alberato","albo","albume","alce","alcolico","alettone","alfa","algebra","aliante","alibi","alimento","allagato","allegro","allievo","allodola","allusivo","almeno","alogeno","alpaca","alpestre","altalena","alterno","alticcio","altrove","alunno","alveolo","alzare","amalgama","amanita","amarena","ambito","ambrato","ameba","america","ametista","amico","ammasso","ammenda","ammirare","ammonito","amore","ampio","ampliare","amuleto","anacardo","anagrafe","analista","anarchia","anatra","anca","ancella","ancora","andare","andrea","anello","angelo","angolare","angusto","anima","annegare","annidato","anno","annuncio","anonimo","anticipo","anzi","apatico","apertura","apode","apparire","appetito","appoggio","approdo","appunto","aprile","arabica","arachide","aragosta","araldica","arancio","aratura","arazzo","arbitro","archivio","ardito","arenile","argento","argine","arguto","aria","armonia","arnese","arredato","arringa","arrosto","arsenico","arso","artefice","arzillo","asciutto","ascolto","asepsi","asettico","asfalto","asino","asola","aspirato","aspro","assaggio","asse","assoluto","assurdo","asta","astenuto","astice","astratto","atavico","ateismo","atomico","atono","attesa","attivare","attorno","attrito","attuale","ausilio","austria","autista","autonomo","autunno","avanzato","avere","avvenire","avviso","avvolgere","azione","azoto","azzimo","azzurro","babele","baccano","bacino","baco","badessa","badilata","bagnato","baita","balcone","baldo","balena","ballata","balzano","bambino","bandire","baraonda","barbaro","barca","baritono","barlume","barocco","basilico","basso","batosta","battuto","baule","bava","bavosa","becco","beffa","belgio","belva","benda","benevole","benigno","benzina","bere","berlina","beta","bibita","bici","bidone","bifido","biga","bilancia","bimbo","binocolo","biologo","bipede","bipolare","birbante","birra","biscotto","bisesto","bisnonno","bisonte","bisturi","bizzarro","blando","blatta","bollito","bonifico","bordo","bosco","botanico","bottino","bozzolo","braccio","bradipo","brama","branca","bravura","bretella","brevetto","brezza","briglia","brillante","brindare","broccolo","brodo","bronzina","brullo","bruno","bubbone","buca","budino","buffone","buio","bulbo","buono","burlone","burrasca","bussola","busta","cadetto","caduco","calamaro","calcolo","calesse","calibro","calmo","caloria","cambusa","camerata","camicia","cammino","camola","campale","canapa","candela","cane","canino","canotto","cantina","capace","capello","capitolo","capogiro","cappero","capra","capsula","carapace","carcassa","cardo","carisma","carovana","carretto","cartolina","casaccio","cascata","caserma","caso","cassone","castello","casuale","catasta","catena","catrame","cauto","cavillo","cedibile","cedrata","cefalo","celebre","cellulare","cena","cenone","centesimo","ceramica","cercare","certo","cerume","cervello","cesoia","cespo","ceto","chela","chiaro","chicca","chiedere","chimera","china","chirurgo","chitarra","ciao","ciclismo","cifrare","cigno","cilindro","ciottolo","circa","cirrosi","citrico","cittadino","ciuffo","civetta","civile","classico","clinica","cloro","cocco","codardo","codice","coerente","cognome","collare","colmato","colore","colposo","coltivato","colza","coma","cometa","commando","comodo","computer","comune","conciso","condurre","conferma","congelare","coniuge","connesso","conoscere","consumo","continuo","convegno","coperto","copione","coppia","copricapo","corazza","cordata","coricato","cornice","corolla","corpo","corredo","corsia","cortese","cosmico","costante","cottura","covato","cratere","cravatta","creato","credere","cremoso","crescita","creta","criceto","crinale","crisi","critico","croce","cronaca","crostata","cruciale","crusca","cucire","cuculo","cugino","cullato","cupola","curatore","cursore","curvo","cuscino","custode","dado","daino","dalmata","damerino","daniela","dannoso","danzare","datato","davanti","davvero","debutto","decennio","deciso","declino","decollo","decreto","dedicato","definito","deforme","degno","delegare","delfino","delirio","delta","demenza","denotato","dentro","deposito","derapata","derivare","deroga","descritto","deserto","desiderio","desumere","detersivo","devoto","diametro","dicembre","diedro","difeso","diffuso","digerire","digitale","diluvio","dinamico","dinnanzi","dipinto","diploma","dipolo","diradare","dire","dirotto","dirupo","disagio","discreto","disfare","disgelo","disposto","distanza","disumano","dito","divano","divelto","dividere","divorato","doblone","docente","doganale","dogma","dolce","domato","domenica","dominare","dondolo","dono","dormire","dote","dottore","dovuto","dozzina","drago","druido","dubbio","dubitare","ducale","duna","duomo","duplice","duraturo","ebano","eccesso","ecco","eclissi","economia","edera","edicola","edile","editoria","educare","egemonia","egli","egoismo","egregio","elaborato","elargire","elegante","elencato","eletto","elevare","elfico","elica","elmo","elsa","eluso","emanato","emblema","emesso","emiro","emotivo","emozione","empirico","emulo","endemico","enduro","energia","enfasi","enoteca","entrare","enzima","epatite","epilogo","episodio","epocale","eppure","equatore","erario","erba","erboso","erede","eremita","erigere","ermetico","eroe","erosivo","errante","esagono","esame","esanime","esaudire","esca","esempio","esercito","esibito","esigente","esistere","esito","esofago","esortato","esoso","espanso","espresso","essenza","esso","esteso","estimare","estonia","estroso","esultare","etilico","etnico","etrusco","etto","euclideo","europa","evaso","evidenza","evitato","evoluto","evviva","fabbrica","faccenda","fachiro","falco","famiglia","fanale","fanfara","fango","fantasma","fare","farfalla","farinoso","farmaco","fascia","fastoso","fasullo","faticare","fato","favoloso","febbre","fecola","fede","fegato","felpa","feltro","femmina","fendere","fenomeno","fermento","ferro","fertile","fessura","festivo","fetta","feudo","fiaba","fiducia","fifa","figurato","filo","finanza","finestra","finire","fiore","fiscale","fisico","fiume","flacone","flamenco","flebo","flemma","florido","fluente","fluoro","fobico","focaccia","focoso","foderato","foglio","folata","folclore","folgore","fondente","fonetico","fonia","fontana","forbito","forchetta","foresta","formica","fornaio","foro","fortezza","forzare","fosfato","fosso","fracasso","frana","frassino","fratello","freccetta","frenata","fresco","frigo","frollino","fronde","frugale","frutta","fucilata","fucsia","fuggente","fulmine","fulvo","fumante","fumetto","fumoso","fune","funzione","fuoco","furbo","furgone","furore","fuso","futile","gabbiano","gaffe","galateo","gallina","galoppo","gambero","gamma","garanzia","garbo","garofano","garzone","gasdotto","gasolio","gastrico","gatto","gaudio","gazebo","gazzella","geco","gelatina","gelso","gemello","gemmato","gene","genitore","gennaio","genotipo","gergo","ghepardo","ghiaccio","ghisa","giallo","gilda","ginepro","giocare","gioiello","giorno","giove","girato","girone","gittata","giudizio","giurato","giusto","globulo","glutine","gnomo","gobba","golf","gomito","gommone","gonfio","gonna","governo","gracile","grado","grafico","grammo","grande","grattare","gravoso","grazia","greca","gregge","grifone","grigio","grinza","grotta","gruppo","guadagno","guaio","guanto","guardare","gufo","guidare","ibernato","icona","identico","idillio","idolo","idra","idrico","idrogeno","igiene","ignaro","ignorato","ilare","illeso","illogico","illudere","imballo","imbevuto","imbocco","imbuto","immane","immerso","immolato","impacco","impeto","impiego","importo","impronta","inalare","inarcare","inattivo","incanto","incendio","inchino","incisivo","incluso","incontro","incrocio","incubo","indagine","india","indole","inedito","infatti","infilare","inflitto","ingaggio","ingegno","inglese","ingordo","ingrosso","innesco","inodore","inoltrare","inondato","insano","insetto","insieme","insonnia","insulina","intasato","intero","intonaco","intuito","inumidire","invalido","invece","invito","iperbole","ipnotico","ipotesi","ippica","iride","irlanda","ironico","irrigato","irrorare","isolato","isotopo","isterico","istituto","istrice","italia","iterare","labbro","labirinto","lacca","lacerato","lacrima","lacuna","laddove","lago","lampo","lancetta","lanterna","lardoso","larga","laringe","lastra","latenza","latino","lattuga","lavagna","lavoro","legale","leggero","lembo","lentezza","lenza","leone","lepre","lesivo","lessato","lesto","letterale","leva","levigato","libero","lido","lievito","lilla","limatura","limitare","limpido","lineare","lingua","liquido","lira","lirica","lisca","lite","litigio","livrea","locanda","lode","logica","lombare","londra","longevo","loquace","lorenzo","loto","lotteria","luce","lucidato","lumaca","luminoso","lungo","lupo","luppolo","lusinga","lusso","lutto","macabro","macchina","macero","macinato","madama","magico","maglia","magnete","magro","maiolica","malafede","malgrado","malinteso","malsano","malto","malumore","mana","mancia","mandorla","mangiare","manifesto","mannaro","manovra","mansarda","mantide","manubrio","mappa","maratona","marcire","maretta","marmo","marsupio","maschera","massaia","mastino","materasso","matricola","mattone","maturo","mazurca","meandro","meccanico","mecenate","medesimo","meditare","mega","melassa","melis","melodia","meninge","meno","mensola","mercurio","merenda","merlo","meschino","mese","messere","mestolo","metallo","metodo","mettere","miagolare","mica","micelio","michele","microbo","midollo","miele","migliore","milano","milite","mimosa","minerale","mini","minore","mirino","mirtillo","miscela","missiva","misto","misurare","mitezza","mitigare","mitra","mittente","mnemonico","modello","modifica","modulo","mogano","mogio","mole","molosso","monastero","monco","mondina","monetario","monile","monotono","monsone","montato","monviso","mora","mordere","morsicato","mostro","motivato","motosega","motto","movenza","movimento","mozzo","mucca","mucosa","muffa","mughetto","mugnaio","mulatto","mulinello","multiplo","mummia","munto","muovere","murale","musa","muscolo","musica","mutevole","muto","nababbo","nafta","nanometro","narciso","narice","narrato","nascere","nastrare","naturale","nautica","naviglio","nebulosa","necrosi","negativo","negozio","nemmeno","neofita","neretto","nervo","nessuno","nettuno","neutrale","neve","nevrotico","nicchia","ninfa","nitido","nobile","nocivo","nodo","nome","nomina","nordico","normale","norvegese","nostrano","notare","notizia","notturno","novella","nucleo","nulla","numero","nuovo","nutrire","nuvola","nuziale","oasi","obbedire","obbligo","obelisco","oblio","obolo","obsoleto","occasione","occhio","occidente","occorrere","occultare","ocra","oculato","odierno","odorare","offerta","offrire","offuscato","oggetto","oggi","ognuno","olandese","olfatto","oliato","oliva","ologramma","oltre","omaggio","ombelico","ombra","omega","omissione","ondoso","onere","onice","onnivoro","onorevole","onta","operato","opinione","opposto","oracolo","orafo","ordine","orecchino","orefice","orfano","organico","origine","orizzonte","orma","ormeggio","ornativo","orologio","orrendo","orribile","ortensia","ortica","orzata","orzo","osare","oscurare","osmosi","ospedale","ospite","ossa","ossidare","ostacolo","oste","otite","otre","ottagono","ottimo","ottobre","ovale","ovest","ovino","oviparo","ovocito","ovunque","ovviare","ozio","pacchetto","pace","pacifico","padella","padrone","paese","paga","pagina","palazzina","palesare","pallido","palo","palude","pandoro","pannello","paolo","paonazzo","paprica","parabola","parcella","parere","pargolo","pari","parlato","parola","partire","parvenza","parziale","passivo","pasticca","patacca","patologia","pattume","pavone","peccato","pedalare","pedonale","peggio","peloso","penare","pendice","penisola","pennuto","penombra","pensare","pentola","pepe","pepita","perbene","percorso","perdonato","perforare","pergamena","periodo","permesso","perno","perplesso","persuaso","pertugio","pervaso","pesatore","pesista","peso","pestifero","petalo","pettine","petulante","pezzo","piacere","pianta","piattino","piccino","picozza","piega","pietra","piffero","pigiama","pigolio","pigro","pila","pilifero","pillola","pilota","pimpante","pineta","pinna","pinolo","pioggia","piombo","piramide","piretico","pirite","pirolisi","pitone","pizzico","placebo","planare","plasma","platano","plenario","pochezza","poderoso","podismo","poesia","poggiare","polenta","poligono","pollice","polmonite","polpetta","polso","poltrona","polvere","pomice","pomodoro","ponte","popoloso","porfido","poroso","porpora","porre","portata","posa","positivo","possesso","postulato","potassio","potere","pranzo","prassi","pratica","precluso","predica","prefisso","pregiato","prelievo","premere","prenotare","preparato","presenza","pretesto","prevalso","prima","principe","privato","problema","procura","produrre","profumo","progetto","prolunga","promessa","pronome","proposta","proroga","proteso","prova","prudente","prugna","prurito","psiche","pubblico","pudica","pugilato","pugno","pulce","pulito","pulsante","puntare","pupazzo","pupilla","puro","quadro","qualcosa","quasi","querela","quota","raccolto","raddoppio","radicale","radunato","raffica","ragazzo","ragione","ragno","ramarro","ramingo","ramo","randagio","rantolare","rapato","rapina","rappreso","rasatura","raschiato","rasente","rassegna","rastrello","rata","ravveduto","reale","recepire","recinto","recluta","recondito","recupero","reddito","redimere","regalato","registro","regola","regresso","relazione","remare","remoto","renna","replica","reprimere","reputare","resa","residente","responso","restauro","rete","retina","retorica","rettifica","revocato","riassunto","ribadire","ribelle","ribrezzo","ricarica","ricco","ricevere","riciclato","ricordo","ricreduto","ridicolo","ridurre","rifasare","riflesso","riforma","rifugio","rigare","rigettato","righello","rilassato","rilevato","rimanere","rimbalzo","rimedio","rimorchio","rinascita","rincaro","rinforzo","rinnovo","rinomato","rinsavito","rintocco","rinuncia","rinvenire","riparato","ripetuto","ripieno","riportare","ripresa","ripulire","risata","rischio","riserva","risibile","riso","rispetto","ristoro","risultato","risvolto","ritardo","ritegno","ritmico","ritrovo","riunione","riva","riverso","rivincita","rivolto","rizoma","roba","robotico","robusto","roccia","roco","rodaggio","rodere","roditore","rogito","rollio","romantico","rompere","ronzio","rosolare","rospo","rotante","rotondo","rotula","rovescio","rubizzo","rubrica","ruga","rullino","rumine","rumoroso","ruolo","rupe","russare","rustico","sabato","sabbiare","sabotato","sagoma","salasso","saldatura","salgemma","salivare","salmone","salone","saltare","saluto","salvo","sapere","sapido","saporito","saraceno","sarcasmo","sarto","sassoso","satellite","satira","satollo","saturno","savana","savio","saziato","sbadiglio","sbalzo","sbancato","sbarra","sbattere","sbavare","sbendare","sbirciare","sbloccato","sbocciato","sbrinare","sbruffone","sbuffare","scabroso","scadenza","scala","scambiare","scandalo","scapola","scarso","scatenare","scavato","scelto","scenico","scettro","scheda","schiena","sciarpa","scienza","scindere","scippo","sciroppo","scivolo","sclerare","scodella","scolpito","scomparto","sconforto","scoprire","scorta","scossone","scozzese","scriba","scrollare","scrutinio","scuderia","scultore","scuola","scuro","scusare","sdebitare","sdoganare","seccatura","secondo","sedano","seggiola","segnalato","segregato","seguito","selciato","selettivo","sella","selvaggio","semaforo","sembrare","seme","seminato","sempre","senso","sentire","sepolto","sequenza","serata","serbato","sereno","serio","serpente","serraglio","servire","sestina","setola","settimana","sfacelo","sfaldare","sfamato","sfarzoso","sfaticato","sfera","sfida","sfilato","sfinge","sfocato","sfoderare","sfogo","sfoltire","sforzato","sfratto","sfruttato","sfuggito","sfumare","sfuso","sgabello","sgarbato","sgonfiare","sgorbio","sgrassato","sguardo","sibilo","siccome","sierra","sigla","signore","silenzio","sillaba","simbolo","simpatico","simulato","sinfonia","singolo","sinistro","sino","sintesi","sinusoide","sipario","sisma","sistole","situato","slitta","slogatura","sloveno","smarrito","smemorato","smentito","smeraldo","smilzo","smontare","smottato","smussato","snellire","snervato","snodo","sobbalzo","sobrio","soccorso","sociale","sodale","soffitto","sogno","soldato","solenne","solido","sollazzo","solo","solubile","solvente","somatico","somma","sonda","sonetto","sonnifero","sopire","soppeso","sopra","sorgere","sorpasso","sorriso","sorso","sorteggio","sorvolato","sospiro","sosta","sottile","spada","spalla","spargere","spatola","spavento","spazzola","specie","spedire","spegnere","spelatura","speranza","spessore","spettrale","spezzato","spia","spigoloso","spillato","spinoso","spirale","splendido","sportivo","sposo","spranga","sprecare","spronato","spruzzo","spuntino","squillo","sradicare","srotolato","stabile","stacco","staffa","stagnare","stampato","stantio","starnuto","stasera","statuto","stelo","steppa","sterzo","stiletto","stima","stirpe","stivale","stizzoso","stonato","storico","strappo","stregato","stridulo","strozzare","strutto","stuccare","stufo","stupendo","subentro","succoso","sudore","suggerito","sugo","sultano","suonare","superbo","supporto","surgelato","surrogato","sussurro","sutura","svagare","svedese","sveglio","svelare","svenuto","svezia","sviluppo","svista","svizzera","svolta","svuotare","tabacco","tabulato","tacciare","taciturno","tale","talismano","tampone","tannino","tara","tardivo","targato","tariffa","tarpare","tartaruga","tasto","tattico","taverna","tavolata","tazza","teca","tecnico","telefono","temerario","tempo","temuto","tendone","tenero","tensione","tentacolo","teorema","terme","terrazzo","terzetto","tesi","tesserato","testato","tetro","tettoia","tifare","tigella","timbro","tinto","tipico","tipografo","tiraggio","tiro","titanio","titolo","titubante","tizio","tizzone","toccare","tollerare","tolto","tombola","tomo","tonfo","tonsilla","topazio","topologia","toppa","torba","tornare","torrone","tortora","toscano","tossire","tostatura","totano","trabocco","trachea","trafila","tragedia","tralcio","tramonto","transito","trapano","trarre","trasloco","trattato","trave","treccia","tremolio","trespolo","tributo","tricheco","trifoglio","trillo","trincea","trio","tristezza","triturato","trivella","tromba","trono","troppo","trottola","trovare","truccato","tubatura","tuffato","tulipano","tumulto","tunisia","turbare","turchino","tuta","tutela","ubicato","uccello","uccisore","udire","uditivo","uffa","ufficio","uguale","ulisse","ultimato","umano","umile","umorismo","uncinetto","ungere","ungherese","unicorno","unificato","unisono","unitario","unte","uovo","upupa","uragano","urgenza","urlo","usanza","usato","uscito","usignolo","usuraio","utensile","utilizzo","utopia","vacante","vaccinato","vagabondo","vagliato","valanga","valgo","valico","valletta","valoroso","valutare","valvola","vampata","vangare","vanitoso","vano","vantaggio","vanvera","vapore","varano","varcato","variante","vasca","vedetta","vedova","veduto","vegetale","veicolo","velcro","velina","velluto","veloce","venato","vendemmia","vento","verace","verbale","vergogna","verifica","vero","verruca","verticale","vescica","vessillo","vestale","veterano","vetrina","vetusto","viandante","vibrante","vicenda","vichingo","vicinanza","vidimare","vigilia","vigneto","vigore","vile","villano","vimini","vincitore","viola","vipera","virgola","virologo","virulento","viscoso","visione","vispo","vissuto","visura","vita","vitello","vittima","vivanda","vivido","viziare","voce","voga","volatile","volere","volpe","voragine","vulcano","zampogna","zanna","zappato","zattera","zavorra","zefiro","zelante","zelo","zenzero","zerbino","zibetto","zinco","zircone","zitto","zolla","zotico","zucchero","zufolo","zulu","zuppa"]},function(e,t,i){e.exports=["あいこくしん","あいさつ","あいだ","あおぞら","あかちゃん","あきる","あけがた","あける","あこがれる","あさい","あさひ","あしあと","あじわう","あずかる","あずき","あそぶ","あたえる","あたためる","あたりまえ","あたる","あつい","あつかう","あっしゅく","あつまり","あつめる","あてな","あてはまる","あひる","あぶら","あぶる","あふれる","あまい","あまど","あまやかす","あまり","あみもの","あめりか","あやまる","あゆむ","あらいぐま","あらし","あらすじ","あらためる","あらゆる","あらわす","ありがとう","あわせる","あわてる","あんい","あんがい","あんこ","あんぜん","あんてい","あんない","あんまり","いいだす","いおん","いがい","いがく","いきおい","いきなり","いきもの","いきる","いくじ","いくぶん","いけばな","いけん","いこう","いこく","いこつ","いさましい","いさん","いしき","いじゅう","いじょう","いじわる","いずみ","いずれ","いせい","いせえび","いせかい","いせき","いぜん","いそうろう","いそがしい","いだい","いだく","いたずら","いたみ","いたりあ","いちおう","いちじ","いちど","いちば","いちぶ","いちりゅう","いつか","いっしゅん","いっせい","いっそう","いったん","いっち","いってい","いっぽう","いてざ","いてん","いどう","いとこ","いない","いなか","いねむり","いのち","いのる","いはつ","いばる","いはん","いびき","いひん","いふく","いへん","いほう","いみん","いもうと","いもたれ","いもり","いやがる","いやす","いよかん","いよく","いらい","いらすと","いりぐち","いりょう","いれい","いれもの","いれる","いろえんぴつ","いわい","いわう","いわかん","いわば","いわゆる","いんげんまめ","いんさつ","いんしょう","いんよう","うえき","うえる","うおざ","うがい","うかぶ","うかべる","うきわ","うくらいな","うくれれ","うけたまわる","うけつけ","うけとる","うけもつ","うける","うごかす","うごく","うこん","うさぎ","うしなう","うしろがみ","うすい","うすぎ","うすぐらい","うすめる","うせつ","うちあわせ","うちがわ","うちき","うちゅう","うっかり","うつくしい","うったえる","うつる","うどん","うなぎ","うなじ","うなずく","うなる","うねる","うのう","うぶげ","うぶごえ","うまれる","うめる","うもう","うやまう","うよく","うらがえす","うらぐち","うらない","うりあげ","うりきれ","うるさい","うれしい","うれゆき","うれる","うろこ","うわき","うわさ","うんこう","うんちん","うんてん","うんどう","えいえん","えいが","えいきょう","えいご","えいせい","えいぶん","えいよう","えいわ","えおり","えがお","えがく","えきたい","えくせる","えしゃく","えすて","えつらん","えのぐ","えほうまき","えほん","えまき","えもじ","えもの","えらい","えらぶ","えりあ","えんえん","えんかい","えんぎ","えんげき","えんしゅう","えんぜつ","えんそく","えんちょう","えんとつ","おいかける","おいこす","おいしい","おいつく","おうえん","おうさま","おうじ","おうせつ","おうたい","おうふく","おうべい","おうよう","おえる","おおい","おおう","おおどおり","おおや","おおよそ","おかえり","おかず","おがむ","おかわり","おぎなう","おきる","おくさま","おくじょう","おくりがな","おくる","おくれる","おこす","おこなう","おこる","おさえる","おさない","おさめる","おしいれ","おしえる","おじぎ","おじさん","おしゃれ","おそらく","おそわる","おたがい","おたく","おだやか","おちつく","おっと","おつり","おでかけ","おとしもの","おとなしい","おどり","おどろかす","おばさん","おまいり","おめでとう","おもいで","おもう","おもたい","おもちゃ","おやつ","おやゆび","およぼす","おらんだ","おろす","おんがく","おんけい","おんしゃ","おんせん","おんだん","おんちゅう","おんどけい","かあつ","かいが","がいき","がいけん","がいこう","かいさつ","かいしゃ","かいすいよく","かいぜん","かいぞうど","かいつう","かいてん","かいとう","かいふく","がいへき","かいほう","かいよう","がいらい","かいわ","かえる","かおり","かかえる","かがく","かがし","かがみ","かくご","かくとく","かざる","がぞう","かたい","かたち","がちょう","がっきゅう","がっこう","がっさん","がっしょう","かなざわし","かのう","がはく","かぶか","かほう","かほご","かまう","かまぼこ","かめれおん","かゆい","かようび","からい","かるい","かろう","かわく","かわら","がんか","かんけい","かんこう","かんしゃ","かんそう","かんたん","かんち","がんばる","きあい","きあつ","きいろ","ぎいん","きうい","きうん","きえる","きおう","きおく","きおち","きおん","きかい","きかく","きかんしゃ","ききて","きくばり","きくらげ","きけんせい","きこう","きこえる","きこく","きさい","きさく","きさま","きさらぎ","ぎじかがく","ぎしき","ぎじたいけん","ぎじにってい","ぎじゅつしゃ","きすう","きせい","きせき","きせつ","きそう","きぞく","きぞん","きたえる","きちょう","きつえん","ぎっちり","きつつき","きつね","きてい","きどう","きどく","きない","きなが","きなこ","きぬごし","きねん","きのう","きのした","きはく","きびしい","きひん","きふく","きぶん","きぼう","きほん","きまる","きみつ","きむずかしい","きめる","きもだめし","きもち","きもの","きゃく","きやく","ぎゅうにく","きよう","きょうりゅう","きらい","きらく","きりん","きれい","きれつ","きろく","ぎろん","きわめる","ぎんいろ","きんかくじ","きんじょ","きんようび","ぐあい","くいず","くうかん","くうき","くうぐん","くうこう","ぐうせい","くうそう","ぐうたら","くうふく","くうぼ","くかん","くきょう","くげん","ぐこう","くさい","くさき","くさばな","くさる","くしゃみ","くしょう","くすのき","くすりゆび","くせげ","くせん","ぐたいてき","くださる","くたびれる","くちこみ","くちさき","くつした","ぐっすり","くつろぐ","くとうてん","くどく","くなん","くねくね","くのう","くふう","くみあわせ","くみたてる","くめる","くやくしょ","くらす","くらべる","くるま","くれる","くろう","くわしい","ぐんかん","ぐんしょく","ぐんたい","ぐんて","けあな","けいかく","けいけん","けいこ","けいさつ","げいじゅつ","けいたい","げいのうじん","けいれき","けいろ","けおとす","けおりもの","げきか","げきげん","げきだん","げきちん","げきとつ","げきは","げきやく","げこう","げこくじょう","げざい","けさき","げざん","けしき","けしごむ","けしょう","げすと","けたば","けちゃっぷ","けちらす","けつあつ","けつい","けつえき","けっこん","けつじょ","けっせき","けってい","けつまつ","げつようび","げつれい","けつろん","げどく","けとばす","けとる","けなげ","けなす","けなみ","けぬき","げねつ","けねん","けはい","げひん","けぶかい","げぼく","けまり","けみかる","けむし","けむり","けもの","けらい","けろけろ","けわしい","けんい","けんえつ","けんお","けんか","げんき","けんげん","けんこう","けんさく","けんしゅう","けんすう","げんそう","けんちく","けんてい","けんとう","けんない","けんにん","げんぶつ","けんま","けんみん","けんめい","けんらん","けんり","こあくま","こいぬ","こいびと","ごうい","こうえん","こうおん","こうかん","ごうきゅう","ごうけい","こうこう","こうさい","こうじ","こうすい","ごうせい","こうそく","こうたい","こうちゃ","こうつう","こうてい","こうどう","こうない","こうはい","ごうほう","ごうまん","こうもく","こうりつ","こえる","こおり","ごかい","ごがつ","ごかん","こくご","こくさい","こくとう","こくない","こくはく","こぐま","こけい","こける","ここのか","こころ","こさめ","こしつ","こすう","こせい","こせき","こぜん","こそだて","こたい","こたえる","こたつ","こちょう","こっか","こつこつ","こつばん","こつぶ","こてい","こてん","ことがら","ことし","ことば","ことり","こなごな","こねこね","このまま","このみ","このよ","ごはん","こひつじ","こふう","こふん","こぼれる","ごまあぶら","こまかい","ごますり","こまつな","こまる","こむぎこ","こもじ","こもち","こもの","こもん","こやく","こやま","こゆう","こゆび","こよい","こよう","こりる","これくしょん","ころっけ","こわもて","こわれる","こんいん","こんかい","こんき","こんしゅう","こんすい","こんだて","こんとん","こんなん","こんびに","こんぽん","こんまけ","こんや","こんれい","こんわく","ざいえき","さいかい","さいきん","ざいげん","ざいこ","さいしょ","さいせい","ざいたく","ざいちゅう","さいてき","ざいりょう","さうな","さかいし","さがす","さかな","さかみち","さがる","さぎょう","さくし","さくひん","さくら","さこく","さこつ","さずかる","ざせき","さたん","さつえい","ざつおん","ざっか","ざつがく","さっきょく","ざっし","さつじん","ざっそう","さつたば","さつまいも","さてい","さといも","さとう","さとおや","さとし","さとる","さのう","さばく","さびしい","さべつ","さほう","さほど","さます","さみしい","さみだれ","さむけ","さめる","さやえんどう","さゆう","さよう","さよく","さらだ","ざるそば","さわやか","さわる","さんいん","さんか","さんきゃく","さんこう","さんさい","ざんしょ","さんすう","さんせい","さんそ","さんち","さんま","さんみ","さんらん","しあい","しあげ","しあさって","しあわせ","しいく","しいん","しうち","しえい","しおけ","しかい","しかく","じかん","しごと","しすう","じだい","したうけ","したぎ","したて","したみ","しちょう","しちりん","しっかり","しつじ","しつもん","してい","してき","してつ","じてん","じどう","しなぎれ","しなもの","しなん","しねま","しねん","しのぐ","しのぶ","しはい","しばかり","しはつ","しはらい","しはん","しひょう","しふく","じぶん","しへい","しほう","しほん","しまう","しまる","しみん","しむける","じむしょ","しめい","しめる","しもん","しゃいん","しゃうん","しゃおん","じゃがいも","しやくしょ","しゃくほう","しゃけん","しゃこ","しゃざい","しゃしん","しゃせん","しゃそう","しゃたい","しゃちょう","しゃっきん","じゃま","しゃりん","しゃれい","じゆう","じゅうしょ","しゅくはく","じゅしん","しゅっせき","しゅみ","しゅらば","じゅんばん","しょうかい","しょくたく","しょっけん","しょどう","しょもつ","しらせる","しらべる","しんか","しんこう","じんじゃ","しんせいじ","しんちく","しんりん","すあげ","すあし","すあな","ずあん","すいえい","すいか","すいとう","ずいぶん","すいようび","すうがく","すうじつ","すうせん","すおどり","すきま","すくう","すくない","すける","すごい","すこし","ずさん","すずしい","すすむ","すすめる","すっかり","ずっしり","ずっと","すてき","すてる","すねる","すのこ","すはだ","すばらしい","ずひょう","ずぶぬれ","すぶり","すふれ","すべて","すべる","ずほう","すぼん","すまい","すめし","すもう","すやき","すらすら","するめ","すれちがう","すろっと","すわる","すんぜん","すんぽう","せあぶら","せいかつ","せいげん","せいじ","せいよう","せおう","せかいかん","せきにん","せきむ","せきゆ","せきらんうん","せけん","せこう","せすじ","せたい","せたけ","せっかく","せっきゃく","ぜっく","せっけん","せっこつ","せっさたくま","せつぞく","せつだん","せつでん","せっぱん","せつび","せつぶん","せつめい","せつりつ","せなか","せのび","せはば","せびろ","せぼね","せまい","せまる","せめる","せもたれ","せりふ","ぜんあく","せんい","せんえい","せんか","せんきょ","せんく","せんげん","ぜんご","せんさい","せんしゅ","せんすい","せんせい","せんぞ","せんたく","せんちょう","せんてい","せんとう","せんぬき","せんねん","せんぱい","ぜんぶ","ぜんぽう","せんむ","せんめんじょ","せんもん","せんやく","せんゆう","せんよう","ぜんら","ぜんりゃく","せんれい","せんろ","そあく","そいとげる","そいね","そうがんきょう","そうき","そうご","そうしん","そうだん","そうなん","そうび","そうめん","そうり","そえもの","そえん","そがい","そげき","そこう","そこそこ","そざい","そしな","そせい","そせん","そそぐ","そだてる","そつう","そつえん","そっかん","そつぎょう","そっけつ","そっこう","そっせん","そっと","そとがわ","そとづら","そなえる","そなた","そふぼ","そぼく","そぼろ","そまつ","そまる","そむく","そむりえ","そめる","そもそも","そよかぜ","そらまめ","そろう","そんかい","そんけい","そんざい","そんしつ","そんぞく","そんちょう","ぞんび","ぞんぶん","そんみん","たあい","たいいん","たいうん","たいえき","たいおう","だいがく","たいき","たいぐう","たいけん","たいこ","たいざい","だいじょうぶ","だいすき","たいせつ","たいそう","だいたい","たいちょう","たいてい","だいどころ","たいない","たいねつ","たいのう","たいはん","だいひょう","たいふう","たいへん","たいほ","たいまつばな","たいみんぐ","たいむ","たいめん","たいやき","たいよう","たいら","たいりょく","たいる","たいわん","たうえ","たえる","たおす","たおる","たおれる","たかい","たかね","たきび","たくさん","たこく","たこやき","たさい","たしざん","だじゃれ","たすける","たずさわる","たそがれ","たたかう","たたく","ただしい","たたみ","たちばな","だっかい","だっきゃく","だっこ","だっしゅつ","だったい","たてる","たとえる","たなばた","たにん","たぬき","たのしみ","たはつ","たぶん","たべる","たぼう","たまご","たまる","だむる","ためいき","ためす","ためる","たもつ","たやすい","たよる","たらす","たりきほんがん","たりょう","たりる","たると","たれる","たれんと","たろっと","たわむれる","だんあつ","たんい","たんおん","たんか","たんき","たんけん","たんご","たんさん","たんじょうび","だんせい","たんそく","たんたい","だんち","たんてい","たんとう","だんな","たんにん","だんねつ","たんのう","たんぴん","だんぼう","たんまつ","たんめい","だんれつ","だんろ","だんわ","ちあい","ちあん","ちいき","ちいさい","ちえん","ちかい","ちから","ちきゅう","ちきん","ちけいず","ちけん","ちこく","ちさい","ちしき","ちしりょう","ちせい","ちそう","ちたい","ちたん","ちちおや","ちつじょ","ちてき","ちてん","ちぬき","ちぬり","ちのう","ちひょう","ちへいせん","ちほう","ちまた","ちみつ","ちみどろ","ちめいど","ちゃんこなべ","ちゅうい","ちゆりょく","ちょうし","ちょさくけん","ちらし","ちらみ","ちりがみ","ちりょう","ちるど","ちわわ","ちんたい","ちんもく","ついか","ついたち","つうか","つうじょう","つうはん","つうわ","つかう","つかれる","つくね","つくる","つけね","つける","つごう","つたえる","つづく","つつじ","つつむ","つとめる","つながる","つなみ","つねづね","つのる","つぶす","つまらない","つまる","つみき","つめたい","つもり","つもる","つよい","つるぼ","つるみく","つわもの","つわり","てあし","てあて","てあみ","ていおん","ていか","ていき","ていけい","ていこく","ていさつ","ていし","ていせい","ていたい","ていど","ていねい","ていひょう","ていへん","ていぼう","てうち","ておくれ","てきとう","てくび","でこぼこ","てさぎょう","てさげ","てすり","てそう","てちがい","てちょう","てつがく","てつづき","でっぱ","てつぼう","てつや","でぬかえ","てぬき","てぬぐい","てのひら","てはい","てぶくろ","てふだ","てほどき","てほん","てまえ","てまきずし","てみじか","てみやげ","てらす","てれび","てわけ","てわたし","でんあつ","てんいん","てんかい","てんき","てんぐ","てんけん","てんごく","てんさい","てんし","てんすう","でんち","てんてき","てんとう","てんない","てんぷら","てんぼうだい","てんめつ","てんらんかい","でんりょく","でんわ","どあい","といれ","どうかん","とうきゅう","どうぐ","とうし","とうむぎ","とおい","とおか","とおく","とおす","とおる","とかい","とかす","ときおり","ときどき","とくい","とくしゅう","とくてん","とくに","とくべつ","とけい","とける","とこや","とさか","としょかん","とそう","とたん","とちゅう","とっきゅう","とっくん","とつぜん","とつにゅう","とどける","ととのえる","とない","となえる","となり","とのさま","とばす","どぶがわ","とほう","とまる","とめる","ともだち","ともる","どようび","とらえる","とんかつ","どんぶり","ないかく","ないこう","ないしょ","ないす","ないせん","ないそう","なおす","ながい","なくす","なげる","なこうど","なさけ","なたでここ","なっとう","なつやすみ","ななおし","なにごと","なにもの","なにわ","なのか","なふだ","なまいき","なまえ","なまみ","なみだ","なめらか","なめる","なやむ","ならう","ならび","ならぶ","なれる","なわとび","なわばり","にあう","にいがた","にうけ","におい","にかい","にがて","にきび","にくしみ","にくまん","にげる","にさんかたんそ","にしき","にせもの","にちじょう","にちようび","にっか","にっき","にっけい","にっこう","にっさん","にっしょく","にっすう","にっせき","にってい","になう","にほん","にまめ","にもつ","にやり","にゅういん","にりんしゃ","にわとり","にんい","にんか","にんき","にんげん","にんしき","にんずう","にんそう","にんたい","にんち","にんてい","にんにく","にんぷ","にんまり","にんむ","にんめい","にんよう","ぬいくぎ","ぬかす","ぬぐいとる","ぬぐう","ぬくもり","ぬすむ","ぬまえび","ぬめり","ぬらす","ぬんちゃく","ねあげ","ねいき","ねいる","ねいろ","ねぐせ","ねくたい","ねくら","ねこぜ","ねこむ","ねさげ","ねすごす","ねそべる","ねだん","ねつい","ねっしん","ねつぞう","ねったいぎょ","ねぶそく","ねふだ","ねぼう","ねほりはほり","ねまき","ねまわし","ねみみ","ねむい","ねむたい","ねもと","ねらう","ねわざ","ねんいり","ねんおし","ねんかん","ねんきん","ねんぐ","ねんざ","ねんし","ねんちゃく","ねんど","ねんぴ","ねんぶつ","ねんまつ","ねんりょう","ねんれい","のいず","のおづま","のがす","のきなみ","のこぎり","のこす","のこる","のせる","のぞく","のぞむ","のたまう","のちほど","のっく","のばす","のはら","のべる","のぼる","のみもの","のやま","のらいぬ","のらねこ","のりもの","のりゆき","のれん","のんき","ばあい","はあく","ばあさん","ばいか","ばいく","はいけん","はいご","はいしん","はいすい","はいせん","はいそう","はいち","ばいばい","はいれつ","はえる","はおる","はかい","ばかり","はかる","はくしゅ","はけん","はこぶ","はさみ","はさん","はしご","ばしょ","はしる","はせる","ぱそこん","はそん","はたん","はちみつ","はつおん","はっかく","はづき","はっきり","はっくつ","はっけん","はっこう","はっさん","はっしん","はったつ","はっちゅう","はってん","はっぴょう","はっぽう","はなす","はなび","はにかむ","はぶらし","はみがき","はむかう","はめつ","はやい","はやし","はらう","はろうぃん","はわい","はんい","はんえい","はんおん","はんかく","はんきょう","ばんぐみ","はんこ","はんしゃ","はんすう","はんだん","ぱんち","ぱんつ","はんてい","はんとし","はんのう","はんぱ","はんぶん","はんぺん","はんぼうき","はんめい","はんらん","はんろん","ひいき","ひうん","ひえる","ひかく","ひかり","ひかる","ひかん","ひくい","ひけつ","ひこうき","ひこく","ひさい","ひさしぶり","ひさん","びじゅつかん","ひしょ","ひそか","ひそむ","ひたむき","ひだり","ひたる","ひつぎ","ひっこし","ひっし","ひつじゅひん","ひっす","ひつぜん","ぴったり","ぴっちり","ひつよう","ひてい","ひとごみ","ひなまつり","ひなん","ひねる","ひはん","ひびく","ひひょう","ひほう","ひまわり","ひまん","ひみつ","ひめい","ひめじし","ひやけ","ひやす","ひよう","びょうき","ひらがな","ひらく","ひりつ","ひりょう","ひるま","ひるやすみ","ひれい","ひろい","ひろう","ひろき","ひろゆき","ひんかく","ひんけつ","ひんこん","ひんしゅ","ひんそう","ぴんち","ひんぱん","びんぼう","ふあん","ふいうち","ふうけい","ふうせん","ぷうたろう","ふうとう","ふうふ","ふえる","ふおん","ふかい","ふきん","ふくざつ","ふくぶくろ","ふこう","ふさい","ふしぎ","ふじみ","ふすま","ふせい","ふせぐ","ふそく","ぶたにく","ふたん","ふちょう","ふつう","ふつか","ふっかつ","ふっき","ふっこく","ぶどう","ふとる","ふとん","ふのう","ふはい","ふひょう","ふへん","ふまん","ふみん","ふめつ","ふめん","ふよう","ふりこ","ふりる","ふるい","ふんいき","ぶんがく","ぶんぐ","ふんしつ","ぶんせき","ふんそう","ぶんぽう","へいあん","へいおん","へいがい","へいき","へいげん","へいこう","へいさ","へいしゃ","へいせつ","へいそ","へいたく","へいてん","へいねつ","へいわ","へきが","へこむ","べにいろ","べにしょうが","へらす","へんかん","べんきょう","べんごし","へんさい","へんたい","べんり","ほあん","ほいく","ぼうぎょ","ほうこく","ほうそう","ほうほう","ほうもん","ほうりつ","ほえる","ほおん","ほかん","ほきょう","ぼきん","ほくろ","ほけつ","ほけん","ほこう","ほこる","ほしい","ほしつ","ほしゅ","ほしょう","ほせい","ほそい","ほそく","ほたて","ほたる","ぽちぶくろ","ほっきょく","ほっさ","ほったん","ほとんど","ほめる","ほんい","ほんき","ほんけ","ほんしつ","ほんやく","まいにち","まかい","まかせる","まがる","まける","まこと","まさつ","まじめ","ますく","まぜる","まつり","まとめ","まなぶ","まぬけ","まねく","まほう","まもる","まゆげ","まよう","まろやか","まわす","まわり","まわる","まんが","まんきつ","まんぞく","まんなか","みいら","みうち","みえる","みがく","みかた","みかん","みけん","みこん","みじかい","みすい","みすえる","みせる","みっか","みつかる","みつける","みてい","みとめる","みなと","みなみかさい","みねらる","みのう","みのがす","みほん","みもと","みやげ","みらい","みりょく","みわく","みんか","みんぞく","むいか","むえき","むえん","むかい","むかう","むかえ","むかし","むぎちゃ","むける","むげん","むさぼる","むしあつい","むしば","むじゅん","むしろ","むすう","むすこ","むすぶ","むすめ","むせる","むせん","むちゅう","むなしい","むのう","むやみ","むよう","むらさき","むりょう","むろん","めいあん","めいうん","めいえん","めいかく","めいきょく","めいさい","めいし","めいそう","めいぶつ","めいれい","めいわく","めぐまれる","めざす","めした","めずらしい","めだつ","めまい","めやす","めんきょ","めんせき","めんどう","もうしあげる","もうどうけん","もえる","もくし","もくてき","もくようび","もちろん","もどる","もらう","もんく","もんだい","やおや","やける","やさい","やさしい","やすい","やすたろう","やすみ","やせる","やそう","やたい","やちん","やっと","やっぱり","やぶる","やめる","ややこしい","やよい","やわらかい","ゆうき","ゆうびんきょく","ゆうべ","ゆうめい","ゆけつ","ゆしゅつ","ゆせん","ゆそう","ゆたか","ゆちゃく","ゆでる","ゆにゅう","ゆびわ","ゆらい","ゆれる","ようい","ようか","ようきゅう","ようじ","ようす","ようちえん","よかぜ","よかん","よきん","よくせい","よくぼう","よけい","よごれる","よさん","よしゅう","よそう","よそく","よっか","よてい","よどがわく","よねつ","よやく","よゆう","よろこぶ","よろしい","らいう","らくがき","らくご","らくさつ","らくだ","らしんばん","らせん","らぞく","らたい","らっか","られつ","りえき","りかい","りきさく","りきせつ","りくぐん","りくつ","りけん","りこう","りせい","りそう","りそく","りてん","りねん","りゆう","りゅうがく","りよう","りょうり","りょかん","りょくちゃ","りょこう","りりく","りれき","りろん","りんご","るいけい","るいさい","るいじ","るいせき","るすばん","るりがわら","れいかん","れいぎ","れいせい","れいぞうこ","れいとう","れいぼう","れきし","れきだい","れんあい","れんけい","れんこん","れんさい","れんしゅう","れんぞく","れんらく","ろうか","ろうご","ろうじん","ろうそく","ろくが","ろこつ","ろじうら","ろしゅつ","ろせん","ろてん","ろめん","ろれつ","ろんぎ","ろんぱ","ろんぶん","ろんり","わかす","わかめ","わかやま","わかれる","わしつ","わじまし","わすれもの","わらう","われる"]},function(e,t,i){e.exports=["ábaco","abdomen","abeja","abierto","abogado","abono","aborto","abrazo","abrir","abuelo","abuso","acabar","academia","acceso","acción","aceite","acelga","acento","aceptar","ácido","aclarar","acné","acoger","acoso","activo","acto","actriz","actuar","acudir","acuerdo","acusar","adicto","admitir","adoptar","adorno","aduana","adulto","aéreo","afectar","afición","afinar","afirmar","ágil","agitar","agonía","agosto","agotar","agregar","agrio","agua","agudo","águila","aguja","ahogo","ahorro","aire","aislar","ajedrez","ajeno","ajuste","alacrán","alambre","alarma","alba","álbum","alcalde","aldea","alegre","alejar","alerta","aleta","alfiler","alga","algodón","aliado","aliento","alivio","alma","almeja","almíbar","altar","alteza","altivo","alto","altura","alumno","alzar","amable","amante","amapola","amargo","amasar","ámbar","ámbito","ameno","amigo","amistad","amor","amparo","amplio","ancho","anciano","ancla","andar","andén","anemia","ángulo","anillo","ánimo","anís","anotar","antena","antiguo","antojo","anual","anular","anuncio","añadir","añejo","año","apagar","aparato","apetito","apio","aplicar","apodo","aporte","apoyo","aprender","aprobar","apuesta","apuro","arado","araña","arar","árbitro","árbol","arbusto","archivo","arco","arder","ardilla","arduo","área","árido","aries","armonía","arnés","aroma","arpa","arpón","arreglo","arroz","arruga","arte","artista","asa","asado","asalto","ascenso","asegurar","aseo","asesor","asiento","asilo","asistir","asno","asombro","áspero","astilla","astro","astuto","asumir","asunto","atajo","ataque","atar","atento","ateo","ático","atleta","átomo","atraer","atroz","atún","audaz","audio","auge","aula","aumento","ausente","autor","aval","avance","avaro","ave","avellana","avena","avestruz","avión","aviso","ayer","ayuda","ayuno","azafrán","azar","azote","azúcar","azufre","azul","baba","babor","bache","bahía","baile","bajar","balanza","balcón","balde","bambú","banco","banda","baño","barba","barco","barniz","barro","báscula","bastón","basura","batalla","batería","batir","batuta","baúl","bazar","bebé","bebida","bello","besar","beso","bestia","bicho","bien","bingo","blanco","bloque","blusa","boa","bobina","bobo","boca","bocina","boda","bodega","boina","bola","bolero","bolsa","bomba","bondad","bonito","bono","bonsái","borde","borrar","bosque","bote","botín","bóveda","bozal","bravo","brazo","brecha","breve","brillo","brinco","brisa","broca","broma","bronce","brote","bruja","brusco","bruto","buceo","bucle","bueno","buey","bufanda","bufón","búho","buitre","bulto","burbuja","burla","burro","buscar","butaca","buzón","caballo","cabeza","cabina","cabra","cacao","cadáver","cadena","caer","café","caída","caimán","caja","cajón","cal","calamar","calcio","caldo","calidad","calle","calma","calor","calvo","cama","cambio","camello","camino","campo","cáncer","candil","canela","canguro","canica","canto","caña","cañón","caoba","caos","capaz","capitán","capote","captar","capucha","cara","carbón","cárcel","careta","carga","cariño","carne","carpeta","carro","carta","casa","casco","casero","caspa","castor","catorce","catre","caudal","causa","cazo","cebolla","ceder","cedro","celda","célebre","celoso","célula","cemento","ceniza","centro","cerca","cerdo","cereza","cero","cerrar","certeza","césped","cetro","chacal","chaleco","champú","chancla","chapa","charla","chico","chiste","chivo","choque","choza","chuleta","chupar","ciclón","ciego","cielo","cien","cierto","cifra","cigarro","cima","cinco","cine","cinta","ciprés","circo","ciruela","cisne","cita","ciudad","clamor","clan","claro","clase","clave","cliente","clima","clínica","cobre","cocción","cochino","cocina","coco","código","codo","cofre","coger","cohete","cojín","cojo","cola","colcha","colegio","colgar","colina","collar","colmo","columna","combate","comer","comida","cómodo","compra","conde","conejo","conga","conocer","consejo","contar","copa","copia","corazón","corbata","corcho","cordón","corona","correr","coser","cosmos","costa","cráneo","cráter","crear","crecer","creído","crema","cría","crimen","cripta","crisis","cromo","crónica","croqueta","crudo","cruz","cuadro","cuarto","cuatro","cubo","cubrir","cuchara","cuello","cuento","cuerda","cuesta","cueva","cuidar","culebra","culpa","culto","cumbre","cumplir","cuna","cuneta","cuota","cupón","cúpula","curar","curioso","curso","curva","cutis","dama","danza","dar","dardo","dátil","deber","débil","década","decir","dedo","defensa","definir","dejar","delfín","delgado","delito","demora","denso","dental","deporte","derecho","derrota","desayuno","deseo","desfile","desnudo","destino","desvío","detalle","detener","deuda","día","diablo","diadema","diamante","diana","diario","dibujo","dictar","diente","dieta","diez","difícil","digno","dilema","diluir","dinero","directo","dirigir","disco","diseño","disfraz","diva","divino","doble","doce","dolor","domingo","don","donar","dorado","dormir","dorso","dos","dosis","dragón","droga","ducha","duda","duelo","dueño","dulce","dúo","duque","durar","dureza","duro","ébano","ebrio","echar","eco","ecuador","edad","edición","edificio","editor","educar","efecto","eficaz","eje","ejemplo","elefante","elegir","elemento","elevar","elipse","élite","elixir","elogio","eludir","embudo","emitir","emoción","empate","empeño","empleo","empresa","enano","encargo","enchufe","encía","enemigo","enero","enfado","enfermo","engaño","enigma","enlace","enorme","enredo","ensayo","enseñar","entero","entrar","envase","envío","época","equipo","erizo","escala","escena","escolar","escribir","escudo","esencia","esfera","esfuerzo","espada","espejo","espía","esposa","espuma","esquí","estar","este","estilo","estufa","etapa","eterno","ética","etnia","evadir","evaluar","evento","evitar","exacto","examen","exceso","excusa","exento","exigir","exilio","existir","éxito","experto","explicar","exponer","extremo","fábrica","fábula","fachada","fácil","factor","faena","faja","falda","fallo","falso","faltar","fama","familia","famoso","faraón","farmacia","farol","farsa","fase","fatiga","fauna","favor","fax","febrero","fecha","feliz","feo","feria","feroz","fértil","fervor","festín","fiable","fianza","fiar","fibra","ficción","ficha","fideo","fiebre","fiel","fiera","fiesta","figura","fijar","fijo","fila","filete","filial","filtro","fin","finca","fingir","finito","firma","flaco","flauta","flecha","flor","flota","fluir","flujo","flúor","fobia","foca","fogata","fogón","folio","folleto","fondo","forma","forro","fortuna","forzar","fosa","foto","fracaso","frágil","franja","frase","fraude","freír","freno","fresa","frío","frito","fruta","fuego","fuente","fuerza","fuga","fumar","función","funda","furgón","furia","fusil","fútbol","futuro","gacela","gafas","gaita","gajo","gala","galería","gallo","gamba","ganar","gancho","ganga","ganso","garaje","garza","gasolina","gastar","gato","gavilán","gemelo","gemir","gen","género","genio","gente","geranio","gerente","germen","gesto","gigante","gimnasio","girar","giro","glaciar","globo","gloria","gol","golfo","goloso","golpe","goma","gordo","gorila","gorra","gota","goteo","gozar","grada","gráfico","grano","grasa","gratis","grave","grieta","grillo","gripe","gris","grito","grosor","grúa","grueso","grumo","grupo","guante","guapo","guardia","guerra","guía","guiño","guion","guiso","guitarra","gusano","gustar","haber","hábil","hablar","hacer","hacha","hada","hallar","hamaca","harina","haz","hazaña","hebilla","hebra","hecho","helado","helio","hembra","herir","hermano","héroe","hervir","hielo","hierro","hígado","higiene","hijo","himno","historia","hocico","hogar","hoguera","hoja","hombre","hongo","honor","honra","hora","hormiga","horno","hostil","hoyo","hueco","huelga","huerta","hueso","huevo","huida","huir","humano","húmedo","humilde","humo","hundir","huracán","hurto","icono","ideal","idioma","ídolo","iglesia","iglú","igual","ilegal","ilusión","imagen","imán","imitar","impar","imperio","imponer","impulso","incapaz","índice","inerte","infiel","informe","ingenio","inicio","inmenso","inmune","innato","insecto","instante","interés","íntimo","intuir","inútil","invierno","ira","iris","ironía","isla","islote","jabalí","jabón","jamón","jarabe","jardín","jarra","jaula","jazmín","jefe","jeringa","jinete","jornada","joroba","joven","joya","juerga","jueves","juez","jugador","jugo","juguete","juicio","junco","jungla","junio","juntar","júpiter","jurar","justo","juvenil","juzgar","kilo","koala","labio","lacio","lacra","lado","ladrón","lagarto","lágrima","laguna","laico","lamer","lámina","lámpara","lana","lancha","langosta","lanza","lápiz","largo","larva","lástima","lata","látex","latir","laurel","lavar","lazo","leal","lección","leche","lector","leer","legión","legumbre","lejano","lengua","lento","leña","león","leopardo","lesión","letal","letra","leve","leyenda","libertad","libro","licor","líder","lidiar","lienzo","liga","ligero","lima","límite","limón","limpio","lince","lindo","línea","lingote","lino","linterna","líquido","liso","lista","litera","litio","litro","llaga","llama","llanto","llave","llegar","llenar","llevar","llorar","llover","lluvia","lobo","loción","loco","locura","lógica","logro","lombriz","lomo","lonja","lote","lucha","lucir","lugar","lujo","luna","lunes","lupa","lustro","luto","luz","maceta","macho","madera","madre","maduro","maestro","mafia","magia","mago","maíz","maldad","maleta","malla","malo","mamá","mambo","mamut","manco","mando","manejar","manga","maniquí","manjar","mano","manso","manta","mañana","mapa","máquina","mar","marco","marea","marfil","margen","marido","mármol","marrón","martes","marzo","masa","máscara","masivo","matar","materia","matiz","matriz","máximo","mayor","mazorca","mecha","medalla","medio","médula","mejilla","mejor","melena","melón","memoria","menor","mensaje","mente","menú","mercado","merengue","mérito","mes","mesón","meta","meter","método","metro","mezcla","miedo","miel","miembro","miga","mil","milagro","militar","millón","mimo","mina","minero","mínimo","minuto","miope","mirar","misa","miseria","misil","mismo","mitad","mito","mochila","moción","moda","modelo","moho","mojar","molde","moler","molino","momento","momia","monarca","moneda","monja","monto","moño","morada","morder","moreno","morir","morro","morsa","mortal","mosca","mostrar","motivo","mover","móvil","mozo","mucho","mudar","mueble","muela","muerte","muestra","mugre","mujer","mula","muleta","multa","mundo","muñeca","mural","muro","músculo","museo","musgo","música","muslo","nácar","nación","nadar","naipe","naranja","nariz","narrar","nasal","natal","nativo","natural","náusea","naval","nave","navidad","necio","néctar","negar","negocio","negro","neón","nervio","neto","neutro","nevar","nevera","nicho","nido","niebla","nieto","niñez","niño","nítido","nivel","nobleza","noche","nómina","noria","norma","norte","nota","noticia","novato","novela","novio","nube","nuca","núcleo","nudillo","nudo","nuera","nueve","nuez","nulo","número","nutria","oasis","obeso","obispo","objeto","obra","obrero","observar","obtener","obvio","oca","ocaso","océano","ochenta","ocho","ocio","ocre","octavo","octubre","oculto","ocupar","ocurrir","odiar","odio","odisea","oeste","ofensa","oferta","oficio","ofrecer","ogro","oído","oír","ojo","ola","oleada","olfato","olivo","olla","olmo","olor","olvido","ombligo","onda","onza","opaco","opción","ópera","opinar","oponer","optar","óptica","opuesto","oración","orador","oral","órbita","orca","orden","oreja","órgano","orgía","orgullo","oriente","origen","orilla","oro","orquesta","oruga","osadía","oscuro","osezno","oso","ostra","otoño","otro","oveja","óvulo","óxido","oxígeno","oyente","ozono","pacto","padre","paella","página","pago","país","pájaro","palabra","palco","paleta","pálido","palma","paloma","palpar","pan","panal","pánico","pantera","pañuelo","papá","papel","papilla","paquete","parar","parcela","pared","parir","paro","párpado","parque","párrafo","parte","pasar","paseo","pasión","paso","pasta","pata","patio","patria","pausa","pauta","pavo","payaso","peatón","pecado","pecera","pecho","pedal","pedir","pegar","peine","pelar","peldaño","pelea","peligro","pellejo","pelo","peluca","pena","pensar","peñón","peón","peor","pepino","pequeño","pera","percha","perder","pereza","perfil","perico","perla","permiso","perro","persona","pesa","pesca","pésimo","pestaña","pétalo","petróleo","pez","pezuña","picar","pichón","pie","piedra","pierna","pieza","pijama","pilar","piloto","pimienta","pino","pintor","pinza","piña","piojo","pipa","pirata","pisar","piscina","piso","pista","pitón","pizca","placa","plan","plata","playa","plaza","pleito","pleno","plomo","pluma","plural","pobre","poco","poder","podio","poema","poesía","poeta","polen","policía","pollo","polvo","pomada","pomelo","pomo","pompa","poner","porción","portal","posada","poseer","posible","poste","potencia","potro","pozo","prado","precoz","pregunta","premio","prensa","preso","previo","primo","príncipe","prisión","privar","proa","probar","proceso","producto","proeza","profesor","programa","prole","promesa","pronto","propio","próximo","prueba","público","puchero","pudor","pueblo","puerta","puesto","pulga","pulir","pulmón","pulpo","pulso","puma","punto","puñal","puño","pupa","pupila","puré","quedar","queja","quemar","querer","queso","quieto","química","quince","quitar","rábano","rabia","rabo","ración","radical","raíz","rama","rampa","rancho","rango","rapaz","rápido","rapto","rasgo","raspa","rato","rayo","raza","razón","reacción","realidad","rebaño","rebote","recaer","receta","rechazo","recoger","recreo","recto","recurso","red","redondo","reducir","reflejo","reforma","refrán","refugio","regalo","regir","regla","regreso","rehén","reino","reír","reja","relato","relevo","relieve","relleno","reloj","remar","remedio","remo","rencor","rendir","renta","reparto","repetir","reposo","reptil","res","rescate","resina","respeto","resto","resumen","retiro","retorno","retrato","reunir","revés","revista","rey","rezar","rico","riego","rienda","riesgo","rifa","rígido","rigor","rincón","riñón","río","riqueza","risa","ritmo","rito","rizo","roble","roce","rociar","rodar","rodeo","rodilla","roer","rojizo","rojo","romero","romper","ron","ronco","ronda","ropa","ropero","rosa","rosca","rostro","rotar","rubí","rubor","rudo","rueda","rugir","ruido","ruina","ruleta","rulo","rumbo","rumor","ruptura","ruta","rutina","sábado","saber","sabio","sable","sacar","sagaz","sagrado","sala","saldo","salero","salir","salmón","salón","salsa","salto","salud","salvar","samba","sanción","sandía","sanear","sangre","sanidad","sano","santo","sapo","saque","sardina","sartén","sastre","satán","sauna","saxofón","sección","seco","secreto","secta","sed","seguir","seis","sello","selva","semana","semilla","senda","sensor","señal","señor","separar","sepia","sequía","ser","serie","sermón","servir","sesenta","sesión","seta","setenta","severo","sexo","sexto","sidra","siesta","siete","siglo","signo","sílaba","silbar","silencio","silla","símbolo","simio","sirena","sistema","sitio","situar","sobre","socio","sodio","sol","solapa","soldado","soledad","sólido","soltar","solución","sombra","sondeo","sonido","sonoro","sonrisa","sopa","soplar","soporte","sordo","sorpresa","sorteo","sostén","sótano","suave","subir","suceso","sudor","suegra","suelo","sueño","suerte","sufrir","sujeto","sultán","sumar","superar","suplir","suponer","supremo","sur","surco","sureño","surgir","susto","sutil","tabaco","tabique","tabla","tabú","taco","tacto","tajo","talar","talco","talento","talla","talón","tamaño","tambor","tango","tanque","tapa","tapete","tapia","tapón","taquilla","tarde","tarea","tarifa","tarjeta","tarot","tarro","tarta","tatuaje","tauro","taza","tazón","teatro","techo","tecla","técnica","tejado","tejer","tejido","tela","teléfono","tema","temor","templo","tenaz","tender","tener","tenis","tenso","teoría","terapia","terco","término","ternura","terror","tesis","tesoro","testigo","tetera","texto","tez","tibio","tiburón","tiempo","tienda","tierra","tieso","tigre","tijera","tilde","timbre","tímido","timo","tinta","tío","típico","tipo","tira","tirón","titán","títere","título","tiza","toalla","tobillo","tocar","tocino","todo","toga","toldo","tomar","tono","tonto","topar","tope","toque","tórax","torero","tormenta","torneo","toro","torpedo","torre","torso","tortuga","tos","tosco","toser","tóxico","trabajo","tractor","traer","tráfico","trago","traje","tramo","trance","trato","trauma","trazar","trébol","tregua","treinta","tren","trepar","tres","tribu","trigo","tripa","triste","triunfo","trofeo","trompa","tronco","tropa","trote","trozo","truco","trueno","trufa","tubería","tubo","tuerto","tumba","tumor","túnel","túnica","turbina","turismo","turno","tutor","ubicar","úlcera","umbral","unidad","unir","universo","uno","untar","uña","urbano","urbe","urgente","urna","usar","usuario","útil","utopía","uva","vaca","vacío","vacuna","vagar","vago","vaina","vajilla","vale","válido","valle","valor","válvula","vampiro","vara","variar","varón","vaso","vecino","vector","vehículo","veinte","vejez","vela","velero","veloz","vena","vencer","venda","veneno","vengar","venir","venta","venus","ver","verano","verbo","verde","vereda","verja","verso","verter","vía","viaje","vibrar","vicio","víctima","vida","vídeo","vidrio","viejo","viernes","vigor","vil","villa","vinagre","vino","viñedo","violín","viral","virgo","virtud","visor","víspera","vista","vitamina","viudo","vivaz","vivero","vivir","vivo","volcán","volumen","volver","voraz","votar","voto","voz","vuelo","vulgar","yacer","yate","yegua","yema","yerno","yeso","yodo","yoga","yogur","zafiro","zanja","zapato","zarza","zona","zorro","zumo","zurdo"]},function(e,t,i){var r=4294967296,a=2147483648,s=2147483647,n=null;e.exports=class e{constructor(e){void 0===e&&(e=(new Date).getTime()),this.mt=new Array(624),this.mti=625,this.seed(e)}seed(e){var t;for(this.mt[0]=e>>>0,this.mti=1;this.mti<624;this.mti++)t=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30,this.mt[this.mti]=(1812433253*((4294901760&t)>>>16)<<16)+1812433253*(65535&t)+this.mti,this.mt[this.mti]>>>=0}seedArray(e){var t,i=1,r=0,a=e.length<624?624:e.length;for(this.seed(19650218);0<a;a--)t=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1664525*((4294901760&t)>>>16)<<16)+1664525*(65535&t))+e[r]+r,this.mt[i]>>>=0,r++,624<=++i&&(this.mt[0]=this.mt[623],i=1),e.length<=r&&(r=0);for(a=623;a;a--)t=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1566083941*((4294901760&t)>>>16)<<16)+1566083941*(65535&t))-i,this.mt[i]>>>=0,624<=++i&&(this.mt[0]=this.mt[623],i=1);this.mt[0]=2147483648}int(){var e,t,i=new Array(0,2567483615);if(624<=this.mti){for(625===this.mti&&this.seed(5489),t=0;t<227;t++)e=this.mt[t]&a|this.mt[t+1]&s,this.mt[t]=this.mt[t+397]^e>>>1^i[1&e];for(;t<623;t++)e=this.mt[t]&a|this.mt[t+1]&s,this.mt[t]=this.mt[t+-227]^e>>>1^i[1&e];e=this.mt[623]&a|this.mt[0]&s,this.mt[623]=this.mt[396]^e>>>1^i[1&e],this.mti=0}return e=this.mt[this.mti++],(e=(e=(e=(e^=e>>>11)^e<<7&2636928640)^e<<15&4022730752)^e>>>18)>>>0}randomBytes(e){var t=Buffer.alloc(e);for(let i=0;i<e;i+=4)t.writeUInt32LE(this.int(),i);return t}int31(){return this.int()>>>1}real(){return this.int()*(1/(r-1))}realx(){return(this.int()+.5)*(1/r)}random(){return this.int()*(1/r)}rndHiRes(){return 1/9007199254740992*(67108864*(this.int()>>>5)+(this.int()>>>6))}static random(){return(n=n||new e).random()}}},function(e,t,i){
860
860
  /*!
861
861
  * enforce.js - type enforcement for vallnet
862
862
  * Copyright (c) 2019-2022, Bookman Software (MIT License).