intl-segmenter-polyfill.js.map (502831B)
1 {"version":3,"file":"bundles/9cacd6575f4c8ee1aedb/intl-segmenter-polyfill.js","mappings":"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,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAAI,CACLxC,SAAU,MACVC,UAAW,KACXM,QAAS,SAEV,CAAEiC,GAA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CA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,sBACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,MACA,MACA,MACA,sBACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,MAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,IAAO,CACN,MACA,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,IAAO,CACN,MACA,KACA,KACA,KACA,KACA,MAED,IAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,IAAO,CACN,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,IAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,IAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,IAAO,CACN,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,IAAO,CACN,MACA,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAED,IAAO,CACN,MACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEDC,GAAI,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEDC,GAAI,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEDC,GAAI,CACH,KACA,KACA,KACA,KACA,KACA,MAEDC,GAAI,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,OChzCW,GAAmC,0BAgBzC,SAAS,GAAUC,EAAWC,EAASC,EAAMvZ,OACnD,IAAKqZ,EACJ,MAAM,IAAIE,EAAID,EAEhB,CAGA,IAAIE,GA6BJ,SAASC,GAAUxE,EAAQyE,EAAyBC,GACnD,MAAOC,EAAUC,EAAQC,GAAUJ,EAAwBK,MAAM,KACjE,IAAIC,GAAU,EACd,GAAIF,GAAwB,MAAdA,EAAO,GAAY,CAChC,MAAMG,EAA8B,MAAdH,EAAO,GAEvBI,GADeD,EAAgBN,EAAeG,EAAO7V,MAAM,IAAM0V,EAAeG,EAAO7V,MAAM,KACvD+P,IAAK3T,GAAM2Y,GAAQ3Y,IAAM,CAACA,IAAIiU,OAAO,CAACC,EAAK4F,IAAS,IAAI5F,KAAQ4F,GAAO,IACnHH,MAAcE,EAAuBnZ,QAAQkU,EAAO6E,QAAU,KAAO,GAAKG,EAC3E,MACCD,KAAY/E,EAAO6E,SAAoB,MAAXA,GAAkBA,IAAW7E,EAAO6E,QAIjE,OAFAE,KAAY/E,EAAO4E,SAAoB,MAAXA,GAAkBA,IAAW5E,EAAO4E,QAChEG,KAAY/E,EAAO2E,WAAwB,MAAbA,GAAoBA,IAAa3E,EAAO2E,UAC/DI,CACR,CACA,SAASI,GAAaC,GACrB,MAAO,CACNA,EAAIT,SACJS,EAAIR,OACJQ,EAAI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AAQd,EAClBpC,GAAa,IAAIkD,IAElB,IAAK,MAAMC,KAAMhB,EAAU,CAC1B,MAAM,IAAE5K,EAAG,MAAEnC,GAAU+N,EACvBnD,GAAa,IAAIzI,IACH,KAAVnC,IACH4K,GAAa,IAAI5K,IAEnB,CACA,GAAkB,OAAd4K,EACH,OAAO0B,GAA4B/I,GAEpC,IACIyK,EADAC,EAAe1K,EAAOlU,QAAQ,OAGjC2e,GADqB,IAAlBC,EACS1K,EAASqH,EAEFrH,EAAOhR,MAAM,EAAG0b,GAERrD,EADPrH,EAAOhR,MAAM0b,GAGlC,OAAO3B,GAA4B0B,EACpC,CH8DgBE,CAAsCvD,EAAakD,EAAqBP,IAEvFtC,EAAOzH,OAASoH,EACTK,CACR,CI5FO,MAAMmD,GAAoB,CAChC,GAAM,CAAE,SAAY,CACnB,aAAgB,CAAC,EACjB,aAAgB,CACf,QACA,OACA,MACA,OACA,OACA,UACA,QACA,OACA,OACA,OACA,SACA,MACA,OACA,QACA,QACA,MACA,OACA,OACA,OACA,QACA,OACA,MACA,MACA,OACA,MACA,OACA,SACA,OACA,OACA,KACA,QACA,WACA,MACA,UACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,KACA,QACA,UACA,OACA,OACA,aACA,KACA,KACA,QACA,KACA,MACA,MACA,SACA,MACA,OACA,OACA,MACA,OACA,OACA,WACA,QACA,OACA,KACA,KACA,OACA,SACA,OACA,MACA,MACA,MACA,OACA,MACA,QACA,SACA,KACA,OACA,UACA,QACA,QACA,QACA,SACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,KACA,QACA,OACA,MACA,SACA,OACA,OACA,OACA,QACA,OACA,KACA,OACA,MACA,OACA,SACA,SACA,KACA,OACA,UACA,OACA,OACA,OACA,OACA,QACA,WACA,OACA,OACA,QACA,OACA,KACA,QACA,OACA,OACA,OACA,SACA,WACA,OACA,QACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,QACA,QACA,QACA,WACA,OACA,KACA,aACA,OACA,QACA,MACA,OACA,KACA,KACA,OACA,OACA,QACA,OACA,QACA,QACA,KACA,SACA,QACA,MACA,OACA,YACA,OACA,UACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,QACA,OACA,MACA,QACA,OACA,QACA,OACA,OACA,QACA,OACA,KACA,QACA,QACA,MACA,OACA,SACA,SACA,QACA,KACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,OACA,MACA,OACA,QACA,YACA,MACA,SACA,OACA,QACA,OACA,KACA,WACA,SACA,QACA,OACA,OACA,KACA,QACA,OACA,OACA,OACA,OACA,QACA,MACA,KACA,QACA,KACA,aACA,aACA,OACA,OACA,OACA,KACA,OACA,OACA,OACA,KACA,SACA,QACA,YACA,OACA,SACA,WAED,UAAa,CAAC,IAEf,GAAM,CAAE,SAAY,CACnB,aAAgB,CAAC,EACjB,aAAgB,GAChB,UAAa,CAAE,OAAU,+iCAE1B,GAAM,CAAE,SAAY,CACnB,aAAgB,CAAC,EACjB,aAAgB,CACf,OACA,OACA,UACA,OACA,KACA,OACA,QACA,OACA,OACA,OACA,QACA,OACA,QACA,MACA,QACA,OACA,KACA,QACA,MACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,OACA,OACA,KACA,OACA,MACA,OACA,OACA,SACA,MACA,OACA,MACA,QACA,KACA,QACA,MACA,OACA,MACA,MACA,KACA,KACA,MACA,OACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,OACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,MACA,OACA,QACA,OACA,OACA,MACA,KACA,SACA,MACA,KACA,OACA,SACA,QACA,OACA,MACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,KACA,QACA,MACA,OACA,QACA,MACA,MACA,MACA,OACA,OACA,MACA,OACA,OACA,SACA,OACA,UACA,OACA,KACA,MACA,OACA,MACA,MACA,QACA,MACA,OACA,QACA,WACA,KACA,MACA,MACA,OACA,OACA,MACA,MACA,KACA,SACA,KACA,OACA,QACA,MACA,MACA,KACA,OACA,MACA,OACA,KACA,OACA,OACA,KACA,OACA,OACA,OACA,OACA,SACA,OACA,MACA,OACA,MACA,OAED,UAAa,CAAC,IAEf,GAAM,CAAE,SAAY,CACnB,aAAgB,CAAC,EACjB,aAAgB,CACf,QACA,SACA,QACA,OACA,OACA,SACA,OACA,OACA,OACA,OACA,SACA,QACA,UACA,OACA,OACA,SACA,MACA,OACA,QACA,MACA,SACA,MACA,QACA,OACA,OACA,OACA,SACA,OACA,OACA,UACA,QACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,QACA,MACA,OACA,QACA,OACA,MACA,SACA,QACA,OACA,QACA,OACA,MACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,OACA,SACA,OACA,OACA,QACA,OACA,QACA,QACA,MACA,SACA,OACA,MACA,OACA,OACA,QACA,SACA,QACA,SACA,QACA,SACA,MACA,KACA,QACA,MACA,QACA,QACA,QACA,QACA,KACA,OACA,SACA,OACA,QACA,MACA,OACA,SACA,OACA,OACA,KACA,KACA,OACA,OACA,UACA,MACA,QACA,SACA,OACA,SACA,QACA,OACA,SACA,OACA,OACA,OACA,OACA,OACA,OACA,SACA,OACA,MACA,QACA,QACA,SACA,OACA,QACA,OACA,OACA,OACA,UACA,QACA,OACA,OACA,OACA,MACA,MACA,OACA,OACA,UACA,MACA,QACA,OACA,OACA,QACA,OACA,QACA,KACA,OACA,MACA,QACA,QACA,QACA,OACA,QACA,QACA,SACA,WACA,QACA,SACA,MACA,OACA,MACA,QACA,OACA,QAED,UAAa,CAAC,IAEf,GAAM,CAAE,SAAY,CACnB,aAAgB,CAAC,EACjB,aAAgB,CACf,OACA,UACA,UACA,KACA,OACA,UACA,OACA,QACA,QACA,MACA,OACA,OACA,OACA,QACA,QACA,SACA,OACA,QACA,KACA,OACA,QACA,MACA,SACA,OACA,MACA,OACA,QACA,OACA,SACA,OACA,QACA,QACA,OACA,QACA,QACA,QACA,SACA,MACA,SACA,WACA,UACA,OACA,KACA,OACA,OACA,aACA,QACA,OACA,OACA,QACA,WACA,OACA,QACA,UACA,OACA,QACA,OACA,KACA,OACA,OACA,OACA,KACA,UACA,OACA,SACA,QACA,OACA,OACA,SACA,OACA,UACA,OACA,OACA,KACA,SACA,QACA,YACA,KACA,MACA,YACA,QACA,eAED,UAAa,CAAC,IAEf,GAAM,CAAE,SAAY,CACnB,aAAgB,CAAC,EACjB,aAAgB,CACf,OACA,OACA,OACA,OACA,SACA,SACA,OACA,OACA,QACA,SACA,SACA,OACA,SACA,QACA,QACA,OACA,SACA,OACA,OACA,OACA,OACA,MACA,OACA,SACA,MACA,QACA,OACA,OACA,MACA,OACA,MACA,KACA,OACA,aACA,OACA,OACA,OACA,OACA,KACA,SACA,OACA,OACA,SACA,OACA,MAED,UAAa,CAAC,IAEf,GAAM,CAAE,KAAQ,CACf,aAAgB,CACf,KAAQ,CACP,MAAS,YACT,OAAU,YACV,QAAU,GAEX,KAAQ,CACP,MAAS,eACT,OAAU,eACV,QAAU,IAGZ,aAAgB,GAChB,UAAa,CACZ,UAAa,6sJACb,aAAgB,6tKAGlB,GAAM,CAAE,SAAY,CACnB,aAAgB,CAAC,EACjB,aAAgB,CACf,UACA,OACA,SACA,OACA,OACA,OACA,UACA,QACA,UACA,QACA,WACA,QACA,OACA,OACA,QACA,UACA,OACA,MACA,OACA,QACA,OACA,MACA,QACA,OACA,KACA,UACA,MACA,KACA,OACA,OACA,OACA,SACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,OACA,OACA,KACA,OACA,QACA,SACA,OACA,OACA,QACA,OACA,OACA,QACA,QACA,OACA,QACA,UACA,OACA,QACA,MACA,OACA,SACA,OACA,QACA,MACA,OACA,OACA,SACA,SACA,WACA,OACA,OACA,SACA,OACA,QACA,OACA,QACA,OACA,OACA,OACA,KACA,OACA,WACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,MACA,SACA,QACA,SACA,WACA,QACA,MACA,QACA,OACA,MACA,OACA,OACA,OACA,QACA,MACA,OACA,QACA,OACA,SACA,OACA,OACA,MACA,OACA,OACA,QACA,OACA,SACA,OACA,OACA,KACA,OACA,OACA,SACA,OACA,QACA,OACA,MACA,QACA,MACA,WACA,QACA,SACA,KACA,QACA,OACA,OACA,SACA,MACA,MACA,OACA,OACA,UACA,QACA,OACA,QACA,OACA,OACA,OACA,QACA,QACA,MACA,QACA,OACA,OACA,SACA,QACA,OACA,OACA,OACA,MACA,OACA,OACA,UACA,OACA,OACA,QACA,aACA,QACA,SAED,UAAa,CAAC,IAEf,KAAQ,CACP,SAAY,CACX,aAAgB,CACf,GAAM,CACL,MAAS,WACT,OAAU,uBACV,QAAU,GAEX,GAAM,CACL,MAAS,MACT,OAAU,gBACV,QAAU,GAEX,GAAM,CACL,MAAS,MACT,OAAU,iCACV,QAAU,GAEX,EAAK,CACJ,MAAS,MACT,OAAU,MACV,QAAU,GAEX,EAAK,CACJ,OAAU,qBACV,QAAU,GAEX,EAAK,CACJ,MAAS,qBACT,QAAU,GAEX,EAAK,CACJ,MAAS,mBACT,OAAU,KACV,QAAU,GAEX,EAAK,CACJ,MAAS,UACT,OAAU,WACV,QAAU,GAEX,EAAK,CACJ,MAAS,KACT,OAAU,YACV,QAAU,GAEX,EAAK,CACJ,MAAS,iBACT,QAAU,GAEX,IAAO,CACN,MAAS,eACT,QAAU,GAEX,IAAO,CACN,OAAU,WACV,QAAU,GAEX,IAAO,CACN,MAAS,oBACT,OAAU,uEACV,QAAU,IAGZ,aAAgB,GAChB,UAAa,CACZ,IAAO,MACP,kBAAqB,krJACrB,gBAAmB,yLACnB,SAAY,+SACZ,SAAY,iyDACZ,QAAW,krJACX,GAAM,mCACN,IAAO,MACP,IAAO,8uFACP,KAAQ,s2LACR,kBAAqB,mhCACrB,SAAY,8KACZ,IAAO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","sources":["webpack://element-web/./node_modules/@formatjs/ecma402-abstract/CanonicalizeLocaleList.js","webpack://element-web/./node_modules/decimal.js/decimal.mjs","webpack://element-web/./node_modules/@formatjs/ecma402-abstract/GetOption.js","webpack://element-web/./node_modules/@formatjs/ecma402-abstract/262.js","webpack://element-web/./node_modules/@formatjs/fast-memoize/index.js","webpack://element-web/./node_modules/@formatjs/ecma402-abstract/utils.js","webpack://element-web/./node_modules/@formatjs/intl-localematcher/abstract/BestAvailableLocale.js","webpack://element-web/./node_modules/@formatjs/intl-localematcher/abstract/languageMatching.js","webpack://element-web/./node_modules/@formatjs/intl-localematcher/abstract/regions.generated.js","webpack://element-web/./node_modules/@formatjs/intl-localematcher/abstract/utils.js","webpack://element-web/./node_modules/@formatjs/intl-localematcher/abstract/LookupSupportedLocales.js","webpack://element-web/./node_modules/@formatjs/ecma402-abstract/SupportedLocales.js","webpack://element-web/./node_modules/@formatjs/intl-localematcher/abstract/BestFitMatcher.js","webpack://element-web/./node_modules/@formatjs/intl-localematcher/abstract/CanonicalizeUValue.js","webpack://element-web/./node_modules/@formatjs/intl-localematcher/abstract/CanonicalizeUnicodeLocaleId.js","webpack://element-web/./node_modules/@formatjs/intl-localematcher/abstract/ResolveLocale.js","webpack://element-web/./node_modules/@formatjs/intl-localematcher/abstract/LookupMatcher.js","webpack://element-web/./node_modules/@formatjs/intl-localematcher/abstract/UnicodeExtensionComponents.js","webpack://element-web/./node_modules/@formatjs/intl-localematcher/abstract/InsertUnicodeExtensionAndCanonicalize.js","webpack://element-web/./node_modules/@formatjs/intl-segmenter/src/cldr-segmentation-rules.generated.js","webpack://element-web/./node_modules/@formatjs/intl-segmenter/src/segmenter.js","webpack://element-web/./node_modules/@formatjs/intl-segmenter/src/segmentation-utils.js","webpack://element-web/./node_modules/@formatjs/ecma402-abstract/GetOptionsObject.js","webpack://element-web/./node_modules/@formatjs/intl-segmenter/polyfill-force.js"],"sourcesContent":["/**\n* http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n* @param locales\n*/\nexport function CanonicalizeLocaleList(locales) {\n\t// TODO\n\treturn Intl.getCanonicalLocales(locales);\n}\n","/*!\r\n * decimal.js v10.6.0\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js\r\n * Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * MIT Licence\r\n */\r\n\r\n\r\n// ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The maximum exponent magnitude.\r\n // The limit on the value of `toExpNeg`, `toExpPos`, `minE` and `maxE`.\r\nvar EXP_LIMIT = 9e15, // 0 to 9e15\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n // Base conversion alphabet.\r\n NUMERALS = '0123456789abcdef',\r\n\r\n // The natural logarithm of 10 (1025 digits).\r\n LN10 = '2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058',\r\n\r\n // Pi (1025 digits).\r\n PI = '3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789',\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n DEFAULTS = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed at run-time using the `Decimal.config` method.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used when rounding to `precision`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend (JavaScript %).\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 The IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)). Always positive.\r\n //\r\n // Truncated division (1), floored division (3), the IEEE 754 remainder (6), and Euclidian\r\n // division (9) are commonly used for the modulus operation. The other rounding modes can also\r\n // be used, but they may not give useful results.\r\n modulo: 1, // 0 to 9\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -EXP_LIMIT\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to EXP_LIMIT\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // JavaScript numbers: -324 (5e-324)\r\n minE: -EXP_LIMIT, // -1 to -EXP_LIMIT\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // JavaScript numbers: 308 (1.7976931348623157e+308)\r\n maxE: EXP_LIMIT, // 1 to EXP_LIMIT\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n crypto: false // true/false\r\n },\r\n\r\n\r\n// ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n inexact, quadrant,\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n precisionLimitExceeded = decimalError + 'Precision limit exceeded',\r\n cryptoUnavailable = decimalError + 'crypto unavailable',\r\n tag = '[object Decimal]',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isBinary = /^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,\r\n isHex = /^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,\r\n isOctal = /^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n\r\n LN10_PRECISION = LN10.length - 1,\r\n PI_PRECISION = PI.length - 1,\r\n\r\n // Decimal.prototype object\r\n P = { toStringTag: tag };\r\n\r\n\r\n// Decimal prototype methods\r\n\r\n\r\n/*\r\n * absoluteValue abs\r\n * ceil\r\n * clampedTo clamp\r\n * comparedTo cmp\r\n * cosine cos\r\n * cubeRoot cbrt\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy divToInt\r\n * equals eq\r\n * floor\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * hyperbolicCosine cosh\r\n * hyperbolicSine sinh\r\n * hyperbolicTangent tanh\r\n * inverseCosine acos\r\n * inverseHyperbolicCosine acosh\r\n * inverseHyperbolicSine asinh\r\n * inverseHyperbolicTangent atanh\r\n * inverseSine asin\r\n * inverseTangent atan\r\n * isFinite\r\n * isInteger isInt\r\n * isNaN\r\n * isNegative isNeg\r\n * isPositive isPos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * [maximum] [max]\r\n * [minimum] [min]\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * round\r\n * sine sin\r\n * squareRoot sqrt\r\n * tangent tan\r\n * times mul\r\n * toBinary\r\n * toDecimalPlaces toDP\r\n * toExponential\r\n * toFixed\r\n * toFraction\r\n * toHexadecimal toHex\r\n * toNearest\r\n * toNumber\r\n * toOctal\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits toSD\r\n * toString\r\n * truncated trunc\r\n * valueOf toJSON\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\nP.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s < 0) x.s = 1;\r\n return finalise(x);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of positive Infinity.\r\n *\r\n */\r\nP.ceil = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal clamped to the range\r\n * delineated by `min` and `max`.\r\n *\r\n * min {number|string|bigint|Decimal}\r\n * max {number|string|bigint|Decimal}\r\n *\r\n */\r\nP.clampedTo = P.clamp = function (min, max) {\r\n var k,\r\n x = this,\r\n Ctor = x.constructor;\r\n min = new Ctor(min);\r\n max = new Ctor(max);\r\n if (!min.s || !max.s) return new Ctor(NaN);\r\n if (min.gt(max)) throw Error(invalidArgument + max);\r\n k = x.cmp(min);\r\n return k < 0 ? min : x.cmp(max) > 0 ? max : new Ctor(x);\r\n};\r\n\r\n\r\n/*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value,\r\n * NaN if the value of either Decimal is NaN.\r\n *\r\n */\r\nP.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this,\r\n xd = x.d,\r\n yd = (y = new x.constructor(y)).d,\r\n xs = x.s,\r\n ys = y.s;\r\n\r\n // Either NaN or ±Infinity?\r\n if (!xd || !yd) {\r\n return !xs || !ys ? NaN : xs !== ys ? xs : xd === yd ? 0 : !xd ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Either zero?\r\n if (!xd[0] || !yd[0]) return xd[0] ? xs : yd[0] ? -ys : 0;\r\n\r\n // Signs differ?\r\n if (xs !== ys) return xs;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ xs < 0 ? 1 : -1;\r\n\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (xd[i] !== yd[i]) return xd[i] > yd[i] ^ xs < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ xs < 0 ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cosine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * cos(0) = 1\r\n * cos(-0) = 1\r\n * cos(Infinity) = NaN\r\n * cos(-Infinity) = NaN\r\n * cos(NaN) = NaN\r\n *\r\n */\r\nP.cosine = P.cos = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.d) return new Ctor(NaN);\r\n\r\n // cos(0) = cos(-0) = 1\r\n if (!x.d[0]) return new Ctor(1);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = cosine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 3 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n *\r\n * Return a new Decimal whose value is the cube root of the value of this Decimal, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * cbrt(0) = 0\r\n * cbrt(-0) = -0\r\n * cbrt(1) = 1\r\n * cbrt(-1) = -1\r\n * cbrt(N) = N\r\n * cbrt(-I) = -I\r\n * cbrt(I) = I\r\n *\r\n * Math.cbrt(x) = (x < 0 ? -Math.pow(-x, 1/3) : Math.pow(x, 1/3))\r\n *\r\n */\r\nP.cubeRoot = P.cbrt = function () {\r\n var e, m, n, r, rep, s, sd, t, t3, t3plusx,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = x.s * mathpow(x.s * x, 1 / 3);\r\n\r\n // Math.cbrt underflow/overflow?\r\n // Pass x to Math.pow as integer, then adjust the exponent of the result.\r\n if (!s || Math.abs(s) == 1 / 0) {\r\n n = digitsToString(x.d);\r\n e = x.e;\r\n\r\n // Adjust n exponent so it is a multiple of 3 away from x exponent.\r\n if (s = (e - n.length + 1) % 3) n += (s == 1 || s == -2 ? '0' : '00');\r\n s = mathpow(n, 1 / 3);\r\n\r\n // Rarely, e may be one less than the result exponent value.\r\n e = mathfloor((e + 1) / 3) - (e % 3 == (e < 0 ? -1 : 2));\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n r.s = x.s;\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Halley's method.\r\n // TODO? Compare Newton's method.\r\n for (;;) {\r\n t = r;\r\n t3 = t.times(t).times(t);\r\n t3plusx = t3.plus(x);\r\n r = divide(t3plusx.plus(x).times(t), t3plusx.plus(t3), sd + 2, 1);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or 4999\r\n // , i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n};\r\n\r\n\r\n/*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\nP.decimalPlaces = P.dp = function () {\r\n var w,\r\n d = this.d,\r\n n = NaN;\r\n\r\n if (d) {\r\n w = d.length - 1;\r\n n = (w - mathfloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) n--;\r\n if (n < 0) n = 0;\r\n }\r\n\r\n return n;\r\n};\r\n\r\n\r\n/*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.dividedToIntegerBy = P.divToInt = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return finalise(divide(x, new Ctor(y), 0, 1, 1), Ctor.precision, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\nP.equals = P.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number in the\r\n * direction of negative Infinity.\r\n *\r\n */\r\nP.floor = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 3);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\nP.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\nP.greaterThanOrEqualTo = P.gte = function (y) {\r\n var k = this.cmp(y);\r\n return k == 1 || k === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic cosine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [1, Infinity]\r\n *\r\n * cosh(x) = 1 + x^2/2! + x^4/4! + x^6/6! + ...\r\n *\r\n * cosh(0) = 1\r\n * cosh(-0) = 1\r\n * cosh(Infinity) = Infinity\r\n * cosh(-Infinity) = Infinity\r\n * cosh(NaN) = NaN\r\n *\r\n * x time taken (ms) result\r\n * 1000 9 9.8503555700852349694e+433\r\n * 10000 25 4.4034091128314607936e+4342\r\n * 100000 171 1.4033316802130615897e+43429\r\n * 1000000 3817 1.5166076984010437725e+434294\r\n * 10000000 abandoned after 2 minute wait\r\n *\r\n * TODO? Compare performance of cosh(x) = 0.5 * (exp(x) + exp(-x))\r\n *\r\n */\r\nP.hyperbolicCosine = P.cosh = function () {\r\n var k, n, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor,\r\n one = new Ctor(1);\r\n\r\n if (!x.isFinite()) return new Ctor(x.s ? 1 / 0 : NaN);\r\n if (x.isZero()) return one;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n // Argument reduction: cos(4x) = 1 - 8cos^2(x) + 8cos^4(x) + 1\r\n // i.e. cos(x) = 1 - cos^2(x/4)(8 - 8cos^2(x/4))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n // TODO? Estimation reused from cosine() and may not be optimal here.\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n n = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n n = '2.3283064365386962890625e-10';\r\n }\r\n\r\n x = taylorSeries(Ctor, 1, x.times(n), new Ctor(1), true);\r\n\r\n // Reverse argument reduction\r\n var cosh2_x,\r\n i = k,\r\n d8 = new Ctor(8);\r\n for (; i--;) {\r\n cosh2_x = x.times(x);\r\n x = one.minus(cosh2_x.times(d8.minus(cosh2_x.times(d8))));\r\n }\r\n\r\n return finalise(x, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic sine of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * sinh(x) = x + x^3/3! + x^5/5! + x^7/7! + ...\r\n *\r\n * sinh(0) = 0\r\n * sinh(-0) = -0\r\n * sinh(Infinity) = Infinity\r\n * sinh(-Infinity) = -Infinity\r\n * sinh(NaN) = NaN\r\n *\r\n * x time taken (ms)\r\n * 10 2 ms\r\n * 100 5 ms\r\n * 1000 14 ms\r\n * 10000 82 ms\r\n * 100000 886 ms 1.4033316802130615897e+43429\r\n * 200000 2613 ms\r\n * 300000 5407 ms\r\n * 400000 8824 ms\r\n * 500000 13026 ms 8.7080643612718084129e+217146\r\n * 1000000 48543 ms\r\n *\r\n * TODO? Compare performance of sinh(x) = 0.5 * (exp(x) - exp(-x))\r\n *\r\n */\r\nP.hyperbolicSine = P.sinh = function () {\r\n var k, pr, rm, len,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n } else {\r\n\r\n // Alternative argument reduction: sinh(3x) = sinh(x)(3 + 4sinh^2(x))\r\n // i.e. sinh(x) = sinh(x/3)(3 + 4sinh^2(x/3))\r\n // 3 multiplications and 1 addition\r\n\r\n // Argument reduction: sinh(5x) = sinh(x)(5 + sinh^2(x)(20 + 16sinh^2(x)))\r\n // i.e. sinh(x) = sinh(x/5)(5 + sinh^2(x/5)(20 + 16sinh^2(x/5)))\r\n // 4 multiplications and 2 additions\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x, true);\r\n\r\n // Reverse argument reduction\r\n var sinh2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sinh2_x = x.times(x);\r\n x = x.times(d5.plus(sinh2_x.times(d16.times(sinh2_x).plus(d20))));\r\n }\r\n }\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic tangent of the value in radians of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * tanh(x) = sinh(x) / cosh(x)\r\n *\r\n * tanh(0) = 0\r\n * tanh(-0) = -0\r\n * tanh(Infinity) = 1\r\n * tanh(-Infinity) = -1\r\n * tanh(NaN) = NaN\r\n *\r\n */\r\nP.hyperbolicTangent = P.tanh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(x.s);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 7;\r\n Ctor.rounding = 1;\r\n\r\n return divide(x.sinh(), x.cosh(), Ctor.precision = pr, Ctor.rounding = rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arccosine (inverse cosine) in radians of the value of\r\n * this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [0, pi]\r\n *\r\n * acos(x) = pi/2 - asin(x)\r\n *\r\n * acos(0) = pi/2\r\n * acos(-0) = pi/2\r\n * acos(1) = 0\r\n * acos(-1) = pi\r\n * acos(1/2) = pi/3\r\n * acos(-1/2) = 2*pi/3\r\n * acos(|x| > 1) = NaN\r\n * acos(NaN) = NaN\r\n *\r\n */\r\nP.inverseCosine = P.acos = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n k = x.abs().cmp(1),\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n return k === 0\r\n // |x| is 1\r\n ? x.isNeg() ? getPi(Ctor, pr, rm) : new Ctor(0)\r\n // |x| > 1 or x is NaN\r\n : new Ctor(NaN);\r\n }\r\n\r\n if (x.isZero()) return getPi(Ctor, pr + 4, rm).times(0.5);\r\n\r\n // TODO? Special case acos(0.5) = pi/3 and acos(-0.5) = 2*pi/3\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n // See https://github.com/MikeMcl/decimal.js/pull/217\r\n x = new Ctor(1).minus(x).div(x.plus(1)).sqrt().atan();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [1, Infinity]\r\n * Range: [0, Infinity]\r\n *\r\n * acosh(x) = ln(x + sqrt(x^2 - 1))\r\n *\r\n * acosh(x < 1) = NaN\r\n * acosh(NaN) = NaN\r\n * acosh(Infinity) = Infinity\r\n * acosh(-Infinity) = NaN\r\n * acosh(0) = NaN\r\n * acosh(-0) = NaN\r\n * acosh(1) = 0\r\n * acosh(-1) = NaN\r\n *\r\n */\r\nP.inverseHyperbolicCosine = P.acosh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.lte(1)) return new Ctor(x.eq(1) ? 0 : NaN);\r\n if (!x.isFinite()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(Math.abs(x.e), x.sd()) + 4;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).minus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * asinh(x) = ln(x + sqrt(x^2 + 1))\r\n *\r\n * asinh(NaN) = NaN\r\n * asinh(Infinity) = Infinity\r\n * asinh(-Infinity) = -Infinity\r\n * asinh(0) = 0\r\n * asinh(-0) = -0\r\n *\r\n */\r\nP.inverseHyperbolicSine = P.asinh = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite() || x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 2 * Math.max(Math.abs(x.e), x.sd()) + 6;\r\n Ctor.rounding = 1;\r\n external = false;\r\n\r\n x = x.times(x).plus(1).sqrt().plus(x);\r\n\r\n external = true;\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.ln();\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent in radians of the\r\n * value of this Decimal.\r\n *\r\n * Domain: [-1, 1]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * atanh(x) = 0.5 * ln((1 + x) / (1 - x))\r\n *\r\n * atanh(|x| > 1) = NaN\r\n * atanh(NaN) = NaN\r\n * atanh(Infinity) = NaN\r\n * atanh(-Infinity) = NaN\r\n * atanh(0) = 0\r\n * atanh(-0) = -0\r\n * atanh(1) = Infinity\r\n * atanh(-1) = -Infinity\r\n *\r\n */\r\nP.inverseHyperbolicTangent = P.atanh = function () {\r\n var pr, rm, wpr, xsd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.e >= 0) return new Ctor(x.abs().eq(1) ? x.s / 0 : x.isZero() ? x : NaN);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n xsd = x.sd();\r\n\r\n if (Math.max(xsd, pr) < 2 * -x.e - 1) return finalise(new Ctor(x), pr, rm, true);\r\n\r\n Ctor.precision = wpr = xsd - x.e;\r\n\r\n x = divide(x.plus(1), new Ctor(1).minus(x), wpr + pr, 1);\r\n\r\n Ctor.precision = pr + 4;\r\n Ctor.rounding = 1;\r\n\r\n x = x.ln();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(0.5);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arcsine (inverse sine) in radians of the value of this\r\n * Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * asin(x) = 2*atan(x/(1 + sqrt(1 - x^2)))\r\n *\r\n * asin(0) = 0\r\n * asin(-0) = -0\r\n * asin(1/2) = pi/6\r\n * asin(-1/2) = -pi/6\r\n * asin(1) = pi/2\r\n * asin(-1) = -pi/2\r\n * asin(|x| > 1) = NaN\r\n * asin(NaN) = NaN\r\n *\r\n * TODO? Compare performance of Taylor series.\r\n *\r\n */\r\nP.inverseSine = P.asin = function () {\r\n var halfPi, k,\r\n pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n k = x.abs().cmp(1);\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (k !== -1) {\r\n\r\n // |x| is 1\r\n if (k === 0) {\r\n halfPi = getPi(Ctor, pr + 4, rm).times(0.5);\r\n halfPi.s = x.s;\r\n return halfPi;\r\n }\r\n\r\n // |x| > 1 or x is NaN\r\n return new Ctor(NaN);\r\n }\r\n\r\n // TODO? Special case asin(1/2) = pi/6 and asin(-1/2) = -pi/6\r\n\r\n Ctor.precision = pr + 6;\r\n Ctor.rounding = 1;\r\n\r\n x = x.div(new Ctor(1).minus(x.times(x)).sqrt().plus(1)).atan();\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return x.times(2);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent (inverse tangent) in radians of the value\r\n * of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi/2, pi/2]\r\n *\r\n * atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n *\r\n * atan(0) = 0\r\n * atan(-0) = -0\r\n * atan(1) = pi/4\r\n * atan(-1) = -pi/4\r\n * atan(Infinity) = pi/2\r\n * atan(-Infinity) = -pi/2\r\n * atan(NaN) = NaN\r\n *\r\n */\r\nP.inverseTangent = P.atan = function () {\r\n var i, j, k, n, px, t, r, wpr, x2,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding;\r\n\r\n if (!x.isFinite()) {\r\n if (!x.s) return new Ctor(NaN);\r\n if (pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.5);\r\n r.s = x.s;\r\n return r;\r\n }\r\n } else if (x.isZero()) {\r\n return new Ctor(x);\r\n } else if (x.abs().eq(1) && pr + 4 <= PI_PRECISION) {\r\n r = getPi(Ctor, pr + 4, rm).times(0.25);\r\n r.s = x.s;\r\n return r;\r\n }\r\n\r\n Ctor.precision = wpr = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n // TODO? if (x >= 1 && pr <= PI_PRECISION) atan(x) = halfPi * x.s - atan(1 / x);\r\n\r\n // Argument reduction\r\n // Ensure |x| < 0.42\r\n // atan(x) = 2 * atan(x / (1 + sqrt(1 + x^2)))\r\n\r\n k = Math.min(28, wpr / LOG_BASE + 2 | 0);\r\n\r\n for (i = k; i; --i) x = x.div(x.times(x).plus(1).sqrt().plus(1));\r\n\r\n external = false;\r\n\r\n j = Math.ceil(wpr / LOG_BASE);\r\n n = 1;\r\n x2 = x.times(x);\r\n r = new Ctor(x);\r\n px = x;\r\n\r\n // atan(x) = x - x^3/3 + x^5/5 - x^7/7 + ...\r\n for (; i !== -1;) {\r\n px = px.times(x2);\r\n t = r.minus(px.div(n += 2));\r\n\r\n px = px.times(x2);\r\n r = t.plus(px.div(n += 2));\r\n\r\n if (r.d[j] !== void 0) for (i = j; r.d[i] === t.d[i] && i--;);\r\n }\r\n\r\n if (k) r = r.times(2 << (k - 1));\r\n\r\n external = true;\r\n\r\n return finalise(r, Ctor.precision = pr, Ctor.rounding = rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is a finite number, otherwise return false.\r\n *\r\n */\r\nP.isFinite = function () {\r\n return !!this.d;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\nP.isInteger = P.isInt = function () {\r\n return !!this.d && mathfloor(this.e / LOG_BASE) > this.d.length - 2;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is NaN, otherwise return false.\r\n *\r\n */\r\nP.isNaN = function () {\r\n return !this.s;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\nP.isNegative = P.isNeg = function () {\r\n return this.s < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\nP.isPositive = P.isPos = function () {\r\n return this.s > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is 0 or -0, otherwise return false.\r\n *\r\n */\r\nP.isZero = function () {\r\n return !!this.d && this.d[0] === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return the logarithm of the value of this Decimal to the specified base, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * If no base is specified, return log[10](arg).\r\n *\r\n * log[base](arg) = ln(arg) / ln(base)\r\n *\r\n * The result will always be correctly rounded if the base of the log is 10, and 'almost always'\r\n * otherwise:\r\n *\r\n * Depending on the rounding mode, the result may be incorrectly rounded if the first fifteen\r\n * rounding digits are [49]99999999999999 or [50]00000000000000. In that case, the maximum error\r\n * between the result and the correctly rounded result will be one ulp (unit in the last place).\r\n *\r\n * log[-b](a) = NaN\r\n * log[0](a) = NaN\r\n * log[1](a) = NaN\r\n * log[NaN](a) = NaN\r\n * log[Infinity](a) = NaN\r\n * log[b](0) = -Infinity\r\n * log[b](-0) = -Infinity\r\n * log[b](-a) = NaN\r\n * log[b](1) = 0\r\n * log[b](Infinity) = Infinity\r\n * log[b](NaN) = NaN\r\n *\r\n * [base] {number|string|bigint|Decimal} The base of the logarithm.\r\n *\r\n */\r\nP.logarithm = P.log = function (base) {\r\n var isBase10, d, denominator, k, inf, num, sd, r,\r\n arg = this,\r\n Ctor = arg.constructor,\r\n pr = Ctor.precision,\r\n rm = Ctor.rounding,\r\n guard = 5;\r\n\r\n // Default base is 10.\r\n if (base == null) {\r\n base = new Ctor(10);\r\n isBase10 = true;\r\n } else {\r\n base = new Ctor(base);\r\n d = base.d;\r\n\r\n // Return NaN if base is negative, or non-finite, or is 0 or 1.\r\n if (base.s < 0 || !d || !d[0] || base.eq(1)) return new Ctor(NaN);\r\n\r\n isBase10 = base.eq(10);\r\n }\r\n\r\n d = arg.d;\r\n\r\n // Is arg negative, non-finite, 0 or 1?\r\n if (arg.s < 0 || !d || !d[0] || arg.eq(1)) {\r\n return new Ctor(d && !d[0] ? -1 / 0 : arg.s != 1 ? NaN : d ? 0 : 1 / 0);\r\n }\r\n\r\n // The result will have a non-terminating decimal expansion if base is 10 and arg is not an\r\n // integer power of 10.\r\n if (isBase10) {\r\n if (d.length > 1) {\r\n inf = true;\r\n } else {\r\n for (k = d[0]; k % 10 === 0;) k /= 10;\r\n inf = k !== 1;\r\n }\r\n }\r\n\r\n external = false;\r\n sd = pr + guard;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n\r\n // The result will have 5 rounding digits.\r\n r = divide(num, denominator, sd, 1);\r\n\r\n // If at a rounding boundary, i.e. the result's rounding digits are [49]9999 or [50]0000,\r\n // calculate 10 further digits.\r\n //\r\n // If the result is known to have an infinite decimal expansion, repeat this until it is clear\r\n // that the result is above or below the boundary. Otherwise, if after calculating the 10\r\n // further digits, the last 14 are nines, round up and assume the result is exact.\r\n // Also assume the result is exact if the last 14 are zero.\r\n //\r\n // Example of a result that will be incorrectly rounded:\r\n // log[1048576](4503599627370502) = 2.60000000000000009610279511444746...\r\n // The above result correctly rounded using ROUND_CEIL to 1 decimal place should be 2.7, but it\r\n // will be given as 2.6 as there are 15 zeros immediately after the requested decimal place, so\r\n // the exact result would be assumed to be 2.6, which rounded using ROUND_CEIL to 1 decimal\r\n // place is still 2.6.\r\n if (checkRoundingDigits(r.d, k = pr, rm)) {\r\n\r\n do {\r\n sd += 10;\r\n num = naturalLogarithm(arg, sd);\r\n denominator = isBase10 ? getLn10(Ctor, sd + 10) : naturalLogarithm(base, sd);\r\n r = divide(num, denominator, sd, 1);\r\n\r\n if (!inf) {\r\n\r\n // Check for 14 nines from the 2nd rounding digit, as the first may be 4.\r\n if (+digitsToString(r.d).slice(k + 1, k + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n\r\n break;\r\n }\r\n } while (checkRoundingDigits(r.d, k += 10, rm));\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, pr, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the maximum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\nP.max = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, -1);\r\n};\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the minimum of the arguments and the value of this Decimal.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\nP.min = function () {\r\n Array.prototype.push.call(arguments, this);\r\n return maxOrMin(this.constructor, arguments, 1);\r\n};\r\n */\r\n\r\n\r\n/*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.minus = P.sub = function (y) {\r\n var d, e, i, j, k, len, pr, rm, xd, xe, xLTy, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return y negated if x is finite and y is ±Infinity.\r\n else if (x.d) y.s = -y.s;\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with different signs.\r\n // Return NaN if both are ±Infinity with the same sign.\r\n else y = new Ctor(y.d || x.s !== y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.plus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return y negated if x is zero and y is non-zero.\r\n if (yd[0]) y.s = -y.s;\r\n\r\n // Return x if y is zero and x is non-zero.\r\n else if (xd[0]) y = new Ctor(x);\r\n\r\n // Return zero if both are zero.\r\n // From IEEE 754 (2008) 6.3: 0 - 0 = -0 - -0 = -0 when rounding to -Infinity.\r\n else return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n e = mathfloor(y.e / LOG_BASE);\r\n xe = mathfloor(x.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of\r\n // zeros needing to be prepended, but this can be avoided while still ensuring correct\r\n // rounding by limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to `xd` if shorter.\r\n // Don't add zeros to `yd` if shorter as subtraction only needs to start at `yd` length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(rm === 3 ? -0 : 0);\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n};\r\n\r\n\r\n/*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * The result depends on the modulo mode.\r\n *\r\n */\r\nP.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // Return NaN if x is ±Infinity or NaN, or y is NaN or ±0.\r\n if (!x.d || !y.s || y.d && !y.d[0]) return new Ctor(NaN);\r\n\r\n // Return x if y is ±Infinity or x is ±0.\r\n if (!y.d || x.d && !x.d[0]) {\r\n return finalise(new Ctor(x), Ctor.precision, Ctor.rounding);\r\n }\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n\r\n if (Ctor.modulo == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // result = x - q * y where 0 <= result < abs(y)\r\n q = divide(x, y.abs(), 0, 3, 1);\r\n q.s *= y.s;\r\n } else {\r\n q = divide(x, y, 0, Ctor.modulo, 1);\r\n }\r\n\r\n q = q.times(y);\r\n\r\n external = true;\r\n\r\n return x.minus(q);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.naturalExponential = P.exp = function () {\r\n return naturalExponential(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.naturalLogarithm = P.ln = function () {\r\n return naturalLogarithm(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\nP.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s;\r\n return finalise(x);\r\n};\r\n\r\n\r\n/*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.plus = P.add = function (y) {\r\n var carry, d, e, i, k, len, pr, rm, xd, yd,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n y = new Ctor(y);\r\n\r\n // If either is not finite...\r\n if (!x.d || !y.d) {\r\n\r\n // Return NaN if either is NaN.\r\n if (!x.s || !y.s) y = new Ctor(NaN);\r\n\r\n // Return x if y is finite and x is ±Infinity.\r\n // Return x if both are ±Infinity with the same sign.\r\n // Return NaN if both are ±Infinity with different signs.\r\n // Return y if x is finite and y is ±Infinity.\r\n else if (!x.d) y = new Ctor(y.d || x.s === y.s ? x : NaN);\r\n\r\n return y;\r\n }\r\n\r\n // If signs differ...\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n // If either is zero...\r\n if (!xd[0] || !yd[0]) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!yd[0]) y = new Ctor(x);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n }\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n // Calculate base 1e7 exponents.\r\n k = mathfloor(x.e / LOG_BASE);\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = getBase10Exponent(xd, e);\r\n\r\n return external ? finalise(y, pr, rm) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\nP.precision = P.sd = function (z) {\r\n var k,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n if (x.d) {\r\n k = getPrecision(x.d);\r\n if (z && x.e + 1 > k) k = x.e + 1;\r\n } else {\r\n k = NaN;\r\n }\r\n\r\n return k;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\nP.round = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n return finalise(new Ctor(x), x.e + 1, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sine of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-1, 1]\r\n *\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n *\r\n * sin(0) = 0\r\n * sin(-0) = -0\r\n * sin(Infinity) = NaN\r\n * sin(-Infinity) = NaN\r\n * sin(NaN) = NaN\r\n *\r\n */\r\nP.sine = P.sin = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + Math.max(x.e, x.sd()) + LOG_BASE;\r\n Ctor.rounding = 1;\r\n\r\n x = sine(Ctor, toLessThanHalfPi(Ctor, x));\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant > 2 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of this Decimal, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n */\r\nP.squareRoot = P.sqrt = function () {\r\n var m, n, sd, r, rep, t,\r\n x = this,\r\n d = x.d,\r\n e = x.e,\r\n s = x.s,\r\n Ctor = x.constructor;\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !d || !d[0]) {\r\n return new Ctor(!s || s < 0 && (!d || d[0]) ? NaN : d ? x : 1 / 0);\r\n }\r\n\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(d);\r\n\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n sd = (e = Ctor.precision) + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, sd + 2, 1)).times(0.5);\r\n\r\n // TODO? Replace with for-loop and checkRoundingDigits.\r\n if (digitsToString(t.d).slice(0, sd) === (n = digitsToString(r.d)).slice(0, sd)) {\r\n n = n.slice(sd - 3, sd + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n if (!rep) {\r\n finalise(t, e + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n sd += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If the rounding digits are null, 0{0,4} or 50{0,3}, check for an exact result.\r\n // If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n finalise(r, e + 1, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return finalise(r, e, Ctor.rounding, m);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the tangent of the value in radians of this Decimal.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-Infinity, Infinity]\r\n *\r\n * tan(0) = 0\r\n * tan(-0) = -0\r\n * tan(Infinity) = NaN\r\n * tan(-Infinity) = NaN\r\n * tan(NaN) = NaN\r\n *\r\n */\r\nP.tangent = P.tan = function () {\r\n var pr, rm,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (!x.isFinite()) return new Ctor(NaN);\r\n if (x.isZero()) return new Ctor(x);\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n Ctor.precision = pr + 10;\r\n Ctor.rounding = 1;\r\n\r\n x = x.sin();\r\n x.s = 1;\r\n x = divide(x, new Ctor(1).minus(x.times(x)).sqrt(), pr + 10, 0);\r\n\r\n Ctor.precision = pr;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(quadrant == 2 || quadrant == 4 ? x.neg() : x, pr, rm, true);\r\n};\r\n\r\n\r\n/*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new Decimal whose value is this Decimal times `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n */\r\nP.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n y.s *= x.s;\r\n\r\n // If either is NaN, ±Infinity or ±0...\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(!y.s || xd && !xd[0] && !yd || yd && !yd[0] && !xd\r\n\r\n // Return NaN if either is NaN.\r\n // Return NaN if x is ±0 and y is ±Infinity, or y is ±0 and x is ±Infinity.\r\n ? NaN\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n // Return ±0 if either is ±0.\r\n : !xd || !yd ? y.s / 0 : y.s * 0);\r\n }\r\n\r\n e = mathfloor(x.e / LOG_BASE) + mathfloor(y.e / LOG_BASE);\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = getBase10Exponent(r, e);\r\n\r\n return external ? finalise(y, Ctor.precision, Ctor.rounding) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 2, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toBinary = function (sd, rm) {\r\n return toStringBinary(this, 2, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toDecimalPlaces = P.toDP = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return finalise(x, dp + x.e + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), dp + 1, rm);\r\n str = finiteToString(x, true, dp + 1);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\nP.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = finiteToString(x);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = finalise(new Ctor(x), dp + x.e + 1, rm);\r\n str = finiteToString(y, false, dp + y.e + 1);\r\n }\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return an array representing the value of this Decimal as a simple fraction with an integer\r\n * numerator and an integer denominator.\r\n *\r\n * The denominator will be a positive non-zero value less than or equal to the specified maximum\r\n * denominator. If a maximum denominator is not specified, the denominator will be the lowest\r\n * value necessary to represent the number exactly.\r\n *\r\n * [maxD] {number|string|bigint|Decimal} Maximum denominator. Integer >= 1 and < Infinity.\r\n *\r\n */\r\nP.toFraction = function (maxD) {\r\n var d, d0, d1, d2, e, k, n, n0, n1, pr, q, r,\r\n x = this,\r\n xd = x.d,\r\n Ctor = x.constructor;\r\n\r\n if (!xd) return new Ctor(x);\r\n\r\n n1 = d0 = new Ctor(1);\r\n d1 = n0 = new Ctor(0);\r\n\r\n d = new Ctor(d1);\r\n e = d.e = getPrecision(xd) - x.e - 1;\r\n k = e % LOG_BASE;\r\n d.d[0] = mathpow(10, k < 0 ? LOG_BASE + k : k);\r\n\r\n if (maxD == null) {\r\n\r\n // d is 10**e, the minimum max-denominator needed.\r\n maxD = e > 0 ? d : n1;\r\n } else {\r\n n = new Ctor(maxD);\r\n if (!n.isInt() || n.lt(n1)) throw Error(invalidArgument + n);\r\n maxD = n.gt(d) ? (e > 0 ? d : n1) : n;\r\n }\r\n\r\n external = false;\r\n n = new Ctor(digitsToString(xd));\r\n pr = Ctor.precision;\r\n Ctor.precision = e = xd.length * LOG_BASE * 2;\r\n\r\n for (;;) {\r\n q = divide(n, d, 0, 1, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.cmp(maxD) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n d2 = n1;\r\n n1 = n0.plus(q.times(d2));\r\n n0 = d2;\r\n d2 = d;\r\n d = n.minus(q.times(d2));\r\n n = d2;\r\n }\r\n\r\n d2 = divide(maxD.minus(d0), d1, 0, 1, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1?\r\n r = divide(n1, d1, e, 1).minus(x).abs().cmp(divide(n0, d0, e, 1).minus(x).abs()) < 1\r\n ? [n1, d1] : [n0, d0];\r\n\r\n Ctor.precision = pr;\r\n external = true;\r\n\r\n return r;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 16, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toHexadecimal = P.toHex = function (sd, rm) {\r\n return toStringBinary(this, 16, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Returns a new Decimal whose value is the nearest multiple of `y` in the direction of rounding\r\n * mode `rm`, or `Decimal.rounding` if `rm` is omitted, to the value of this Decimal.\r\n *\r\n * The return value will always have the same sign as this Decimal, unless either this Decimal\r\n * or `y` is NaN, in which case the return value will be also be NaN.\r\n *\r\n * The return value is not affected by the value of `precision`.\r\n *\r\n * y {number|string|bigint|Decimal} The magnitude to round to a multiple of.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toNearest() rounding mode not an integer: {rm}'\r\n * 'toNearest() rounding mode out of range: {rm}'\r\n *\r\n */\r\nP.toNearest = function (y, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n\r\n if (y == null) {\r\n\r\n // If x is not finite, return x.\r\n if (!x.d) return x;\r\n\r\n y = new Ctor(1);\r\n rm = Ctor.rounding;\r\n } else {\r\n y = new Ctor(y);\r\n if (rm === void 0) {\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(rm, 0, 8);\r\n }\r\n\r\n // If x is not finite, return x if y is not NaN, else NaN.\r\n if (!x.d) return y.s ? x : y;\r\n\r\n // If y is not finite, return Infinity with the sign of x if y is Infinity, else NaN.\r\n if (!y.d) {\r\n if (y.s) y.s = x.s;\r\n return y;\r\n }\r\n }\r\n\r\n // If y is not zero, calculate the nearest multiple of y to x.\r\n if (y.d[0]) {\r\n external = false;\r\n x = divide(x, y, 0, rm, 1).times(y);\r\n external = true;\r\n finalise(x);\r\n\r\n // If y is zero, return zero with the sign of x.\r\n } else {\r\n y.s = x.s;\r\n x = y;\r\n }\r\n\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return the value of this Decimal converted to a number primitive.\r\n * Zero keeps its sign.\r\n *\r\n */\r\nP.toNumber = function () {\r\n return +this;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in base 8, round to `sd` significant\r\n * digits using rounding mode `rm`.\r\n *\r\n * If the optional `sd` argument is present then return binary exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toOctal = function (sd, rm) {\r\n return toStringBinary(this, 8, sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`, rounded\r\n * to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * ECMAScript compliant.\r\n *\r\n * pow(x, NaN) = NaN\r\n * pow(x, ±0) = 1\r\n\r\n * pow(NaN, non-zero) = NaN\r\n * pow(abs(x) > 1, +Infinity) = +Infinity\r\n * pow(abs(x) > 1, -Infinity) = +0\r\n * pow(abs(x) == 1, ±Infinity) = NaN\r\n * pow(abs(x) < 1, +Infinity) = +0\r\n * pow(abs(x) < 1, -Infinity) = +Infinity\r\n * pow(+Infinity, y > 0) = +Infinity\r\n * pow(+Infinity, y < 0) = +0\r\n * pow(-Infinity, odd integer > 0) = -Infinity\r\n * pow(-Infinity, even integer > 0) = +Infinity\r\n * pow(-Infinity, odd integer < 0) = -0\r\n * pow(-Infinity, even integer < 0) = +0\r\n * pow(+0, y > 0) = +0\r\n * pow(+0, y < 0) = +Infinity\r\n * pow(-0, odd integer > 0) = -0\r\n * pow(-0, even integer > 0) = +0\r\n * pow(-0, odd integer < 0) = -Infinity\r\n * pow(-0, even integer < 0) = +Infinity\r\n * pow(finite x < 0, finite non-integer) = NaN\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * Assuming the first 15 rounding digits are each equally likely to be any digit 0-9, the\r\n * probability of an incorrectly rounded result\r\n * P([49]9{14} | [50]0{14}) = 2 * 0.2 * 10^-14 = 4e-15 = 1/2.5e+14\r\n * i.e. 1 in 250,000,000,000,000\r\n *\r\n * If a result is incorrectly rounded the maximum error will be 1 ulp (unit in last place).\r\n *\r\n * y {number|string|bigint|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\nP.toPower = P.pow = function (y) {\r\n var e, k, pr, r, rm, s,\r\n x = this,\r\n Ctor = x.constructor,\r\n yn = +(y = new Ctor(y));\r\n\r\n // Either ±Infinity, NaN or ±0?\r\n if (!x.d || !y.d || !x.d[0] || !y.d[0]) return new Ctor(mathpow(+x, yn));\r\n\r\n x = new Ctor(x);\r\n\r\n if (x.eq(1)) return x;\r\n\r\n pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n\r\n if (y.eq(1)) return finalise(x, pr, rm);\r\n\r\n // y exponent\r\n e = mathfloor(y.e / LOG_BASE);\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n if (e >= y.d.length - 1 && (k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = intPow(Ctor, x, k, pr);\r\n return y.s < 0 ? new Ctor(1).div(r) : finalise(r, pr, rm);\r\n }\r\n\r\n s = x.s;\r\n\r\n // if x is negative\r\n if (s < 0) {\r\n\r\n // if y is not an integer\r\n if (e < y.d.length - 1) return new Ctor(NaN);\r\n\r\n // Result is positive if x is negative and the last digit of integer y is even.\r\n if ((y.d[e] & 1) == 0) s = 1;\r\n\r\n // if x.eq(-1)\r\n if (x.e == 0 && x.d[0] == 1 && x.d.length == 1) {\r\n x.s = s;\r\n return x;\r\n }\r\n }\r\n\r\n // Estimate result exponent.\r\n // x^y = 10^e, where e = y * log10(x)\r\n // log10(x) = log10(x_significand) + x_exponent\r\n // log10(x_significand) = ln(x_significand) / ln(10)\r\n k = mathpow(+x, yn);\r\n e = k == 0 || !isFinite(k)\r\n ? mathfloor(yn * (Math.log('0.' + digitsToString(x.d)) / Math.LN10 + x.e + 1))\r\n : new Ctor(k + '').e;\r\n\r\n // Exponent estimate may be incorrect e.g. x: 0.999999999999999999, y: 2.29, e: 0, r.e: -1.\r\n\r\n // Overflow/underflow?\r\n if (e > Ctor.maxE + 1 || e < Ctor.minE - 1) return new Ctor(e > 0 ? s / 0 : 0);\r\n\r\n external = false;\r\n Ctor.rounding = x.s = 1;\r\n\r\n // Estimate the extra guard digits needed to ensure five correct rounding digits from\r\n // naturalLogarithm(x). Example of failure without these extra digits (precision: 10):\r\n // new Decimal(2.32456).pow('2087987436534566.46411')\r\n // should be 1.162377823e+764914905173815, but is 1.162355823e+764914905173815\r\n k = Math.min(12, (e + '').length);\r\n\r\n // r = x^y = exp(y*ln(x))\r\n r = naturalExponential(y.times(naturalLogarithm(x, pr + k)), pr);\r\n\r\n // r may be Infinity, e.g. (0.9999999999999999).pow(-1e+40)\r\n if (r.d) {\r\n\r\n // Truncate to the required precision plus five rounding digits.\r\n r = finalise(r, pr + 5, 1);\r\n\r\n // If the rounding digits are [49]9999 or [50]0000 increase the precision by 10 and recalculate\r\n // the result.\r\n if (checkRoundingDigits(r.d, pr, rm)) {\r\n e = pr + 10;\r\n\r\n // Truncate to the increased precision plus five rounding digits.\r\n r = finalise(naturalExponential(y.times(naturalLogarithm(x, e + k)), e), e + 5, 1);\r\n\r\n // Check for 14 nines from the 2nd rounding digit (the first rounding digit may be 4 or 9).\r\n if (+digitsToString(r.d).slice(pr + 1, pr + 15) + 1 == 1e14) {\r\n r = finalise(r, pr + 1, 0);\r\n }\r\n }\r\n }\r\n\r\n r.s = s;\r\n external = true;\r\n Ctor.rounding = rm;\r\n\r\n return finalise(r, pr, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = finalise(new Ctor(x), sd, rm);\r\n str = finiteToString(x, sd <= x.e || x.e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * 'toSD() digits out of range: {sd}'\r\n * 'toSD() digits not an integer: {sd}'\r\n * 'toSD() rounding mode not an integer: {rm}'\r\n * 'toSD() rounding mode out of range: {rm}'\r\n *\r\n */\r\nP.toSignificantDigits = P.toSD = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return finalise(new Ctor(x), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\nP.toString = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal truncated to a whole number.\r\n *\r\n */\r\nP.truncated = P.trunc = function () {\r\n return finalise(new this.constructor(this), this.e + 1, 1);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n * Unlike `toString`, negative zero will include the minus sign.\r\n *\r\n */\r\nP.valueOf = P.toJSON = function () {\r\n var x = this,\r\n Ctor = x.constructor,\r\n str = finiteToString(x, x.e <= Ctor.toExpNeg || x.e >= Ctor.toExpPos);\r\n\r\n return x.isNeg() ? '-' + str : str;\r\n};\r\n\r\n\r\n// Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n/*\r\n * digitsToString P.cubeRoot, P.logarithm, P.squareRoot, P.toFraction, P.toPower,\r\n * finiteToString, naturalExponential, naturalLogarithm\r\n * checkInt32 P.toDecimalPlaces, P.toExponential, P.toFixed, P.toNearest,\r\n * P.toPrecision, P.toSignificantDigits, toStringBinary, random\r\n * checkRoundingDigits P.logarithm, P.toPower, naturalExponential, naturalLogarithm\r\n * convertBase toStringBinary, parseOther\r\n * cos P.cos\r\n * divide P.atanh, P.cubeRoot, P.dividedBy, P.dividedToIntegerBy,\r\n * P.logarithm, P.modulo, P.squareRoot, P.tan, P.tanh, P.toFraction,\r\n * P.toNearest, toStringBinary, naturalExponential, naturalLogarithm,\r\n * taylorSeries, atan2, parseOther\r\n * finalise P.absoluteValue, P.atan, P.atanh, P.ceil, P.cos, P.cosh,\r\n * P.cubeRoot, P.dividedToIntegerBy, P.floor, P.logarithm, P.minus,\r\n * P.modulo, P.negated, P.plus, P.round, P.sin, P.sinh, P.squareRoot,\r\n * P.tan, P.times, P.toDecimalPlaces, P.toExponential, P.toFixed,\r\n * P.toNearest, P.toPower, P.toPrecision, P.toSignificantDigits,\r\n * P.truncated, divide, getLn10, getPi, naturalExponential,\r\n * naturalLogarithm, ceil, floor, round, trunc\r\n * finiteToString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf,\r\n * toStringBinary\r\n * getBase10Exponent P.minus, P.plus, P.times, parseOther\r\n * getLn10 P.logarithm, naturalLogarithm\r\n * getPi P.acos, P.asin, P.atan, toLessThanHalfPi, atan2\r\n * getPrecision P.precision, P.toFraction\r\n * getZeroString digitsToString, finiteToString\r\n * intPow P.toPower, parseOther\r\n * isOdd toLessThanHalfPi\r\n * maxOrMin max, min\r\n * naturalExponential P.naturalExponential, P.toPower\r\n * naturalLogarithm P.acosh, P.asinh, P.atanh, P.logarithm, P.naturalLogarithm,\r\n * P.toPower, naturalExponential\r\n * nonFiniteToString finiteToString, toStringBinary\r\n * parseDecimal Decimal\r\n * parseOther Decimal\r\n * sin P.sin\r\n * taylorSeries P.cosh, P.sinh, cos, sin\r\n * toLessThanHalfPi P.cos, P.sin\r\n * toStringBinary P.toBinary, P.toHexadecimal, P.toOctal\r\n * truncate intPow\r\n *\r\n * Throws: P.logarithm, P.precision, P.toFraction, checkInt32, getLn10, getPi,\r\n * naturalLogarithm, config, parseOther, random, Decimal\r\n */\r\n\r\n\r\nfunction digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n}\r\n\r\n\r\nfunction checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n}\r\n\r\n\r\n/*\r\n * Check 5 rounding digits if `repeating` is null, 4 otherwise.\r\n * `repeating == null` if caller is `log` or `pow`,\r\n * `repeating != null` if caller is `naturalLogarithm` or `naturalExponential`.\r\n */\r\nfunction checkRoundingDigits(d, i, rm, repeating) {\r\n var di, k, r, rd;\r\n\r\n // Get the length of the first word of the array d.\r\n for (k = d[0]; k >= 10; k /= 10) --i;\r\n\r\n // Is the rounding digit in the first word of d?\r\n if (--i < 0) {\r\n i += LOG_BASE;\r\n di = 0;\r\n } else {\r\n di = Math.ceil((i + 1) / LOG_BASE);\r\n i %= LOG_BASE;\r\n }\r\n\r\n // i is the index (0 - 6) of the rounding digit.\r\n // E.g. if within the word 3487563 the first rounding digit is 5,\r\n // then i = 4, k = 1000, rd = 3487563 % 1000 = 563\r\n k = mathpow(10, LOG_BASE - i);\r\n rd = d[di] % k | 0;\r\n\r\n if (repeating == null) {\r\n if (i < 3) {\r\n if (i == 0) rd = rd / 100 | 0;\r\n else if (i == 1) rd = rd / 10 | 0;\r\n r = rm < 4 && rd == 99999 || rm > 3 && rd == 49999 || rd == 50000 || rd == 0;\r\n } else {\r\n r = (rm < 4 && rd + 1 == k || rm > 3 && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 100 | 0) == mathpow(10, i - 2) - 1 ||\r\n (rd == k / 2 || rd == 0) && (d[di + 1] / k / 100 | 0) == 0;\r\n }\r\n } else {\r\n if (i < 4) {\r\n if (i == 0) rd = rd / 1000 | 0;\r\n else if (i == 1) rd = rd / 100 | 0;\r\n else if (i == 2) rd = rd / 10 | 0;\r\n r = (repeating || rm < 4) && rd == 9999 || !repeating && rm > 3 && rd == 4999;\r\n } else {\r\n r = ((repeating || rm < 4) && rd + 1 == k ||\r\n (!repeating && rm > 3) && rd + 1 == k / 2) &&\r\n (d[di + 1] / k / 1000 | 0) == mathpow(10, i - 3) - 1;\r\n }\r\n }\r\n\r\n return r;\r\n}\r\n\r\n\r\n// Convert string of `baseIn` to an array of numbers of `baseOut`.\r\n// Eg. convertBase('255', 10, 16) returns [15, 15].\r\n// Eg. convertBase('ff', 16, 10) returns [2, 5, 5].\r\nfunction convertBase(str, baseIn, baseOut) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n strL = str.length;\r\n\r\n for (; i < strL;) {\r\n for (arrL = arr.length; arrL--;) arr[arrL] *= baseIn;\r\n arr[0] += NUMERALS.indexOf(str.charAt(i++));\r\n for (j = 0; j < arr.length; j++) {\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] === void 0) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n}\r\n\r\n\r\n/*\r\n * cos(x) = 1 - x^2/2! + x^4/4! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\nfunction cosine(Ctor, x) {\r\n var k, len, y;\r\n\r\n if (x.isZero()) return x;\r\n\r\n // Argument reduction: cos(4x) = 8*(cos^4(x) - cos^2(x)) + 1\r\n // i.e. cos(x) = 8*(cos^4(x/4) - cos^2(x/4)) + 1\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n len = x.d.length;\r\n if (len < 32) {\r\n k = Math.ceil(len / 3);\r\n y = (1 / tinyPow(4, k)).toString();\r\n } else {\r\n k = 16;\r\n y = '2.3283064365386962890625e-10';\r\n }\r\n\r\n Ctor.precision += k;\r\n\r\n x = taylorSeries(Ctor, 1, x.times(y), new Ctor(1));\r\n\r\n // Reverse argument reduction\r\n for (var i = k; i--;) {\r\n var cos2x = x.times(x);\r\n x = cos2x.times(cos2x).minus(cos2x).times(8).plus(1);\r\n }\r\n\r\n Ctor.precision -= k;\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Perform division in the specified base.\r\n */\r\nvar divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k, base) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % base | 0;\r\n carry = temp / base | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, rm, dp, base) {\r\n var cmp, e, i, k, logBase, more, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0,\r\n yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xd || !xd[0] || !yd || !yd[0]) {\r\n\r\n return new Ctor(// Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xd ? yd && xd[0] == yd[0] : !yd) ? NaN :\r\n\r\n // Return ±0 if x is 0 or y is ±Infinity, or return ±Infinity as y is 0.\r\n xd && xd[0] == 0 || !yd ? sign * 0 : sign / 0);\r\n }\r\n\r\n if (base) {\r\n logBase = 1;\r\n e = x.e - y.e;\r\n } else {\r\n base = BASE;\r\n logBase = LOG_BASE;\r\n e = mathfloor(x.e / logBase) - mathfloor(y.e / logBase);\r\n }\r\n\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n // The digit array of a Decimal from toStringBinary may have trailing zeros.\r\n for (i = 0; yd[i] == (xd[i] || 0); i++);\r\n\r\n if (yd[i] > (xd[i] || 0)) e--;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else if (dp) {\r\n sd = pr + (x.e - y.e) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) {\r\n qd.push(1);\r\n more = true;\r\n } else {\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / logBase + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * base + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n more = k || i < xL;\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= base/2\r\n k = base / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k, base);\r\n xd = multiplyInteger(xd, k, base);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= base / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= base) k = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL, base);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL, base);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n\r\n more = rem[0] !== void 0;\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n }\r\n\r\n // logBase is 1 when divide is being used for base conversion.\r\n if (logBase == 1) {\r\n q.e = e;\r\n inexact = more;\r\n } else {\r\n\r\n // To calculate q.e, first get the number of digits of qd[0].\r\n for (i = 1, k = qd[0]; k >= 10; k /= 10) i++;\r\n q.e = i + e * logBase - 1;\r\n\r\n finalise(q, dp ? pr + q.e + 1 : pr, rm, more);\r\n }\r\n\r\n return q;\r\n };\r\n})();\r\n\r\n\r\n/*\r\n * Round `x` to `sd` significant digits using rounding mode `rm`.\r\n * Check for over/under-flow.\r\n */\r\n function finalise(x, sd, rm, isTruncated) {\r\n var digits, i, j, k, rd, roundUp, w, xd, xdi,\r\n Ctor = x.constructor;\r\n\r\n // Don't round if sd is null or undefined.\r\n out: if (sd != null) {\r\n xd = x.d;\r\n\r\n // Infinity/NaN.\r\n if (!xd) return x;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd containing rd, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // digits: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (digits = 1, k = xd[0]; k >= 10; k /= 10) digits++;\r\n i = sd - digits;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / mathpow(10, digits - j - 1) % 10 | 0;\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) {\r\n if (isTruncated) {\r\n\r\n // Needed by `naturalExponential`, `naturalLogarithm` and `squareRoot`.\r\n for (; k++ <= xdi;) xd.push(0);\r\n w = rd = 0;\r\n digits = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (digits = 1; k >= 10; k /= 10) digits++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - digits.\r\n j = i - LOG_BASE + digits;\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = j < 0 ? 0 : w / mathpow(10, digits - j - 1) % 10 | 0;\r\n }\r\n }\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n isTruncated = isTruncated || sd < 0 ||\r\n xd[xdi + 1] !== void 0 || (j < 0 ? w : w % mathpow(10, digits - j - 1));\r\n\r\n // The expression `w % mathpow(10, digits - j - 1)` returns all the digits of w to the right\r\n // of the digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression\r\n // will give 714.\r\n\r\n roundUp = rm < 4\r\n ? (rd || isTruncated) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || isTruncated || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, digits - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xd[0]) {\r\n xd.length = 0;\r\n if (roundUp) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xd[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, digits - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (roundUp) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n\r\n // i will be the length of xd[0] before k is added.\r\n for (i = 1, j = xd[0]; j >= 10; j /= 10) i++;\r\n j = xd[0] += k;\r\n for (k = 1; j >= 10; j /= 10) k++;\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xd[0] == BASE) xd[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n }\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > Ctor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < Ctor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // Ctor.underflow = true;\r\n } // else Ctor.underflow = false;\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\nfunction finiteToString(x, isExp, sd) {\r\n if (!x.isFinite()) return nonFiniteToString(x);\r\n var k,\r\n e = x.e,\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (x.e < 0 ? 'e' : 'e+') + x.e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// Calculate the base 10 exponent from the base 1e7 exponent.\r\nfunction getBase10Exponent(digits, e) {\r\n var w = digits[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for ( e *= LOG_BASE; w >= 10; w /= 10) e++;\r\n return e;\r\n}\r\n\r\n\r\nfunction getLn10(Ctor, sd, pr) {\r\n if (sd > LN10_PRECISION) {\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(precisionLimitExceeded);\r\n }\r\n return finalise(new Ctor(LN10), sd, 1, true);\r\n}\r\n\r\n\r\nfunction getPi(Ctor, sd, rm) {\r\n if (sd > PI_PRECISION) throw Error(precisionLimitExceeded);\r\n return finalise(new Ctor(PI), sd, rm, true);\r\n}\r\n\r\n\r\nfunction getPrecision(digits) {\r\n var w = digits.length - 1,\r\n len = w * LOG_BASE + 1;\r\n\r\n w = digits[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) len--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = digits[0]; w >= 10; w /= 10) len++;\r\n }\r\n\r\n return len;\r\n}\r\n\r\n\r\nfunction getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of Decimal `x` to the power `n`, where `n` is an\r\n * integer of type number.\r\n *\r\n * Implements 'exponentiation by squaring'. Called by `pow` and `parseOther`.\r\n *\r\n */\r\nfunction intPow(Ctor, x, n, pr) {\r\n var isTruncated,\r\n r = new Ctor(1),\r\n\r\n // Max n of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n k = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (n % 2) {\r\n r = r.times(x);\r\n if (truncate(r.d, k)) isTruncated = true;\r\n }\r\n\r\n n = mathfloor(n / 2);\r\n if (n === 0) {\r\n\r\n // To ensure correct rounding when r.d is truncated, increment the last word if it is zero.\r\n n = r.d.length - 1;\r\n if (isTruncated && r.d[n] === 0) ++r.d[n];\r\n break;\r\n }\r\n\r\n x = x.times(x);\r\n truncate(x.d, k);\r\n }\r\n\r\n external = true;\r\n\r\n return r;\r\n}\r\n\r\n\r\nfunction isOdd(n) {\r\n return n.d[n.d.length - 1] & 1;\r\n}\r\n\r\n\r\n/*\r\n * Handle `max` (`n` is -1) and `min` (`n` is 1).\r\n */\r\nfunction maxOrMin(Ctor, args, n) {\r\n var k, y,\r\n x = new Ctor(args[0]),\r\n i = 0;\r\n\r\n for (; ++i < args.length;) {\r\n y = new Ctor(args[i]);\r\n\r\n // NaN?\r\n if (!y.s) {\r\n x = y;\r\n break;\r\n }\r\n\r\n k = x.cmp(y);\r\n\r\n if (k === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * Max integer argument: exp('20723265836946413') = 6.3e+9000000000000000\r\n * Min integer argument: exp('-20723265836946411') = 1.2e-9000000000000000\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(Infinity) = Infinity\r\n * exp(-Infinity) = 0\r\n * exp(NaN) = NaN\r\n * exp(±0) = 1\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n * The result will always be correctly rounded.\r\n *\r\n */\r\nfunction naturalExponential(x, sd) {\r\n var denominator, guard, j, pow, sum, t, wpr,\r\n rep = 0,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // 0/NaN/Infinity?\r\n if (!x.d || !x.d[0] || x.e > 17) {\r\n\r\n return new Ctor(x.d\r\n ? !x.d[0] ? 1 : x.s < 0 ? 0 : 1 / 0\r\n : x.s ? x.s < 0 ? 0 : x : 0 / 0);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n // while abs(x) >= 0.1\r\n while (x.e > -2) {\r\n\r\n // x = x / 2^5\r\n x = x.times(t);\r\n k += 5;\r\n }\r\n\r\n // Use 2 * log10(2^k) + 5 (empirically derived) to estimate the increase in precision\r\n // necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(1);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = finalise(pow.times(x), wpr, 1);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n j = k;\r\n while (j--) sum = finalise(sum.times(sum), wpr, 1);\r\n\r\n // Check to see if the first 4 rounding digits are [49]999.\r\n // If so, repeat the summation with a higher precision, otherwise\r\n // e.g. with precision: 18, rounding: 1\r\n // exp(18.404272462595034083567793919843761) = 98372560.1229999999 (should be 98372560.123)\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n\r\n if (rep < 3 && checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += 10;\r\n denominator = pow = t = new Ctor(1);\r\n i = 0;\r\n rep++;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n }\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x` rounded to `sd` significant\r\n * digits.\r\n *\r\n * ln(-n) = NaN\r\n * ln(0) = -Infinity\r\n * ln(-0) = -Infinity\r\n * ln(1) = 0\r\n * ln(Infinity) = Infinity\r\n * ln(-Infinity) = NaN\r\n * ln(NaN) = NaN\r\n *\r\n * ln(n) (n != 1) is non-terminating.\r\n *\r\n */\r\nfunction naturalLogarithm(y, sd) {\r\n var c, c0, denominator, e, numerator, rep, sum, t, wpr, x1, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n rm = Ctor.rounding,\r\n pr = Ctor.precision;\r\n\r\n // Is x negative or Infinity, NaN, 0 or 1?\r\n if (x.s < 0 || !xd || !xd[0] || !x.e && xd[0] == 1 && xd.length == 1) {\r\n return new Ctor(xd && !xd[0] ? -1 / 0 : x.s != 1 ? NaN : xd ? 0 : x);\r\n }\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n Ctor.precision = wpr += guard;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n\r\n if (Math.abs(e = x.e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = x.e;\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = naturalLogarithm(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n Ctor.precision = pr;\r\n\r\n return sd == null ? finalise(x, pr, rm, external = true) : x;\r\n }\r\n\r\n // x1 is x reduced to a value near 1.\r\n x1 = x;\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(1), x.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = finalise(numerator.times(x2), wpr, 1);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr, 1));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction. Check that e is not 0 because, besides preventing an\r\n // unnecessary calculation, -0 + 0 = +0 and to ensure correct rounding -0 needs to stay -0.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr, 1);\r\n\r\n // Is rm > 3 and the first 4 rounding digits 4999, or rm < 4 (or the summation has\r\n // been repeated previously) and the first 4 rounding digits 9999?\r\n // If so, restart the summation with a higher precision, otherwise\r\n // e.g. with precision: 12, rounding: 1\r\n // ln(135520028.6126091714265381533) = 18.7246299999 when it should be 18.72463.\r\n // `wpr - guard` is the index of first rounding digit.\r\n if (sd == null) {\r\n if (checkRoundingDigits(sum.d, wpr - guard, rm, rep)) {\r\n Ctor.precision = wpr += guard;\r\n t = numerator = x = divide(x1.minus(1), x1.plus(1), wpr, 1);\r\n x2 = finalise(x.times(x), wpr, 1);\r\n denominator = rep = 1;\r\n } else {\r\n return finalise(sum, Ctor.precision = pr, rm, external = true);\r\n }\r\n } else {\r\n Ctor.precision = pr;\r\n return sum;\r\n }\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n}\r\n\r\n\r\n// ±Infinity, NaN.\r\nfunction nonFiniteToString(x) {\r\n // Unsigned.\r\n return String(x.s * x.s / 0);\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\nfunction parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // TODO BigInt str: no need to check for decimal point, exponential form or leading zeros.\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48; --len);\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n x.e = e = e - i - 1;\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external) {\r\n\r\n // Overflow?\r\n if (x.e > x.constructor.maxE) {\r\n\r\n // Infinity.\r\n x.d = null;\r\n x.e = NaN;\r\n\r\n // Underflow?\r\n } else if (x.e < x.constructor.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n // x.constructor.underflow = true;\r\n } // else x.constructor.underflow = false;\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from a string `str`, which is not a decimal value.\r\n */\r\nfunction parseOther(x, str) {\r\n var base, Ctor, divisor, i, isFloat, len, p, xd, xe;\r\n\r\n if (str.indexOf('_') > -1) {\r\n str = str.replace(/(\\d)_(?=\\d)/g, '$1');\r\n if (isDecimal.test(str)) return parseDecimal(x, str);\r\n } else if (str === 'Infinity' || str === 'NaN') {\r\n if (!+str) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return x;\r\n }\r\n\r\n if (isHex.test(str)) {\r\n base = 16;\r\n str = str.toLowerCase();\r\n } else if (isBinary.test(str)) {\r\n base = 2;\r\n } else if (isOctal.test(str)) {\r\n base = 8;\r\n } else {\r\n throw Error(invalidArgument + str);\r\n }\r\n\r\n // Is there a binary exponent part?\r\n i = str.search(/p/i);\r\n\r\n if (i > 0) {\r\n p = +str.slice(i + 1);\r\n str = str.substring(2, i);\r\n } else {\r\n str = str.slice(2);\r\n }\r\n\r\n // Convert `str` as an integer then divide the result by `base` raised to a power such that the\r\n // fraction part will be restored.\r\n i = str.indexOf('.');\r\n isFloat = i >= 0;\r\n Ctor = x.constructor;\r\n\r\n if (isFloat) {\r\n str = str.replace('.', '');\r\n len = str.length;\r\n i = len - i;\r\n\r\n // log[10](16) = 1.2041... , log[10](88) = 1.9444....\r\n divisor = intPow(Ctor, new Ctor(base), i, i * 2);\r\n }\r\n\r\n xd = convertBase(str, base, BASE);\r\n xe = xd.length - 1;\r\n\r\n // Remove trailing zeros.\r\n for (i = xe; xd[i] === 0; --i) xd.pop();\r\n if (i < 0) return new Ctor(x.s * 0);\r\n x.e = getBase10Exponent(xd, xe);\r\n x.d = xd;\r\n external = false;\r\n\r\n // At what precision to perform the division to ensure exact conversion?\r\n // maxDecimalIntegerPartDigitCount = ceil(log[10](b) * otherBaseIntegerPartDigitCount)\r\n // log[10](2) = 0.30103, log[10](8) = 0.90309, log[10](16) = 1.20412\r\n // E.g. ceil(1.2 * 3) = 4, so up to 4 decimal digits are needed to represent 3 hex int digits.\r\n // maxDecimalFractionPartDigitCount = {Hex:4|Oct:3|Bin:1} * otherBaseFractionPartDigitCount\r\n // Therefore using 4 * the number of digits of str will always be enough.\r\n if (isFloat) x = divide(x, divisor, len * 4);\r\n\r\n // Multiply by the binary exponent part if present.\r\n if (p) x = x.times(Math.abs(p) < 54 ? mathpow(2, p) : Decimal.pow(2, p));\r\n external = true;\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * sin(x) = x - x^3/3! + x^5/5! - ...\r\n * |x| < pi/2\r\n *\r\n */\r\nfunction sine(Ctor, x) {\r\n var k,\r\n len = x.d.length;\r\n\r\n if (len < 3) {\r\n return x.isZero() ? x : taylorSeries(Ctor, 2, x, x);\r\n }\r\n\r\n // Argument reduction: sin(5x) = 16*sin^5(x) - 20*sin^3(x) + 5*sin(x)\r\n // i.e. sin(x) = 16*sin^5(x/5) - 20*sin^3(x/5) + 5*sin(x/5)\r\n // and sin(x) = sin(x/5)(5 + sin^2(x/5)(16sin^2(x/5) - 20))\r\n\r\n // Estimate the optimum number of times to use the argument reduction.\r\n k = 1.4 * Math.sqrt(len);\r\n k = k > 16 ? 16 : k | 0;\r\n\r\n x = x.times(1 / tinyPow(5, k));\r\n x = taylorSeries(Ctor, 2, x, x);\r\n\r\n // Reverse argument reduction\r\n var sin2_x,\r\n d5 = new Ctor(5),\r\n d16 = new Ctor(16),\r\n d20 = new Ctor(20);\r\n for (; k--;) {\r\n sin2_x = x.times(x);\r\n x = x.times(d5.plus(sin2_x.times(d16.times(sin2_x).minus(d20))));\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n// Calculate Taylor series for `cos`, `cosh`, `sin` and `sinh`.\r\nfunction taylorSeries(Ctor, n, x, y, isHyperbolic) {\r\n var j, t, u, x2,\r\n i = 1,\r\n pr = Ctor.precision,\r\n k = Math.ceil(pr / LOG_BASE);\r\n\r\n external = false;\r\n x2 = x.times(x);\r\n u = new Ctor(y);\r\n\r\n for (;;) {\r\n t = divide(u.times(x2), new Ctor(n++ * n++), pr, 1);\r\n u = isHyperbolic ? y.plus(t) : y.minus(t);\r\n y = divide(t.times(x2), new Ctor(n++ * n++), pr, 1);\r\n t = u.plus(y);\r\n\r\n if (t.d[k] !== void 0) {\r\n for (j = k; t.d[j] === u.d[j] && j--;);\r\n if (j == -1) break;\r\n }\r\n\r\n j = u;\r\n u = y;\r\n y = t;\r\n t = j;\r\n i++;\r\n }\r\n\r\n external = true;\r\n t.d.length = k + 1;\r\n\r\n return t;\r\n}\r\n\r\n\r\n// Exponent e must be positive and non-zero.\r\nfunction tinyPow(b, e) {\r\n var n = b;\r\n while (--e) n *= b;\r\n return n;\r\n}\r\n\r\n\r\n// Return the absolute value of `x` reduced to less than or equal to half pi.\r\nfunction toLessThanHalfPi(Ctor, x) {\r\n var t,\r\n isNeg = x.s < 0,\r\n pi = getPi(Ctor, Ctor.precision, 1),\r\n halfPi = pi.times(0.5);\r\n\r\n x = x.abs();\r\n\r\n if (x.lte(halfPi)) {\r\n quadrant = isNeg ? 4 : 1;\r\n return x;\r\n }\r\n\r\n t = x.divToInt(pi);\r\n\r\n if (t.isZero()) {\r\n quadrant = isNeg ? 3 : 2;\r\n } else {\r\n x = x.minus(t.times(pi));\r\n\r\n // 0 <= x < pi\r\n if (x.lte(halfPi)) {\r\n quadrant = isOdd(t) ? (isNeg ? 2 : 3) : (isNeg ? 4 : 1);\r\n return x;\r\n }\r\n\r\n quadrant = isOdd(t) ? (isNeg ? 1 : 4) : (isNeg ? 3 : 2);\r\n }\r\n\r\n return x.minus(pi).abs();\r\n}\r\n\r\n\r\n/*\r\n * Return the value of Decimal `x` as a string in base `baseOut`.\r\n *\r\n * If the optional `sd` argument is present include a binary exponent suffix.\r\n */\r\nfunction toStringBinary(x, baseOut, sd, rm) {\r\n var base, e, i, k, len, roundUp, str, xd, y,\r\n Ctor = x.constructor,\r\n isExp = sd !== void 0;\r\n\r\n if (isExp) {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n } else {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n }\r\n\r\n if (!x.isFinite()) {\r\n str = nonFiniteToString(x);\r\n } else {\r\n str = finiteToString(x);\r\n i = str.indexOf('.');\r\n\r\n // Use exponential notation according to `toExpPos` and `toExpNeg`? No, but if required:\r\n // maxBinaryExponent = floor((decimalExponent + 1) * log[2](10))\r\n // minBinaryExponent = floor(decimalExponent * log[2](10))\r\n // log[2](10) = 3.321928094887362347870319429489390175864\r\n\r\n if (isExp) {\r\n base = 2;\r\n if (baseOut == 16) {\r\n sd = sd * 4 - 3;\r\n } else if (baseOut == 8) {\r\n sd = sd * 3 - 2;\r\n }\r\n } else {\r\n base = baseOut;\r\n }\r\n\r\n // Convert the number as an integer then divide the result by its base raised to a power such\r\n // that the fraction part will be restored.\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n str = str.replace('.', '');\r\n y = new Ctor(1);\r\n y.e = str.length - i;\r\n y.d = convertBase(finiteToString(y), 10, base);\r\n y.e = y.d.length;\r\n }\r\n\r\n xd = convertBase(str, 10, base);\r\n e = len = xd.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] == 0;) xd.pop();\r\n\r\n if (!xd[0]) {\r\n str = isExp ? '0p+0' : '0';\r\n } else {\r\n if (i < 0) {\r\n e--;\r\n } else {\r\n x = new Ctor(x);\r\n x.d = xd;\r\n x.e = e;\r\n x = divide(x, y, sd, rm, 0, base);\r\n xd = x.d;\r\n e = x.e;\r\n roundUp = inexact;\r\n }\r\n\r\n // The rounding digit, i.e. the digit after the digit that may be rounded up.\r\n i = xd[sd];\r\n k = base / 2;\r\n roundUp = roundUp || xd[sd + 1] !== void 0;\r\n\r\n roundUp = rm < 4\r\n ? (i !== void 0 || roundUp) && (rm === 0 || rm === (x.s < 0 ? 3 : 2))\r\n : i > k || i === k && (rm === 4 || roundUp || rm === 6 && xd[sd - 1] & 1 ||\r\n rm === (x.s < 0 ? 8 : 7));\r\n\r\n xd.length = sd;\r\n\r\n if (roundUp) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (; ++xd[--sd] > base - 1;) {\r\n xd[sd] = 0;\r\n if (!sd) {\r\n ++e;\r\n xd.unshift(1);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n\r\n // Add binary exponent suffix?\r\n if (isExp) {\r\n if (len > 1) {\r\n if (baseOut == 16 || baseOut == 8) {\r\n i = baseOut == 16 ? 4 : 3;\r\n for (--len; len % i; len++) str += '0';\r\n xd = convertBase(str, base, baseOut);\r\n for (len = xd.length; !xd[len - 1]; --len);\r\n\r\n // xd[0] will always be be 1\r\n for (i = 1, str = '1.'; i < len; i++) str += NUMERALS.charAt(xd[i]);\r\n } else {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n }\r\n\r\n str = str + (e < 0 ? 'p' : 'p+') + e;\r\n } else if (e < 0) {\r\n for (; ++e;) str = '0' + str;\r\n str = '0.' + str;\r\n } else {\r\n if (++e > len) for (e -= len; e-- ;) str += '0';\r\n else if (e < len) str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n str = (baseOut == 16 ? '0x' : baseOut == 2 ? '0b' : baseOut == 8 ? '0o' : '') + str;\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n}\r\n\r\n\r\n// Does not strip trailing zeros.\r\nfunction truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n}\r\n\r\n\r\n// Decimal methods\r\n\r\n\r\n/*\r\n * abs\r\n * acos\r\n * acosh\r\n * add\r\n * asin\r\n * asinh\r\n * atan\r\n * atanh\r\n * atan2\r\n * cbrt\r\n * ceil\r\n * clamp\r\n * clone\r\n * config\r\n * cos\r\n * cosh\r\n * div\r\n * exp\r\n * floor\r\n * hypot\r\n * ln\r\n * log\r\n * log2\r\n * log10\r\n * max\r\n * min\r\n * mod\r\n * mul\r\n * pow\r\n * random\r\n * round\r\n * set\r\n * sign\r\n * sin\r\n * sinh\r\n * sqrt\r\n * sub\r\n * sum\r\n * tan\r\n * tanh\r\n * trunc\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of `x`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction abs(x) {\r\n return new this(x).abs();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arccosine in radians of `x`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction acos(x) {\r\n return new this(x).acos();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic cosine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction acosh(x) {\r\n return new this(x).acosh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sum of `x` and `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction add(x, y) {\r\n return new this(x).plus(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arcsine in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction asin(x) {\r\n return new this(x).asin();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic sine of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction asinh(x) {\r\n return new this(x).asinh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent in radians of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction atan(x) {\r\n return new this(x).atan();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the inverse of the hyperbolic tangent of `x`, rounded to\r\n * `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction atanh(x) {\r\n return new this(x).atanh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the arctangent in radians of `y/x` in the range -pi to pi\r\n * (inclusive), rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * Domain: [-Infinity, Infinity]\r\n * Range: [-pi, pi]\r\n *\r\n * y {number|string|bigint|Decimal} The y-coordinate.\r\n * x {number|string|bigint|Decimal} The x-coordinate.\r\n *\r\n * atan2(±0, -0) = ±pi\r\n * atan2(±0, +0) = ±0\r\n * atan2(±0, -x) = ±pi for x > 0\r\n * atan2(±0, x) = ±0 for x > 0\r\n * atan2(-y, ±0) = -pi/2 for y > 0\r\n * atan2(y, ±0) = pi/2 for y > 0\r\n * atan2(±y, -Infinity) = ±pi for finite y > 0\r\n * atan2(±y, +Infinity) = ±0 for finite y > 0\r\n * atan2(±Infinity, x) = ±pi/2 for finite x\r\n * atan2(±Infinity, -Infinity) = ±3*pi/4\r\n * atan2(±Infinity, +Infinity) = ±pi/4\r\n * atan2(NaN, x) = NaN\r\n * atan2(y, NaN) = NaN\r\n *\r\n */\r\nfunction atan2(y, x) {\r\n y = new this(y);\r\n x = new this(x);\r\n var r,\r\n pr = this.precision,\r\n rm = this.rounding,\r\n wpr = pr + 4;\r\n\r\n // Either NaN\r\n if (!y.s || !x.s) {\r\n r = new this(NaN);\r\n\r\n // Both ±Infinity\r\n } else if (!y.d && !x.d) {\r\n r = getPi(this, wpr, 1).times(x.s > 0 ? 0.25 : 0.75);\r\n r.s = y.s;\r\n\r\n // x is ±Infinity or y is ±0\r\n } else if (!x.d || y.isZero()) {\r\n r = x.s < 0 ? getPi(this, pr, rm) : new this(0);\r\n r.s = y.s;\r\n\r\n // y is ±Infinity or x is ±0\r\n } else if (!y.d || x.isZero()) {\r\n r = getPi(this, wpr, 1).times(0.5);\r\n r.s = y.s;\r\n\r\n // Both non-zero and finite\r\n } else if (x.s < 0) {\r\n this.precision = wpr;\r\n this.rounding = 1;\r\n r = this.atan(divide(y, x, wpr, 1));\r\n x = getPi(this, wpr, 1);\r\n this.precision = pr;\r\n this.rounding = rm;\r\n r = y.s < 0 ? r.minus(x) : r.plus(x);\r\n } else {\r\n r = this.atan(divide(y, x, wpr, 1));\r\n }\r\n\r\n return r;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cube root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction cbrt(x) {\r\n return new this(x).cbrt();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` rounded to an integer using `ROUND_CEIL`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction ceil(x) {\r\n return finalise(x = new this(x), x.e + 1, 2);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` clamped to the range delineated by `min` and `max`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * min {number|string|bigint|Decimal}\r\n * max {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction clamp(x, min, max) {\r\n return new this(x).clamp(min, max);\r\n}\r\n\r\n\r\n/*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n * maxE {number}\r\n * minE {number}\r\n * modulo {number}\r\n * crypto {boolean|number}\r\n * defaults {true}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\nfunction config(obj) {\r\n if (!obj || typeof obj !== 'object') throw Error(decimalError + 'Object expected');\r\n var i, p, v,\r\n useDefaults = obj.defaults === true,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -EXP_LIMIT, 0,\r\n 'toExpPos', 0, EXP_LIMIT,\r\n 'maxE', 0, EXP_LIMIT,\r\n 'minE', -EXP_LIMIT, 0,\r\n 'modulo', 0, 9\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if (p = ps[i], useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if (p = 'crypto', useDefaults) this[p] = DEFAULTS[p];\r\n if ((v = obj[p]) !== void 0) {\r\n if (v === true || v === false || v === 0 || v === 1) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n this[p] = true;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n } else {\r\n this[p] = false;\r\n }\r\n } else {\r\n throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n return this;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the cosine of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction cos(x) {\r\n return new this(x).cos();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic cosine of `x`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction cosh(x) {\r\n return new this(x).cosh();\r\n}\r\n\r\n\r\n/*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\nfunction clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * v {number|string|bigint|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(v) {\r\n var e, i, t,\r\n x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(v);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n if (isDecimalInstance(v)) {\r\n x.s = v.s;\r\n\r\n if (external) {\r\n if (!v.d || v.e > Decimal.maxE) {\r\n\r\n // Infinity.\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (v.e < Decimal.minE) {\r\n\r\n // Zero.\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d.slice();\r\n }\r\n } else {\r\n x.e = v.e;\r\n x.d = v.d ? v.d.slice() : v.d;\r\n }\r\n\r\n return;\r\n }\r\n\r\n t = typeof v;\r\n\r\n if (t === 'number') {\r\n if (v === 0) {\r\n x.s = 1 / v < 0 ? -1 : 1;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n if (v < 0) {\r\n v = -v;\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (v === ~~v && v < 1e7) {\r\n for (e = 0, i = v; i >= 10; i /= 10) e++;\r\n\r\n if (external) {\r\n if (e > Decimal.maxE) {\r\n x.e = NaN;\r\n x.d = null;\r\n } else if (e < Decimal.minE) {\r\n x.e = 0;\r\n x.d = [0];\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n } else {\r\n x.e = e;\r\n x.d = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n // Infinity or NaN?\r\n if (v * 0 !== 0) {\r\n if (!v) x.s = NaN;\r\n x.e = NaN;\r\n x.d = null;\r\n return;\r\n }\r\n\r\n return parseDecimal(x, v.toString());\r\n }\r\n\r\n if (t === 'string') {\r\n if ((i = v.charCodeAt(0)) === 45) { // minus sign\r\n v = v.slice(1);\r\n x.s = -1;\r\n } else {\r\n if (i === 43) v = v.slice(1); // plus sign\r\n x.s = 1;\r\n }\r\n\r\n return isDecimal.test(v) ? parseDecimal(x, v) : parseOther(x, v);\r\n }\r\n\r\n if (t === 'bigint') {\r\n if (v < 0) {\r\n v = -v;\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n return parseDecimal(x, v.toString());\r\n }\r\n\r\n throw Error(invalidArgument + v);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n Decimal.EUCLID = 9;\r\n\r\n Decimal.config = Decimal.set = config;\r\n Decimal.clone = clone;\r\n Decimal.isDecimal = isDecimalInstance;\r\n\r\n Decimal.abs = abs;\r\n Decimal.acos = acos;\r\n Decimal.acosh = acosh; // ES6\r\n Decimal.add = add;\r\n Decimal.asin = asin;\r\n Decimal.asinh = asinh; // ES6\r\n Decimal.atan = atan;\r\n Decimal.atanh = atanh; // ES6\r\n Decimal.atan2 = atan2;\r\n Decimal.cbrt = cbrt; // ES6\r\n Decimal.ceil = ceil;\r\n Decimal.clamp = clamp;\r\n Decimal.cos = cos;\r\n Decimal.cosh = cosh; // ES6\r\n Decimal.div = div;\r\n Decimal.exp = exp;\r\n Decimal.floor = floor;\r\n Decimal.hypot = hypot; // ES6\r\n Decimal.ln = ln;\r\n Decimal.log = log;\r\n Decimal.log10 = log10; // ES6\r\n Decimal.log2 = log2; // ES6\r\n Decimal.max = max;\r\n Decimal.min = min;\r\n Decimal.mod = mod;\r\n Decimal.mul = mul;\r\n Decimal.pow = pow;\r\n Decimal.random = random;\r\n Decimal.round = round;\r\n Decimal.sign = sign; // ES6\r\n Decimal.sin = sin;\r\n Decimal.sinh = sinh; // ES6\r\n Decimal.sqrt = sqrt;\r\n Decimal.sub = sub;\r\n Decimal.sum = sum;\r\n Decimal.tan = tan;\r\n Decimal.tanh = tanh; // ES6\r\n Decimal.trunc = trunc; // ES6\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n if (obj.defaults !== true) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'maxE', 'minE', 'modulo', 'crypto'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` divided by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction div(x, y) {\r\n return new this(x).div(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} The power to which to raise the base of the natural log.\r\n *\r\n */\r\nfunction exp(x) {\r\n return new this(x).exp();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` round to an integer using `ROUND_FLOOR`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction floor(x) {\r\n return finalise(x = new this(x), x.e + 1, 3);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of the sum of the squares of the arguments,\r\n * rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * hypot(a, b, ...) = sqrt(a^2 + b^2 + ...)\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction hypot() {\r\n var i, n,\r\n t = new this(0);\r\n\r\n external = false;\r\n\r\n for (i = 0; i < arguments.length;) {\r\n n = new this(arguments[i++]);\r\n if (!n.d) {\r\n if (n.s) {\r\n external = true;\r\n return new this(1 / 0);\r\n }\r\n t = n;\r\n } else if (t.d) {\r\n t = t.plus(n.times(n));\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return t.sqrt();\r\n}\r\n\r\n\r\n/*\r\n * Return true if object is a Decimal instance (where Decimal is any Decimal constructor),\r\n * otherwise return false.\r\n *\r\n */\r\nfunction isDecimalInstance(obj) {\r\n return obj instanceof Decimal || obj && obj.toStringTag === tag || false;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction ln(x) {\r\n return new this(x).ln();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the log of `x` to the base `y`, or to base 10 if no base\r\n * is specified, rounded to `precision` significant digits using rounding mode `rounding`.\r\n *\r\n * log[y](x)\r\n *\r\n * x {number|string|bigint|Decimal} The argument of the logarithm.\r\n * y {number|string|bigint|Decimal} The base of the logarithm.\r\n *\r\n */\r\nfunction log(x, y) {\r\n return new this(x).log(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the base 2 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction log2(x) {\r\n return new this(x).log(2);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the base 10 logarithm of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction log10(x) {\r\n return new this(x).log(10);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction max() {\r\n return maxOrMin(this, arguments, -1);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction min() {\r\n return maxOrMin(this, arguments, 1);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` modulo `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction mod(x, y) {\r\n return new this(x).mod(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` multiplied by `y`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction mul(x, y) {\r\n return new this(x).mul(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` raised to the power `y`, rounded to precision\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} The base.\r\n * y {number|string|bigint|Decimal} The exponent.\r\n *\r\n */\r\nfunction pow(x, y) {\r\n return new this(x).pow(y);\r\n}\r\n\r\n\r\n/*\r\n * Returns a new Decimal with a random value equal to or greater than 0 and less than 1, and with\r\n * `sd`, or `Decimal.precision` if `sd` is omitted, significant digits (or less if trailing zeros\r\n * are produced).\r\n *\r\n * [sd] {number} Significant digits. Integer, 0 to MAX_DIGITS inclusive.\r\n *\r\n */\r\nfunction random(sd) {\r\n var d, e, k, n,\r\n i = 0,\r\n r = new this(1),\r\n rd = [];\r\n\r\n if (sd === void 0) sd = this.precision;\r\n else checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n k = Math.ceil(sd / LOG_BASE);\r\n\r\n if (!this.crypto) {\r\n for (; i < k;) rd[i++] = Math.random() * 1e7 | 0;\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n } else if (crypto.getRandomValues) {\r\n d = crypto.getRandomValues(new Uint32Array(k));\r\n\r\n for (; i < k;) {\r\n n = d[i];\r\n\r\n // 0 <= n < 4294967296\r\n // Probability n >= 4.29e9, is 4967296 / 4294967296 = 0.00116 (1 in 865).\r\n if (n >= 4.29e9) {\r\n d[i] = crypto.getRandomValues(new Uint32Array(1))[0];\r\n } else {\r\n\r\n // 0 <= n <= 4289999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd[i++] = n % 1e7;\r\n }\r\n }\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n d = crypto.randomBytes(k *= 4);\r\n\r\n for (; i < k;) {\r\n\r\n // 0 <= n < 2147483648\r\n n = d[i] + (d[i + 1] << 8) + (d[i + 2] << 16) + ((d[i + 3] & 0x7f) << 24);\r\n\r\n // Probability n >= 2.14e9, is 7483648 / 2147483648 = 0.0035 (1 in 286).\r\n if (n >= 2.14e9) {\r\n crypto.randomBytes(4).copy(d, i);\r\n } else {\r\n\r\n // 0 <= n <= 2139999999\r\n // 0 <= (n % 1e7) <= 9999999\r\n rd.push(n % 1e7);\r\n i += 4;\r\n }\r\n }\r\n\r\n i = k / 4;\r\n } else {\r\n throw Error(cryptoUnavailable);\r\n }\r\n\r\n k = rd[--i];\r\n sd %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to sd.\r\n if (k && sd) {\r\n n = mathpow(10, LOG_BASE - sd);\r\n rd[i] = (k / n | 0) * n;\r\n }\r\n\r\n // Remove trailing words which are zero.\r\n for (; rd[i] === 0; i--) rd.pop();\r\n\r\n // Zero?\r\n if (i < 0) {\r\n e = 0;\r\n rd = [0];\r\n } else {\r\n e = -1;\r\n\r\n // Remove leading words which are zero and adjust exponent accordingly.\r\n for (; rd[0] === 0; e -= LOG_BASE) rd.shift();\r\n\r\n // Count the digits of the first word of rd to determine leading zeros.\r\n for (k = 1, n = rd[0]; n >= 10; n /= 10) k++;\r\n\r\n // Adjust the exponent for leading zeros of the first word of rd.\r\n if (k < LOG_BASE) e -= LOG_BASE - k;\r\n }\r\n\r\n r.e = e;\r\n r.d = rd;\r\n\r\n return r;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` rounded to an integer using rounding mode `rounding`.\r\n *\r\n * To emulate `Math.round`, set rounding to 7 (ROUND_HALF_CEIL).\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction round(x) {\r\n return finalise(x = new this(x), x.e + 1, this.rounding);\r\n}\r\n\r\n\r\n/*\r\n * Return\r\n * 1 if x > 0,\r\n * -1 if x < 0,\r\n * 0 if x is 0,\r\n * -0 if x is -0,\r\n * NaN otherwise\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sign(x) {\r\n x = new this(x);\r\n return x.d ? (x.d[0] ? x.s : 0 * x.s) : x.s || NaN;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sine of `x`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction sin(x) {\r\n return new this(x).sin();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic sine of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction sinh(x) {\r\n return new this(x).sinh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sqrt(x) {\r\n return new this(x).sqrt();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` minus `y`, rounded to `precision` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n * y {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sub(x, y) {\r\n return new this(x).sub(y);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the sum of the arguments, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * Only the result is rounded, not the intermediate calculations.\r\n *\r\n * arguments {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction sum() {\r\n var i = 0,\r\n args = arguments,\r\n x = new this(args[i]);\r\n\r\n external = false;\r\n for (; x.s && ++i < args.length;) x = x.plus(args[i]);\r\n external = true;\r\n\r\n return finalise(x, this.precision, this.rounding);\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the tangent of `x`, rounded to `precision` significant\r\n * digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction tan(x) {\r\n return new this(x).tan();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the hyperbolic tangent of `x`, rounded to `precision`\r\n * significant digits using rounding mode `rounding`.\r\n *\r\n * x {number|string|bigint|Decimal} A value in radians.\r\n *\r\n */\r\nfunction tanh(x) {\r\n return new this(x).tanh();\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is `x` truncated to an integer.\r\n *\r\n * x {number|string|bigint|Decimal}\r\n *\r\n */\r\nfunction trunc(x) {\r\n return finalise(x = new this(x), x.e + 1, 1);\r\n}\r\n\r\n\r\nP[Symbol.for('nodejs.util.inspect.custom')] = P.toString;\r\nP[Symbol.toStringTag] = 'Decimal';\r\n\r\n// Create and configure initial Decimal constructor.\r\nexport var Decimal = P.constructor = clone(DEFAULTS);\r\n\r\n// Create the internal constants from their string values.\r\nLN10 = new Decimal(LN10);\r\nPI = new Decimal(PI);\r\n\r\nexport default Decimal;\r\n","import { ToString } from \"./262.js\";\n/**\n* https://tc39.es/ecma402/#sec-getoption\n* @param opts\n* @param prop\n* @param type\n* @param values\n* @param fallback\n*/\nexport function GetOption(opts, prop, type, values, fallback) {\n\tif (typeof opts !== \"object\") {\n\t\tthrow new TypeError(\"Options must be an object\");\n\t}\n\tlet value = opts[prop];\n\tif (value !== undefined) {\n\t\tif (type !== \"boolean\" && type !== \"string\") {\n\t\t\tthrow new TypeError(\"invalid type\");\n\t\t}\n\t\tif (type === \"boolean\") {\n\t\t\tvalue = Boolean(value);\n\t\t}\n\t\tif (type === \"string\") {\n\t\t\tvalue = ToString(value);\n\t\t}\n\t\tif (values !== undefined && !values.filter((val) => val == value).length) {\n\t\t\tthrow new RangeError(`${value} is not within ${values.join(\", \")}`);\n\t\t}\n\t\treturn value;\n\t}\n\treturn fallback;\n}\n","import { Decimal } from \"decimal.js\";\nimport { ZERO } from \"./constants.js\";\nimport { invariant } from \"./utils.js\";\n/**\n* https://tc39.es/ecma262/#sec-tostring\n*/\nexport function ToString(o) {\n\t// Only symbol is irregular...\n\tif (typeof o === \"symbol\") {\n\t\tthrow TypeError(\"Cannot convert a Symbol value to a string\");\n\t}\n\treturn String(o);\n}\n/**\n* https://tc39.es/ecma262/#sec-tonumber\n* @param val\n*/\nexport function ToNumber(arg) {\n\tif (typeof arg === \"number\") {\n\t\treturn new Decimal(arg);\n\t}\n\t// Support bigint values by converting to string first\n\t// https://tc39.es/ecma402/#sec-intl.pluralrules.prototype.select\n\tif (typeof arg === \"bigint\") {\n\t\treturn new Decimal(arg.toString());\n\t}\n\tinvariant(typeof arg !== \"symbol\", \"Symbol is not supported\", TypeError);\n\tif (arg === undefined) {\n\t\treturn new Decimal(NaN);\n\t}\n\tif (arg === null || arg === 0) {\n\t\treturn ZERO;\n\t}\n\tif (arg === true) {\n\t\treturn new Decimal(1);\n\t}\n\tif (typeof arg === \"string\") {\n\t\ttry {\n\t\t\treturn new Decimal(arg);\n\t\t} catch {\n\t\t\treturn new Decimal(NaN);\n\t\t}\n\t}\n\tinvariant(typeof arg === \"object\", \"object expected\", TypeError);\n\tlet primValue = ToPrimitive(arg, \"number\");\n\tinvariant(typeof primValue !== \"object\", \"object expected\", TypeError);\n\treturn ToNumber(primValue);\n}\n/**\n* https://tc39.es/ecma262/#sec-tointeger\n* @param n\n*/\nfunction ToInteger(n) {\n\tconst number = ToNumber(n);\n\tif (number.isNaN() || number.isZero()) {\n\t\treturn ZERO;\n\t}\n\tif (number.isFinite()) {\n\t\treturn number;\n\t}\n\tlet integer = number.abs().floor();\n\tif (number.isNegative()) {\n\t\tinteger = integer.negated();\n\t}\n\treturn integer;\n}\n/**\n* https://tc39.es/ecma262/#sec-timeclip\n* @param time\n*/\nexport function TimeClip(time) {\n\tif (!time.isFinite()) {\n\t\treturn new Decimal(NaN);\n\t}\n\tif (time.abs().greaterThan(8.64 * 0x38d7ea4c68000)) {\n\t\treturn new Decimal(NaN);\n\t}\n\treturn ToInteger(time);\n}\n/**\n* https://tc39.es/ecma262/#sec-toobject\n* @param arg\n*/\nexport function ToObject(arg) {\n\tif (arg == null) {\n\t\tthrow new TypeError(\"undefined/null cannot be converted to object\");\n\t}\n\treturn Object(arg);\n}\n/**\n* https://www.ecma-international.org/ecma-262/11.0/index.html#sec-samevalue\n* @param x\n* @param y\n*/\nexport function SameValue(x, y) {\n\tif (Object.is) {\n\t\treturn Object.is(x, y);\n\t}\n\t// SameValue algorithm\n\tif (x === y) {\n\t\t// Steps 1-5, 7-10\n\t\t// Steps 6.b-6.e: +0 != -0\n\t\treturn x !== 0 || 1 / x === 1 / y;\n\t}\n\t// Step 6.a: NaN == NaN\n\treturn x !== x && y !== y;\n}\n/**\n* https://www.ecma-international.org/ecma-262/11.0/index.html#sec-arraycreate\n* @param len\n*/\nexport function ArrayCreate(len) {\n\treturn Array.from({ length: len });\n}\n/**\n* https://www.ecma-international.org/ecma-262/11.0/index.html#sec-hasownproperty\n* @param o\n* @param prop\n*/\nexport function HasOwnProperty(o, prop) {\n\treturn Object.prototype.hasOwnProperty.call(o, prop);\n}\n/**\n* https://www.ecma-international.org/ecma-262/11.0/index.html#sec-type\n* @param x\n*/\nexport function Type(x) {\n\tif (x === null) {\n\t\treturn \"Null\";\n\t}\n\tif (typeof x === \"undefined\") {\n\t\treturn \"Undefined\";\n\t}\n\tif (typeof x === \"function\" || typeof x === \"object\") {\n\t\treturn \"Object\";\n\t}\n\tif (typeof x === \"number\") {\n\t\treturn \"Number\";\n\t}\n\tif (typeof x === \"boolean\") {\n\t\treturn \"Boolean\";\n\t}\n\tif (typeof x === \"string\") {\n\t\treturn \"String\";\n\t}\n\tif (typeof x === \"symbol\") {\n\t\treturn \"Symbol\";\n\t}\n\tif (typeof x === \"bigint\") {\n\t\treturn \"BigInt\";\n\t}\n}\nconst MS_PER_DAY = 864e5;\n/**\n* https://www.ecma-international.org/ecma-262/11.0/index.html#eqn-modulo\n* @param x\n* @param y\n* @return k of the same sign as y\n*/\nfunction mod(x, y) {\n\treturn x - Math.floor(x / y) * y;\n}\n/**\n* https://tc39.es/ecma262/#eqn-Day\n* @param t\n*/\nexport function Day(t) {\n\treturn Math.floor(t / MS_PER_DAY);\n}\n/**\n* https://tc39.es/ecma262/#sec-week-day\n* @param t\n*/\nexport function WeekDay(t) {\n\treturn mod(Day(t) + 4, 7);\n}\n/**\n* https://tc39.es/ecma262/#sec-year-number\n* @param y\n*/\nexport function DayFromYear(y) {\n\tif (y < 100) {\n\t\t// Date.UTC parses 0 - 99 as 1900 - 1999\n\t\tconst date = new Date(0);\n\t\tdate.setUTCFullYear(y, 0, 1);\n\t\tdate.setUTCHours(0, 0, 0, 0);\n\t\treturn date.getTime() / MS_PER_DAY;\n\t}\n\treturn Date.UTC(y, 0) / MS_PER_DAY;\n}\n/**\n* https://tc39.es/ecma262/#sec-year-number\n* @param y\n*/\nexport function TimeFromYear(y) {\n\treturn Date.UTC(y, 0);\n}\n/**\n* https://tc39.es/ecma262/#sec-year-number\n* @param t\n*/\nexport function YearFromTime(t) {\n\treturn new Date(t).getUTCFullYear();\n}\nexport function DaysInYear(y) {\n\tif (y % 4 !== 0) {\n\t\treturn 365;\n\t}\n\tif (y % 100 !== 0) {\n\t\treturn 366;\n\t}\n\tif (y % 400 !== 0) {\n\t\treturn 365;\n\t}\n\treturn 366;\n}\nexport function DayWithinYear(t) {\n\treturn Day(t) - DayFromYear(YearFromTime(t));\n}\nexport function InLeapYear(t) {\n\treturn DaysInYear(YearFromTime(t)) === 365 ? 0 : 1;\n}\n/**\n* https://tc39.es/ecma262/#sec-month-number\n* @param t\n*/\nexport function MonthFromTime(t) {\n\tconst dwy = DayWithinYear(t);\n\tconst leap = InLeapYear(t);\n\tif (dwy >= 0 && dwy < 31) {\n\t\treturn 0;\n\t}\n\tif (dwy < 59 + leap) {\n\t\treturn 1;\n\t}\n\tif (dwy < 90 + leap) {\n\t\treturn 2;\n\t}\n\tif (dwy < 120 + leap) {\n\t\treturn 3;\n\t}\n\tif (dwy < 151 + leap) {\n\t\treturn 4;\n\t}\n\tif (dwy < 181 + leap) {\n\t\treturn 5;\n\t}\n\tif (dwy < 212 + leap) {\n\t\treturn 6;\n\t}\n\tif (dwy < 243 + leap) {\n\t\treturn 7;\n\t}\n\tif (dwy < 273 + leap) {\n\t\treturn 8;\n\t}\n\tif (dwy < 304 + leap) {\n\t\treturn 9;\n\t}\n\tif (dwy < 334 + leap) {\n\t\treturn 10;\n\t}\n\tif (dwy < 365 + leap) {\n\t\treturn 11;\n\t}\n\tthrow new Error(\"Invalid time\");\n}\nexport function DateFromTime(t) {\n\tconst dwy = DayWithinYear(t);\n\tconst mft = MonthFromTime(t);\n\tconst leap = InLeapYear(t);\n\tif (mft === 0) {\n\t\treturn dwy + 1;\n\t}\n\tif (mft === 1) {\n\t\treturn dwy - 30;\n\t}\n\tif (mft === 2) {\n\t\treturn dwy - 58 - leap;\n\t}\n\tif (mft === 3) {\n\t\treturn dwy - 89 - leap;\n\t}\n\tif (mft === 4) {\n\t\treturn dwy - 119 - leap;\n\t}\n\tif (mft === 5) {\n\t\treturn dwy - 150 - leap;\n\t}\n\tif (mft === 6) {\n\t\treturn dwy - 180 - leap;\n\t}\n\tif (mft === 7) {\n\t\treturn dwy - 211 - leap;\n\t}\n\tif (mft === 8) {\n\t\treturn dwy - 242 - leap;\n\t}\n\tif (mft === 9) {\n\t\treturn dwy - 272 - leap;\n\t}\n\tif (mft === 10) {\n\t\treturn dwy - 303 - leap;\n\t}\n\tif (mft === 11) {\n\t\treturn dwy - 333 - leap;\n\t}\n\tthrow new Error(\"Invalid time\");\n}\nconst HOURS_PER_DAY = 24;\nconst MINUTES_PER_HOUR = 60;\nconst SECONDS_PER_MINUTE = 60;\nconst MS_PER_SECOND = 1e3;\nconst MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;\nconst MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;\nexport function HourFromTime(t) {\n\treturn mod(Math.floor(t / MS_PER_HOUR), HOURS_PER_DAY);\n}\nexport function MinFromTime(t) {\n\treturn mod(Math.floor(t / MS_PER_MINUTE), MINUTES_PER_HOUR);\n}\nexport function SecFromTime(t) {\n\treturn mod(Math.floor(t / MS_PER_SECOND), SECONDS_PER_MINUTE);\n}\nfunction IsCallable(fn) {\n\treturn typeof fn === \"function\";\n}\n/**\n* The abstract operation OrdinaryHasInstance implements\n* the default algorithm for determining if an object O\n* inherits from the instance object inheritance path\n* provided by constructor C.\n* @param C class\n* @param O object\n* @param internalSlots internalSlots\n*/\nexport function OrdinaryHasInstance(C, O, internalSlots) {\n\tif (!IsCallable(C)) {\n\t\treturn false;\n\t}\n\tif (internalSlots?.boundTargetFunction) {\n\t\tlet BC = internalSlots?.boundTargetFunction;\n\t\treturn O instanceof BC;\n\t}\n\tif (typeof O !== \"object\") {\n\t\treturn false;\n\t}\n\tlet P = C.prototype;\n\tif (typeof P !== \"object\") {\n\t\tthrow new TypeError(\"OrdinaryHasInstance called on an object with an invalid prototype property.\");\n\t}\n\treturn Object.prototype.isPrototypeOf.call(P, O);\n}\nexport function msFromTime(t) {\n\treturn mod(t, MS_PER_SECOND);\n}\nfunction OrdinaryToPrimitive(O, hint) {\n\tlet methodNames;\n\tif (hint === \"string\") {\n\t\tmethodNames = [\"toString\", \"valueOf\"];\n\t} else {\n\t\tmethodNames = [\"valueOf\", \"toString\"];\n\t}\n\tfor (const name of methodNames) {\n\t\tconst method = O[name];\n\t\tif (IsCallable(method)) {\n\t\t\tlet result = method.call(O);\n\t\t\tif (typeof result !== \"object\") {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\tthrow new TypeError(\"Cannot convert object to primitive value\");\n}\nexport function ToPrimitive(input, preferredType) {\n\tif (typeof input === \"object\" && input != null) {\n\t\tconst exoticToPrim = Symbol.toPrimitive in input ? input[Symbol.toPrimitive] : undefined;\n\t\tlet hint;\n\t\tif (exoticToPrim !== undefined) {\n\t\t\tif (preferredType === undefined) {\n\t\t\t\thint = \"default\";\n\t\t\t} else if (preferredType === \"string\") {\n\t\t\t\thint = \"string\";\n\t\t\t} else {\n\t\t\t\tinvariant(preferredType === \"number\", \"preferredType must be \\\"string\\\" or \\\"number\\\"\");\n\t\t\t\thint = \"number\";\n\t\t\t}\n\t\t\tlet result = exoticToPrim.call(input, hint);\n\t\t\tif (typeof result !== \"object\") {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tthrow new TypeError(\"Cannot convert exotic object to primitive.\");\n\t\t}\n\t\tif (preferredType === undefined) {\n\t\t\tpreferredType = \"number\";\n\t\t}\n\t\treturn OrdinaryToPrimitive(input, preferredType);\n\t}\n\treturn input;\n}\n","export function memoize(fn, options) {\n\tconst cache = options && options.cache ? options.cache : cacheDefault;\n\tconst serializer = options && options.serializer ? options.serializer : serializerDefault;\n\tconst strategy = options && options.strategy ? options.strategy : strategyDefault;\n\treturn strategy(fn, {\n\t\tcache,\n\t\tserializer\n\t});\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n\treturn value == null || typeof value === \"number\" || typeof value === \"boolean\";\n}\nfunction monadic(fn, cache, serializer, arg) {\n\tconst cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n\tlet computedValue = cache.get(cacheKey);\n\tif (typeof computedValue === \"undefined\") {\n\t\tcomputedValue = fn.call(this, arg);\n\t\tcache.set(cacheKey, computedValue);\n\t}\n\treturn computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n\tconst args = Array.prototype.slice.call(arguments, 3);\n\tconst cacheKey = serializer(args);\n\tlet computedValue = cache.get(cacheKey);\n\tif (typeof computedValue === \"undefined\") {\n\t\tcomputedValue = fn.apply(this, args);\n\t\tcache.set(cacheKey, computedValue);\n\t}\n\treturn computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n\treturn strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n\tconst strategy = fn.length === 1 ? monadic : variadic;\n\treturn assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n\treturn assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n\treturn assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nconst serializerDefault = function() {\n\treturn JSON.stringify(arguments);\n};\n//\n// Cache\n//\nclass ObjectWithoutPrototypeCache {\n\tcache;\n\tconstructor() {\n\t\tthis.cache = Object.create(null);\n\t}\n\tget(key) {\n\t\treturn this.cache[key];\n\t}\n\tset(key, value) {\n\t\tthis.cache[key] = value;\n\t}\n}\nconst cacheDefault = { create: function create() {\n\treturn new ObjectWithoutPrototypeCache();\n} };\nexport const strategies = {\n\tvariadic: strategyVariadic,\n\tmonadic: strategyMonadic\n};\n","import { memoize, strategies } from \"@formatjs/fast-memoize\";\nexport function repeat(s, times) {\n\tif (typeof s.repeat === \"function\") {\n\t\treturn s.repeat(times);\n\t}\n\tconst arr = Array.from({ length: times });\n\tfor (let i = 0; i < arr.length; i++) {\n\t\tarr[i] = s;\n\t}\n\treturn arr.join(\"\");\n}\nexport function setInternalSlot(map, pl, field, value) {\n\tif (!map.get(pl)) {\n\t\tmap.set(pl, Object.create(null));\n\t}\n\tconst slots = map.get(pl);\n\tslots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n\tfor (const k of Object.keys(props)) {\n\t\tsetInternalSlot(map, pl, k, props[k]);\n\t}\n}\nexport function getInternalSlot(map, pl, field) {\n\treturn getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl, ...fields) {\n\tconst slots = map.get(pl);\n\tif (!slots) {\n\t\tthrow new TypeError(`${pl} InternalSlot has not been initialized`);\n\t}\n\treturn fields.reduce((all, f) => {\n\t\tall[f] = slots[f];\n\t\treturn all;\n\t}, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n\treturn patternPart.type === \"literal\";\n}\n/*\n17 ECMAScript Standard Built-in Objects:\nEvery built-in Function object, including constructors, that is not\nidentified as an anonymous function has a name property whose value\nis a String.\n\nUnless otherwise specified, the name property of a built-in Function\nobject, if it exists, has the attributes { [[Writable]]: false,\n[[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, { value }) {\n\tObject.defineProperty(target, name, {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\twritable: true,\n\t\tvalue\n\t});\n}\n/**\n* 7.3.5 CreateDataProperty\n* @param target\n* @param name\n* @param value\n*/\nexport function createDataProperty(target, name, value) {\n\tObject.defineProperty(target, name, {\n\t\tconfigurable: true,\n\t\tenumerable: true,\n\t\twritable: true,\n\t\tvalue\n\t});\n}\nexport const UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err = Error) {\n\tif (!condition) {\n\t\tthrow new Err(message);\n\t}\n}\nexport const createMemoizedNumberFormat = memoize((...args) => new Intl.NumberFormat(...args), { strategy: strategies.variadic });\nexport const createMemoizedPluralRules = memoize((...args) => new Intl.PluralRules(...args), { strategy: strategies.variadic });\nexport const createMemoizedLocale = memoize((...args) => new Intl.Locale(...args), { strategy: strategies.variadic });\nexport const createMemoizedListFormat = memoize((...args) => new Intl.ListFormat(...args), { strategy: strategies.variadic });\n","// Cache for Set conversions to avoid repeated array->Set conversions\nconst availableLocalesSetCache = new WeakMap();\n/**\n* https://tc39.es/ecma402/#sec-bestavailablelocale\n* @param availableLocales\n* @param locale\n*/\nexport function BestAvailableLocale(availableLocales, locale) {\n\t// Fast path: use Set for O(1) lookups instead of O(n) indexOf\n\tlet availableSet = availableLocalesSetCache.get(availableLocales);\n\tif (!availableSet) {\n\t\tavailableSet = new Set(availableLocales);\n\t\tavailableLocalesSetCache.set(availableLocales, availableSet);\n\t}\n\tlet candidate = locale;\n\twhile (true) {\n\t\tif (availableSet.has(candidate)) {\n\t\t\treturn candidate;\n\t\t}\n\t\tlet pos = candidate.lastIndexOf(\"-\");\n\t\tif (!~pos) {\n\t\t\treturn undefined;\n\t\t}\n\t\tif (pos >= 2 && candidate[pos - 2] === \"-\") {\n\t\t\tpos -= 2;\n\t\t}\n\t\tcandidate = candidate.slice(0, pos);\n\t}\n}\n","export const data = { supplemental: { languageMatching: { \"written-new\": [\n\t{ paradigmLocales: { _locales: \"en en_GB es es_419 pt_BR pt_PT\" } },\n\t{ $enUS: { _value: \"AS+CA+GU+MH+MP+PH+PR+UM+US+VI\" } },\n\t{ $cnsar: { _value: \"HK+MO\" } },\n\t{ $americas: { _value: \"019\" } },\n\t{ $maghreb: { _value: \"MA+DZ+TN+LY+MR+EH\" } },\n\t{ no: {\n\t\t_desired: \"nb\",\n\t\t_distance: \"1\"\n\t} },\n\t{ bs: {\n\t\t_desired: \"hr\",\n\t\t_distance: \"4\"\n\t} },\n\t{ bs: {\n\t\t_desired: \"sh\",\n\t\t_distance: \"4\"\n\t} },\n\t{ hr: {\n\t\t_desired: \"sh\",\n\t\t_distance: \"4\"\n\t} },\n\t{ sr: {\n\t\t_desired: \"sh\",\n\t\t_distance: \"4\"\n\t} },\n\t{ aa: {\n\t\t_desired: \"ssy\",\n\t\t_distance: \"4\"\n\t} },\n\t{ de: {\n\t\t_desired: \"gsw\",\n\t\t_distance: \"4\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ de: {\n\t\t_desired: \"lb\",\n\t\t_distance: \"4\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ no: {\n\t\t_desired: \"da\",\n\t\t_distance: \"8\"\n\t} },\n\t{ nb: {\n\t\t_desired: \"da\",\n\t\t_distance: \"8\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"ab\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ach\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ nl: {\n\t\t_desired: \"af\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ak\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"am\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ es: {\n\t\t_desired: \"ay\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"az\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ur: {\n\t\t_desired: \"bal\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"be\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"bem\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ hi: {\n\t\t_desired: \"bh\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"bn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"bo\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"br\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ es: {\n\t\t_desired: \"ca\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fil: {\n\t\t_desired: \"ceb\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"chr\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ckb\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"co\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"crs\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sk: {\n\t\t_desired: \"cs\",\n\t\t_distance: \"20\"\n\t} },\n\t{ en: {\n\t\t_desired: \"cy\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ee\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"eo\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ es: {\n\t\t_desired: \"eu\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ da: {\n\t\t_desired: \"fo\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ nl: {\n\t\t_desired: \"fy\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ga\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"gaa\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"gd\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ es: {\n\t\t_desired: \"gl\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ es: {\n\t\t_desired: \"gn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ hi: {\n\t\t_desired: \"gu\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ha\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"haw\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"ht\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"hy\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ia\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ig\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"is\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ id: {\n\t\t_desired: \"jv\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ka\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"kg\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"kk\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"km\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"kn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"kri\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ tr: {\n\t\t_desired: \"ku\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"ky\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ it: {\n\t\t_desired: \"la\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"lg\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"ln\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"lo\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"loz\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"lua\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ hi: {\n\t\t_desired: \"mai\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"mfe\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"mg\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"mi\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ml\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"mn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ hi: {\n\t\t_desired: \"mr\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ id: {\n\t\t_desired: \"ms\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"mt\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"my\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ne\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ nb: {\n\t\t_desired: \"nn\",\n\t\t_distance: \"20\"\n\t} },\n\t{ no: {\n\t\t_desired: \"nn\",\n\t\t_distance: \"20\"\n\t} },\n\t{ en: {\n\t\t_desired: \"nso\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ny\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"nyn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"oc\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"om\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"or\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"pa\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"pcm\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ps\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ es: {\n\t\t_desired: \"qu\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ de: {\n\t\t_desired: \"rm\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"rn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"rw\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ hi: {\n\t\t_desired: \"sa\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"sd\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"si\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"sn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"so\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"sq\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"st\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ id: {\n\t\t_desired: \"su\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"sw\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ta\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"te\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"tg\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ti\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"tk\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"tlh\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"tn\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"to\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"tt\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"tum\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"ug\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"uk\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"ur\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ru: {\n\t\t_desired: \"uz\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ fr: {\n\t\t_desired: \"wo\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"xh\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"yi\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"yo\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"za\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ en: {\n\t\t_desired: \"zu\",\n\t\t_distance: \"30\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"aao\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"abh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"abv\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"acm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"acq\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"acw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"acx\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"acy\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"adf\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"aeb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"aec\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"afb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ajp\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"apc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"apd\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"arq\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ars\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ary\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"arz\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"auz\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"avl\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ayh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ayl\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ayn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ayp\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"bbz\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"pga\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"shu\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ar: {\n\t\t_desired: \"ssh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ az: {\n\t\t_desired: \"azb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ et: {\n\t\t_desired: \"vro\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"ffm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fub\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fue\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fuf\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fuh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fui\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fuq\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ff: {\n\t\t_desired: \"fuv\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ gn: {\n\t\t_desired: \"gnw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ gn: {\n\t\t_desired: \"gui\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ gn: {\n\t\t_desired: \"gun\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ gn: {\n\t\t_desired: \"nhd\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ iu: {\n\t\t_desired: \"ikt\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"enb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"eyo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"niq\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"oki\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"pko\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"sgc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"tec\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kln: {\n\t\t_desired: \"tuy\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kok: {\n\t\t_desired: \"gom\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ kpe: {\n\t\t_desired: \"gkp\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"ida\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lkb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lko\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lks\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lri\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lrm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lsm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lto\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lts\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"lwg\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"nle\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"nyd\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ luy: {\n\t\t_desired: \"rag\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ lv: {\n\t\t_desired: \"ltg\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"bhr\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"bjq\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"bmm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"bzc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"msh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"skg\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"tdx\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"tkg\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"txy\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"xmv\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mg: {\n\t\t_desired: \"xmw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ mn: {\n\t\t_desired: \"mvf\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"bjn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"btj\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"bve\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"bvu\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"coa\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"dup\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"hji\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"id\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"jak\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"jax\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"kvb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"kvr\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"kxd\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"lce\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"lcf\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"liw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"max\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"meo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"mfa\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"mfb\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"min\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"mqg\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"msi\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"mui\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"orn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"ors\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"pel\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"pse\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"tmw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"urk\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"vkk\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"vkt\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"xmm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"zlm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ms: {\n\t\t_desired: \"zmi\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ne: {\n\t\t_desired: \"dty\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ om: {\n\t\t_desired: \"gax\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ om: {\n\t\t_desired: \"hae\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ om: {\n\t\t_desired: \"orc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ or: {\n\t\t_desired: \"spv\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ps: {\n\t\t_desired: \"pbt\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ ps: {\n\t\t_desired: \"pst\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qub\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qud\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"quf\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qug\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"quh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"quk\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qul\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qup\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qur\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qus\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"quw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qux\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"quy\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qva\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qve\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvi\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvj\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvl\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvm\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvp\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvs\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qvz\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qwa\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qwc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qwh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qws\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxa\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxl\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxp\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxr\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxt\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxu\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ qu: {\n\t\t_desired: \"qxw\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sc: {\n\t\t_desired: \"sdc\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sc: {\n\t\t_desired: \"sdn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sc: {\n\t\t_desired: \"sro\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sq: {\n\t\t_desired: \"aae\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sq: {\n\t\t_desired: \"aat\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ sq: {\n\t\t_desired: \"aln\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ syr: {\n\t\t_desired: \"aii\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ uz: {\n\t\t_desired: \"uzs\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ yi: {\n\t\t_desired: \"yih\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"cdo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"cjy\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"cpx\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"czh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"czo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"gan\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"hak\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"hsn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"lzh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"mnp\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"nan\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"wuu\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ zh: {\n\t\t_desired: \"yue\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"*\": {\n\t\t_desired: \"*\",\n\t\t_distance: \"80\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"am-Ethi\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ru-Cyrl\": {\n\t\t_desired: \"az-Latn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"bn-Beng\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"zh-Hans\": {\n\t\t_desired: \"bo-Tibt\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ru-Cyrl\": {\n\t\t_desired: \"hy-Armn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ka-Geor\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"km-Khmr\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"kn-Knda\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"lo-Laoo\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ml-Mlym\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"my-Mymr\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ne-Deva\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"or-Orya\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"pa-Guru\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ps-Arab\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"sd-Arab\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"si-Sinh\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ta-Taml\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"te-Telu\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ti-Ethi\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ru-Cyrl\": {\n\t\t_desired: \"tk-Latn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"ur-Arab\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ru-Cyrl\": {\n\t\t_desired: \"uz-Latn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"en-Latn\": {\n\t\t_desired: \"yi-Hebr\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"sr-Cyrl\": {\n\t\t_desired: \"sr-Latn\",\n\t\t_distance: \"5\"\n\t} },\n\t{ \"zh-Hans\": {\n\t\t_desired: \"za-Latn\",\n\t\t_distance: \"10\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"zh-Hans\": {\n\t\t_desired: \"zh-Hani\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"zh-Hant\": {\n\t\t_desired: \"zh-Hani\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ar-Arab\": {\n\t\t_desired: \"ar-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"bn-Beng\": {\n\t\t_desired: \"bn-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"gu-Gujr\": {\n\t\t_desired: \"gu-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"hi-Deva\": {\n\t\t_desired: \"hi-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"kn-Knda\": {\n\t\t_desired: \"kn-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ml-Mlym\": {\n\t\t_desired: \"ml-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"mr-Deva\": {\n\t\t_desired: \"mr-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ta-Taml\": {\n\t\t_desired: \"ta-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"te-Telu\": {\n\t\t_desired: \"te-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"zh-Hans\": {\n\t\t_desired: \"zh-Latn\",\n\t\t_distance: \"20\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Jpan\": {\n\t\t_desired: \"ja-Latn\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Jpan\": {\n\t\t_desired: \"ja-Hani\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Jpan\": {\n\t\t_desired: \"ja-Hira\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Jpan\": {\n\t\t_desired: \"ja-Kana\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Jpan\": {\n\t\t_desired: \"ja-Hrkt\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Hrkt\": {\n\t\t_desired: \"ja-Hira\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ja-Hrkt\": {\n\t\t_desired: \"ja-Kana\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ko-Kore\": {\n\t\t_desired: \"ko-Hani\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ko-Kore\": {\n\t\t_desired: \"ko-Hang\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ko-Kore\": {\n\t\t_desired: \"ko-Jamo\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"ko-Hang\": {\n\t\t_desired: \"ko-Jamo\",\n\t\t_distance: \"5\",\n\t\t_oneway: \"true\"\n\t} },\n\t{ \"*-*\": {\n\t\t_desired: \"*-*\",\n\t\t_distance: \"50\"\n\t} },\n\t{ \"ar-*-$maghreb\": {\n\t\t_desired: \"ar-*-$maghreb\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"ar-*-$!maghreb\": {\n\t\t_desired: \"ar-*-$!maghreb\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"ar-*-*\": {\n\t\t_desired: \"ar-*-*\",\n\t\t_distance: \"5\"\n\t} },\n\t{ \"en-*-$enUS\": {\n\t\t_desired: \"en-*-$enUS\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"en-*-GB\": {\n\t\t_desired: \"en-*-$!enUS\",\n\t\t_distance: \"3\"\n\t} },\n\t{ \"en-*-$!enUS\": {\n\t\t_desired: \"en-*-$!enUS\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"en-*-*\": {\n\t\t_desired: \"en-*-*\",\n\t\t_distance: \"5\"\n\t} },\n\t{ \"es-*-$americas\": {\n\t\t_desired: \"es-*-$americas\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"es-*-$!americas\": {\n\t\t_desired: \"es-*-$!americas\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"es-*-*\": {\n\t\t_desired: \"es-*-*\",\n\t\t_distance: \"5\"\n\t} },\n\t{ \"pt-*-$americas\": {\n\t\t_desired: \"pt-*-$americas\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"pt-*-$!americas\": {\n\t\t_desired: \"pt-*-$!americas\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"pt-*-*\": {\n\t\t_desired: \"pt-*-*\",\n\t\t_distance: \"5\"\n\t} },\n\t{ \"zh-Hant-$cnsar\": {\n\t\t_desired: \"zh-Hant-$cnsar\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"zh-Hant-$!cnsar\": {\n\t\t_desired: \"zh-Hant-$!cnsar\",\n\t\t_distance: \"4\"\n\t} },\n\t{ \"zh-Hant-*\": {\n\t\t_desired: \"zh-Hant-*\",\n\t\t_distance: \"5\"\n\t} },\n\t{ \"*-*-*\": {\n\t\t_desired: \"*-*-*\",\n\t\t_distance: \"4\"\n\t} }\n] } } };\n","// This file is generated from regions-gen.ts\nexport const regions = {\n\t\"001\": [\n\t\t\"001\",\n\t\t\"001-status-grouping\",\n\t\t\"002\",\n\t\t\"005\",\n\t\t\"009\",\n\t\t\"011\",\n\t\t\"013\",\n\t\t\"014\",\n\t\t\"015\",\n\t\t\"017\",\n\t\t\"018\",\n\t\t\"019\",\n\t\t\"021\",\n\t\t\"029\",\n\t\t\"030\",\n\t\t\"034\",\n\t\t\"035\",\n\t\t\"039\",\n\t\t\"053\",\n\t\t\"054\",\n\t\t\"057\",\n\t\t\"061\",\n\t\t\"142\",\n\t\t\"143\",\n\t\t\"145\",\n\t\t\"150\",\n\t\t\"151\",\n\t\t\"154\",\n\t\t\"155\",\n\t\t\"AC\",\n\t\t\"AD\",\n\t\t\"AE\",\n\t\t\"AF\",\n\t\t\"AG\",\n\t\t\"AI\",\n\t\t\"AL\",\n\t\t\"AM\",\n\t\t\"AO\",\n\t\t\"AQ\",\n\t\t\"AR\",\n\t\t\"AS\",\n\t\t\"AT\",\n\t\t\"AU\",\n\t\t\"AW\",\n\t\t\"AX\",\n\t\t\"AZ\",\n\t\t\"BA\",\n\t\t\"BB\",\n\t\t\"BD\",\n\t\t\"BE\",\n\t\t\"BF\",\n\t\t\"BG\",\n\t\t\"BH\",\n\t\t\"BI\",\n\t\t\"BJ\",\n\t\t\"BL\",\n\t\t\"BM\",\n\t\t\"BN\",\n\t\t\"BO\",\n\t\t\"BQ\",\n\t\t\"BR\",\n\t\t\"BS\",\n\t\t\"BT\",\n\t\t\"BV\",\n\t\t\"BW\",\n\t\t\"BY\",\n\t\t\"BZ\",\n\t\t\"CA\",\n\t\t\"CC\",\n\t\t\"CD\",\n\t\t\"CF\",\n\t\t\"CG\",\n\t\t\"CH\",\n\t\t\"CI\",\n\t\t\"CK\",\n\t\t\"CL\",\n\t\t\"CM\",\n\t\t\"CN\",\n\t\t\"CO\",\n\t\t\"CP\",\n\t\t\"CQ\",\n\t\t\"CR\",\n\t\t\"CU\",\n\t\t\"CV\",\n\t\t\"CW\",\n\t\t\"CX\",\n\t\t\"CY\",\n\t\t\"CZ\",\n\t\t\"DE\",\n\t\t\"DG\",\n\t\t\"DJ\",\n\t\t\"DK\",\n\t\t\"DM\",\n\t\t\"DO\",\n\t\t\"DZ\",\n\t\t\"EA\",\n\t\t\"EC\",\n\t\t\"EE\",\n\t\t\"EG\",\n\t\t\"EH\",\n\t\t\"ER\",\n\t\t\"ES\",\n\t\t\"ET\",\n\t\t\"EU\",\n\t\t\"EZ\",\n\t\t\"FI\",\n\t\t\"FJ\",\n\t\t\"FK\",\n\t\t\"FM\",\n\t\t\"FO\",\n\t\t\"FR\",\n\t\t\"GA\",\n\t\t\"GB\",\n\t\t\"GD\",\n\t\t\"GE\",\n\t\t\"GF\",\n\t\t\"GG\",\n\t\t\"GH\",\n\t\t\"GI\",\n\t\t\"GL\",\n\t\t\"GM\",\n\t\t\"GN\",\n\t\t\"GP\",\n\t\t\"GQ\",\n\t\t\"GR\",\n\t\t\"GS\",\n\t\t\"GT\",\n\t\t\"GU\",\n\t\t\"GW\",\n\t\t\"GY\",\n\t\t\"HK\",\n\t\t\"HM\",\n\t\t\"HN\",\n\t\t\"HR\",\n\t\t\"HT\",\n\t\t\"HU\",\n\t\t\"IC\",\n\t\t\"ID\",\n\t\t\"IE\",\n\t\t\"IL\",\n\t\t\"IM\",\n\t\t\"IN\",\n\t\t\"IO\",\n\t\t\"IQ\",\n\t\t\"IR\",\n\t\t\"IS\",\n\t\t\"IT\",\n\t\t\"JE\",\n\t\t\"JM\",\n\t\t\"JO\",\n\t\t\"JP\",\n\t\t\"KE\",\n\t\t\"KG\",\n\t\t\"KH\",\n\t\t\"KI\",\n\t\t\"KM\",\n\t\t\"KN\",\n\t\t\"KP\",\n\t\t\"KR\",\n\t\t\"KW\",\n\t\t\"KY\",\n\t\t\"KZ\",\n\t\t\"LA\",\n\t\t\"LB\",\n\t\t\"LC\",\n\t\t\"LI\",\n\t\t\"LK\",\n\t\t\"LR\",\n\t\t\"LS\",\n\t\t\"LT\",\n\t\t\"LU\",\n\t\t\"LV\",\n\t\t\"LY\",\n\t\t\"MA\",\n\t\t\"MC\",\n\t\t\"MD\",\n\t\t\"ME\",\n\t\t\"MF\",\n\t\t\"MG\",\n\t\t\"MH\",\n\t\t\"MK\",\n\t\t\"ML\",\n\t\t\"MM\",\n\t\t\"MN\",\n\t\t\"MO\",\n\t\t\"MP\",\n\t\t\"MQ\",\n\t\t\"MR\",\n\t\t\"MS\",\n\t\t\"MT\",\n\t\t\"MU\",\n\t\t\"MV\",\n\t\t\"MW\",\n\t\t\"MX\",\n\t\t\"MY\",\n\t\t\"MZ\",\n\t\t\"NA\",\n\t\t\"NC\",\n\t\t\"NE\",\n\t\t\"NF\",\n\t\t\"NG\",\n\t\t\"NI\",\n\t\t\"NL\",\n\t\t\"NO\",\n\t\t\"NP\",\n\t\t\"NR\",\n\t\t\"NU\",\n\t\t\"NZ\",\n\t\t\"OM\",\n\t\t\"PA\",\n\t\t\"PE\",\n\t\t\"PF\",\n\t\t\"PG\",\n\t\t\"PH\",\n\t\t\"PK\",\n\t\t\"PL\",\n\t\t\"PM\",\n\t\t\"PN\",\n\t\t\"PR\",\n\t\t\"PS\",\n\t\t\"PT\",\n\t\t\"PW\",\n\t\t\"PY\",\n\t\t\"QA\",\n\t\t\"QO\",\n\t\t\"RE\",\n\t\t\"RO\",\n\t\t\"RS\",\n\t\t\"RU\",\n\t\t\"RW\",\n\t\t\"SA\",\n\t\t\"SB\",\n\t\t\"SC\",\n\t\t\"SD\",\n\t\t\"SE\",\n\t\t\"SG\",\n\t\t\"SH\",\n\t\t\"SI\",\n\t\t\"SJ\",\n\t\t\"SK\",\n\t\t\"SL\",\n\t\t\"SM\",\n\t\t\"SN\",\n\t\t\"SO\",\n\t\t\"SR\",\n\t\t\"SS\",\n\t\t\"ST\",\n\t\t\"SV\",\n\t\t\"SX\",\n\t\t\"SY\",\n\t\t\"SZ\",\n\t\t\"TA\",\n\t\t\"TC\",\n\t\t\"TD\",\n\t\t\"TF\",\n\t\t\"TG\",\n\t\t\"TH\",\n\t\t\"TJ\",\n\t\t\"TK\",\n\t\t\"TL\",\n\t\t\"TM\",\n\t\t\"TN\",\n\t\t\"TO\",\n\t\t\"TR\",\n\t\t\"TT\",\n\t\t\"TV\",\n\t\t\"TW\",\n\t\t\"TZ\",\n\t\t\"UA\",\n\t\t\"UG\",\n\t\t\"UM\",\n\t\t\"UN\",\n\t\t\"US\",\n\t\t\"UY\",\n\t\t\"UZ\",\n\t\t\"VA\",\n\t\t\"VC\",\n\t\t\"VE\",\n\t\t\"VG\",\n\t\t\"VI\",\n\t\t\"VN\",\n\t\t\"VU\",\n\t\t\"WF\",\n\t\t\"WS\",\n\t\t\"XK\",\n\t\t\"YE\",\n\t\t\"YT\",\n\t\t\"ZA\",\n\t\t\"ZM\",\n\t\t\"ZW\"\n\t],\n\t\"002\": [\n\t\t\"002\",\n\t\t\"002-status-grouping\",\n\t\t\"011\",\n\t\t\"014\",\n\t\t\"015\",\n\t\t\"017\",\n\t\t\"018\",\n\t\t\"202\",\n\t\t\"AO\",\n\t\t\"BF\",\n\t\t\"BI\",\n\t\t\"BJ\",\n\t\t\"BW\",\n\t\t\"CD\",\n\t\t\"CF\",\n\t\t\"CG\",\n\t\t\"CI\",\n\t\t\"CM\",\n\t\t\"CV\",\n\t\t\"DJ\",\n\t\t\"DZ\",\n\t\t\"EA\",\n\t\t\"EG\",\n\t\t\"EH\",\n\t\t\"ER\",\n\t\t\"ET\",\n\t\t\"GA\",\n\t\t\"GH\",\n\t\t\"GM\",\n\t\t\"GN\",\n\t\t\"GQ\",\n\t\t\"GW\",\n\t\t\"IC\",\n\t\t\"IO\",\n\t\t\"KE\",\n\t\t\"KM\",\n\t\t\"LR\",\n\t\t\"LS\",\n\t\t\"LY\",\n\t\t\"MA\",\n\t\t\"MG\",\n\t\t\"ML\",\n\t\t\"MR\",\n\t\t\"MU\",\n\t\t\"MW\",\n\t\t\"MZ\",\n\t\t\"NA\",\n\t\t\"NE\",\n\t\t\"NG\",\n\t\t\"RE\",\n\t\t\"RW\",\n\t\t\"SC\",\n\t\t\"SD\",\n\t\t\"SH\",\n\t\t\"SL\",\n\t\t\"SN\",\n\t\t\"SO\",\n\t\t\"SS\",\n\t\t\"ST\",\n\t\t\"SZ\",\n\t\t\"TD\",\n\t\t\"TF\",\n\t\t\"TG\",\n\t\t\"TN\",\n\t\t\"TZ\",\n\t\t\"UG\",\n\t\t\"YT\",\n\t\t\"ZA\",\n\t\t\"ZM\",\n\t\t\"ZW\"\n\t],\n\t\"003\": [\n\t\t\"003\",\n\t\t\"013\",\n\t\t\"021\",\n\t\t\"029\",\n\t\t\"AG\",\n\t\t\"AI\",\n\t\t\"AW\",\n\t\t\"BB\",\n\t\t\"BL\",\n\t\t\"BM\",\n\t\t\"BQ\",\n\t\t\"BS\",\n\t\t\"BZ\",\n\t\t\"CA\",\n\t\t\"CR\",\n\t\t\"CU\",\n\t\t\"CW\",\n\t\t\"DM\",\n\t\t\"DO\",\n\t\t\"GD\",\n\t\t\"GL\",\n\t\t\"GP\",\n\t\t\"GT\",\n\t\t\"HN\",\n\t\t\"HT\",\n\t\t\"JM\",\n\t\t\"KN\",\n\t\t\"KY\",\n\t\t\"LC\",\n\t\t\"MF\",\n\t\t\"MQ\",\n\t\t\"MS\",\n\t\t\"MX\",\n\t\t\"NI\",\n\t\t\"PA\",\n\t\t\"PM\",\n\t\t\"PR\",\n\t\t\"SV\",\n\t\t\"SX\",\n\t\t\"TC\",\n\t\t\"TT\",\n\t\t\"US\",\n\t\t\"VC\",\n\t\t\"VG\",\n\t\t\"VI\"\n\t],\n\t\"005\": [\n\t\t\"005\",\n\t\t\"AR\",\n\t\t\"BO\",\n\t\t\"BR\",\n\t\t\"BV\",\n\t\t\"CL\",\n\t\t\"CO\",\n\t\t\"EC\",\n\t\t\"FK\",\n\t\t\"GF\",\n\t\t\"GS\",\n\t\t\"GY\",\n\t\t\"PE\",\n\t\t\"PY\",\n\t\t\"SR\",\n\t\t\"UY\",\n\t\t\"VE\"\n\t],\n\t\"009\": [\n\t\t\"009\",\n\t\t\"053\",\n\t\t\"054\",\n\t\t\"057\",\n\t\t\"061\",\n\t\t\"AC\",\n\t\t\"AQ\",\n\t\t\"AS\",\n\t\t\"AU\",\n\t\t\"CC\",\n\t\t\"CK\",\n\t\t\"CP\",\n\t\t\"CX\",\n\t\t\"DG\",\n\t\t\"FJ\",\n\t\t\"FM\",\n\t\t\"GU\",\n\t\t\"HM\",\n\t\t\"KI\",\n\t\t\"MH\",\n\t\t\"MP\",\n\t\t\"NC\",\n\t\t\"NF\",\n\t\t\"NR\",\n\t\t\"NU\",\n\t\t\"NZ\",\n\t\t\"PF\",\n\t\t\"PG\",\n\t\t\"PN\",\n\t\t\"PW\",\n\t\t\"QO\",\n\t\t\"SB\",\n\t\t\"TA\",\n\t\t\"TK\",\n\t\t\"TO\",\n\t\t\"TV\",\n\t\t\"UM\",\n\t\t\"VU\",\n\t\t\"WF\",\n\t\t\"WS\"\n\t],\n\t\"011\": [\n\t\t\"011\",\n\t\t\"BF\",\n\t\t\"BJ\",\n\t\t\"CI\",\n\t\t\"CV\",\n\t\t\"GH\",\n\t\t\"GM\",\n\t\t\"GN\",\n\t\t\"GW\",\n\t\t\"LR\",\n\t\t\"ML\",\n\t\t\"MR\",\n\t\t\"NE\",\n\t\t\"NG\",\n\t\t\"SH\",\n\t\t\"SL\",\n\t\t\"SN\",\n\t\t\"TG\"\n\t],\n\t\"013\": [\n\t\t\"013\",\n\t\t\"BZ\",\n\t\t\"CR\",\n\t\t\"GT\",\n\t\t\"HN\",\n\t\t\"MX\",\n\t\t\"NI\",\n\t\t\"PA\",\n\t\t\"SV\"\n\t],\n\t\"014\": [\n\t\t\"014\",\n\t\t\"BI\",\n\t\t\"DJ\",\n\t\t\"ER\",\n\t\t\"ET\",\n\t\t\"IO\",\n\t\t\"KE\",\n\t\t\"KM\",\n\t\t\"MG\",\n\t\t\"MU\",\n\t\t\"MW\",\n\t\t\"MZ\",\n\t\t\"RE\",\n\t\t\"RW\",\n\t\t\"SC\",\n\t\t\"SO\",\n\t\t\"SS\",\n\t\t\"TF\",\n\t\t\"TZ\",\n\t\t\"UG\",\n\t\t\"YT\",\n\t\t\"ZM\",\n\t\t\"ZW\"\n\t],\n\t\"015\": [\n\t\t\"015\",\n\t\t\"DZ\",\n\t\t\"EA\",\n\t\t\"EG\",\n\t\t\"EH\",\n\t\t\"IC\",\n\t\t\"LY\",\n\t\t\"MA\",\n\t\t\"SD\",\n\t\t\"TN\"\n\t],\n\t\"017\": [\n\t\t\"017\",\n\t\t\"AO\",\n\t\t\"CD\",\n\t\t\"CF\",\n\t\t\"CG\",\n\t\t\"CM\",\n\t\t\"GA\",\n\t\t\"GQ\",\n\t\t\"ST\",\n\t\t\"TD\"\n\t],\n\t\"018\": [\n\t\t\"018\",\n\t\t\"BW\",\n\t\t\"LS\",\n\t\t\"NA\",\n\t\t\"SZ\",\n\t\t\"ZA\"\n\t],\n\t\"019\": [\n\t\t\"003\",\n\t\t\"005\",\n\t\t\"013\",\n\t\t\"019\",\n\t\t\"019-status-grouping\",\n\t\t\"021\",\n\t\t\"029\",\n\t\t\"419\",\n\t\t\"AG\",\n\t\t\"AI\",\n\t\t\"AR\",\n\t\t\"AW\",\n\t\t\"BB\",\n\t\t\"BL\",\n\t\t\"BM\",\n\t\t\"BO\",\n\t\t\"BQ\",\n\t\t\"BR\",\n\t\t\"BS\",\n\t\t\"BV\",\n\t\t\"BZ\",\n\t\t\"CA\",\n\t\t\"CL\",\n\t\t\"CO\",\n\t\t\"CR\",\n\t\t\"CU\",\n\t\t\"CW\",\n\t\t\"DM\",\n\t\t\"DO\",\n\t\t\"EC\",\n\t\t\"FK\",\n\t\t\"GD\",\n\t\t\"GF\",\n\t\t\"GL\",\n\t\t\"GP\",\n\t\t\"GS\",\n\t\t\"GT\",\n\t\t\"GY\",\n\t\t\"HN\",\n\t\t\"HT\",\n\t\t\"JM\",\n\t\t\"KN\",\n\t\t\"KY\",\n\t\t\"LC\",\n\t\t\"MF\",\n\t\t\"MQ\",\n\t\t\"MS\",\n\t\t\"MX\",\n\t\t\"NI\",\n\t\t\"PA\",\n\t\t\"PE\",\n\t\t\"PM\",\n\t\t\"PR\",\n\t\t\"PY\",\n\t\t\"SR\",\n\t\t\"SV\",\n\t\t\"SX\",\n\t\t\"TC\",\n\t\t\"TT\",\n\t\t\"US\",\n\t\t\"UY\",\n\t\t\"VC\",\n\t\t\"VE\",\n\t\t\"VG\",\n\t\t\"VI\"\n\t],\n\t\"021\": [\n\t\t\"021\",\n\t\t\"BM\",\n\t\t\"CA\",\n\t\t\"GL\",\n\t\t\"PM\",\n\t\t\"US\"\n\t],\n\t\"029\": [\n\t\t\"029\",\n\t\t\"AG\",\n\t\t\"AI\",\n\t\t\"AW\",\n\t\t\"BB\",\n\t\t\"BL\",\n\t\t\"BQ\",\n\t\t\"BS\",\n\t\t\"CU\",\n\t\t\"CW\",\n\t\t\"DM\",\n\t\t\"DO\",\n\t\t\"GD\",\n\t\t\"GP\",\n\t\t\"HT\",\n\t\t\"JM\",\n\t\t\"KN\",\n\t\t\"KY\",\n\t\t\"LC\",\n\t\t\"MF\",\n\t\t\"MQ\",\n\t\t\"MS\",\n\t\t\"PR\",\n\t\t\"SX\",\n\t\t\"TC\",\n\t\t\"TT\",\n\t\t\"VC\",\n\t\t\"VG\",\n\t\t\"VI\"\n\t],\n\t\"030\": [\n\t\t\"030\",\n\t\t\"CN\",\n\t\t\"HK\",\n\t\t\"JP\",\n\t\t\"KP\",\n\t\t\"KR\",\n\t\t\"MN\",\n\t\t\"MO\",\n\t\t\"TW\"\n\t],\n\t\"034\": [\n\t\t\"034\",\n\t\t\"AF\",\n\t\t\"BD\",\n\t\t\"BT\",\n\t\t\"IN\",\n\t\t\"IR\",\n\t\t\"LK\",\n\t\t\"MV\",\n\t\t\"NP\",\n\t\t\"PK\"\n\t],\n\t\"035\": [\n\t\t\"035\",\n\t\t\"BN\",\n\t\t\"ID\",\n\t\t\"KH\",\n\t\t\"LA\",\n\t\t\"MM\",\n\t\t\"MY\",\n\t\t\"PH\",\n\t\t\"SG\",\n\t\t\"TH\",\n\t\t\"TL\",\n\t\t\"VN\"\n\t],\n\t\"039\": [\n\t\t\"039\",\n\t\t\"AD\",\n\t\t\"AL\",\n\t\t\"BA\",\n\t\t\"ES\",\n\t\t\"GI\",\n\t\t\"GR\",\n\t\t\"HR\",\n\t\t\"IT\",\n\t\t\"ME\",\n\t\t\"MK\",\n\t\t\"MT\",\n\t\t\"PT\",\n\t\t\"RS\",\n\t\t\"SI\",\n\t\t\"SM\",\n\t\t\"VA\",\n\t\t\"XK\"\n\t],\n\t\"053\": [\n\t\t\"053\",\n\t\t\"AU\",\n\t\t\"CC\",\n\t\t\"CX\",\n\t\t\"HM\",\n\t\t\"NF\",\n\t\t\"NZ\"\n\t],\n\t\"054\": [\n\t\t\"054\",\n\t\t\"FJ\",\n\t\t\"NC\",\n\t\t\"PG\",\n\t\t\"SB\",\n\t\t\"VU\"\n\t],\n\t\"057\": [\n\t\t\"057\",\n\t\t\"FM\",\n\t\t\"GU\",\n\t\t\"KI\",\n\t\t\"MH\",\n\t\t\"MP\",\n\t\t\"NR\",\n\t\t\"PW\",\n\t\t\"UM\"\n\t],\n\t\"061\": [\n\t\t\"061\",\n\t\t\"AS\",\n\t\t\"CK\",\n\t\t\"NU\",\n\t\t\"PF\",\n\t\t\"PN\",\n\t\t\"TK\",\n\t\t\"TO\",\n\t\t\"TV\",\n\t\t\"WF\",\n\t\t\"WS\"\n\t],\n\t\"142\": [\n\t\t\"030\",\n\t\t\"034\",\n\t\t\"035\",\n\t\t\"142\",\n\t\t\"143\",\n\t\t\"145\",\n\t\t\"AE\",\n\t\t\"AF\",\n\t\t\"AM\",\n\t\t\"AZ\",\n\t\t\"BD\",\n\t\t\"BH\",\n\t\t\"BN\",\n\t\t\"BT\",\n\t\t\"CN\",\n\t\t\"CY\",\n\t\t\"GE\",\n\t\t\"HK\",\n\t\t\"ID\",\n\t\t\"IL\",\n\t\t\"IN\",\n\t\t\"IQ\",\n\t\t\"IR\",\n\t\t\"JO\",\n\t\t\"JP\",\n\t\t\"KG\",\n\t\t\"KH\",\n\t\t\"KP\",\n\t\t\"KR\",\n\t\t\"KW\",\n\t\t\"KZ\",\n\t\t\"LA\",\n\t\t\"LB\",\n\t\t\"LK\",\n\t\t\"MM\",\n\t\t\"MN\",\n\t\t\"MO\",\n\t\t\"MV\",\n\t\t\"MY\",\n\t\t\"NP\",\n\t\t\"OM\",\n\t\t\"PH\",\n\t\t\"PK\",\n\t\t\"PS\",\n\t\t\"QA\",\n\t\t\"SA\",\n\t\t\"SG\",\n\t\t\"SY\",\n\t\t\"TH\",\n\t\t\"TJ\",\n\t\t\"TL\",\n\t\t\"TM\",\n\t\t\"TR\",\n\t\t\"TW\",\n\t\t\"UZ\",\n\t\t\"VN\",\n\t\t\"YE\"\n\t],\n\t\"143\": [\n\t\t\"143\",\n\t\t\"KG\",\n\t\t\"KZ\",\n\t\t\"TJ\",\n\t\t\"TM\",\n\t\t\"UZ\"\n\t],\n\t\"145\": [\n\t\t\"145\",\n\t\t\"AE\",\n\t\t\"AM\",\n\t\t\"AZ\",\n\t\t\"BH\",\n\t\t\"CY\",\n\t\t\"GE\",\n\t\t\"IL\",\n\t\t\"IQ\",\n\t\t\"JO\",\n\t\t\"KW\",\n\t\t\"LB\",\n\t\t\"OM\",\n\t\t\"PS\",\n\t\t\"QA\",\n\t\t\"SA\",\n\t\t\"SY\",\n\t\t\"TR\",\n\t\t\"YE\"\n\t],\n\t\"150\": [\n\t\t\"039\",\n\t\t\"150\",\n\t\t\"151\",\n\t\t\"154\",\n\t\t\"155\",\n\t\t\"AD\",\n\t\t\"AL\",\n\t\t\"AT\",\n\t\t\"AX\",\n\t\t\"BA\",\n\t\t\"BE\",\n\t\t\"BG\",\n\t\t\"BY\",\n\t\t\"CH\",\n\t\t\"CQ\",\n\t\t\"CZ\",\n\t\t\"DE\",\n\t\t\"DK\",\n\t\t\"EE\",\n\t\t\"ES\",\n\t\t\"FI\",\n\t\t\"FO\",\n\t\t\"FR\",\n\t\t\"GB\",\n\t\t\"GG\",\n\t\t\"GI\",\n\t\t\"GR\",\n\t\t\"HR\",\n\t\t\"HU\",\n\t\t\"IE\",\n\t\t\"IM\",\n\t\t\"IS\",\n\t\t\"IT\",\n\t\t\"JE\",\n\t\t\"LI\",\n\t\t\"LT\",\n\t\t\"LU\",\n\t\t\"LV\",\n\t\t\"MC\",\n\t\t\"MD\",\n\t\t\"ME\",\n\t\t\"MK\",\n\t\t\"MT\",\n\t\t\"NL\",\n\t\t\"NO\",\n\t\t\"PL\",\n\t\t\"PT\",\n\t\t\"RO\",\n\t\t\"RS\",\n\t\t\"RU\",\n\t\t\"SE\",\n\t\t\"SI\",\n\t\t\"SJ\",\n\t\t\"SK\",\n\t\t\"SM\",\n\t\t\"UA\",\n\t\t\"VA\",\n\t\t\"XK\"\n\t],\n\t\"151\": [\n\t\t\"151\",\n\t\t\"BG\",\n\t\t\"BY\",\n\t\t\"CZ\",\n\t\t\"HU\",\n\t\t\"MD\",\n\t\t\"PL\",\n\t\t\"RO\",\n\t\t\"RU\",\n\t\t\"SK\",\n\t\t\"UA\"\n\t],\n\t\"154\": [\n\t\t\"154\",\n\t\t\"AX\",\n\t\t\"CQ\",\n\t\t\"DK\",\n\t\t\"EE\",\n\t\t\"FI\",\n\t\t\"FO\",\n\t\t\"GB\",\n\t\t\"GG\",\n\t\t\"IE\",\n\t\t\"IM\",\n\t\t\"IS\",\n\t\t\"JE\",\n\t\t\"LT\",\n\t\t\"LV\",\n\t\t\"NO\",\n\t\t\"SE\",\n\t\t\"SJ\"\n\t],\n\t\"155\": [\n\t\t\"155\",\n\t\t\"AT\",\n\t\t\"BE\",\n\t\t\"CH\",\n\t\t\"DE\",\n\t\t\"FR\",\n\t\t\"LI\",\n\t\t\"LU\",\n\t\t\"MC\",\n\t\t\"NL\"\n\t],\n\t\"202\": [\n\t\t\"011\",\n\t\t\"014\",\n\t\t\"017\",\n\t\t\"018\",\n\t\t\"202\",\n\t\t\"AO\",\n\t\t\"BF\",\n\t\t\"BI\",\n\t\t\"BJ\",\n\t\t\"BW\",\n\t\t\"CD\",\n\t\t\"CF\",\n\t\t\"CG\",\n\t\t\"CI\",\n\t\t\"CM\",\n\t\t\"CV\",\n\t\t\"DJ\",\n\t\t\"ER\",\n\t\t\"ET\",\n\t\t\"GA\",\n\t\t\"GH\",\n\t\t\"GM\",\n\t\t\"GN\",\n\t\t\"GQ\",\n\t\t\"GW\",\n\t\t\"IO\",\n\t\t\"KE\",\n\t\t\"KM\",\n\t\t\"LR\",\n\t\t\"LS\",\n\t\t\"MG\",\n\t\t\"ML\",\n\t\t\"MR\",\n\t\t\"MU\",\n\t\t\"MW\",\n\t\t\"MZ\",\n\t\t\"NA\",\n\t\t\"NE\",\n\t\t\"NG\",\n\t\t\"RE\",\n\t\t\"RW\",\n\t\t\"SC\",\n\t\t\"SH\",\n\t\t\"SL\",\n\t\t\"SN\",\n\t\t\"SO\",\n\t\t\"SS\",\n\t\t\"ST\",\n\t\t\"SZ\",\n\t\t\"TD\",\n\t\t\"TF\",\n\t\t\"TG\",\n\t\t\"TZ\",\n\t\t\"UG\",\n\t\t\"YT\",\n\t\t\"ZA\",\n\t\t\"ZM\",\n\t\t\"ZW\"\n\t],\n\t\"419\": [\n\t\t\"005\",\n\t\t\"013\",\n\t\t\"029\",\n\t\t\"419\",\n\t\t\"AG\",\n\t\t\"AI\",\n\t\t\"AR\",\n\t\t\"AW\",\n\t\t\"BB\",\n\t\t\"BL\",\n\t\t\"BO\",\n\t\t\"BQ\",\n\t\t\"BR\",\n\t\t\"BS\",\n\t\t\"BV\",\n\t\t\"BZ\",\n\t\t\"CL\",\n\t\t\"CO\",\n\t\t\"CR\",\n\t\t\"CU\",\n\t\t\"CW\",\n\t\t\"DM\",\n\t\t\"DO\",\n\t\t\"EC\",\n\t\t\"FK\",\n\t\t\"GD\",\n\t\t\"GF\",\n\t\t\"GP\",\n\t\t\"GS\",\n\t\t\"GT\",\n\t\t\"GY\",\n\t\t\"HN\",\n\t\t\"HT\",\n\t\t\"JM\",\n\t\t\"KN\",\n\t\t\"KY\",\n\t\t\"LC\",\n\t\t\"MF\",\n\t\t\"MQ\",\n\t\t\"MS\",\n\t\t\"MX\",\n\t\t\"NI\",\n\t\t\"PA\",\n\t\t\"PE\",\n\t\t\"PR\",\n\t\t\"PY\",\n\t\t\"SR\",\n\t\t\"SV\",\n\t\t\"SX\",\n\t\t\"TC\",\n\t\t\"TT\",\n\t\t\"UY\",\n\t\t\"VC\",\n\t\t\"VE\",\n\t\t\"VG\",\n\t\t\"VI\"\n\t],\n\tEU: [\n\t\t\"AT\",\n\t\t\"BE\",\n\t\t\"BG\",\n\t\t\"CY\",\n\t\t\"CZ\",\n\t\t\"DE\",\n\t\t\"DK\",\n\t\t\"EE\",\n\t\t\"ES\",\n\t\t\"EU\",\n\t\t\"FI\",\n\t\t\"FR\",\n\t\t\"GR\",\n\t\t\"HR\",\n\t\t\"HU\",\n\t\t\"IE\",\n\t\t\"IT\",\n\t\t\"LT\",\n\t\t\"LU\",\n\t\t\"LV\",\n\t\t\"MT\",\n\t\t\"NL\",\n\t\t\"PL\",\n\t\t\"PT\",\n\t\t\"RO\",\n\t\t\"SE\",\n\t\t\"SI\",\n\t\t\"SK\"\n\t],\n\tEZ: [\n\t\t\"AT\",\n\t\t\"BE\",\n\t\t\"CY\",\n\t\t\"DE\",\n\t\t\"EE\",\n\t\t\"ES\",\n\t\t\"EZ\",\n\t\t\"FI\",\n\t\t\"FR\",\n\t\t\"GR\",\n\t\t\"IE\",\n\t\t\"IT\",\n\t\t\"LT\",\n\t\t\"LU\",\n\t\t\"LV\",\n\t\t\"MT\",\n\t\t\"NL\",\n\t\t\"PT\",\n\t\t\"SI\",\n\t\t\"SK\"\n\t],\n\tQO: [\n\t\t\"AC\",\n\t\t\"AQ\",\n\t\t\"CP\",\n\t\t\"DG\",\n\t\t\"QO\",\n\t\t\"TA\"\n\t],\n\tUN: [\n\t\t\"AD\",\n\t\t\"AE\",\n\t\t\"AF\",\n\t\t\"AG\",\n\t\t\"AL\",\n\t\t\"AM\",\n\t\t\"AO\",\n\t\t\"AR\",\n\t\t\"AT\",\n\t\t\"AU\",\n\t\t\"AZ\",\n\t\t\"BA\",\n\t\t\"BB\",\n\t\t\"BD\",\n\t\t\"BE\",\n\t\t\"BF\",\n\t\t\"BG\",\n\t\t\"BH\",\n\t\t\"BI\",\n\t\t\"BJ\",\n\t\t\"BN\",\n\t\t\"BO\",\n\t\t\"BR\",\n\t\t\"BS\",\n\t\t\"BT\",\n\t\t\"BW\",\n\t\t\"BY\",\n\t\t\"BZ\",\n\t\t\"CA\",\n\t\t\"CD\",\n\t\t\"CF\",\n\t\t\"CG\",\n\t\t\"CH\",\n\t\t\"CI\",\n\t\t\"CL\",\n\t\t\"CM\",\n\t\t\"CN\",\n\t\t\"CO\",\n\t\t\"CR\",\n\t\t\"CU\",\n\t\t\"CV\",\n\t\t\"CY\",\n\t\t\"CZ\",\n\t\t\"DE\",\n\t\t\"DJ\",\n\t\t\"DK\",\n\t\t\"DM\",\n\t\t\"DO\",\n\t\t\"DZ\",\n\t\t\"EC\",\n\t\t\"EE\",\n\t\t\"EG\",\n\t\t\"ER\",\n\t\t\"ES\",\n\t\t\"ET\",\n\t\t\"FI\",\n\t\t\"FJ\",\n\t\t\"FM\",\n\t\t\"FR\",\n\t\t\"GA\",\n\t\t\"GB\",\n\t\t\"GD\",\n\t\t\"GE\",\n\t\t\"GH\",\n\t\t\"GM\",\n\t\t\"GN\",\n\t\t\"GQ\",\n\t\t\"GR\",\n\t\t\"GT\",\n\t\t\"GW\",\n\t\t\"GY\",\n\t\t\"HN\",\n\t\t\"HR\",\n\t\t\"HT\",\n\t\t\"HU\",\n\t\t\"ID\",\n\t\t\"IE\",\n\t\t\"IL\",\n\t\t\"IN\",\n\t\t\"IQ\",\n\t\t\"IR\",\n\t\t\"IS\",\n\t\t\"IT\",\n\t\t\"JM\",\n\t\t\"JO\",\n\t\t\"JP\",\n\t\t\"KE\",\n\t\t\"KG\",\n\t\t\"KH\",\n\t\t\"KI\",\n\t\t\"KM\",\n\t\t\"KN\",\n\t\t\"KP\",\n\t\t\"KR\",\n\t\t\"KW\",\n\t\t\"KZ\",\n\t\t\"LA\",\n\t\t\"LB\",\n\t\t\"LC\",\n\t\t\"LI\",\n\t\t\"LK\",\n\t\t\"LR\",\n\t\t\"LS\",\n\t\t\"LT\",\n\t\t\"LU\",\n\t\t\"LV\",\n\t\t\"LY\",\n\t\t\"MA\",\n\t\t\"MC\",\n\t\t\"MD\",\n\t\t\"ME\",\n\t\t\"MG\",\n\t\t\"MH\",\n\t\t\"MK\",\n\t\t\"ML\",\n\t\t\"MM\",\n\t\t\"MN\",\n\t\t\"MR\",\n\t\t\"MT\",\n\t\t\"MU\",\n\t\t\"MV\",\n\t\t\"MW\",\n\t\t\"MX\",\n\t\t\"MY\",\n\t\t\"MZ\",\n\t\t\"NA\",\n\t\t\"NE\",\n\t\t\"NG\",\n\t\t\"NI\",\n\t\t\"NL\",\n\t\t\"NO\",\n\t\t\"NP\",\n\t\t\"NR\",\n\t\t\"NZ\",\n\t\t\"OM\",\n\t\t\"PA\",\n\t\t\"PE\",\n\t\t\"PG\",\n\t\t\"PH\",\n\t\t\"PK\",\n\t\t\"PL\",\n\t\t\"PT\",\n\t\t\"PW\",\n\t\t\"PY\",\n\t\t\"QA\",\n\t\t\"RO\",\n\t\t\"RS\",\n\t\t\"RU\",\n\t\t\"RW\",\n\t\t\"SA\",\n\t\t\"SB\",\n\t\t\"SC\",\n\t\t\"SD\",\n\t\t\"SE\",\n\t\t\"SG\",\n\t\t\"SI\",\n\t\t\"SK\",\n\t\t\"SL\",\n\t\t\"SM\",\n\t\t\"SN\",\n\t\t\"SO\",\n\t\t\"SR\",\n\t\t\"SS\",\n\t\t\"ST\",\n\t\t\"SV\",\n\t\t\"SY\",\n\t\t\"SZ\",\n\t\t\"TD\",\n\t\t\"TG\",\n\t\t\"TH\",\n\t\t\"TJ\",\n\t\t\"TL\",\n\t\t\"TM\",\n\t\t\"TN\",\n\t\t\"TO\",\n\t\t\"TR\",\n\t\t\"TT\",\n\t\t\"TV\",\n\t\t\"TZ\",\n\t\t\"UA\",\n\t\t\"UG\",\n\t\t\"UN\",\n\t\t\"US\",\n\t\t\"UY\",\n\t\t\"UZ\",\n\t\t\"VC\",\n\t\t\"VE\",\n\t\t\"VN\",\n\t\t\"VU\",\n\t\t\"WS\",\n\t\t\"YE\",\n\t\t\"ZA\",\n\t\t\"ZM\",\n\t\t\"ZW\"\n\t]\n};\n","import { memoize } from \"@formatjs/fast-memoize\";\nimport { data as jsonData } from \"./languageMatching.js\";\nimport { regions } from \"./regions.generated.js\";\nexport const UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\n/**\n* Asserts that a condition is true, throwing an error if it is not.\n* Used for runtime validation and type narrowing.\n*\n* @param condition - The condition to check\n* @param message - Error message if condition is false\n* @param Err - Error constructor to use (defaults to Error)\n* @throws {Error} When condition is false\n*\n* @example\n* ```ts\n* invariant(locale !== undefined, 'Locale must be defined')\n* // locale is now narrowed to non-undefined type\n* ```\n*/\nexport function invariant(condition, message, Err = Error) {\n\tif (!condition) {\n\t\tthrow new Err(message);\n\t}\n}\n// This is effectively 2 languages in 2 different regions in the same cluster\nconst DEFAULT_MATCHING_THRESHOLD = 838;\nlet PROCESSED_DATA;\nfunction processData() {\n\tif (!PROCESSED_DATA) {\n\t\tconst paradigmLocales = jsonData.supplemental.languageMatching[\"written-new\"][0]?.paradigmLocales?._locales.split(\" \");\n\t\tconst matchVariables = jsonData.supplemental.languageMatching[\"written-new\"].slice(1, 5);\n\t\tconst data = jsonData.supplemental.languageMatching[\"written-new\"].slice(5);\n\t\tconst matches = data.map((d) => {\n\t\t\tconst key = Object.keys(d)[0];\n\t\t\tconst value = d[key];\n\t\t\treturn {\n\t\t\t\tsupported: key,\n\t\t\t\tdesired: value._desired,\n\t\t\t\tdistance: +value._distance,\n\t\t\t\toneway: value.oneway === \"true\" ? true : false\n\t\t\t};\n\t\t}, {});\n\t\tPROCESSED_DATA = {\n\t\t\tmatches,\n\t\t\tmatchVariables: matchVariables.reduce((all, d) => {\n\t\t\t\tconst key = Object.keys(d)[0];\n\t\t\t\tconst value = d[key];\n\t\t\t\tall[key.slice(1)] = value._value.split(\"+\");\n\t\t\t\treturn all;\n\t\t\t}, {}),\n\t\t\tparadigmLocales: [...paradigmLocales, ...paradigmLocales.map((l) => new Intl.Locale(l.replace(/_/g, \"-\")).maximize().toString())]\n\t\t};\n\t}\n\treturn PROCESSED_DATA;\n}\nfunction isMatched(locale, languageMatchInfoLocale, matchVariables) {\n\tconst [language, script, region] = languageMatchInfoLocale.split(\"-\");\n\tlet matches = true;\n\tif (region && region[0] === \"$\") {\n\t\tconst shouldInclude = region[1] !== \"!\";\n\t\tconst matchRegions = shouldInclude ? matchVariables[region.slice(1)] : matchVariables[region.slice(2)];\n\t\tconst expandedMatchedRegions = matchRegions.map((r) => regions[r] || [r]).reduce((all, list) => [...all, ...list], []);\n\t\tmatches &&= !(expandedMatchedRegions.indexOf(locale.region || \"\") > -1 != shouldInclude);\n\t} else {\n\t\tmatches &&= locale.region ? region === \"*\" || region === locale.region : true;\n\t}\n\tmatches &&= locale.script ? script === \"*\" || script === locale.script : true;\n\tmatches &&= locale.language ? language === \"*\" || language === locale.language : true;\n\treturn matches;\n}\nfunction serializeLSR(lsr) {\n\treturn [\n\t\tlsr.language,\n\t\tlsr.script,\n\t\tlsr.region\n\t].filter(Boolean).join(\"-\");\n}\nfunction findMatchingDistanceForLSR(desired, supported, data) {\n\tfor (const d of data.matches) {\n\t\tlet matches = isMatched(desired, d.desired, data.matchVariables) && isMatched(supported, d.supported, data.matchVariables);\n\t\tif (!d.oneway && !matches) {\n\t\t\tmatches = isMatched(desired, d.supported, data.matchVariables) && isMatched(supported, d.desired, data.matchVariables);\n\t\t}\n\t\tif (matches) {\n\t\t\tconst distance = d.distance * 10;\n\t\t\tif (data.paradigmLocales.indexOf(serializeLSR(desired)) > -1 != data.paradigmLocales.indexOf(serializeLSR(supported)) > -1) {\n\t\t\t\treturn distance - 1;\n\t\t\t}\n\t\t\treturn distance;\n\t\t}\n\t}\n\tthrow new Error(\"No matching distance found\");\n}\nfunction findMatchingDistanceImpl(desired, supported) {\n\tconst desiredLocale = new Intl.Locale(desired).maximize();\n\tconst supportedLocale = new Intl.Locale(supported).maximize();\n\tconst desiredLSR = {\n\t\tlanguage: desiredLocale.language,\n\t\tscript: desiredLocale.script || \"\",\n\t\tregion: desiredLocale.region || \"\"\n\t};\n\tconst supportedLSR = {\n\t\tlanguage: supportedLocale.language,\n\t\tscript: supportedLocale.script || \"\",\n\t\tregion: supportedLocale.region || \"\"\n\t};\n\tlet matchingDistance = 0;\n\tconst data = processData();\n\tif (desiredLSR.language !== supportedLSR.language) {\n\t\tmatchingDistance += findMatchingDistanceForLSR({\n\t\t\tlanguage: desiredLocale.language,\n\t\t\tscript: \"\",\n\t\t\tregion: \"\"\n\t\t}, {\n\t\t\tlanguage: supportedLocale.language,\n\t\t\tscript: \"\",\n\t\t\tregion: \"\"\n\t\t}, data);\n\t}\n\tif (desiredLSR.script !== supportedLSR.script) {\n\t\tmatchingDistance += findMatchingDistanceForLSR({\n\t\t\tlanguage: desiredLocale.language,\n\t\t\tscript: desiredLSR.script,\n\t\t\tregion: \"\"\n\t\t}, {\n\t\t\tlanguage: supportedLocale.language,\n\t\t\tscript: supportedLSR.script,\n\t\t\tregion: \"\"\n\t\t}, data);\n\t}\n\tif (desiredLSR.region !== supportedLSR.region) {\n\t\tmatchingDistance += findMatchingDistanceForLSR(desiredLSR, supportedLSR, data);\n\t}\n\treturn matchingDistance;\n}\n/**\n* Calculates the matching distance between two locales using the CLDR Enhanced Language Matching algorithm.\n* This function is memoized for performance, as distance calculations are expensive.\n*\n* The distance represents how \"far apart\" two locales are, with 0 being identical (after maximization).\n* Distances are calculated based on Language-Script-Region (LSR) differences using CLDR data.\n*\n* @param desired - The desired locale (e.g., \"en-US\")\n* @param supported - The supported locale to compare against (e.g., \"en-GB\")\n* @returns The calculated distance between the locales\n*\n* @example\n* ```ts\n* findMatchingDistance('en-US', 'en-US') // 0 - identical\n* findMatchingDistance('en-US', 'en-GB') // 40 - same language/script, different region\n* findMatchingDistance('es-CO', 'es-419') // 39 - regional variant\n* findMatchingDistance('en', 'fr') // 840 - completely different languages\n* ```\n*\n* @see https://unicode.org/reports/tr35/#EnhancedLanguageMatching\n*/\nexport const findMatchingDistance = memoize(findMatchingDistanceImpl, { serializer: (args) => `${args[0]}|${args[1]}` });\n/**\n* Generates fallback candidates by progressively removing subtags\n* e.g., \"en-US\" -> [\"en-US\", \"en\"]\n* \"zh-Hans-CN\" -> [\"zh-Hans-CN\", \"zh-Hans\", \"zh\"]\n*/\nfunction getFallbackCandidates(locale) {\n\tconst candidates = [];\n\tlet current = locale;\n\twhile (current) {\n\t\tcandidates.push(current);\n\t\tconst lastDash = current.lastIndexOf(\"-\");\n\t\tif (lastDash === -1) break;\n\t\tcurrent = current.substring(0, lastDash);\n\t}\n\treturn candidates;\n}\n/**\n* Finds the best locale match using a three-tier optimization hierarchy.\n*\n* ## Three-Tier Matching Algorithm:\n*\n* **Tier 1 - Fast Path** (O(n)): Exact string matching via Set lookup\n* - Example: 'en' matches 'en' exactly → distance 0\n* - Solves #4936: 48x faster than baseline (12ms vs 610ms with 700+ locales)\n*\n* **Tier 2 - Fallback Path** (O(k×n)): Maximization + progressive subtag removal\n* - Maximizes requested locale, then removes subtags right-to-left\n* - Example: \"zh-TW\" → \"zh-Hant-TW\" → [\"zh-Hant-TW\", \"zh-Hant\", \"zh\"]\n* - Distance: 0 for maximized match, 10 per removed subtag + position penalty\n* - 40-50x faster than full UTS #35, handles 99% of real-world cases correctly\n*\n* **Tier 3 - Slow Path** (O(n×m), memoized): Full UTS #35 CLDR matching\n* - Calculates Language-Script-Region distances using CLDR data\n* - Handles complex cases like cross-script matching (sr-Cyrl ↔ sr-Latn)\n* - Only used when Tiers 1 & 2 find no match\n* - Still 6x faster than baseline due to memoization\n*\n* ## Performance Impact of Maximization:\n*\n* While Tier 2 now calls `Intl.Locale().maximize()` once per requested locale,\n* this is still much faster than Tier 3's full distance calculation:\n* - Tier 1: ~12ms (exact match, no maximization)\n* - Tier 2: ~13-15ms (maximization + fallback)\n* - Tier 3: ~100ms+ (full UTS #35 with all supported locales)\n*\n* @param requestedLocales - Locale identifiers in preference order\n* @param supportedLocales - Available locale identifiers\n* @param threshold - Maximum distance (default: 838, from CLDR)\n* @returns Matching result with distances\n*\n* @example\n* ```ts\n* // Tier 1: Exact match\n* findBestMatch(['en'], ['en', 'fr'])\n* // → { matchedSupportedLocale: 'en', distances: { en: { en: 0 } } }\n*\n* // Tier 2: Fallback with maximization\n* findBestMatch(['zh-TW'], ['zh-Hant'])\n* // → zh-TW maximizes to zh-Hant-TW, falls back to zh-Hant (distance 0)\n*\n* findBestMatch(['en-US'], ['en'])\n* // → en-US maximizes to en-Latn-US, falls back to en (distance 10)\n*\n* // Tier 3: Full calculation\n* findBestMatch(['en-XZ'], ['ja', 'ko'])\n* // → No fallback match, uses UTS #35 to find closest match\n* ```\n*\n* @see https://unicode.org/reports/tr35/#EnhancedLanguageMatching\n* @see https://github.com/formatjs/formatjs/issues/4936\n*/\n// WeakMap to cache canonicalized supported locales arrays\nconst canonicalizedSupportedCache = new WeakMap();\nexport function findBestMatch(requestedLocales, supportedLocales, threshold = DEFAULT_MATCHING_THRESHOLD) {\n\tlet lowestDistance = Infinity;\n\tlet result = {\n\t\tmatchedDesiredLocale: \"\",\n\t\tdistances: {}\n\t};\n\t// Get or compute canonicalized supported locales (one by one to preserve indices)\n\tlet canonicalizedSupportedLocales = canonicalizedSupportedCache.get(supportedLocales);\n\tif (!canonicalizedSupportedLocales) {\n\t\tcanonicalizedSupportedLocales = supportedLocales.map((locale) => {\n\t\t\ttry {\n\t\t\t\tconst canonical = Intl.getCanonicalLocales([locale]);\n\t\t\t\treturn canonical[0] || locale;\n\t\t\t} catch {\n\t\t\t\treturn locale;\n\t\t\t}\n\t\t});\n\t\tcanonicalizedSupportedCache.set(supportedLocales, canonicalizedSupportedLocales);\n\t}\n\tconst supportedSet = new Set(canonicalizedSupportedLocales);\n\t// === TIER 1: FAST PATH - Exact Match ===\n\t// Check for exact matches in ALL requested locales\n\t// This is the fastest path and handles the majority of real-world cases\n\tfor (let i = 0; i < requestedLocales.length; i++) {\n\t\tconst desired = requestedLocales[i];\n\t\tif (supportedSet.has(desired)) {\n\t\t\tconst distance = 0 + i * 40;\n\t\t\tresult.distances[desired] = { [desired]: distance };\n\t\t\tif (distance < lowestDistance) {\n\t\t\t\tlowestDistance = distance;\n\t\t\t\tresult.matchedDesiredLocale = desired;\n\t\t\t\tresult.matchedSupportedLocale = desired;\n\t\t\t}\n\t\t\t// Only return immediately if this is the first requested locale (distance=0)\n\t\t\t// Otherwise, continue checking for potentially better matches\n\t\t\tif (i === 0) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\t// If we found an exact match in Tier 1 (but not for first locale), check Tier 2\n\t// to see if there's a better fallback match with lower distance\n\t// If no exact match found, Tier 2 will find fallback matches\n\t// === TIER 2: FALLBACK PATH - Maximization + Progressive Subtag Removal ===\n\t// Try maximization-based matching before resorting to expensive Tier 3\n\t// This handles cases like zh-TW → zh-Hant efficiently\n\tfor (let i = 0; i < requestedLocales.length; i++) {\n\t\tconst desired = requestedLocales[i];\n\t\t// Maximize then fallback (for linguistic accuracy like zh-TW → zh-Hant)\n\t\ttry {\n\t\t\tconst maximized = new Intl.Locale(desired).maximize().toString();\n\t\t\tif (maximized !== desired) {\n\t\t\t\tconst maximizedCandidates = getFallbackCandidates(maximized);\n\t\t\t\tfor (let j = 0; j < maximizedCandidates.length; j++) {\n\t\t\t\t\tconst candidate = maximizedCandidates[j];\n\t\t\t\t\tif (candidate === desired) continue;\n\t\t\t\t\tif (supportedSet.has(candidate)) {\n\t\t\t\t\t\t// Check if candidate also maximizes to the same form\n\t\t\t\t\t\t// e.g., zh-TW → zh-Hant-TW and zh-Hant → zh-Hant-TW (distance 0)\n\t\t\t\t\t\t// but es-co → es-Latn-CO and es → es-Latn-ES (distance 10)\n\t\t\t\t\t\tlet distance;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst candidateMaximized = new Intl.Locale(candidate).maximize().toString();\n\t\t\t\t\t\t\tdistance = candidateMaximized === maximized ? 0 + i * 40 : j * 10 + i * 40;\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tdistance = j * 10 + i * 40;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!result.distances[desired]) {\n\t\t\t\t\t\t\tresult.distances[desired] = {};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresult.distances[desired][candidate] = distance;\n\t\t\t\t\t\tif (distance < lowestDistance) {\n\t\t\t\t\t\t\tlowestDistance = distance;\n\t\t\t\t\t\t\tresult.matchedDesiredLocale = desired;\n\t\t\t\t\t\t\tresult.matchedSupportedLocale = candidate;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} catch {}\n\t}\n\t// If Tier 2 found a perfect maximized match (distance 0), return immediately (fast path)\n\tif (result.matchedSupportedLocale && lowestDistance === 0) {\n\t\treturn result;\n\t}\n\t// === TIER 3: SLOW PATH - Full UTS #35 Distance Calculation ===\n\t// Always run Tier 3 for full CLDR accuracy\n\t// Tier 3 may find better matches than Tier 2's fallback approach\n\t// findMatchingDistance is memoized, so repeated calculations are cached\n\trequestedLocales.forEach((desired, i) => {\n\t\tif (!result.distances[desired]) {\n\t\t\tresult.distances[desired] = {};\n\t\t}\n\t\tcanonicalizedSupportedLocales.forEach((canonicalLocale, supportedIndex) => {\n\t\t\tconst originalSupported = supportedLocales[supportedIndex];\n\t\t\t// findMatchingDistance is memoized via fast-memoize\n\t\t\t// Use the canonical locale for distance calculation\n\t\t\tconst distance = findMatchingDistance(desired, canonicalLocale);\n\t\t\t// Add some weight to the distance based on the order of the supported locales\n\t\t\t// Add penalty for the order of the requested locales, which currently is 0 since ECMA-402\n\t\t\t// doesn't really have room for weighted locales like `en; q=0.1`\n\t\t\tconst finalDistance = distance + 0 + i * 40;\n\t\t\t// Store and return the original locale, not the canonical one\n\t\t\t// Tier 3 overwrites Tier 2 distances (Tier 3 is more accurate)\n\t\t\tresult.distances[desired][originalSupported] = finalDistance;\n\t\t\tif (finalDistance < lowestDistance) {\n\t\t\t\tlowestDistance = finalDistance;\n\t\t\t\tresult.matchedDesiredLocale = desired;\n\t\t\t\tresult.matchedSupportedLocale = originalSupported;\n\t\t\t}\n\t\t});\n\t});\n\tif (lowestDistance >= threshold) {\n\t\tresult.matchedDesiredLocale = undefined;\n\t\tresult.matchedSupportedLocale = undefined;\n\t}\n\treturn result;\n}\n","import { BestAvailableLocale } from \"./BestAvailableLocale.js\";\nimport { UNICODE_EXTENSION_SEQUENCE_REGEX } from \"./utils.js\";\n/**\n* https://tc39.es/ecma402/#sec-lookupsupportedlocales\n* @param availableLocales\n* @param requestedLocales\n*/\nexport function LookupSupportedLocales(availableLocales, requestedLocales) {\n\tconst subset = [];\n\tfor (const locale of requestedLocales) {\n\t\tconst noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, \"\");\n\t\tconst availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n\t\tif (availableLocale) {\n\t\t\tsubset.push(availableLocale);\n\t\t}\n\t}\n\treturn subset;\n}\n","import { LookupSupportedLocales } from \"@formatjs/intl-localematcher\";\nimport { ToObject } from \"./262.js\";\nimport { GetOption } from \"./GetOption.js\";\n/**\n* https://tc39.es/ecma402/#sec-supportedlocales\n* @param availableLocales\n* @param requestedLocales\n* @param options\n*/\nexport function SupportedLocales(availableLocales, requestedLocales, options) {\n\tlet matcher = \"best fit\";\n\tif (options !== undefined) {\n\t\toptions = ToObject(options);\n\t\tmatcher = GetOption(options, \"localeMatcher\", \"string\", [\"lookup\", \"best fit\"], \"best fit\");\n\t}\n\tif (matcher === \"best fit\") {\n\t\treturn LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n\t}\n\treturn LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n}\n","import { UNICODE_EXTENSION_SEQUENCE_REGEX, findBestMatch } from \"./utils.js\";\n/**\n* https://tc39.es/ecma402/#sec-bestfitmatcher\n* @param availableLocales\n* @param requestedLocales\n* @param getDefaultLocale\n*/\nexport function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n\tlet foundLocale;\n\tlet extension;\n\tconst noExtensionLocales = [];\n\tconst noExtensionLocaleMap = requestedLocales.reduce((all, l) => {\n\t\tconst noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, \"\");\n\t\tnoExtensionLocales.push(noExtensionLocale);\n\t\tall[noExtensionLocale] = l;\n\t\treturn all;\n\t}, {});\n\tconst result = findBestMatch(noExtensionLocales, availableLocales);\n\tif (result.matchedSupportedLocale && result.matchedDesiredLocale) {\n\t\tfoundLocale = result.matchedSupportedLocale;\n\t\textension = noExtensionLocaleMap[result.matchedDesiredLocale].slice(result.matchedDesiredLocale.length) || undefined;\n\t}\n\tif (!foundLocale) {\n\t\treturn { locale: getDefaultLocale() };\n\t}\n\treturn {\n\t\tlocale: foundLocale,\n\t\textension\n\t};\n}\n","import { invariant } from \"./utils.js\";\nexport function CanonicalizeUValue(ukey, uvalue) {\n\t// TODO: Implement algorithm for CanonicalizeUValue per https://tc39.es/ecma402/#sec-canonicalizeuvalue\n\tlet lowerValue = uvalue.toLowerCase();\n\tinvariant(ukey !== undefined, `ukey must be defined`);\n\tlet canonicalized = lowerValue;\n\treturn canonicalized;\n}\n","export function CanonicalizeUnicodeLocaleId(locale) {\n\treturn Intl.getCanonicalLocales(locale)[0];\n}\n","import { BestFitMatcher } from \"./BestFitMatcher.js\";\nimport { CanonicalizeUValue } from \"./CanonicalizeUValue.js\";\nimport { InsertUnicodeExtensionAndCanonicalize } from \"./InsertUnicodeExtensionAndCanonicalize.js\";\nimport { LookupMatcher } from \"./LookupMatcher.js\";\nimport { UnicodeExtensionComponents } from \"./UnicodeExtensionComponents.js\";\nimport { invariant } from \"./utils.js\";\n/**\n* https://tc39.es/ecma402/#sec-resolvelocale\n*/\nexport function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {\n\tconst matcher = options.localeMatcher;\n\tlet r;\n\tif (matcher === \"lookup\") {\n\t\tr = LookupMatcher(Array.from(availableLocales), requestedLocales, getDefaultLocale);\n\t} else {\n\t\tr = BestFitMatcher(Array.from(availableLocales), requestedLocales, getDefaultLocale);\n\t}\n\tif (r == null) {\n\t\tr = {\n\t\t\tlocale: getDefaultLocale(),\n\t\t\textension: \"\"\n\t\t};\n\t}\n\tlet foundLocale = r.locale;\n\tlet foundLocaleData = localeData[foundLocale];\n\t// TODO: We can't really guarantee that the locale data is available\n\t// invariant(\n\t// foundLocaleData !== undefined,\n\t// `Missing locale data for ${foundLocale}`\n\t// )\n\tconst result = {\n\t\tlocale: \"en\",\n\t\tdataLocale: foundLocale\n\t};\n\tlet components;\n\tlet keywords;\n\tif (r.extension) {\n\t\tcomponents = UnicodeExtensionComponents(r.extension);\n\t\tkeywords = components.keywords;\n\t} else {\n\t\tkeywords = [];\n\t}\n\tlet supportedKeywords = [];\n\tfor (const key of relevantExtensionKeys) {\n\t\t// TODO: Shouldn't default to empty array, see TODO above\n\t\tlet keyLocaleData = foundLocaleData?.[key] ?? [];\n\t\tinvariant(Array.isArray(keyLocaleData), `keyLocaleData for ${key} must be an array`);\n\t\tlet value = keyLocaleData[0];\n\t\tinvariant(value === undefined || typeof value === \"string\", `value must be a string or undefined`);\n\t\tlet supportedKeyword;\n\t\tlet entry = keywords.find((k) => k.key === key);\n\t\tif (entry) {\n\t\t\tlet requestedValue = entry.value;\n\t\t\tif (requestedValue !== \"\") {\n\t\t\t\tif (keyLocaleData.indexOf(requestedValue) > -1) {\n\t\t\t\t\tvalue = requestedValue;\n\t\t\t\t\tsupportedKeyword = {\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tvalue\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} else if (keyLocaleData.indexOf(\"true\") > -1) {\n\t\t\t\tvalue = \"true\";\n\t\t\t\tsupportedKeyword = {\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\tlet optionsValue = options[key];\n\t\tinvariant(optionsValue == null || typeof optionsValue === \"string\", `optionsValue must be a string or undefined`);\n\t\tif (typeof optionsValue === \"string\") {\n\t\t\tlet ukey = key.toLowerCase();\n\t\t\toptionsValue = CanonicalizeUValue(ukey, optionsValue);\n\t\t\tif (optionsValue === \"\") {\n\t\t\t\toptionsValue = \"true\";\n\t\t\t}\n\t\t}\n\t\tif (optionsValue !== value && keyLocaleData.indexOf(optionsValue) > -1) {\n\t\t\tvalue = optionsValue;\n\t\t\tsupportedKeyword = undefined;\n\t\t}\n\t\tif (supportedKeyword) {\n\t\t\tsupportedKeywords.push(supportedKeyword);\n\t\t}\n\t\tresult[key] = value;\n\t}\n\tlet supportedAttributes = [];\n\tif (supportedKeywords.length > 0) {\n\t\tsupportedAttributes = [];\n\t\tfoundLocale = InsertUnicodeExtensionAndCanonicalize(foundLocale, supportedAttributes, supportedKeywords);\n\t}\n\tresult.locale = foundLocale;\n\treturn result;\n}\n","import { BestAvailableLocale } from \"./BestAvailableLocale.js\";\nimport { UNICODE_EXTENSION_SEQUENCE_REGEX } from \"./utils.js\";\n/**\n* https://tc39.es/ecma402/#sec-lookupmatcher\n* @param availableLocales\n* @param requestedLocales\n* @param getDefaultLocale\n*/\nexport function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n\tconst result = { locale: \"\" };\n\tfor (const locale of requestedLocales) {\n\t\tconst noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, \"\");\n\t\tconst availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n\t\tif (availableLocale) {\n\t\t\tresult.locale = availableLocale;\n\t\t\tif (locale !== noExtensionLocale) {\n\t\t\t\tresult.extension = locale.slice(noExtensionLocale.length, locale.length);\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\tresult.locale = getDefaultLocale();\n\treturn result;\n}\n","import { invariant } from \"./utils.js\";\nexport function UnicodeExtensionComponents(extension) {\n\tinvariant(extension === extension.toLowerCase(), \"Expected extension to be lowercase\");\n\tinvariant(extension.slice(0, 3) === \"-u-\", \"Expected extension to be a Unicode locale extension\");\n\tconst attributes = [];\n\tconst keywords = [];\n\tlet keyword;\n\tlet size = extension.length;\n\tlet k = 3;\n\twhile (k < size) {\n\t\tlet e = extension.indexOf(\"-\", k);\n\t\tlet len;\n\t\tif (e === -1) {\n\t\t\tlen = size - k;\n\t\t} else {\n\t\t\tlen = e - k;\n\t\t}\n\t\tlet subtag = extension.slice(k, k + len);\n\t\tinvariant(len >= 2, \"Expected a subtag to have at least 2 characters\");\n\t\tif (keyword === undefined && len != 2) {\n\t\t\tif (attributes.indexOf(subtag) === -1) {\n\t\t\t\tattributes.push(subtag);\n\t\t\t}\n\t\t} else if (len === 2) {\n\t\t\tkeyword = {\n\t\t\t\tkey: subtag,\n\t\t\t\tvalue: \"\"\n\t\t\t};\n\t\t\tif (keywords.find((k) => k.key === keyword?.key) === undefined) {\n\t\t\t\tkeywords.push(keyword);\n\t\t\t}\n\t\t} else if (keyword?.value === \"\") {\n\t\t\tkeyword.value = subtag;\n\t\t} else {\n\t\t\tinvariant(keyword !== undefined, \"Expected keyword to be defined\");\n\t\t\tkeyword.value += \"-\" + subtag;\n\t\t}\n\t\tk += len + 1;\n\t}\n\treturn {\n\t\tattributes,\n\t\tkeywords\n\t};\n}\n","import { CanonicalizeUnicodeLocaleId } from \"./CanonicalizeUnicodeLocaleId.js\";\nimport { invariant } from \"./utils.js\";\nexport function InsertUnicodeExtensionAndCanonicalize(locale, attributes, keywords) {\n\tinvariant(locale.indexOf(\"-u-\") === -1, \"Expected locale to not have a Unicode locale extension\");\n\tlet extension = \"-u\";\n\tfor (const attr of attributes) {\n\t\textension += `-${attr}`;\n\t}\n\tfor (const kw of keywords) {\n\t\tconst { key, value } = kw;\n\t\textension += `-${key}`;\n\t\tif (value !== \"\") {\n\t\t\textension += `-${value}`;\n\t\t}\n\t}\n\tif (extension === \"-u\") {\n\t\treturn CanonicalizeUnicodeLocaleId(locale);\n\t}\n\tlet privateIndex = locale.indexOf(\"-x-\");\n\tlet newLocale;\n\tif (privateIndex === -1) {\n\t\tnewLocale = locale + extension;\n\t} else {\n\t\tlet preExtension = locale.slice(0, privateIndex);\n\t\tlet postExtension = locale.slice(privateIndex);\n\t\tnewLocale = preExtension + extension + postExtension;\n\t}\n\treturn CanonicalizeUnicodeLocaleId(newLocale);\n}\n","/* @generated */\n// prettier-ignore\nexport const SegmentationRules = {\n\t\"de\": { \"sentence\": {\n\t\t\"segmentRules\": {},\n\t\t\"suppressions\": [\n\t\t\t\"Port.\",\n\t\t\t\"Alt.\",\n\t\t\t\"Di.\",\n\t\t\t\"Ges.\",\n\t\t\t\"frz.\",\n\t\t\t\"entspr.\",\n\t\t\t\"Gebr.\",\n\t\t\t\"erw.\",\n\t\t\t\"Frl.\",\n\t\t\t\"Inh.\",\n\t\t\t\"k.u.k.\",\n\t\t\t\"Ca.\",\n\t\t\t\"J.D.\",\n\t\t\t\"Ausg.\",\n\t\t\t\"evtl.\",\n\t\t\t\"So.\",\n\t\t\t\"i.B.\",\n\t\t\t\"s.a.\",\n\t\t\t\"kgl.\",\n\t\t\t\"Sept.\",\n\t\t\t\"o.B.\",\n\t\t\t\"Sa.\",\n\t\t\t\"ev.\",\n\t\t\t\"Dez.\",\n\t\t\t\"am.\",\n\t\t\t\"i.R.\",\n\t\t\t\"eigtl.\",\n\t\t\t\"i.J.\",\n\t\t\t\"u.U.\",\n\t\t\t\"G.\",\n\t\t\t\"z.Hd.\",\n\t\t\t\"u.A.w.g.\",\n\t\t\t\"Kl.\",\n\t\t\t\"Spezif.\",\n\t\t\t\"Obj.\",\n\t\t\t\"Ing.\",\n\t\t\t\"D. h.\",\n\t\t\t\"Folg.\",\n\t\t\t\"Akt.\",\n\t\t\t\"i.A.\",\n\t\t\t\"Msp.\",\n\t\t\t\"U.U.\",\n\t\t\t\"Chr.\",\n\t\t\t\"R.\",\n\t\t\t\"Einh.\",\n\t\t\t\"schwäb.\",\n\t\t\t\"Vgl.\",\n\t\t\t\"Aug.\",\n\t\t\t\"Dipl.-Ing.\",\n\t\t\t\"W.\",\n\t\t\t\"B.\",\n\t\t\t\"U. U.\",\n\t\t\t\"J.\",\n\t\t\t\"Fa.\",\n\t\t\t\"Mo.\",\n\t\t\t\"n.u.Z.\",\n\t\t\t\"Op.\",\n\t\t\t\"Mrd.\",\n\t\t\t\"e.h.\",\n\t\t\t\"Hr.\",\n\t\t\t\"Hrn.\",\n\t\t\t\"Ztr.\",\n\t\t\t\"k. u. k.\",\n\t\t\t\"Bibl.\",\n\t\t\t\"d.Ä.\",\n\t\t\t\"b.\",\n\t\t\t\"M.\",\n\t\t\t\"i.H.\",\n\t\t\t\"v.R.w.\",\n\t\t\t\"o.A.\",\n\t\t\t\"St.\",\n\t\t\t\"Dr.\",\n\t\t\t\"Fn.\",\n\t\t\t\"Abs.\",\n\t\t\t\"Rd.\",\n\t\t\t\"Dtzd.\",\n\t\t\t\"Jahrh.\",\n\t\t\t\"Z.\",\n\t\t\t\"Std.\",\n\t\t\t\"n. Chr.\",\n\t\t\t\"möbl.\",\n\t\t\t\"tägl.\",\n\t\t\t\"gest.\",\n\t\t\t\"gesch.\",\n\t\t\t\"z.B.\",\n\t\t\t\"Hbf.\",\n\t\t\t\"Abt.\",\n\t\t\t\"A.M.\",\n\t\t\t\"e.Wz.\",\n\t\t\t\"v.T.\",\n\t\t\t\"Nov.\",\n\t\t\t\"z.\",\n\t\t\t\"Prot.\",\n\t\t\t\"U.S.\",\n\t\t\t\"Wg.\",\n\t\t\t\"u.v.a.\",\n\t\t\t\"Adr.\",\n\t\t\t\"App.\",\n\t\t\t\"ggf.\",\n\t\t\t\"ggfs.\",\n\t\t\t\"Jan.\",\n\t\t\t\"O.\",\n\t\t\t\"Rel.\",\n\t\t\t\"od.\",\n\t\t\t\"Pfd.\",\n\t\t\t\"a.a.O.\",\n\t\t\t\"p.Adr.\",\n\t\t\t\"P.\",\n\t\t\t\"Gem.\",\n\t\t\t\"v. Chr.\",\n\t\t\t\"Art.\",\n\t\t\t\"z.Z.\",\n\t\t\t\"S.A.\",\n\t\t\t\"i.V.\",\n\t\t\t\"verh.\",\n\t\t\t\"Ausschl.\",\n\t\t\t\"m.W.\",\n\t\t\t\"Dir.\",\n\t\t\t\"Verf.\",\n\t\t\t\"Sek.\",\n\t\t\t\"r.\",\n\t\t\t\"Chin.\",\n\t\t\t\"Feb.\",\n\t\t\t\"Int.\",\n\t\t\t\"Sep.\",\n\t\t\t\"Gesch.\",\n\t\t\t\"schweiz.\",\n\t\t\t\"Bed.\",\n\t\t\t\"a.Rh.\",\n\t\t\t\"jew.\",\n\t\t\t\"vgl.\",\n\t\t\t\"a.M.\",\n\t\t\t\"Str.\",\n\t\t\t\"exkl.\",\n\t\t\t\"gek.\",\n\t\t\t\"Erf.\",\n\t\t\t\"u.Ä.\",\n\t\t\t\"ehem.\",\n\t\t\t\"näml.\",\n\t\t\t\"u. Z.\",\n\t\t\t\"v. u. Z.\",\n\t\t\t\"sog.\",\n\t\t\t\"C.\",\n\t\t\t\"Dipl.-Kfm.\",\n\t\t\t\"mtl.\",\n\t\t\t\"Hrsg.\",\n\t\t\t\"Qu.\",\n\t\t\t\"röm.\",\n\t\t\t\"u.\",\n\t\t\t\"U.\",\n\t\t\t\"Adj.\",\n\t\t\t\"Kap.\",\n\t\t\t\"hpts.\",\n\t\t\t\"a.D.\",\n\t\t\t\"gedr.\",\n\t\t\t\"Best.\",\n\t\t\t\"N.\",\n\t\t\t\"v.u.Z.\",\n\t\t\t\"Phys.\",\n\t\t\t\"Fr.\",\n\t\t\t\"d.J.\",\n\t\t\t\"Reg.-Bez.\",\n\t\t\t\"m.E.\",\n\t\t\t\"schles.\",\n\t\t\t\"Max.\",\n\t\t\t\"Ltd.\",\n\t\t\t\"südd.\",\n\t\t\t\"inkl.\",\n\t\t\t\"geb.\",\n\t\t\t\"Ggf.\",\n\t\t\t\"Inc.\",\n\t\t\t\"kath.\",\n\t\t\t\"kfm.\",\n\t\t\t\"Nr.\",\n\t\t\t\"Proz.\",\n\t\t\t\"Dim.\",\n\t\t\t\"verw.\",\n\t\t\t\"Reg.\",\n\t\t\t\"Dat.\",\n\t\t\t\"Evtl.\",\n\t\t\t\"led.\",\n\t\t\t\"F.\",\n\t\t\t\"Test.\",\n\t\t\t\"Schr.\",\n\t\t\t\"Do.\",\n\t\t\t\"PIN.\",\n\t\t\t\"Z. Zt.\",\n\t\t\t\"v.Chr.\",\n\t\t\t\"Tägl.\",\n\t\t\t\"s.\",\n\t\t\t\"amtl.\",\n\t\t\t\"Temp.\",\n\t\t\t\"Mind.\",\n\t\t\t\"e.V.\",\n\t\t\t\"Abw.\",\n\t\t\t\"P.M.\",\n\t\t\t\"F.f.\",\n\t\t\t\"a.a.S.\",\n\t\t\t\"Mod.\",\n\t\t\t\"Co.\",\n\t\t\t\"Min.\",\n\t\t\t\"Allg.\",\n\t\t\t\"Geograph.\",\n\t\t\t\"Jr.\",\n\t\t\t\"Urspr.\",\n\t\t\t\"Apr.\",\n\t\t\t\"Z. B.\",\n\t\t\t\"v.H.\",\n\t\t\t\"A.\",\n\t\t\t\"einschl.\",\n\t\t\t\"Trans.\",\n\t\t\t\"zzgl.\",\n\t\t\t\"StR.\",\n\t\t\t\"Fam.\",\n\t\t\t\"I.\",\n\t\t\t\"jhrl.\",\n\t\t\t\"u.a.\",\n\t\t\t\"Ben.\",\n\t\t\t\"o.g.\",\n\t\t\t\"Kfm.\",\n\t\t\t\"Konv.\",\n\t\t\t\"Mi.\",\n\t\t\t\"L.\",\n\t\t\t\"beil.\",\n\t\t\t\"T.\",\n\t\t\t\"Ursprüngl.\",\n\t\t\t\"röm.-kath.\",\n\t\t\t\"Okt.\",\n\t\t\t\"u.ä.\",\n\t\t\t\"Tel.\",\n\t\t\t\"D.\",\n\t\t\t\"Ber.\",\n\t\t\t\"Kop.\",\n\t\t\t\"Mio.\",\n\t\t\t\"Y.\",\n\t\t\t\"U.S.A.\",\n\t\t\t\"v. H.\",\n\t\t\t\"Forts. f.\",\n\t\t\t\"Rep.\",\n\t\t\t\"Hptst.\",\n\t\t\t\"österr.\"\n\t\t],\n\t\t\"variables\": {}\n\t} },\n\t\"el\": { \"sentence\": {\n\t\t\"segmentRules\": {},\n\t\t\"suppressions\": [],\n\t\t\"variables\": { \"$STerm\": \"(?:[!;\\\\?\\\\u037E\\\\u0589\\\\u061D-\\\\u061F\\\\u06D4\\\\u0700-\\\\u0702\\\\u07F9\\\\u0837\\\\u0839\\\\u083D\\\\u083E\\\\u0964\\\\u0965\\\\u104A\\\\u104B\\\\u1362\\\\u1367\\\\u1368\\\\u166E\\\\u1735\\\\u1736\\\\u17D4\\\\u17D5\\\\u1803\\\\u1809\\\\u1944\\\\u1945\\\\u1AA8-\\\\u1AAB\\\\u1B4E\\\\u1B4F\\\\u1B5A\\\\u1B5B\\\\u1B5E\\\\u1B5F\\\\u1B7D-\\\\u1B7F\\\\u1C3B\\\\u1C3C\\\\u1C7E\\\\u1C7F\\\\u203C\\\\u203D\\\\u2047-\\\\u2049\\\\u2CF9-\\\\u2CFB\\\\u2E2E\\\\u2E3C\\\\u2E53\\\\u2E54\\\\u3002\\\\uA4FF\\\\uA60E\\\\uA60F\\\\uA6F3\\\\uA6F7\\\\uA876\\\\uA877\\\\uA8CE\\\\uA8CF\\\\uA92F\\\\uA9C8\\\\uA9C9\\\\uAA5D-\\\\uAA5F\\\\uAAF0\\\\uAAF1\\\\uABEB\\\\uFE12\\\\uFE15\\\\uFE16\\\\uFE56\\\\uFE57\\\\uFF01\\\\uFF1F\\\\uFF61]|\\\\uD802[\\\\uDE56\\\\uDE57]|\\\\uD803[\\\\uDF55-\\\\uDF59\\\\uDF86-\\\\uDF89]|\\\\uD804[\\\\uDC47\\\\uDC48\\\\uDCBE-\\\\uDCC1\\\\uDD41-\\\\uDD43\\\\uDDC5\\\\uDDC6\\\\uDDCD\\\\uDDDE\\\\uDDDF\\\\uDE38\\\\uDE39\\\\uDE3B\\\\uDE3C\\\\uDEA9\\\\uDFD4\\\\uDFD5]|\\\\uD805[\\\\uDC4B\\\\uDC4C\\\\uDDC2\\\\uDDC3\\\\uDDC9-\\\\uDDD7\\\\uDE41\\\\uDE42\\\\uDF3C-\\\\uDF3E]|\\\\uD806[\\\\uDD44\\\\uDD46\\\\uDE42\\\\uDE43\\\\uDE9B\\\\uDE9C]|\\\\uD807[\\\\uDC41\\\\uDC42\\\\uDEF7\\\\uDEF8\\\\uDF43\\\\uDF44]|\\\\uD81A[\\\\uDE6E\\\\uDE6F\\\\uDEF5\\\\uDF37\\\\uDF38\\\\uDF44]|\\\\uD81B[\\\\uDD6E\\\\uDD6F\\\\uDE98]|\\\\uD82F\\\\uDC9F|\\\\uD836\\\\uDE88)\" }\n\t} },\n\t\"en\": { \"sentence\": {\n\t\t\"segmentRules\": {},\n\t\t\"suppressions\": [\n\t\t\t\"L.P.\",\n\t\t\t\"Alt.\",\n\t\t\t\"Approx.\",\n\t\t\t\"E.G.\",\n\t\t\t\"O.\",\n\t\t\t\"Maj.\",\n\t\t\t\"Misc.\",\n\t\t\t\"P.O.\",\n\t\t\t\"J.D.\",\n\t\t\t\"Jam.\",\n\t\t\t\"Card.\",\n\t\t\t\"Dec.\",\n\t\t\t\"Sept.\",\n\t\t\t\"MR.\",\n\t\t\t\"Long.\",\n\t\t\t\"Hat.\",\n\t\t\t\"G.\",\n\t\t\t\"Link.\",\n\t\t\t\"DC.\",\n\t\t\t\"D.C.\",\n\t\t\t\"M.T.\",\n\t\t\t\"Hz.\",\n\t\t\t\"Mrs.\",\n\t\t\t\"By.\",\n\t\t\t\"Act.\",\n\t\t\t\"Var.\",\n\t\t\t\"N.V.\",\n\t\t\t\"Aug.\",\n\t\t\t\"B.\",\n\t\t\t\"S.A.\",\n\t\t\t\"Up.\",\n\t\t\t\"Job.\",\n\t\t\t\"Num.\",\n\t\t\t\"M.I.T.\",\n\t\t\t\"Ok.\",\n\t\t\t\"Org.\",\n\t\t\t\"Ex.\",\n\t\t\t\"Cont.\",\n\t\t\t\"U.\",\n\t\t\t\"Mart.\",\n\t\t\t\"Fn.\",\n\t\t\t\"Abs.\",\n\t\t\t\"Lt.\",\n\t\t\t\"OK.\",\n\t\t\t\"Z.\",\n\t\t\t\"E.\",\n\t\t\t\"Kb.\",\n\t\t\t\"Est.\",\n\t\t\t\"A.M.\",\n\t\t\t\"L.A.\",\n\t\t\t\"Prof.\",\n\t\t\t\"U.S.\",\n\t\t\t\"Nov.\",\n\t\t\t\"Ph.D.\",\n\t\t\t\"Mar.\",\n\t\t\t\"I.T.\",\n\t\t\t\"exec.\",\n\t\t\t\"Jan.\",\n\t\t\t\"N.Y.\",\n\t\t\t\"X.\",\n\t\t\t\"Md.\",\n\t\t\t\"Op.\",\n\t\t\t\"vs.\",\n\t\t\t\"D.A.\",\n\t\t\t\"A.D.\",\n\t\t\t\"R.L.\",\n\t\t\t\"P.M.\",\n\t\t\t\"Or.\",\n\t\t\t\"M.R.\",\n\t\t\t\"Cap.\",\n\t\t\t\"PC.\",\n\t\t\t\"Feb.\",\n\t\t\t\"Exec.\",\n\t\t\t\"I.e.\",\n\t\t\t\"Sep.\",\n\t\t\t\"Gb.\",\n\t\t\t\"K.\",\n\t\t\t\"U.S.C.\",\n\t\t\t\"Mt.\",\n\t\t\t\"S.\",\n\t\t\t\"A.S.\",\n\t\t\t\"C.O.D.\",\n\t\t\t\"Capt.\",\n\t\t\t\"Col.\",\n\t\t\t\"In.\",\n\t\t\t\"C.F.\",\n\t\t\t\"Adj.\",\n\t\t\t\"AD.\",\n\t\t\t\"I.D.\",\n\t\t\t\"Mgr.\",\n\t\t\t\"R.T.\",\n\t\t\t\"B.V.\",\n\t\t\t\"M.\",\n\t\t\t\"Conn.\",\n\t\t\t\"Yr.\",\n\t\t\t\"Rev.\",\n\t\t\t\"Phys.\",\n\t\t\t\"pp.\",\n\t\t\t\"Ms.\",\n\t\t\t\"To.\",\n\t\t\t\"Sgt.\",\n\t\t\t\"J.K.\",\n\t\t\t\"Nr.\",\n\t\t\t\"Jun.\",\n\t\t\t\"Fri.\",\n\t\t\t\"S.A.R.\",\n\t\t\t\"Lev.\",\n\t\t\t\"Lt.Cdr.\",\n\t\t\t\"Def.\",\n\t\t\t\"F.\",\n\t\t\t\"Do.\",\n\t\t\t\"Joe.\",\n\t\t\t\"Id.\",\n\t\t\t\"Mr.\",\n\t\t\t\"Dept.\",\n\t\t\t\"Is.\",\n\t\t\t\"Pvt.\",\n\t\t\t\"Diff.\",\n\t\t\t\"Hon.B.A.\",\n\t\t\t\"Q.\",\n\t\t\t\"Mb.\",\n\t\t\t\"On.\",\n\t\t\t\"Min.\",\n\t\t\t\"J.B.\",\n\t\t\t\"Ed.\",\n\t\t\t\"AB.\",\n\t\t\t\"A.\",\n\t\t\t\"S.p.A.\",\n\t\t\t\"I.\",\n\t\t\t\"a.m.\",\n\t\t\t\"Comm.\",\n\t\t\t\"Go.\",\n\t\t\t\"VS.\",\n\t\t\t\"L.\",\n\t\t\t\"All.\",\n\t\t\t\"PP.\",\n\t\t\t\"P.V.\",\n\t\t\t\"T.\",\n\t\t\t\"K.R.\",\n\t\t\t\"Etc.\",\n\t\t\t\"D.\",\n\t\t\t\"Adv.\",\n\t\t\t\"Lib.\",\n\t\t\t\"E.g.\",\n\t\t\t\"Pro.\",\n\t\t\t\"U.S.A.\",\n\t\t\t\"S.E.\",\n\t\t\t\"AA.\",\n\t\t\t\"Rep.\",\n\t\t\t\"Sq.\",\n\t\t\t\"As.\"\n\t\t],\n\t\t\"variables\": {}\n\t} },\n\t\"es\": { \"sentence\": {\n\t\t\"segmentRules\": {},\n\t\t\"suppressions\": [\n\t\t\t\"Rdos.\",\n\t\t\t\"JJ.OO.\",\n\t\t\t\"Sres.\",\n\t\t\t\"fig.\",\n\t\t\t\"may.\",\n\t\t\t\"RR.HH.\",\n\t\t\t\"oct.\",\n\t\t\t\"cap.\",\n\t\t\t\"mié.\",\n\t\t\t\"doc.\",\n\t\t\t\"Excmo.\",\n\t\t\t\"Trab.\",\n\t\t\t\"Excmos.\",\n\t\t\t\"Kit.\",\n\t\t\t\"Inc.\",\n\t\t\t\"FF.CC.\",\n\t\t\t\"DC.\",\n\t\t\t\"ago.\",\n\t\t\t\"trad.\",\n\t\t\t\"SA.\",\n\t\t\t\"Rvdos.\",\n\t\t\t\"ed.\",\n\t\t\t\"Exmo.\",\n\t\t\t\"jul.\",\n\t\t\t\"col.\",\n\t\t\t\"RAM.\",\n\t\t\t\"Srtas.\",\n\t\t\t\"ene.\",\n\t\t\t\"Rol.\",\n\t\t\t\"Fabric.\",\n\t\t\t\"Comm.\",\n\t\t\t\"vid.\",\n\t\t\t\"Da.\",\n\t\t\t\"dic.\",\n\t\t\t\"ss.\",\n\t\t\t\"abr.\",\n\t\t\t\"ntra.\",\n\t\t\t\"Sra.\",\n\t\t\t\"dtor.\",\n\t\t\t\"cf.\",\n\t\t\t\"dom.\",\n\t\t\t\"prov.\",\n\t\t\t\"Emm.\",\n\t\t\t\"Sr.\",\n\t\t\t\"licdo.\",\n\t\t\t\"p.ej.\",\n\t\t\t\"bol.\",\n\t\t\t\"figs.\",\n\t\t\t\"Vda.\",\n\t\t\t\"Dr.\",\n\t\t\t\"ntro.\",\n\t\t\t\"Desv.\",\n\t\t\t\"O.M.\",\n\t\t\t\"Ldo.\",\n\t\t\t\"Drs.\",\n\t\t\t\"sáb.\",\n\t\t\t\"feb.\",\n\t\t\t\"Ltda.\",\n\t\t\t\"Lcda.\",\n\t\t\t\"Exma.\",\n\t\t\t\"C.V.\",\n\t\t\t\"SS.MM.\",\n\t\t\t\"Lda.\",\n\t\t\t\"U.S.\",\n\t\t\t\"hnos.\",\n\t\t\t\"R.D.\",\n\t\t\t\"Korn.\",\n\t\t\t\"v.gr.\",\n\t\t\t\"vs.\",\n\t\t\t\"Ilmas.\",\n\t\t\t\"Rdo.\",\n\t\t\t\"ej.\",\n\t\t\t\"vie.\",\n\t\t\t\"jue.\",\n\t\t\t\"a. C.\",\n\t\t\t\"Ilmos.\",\n\t\t\t\"e. c.\",\n\t\t\t\"Excma.\",\n\t\t\t\"afma.\",\n\t\t\t\"licda.\",\n\t\t\t\"Em.\",\n\t\t\t\"K.\",\n\t\t\t\"sras.\",\n\t\t\t\"MM.\",\n\t\t\t\"fund.\",\n\t\t\t\"Mons.\",\n\t\t\t\"Lcdo.\",\n\t\t\t\"afmo.\",\n\t\t\t\"C.\",\n\t\t\t\"A.C.\",\n\t\t\t\"dptos.\",\n\t\t\t\"Col.\",\n\t\t\t\"Srta.\",\n\t\t\t\"Av.\",\n\t\t\t\"Ant.\",\n\t\t\t\"depto.\",\n\t\t\t\"Var.\",\n\t\t\t\"H.P.\",\n\t\t\t\"D.\",\n\t\t\t\"M.\",\n\t\t\t\"C.P.\",\n\t\t\t\"Rev.\",\n\t\t\t\"Rvdmos.\",\n\t\t\t\"Fr.\",\n\t\t\t\"Ilmo.\",\n\t\t\t\"afmos.\",\n\t\t\t\"Ltd.\",\n\t\t\t\"afmas.\",\n\t\t\t\"prof.\",\n\t\t\t\"lun.\",\n\t\t\t\"SS.AA.\",\n\t\t\t\"Sol.\",\n\t\t\t\"nov.\",\n\t\t\t\"mss.\",\n\t\t\t\"Dña.\",\n\t\t\t\"Seg.\",\n\t\t\t\"mar.\",\n\t\t\t\"Rvdmo.\",\n\t\t\t\"Reg.\",\n\t\t\t\"ms.\",\n\t\t\t\"Sras.\",\n\t\t\t\"sres.\",\n\t\t\t\"U.S.A.\",\n\t\t\t\"Sta.\",\n\t\t\t\"Sdad.\",\n\t\t\t\"Dra.\",\n\t\t\t\"srs.\",\n\t\t\t\"R.U.\",\n\t\t\t\"deptos.\",\n\t\t\t\"dpto.\",\n\t\t\t\"jun.\",\n\t\t\t\"bco.\",\n\t\t\t\"Cía.\",\n\t\t\t\"Id.\",\n\t\t\t\"Mr.\",\n\t\t\t\"e.g.\",\n\t\t\t\"C.S.\",\n\t\t\t\"Excmas.\",\n\t\t\t\"Dª.\",\n\t\t\t\"Rvdo.\",\n\t\t\t\"Lic.\",\n\t\t\t\"cfr.\",\n\t\t\t\"Corp.\",\n\t\t\t\"Dto.\",\n\t\t\t\"Ilma.\",\n\t\t\t\"L.\",\n\t\t\t\"All.\",\n\t\t\t\"PP.\",\n\t\t\t\"d. C.\",\n\t\t\t\"Ltdo.\",\n\t\t\t\"mtro.\",\n\t\t\t\"Mrs.\",\n\t\t\t\"Desc.\",\n\t\t\t\"Avda.\",\n\t\t\t\"Exmas.\",\n\t\t\t\"a. e. c.\",\n\t\t\t\"Bien.\",\n\t\t\t\"Exmos.\",\n\t\t\t\"AA.\",\n\t\t\t\"Sto.\",\n\t\t\t\"CA.\",\n\t\t\t\"sept.\",\n\t\t\t\"Exc.\",\n\t\t\t\"c/c.\"\n\t\t],\n\t\t\"variables\": {}\n\t} },\n\t\"fr\": { \"sentence\": {\n\t\t\"segmentRules\": {},\n\t\t\"suppressions\": [\n\t\t\t\"aux.\",\n\t\t\t\"config.\",\n\t\t\t\"collab.\",\n\t\t\t\"M.\",\n\t\t\t\"dim.\",\n\t\t\t\"imprim.\",\n\t\t\t\"oct.\",\n\t\t\t\"syst.\",\n\t\t\t\"bull.\",\n\t\t\t\"MM.\",\n\t\t\t\"doc.\",\n\t\t\t\"P.O.\",\n\t\t\t\"hôp.\",\n\t\t\t\"Mart.\",\n\t\t\t\"juil.\",\n\t\t\t\"broch.\",\n\t\t\t\"adr.\",\n\t\t\t\"symb.\",\n\t\t\t\"C.\",\n\t\t\t\"anc.\",\n\t\t\t\"voit.\",\n\t\t\t\"Jr.\",\n\t\t\t\"graph.\",\n\t\t\t\"dir.\",\n\t\t\t\"éd.\",\n\t\t\t\"fig.\",\n\t\t\t\"édit.\",\n\t\t\t\"niv.\",\n\t\t\t\"quart.\",\n\t\t\t\"cam.\",\n\t\t\t\"éval.\",\n\t\t\t\"anon.\",\n\t\t\t\"réf.\",\n\t\t\t\"Comm.\",\n\t\t\t\"Prof.\",\n\t\t\t\"févr.\",\n\t\t\t\"indus.\",\n\t\t\t\"DC.\",\n\t\t\t\"équiv.\",\n\t\t\t\"illustr.\",\n\t\t\t\"acoust.\",\n\t\t\t\"nov.\",\n\t\t\t\"L.\",\n\t\t\t\"All.\",\n\t\t\t\"U.S.\",\n\t\t\t\"S.M.A.R.T.\",\n\t\t\t\"sept.\",\n\t\t\t\"avr.\",\n\t\t\t\"jeu.\",\n\t\t\t\"dest.\",\n\t\t\t\"P.-D. G.\",\n\t\t\t\"ill.\",\n\t\t\t\"coll.\",\n\t\t\t\"encycl.\",\n\t\t\t\"mer.\",\n\t\t\t\"Desc.\",\n\t\t\t\"ven.\",\n\t\t\t\"P.\",\n\t\t\t\"lun.\",\n\t\t\t\"Inc.\",\n\t\t\t\"sam.\",\n\t\t\t\"D.\",\n\t\t\t\"append.\",\n\t\t\t\"Var.\",\n\t\t\t\"categ.\",\n\t\t\t\"janv.\",\n\t\t\t\"S.A.\",\n\t\t\t\"imm.\",\n\t\t\t\"U.S.A.\",\n\t\t\t\"mar.\",\n\t\t\t\"exempl.\",\n\t\t\t\"déc.\",\n\t\t\t\"ann.\",\n\t\t\t\"U.\",\n\t\t\t\"synth.\",\n\t\t\t\"dict.\",\n\t\t\t\"av. J.-C.\",\n\t\t\t\"W.\",\n\t\t\t\"Op.\",\n\t\t\t\"ap. J.-C.\",\n\t\t\t\"gouv.\",\n\t\t\t\"trav. publ.\"\n\t\t],\n\t\t\"variables\": {}\n\t} },\n\t\"it\": { \"sentence\": {\n\t\t\"segmentRules\": {},\n\t\t\"suppressions\": [\n\t\t\t\"N.B.\",\n\t\t\t\"div.\",\n\t\t\t\"a.C.\",\n\t\t\t\"fig.\",\n\t\t\t\"d.p.R.\",\n\t\t\t\"c.c.p.\",\n\t\t\t\"Cfr.\",\n\t\t\t\"vol.\",\n\t\t\t\"Geom.\",\n\t\t\t\"O.d.G.\",\n\t\t\t\"S.p.A.\",\n\t\t\t\"ver.\",\n\t\t\t\"N.d.A.\",\n\t\t\t\"dott.\",\n\t\t\t\"arch.\",\n\t\t\t\"d.C.\",\n\t\t\t\"N.d.T.\",\n\t\t\t\"rag.\",\n\t\t\t\"Sig.\",\n\t\t\t\"Mod.\",\n\t\t\t\"pag.\",\n\t\t\t\"dr.\",\n\t\t\t\"tav.\",\n\t\t\t\"N.d.E.\",\n\t\t\t\"DC.\",\n\t\t\t\"mitt.\",\n\t\t\t\"Ing.\",\n\t\t\t\"int.\",\n\t\t\t\"on.\",\n\t\t\t\"C.P.\",\n\t\t\t\"ag.\",\n\t\t\t\"L.\",\n\t\t\t\"U.S.\",\n\t\t\t\"S.M.A.R.T.\",\n\t\t\t\"p.i.\",\n\t\t\t\"tab.\",\n\t\t\t\"Ltd.\",\n\t\t\t\"Liv.\",\n\t\t\t\"D.\",\n\t\t\t\"U.S.A.\",\n\t\t\t\"sez.\",\n\t\t\t\"avv.\",\n\t\t\t\"S.A.R.\",\n\t\t\t\"all.\",\n\t\t\t\"p.\"\n\t\t],\n\t\t\"variables\": {}\n\t} },\n\t\"ja\": { \"word\": {\n\t\t\"segmentRules\": {\n\t\t\t\"13.3\": {\n\t\t\t\t\"after\": \"$Hiragana\",\n\t\t\t\t\"before\": \"$Hiragana\",\n\t\t\t\t\"breaks\": false\n\t\t\t},\n\t\t\t\"13.4\": {\n\t\t\t\t\"after\": \"$Ideographic\",\n\t\t\t\t\"before\": \"$Ideographic\",\n\t\t\t\t\"breaks\": false\n\t\t\t}\n\t\t},\n\t\t\"suppressions\": [],\n\t\t\"variables\": {\n\t\t\t\"$Hiragana\": \"((?:[\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F]|\\\\uD82C[\\\\uDC01-\\\\uDD1F\\\\uDD32\\\\uDD50-\\\\uDD52]|\\\\uD83C\\\\uDE00)(?:(?:[\\\\xAD\\\\u061C\\\\u180E\\\\u200E\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\uFEFF\\\\uFFF9-\\\\uFFFB]|\\\\uD80D[\\\\uDC30-\\\\uDC3F]|\\\\uD82F[\\\\uDCA0-\\\\uDCA3]|\\\\uD834[\\\\uDD73-\\\\uDD7A]|\\\\uDB40\\\\uDC01)|(?:[\\\\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\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0897-\\\\u089F\\\\u08CA-\\\\u08E1\\\\u08E3-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\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-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180D\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ADD\\\\u1AE0-\\\\u1AEB\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\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-\\\\uFE2F\\\\uFF9E\\\\uFF9F]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDD69-\\\\uDD6D\\\\uDEAB\\\\uDEAC\\\\uDEFA-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCC2\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74\\\\uDFB8-\\\\uDFC0\\\\uDFC2\\\\uDFC5\\\\uDFC7-\\\\uDFCA\\\\uDFCC-\\\\uDFD0\\\\uDFD2\\\\uDFE1\\\\uDFE2]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99\\\\uDF60-\\\\uDF67]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42\\\\uDF5A]|\\\\uD80D[\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD818[\\\\uDD1E-\\\\uDD2F]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF\\\\uDDEE\\\\uDDEF\\\\uDEE3\\\\uDEE6\\\\uDEEE\\\\uDEEF\\\\uDEF5]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF]))*)\",\n\t\t\t\"$Ideographic\": \"((?:[\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3038-\\\\u303B\\\\u3400-\\\\u4DBF\\\\u4E00-\\\\u9FFF\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9]|\\\\uD81B[\\\\uDFE4\\\\uDFF2-\\\\uDFF6]|[\\\\uD81C-\\\\uD822\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86D\\\\uD86F-\\\\uD872\\\\uD874-\\\\uD879\\\\uD880-\\\\uD883\\\\uD885-\\\\uD88C][\\\\uDC00-\\\\uDFFF]|\\\\uD823[\\\\uDC00-\\\\uDCD5\\\\uDCFF-\\\\uDD1E\\\\uDD80-\\\\uDDF2]|\\\\uD82C[\\\\uDD70-\\\\uDEFB]|\\\\uD869[\\\\uDC00-\\\\uDEDF\\\\uDF00-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D\\\\uDC20-\\\\uDFFF]|\\\\uD873[\\\\uDC00-\\\\uDEAD\\\\uDEB0-\\\\uDFFF]|\\\\uD87A[\\\\uDC00-\\\\uDFE0\\\\uDFF0-\\\\uDFFF]|\\\\uD87B[\\\\uDC00-\\\\uDE5D]|\\\\uD87E[\\\\uDC00-\\\\uDE1D]|\\\\uD884[\\\\uDC00-\\\\uDF4A\\\\uDF50-\\\\uDFFF]|\\\\uD88D[\\\\uDC00-\\\\uDC79])(?:(?:[\\\\xAD\\\\u061C\\\\u180E\\\\u200E\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\uFEFF\\\\uFFF9-\\\\uFFFB]|\\\\uD80D[\\\\uDC30-\\\\uDC3F]|\\\\uD82F[\\\\uDCA0-\\\\uDCA3]|\\\\uD834[\\\\uDD73-\\\\uDD7A]|\\\\uDB40\\\\uDC01)|(?:[\\\\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\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0897-\\\\u089F\\\\u08CA-\\\\u08E1\\\\u08E3-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\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-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180D\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ADD\\\\u1AE0-\\\\u1AEB\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\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-\\\\uFE2F\\\\uFF9E\\\\uFF9F]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDD69-\\\\uDD6D\\\\uDEAB\\\\uDEAC\\\\uDEFA-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCC2\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74\\\\uDFB8-\\\\uDFC0\\\\uDFC2\\\\uDFC5\\\\uDFC7-\\\\uDFCA\\\\uDFCC-\\\\uDFD0\\\\uDFD2\\\\uDFE1\\\\uDFE2]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99\\\\uDF60-\\\\uDF67]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42\\\\uDF5A]|\\\\uD80D[\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD818[\\\\uDD1E-\\\\uDD2F]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF\\\\uDDEE\\\\uDDEF\\\\uDEE3\\\\uDEE6\\\\uDEEE\\\\uDEEF\\\\uDEF5]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF]))*)\"\n\t\t}\n\t} },\n\t\"pt\": { \"sentence\": {\n\t\t\"segmentRules\": {},\n\t\t\"suppressions\": [\n\t\t\t\"psicol.\",\n\t\t\t\"fig.\",\n\t\t\t\"compl.\",\n\t\t\t\"rep.\",\n\t\t\t\"cap.\",\n\t\t\t\"doc.\",\n\t\t\t\"fisiol.\",\n\t\t\t\"dipl.\",\n\t\t\t\"astron.\",\n\t\t\t\"port.\",\n\t\t\t\"eletrôn.\",\n\t\t\t\"geom.\",\n\t\t\t\"mov.\",\n\t\t\t\"ago.\",\n\t\t\t\"trad.\",\n\t\t\t\"arquit.\",\n\t\t\t\"dez.\",\n\t\t\t\"ed.\",\n\t\t\t\"apt.\",\n\t\t\t\"Exmo.\",\n\t\t\t\"col.\",\n\t\t\t\"ff.\",\n\t\t\t\"univ.\",\n\t\t\t\"res.\",\n\t\t\t\"R.\",\n\t\t\t\"transp.\",\n\t\t\t\"D.C\",\n\t\t\t\"l.\",\n\t\t\t\"des.\",\n\t\t\t\"fev.\",\n\t\t\t\"abr.\",\n\t\t\t\"liter.\",\n\t\t\t\"lat.\",\n\t\t\t\"Dir.\",\n\t\t\t\"cf.\",\n\t\t\t\"adm.\",\n\t\t\t\"fot.\",\n\t\t\t\"p.m.\",\n\t\t\t\"P.M.\",\n\t\t\t\"créd.\",\n\t\t\t\"jur.\",\n\t\t\t\"com.\",\n\t\t\t\"anat.\",\n\t\t\t\"dir.\",\n\t\t\t\"end.\",\n\t\t\t\"fís.\",\n\t\t\t\"E.\",\n\t\t\t\"Est.\",\n\t\t\t\"cont.\",\n\t\t\t\"matem.\",\n\t\t\t\"Drs.\",\n\t\t\t\"gên.\",\n\t\t\t\"neol.\",\n\t\t\t\"pág.\",\n\t\t\t\"índ.\",\n\t\t\t\"Ltda.\",\n\t\t\t\"Exma.\",\n\t\t\t\"esp.\",\n\t\t\t\"ingl.\",\n\t\t\t\"tecnol.\",\n\t\t\t\"Mar.\",\n\t\t\t\"símb.\",\n\t\t\t\"Pe.\",\n\t\t\t\"pal.\",\n\t\t\t\"filos.\",\n\t\t\t\"V.T.\",\n\t\t\t\"fasc.\",\n\t\t\t\"vs.\",\n\t\t\t\"mai.\",\n\t\t\t\"S.A.\",\n\t\t\t\"profa.\",\n\t\t\t\"N.Sra.\",\n\t\t\t\"r.s.v.p.\",\n\t\t\t\"cel.\",\n\t\t\t\"mat.\",\n\t\t\t\"abrev.\",\n\t\t\t\"out.\",\n\t\t\t\"long.\",\n\t\t\t\"aux.\",\n\t\t\t\"arit.\",\n\t\t\t\"aer.\",\n\t\t\t\"jul.\",\n\t\t\t\"lin.\",\n\t\t\t\"S.\",\n\t\t\t\"méd.\",\n\t\t\t\"odontol.\",\n\t\t\t\"org.\",\n\t\t\t\"A.C.\",\n\t\t\t\"jun.\",\n\t\t\t\"déb.\",\n\t\t\t\"Av.\",\n\t\t\t\"álg.\",\n\t\t\t\"sup.\",\n\t\t\t\"fl.\",\n\t\t\t\"odont.\",\n\t\t\t\"caps.\",\n\t\t\t\"relat.\",\n\t\t\t\"organiz.\",\n\t\t\t\"hist.\",\n\t\t\t\"Fr.\",\n\t\t\t\"Ilmo.\",\n\t\t\t\"fem.\",\n\t\t\t\"ap.\",\n\t\t\t\"Ltd.\",\n\t\t\t\"pol.\",\n\t\t\t\"séc.\",\n\t\t\t\"prof.\",\n\t\t\t\"cx.\",\n\t\t\t\"nov.\",\n\t\t\t\"quím.\",\n\t\t\t\"mús.\",\n\t\t\t\"agric.\",\n\t\t\t\"mar.\",\n\t\t\t\"W.C.\",\n\t\t\t\"fr.\",\n\t\t\t\"cat.\",\n\t\t\t\"jan.\",\n\t\t\t\"pron.\",\n\t\t\t\"rel.\",\n\t\t\t\"autom.\",\n\t\t\t\"Sta.\",\n\t\t\t\"Dra.\",\n\t\t\t\"p.\",\n\t\t\t\"tel.\",\n\t\t\t\"div.\",\n\t\t\t\"p. ex.\",\n\t\t\t\"a.C.\",\n\t\t\t\"bras.\",\n\t\t\t\"Alm.\",\n\t\t\t\"Dr.\",\n\t\t\t\"comp.\",\n\t\t\t\"pq.\",\n\t\t\t\"arqueol.\",\n\t\t\t\"náut.\",\n\t\t\t\"biogr.\",\n\t\t\t\"f.\",\n\t\t\t\"círc.\",\n\t\t\t\"fac.\",\n\t\t\t\"d.C.\",\n\t\t\t\"apart.\",\n\t\t\t\"ex.\",\n\t\t\t\"Jr.\",\n\t\t\t\"set.\",\n\t\t\t\"tec.\",\n\t\t\t\"sociol.\",\n\t\t\t\"gram.\",\n\t\t\t\"ind.\",\n\t\t\t\"Ilma.\",\n\t\t\t\"vol.\",\n\t\t\t\"eng.\",\n\t\t\t\"rod.\",\n\t\t\t\"Ph.D.\",\n\t\t\t\"Dras.\",\n\t\t\t\"pp.\",\n\t\t\t\"elem.\",\n\t\t\t\"máq.\",\n\t\t\t\"cód.\",\n\t\t\t\"eletr.\",\n\t\t\t\"prod.\",\n\t\t\t\"ref.\",\n\t\t\t\"fil.\",\n\t\t\t\"a.m.\",\n\t\t\t\"A.M\",\n\t\t\t\"obs.\",\n\t\t\t\"N.T.\",\n\t\t\t\"contab.\",\n\t\t\t\"Sto.\",\n\t\t\t\"lit.\",\n\t\t\t\"educ.\",\n\t\t\t\"rementente\",\n\t\t\t\"desc.\",\n\t\t\t\"próx.\"\n\t\t],\n\t\t\"variables\": {}\n\t} },\n\t\"root\": {\n\t\t\"grapheme\": {\n\t\t\t\"segmentRules\": {\n\t\t\t\t\"11\": {\n\t\t\t\t\t\"after\": \"$ExtPict\",\n\t\t\t\t\t\"before\": \"$ExtPict$Extend*$ZWJ\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"12\": {\n\t\t\t\t\t\"after\": \"$RI\",\n\t\t\t\t\t\"before\": \"^($RI$RI)*$RI\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"13\": {\n\t\t\t\t\t\"after\": \"$RI\",\n\t\t\t\t\t\"before\": \"[^\\\\uDDE6-\\\\uDDFF]($RI$RI)*$RI\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"after\": \"$LF\",\n\t\t\t\t\t\"before\": \"$CR\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"before\": \"($Control|$CR|$LF)\",\n\t\t\t\t\t\"breaks\": true\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"after\": \"($Control|$CR|$LF)\",\n\t\t\t\t\t\"breaks\": true\n\t\t\t\t},\n\t\t\t\t\"6\": {\n\t\t\t\t\t\"after\": \"($L|$V|$LV|$LVT)\",\n\t\t\t\t\t\"before\": \"$L\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"7\": {\n\t\t\t\t\t\"after\": \"($V|$T)\",\n\t\t\t\t\t\"before\": \"($LV|$V)\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"8\": {\n\t\t\t\t\t\"after\": \"$T\",\n\t\t\t\t\t\"before\": \"($LVT|$T)\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"9\": {\n\t\t\t\t\t\"after\": \"($Extend|$ZWJ)\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"9.1\": {\n\t\t\t\t\t\"after\": \"$SpacingMark\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"9.2\": {\n\t\t\t\t\t\"before\": \"$Prepend\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"9.3\": {\n\t\t\t\t\t\"after\": \"$LinkingConsonant\",\n\t\t\t\t\t\"before\": \"$LinkingConsonant$ConjunctExtender*$ConjunctLinker$ConjunctExtender*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"suppressions\": [],\n\t\t\t\"variables\": {\n\t\t\t\t\"$CR\": \"\\\\r\",\n\t\t\t\t\"$ConjunctExtender\": \"(?:[\\\\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\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0897-\\\\u089F\\\\u08CA-\\\\u08E1\\\\u08E3-\\\\u0902\\\\u093A\\\\u093C\\\\u0941-\\\\u0948\\\\u094D\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981\\\\u09BC\\\\u09BE\\\\u09C1-\\\\u09C4\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01\\\\u0A02\\\\u0A3C\\\\u0A41\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81\\\\u0A82\\\\u0ABC\\\\u0AC1-\\\\u0AC5\\\\u0AC7\\\\u0AC8\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01\\\\u0B3C\\\\u0B3E\\\\u0B3F\\\\u0B41-\\\\u0B44\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE\\\\u0BC0\\\\u0BCD\\\\u0BD7\\\\u0C00\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C40\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81\\\\u0CBC\\\\u0CBF\\\\u0CC0\\\\u0CC2\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0D00\\\\u0D01\\\\u0D3B\\\\u0D3C\\\\u0D3E\\\\u0D41-\\\\u0D44\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81\\\\u0DCA\\\\u0DCF\\\\u0DD2-\\\\u0DD4\\\\u0DD6\\\\u0DDF\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F71-\\\\u0F7E\\\\u0F80-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102D-\\\\u1030\\\\u1032-\\\\u1037\\\\u1039\\\\u103A\\\\u103D\\\\u103E\\\\u1058\\\\u1059\\\\u105E-\\\\u1060\\\\u1071-\\\\u1074\\\\u1082\\\\u1085\\\\u1086\\\\u108D\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4\\\\u17B5\\\\u17B7-\\\\u17BD\\\\u17C6\\\\u17C9-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180D\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u1922\\\\u1927\\\\u1928\\\\u1932\\\\u1939-\\\\u193B\\\\u1A17\\\\u1A18\\\\u1A1B\\\\u1A56\\\\u1A58-\\\\u1A5E\\\\u1A60\\\\u1A62\\\\u1A65-\\\\u1A6C\\\\u1A73-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ADD\\\\u1AE0-\\\\u1AEB\\\\u1B00-\\\\u1B03\\\\u1B34-\\\\u1B3D\\\\u1B42-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80\\\\u1B81\\\\u1BA2-\\\\u1BA5\\\\u1BA8-\\\\u1BAD\\\\u1BE6\\\\u1BE8\\\\u1BE9\\\\u1BED\\\\u1BEF-\\\\u1BF3\\\\u1C2C-\\\\u1C33\\\\u1C36\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE0\\\\u1CE2-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF8\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200D\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA825\\\\uA826\\\\uA82C\\\\uA8C4\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA951\\\\uA953\\\\uA980-\\\\uA982\\\\uA9B3\\\\uA9B6-\\\\uA9B9\\\\uA9BC\\\\uA9BD\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA2E\\\\uAA31\\\\uAA32\\\\uAA35\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA7C\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEC\\\\uAAED\\\\uAAF6\\\\uABE5\\\\uABE8\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFF9E\\\\uFF9F]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDD69-\\\\uDD6D\\\\uDEAB\\\\uDEAC\\\\uDEFA-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC01\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC81\\\\uDCB3-\\\\uDCB6\\\\uDCB9\\\\uDCBA\\\\uDCC2\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD2B\\\\uDD2D-\\\\uDD34\\\\uDD73\\\\uDD80\\\\uDD81\\\\uDDB6-\\\\uDDBE\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCF\\\\uDE2F-\\\\uDE31\\\\uDE34-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF\\\\uDEE3-\\\\uDEEA\\\\uDF00\\\\uDF01\\\\uDF3B\\\\uDF3C\\\\uDF3E\\\\uDF40\\\\uDF4D\\\\uDF57\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74\\\\uDFB8\\\\uDFBB-\\\\uDFC0\\\\uDFC2\\\\uDFC5\\\\uDFC7-\\\\uDFC9\\\\uDFCE-\\\\uDFD0\\\\uDFD2\\\\uDFE1\\\\uDFE2]|\\\\uD805[\\\\uDC38-\\\\uDC3F\\\\uDC42-\\\\uDC44\\\\uDC46\\\\uDC5E\\\\uDCB0\\\\uDCB3-\\\\uDCB8\\\\uDCBA\\\\uDCBD\\\\uDCBF\\\\uDCC0\\\\uDCC2\\\\uDCC3\\\\uDDAF\\\\uDDB2-\\\\uDDB5\\\\uDDBC\\\\uDDBD\\\\uDDBF\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE33-\\\\uDE3A\\\\uDE3D\\\\uDE3F\\\\uDE40\\\\uDEAB\\\\uDEAD\\\\uDEB0-\\\\uDEB7\\\\uDF1D\\\\uDF1F\\\\uDF22-\\\\uDF25\\\\uDF27-\\\\uDF2B]|\\\\uD806[\\\\uDC2F-\\\\uDC37\\\\uDC39\\\\uDC3A\\\\uDD30\\\\uDD3B-\\\\uDD3E\\\\uDD43\\\\uDDD4-\\\\uDDD7\\\\uDDDA\\\\uDDDB\\\\uDDE0\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE38\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE56\\\\uDE59-\\\\uDE5B\\\\uDE8A-\\\\uDE96\\\\uDE98\\\\uDE99\\\\uDF60\\\\uDF62-\\\\uDF64\\\\uDF66]|\\\\uD807[\\\\uDC30-\\\\uDC36\\\\uDC38-\\\\uDC3D\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCAA-\\\\uDCB0\\\\uDCB2\\\\uDCB3\\\\uDCB5\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD90\\\\uDD91\\\\uDD95\\\\uDD97\\\\uDEF3\\\\uDEF4\\\\uDF00\\\\uDF01\\\\uDF36-\\\\uDF3A\\\\uDF40-\\\\uDF42\\\\uDF5A]|\\\\uD80D[\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD818[\\\\uDD1E-\\\\uDD29\\\\uDD2D-\\\\uDD2F]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF\\\\uDDEE\\\\uDDEF\\\\uDEE3\\\\uDEE6\\\\uDEEE\\\\uDEEF\\\\uDEF5]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])\",\n\t\t\t\t\"$ConjunctLinker\": \"(?:[\\\\u094D\\\\u09CD\\\\u0ACD\\\\u0B4D\\\\u0C4D\\\\u0D4D\\\\u1039\\\\u17D2\\\\u1A60\\\\u1B44\\\\u1BAB\\\\uA9C0\\\\uAAF6]|\\\\uD802\\\\uDE3F|\\\\uD804[\\\\uDD33\\\\uDFD0]|\\\\uD806[\\\\uDD3E\\\\uDE47\\\\uDE99]|\\\\uD807\\\\uDF42)\",\n\t\t\t\t\"$Control\": \"(?:[\\\\0-\\\\t\\\\x0B\\\\f\\\\x0E-\\\\x1F\\\\x7F-\\\\x9F\\\\xAD\\\\u061C\\\\u180E\\\\u200B\\\\u200E\\\\u200F\\\\u2028-\\\\u202E\\\\u2060-\\\\u206F\\\\uFEFF\\\\uFFF0-\\\\uFFFB]|\\\\uD80D[\\\\uDC30-\\\\uDC3F]|\\\\uD82F[\\\\uDCA0-\\\\uDCA3]|\\\\uD834[\\\\uDD73-\\\\uDD7A]|\\\\uDB40[\\\\uDC00-\\\\uDC1F\\\\uDC80-\\\\uDCFF\\\\uDDF0-\\\\uDFFF]|[\\\\uDB41-\\\\uDB43][\\\\uDC00-\\\\uDFFF])\",\n\t\t\t\t\"$ExtPict\": \"(?:[\\\\xA9\\\\xAE\\\\u203C\\\\u2049\\\\u2122\\\\u2139\\\\u2194-\\\\u2199\\\\u21A9\\\\u21AA\\\\u231A\\\\u231B\\\\u2328\\\\u23CF\\\\u23E9-\\\\u23F3\\\\u23F8-\\\\u23FA\\\\u24C2\\\\u25AA\\\\u25AB\\\\u25B6\\\\u25C0\\\\u25FB-\\\\u25FE\\\\u2600-\\\\u2604\\\\u260E\\\\u2611\\\\u2614\\\\u2615\\\\u2618\\\\u261D\\\\u2620\\\\u2622\\\\u2623\\\\u2626\\\\u262A\\\\u262E\\\\u262F\\\\u2638-\\\\u263A\\\\u2640\\\\u2642\\\\u2648-\\\\u2653\\\\u265F\\\\u2660\\\\u2663\\\\u2665\\\\u2666\\\\u2668\\\\u267B\\\\u267E\\\\u267F\\\\u2692-\\\\u2697\\\\u2699\\\\u269B\\\\u269C\\\\u26A0\\\\u26A1\\\\u26A7\\\\u26AA\\\\u26AB\\\\u26B0\\\\u26B1\\\\u26BD\\\\u26BE\\\\u26C4\\\\u26C5\\\\u26C8\\\\u26CE\\\\u26CF\\\\u26D1\\\\u26D3\\\\u26D4\\\\u26E9\\\\u26EA\\\\u26F0-\\\\u26F5\\\\u26F7-\\\\u26FA\\\\u26FD\\\\u2702\\\\u2705\\\\u2708-\\\\u270D\\\\u270F\\\\u2712\\\\u2714\\\\u2716\\\\u271D\\\\u2721\\\\u2728\\\\u2733\\\\u2734\\\\u2744\\\\u2747\\\\u274C\\\\u274E\\\\u2753-\\\\u2755\\\\u2757\\\\u2763\\\\u2764\\\\u2795-\\\\u2797\\\\u27A1\\\\u27B0\\\\u27BF\\\\u2934\\\\u2935\\\\u2B05-\\\\u2B07\\\\u2B1B\\\\u2B1C\\\\u2B50\\\\u2B55\\\\u3030\\\\u303D\\\\u3297\\\\u3299]|\\\\uD83C[\\\\uDC04\\\\uDC2C-\\\\uDC2F\\\\uDC94-\\\\uDC9F\\\\uDCAF\\\\uDCB0\\\\uDCC0\\\\uDCCF\\\\uDCD0\\\\uDCF6-\\\\uDCFF\\\\uDD70\\\\uDD71\\\\uDD7E\\\\uDD7F\\\\uDD8E\\\\uDD91-\\\\uDD9A\\\\uDDAE-\\\\uDDE5\\\\uDE01-\\\\uDE0F\\\\uDE1A\\\\uDE2F\\\\uDE32-\\\\uDE3A\\\\uDE3C-\\\\uDE3F\\\\uDE49-\\\\uDE5F\\\\uDE66-\\\\uDF21\\\\uDF24-\\\\uDF93\\\\uDF96\\\\uDF97\\\\uDF99-\\\\uDF9B\\\\uDF9E-\\\\uDFF0\\\\uDFF3-\\\\uDFF5\\\\uDFF7-\\\\uDFFA]|\\\\uD83D[\\\\uDC00-\\\\uDCFD\\\\uDCFF-\\\\uDD3D\\\\uDD49-\\\\uDD4E\\\\uDD50-\\\\uDD67\\\\uDD6F\\\\uDD70\\\\uDD73-\\\\uDD7A\\\\uDD87\\\\uDD8A-\\\\uDD8D\\\\uDD90\\\\uDD95\\\\uDD96\\\\uDDA4\\\\uDDA5\\\\uDDA8\\\\uDDB1\\\\uDDB2\\\\uDDBC\\\\uDDC2-\\\\uDDC4\\\\uDDD1-\\\\uDDD3\\\\uDDDC-\\\\uDDDE\\\\uDDE1\\\\uDDE3\\\\uDDE8\\\\uDDEF\\\\uDDF3\\\\uDDFA-\\\\uDE4F\\\\uDE80-\\\\uDEC5\\\\uDECB-\\\\uDED2\\\\uDED5-\\\\uDEE5\\\\uDEE9\\\\uDEEB-\\\\uDEF0\\\\uDEF3-\\\\uDEFF\\\\uDFDA-\\\\uDFFF]|\\\\uD83E[\\\\uDC0C-\\\\uDC0F\\\\uDC48-\\\\uDC4F\\\\uDC5A-\\\\uDC5F\\\\uDC88-\\\\uDC8F\\\\uDCAE\\\\uDCAF\\\\uDCBC-\\\\uDCBF\\\\uDCC2-\\\\uDCCF\\\\uDCD9-\\\\uDCFF\\\\uDD0C-\\\\uDD3A\\\\uDD3C-\\\\uDD45\\\\uDD47-\\\\uDDFF\\\\uDE58-\\\\uDE5F\\\\uDE6E-\\\\uDEFF]|\\\\uD83F[\\\\uDC00-\\\\uDFFD])\",\n\t\t\t\t\"$Extend\": \"(?:[\\\\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\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0897-\\\\u089F\\\\u08CA-\\\\u08E1\\\\u08E3-\\\\u0902\\\\u093A\\\\u093C\\\\u0941-\\\\u0948\\\\u094D\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981\\\\u09BC\\\\u09BE\\\\u09C1-\\\\u09C4\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01\\\\u0A02\\\\u0A3C\\\\u0A41\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81\\\\u0A82\\\\u0ABC\\\\u0AC1-\\\\u0AC5\\\\u0AC7\\\\u0AC8\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01\\\\u0B3C\\\\u0B3E\\\\u0B3F\\\\u0B41-\\\\u0B44\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE\\\\u0BC0\\\\u0BCD\\\\u0BD7\\\\u0C00\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C40\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81\\\\u0CBC\\\\u0CBF\\\\u0CC0\\\\u0CC2\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0D00\\\\u0D01\\\\u0D3B\\\\u0D3C\\\\u0D3E\\\\u0D41-\\\\u0D44\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81\\\\u0DCA\\\\u0DCF\\\\u0DD2-\\\\u0DD4\\\\u0DD6\\\\u0DDF\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F71-\\\\u0F7E\\\\u0F80-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102D-\\\\u1030\\\\u1032-\\\\u1037\\\\u1039\\\\u103A\\\\u103D\\\\u103E\\\\u1058\\\\u1059\\\\u105E-\\\\u1060\\\\u1071-\\\\u1074\\\\u1082\\\\u1085\\\\u1086\\\\u108D\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4\\\\u17B5\\\\u17B7-\\\\u17BD\\\\u17C6\\\\u17C9-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180D\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u1922\\\\u1927\\\\u1928\\\\u1932\\\\u1939-\\\\u193B\\\\u1A17\\\\u1A18\\\\u1A1B\\\\u1A56\\\\u1A58-\\\\u1A5E\\\\u1A60\\\\u1A62\\\\u1A65-\\\\u1A6C\\\\u1A73-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ADD\\\\u1AE0-\\\\u1AEB\\\\u1B00-\\\\u1B03\\\\u1B34-\\\\u1B3D\\\\u1B42-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80\\\\u1B81\\\\u1BA2-\\\\u1BA5\\\\u1BA8-\\\\u1BAD\\\\u1BE6\\\\u1BE8\\\\u1BE9\\\\u1BED\\\\u1BEF-\\\\u1BF3\\\\u1C2C-\\\\u1C33\\\\u1C36\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE0\\\\u1CE2-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF8\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA825\\\\uA826\\\\uA82C\\\\uA8C4\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA951\\\\uA953\\\\uA980-\\\\uA982\\\\uA9B3\\\\uA9B6-\\\\uA9B9\\\\uA9BC\\\\uA9BD\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA2E\\\\uAA31\\\\uAA32\\\\uAA35\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA7C\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEC\\\\uAAED\\\\uAAF6\\\\uABE5\\\\uABE8\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFF9E\\\\uFF9F]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDD69-\\\\uDD6D\\\\uDEAB\\\\uDEAC\\\\uDEFA-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC01\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC81\\\\uDCB3-\\\\uDCB6\\\\uDCB9\\\\uDCBA\\\\uDCC2\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD2B\\\\uDD2D-\\\\uDD34\\\\uDD73\\\\uDD80\\\\uDD81\\\\uDDB6-\\\\uDDBE\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCF\\\\uDE2F-\\\\uDE31\\\\uDE34-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF\\\\uDEE3-\\\\uDEEA\\\\uDF00\\\\uDF01\\\\uDF3B\\\\uDF3C\\\\uDF3E\\\\uDF40\\\\uDF4D\\\\uDF57\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74\\\\uDFB8\\\\uDFBB-\\\\uDFC0\\\\uDFC2\\\\uDFC5\\\\uDFC7-\\\\uDFC9\\\\uDFCE-\\\\uDFD0\\\\uDFD2\\\\uDFE1\\\\uDFE2]|\\\\uD805[\\\\uDC38-\\\\uDC3F\\\\uDC42-\\\\uDC44\\\\uDC46\\\\uDC5E\\\\uDCB0\\\\uDCB3-\\\\uDCB8\\\\uDCBA\\\\uDCBD\\\\uDCBF\\\\uDCC0\\\\uDCC2\\\\uDCC3\\\\uDDAF\\\\uDDB2-\\\\uDDB5\\\\uDDBC\\\\uDDBD\\\\uDDBF\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE33-\\\\uDE3A\\\\uDE3D\\\\uDE3F\\\\uDE40\\\\uDEAB\\\\uDEAD\\\\uDEB0-\\\\uDEB7\\\\uDF1D\\\\uDF1F\\\\uDF22-\\\\uDF25\\\\uDF27-\\\\uDF2B]|\\\\uD806[\\\\uDC2F-\\\\uDC37\\\\uDC39\\\\uDC3A\\\\uDD30\\\\uDD3B-\\\\uDD3E\\\\uDD43\\\\uDDD4-\\\\uDDD7\\\\uDDDA\\\\uDDDB\\\\uDDE0\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE38\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE56\\\\uDE59-\\\\uDE5B\\\\uDE8A-\\\\uDE96\\\\uDE98\\\\uDE99\\\\uDF60\\\\uDF62-\\\\uDF64\\\\uDF66]|\\\\uD807[\\\\uDC30-\\\\uDC36\\\\uDC38-\\\\uDC3D\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCAA-\\\\uDCB0\\\\uDCB2\\\\uDCB3\\\\uDCB5\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD90\\\\uDD91\\\\uDD95\\\\uDD97\\\\uDEF3\\\\uDEF4\\\\uDF00\\\\uDF01\\\\uDF36-\\\\uDF3A\\\\uDF40-\\\\uDF42\\\\uDF5A]|\\\\uD80D[\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD818[\\\\uDD1E-\\\\uDD29\\\\uDD2D-\\\\uDD2F]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF\\\\uDDEE\\\\uDDEF\\\\uDEE3\\\\uDEE6\\\\uDEEE\\\\uDEEF\\\\uDEF5]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])\",\n\t\t\t\t\"$L\": \"[\\\\u1100-\\\\u115F\\\\uA960-\\\\uA97C]\",\n\t\t\t\t\"$LF\": \"\\\\n\",\n\t\t\t\t\"$LV\": \"[\\\\uAC00\\\\uAC1C\\\\uAC38\\\\uAC54\\\\uAC70\\\\uAC8C\\\\uACA8\\\\uACC4\\\\uACE0\\\\uACFC\\\\uAD18\\\\uAD34\\\\uAD50\\\\uAD6C\\\\uAD88\\\\uADA4\\\\uADC0\\\\uADDC\\\\uADF8\\\\uAE14\\\\uAE30\\\\uAE4C\\\\uAE68\\\\uAE84\\\\uAEA0\\\\uAEBC\\\\uAED8\\\\uAEF4\\\\uAF10\\\\uAF2C\\\\uAF48\\\\uAF64\\\\uAF80\\\\uAF9C\\\\uAFB8\\\\uAFD4\\\\uAFF0\\\\uB00C\\\\uB028\\\\uB044\\\\uB060\\\\uB07C\\\\uB098\\\\uB0B4\\\\uB0D0\\\\uB0EC\\\\uB108\\\\uB124\\\\uB140\\\\uB15C\\\\uB178\\\\uB194\\\\uB1B0\\\\uB1CC\\\\uB1E8\\\\uB204\\\\uB220\\\\uB23C\\\\uB258\\\\uB274\\\\uB290\\\\uB2AC\\\\uB2C8\\\\uB2E4\\\\uB300\\\\uB31C\\\\uB338\\\\uB354\\\\uB370\\\\uB38C\\\\uB3A8\\\\uB3C4\\\\uB3E0\\\\uB3FC\\\\uB418\\\\uB434\\\\uB450\\\\uB46C\\\\uB488\\\\uB4A4\\\\uB4C0\\\\uB4DC\\\\uB4F8\\\\uB514\\\\uB530\\\\uB54C\\\\uB568\\\\uB584\\\\uB5A0\\\\uB5BC\\\\uB5D8\\\\uB5F4\\\\uB610\\\\uB62C\\\\uB648\\\\uB664\\\\uB680\\\\uB69C\\\\uB6B8\\\\uB6D4\\\\uB6F0\\\\uB70C\\\\uB728\\\\uB744\\\\uB760\\\\uB77C\\\\uB798\\\\uB7B4\\\\uB7D0\\\\uB7EC\\\\uB808\\\\uB824\\\\uB840\\\\uB85C\\\\uB878\\\\uB894\\\\uB8B0\\\\uB8CC\\\\uB8E8\\\\uB904\\\\uB920\\\\uB93C\\\\uB958\\\\uB974\\\\uB990\\\\uB9AC\\\\uB9C8\\\\uB9E4\\\\uBA00\\\\uBA1C\\\\uBA38\\\\uBA54\\\\uBA70\\\\uBA8C\\\\uBAA8\\\\uBAC4\\\\uBAE0\\\\uBAFC\\\\uBB18\\\\uBB34\\\\uBB50\\\\uBB6C\\\\uBB88\\\\uBBA4\\\\uBBC0\\\\uBBDC\\\\uBBF8\\\\uBC14\\\\uBC30\\\\uBC4C\\\\uBC68\\\\uBC84\\\\uBCA0\\\\uBCBC\\\\uBCD8\\\\uBCF4\\\\uBD10\\\\uBD2C\\\\uBD48\\\\uBD64\\\\uBD80\\\\uBD9C\\\\uBDB8\\\\uBDD4\\\\uBDF0\\\\uBE0C\\\\uBE28\\\\uBE44\\\\uBE60\\\\uBE7C\\\\uBE98\\\\uBEB4\\\\uBED0\\\\uBEEC\\\\uBF08\\\\uBF24\\\\uBF40\\\\uBF5C\\\\uBF78\\\\uBF94\\\\uBFB0\\\\uBFCC\\\\uBFE8\\\\uC004\\\\uC020\\\\uC03C\\\\uC058\\\\uC074\\\\uC090\\\\uC0AC\\\\uC0C8\\\\uC0E4\\\\uC100\\\\uC11C\\\\uC138\\\\uC154\\\\uC170\\\\uC18C\\\\uC1A8\\\\uC1C4\\\\uC1E0\\\\uC1FC\\\\uC218\\\\uC234\\\\uC250\\\\uC26C\\\\uC288\\\\uC2A4\\\\uC2C0\\\\uC2DC\\\\uC2F8\\\\uC314\\\\uC330\\\\uC34C\\\\uC368\\\\uC384\\\\uC3A0\\\\uC3BC\\\\uC3D8\\\\uC3F4\\\\uC410\\\\uC42C\\\\uC448\\\\uC464\\\\uC480\\\\uC49C\\\\uC4B8\\\\uC4D4\\\\uC4F0\\\\uC50C\\\\uC528\\\\uC544\\\\uC560\\\\uC57C\\\\uC598\\\\uC5B4\\\\uC5D0\\\\uC5EC\\\\uC608\\\\uC624\\\\uC640\\\\uC65C\\\\uC678\\\\uC694\\\\uC6B0\\\\uC6CC\\\\uC6E8\\\\uC704\\\\uC720\\\\uC73C\\\\uC758\\\\uC774\\\\uC790\\\\uC7AC\\\\uC7C8\\\\uC7E4\\\\uC800\\\\uC81C\\\\uC838\\\\uC854\\\\uC870\\\\uC88C\\\\uC8A8\\\\uC8C4\\\\uC8E0\\\\uC8FC\\\\uC918\\\\uC934\\\\uC950\\\\uC96C\\\\uC988\\\\uC9A4\\\\uC9C0\\\\uC9DC\\\\uC9F8\\\\uCA14\\\\uCA30\\\\uCA4C\\\\uCA68\\\\uCA84\\\\uCAA0\\\\uCABC\\\\uCAD8\\\\uCAF4\\\\uCB10\\\\uCB2C\\\\uCB48\\\\uCB64\\\\uCB80\\\\uCB9C\\\\uCBB8\\\\uCBD4\\\\uCBF0\\\\uCC0C\\\\uCC28\\\\uCC44\\\\uCC60\\\\uCC7C\\\\uCC98\\\\uCCB4\\\\uCCD0\\\\uCCEC\\\\uCD08\\\\uCD24\\\\uCD40\\\\uCD5C\\\\uCD78\\\\uCD94\\\\uCDB0\\\\uCDCC\\\\uCDE8\\\\uCE04\\\\uCE20\\\\uCE3C\\\\uCE58\\\\uCE74\\\\uCE90\\\\uCEAC\\\\uCEC8\\\\uCEE4\\\\uCF00\\\\uCF1C\\\\uCF38\\\\uCF54\\\\uCF70\\\\uCF8C\\\\uCFA8\\\\uCFC4\\\\uCFE0\\\\uCFFC\\\\uD018\\\\uD034\\\\uD050\\\\uD06C\\\\uD088\\\\uD0A4\\\\uD0C0\\\\uD0DC\\\\uD0F8\\\\uD114\\\\uD130\\\\uD14C\\\\uD168\\\\uD184\\\\uD1A0\\\\uD1BC\\\\uD1D8\\\\uD1F4\\\\uD210\\\\uD22C\\\\uD248\\\\uD264\\\\uD280\\\\uD29C\\\\uD2B8\\\\uD2D4\\\\uD2F0\\\\uD30C\\\\uD328\\\\uD344\\\\uD360\\\\uD37C\\\\uD398\\\\uD3B4\\\\uD3D0\\\\uD3EC\\\\uD408\\\\uD424\\\\uD440\\\\uD45C\\\\uD478\\\\uD494\\\\uD4B0\\\\uD4CC\\\\uD4E8\\\\uD504\\\\uD520\\\\uD53C\\\\uD558\\\\uD574\\\\uD590\\\\uD5AC\\\\uD5C8\\\\uD5E4\\\\uD600\\\\uD61C\\\\uD638\\\\uD654\\\\uD670\\\\uD68C\\\\uD6A8\\\\uD6C4\\\\uD6E0\\\\uD6FC\\\\uD718\\\\uD734\\\\uD750\\\\uD76C\\\\uD788]\",\n\t\t\t\t\"$LVT\": \"[\\\\uAC01-\\\\uAC1B\\\\uAC1D-\\\\uAC37\\\\uAC39-\\\\uAC53\\\\uAC55-\\\\uAC6F\\\\uAC71-\\\\uAC8B\\\\uAC8D-\\\\uACA7\\\\uACA9-\\\\uACC3\\\\uACC5-\\\\uACDF\\\\uACE1-\\\\uACFB\\\\uACFD-\\\\uAD17\\\\uAD19-\\\\uAD33\\\\uAD35-\\\\uAD4F\\\\uAD51-\\\\uAD6B\\\\uAD6D-\\\\uAD87\\\\uAD89-\\\\uADA3\\\\uADA5-\\\\uADBF\\\\uADC1-\\\\uADDB\\\\uADDD-\\\\uADF7\\\\uADF9-\\\\uAE13\\\\uAE15-\\\\uAE2F\\\\uAE31-\\\\uAE4B\\\\uAE4D-\\\\uAE67\\\\uAE69-\\\\uAE83\\\\uAE85-\\\\uAE9F\\\\uAEA1-\\\\uAEBB\\\\uAEBD-\\\\uAED7\\\\uAED9-\\\\uAEF3\\\\uAEF5-\\\\uAF0F\\\\uAF11-\\\\uAF2B\\\\uAF2D-\\\\uAF47\\\\uAF49-\\\\uAF63\\\\uAF65-\\\\uAF7F\\\\uAF81-\\\\uAF9B\\\\uAF9D-\\\\uAFB7\\\\uAFB9-\\\\uAFD3\\\\uAFD5-\\\\uAFEF\\\\uAFF1-\\\\uB00B\\\\uB00D-\\\\uB027\\\\uB029-\\\\uB043\\\\uB045-\\\\uB05F\\\\uB061-\\\\uB07B\\\\uB07D-\\\\uB097\\\\uB099-\\\\uB0B3\\\\uB0B5-\\\\uB0CF\\\\uB0D1-\\\\uB0EB\\\\uB0ED-\\\\uB107\\\\uB109-\\\\uB123\\\\uB125-\\\\uB13F\\\\uB141-\\\\uB15B\\\\uB15D-\\\\uB177\\\\uB179-\\\\uB193\\\\uB195-\\\\uB1AF\\\\uB1B1-\\\\uB1CB\\\\uB1CD-\\\\uB1E7\\\\uB1E9-\\\\uB203\\\\uB205-\\\\uB21F\\\\uB221-\\\\uB23B\\\\uB23D-\\\\uB257\\\\uB259-\\\\uB273\\\\uB275-\\\\uB28F\\\\uB291-\\\\uB2AB\\\\uB2AD-\\\\uB2C7\\\\uB2C9-\\\\uB2E3\\\\uB2E5-\\\\uB2FF\\\\uB301-\\\\uB31B\\\\uB31D-\\\\uB337\\\\uB339-\\\\uB353\\\\uB355-\\\\uB36F\\\\uB371-\\\\uB38B\\\\uB38D-\\\\uB3A7\\\\uB3A9-\\\\uB3C3\\\\uB3C5-\\\\uB3DF\\\\uB3E1-\\\\uB3FB\\\\uB3FD-\\\\uB417\\\\uB419-\\\\uB433\\\\uB435-\\\\uB44F\\\\uB451-\\\\uB46B\\\\uB46D-\\\\uB487\\\\uB489-\\\\uB4A3\\\\uB4A5-\\\\uB4BF\\\\uB4C1-\\\\uB4DB\\\\uB4DD-\\\\uB4F7\\\\uB4F9-\\\\uB513\\\\uB515-\\\\uB52F\\\\uB531-\\\\uB54B\\\\uB54D-\\\\uB567\\\\uB569-\\\\uB583\\\\uB585-\\\\uB59F\\\\uB5A1-\\\\uB5BB\\\\uB5BD-\\\\uB5D7\\\\uB5D9-\\\\uB5F3\\\\uB5F5-\\\\uB60F\\\\uB611-\\\\uB62B\\\\uB62D-\\\\uB647\\\\uB649-\\\\uB663\\\\uB665-\\\\uB67F\\\\uB681-\\\\uB69B\\\\uB69D-\\\\uB6B7\\\\uB6B9-\\\\uB6D3\\\\uB6D5-\\\\uB6EF\\\\uB6F1-\\\\uB70B\\\\uB70D-\\\\uB727\\\\uB729-\\\\uB743\\\\uB745-\\\\uB75F\\\\uB761-\\\\uB77B\\\\uB77D-\\\\uB797\\\\uB799-\\\\uB7B3\\\\uB7B5-\\\\uB7CF\\\\uB7D1-\\\\uB7EB\\\\uB7ED-\\\\uB807\\\\uB809-\\\\uB823\\\\uB825-\\\\uB83F\\\\uB841-\\\\uB85B\\\\uB85D-\\\\uB877\\\\uB879-\\\\uB893\\\\uB895-\\\\uB8AF\\\\uB8B1-\\\\uB8CB\\\\uB8CD-\\\\uB8E7\\\\uB8E9-\\\\uB903\\\\uB905-\\\\uB91F\\\\uB921-\\\\uB93B\\\\uB93D-\\\\uB957\\\\uB959-\\\\uB973\\\\uB975-\\\\uB98F\\\\uB991-\\\\uB9AB\\\\uB9AD-\\\\uB9C7\\\\uB9C9-\\\\uB9E3\\\\uB9E5-\\\\uB9FF\\\\uBA01-\\\\uBA1B\\\\uBA1D-\\\\uBA37\\\\uBA39-\\\\uBA53\\\\uBA55-\\\\uBA6F\\\\uBA71-\\\\uBA8B\\\\uBA8D-\\\\uBAA7\\\\uBAA9-\\\\uBAC3\\\\uBAC5-\\\\uBADF\\\\uBAE1-\\\\uBAFB\\\\uBAFD-\\\\uBB17\\\\uBB19-\\\\uBB33\\\\uBB35-\\\\uBB4F\\\\uBB51-\\\\uBB6B\\\\uBB6D-\\\\uBB87\\\\uBB89-\\\\uBBA3\\\\uBBA5-\\\\uBBBF\\\\uBBC1-\\\\uBBDB\\\\uBBDD-\\\\uBBF7\\\\uBBF9-\\\\uBC13\\\\uBC15-\\\\uBC2F\\\\uBC31-\\\\uBC4B\\\\uBC4D-\\\\uBC67\\\\uBC69-\\\\uBC83\\\\uBC85-\\\\uBC9F\\\\uBCA1-\\\\uBCBB\\\\uBCBD-\\\\uBCD7\\\\uBCD9-\\\\uBCF3\\\\uBCF5-\\\\uBD0F\\\\uBD11-\\\\uBD2B\\\\uBD2D-\\\\uBD47\\\\uBD49-\\\\uBD63\\\\uBD65-\\\\uBD7F\\\\uBD81-\\\\uBD9B\\\\uBD9D-\\\\uBDB7\\\\uBDB9-\\\\uBDD3\\\\uBDD5-\\\\uBDEF\\\\uBDF1-\\\\uBE0B\\\\uBE0D-\\\\uBE27\\\\uBE29-\\\\uBE43\\\\uBE45-\\\\uBE5F\\\\uBE61-\\\\uBE7B\\\\uBE7D-\\\\uBE97\\\\uBE99-\\\\uBEB3\\\\uBEB5-\\\\uBECF\\\\uBED1-\\\\uBEEB\\\\uBEED-\\\\uBF07\\\\uBF09-\\\\uBF23\\\\uBF25-\\\\uBF3F\\\\uBF41-\\\\uBF5B\\\\uBF5D-\\\\uBF77\\\\uBF79-\\\\uBF93\\\\uBF95-\\\\uBFAF\\\\uBFB1-\\\\uBFCB\\\\uBFCD-\\\\uBFE7\\\\uBFE9-\\\\uC003\\\\uC005-\\\\uC01F\\\\uC021-\\\\uC03B\\\\uC03D-\\\\uC057\\\\uC059-\\\\uC073\\\\uC075-\\\\uC08F\\\\uC091-\\\\uC0AB\\\\uC0AD-\\\\uC0C7\\\\uC0C9-\\\\uC0E3\\\\uC0E5-\\\\uC0FF\\\\uC101-\\\\uC11B\\\\uC11D-\\\\uC137\\\\uC139-\\\\uC153\\\\uC155-\\\\uC16F\\\\uC171-\\\\uC18B\\\\uC18D-\\\\uC1A7\\\\uC1A9-\\\\uC1C3\\\\uC1C5-\\\\uC1DF\\\\uC1E1-\\\\uC1FB\\\\uC1FD-\\\\uC217\\\\uC219-\\\\uC233\\\\uC235-\\\\uC24F\\\\uC251-\\\\uC26B\\\\uC26D-\\\\uC287\\\\uC289-\\\\uC2A3\\\\uC2A5-\\\\uC2BF\\\\uC2C1-\\\\uC2DB\\\\uC2DD-\\\\uC2F7\\\\uC2F9-\\\\uC313\\\\uC315-\\\\uC32F\\\\uC331-\\\\uC34B\\\\uC34D-\\\\uC367\\\\uC369-\\\\uC383\\\\uC385-\\\\uC39F\\\\uC3A1-\\\\uC3BB\\\\uC3BD-\\\\uC3D7\\\\uC3D9-\\\\uC3F3\\\\uC3F5-\\\\uC40F\\\\uC411-\\\\uC42B\\\\uC42D-\\\\uC447\\\\uC449-\\\\uC463\\\\uC465-\\\\uC47F\\\\uC481-\\\\uC49B\\\\uC49D-\\\\uC4B7\\\\uC4B9-\\\\uC4D3\\\\uC4D5-\\\\uC4EF\\\\uC4F1-\\\\uC50B\\\\uC50D-\\\\uC527\\\\uC529-\\\\uC543\\\\uC545-\\\\uC55F\\\\uC561-\\\\uC57B\\\\uC57D-\\\\uC597\\\\uC599-\\\\uC5B3\\\\uC5B5-\\\\uC5CF\\\\uC5D1-\\\\uC5EB\\\\uC5ED-\\\\uC607\\\\uC609-\\\\uC623\\\\uC625-\\\\uC63F\\\\uC641-\\\\uC65B\\\\uC65D-\\\\uC677\\\\uC679-\\\\uC693\\\\uC695-\\\\uC6AF\\\\uC6B1-\\\\uC6CB\\\\uC6CD-\\\\uC6E7\\\\uC6E9-\\\\uC703\\\\uC705-\\\\uC71F\\\\uC721-\\\\uC73B\\\\uC73D-\\\\uC757\\\\uC759-\\\\uC773\\\\uC775-\\\\uC78F\\\\uC791-\\\\uC7AB\\\\uC7AD-\\\\uC7C7\\\\uC7C9-\\\\uC7E3\\\\uC7E5-\\\\uC7FF\\\\uC801-\\\\uC81B\\\\uC81D-\\\\uC837\\\\uC839-\\\\uC853\\\\uC855-\\\\uC86F\\\\uC871-\\\\uC88B\\\\uC88D-\\\\uC8A7\\\\uC8A9-\\\\uC8C3\\\\uC8C5-\\\\uC8DF\\\\uC8E1-\\\\uC8FB\\\\uC8FD-\\\\uC917\\\\uC919-\\\\uC933\\\\uC935-\\\\uC94F\\\\uC951-\\\\uC96B\\\\uC96D-\\\\uC987\\\\uC989-\\\\uC9A3\\\\uC9A5-\\\\uC9BF\\\\uC9C1-\\\\uC9DB\\\\uC9DD-\\\\uC9F7\\\\uC9F9-\\\\uCA13\\\\uCA15-\\\\uCA2F\\\\uCA31-\\\\uCA4B\\\\uCA4D-\\\\uCA67\\\\uCA69-\\\\uCA83\\\\uCA85-\\\\uCA9F\\\\uCAA1-\\\\uCABB\\\\uCABD-\\\\uCAD7\\\\uCAD9-\\\\uCAF3\\\\uCAF5-\\\\uCB0F\\\\uCB11-\\\\uCB2B\\\\uCB2D-\\\\uCB47\\\\uCB49-\\\\uCB63\\\\uCB65-\\\\uCB7F\\\\uCB81-\\\\uCB9B\\\\uCB9D-\\\\uCBB7\\\\uCBB9-\\\\uCBD3\\\\uCBD5-\\\\uCBEF\\\\uCBF1-\\\\uCC0B\\\\uCC0D-\\\\uCC27\\\\uCC29-\\\\uCC43\\\\uCC45-\\\\uCC5F\\\\uCC61-\\\\uCC7B\\\\uCC7D-\\\\uCC97\\\\uCC99-\\\\uCCB3\\\\uCCB5-\\\\uCCCF\\\\uCCD1-\\\\uCCEB\\\\uCCED-\\\\uCD07\\\\uCD09-\\\\uCD23\\\\uCD25-\\\\uCD3F\\\\uCD41-\\\\uCD5B\\\\uCD5D-\\\\uCD77\\\\uCD79-\\\\uCD93\\\\uCD95-\\\\uCDAF\\\\uCDB1-\\\\uCDCB\\\\uCDCD-\\\\uCDE7\\\\uCDE9-\\\\uCE03\\\\uCE05-\\\\uCE1F\\\\uCE21-\\\\uCE3B\\\\uCE3D-\\\\uCE57\\\\uCE59-\\\\uCE73\\\\uCE75-\\\\uCE8F\\\\uCE91-\\\\uCEAB\\\\uCEAD-\\\\uCEC7\\\\uCEC9-\\\\uCEE3\\\\uCEE5-\\\\uCEFF\\\\uCF01-\\\\uCF1B\\\\uCF1D-\\\\uCF37\\\\uCF39-\\\\uCF53\\\\uCF55-\\\\uCF6F\\\\uCF71-\\\\uCF8B\\\\uCF8D-\\\\uCFA7\\\\uCFA9-\\\\uCFC3\\\\uCFC5-\\\\uCFDF\\\\uCFE1-\\\\uCFFB\\\\uCFFD-\\\\uD017\\\\uD019-\\\\uD033\\\\uD035-\\\\uD04F\\\\uD051-\\\\uD06B\\\\uD06D-\\\\uD087\\\\uD089-\\\\uD0A3\\\\uD0A5-\\\\uD0BF\\\\uD0C1-\\\\uD0DB\\\\uD0DD-\\\\uD0F7\\\\uD0F9-\\\\uD113\\\\uD115-\\\\uD12F\\\\uD131-\\\\uD14B\\\\uD14D-\\\\uD167\\\\uD169-\\\\uD183\\\\uD185-\\\\uD19F\\\\uD1A1-\\\\uD1BB\\\\uD1BD-\\\\uD1D7\\\\uD1D9-\\\\uD1F3\\\\uD1F5-\\\\uD20F\\\\uD211-\\\\uD22B\\\\uD22D-\\\\uD247\\\\uD249-\\\\uD263\\\\uD265-\\\\uD27F\\\\uD281-\\\\uD29B\\\\uD29D-\\\\uD2B7\\\\uD2B9-\\\\uD2D3\\\\uD2D5-\\\\uD2EF\\\\uD2F1-\\\\uD30B\\\\uD30D-\\\\uD327\\\\uD329-\\\\uD343\\\\uD345-\\\\uD35F\\\\uD361-\\\\uD37B\\\\uD37D-\\\\uD397\\\\uD399-\\\\uD3B3\\\\uD3B5-\\\\uD3CF\\\\uD3D1-\\\\uD3EB\\\\uD3ED-\\\\uD407\\\\uD409-\\\\uD423\\\\uD425-\\\\uD43F\\\\uD441-\\\\uD45B\\\\uD45D-\\\\uD477\\\\uD479-\\\\uD493\\\\uD495-\\\\uD4AF\\\\uD4B1-\\\\uD4CB\\\\uD4CD-\\\\uD4E7\\\\uD4E9-\\\\uD503\\\\uD505-\\\\uD51F\\\\uD521-\\\\uD53B\\\\uD53D-\\\\uD557\\\\uD559-\\\\uD573\\\\uD575-\\\\uD58F\\\\uD591-\\\\uD5AB\\\\uD5AD-\\\\uD5C7\\\\uD5C9-\\\\uD5E3\\\\uD5E5-\\\\uD5FF\\\\uD601-\\\\uD61B\\\\uD61D-\\\\uD637\\\\uD639-\\\\uD653\\\\uD655-\\\\uD66F\\\\uD671-\\\\uD68B\\\\uD68D-\\\\uD6A7\\\\uD6A9-\\\\uD6C3\\\\uD6C5-\\\\uD6DF\\\\uD6E1-\\\\uD6FB\\\\uD6FD-\\\\uD717\\\\uD719-\\\\uD733\\\\uD735-\\\\uD74F\\\\uD751-\\\\uD76B\\\\uD76D-\\\\uD787\\\\uD789-\\\\uD7A3]\",\n\t\t\t\t\"$LinkingConsonant\": \"(?:[\\\\u0915-\\\\u0939\\\\u0958-\\\\u095F\\\\u0978-\\\\u097F\\\\u0995-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09DC\\\\u09DD\\\\u09DF\\\\u09F0\\\\u09F1\\\\u0A95-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0AF9\\\\u0B15-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B5C\\\\u0B5D\\\\u0B5F\\\\u0B71\\\\u0C15-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C58-\\\\u0C5A\\\\u0D15-\\\\u0D3A\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u1780-\\\\u17B3\\\\u1A20-\\\\u1A54\\\\u1B0B\\\\u1B0C\\\\u1B13-\\\\u1B33\\\\u1B45-\\\\u1B4C\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBB-\\\\u1BBD\\\\uA989-\\\\uA98B\\\\uA98F-\\\\uA9B2\\\\uA9E0-\\\\uA9E4\\\\uA9E7-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA60-\\\\uAA6F\\\\uAA71-\\\\uAA73\\\\uAA7A\\\\uAA7E\\\\uAA7F\\\\uAAE0-\\\\uAAEA\\\\uABC0-\\\\uABDA]|\\\\uD802[\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE35]|\\\\uD804[\\\\uDD03-\\\\uDD26\\\\uDD44\\\\uDD47\\\\uDF80-\\\\uDF89\\\\uDF8B\\\\uDF8E\\\\uDF90-\\\\uDFB5]|\\\\uD806[\\\\uDD00-\\\\uDD06\\\\uDD09\\\\uDD0C-\\\\uDD13\\\\uDD15\\\\uDD16\\\\uDD18-\\\\uDD2F\\\\uDE00\\\\uDE0B-\\\\uDE32\\\\uDE50\\\\uDE5C-\\\\uDE83]|\\\\uD807[\\\\uDF04-\\\\uDF10\\\\uDF12-\\\\uDF33])\",\n\t\t\t\t\"$Prepend\": \"(?:[\\\\u0600-\\\\u0605\\\\u06DD\\\\u070F\\\\u0890\\\\u0891\\\\u08E2\\\\u0D4E]|\\\\uD804[\\\\uDCBD\\\\uDCCD\\\\uDDC2\\\\uDDC3\\\\uDFD1]|\\\\uD806[\\\\uDD3F\\\\uDD41\\\\uDE84-\\\\uDE89]|\\\\uD807[\\\\uDD46\\\\uDF02])\",\n\t\t\t\t\"$RI\": \"(?:\\\\uD83C[\\\\uDDE6-\\\\uDDFF])\",\n\t\t\t\t\"$SpacingMark\": \"(?:[\\\\u0903\\\\u093B\\\\u093E-\\\\u0940\\\\u0949-\\\\u094C\\\\u094E\\\\u094F\\\\u0982\\\\u0983\\\\u09BF\\\\u09C0\\\\u09C7\\\\u09C8\\\\u09CB\\\\u09CC\\\\u0A03\\\\u0A3E-\\\\u0A40\\\\u0A83\\\\u0ABE-\\\\u0AC0\\\\u0AC9\\\\u0ACB\\\\u0ACC\\\\u0B02\\\\u0B03\\\\u0B40\\\\u0B47\\\\u0B48\\\\u0B4B\\\\u0B4C\\\\u0BBF\\\\u0BC1\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCC\\\\u0C01-\\\\u0C03\\\\u0C41-\\\\u0C44\\\\u0C82\\\\u0C83\\\\u0CBE\\\\u0CC1\\\\u0CC3\\\\u0CC4\\\\u0CF3\\\\u0D02\\\\u0D03\\\\u0D3F\\\\u0D40\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4C\\\\u0D82\\\\u0D83\\\\u0DD0\\\\u0DD1\\\\u0DD8-\\\\u0DDE\\\\u0DF2\\\\u0DF3\\\\u0E33\\\\u0EB3\\\\u0F3E\\\\u0F3F\\\\u0F7F\\\\u1031\\\\u103B\\\\u103C\\\\u1056\\\\u1057\\\\u1084\\\\u17B6\\\\u17BE-\\\\u17C5\\\\u17C7\\\\u17C8\\\\u1923-\\\\u1926\\\\u1929-\\\\u192B\\\\u1930\\\\u1931\\\\u1933-\\\\u1938\\\\u1A19\\\\u1A1A\\\\u1A55\\\\u1A57\\\\u1A6D-\\\\u1A72\\\\u1B04\\\\u1B3E-\\\\u1B41\\\\u1B82\\\\u1BA1\\\\u1BA6\\\\u1BA7\\\\u1BE7\\\\u1BEA-\\\\u1BEC\\\\u1BEE\\\\u1C24-\\\\u1C2B\\\\u1C34\\\\u1C35\\\\u1CE1\\\\u1CF7\\\\uA823\\\\uA824\\\\uA827\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C3\\\\uA952\\\\uA983\\\\uA9B4\\\\uA9B5\\\\uA9BA\\\\uA9BB\\\\uA9BE\\\\uA9BF\\\\uAA2F\\\\uAA30\\\\uAA33\\\\uAA34\\\\uAA4D\\\\uAAEB\\\\uAAEE\\\\uAAEF\\\\uAAF5\\\\uABE3\\\\uABE4\\\\uABE6\\\\uABE7\\\\uABE9\\\\uABEA\\\\uABEC]|\\\\uD804[\\\\uDC00\\\\uDC02\\\\uDC82\\\\uDCB0-\\\\uDCB2\\\\uDCB7\\\\uDCB8\\\\uDD2C\\\\uDD45\\\\uDD46\\\\uDD82\\\\uDDB3-\\\\uDDB5\\\\uDDBF\\\\uDDCE\\\\uDE2C-\\\\uDE2E\\\\uDE32\\\\uDE33\\\\uDEE0-\\\\uDEE2\\\\uDF02\\\\uDF03\\\\uDF3F\\\\uDF41-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B\\\\uDF4C\\\\uDF62\\\\uDF63\\\\uDFB9\\\\uDFBA\\\\uDFCA\\\\uDFCC\\\\uDFCD]|\\\\uD805[\\\\uDC35-\\\\uDC37\\\\uDC40\\\\uDC41\\\\uDC45\\\\uDCB1\\\\uDCB2\\\\uDCB9\\\\uDCBB\\\\uDCBC\\\\uDCBE\\\\uDCC1\\\\uDDB0\\\\uDDB1\\\\uDDB8-\\\\uDDBB\\\\uDDBE\\\\uDE30-\\\\uDE32\\\\uDE3B\\\\uDE3C\\\\uDE3E\\\\uDEAC\\\\uDEAE\\\\uDEAF\\\\uDF1E\\\\uDF26]|\\\\uD806[\\\\uDC2C-\\\\uDC2E\\\\uDC38\\\\uDD31-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD40\\\\uDD42\\\\uDDD1-\\\\uDDD3\\\\uDDDC-\\\\uDDDF\\\\uDDE4\\\\uDE39\\\\uDE57\\\\uDE58\\\\uDE97\\\\uDF61\\\\uDF65\\\\uDF67]|\\\\uD807[\\\\uDC2F\\\\uDC3E\\\\uDCA9\\\\uDCB1\\\\uDCB4\\\\uDD8A-\\\\uDD8E\\\\uDD93\\\\uDD94\\\\uDD96\\\\uDEF5\\\\uDEF6\\\\uDF03\\\\uDF34\\\\uDF35\\\\uDF3E\\\\uDF3F]|\\\\uD818[\\\\uDD2A-\\\\uDD2C]|\\\\uD81B[\\\\uDF51-\\\\uDF87])\",\n\t\t\t\t\"$T\": \"[\\\\u11A8-\\\\u11FF\\\\uD7CB-\\\\uD7FB]\",\n\t\t\t\t\"$V\": \"(?:[\\\\u1160-\\\\u11A7\\\\uD7B0-\\\\uD7C6]|\\\\uD81B[\\\\uDD63\\\\uDD67-\\\\uDD6A])\",\n\t\t\t\t\"$XX\": \"[\\\\0-\\\\uD7FF\\\\uE000-\\\\uFFFF]\",\n\t\t\t\t\"$ZWJ\": \"\\\\u200D\"\n\t\t\t}\n\t\t},\n\t\t\"sentence\": {\n\t\t\t\"segmentRules\": {\n\t\t\t\t\"10\": {\n\t\t\t\t\t\"after\": \"($Sp|$ParaSep)\",\n\t\t\t\t\t\"before\": \"$SATerm$Close*$Sp*(?:$Extend|$Format)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"11\": {\n\t\t\t\t\t\"before\": \"$SATerm$Close*$Sp*$ParaSep?(?:$Extend|$Format)*\",\n\t\t\t\t\t\"breaks\": true\n\t\t\t\t},\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"after\": \"$LF\",\n\t\t\t\t\t\"before\": \"$CR\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"before\": \"$ParaSep(?:$Extend|$Format)*\",\n\t\t\t\t\t\"breaks\": true\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"after\": \"(?:$Extend|$Format)\",\n\t\t\t\t\t\"before\": \"(?:(?!(?:$ParaSep))(?:[\\\\0-\\\\uD7FF\\\\uE000-\\\\uFFFF]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF]))\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"6\": {\n\t\t\t\t\t\"after\": \"$Numeric\",\n\t\t\t\t\t\"before\": \"$ATerm(?:$Extend|$Format)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"7\": {\n\t\t\t\t\t\"after\": \"$Upper\",\n\t\t\t\t\t\"before\": \"($Upper|$Lower)$ATerm(?:$Extend|$Format)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"8\": {\n\t\t\t\t\t\"after\": \"(?:(?!$OLetter$Upper$Lower$ParaSep$SATerm))*$Lower\",\n\t\t\t\t\t\"before\": \"$ATerm$Close*$Sp*(?:$Extend|$Format)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"8.1\": {\n\t\t\t\t\t\"after\": \"($SContinue|$SATerm)\",\n\t\t\t\t\t\"before\": \"$SATerm$Close*$Sp*(?:$Extend|$Format)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"9\": {\n\t\t\t\t\t\"after\": \"($Close|$Sp|$ParaSep)\",\n\t\t\t\t\t\"before\": \"$SATerm$Close*(?:$Extend|$Format)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"998\": {\n\t\t\t\t\t\"after\": \"$Any\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"suppressions\": [],\n\t\t\t\"variables\": {\n\t\t\t\t\"$ATerm\": \"[\\\\.\\\\u2024\\\\uFE52\\\\uFF0E]\",\n\t\t\t\t\"$Any\": \"(?:[\\\\0-\\\\uD7FF\\\\uE000-\\\\uFFFF]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF]|[\\\\uD800-\\\\uDBFF](?![\\\\uDC00-\\\\uDFFF])|(?:[^\\\\uD800-\\\\uDBFF]|^)[\\\\uDC00-\\\\uDFFF])\",\n\t\t\t\t\"$CR\": \"\\\\r\",\n\t\t\t\t\"$Close\": \"(?:[\\\"'-\\\\)\\\\[\\\\]\\\\{\\\\}\\\\xAB\\\\xBB\\\\u0F3A-\\\\u0F3D\\\\u169B\\\\u169C\\\\u2018-\\\\u201F\\\\u2039\\\\u203A\\\\u2045\\\\u2046\\\\u207D\\\\u207E\\\\u208D\\\\u208E\\\\u2308-\\\\u230B\\\\u2329\\\\u232A\\\\u275B-\\\\u2760\\\\u2768-\\\\u2775\\\\u27C5\\\\u27C6\\\\u27E6-\\\\u27EF\\\\u2983-\\\\u2998\\\\u29D8-\\\\u29DB\\\\u29FC\\\\u29FD\\\\u2E00-\\\\u2E0D\\\\u2E1C\\\\u2E1D\\\\u2E20-\\\\u2E29\\\\u2E42\\\\u2E55-\\\\u2E5C\\\\u3008-\\\\u3011\\\\u3014-\\\\u301B\\\\u301D-\\\\u301F\\\\uFD3E\\\\uFD3F\\\\uFE17\\\\uFE18\\\\uFE35-\\\\uFE44\\\\uFE47\\\\uFE48\\\\uFE59-\\\\uFE5E\\\\uFF08\\\\uFF09\\\\uFF3B\\\\uFF3D\\\\uFF5B\\\\uFF5D\\\\uFF5F\\\\uFF60\\\\uFF62\\\\uFF63]|\\\\uD83D[\\\\uDE76-\\\\uDE78])\",\n\t\t\t\t\"$Extend\": \"(?:[\\\\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\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0897-\\\\u089F\\\\u08CA-\\\\u08E1\\\\u08E3-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\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-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180D\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ADD\\\\u1AE0-\\\\u1AEB\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C\\\\u200D\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\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-\\\\uFE2F\\\\uFF9E\\\\uFF9F]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDD69-\\\\uDD6D\\\\uDEAB\\\\uDEAC\\\\uDEFA-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCC2\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74\\\\uDFB8-\\\\uDFC0\\\\uDFC2\\\\uDFC5\\\\uDFC7-\\\\uDFCA\\\\uDFCC-\\\\uDFD0\\\\uDFD2\\\\uDFE1\\\\uDFE2]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99\\\\uDF60-\\\\uDF67]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42\\\\uDF5A]|\\\\uD80D[\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD818[\\\\uDD1E-\\\\uDD2F]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF\\\\uDDEE\\\\uDDEF\\\\uDEE3\\\\uDEE6\\\\uDEEE\\\\uDEEF\\\\uDEF5]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])\",\n\t\t\t\t\"$Format\": \"(?:[\\\\xAD\\\\u061C\\\\u070F\\\\u180E\\\\u200B\\\\u200E\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\uFEFF\\\\uFFF9-\\\\uFFFB]|\\\\uD80D[\\\\uDC30-\\\\uDC3F]|\\\\uD82F[\\\\uDCA0-\\\\uDCA3]|\\\\uD834[\\\\uDD73-\\\\uDD7A]|\\\\uDB40\\\\uDC01)\",\n\t\t\t\t\"$LF\": \"\\\\n\",\n\t\t\t\t\"$Lower\": \"(?:[a-z\\\\xAA\\\\xB5\\\\xBA\\\\xDF-\\\\xF6\\\\xF8-\\\\xFF\\\\u0101\\\\u0103\\\\u0105\\\\u0107\\\\u0109\\\\u010B\\\\u010D\\\\u010F\\\\u0111\\\\u0113\\\\u0115\\\\u0117\\\\u0119\\\\u011B\\\\u011D\\\\u011F\\\\u0121\\\\u0123\\\\u0125\\\\u0127\\\\u0129\\\\u012B\\\\u012D\\\\u012F\\\\u0131\\\\u0133\\\\u0135\\\\u0137\\\\u0138\\\\u013A\\\\u013C\\\\u013E\\\\u0140\\\\u0142\\\\u0144\\\\u0146\\\\u0148\\\\u0149\\\\u014B\\\\u014D\\\\u014F\\\\u0151\\\\u0153\\\\u0155\\\\u0157\\\\u0159\\\\u015B\\\\u015D\\\\u015F\\\\u0161\\\\u0163\\\\u0165\\\\u0167\\\\u0169\\\\u016B\\\\u016D\\\\u016F\\\\u0171\\\\u0173\\\\u0175\\\\u0177\\\\u017A\\\\u017C\\\\u017E-\\\\u0180\\\\u0183\\\\u0185\\\\u0188\\\\u018C\\\\u018D\\\\u0192\\\\u0195\\\\u0199-\\\\u019B\\\\u019E\\\\u01A1\\\\u01A3\\\\u01A5\\\\u01A8\\\\u01AA\\\\u01AB\\\\u01AD\\\\u01B0\\\\u01B4\\\\u01B6\\\\u01B9\\\\u01BA\\\\u01BD-\\\\u01BF\\\\u01C6\\\\u01C9\\\\u01CC\\\\u01CE\\\\u01D0\\\\u01D2\\\\u01D4\\\\u01D6\\\\u01D8\\\\u01DA\\\\u01DC\\\\u01DD\\\\u01DF\\\\u01E1\\\\u01E3\\\\u01E5\\\\u01E7\\\\u01E9\\\\u01EB\\\\u01ED\\\\u01EF\\\\u01F0\\\\u01F3\\\\u01F5\\\\u01F9\\\\u01FB\\\\u01FD\\\\u01FF\\\\u0201\\\\u0203\\\\u0205\\\\u0207\\\\u0209\\\\u020B\\\\u020D\\\\u020F\\\\u0211\\\\u0213\\\\u0215\\\\u0217\\\\u0219\\\\u021B\\\\u021D\\\\u021F\\\\u0221\\\\u0223\\\\u0225\\\\u0227\\\\u0229\\\\u022B\\\\u022D\\\\u022F\\\\u0231\\\\u0233-\\\\u0239\\\\u023C\\\\u023F\\\\u0240\\\\u0242\\\\u0247\\\\u0249\\\\u024B\\\\u024D\\\\u024F-\\\\u0293\\\\u0296-\\\\u02B8\\\\u02C0\\\\u02C1\\\\u02E0-\\\\u02E4\\\\u0371\\\\u0373\\\\u0377\\\\u037A-\\\\u037D\\\\u0390\\\\u03AC-\\\\u03CE\\\\u03D0\\\\u03D1\\\\u03D5-\\\\u03D7\\\\u03D9\\\\u03DB\\\\u03DD\\\\u03DF\\\\u03E1\\\\u03E3\\\\u03E5\\\\u03E7\\\\u03E9\\\\u03EB\\\\u03ED\\\\u03EF-\\\\u03F3\\\\u03F5\\\\u03F8\\\\u03FB\\\\u03FC\\\\u0430-\\\\u045F\\\\u0461\\\\u0463\\\\u0465\\\\u0467\\\\u0469\\\\u046B\\\\u046D\\\\u046F\\\\u0471\\\\u0473\\\\u0475\\\\u0477\\\\u0479\\\\u047B\\\\u047D\\\\u047F\\\\u0481\\\\u048B\\\\u048D\\\\u048F\\\\u0491\\\\u0493\\\\u0495\\\\u0497\\\\u0499\\\\u049B\\\\u049D\\\\u049F\\\\u04A1\\\\u04A3\\\\u04A5\\\\u04A7\\\\u04A9\\\\u04AB\\\\u04AD\\\\u04AF\\\\u04B1\\\\u04B3\\\\u04B5\\\\u04B7\\\\u04B9\\\\u04BB\\\\u04BD\\\\u04BF\\\\u04C2\\\\u04C4\\\\u04C6\\\\u04C8\\\\u04CA\\\\u04CC\\\\u04CE\\\\u04CF\\\\u04D1\\\\u04D3\\\\u04D5\\\\u04D7\\\\u04D9\\\\u04DB\\\\u04DD\\\\u04DF\\\\u04E1\\\\u04E3\\\\u04E5\\\\u04E7\\\\u04E9\\\\u04EB\\\\u04ED\\\\u04EF\\\\u04F1\\\\u04F3\\\\u04F5\\\\u04F7\\\\u04F9\\\\u04FB\\\\u04FD\\\\u04FF\\\\u0501\\\\u0503\\\\u0505\\\\u0507\\\\u0509\\\\u050B\\\\u050D\\\\u050F\\\\u0511\\\\u0513\\\\u0515\\\\u0517\\\\u0519\\\\u051B\\\\u051D\\\\u051F\\\\u0521\\\\u0523\\\\u0525\\\\u0527\\\\u0529\\\\u052B\\\\u052D\\\\u052F\\\\u0560-\\\\u0588\\\\u10FC\\\\u13F8-\\\\u13FD\\\\u1C80-\\\\u1C88\\\\u1C8A\\\\u1D00-\\\\u1DBF\\\\u1E01\\\\u1E03\\\\u1E05\\\\u1E07\\\\u1E09\\\\u1E0B\\\\u1E0D\\\\u1E0F\\\\u1E11\\\\u1E13\\\\u1E15\\\\u1E17\\\\u1E19\\\\u1E1B\\\\u1E1D\\\\u1E1F\\\\u1E21\\\\u1E23\\\\u1E25\\\\u1E27\\\\u1E29\\\\u1E2B\\\\u1E2D\\\\u1E2F\\\\u1E31\\\\u1E33\\\\u1E35\\\\u1E37\\\\u1E39\\\\u1E3B\\\\u1E3D\\\\u1E3F\\\\u1E41\\\\u1E43\\\\u1E45\\\\u1E47\\\\u1E49\\\\u1E4B\\\\u1E4D\\\\u1E4F\\\\u1E51\\\\u1E53\\\\u1E55\\\\u1E57\\\\u1E59\\\\u1E5B\\\\u1E5D\\\\u1E5F\\\\u1E61\\\\u1E63\\\\u1E65\\\\u1E67\\\\u1E69\\\\u1E6B\\\\u1E6D\\\\u1E6F\\\\u1E71\\\\u1E73\\\\u1E75\\\\u1E77\\\\u1E79\\\\u1E7B\\\\u1E7D\\\\u1E7F\\\\u1E81\\\\u1E83\\\\u1E85\\\\u1E87\\\\u1E89\\\\u1E8B\\\\u1E8D\\\\u1E8F\\\\u1E91\\\\u1E93\\\\u1E95-\\\\u1E9D\\\\u1E9F\\\\u1EA1\\\\u1EA3\\\\u1EA5\\\\u1EA7\\\\u1EA9\\\\u1EAB\\\\u1EAD\\\\u1EAF\\\\u1EB1\\\\u1EB3\\\\u1EB5\\\\u1EB7\\\\u1EB9\\\\u1EBB\\\\u1EBD\\\\u1EBF\\\\u1EC1\\\\u1EC3\\\\u1EC5\\\\u1EC7\\\\u1EC9\\\\u1ECB\\\\u1ECD\\\\u1ECF\\\\u1ED1\\\\u1ED3\\\\u1ED5\\\\u1ED7\\\\u1ED9\\\\u1EDB\\\\u1EDD\\\\u1EDF\\\\u1EE1\\\\u1EE3\\\\u1EE5\\\\u1EE7\\\\u1EE9\\\\u1EEB\\\\u1EED\\\\u1EEF\\\\u1EF1\\\\u1EF3\\\\u1EF5\\\\u1EF7\\\\u1EF9\\\\u1EFB\\\\u1EFD\\\\u1EFF-\\\\u1F07\\\\u1F10-\\\\u1F15\\\\u1F20-\\\\u1F27\\\\u1F30-\\\\u1F37\\\\u1F40-\\\\u1F45\\\\u1F50-\\\\u1F57\\\\u1F60-\\\\u1F67\\\\u1F70-\\\\u1F7D\\\\u1F80-\\\\u1F87\\\\u1F90-\\\\u1F97\\\\u1FA0-\\\\u1FA7\\\\u1FB0-\\\\u1FB4\\\\u1FB6\\\\u1FB7\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6\\\\u1FC7\\\\u1FD0-\\\\u1FD3\\\\u1FD6\\\\u1FD7\\\\u1FE0-\\\\u1FE7\\\\u1FF2-\\\\u1FF4\\\\u1FF6\\\\u1FF7\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u210A\\\\u210E\\\\u210F\\\\u2113\\\\u212F\\\\u2134\\\\u2139\\\\u213C\\\\u213D\\\\u2146-\\\\u2149\\\\u214E\\\\u2170-\\\\u217F\\\\u2184\\\\u24D0-\\\\u24E9\\\\u2C30-\\\\u2C5F\\\\u2C61\\\\u2C65\\\\u2C66\\\\u2C68\\\\u2C6A\\\\u2C6C\\\\u2C71\\\\u2C73\\\\u2C74\\\\u2C76-\\\\u2C7D\\\\u2C81\\\\u2C83\\\\u2C85\\\\u2C87\\\\u2C89\\\\u2C8B\\\\u2C8D\\\\u2C8F\\\\u2C91\\\\u2C93\\\\u2C95\\\\u2C97\\\\u2C99\\\\u2C9B\\\\u2C9D\\\\u2C9F\\\\u2CA1\\\\u2CA3\\\\u2CA5\\\\u2CA7\\\\u2CA9\\\\u2CAB\\\\u2CAD\\\\u2CAF\\\\u2CB1\\\\u2CB3\\\\u2CB5\\\\u2CB7\\\\u2CB9\\\\u2CBB\\\\u2CBD\\\\u2CBF\\\\u2CC1\\\\u2CC3\\\\u2CC5\\\\u2CC7\\\\u2CC9\\\\u2CCB\\\\u2CCD\\\\u2CCF\\\\u2CD1\\\\u2CD3\\\\u2CD5\\\\u2CD7\\\\u2CD9\\\\u2CDB\\\\u2CDD\\\\u2CDF\\\\u2CE1\\\\u2CE3\\\\u2CE4\\\\u2CEC\\\\u2CEE\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\uA641\\\\uA643\\\\uA645\\\\uA647\\\\uA649\\\\uA64B\\\\uA64D\\\\uA64F\\\\uA651\\\\uA653\\\\uA655\\\\uA657\\\\uA659\\\\uA65B\\\\uA65D\\\\uA65F\\\\uA661\\\\uA663\\\\uA665\\\\uA667\\\\uA669\\\\uA66B\\\\uA66D\\\\uA681\\\\uA683\\\\uA685\\\\uA687\\\\uA689\\\\uA68B\\\\uA68D\\\\uA68F\\\\uA691\\\\uA693\\\\uA695\\\\uA697\\\\uA699\\\\uA69B-\\\\uA69D\\\\uA723\\\\uA725\\\\uA727\\\\uA729\\\\uA72B\\\\uA72D\\\\uA72F-\\\\uA731\\\\uA733\\\\uA735\\\\uA737\\\\uA739\\\\uA73B\\\\uA73D\\\\uA73F\\\\uA741\\\\uA743\\\\uA745\\\\uA747\\\\uA749\\\\uA74B\\\\uA74D\\\\uA74F\\\\uA751\\\\uA753\\\\uA755\\\\uA757\\\\uA759\\\\uA75B\\\\uA75D\\\\uA75F\\\\uA761\\\\uA763\\\\uA765\\\\uA767\\\\uA769\\\\uA76B\\\\uA76D\\\\uA76F-\\\\uA778\\\\uA77A\\\\uA77C\\\\uA77F\\\\uA781\\\\uA783\\\\uA785\\\\uA787\\\\uA78C\\\\uA78E\\\\uA791\\\\uA793-\\\\uA795\\\\uA797\\\\uA799\\\\uA79B\\\\uA79D\\\\uA79F\\\\uA7A1\\\\uA7A3\\\\uA7A5\\\\uA7A7\\\\uA7A9\\\\uA7AF\\\\uA7B5\\\\uA7B7\\\\uA7B9\\\\uA7BB\\\\uA7BD\\\\uA7BF\\\\uA7C1\\\\uA7C3\\\\uA7C8\\\\uA7CA\\\\uA7CD\\\\uA7CF\\\\uA7D1\\\\uA7D3\\\\uA7D5\\\\uA7D7\\\\uA7D9\\\\uA7DB\\\\uA7F1-\\\\uA7F4\\\\uA7F6\\\\uA7F8-\\\\uA7FA\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB69\\\\uAB70-\\\\uABBF\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFF41-\\\\uFF5A]|\\\\uD801[\\\\uDC28-\\\\uDC4F\\\\uDCD8-\\\\uDCFB\\\\uDD97-\\\\uDDA1\\\\uDDA3-\\\\uDDB1\\\\uDDB3-\\\\uDDB9\\\\uDDBB\\\\uDDBC\\\\uDF80\\\\uDF83-\\\\uDF85\\\\uDF87-\\\\uDFB0\\\\uDFB2-\\\\uDFBA]|\\\\uD803[\\\\uDCC0-\\\\uDCF2\\\\uDD70-\\\\uDD85]|\\\\uD806[\\\\uDCC0-\\\\uDCDF]|\\\\uD81B[\\\\uDE60-\\\\uDE7F\\\\uDEBB-\\\\uDED3]|\\\\uD835[\\\\uDC1A-\\\\uDC33\\\\uDC4E-\\\\uDC54\\\\uDC56-\\\\uDC67\\\\uDC82-\\\\uDC9B\\\\uDCB6-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDCCF\\\\uDCEA-\\\\uDD03\\\\uDD1E-\\\\uDD37\\\\uDD52-\\\\uDD6B\\\\uDD86-\\\\uDD9F\\\\uDDBA-\\\\uDDD3\\\\uDDEE-\\\\uDE07\\\\uDE22-\\\\uDE3B\\\\uDE56-\\\\uDE6F\\\\uDE8A-\\\\uDEA5\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEE1\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF1B\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF55\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDF8F\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFC9\\\\uDFCB]|\\\\uD837[\\\\uDF00-\\\\uDF09\\\\uDF0B-\\\\uDF1E\\\\uDF25-\\\\uDF2A]|\\\\uD838[\\\\uDC30-\\\\uDC6D]|\\\\uD83A[\\\\uDD22-\\\\uDD43])\",\n\t\t\t\t\"$Numeric\": \"(?:[0-9\\\\u0600-\\\\u0605\\\\u0660-\\\\u0669\\\\u066B\\\\u066C\\\\u06DD\\\\u06F0-\\\\u06F9\\\\u07C0-\\\\u07C9\\\\u0890\\\\u0891\\\\u08E2\\\\u0966-\\\\u096F\\\\u09E6-\\\\u09EF\\\\u0A66-\\\\u0A6F\\\\u0AE6-\\\\u0AEF\\\\u0B66-\\\\u0B6F\\\\u0BE6-\\\\u0BEF\\\\u0C66-\\\\u0C6F\\\\u0CE6-\\\\u0CEF\\\\u0D66-\\\\u0D6F\\\\u0DE6-\\\\u0DEF\\\\u0E50-\\\\u0E59\\\\u0ED0-\\\\u0ED9\\\\u0F20-\\\\u0F29\\\\u1040-\\\\u1049\\\\u1090-\\\\u1099\\\\u17E0-\\\\u17E9\\\\u1810-\\\\u1819\\\\u1946-\\\\u194F\\\\u19D0-\\\\u19DA\\\\u1A80-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1B50-\\\\u1B59\\\\u1BB0-\\\\u1BB9\\\\u1C40-\\\\u1C49\\\\u1C50-\\\\u1C59\\\\uA620-\\\\uA629\\\\uA8D0-\\\\uA8D9\\\\uA900-\\\\uA909\\\\uA9D0-\\\\uA9D9\\\\uA9F0-\\\\uA9F9\\\\uAA50-\\\\uAA59\\\\uABF0-\\\\uABF9\\\\uFF10-\\\\uFF19]|\\\\uD801[\\\\uDCA0-\\\\uDCA9]|[\\\\uD803\\\\uD818][\\\\uDD30-\\\\uDD39\\\\uDD40-\\\\uDD49]|\\\\uD804[\\\\uDC66-\\\\uDC6F\\\\uDCBD\\\\uDCCD\\\\uDCF0-\\\\uDCF9\\\\uDD36-\\\\uDD3F\\\\uDDD0-\\\\uDDD9\\\\uDEF0-\\\\uDEF9]|\\\\uD805[\\\\uDC50-\\\\uDC59\\\\uDCD0-\\\\uDCD9\\\\uDE50-\\\\uDE59\\\\uDEC0-\\\\uDEC9\\\\uDED0-\\\\uDEE3\\\\uDF30-\\\\uDF39]|\\\\uD806[\\\\uDCE0-\\\\uDCE9\\\\uDD50-\\\\uDD59\\\\uDFF0-\\\\uDFF9]|\\\\uD807[\\\\uDC50-\\\\uDC59\\\\uDD50-\\\\uDD59\\\\uDDA0-\\\\uDDA9\\\\uDDE0-\\\\uDDE9\\\\uDF50-\\\\uDF59]|\\\\uD81A[\\\\uDE60-\\\\uDE69\\\\uDEC0-\\\\uDEC9\\\\uDF50-\\\\uDF59]|\\\\uD81B[\\\\uDD70-\\\\uDD79]|\\\\uD833[\\\\uDCF0-\\\\uDCF9]|\\\\uD835[\\\\uDFCE-\\\\uDFFF]|\\\\uD838[\\\\uDD40-\\\\uDD49\\\\uDEF0-\\\\uDEF9]|\\\\uD839[\\\\uDCF0-\\\\uDCF9\\\\uDDF1-\\\\uDDFA]|\\\\uD83A[\\\\uDD50-\\\\uDD59]|\\\\uD83E[\\\\uDFF0-\\\\uDFF9])\",\n\t\t\t\t\"$OLetter\": \"(?:[\\\\u01BB\\\\u01C0-\\\\u01C3\\\\u0294\\\\u0295\\\\u02B9-\\\\u02BF\\\\u02C6-\\\\u02D1\\\\u02EC\\\\u02EE\\\\u0374\\\\u0559\\\\u05D0-\\\\u05EA\\\\u05EF-\\\\u05F3\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u0860-\\\\u086A\\\\u0870-\\\\u0887\\\\u0889-\\\\u088F\\\\u08A0-\\\\u08C9\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u09FC\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0AF9\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58-\\\\u0C5A\\\\u0C5C\\\\u0C5D\\\\u0C60\\\\u0C61\\\\u0C80\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDC-\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D04-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D54-\\\\u0D56\\\\u0D5F-\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E86-\\\\u0E8A\\\\u0E8C-\\\\u0EA3\\\\u0EA5\\\\u0EA7-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10D0-\\\\u10FA\\\\u10FD-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u1711\\\\u171F-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1878\\\\u1880-\\\\u1884\\\\u1887-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4C\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1C90-\\\\u1CBA\\\\u1CBD-\\\\u1CBF\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF3\\\\u1CF5\\\\u1CF6\\\\u1CFA\\\\u2135-\\\\u2138\\\\u2180-\\\\u2182\\\\u2185-\\\\u2188\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312F\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BF\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DBF\\\\u4E00-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA66E\\\\uA67F\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA788\\\\uA78F\\\\uA7F7\\\\uA7FB-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA8FE\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uABC0-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF66-\\\\uFF9D\\\\uFFA0-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDF00-\\\\uDF1F\\\\uDF2D-\\\\uDF4A\\\\uDF50-\\\\uDF75\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC50-\\\\uDC9D\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDDC0-\\\\uDDF3\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67\\\\uDF81\\\\uDF82]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD40-\\\\uDD59\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE35\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE4\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDD00-\\\\uDD23\\\\uDD4A-\\\\uDD4F\\\\uDD6F\\\\uDE80-\\\\uDEA9\\\\uDEB0\\\\uDEB1\\\\uDEC2-\\\\uDEC7\\\\uDF00-\\\\uDF1C\\\\uDF27\\\\uDF30-\\\\uDF45\\\\uDF70-\\\\uDF81\\\\uDFB0-\\\\uDFC4\\\\uDFE0-\\\\uDFF6]|\\\\uD804[\\\\uDC03-\\\\uDC37\\\\uDC71\\\\uDC72\\\\uDC75\\\\uDC83-\\\\uDCAF\\\\uDCD0-\\\\uDCE8\\\\uDD03-\\\\uDD26\\\\uDD44\\\\uDD47\\\\uDD50-\\\\uDD72\\\\uDD76\\\\uDD83-\\\\uDDB2\\\\uDDC1-\\\\uDDC4\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE2B\\\\uDE3F\\\\uDE40\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEDE\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3D\\\\uDF50\\\\uDF5D-\\\\uDF61\\\\uDF80-\\\\uDF89\\\\uDF8B\\\\uDF8E\\\\uDF90-\\\\uDFB5\\\\uDFB7\\\\uDFD1\\\\uDFD3]|\\\\uD805[\\\\uDC00-\\\\uDC34\\\\uDC47-\\\\uDC4A\\\\uDC5F-\\\\uDC61\\\\uDC80-\\\\uDCAF\\\\uDCC4\\\\uDCC5\\\\uDCC7\\\\uDD80-\\\\uDDAE\\\\uDDD8-\\\\uDDDB\\\\uDE00-\\\\uDE2F\\\\uDE44\\\\uDE80-\\\\uDEAA\\\\uDEB8\\\\uDF00-\\\\uDF1A\\\\uDF40-\\\\uDF46]|\\\\uD806[\\\\uDC00-\\\\uDC2B\\\\uDCFF-\\\\uDD06\\\\uDD09\\\\uDD0C-\\\\uDD13\\\\uDD15\\\\uDD16\\\\uDD18-\\\\uDD2F\\\\uDD3F\\\\uDD41\\\\uDDA0-\\\\uDDA7\\\\uDDAA-\\\\uDDD0\\\\uDDE1\\\\uDDE3\\\\uDE00\\\\uDE0B-\\\\uDE32\\\\uDE3A\\\\uDE50\\\\uDE5C-\\\\uDE89\\\\uDE9D\\\\uDEB0-\\\\uDEF8\\\\uDFC0-\\\\uDFE0]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC2E\\\\uDC40\\\\uDC72-\\\\uDC8F\\\\uDD00-\\\\uDD06\\\\uDD08\\\\uDD09\\\\uDD0B-\\\\uDD30\\\\uDD46\\\\uDD60-\\\\uDD65\\\\uDD67\\\\uDD68\\\\uDD6A-\\\\uDD89\\\\uDD98\\\\uDDB0-\\\\uDDDB\\\\uDEE0-\\\\uDEF2\\\\uDF02\\\\uDF04-\\\\uDF10\\\\uDF12-\\\\uDF33\\\\uDFB0]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|\\\\uD80B[\\\\uDF90-\\\\uDFF0]|[\\\\uD80C\\\\uD80E\\\\uD80F\\\\uD81C-\\\\uD822\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86D\\\\uD86F-\\\\uD872\\\\uD874-\\\\uD879\\\\uD880-\\\\uD883\\\\uD885-\\\\uD88C][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2F\\\\uDC41-\\\\uDC46\\\\uDC60-\\\\uDFFF]|\\\\uD810[\\\\uDC00-\\\\uDFFA]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD818[\\\\uDD00-\\\\uDD1D]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDE70-\\\\uDEBE\\\\uDED0-\\\\uDEED\\\\uDF00-\\\\uDF2F\\\\uDF40-\\\\uDF43\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDD40-\\\\uDD6C\\\\uDF00-\\\\uDF4A\\\\uDF50\\\\uDF93-\\\\uDF9F\\\\uDFE0\\\\uDFE1\\\\uDFE3\\\\uDFF2-\\\\uDFF6]|\\\\uD823[\\\\uDC00-\\\\uDCD5\\\\uDCFF-\\\\uDD1E\\\\uDD80-\\\\uDDF2]|\\\\uD82B[\\\\uDFF0-\\\\uDFF3\\\\uDFF5-\\\\uDFFB\\\\uDFFD\\\\uDFFE]|\\\\uD82C[\\\\uDC00-\\\\uDD22\\\\uDD32\\\\uDD50-\\\\uDD52\\\\uDD55\\\\uDD64-\\\\uDD67\\\\uDD70-\\\\uDEFB]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99]|\\\\uD837\\\\uDF0A|\\\\uD838[\\\\uDD00-\\\\uDD2C\\\\uDD37-\\\\uDD3D\\\\uDD4E\\\\uDE90-\\\\uDEAD\\\\uDEC0-\\\\uDEEB]|\\\\uD839[\\\\uDCD0-\\\\uDCEB\\\\uDDD0-\\\\uDDED\\\\uDDF0\\\\uDEC0-\\\\uDEDE\\\\uDEE0-\\\\uDEE2\\\\uDEE4\\\\uDEE5\\\\uDEE7-\\\\uDEED\\\\uDEF0-\\\\uDEF4\\\\uDEFE\\\\uDEFF\\\\uDFE0-\\\\uDFE6\\\\uDFE8-\\\\uDFEB\\\\uDFED\\\\uDFEE\\\\uDFF0-\\\\uDFFE]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDD4B]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDEDF\\\\uDF00-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D\\\\uDC20-\\\\uDFFF]|\\\\uD873[\\\\uDC00-\\\\uDEAD\\\\uDEB0-\\\\uDFFF]|\\\\uD87A[\\\\uDC00-\\\\uDFE0\\\\uDFF0-\\\\uDFFF]|\\\\uD87B[\\\\uDC00-\\\\uDE5D]|\\\\uD87E[\\\\uDC00-\\\\uDE1D]|\\\\uD884[\\\\uDC00-\\\\uDF4A\\\\uDF50-\\\\uDFFF]|\\\\uD88D[\\\\uDC00-\\\\uDC79])\",\n\t\t\t\t\"$ParaSep\": \"[\\\\n\\\\r\\\\x85\\\\u2028\\\\u2029]\",\n\t\t\t\t\"$SATerm\": \"(?:[!\\\\.\\\\?\\\\u0589\\\\u061D-\\\\u061F\\\\u06D4\\\\u0700-\\\\u0702\\\\u07F9\\\\u0837\\\\u0839\\\\u083D\\\\u083E\\\\u0964\\\\u0965\\\\u104A\\\\u104B\\\\u1362\\\\u1367\\\\u1368\\\\u166E\\\\u1735\\\\u1736\\\\u17D4\\\\u17D5\\\\u1803\\\\u1809\\\\u1944\\\\u1945\\\\u1AA8-\\\\u1AAB\\\\u1B4E\\\\u1B4F\\\\u1B5A\\\\u1B5B\\\\u1B5E\\\\u1B5F\\\\u1B7D-\\\\u1B7F\\\\u1C3B\\\\u1C3C\\\\u1C7E\\\\u1C7F\\\\u2024\\\\u203C\\\\u203D\\\\u2047-\\\\u2049\\\\u2CF9-\\\\u2CFB\\\\u2E2E\\\\u2E3C\\\\u2E53\\\\u2E54\\\\u3002\\\\uA4FF\\\\uA60E\\\\uA60F\\\\uA6F3\\\\uA6F7\\\\uA876\\\\uA877\\\\uA8CE\\\\uA8CF\\\\uA92F\\\\uA9C8\\\\uA9C9\\\\uAA5D-\\\\uAA5F\\\\uAAF0\\\\uAAF1\\\\uABEB\\\\uFE12\\\\uFE15\\\\uFE16\\\\uFE52\\\\uFE56\\\\uFE57\\\\uFF01\\\\uFF0E\\\\uFF1F\\\\uFF61]|\\\\uD802[\\\\uDE56\\\\uDE57]|\\\\uD803[\\\\uDF55-\\\\uDF59\\\\uDF86-\\\\uDF89]|\\\\uD804[\\\\uDC47\\\\uDC48\\\\uDCBE-\\\\uDCC1\\\\uDD41-\\\\uDD43\\\\uDDC5\\\\uDDC6\\\\uDDCD\\\\uDDDE\\\\uDDDF\\\\uDE38\\\\uDE39\\\\uDE3B\\\\uDE3C\\\\uDEA9\\\\uDFD4\\\\uDFD5]|\\\\uD805[\\\\uDC4B\\\\uDC4C\\\\uDDC2\\\\uDDC3\\\\uDDC9-\\\\uDDD7\\\\uDE41\\\\uDE42\\\\uDF3C-\\\\uDF3E]|\\\\uD806[\\\\uDD44\\\\uDD46\\\\uDE42\\\\uDE43\\\\uDE9B\\\\uDE9C]|\\\\uD807[\\\\uDC41\\\\uDC42\\\\uDEF7\\\\uDEF8\\\\uDF43\\\\uDF44]|\\\\uD81A[\\\\uDE6E\\\\uDE6F\\\\uDEF5\\\\uDF37\\\\uDF38\\\\uDF44]|\\\\uD81B[\\\\uDD6E\\\\uDD6F\\\\uDE98]|\\\\uD82F\\\\uDC9F|\\\\uD836\\\\uDE88)\",\n\t\t\t\t\"$SContinue\": \"[,\\\\x2D:;\\\\u037E\\\\u055D\\\\u060C\\\\u060D\\\\u07F8\\\\u1802\\\\u1808\\\\u2013\\\\u2014\\\\u3001\\\\uFE10\\\\uFE11\\\\uFE13\\\\uFE14\\\\uFE31\\\\uFE32\\\\uFE50\\\\uFE51\\\\uFE54\\\\uFE55\\\\uFE58\\\\uFE63\\\\uFF0C\\\\uFF0D\\\\uFF1A\\\\uFF1B\\\\uFF64]\",\n\t\t\t\t\"$STerm\": \"(?:[!\\\\?\\\\u0589\\\\u061D-\\\\u061F\\\\u06D4\\\\u0700-\\\\u0702\\\\u07F9\\\\u0837\\\\u0839\\\\u083D\\\\u083E\\\\u0964\\\\u0965\\\\u104A\\\\u104B\\\\u1362\\\\u1367\\\\u1368\\\\u166E\\\\u1735\\\\u1736\\\\u17D4\\\\u17D5\\\\u1803\\\\u1809\\\\u1944\\\\u1945\\\\u1AA8-\\\\u1AAB\\\\u1B4E\\\\u1B4F\\\\u1B5A\\\\u1B5B\\\\u1B5E\\\\u1B5F\\\\u1B7D-\\\\u1B7F\\\\u1C3B\\\\u1C3C\\\\u1C7E\\\\u1C7F\\\\u203C\\\\u203D\\\\u2047-\\\\u2049\\\\u2CF9-\\\\u2CFB\\\\u2E2E\\\\u2E3C\\\\u2E53\\\\u2E54\\\\u3002\\\\uA4FF\\\\uA60E\\\\uA60F\\\\uA6F3\\\\uA6F7\\\\uA876\\\\uA877\\\\uA8CE\\\\uA8CF\\\\uA92F\\\\uA9C8\\\\uA9C9\\\\uAA5D-\\\\uAA5F\\\\uAAF0\\\\uAAF1\\\\uABEB\\\\uFE12\\\\uFE15\\\\uFE16\\\\uFE56\\\\uFE57\\\\uFF01\\\\uFF1F\\\\uFF61]|\\\\uD802[\\\\uDE56\\\\uDE57]|\\\\uD803[\\\\uDF55-\\\\uDF59\\\\uDF86-\\\\uDF89]|\\\\uD804[\\\\uDC47\\\\uDC48\\\\uDCBE-\\\\uDCC1\\\\uDD41-\\\\uDD43\\\\uDDC5\\\\uDDC6\\\\uDDCD\\\\uDDDE\\\\uDDDF\\\\uDE38\\\\uDE39\\\\uDE3B\\\\uDE3C\\\\uDEA9\\\\uDFD4\\\\uDFD5]|\\\\uD805[\\\\uDC4B\\\\uDC4C\\\\uDDC2\\\\uDDC3\\\\uDDC9-\\\\uDDD7\\\\uDE41\\\\uDE42\\\\uDF3C-\\\\uDF3E]|\\\\uD806[\\\\uDD44\\\\uDD46\\\\uDE42\\\\uDE43\\\\uDE9B\\\\uDE9C]|\\\\uD807[\\\\uDC41\\\\uDC42\\\\uDEF7\\\\uDEF8\\\\uDF43\\\\uDF44]|\\\\uD81A[\\\\uDE6E\\\\uDE6F\\\\uDEF5\\\\uDF37\\\\uDF38\\\\uDF44]|\\\\uD81B[\\\\uDD6E\\\\uDD6F\\\\uDE98]|\\\\uD82F\\\\uDC9F|\\\\uD836\\\\uDE88)\",\n\t\t\t\t\"$Sep\": \"[\\\\x85\\\\u2028\\\\u2029]\",\n\t\t\t\t\"$Sp\": \"[\\\\t\\\\x0B\\\\f \\\\xA0\\\\u1680\\\\u2000-\\\\u200A\\\\u202F\\\\u205F\\\\u3000]\",\n\t\t\t\t\"$Upper\": \"(?:[A-Z\\\\xC0-\\\\xD6\\\\xD8-\\\\xDE\\\\u0100\\\\u0102\\\\u0104\\\\u0106\\\\u0108\\\\u010A\\\\u010C\\\\u010E\\\\u0110\\\\u0112\\\\u0114\\\\u0116\\\\u0118\\\\u011A\\\\u011C\\\\u011E\\\\u0120\\\\u0122\\\\u0124\\\\u0126\\\\u0128\\\\u012A\\\\u012C\\\\u012E\\\\u0130\\\\u0132\\\\u0134\\\\u0136\\\\u0139\\\\u013B\\\\u013D\\\\u013F\\\\u0141\\\\u0143\\\\u0145\\\\u0147\\\\u014A\\\\u014C\\\\u014E\\\\u0150\\\\u0152\\\\u0154\\\\u0156\\\\u0158\\\\u015A\\\\u015C\\\\u015E\\\\u0160\\\\u0162\\\\u0164\\\\u0166\\\\u0168\\\\u016A\\\\u016C\\\\u016E\\\\u0170\\\\u0172\\\\u0174\\\\u0176\\\\u0178\\\\u0179\\\\u017B\\\\u017D\\\\u0181\\\\u0182\\\\u0184\\\\u0186\\\\u0187\\\\u0189-\\\\u018B\\\\u018E-\\\\u0191\\\\u0193\\\\u0194\\\\u0196-\\\\u0198\\\\u019C\\\\u019D\\\\u019F\\\\u01A0\\\\u01A2\\\\u01A4\\\\u01A6\\\\u01A7\\\\u01A9\\\\u01AC\\\\u01AE\\\\u01AF\\\\u01B1-\\\\u01B3\\\\u01B5\\\\u01B7\\\\u01B8\\\\u01BC\\\\u01C4\\\\u01C5\\\\u01C7\\\\u01C8\\\\u01CA\\\\u01CB\\\\u01CD\\\\u01CF\\\\u01D1\\\\u01D3\\\\u01D5\\\\u01D7\\\\u01D9\\\\u01DB\\\\u01DE\\\\u01E0\\\\u01E2\\\\u01E4\\\\u01E6\\\\u01E8\\\\u01EA\\\\u01EC\\\\u01EE\\\\u01F1\\\\u01F2\\\\u01F4\\\\u01F6-\\\\u01F8\\\\u01FA\\\\u01FC\\\\u01FE\\\\u0200\\\\u0202\\\\u0204\\\\u0206\\\\u0208\\\\u020A\\\\u020C\\\\u020E\\\\u0210\\\\u0212\\\\u0214\\\\u0216\\\\u0218\\\\u021A\\\\u021C\\\\u021E\\\\u0220\\\\u0222\\\\u0224\\\\u0226\\\\u0228\\\\u022A\\\\u022C\\\\u022E\\\\u0230\\\\u0232\\\\u023A\\\\u023B\\\\u023D\\\\u023E\\\\u0241\\\\u0243-\\\\u0246\\\\u0248\\\\u024A\\\\u024C\\\\u024E\\\\u0370\\\\u0372\\\\u0376\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E\\\\u038F\\\\u0391-\\\\u03A1\\\\u03A3-\\\\u03AB\\\\u03CF\\\\u03D2-\\\\u03D4\\\\u03D8\\\\u03DA\\\\u03DC\\\\u03DE\\\\u03E0\\\\u03E2\\\\u03E4\\\\u03E6\\\\u03E8\\\\u03EA\\\\u03EC\\\\u03EE\\\\u03F4\\\\u03F7\\\\u03F9\\\\u03FA\\\\u03FD-\\\\u042F\\\\u0460\\\\u0462\\\\u0464\\\\u0466\\\\u0468\\\\u046A\\\\u046C\\\\u046E\\\\u0470\\\\u0472\\\\u0474\\\\u0476\\\\u0478\\\\u047A\\\\u047C\\\\u047E\\\\u0480\\\\u048A\\\\u048C\\\\u048E\\\\u0490\\\\u0492\\\\u0494\\\\u0496\\\\u0498\\\\u049A\\\\u049C\\\\u049E\\\\u04A0\\\\u04A2\\\\u04A4\\\\u04A6\\\\u04A8\\\\u04AA\\\\u04AC\\\\u04AE\\\\u04B0\\\\u04B2\\\\u04B4\\\\u04B6\\\\u04B8\\\\u04BA\\\\u04BC\\\\u04BE\\\\u04C0\\\\u04C1\\\\u04C3\\\\u04C5\\\\u04C7\\\\u04C9\\\\u04CB\\\\u04CD\\\\u04D0\\\\u04D2\\\\u04D4\\\\u04D6\\\\u04D8\\\\u04DA\\\\u04DC\\\\u04DE\\\\u04E0\\\\u04E2\\\\u04E4\\\\u04E6\\\\u04E8\\\\u04EA\\\\u04EC\\\\u04EE\\\\u04F0\\\\u04F2\\\\u04F4\\\\u04F6\\\\u04F8\\\\u04FA\\\\u04FC\\\\u04FE\\\\u0500\\\\u0502\\\\u0504\\\\u0506\\\\u0508\\\\u050A\\\\u050C\\\\u050E\\\\u0510\\\\u0512\\\\u0514\\\\u0516\\\\u0518\\\\u051A\\\\u051C\\\\u051E\\\\u0520\\\\u0522\\\\u0524\\\\u0526\\\\u0528\\\\u052A\\\\u052C\\\\u052E\\\\u0531-\\\\u0556\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u13A0-\\\\u13F5\\\\u1C89\\\\u1E00\\\\u1E02\\\\u1E04\\\\u1E06\\\\u1E08\\\\u1E0A\\\\u1E0C\\\\u1E0E\\\\u1E10\\\\u1E12\\\\u1E14\\\\u1E16\\\\u1E18\\\\u1E1A\\\\u1E1C\\\\u1E1E\\\\u1E20\\\\u1E22\\\\u1E24\\\\u1E26\\\\u1E28\\\\u1E2A\\\\u1E2C\\\\u1E2E\\\\u1E30\\\\u1E32\\\\u1E34\\\\u1E36\\\\u1E38\\\\u1E3A\\\\u1E3C\\\\u1E3E\\\\u1E40\\\\u1E42\\\\u1E44\\\\u1E46\\\\u1E48\\\\u1E4A\\\\u1E4C\\\\u1E4E\\\\u1E50\\\\u1E52\\\\u1E54\\\\u1E56\\\\u1E58\\\\u1E5A\\\\u1E5C\\\\u1E5E\\\\u1E60\\\\u1E62\\\\u1E64\\\\u1E66\\\\u1E68\\\\u1E6A\\\\u1E6C\\\\u1E6E\\\\u1E70\\\\u1E72\\\\u1E74\\\\u1E76\\\\u1E78\\\\u1E7A\\\\u1E7C\\\\u1E7E\\\\u1E80\\\\u1E82\\\\u1E84\\\\u1E86\\\\u1E88\\\\u1E8A\\\\u1E8C\\\\u1E8E\\\\u1E90\\\\u1E92\\\\u1E94\\\\u1E9E\\\\u1EA0\\\\u1EA2\\\\u1EA4\\\\u1EA6\\\\u1EA8\\\\u1EAA\\\\u1EAC\\\\u1EAE\\\\u1EB0\\\\u1EB2\\\\u1EB4\\\\u1EB6\\\\u1EB8\\\\u1EBA\\\\u1EBC\\\\u1EBE\\\\u1EC0\\\\u1EC2\\\\u1EC4\\\\u1EC6\\\\u1EC8\\\\u1ECA\\\\u1ECC\\\\u1ECE\\\\u1ED0\\\\u1ED2\\\\u1ED4\\\\u1ED6\\\\u1ED8\\\\u1EDA\\\\u1EDC\\\\u1EDE\\\\u1EE0\\\\u1EE2\\\\u1EE4\\\\u1EE6\\\\u1EE8\\\\u1EEA\\\\u1EEC\\\\u1EEE\\\\u1EF0\\\\u1EF2\\\\u1EF4\\\\u1EF6\\\\u1EF8\\\\u1EFA\\\\u1EFC\\\\u1EFE\\\\u1F08-\\\\u1F0F\\\\u1F18-\\\\u1F1D\\\\u1F28-\\\\u1F2F\\\\u1F38-\\\\u1F3F\\\\u1F48-\\\\u1F4D\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F\\\\u1F68-\\\\u1F6F\\\\u1F88-\\\\u1F8F\\\\u1F98-\\\\u1F9F\\\\u1FA8-\\\\u1FAF\\\\u1FB8-\\\\u1FBC\\\\u1FC8-\\\\u1FCC\\\\u1FD8-\\\\u1FDB\\\\u1FE8-\\\\u1FEC\\\\u1FF8-\\\\u1FFC\\\\u2102\\\\u2107\\\\u210B-\\\\u210D\\\\u2110-\\\\u2112\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u2130-\\\\u2133\\\\u213E\\\\u213F\\\\u2145\\\\u2160-\\\\u216F\\\\u2183\\\\u24B6-\\\\u24CF\\\\u2C00-\\\\u2C2F\\\\u2C60\\\\u2C62-\\\\u2C64\\\\u2C67\\\\u2C69\\\\u2C6B\\\\u2C6D-\\\\u2C70\\\\u2C72\\\\u2C75\\\\u2C7E-\\\\u2C80\\\\u2C82\\\\u2C84\\\\u2C86\\\\u2C88\\\\u2C8A\\\\u2C8C\\\\u2C8E\\\\u2C90\\\\u2C92\\\\u2C94\\\\u2C96\\\\u2C98\\\\u2C9A\\\\u2C9C\\\\u2C9E\\\\u2CA0\\\\u2CA2\\\\u2CA4\\\\u2CA6\\\\u2CA8\\\\u2CAA\\\\u2CAC\\\\u2CAE\\\\u2CB0\\\\u2CB2\\\\u2CB4\\\\u2CB6\\\\u2CB8\\\\u2CBA\\\\u2CBC\\\\u2CBE\\\\u2CC0\\\\u2CC2\\\\u2CC4\\\\u2CC6\\\\u2CC8\\\\u2CCA\\\\u2CCC\\\\u2CCE\\\\u2CD0\\\\u2CD2\\\\u2CD4\\\\u2CD6\\\\u2CD8\\\\u2CDA\\\\u2CDC\\\\u2CDE\\\\u2CE0\\\\u2CE2\\\\u2CEB\\\\u2CED\\\\u2CF2\\\\uA640\\\\uA642\\\\uA644\\\\uA646\\\\uA648\\\\uA64A\\\\uA64C\\\\uA64E\\\\uA650\\\\uA652\\\\uA654\\\\uA656\\\\uA658\\\\uA65A\\\\uA65C\\\\uA65E\\\\uA660\\\\uA662\\\\uA664\\\\uA666\\\\uA668\\\\uA66A\\\\uA66C\\\\uA680\\\\uA682\\\\uA684\\\\uA686\\\\uA688\\\\uA68A\\\\uA68C\\\\uA68E\\\\uA690\\\\uA692\\\\uA694\\\\uA696\\\\uA698\\\\uA69A\\\\uA722\\\\uA724\\\\uA726\\\\uA728\\\\uA72A\\\\uA72C\\\\uA72E\\\\uA732\\\\uA734\\\\uA736\\\\uA738\\\\uA73A\\\\uA73C\\\\uA73E\\\\uA740\\\\uA742\\\\uA744\\\\uA746\\\\uA748\\\\uA74A\\\\uA74C\\\\uA74E\\\\uA750\\\\uA752\\\\uA754\\\\uA756\\\\uA758\\\\uA75A\\\\uA75C\\\\uA75E\\\\uA760\\\\uA762\\\\uA764\\\\uA766\\\\uA768\\\\uA76A\\\\uA76C\\\\uA76E\\\\uA779\\\\uA77B\\\\uA77D\\\\uA77E\\\\uA780\\\\uA782\\\\uA784\\\\uA786\\\\uA78B\\\\uA78D\\\\uA790\\\\uA792\\\\uA796\\\\uA798\\\\uA79A\\\\uA79C\\\\uA79E\\\\uA7A0\\\\uA7A2\\\\uA7A4\\\\uA7A6\\\\uA7A8\\\\uA7AA-\\\\uA7AE\\\\uA7B0-\\\\uA7B4\\\\uA7B6\\\\uA7B8\\\\uA7BA\\\\uA7BC\\\\uA7BE\\\\uA7C0\\\\uA7C2\\\\uA7C4-\\\\uA7C7\\\\uA7C9\\\\uA7CB\\\\uA7CC\\\\uA7CE\\\\uA7D0\\\\uA7D2\\\\uA7D4\\\\uA7D6\\\\uA7D8\\\\uA7DA\\\\uA7DC\\\\uA7F5\\\\uFF21-\\\\uFF3A]|\\\\uD801[\\\\uDC00-\\\\uDC27\\\\uDCB0-\\\\uDCD3\\\\uDD70-\\\\uDD7A\\\\uDD7C-\\\\uDD8A\\\\uDD8C-\\\\uDD92\\\\uDD94\\\\uDD95]|\\\\uD803[\\\\uDC80-\\\\uDCB2\\\\uDD50-\\\\uDD65]|\\\\uD806[\\\\uDCA0-\\\\uDCBF]|\\\\uD81B[\\\\uDE40-\\\\uDE5F\\\\uDEA0-\\\\uDEB8]|\\\\uD835[\\\\uDC00-\\\\uDC19\\\\uDC34-\\\\uDC4D\\\\uDC68-\\\\uDC81\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB5\\\\uDCD0-\\\\uDCE9\\\\uDD04\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD38\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD6C-\\\\uDD85\\\\uDDA0-\\\\uDDB9\\\\uDDD4-\\\\uDDED\\\\uDE08-\\\\uDE21\\\\uDE3C-\\\\uDE55\\\\uDE70-\\\\uDE89\\\\uDEA8-\\\\uDEC0\\\\uDEE2-\\\\uDEFA\\\\uDF1C-\\\\uDF34\\\\uDF56-\\\\uDF6E\\\\uDF90-\\\\uDFA8\\\\uDFCA]|\\\\uD83A[\\\\uDD00-\\\\uDD21]|\\\\uD83C[\\\\uDD30-\\\\uDD49\\\\uDD50-\\\\uDD69\\\\uDD70-\\\\uDD89])\",\n\t\t\t\t\"$XX\": \"[\\\\0-\\\\uD7FF\\\\uE000-\\\\uFFFF]\"\n\t\t\t}\n\t\t},\n\t\t\"word\": {\n\t\t\t\"segmentRules\": {\n\t\t\t\t\"10\": {\n\t\t\t\t\t\"after\": \"$AHLetter\",\n\t\t\t\t\t\"before\": \"$Numeric(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"11\": {\n\t\t\t\t\t\"after\": \"$Numeric\",\n\t\t\t\t\t\"before\": \"$Numeric($MidNum|$MidNumLetQ)(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"12\": {\n\t\t\t\t\t\"after\": \"($MidNum|$MidNumLetQ)(?:$Extend|$Format|$ZWJ)*$Numeric\",\n\t\t\t\t\t\"before\": \"$Numeric(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"13\": {\n\t\t\t\t\t\"after\": \"$Katakana\",\n\t\t\t\t\t\"before\": \"$Katakana(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"13.1\": {\n\t\t\t\t\t\"after\": \"$ExtendNumLet\",\n\t\t\t\t\t\"before\": \"($AHLetter|$Numeric|$Katakana|$ExtendNumLet)(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"13.2\": {\n\t\t\t\t\t\"after\": \"($AHLetter|$Numeric|$Katakana)\",\n\t\t\t\t\t\"before\": \"$ExtendNumLet(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"15\": {\n\t\t\t\t\t\"after\": \"$RI\",\n\t\t\t\t\t\"before\": \"^($RI$RI)*$RI(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"16\": {\n\t\t\t\t\t\"after\": \"$RI\",\n\t\t\t\t\t\"before\": \"[^\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\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-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\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-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF\\\\uDCEC-\\\\uDCEF\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A\\\\uDDE6-\\\\uDDFF\\\\uDFFB-\\\\uDFFF\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF]($RI$RI)*$RI(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"3\": {\n\t\t\t\t\t\"after\": \"$LF\",\n\t\t\t\t\t\"before\": \"$CR\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"3.1\": {\n\t\t\t\t\t\"before\": \"($Newline|$CR|$LF)\",\n\t\t\t\t\t\"breaks\": true\n\t\t\t\t},\n\t\t\t\t\"3.2\": {\n\t\t\t\t\t\"after\": \"($Newline|$CR|$LF)\",\n\t\t\t\t\t\"breaks\": true\n\t\t\t\t},\n\t\t\t\t\"3.3\": {\n\t\t\t\t\t\"after\": \"$ExtPict\",\n\t\t\t\t\t\"before\": \"$ZWJ\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"3.4\": {\n\t\t\t\t\t\"after\": \"$WSegSpace\",\n\t\t\t\t\t\"before\": \"$WSegSpace\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"4\": {\n\t\t\t\t\t\"after\": \"(?:$Extend|$Format|$ZWJ)\",\n\t\t\t\t\t\"before\": \"(?:(?!(?:$CR|$LF|$Newline))(?:[\\\\0-\\\\uD7FF\\\\uE000-\\\\uFFFF]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF]))\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"5\": {\n\t\t\t\t\t\"after\": \"$AHLetter\",\n\t\t\t\t\t\"before\": \"$AHLetter(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"6\": {\n\t\t\t\t\t\"after\": \"($MidLetter|$MidNumLetQ)(?:$Extend|$Format|$ZWJ)*$AHLetter\",\n\t\t\t\t\t\"before\": \"$AHLetter(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"7\": {\n\t\t\t\t\t\"after\": \"$AHLetter\",\n\t\t\t\t\t\"before\": \"$AHLetter($MidLetter|$MidNumLetQ)(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"7.1\": {\n\t\t\t\t\t\"after\": \"$Single_Quote\",\n\t\t\t\t\t\"before\": \"$Hebrew_Letter(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"7.2\": {\n\t\t\t\t\t\"after\": \"$Double_Quote$Hebrew_Letter\",\n\t\t\t\t\t\"before\": \"$Hebrew_Letter(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"7.3\": {\n\t\t\t\t\t\"after\": \"$Hebrew_Letter\",\n\t\t\t\t\t\"before\": \"$Hebrew_Letter$Double_Quote(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"8\": {\n\t\t\t\t\t\"after\": \"$Numeric\",\n\t\t\t\t\t\"before\": \"$Numeric(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t},\n\t\t\t\t\"9\": {\n\t\t\t\t\t\"after\": \"$Numeric\",\n\t\t\t\t\t\"before\": \"$AHLetter(?:$Extend|$Format|$ZWJ)*\",\n\t\t\t\t\t\"breaks\": false\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"suppressions\": [],\n\t\t\t\"variables\": {\n\t\t\t\t\"$AHLetter\": \"(?:[A-Za-z\\\\xAA\\\\xB5\\\\xB8\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02D7\\\\u02DE-\\\\u02FF\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559-\\\\u055C\\\\u055E\\\\u0560-\\\\u0588\\\\u058A\\\\u05D0-\\\\u05EA\\\\u05EF-\\\\u05F3\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u070F\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u0860-\\\\u086A\\\\u0870-\\\\u0887\\\\u0889-\\\\u088F\\\\u08A0-\\\\u08C9\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u09FC\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0AF9\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58-\\\\u0C5A\\\\u0C5C\\\\u0C5D\\\\u0C60\\\\u0C61\\\\u0C80\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDC-\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D04-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D54-\\\\u0D56\\\\u0D5F-\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u1711\\\\u171F-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1820-\\\\u1878\\\\u1880-\\\\u1884\\\\u1887-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1A00-\\\\u1A16\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4C\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1C80-\\\\u1C8A\\\\u1C90-\\\\u1CBA\\\\u1CBD-\\\\u1CBF\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF3\\\\u1CF5\\\\u1CF6\\\\u1CFA\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u24B6-\\\\u24E9\\\\u2C00-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005\\\\u303B\\\\u303C\\\\u3105-\\\\u312F\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BF\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA708-\\\\uA7DC\\\\uA7F1-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA8FE\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB69\\\\uAB70-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFFA0-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDF00-\\\\uDF1F\\\\uDF2D-\\\\uDF4A\\\\uDF50-\\\\uDF75\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCB0-\\\\uDCD3\\\\uDCD8-\\\\uDCFB\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDD70-\\\\uDD7A\\\\uDD7C-\\\\uDD8A\\\\uDD8C-\\\\uDD92\\\\uDD94\\\\uDD95\\\\uDD97-\\\\uDDA1\\\\uDDA3-\\\\uDDB1\\\\uDDB3-\\\\uDDB9\\\\uDDBB\\\\uDDBC\\\\uDDC0-\\\\uDDF3\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67\\\\uDF80-\\\\uDF85\\\\uDF87-\\\\uDFB0\\\\uDFB2-\\\\uDFBA]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD40-\\\\uDD59\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE35\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE4\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDC80-\\\\uDCB2\\\\uDCC0-\\\\uDCF2\\\\uDD00-\\\\uDD23\\\\uDD4A-\\\\uDD65\\\\uDD6F-\\\\uDD85\\\\uDE80-\\\\uDEA9\\\\uDEB0\\\\uDEB1\\\\uDEC2-\\\\uDEC7\\\\uDF00-\\\\uDF1C\\\\uDF27\\\\uDF30-\\\\uDF45\\\\uDF70-\\\\uDF81\\\\uDFB0-\\\\uDFC4\\\\uDFE0-\\\\uDFF6]|\\\\uD804[\\\\uDC03-\\\\uDC37\\\\uDC71\\\\uDC72\\\\uDC75\\\\uDC83-\\\\uDCAF\\\\uDCD0-\\\\uDCE8\\\\uDD03-\\\\uDD26\\\\uDD44\\\\uDD47\\\\uDD50-\\\\uDD72\\\\uDD76\\\\uDD83-\\\\uDDB2\\\\uDDC1-\\\\uDDC4\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE2B\\\\uDE3F\\\\uDE40\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEDE\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3D\\\\uDF50\\\\uDF5D-\\\\uDF61\\\\uDF80-\\\\uDF89\\\\uDF8B\\\\uDF8E\\\\uDF90-\\\\uDFB5\\\\uDFB7\\\\uDFD1\\\\uDFD3]|\\\\uD805[\\\\uDC00-\\\\uDC34\\\\uDC47-\\\\uDC4A\\\\uDC5F-\\\\uDC61\\\\uDC80-\\\\uDCAF\\\\uDCC4\\\\uDCC5\\\\uDCC7\\\\uDD80-\\\\uDDAE\\\\uDDD8-\\\\uDDDB\\\\uDE00-\\\\uDE2F\\\\uDE44\\\\uDE80-\\\\uDEAA\\\\uDEB8]|\\\\uD806[\\\\uDC00-\\\\uDC2B\\\\uDCA0-\\\\uDCDF\\\\uDCFF-\\\\uDD06\\\\uDD09\\\\uDD0C-\\\\uDD13\\\\uDD15\\\\uDD16\\\\uDD18-\\\\uDD2F\\\\uDD3F\\\\uDD41\\\\uDDA0-\\\\uDDA7\\\\uDDAA-\\\\uDDD0\\\\uDDE1\\\\uDDE3\\\\uDE00\\\\uDE0B-\\\\uDE32\\\\uDE3A\\\\uDE50\\\\uDE5C-\\\\uDE89\\\\uDE9D\\\\uDEB0-\\\\uDEF8\\\\uDFC0-\\\\uDFE0]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC2E\\\\uDC40\\\\uDC72-\\\\uDC8F\\\\uDD00-\\\\uDD06\\\\uDD08\\\\uDD09\\\\uDD0B-\\\\uDD30\\\\uDD46\\\\uDD60-\\\\uDD65\\\\uDD67\\\\uDD68\\\\uDD6A-\\\\uDD89\\\\uDD98\\\\uDDB0-\\\\uDDDB\\\\uDEE0-\\\\uDEF2\\\\uDF02\\\\uDF04-\\\\uDF10\\\\uDF12-\\\\uDF33\\\\uDFB0]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|\\\\uD80B[\\\\uDF90-\\\\uDFF0]|[\\\\uD80C\\\\uD80E\\\\uD80F][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2F\\\\uDC41-\\\\uDC46\\\\uDC60-\\\\uDFFF]|\\\\uD810[\\\\uDC00-\\\\uDFFA]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD818[\\\\uDD00-\\\\uDD1D]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDE70-\\\\uDEBE\\\\uDED0-\\\\uDEED\\\\uDF00-\\\\uDF2F\\\\uDF40-\\\\uDF43\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDD40-\\\\uDD6C\\\\uDE40-\\\\uDE7F\\\\uDEA0-\\\\uDEB8\\\\uDEBB-\\\\uDED3\\\\uDF00-\\\\uDF4A\\\\uDF50\\\\uDF93-\\\\uDF9F\\\\uDFE0\\\\uDFE1\\\\uDFE3]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB]|\\\\uD837[\\\\uDF00-\\\\uDF1E\\\\uDF25-\\\\uDF2A]|\\\\uD838[\\\\uDC30-\\\\uDC6D\\\\uDD00-\\\\uDD2C\\\\uDD37-\\\\uDD3D\\\\uDD4E\\\\uDE90-\\\\uDEAD\\\\uDEC0-\\\\uDEEB]|\\\\uD839[\\\\uDCD0-\\\\uDCEB\\\\uDDD0-\\\\uDDED\\\\uDDF0\\\\uDEC0-\\\\uDEDE\\\\uDEE0-\\\\uDEE2\\\\uDEE4\\\\uDEE5\\\\uDEE7-\\\\uDEED\\\\uDEF0-\\\\uDEF4\\\\uDEFE\\\\uDEFF\\\\uDFE0-\\\\uDFE6\\\\uDFE8-\\\\uDFEB\\\\uDFED\\\\uDFEE\\\\uDFF0-\\\\uDFFE]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDD00-\\\\uDD43\\\\uDD4B]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD83C[\\\\uDD30-\\\\uDD49\\\\uDD50-\\\\uDD69\\\\uDD70-\\\\uDD89])\",\n\t\t\t\t\"$ALetter\": \"(?:[A-Za-z\\\\xAA\\\\xB5\\\\xB8\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02D7\\\\u02DE-\\\\u02FF\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559-\\\\u055C\\\\u055E\\\\u0560-\\\\u0588\\\\u058A\\\\u05F3\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u070F\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u0860-\\\\u086A\\\\u0870-\\\\u0887\\\\u0889-\\\\u088F\\\\u08A0-\\\\u08C9\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u09FC\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0AF9\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58-\\\\u0C5A\\\\u0C5C\\\\u0C5D\\\\u0C60\\\\u0C61\\\\u0C80\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDC-\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D04-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D54-\\\\u0D56\\\\u0D5F-\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u1711\\\\u171F-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1820-\\\\u1878\\\\u1880-\\\\u1884\\\\u1887-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1A00-\\\\u1A16\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4C\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1C80-\\\\u1C8A\\\\u1C90-\\\\u1CBA\\\\u1CBD-\\\\u1CBF\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF3\\\\u1CF5\\\\u1CF6\\\\u1CFA\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u24B6-\\\\u24E9\\\\u2C00-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005\\\\u303B\\\\u303C\\\\u3105-\\\\u312F\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BF\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA708-\\\\uA7DC\\\\uA7F1-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA8FE\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB69\\\\uAB70-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB50-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFFA0-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDF00-\\\\uDF1F\\\\uDF2D-\\\\uDF4A\\\\uDF50-\\\\uDF75\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCB0-\\\\uDCD3\\\\uDCD8-\\\\uDCFB\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDD70-\\\\uDD7A\\\\uDD7C-\\\\uDD8A\\\\uDD8C-\\\\uDD92\\\\uDD94\\\\uDD95\\\\uDD97-\\\\uDDA1\\\\uDDA3-\\\\uDDB1\\\\uDDB3-\\\\uDDB9\\\\uDDBB\\\\uDDBC\\\\uDDC0-\\\\uDDF3\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67\\\\uDF80-\\\\uDF85\\\\uDF87-\\\\uDFB0\\\\uDFB2-\\\\uDFBA]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD40-\\\\uDD59\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE35\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE4\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDC80-\\\\uDCB2\\\\uDCC0-\\\\uDCF2\\\\uDD00-\\\\uDD23\\\\uDD4A-\\\\uDD65\\\\uDD6F-\\\\uDD85\\\\uDE80-\\\\uDEA9\\\\uDEB0\\\\uDEB1\\\\uDEC2-\\\\uDEC7\\\\uDF00-\\\\uDF1C\\\\uDF27\\\\uDF30-\\\\uDF45\\\\uDF70-\\\\uDF81\\\\uDFB0-\\\\uDFC4\\\\uDFE0-\\\\uDFF6]|\\\\uD804[\\\\uDC03-\\\\uDC37\\\\uDC71\\\\uDC72\\\\uDC75\\\\uDC83-\\\\uDCAF\\\\uDCD0-\\\\uDCE8\\\\uDD03-\\\\uDD26\\\\uDD44\\\\uDD47\\\\uDD50-\\\\uDD72\\\\uDD76\\\\uDD83-\\\\uDDB2\\\\uDDC1-\\\\uDDC4\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE2B\\\\uDE3F\\\\uDE40\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEDE\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3D\\\\uDF50\\\\uDF5D-\\\\uDF61\\\\uDF80-\\\\uDF89\\\\uDF8B\\\\uDF8E\\\\uDF90-\\\\uDFB5\\\\uDFB7\\\\uDFD1\\\\uDFD3]|\\\\uD805[\\\\uDC00-\\\\uDC34\\\\uDC47-\\\\uDC4A\\\\uDC5F-\\\\uDC61\\\\uDC80-\\\\uDCAF\\\\uDCC4\\\\uDCC5\\\\uDCC7\\\\uDD80-\\\\uDDAE\\\\uDDD8-\\\\uDDDB\\\\uDE00-\\\\uDE2F\\\\uDE44\\\\uDE80-\\\\uDEAA\\\\uDEB8]|\\\\uD806[\\\\uDC00-\\\\uDC2B\\\\uDCA0-\\\\uDCDF\\\\uDCFF-\\\\uDD06\\\\uDD09\\\\uDD0C-\\\\uDD13\\\\uDD15\\\\uDD16\\\\uDD18-\\\\uDD2F\\\\uDD3F\\\\uDD41\\\\uDDA0-\\\\uDDA7\\\\uDDAA-\\\\uDDD0\\\\uDDE1\\\\uDDE3\\\\uDE00\\\\uDE0B-\\\\uDE32\\\\uDE3A\\\\uDE50\\\\uDE5C-\\\\uDE89\\\\uDE9D\\\\uDEB0-\\\\uDEF8\\\\uDFC0-\\\\uDFE0]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC2E\\\\uDC40\\\\uDC72-\\\\uDC8F\\\\uDD00-\\\\uDD06\\\\uDD08\\\\uDD09\\\\uDD0B-\\\\uDD30\\\\uDD46\\\\uDD60-\\\\uDD65\\\\uDD67\\\\uDD68\\\\uDD6A-\\\\uDD89\\\\uDD98\\\\uDDB0-\\\\uDDDB\\\\uDEE0-\\\\uDEF2\\\\uDF02\\\\uDF04-\\\\uDF10\\\\uDF12-\\\\uDF33\\\\uDFB0]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|\\\\uD80B[\\\\uDF90-\\\\uDFF0]|[\\\\uD80C\\\\uD80E\\\\uD80F][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2F\\\\uDC41-\\\\uDC46\\\\uDC60-\\\\uDFFF]|\\\\uD810[\\\\uDC00-\\\\uDFFA]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD818[\\\\uDD00-\\\\uDD1D]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDE70-\\\\uDEBE\\\\uDED0-\\\\uDEED\\\\uDF00-\\\\uDF2F\\\\uDF40-\\\\uDF43\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDD40-\\\\uDD6C\\\\uDE40-\\\\uDE7F\\\\uDEA0-\\\\uDEB8\\\\uDEBB-\\\\uDED3\\\\uDF00-\\\\uDF4A\\\\uDF50\\\\uDF93-\\\\uDF9F\\\\uDFE0\\\\uDFE1\\\\uDFE3]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB]|\\\\uD837[\\\\uDF00-\\\\uDF1E\\\\uDF25-\\\\uDF2A]|\\\\uD838[\\\\uDC30-\\\\uDC6D\\\\uDD00-\\\\uDD2C\\\\uDD37-\\\\uDD3D\\\\uDD4E\\\\uDE90-\\\\uDEAD\\\\uDEC0-\\\\uDEEB]|\\\\uD839[\\\\uDCD0-\\\\uDCEB\\\\uDDD0-\\\\uDDED\\\\uDDF0\\\\uDEC0-\\\\uDEDE\\\\uDEE0-\\\\uDEE2\\\\uDEE4\\\\uDEE5\\\\uDEE7-\\\\uDEED\\\\uDEF0-\\\\uDEF4\\\\uDEFE\\\\uDEFF\\\\uDFE0-\\\\uDFE6\\\\uDFE8-\\\\uDFEB\\\\uDFED\\\\uDFEE\\\\uDFF0-\\\\uDFFE]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDD00-\\\\uDD43\\\\uDD4B]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD83C[\\\\uDD30-\\\\uDD49\\\\uDD50-\\\\uDD69\\\\uDD70-\\\\uDD89])\",\n\t\t\t\t\"$CR\": \"\\\\r\",\n\t\t\t\t\"$Double_Quote\": \"\\\"\",\n\t\t\t\t\"$ExtPict\": \"(?:[\\\\xA9\\\\xAE\\\\u203C\\\\u2049\\\\u2122\\\\u2139\\\\u2194-\\\\u2199\\\\u21A9\\\\u21AA\\\\u231A\\\\u231B\\\\u2328\\\\u23CF\\\\u23E9-\\\\u23F3\\\\u23F8-\\\\u23FA\\\\u24C2\\\\u25AA\\\\u25AB\\\\u25B6\\\\u25C0\\\\u25FB-\\\\u25FE\\\\u2600-\\\\u2604\\\\u260E\\\\u2611\\\\u2614\\\\u2615\\\\u2618\\\\u261D\\\\u2620\\\\u2622\\\\u2623\\\\u2626\\\\u262A\\\\u262E\\\\u262F\\\\u2638-\\\\u263A\\\\u2640\\\\u2642\\\\u2648-\\\\u2653\\\\u265F\\\\u2660\\\\u2663\\\\u2665\\\\u2666\\\\u2668\\\\u267B\\\\u267E\\\\u267F\\\\u2692-\\\\u2697\\\\u2699\\\\u269B\\\\u269C\\\\u26A0\\\\u26A1\\\\u26A7\\\\u26AA\\\\u26AB\\\\u26B0\\\\u26B1\\\\u26BD\\\\u26BE\\\\u26C4\\\\u26C5\\\\u26C8\\\\u26CE\\\\u26CF\\\\u26D1\\\\u26D3\\\\u26D4\\\\u26E9\\\\u26EA\\\\u26F0-\\\\u26F5\\\\u26F7-\\\\u26FA\\\\u26FD\\\\u2702\\\\u2705\\\\u2708-\\\\u270D\\\\u270F\\\\u2712\\\\u2714\\\\u2716\\\\u271D\\\\u2721\\\\u2728\\\\u2733\\\\u2734\\\\u2744\\\\u2747\\\\u274C\\\\u274E\\\\u2753-\\\\u2755\\\\u2757\\\\u2763\\\\u2764\\\\u2795-\\\\u2797\\\\u27A1\\\\u27B0\\\\u27BF\\\\u2934\\\\u2935\\\\u2B05-\\\\u2B07\\\\u2B1B\\\\u2B1C\\\\u2B50\\\\u2B55\\\\u3030\\\\u303D\\\\u3297\\\\u3299]|\\\\uD83C[\\\\uDC04\\\\uDC2C-\\\\uDC2F\\\\uDC94-\\\\uDC9F\\\\uDCAF\\\\uDCB0\\\\uDCC0\\\\uDCCF\\\\uDCD0\\\\uDCF6-\\\\uDCFF\\\\uDD70\\\\uDD71\\\\uDD7E\\\\uDD7F\\\\uDD8E\\\\uDD91-\\\\uDD9A\\\\uDDAE-\\\\uDDE5\\\\uDE01-\\\\uDE0F\\\\uDE1A\\\\uDE2F\\\\uDE32-\\\\uDE3A\\\\uDE3C-\\\\uDE3F\\\\uDE49-\\\\uDE5F\\\\uDE66-\\\\uDF21\\\\uDF24-\\\\uDF93\\\\uDF96\\\\uDF97\\\\uDF99-\\\\uDF9B\\\\uDF9E-\\\\uDFF0\\\\uDFF3-\\\\uDFF5\\\\uDFF7-\\\\uDFFA]|\\\\uD83D[\\\\uDC00-\\\\uDCFD\\\\uDCFF-\\\\uDD3D\\\\uDD49-\\\\uDD4E\\\\uDD50-\\\\uDD67\\\\uDD6F\\\\uDD70\\\\uDD73-\\\\uDD7A\\\\uDD87\\\\uDD8A-\\\\uDD8D\\\\uDD90\\\\uDD95\\\\uDD96\\\\uDDA4\\\\uDDA5\\\\uDDA8\\\\uDDB1\\\\uDDB2\\\\uDDBC\\\\uDDC2-\\\\uDDC4\\\\uDDD1-\\\\uDDD3\\\\uDDDC-\\\\uDDDE\\\\uDDE1\\\\uDDE3\\\\uDDE8\\\\uDDEF\\\\uDDF3\\\\uDDFA-\\\\uDE4F\\\\uDE80-\\\\uDEC5\\\\uDECB-\\\\uDED2\\\\uDED5-\\\\uDEE5\\\\uDEE9\\\\uDEEB-\\\\uDEF0\\\\uDEF3-\\\\uDEFF\\\\uDFDA-\\\\uDFFF]|\\\\uD83E[\\\\uDC0C-\\\\uDC0F\\\\uDC48-\\\\uDC4F\\\\uDC5A-\\\\uDC5F\\\\uDC88-\\\\uDC8F\\\\uDCAE\\\\uDCAF\\\\uDCBC-\\\\uDCBF\\\\uDCC2-\\\\uDCCF\\\\uDCD9-\\\\uDCFF\\\\uDD0C-\\\\uDD3A\\\\uDD3C-\\\\uDD45\\\\uDD47-\\\\uDDFF\\\\uDE58-\\\\uDE5F\\\\uDE6E-\\\\uDEFF]|\\\\uD83F[\\\\uDC00-\\\\uDFFD])\",\n\t\t\t\t\"$Extend\": \"(?:[\\\\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\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0897-\\\\u089F\\\\u08CA-\\\\u08E1\\\\u08E3-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\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-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180D\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ADD\\\\u1AE0-\\\\u1AEB\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\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-\\\\uFE2F\\\\uFF9E\\\\uFF9F]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDD69-\\\\uDD6D\\\\uDEAB\\\\uDEAC\\\\uDEFA-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCC2\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74\\\\uDFB8-\\\\uDFC0\\\\uDFC2\\\\uDFC5\\\\uDFC7-\\\\uDFCA\\\\uDFCC-\\\\uDFD0\\\\uDFD2\\\\uDFE1\\\\uDFE2]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99\\\\uDF60-\\\\uDF67]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42\\\\uDF5A]|\\\\uD80D[\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD818[\\\\uDD1E-\\\\uDD2F]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF\\\\uDDEE\\\\uDDEF\\\\uDEE3\\\\uDEE6\\\\uDEEE\\\\uDEEF\\\\uDEF5]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])\",\n\t\t\t\t\"$ExtendNumLet\": \"[_\\\\u202F\\\\u203F\\\\u2040\\\\u2054\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFF3F]\",\n\t\t\t\t\"$Format\": \"(?:[\\\\xAD\\\\u061C\\\\u180E\\\\u200E\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\uFEFF\\\\uFFF9-\\\\uFFFB]|\\\\uD80D[\\\\uDC30-\\\\uDC3F]|\\\\uD82F[\\\\uDCA0-\\\\uDCA3]|\\\\uD834[\\\\uDD73-\\\\uDD7A]|\\\\uDB40\\\\uDC01)\",\n\t\t\t\t\"$Hebrew_Letter\": \"[\\\\u05D0-\\\\u05EA\\\\u05EF-\\\\u05F2\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFB4F]\",\n\t\t\t\t\"$Katakana\": \"(?:[\\\\u3031-\\\\u3035\\\\u309B\\\\u309C\\\\u30A0-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u31F0-\\\\u31FF\\\\u32D0-\\\\u32FE\\\\u3300-\\\\u3357\\\\uFF66-\\\\uFF9D]|\\\\uD82B[\\\\uDFF0-\\\\uDFF3\\\\uDFF5-\\\\uDFFB\\\\uDFFD\\\\uDFFE]|\\\\uD82C[\\\\uDC00\\\\uDD20-\\\\uDD22\\\\uDD55\\\\uDD64-\\\\uDD67])\",\n\t\t\t\t\"$LF\": \"\\\\n\",\n\t\t\t\t\"$MidLetter\": \"[:\\\\xB7\\\\u0387\\\\u055F\\\\u05F4\\\\u2027\\\\uFE13\\\\uFE55\\\\uFF1A]\",\n\t\t\t\t\"$MidNum\": \"[,;\\\\u037E\\\\u0589\\\\u060C\\\\u060D\\\\u066C\\\\u07F8\\\\u2044\\\\uFE50\\\\uFE54\\\\uFF0C\\\\uFF1B]\",\n\t\t\t\t\"$MidNumLet\": \"[\\\\.\\\\u2018\\\\u2019\\\\u2024\\\\uFE52\\\\uFF07\\\\uFF0E]\",\n\t\t\t\t\"$MidNumLetQ\": \"['\\\\.\\\\u2018\\\\u2019\\\\u2024\\\\uFE52\\\\uFF07\\\\uFF0E]\",\n\t\t\t\t\"$Newline\": \"[\\\\x0B\\\\f\\\\x85\\\\u2028\\\\u2029]\",\n\t\t\t\t\"$Numeric\": \"(?:[0-9\\\\u0600-\\\\u0605\\\\u0660-\\\\u0669\\\\u066B\\\\u06DD\\\\u06F0-\\\\u06F9\\\\u07C0-\\\\u07C9\\\\u0890\\\\u0891\\\\u08E2\\\\u0966-\\\\u096F\\\\u09E6-\\\\u09EF\\\\u0A66-\\\\u0A6F\\\\u0AE6-\\\\u0AEF\\\\u0B66-\\\\u0B6F\\\\u0BE6-\\\\u0BEF\\\\u0C66-\\\\u0C6F\\\\u0CE6-\\\\u0CEF\\\\u0D66-\\\\u0D6F\\\\u0DE6-\\\\u0DEF\\\\u0E50-\\\\u0E59\\\\u0ED0-\\\\u0ED9\\\\u0F20-\\\\u0F29\\\\u1040-\\\\u1049\\\\u1090-\\\\u1099\\\\u17E0-\\\\u17E9\\\\u1810-\\\\u1819\\\\u1946-\\\\u194F\\\\u19D0-\\\\u19DA\\\\u1A80-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1B50-\\\\u1B59\\\\u1BB0-\\\\u1BB9\\\\u1C40-\\\\u1C49\\\\u1C50-\\\\u1C59\\\\uA620-\\\\uA629\\\\uA8D0-\\\\uA8D9\\\\uA900-\\\\uA909\\\\uA9D0-\\\\uA9D9\\\\uA9F0-\\\\uA9F9\\\\uAA50-\\\\uAA59\\\\uABF0-\\\\uABF9\\\\uFF10-\\\\uFF19]|\\\\uD801[\\\\uDCA0-\\\\uDCA9]|[\\\\uD803\\\\uD818][\\\\uDD30-\\\\uDD39\\\\uDD40-\\\\uDD49]|\\\\uD804[\\\\uDC66-\\\\uDC6F\\\\uDCBD\\\\uDCCD\\\\uDCF0-\\\\uDCF9\\\\uDD36-\\\\uDD3F\\\\uDDD0-\\\\uDDD9\\\\uDEF0-\\\\uDEF9]|\\\\uD805[\\\\uDC50-\\\\uDC59\\\\uDCD0-\\\\uDCD9\\\\uDE50-\\\\uDE59\\\\uDEC0-\\\\uDEC9\\\\uDED0-\\\\uDEE3\\\\uDF30-\\\\uDF39]|\\\\uD806[\\\\uDCE0-\\\\uDCE9\\\\uDD50-\\\\uDD59\\\\uDFF0-\\\\uDFF9]|\\\\uD807[\\\\uDC50-\\\\uDC59\\\\uDD50-\\\\uDD59\\\\uDDA0-\\\\uDDA9\\\\uDDE0-\\\\uDDE9\\\\uDF50-\\\\uDF59]|\\\\uD81A[\\\\uDE60-\\\\uDE69\\\\uDEC0-\\\\uDEC9\\\\uDF50-\\\\uDF59]|\\\\uD81B[\\\\uDD70-\\\\uDD79]|\\\\uD833[\\\\uDCF0-\\\\uDCF9]|\\\\uD835[\\\\uDFCE-\\\\uDFFF]|\\\\uD838[\\\\uDD40-\\\\uDD49\\\\uDEF0-\\\\uDEF9]|\\\\uD839[\\\\uDCF0-\\\\uDCF9\\\\uDDF1-\\\\uDDFA]|\\\\uD83A[\\\\uDD50-\\\\uDD59]|\\\\uD83E[\\\\uDFF0-\\\\uDFF9])\",\n\t\t\t\t\"$RI\": \"(?:\\\\uD83C[\\\\uDDE6-\\\\uDDFF])\",\n\t\t\t\t\"$Single_Quote\": \"'\",\n\t\t\t\t\"$WSegSpace\": \"[ \\\\u1680\\\\u2000-\\\\u2006\\\\u2008-\\\\u200A\\\\u205F\\\\u3000]\",\n\t\t\t\t\"$XX\": \"[\\\\0-\\\\uD7FF\\\\uE000-\\\\uFFFF]\",\n\t\t\t\t\"$ZWJ\": \"\\\\u200D\"\n\t\t\t}\n\t\t}\n\t},\n\t\"ru\": { \"sentence\": {\n\t\t\"segmentRules\": {},\n\t\t\"suppressions\": [\n\t\t\t\"руб.\",\n\t\t\t\"янв.\",\n\t\t\t\"до н. э.\",\n\t\t\t\"сент.\",\n\t\t\t\"тел.\",\n\t\t\t\"дек.\",\n\t\t\t\"февр.\",\n\t\t\t\"нояб.\",\n\t\t\t\"апр.\",\n\t\t\t\"н. э.\",\n\t\t\t\"окт.\",\n\t\t\t\"тыс.\",\n\t\t\t\"авг.\",\n\t\t\t\"проф.\",\n\t\t\t\"н.э.\",\n\t\t\t\"кв.\",\n\t\t\t\"ул.\",\n\t\t\t\"отд.\"\n\t\t],\n\t\t\"variables\": {}\n\t} },\n\t\"zh\": {}\n};\n","import { CanonicalizeLocaleList, GetOption, GetOptionsObject, SupportedLocales, getInternalSlot, getMultiInternalSlots, setInternalSlot } from \"@formatjs/ecma402-abstract\";\nimport { ResolveLocale } from \"@formatjs/intl-localematcher\";\nimport { SegmentationRules } from \"./cldr-segmentation-rules.generated.js\";\nimport { isSurrogate, replaceVariables } from \"./segmentation-utils.js\";\n// Cached regex patterns for word character detection\n// Note: Unicode property escape regex is created at runtime in try-catch\n// to avoid compile-time errors when targeting ES5\nconst WORD_CHARACTERS_BASIC_REGEX = /\\w/;\n// Lazy-initialized Unicode word character regex (null if not supported)\nlet WORD_CHARACTERS_UNICODE_REGEX = undefined;\n/**\n* Adds $ to before rules and ^ to after rules for strictness\n* Replaces variables\n* Initializes the RegExp\n*\n* @param rule raw rule string from cldr-segmentation-rules.generated\n* @param variables\n* @param after appends ^ if true and $ if false\n* @returns\n*/\nconst generateRuleRegex = (rule, variables, after) => {\n\treturn new RegExp(`${after ? \"^\" : \"\"}${replaceVariables(variables, rule)}${after ? \"\" : \"$\"}`);\n};\nconst prepareLocaleSegmentationRules = (segmentationTypeValue) => {\n\tconst preparedRules = {};\n\tfor (const ruleNr of Object.keys(segmentationTypeValue.segmentRules)) {\n\t\tconst ruleValue = segmentationTypeValue.segmentRules[ruleNr];\n\t\tconst preparedRule = { breaks: ruleValue.breaks };\n\t\tif (\"before\" in ruleValue && ruleValue.before) {\n\t\t\tpreparedRule.before = generateRuleRegex(ruleValue.before, segmentationTypeValue.variables, false);\n\t\t}\n\t\tif (\"after\" in ruleValue && ruleValue.after) {\n\t\t\tpreparedRule.after = generateRuleRegex(ruleValue.after, segmentationTypeValue.variables, true);\n\t\t}\n\t\tpreparedRules[ruleNr] = preparedRule;\n\t}\n\treturn preparedRules;\n};\nconst breaksAtResult = (breaks, matchingRule) => ({\n\tbreaks,\n\tmatchingRule\n});\nexport class Segmenter {\n\trules;\n\truleSortedKeys;\n\tmergedSegmentationTypeValue;\n\tconstructor(locales, options) {\n\t\tif (new.target === undefined) {\n\t\t\tthrow TypeError(`Constructor Intl.Segmenter requires 'new'`);\n\t\t}\n\t\tconst requestedLocales = CanonicalizeLocaleList(locales);\n\t\toptions = GetOptionsObject(options);\n\t\tconst opt = Object.create(null);\n\t\tconst matcher = GetOption(options, \"localeMatcher\", \"string\", [\"lookup\", \"best fit\"], \"best fit\");\n\t\topt.localeMatcher = matcher;\n\t\tconst granularity = GetOption(options, \"granularity\", \"string\", [\n\t\t\t\"word\",\n\t\t\t\"sentence\",\n\t\t\t\"grapheme\"\n\t\t], \"grapheme\");\n\t\tsetSlot(this, \"granularity\", granularity);\n\t\t//TODO: figure out correct availible locales\n\t\tconst r = ResolveLocale(Segmenter.availableLocales, requestedLocales, opt, [], {}, () => \"\");\n\t\tsetSlot(this, \"locale\", r.locale);\n\t\t//root rules based on granularity\n\t\tthis.mergedSegmentationTypeValue = SegmentationRules.root[granularity];\n\t\t//merge root rules with locale ones if locale is specified\n\t\tif (r.locale.length) {\n\t\t\tconst localeOverrides = SegmentationRules[r.locale];\n\t\t\tif (granularity in localeOverrides) {\n\t\t\t\tconst localeSegmentationTypeValue = localeOverrides[granularity];\n\t\t\t\tthis.mergedSegmentationTypeValue.variables = {\n\t\t\t\t\t...this.mergedSegmentationTypeValue.variables,\n\t\t\t\t\t...localeSegmentationTypeValue.variables\n\t\t\t\t};\n\t\t\t\tthis.mergedSegmentationTypeValue.segmentRules = {\n\t\t\t\t\t...this.mergedSegmentationTypeValue.segmentRules,\n\t\t\t\t\t...localeSegmentationTypeValue.segmentRules\n\t\t\t\t};\n\t\t\t\tthis.mergedSegmentationTypeValue.suppressions = [...this.mergedSegmentationTypeValue.suppressions, ...localeSegmentationTypeValue.suppressions];\n\t\t\t}\n\t\t}\n\t\t//prepare rules\n\t\tthis.rules = prepareLocaleSegmentationRules(this.mergedSegmentationTypeValue);\n\t\t//order rule keys\n\t\tthis.ruleSortedKeys = Object.keys(this.rules).sort((a, b) => Number(a) - Number(b));\n\t}\n\tbreaksAt(position, input) {\n\t\tconst ruleSortedKeys = this.ruleSortedKeys;\n\t\tconst rules = this.rules;\n\t\tconst mergedSegmentationTypeValue = this.mergedSegmentationTypeValue;\n\t\t//artificial rule 0.2\n\t\tif (position === 0) {\n\t\t\treturn breaksAtResult(true, \"0.2\");\n\t\t}\n\t\tif (position === input.length) {\n\t\t\t//rule 0.3\n\t\t\treturn breaksAtResult(true, \"0.3\");\n\t\t}\n\t\t//artificial rule 0.1: js specific, due to es5 regex not being unicode aware\n\t\t//number 0.1 chosen to mimic java implementation, but needs to execute after 0.2 and 0.3 to be inside the string bounds\n\t\tif (isSurrogate(input, position)) {\n\t\t\treturn breaksAtResult(false, \"0.1\");\n\t\t}\n\t\tconst stringBeforeBreak = input.substring(0, position);\n\t\tconst stringAfterBreak = input.substring(position);\n\t\t//artificial rule 0.4: handle suppressions\n\t\tif (\"suppressions\" in mergedSegmentationTypeValue) {\n\t\t\tfor (const suppressions of mergedSegmentationTypeValue.suppressions) {\n\t\t\t\tif (stringBeforeBreak.trim().endsWith(suppressions)) {\n\t\t\t\t\treturn breaksAtResult(false, \"0.4\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// loop through rules and find a match\n\t\tfor (const ruleKey of ruleSortedKeys) {\n\t\t\tconst { before, after, breaks } = rules[ruleKey];\n\t\t\t// for debugging\n\t\t\t// if (ruleKey === '16' && position === 4) {\n\t\t\t// console.log({before, after, stringBeforeBreak, stringAfterBreak})\n\t\t\t// }\n\t\t\tif (before) {\n\t\t\t\tif (!before.test(stringBeforeBreak)) {\n\t\t\t\t\t//didn't match the before part, therfore skipping\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (after) {\n\t\t\t\tif (!after.test(stringAfterBreak)) {\n\t\t\t\t\t//didn't match the after part, therfore skipping\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn breaksAtResult(breaks, ruleKey);\n\t\t}\n\t\t//artificial rule 999: if no rule matched is Any ÷ Any so return true\n\t\treturn breaksAtResult(true, \"999\");\n\t}\n\tsegment(input) {\n\t\tcheckReceiver(this, \"segment\");\n\t\treturn new SegmentIterator(this, input);\n\t}\n\tresolvedOptions() {\n\t\tcheckReceiver(this, \"resolvedOptions\");\n\t\treturn { ...getMultiInternalSlots(__INTERNAL_SLOT_MAP__, this, \"locale\", \"granularity\") };\n\t}\n\tstatic availableLocales = new Set(Object.keys(SegmentationRules).filter((key) => key !== \"root\"));\n\tstatic supportedLocalesOf(locales, options) {\n\t\treturn SupportedLocales(Segmenter.availableLocales, CanonicalizeLocaleList(locales), options);\n\t}\n\tstatic polyfilled = true;\n}\n/**\n* Determines if a segment is word-like according to Unicode Word Break rules.\n*\n* A segment is considered word-like if it contains alphabetic characters,\n* numbers, or ideographs. Segments containing only whitespace, punctuation,\n* or symbols are not word-like.\n*\n* Per Unicode Word Break (UAX #29) and native Intl.Segmenter implementations,\n* this matches segments that contain characters from word character classes:\n* ALetter, Hebrew_Letter, Numeric, Katakana, Hiragana, and Ideographic.\n*\n* @param segment - The text segment to check\n* @param matchingRule - The word break rule that created this segment\n* @returns true if the segment is word-like\n*/\nfunction isSegmentWordLike(segment, matchingRule) {\n\t// Primary check: Does the segment contain word characters?\n\t// Word-like segments contain letters (including ideographs), numbers,\n\t// or connecting characters like apostrophes within words\n\t//\n\t// Regex matches:\n\t// - Letters: \\p{L} (all Unicode letters)\n\t// - Numbers: \\p{N} (all Unicode numbers)\n\t// - Marks: \\p{M} (combining marks, typically part of letters)\n\t//\n\t// Note: Using Unicode property escapes which work in modern JS engines\n\t// and are necessary for proper internationalization\n\t// Lazy-initialize Unicode regex on first use\n\tif (WORD_CHARACTERS_UNICODE_REGEX === undefined) {\n\t\ttry {\n\t\t\t// Create Unicode property escape regex at runtime to avoid compile-time TS1501 error\n\t\t\tWORD_CHARACTERS_UNICODE_REGEX = new RegExp(\"[\\\\p{L}\\\\p{N}\\\\p{M}]\", \"u\");\n\t\t} catch {\n\t\t\t// Environment doesn't support Unicode property escapes\n\t\t\tWORD_CHARACTERS_UNICODE_REGEX = null;\n\t\t}\n\t}\n\tlet hasWordCharacters;\n\tif (WORD_CHARACTERS_UNICODE_REGEX) {\n\t\t// Check if segment contains word characters using Unicode property escapes\n\t\t// This matches the behavior of native Intl.Segmenter in Chrome/Firefox\n\t\thasWordCharacters = WORD_CHARACTERS_UNICODE_REGEX.test(segment);\n\t} else {\n\t\t// Fallback for environments without Unicode property escapes\n\t\t// Match basic word characters: letters, numbers, underscores\n\t\thasWordCharacters = WORD_CHARACTERS_BASIC_REGEX.test(segment);\n\t}\n\t// If segment contains word characters, it's word-like\n\tif (hasWordCharacters) {\n\t\treturn true;\n\t}\n\t// If no word characters, check if it's definitely not word-like via rules\n\t// Non-word-like rules per Unicode Word Break specification (UAX #29):\n\t// https://unicode.org/reports/tr29/#Word_Boundaries\n\t//\n\t// WB3a (3.1): Break before newlines (sot ÷ (Newline | CR | LF))\n\t// WB3b (3.2): Break after newlines ((Newline | CR | LF) ÷ eot)\n\t// WB3d (3.4): Keep horizontal whitespace together (WSegSpace × WSegSpace)\n\t//\n\t// These rules specifically identify non-word segments like line breaks and whitespace\n\tconst definitelyNotWordLikeRules = [\n\t\t\"3.1\",\n\t\t\"3.2\",\n\t\t\"3.4\"\n\t];\n\tif (definitelyNotWordLikeRules.includes(matchingRule)) {\n\t\treturn false;\n\t}\n\t// For segments without word characters and not matching specific non-word rules,\n\t// return false (e.g., punctuation, symbols, whitespace via rule 999)\n\treturn false;\n}\nconst createSegmentDataObject = (segmenter, segment, index, input, matchingRule) => {\n\tconst returnValue = {\n\t\tsegment,\n\t\tindex,\n\t\tinput\n\t};\n\tif (getSlot(segmenter, \"granularity\") === \"word\") {\n\t\treturnValue.isWordLike = isSegmentWordLike(segment, matchingRule);\n\t}\n\treturn returnValue;\n};\nclass SegmentIterator {\n\tsegmenter;\n\tlastSegmentIndex;\n\tinput;\n\tconstructor(segmenter, input) {\n\t\tthis.segmenter = segmenter;\n\t\tthis.lastSegmentIndex = 0;\n\t\tif (typeof input == \"symbol\") {\n\t\t\tthrow TypeError(`Input must not be a symbol`);\n\t\t}\n\t\tthis.input = String(input);\n\t}\n\t[Symbol.iterator]() {\n\t\treturn new SegmentIterator(this.segmenter, this.input);\n\t}\n\tnext() {\n\t\t//using only the relevant bit of the string\n\t\tlet checkString = this.input.substring(this.lastSegmentIndex);\n\t\t//loop from the start of the checkString, until exactly length (breaksAt returns break at pos=== lenght)\n\t\tfor (let position = 1; position <= checkString.length; position++) {\n\t\t\tconst { breaks, matchingRule } = this.segmenter.breaksAt(position, checkString);\n\t\t\tif (breaks) {\n\t\t\t\tconst segment = checkString.substring(0, position);\n\t\t\t\tconst index = this.lastSegmentIndex;\n\t\t\t\tthis.lastSegmentIndex += position;\n\t\t\t\treturn {\n\t\t\t\t\tdone: false,\n\t\t\t\t\tvalue: createSegmentDataObject(this.segmenter, segment, index, this.input, matchingRule)\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\t//no segment was found by the loop, therefore the segmentation is done\n\t\treturn {\n\t\t\tdone: true,\n\t\t\tvalue: undefined\n\t\t};\n\t}\n\tcontaining(positionInput) {\n\t\tif (typeof positionInput === \"bigint\") {\n\t\t\tthrow TypeError(\"Index must not be a BigInt\");\n\t\t}\n\t\tlet position = Number(positionInput);\n\t\t//https://tc39.es/ecma262/#sec-tointegerorinfinity\n\t\t// 2. If number is NaN, +0𝔽, or -0𝔽, return 0.\n\t\tif (isNaN(position) || !position) {\n\t\t\tposition = 0;\n\t\t}\n\t\t// 5. Let integer be floor(abs(ℝ(number))).\n\t\t// 6. If number < -0𝔽, set integer to -integer.\n\t\tposition = Math.floor(Math.abs(position)) * (position < 0 ? -1 : 1);\n\t\tif (position < 0 || position >= this.input.length) {\n\t\t\treturn undefined;\n\t\t}\n\t\t//find previous break point\n\t\tlet previousBreakPoint = 0;\n\t\tif (position === 0) {\n\t\t\tpreviousBreakPoint = 0;\n\t\t} else {\n\t\t\tconst checkString = this.input;\n\t\t\tfor (let cursor = position; cursor >= 0; cursor--) {\n\t\t\t\tconst { breaks } = this.segmenter.breaksAt(cursor, checkString);\n\t\t\t\tif (breaks) {\n\t\t\t\t\tpreviousBreakPoint = cursor;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tlet checkString = this.input.substring(previousBreakPoint);\n\t\t//find next break point\n\t\tfor (let cursor = 1; cursor <= checkString.length; cursor++) {\n\t\t\tconst { breaks, matchingRule } = this.segmenter.breaksAt(cursor, checkString);\n\t\t\tif (breaks) {\n\t\t\t\tconst segment = checkString.substring(0, cursor);\n\t\t\t\treturn createSegmentDataObject(this.segmenter, segment, previousBreakPoint, this.input, matchingRule);\n\t\t\t}\n\t\t}\n\t}\n}\nconst __INTERNAL_SLOT_MAP__ = new WeakMap();\nfunction getSlot(instance, key) {\n\treturn getInternalSlot(__INTERNAL_SLOT_MAP__, instance, key);\n}\nfunction setSlot(instance, key, value) {\n\tsetInternalSlot(__INTERNAL_SLOT_MAP__, instance, key, value);\n}\nfunction checkReceiver(receiver, methodName) {\n\tif (!(receiver instanceof Segmenter)) {\n\t\tthrow TypeError(`Method Intl.Segmenter.prototype.${methodName} called on incompatible receiver`);\n\t}\n}\ntry {\n\t// IE11 does not have Symbol\n\tif (typeof Symbol !== \"undefined\") {\n\t\tObject.defineProperty(Segmenter.prototype, Symbol.toStringTag, {\n\t\t\tvalue: \"Intl.Segmenter\",\n\t\t\twritable: false,\n\t\t\tenumerable: false,\n\t\t\tconfigurable: true\n\t\t});\n\t}\n\t//github.com/tc39/test262/blob/main/test/intl402/Segmenter/constructor/length.js\n\tObject.defineProperty(Segmenter.prototype.constructor, \"length\", {\n\t\tvalue: 0,\n\t\twritable: false,\n\t\tenumerable: false,\n\t\tconfigurable: true\n\t});\n\t// https://github.com/tc39/test262/blob/main/test/intl402/Segmenter/constructor/supportedLocalesOf/length.js\n\tObject.defineProperty(Segmenter.supportedLocalesOf, \"length\", {\n\t\tvalue: 1,\n\t\twritable: false,\n\t\tenumerable: false,\n\t\tconfigurable: true\n\t});\n} catch {}\n","export const replaceVariables = (variables, input) => {\n\tconst findVarRegex = /\\$[A-Za-z0-9_]+/gm;\n\treturn input.replaceAll(findVarRegex, (match) => {\n\t\tif (!(match in variables)) {\n\t\t\tthrow new Error(`No such variable ${match}`);\n\t\t}\n\t\treturn variables[match];\n\t});\n};\nexport const isSurrogate = (str, pos) => {\n\treturn 55296 <= str.charCodeAt(pos - 1) && str.charCodeAt(pos - 1) <= 56319 && 56320 <= str.charCodeAt(pos) && str.charCodeAt(pos) <= 57343;\n};\n// alternative surrogate check mimicking the java implementation\n// const TRAIL_SURROGATE_BITMASK = 0xfffffc00\n// const TRAIL_SURROGATE_BITS = 0xdc00\n// const LEAD_SURROGATE_BITMASK = 0xfffffc00\n// const LEAD_SURROGATE_BITS = 0xd800\n// const isSurrogate = (text: string, position: number) => {\n// if (\n// (text.charCodeAt(position - 1) & LEAD_SURROGATE_BITMASK) ==\n// LEAD_SURROGATE_BITS &&\n// (text.charCodeAt(position) & TRAIL_SURROGATE_BITMASK) ==\n// TRAIL_SURROGATE_BITS\n// ) {\n// return true\n// } else {\n// return false\n// }\n// }\n","/**\n* https://tc39.es/ecma402/#sec-getoptionsobject\n* @param options\n* @returns\n*/\nexport function GetOptionsObject(options) {\n\tif (typeof options === \"undefined\") {\n\t\treturn Object.create(null);\n\t}\n\tif (typeof options === \"object\") {\n\t\treturn options;\n\t}\n\tthrow new TypeError(\"Options must be an object\");\n}\n","import { Segmenter } from \"./src/segmenter.js\";\nObject.defineProperty(Intl, \"Segmenter\", {\n\tvalue: Segmenter,\n\tenumerable: false,\n\twritable: true,\n\tconfigurable: true\n});\n"],"names":["CanonicalizeLocaleList","locales","Intl","getCanonicalLocales","inexact","quadrant","EXP_LIMIT","MAX_DIGITS","NUMERALS","LN10","PI","DEFAULTS","precision","rounding","modulo","toExpNeg","toExpPos","minE","maxE","crypto","external","decimalError","invalidArgument","precisionLimitExceeded","cryptoUnavailable","tag","mathfloor","Math","floor","mathpow","pow","isBinary","isHex","isOctal","isDecimal","BASE","LN10_PRECISION","length","PI_PRECISION","P","toStringTag","digitsToString","d","i","k","ws","indexOfLastWord","str","w","getZeroString","checkInt32","min","max","Error","checkRoundingDigits","rm","repeating","di","r","rd","ceil","convertBase","baseIn","baseOut","j","arrL","arr","strL","indexOf","charAt","reverse","absoluteValue","abs","x","this","constructor","s","finalise","e","clampedTo","clamp","Ctor","NaN","gt","cmp","comparedTo","y","xdL","ydL","xd","yd","xs","ys","cosine","cos","pr","sd","len","isZero","tinyPow","toString","taylorSeries","times","cos2x","minus","plus","toLessThanHalfPi","neg","cubeRoot","cbrt","m","n","rep","t","t3","t3plusx","isFinite","toExponential","slice","divide","eq","decimalPlaces","dp","dividedBy","div","dividedToIntegerBy","divToInt","equals","greaterThan","greaterThanOrEqualTo","gte","hyperbolicCosine","cosh","one","cosh2_x","d8","hyperbolicSine","sinh","sqrt","sinh2_x","d5","d16","d20","hyperbolicTangent","tanh","inverseCosine","acos","isNeg","getPi","atan","inverseHyperbolicCosine","acosh","lte","ln","inverseHyperbolicSine","asinh","inverseHyperbolicTangent","atanh","wpr","xsd","inverseSine","asin","halfPi","inverseTangent","px","x2","isInteger","isInt","isNaN","isNegative","isPositive","isPos","lessThan","lt","lessThanOrEqualTo","logarithm","log","base","isBase10","denominator","inf","num","arg","naturalLogarithm","getLn10","sub","xe","xLTy","push","pop","shift","getBase10Exponent","mod","q","naturalExponential","exp","negated","add","carry","unshift","z","getPrecision","round","sine","sin","sin2_x","squareRoot","tangent","tan","mul","rL","toBinary","toStringBinary","toDecimalPlaces","toDP","finiteToString","toFixed","toFraction","maxD","d0","d1","d2","n0","n1","toHexadecimal","toHex","toNearest","toNumber","toOctal","toPower","yn","intPow","toPrecision","toSignificantDigits","toSD","truncated","trunc","valueOf","toJSON","multiplyInteger","temp","compare","a","b","aL","bL","subtract","logBase","more","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","sign","isTruncated","digits","roundUp","xdi","out","isExp","nonFiniteToString","zs","truncate","isOdd","maxOrMin","args","guard","sum","c","c0","numerator","x1","String","parseDecimal","replace","search","substring","charCodeAt","parseOther","divisor","isFloat","p","test","toLowerCase","Decimal","isHyperbolic","u","pi","atan2","config","obj","v","useDefaults","defaults","ps","getRandomValues","randomBytes","hypot","arguments","isDecimalInstance","log2","log10","random","Uint32Array","copy","Symbol","for","clone","prototype","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","EUCLID","set","hasOwnProperty","GetOption","opts","prop","type","values","fallback","TypeError","value","undefined","Boolean","o","ToString","filter","val","RangeError","join","memoize","fn","options","cache","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","monadic","cacheKey","computedValue","get","call","variadic","Array","apply","assemble","context","serialize","bind","create","JSON","stringify","ObjectWithoutPrototypeCache","Object","key","strategies","setInternalSlot","map","pl","field","getMultiInternalSlots","fields","slots","reduce","all","f","NumberFormat","PluralRules","Locale","ListFormat","availableLocalesSetCache","WeakMap","BestAvailableLocale","availableLocales","locale","availableSet","Set","candidate","has","pos","lastIndexOf","supplemental","languageMatching","paradigmLocales","_locales","$enUS","_value","$cnsar","$americas","$maghreb","no","_desired","_distance","bs","hr","sr","aa","de","_oneway","nb","ru","en","nl","es","ur","hi","zh","fr","fil","ar","sk","da","id","tr","it","az","et","ff","gn","iu","kln","kok","kpe","luy","lv","mg","mn","ms","ne","om","or","qu","sc","sq","syr","uz","yi","regions","EU","EZ","QO","UN","condition","message","Err","PROCESSED_DATA","isMatched","languageMatchInfoLocale","matchVariables","language","script","region","split","matches","shouldInclude","expandedMatchedRegions","list","serializeLSR","lsr","findMatchingDistanceForLSR","desired","supported","data","oneway","distance","findMatchingDistance","desiredLocale","maximize","supportedLocale","desiredLSR","supportedLSR","matchingDistance","keys","l","processData","getFallbackCandidates","candidates","current","lastDash","canonicalizedSupportedCache","LookupSupportedLocales","requestedLocales","subset","availableLocale","SupportedLocales","matcher","ToObject","from","BestFitMatcher","getDefaultLocale","foundLocale","extension","noExtensionLocales","noExtensionLocaleMap","noExtensionLocale","result","supportedLocales","threshold","lowestDistance","Infinity","matchedDesiredLocale","distances","canonicalizedSupportedLocales","supportedSet","matchedSupportedLocale","maximized","maximizedCandidates","forEach","canonicalLocale","supportedIndex","originalSupported","finalDistance","findBestMatch","CanonicalizeUValue","ukey","uvalue","lowerValue","CanonicalizeUnicodeLocaleId","ResolveLocale","relevantExtensionKeys","localeData","localeMatcher","LookupMatcher","foundLocaleData","dataLocale","components","keywords","attributes","keyword","size","subtag","find","UnicodeExtensionComponents","supportedKeywords","keyLocaleData","isArray","supportedKeyword","entry","requestedValue","optionsValue","supportedAttributes","attr","kw","newLocale","privateIndex","InsertUnicodeExtensionAndCanonicalize","SegmentationRules","WORD_CHARACTERS_BASIC_REGEX","WORD_CHARACTERS_UNICODE_REGEX","generateRuleRegex","rule","variables","after","RegExp","input","replaceAll","match","replaceVariables","breaksAtResult","breaks","matchingRule","Segmenter","rules","ruleSortedKeys","mergedSegmentationTypeValue","GetOptionsObject","opt","granularity","setSlot","root","localeOverrides","localeSegmentationTypeValue","segmentRules","suppressions","segmentationTypeValue","preparedRules","ruleNr","ruleValue","preparedRule","before","prepareLocaleSegmentationRules","sort","Number","breaksAt","position","stringBeforeBreak","stringAfterBreak","trim","endsWith","ruleKey","segment","checkReceiver","SegmentIterator","resolvedOptions","__INTERNAL_SLOT_MAP__","static","supportedLocalesOf","createSegmentDataObject","segmenter","index","returnValue","isWordLike","hasWordCharacters","includes","isSegmentWordLike","lastSegmentIndex","iterator","next","checkString","done","containing","positionInput","previousBreakPoint","cursor","instance","receiver","methodName","defineProperty","writable","enumerable","configurable"],"sourceRoot":""}