@intlayer/backend 7.0.8 → 7.0.9-canary.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (909) hide show
  1. package/README.md +6 -5
  2. package/dist/assets/utils/AI/askDocQuestion/embeddings/frequent_questions/en/package_version_error.json +3080 -0
  3. package/dist/cjs/controllers/dictionary.controller.cjs +64 -41
  4. package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -1
  5. package/dist/cjs/emails/MagicLinkEmail.cjs +242 -0
  6. package/dist/cjs/emails/MagicLinkEmail.cjs.map +1 -0
  7. package/dist/cjs/index.cjs +1 -1
  8. package/dist/cjs/index.cjs.map +1 -1
  9. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/index.cjs +16 -0
  10. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/index.cjs.map +1 -0
  11. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.cjs +25 -0
  12. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.cjs.map +1 -0
  13. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.cjs +31 -0
  14. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.cjs.map +1 -0
  15. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/utils.cjs +38 -0
  16. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/utils.cjs.map +1 -0
  17. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/xmlenc.cjs +231 -0
  18. package/dist/cjs/node_modules/@authenio/xml-encryption/lib/xmlenc.cjs.map +1 -0
  19. package/dist/cjs/node_modules/@better-auth/sso/dist/index.cjs +1210 -0
  20. package/dist/cjs/node_modules/@better-auth/sso/dist/index.cjs.map +1 -0
  21. package/dist/cjs/node_modules/@better-fetch/fetch/dist/index.cjs +362 -0
  22. package/dist/cjs/node_modules/@better-fetch/fetch/dist/index.cjs.map +1 -0
  23. package/dist/cjs/node_modules/@xmldom/is-dom-node/dist/index.cjs +89 -0
  24. package/dist/cjs/node_modules/@xmldom/is-dom-node/dist/index.cjs.map +1 -0
  25. package/dist/cjs/node_modules/@xmldom/xmldom/lib/conventions.cjs +110 -0
  26. package/dist/cjs/node_modules/@xmldom/xmldom/lib/conventions.cjs.map +1 -0
  27. package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom-parser.cjs +248 -0
  28. package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom-parser.cjs.map +1 -0
  29. package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom.cjs +1309 -0
  30. package/dist/cjs/node_modules/@xmldom/xmldom/lib/dom.cjs.map +1 -0
  31. package/dist/cjs/node_modules/@xmldom/xmldom/lib/entities.cjs +2176 -0
  32. package/dist/cjs/node_modules/@xmldom/xmldom/lib/entities.cjs.map +1 -0
  33. package/dist/cjs/node_modules/@xmldom/xmldom/lib/index.cjs +20 -0
  34. package/dist/cjs/node_modules/@xmldom/xmldom/lib/index.cjs.map +1 -0
  35. package/dist/cjs/node_modules/@xmldom/xmldom/lib/sax.cjs +499 -0
  36. package/dist/cjs/node_modules/@xmldom/xmldom/lib/sax.cjs.map +1 -0
  37. package/dist/cjs/node_modules/asn1/lib/ber/errors.cjs +20 -0
  38. package/dist/cjs/node_modules/asn1/lib/ber/errors.cjs.map +1 -0
  39. package/dist/cjs/node_modules/asn1/lib/ber/index.cjs +28 -0
  40. package/dist/cjs/node_modules/asn1/lib/ber/index.cjs.map +1 -0
  41. package/dist/cjs/node_modules/asn1/lib/ber/reader.cjs +167 -0
  42. package/dist/cjs/node_modules/asn1/lib/ber/reader.cjs.map +1 -0
  43. package/dist/cjs/node_modules/asn1/lib/ber/types.cjs +47 -0
  44. package/dist/cjs/node_modules/asn1/lib/ber/types.cjs.map +1 -0
  45. package/dist/cjs/node_modules/asn1/lib/ber/writer.cjs +223 -0
  46. package/dist/cjs/node_modules/asn1/lib/ber/writer.cjs.map +1 -0
  47. package/dist/cjs/node_modules/asn1/lib/index.cjs +21 -0
  48. package/dist/cjs/node_modules/asn1/lib/index.cjs.map +1 -0
  49. package/dist/cjs/node_modules/camelcase/index.cjs +78 -0
  50. package/dist/cjs/node_modules/camelcase/index.cjs.map +1 -0
  51. package/dist/cjs/node_modules/escape-html/index.cjs +71 -0
  52. package/dist/cjs/node_modules/escape-html/index.cjs.map +1 -0
  53. package/dist/cjs/node_modules/fast-xml-parser/src/fxp.cjs +9 -0
  54. package/dist/cjs/node_modules/fast-xml-parser/src/fxp.cjs.map +1 -0
  55. package/dist/cjs/node_modules/fast-xml-parser/src/util.cjs +29 -0
  56. package/dist/cjs/node_modules/fast-xml-parser/src/util.cjs.map +1 -0
  57. package/dist/cjs/node_modules/fast-xml-parser/src/validator.cjs +244 -0
  58. package/dist/cjs/node_modules/fast-xml-parser/src/validator.cjs.map +1 -0
  59. package/dist/cjs/node_modules/jose/dist/webapi/lib/base64.cjs +14 -0
  60. package/dist/cjs/node_modules/jose/dist/webapi/lib/base64.cjs.map +1 -0
  61. package/dist/cjs/node_modules/jose/dist/webapi/lib/buffer_utils.cjs +10 -0
  62. package/dist/cjs/node_modules/jose/dist/webapi/lib/buffer_utils.cjs.map +1 -0
  63. package/dist/cjs/node_modules/jose/dist/webapi/lib/is_object.cjs +17 -0
  64. package/dist/cjs/node_modules/jose/dist/webapi/lib/is_object.cjs.map +1 -0
  65. package/dist/cjs/node_modules/jose/dist/webapi/util/base64url.cjs +20 -0
  66. package/dist/cjs/node_modules/jose/dist/webapi/util/base64url.cjs.map +1 -0
  67. package/dist/cjs/node_modules/jose/dist/webapi/util/decode_jwt.cjs +32 -0
  68. package/dist/cjs/node_modules/jose/dist/webapi/util/decode_jwt.cjs.map +1 -0
  69. package/dist/cjs/node_modules/jose/dist/webapi/util/errors.cjs +28 -0
  70. package/dist/cjs/node_modules/jose/dist/webapi/util/errors.cjs.map +1 -0
  71. package/dist/cjs/node_modules/node-forge/lib/aes.cjs +604 -0
  72. package/dist/cjs/node_modules/node-forge/lib/aes.cjs.map +1 -0
  73. package/dist/cjs/node_modules/node-forge/lib/aesCipherSuites.cjs +202 -0
  74. package/dist/cjs/node_modules/node-forge/lib/aesCipherSuites.cjs.map +1 -0
  75. package/dist/cjs/node_modules/node-forge/lib/asn1-validator.cjs +83 -0
  76. package/dist/cjs/node_modules/node-forge/lib/asn1-validator.cjs.map +1 -0
  77. package/dist/cjs/node_modules/node-forge/lib/asn1.cjs +945 -0
  78. package/dist/cjs/node_modules/node-forge/lib/asn1.cjs.map +1 -0
  79. package/dist/cjs/node_modules/node-forge/lib/baseN.cjs +144 -0
  80. package/dist/cjs/node_modules/node-forge/lib/baseN.cjs.map +1 -0
  81. package/dist/cjs/node_modules/node-forge/lib/cipher.cjs +193 -0
  82. package/dist/cjs/node_modules/node-forge/lib/cipher.cjs.map +1 -0
  83. package/dist/cjs/node_modules/node-forge/lib/cipherModes.cjs +604 -0
  84. package/dist/cjs/node_modules/node-forge/lib/cipherModes.cjs.map +1 -0
  85. package/dist/cjs/node_modules/node-forge/lib/des.cjs +1194 -0
  86. package/dist/cjs/node_modules/node-forge/lib/des.cjs.map +1 -0
  87. package/dist/cjs/node_modules/node-forge/lib/ed25519.cjs +1027 -0
  88. package/dist/cjs/node_modules/node-forge/lib/ed25519.cjs.map +1 -0
  89. package/dist/cjs/node_modules/node-forge/lib/forge.cjs +22 -0
  90. package/dist/cjs/node_modules/node-forge/lib/forge.cjs.map +1 -0
  91. package/dist/cjs/node_modules/node-forge/lib/hmac.cjs +114 -0
  92. package/dist/cjs/node_modules/node-forge/lib/hmac.cjs.map +1 -0
  93. package/dist/cjs/node_modules/node-forge/lib/index.cjs +73 -0
  94. package/dist/cjs/node_modules/node-forge/lib/index.cjs.map +1 -0
  95. package/dist/cjs/node_modules/node-forge/lib/jsbn.cjs +1263 -0
  96. package/dist/cjs/node_modules/node-forge/lib/jsbn.cjs.map +1 -0
  97. package/dist/cjs/node_modules/node-forge/lib/kem.cjs +153 -0
  98. package/dist/cjs/node_modules/node-forge/lib/kem.cjs.map +1 -0
  99. package/dist/cjs/node_modules/node-forge/lib/log.cjs +248 -0
  100. package/dist/cjs/node_modules/node-forge/lib/log.cjs.map +1 -0
  101. package/dist/cjs/node_modules/node-forge/lib/md.all.cjs +31 -0
  102. package/dist/cjs/node_modules/node-forge/lib/md.all.cjs.map +1 -0
  103. package/dist/cjs/node_modules/node-forge/lib/md.cjs +25 -0
  104. package/dist/cjs/node_modules/node-forge/lib/md.cjs.map +1 -0
  105. package/dist/cjs/node_modules/node-forge/lib/md5.cjs +331 -0
  106. package/dist/cjs/node_modules/node-forge/lib/md5.cjs.map +1 -0
  107. package/dist/cjs/node_modules/node-forge/lib/mgf.cjs +27 -0
  108. package/dist/cjs/node_modules/node-forge/lib/mgf.cjs.map +1 -0
  109. package/dist/cjs/node_modules/node-forge/lib/mgf1.cjs +51 -0
  110. package/dist/cjs/node_modules/node-forge/lib/mgf1.cjs.map +1 -0
  111. package/dist/cjs/node_modules/node-forge/lib/oids.cjs +160 -0
  112. package/dist/cjs/node_modules/node-forge/lib/oids.cjs.map +1 -0
  113. package/dist/cjs/node_modules/node-forge/lib/pbe.cjs +822 -0
  114. package/dist/cjs/node_modules/node-forge/lib/pbe.cjs.map +1 -0
  115. package/dist/cjs/node_modules/node-forge/lib/pbkdf2.cjs +132 -0
  116. package/dist/cjs/node_modules/node-forge/lib/pbkdf2.cjs.map +1 -0
  117. package/dist/cjs/node_modules/node-forge/lib/pem.cjs +182 -0
  118. package/dist/cjs/node_modules/node-forge/lib/pem.cjs.map +1 -0
  119. package/dist/cjs/node_modules/node-forge/lib/pkcs1.cjs +207 -0
  120. package/dist/cjs/node_modules/node-forge/lib/pkcs1.cjs.map +1 -0
  121. package/dist/cjs/node_modules/node-forge/lib/pkcs12.cjs +730 -0
  122. package/dist/cjs/node_modules/node-forge/lib/pkcs12.cjs.map +1 -0
  123. package/dist/cjs/node_modules/node-forge/lib/pkcs7.cjs +648 -0
  124. package/dist/cjs/node_modules/node-forge/lib/pkcs7.cjs.map +1 -0
  125. package/dist/cjs/node_modules/node-forge/lib/pkcs7asn1.cjs +412 -0
  126. package/dist/cjs/node_modules/node-forge/lib/pkcs7asn1.cjs.map +1 -0
  127. package/dist/cjs/node_modules/node-forge/lib/pki.cjs +108 -0
  128. package/dist/cjs/node_modules/node-forge/lib/pki.cjs.map +1 -0
  129. package/dist/cjs/node_modules/node-forge/lib/prime.cjs +200 -0
  130. package/dist/cjs/node_modules/node-forge/lib/prime.cjs.map +1 -0
  131. package/dist/cjs/node_modules/node-forge/lib/prng.cjs +297 -0
  132. package/dist/cjs/node_modules/node-forge/lib/prng.cjs.map +1 -0
  133. package/dist/cjs/node_modules/node-forge/lib/pss.cjs +148 -0
  134. package/dist/cjs/node_modules/node-forge/lib/pss.cjs.map +1 -0
  135. package/dist/cjs/node_modules/node-forge/lib/random.cjs +148 -0
  136. package/dist/cjs/node_modules/node-forge/lib/random.cjs.map +1 -0
  137. package/dist/cjs/node_modules/node-forge/lib/rc2.cjs +545 -0
  138. package/dist/cjs/node_modules/node-forge/lib/rc2.cjs.map +1 -0
  139. package/dist/cjs/node_modules/node-forge/lib/rsa.cjs +1306 -0
  140. package/dist/cjs/node_modules/node-forge/lib/rsa.cjs.map +1 -0
  141. package/dist/cjs/node_modules/node-forge/lib/sha1.cjs +237 -0
  142. package/dist/cjs/node_modules/node-forge/lib/sha1.cjs.map +1 -0
  143. package/dist/cjs/node_modules/node-forge/lib/sha256.cjs +274 -0
  144. package/dist/cjs/node_modules/node-forge/lib/sha256.cjs.map +1 -0
  145. package/dist/cjs/node_modules/node-forge/lib/sha512.cjs +420 -0
  146. package/dist/cjs/node_modules/node-forge/lib/sha512.cjs.map +1 -0
  147. package/dist/cjs/node_modules/node-forge/lib/ssh.cjs +201 -0
  148. package/dist/cjs/node_modules/node-forge/lib/ssh.cjs.map +1 -0
  149. package/dist/cjs/node_modules/node-forge/lib/tls.cjs +3662 -0
  150. package/dist/cjs/node_modules/node-forge/lib/tls.cjs.map +1 -0
  151. package/dist/cjs/node_modules/node-forge/lib/util.cjs +2124 -0
  152. package/dist/cjs/node_modules/node-forge/lib/util.cjs.map +1 -0
  153. package/dist/cjs/node_modules/node-forge/lib/x509.cjs +2171 -0
  154. package/dist/cjs/node_modules/node-forge/lib/x509.cjs.map +1 -0
  155. package/dist/cjs/node_modules/node-rsa/src/NodeRSA.cjs +341 -0
  156. package/dist/cjs/node_modules/node-rsa/src/NodeRSA.cjs.map +1 -0
  157. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/encryptEngines.cjs +26 -0
  158. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/encryptEngines.cjs.map +1 -0
  159. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/io.cjs +65 -0
  160. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/io.cjs.map +1 -0
  161. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/js.cjs +44 -0
  162. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/js.cjs.map +1 -0
  163. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/node12.cjs +49 -0
  164. package/dist/cjs/node_modules/node-rsa/src/encryptEngines/node12.cjs.map +1 -0
  165. package/dist/cjs/node_modules/node-rsa/src/formats/components.cjs +55 -0
  166. package/dist/cjs/node_modules/node-rsa/src/formats/components.cjs.map +1 -0
  167. package/dist/cjs/node_modules/node-rsa/src/formats/formats.cjs +86 -0
  168. package/dist/cjs/node_modules/node-rsa/src/formats/formats.cjs.map +1 -0
  169. package/dist/cjs/node_modules/node-rsa/src/formats/openssh.cjs +177 -0
  170. package/dist/cjs/node_modules/node-rsa/src/formats/openssh.cjs.map +1 -0
  171. package/dist/cjs/node_modules/node-rsa/src/formats/pkcs1.cjs +104 -0
  172. package/dist/cjs/node_modules/node-rsa/src/formats/pkcs1.cjs.map +1 -0
  173. package/dist/cjs/node_modules/node-rsa/src/formats/pkcs8.cjs +131 -0
  174. package/dist/cjs/node_modules/node-rsa/src/formats/pkcs8.cjs.map +1 -0
  175. package/dist/cjs/node_modules/node-rsa/src/libs/jsbn.cjs +1347 -0
  176. package/dist/cjs/node_modules/node-rsa/src/libs/jsbn.cjs.map +1 -0
  177. package/dist/cjs/node_modules/node-rsa/src/libs/rsa.cjs +231 -0
  178. package/dist/cjs/node_modules/node-rsa/src/libs/rsa.cjs.map +1 -0
  179. package/dist/cjs/node_modules/node-rsa/src/schemes/oaep.cjs +123 -0
  180. package/dist/cjs/node_modules/node-rsa/src/schemes/oaep.cjs.map +1 -0
  181. package/dist/cjs/node_modules/node-rsa/src/schemes/pkcs1.cjs +175 -0
  182. package/dist/cjs/node_modules/node-rsa/src/schemes/pkcs1.cjs.map +1 -0
  183. package/dist/cjs/node_modules/node-rsa/src/schemes/pss.cjs +123 -0
  184. package/dist/cjs/node_modules/node-rsa/src/schemes/pss.cjs.map +1 -0
  185. package/dist/cjs/node_modules/node-rsa/src/schemes/schemes.cjs +28 -0
  186. package/dist/cjs/node_modules/node-rsa/src/schemes/schemes.cjs.map +1 -0
  187. package/dist/cjs/node_modules/node-rsa/src/utils.cjs +84 -0
  188. package/dist/cjs/node_modules/node-rsa/src/utils.cjs.map +1 -0
  189. package/dist/cjs/node_modules/pako/index.cjs +25 -0
  190. package/dist/cjs/node_modules/pako/index.cjs.map +1 -0
  191. package/dist/cjs/node_modules/pako/lib/deflate.cjs +311 -0
  192. package/dist/cjs/node_modules/pako/lib/deflate.cjs.map +1 -0
  193. package/dist/cjs/node_modules/pako/lib/inflate.cjs +317 -0
  194. package/dist/cjs/node_modules/pako/lib/inflate.cjs.map +1 -0
  195. package/dist/cjs/node_modules/pako/lib/utils/common.cjs +77 -0
  196. package/dist/cjs/node_modules/pako/lib/utils/common.cjs.map +1 -0
  197. package/dist/cjs/node_modules/pako/lib/utils/strings.cjs +131 -0
  198. package/dist/cjs/node_modules/pako/lib/utils/strings.cjs.map +1 -0
  199. package/dist/cjs/node_modules/pako/lib/zlib/adler32.cjs +29 -0
  200. package/dist/cjs/node_modules/pako/lib/zlib/adler32.cjs.map +1 -0
  201. package/dist/cjs/node_modules/pako/lib/zlib/constants.cjs +43 -0
  202. package/dist/cjs/node_modules/pako/lib/zlib/constants.cjs.map +1 -0
  203. package/dist/cjs/node_modules/pako/lib/zlib/crc32.cjs +31 -0
  204. package/dist/cjs/node_modules/pako/lib/zlib/crc32.cjs.map +1 -0
  205. package/dist/cjs/node_modules/pako/lib/zlib/deflate.cjs +889 -0
  206. package/dist/cjs/node_modules/pako/lib/zlib/deflate.cjs.map +1 -0
  207. package/dist/cjs/node_modules/pako/lib/zlib/gzheader.cjs +27 -0
  208. package/dist/cjs/node_modules/pako/lib/zlib/gzheader.cjs.map +1 -0
  209. package/dist/cjs/node_modules/pako/lib/zlib/inffast.cjs +227 -0
  210. package/dist/cjs/node_modules/pako/lib/zlib/inffast.cjs.map +1 -0
  211. package/dist/cjs/node_modules/pako/lib/zlib/inflate.cjs +1038 -0
  212. package/dist/cjs/node_modules/pako/lib/zlib/inflate.cjs.map +1 -0
  213. package/dist/cjs/node_modules/pako/lib/zlib/inftrees.cjs +278 -0
  214. package/dist/cjs/node_modules/pako/lib/zlib/inftrees.cjs.map +1 -0
  215. package/dist/cjs/node_modules/pako/lib/zlib/messages.cjs +25 -0
  216. package/dist/cjs/node_modules/pako/lib/zlib/messages.cjs.map +1 -0
  217. package/dist/cjs/node_modules/pako/lib/zlib/trees.cjs +626 -0
  218. package/dist/cjs/node_modules/pako/lib/zlib/trees.cjs.map +1 -0
  219. package/dist/cjs/node_modules/pako/lib/zlib/zstream.cjs +29 -0
  220. package/dist/cjs/node_modules/pako/lib/zlib/zstream.cjs.map +1 -0
  221. package/dist/cjs/node_modules/safer-buffer/safer.cjs +52 -0
  222. package/dist/cjs/node_modules/safer-buffer/safer.cjs.map +1 -0
  223. package/dist/cjs/node_modules/samlify/build/index.cjs +120 -0
  224. package/dist/cjs/node_modules/samlify/build/index.cjs.map +1 -0
  225. package/dist/cjs/node_modules/samlify/build/src/api.cjs +36 -0
  226. package/dist/cjs/node_modules/samlify/build/src/api.cjs.map +1 -0
  227. package/dist/cjs/node_modules/samlify/build/src/binding-post.cjs +507 -0
  228. package/dist/cjs/node_modules/samlify/build/src/binding-post.cjs.map +1 -0
  229. package/dist/cjs/node_modules/samlify/build/src/binding-redirect.cjs +342 -0
  230. package/dist/cjs/node_modules/samlify/build/src/binding-redirect.cjs.map +1 -0
  231. package/dist/cjs/node_modules/samlify/build/src/binding-simplesign.cjs +361 -0
  232. package/dist/cjs/node_modules/samlify/build/src/binding-simplesign.cjs.map +1 -0
  233. package/dist/cjs/node_modules/samlify/build/src/entity-idp.cjs +282 -0
  234. package/dist/cjs/node_modules/samlify/build/src/entity-idp.cjs.map +1 -0
  235. package/dist/cjs/node_modules/samlify/build/src/entity-sp.cjs +145 -0
  236. package/dist/cjs/node_modules/samlify/build/src/entity-sp.cjs.map +1 -0
  237. package/dist/cjs/node_modules/samlify/build/src/entity.cjs +256 -0
  238. package/dist/cjs/node_modules/samlify/build/src/entity.cjs.map +1 -0
  239. package/dist/cjs/node_modules/samlify/build/src/extractor.cjs +355 -0
  240. package/dist/cjs/node_modules/samlify/build/src/extractor.cjs.map +1 -0
  241. package/dist/cjs/node_modules/samlify/build/src/flow.cjs +392 -0
  242. package/dist/cjs/node_modules/samlify/build/src/flow.cjs.map +1 -0
  243. package/dist/cjs/node_modules/samlify/build/src/libsaml.cjs +547 -0
  244. package/dist/cjs/node_modules/samlify/build/src/libsaml.cjs.map +1 -0
  245. package/dist/cjs/node_modules/samlify/build/src/metadata-idp.cjs +174 -0
  246. package/dist/cjs/node_modules/samlify/build/src/metadata-idp.cjs.map +1 -0
  247. package/dist/cjs/node_modules/samlify/build/src/metadata-sp.cjs +217 -0
  248. package/dist/cjs/node_modules/samlify/build/src/metadata-sp.cjs.map +1 -0
  249. package/dist/cjs/node_modules/samlify/build/src/metadata.cjs +203 -0
  250. package/dist/cjs/node_modules/samlify/build/src/metadata.cjs.map +1 -0
  251. package/dist/cjs/node_modules/samlify/build/src/urn.cjs +228 -0
  252. package/dist/cjs/node_modules/samlify/build/src/urn.cjs.map +1 -0
  253. package/dist/cjs/node_modules/samlify/build/src/utility.cjs +280 -0
  254. package/dist/cjs/node_modules/samlify/build/src/utility.cjs.map +1 -0
  255. package/dist/cjs/node_modules/samlify/build/src/validator.cjs +56 -0
  256. package/dist/cjs/node_modules/samlify/build/src/validator.cjs.map +1 -0
  257. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/index.cjs +50 -0
  258. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/index.cjs.map +1 -0
  259. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/md5.cjs +25 -0
  260. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/md5.cjs.map +1 -0
  261. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/nil.cjs +18 -0
  262. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/nil.cjs.map +1 -0
  263. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/parse.cjs +42 -0
  264. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/parse.cjs.map +1 -0
  265. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/regex.cjs +18 -0
  266. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/regex.cjs.map +1 -0
  267. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/rng.cjs +28 -0
  268. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/rng.cjs.map +1 -0
  269. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/sha1.cjs +25 -0
  270. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/sha1.cjs.map +1 -0
  271. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/stringify.cjs +27 -0
  272. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/stringify.cjs.map +1 -0
  273. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v1.cjs +69 -0
  274. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v1.cjs.map +1 -0
  275. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v3.cjs +23 -0
  276. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v3.cjs.map +1 -0
  277. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v35.cjs +54 -0
  278. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v35.cjs.map +1 -0
  279. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v4.cjs +34 -0
  280. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v4.cjs.map +1 -0
  281. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v5.cjs +23 -0
  282. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/v5.cjs.map +1 -0
  283. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/validate.cjs +23 -0
  284. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/validate.cjs.map +1 -0
  285. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/version.cjs +24 -0
  286. package/dist/cjs/node_modules/samlify/node_modules/uuid/dist/esm-node/version.cjs.map +1 -0
  287. package/dist/cjs/node_modules/xml/lib/escapeForXML.cjs +27 -0
  288. package/dist/cjs/node_modules/xml/lib/escapeForXML.cjs.map +1 -0
  289. package/dist/cjs/node_modules/xml/lib/xml.cjs +186 -0
  290. package/dist/cjs/node_modules/xml/lib/xml.cjs.map +1 -0
  291. package/dist/cjs/node_modules/xml-crypto/lib/c14n-canonicalization.cjs +202 -0
  292. package/dist/cjs/node_modules/xml-crypto/lib/c14n-canonicalization.cjs.map +1 -0
  293. package/dist/cjs/node_modules/xml-crypto/lib/enveloped-signature.cjs +52 -0
  294. package/dist/cjs/node_modules/xml-crypto/lib/enveloped-signature.cjs.map +1 -0
  295. package/dist/cjs/node_modules/xml-crypto/lib/exclusive-canonicalization.cjs +223 -0
  296. package/dist/cjs/node_modules/xml-crypto/lib/exclusive-canonicalization.cjs.map +1 -0
  297. package/dist/cjs/node_modules/xml-crypto/lib/hash-algorithms.cjs +56 -0
  298. package/dist/cjs/node_modules/xml-crypto/lib/hash-algorithms.cjs.map +1 -0
  299. package/dist/cjs/node_modules/xml-crypto/lib/index.cjs +73 -0
  300. package/dist/cjs/node_modules/xml-crypto/lib/index.cjs.map +1 -0
  301. package/dist/cjs/node_modules/xml-crypto/lib/signature-algorithms.cjs +91 -0
  302. package/dist/cjs/node_modules/xml-crypto/lib/signature-algorithms.cjs.map +1 -0
  303. package/dist/cjs/node_modules/xml-crypto/lib/signed-xml.cjs +695 -0
  304. package/dist/cjs/node_modules/xml-crypto/lib/signed-xml.cjs.map +1 -0
  305. package/dist/cjs/node_modules/xml-crypto/lib/types.cjs +58 -0
  306. package/dist/cjs/node_modules/xml-crypto/lib/types.cjs.map +1 -0
  307. package/dist/cjs/node_modules/xml-crypto/lib/utils.cjs +213 -0
  308. package/dist/cjs/node_modules/xml-crypto/lib/utils.cjs.map +1 -0
  309. package/dist/cjs/node_modules/xml-crypto/node_modules/xpath/xpath.cjs +3445 -0
  310. package/dist/cjs/node_modules/xml-crypto/node_modules/xpath/xpath.cjs.map +1 -0
  311. package/dist/cjs/node_modules/xml-escape/index.cjs +30 -0
  312. package/dist/cjs/node_modules/xml-escape/index.cjs.map +1 -0
  313. package/dist/cjs/node_modules/xpath/xpath.cjs +3410 -0
  314. package/dist/cjs/node_modules/xpath/xpath.cjs.map +1 -0
  315. package/dist/cjs/node_modules/zod/v4/classic/errors.cjs +31 -0
  316. package/dist/cjs/node_modules/zod/v4/classic/errors.cjs.map +1 -0
  317. package/dist/cjs/node_modules/zod/v4/classic/iso.cjs +42 -0
  318. package/dist/cjs/node_modules/zod/v4/classic/iso.cjs.map +1 -0
  319. package/dist/cjs/node_modules/zod/v4/classic/parse.cjs +32 -0
  320. package/dist/cjs/node_modules/zod/v4/classic/parse.cjs.map +1 -0
  321. package/dist/cjs/node_modules/zod/v4/classic/schemas.cjs +527 -0
  322. package/dist/cjs/node_modules/zod/v4/classic/schemas.cjs.map +1 -0
  323. package/dist/cjs/node_modules/zod/v4/core/api.cjs +443 -0
  324. package/dist/cjs/node_modules/zod/v4/core/api.cjs.map +1 -0
  325. package/dist/cjs/node_modules/zod/v4/core/checks.cjs +238 -0
  326. package/dist/cjs/node_modules/zod/v4/core/checks.cjs.map +1 -0
  327. package/dist/cjs/node_modules/zod/v4/core/core.cjs +63 -0
  328. package/dist/cjs/node_modules/zod/v4/core/core.cjs.map +1 -0
  329. package/dist/cjs/node_modules/zod/v4/core/doc.cjs +36 -0
  330. package/dist/cjs/node_modules/zod/v4/core/doc.cjs.map +1 -0
  331. package/dist/cjs/node_modules/zod/v4/core/errors.cjs +67 -0
  332. package/dist/cjs/node_modules/zod/v4/core/errors.cjs.map +1 -0
  333. package/dist/cjs/node_modules/zod/v4/core/parse.cjs +124 -0
  334. package/dist/cjs/node_modules/zod/v4/core/parse.cjs.map +1 -0
  335. package/dist/cjs/node_modules/zod/v4/core/regexes.cjs +87 -0
  336. package/dist/cjs/node_modules/zod/v4/core/regexes.cjs.map +1 -0
  337. package/dist/cjs/node_modules/zod/v4/core/registries.cjs +55 -0
  338. package/dist/cjs/node_modules/zod/v4/core/registries.cjs.map +1 -0
  339. package/dist/cjs/node_modules/zod/v4/core/schemas.cjs +1115 -0
  340. package/dist/cjs/node_modules/zod/v4/core/schemas.cjs.map +1 -0
  341. package/dist/cjs/node_modules/zod/v4/core/util.cjs +333 -0
  342. package/dist/cjs/node_modules/zod/v4/core/util.cjs.map +1 -0
  343. package/dist/cjs/node_modules/zod/v4/core/versions.cjs +12 -0
  344. package/dist/cjs/node_modules/zod/v4/core/versions.cjs.map +1 -0
  345. package/dist/cjs/schemas/user.schema.cjs +17 -0
  346. package/dist/cjs/schemas/user.schema.cjs.map +1 -1
  347. package/dist/cjs/services/dictionary.service.cjs +7 -31
  348. package/dist/cjs/services/dictionary.service.cjs.map +1 -1
  349. package/dist/cjs/services/email.service.cjs +13 -0
  350. package/dist/cjs/services/email.service.cjs.map +1 -1
  351. package/dist/cjs/types/user.types.cjs.map +1 -1
  352. package/dist/cjs/utils/auth/getAuth.cjs +60 -26
  353. package/dist/cjs/utils/auth/getAuth.cjs.map +1 -1
  354. package/dist/cjs/utils/mongoDB/connectDB.cjs.map +1 -1
  355. package/dist/esm/_virtual/rolldown_runtime.mjs +43 -0
  356. package/dist/esm/controllers/dictionary.controller.mjs +65 -42
  357. package/dist/esm/controllers/dictionary.controller.mjs.map +1 -1
  358. package/dist/esm/emails/MagicLinkEmail.mjs +239 -0
  359. package/dist/esm/emails/MagicLinkEmail.mjs.map +1 -0
  360. package/dist/esm/index.mjs +1 -1
  361. package/dist/esm/index.mjs.map +1 -1
  362. package/dist/esm/node_modules/@authenio/xml-encryption/lib/index.mjs +13 -0
  363. package/dist/esm/node_modules/@authenio/xml-encryption/lib/index.mjs.map +1 -0
  364. package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.mjs +22 -0
  365. package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/encrypted-key.tpl.xml.mjs.map +1 -0
  366. package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.mjs +28 -0
  367. package/dist/esm/node_modules/@authenio/xml-encryption/lib/templates/keyinfo.tpl.xml.mjs.map +1 -0
  368. package/dist/esm/node_modules/@authenio/xml-encryption/lib/utils.mjs +35 -0
  369. package/dist/esm/node_modules/@authenio/xml-encryption/lib/utils.mjs.map +1 -0
  370. package/dist/esm/node_modules/@authenio/xml-encryption/lib/xmlenc.mjs +228 -0
  371. package/dist/esm/node_modules/@authenio/xml-encryption/lib/xmlenc.mjs.map +1 -0
  372. package/dist/esm/node_modules/@better-auth/sso/dist/index.mjs +1210 -0
  373. package/dist/esm/node_modules/@better-auth/sso/dist/index.mjs.map +1 -0
  374. package/dist/esm/node_modules/@better-fetch/fetch/dist/index.mjs +359 -0
  375. package/dist/esm/node_modules/@better-fetch/fetch/dist/index.mjs.map +1 -0
  376. package/dist/esm/node_modules/@xmldom/is-dom-node/dist/index.mjs +86 -0
  377. package/dist/esm/node_modules/@xmldom/is-dom-node/dist/index.mjs.map +1 -0
  378. package/dist/esm/node_modules/@xmldom/xmldom/lib/conventions.mjs +107 -0
  379. package/dist/esm/node_modules/@xmldom/xmldom/lib/conventions.mjs.map +1 -0
  380. package/dist/esm/node_modules/@xmldom/xmldom/lib/dom-parser.mjs +245 -0
  381. package/dist/esm/node_modules/@xmldom/xmldom/lib/dom-parser.mjs.map +1 -0
  382. package/dist/esm/node_modules/@xmldom/xmldom/lib/dom.mjs +1306 -0
  383. package/dist/esm/node_modules/@xmldom/xmldom/lib/dom.mjs.map +1 -0
  384. package/dist/esm/node_modules/@xmldom/xmldom/lib/entities.mjs +2173 -0
  385. package/dist/esm/node_modules/@xmldom/xmldom/lib/entities.mjs.map +1 -0
  386. package/dist/esm/node_modules/@xmldom/xmldom/lib/index.mjs +17 -0
  387. package/dist/esm/node_modules/@xmldom/xmldom/lib/index.mjs.map +1 -0
  388. package/dist/esm/node_modules/@xmldom/xmldom/lib/sax.mjs +496 -0
  389. package/dist/esm/node_modules/@xmldom/xmldom/lib/sax.mjs.map +1 -0
  390. package/dist/esm/node_modules/asn1/lib/ber/errors.mjs +17 -0
  391. package/dist/esm/node_modules/asn1/lib/ber/errors.mjs.map +1 -0
  392. package/dist/esm/node_modules/asn1/lib/ber/index.mjs +25 -0
  393. package/dist/esm/node_modules/asn1/lib/ber/index.mjs.map +1 -0
  394. package/dist/esm/node_modules/asn1/lib/ber/reader.mjs +164 -0
  395. package/dist/esm/node_modules/asn1/lib/ber/reader.mjs.map +1 -0
  396. package/dist/esm/node_modules/asn1/lib/ber/types.mjs +44 -0
  397. package/dist/esm/node_modules/asn1/lib/ber/types.mjs.map +1 -0
  398. package/dist/esm/node_modules/asn1/lib/ber/writer.mjs +220 -0
  399. package/dist/esm/node_modules/asn1/lib/ber/writer.mjs.map +1 -0
  400. package/dist/esm/node_modules/asn1/lib/index.mjs +18 -0
  401. package/dist/esm/node_modules/asn1/lib/index.mjs.map +1 -0
  402. package/dist/esm/node_modules/available-typed-arrays/index.mjs +20 -0
  403. package/dist/esm/node_modules/available-typed-arrays/index.mjs.map +1 -0
  404. package/dist/esm/node_modules/base64-js/index.mjs +95 -0
  405. package/dist/esm/node_modules/base64-js/index.mjs.map +1 -0
  406. package/dist/esm/node_modules/buffer/index.mjs +1114 -0
  407. package/dist/esm/node_modules/buffer/index.mjs.map +1 -0
  408. package/dist/esm/node_modules/call-bind/index.mjs +26 -0
  409. package/dist/esm/node_modules/call-bind/index.mjs.map +1 -0
  410. package/dist/esm/node_modules/call-bind-apply-helpers/actualApply.mjs +21 -0
  411. package/dist/esm/node_modules/call-bind-apply-helpers/actualApply.mjs.map +1 -0
  412. package/dist/esm/node_modules/call-bind-apply-helpers/applyBind.mjs +21 -0
  413. package/dist/esm/node_modules/call-bind-apply-helpers/applyBind.mjs.map +1 -0
  414. package/dist/esm/node_modules/call-bind-apply-helpers/functionApply.mjs +13 -0
  415. package/dist/esm/node_modules/call-bind-apply-helpers/functionApply.mjs.map +1 -0
  416. package/dist/esm/node_modules/call-bind-apply-helpers/functionCall.mjs +13 -0
  417. package/dist/esm/node_modules/call-bind-apply-helpers/functionCall.mjs.map +1 -0
  418. package/dist/esm/node_modules/call-bind-apply-helpers/index.mjs +24 -0
  419. package/dist/esm/node_modules/call-bind-apply-helpers/index.mjs.map +1 -0
  420. package/dist/esm/node_modules/call-bind-apply-helpers/reflectApply.mjs +13 -0
  421. package/dist/esm/node_modules/call-bind-apply-helpers/reflectApply.mjs.map +1 -0
  422. package/dist/esm/node_modules/call-bound/index.mjs +23 -0
  423. package/dist/esm/node_modules/call-bound/index.mjs.map +1 -0
  424. package/dist/esm/node_modules/camelcase/index.mjs +75 -0
  425. package/dist/esm/node_modules/camelcase/index.mjs.map +1 -0
  426. package/dist/esm/node_modules/define-data-property/index.mjs +41 -0
  427. package/dist/esm/node_modules/define-data-property/index.mjs.map +1 -0
  428. package/dist/esm/node_modules/dunder-proto/get.mjs +28 -0
  429. package/dist/esm/node_modules/dunder-proto/get.mjs.map +1 -0
  430. package/dist/esm/node_modules/es-define-property/index.mjs +19 -0
  431. package/dist/esm/node_modules/es-define-property/index.mjs.map +1 -0
  432. package/dist/esm/node_modules/es-errors/eval.mjs +13 -0
  433. package/dist/esm/node_modules/es-errors/eval.mjs.map +1 -0
  434. package/dist/esm/node_modules/es-errors/index.mjs +13 -0
  435. package/dist/esm/node_modules/es-errors/index.mjs.map +1 -0
  436. package/dist/esm/node_modules/es-errors/range.mjs +13 -0
  437. package/dist/esm/node_modules/es-errors/range.mjs.map +1 -0
  438. package/dist/esm/node_modules/es-errors/ref.mjs +13 -0
  439. package/dist/esm/node_modules/es-errors/ref.mjs.map +1 -0
  440. package/dist/esm/node_modules/es-errors/syntax.mjs +13 -0
  441. package/dist/esm/node_modules/es-errors/syntax.mjs.map +1 -0
  442. package/dist/esm/node_modules/es-errors/type.mjs +13 -0
  443. package/dist/esm/node_modules/es-errors/type.mjs.map +1 -0
  444. package/dist/esm/node_modules/es-errors/uri.mjs +13 -0
  445. package/dist/esm/node_modules/es-errors/uri.mjs.map +1 -0
  446. package/dist/esm/node_modules/es-object-atoms/index.mjs +13 -0
  447. package/dist/esm/node_modules/es-object-atoms/index.mjs.map +1 -0
  448. package/dist/esm/node_modules/escape-html/index.mjs +68 -0
  449. package/dist/esm/node_modules/escape-html/index.mjs.map +1 -0
  450. package/dist/esm/node_modules/fast-xml-parser/src/fxp.mjs +8 -0
  451. package/dist/esm/node_modules/fast-xml-parser/src/fxp.mjs.map +1 -0
  452. package/dist/esm/node_modules/fast-xml-parser/src/util.mjs +26 -0
  453. package/dist/esm/node_modules/fast-xml-parser/src/util.mjs.map +1 -0
  454. package/dist/esm/node_modules/fast-xml-parser/src/validator.mjs +243 -0
  455. package/dist/esm/node_modules/fast-xml-parser/src/validator.mjs.map +1 -0
  456. package/dist/esm/node_modules/for-each/index.mjs +43 -0
  457. package/dist/esm/node_modules/for-each/index.mjs.map +1 -0
  458. package/dist/esm/node_modules/function-bind/implementation.mjs +59 -0
  459. package/dist/esm/node_modules/function-bind/implementation.mjs.map +1 -0
  460. package/dist/esm/node_modules/function-bind/index.mjs +14 -0
  461. package/dist/esm/node_modules/function-bind/index.mjs.map +1 -0
  462. package/dist/esm/node_modules/generator-function/index.mjs +14 -0
  463. package/dist/esm/node_modules/generator-function/index.mjs.map +1 -0
  464. package/dist/esm/node_modules/get-intrinsic/index.mjs +358 -0
  465. package/dist/esm/node_modules/get-intrinsic/index.mjs.map +1 -0
  466. package/dist/esm/node_modules/get-proto/Object.getPrototypeOf.mjs +15 -0
  467. package/dist/esm/node_modules/get-proto/Object.getPrototypeOf.mjs.map +1 -0
  468. package/dist/esm/node_modules/get-proto/Reflect.getPrototypeOf.mjs +13 -0
  469. package/dist/esm/node_modules/get-proto/Reflect.getPrototypeOf.mjs.map +1 -0
  470. package/dist/esm/node_modules/get-proto/index.mjs +26 -0
  471. package/dist/esm/node_modules/get-proto/index.mjs.map +1 -0
  472. package/dist/esm/node_modules/gopd/gOPD.mjs +13 -0
  473. package/dist/esm/node_modules/gopd/gOPD.mjs.map +1 -0
  474. package/dist/esm/node_modules/gopd/index.mjs +20 -0
  475. package/dist/esm/node_modules/gopd/index.mjs.map +1 -0
  476. package/dist/esm/node_modules/has-property-descriptors/index.mjs +25 -0
  477. package/dist/esm/node_modules/has-property-descriptors/index.mjs.map +1 -0
  478. package/dist/esm/node_modules/has-symbols/index.mjs +22 -0
  479. package/dist/esm/node_modules/has-symbols/index.mjs.map +1 -0
  480. package/dist/esm/node_modules/has-symbols/shams.mjs +36 -0
  481. package/dist/esm/node_modules/has-symbols/shams.mjs.map +1 -0
  482. package/dist/esm/node_modules/has-tostringtag/shams.mjs +17 -0
  483. package/dist/esm/node_modules/has-tostringtag/shams.mjs.map +1 -0
  484. package/dist/esm/node_modules/hasown/index.mjs +17 -0
  485. package/dist/esm/node_modules/hasown/index.mjs.map +1 -0
  486. package/dist/esm/node_modules/ieee754/index.mjs +80 -0
  487. package/dist/esm/node_modules/ieee754/index.mjs.map +1 -0
  488. package/dist/esm/node_modules/inherits/inherits_browser.mjs +31 -0
  489. package/dist/esm/node_modules/inherits/inherits_browser.mjs.map +1 -0
  490. package/dist/esm/node_modules/is-arguments/index.mjs +31 -0
  491. package/dist/esm/node_modules/is-arguments/index.mjs.map +1 -0
  492. package/dist/esm/node_modules/is-callable/index.mjs +87 -0
  493. package/dist/esm/node_modules/is-callable/index.mjs.map +1 -0
  494. package/dist/esm/node_modules/is-generator-function/index.mjs +32 -0
  495. package/dist/esm/node_modules/is-generator-function/index.mjs.map +1 -0
  496. package/dist/esm/node_modules/is-regex/index.mjs +58 -0
  497. package/dist/esm/node_modules/is-regex/index.mjs.map +1 -0
  498. package/dist/esm/node_modules/is-typed-array/index.mjs +17 -0
  499. package/dist/esm/node_modules/is-typed-array/index.mjs.map +1 -0
  500. package/dist/esm/node_modules/jose/dist/webapi/lib/base64.mjs +12 -0
  501. package/dist/esm/node_modules/jose/dist/webapi/lib/base64.mjs.map +1 -0
  502. package/dist/esm/node_modules/jose/dist/webapi/lib/buffer_utils.mjs +8 -0
  503. package/dist/esm/node_modules/jose/dist/webapi/lib/buffer_utils.mjs.map +1 -0
  504. package/dist/esm/node_modules/jose/dist/webapi/lib/is_object.mjs +15 -0
  505. package/dist/esm/node_modules/jose/dist/webapi/lib/is_object.mjs.map +1 -0
  506. package/dist/esm/node_modules/jose/dist/webapi/util/base64url.mjs +19 -0
  507. package/dist/esm/node_modules/jose/dist/webapi/util/base64url.mjs.map +1 -0
  508. package/dist/esm/node_modules/jose/dist/webapi/util/decode_jwt.mjs +31 -0
  509. package/dist/esm/node_modules/jose/dist/webapi/util/decode_jwt.mjs.map +1 -0
  510. package/dist/esm/node_modules/jose/dist/webapi/util/errors.mjs +26 -0
  511. package/dist/esm/node_modules/jose/dist/webapi/util/errors.mjs.map +1 -0
  512. package/dist/esm/node_modules/math-intrinsics/abs.mjs +13 -0
  513. package/dist/esm/node_modules/math-intrinsics/abs.mjs.map +1 -0
  514. package/dist/esm/node_modules/math-intrinsics/floor.mjs +13 -0
  515. package/dist/esm/node_modules/math-intrinsics/floor.mjs.map +1 -0
  516. package/dist/esm/node_modules/math-intrinsics/isNaN.mjs +15 -0
  517. package/dist/esm/node_modules/math-intrinsics/isNaN.mjs.map +1 -0
  518. package/dist/esm/node_modules/math-intrinsics/max.mjs +13 -0
  519. package/dist/esm/node_modules/math-intrinsics/max.mjs.map +1 -0
  520. package/dist/esm/node_modules/math-intrinsics/min.mjs +13 -0
  521. package/dist/esm/node_modules/math-intrinsics/min.mjs.map +1 -0
  522. package/dist/esm/node_modules/math-intrinsics/pow.mjs +13 -0
  523. package/dist/esm/node_modules/math-intrinsics/pow.mjs.map +1 -0
  524. package/dist/esm/node_modules/math-intrinsics/round.mjs +13 -0
  525. package/dist/esm/node_modules/math-intrinsics/round.mjs.map +1 -0
  526. package/dist/esm/node_modules/math-intrinsics/sign.mjs +18 -0
  527. package/dist/esm/node_modules/math-intrinsics/sign.mjs.map +1 -0
  528. package/dist/esm/node_modules/node-forge/lib/aes.mjs +601 -0
  529. package/dist/esm/node_modules/node-forge/lib/aes.mjs.map +1 -0
  530. package/dist/esm/node_modules/node-forge/lib/aesCipherSuites.mjs +199 -0
  531. package/dist/esm/node_modules/node-forge/lib/aesCipherSuites.mjs.map +1 -0
  532. package/dist/esm/node_modules/node-forge/lib/asn1-validator.mjs +80 -0
  533. package/dist/esm/node_modules/node-forge/lib/asn1-validator.mjs.map +1 -0
  534. package/dist/esm/node_modules/node-forge/lib/asn1.mjs +942 -0
  535. package/dist/esm/node_modules/node-forge/lib/asn1.mjs.map +1 -0
  536. package/dist/esm/node_modules/node-forge/lib/baseN.mjs +141 -0
  537. package/dist/esm/node_modules/node-forge/lib/baseN.mjs.map +1 -0
  538. package/dist/esm/node_modules/node-forge/lib/cipher.mjs +190 -0
  539. package/dist/esm/node_modules/node-forge/lib/cipher.mjs.map +1 -0
  540. package/dist/esm/node_modules/node-forge/lib/cipherModes.mjs +601 -0
  541. package/dist/esm/node_modules/node-forge/lib/cipherModes.mjs.map +1 -0
  542. package/dist/esm/node_modules/node-forge/lib/des.mjs +1191 -0
  543. package/dist/esm/node_modules/node-forge/lib/des.mjs.map +1 -0
  544. package/dist/esm/node_modules/node-forge/lib/ed25519.mjs +1024 -0
  545. package/dist/esm/node_modules/node-forge/lib/ed25519.mjs.map +1 -0
  546. package/dist/esm/node_modules/node-forge/lib/forge.mjs +19 -0
  547. package/dist/esm/node_modules/node-forge/lib/forge.mjs.map +1 -0
  548. package/dist/esm/node_modules/node-forge/lib/hmac.mjs +111 -0
  549. package/dist/esm/node_modules/node-forge/lib/hmac.mjs.map +1 -0
  550. package/dist/esm/node_modules/node-forge/lib/index.mjs +70 -0
  551. package/dist/esm/node_modules/node-forge/lib/index.mjs.map +1 -0
  552. package/dist/esm/node_modules/node-forge/lib/jsbn.mjs +1260 -0
  553. package/dist/esm/node_modules/node-forge/lib/jsbn.mjs.map +1 -0
  554. package/dist/esm/node_modules/node-forge/lib/kem.mjs +150 -0
  555. package/dist/esm/node_modules/node-forge/lib/kem.mjs.map +1 -0
  556. package/dist/esm/node_modules/node-forge/lib/log.mjs +245 -0
  557. package/dist/esm/node_modules/node-forge/lib/log.mjs.map +1 -0
  558. package/dist/esm/node_modules/node-forge/lib/md.all.mjs +28 -0
  559. package/dist/esm/node_modules/node-forge/lib/md.all.mjs.map +1 -0
  560. package/dist/esm/node_modules/node-forge/lib/md.mjs +22 -0
  561. package/dist/esm/node_modules/node-forge/lib/md.mjs.map +1 -0
  562. package/dist/esm/node_modules/node-forge/lib/md5.mjs +328 -0
  563. package/dist/esm/node_modules/node-forge/lib/md5.mjs.map +1 -0
  564. package/dist/esm/node_modules/node-forge/lib/mgf.mjs +24 -0
  565. package/dist/esm/node_modules/node-forge/lib/mgf.mjs.map +1 -0
  566. package/dist/esm/node_modules/node-forge/lib/mgf1.mjs +48 -0
  567. package/dist/esm/node_modules/node-forge/lib/mgf1.mjs.map +1 -0
  568. package/dist/esm/node_modules/node-forge/lib/oids.mjs +157 -0
  569. package/dist/esm/node_modules/node-forge/lib/oids.mjs.map +1 -0
  570. package/dist/esm/node_modules/node-forge/lib/pbe.mjs +819 -0
  571. package/dist/esm/node_modules/node-forge/lib/pbe.mjs.map +1 -0
  572. package/dist/esm/node_modules/node-forge/lib/pbkdf2.mjs +130 -0
  573. package/dist/esm/node_modules/node-forge/lib/pbkdf2.mjs.map +1 -0
  574. package/dist/esm/node_modules/node-forge/lib/pem.mjs +179 -0
  575. package/dist/esm/node_modules/node-forge/lib/pem.mjs.map +1 -0
  576. package/dist/esm/node_modules/node-forge/lib/pkcs1.mjs +204 -0
  577. package/dist/esm/node_modules/node-forge/lib/pkcs1.mjs.map +1 -0
  578. package/dist/esm/node_modules/node-forge/lib/pkcs12.mjs +727 -0
  579. package/dist/esm/node_modules/node-forge/lib/pkcs12.mjs.map +1 -0
  580. package/dist/esm/node_modules/node-forge/lib/pkcs7.mjs +645 -0
  581. package/dist/esm/node_modules/node-forge/lib/pkcs7.mjs.map +1 -0
  582. package/dist/esm/node_modules/node-forge/lib/pkcs7asn1.mjs +409 -0
  583. package/dist/esm/node_modules/node-forge/lib/pkcs7asn1.mjs.map +1 -0
  584. package/dist/esm/node_modules/node-forge/lib/pki.mjs +105 -0
  585. package/dist/esm/node_modules/node-forge/lib/pki.mjs.map +1 -0
  586. package/dist/esm/node_modules/node-forge/lib/prime.mjs +197 -0
  587. package/dist/esm/node_modules/node-forge/lib/prime.mjs.map +1 -0
  588. package/dist/esm/node_modules/node-forge/lib/prng.mjs +295 -0
  589. package/dist/esm/node_modules/node-forge/lib/prng.mjs.map +1 -0
  590. package/dist/esm/node_modules/node-forge/lib/pss.mjs +145 -0
  591. package/dist/esm/node_modules/node-forge/lib/pss.mjs.map +1 -0
  592. package/dist/esm/node_modules/node-forge/lib/random.mjs +145 -0
  593. package/dist/esm/node_modules/node-forge/lib/random.mjs.map +1 -0
  594. package/dist/esm/node_modules/node-forge/lib/rc2.mjs +542 -0
  595. package/dist/esm/node_modules/node-forge/lib/rc2.mjs.map +1 -0
  596. package/dist/esm/node_modules/node-forge/lib/rsa.mjs +1304 -0
  597. package/dist/esm/node_modules/node-forge/lib/rsa.mjs.map +1 -0
  598. package/dist/esm/node_modules/node-forge/lib/sha1.mjs +234 -0
  599. package/dist/esm/node_modules/node-forge/lib/sha1.mjs.map +1 -0
  600. package/dist/esm/node_modules/node-forge/lib/sha256.mjs +271 -0
  601. package/dist/esm/node_modules/node-forge/lib/sha256.mjs.map +1 -0
  602. package/dist/esm/node_modules/node-forge/lib/sha512.mjs +417 -0
  603. package/dist/esm/node_modules/node-forge/lib/sha512.mjs.map +1 -0
  604. package/dist/esm/node_modules/node-forge/lib/ssh.mjs +198 -0
  605. package/dist/esm/node_modules/node-forge/lib/ssh.mjs.map +1 -0
  606. package/dist/esm/node_modules/node-forge/lib/tls.mjs +3659 -0
  607. package/dist/esm/node_modules/node-forge/lib/tls.mjs.map +1 -0
  608. package/dist/esm/node_modules/node-forge/lib/util.mjs +2121 -0
  609. package/dist/esm/node_modules/node-forge/lib/util.mjs.map +1 -0
  610. package/dist/esm/node_modules/node-forge/lib/x509.mjs +2168 -0
  611. package/dist/esm/node_modules/node-forge/lib/x509.mjs.map +1 -0
  612. package/dist/esm/node_modules/node-forge/lib.mjs +10 -0
  613. package/dist/esm/node_modules/node-forge/lib.mjs.map +1 -0
  614. package/dist/esm/node_modules/node-rsa/src/NodeRSA.mjs +338 -0
  615. package/dist/esm/node_modules/node-rsa/src/NodeRSA.mjs.map +1 -0
  616. package/dist/esm/node_modules/node-rsa/src/encryptEngines/encryptEngines.mjs +23 -0
  617. package/dist/esm/node_modules/node-rsa/src/encryptEngines/encryptEngines.mjs.map +1 -0
  618. package/dist/esm/node_modules/node-rsa/src/encryptEngines/io.mjs +62 -0
  619. package/dist/esm/node_modules/node-rsa/src/encryptEngines/io.mjs.map +1 -0
  620. package/dist/esm/node_modules/node-rsa/src/encryptEngines/js.mjs +41 -0
  621. package/dist/esm/node_modules/node-rsa/src/encryptEngines/js.mjs.map +1 -0
  622. package/dist/esm/node_modules/node-rsa/src/encryptEngines/node12.mjs +46 -0
  623. package/dist/esm/node_modules/node-rsa/src/encryptEngines/node12.mjs.map +1 -0
  624. package/dist/esm/node_modules/node-rsa/src/formats/components.mjs +52 -0
  625. package/dist/esm/node_modules/node-rsa/src/formats/components.mjs.map +1 -0
  626. package/dist/esm/node_modules/node-rsa/src/formats/formats.mjs +83 -0
  627. package/dist/esm/node_modules/node-rsa/src/formats/formats.mjs.map +1 -0
  628. package/dist/esm/node_modules/node-rsa/src/formats/openssh.mjs +174 -0
  629. package/dist/esm/node_modules/node-rsa/src/formats/openssh.mjs.map +1 -0
  630. package/dist/esm/node_modules/node-rsa/src/formats/pkcs1.mjs +101 -0
  631. package/dist/esm/node_modules/node-rsa/src/formats/pkcs1.mjs.map +1 -0
  632. package/dist/esm/node_modules/node-rsa/src/formats/pkcs8.mjs +128 -0
  633. package/dist/esm/node_modules/node-rsa/src/formats/pkcs8.mjs.map +1 -0
  634. package/dist/esm/node_modules/node-rsa/src/libs/jsbn.mjs +1344 -0
  635. package/dist/esm/node_modules/node-rsa/src/libs/jsbn.mjs.map +1 -0
  636. package/dist/esm/node_modules/node-rsa/src/libs/rsa.mjs +228 -0
  637. package/dist/esm/node_modules/node-rsa/src/libs/rsa.mjs.map +1 -0
  638. package/dist/esm/node_modules/node-rsa/src/schemes/oaep.mjs +120 -0
  639. package/dist/esm/node_modules/node-rsa/src/schemes/oaep.mjs.map +1 -0
  640. package/dist/esm/node_modules/node-rsa/src/schemes/pkcs1.mjs +172 -0
  641. package/dist/esm/node_modules/node-rsa/src/schemes/pkcs1.mjs.map +1 -0
  642. package/dist/esm/node_modules/node-rsa/src/schemes/pss.mjs +120 -0
  643. package/dist/esm/node_modules/node-rsa/src/schemes/pss.mjs.map +1 -0
  644. package/dist/esm/node_modules/node-rsa/src/schemes/schemes.mjs +25 -0
  645. package/dist/esm/node_modules/node-rsa/src/schemes/schemes.mjs.map +1 -0
  646. package/dist/esm/node_modules/node-rsa/src/utils.mjs +81 -0
  647. package/dist/esm/node_modules/node-rsa/src/utils.mjs.map +1 -0
  648. package/dist/esm/node_modules/pako/index.mjs +22 -0
  649. package/dist/esm/node_modules/pako/index.mjs.map +1 -0
  650. package/dist/esm/node_modules/pako/lib/deflate.mjs +308 -0
  651. package/dist/esm/node_modules/pako/lib/deflate.mjs.map +1 -0
  652. package/dist/esm/node_modules/pako/lib/inflate.mjs +314 -0
  653. package/dist/esm/node_modules/pako/lib/inflate.mjs.map +1 -0
  654. package/dist/esm/node_modules/pako/lib/utils/common.mjs +74 -0
  655. package/dist/esm/node_modules/pako/lib/utils/common.mjs.map +1 -0
  656. package/dist/esm/node_modules/pako/lib/utils/strings.mjs +128 -0
  657. package/dist/esm/node_modules/pako/lib/utils/strings.mjs.map +1 -0
  658. package/dist/esm/node_modules/pako/lib/zlib/adler32.mjs +26 -0
  659. package/dist/esm/node_modules/pako/lib/zlib/adler32.mjs.map +1 -0
  660. package/dist/esm/node_modules/pako/lib/zlib/constants.mjs +40 -0
  661. package/dist/esm/node_modules/pako/lib/zlib/constants.mjs.map +1 -0
  662. package/dist/esm/node_modules/pako/lib/zlib/crc32.mjs +28 -0
  663. package/dist/esm/node_modules/pako/lib/zlib/crc32.mjs.map +1 -0
  664. package/dist/esm/node_modules/pako/lib/zlib/deflate.mjs +886 -0
  665. package/dist/esm/node_modules/pako/lib/zlib/deflate.mjs.map +1 -0
  666. package/dist/esm/node_modules/pako/lib/zlib/gzheader.mjs +24 -0
  667. package/dist/esm/node_modules/pako/lib/zlib/gzheader.mjs.map +1 -0
  668. package/dist/esm/node_modules/pako/lib/zlib/inffast.mjs +224 -0
  669. package/dist/esm/node_modules/pako/lib/zlib/inffast.mjs.map +1 -0
  670. package/dist/esm/node_modules/pako/lib/zlib/inflate.mjs +1035 -0
  671. package/dist/esm/node_modules/pako/lib/zlib/inflate.mjs.map +1 -0
  672. package/dist/esm/node_modules/pako/lib/zlib/inftrees.mjs +275 -0
  673. package/dist/esm/node_modules/pako/lib/zlib/inftrees.mjs.map +1 -0
  674. package/dist/esm/node_modules/pako/lib/zlib/messages.mjs +22 -0
  675. package/dist/esm/node_modules/pako/lib/zlib/messages.mjs.map +1 -0
  676. package/dist/esm/node_modules/pako/lib/zlib/trees.mjs +623 -0
  677. package/dist/esm/node_modules/pako/lib/zlib/trees.mjs.map +1 -0
  678. package/dist/esm/node_modules/pako/lib/zlib/zstream.mjs +26 -0
  679. package/dist/esm/node_modules/pako/lib/zlib/zstream.mjs.map +1 -0
  680. package/dist/esm/node_modules/possible-typed-array-names/index.mjs +26 -0
  681. package/dist/esm/node_modules/possible-typed-array-names/index.mjs.map +1 -0
  682. package/dist/esm/node_modules/safe-regex-test/index.mjs +25 -0
  683. package/dist/esm/node_modules/safe-regex-test/index.mjs.map +1 -0
  684. package/dist/esm/node_modules/safer-buffer/safer.mjs +50 -0
  685. package/dist/esm/node_modules/safer-buffer/safer.mjs.map +1 -0
  686. package/dist/esm/node_modules/samlify/build/index.mjs +117 -0
  687. package/dist/esm/node_modules/samlify/build/index.mjs.map +1 -0
  688. package/dist/esm/node_modules/samlify/build/src/api.mjs +33 -0
  689. package/dist/esm/node_modules/samlify/build/src/api.mjs.map +1 -0
  690. package/dist/esm/node_modules/samlify/build/src/binding-post.mjs +504 -0
  691. package/dist/esm/node_modules/samlify/build/src/binding-post.mjs.map +1 -0
  692. package/dist/esm/node_modules/samlify/build/src/binding-redirect.mjs +339 -0
  693. package/dist/esm/node_modules/samlify/build/src/binding-redirect.mjs.map +1 -0
  694. package/dist/esm/node_modules/samlify/build/src/binding-simplesign.mjs +358 -0
  695. package/dist/esm/node_modules/samlify/build/src/binding-simplesign.mjs.map +1 -0
  696. package/dist/esm/node_modules/samlify/build/src/entity-idp.mjs +279 -0
  697. package/dist/esm/node_modules/samlify/build/src/entity-idp.mjs.map +1 -0
  698. package/dist/esm/node_modules/samlify/build/src/entity-sp.mjs +142 -0
  699. package/dist/esm/node_modules/samlify/build/src/entity-sp.mjs.map +1 -0
  700. package/dist/esm/node_modules/samlify/build/src/entity.mjs +253 -0
  701. package/dist/esm/node_modules/samlify/build/src/entity.mjs.map +1 -0
  702. package/dist/esm/node_modules/samlify/build/src/extractor.mjs +352 -0
  703. package/dist/esm/node_modules/samlify/build/src/extractor.mjs.map +1 -0
  704. package/dist/esm/node_modules/samlify/build/src/flow.mjs +389 -0
  705. package/dist/esm/node_modules/samlify/build/src/flow.mjs.map +1 -0
  706. package/dist/esm/node_modules/samlify/build/src/libsaml.mjs +544 -0
  707. package/dist/esm/node_modules/samlify/build/src/libsaml.mjs.map +1 -0
  708. package/dist/esm/node_modules/samlify/build/src/metadata-idp.mjs +171 -0
  709. package/dist/esm/node_modules/samlify/build/src/metadata-idp.mjs.map +1 -0
  710. package/dist/esm/node_modules/samlify/build/src/metadata-sp.mjs +214 -0
  711. package/dist/esm/node_modules/samlify/build/src/metadata-sp.mjs.map +1 -0
  712. package/dist/esm/node_modules/samlify/build/src/metadata.mjs +200 -0
  713. package/dist/esm/node_modules/samlify/build/src/metadata.mjs.map +1 -0
  714. package/dist/esm/node_modules/samlify/build/src/urn.mjs +225 -0
  715. package/dist/esm/node_modules/samlify/build/src/urn.mjs.map +1 -0
  716. package/dist/esm/node_modules/samlify/build/src/utility.mjs +277 -0
  717. package/dist/esm/node_modules/samlify/build/src/utility.mjs.map +1 -0
  718. package/dist/esm/node_modules/samlify/build/src/validator.mjs +53 -0
  719. package/dist/esm/node_modules/samlify/build/src/validator.mjs.map +1 -0
  720. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/index.mjs +39 -0
  721. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/index.mjs.map +1 -0
  722. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/md5.mjs +154 -0
  723. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/md5.mjs.map +1 -0
  724. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/nil.mjs +12 -0
  725. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/nil.mjs.map +1 -0
  726. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/parse.mjs +36 -0
  727. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/parse.mjs.map +1 -0
  728. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/regex.mjs +12 -0
  729. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/regex.mjs.map +1 -0
  730. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/rng.mjs +20 -0
  731. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/rng.mjs.map +1 -0
  732. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/sha1.mjs +101 -0
  733. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/sha1.mjs.map +1 -0
  734. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/stringify.mjs +22 -0
  735. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/stringify.mjs.map +1 -0
  736. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v1.mjs +63 -0
  737. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v1.mjs.map +1 -0
  738. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v3.mjs +17 -0
  739. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v3.mjs.map +1 -0
  740. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v35.mjs +48 -0
  741. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v35.mjs.map +1 -0
  742. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v4.mjs +28 -0
  743. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v4.mjs.map +1 -0
  744. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v5.mjs +17 -0
  745. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/v5.mjs.map +1 -0
  746. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/validate.mjs +17 -0
  747. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/validate.mjs.map +1 -0
  748. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/version.mjs +18 -0
  749. package/dist/esm/node_modules/samlify/node_modules/uuid/dist/esm-browser/version.mjs.map +1 -0
  750. package/dist/esm/node_modules/set-function-length/index.mjs +38 -0
  751. package/dist/esm/node_modules/set-function-length/index.mjs.map +1 -0
  752. package/dist/esm/node_modules/util/support/isBufferBrowser.mjs +14 -0
  753. package/dist/esm/node_modules/util/support/isBufferBrowser.mjs.map +1 -0
  754. package/dist/esm/node_modules/util/support/types.mjs +218 -0
  755. package/dist/esm/node_modules/util/support/types.mjs.map +1 -0
  756. package/dist/esm/node_modules/util/util.mjs +443 -0
  757. package/dist/esm/node_modules/util/util.mjs.map +1 -0
  758. package/dist/esm/node_modules/which-typed-array/index.mjs +93 -0
  759. package/dist/esm/node_modules/which-typed-array/index.mjs.map +1 -0
  760. package/dist/esm/node_modules/xml/lib/escapeForXML.mjs +24 -0
  761. package/dist/esm/node_modules/xml/lib/escapeForXML.mjs.map +1 -0
  762. package/dist/esm/node_modules/xml/lib/xml.mjs +183 -0
  763. package/dist/esm/node_modules/xml/lib/xml.mjs.map +1 -0
  764. package/dist/esm/node_modules/xml-crypto/lib/c14n-canonicalization.mjs +199 -0
  765. package/dist/esm/node_modules/xml-crypto/lib/c14n-canonicalization.mjs.map +1 -0
  766. package/dist/esm/node_modules/xml-crypto/lib/enveloped-signature.mjs +49 -0
  767. package/dist/esm/node_modules/xml-crypto/lib/enveloped-signature.mjs.map +1 -0
  768. package/dist/esm/node_modules/xml-crypto/lib/exclusive-canonicalization.mjs +220 -0
  769. package/dist/esm/node_modules/xml-crypto/lib/exclusive-canonicalization.mjs.map +1 -0
  770. package/dist/esm/node_modules/xml-crypto/lib/hash-algorithms.mjs +53 -0
  771. package/dist/esm/node_modules/xml-crypto/lib/hash-algorithms.mjs.map +1 -0
  772. package/dist/esm/node_modules/xml-crypto/lib/index.mjs +70 -0
  773. package/dist/esm/node_modules/xml-crypto/lib/index.mjs.map +1 -0
  774. package/dist/esm/node_modules/xml-crypto/lib/signature-algorithms.mjs +88 -0
  775. package/dist/esm/node_modules/xml-crypto/lib/signature-algorithms.mjs.map +1 -0
  776. package/dist/esm/node_modules/xml-crypto/lib/signed-xml.mjs +693 -0
  777. package/dist/esm/node_modules/xml-crypto/lib/signed-xml.mjs.map +1 -0
  778. package/dist/esm/node_modules/xml-crypto/lib/types.mjs +55 -0
  779. package/dist/esm/node_modules/xml-crypto/lib/types.mjs.map +1 -0
  780. package/dist/esm/node_modules/xml-crypto/lib/utils.mjs +210 -0
  781. package/dist/esm/node_modules/xml-crypto/lib/utils.mjs.map +1 -0
  782. package/dist/esm/node_modules/xml-crypto/node_modules/xpath/xpath.mjs +3442 -0
  783. package/dist/esm/node_modules/xml-crypto/node_modules/xpath/xpath.mjs.map +1 -0
  784. package/dist/esm/node_modules/xml-escape/index.mjs +27 -0
  785. package/dist/esm/node_modules/xml-escape/index.mjs.map +1 -0
  786. package/dist/esm/node_modules/xpath/xpath.mjs +3407 -0
  787. package/dist/esm/node_modules/xpath/xpath.mjs.map +1 -0
  788. package/dist/esm/node_modules/zod/v4/classic/errors.mjs +30 -0
  789. package/dist/esm/node_modules/zod/v4/classic/errors.mjs.map +1 -0
  790. package/dist/esm/node_modules/zod/v4/classic/iso.mjs +38 -0
  791. package/dist/esm/node_modules/zod/v4/classic/iso.mjs.map +1 -0
  792. package/dist/esm/node_modules/zod/v4/classic/parse.mjs +20 -0
  793. package/dist/esm/node_modules/zod/v4/classic/parse.mjs.map +1 -0
  794. package/dist/esm/node_modules/zod/v4/classic/schemas.mjs +519 -0
  795. package/dist/esm/node_modules/zod/v4/classic/schemas.mjs.map +1 -0
  796. package/dist/esm/node_modules/zod/v4/core/api.mjs +395 -0
  797. package/dist/esm/node_modules/zod/v4/core/api.mjs.map +1 -0
  798. package/dist/esm/node_modules/zod/v4/core/checks.mjs +226 -0
  799. package/dist/esm/node_modules/zod/v4/core/checks.mjs.map +1 -0
  800. package/dist/esm/node_modules/zod/v4/core/core.mjs +57 -0
  801. package/dist/esm/node_modules/zod/v4/core/core.mjs.map +1 -0
  802. package/dist/esm/node_modules/zod/v4/core/doc.mjs +34 -0
  803. package/dist/esm/node_modules/zod/v4/core/doc.mjs.map +1 -0
  804. package/dist/esm/node_modules/zod/v4/core/errors.mjs +63 -0
  805. package/dist/esm/node_modules/zod/v4/core/errors.mjs.map +1 -0
  806. package/dist/esm/node_modules/zod/v4/core/parse.mjs +110 -0
  807. package/dist/esm/node_modules/zod/v4/core/parse.mjs.map +1 -0
  808. package/dist/esm/node_modules/zod/v4/core/regexes.mjs +60 -0
  809. package/dist/esm/node_modules/zod/v4/core/regexes.mjs.map +1 -0
  810. package/dist/esm/node_modules/zod/v4/core/registries.mjs +53 -0
  811. package/dist/esm/node_modules/zod/v4/core/registries.mjs.map +1 -0
  812. package/dist/esm/node_modules/zod/v4/core/schemas.mjs +1069 -0
  813. package/dist/esm/node_modules/zod/v4/core/schemas.mjs.map +1 -0
  814. package/dist/esm/node_modules/zod/v4/core/util.mjs +302 -0
  815. package/dist/esm/node_modules/zod/v4/core/util.mjs.map +1 -0
  816. package/dist/esm/node_modules/zod/v4/core/versions.mjs +10 -0
  817. package/dist/esm/node_modules/zod/v4/core/versions.mjs.map +1 -0
  818. package/dist/esm/schemas/user.schema.mjs +17 -0
  819. package/dist/esm/schemas/user.schema.mjs.map +1 -1
  820. package/dist/esm/services/dictionary.service.mjs +8 -31
  821. package/dist/esm/services/dictionary.service.mjs.map +1 -1
  822. package/dist/esm/services/email.service.mjs +13 -0
  823. package/dist/esm/services/email.service.mjs.map +1 -1
  824. package/dist/esm/types/user.types.mjs.map +1 -1
  825. package/dist/esm/utils/auth/getAuth.mjs +61 -27
  826. package/dist/esm/utils/auth/getAuth.mjs.map +1 -1
  827. package/dist/esm/utils/mongoDB/connectDB.mjs.map +1 -1
  828. package/dist/types/MagicLinkEmail.d.ts +8 -0
  829. package/dist/types/MagicLinkEmail.d.ts.map +1 -0
  830. package/dist/types/controllers/dictionary.controller.d.ts +18 -5
  831. package/dist/types/controllers/dictionary.controller.d.ts.map +1 -1
  832. package/dist/types/controllers/projectAccessKey.controller.d.ts.map +1 -1
  833. package/dist/types/controllers/tag.controller.d.ts.map +1 -1
  834. package/dist/types/emails/InviteUserEmail.d.ts +4 -4
  835. package/dist/types/emails/InviteUserEmail.d.ts.map +1 -1
  836. package/dist/types/emails/MagicLinkEmail.d.ts +31 -0
  837. package/dist/types/emails/MagicLinkEmail.d.ts.map +1 -0
  838. package/dist/types/emails/OAuthTokenCreatedEmail.d.ts +4 -4
  839. package/dist/types/emails/ResetUserPassword.d.ts +4 -4
  840. package/dist/types/emails/ResetUserPassword.d.ts.map +1 -1
  841. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts +4 -4
  842. package/dist/types/emails/SubscriptionPaymentCancellation.d.ts.map +1 -1
  843. package/dist/types/emails/SubscriptionPaymentError.d.ts +4 -4
  844. package/dist/types/emails/SubscriptionPaymentSuccess.d.ts +4 -4
  845. package/dist/types/emails/ValidateUserEmail.d.ts +4 -4
  846. package/dist/types/emails/Welcome.d.ts +4 -4
  847. package/dist/types/emails/Welcome.d.ts.map +1 -1
  848. package/dist/types/export.d.ts +1 -3
  849. package/dist/types/models/dictionary.model.d.ts +4 -4
  850. package/dist/types/models/discussion.model.d.ts +2 -2
  851. package/dist/types/models/oAuth2.model.d.ts +3 -3
  852. package/dist/types/schemas/dictionary.schema.d.ts +6 -6
  853. package/dist/types/schemas/discussion.schema.d.ts +6 -6
  854. package/dist/types/schemas/discussion.schema.d.ts.map +1 -1
  855. package/dist/types/schemas/oAuth2.schema.d.ts +5 -5
  856. package/dist/types/schemas/oAuth2.schema.d.ts.map +1 -1
  857. package/dist/types/schemas/organization.schema.d.ts +6 -6
  858. package/dist/types/schemas/plans.schema.d.ts +6 -6
  859. package/dist/types/schemas/project.schema.d.ts +6 -6
  860. package/dist/types/schemas/project.schema.d.ts.map +1 -1
  861. package/dist/types/schemas/session.schema.d.ts +6 -6
  862. package/dist/types/schemas/tag.schema.d.ts +6 -6
  863. package/dist/types/schemas/user.schema.d.ts +6 -6
  864. package/dist/types/schemas/user.schema.d.ts.map +1 -1
  865. package/dist/types/services/dictionary.service.d.ts +1 -12
  866. package/dist/types/services/dictionary.service.d.ts.map +1 -1
  867. package/dist/types/services/email.service.d.ts +21 -10
  868. package/dist/types/services/email.service.d.ts.map +1 -1
  869. package/dist/types/types/dictionary.types.d.ts +1 -0
  870. package/dist/types/types/dictionary.types.d.ts.map +1 -1
  871. package/dist/types/types/user.types.d.ts +1 -0
  872. package/dist/types/types/user.types.d.ts.map +1 -1
  873. package/dist/types/utils/auth/getAuth.d.ts.map +1 -1
  874. package/dist/types/utils/filtersAndPagination/getDictionaryFiltersAndPagination.d.ts +2 -2
  875. package/dist/types/utils/filtersAndPagination/getDiscussionFiltersAndPagination.d.ts +2 -2
  876. package/dist/types/utils/filtersAndPagination/getOrganizationFiltersAndPagination.d.ts +2 -2
  877. package/dist/types/utils/filtersAndPagination/getProjectFiltersAndPagination.d.ts +2 -2
  878. package/dist/types/utils/filtersAndPagination/getTagFiltersAndPagination.d.ts +2 -2
  879. package/dist/types/utils/mongoDB/connectDB.d.ts +2 -2
  880. package/dist/types/utils/mongoDB/connectDB.d.ts.map +1 -1
  881. package/package.json +38 -33
  882. package/dist/assets/controllers/test.json +0 -4
  883. package/dist/cjs/routes/audit.routes.cjs +0 -35
  884. package/dist/cjs/routes/audit.routes.cjs.map +0 -1
  885. package/dist/cjs/schemas/audit.schema.cjs +0 -65
  886. package/dist/cjs/schemas/audit.schema.cjs.map +0 -1
  887. package/dist/cjs/services/audit.service.cjs +0 -49
  888. package/dist/cjs/services/audit.service.cjs.map +0 -1
  889. package/dist/cjs/types/audit.types.cjs +0 -0
  890. package/dist/esm/routes/audit.routes.mjs +0 -31
  891. package/dist/esm/routes/audit.routes.mjs.map +0 -1
  892. package/dist/esm/schemas/audit.schema.mjs +0 -63
  893. package/dist/esm/schemas/audit.schema.mjs.map +0 -1
  894. package/dist/esm/services/audit.service.mjs +0 -46
  895. package/dist/esm/services/audit.service.mjs.map +0 -1
  896. package/dist/esm/types/audit.types.mjs +0 -0
  897. package/dist/types/emails/index.d.ts.map +0 -1
  898. package/dist/types/export.d.ts.map +0 -1
  899. package/dist/types/index.d.ts.map +0 -1
  900. package/dist/types/routes/audit.routes.d.ts +0 -29
  901. package/dist/types/routes/audit.routes.d.ts.map +0 -1
  902. package/dist/types/schemas/audit.schema.d.ts +0 -19
  903. package/dist/types/schemas/audit.schema.d.ts.map +0 -1
  904. package/dist/types/services/audit.service.d.ts +0 -36
  905. package/dist/types/services/audit.service.d.ts.map +0 -1
  906. package/dist/types/types/audit.types.d.ts +0 -29
  907. package/dist/types/types/audit.types.d.ts.map +0 -1
  908. package/dist/types/utils/access.d.ts.map +0 -1
  909. package/dist/types/utils/errors/index.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xpath.cjs","names":["fn","name","filter","XPathException","e","exports","map"],"sources":["../../../../../../../../node_modules/xml-crypto/node_modules/xpath/xpath.js"],"sourcesContent":["/*\r\n * xpath.js\r\n *\r\n * An XPath 1.0 library for JavaScript.\r\n *\r\n * Cameron McCormack <cam (at) mcc.id.au>\r\n *\r\n * This work is licensed under the MIT License.\r\n *\r\n * Revision 20: April 26, 2011\r\n * Fixed a typo resulting in FIRST_ORDERED_NODE_TYPE results being wrong,\r\n * thanks to <shi_a009 (at) hotmail.com>.\r\n *\r\n * Revision 19: November 29, 2005\r\n * Nodesets now store their nodes in a height balanced tree, increasing\r\n * performance for the common case of selecting nodes in document order,\r\n * thanks to Sébastien Cramatte <contact (at) zeninteractif.com>.\r\n * AVL tree code adapted from Raimund Neumann <rnova (at) gmx.net>.\r\n *\r\n * Revision 18: October 27, 2005\r\n * DOM 3 XPath support. Caveats:\r\n * - namespace prefixes aren't resolved in XPathEvaluator.createExpression,\r\n * but in XPathExpression.evaluate.\r\n * - XPathResult.invalidIteratorState is not implemented.\r\n *\r\n * Revision 17: October 25, 2005\r\n * Some core XPath function fixes and a patch to avoid crashing certain\r\n * versions of MSXML in PathExpr.prototype.getOwnerElement, thanks to\r\n * Sébastien Cramatte <contact (at) zeninteractif.com>.\r\n *\r\n * Revision 16: September 22, 2005\r\n * Workarounds for some IE 5.5 deficiencies.\r\n * Fixed problem with prefix node tests on attribute nodes.\r\n *\r\n * Revision 15: May 21, 2005\r\n * Fixed problem with QName node tests on elements with an xmlns=\"...\".\r\n *\r\n * Revision 14: May 19, 2005\r\n * Fixed QName node tests on attribute node regression.\r\n *\r\n * Revision 13: May 3, 2005\r\n * Node tests are case insensitive now if working in an HTML DOM.\r\n *\r\n * Revision 12: April 26, 2005\r\n * Updated licence. Slight code changes to enable use of Dean\r\n * Edwards' script compression, http://dean.edwards.name/packer/ .\r\n *\r\n * Revision 11: April 23, 2005\r\n * Fixed bug with 'and' and 'or' operators, fix thanks to\r\n * Sandy McArthur <sandy (at) mcarthur.org>.\r\n *\r\n * Revision 10: April 15, 2005\r\n * Added support for a virtual root node, supposedly helpful for\r\n * implementing XForms. Fixed problem with QName node tests and\r\n * the parent axis.\r\n *\r\n * Revision 9: March 17, 2005\r\n * Namespace resolver tweaked so using the document node as the context\r\n * for namespace lookups is equivalent to using the document element.\r\n *\r\n * Revision 8: February 13, 2005\r\n * Handle implicit declaration of 'xmlns' namespace prefix.\r\n * Fixed bug when comparing nodesets.\r\n * Instance data can now be associated with a FunctionResolver, and\r\n * workaround for MSXML not supporting 'localName' and 'getElementById',\r\n * thanks to Grant Gongaware.\r\n * Fix a few problems when the context node is the root node.\r\n *\r\n * Revision 7: February 11, 2005\r\n * Default namespace resolver fix from Grant Gongaware\r\n * <grant (at) gongaware.com>.\r\n *\r\n * Revision 6: February 10, 2005\r\n * Fixed bug in 'number' function.\r\n *\r\n * Revision 5: February 9, 2005\r\n * Fixed bug where text nodes not getting converted to string values.\r\n *\r\n * Revision 4: January 21, 2005\r\n * Bug in 'name' function, fix thanks to Bill Edney.\r\n * Fixed incorrect processing of namespace nodes.\r\n * Fixed NamespaceResolver to resolve 'xml' namespace.\r\n * Implemented union '|' operator.\r\n *\r\n * Revision 3: January 14, 2005\r\n * Fixed bug with nodeset comparisons, bug lexing < and >.\r\n *\r\n * Revision 2: October 26, 2004\r\n * QName node test namespace handling fixed. Few other bug fixes.\r\n *\r\n * Revision 1: August 13, 2004\r\n * Bug fixes from William J. Edney <bedney (at) technicalpursuit.com>.\r\n * Added minimal licence.\r\n *\r\n * Initial version: June 14, 2004\r\n */\r\n\r\n// non-node wrapper\r\nvar xpath = (typeof exports === 'undefined') ? {} : exports;\r\n\r\n(function (exports) {\r\n \"use strict\";\r\n\r\n // functional helpers\r\n function curry(func) {\r\n var slice = Array.prototype.slice,\r\n totalargs = func.length,\r\n partial = function (args, fn) {\r\n return function () {\r\n return fn.apply(this, args.concat(slice.call(arguments)));\r\n }\r\n },\r\n fn = function () {\r\n var args = slice.call(arguments);\r\n return (args.length < totalargs) ?\r\n partial(args, fn) :\r\n func.apply(this, slice.apply(arguments, [0, totalargs]));\r\n };\r\n return fn;\r\n }\r\n\r\n var forEach = function (f, xs) {\r\n for (var i = 0; i < xs.length; i += 1) {\r\n f(xs[i], i, xs);\r\n }\r\n };\r\n\r\n var reduce = function (f, seed, xs) {\r\n var acc = seed;\r\n\r\n forEach(function (x, i) { acc = f(acc, x, i); }, xs);\r\n\r\n return acc;\r\n };\r\n\r\n var map = function (f, xs) {\r\n var mapped = new Array(xs.length);\r\n\r\n forEach(function (x, i) { mapped[i] = f(x); }, xs);\r\n\r\n return mapped;\r\n };\r\n\r\n var filter = function (f, xs) {\r\n var filtered = [];\r\n\r\n forEach(function (x, i) { if (f(x, i)) { filtered.push(x); } }, xs);\r\n\r\n return filtered;\r\n };\r\n\r\n var includes = function (values, value) {\r\n for (var i = 0; i < values.length; i += 1) {\r\n if (values[i] === value) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n };\r\n\r\n function always(value) { return function () { return value; } }\r\n\r\n function toString(x) { return x.toString(); }\r\n var join = function (s, xs) { return xs.join(s); };\r\n var wrap = function (pref, suf, str) { return pref + str + suf; };\r\n\r\n var prototypeConcat = Array.prototype.concat;\r\n\r\n // .apply() fails above a certain number of arguments - https://github.com/goto100/xpath/pull/98\r\n var MAX_ARGUMENT_LENGTH = 32767;\r\n\r\n function flatten(arr) {\r\n var result = [];\r\n\r\n for (var start = 0; start < arr.length; start += MAX_ARGUMENT_LENGTH) {\r\n var chunk = arr.slice(start, start + MAX_ARGUMENT_LENGTH);\r\n \r\n result = prototypeConcat.apply(result, chunk);\r\n }\r\n \r\n return result;\r\n }\r\n\r\n function assign(target, varArgs) { // .length of function is 2\r\n var to = Object(target);\r\n\r\n for (var index = 1; index < arguments.length; index++) {\r\n var nextSource = arguments[index];\r\n\r\n if (nextSource != null) { // Skip over if undefined or null\r\n for (var nextKey in nextSource) {\r\n // Avoid bugs when hasOwnProperty is shadowed\r\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n\r\n return to;\r\n }\r\n\r\n var NodeTypes = {\r\n ELEMENT_NODE: 1,\r\n ATTRIBUTE_NODE: 2,\r\n TEXT_NODE: 3,\r\n CDATA_SECTION_NODE: 4,\r\n PROCESSING_INSTRUCTION_NODE: 7,\r\n COMMENT_NODE: 8,\r\n DOCUMENT_NODE: 9,\r\n DOCUMENT_TYPE_NODE: 10,\r\n DOCUMENT_FRAGMENT_NODE: 11,\r\n };\r\n\r\n // XPathParser ///////////////////////////////////////////////////////////////\r\n\r\n XPathParser.prototype = new Object();\r\n XPathParser.prototype.constructor = XPathParser;\r\n XPathParser.superclass = Object.prototype;\r\n\r\n function XPathParser() {\r\n this.init();\r\n }\r\n\r\n XPathParser.prototype.init = function () {\r\n this.reduceActions = [];\r\n\r\n this.reduceActions[3] = function (rhs) {\r\n return new OrOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[5] = function (rhs) {\r\n return new AndOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[7] = function (rhs) {\r\n return new EqualsOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[8] = function (rhs) {\r\n return new NotEqualOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[10] = function (rhs) {\r\n return new LessThanOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[11] = function (rhs) {\r\n return new GreaterThanOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[12] = function (rhs) {\r\n return new LessThanOrEqualOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[13] = function (rhs) {\r\n return new GreaterThanOrEqualOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[15] = function (rhs) {\r\n return new PlusOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[16] = function (rhs) {\r\n return new MinusOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[18] = function (rhs) {\r\n return new MultiplyOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[19] = function (rhs) {\r\n return new DivOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[20] = function (rhs) {\r\n return new ModOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[22] = function (rhs) {\r\n return new UnaryMinusOperation(rhs[1]);\r\n };\r\n this.reduceActions[24] = function (rhs) {\r\n return new BarOperation(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[25] = function (rhs) {\r\n return new PathExpr(undefined, undefined, rhs[0]);\r\n };\r\n this.reduceActions[27] = function (rhs) {\r\n rhs[0].locationPath = rhs[2];\r\n return rhs[0];\r\n };\r\n this.reduceActions[28] = function (rhs) {\r\n rhs[0].locationPath = rhs[2];\r\n rhs[0].locationPath.steps.unshift(new Step(Step.DESCENDANTORSELF, NodeTest.nodeTest, []));\r\n return rhs[0];\r\n };\r\n this.reduceActions[29] = function (rhs) {\r\n return new PathExpr(rhs[0], [], undefined);\r\n };\r\n this.reduceActions[30] = function (rhs) {\r\n if (Utilities.instance_of(rhs[0], PathExpr)) {\r\n if (rhs[0].filterPredicates == undefined) {\r\n rhs[0].filterPredicates = [];\r\n }\r\n rhs[0].filterPredicates.push(rhs[1]);\r\n return rhs[0];\r\n } else {\r\n return new PathExpr(rhs[0], [rhs[1]], undefined);\r\n }\r\n };\r\n this.reduceActions[32] = function (rhs) {\r\n return rhs[1];\r\n };\r\n this.reduceActions[33] = function (rhs) {\r\n return new XString(rhs[0]);\r\n };\r\n this.reduceActions[34] = function (rhs) {\r\n return new XNumber(rhs[0]);\r\n };\r\n this.reduceActions[36] = function (rhs) {\r\n return new FunctionCall(rhs[0], []);\r\n };\r\n this.reduceActions[37] = function (rhs) {\r\n return new FunctionCall(rhs[0], rhs[2]);\r\n };\r\n this.reduceActions[38] = function (rhs) {\r\n return [rhs[0]];\r\n };\r\n this.reduceActions[39] = function (rhs) {\r\n rhs[2].unshift(rhs[0]);\r\n return rhs[2];\r\n };\r\n this.reduceActions[43] = function (rhs) {\r\n return new LocationPath(true, []);\r\n };\r\n this.reduceActions[44] = function (rhs) {\r\n rhs[1].absolute = true;\r\n return rhs[1];\r\n };\r\n this.reduceActions[46] = function (rhs) {\r\n return new LocationPath(false, [rhs[0]]);\r\n };\r\n this.reduceActions[47] = function (rhs) {\r\n rhs[0].steps.push(rhs[2]);\r\n return rhs[0];\r\n };\r\n this.reduceActions[49] = function (rhs) {\r\n return new Step(rhs[0], rhs[1], []);\r\n };\r\n this.reduceActions[50] = function (rhs) {\r\n return new Step(Step.CHILD, rhs[0], []);\r\n };\r\n this.reduceActions[51] = function (rhs) {\r\n return new Step(rhs[0], rhs[1], rhs[2]);\r\n };\r\n this.reduceActions[52] = function (rhs) {\r\n return new Step(Step.CHILD, rhs[0], rhs[1]);\r\n };\r\n this.reduceActions[54] = function (rhs) {\r\n return [rhs[0]];\r\n };\r\n this.reduceActions[55] = function (rhs) {\r\n rhs[1].unshift(rhs[0]);\r\n return rhs[1];\r\n };\r\n this.reduceActions[56] = function (rhs) {\r\n if (rhs[0] == \"ancestor\") {\r\n return Step.ANCESTOR;\r\n } else if (rhs[0] == \"ancestor-or-self\") {\r\n return Step.ANCESTORORSELF;\r\n } else if (rhs[0] == \"attribute\") {\r\n return Step.ATTRIBUTE;\r\n } else if (rhs[0] == \"child\") {\r\n return Step.CHILD;\r\n } else if (rhs[0] == \"descendant\") {\r\n return Step.DESCENDANT;\r\n } else if (rhs[0] == \"descendant-or-self\") {\r\n return Step.DESCENDANTORSELF;\r\n } else if (rhs[0] == \"following\") {\r\n return Step.FOLLOWING;\r\n } else if (rhs[0] == \"following-sibling\") {\r\n return Step.FOLLOWINGSIBLING;\r\n } else if (rhs[0] == \"namespace\") {\r\n return Step.NAMESPACE;\r\n } else if (rhs[0] == \"parent\") {\r\n return Step.PARENT;\r\n } else if (rhs[0] == \"preceding\") {\r\n return Step.PRECEDING;\r\n } else if (rhs[0] == \"preceding-sibling\") {\r\n return Step.PRECEDINGSIBLING;\r\n } else if (rhs[0] == \"self\") {\r\n return Step.SELF;\r\n }\r\n return -1;\r\n };\r\n this.reduceActions[57] = function (rhs) {\r\n return Step.ATTRIBUTE;\r\n };\r\n this.reduceActions[59] = function (rhs) {\r\n if (rhs[0] == \"comment\") {\r\n return NodeTest.commentTest;\r\n } else if (rhs[0] == \"text\") {\r\n return NodeTest.textTest;\r\n } else if (rhs[0] == \"processing-instruction\") {\r\n return NodeTest.anyPiTest;\r\n } else if (rhs[0] == \"node\") {\r\n return NodeTest.nodeTest;\r\n }\r\n return new NodeTest(-1, undefined);\r\n };\r\n this.reduceActions[60] = function (rhs) {\r\n return new NodeTest.PITest(rhs[2]);\r\n };\r\n this.reduceActions[61] = function (rhs) {\r\n return rhs[1];\r\n };\r\n this.reduceActions[63] = function (rhs) {\r\n rhs[1].absolute = true;\r\n rhs[1].steps.unshift(new Step(Step.DESCENDANTORSELF, NodeTest.nodeTest, []));\r\n return rhs[1];\r\n };\r\n this.reduceActions[64] = function (rhs) {\r\n rhs[0].steps.push(new Step(Step.DESCENDANTORSELF, NodeTest.nodeTest, []));\r\n rhs[0].steps.push(rhs[2]);\r\n return rhs[0];\r\n };\r\n this.reduceActions[65] = function (rhs) {\r\n return new Step(Step.SELF, NodeTest.nodeTest, []);\r\n };\r\n this.reduceActions[66] = function (rhs) {\r\n return new Step(Step.PARENT, NodeTest.nodeTest, []);\r\n };\r\n this.reduceActions[67] = function (rhs) {\r\n return new VariableReference(rhs[1]);\r\n };\r\n this.reduceActions[68] = function (rhs) {\r\n return NodeTest.nameTestAny;\r\n };\r\n this.reduceActions[69] = function (rhs) {\r\n return new NodeTest.NameTestPrefixAny(rhs[0].split(':')[0]);\r\n };\r\n this.reduceActions[70] = function (rhs) {\r\n return new NodeTest.NameTestQName(rhs[0]);\r\n };\r\n };\r\n\r\n XPathParser.actionTable = [\r\n \" s s sssssssss s ss s ss\",\r\n \" s \",\r\n \"r rrrrrrrrr rrrrrrr rr r \",\r\n \" rrrrr \",\r\n \" s s sssssssss s ss s ss\",\r\n \"rs rrrrrrrr s sssssrrrrrr rrs rs \",\r\n \" s s sssssssss s ss s ss\",\r\n \" s \",\r\n \" s \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \" s \",\r\n \" s \",\r\n \" s s sssss s s \",\r\n \"r rrrrrrrrr rrrrrrr rr r \",\r\n \"a \",\r\n \"r s rr r \",\r\n \"r sr rr r \",\r\n \"r s rr s rr r \",\r\n \"r rssrr rss rr r \",\r\n \"r rrrrr rrrss rr r \",\r\n \"r rrrrrsss rrrrr rr r \",\r\n \"r rrrrrrrr rrrrr rr r \",\r\n \"r rrrrrrrr rrrrrs rr r \",\r\n \"r rrrrrrrr rrrrrr rr r \",\r\n \"r rrrrrrrr rrrrrr rr r \",\r\n \"r srrrrrrrr rrrrrrs rr sr \",\r\n \"r srrrrrrrr rrrrrrs rr r \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \"r rrrrrrrr rrrrrr rr r \",\r\n \"r rrrrrrrr rrrrrr rr r \",\r\n \"r rrrrrrrrr rrrrrrr rr r \",\r\n \"r rrrrrrrrr rrrrrrr rr r \",\r\n \" sssss \",\r\n \"r rrrrrrrrr rrrrrrr rr sr \",\r\n \"r rrrrrrrrr rrrrrrr rr r \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \" s \",\r\n \"r srrrrrrrr rrrrrrs rr r \",\r\n \"r rrrrrrrr rrrrr rr r \",\r\n \" s \",\r\n \" s \",\r\n \" rrrrr \",\r\n \" s s sssssssss s sss s ss\",\r\n \"r srrrrrrrr rrrrrrs rr r \",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssssssss ss s ss\",\r\n \" s s sssssssss s ss s ss\",\r\n \" s s sssss s s \",\r\n \" s s sssss s s \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \" s s sssss s s \",\r\n \" s s sssss s s \",\r\n \"r rrrrrrrrr rrrrrrr rr sr \",\r\n \"r rrrrrrrrr rrrrrrr rr sr \",\r\n \"r rrrrrrrrr rrrrrrr rr r \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \" s \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \" rr \",\r\n \" s \",\r\n \" rs \",\r\n \"r sr rr r \",\r\n \"r s rr s rr r \",\r\n \"r rssrr rss rr r \",\r\n \"r rssrr rss rr r \",\r\n \"r rrrrr rrrss rr r \",\r\n \"r rrrrr rrrss rr r \",\r\n \"r rrrrr rrrss rr r \",\r\n \"r rrrrr rrrss rr r \",\r\n \"r rrrrrsss rrrrr rr r \",\r\n \"r rrrrrsss rrrrr rr r \",\r\n \"r rrrrrrrr rrrrr rr r \",\r\n \"r rrrrrrrr rrrrr rr r \",\r\n \"r rrrrrrrr rrrrr rr r \",\r\n \"r rrrrrrrr rrrrrr rr r \",\r\n \" r \",\r\n \" s \",\r\n \"r srrrrrrrr rrrrrrs rr r \",\r\n \"r srrrrrrrr rrrrrrs rr r \",\r\n \"r rrrrrrrrr rrrrrrr rr r \",\r\n \"r rrrrrrrrr rrrrrrr rr r \",\r\n \"r rrrrrrrrr rrrrrrr rr r \",\r\n \"r rrrrrrrrr rrrrrrr rr r \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \" s s sssssssss s ss s ss\",\r\n \"r rrrrrrrrr rrrrrrr rr rr \",\r\n \" r \"\r\n ];\r\n\r\n XPathParser.actionTableNumber = [\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" J \",\r\n \"a aaaaaaaaa aaaaaaa aa a \",\r\n \" YYYYY \",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \"K1 KKKKKKKK . +*)('KKKKKK KK# K\\\" \",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" N \",\r\n \" O \",\r\n \"e eeeeeeeee eeeeeee ee ee \",\r\n \"f fffffffff fffffff ff ff \",\r\n \"d ddddddddd ddddddd dd dd \",\r\n \"B BBBBBBBBB BBBBBBB BB BB \",\r\n \"A AAAAAAAAA AAAAAAA AA AA \",\r\n \" P \",\r\n \" Q \",\r\n \" 1 . +*)(' # \\\" \",\r\n \"b bbbbbbbbb bbbbbbb bb b \",\r\n \" \",\r\n \"! S !! ! \",\r\n \"\\\" T\\\" \\\"\\\" \\\" \",\r\n \"$ V $$ U $$ $ \",\r\n \"& &ZY&& &XW && & \",\r\n \") ))))) )))\\\\[ )) ) \",\r\n \". ....._^] ..... .. . \",\r\n \"1 11111111 11111 11 1 \",\r\n \"5 55555555 55555` 55 5 \",\r\n \"7 77777777 777777 77 7 \",\r\n \"9 99999999 999999 99 9 \",\r\n \": c:::::::: ::::::b :: a: \",\r\n \"I fIIIIIIII IIIIIIe II I \",\r\n \"= ========= ======= == == \",\r\n \"? ????????? ??????? ?? ?? \",\r\n \"C CCCCCCCCC CCCCCCC CC CC \",\r\n \"J JJJJJJJJ JJJJJJ JJ J \",\r\n \"M MMMMMMMM MMMMMM MM M \",\r\n \"N NNNNNNNNN NNNNNNN NN N \",\r\n \"P PPPPPPPPP PPPPPPP PP P \",\r\n \" +*)(' \",\r\n \"R RRRRRRRRR RRRRRRR RR aR \",\r\n \"U UUUUUUUUU UUUUUUU UU U \",\r\n \"Z ZZZZZZZZZ ZZZZZZZ ZZ ZZ \",\r\n \"c ccccccccc ccccccc cc cc \",\r\n \" j \",\r\n \"L fLLLLLLLL LLLLLLe LL L \",\r\n \"6 66666666 66666 66 6 \",\r\n \" k \",\r\n \" l \",\r\n \" XXXXX \",\r\n \" 1 0 /.-,+*)(' & %$m # \\\"!\",\r\n \"_ f________ ______e __ _ \",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' %$ # \\\"!\",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \" 1 . +*)(' # \\\" \",\r\n \" 1 . +*)(' # \\\" \",\r\n \"> >>>>>>>>> >>>>>>> >> >> \",\r\n \" 1 . +*)(' # \\\" \",\r\n \" 1 . +*)(' # \\\" \",\r\n \"Q QQQQQQQQQ QQQQQQQ QQ aQ \",\r\n \"V VVVVVVVVV VVVVVVV VV aV \",\r\n \"T TTTTTTTTT TTTTTTT TT T \",\r\n \"@ @@@@@@@@@ @@@@@@@ @@ @@ \",\r\n \" \\x87 \",\r\n \"[ [[[[[[[[[ [[[[[[[ [[ [[ \",\r\n \"D DDDDDDDDD DDDDDDD DD DD \",\r\n \" HH \",\r\n \" \\x88 \",\r\n \" F\\x89 \",\r\n \"# T# ## # \",\r\n \"% V %% U %% % \",\r\n \"' 'ZY'' 'XW '' ' \",\r\n \"( (ZY(( (XW (( ( \",\r\n \"+ +++++ +++\\\\[ ++ + \",\r\n \"* ***** ***\\\\[ ** * \",\r\n \"- ----- ---\\\\[ -- - \",\r\n \", ,,,,, ,,,\\\\[ ,, , \",\r\n \"0 00000_^] 00000 00 0 \",\r\n \"/ /////_^] ///// // / \",\r\n \"2 22222222 22222 22 2 \",\r\n \"3 33333333 33333 33 3 \",\r\n \"4 44444444 44444 44 4 \",\r\n \"8 88888888 888888 88 8 \",\r\n \" ^ \",\r\n \" \\x8a \",\r\n \"; f;;;;;;;; ;;;;;;e ;; ; \",\r\n \"< f<<<<<<<< <<<<<<e << < \",\r\n \"O OOOOOOOOO OOOOOOO OO O \",\r\n \"` ````````` ``````` `` ` \",\r\n \"S SSSSSSSSS SSSSSSS SS S \",\r\n \"W WWWWWWWWW WWWWWWW WW W \",\r\n \"\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\ \\\\\\\\ \",\r\n \"E EEEEEEEEE EEEEEEE EE EE \",\r\n \" 1 0 /.-,+*)(' & %$ # \\\"!\",\r\n \"] ]]]]]]]]] ]]]]]]] ]] ]] \",\r\n \" G \"\r\n ];\r\n\r\n XPathParser.gotoTable = [\r\n \"3456789:;<=>?@ AB CDEFGH IJ \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \"L456789:;<=>?@ AB CDEFGH IJ \",\r\n \" M EFGH IJ \",\r\n \" N;<=>?@ AB CDEFGH IJ \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" S EFGH IJ \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" e \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" h J \",\r\n \" i j \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \"o456789:;<=>?@ ABpqCDEFGH IJ \",\r\n \" \",\r\n \" r6789:;<=>?@ AB CDEFGH IJ \",\r\n \" s789:;<=>?@ AB CDEFGH IJ \",\r\n \" t89:;<=>?@ AB CDEFGH IJ \",\r\n \" u89:;<=>?@ AB CDEFGH IJ \",\r\n \" v9:;<=>?@ AB CDEFGH IJ \",\r\n \" w9:;<=>?@ AB CDEFGH IJ \",\r\n \" x9:;<=>?@ AB CDEFGH IJ \",\r\n \" y9:;<=>?@ AB CDEFGH IJ \",\r\n \" z:;<=>?@ AB CDEFGH IJ \",\r\n \" {:;<=>?@ AB CDEFGH IJ \",\r\n \" |;<=>?@ AB CDEFGH IJ \",\r\n \" };<=>?@ AB CDEFGH IJ \",\r\n \" ~;<=>?@ AB CDEFGH IJ \",\r\n \" \\x7f=>?@ AB CDEFGH IJ \",\r\n \"\\x80456789:;<=>?@ AB CDEFGH IJ\\x81\",\r\n \" \\x82 EFGH IJ \",\r\n \" \\x83 EFGH IJ \",\r\n \" \",\r\n \" \\x84 GH IJ \",\r\n \" \\x85 GH IJ \",\r\n \" i \\x86 \",\r\n \" i \\x87 \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \" \",\r\n \"o456789:;<=>?@ AB\\x8cqCDEFGH IJ \",\r\n \" \",\r\n \" \"\r\n ];\r\n\r\n XPathParser.productions = [\r\n [1, 1, 2],\r\n [2, 1, 3],\r\n [3, 1, 4],\r\n [3, 3, 3, -9, 4],\r\n [4, 1, 5],\r\n [4, 3, 4, -8, 5],\r\n [5, 1, 6],\r\n [5, 3, 5, -22, 6],\r\n [5, 3, 5, -5, 6],\r\n [6, 1, 7],\r\n [6, 3, 6, -23, 7],\r\n [6, 3, 6, -24, 7],\r\n [6, 3, 6, -6, 7],\r\n [6, 3, 6, -7, 7],\r\n [7, 1, 8],\r\n [7, 3, 7, -25, 8],\r\n [7, 3, 7, -26, 8],\r\n [8, 1, 9],\r\n [8, 3, 8, -12, 9],\r\n [8, 3, 8, -11, 9],\r\n [8, 3, 8, -10, 9],\r\n [9, 1, 10],\r\n [9, 2, -26, 9],\r\n [10, 1, 11],\r\n [10, 3, 10, -27, 11],\r\n [11, 1, 12],\r\n [11, 1, 13],\r\n [11, 3, 13, -28, 14],\r\n [11, 3, 13, -4, 14],\r\n [13, 1, 15],\r\n [13, 2, 13, 16],\r\n [15, 1, 17],\r\n [15, 3, -29, 2, -30],\r\n [15, 1, -15],\r\n [15, 1, -16],\r\n [15, 1, 18],\r\n [18, 3, -13, -29, -30],\r\n [18, 4, -13, -29, 19, -30],\r\n [19, 1, 20],\r\n [19, 3, 20, -31, 19],\r\n [20, 1, 2],\r\n [12, 1, 14],\r\n [12, 1, 21],\r\n [21, 1, -28],\r\n [21, 2, -28, 14],\r\n [21, 1, 22],\r\n [14, 1, 23],\r\n [14, 3, 14, -28, 23],\r\n [14, 1, 24],\r\n [23, 2, 25, 26],\r\n [23, 1, 26],\r\n [23, 3, 25, 26, 27],\r\n [23, 2, 26, 27],\r\n [23, 1, 28],\r\n [27, 1, 16],\r\n [27, 2, 16, 27],\r\n [25, 2, -14, -3],\r\n [25, 1, -32],\r\n [26, 1, 29],\r\n [26, 3, -20, -29, -30],\r\n [26, 4, -21, -29, -15, -30],\r\n [16, 3, -33, 30, -34],\r\n [30, 1, 2],\r\n [22, 2, -4, 14],\r\n [24, 3, 14, -4, 23],\r\n [28, 1, -35],\r\n [28, 1, -2],\r\n [17, 2, -36, -18],\r\n [29, 1, -17],\r\n [29, 1, -19],\r\n [29, 1, -18]\r\n ];\r\n\r\n XPathParser.DOUBLEDOT = 2;\r\n XPathParser.DOUBLECOLON = 3;\r\n XPathParser.DOUBLESLASH = 4;\r\n XPathParser.NOTEQUAL = 5;\r\n XPathParser.LESSTHANOREQUAL = 6;\r\n XPathParser.GREATERTHANOREQUAL = 7;\r\n XPathParser.AND = 8;\r\n XPathParser.OR = 9;\r\n XPathParser.MOD = 10;\r\n XPathParser.DIV = 11;\r\n XPathParser.MULTIPLYOPERATOR = 12;\r\n XPathParser.FUNCTIONNAME = 13;\r\n XPathParser.AXISNAME = 14;\r\n XPathParser.LITERAL = 15;\r\n XPathParser.NUMBER = 16;\r\n XPathParser.ASTERISKNAMETEST = 17;\r\n XPathParser.QNAME = 18;\r\n XPathParser.NCNAMECOLONASTERISK = 19;\r\n XPathParser.NODETYPE = 20;\r\n XPathParser.PROCESSINGINSTRUCTIONWITHLITERAL = 21;\r\n XPathParser.EQUALS = 22;\r\n XPathParser.LESSTHAN = 23;\r\n XPathParser.GREATERTHAN = 24;\r\n XPathParser.PLUS = 25;\r\n XPathParser.MINUS = 26;\r\n XPathParser.BAR = 27;\r\n XPathParser.SLASH = 28;\r\n XPathParser.LEFTPARENTHESIS = 29;\r\n XPathParser.RIGHTPARENTHESIS = 30;\r\n XPathParser.COMMA = 31;\r\n XPathParser.AT = 32;\r\n XPathParser.LEFTBRACKET = 33;\r\n XPathParser.RIGHTBRACKET = 34;\r\n XPathParser.DOT = 35;\r\n XPathParser.DOLLAR = 36;\r\n\r\n XPathParser.prototype.tokenize = function (s1) {\r\n var types = [];\r\n var values = [];\r\n var s = s1 + '\\0';\r\n\r\n var pos = 0;\r\n var c = s.charAt(pos++);\r\n while (1) {\r\n while (c == ' ' || c == '\\t' || c == '\\r' || c == '\\n') {\r\n c = s.charAt(pos++);\r\n }\r\n if (c == '\\0' || pos >= s.length) {\r\n break;\r\n }\r\n\r\n if (c == '(') {\r\n types.push(XPathParser.LEFTPARENTHESIS);\r\n values.push(c);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n if (c == ')') {\r\n types.push(XPathParser.RIGHTPARENTHESIS);\r\n values.push(c);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n if (c == '[') {\r\n types.push(XPathParser.LEFTBRACKET);\r\n values.push(c);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n if (c == ']') {\r\n types.push(XPathParser.RIGHTBRACKET);\r\n values.push(c);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n if (c == '@') {\r\n types.push(XPathParser.AT);\r\n values.push(c);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n if (c == ',') {\r\n types.push(XPathParser.COMMA);\r\n values.push(c);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n if (c == '|') {\r\n types.push(XPathParser.BAR);\r\n values.push(c);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n if (c == '+') {\r\n types.push(XPathParser.PLUS);\r\n values.push(c);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n if (c == '-') {\r\n types.push(XPathParser.MINUS);\r\n values.push(c);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n if (c == '=') {\r\n types.push(XPathParser.EQUALS);\r\n values.push(c);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n if (c == '$') {\r\n types.push(XPathParser.DOLLAR);\r\n values.push(c);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n\r\n if (c == '.') {\r\n c = s.charAt(pos++);\r\n if (c == '.') {\r\n types.push(XPathParser.DOUBLEDOT);\r\n values.push(\"..\");\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n if (c >= '0' && c <= '9') {\r\n var number = \".\" + c;\r\n c = s.charAt(pos++);\r\n while (c >= '0' && c <= '9') {\r\n number += c;\r\n c = s.charAt(pos++);\r\n }\r\n types.push(XPathParser.NUMBER);\r\n values.push(number);\r\n continue;\r\n }\r\n types.push(XPathParser.DOT);\r\n values.push('.');\r\n continue;\r\n }\r\n\r\n if (c == '\\'' || c == '\"') {\r\n var delimiter = c;\r\n var literal = \"\";\r\n while (pos < s.length && (c = s.charAt(pos)) !== delimiter) {\r\n literal += c;\r\n pos += 1;\r\n }\r\n if (c !== delimiter) {\r\n throw XPathException.fromMessage(\"Unterminated string literal: \" + delimiter + literal);\r\n }\r\n pos += 1;\r\n types.push(XPathParser.LITERAL);\r\n values.push(literal);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n\r\n if (c >= '0' && c <= '9') {\r\n var number = c;\r\n c = s.charAt(pos++);\r\n while (c >= '0' && c <= '9') {\r\n number += c;\r\n c = s.charAt(pos++);\r\n }\r\n if (c == '.') {\r\n if (s.charAt(pos) >= '0' && s.charAt(pos) <= '9') {\r\n number += c;\r\n number += s.charAt(pos++);\r\n c = s.charAt(pos++);\r\n while (c >= '0' && c <= '9') {\r\n number += c;\r\n c = s.charAt(pos++);\r\n }\r\n }\r\n }\r\n types.push(XPathParser.NUMBER);\r\n values.push(number);\r\n continue;\r\n }\r\n\r\n if (c == '*') {\r\n if (types.length > 0) {\r\n var last = types[types.length - 1];\r\n if (last != XPathParser.AT\r\n && last != XPathParser.DOUBLECOLON\r\n && last != XPathParser.LEFTPARENTHESIS\r\n && last != XPathParser.LEFTBRACKET\r\n && last != XPathParser.AND\r\n && last != XPathParser.OR\r\n && last != XPathParser.MOD\r\n && last != XPathParser.DIV\r\n && last != XPathParser.MULTIPLYOPERATOR\r\n && last != XPathParser.SLASH\r\n && last != XPathParser.DOUBLESLASH\r\n && last != XPathParser.BAR\r\n && last != XPathParser.PLUS\r\n && last != XPathParser.MINUS\r\n && last != XPathParser.EQUALS\r\n && last != XPathParser.NOTEQUAL\r\n && last != XPathParser.LESSTHAN\r\n && last != XPathParser.LESSTHANOREQUAL\r\n && last != XPathParser.GREATERTHAN\r\n && last != XPathParser.GREATERTHANOREQUAL) {\r\n types.push(XPathParser.MULTIPLYOPERATOR);\r\n values.push(c);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n }\r\n types.push(XPathParser.ASTERISKNAMETEST);\r\n values.push(c);\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n\r\n if (c == ':') {\r\n if (s.charAt(pos) == ':') {\r\n types.push(XPathParser.DOUBLECOLON);\r\n values.push(\"::\");\r\n pos++;\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n }\r\n\r\n if (c == '/') {\r\n c = s.charAt(pos++);\r\n if (c == '/') {\r\n types.push(XPathParser.DOUBLESLASH);\r\n values.push(\"//\");\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n types.push(XPathParser.SLASH);\r\n values.push('/');\r\n continue;\r\n }\r\n\r\n if (c == '!') {\r\n if (s.charAt(pos) == '=') {\r\n types.push(XPathParser.NOTEQUAL);\r\n values.push(\"!=\");\r\n pos++;\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n }\r\n\r\n if (c == '<') {\r\n if (s.charAt(pos) == '=') {\r\n types.push(XPathParser.LESSTHANOREQUAL);\r\n values.push(\"<=\");\r\n pos++;\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n types.push(XPathParser.LESSTHAN);\r\n values.push('<');\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n\r\n if (c == '>') {\r\n if (s.charAt(pos) == '=') {\r\n types.push(XPathParser.GREATERTHANOREQUAL);\r\n values.push(\">=\");\r\n pos++;\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n types.push(XPathParser.GREATERTHAN);\r\n values.push('>');\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n\r\n if (c == '_' || Utilities.isLetter(c.charCodeAt(0))) {\r\n var name = c;\r\n c = s.charAt(pos++);\r\n while (Utilities.isNCNameChar(c.charCodeAt(0))) {\r\n name += c;\r\n c = s.charAt(pos++);\r\n }\r\n if (types.length > 0) {\r\n var last = types[types.length - 1];\r\n if (last != XPathParser.AT\r\n && last != XPathParser.DOUBLECOLON\r\n && last != XPathParser.LEFTPARENTHESIS\r\n && last != XPathParser.LEFTBRACKET\r\n && last != XPathParser.AND\r\n && last != XPathParser.OR\r\n && last != XPathParser.MOD\r\n && last != XPathParser.DIV\r\n && last != XPathParser.MULTIPLYOPERATOR\r\n && last != XPathParser.SLASH\r\n && last != XPathParser.DOUBLESLASH\r\n && last != XPathParser.BAR\r\n && last != XPathParser.PLUS\r\n && last != XPathParser.MINUS\r\n && last != XPathParser.EQUALS\r\n && last != XPathParser.NOTEQUAL\r\n && last != XPathParser.LESSTHAN\r\n && last != XPathParser.LESSTHANOREQUAL\r\n && last != XPathParser.GREATERTHAN\r\n && last != XPathParser.GREATERTHANOREQUAL) {\r\n if (name == \"and\") {\r\n types.push(XPathParser.AND);\r\n values.push(name);\r\n continue;\r\n }\r\n if (name == \"or\") {\r\n types.push(XPathParser.OR);\r\n values.push(name);\r\n continue;\r\n }\r\n if (name == \"mod\") {\r\n types.push(XPathParser.MOD);\r\n values.push(name);\r\n continue;\r\n }\r\n if (name == \"div\") {\r\n types.push(XPathParser.DIV);\r\n values.push(name);\r\n continue;\r\n }\r\n }\r\n }\r\n if (c == ':') {\r\n if (s.charAt(pos) == '*') {\r\n types.push(XPathParser.NCNAMECOLONASTERISK);\r\n values.push(name + \":*\");\r\n pos++;\r\n c = s.charAt(pos++);\r\n continue;\r\n }\r\n if (s.charAt(pos) == '_' || Utilities.isLetter(s.charCodeAt(pos))) {\r\n name += ':';\r\n c = s.charAt(pos++);\r\n while (Utilities.isNCNameChar(c.charCodeAt(0))) {\r\n name += c;\r\n c = s.charAt(pos++);\r\n }\r\n if (c == '(') {\r\n types.push(XPathParser.FUNCTIONNAME);\r\n values.push(name);\r\n continue;\r\n }\r\n types.push(XPathParser.QNAME);\r\n values.push(name);\r\n continue;\r\n }\r\n if (s.charAt(pos) == ':') {\r\n types.push(XPathParser.AXISNAME);\r\n values.push(name);\r\n continue;\r\n }\r\n }\r\n if (c == '(') {\r\n if (name == \"comment\" || name == \"text\" || name == \"node\") {\r\n types.push(XPathParser.NODETYPE);\r\n values.push(name);\r\n continue;\r\n }\r\n if (name == \"processing-instruction\") {\r\n if (s.charAt(pos) == ')') {\r\n types.push(XPathParser.NODETYPE);\r\n } else {\r\n types.push(XPathParser.PROCESSINGINSTRUCTIONWITHLITERAL);\r\n }\r\n values.push(name);\r\n continue;\r\n }\r\n types.push(XPathParser.FUNCTIONNAME);\r\n values.push(name);\r\n continue;\r\n }\r\n types.push(XPathParser.QNAME);\r\n values.push(name);\r\n continue;\r\n }\r\n\r\n throw new Error(\"Unexpected character \" + c);\r\n }\r\n types.push(1);\r\n values.push(\"[EOF]\");\r\n return [types, values];\r\n };\r\n\r\n XPathParser.SHIFT = 's';\r\n XPathParser.REDUCE = 'r';\r\n XPathParser.ACCEPT = 'a';\r\n\r\n XPathParser.prototype.parse = function (s) {\r\n var types;\r\n var values;\r\n var res = this.tokenize(s);\r\n if (res == undefined) {\r\n return undefined;\r\n }\r\n types = res[0];\r\n values = res[1];\r\n var tokenPos = 0;\r\n var state = [];\r\n var tokenType = [];\r\n var tokenValue = [];\r\n var s;\r\n var a;\r\n var t;\r\n\r\n state.push(0);\r\n tokenType.push(1);\r\n tokenValue.push(\"_S\");\r\n\r\n a = types[tokenPos];\r\n t = values[tokenPos++];\r\n while (1) {\r\n s = state[state.length - 1];\r\n switch (XPathParser.actionTable[s].charAt(a - 1)) {\r\n case XPathParser.SHIFT:\r\n tokenType.push(-a);\r\n tokenValue.push(t);\r\n state.push(XPathParser.actionTableNumber[s].charCodeAt(a - 1) - 32);\r\n a = types[tokenPos];\r\n t = values[tokenPos++];\r\n break;\r\n case XPathParser.REDUCE:\r\n var num = XPathParser.productions[XPathParser.actionTableNumber[s].charCodeAt(a - 1) - 32][1];\r\n var rhs = [];\r\n for (var i = 0; i < num; i++) {\r\n tokenType.pop();\r\n rhs.unshift(tokenValue.pop());\r\n state.pop();\r\n }\r\n var s_ = state[state.length - 1];\r\n tokenType.push(XPathParser.productions[XPathParser.actionTableNumber[s].charCodeAt(a - 1) - 32][0]);\r\n if (this.reduceActions[XPathParser.actionTableNumber[s].charCodeAt(a - 1) - 32] == undefined) {\r\n tokenValue.push(rhs[0]);\r\n } else {\r\n tokenValue.push(this.reduceActions[XPathParser.actionTableNumber[s].charCodeAt(a - 1) - 32](rhs));\r\n }\r\n state.push(XPathParser.gotoTable[s_].charCodeAt(XPathParser.productions[XPathParser.actionTableNumber[s].charCodeAt(a - 1) - 32][0] - 2) - 33);\r\n break;\r\n case XPathParser.ACCEPT:\r\n return new XPath(tokenValue.pop());\r\n default:\r\n throw new Error(\"XPath parse error\");\r\n }\r\n }\r\n };\r\n\r\n // XPath /////////////////////////////////////////////////////////////////////\r\n\r\n XPath.prototype = new Object();\r\n XPath.prototype.constructor = XPath;\r\n XPath.superclass = Object.prototype;\r\n\r\n function XPath(e) {\r\n this.expression = e;\r\n }\r\n\r\n XPath.prototype.toString = function () {\r\n return this.expression.toString();\r\n };\r\n\r\n function setIfUnset(obj, prop, value) {\r\n if (!(prop in obj)) {\r\n obj[prop] = value;\r\n }\r\n }\r\n\r\n XPath.prototype.evaluate = function (c) {\r\n c.contextNode = c.expressionContextNode;\r\n c.contextSize = 1;\r\n c.contextPosition = 1;\r\n\r\n // [2017-11-25] Removed usage of .implementation.hasFeature() since it does\r\n // not reliably detect HTML DOMs (always returns false in xmldom and true in browsers)\r\n if (c.isHtml) {\r\n setIfUnset(c, 'caseInsensitive', true);\r\n setIfUnset(c, 'allowAnyNamespaceForNoPrefix', true);\r\n }\r\n\r\n setIfUnset(c, 'caseInsensitive', false);\r\n\r\n return this.expression.evaluate(c);\r\n };\r\n\r\n XPath.XML_NAMESPACE_URI = \"http://www.w3.org/XML/1998/namespace\";\r\n XPath.XMLNS_NAMESPACE_URI = \"http://www.w3.org/2000/xmlns/\";\r\n\r\n // Expression ////////////////////////////////////////////////////////////////\r\n\r\n Expression.prototype = new Object();\r\n Expression.prototype.constructor = Expression;\r\n Expression.superclass = Object.prototype;\r\n\r\n function Expression() {\r\n }\r\n\r\n Expression.prototype.init = function () {\r\n };\r\n\r\n Expression.prototype.toString = function () {\r\n return \"<Expression>\";\r\n };\r\n\r\n Expression.prototype.evaluate = function (c) {\r\n throw new Error(\"Could not evaluate expression.\");\r\n };\r\n\r\n // UnaryOperation ////////////////////////////////////////////////////////////\r\n\r\n UnaryOperation.prototype = new Expression();\r\n UnaryOperation.prototype.constructor = UnaryOperation;\r\n UnaryOperation.superclass = Expression.prototype;\r\n\r\n function UnaryOperation(rhs) {\r\n if (arguments.length > 0) {\r\n this.init(rhs);\r\n }\r\n }\r\n\r\n UnaryOperation.prototype.init = function (rhs) {\r\n this.rhs = rhs;\r\n };\r\n\r\n // UnaryMinusOperation ///////////////////////////////////////////////////////\r\n\r\n UnaryMinusOperation.prototype = new UnaryOperation();\r\n UnaryMinusOperation.prototype.constructor = UnaryMinusOperation;\r\n UnaryMinusOperation.superclass = UnaryOperation.prototype;\r\n\r\n function UnaryMinusOperation(rhs) {\r\n if (arguments.length > 0) {\r\n this.init(rhs);\r\n }\r\n }\r\n\r\n UnaryMinusOperation.prototype.init = function (rhs) {\r\n UnaryMinusOperation.superclass.init.call(this, rhs);\r\n };\r\n\r\n UnaryMinusOperation.prototype.evaluate = function (c) {\r\n return this.rhs.evaluate(c).number().negate();\r\n };\r\n\r\n UnaryMinusOperation.prototype.toString = function () {\r\n return \"-\" + this.rhs.toString();\r\n };\r\n\r\n // BinaryOperation ///////////////////////////////////////////////////////////\r\n\r\n BinaryOperation.prototype = new Expression();\r\n BinaryOperation.prototype.constructor = BinaryOperation;\r\n BinaryOperation.superclass = Expression.prototype;\r\n\r\n function BinaryOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n BinaryOperation.prototype.init = function (lhs, rhs) {\r\n this.lhs = lhs;\r\n this.rhs = rhs;\r\n };\r\n\r\n // OrOperation ///////////////////////////////////////////////////////////////\r\n\r\n OrOperation.prototype = new BinaryOperation();\r\n OrOperation.prototype.constructor = OrOperation;\r\n OrOperation.superclass = BinaryOperation.prototype;\r\n\r\n function OrOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n OrOperation.prototype.init = function (lhs, rhs) {\r\n OrOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n OrOperation.prototype.toString = function () {\r\n return \"(\" + this.lhs.toString() + \" or \" + this.rhs.toString() + \")\";\r\n };\r\n\r\n OrOperation.prototype.evaluate = function (c) {\r\n var b = this.lhs.evaluate(c).bool();\r\n if (b.booleanValue()) {\r\n return b;\r\n }\r\n return this.rhs.evaluate(c).bool();\r\n };\r\n\r\n // AndOperation //////////////////////////////////////////////////////////////\r\n\r\n AndOperation.prototype = new BinaryOperation();\r\n AndOperation.prototype.constructor = AndOperation;\r\n AndOperation.superclass = BinaryOperation.prototype;\r\n\r\n function AndOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n AndOperation.prototype.init = function (lhs, rhs) {\r\n AndOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n AndOperation.prototype.toString = function () {\r\n return \"(\" + this.lhs.toString() + \" and \" + this.rhs.toString() + \")\";\r\n };\r\n\r\n AndOperation.prototype.evaluate = function (c) {\r\n var b = this.lhs.evaluate(c).bool();\r\n if (!b.booleanValue()) {\r\n return b;\r\n }\r\n return this.rhs.evaluate(c).bool();\r\n };\r\n\r\n // EqualsOperation ///////////////////////////////////////////////////////////\r\n\r\n EqualsOperation.prototype = new BinaryOperation();\r\n EqualsOperation.prototype.constructor = EqualsOperation;\r\n EqualsOperation.superclass = BinaryOperation.prototype;\r\n\r\n function EqualsOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n EqualsOperation.prototype.init = function (lhs, rhs) {\r\n EqualsOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n EqualsOperation.prototype.toString = function () {\r\n return \"(\" + this.lhs.toString() + \" = \" + this.rhs.toString() + \")\";\r\n };\r\n\r\n EqualsOperation.prototype.evaluate = function (c) {\r\n return this.lhs.evaluate(c).equals(this.rhs.evaluate(c));\r\n };\r\n\r\n // NotEqualOperation /////////////////////////////////////////////////////////\r\n\r\n NotEqualOperation.prototype = new BinaryOperation();\r\n NotEqualOperation.prototype.constructor = NotEqualOperation;\r\n NotEqualOperation.superclass = BinaryOperation.prototype;\r\n\r\n function NotEqualOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n NotEqualOperation.prototype.init = function (lhs, rhs) {\r\n NotEqualOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n NotEqualOperation.prototype.toString = function () {\r\n return \"(\" + this.lhs.toString() + \" != \" + this.rhs.toString() + \")\";\r\n };\r\n\r\n NotEqualOperation.prototype.evaluate = function (c) {\r\n return this.lhs.evaluate(c).notequal(this.rhs.evaluate(c));\r\n };\r\n\r\n // LessThanOperation /////////////////////////////////////////////////////////\r\n\r\n LessThanOperation.prototype = new BinaryOperation();\r\n LessThanOperation.prototype.constructor = LessThanOperation;\r\n LessThanOperation.superclass = BinaryOperation.prototype;\r\n\r\n function LessThanOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n LessThanOperation.prototype.init = function (lhs, rhs) {\r\n LessThanOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n LessThanOperation.prototype.evaluate = function (c) {\r\n return this.lhs.evaluate(c).lessthan(this.rhs.evaluate(c));\r\n };\r\n\r\n LessThanOperation.prototype.toString = function () {\r\n return \"(\" + this.lhs.toString() + \" < \" + this.rhs.toString() + \")\";\r\n };\r\n\r\n // GreaterThanOperation //////////////////////////////////////////////////////\r\n\r\n GreaterThanOperation.prototype = new BinaryOperation();\r\n GreaterThanOperation.prototype.constructor = GreaterThanOperation;\r\n GreaterThanOperation.superclass = BinaryOperation.prototype;\r\n\r\n function GreaterThanOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n GreaterThanOperation.prototype.init = function (lhs, rhs) {\r\n GreaterThanOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n GreaterThanOperation.prototype.evaluate = function (c) {\r\n return this.lhs.evaluate(c).greaterthan(this.rhs.evaluate(c));\r\n };\r\n\r\n GreaterThanOperation.prototype.toString = function () {\r\n return \"(\" + this.lhs.toString() + \" > \" + this.rhs.toString() + \")\";\r\n };\r\n\r\n // LessThanOrEqualOperation //////////////////////////////////////////////////\r\n\r\n LessThanOrEqualOperation.prototype = new BinaryOperation();\r\n LessThanOrEqualOperation.prototype.constructor = LessThanOrEqualOperation;\r\n LessThanOrEqualOperation.superclass = BinaryOperation.prototype;\r\n\r\n function LessThanOrEqualOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n LessThanOrEqualOperation.prototype.init = function (lhs, rhs) {\r\n LessThanOrEqualOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n LessThanOrEqualOperation.prototype.evaluate = function (c) {\r\n return this.lhs.evaluate(c).lessthanorequal(this.rhs.evaluate(c));\r\n };\r\n\r\n LessThanOrEqualOperation.prototype.toString = function () {\r\n return \"(\" + this.lhs.toString() + \" <= \" + this.rhs.toString() + \")\";\r\n };\r\n\r\n // GreaterThanOrEqualOperation ///////////////////////////////////////////////\r\n\r\n GreaterThanOrEqualOperation.prototype = new BinaryOperation();\r\n GreaterThanOrEqualOperation.prototype.constructor = GreaterThanOrEqualOperation;\r\n GreaterThanOrEqualOperation.superclass = BinaryOperation.prototype;\r\n\r\n function GreaterThanOrEqualOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n GreaterThanOrEqualOperation.prototype.init = function (lhs, rhs) {\r\n GreaterThanOrEqualOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n GreaterThanOrEqualOperation.prototype.evaluate = function (c) {\r\n return this.lhs.evaluate(c).greaterthanorequal(this.rhs.evaluate(c));\r\n };\r\n\r\n GreaterThanOrEqualOperation.prototype.toString = function () {\r\n return \"(\" + this.lhs.toString() + \" >= \" + this.rhs.toString() + \")\";\r\n };\r\n\r\n // PlusOperation /////////////////////////////////////////////////////////////\r\n\r\n PlusOperation.prototype = new BinaryOperation();\r\n PlusOperation.prototype.constructor = PlusOperation;\r\n PlusOperation.superclass = BinaryOperation.prototype;\r\n\r\n function PlusOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n PlusOperation.prototype.init = function (lhs, rhs) {\r\n PlusOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n PlusOperation.prototype.evaluate = function (c) {\r\n return this.lhs.evaluate(c).number().plus(this.rhs.evaluate(c).number());\r\n };\r\n\r\n PlusOperation.prototype.toString = function () {\r\n return \"(\" + this.lhs.toString() + \" + \" + this.rhs.toString() + \")\";\r\n };\r\n\r\n // MinusOperation ////////////////////////////////////////////////////////////\r\n\r\n MinusOperation.prototype = new BinaryOperation();\r\n MinusOperation.prototype.constructor = MinusOperation;\r\n MinusOperation.superclass = BinaryOperation.prototype;\r\n\r\n function MinusOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n MinusOperation.prototype.init = function (lhs, rhs) {\r\n MinusOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n MinusOperation.prototype.evaluate = function (c) {\r\n return this.lhs.evaluate(c).number().minus(this.rhs.evaluate(c).number());\r\n };\r\n\r\n MinusOperation.prototype.toString = function () {\r\n return \"(\" + this.lhs.toString() + \" - \" + this.rhs.toString() + \")\";\r\n };\r\n\r\n // MultiplyOperation /////////////////////////////////////////////////////////\r\n\r\n MultiplyOperation.prototype = new BinaryOperation();\r\n MultiplyOperation.prototype.constructor = MultiplyOperation;\r\n MultiplyOperation.superclass = BinaryOperation.prototype;\r\n\r\n function MultiplyOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n MultiplyOperation.prototype.init = function (lhs, rhs) {\r\n MultiplyOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n MultiplyOperation.prototype.evaluate = function (c) {\r\n return this.lhs.evaluate(c).number().multiply(this.rhs.evaluate(c).number());\r\n };\r\n\r\n MultiplyOperation.prototype.toString = function () {\r\n return \"(\" + this.lhs.toString() + \" * \" + this.rhs.toString() + \")\";\r\n };\r\n\r\n // DivOperation //////////////////////////////////////////////////////////////\r\n\r\n DivOperation.prototype = new BinaryOperation();\r\n DivOperation.prototype.constructor = DivOperation;\r\n DivOperation.superclass = BinaryOperation.prototype;\r\n\r\n function DivOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n DivOperation.prototype.init = function (lhs, rhs) {\r\n DivOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n DivOperation.prototype.evaluate = function (c) {\r\n return this.lhs.evaluate(c).number().div(this.rhs.evaluate(c).number());\r\n };\r\n\r\n DivOperation.prototype.toString = function () {\r\n return \"(\" + this.lhs.toString() + \" div \" + this.rhs.toString() + \")\";\r\n };\r\n\r\n // ModOperation //////////////////////////////////////////////////////////////\r\n\r\n ModOperation.prototype = new BinaryOperation();\r\n ModOperation.prototype.constructor = ModOperation;\r\n ModOperation.superclass = BinaryOperation.prototype;\r\n\r\n function ModOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n ModOperation.prototype.init = function (lhs, rhs) {\r\n ModOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n ModOperation.prototype.evaluate = function (c) {\r\n return this.lhs.evaluate(c).number().mod(this.rhs.evaluate(c).number());\r\n };\r\n\r\n ModOperation.prototype.toString = function () {\r\n return \"(\" + this.lhs.toString() + \" mod \" + this.rhs.toString() + \")\";\r\n };\r\n\r\n // BarOperation //////////////////////////////////////////////////////////////\r\n\r\n BarOperation.prototype = new BinaryOperation();\r\n BarOperation.prototype.constructor = BarOperation;\r\n BarOperation.superclass = BinaryOperation.prototype;\r\n\r\n function BarOperation(lhs, rhs) {\r\n if (arguments.length > 0) {\r\n this.init(lhs, rhs);\r\n }\r\n }\r\n\r\n BarOperation.prototype.init = function (lhs, rhs) {\r\n BarOperation.superclass.init.call(this, lhs, rhs);\r\n };\r\n\r\n BarOperation.prototype.evaluate = function (c) {\r\n return this.lhs.evaluate(c).nodeset().union(this.rhs.evaluate(c).nodeset());\r\n };\r\n\r\n BarOperation.prototype.toString = function () {\r\n return map(toString, [this.lhs, this.rhs]).join(' | ');\r\n };\r\n\r\n // PathExpr //////////////////////////////////////////////////////////////////\r\n\r\n PathExpr.prototype = new Expression();\r\n PathExpr.prototype.constructor = PathExpr;\r\n PathExpr.superclass = Expression.prototype;\r\n\r\n function PathExpr(filter, filterPreds, locpath) {\r\n if (arguments.length > 0) {\r\n this.init(filter, filterPreds, locpath);\r\n }\r\n }\r\n\r\n PathExpr.prototype.init = function (filter, filterPreds, locpath) {\r\n PathExpr.superclass.init.call(this);\r\n this.filter = filter;\r\n this.filterPredicates = filterPreds;\r\n this.locationPath = locpath;\r\n };\r\n\r\n /**\r\n * Returns the topmost node of the tree containing node\r\n */\r\n function findRoot(node) {\r\n while (node && node.parentNode) {\r\n node = node.parentNode;\r\n }\r\n\r\n return node;\r\n }\r\n\r\n PathExpr.applyPredicates = function (predicates, c, nodes) {\r\n if (predicates.length === 0) {\r\n return nodes;\r\n }\r\n\r\n var ctx = c.extend({});\r\n\r\n return reduce(\r\n function (inNodes, pred) {\r\n ctx.contextSize = inNodes.length;\r\n\r\n return filter(\r\n function (node, i) {\r\n ctx.contextNode = node;\r\n ctx.contextPosition = i + 1;\r\n\r\n return PathExpr.predicateMatches(pred, ctx);\r\n },\r\n inNodes\r\n );\r\n },\r\n nodes,\r\n predicates\r\n );\r\n };\r\n\r\n PathExpr.getRoot = function (xpc, nodes) {\r\n var firstNode = nodes[0];\r\n\r\n if (firstNode.nodeType === NodeTypes.DOCUMENT_NODE) {\r\n return firstNode;\r\n }\r\n\r\n if (xpc.virtualRoot) {\r\n return xpc.virtualRoot;\r\n }\r\n\r\n var ownerDoc = firstNode.ownerDocument;\r\n\r\n if (ownerDoc) {\r\n return ownerDoc;\r\n }\r\n\r\n // IE 5.5 doesn't have ownerDocument?\r\n var n = firstNode;\r\n while (n.parentNode != null) {\r\n n = n.parentNode;\r\n }\r\n return n;\r\n }\r\n\r\n PathExpr.applyStep = function (step, xpc, node) {\r\n var self = this;\r\n var newNodes = [];\r\n xpc.contextNode = node;\r\n\r\n switch (step.axis) {\r\n case Step.ANCESTOR:\r\n // look at all the ancestor nodes\r\n if (xpc.contextNode === xpc.virtualRoot) {\r\n break;\r\n }\r\n var m;\r\n if (xpc.contextNode.nodeType == NodeTypes.ATTRIBUTE_NODE) {\r\n m = PathExpr.getOwnerElement(xpc.contextNode);\r\n } else {\r\n m = xpc.contextNode.parentNode;\r\n }\r\n while (m != null) {\r\n if (step.nodeTest.matches(m, xpc)) {\r\n newNodes.push(m);\r\n }\r\n if (m === xpc.virtualRoot) {\r\n break;\r\n }\r\n m = m.parentNode;\r\n }\r\n break;\r\n\r\n case Step.ANCESTORORSELF:\r\n // look at all the ancestor nodes and the current node\r\n for (var m = xpc.contextNode; m != null; m = m.nodeType == NodeTypes.ATTRIBUTE_NODE ? PathExpr.getOwnerElement(m) : m.parentNode) {\r\n if (step.nodeTest.matches(m, xpc)) {\r\n newNodes.push(m);\r\n }\r\n if (m === xpc.virtualRoot) {\r\n break;\r\n }\r\n }\r\n break;\r\n\r\n case Step.ATTRIBUTE:\r\n // look at the attributes\r\n var nnm = xpc.contextNode.attributes;\r\n if (nnm != null) {\r\n for (var k = 0; k < nnm.length; k++) {\r\n var m = nnm.item(k);\r\n if (step.nodeTest.matches(m, xpc)) {\r\n newNodes.push(m);\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case Step.CHILD:\r\n // look at all child elements\r\n for (var m = xpc.contextNode.firstChild; m != null; m = m.nextSibling) {\r\n if (step.nodeTest.matches(m, xpc)) {\r\n newNodes.push(m);\r\n }\r\n }\r\n break;\r\n\r\n case Step.DESCENDANT:\r\n // look at all descendant nodes\r\n var st = [xpc.contextNode.firstChild];\r\n while (st.length > 0) {\r\n for (var m = st.pop(); m != null;) {\r\n if (step.nodeTest.matches(m, xpc)) {\r\n newNodes.push(m);\r\n }\r\n if (m.firstChild != null) {\r\n st.push(m.nextSibling);\r\n m = m.firstChild;\r\n } else {\r\n m = m.nextSibling;\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case Step.DESCENDANTORSELF:\r\n // look at self\r\n if (step.nodeTest.matches(xpc.contextNode, xpc)) {\r\n newNodes.push(xpc.contextNode);\r\n }\r\n // look at all descendant nodes\r\n var st = [xpc.contextNode.firstChild];\r\n while (st.length > 0) {\r\n for (var m = st.pop(); m != null;) {\r\n if (step.nodeTest.matches(m, xpc)) {\r\n newNodes.push(m);\r\n }\r\n if (m.firstChild != null) {\r\n st.push(m.nextSibling);\r\n m = m.firstChild;\r\n } else {\r\n m = m.nextSibling;\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case Step.FOLLOWING:\r\n if (xpc.contextNode === xpc.virtualRoot) {\r\n break;\r\n }\r\n var st = [];\r\n if (xpc.contextNode.firstChild != null) {\r\n st.unshift(xpc.contextNode.firstChild);\r\n } else {\r\n st.unshift(xpc.contextNode.nextSibling);\r\n }\r\n for (var m = xpc.contextNode.parentNode; m != null && m.nodeType != NodeTypes.DOCUMENT_NODE && m !== xpc.virtualRoot; m = m.parentNode) {\r\n st.unshift(m.nextSibling);\r\n }\r\n do {\r\n for (var m = st.pop(); m != null;) {\r\n if (step.nodeTest.matches(m, xpc)) {\r\n newNodes.push(m);\r\n }\r\n if (m.firstChild != null) {\r\n st.push(m.nextSibling);\r\n m = m.firstChild;\r\n } else {\r\n m = m.nextSibling;\r\n }\r\n }\r\n } while (st.length > 0);\r\n break;\r\n\r\n case Step.FOLLOWINGSIBLING:\r\n if (xpc.contextNode === xpc.virtualRoot) {\r\n break;\r\n }\r\n for (var m = xpc.contextNode.nextSibling; m != null; m = m.nextSibling) {\r\n if (step.nodeTest.matches(m, xpc)) {\r\n newNodes.push(m);\r\n }\r\n }\r\n break;\r\n\r\n case Step.NAMESPACE:\r\n var n = {};\r\n if (xpc.contextNode.nodeType == NodeTypes.ELEMENT_NODE) {\r\n n[\"xml\"] = XPath.XML_NAMESPACE_URI;\r\n n[\"xmlns\"] = XPath.XMLNS_NAMESPACE_URI;\r\n for (var m = xpc.contextNode; m != null && m.nodeType == NodeTypes.ELEMENT_NODE; m = m.parentNode) {\r\n for (var k = 0; k < m.attributes.length; k++) {\r\n var attr = m.attributes.item(k);\r\n var nm = String(attr.name);\r\n if (nm == \"xmlns\") {\r\n if (n[\"\"] == undefined) {\r\n n[\"\"] = attr.value;\r\n }\r\n } else if (nm.length > 6 && nm.substring(0, 6) == \"xmlns:\") {\r\n var pre = nm.substring(6, nm.length);\r\n if (n[pre] == undefined) {\r\n n[pre] = attr.value;\r\n }\r\n }\r\n }\r\n }\r\n for (var pre in n) {\r\n var nsn = new XPathNamespace(pre, n[pre], xpc.contextNode);\r\n if (step.nodeTest.matches(nsn, xpc)) {\r\n newNodes.push(nsn);\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case Step.PARENT:\r\n m = null;\r\n if (xpc.contextNode !== xpc.virtualRoot) {\r\n if (xpc.contextNode.nodeType == NodeTypes.ATTRIBUTE_NODE) {\r\n m = PathExpr.getOwnerElement(xpc.contextNode);\r\n } else {\r\n m = xpc.contextNode.parentNode;\r\n }\r\n }\r\n if (m != null && step.nodeTest.matches(m, xpc)) {\r\n newNodes.push(m);\r\n }\r\n break;\r\n\r\n case Step.PRECEDING:\r\n var st;\r\n if (xpc.virtualRoot != null) {\r\n st = [xpc.virtualRoot];\r\n } else {\r\n // cannot rely on .ownerDocument because the node may be in a document fragment\r\n st = [findRoot(xpc.contextNode)];\r\n }\r\n outer: while (st.length > 0) {\r\n for (var m = st.pop(); m != null;) {\r\n if (m == xpc.contextNode) {\r\n break outer;\r\n }\r\n if (step.nodeTest.matches(m, xpc)) {\r\n newNodes.unshift(m);\r\n }\r\n if (m.firstChild != null) {\r\n st.push(m.nextSibling);\r\n m = m.firstChild;\r\n } else {\r\n m = m.nextSibling;\r\n }\r\n }\r\n }\r\n break;\r\n\r\n case Step.PRECEDINGSIBLING:\r\n if (xpc.contextNode === xpc.virtualRoot) {\r\n break;\r\n }\r\n for (var m = xpc.contextNode.previousSibling; m != null; m = m.previousSibling) {\r\n if (step.nodeTest.matches(m, xpc)) {\r\n newNodes.push(m);\r\n }\r\n }\r\n break;\r\n\r\n case Step.SELF:\r\n if (step.nodeTest.matches(xpc.contextNode, xpc)) {\r\n newNodes.push(xpc.contextNode);\r\n }\r\n break;\r\n\r\n default:\r\n }\r\n\r\n return newNodes;\r\n };\r\n\r\n function applyStepWithPredicates(step, xpc, node) {\r\n return PathExpr.applyPredicates(\r\n step.predicates,\r\n xpc,\r\n PathExpr.applyStep(step, xpc, node)\r\n );\r\n }\r\n\r\n function applyStepToNodes(context, nodes, step) {\r\n return flatten(\r\n map(\r\n applyStepWithPredicates.bind(null, step, context),\r\n nodes\r\n )\r\n );\r\n }\r\n\r\n PathExpr.applySteps = function (steps, xpc, nodes) {\r\n return reduce(\r\n applyStepToNodes.bind(null, xpc),\r\n nodes,\r\n steps\r\n );\r\n }\r\n\r\n PathExpr.prototype.applyFilter = function (c, xpc) {\r\n if (!this.filter) {\r\n return { nodes: [c.contextNode] };\r\n }\r\n\r\n var ns = this.filter.evaluate(c);\r\n\r\n if (!Utilities.instance_of(ns, XNodeSet)) {\r\n if (this.filterPredicates != null && this.filterPredicates.length > 0 || this.locationPath != null) {\r\n throw new Error(\"Path expression filter must evaluate to a nodeset if predicates or location path are used\");\r\n }\r\n\r\n return { nonNodes: ns };\r\n }\r\n\r\n return {\r\n nodes: PathExpr.applyPredicates(this.filterPredicates || [], xpc, ns.toUnsortedArray())\r\n };\r\n };\r\n\r\n PathExpr.applyLocationPath = function (locationPath, xpc, nodes) {\r\n if (!locationPath) {\r\n return nodes;\r\n }\r\n\r\n var startNodes = locationPath.absolute ? [PathExpr.getRoot(xpc, nodes)] : nodes;\r\n\r\n return PathExpr.applySteps(locationPath.steps, xpc, startNodes);\r\n };\r\n\r\n PathExpr.prototype.evaluate = function (c) {\r\n var xpc = assign(new XPathContext(), c);\r\n\r\n var filterResult = this.applyFilter(c, xpc);\r\n\r\n if ('nonNodes' in filterResult) {\r\n return filterResult.nonNodes;\r\n }\r\n\r\n var ns = new XNodeSet();\r\n ns.addArray(PathExpr.applyLocationPath(this.locationPath, xpc, filterResult.nodes));\r\n return ns;\r\n };\r\n\r\n PathExpr.predicateMatches = function (pred, c) {\r\n var res = pred.evaluate(c);\r\n\r\n return Utilities.instance_of(res, XNumber)\r\n ? c.contextPosition === res.numberValue()\r\n : res.booleanValue();\r\n };\r\n\r\n PathExpr.predicateString = function (predicate) {\r\n return wrap('[', ']', predicate.toString());\r\n }\r\n\r\n PathExpr.predicatesString = function (predicates) {\r\n return join(\r\n '',\r\n map(PathExpr.predicateString, predicates)\r\n );\r\n }\r\n\r\n PathExpr.prototype.toString = function () {\r\n if (this.filter != undefined) {\r\n var filterStr = toString(this.filter);\r\n\r\n if (Utilities.instance_of(this.filter, XString)) {\r\n return wrap(\"'\", \"'\", filterStr);\r\n }\r\n if (this.filterPredicates != undefined && this.filterPredicates.length) {\r\n return wrap('(', ')', filterStr) +\r\n PathExpr.predicatesString(this.filterPredicates);\r\n }\r\n if (this.locationPath != undefined) {\r\n return filterStr +\r\n (this.locationPath.absolute ? '' : '/') +\r\n toString(this.locationPath);\r\n }\r\n\r\n return filterStr;\r\n }\r\n\r\n return toString(this.locationPath);\r\n };\r\n\r\n PathExpr.getOwnerElement = function (n) {\r\n // DOM 2 has ownerElement\r\n if (n.ownerElement) {\r\n return n.ownerElement;\r\n }\r\n // DOM 1 Internet Explorer can use selectSingleNode (ironically)\r\n try {\r\n if (n.selectSingleNode) {\r\n return n.selectSingleNode(\"..\");\r\n }\r\n } catch (e) {\r\n }\r\n // Other DOM 1 implementations must use this egregious search\r\n var doc = n.nodeType == NodeTypes.DOCUMENT_NODE\r\n ? n\r\n : n.ownerDocument;\r\n var elts = doc.getElementsByTagName(\"*\");\r\n for (var i = 0; i < elts.length; i++) {\r\n var elt = elts.item(i);\r\n var nnm = elt.attributes;\r\n for (var j = 0; j < nnm.length; j++) {\r\n var an = nnm.item(j);\r\n if (an === n) {\r\n return elt;\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n // LocationPath //////////////////////////////////////////////////////////////\r\n\r\n LocationPath.prototype = new Object();\r\n LocationPath.prototype.constructor = LocationPath;\r\n LocationPath.superclass = Object.prototype;\r\n\r\n function LocationPath(abs, steps) {\r\n if (arguments.length > 0) {\r\n this.init(abs, steps);\r\n }\r\n }\r\n\r\n LocationPath.prototype.init = function (abs, steps) {\r\n this.absolute = abs;\r\n this.steps = steps;\r\n };\r\n\r\n LocationPath.prototype.toString = function () {\r\n return (\r\n (this.absolute ? '/' : '') +\r\n map(toString, this.steps).join('/')\r\n );\r\n };\r\n\r\n // Step //////////////////////////////////////////////////////////////////////\r\n\r\n Step.prototype = new Object();\r\n Step.prototype.constructor = Step;\r\n Step.superclass = Object.prototype;\r\n\r\n function Step(axis, nodetest, preds) {\r\n if (arguments.length > 0) {\r\n this.init(axis, nodetest, preds);\r\n }\r\n }\r\n\r\n Step.prototype.init = function (axis, nodetest, preds) {\r\n this.axis = axis;\r\n this.nodeTest = nodetest;\r\n this.predicates = preds;\r\n };\r\n\r\n Step.prototype.toString = function () {\r\n return Step.STEPNAMES[this.axis] +\r\n \"::\" +\r\n this.nodeTest.toString() +\r\n PathExpr.predicatesString(this.predicates);\r\n };\r\n\r\n\r\n Step.ANCESTOR = 0;\r\n Step.ANCESTORORSELF = 1;\r\n Step.ATTRIBUTE = 2;\r\n Step.CHILD = 3;\r\n Step.DESCENDANT = 4;\r\n Step.DESCENDANTORSELF = 5;\r\n Step.FOLLOWING = 6;\r\n Step.FOLLOWINGSIBLING = 7;\r\n Step.NAMESPACE = 8;\r\n Step.PARENT = 9;\r\n Step.PRECEDING = 10;\r\n Step.PRECEDINGSIBLING = 11;\r\n Step.SELF = 12;\r\n\r\n Step.STEPNAMES = reduce(function (acc, x) { return acc[x[0]] = x[1], acc; }, {}, [\r\n [Step.ANCESTOR, 'ancestor'],\r\n [Step.ANCESTORORSELF, 'ancestor-or-self'],\r\n [Step.ATTRIBUTE, 'attribute'],\r\n [Step.CHILD, 'child'],\r\n [Step.DESCENDANT, 'descendant'],\r\n [Step.DESCENDANTORSELF, 'descendant-or-self'],\r\n [Step.FOLLOWING, 'following'],\r\n [Step.FOLLOWINGSIBLING, 'following-sibling'],\r\n [Step.NAMESPACE, 'namespace'],\r\n [Step.PARENT, 'parent'],\r\n [Step.PRECEDING, 'preceding'],\r\n [Step.PRECEDINGSIBLING, 'preceding-sibling'],\r\n [Step.SELF, 'self']\r\n ]);\r\n\r\n // NodeTest //////////////////////////////////////////////////////////////////\r\n\r\n NodeTest.prototype = new Object();\r\n NodeTest.prototype.constructor = NodeTest;\r\n NodeTest.superclass = Object.prototype;\r\n\r\n function NodeTest(type, value) {\r\n if (arguments.length > 0) {\r\n this.init(type, value);\r\n }\r\n }\r\n\r\n NodeTest.prototype.init = function (type, value) {\r\n this.type = type;\r\n this.value = value;\r\n };\r\n\r\n NodeTest.prototype.toString = function () {\r\n return \"<unknown nodetest type>\";\r\n };\r\n\r\n NodeTest.prototype.matches = function (n, xpc) {\r\n console.warn('unknown node test type');\r\n };\r\n\r\n NodeTest.NAMETESTANY = 0;\r\n NodeTest.NAMETESTPREFIXANY = 1;\r\n NodeTest.NAMETESTQNAME = 2;\r\n NodeTest.COMMENT = 3;\r\n NodeTest.TEXT = 4;\r\n NodeTest.PI = 5;\r\n NodeTest.NODE = 6;\r\n\r\n NodeTest.isNodeType = function (types) {\r\n return function (node) {\r\n return includes(types, node.nodeType);\r\n };\r\n };\r\n\r\n NodeTest.makeNodeTestType = function (type, members, ctor) {\r\n var newType = ctor || function () { };\r\n\r\n newType.prototype = new NodeTest(type);\r\n newType.prototype.constructor = newType;\r\n\r\n assign(newType.prototype, members);\r\n\r\n return newType;\r\n };\r\n // create invariant node test for certain node types\r\n NodeTest.makeNodeTypeTest = function (type, nodeTypes, stringVal) {\r\n return new (NodeTest.makeNodeTestType(type, {\r\n matches: NodeTest.isNodeType(nodeTypes),\r\n toString: always(stringVal)\r\n }))();\r\n };\r\n\r\n NodeTest.hasPrefix = function (node) {\r\n return node.prefix || (node.nodeName || node.tagName).indexOf(':') !== -1;\r\n };\r\n\r\n NodeTest.isElementOrAttribute = NodeTest.isNodeType([1, 2]);\r\n NodeTest.nameSpaceMatches = function (prefix, xpc, n) {\r\n var nNamespace = (n.namespaceURI || '');\r\n\r\n if (!prefix) {\r\n return !nNamespace || (xpc.allowAnyNamespaceForNoPrefix && !NodeTest.hasPrefix(n));\r\n }\r\n\r\n var ns = xpc.namespaceResolver.getNamespace(prefix, xpc.expressionContextNode);\r\n\r\n if (ns == null) {\r\n throw new Error(\"Cannot resolve QName \" + prefix);\r\n }\r\n\r\n return ns === nNamespace;\r\n };\r\n NodeTest.localNameMatches = function (localName, xpc, n) {\r\n var nLocalName = (n.localName || n.nodeName);\r\n\r\n return xpc.caseInsensitive\r\n ? localName.toLowerCase() === nLocalName.toLowerCase()\r\n : localName === nLocalName;\r\n };\r\n\r\n NodeTest.NameTestPrefixAny = NodeTest.makeNodeTestType(\r\n NodeTest.NAMETESTPREFIXANY,\r\n {\r\n matches: function (n, xpc) {\r\n return NodeTest.isElementOrAttribute(n) &&\r\n NodeTest.nameSpaceMatches(this.prefix, xpc, n);\r\n },\r\n toString: function () {\r\n return this.prefix + \":*\";\r\n }\r\n },\r\n function NameTestPrefixAny(prefix) { this.prefix = prefix; }\r\n );\r\n\r\n NodeTest.NameTestQName = NodeTest.makeNodeTestType(\r\n NodeTest.NAMETESTQNAME,\r\n {\r\n matches: function (n, xpc) {\r\n return NodeTest.isNodeType(\r\n [\r\n NodeTypes.ELEMENT_NODE,\r\n NodeTypes.ATTRIBUTE_NODE,\r\n XPathNamespace.XPATH_NAMESPACE_NODE,\r\n ]\r\n )(n) &&\r\n NodeTest.nameSpaceMatches(this.prefix, xpc, n) &&\r\n NodeTest.localNameMatches(this.localName, xpc, n);\r\n },\r\n toString: function () {\r\n return this.name;\r\n }\r\n },\r\n function NameTestQName(name) {\r\n var nameParts = name.split(':');\r\n\r\n this.name = name;\r\n this.prefix = nameParts.length > 1 ? nameParts[0] : null;\r\n this.localName = nameParts[nameParts.length > 1 ? 1 : 0];\r\n }\r\n );\r\n\r\n NodeTest.PITest = NodeTest.makeNodeTestType(NodeTest.PI, {\r\n matches: function (n, xpc) {\r\n return NodeTest.isNodeType(\r\n [NodeTypes.PROCESSING_INSTRUCTION_NODE]\r\n )(n) &&\r\n (n.target || n.nodeName) === this.name;\r\n },\r\n toString: function () {\r\n return wrap('processing-instruction(\"', '\")', this.name);\r\n }\r\n }, function (name) { this.name = name; })\r\n\r\n // singletons\r\n\r\n // elements, attributes, namespaces\r\n NodeTest.nameTestAny = NodeTest.makeNodeTypeTest(\r\n NodeTest.NAMETESTANY,\r\n [\r\n NodeTypes.ELEMENT_NODE,\r\n NodeTypes.ATTRIBUTE_NODE,\r\n XPathNamespace.XPATH_NAMESPACE_NODE,\r\n ],\r\n '*'\r\n );\r\n // text, cdata\r\n NodeTest.textTest = NodeTest.makeNodeTypeTest(\r\n NodeTest.TEXT,\r\n [\r\n NodeTypes.TEXT_NODE,\r\n NodeTypes.CDATA_SECTION_NODE,\r\n ],\r\n 'text()'\r\n );\r\n NodeTest.commentTest = NodeTest.makeNodeTypeTest(\r\n NodeTest.COMMENT,\r\n [NodeTypes.COMMENT_NODE],\r\n 'comment()'\r\n );\r\n // elements, attributes, text, cdata, PIs, comments, document nodes\r\n NodeTest.nodeTest = NodeTest.makeNodeTypeTest(\r\n NodeTest.NODE,\r\n [\r\n NodeTypes.ELEMENT_NODE,\r\n NodeTypes.ATTRIBUTE_NODE, \r\n NodeTypes.TEXT_NODE, \r\n NodeTypes.CDATA_SECTION_NODE,\r\n NodeTypes.PROCESSING_INSTRUCTION_NODE,\r\n NodeTypes.COMMENT_NODE,\r\n NodeTypes.DOCUMENT_NODE,\r\n ],\r\n 'node()'\r\n );\r\n NodeTest.anyPiTest = NodeTest.makeNodeTypeTest(\r\n NodeTest.PI,\r\n [NodeTypes.PROCESSING_INSTRUCTION_NODE],\r\n 'processing-instruction()'\r\n );\r\n\r\n // VariableReference /////////////////////////////////////////////////////////\r\n\r\n VariableReference.prototype = new Expression();\r\n VariableReference.prototype.constructor = VariableReference;\r\n VariableReference.superclass = Expression.prototype;\r\n\r\n function VariableReference(v) {\r\n if (arguments.length > 0) {\r\n this.init(v);\r\n }\r\n }\r\n\r\n VariableReference.prototype.init = function (v) {\r\n this.variable = v;\r\n };\r\n\r\n VariableReference.prototype.toString = function () {\r\n return \"$\" + this.variable;\r\n };\r\n\r\n VariableReference.prototype.evaluate = function (c) {\r\n var parts = Utilities.resolveQName(this.variable, c.namespaceResolver, c.contextNode, false);\r\n\r\n if (parts[0] == null) {\r\n throw new Error(\"Cannot resolve QName \" + fn);\r\n }\r\n var result = c.variableResolver.getVariable(parts[1], parts[0]);\r\n if (!result) {\r\n throw XPathException.fromMessage(\"Undeclared variable: \" + this.toString());\r\n }\r\n return result;\r\n };\r\n\r\n // FunctionCall //////////////////////////////////////////////////////////////\r\n\r\n FunctionCall.prototype = new Expression();\r\n FunctionCall.prototype.constructor = FunctionCall;\r\n FunctionCall.superclass = Expression.prototype;\r\n\r\n function FunctionCall(fn, args) {\r\n if (arguments.length > 0) {\r\n this.init(fn, args);\r\n }\r\n }\r\n\r\n FunctionCall.prototype.init = function (fn, args) {\r\n this.functionName = fn;\r\n this.arguments = args;\r\n };\r\n\r\n FunctionCall.prototype.toString = function () {\r\n var s = this.functionName + \"(\";\r\n for (var i = 0; i < this.arguments.length; i++) {\r\n if (i > 0) {\r\n s += \", \";\r\n }\r\n s += this.arguments[i].toString();\r\n }\r\n return s + \")\";\r\n };\r\n\r\n FunctionCall.prototype.evaluate = function (c) {\r\n var f = FunctionResolver.getFunctionFromContext(this.functionName, c);\r\n\r\n if (!f) {\r\n throw new Error(\"Unknown function \" + this.functionName);\r\n }\r\n\r\n var a = [c].concat(this.arguments);\r\n return f.apply(c.functionResolver.thisArg, a);\r\n };\r\n\r\n // Operators /////////////////////////////////////////////////////////////////\r\n\r\n var Operators = new Object();\r\n\r\n Operators.equals = function (l, r) {\r\n return l.equals(r);\r\n };\r\n\r\n Operators.notequal = function (l, r) {\r\n return l.notequal(r);\r\n };\r\n\r\n Operators.lessthan = function (l, r) {\r\n return l.lessthan(r);\r\n };\r\n\r\n Operators.greaterthan = function (l, r) {\r\n return l.greaterthan(r);\r\n };\r\n\r\n Operators.lessthanorequal = function (l, r) {\r\n return l.lessthanorequal(r);\r\n };\r\n\r\n Operators.greaterthanorequal = function (l, r) {\r\n return l.greaterthanorequal(r);\r\n };\r\n\r\n // XString ///////////////////////////////////////////////////////////////////\r\n\r\n XString.prototype = new Expression();\r\n XString.prototype.constructor = XString;\r\n XString.superclass = Expression.prototype;\r\n\r\n function XString(s) {\r\n if (arguments.length > 0) {\r\n this.init(s);\r\n }\r\n }\r\n\r\n XString.prototype.init = function (s) {\r\n this.str = String(s);\r\n };\r\n\r\n XString.prototype.toString = function () {\r\n return this.str;\r\n };\r\n\r\n XString.prototype.evaluate = function (c) {\r\n return this;\r\n };\r\n\r\n XString.prototype.string = function () {\r\n return this;\r\n };\r\n\r\n XString.prototype.number = function () {\r\n return new XNumber(this.str);\r\n };\r\n\r\n XString.prototype.bool = function () {\r\n return new XBoolean(this.str);\r\n };\r\n\r\n XString.prototype.nodeset = function () {\r\n throw new Error(\"Cannot convert string to nodeset\");\r\n };\r\n\r\n XString.prototype.stringValue = function () {\r\n return this.str;\r\n };\r\n\r\n XString.prototype.numberValue = function () {\r\n return this.number().numberValue();\r\n };\r\n\r\n XString.prototype.booleanValue = function () {\r\n return this.bool().booleanValue();\r\n };\r\n\r\n XString.prototype.equals = function (r) {\r\n if (Utilities.instance_of(r, XBoolean)) {\r\n return this.bool().equals(r);\r\n }\r\n if (Utilities.instance_of(r, XNumber)) {\r\n return this.number().equals(r);\r\n }\r\n if (Utilities.instance_of(r, XNodeSet)) {\r\n return r.compareWithString(this, Operators.equals);\r\n }\r\n return new XBoolean(this.str == r.str);\r\n };\r\n\r\n XString.prototype.notequal = function (r) {\r\n if (Utilities.instance_of(r, XBoolean)) {\r\n return this.bool().notequal(r);\r\n }\r\n if (Utilities.instance_of(r, XNumber)) {\r\n return this.number().notequal(r);\r\n }\r\n if (Utilities.instance_of(r, XNodeSet)) {\r\n return r.compareWithString(this, Operators.notequal);\r\n }\r\n return new XBoolean(this.str != r.str);\r\n };\r\n\r\n XString.prototype.lessthan = function (r) {\r\n return this.number().lessthan(r);\r\n };\r\n\r\n XString.prototype.greaterthan = function (r) {\r\n return this.number().greaterthan(r);\r\n };\r\n\r\n XString.prototype.lessthanorequal = function (r) {\r\n return this.number().lessthanorequal(r);\r\n };\r\n\r\n XString.prototype.greaterthanorequal = function (r) {\r\n return this.number().greaterthanorequal(r);\r\n };\r\n\r\n // XNumber ///////////////////////////////////////////////////////////////////\r\n\r\n XNumber.prototype = new Expression();\r\n XNumber.prototype.constructor = XNumber;\r\n XNumber.superclass = Expression.prototype;\r\n\r\n function XNumber(n) {\r\n if (arguments.length > 0) {\r\n this.init(n);\r\n }\r\n }\r\n\r\n XNumber.prototype.init = function (n) {\r\n this.num = typeof n === \"string\" ? this.parse(n) : Number(n);\r\n };\r\n\r\n XNumber.prototype.numberFormat = /^\\s*-?[0-9]*\\.?[0-9]+\\s*$/;\r\n\r\n XNumber.prototype.parse = function (s) {\r\n // XPath representation of numbers is more restrictive than what Number() or parseFloat() allow\r\n return this.numberFormat.test(s) ? parseFloat(s) : Number.NaN;\r\n };\r\n\r\n function padSmallNumber(numberStr) {\r\n var parts = numberStr.split('e-');\r\n var base = parts[0].replace('.', '');\r\n var exponent = Number(parts[1]);\r\n\r\n for (var i = 0; i < exponent - 1; i += 1) {\r\n base = '0' + base;\r\n }\r\n\r\n return '0.' + base;\r\n }\r\n\r\n function padLargeNumber(numberStr) {\r\n var parts = numberStr.split('e');\r\n var base = parts[0].replace('.', '');\r\n var exponent = Number(parts[1]);\r\n var zerosToAppend = exponent + 1 - base.length;\r\n\r\n for (var i = 0; i < zerosToAppend; i += 1) {\r\n base += '0';\r\n }\r\n\r\n return base;\r\n }\r\n\r\n XNumber.prototype.toString = function () {\r\n var strValue = this.num.toString();\r\n\r\n if (strValue.indexOf('e-') !== -1) {\r\n return padSmallNumber(strValue);\r\n }\r\n\r\n if (strValue.indexOf('e') !== -1) {\r\n return padLargeNumber(strValue);\r\n }\r\n\r\n return strValue;\r\n };\r\n\r\n XNumber.prototype.evaluate = function (c) {\r\n return this;\r\n };\r\n\r\n XNumber.prototype.string = function () {\r\n\r\n\r\n return new XString(this.toString());\r\n };\r\n\r\n XNumber.prototype.number = function () {\r\n return this;\r\n };\r\n\r\n XNumber.prototype.bool = function () {\r\n return new XBoolean(this.num);\r\n };\r\n\r\n XNumber.prototype.nodeset = function () {\r\n throw new Error(\"Cannot convert number to nodeset\");\r\n };\r\n\r\n XNumber.prototype.stringValue = function () {\r\n return this.string().stringValue();\r\n };\r\n\r\n XNumber.prototype.numberValue = function () {\r\n return this.num;\r\n };\r\n\r\n XNumber.prototype.booleanValue = function () {\r\n return this.bool().booleanValue();\r\n };\r\n\r\n XNumber.prototype.negate = function () {\r\n return new XNumber(-this.num);\r\n };\r\n\r\n XNumber.prototype.equals = function (r) {\r\n if (Utilities.instance_of(r, XBoolean)) {\r\n return this.bool().equals(r);\r\n }\r\n if (Utilities.instance_of(r, XString)) {\r\n return this.equals(r.number());\r\n }\r\n if (Utilities.instance_of(r, XNodeSet)) {\r\n return r.compareWithNumber(this, Operators.equals);\r\n }\r\n return new XBoolean(this.num == r.num);\r\n };\r\n\r\n XNumber.prototype.notequal = function (r) {\r\n if (Utilities.instance_of(r, XBoolean)) {\r\n return this.bool().notequal(r);\r\n }\r\n if (Utilities.instance_of(r, XString)) {\r\n return this.notequal(r.number());\r\n }\r\n if (Utilities.instance_of(r, XNodeSet)) {\r\n return r.compareWithNumber(this, Operators.notequal);\r\n }\r\n return new XBoolean(this.num != r.num);\r\n };\r\n\r\n XNumber.prototype.lessthan = function (r) {\r\n if (Utilities.instance_of(r, XNodeSet)) {\r\n return r.compareWithNumber(this, Operators.greaterthan);\r\n }\r\n if (Utilities.instance_of(r, XBoolean) || Utilities.instance_of(r, XString)) {\r\n return this.lessthan(r.number());\r\n }\r\n return new XBoolean(this.num < r.num);\r\n };\r\n\r\n XNumber.prototype.greaterthan = function (r) {\r\n if (Utilities.instance_of(r, XNodeSet)) {\r\n return r.compareWithNumber(this, Operators.lessthan);\r\n }\r\n if (Utilities.instance_of(r, XBoolean) || Utilities.instance_of(r, XString)) {\r\n return this.greaterthan(r.number());\r\n }\r\n return new XBoolean(this.num > r.num);\r\n };\r\n\r\n XNumber.prototype.lessthanorequal = function (r) {\r\n if (Utilities.instance_of(r, XNodeSet)) {\r\n return r.compareWithNumber(this, Operators.greaterthanorequal);\r\n }\r\n if (Utilities.instance_of(r, XBoolean) || Utilities.instance_of(r, XString)) {\r\n return this.lessthanorequal(r.number());\r\n }\r\n return new XBoolean(this.num <= r.num);\r\n };\r\n\r\n XNumber.prototype.greaterthanorequal = function (r) {\r\n if (Utilities.instance_of(r, XNodeSet)) {\r\n return r.compareWithNumber(this, Operators.lessthanorequal);\r\n }\r\n if (Utilities.instance_of(r, XBoolean) || Utilities.instance_of(r, XString)) {\r\n return this.greaterthanorequal(r.number());\r\n }\r\n return new XBoolean(this.num >= r.num);\r\n };\r\n\r\n XNumber.prototype.plus = function (r) {\r\n return new XNumber(this.num + r.num);\r\n };\r\n\r\n XNumber.prototype.minus = function (r) {\r\n return new XNumber(this.num - r.num);\r\n };\r\n\r\n XNumber.prototype.multiply = function (r) {\r\n return new XNumber(this.num * r.num);\r\n };\r\n\r\n XNumber.prototype.div = function (r) {\r\n return new XNumber(this.num / r.num);\r\n };\r\n\r\n XNumber.prototype.mod = function (r) {\r\n return new XNumber(this.num % r.num);\r\n };\r\n\r\n // XBoolean //////////////////////////////////////////////////////////////////\r\n\r\n XBoolean.prototype = new Expression();\r\n XBoolean.prototype.constructor = XBoolean;\r\n XBoolean.superclass = Expression.prototype;\r\n\r\n function XBoolean(b) {\r\n if (arguments.length > 0) {\r\n this.init(b);\r\n }\r\n }\r\n\r\n XBoolean.prototype.init = function (b) {\r\n this.b = Boolean(b);\r\n };\r\n\r\n XBoolean.prototype.toString = function () {\r\n return this.b.toString();\r\n };\r\n\r\n XBoolean.prototype.evaluate = function (c) {\r\n return this;\r\n };\r\n\r\n XBoolean.prototype.string = function () {\r\n return new XString(this.b);\r\n };\r\n\r\n XBoolean.prototype.number = function () {\r\n return new XNumber(this.b);\r\n };\r\n\r\n XBoolean.prototype.bool = function () {\r\n return this;\r\n };\r\n\r\n XBoolean.prototype.nodeset = function () {\r\n throw new Error(\"Cannot convert boolean to nodeset\");\r\n };\r\n\r\n XBoolean.prototype.stringValue = function () {\r\n return this.string().stringValue();\r\n };\r\n\r\n XBoolean.prototype.numberValue = function () {\r\n return this.number().numberValue();\r\n };\r\n\r\n XBoolean.prototype.booleanValue = function () {\r\n return this.b;\r\n };\r\n\r\n XBoolean.prototype.not = function () {\r\n return new XBoolean(!this.b);\r\n };\r\n\r\n XBoolean.prototype.equals = function (r) {\r\n if (Utilities.instance_of(r, XString) || Utilities.instance_of(r, XNumber)) {\r\n return this.equals(r.bool());\r\n }\r\n if (Utilities.instance_of(r, XNodeSet)) {\r\n return r.compareWithBoolean(this, Operators.equals);\r\n }\r\n return new XBoolean(this.b == r.b);\r\n };\r\n\r\n XBoolean.prototype.notequal = function (r) {\r\n if (Utilities.instance_of(r, XString) || Utilities.instance_of(r, XNumber)) {\r\n return this.notequal(r.bool());\r\n }\r\n if (Utilities.instance_of(r, XNodeSet)) {\r\n return r.compareWithBoolean(this, Operators.notequal);\r\n }\r\n return new XBoolean(this.b != r.b);\r\n };\r\n\r\n XBoolean.prototype.lessthan = function (r) {\r\n return this.number().lessthan(r);\r\n };\r\n\r\n XBoolean.prototype.greaterthan = function (r) {\r\n return this.number().greaterthan(r);\r\n };\r\n\r\n XBoolean.prototype.lessthanorequal = function (r) {\r\n return this.number().lessthanorequal(r);\r\n };\r\n\r\n XBoolean.prototype.greaterthanorequal = function (r) {\r\n return this.number().greaterthanorequal(r);\r\n };\r\n\r\n XBoolean.true_ = new XBoolean(true);\r\n XBoolean.false_ = new XBoolean(false);\r\n\r\n // AVLTree ///////////////////////////////////////////////////////////////////\r\n\r\n AVLTree.prototype = new Object();\r\n AVLTree.prototype.constructor = AVLTree;\r\n AVLTree.superclass = Object.prototype;\r\n\r\n function AVLTree(n) {\r\n this.init(n);\r\n }\r\n\r\n AVLTree.prototype.init = function (n) {\r\n this.left = null;\r\n this.right = null;\r\n this.node = n;\r\n this.depth = 1;\r\n };\r\n\r\n AVLTree.prototype.balance = function () {\r\n var ldepth = this.left == null ? 0 : this.left.depth;\r\n var rdepth = this.right == null ? 0 : this.right.depth;\r\n\r\n if (ldepth > rdepth + 1) {\r\n // LR or LL rotation\r\n var lldepth = this.left.left == null ? 0 : this.left.left.depth;\r\n var lrdepth = this.left.right == null ? 0 : this.left.right.depth;\r\n\r\n if (lldepth < lrdepth) {\r\n // LR rotation consists of a RR rotation of the left child\r\n this.left.rotateRR();\r\n // plus a LL rotation of this node, which happens anyway\r\n }\r\n this.rotateLL();\r\n } else if (ldepth + 1 < rdepth) {\r\n // RR or RL rorarion\r\n var rrdepth = this.right.right == null ? 0 : this.right.right.depth;\r\n var rldepth = this.right.left == null ? 0 : this.right.left.depth;\r\n\r\n if (rldepth > rrdepth) {\r\n // RR rotation consists of a LL rotation of the right child\r\n this.right.rotateLL();\r\n // plus a RR rotation of this node, which happens anyway\r\n }\r\n this.rotateRR();\r\n }\r\n };\r\n\r\n AVLTree.prototype.rotateLL = function () {\r\n // the left side is too long => rotate from the left (_not_ leftwards)\r\n var nodeBefore = this.node;\r\n var rightBefore = this.right;\r\n this.node = this.left.node;\r\n this.right = this.left;\r\n this.left = this.left.left;\r\n this.right.left = this.right.right;\r\n this.right.right = rightBefore;\r\n this.right.node = nodeBefore;\r\n this.right.updateInNewLocation();\r\n this.updateInNewLocation();\r\n };\r\n\r\n AVLTree.prototype.rotateRR = function () {\r\n // the right side is too long => rotate from the right (_not_ rightwards)\r\n var nodeBefore = this.node;\r\n var leftBefore = this.left;\r\n this.node = this.right.node;\r\n this.left = this.right;\r\n this.right = this.right.right;\r\n this.left.right = this.left.left;\r\n this.left.left = leftBefore;\r\n this.left.node = nodeBefore;\r\n this.left.updateInNewLocation();\r\n this.updateInNewLocation();\r\n };\r\n\r\n AVLTree.prototype.updateInNewLocation = function () {\r\n this.getDepthFromChildren();\r\n };\r\n\r\n AVLTree.prototype.getDepthFromChildren = function () {\r\n this.depth = this.node == null ? 0 : 1;\r\n if (this.left != null) {\r\n this.depth = this.left.depth + 1;\r\n }\r\n if (this.right != null && this.depth <= this.right.depth) {\r\n this.depth = this.right.depth + 1;\r\n }\r\n };\r\n\r\n function nodeOrder(n1, n2) {\r\n if (n1 === n2) {\r\n return 0;\r\n }\r\n\r\n if (n1.compareDocumentPosition) {\r\n var cpos = n1.compareDocumentPosition(n2);\r\n\r\n if (cpos & 0x01) {\r\n // not in the same document; return an arbitrary result (is there a better way to do this)\r\n return 1;\r\n }\r\n if (cpos & 0x0A) {\r\n // n2 precedes or contains n1\r\n return 1;\r\n }\r\n if (cpos & 0x14) {\r\n // n2 follows or is contained by n1\r\n return -1;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n var d1 = 0,\r\n d2 = 0;\r\n for (var m1 = n1; m1 != null; m1 = m1.parentNode || m1.ownerElement) {\r\n d1++;\r\n }\r\n for (var m2 = n2; m2 != null; m2 = m2.parentNode || m2.ownerElement) {\r\n d2++;\r\n }\r\n\r\n // step up to same depth\r\n if (d1 > d2) {\r\n while (d1 > d2) {\r\n n1 = n1.parentNode || n1.ownerElement;\r\n d1--;\r\n }\r\n if (n1 === n2) {\r\n return 1;\r\n }\r\n } else if (d2 > d1) {\r\n while (d2 > d1) {\r\n n2 = n2.parentNode || n2.ownerElement;\r\n d2--;\r\n }\r\n if (n1 === n2) {\r\n return -1;\r\n }\r\n }\r\n\r\n var n1Par = n1.parentNode || n1.ownerElement,\r\n n2Par = n2.parentNode || n2.ownerElement;\r\n\r\n // find common parent\r\n while (n1Par !== n2Par) {\r\n n1 = n1Par;\r\n n2 = n2Par;\r\n n1Par = n1.parentNode || n1.ownerElement;\r\n n2Par = n2.parentNode || n2.ownerElement;\r\n }\r\n\r\n var n1isAttr = Utilities.isAttribute(n1);\r\n var n2isAttr = Utilities.isAttribute(n2);\r\n\r\n if (n1isAttr && !n2isAttr) {\r\n return -1;\r\n }\r\n if (!n1isAttr && n2isAttr) {\r\n return 1;\r\n }\r\n\r\n if (n1Par) {\r\n var cn = n1isAttr ? n1Par.attributes : n1Par.childNodes,\r\n len = cn.length;\r\n for (var i = 0; i < len; i += 1) {\r\n var n = cn[i];\r\n if (n === n1) {\r\n return -1;\r\n }\r\n if (n === n2) {\r\n return 1;\r\n }\r\n }\r\n }\r\n\r\n throw new Error('Unexpected: could not determine node order');\r\n }\r\n\r\n AVLTree.prototype.add = function (n) {\r\n if (n === this.node) {\r\n return false;\r\n }\r\n\r\n var o = nodeOrder(n, this.node);\r\n\r\n var ret = false;\r\n if (o == -1) {\r\n if (this.left == null) {\r\n this.left = new AVLTree(n);\r\n ret = true;\r\n } else {\r\n ret = this.left.add(n);\r\n if (ret) {\r\n this.balance();\r\n }\r\n }\r\n } else if (o == 1) {\r\n if (this.right == null) {\r\n this.right = new AVLTree(n);\r\n ret = true;\r\n } else {\r\n ret = this.right.add(n);\r\n if (ret) {\r\n this.balance();\r\n }\r\n }\r\n }\r\n\r\n if (ret) {\r\n this.getDepthFromChildren();\r\n }\r\n return ret;\r\n };\r\n\r\n // XNodeSet //////////////////////////////////////////////////////////////////\r\n\r\n XNodeSet.prototype = new Expression();\r\n XNodeSet.prototype.constructor = XNodeSet;\r\n XNodeSet.superclass = Expression.prototype;\r\n\r\n function XNodeSet() {\r\n this.init();\r\n }\r\n\r\n XNodeSet.prototype.init = function () {\r\n this.tree = null;\r\n this.nodes = [];\r\n this.size = 0;\r\n };\r\n\r\n XNodeSet.prototype.toString = function () {\r\n var p = this.first();\r\n if (p == null) {\r\n return \"\";\r\n }\r\n return this.stringForNode(p);\r\n };\r\n\r\n XNodeSet.prototype.evaluate = function (c) {\r\n return this;\r\n };\r\n\r\n XNodeSet.prototype.string = function () {\r\n return new XString(this.toString());\r\n };\r\n\r\n XNodeSet.prototype.stringValue = function () {\r\n return this.toString();\r\n };\r\n\r\n XNodeSet.prototype.number = function () {\r\n return new XNumber(this.string());\r\n };\r\n\r\n XNodeSet.prototype.numberValue = function () {\r\n return Number(this.string());\r\n };\r\n\r\n XNodeSet.prototype.bool = function () {\r\n return new XBoolean(this.booleanValue());\r\n };\r\n\r\n XNodeSet.prototype.booleanValue = function () {\r\n return !!this.size;\r\n };\r\n\r\n XNodeSet.prototype.nodeset = function () {\r\n return this;\r\n };\r\n\r\n XNodeSet.prototype.stringForNode = function (n) {\r\n if (n.nodeType == NodeTypes.DOCUMENT_NODE ||\r\n n.nodeType == NodeTypes.ELEMENT_NODE ||\r\n n.nodeType === NodeTypes.DOCUMENT_FRAGMENT_NODE) {\r\n return this.stringForContainerNode(n);\r\n }\r\n if (n.nodeType === NodeTypes.ATTRIBUTE_NODE) {\r\n return n.value || n.nodeValue;\r\n }\r\n if (n.isNamespaceNode) {\r\n return n.namespace;\r\n }\r\n return n.nodeValue;\r\n };\r\n\r\n XNodeSet.prototype.stringForContainerNode = function (n) {\r\n var s = \"\";\r\n for (var n2 = n.firstChild; n2 != null; n2 = n2.nextSibling) {\r\n var nt = n2.nodeType;\r\n // Element, Text, CDATA, Document, Document Fragment\r\n if (nt === 1 || nt === 3 || nt === 4 || nt === 9 || nt === 11) {\r\n s += this.stringForNode(n2);\r\n }\r\n }\r\n return s;\r\n };\r\n\r\n XNodeSet.prototype.buildTree = function () {\r\n if (!this.tree && this.nodes.length) {\r\n this.tree = new AVLTree(this.nodes[0]);\r\n for (var i = 1; i < this.nodes.length; i += 1) {\r\n this.tree.add(this.nodes[i]);\r\n }\r\n }\r\n\r\n return this.tree;\r\n };\r\n\r\n XNodeSet.prototype.first = function () {\r\n var p = this.buildTree();\r\n if (p == null) {\r\n return null;\r\n }\r\n while (p.left != null) {\r\n p = p.left;\r\n }\r\n return p.node;\r\n };\r\n\r\n XNodeSet.prototype.add = function (n) {\r\n for (var i = 0; i < this.nodes.length; i += 1) {\r\n if (n === this.nodes[i]) {\r\n return;\r\n }\r\n }\r\n\r\n this.tree = null;\r\n this.nodes.push(n);\r\n this.size += 1;\r\n };\r\n\r\n XNodeSet.prototype.addArray = function (ns) {\r\n var self = this;\r\n\r\n forEach(function (x) { self.add(x); }, ns);\r\n };\r\n\r\n /**\r\n * Returns an array of the node set's contents in document order\r\n */\r\n XNodeSet.prototype.toArray = function () {\r\n var a = [];\r\n this.toArrayRec(this.buildTree(), a);\r\n return a;\r\n };\r\n\r\n XNodeSet.prototype.toArrayRec = function (t, a) {\r\n if (t != null) {\r\n this.toArrayRec(t.left, a);\r\n a.push(t.node);\r\n this.toArrayRec(t.right, a);\r\n }\r\n };\r\n\r\n /**\r\n * Returns an array of the node set's contents in arbitrary order\r\n */\r\n XNodeSet.prototype.toUnsortedArray = function () {\r\n return this.nodes.slice();\r\n };\r\n\r\n XNodeSet.prototype.compareWithString = function (r, o) {\r\n var a = this.toUnsortedArray();\r\n for (var i = 0; i < a.length; i++) {\r\n var n = a[i];\r\n var l = new XString(this.stringForNode(n));\r\n var res = o(l, r);\r\n if (res.booleanValue()) {\r\n return res;\r\n }\r\n }\r\n return new XBoolean(false);\r\n };\r\n\r\n XNodeSet.prototype.compareWithNumber = function (r, o) {\r\n var a = this.toUnsortedArray();\r\n for (var i = 0; i < a.length; i++) {\r\n var n = a[i];\r\n var l = new XNumber(this.stringForNode(n));\r\n var res = o(l, r);\r\n if (res.booleanValue()) {\r\n return res;\r\n }\r\n }\r\n return new XBoolean(false);\r\n };\r\n\r\n XNodeSet.prototype.compareWithBoolean = function (r, o) {\r\n return o(this.bool(), r);\r\n };\r\n\r\n XNodeSet.prototype.compareWithNodeSet = function (r, o) {\r\n var arr = this.toUnsortedArray();\r\n var oInvert = function (lop, rop) { return o(rop, lop); };\r\n\r\n for (var i = 0; i < arr.length; i++) {\r\n var l = new XString(this.stringForNode(arr[i]));\r\n\r\n var res = r.compareWithString(l, oInvert);\r\n if (res.booleanValue()) {\r\n return res;\r\n }\r\n }\r\n\r\n return new XBoolean(false);\r\n };\r\n\r\n XNodeSet.compareWith = curry(function (o, r) {\r\n if (Utilities.instance_of(r, XString)) {\r\n return this.compareWithString(r, o);\r\n }\r\n if (Utilities.instance_of(r, XNumber)) {\r\n return this.compareWithNumber(r, o);\r\n }\r\n if (Utilities.instance_of(r, XBoolean)) {\r\n return this.compareWithBoolean(r, o);\r\n }\r\n return this.compareWithNodeSet(r, o);\r\n });\r\n\r\n XNodeSet.prototype.equals = XNodeSet.compareWith(Operators.equals);\r\n XNodeSet.prototype.notequal = XNodeSet.compareWith(Operators.notequal);\r\n XNodeSet.prototype.lessthan = XNodeSet.compareWith(Operators.lessthan);\r\n XNodeSet.prototype.greaterthan = XNodeSet.compareWith(Operators.greaterthan);\r\n XNodeSet.prototype.lessthanorequal = XNodeSet.compareWith(Operators.lessthanorequal);\r\n XNodeSet.prototype.greaterthanorequal = XNodeSet.compareWith(Operators.greaterthanorequal);\r\n\r\n XNodeSet.prototype.union = function (r) {\r\n var ns = new XNodeSet();\r\n ns.addArray(this.toUnsortedArray());\r\n ns.addArray(r.toUnsortedArray());\r\n return ns;\r\n };\r\n\r\n // XPathNamespace ////////////////////////////////////////////////////////////\r\n\r\n XPathNamespace.prototype = new Object();\r\n XPathNamespace.prototype.constructor = XPathNamespace;\r\n XPathNamespace.superclass = Object.prototype;\r\n\r\n function XPathNamespace(pre, ns, p) {\r\n this.isXPathNamespace = true;\r\n this.ownerDocument = p.ownerDocument;\r\n this.nodeName = \"#namespace\";\r\n this.prefix = pre;\r\n this.localName = pre;\r\n this.namespaceURI = ns;\r\n this.nodeValue = ns;\r\n this.ownerElement = p;\r\n this.nodeType = XPathNamespace.XPATH_NAMESPACE_NODE;\r\n }\r\n\r\n XPathNamespace.prototype.toString = function () {\r\n return \"{ \\\"\" + this.prefix + \"\\\", \\\"\" + this.namespaceURI + \"\\\" }\";\r\n };\r\n\r\n // XPathContext //////////////////////////////////////////////////////////////\r\n\r\n XPathContext.prototype = new Object();\r\n XPathContext.prototype.constructor = XPathContext;\r\n XPathContext.superclass = Object.prototype;\r\n\r\n function XPathContext(vr, nr, fr) {\r\n this.variableResolver = vr != null ? vr : new VariableResolver();\r\n this.namespaceResolver = nr != null ? nr : new NamespaceResolver();\r\n this.functionResolver = fr != null ? fr : new FunctionResolver();\r\n }\r\n\r\n XPathContext.prototype.extend = function (newProps) {\r\n return assign(new XPathContext(), this, newProps);\r\n };\r\n\r\n // VariableResolver //////////////////////////////////////////////////////////\r\n\r\n VariableResolver.prototype = new Object();\r\n VariableResolver.prototype.constructor = VariableResolver;\r\n VariableResolver.superclass = Object.prototype;\r\n\r\n function VariableResolver() {\r\n }\r\n\r\n VariableResolver.prototype.getVariable = function (ln, ns) {\r\n return null;\r\n };\r\n\r\n // FunctionResolver //////////////////////////////////////////////////////////\r\n\r\n FunctionResolver.prototype = new Object();\r\n FunctionResolver.prototype.constructor = FunctionResolver;\r\n FunctionResolver.superclass = Object.prototype;\r\n\r\n function FunctionResolver(thisArg) {\r\n this.thisArg = thisArg != null ? thisArg : Functions;\r\n this.functions = new Object();\r\n this.addStandardFunctions();\r\n }\r\n\r\n FunctionResolver.prototype.addStandardFunctions = function () {\r\n this.functions[\"{}last\"] = Functions.last;\r\n this.functions[\"{}position\"] = Functions.position;\r\n this.functions[\"{}count\"] = Functions.count;\r\n this.functions[\"{}id\"] = Functions.id;\r\n this.functions[\"{}local-name\"] = Functions.localName;\r\n this.functions[\"{}namespace-uri\"] = Functions.namespaceURI;\r\n this.functions[\"{}name\"] = Functions.name;\r\n this.functions[\"{}string\"] = Functions.string;\r\n this.functions[\"{}concat\"] = Functions.concat;\r\n this.functions[\"{}starts-with\"] = Functions.startsWith;\r\n this.functions[\"{}contains\"] = Functions.contains;\r\n this.functions[\"{}substring-before\"] = Functions.substringBefore;\r\n this.functions[\"{}substring-after\"] = Functions.substringAfter;\r\n this.functions[\"{}substring\"] = Functions.substring;\r\n this.functions[\"{}string-length\"] = Functions.stringLength;\r\n this.functions[\"{}normalize-space\"] = Functions.normalizeSpace;\r\n this.functions[\"{}translate\"] = Functions.translate;\r\n this.functions[\"{}boolean\"] = Functions.boolean_;\r\n this.functions[\"{}not\"] = Functions.not;\r\n this.functions[\"{}true\"] = Functions.true_;\r\n this.functions[\"{}false\"] = Functions.false_;\r\n this.functions[\"{}lang\"] = Functions.lang;\r\n this.functions[\"{}number\"] = Functions.number;\r\n this.functions[\"{}sum\"] = Functions.sum;\r\n this.functions[\"{}floor\"] = Functions.floor;\r\n this.functions[\"{}ceiling\"] = Functions.ceiling;\r\n this.functions[\"{}round\"] = Functions.round;\r\n };\r\n\r\n FunctionResolver.prototype.addFunction = function (ns, ln, f) {\r\n this.functions[\"{\" + ns + \"}\" + ln] = f;\r\n };\r\n\r\n FunctionResolver.getFunctionFromContext = function (qName, context) {\r\n var parts = Utilities.resolveQName(qName, context.namespaceResolver, context.contextNode, false);\r\n\r\n if (parts[0] === null) {\r\n throw new Error(\"Cannot resolve QName \" + name);\r\n }\r\n\r\n return context.functionResolver.getFunction(parts[1], parts[0]);\r\n };\r\n\r\n FunctionResolver.prototype.getFunction = function (localName, namespace) {\r\n return this.functions[\"{\" + namespace + \"}\" + localName];\r\n };\r\n\r\n // NamespaceResolver /////////////////////////////////////////////////////////\r\n\r\n NamespaceResolver.prototype = new Object();\r\n NamespaceResolver.prototype.constructor = NamespaceResolver;\r\n NamespaceResolver.superclass = Object.prototype;\r\n\r\n function NamespaceResolver() {\r\n }\r\n\r\n NamespaceResolver.prototype.getNamespace = function (prefix, n) {\r\n if (prefix == \"xml\") {\r\n return XPath.XML_NAMESPACE_URI;\r\n } else if (prefix == \"xmlns\") {\r\n return XPath.XMLNS_NAMESPACE_URI;\r\n }\r\n if (n.nodeType == NodeTypes.DOCUMENT_NODE) {\r\n n = n.documentElement;\r\n } else if (n.nodeType == NodeTypes.ATTRIBUTE_NODE) {\r\n n = PathExpr.getOwnerElement(n);\r\n } else if (n.nodeType != NodeTypes.ELEMENT_NODE) {\r\n n = n.parentNode;\r\n }\r\n while (n != null && n.nodeType == NodeTypes.ELEMENT_NODE) {\r\n var nnm = n.attributes;\r\n for (var i = 0; i < nnm.length; i++) {\r\n var a = nnm.item(i);\r\n var aname = a.name || a.nodeName;\r\n if ((aname === \"xmlns\" && prefix === \"\")\r\n || aname === \"xmlns:\" + prefix) {\r\n return String(a.value || a.nodeValue);\r\n }\r\n }\r\n n = n.parentNode;\r\n }\r\n return null;\r\n };\r\n\r\n // Functions /////////////////////////////////////////////////////////////////\r\n\r\n var Functions = new Object();\r\n\r\n Functions.last = function (c) {\r\n if (arguments.length != 1) {\r\n throw new Error(\"Function last expects ()\");\r\n }\r\n\r\n return new XNumber(c.contextSize);\r\n };\r\n\r\n Functions.position = function (c) {\r\n if (arguments.length != 1) {\r\n throw new Error(\"Function position expects ()\");\r\n }\r\n\r\n return new XNumber(c.contextPosition);\r\n };\r\n\r\n Functions.count = function () {\r\n var c = arguments[0];\r\n var ns;\r\n if (arguments.length != 2 || !Utilities.instance_of(ns = arguments[1].evaluate(c), XNodeSet)) {\r\n throw new Error(\"Function count expects (node-set)\");\r\n }\r\n return new XNumber(ns.size);\r\n };\r\n\r\n Functions.id = function () {\r\n var c = arguments[0];\r\n var id;\r\n if (arguments.length != 2) {\r\n throw new Error(\"Function id expects (object)\");\r\n }\r\n id = arguments[1].evaluate(c);\r\n if (Utilities.instance_of(id, XNodeSet)) {\r\n id = id.toArray().join(\" \");\r\n } else {\r\n id = id.stringValue();\r\n }\r\n var ids = id.split(/[\\x0d\\x0a\\x09\\x20]+/);\r\n var count = 0;\r\n var ns = new XNodeSet();\r\n var doc = c.contextNode.nodeType == NodeTypes.DOCUMENT_NODE\r\n ? c.contextNode\r\n : c.contextNode.ownerDocument;\r\n for (var i = 0; i < ids.length; i++) {\r\n var n;\r\n if (doc.getElementById) {\r\n n = doc.getElementById(ids[i]);\r\n } else {\r\n n = Utilities.getElementById(doc, ids[i]);\r\n }\r\n if (n != null) {\r\n ns.add(n);\r\n count++;\r\n }\r\n }\r\n return ns;\r\n };\r\n\r\n Functions.localName = function (c, eNode) {\r\n var n;\r\n\r\n if (arguments.length == 1) {\r\n n = c.contextNode;\r\n } else if (arguments.length == 2) {\r\n n = eNode.evaluate(c).first();\r\n } else {\r\n throw new Error(\"Function local-name expects (node-set?)\");\r\n }\r\n\r\n if (n == null) {\r\n return new XString(\"\");\r\n }\r\n\r\n return new XString(\r\n n.localName || // standard elements and attributes\r\n n.baseName || // IE\r\n n.target || // processing instructions\r\n n.nodeName || // DOM1 elements\r\n \"\" // fallback\r\n );\r\n };\r\n\r\n Functions.namespaceURI = function () {\r\n var c = arguments[0];\r\n var n;\r\n if (arguments.length == 1) {\r\n n = c.contextNode;\r\n } else if (arguments.length == 2) {\r\n n = arguments[1].evaluate(c).first();\r\n } else {\r\n throw new Error(\"Function namespace-uri expects (node-set?)\");\r\n }\r\n if (n == null) {\r\n return new XString(\"\");\r\n }\r\n return new XString(n.namespaceURI);\r\n };\r\n\r\n Functions.name = function () {\r\n var c = arguments[0];\r\n var n;\r\n if (arguments.length == 1) {\r\n n = c.contextNode;\r\n } else if (arguments.length == 2) {\r\n n = arguments[1].evaluate(c).first();\r\n } else {\r\n throw new Error(\"Function name expects (node-set?)\");\r\n }\r\n if (n == null) {\r\n return new XString(\"\");\r\n }\r\n if (n.nodeType == NodeTypes.ELEMENT_NODE) {\r\n return new XString(n.nodeName);\r\n } else if (n.nodeType == NodeTypes.ATTRIBUTE_NODE) {\r\n return new XString(n.name || n.nodeName);\r\n } else if (n.nodeType === NodeTypes.PROCESSING_INSTRUCTION_NODE) {\r\n return new XString(n.target || n.nodeName);\r\n } else if (n.localName == null) {\r\n return new XString(\"\");\r\n } else {\r\n return new XString(n.localName);\r\n }\r\n };\r\n\r\n Functions.string = function () {\r\n var c = arguments[0];\r\n if (arguments.length == 1) {\r\n return new XString(XNodeSet.prototype.stringForNode(c.contextNode));\r\n } else if (arguments.length == 2) {\r\n return arguments[1].evaluate(c).string();\r\n }\r\n throw new Error(\"Function string expects (object?)\");\r\n };\r\n\r\n Functions.concat = function (c) {\r\n if (arguments.length < 3) {\r\n throw new Error(\"Function concat expects (string, string[, string]*)\");\r\n }\r\n var s = \"\";\r\n for (var i = 1; i < arguments.length; i++) {\r\n s += arguments[i].evaluate(c).stringValue();\r\n }\r\n return new XString(s);\r\n };\r\n\r\n Functions.startsWith = function () {\r\n var c = arguments[0];\r\n if (arguments.length != 3) {\r\n throw new Error(\"Function startsWith expects (string, string)\");\r\n }\r\n var s1 = arguments[1].evaluate(c).stringValue();\r\n var s2 = arguments[2].evaluate(c).stringValue();\r\n return new XBoolean(s1.substring(0, s2.length) == s2);\r\n };\r\n\r\n Functions.contains = function () {\r\n var c = arguments[0];\r\n if (arguments.length != 3) {\r\n throw new Error(\"Function contains expects (string, string)\");\r\n }\r\n var s1 = arguments[1].evaluate(c).stringValue();\r\n var s2 = arguments[2].evaluate(c).stringValue();\r\n return new XBoolean(s1.indexOf(s2) !== -1);\r\n };\r\n\r\n Functions.substringBefore = function () {\r\n var c = arguments[0];\r\n if (arguments.length != 3) {\r\n throw new Error(\"Function substring-before expects (string, string)\");\r\n }\r\n var s1 = arguments[1].evaluate(c).stringValue();\r\n var s2 = arguments[2].evaluate(c).stringValue();\r\n return new XString(s1.substring(0, s1.indexOf(s2)));\r\n };\r\n\r\n Functions.substringAfter = function () {\r\n var c = arguments[0];\r\n if (arguments.length != 3) {\r\n throw new Error(\"Function substring-after expects (string, string)\");\r\n }\r\n var s1 = arguments[1].evaluate(c).stringValue();\r\n var s2 = arguments[2].evaluate(c).stringValue();\r\n if (s2.length == 0) {\r\n return new XString(s1);\r\n }\r\n var i = s1.indexOf(s2);\r\n if (i == -1) {\r\n return new XString(\"\");\r\n }\r\n return new XString(s1.substring(i + s2.length));\r\n };\r\n\r\n Functions.substring = function () {\r\n var c = arguments[0];\r\n if (!(arguments.length == 3 || arguments.length == 4)) {\r\n throw new Error(\"Function substring expects (string, number, number?)\");\r\n }\r\n var s = arguments[1].evaluate(c).stringValue();\r\n var n1 = Math.round(arguments[2].evaluate(c).numberValue()) - 1;\r\n var n2 = arguments.length == 4 ? n1 + Math.round(arguments[3].evaluate(c).numberValue()) : undefined;\r\n return new XString(s.substring(n1, n2));\r\n };\r\n\r\n Functions.stringLength = function () {\r\n var c = arguments[0];\r\n var s;\r\n if (arguments.length == 1) {\r\n s = XNodeSet.prototype.stringForNode(c.contextNode);\r\n } else if (arguments.length == 2) {\r\n s = arguments[1].evaluate(c).stringValue();\r\n } else {\r\n throw new Error(\"Function string-length expects (string?)\");\r\n }\r\n return new XNumber(s.length);\r\n };\r\n\r\n Functions.normalizeSpace = function () {\r\n var c = arguments[0];\r\n var s;\r\n if (arguments.length == 1) {\r\n s = XNodeSet.prototype.stringForNode(c.contextNode);\r\n } else if (arguments.length == 2) {\r\n s = arguments[1].evaluate(c).stringValue();\r\n } else {\r\n throw new Error(\"Function normalize-space expects (string?)\");\r\n }\r\n var i = 0;\r\n var j = s.length - 1;\r\n while (Utilities.isSpace(s.charCodeAt(j))) {\r\n j--;\r\n }\r\n var t = \"\";\r\n while (i <= j && Utilities.isSpace(s.charCodeAt(i))) {\r\n i++;\r\n }\r\n while (i <= j) {\r\n if (Utilities.isSpace(s.charCodeAt(i))) {\r\n t += \" \";\r\n while (i <= j && Utilities.isSpace(s.charCodeAt(i))) {\r\n i++;\r\n }\r\n } else {\r\n t += s.charAt(i);\r\n i++;\r\n }\r\n }\r\n return new XString(t);\r\n };\r\n\r\n Functions.translate = function (c, eValue, eFrom, eTo) {\r\n if (arguments.length != 4) {\r\n throw new Error(\"Function translate expects (string, string, string)\");\r\n }\r\n\r\n var value = eValue.evaluate(c).stringValue();\r\n var from = eFrom.evaluate(c).stringValue();\r\n var to = eTo.evaluate(c).stringValue();\r\n\r\n var cMap = reduce(function (acc, ch, i) {\r\n if (!(ch in acc)) {\r\n acc[ch] = i > to.length ? '' : to[i];\r\n }\r\n return acc;\r\n }, {}, from);\r\n\r\n var t = join(\r\n '',\r\n map(function (ch) {\r\n return ch in cMap ? cMap[ch] : ch;\r\n }, value)\r\n );\r\n\r\n return new XString(t);\r\n };\r\n\r\n Functions.boolean_ = function () {\r\n var c = arguments[0];\r\n if (arguments.length != 2) {\r\n throw new Error(\"Function boolean expects (object)\");\r\n }\r\n return arguments[1].evaluate(c).bool();\r\n };\r\n\r\n Functions.not = function (c, eValue) {\r\n if (arguments.length != 2) {\r\n throw new Error(\"Function not expects (object)\");\r\n }\r\n return eValue.evaluate(c).bool().not();\r\n };\r\n\r\n Functions.true_ = function () {\r\n if (arguments.length != 1) {\r\n throw new Error(\"Function true expects ()\");\r\n }\r\n return XBoolean.true_;\r\n };\r\n\r\n Functions.false_ = function () {\r\n if (arguments.length != 1) {\r\n throw new Error(\"Function false expects ()\");\r\n }\r\n return XBoolean.false_;\r\n };\r\n\r\n Functions.lang = function () {\r\n var c = arguments[0];\r\n if (arguments.length != 2) {\r\n throw new Error(\"Function lang expects (string)\");\r\n }\r\n var lang;\r\n for (var n = c.contextNode; n != null && n.nodeType != NodeTypes.DOCUMENT_NODE; n = n.parentNode) {\r\n var a = n.getAttributeNS(XPath.XML_NAMESPACE_URI, \"lang\");\r\n if (a != null) {\r\n lang = String(a);\r\n break;\r\n }\r\n }\r\n if (lang == null) {\r\n return XBoolean.false_;\r\n }\r\n var s = arguments[1].evaluate(c).stringValue();\r\n return new XBoolean(lang.substring(0, s.length) == s\r\n && (lang.length == s.length || lang.charAt(s.length) == '-'));\r\n };\r\n\r\n Functions.number = function () {\r\n var c = arguments[0];\r\n if (!(arguments.length == 1 || arguments.length == 2)) {\r\n throw new Error(\"Function number expects (object?)\");\r\n }\r\n if (arguments.length == 1) {\r\n return new XNumber(XNodeSet.prototype.stringForNode(c.contextNode));\r\n }\r\n return arguments[1].evaluate(c).number();\r\n };\r\n\r\n Functions.sum = function () {\r\n var c = arguments[0];\r\n var ns;\r\n if (arguments.length != 2 || !Utilities.instance_of((ns = arguments[1].evaluate(c)), XNodeSet)) {\r\n throw new Error(\"Function sum expects (node-set)\");\r\n }\r\n ns = ns.toUnsortedArray();\r\n var n = 0;\r\n for (var i = 0; i < ns.length; i++) {\r\n n += new XNumber(XNodeSet.prototype.stringForNode(ns[i])).numberValue();\r\n }\r\n return new XNumber(n);\r\n };\r\n\r\n Functions.floor = function () {\r\n var c = arguments[0];\r\n if (arguments.length != 2) {\r\n throw new Error(\"Function floor expects (number)\");\r\n }\r\n return new XNumber(Math.floor(arguments[1].evaluate(c).numberValue()));\r\n };\r\n\r\n Functions.ceiling = function () {\r\n var c = arguments[0];\r\n if (arguments.length != 2) {\r\n throw new Error(\"Function ceiling expects (number)\");\r\n }\r\n return new XNumber(Math.ceil(arguments[1].evaluate(c).numberValue()));\r\n };\r\n\r\n Functions.round = function () {\r\n var c = arguments[0];\r\n if (arguments.length != 2) {\r\n throw new Error(\"Function round expects (number)\");\r\n }\r\n return new XNumber(Math.round(arguments[1].evaluate(c).numberValue()));\r\n };\r\n\r\n // Utilities /////////////////////////////////////////////////////////////////\r\n\r\n var Utilities = new Object();\r\n\r\n Utilities.isAttribute = function (val) {\r\n return val && (val.nodeType === NodeTypes.ATTRIBUTE_NODE || val.ownerElement);\r\n }\r\n\r\n Utilities.splitQName = function (qn) {\r\n var i = qn.indexOf(\":\");\r\n if (i == -1) {\r\n return [null, qn];\r\n }\r\n return [qn.substring(0, i), qn.substring(i + 1)];\r\n };\r\n\r\n Utilities.resolveQName = function (qn, nr, n, useDefault) {\r\n var parts = Utilities.splitQName(qn);\r\n if (parts[0] != null) {\r\n parts[0] = nr.getNamespace(parts[0], n);\r\n } else {\r\n if (useDefault) {\r\n parts[0] = nr.getNamespace(\"\", n);\r\n if (parts[0] == null) {\r\n parts[0] = \"\";\r\n }\r\n } else {\r\n parts[0] = \"\";\r\n }\r\n }\r\n return parts;\r\n };\r\n\r\n Utilities.isSpace = function (c) {\r\n return c == 0x9 || c == 0xd || c == 0xa || c == 0x20;\r\n };\r\n\r\n Utilities.isLetter = function (c) {\r\n return c >= 0x0041 && c <= 0x005A ||\r\n c >= 0x0061 && c <= 0x007A ||\r\n c >= 0x00C0 && c <= 0x00D6 ||\r\n c >= 0x00D8 && c <= 0x00F6 ||\r\n c >= 0x00F8 && c <= 0x00FF ||\r\n c >= 0x0100 && c <= 0x0131 ||\r\n c >= 0x0134 && c <= 0x013E ||\r\n c >= 0x0141 && c <= 0x0148 ||\r\n c >= 0x014A && c <= 0x017E ||\r\n c >= 0x0180 && c <= 0x01C3 ||\r\n c >= 0x01CD && c <= 0x01F0 ||\r\n c >= 0x01F4 && c <= 0x01F5 ||\r\n c >= 0x01FA && c <= 0x0217 ||\r\n c >= 0x0250 && c <= 0x02A8 ||\r\n c >= 0x02BB && c <= 0x02C1 ||\r\n c == 0x0386 ||\r\n c >= 0x0388 && c <= 0x038A ||\r\n c == 0x038C ||\r\n c >= 0x038E && c <= 0x03A1 ||\r\n c >= 0x03A3 && c <= 0x03CE ||\r\n c >= 0x03D0 && c <= 0x03D6 ||\r\n c == 0x03DA ||\r\n c == 0x03DC ||\r\n c == 0x03DE ||\r\n c == 0x03E0 ||\r\n c >= 0x03E2 && c <= 0x03F3 ||\r\n c >= 0x0401 && c <= 0x040C ||\r\n c >= 0x040E && c <= 0x044F ||\r\n c >= 0x0451 && c <= 0x045C ||\r\n c >= 0x045E && c <= 0x0481 ||\r\n c >= 0x0490 && c <= 0x04C4 ||\r\n c >= 0x04C7 && c <= 0x04C8 ||\r\n c >= 0x04CB && c <= 0x04CC ||\r\n c >= 0x04D0 && c <= 0x04EB ||\r\n c >= 0x04EE && c <= 0x04F5 ||\r\n c >= 0x04F8 && c <= 0x04F9 ||\r\n c >= 0x0531 && c <= 0x0556 ||\r\n c == 0x0559 ||\r\n c >= 0x0561 && c <= 0x0586 ||\r\n c >= 0x05D0 && c <= 0x05EA ||\r\n c >= 0x05F0 && c <= 0x05F2 ||\r\n c >= 0x0621 && c <= 0x063A ||\r\n c >= 0x0641 && c <= 0x064A ||\r\n c >= 0x0671 && c <= 0x06B7 ||\r\n c >= 0x06BA && c <= 0x06BE ||\r\n c >= 0x06C0 && c <= 0x06CE ||\r\n c >= 0x06D0 && c <= 0x06D3 ||\r\n c == 0x06D5 ||\r\n c >= 0x06E5 && c <= 0x06E6 ||\r\n c >= 0x0905 && c <= 0x0939 ||\r\n c == 0x093D ||\r\n c >= 0x0958 && c <= 0x0961 ||\r\n c >= 0x0985 && c <= 0x098C ||\r\n c >= 0x098F && c <= 0x0990 ||\r\n c >= 0x0993 && c <= 0x09A8 ||\r\n c >= 0x09AA && c <= 0x09B0 ||\r\n c == 0x09B2 ||\r\n c >= 0x09B6 && c <= 0x09B9 ||\r\n c >= 0x09DC && c <= 0x09DD ||\r\n c >= 0x09DF && c <= 0x09E1 ||\r\n c >= 0x09F0 && c <= 0x09F1 ||\r\n c >= 0x0A05 && c <= 0x0A0A ||\r\n c >= 0x0A0F && c <= 0x0A10 ||\r\n c >= 0x0A13 && c <= 0x0A28 ||\r\n c >= 0x0A2A && c <= 0x0A30 ||\r\n c >= 0x0A32 && c <= 0x0A33 ||\r\n c >= 0x0A35 && c <= 0x0A36 ||\r\n c >= 0x0A38 && c <= 0x0A39 ||\r\n c >= 0x0A59 && c <= 0x0A5C ||\r\n c == 0x0A5E ||\r\n c >= 0x0A72 && c <= 0x0A74 ||\r\n c >= 0x0A85 && c <= 0x0A8B ||\r\n c == 0x0A8D ||\r\n c >= 0x0A8F && c <= 0x0A91 ||\r\n c >= 0x0A93 && c <= 0x0AA8 ||\r\n c >= 0x0AAA && c <= 0x0AB0 ||\r\n c >= 0x0AB2 && c <= 0x0AB3 ||\r\n c >= 0x0AB5 && c <= 0x0AB9 ||\r\n c == 0x0ABD ||\r\n c == 0x0AE0 ||\r\n c >= 0x0B05 && c <= 0x0B0C ||\r\n c >= 0x0B0F && c <= 0x0B10 ||\r\n c >= 0x0B13 && c <= 0x0B28 ||\r\n c >= 0x0B2A && c <= 0x0B30 ||\r\n c >= 0x0B32 && c <= 0x0B33 ||\r\n c >= 0x0B36 && c <= 0x0B39 ||\r\n c == 0x0B3D ||\r\n c >= 0x0B5C && c <= 0x0B5D ||\r\n c >= 0x0B5F && c <= 0x0B61 ||\r\n c >= 0x0B85 && c <= 0x0B8A ||\r\n c >= 0x0B8E && c <= 0x0B90 ||\r\n c >= 0x0B92 && c <= 0x0B95 ||\r\n c >= 0x0B99 && c <= 0x0B9A ||\r\n c == 0x0B9C ||\r\n c >= 0x0B9E && c <= 0x0B9F ||\r\n c >= 0x0BA3 && c <= 0x0BA4 ||\r\n c >= 0x0BA8 && c <= 0x0BAA ||\r\n c >= 0x0BAE && c <= 0x0BB5 ||\r\n c >= 0x0BB7 && c <= 0x0BB9 ||\r\n c >= 0x0C05 && c <= 0x0C0C ||\r\n c >= 0x0C0E && c <= 0x0C10 ||\r\n c >= 0x0C12 && c <= 0x0C28 ||\r\n c >= 0x0C2A && c <= 0x0C33 ||\r\n c >= 0x0C35 && c <= 0x0C39 ||\r\n c >= 0x0C60 && c <= 0x0C61 ||\r\n c >= 0x0C85 && c <= 0x0C8C ||\r\n c >= 0x0C8E && c <= 0x0C90 ||\r\n c >= 0x0C92 && c <= 0x0CA8 ||\r\n c >= 0x0CAA && c <= 0x0CB3 ||\r\n c >= 0x0CB5 && c <= 0x0CB9 ||\r\n c == 0x0CDE ||\r\n c >= 0x0CE0 && c <= 0x0CE1 ||\r\n c >= 0x0D05 && c <= 0x0D0C ||\r\n c >= 0x0D0E && c <= 0x0D10 ||\r\n c >= 0x0D12 && c <= 0x0D28 ||\r\n c >= 0x0D2A && c <= 0x0D39 ||\r\n c >= 0x0D60 && c <= 0x0D61 ||\r\n c >= 0x0E01 && c <= 0x0E2E ||\r\n c == 0x0E30 ||\r\n c >= 0x0E32 && c <= 0x0E33 ||\r\n c >= 0x0E40 && c <= 0x0E45 ||\r\n c >= 0x0E81 && c <= 0x0E82 ||\r\n c == 0x0E84 ||\r\n c >= 0x0E87 && c <= 0x0E88 ||\r\n c == 0x0E8A ||\r\n c == 0x0E8D ||\r\n c >= 0x0E94 && c <= 0x0E97 ||\r\n c >= 0x0E99 && c <= 0x0E9F ||\r\n c >= 0x0EA1 && c <= 0x0EA3 ||\r\n c == 0x0EA5 ||\r\n c == 0x0EA7 ||\r\n c >= 0x0EAA && c <= 0x0EAB ||\r\n c >= 0x0EAD && c <= 0x0EAE ||\r\n c == 0x0EB0 ||\r\n c >= 0x0EB2 && c <= 0x0EB3 ||\r\n c == 0x0EBD ||\r\n c >= 0x0EC0 && c <= 0x0EC4 ||\r\n c >= 0x0F40 && c <= 0x0F47 ||\r\n c >= 0x0F49 && c <= 0x0F69 ||\r\n c >= 0x10A0 && c <= 0x10C5 ||\r\n c >= 0x10D0 && c <= 0x10F6 ||\r\n c == 0x1100 ||\r\n c >= 0x1102 && c <= 0x1103 ||\r\n c >= 0x1105 && c <= 0x1107 ||\r\n c == 0x1109 ||\r\n c >= 0x110B && c <= 0x110C ||\r\n c >= 0x110E && c <= 0x1112 ||\r\n c == 0x113C ||\r\n c == 0x113E ||\r\n c == 0x1140 ||\r\n c == 0x114C ||\r\n c == 0x114E ||\r\n c == 0x1150 ||\r\n c >= 0x1154 && c <= 0x1155 ||\r\n c == 0x1159 ||\r\n c >= 0x115F && c <= 0x1161 ||\r\n c == 0x1163 ||\r\n c == 0x1165 ||\r\n c == 0x1167 ||\r\n c == 0x1169 ||\r\n c >= 0x116D && c <= 0x116E ||\r\n c >= 0x1172 && c <= 0x1173 ||\r\n c == 0x1175 ||\r\n c == 0x119E ||\r\n c == 0x11A8 ||\r\n c == 0x11AB ||\r\n c >= 0x11AE && c <= 0x11AF ||\r\n c >= 0x11B7 && c <= 0x11B8 ||\r\n c == 0x11BA ||\r\n c >= 0x11BC && c <= 0x11C2 ||\r\n c == 0x11EB ||\r\n c == 0x11F0 ||\r\n c == 0x11F9 ||\r\n c >= 0x1E00 && c <= 0x1E9B ||\r\n c >= 0x1EA0 && c <= 0x1EF9 ||\r\n c >= 0x1F00 && c <= 0x1F15 ||\r\n c >= 0x1F18 && c <= 0x1F1D ||\r\n c >= 0x1F20 && c <= 0x1F45 ||\r\n c >= 0x1F48 && c <= 0x1F4D ||\r\n c >= 0x1F50 && c <= 0x1F57 ||\r\n c == 0x1F59 ||\r\n c == 0x1F5B ||\r\n c == 0x1F5D ||\r\n c >= 0x1F5F && c <= 0x1F7D ||\r\n c >= 0x1F80 && c <= 0x1FB4 ||\r\n c >= 0x1FB6 && c <= 0x1FBC ||\r\n c == 0x1FBE ||\r\n c >= 0x1FC2 && c <= 0x1FC4 ||\r\n c >= 0x1FC6 && c <= 0x1FCC ||\r\n c >= 0x1FD0 && c <= 0x1FD3 ||\r\n c >= 0x1FD6 && c <= 0x1FDB ||\r\n c >= 0x1FE0 && c <= 0x1FEC ||\r\n c >= 0x1FF2 && c <= 0x1FF4 ||\r\n c >= 0x1FF6 && c <= 0x1FFC ||\r\n c == 0x2126 ||\r\n c >= 0x212A && c <= 0x212B ||\r\n c == 0x212E ||\r\n c >= 0x2180 && c <= 0x2182 ||\r\n c >= 0x3041 && c <= 0x3094 ||\r\n c >= 0x30A1 && c <= 0x30FA ||\r\n c >= 0x3105 && c <= 0x312C ||\r\n c >= 0xAC00 && c <= 0xD7A3 ||\r\n c >= 0x4E00 && c <= 0x9FA5 ||\r\n c == 0x3007 ||\r\n c >= 0x3021 && c <= 0x3029;\r\n };\r\n\r\n Utilities.isNCNameChar = function (c) {\r\n return c >= 0x0030 && c <= 0x0039\r\n || c >= 0x0660 && c <= 0x0669\r\n || c >= 0x06F0 && c <= 0x06F9\r\n || c >= 0x0966 && c <= 0x096F\r\n || c >= 0x09E6 && c <= 0x09EF\r\n || c >= 0x0A66 && c <= 0x0A6F\r\n || c >= 0x0AE6 && c <= 0x0AEF\r\n || c >= 0x0B66 && c <= 0x0B6F\r\n || c >= 0x0BE7 && c <= 0x0BEF\r\n || c >= 0x0C66 && c <= 0x0C6F\r\n || c >= 0x0CE6 && c <= 0x0CEF\r\n || c >= 0x0D66 && c <= 0x0D6F\r\n || c >= 0x0E50 && c <= 0x0E59\r\n || c >= 0x0ED0 && c <= 0x0ED9\r\n || c >= 0x0F20 && c <= 0x0F29\r\n || c == 0x002E\r\n || c == 0x002D\r\n || c == 0x005F\r\n || Utilities.isLetter(c)\r\n || c >= 0x0300 && c <= 0x0345\r\n || c >= 0x0360 && c <= 0x0361\r\n || c >= 0x0483 && c <= 0x0486\r\n || c >= 0x0591 && c <= 0x05A1\r\n || c >= 0x05A3 && c <= 0x05B9\r\n || c >= 0x05BB && c <= 0x05BD\r\n || c == 0x05BF\r\n || c >= 0x05C1 && c <= 0x05C2\r\n || c == 0x05C4\r\n || c >= 0x064B && c <= 0x0652\r\n || c == 0x0670\r\n || c >= 0x06D6 && c <= 0x06DC\r\n || c >= 0x06DD && c <= 0x06DF\r\n || c >= 0x06E0 && c <= 0x06E4\r\n || c >= 0x06E7 && c <= 0x06E8\r\n || c >= 0x06EA && c <= 0x06ED\r\n || c >= 0x0901 && c <= 0x0903\r\n || c == 0x093C\r\n || c >= 0x093E && c <= 0x094C\r\n || c == 0x094D\r\n || c >= 0x0951 && c <= 0x0954\r\n || c >= 0x0962 && c <= 0x0963\r\n || c >= 0x0981 && c <= 0x0983\r\n || c == 0x09BC\r\n || c == 0x09BE\r\n || c == 0x09BF\r\n || c >= 0x09C0 && c <= 0x09C4\r\n || c >= 0x09C7 && c <= 0x09C8\r\n || c >= 0x09CB && c <= 0x09CD\r\n || c == 0x09D7\r\n || c >= 0x09E2 && c <= 0x09E3\r\n || c == 0x0A02\r\n || c == 0x0A3C\r\n || c == 0x0A3E\r\n || c == 0x0A3F\r\n || c >= 0x0A40 && c <= 0x0A42\r\n || c >= 0x0A47 && c <= 0x0A48\r\n || c >= 0x0A4B && c <= 0x0A4D\r\n || c >= 0x0A70 && c <= 0x0A71\r\n || c >= 0x0A81 && c <= 0x0A83\r\n || c == 0x0ABC\r\n || c >= 0x0ABE && c <= 0x0AC5\r\n || c >= 0x0AC7 && c <= 0x0AC9\r\n || c >= 0x0ACB && c <= 0x0ACD\r\n || c >= 0x0B01 && c <= 0x0B03\r\n || c == 0x0B3C\r\n || c >= 0x0B3E && c <= 0x0B43\r\n || c >= 0x0B47 && c <= 0x0B48\r\n || c >= 0x0B4B && c <= 0x0B4D\r\n || c >= 0x0B56 && c <= 0x0B57\r\n || c >= 0x0B82 && c <= 0x0B83\r\n || c >= 0x0BBE && c <= 0x0BC2\r\n || c >= 0x0BC6 && c <= 0x0BC8\r\n || c >= 0x0BCA && c <= 0x0BCD\r\n || c == 0x0BD7\r\n || c >= 0x0C01 && c <= 0x0C03\r\n || c >= 0x0C3E && c <= 0x0C44\r\n || c >= 0x0C46 && c <= 0x0C48\r\n || c >= 0x0C4A && c <= 0x0C4D\r\n || c >= 0x0C55 && c <= 0x0C56\r\n || c >= 0x0C82 && c <= 0x0C83\r\n || c >= 0x0CBE && c <= 0x0CC4\r\n || c >= 0x0CC6 && c <= 0x0CC8\r\n || c >= 0x0CCA && c <= 0x0CCD\r\n || c >= 0x0CD5 && c <= 0x0CD6\r\n || c >= 0x0D02 && c <= 0x0D03\r\n || c >= 0x0D3E && c <= 0x0D43\r\n || c >= 0x0D46 && c <= 0x0D48\r\n || c >= 0x0D4A && c <= 0x0D4D\r\n || c == 0x0D57\r\n || c == 0x0E31\r\n || c >= 0x0E34 && c <= 0x0E3A\r\n || c >= 0x0E47 && c <= 0x0E4E\r\n || c == 0x0EB1\r\n || c >= 0x0EB4 && c <= 0x0EB9\r\n || c >= 0x0EBB && c <= 0x0EBC\r\n || c >= 0x0EC8 && c <= 0x0ECD\r\n || c >= 0x0F18 && c <= 0x0F19\r\n || c == 0x0F35\r\n || c == 0x0F37\r\n || c == 0x0F39\r\n || c == 0x0F3E\r\n || c == 0x0F3F\r\n || c >= 0x0F71 && c <= 0x0F84\r\n || c >= 0x0F86 && c <= 0x0F8B\r\n || c >= 0x0F90 && c <= 0x0F95\r\n || c == 0x0F97\r\n || c >= 0x0F99 && c <= 0x0FAD\r\n || c >= 0x0FB1 && c <= 0x0FB7\r\n || c == 0x0FB9\r\n || c >= 0x20D0 && c <= 0x20DC\r\n || c == 0x20E1\r\n || c >= 0x302A && c <= 0x302F\r\n || c == 0x3099\r\n || c == 0x309A\r\n || c == 0x00B7\r\n || c == 0x02D0\r\n || c == 0x02D1\r\n || c == 0x0387\r\n || c == 0x0640\r\n || c == 0x0E46\r\n || c == 0x0EC6\r\n || c == 0x3005\r\n || c >= 0x3031 && c <= 0x3035\r\n || c >= 0x309D && c <= 0x309E\r\n || c >= 0x30FC && c <= 0x30FE;\r\n };\r\n\r\n Utilities.coalesceText = function (n) {\r\n for (var m = n.firstChild; m != null; m = m.nextSibling) {\r\n if (m.nodeType == NodeTypes.TEXT_NODE || m.nodeType == NodeTypes.CDATA_SECTION_NODE) {\r\n var s = m.nodeValue;\r\n var first = m;\r\n m = m.nextSibling;\r\n while (m != null && (m.nodeType == NodeTypes.TEXT_NODE || m.nodeType == NodeTypes.CDATA_SECTION_NODE)) {\r\n s += m.nodeValue;\r\n var del = m;\r\n m = m.nextSibling;\r\n del.parentNode.removeChild(del);\r\n }\r\n if (first.nodeType == NodeTypes.CDATA_SECTION_NODE) {\r\n var p = first.parentNode;\r\n if (first.nextSibling == null) {\r\n p.removeChild(first);\r\n p.appendChild(p.ownerDocument.createTextNode(s));\r\n } else {\r\n var next = first.nextSibling;\r\n p.removeChild(first);\r\n p.insertBefore(p.ownerDocument.createTextNode(s), next);\r\n }\r\n } else {\r\n first.nodeValue = s;\r\n }\r\n if (m == null) {\r\n break;\r\n }\r\n } else if (m.nodeType == NodeTypes.ELEMENT_NODE) {\r\n Utilities.coalesceText(m);\r\n }\r\n }\r\n };\r\n\r\n Utilities.instance_of = function (o, c) {\r\n while (o != null) {\r\n if (o.constructor === c) {\r\n return true;\r\n }\r\n if (o === Object) {\r\n return false;\r\n }\r\n o = o.constructor.superclass;\r\n }\r\n return false;\r\n };\r\n\r\n Utilities.getElementById = function (n, id) {\r\n // Note that this does not check the DTD to check for actual\r\n // attributes of type ID, so this may be a bit wrong.\r\n if (n.nodeType == NodeTypes.ELEMENT_NODE) {\r\n if (n.getAttribute(\"id\") == id\r\n || n.getAttributeNS(null, \"id\") == id) {\r\n return n;\r\n }\r\n }\r\n for (var m = n.firstChild; m != null; m = m.nextSibling) {\r\n var res = Utilities.getElementById(m, id);\r\n if (res != null) {\r\n return res;\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n // XPathException ////////////////////////////////////////////////////////////\r\n\r\n var XPathException = (function () {\r\n function getMessage(code, exception) {\r\n var msg = exception ? \": \" + exception.toString() : \"\";\r\n switch (code) {\r\n case XPathException.INVALID_EXPRESSION_ERR:\r\n return \"Invalid expression\" + msg;\r\n case XPathException.TYPE_ERR:\r\n return \"Type error\" + msg;\r\n }\r\n return null;\r\n }\r\n\r\n function XPathException(code, error, message) {\r\n var err = Error.call(this, getMessage(code, error) || message);\r\n\r\n err.code = code;\r\n err.exception = error;\r\n\r\n return err;\r\n }\r\n\r\n XPathException.prototype = Object.create(Error.prototype);\r\n XPathException.prototype.constructor = XPathException;\r\n XPathException.superclass = Error;\r\n\r\n XPathException.prototype.toString = function () {\r\n return this.message;\r\n };\r\n\r\n XPathException.fromMessage = function (message, error) {\r\n return new XPathException(null, error, message);\r\n };\r\n\r\n XPathException.INVALID_EXPRESSION_ERR = 51;\r\n XPathException.TYPE_ERR = 52;\r\n\r\n return XPathException;\r\n })();\r\n\r\n // XPathExpression ///////////////////////////////////////////////////////////\r\n\r\n XPathExpression.prototype = {};\r\n XPathExpression.prototype.constructor = XPathExpression;\r\n XPathExpression.superclass = Object.prototype;\r\n\r\n function XPathExpression(e, r, p) {\r\n this.xpath = p.parse(e);\r\n this.context = new XPathContext();\r\n this.context.namespaceResolver = new XPathNSResolverWrapper(r);\r\n }\r\n\r\n XPathExpression.getOwnerDocument = function (n) {\r\n return n.nodeType === NodeTypes.DOCUMENT_NODE ? n : n.ownerDocument;\r\n }\r\n\r\n XPathExpression.detectHtmlDom = function (n) {\r\n if (!n) { return false; }\r\n\r\n var doc = XPathExpression.getOwnerDocument(n);\r\n\r\n try {\r\n return doc.implementation.hasFeature(\"HTML\", \"2.0\");\r\n } catch (e) {\r\n return true;\r\n }\r\n }\r\n\r\n XPathExpression.prototype.evaluate = function (n, t, res) {\r\n this.context.expressionContextNode = n;\r\n // backward compatibility - no reliable way to detect whether the DOM is HTML, but\r\n // this library has been using this method up until now, so we will continue to use it\r\n // ONLY when using an XPathExpression\r\n this.context.caseInsensitive = XPathExpression.detectHtmlDom(n);\r\n\r\n var result = this.xpath.evaluate(this.context);\r\n return new XPathResult(result, t);\r\n }\r\n\r\n // XPathNSResolverWrapper ////////////////////////////////////////////////////\r\n\r\n XPathNSResolverWrapper.prototype = {};\r\n XPathNSResolverWrapper.prototype.constructor = XPathNSResolverWrapper;\r\n XPathNSResolverWrapper.superclass = Object.prototype;\r\n\r\n function XPathNSResolverWrapper(r) {\r\n this.xpathNSResolver = r;\r\n }\r\n\r\n XPathNSResolverWrapper.prototype.getNamespace = function (prefix, n) {\r\n if (this.xpathNSResolver == null) {\r\n return null;\r\n }\r\n return this.xpathNSResolver.lookupNamespaceURI(prefix);\r\n };\r\n\r\n // NodeXPathNSResolver ///////////////////////////////////////////////////////\r\n\r\n NodeXPathNSResolver.prototype = {};\r\n NodeXPathNSResolver.prototype.constructor = NodeXPathNSResolver;\r\n NodeXPathNSResolver.superclass = Object.prototype;\r\n\r\n function NodeXPathNSResolver(n) {\r\n this.node = n;\r\n this.namespaceResolver = new NamespaceResolver();\r\n }\r\n\r\n NodeXPathNSResolver.prototype.lookupNamespaceURI = function (prefix) {\r\n return this.namespaceResolver.getNamespace(prefix, this.node);\r\n };\r\n\r\n // XPathResult ///////////////////////////////////////////////////////////////\r\n\r\n XPathResult.prototype = {};\r\n XPathResult.prototype.constructor = XPathResult;\r\n XPathResult.superclass = Object.prototype;\r\n\r\n function XPathResult(v, t) {\r\n if (t == XPathResult.ANY_TYPE) {\r\n if (v.constructor === XString) {\r\n t = XPathResult.STRING_TYPE;\r\n } else if (v.constructor === XNumber) {\r\n t = XPathResult.NUMBER_TYPE;\r\n } else if (v.constructor === XBoolean) {\r\n t = XPathResult.BOOLEAN_TYPE;\r\n } else if (v.constructor === XNodeSet) {\r\n t = XPathResult.UNORDERED_NODE_ITERATOR_TYPE;\r\n }\r\n }\r\n this.resultType = t;\r\n switch (t) {\r\n case XPathResult.NUMBER_TYPE:\r\n this.numberValue = v.numberValue();\r\n return;\r\n case XPathResult.STRING_TYPE:\r\n this.stringValue = v.stringValue();\r\n return;\r\n case XPathResult.BOOLEAN_TYPE:\r\n this.booleanValue = v.booleanValue();\r\n return;\r\n case XPathResult.ANY_UNORDERED_NODE_TYPE:\r\n case XPathResult.FIRST_ORDERED_NODE_TYPE:\r\n if (v.constructor === XNodeSet) {\r\n this.singleNodeValue = v.first();\r\n return;\r\n }\r\n break;\r\n case XPathResult.UNORDERED_NODE_ITERATOR_TYPE:\r\n case XPathResult.ORDERED_NODE_ITERATOR_TYPE:\r\n if (v.constructor === XNodeSet) {\r\n this.invalidIteratorState = false;\r\n this.nodes = v.toArray();\r\n this.iteratorIndex = 0;\r\n return;\r\n }\r\n break;\r\n case XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE:\r\n case XPathResult.ORDERED_NODE_SNAPSHOT_TYPE:\r\n if (v.constructor === XNodeSet) {\r\n this.nodes = v.toArray();\r\n this.snapshotLength = this.nodes.length;\r\n return;\r\n }\r\n break;\r\n }\r\n throw new XPathException(XPathException.TYPE_ERR);\r\n };\r\n\r\n XPathResult.prototype.iterateNext = function () {\r\n if (this.resultType != XPathResult.UNORDERED_NODE_ITERATOR_TYPE\r\n && this.resultType != XPathResult.ORDERED_NODE_ITERATOR_TYPE) {\r\n throw new XPathException(XPathException.TYPE_ERR);\r\n }\r\n return this.nodes[this.iteratorIndex++];\r\n };\r\n\r\n XPathResult.prototype.snapshotItem = function (i) {\r\n if (this.resultType != XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE\r\n && this.resultType != XPathResult.ORDERED_NODE_SNAPSHOT_TYPE) {\r\n throw new XPathException(XPathException.TYPE_ERR);\r\n }\r\n return this.nodes[i];\r\n };\r\n\r\n XPathResult.ANY_TYPE = 0;\r\n XPathResult.NUMBER_TYPE = 1;\r\n XPathResult.STRING_TYPE = 2;\r\n XPathResult.BOOLEAN_TYPE = 3;\r\n XPathResult.UNORDERED_NODE_ITERATOR_TYPE = 4;\r\n XPathResult.ORDERED_NODE_ITERATOR_TYPE = 5;\r\n XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE = 6;\r\n XPathResult.ORDERED_NODE_SNAPSHOT_TYPE = 7;\r\n XPathResult.ANY_UNORDERED_NODE_TYPE = 8;\r\n XPathResult.FIRST_ORDERED_NODE_TYPE = 9;\r\n\r\n // DOM 3 XPath support ///////////////////////////////////////////////////////\r\n\r\n function installDOM3XPathSupport(doc, p) {\r\n doc.createExpression = function (e, r) {\r\n try {\r\n return new XPathExpression(e, r, p);\r\n } catch (e) {\r\n throw new XPathException(XPathException.INVALID_EXPRESSION_ERR, e);\r\n }\r\n };\r\n doc.createNSResolver = function (n) {\r\n return new NodeXPathNSResolver(n);\r\n };\r\n doc.evaluate = function (e, cn, r, t, res) {\r\n if (t < 0 || t > 9) {\r\n throw { code: 0, toString: function () { return \"Request type not supported\"; } };\r\n }\r\n return doc.createExpression(e, r, p).evaluate(cn, t, res);\r\n };\r\n };\r\n\r\n // ---------------------------------------------------------------------------\r\n\r\n // Install DOM 3 XPath support for the current document.\r\n try {\r\n var shouldInstall = true;\r\n try {\r\n if (document.implementation\r\n && document.implementation.hasFeature\r\n && document.implementation.hasFeature(\"XPath\", null)) {\r\n shouldInstall = false;\r\n }\r\n } catch (e) {\r\n }\r\n if (shouldInstall) {\r\n installDOM3XPathSupport(document, new XPathParser());\r\n }\r\n } catch (e) {\r\n }\r\n\r\n // ---------------------------------------------------------------------------\r\n // exports for node.js\r\n\r\n installDOM3XPathSupport(exports, new XPathParser());\r\n\r\n (function () {\r\n var parser = new XPathParser();\r\n\r\n var defaultNSResolver = new NamespaceResolver();\r\n var defaultFunctionResolver = new FunctionResolver();\r\n var defaultVariableResolver = new VariableResolver();\r\n\r\n function makeNSResolverFromFunction(func) {\r\n return {\r\n getNamespace: function (prefix, node) {\r\n var ns = func(prefix, node);\r\n\r\n return ns || defaultNSResolver.getNamespace(prefix, node);\r\n }\r\n };\r\n }\r\n\r\n function makeNSResolverFromObject(obj) {\r\n return makeNSResolverFromFunction(obj.getNamespace.bind(obj));\r\n }\r\n\r\n function makeNSResolverFromMap(map) {\r\n return makeNSResolverFromFunction(function (prefix) {\r\n return map[prefix];\r\n });\r\n }\r\n\r\n function makeNSResolver(resolver) {\r\n if (resolver && typeof resolver.getNamespace === \"function\") {\r\n return makeNSResolverFromObject(resolver);\r\n }\r\n\r\n if (typeof resolver === \"function\") {\r\n return makeNSResolverFromFunction(resolver);\r\n }\r\n\r\n // assume prefix -> uri mapping\r\n if (typeof resolver === \"object\") {\r\n return makeNSResolverFromMap(resolver);\r\n }\r\n\r\n return defaultNSResolver;\r\n }\r\n\r\n /** Converts native JavaScript types to their XPath library equivalent */\r\n function convertValue(value) {\r\n if (value === null ||\r\n typeof value === \"undefined\" ||\r\n value instanceof XString ||\r\n value instanceof XBoolean ||\r\n value instanceof XNumber ||\r\n value instanceof XNodeSet) {\r\n return value;\r\n }\r\n\r\n switch (typeof value) {\r\n case \"string\": return new XString(value);\r\n case \"boolean\": return new XBoolean(value);\r\n case \"number\": return new XNumber(value);\r\n }\r\n\r\n // assume node(s)\r\n var ns = new XNodeSet();\r\n ns.addArray([].concat(value));\r\n return ns;\r\n }\r\n\r\n function makeEvaluator(func) {\r\n return function (context) {\r\n var args = Array.prototype.slice.call(arguments, 1).map(function (arg) {\r\n return arg.evaluate(context);\r\n });\r\n var result = func.apply(this, [].concat(context, args));\r\n return convertValue(result);\r\n };\r\n }\r\n\r\n function makeFunctionResolverFromFunction(func) {\r\n return {\r\n getFunction: function (name, namespace) {\r\n var found = func(name, namespace);\r\n if (found) {\r\n return makeEvaluator(found);\r\n }\r\n return defaultFunctionResolver.getFunction(name, namespace);\r\n }\r\n };\r\n }\r\n\r\n function makeFunctionResolverFromObject(obj) {\r\n return makeFunctionResolverFromFunction(obj.getFunction.bind(obj));\r\n }\r\n\r\n function makeFunctionResolverFromMap(map) {\r\n return makeFunctionResolverFromFunction(function (name) {\r\n return map[name];\r\n });\r\n }\r\n\r\n function makeFunctionResolver(resolver) {\r\n if (resolver && typeof resolver.getFunction === \"function\") {\r\n return makeFunctionResolverFromObject(resolver);\r\n }\r\n\r\n if (typeof resolver === \"function\") {\r\n return makeFunctionResolverFromFunction(resolver);\r\n }\r\n\r\n // assume map\r\n if (typeof resolver === \"object\") {\r\n return makeFunctionResolverFromMap(resolver);\r\n }\r\n\r\n return defaultFunctionResolver;\r\n }\r\n\r\n function makeVariableResolverFromFunction(func) {\r\n return {\r\n getVariable: function (name, namespace) {\r\n var value = func(name, namespace);\r\n return convertValue(value);\r\n }\r\n };\r\n }\r\n\r\n function makeVariableResolver(resolver) {\r\n if (resolver) {\r\n if (typeof resolver.getVariable === \"function\") {\r\n return makeVariableResolverFromFunction(resolver.getVariable.bind(resolver));\r\n }\r\n\r\n if (typeof resolver === \"function\") {\r\n return makeVariableResolverFromFunction(resolver);\r\n }\r\n\r\n // assume map\r\n if (typeof resolver === \"object\") {\r\n return makeVariableResolverFromFunction(function (name) {\r\n return resolver[name];\r\n });\r\n }\r\n }\r\n\r\n return defaultVariableResolver;\r\n }\r\n\r\n function copyIfPresent(prop, dest, source) {\r\n if (prop in source) { dest[prop] = source[prop]; }\r\n }\r\n\r\n function makeContext(options) {\r\n var context = new XPathContext();\r\n\r\n if (options) {\r\n context.namespaceResolver = makeNSResolver(options.namespaces);\r\n context.functionResolver = makeFunctionResolver(options.functions);\r\n context.variableResolver = makeVariableResolver(options.variables);\r\n context.expressionContextNode = options.node;\r\n copyIfPresent('allowAnyNamespaceForNoPrefix', context, options);\r\n copyIfPresent('isHtml', context, options);\r\n } else {\r\n context.namespaceResolver = defaultNSResolver;\r\n }\r\n\r\n return context;\r\n }\r\n\r\n function evaluate(parsedExpression, options) {\r\n var context = makeContext(options);\r\n\r\n return parsedExpression.evaluate(context);\r\n }\r\n\r\n var evaluatorPrototype = {\r\n evaluate: function (options) {\r\n return evaluate(this.expression, options);\r\n }\r\n\r\n , evaluateNumber: function (options) {\r\n return this.evaluate(options).numberValue();\r\n }\r\n\r\n , evaluateString: function (options) {\r\n return this.evaluate(options).stringValue();\r\n }\r\n\r\n , evaluateBoolean: function (options) {\r\n return this.evaluate(options).booleanValue();\r\n }\r\n\r\n , evaluateNodeSet: function (options) {\r\n return this.evaluate(options).nodeset();\r\n }\r\n\r\n , select: function (options) {\r\n return this.evaluateNodeSet(options).toArray()\r\n }\r\n\r\n , select1: function (options) {\r\n return this.select(options)[0];\r\n }\r\n };\r\n\r\n function parse(xpath) {\r\n var parsed = parser.parse(xpath);\r\n\r\n return Object.create(evaluatorPrototype, {\r\n expression: {\r\n value: parsed\r\n }\r\n });\r\n }\r\n\r\n exports.parse = parse;\r\n })();\r\n\r\n assign(\r\n exports,\r\n {\r\n XPath: XPath,\r\n XPathParser: XPathParser,\r\n XPathResult: XPathResult,\r\n\r\n Step: Step,\r\n PathExpr: PathExpr,\r\n NodeTest: NodeTest,\r\n LocationPath: LocationPath,\r\n\r\n OrOperation: OrOperation,\r\n AndOperation: AndOperation,\r\n\r\n BarOperation: BarOperation,\r\n\r\n EqualsOperation: EqualsOperation,\r\n NotEqualOperation: NotEqualOperation,\r\n LessThanOperation: LessThanOperation,\r\n GreaterThanOperation: GreaterThanOperation,\r\n LessThanOrEqualOperation: LessThanOrEqualOperation,\r\n GreaterThanOrEqualOperation: GreaterThanOrEqualOperation,\r\n\r\n PlusOperation: PlusOperation,\r\n MinusOperation: MinusOperation,\r\n MultiplyOperation: MultiplyOperation,\r\n DivOperation: DivOperation,\r\n ModOperation: ModOperation,\r\n UnaryMinusOperation: UnaryMinusOperation,\r\n \r\n FunctionCall: FunctionCall,\r\n VariableReference: VariableReference,\r\n \r\n XPathContext: XPathContext,\r\n \r\n XNodeSet: XNodeSet,\r\n XBoolean: XBoolean,\r\n XString: XString,\r\n XNumber: XNumber,\r\n \r\n NamespaceResolver: NamespaceResolver,\r\n FunctionResolver: FunctionResolver,\r\n VariableResolver: VariableResolver,\r\n \r\n Utilities: Utilities,\r\n }\r\n );\r\n\r\n // helper\r\n exports.select = function (e, doc, single) {\r\n return exports.selectWithResolver(e, doc, null, single);\r\n };\r\n\r\n exports.useNamespaces = function (mappings) {\r\n var resolver = {\r\n mappings: mappings || {},\r\n lookupNamespaceURI: function (prefix) {\r\n return this.mappings[prefix];\r\n }\r\n };\r\n\r\n return function (e, doc, single) {\r\n return exports.selectWithResolver(e, doc, resolver, single);\r\n };\r\n };\r\n\r\n exports.selectWithResolver = function (e, doc, resolver, single) {\r\n var expression = new XPathExpression(e, resolver, new XPathParser());\r\n var type = XPathResult.ANY_TYPE;\r\n\r\n var result = expression.evaluate(doc, type, null);\r\n\r\n if (result.resultType == XPathResult.STRING_TYPE) {\r\n result = result.stringValue;\r\n }\r\n else if (result.resultType == XPathResult.NUMBER_TYPE) {\r\n result = result.numberValue;\r\n }\r\n else if (result.resultType == XPathResult.BOOLEAN_TYPE) {\r\n result = result.booleanValue;\r\n }\r\n else {\r\n result = result.nodes;\r\n if (single) {\r\n result = result[0];\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n\r\n exports.select1 = function (e, doc) {\r\n return exports.select(e, doc, true);\r\n };\r\n\r\n var isNodeLike = function (value) {\r\n return value \r\n && typeof value.nodeType === \"number\" \r\n && Number.isInteger(value.nodeType)\r\n && value.nodeType >= 1\r\n && value.nodeType <= 11\r\n && typeof value.nodeName === \"string\";\r\n };\r\n\r\n var isArrayOfNodes = function (value) {\r\n return Array.isArray(value) && value.every(isNodeLike);\r\n };\r\n\r\n var isNodeOfType = function (type) {\r\n return function (value) {\r\n return isNodeLike(value) && value.nodeType === type;\r\n };\r\n };\r\n\r\n assign(\r\n exports,\r\n {\r\n isNodeLike: isNodeLike,\r\n isArrayOfNodes: isArrayOfNodes,\r\n isElement: isNodeOfType(NodeTypes.ELEMENT_NODE),\r\n isAttribute: isNodeOfType(NodeTypes.ATTRIBUTE_NODE),\r\n isTextNode: isNodeOfType(NodeTypes.TEXT_NODE),\r\n isCDATASection: isNodeOfType(NodeTypes.CDATA_SECTION_NODE),\r\n isProcessingInstruction: isNodeOfType(NodeTypes.PROCESSING_INSTRUCTION_NODE),\r\n isComment: isNodeOfType(NodeTypes.COMMENT_NODE),\r\n isDocumentNode: isNodeOfType(NodeTypes.DOCUMENT_NODE),\r\n isDocumentTypeNode: isNodeOfType(NodeTypes.DOCUMENT_TYPE_NODE),\r\n isDocumentFragment: isNodeOfType(NodeTypes.DOCUMENT_FRAGMENT_NODE),\r\n }\r\n );\r\n // end non-node wrapper\r\n})(xpath);\r\n"],"x_google_ignoreList":[0],"mappings":"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AK;AACpC,WAAO,IAAI,KAAK,KAAK,MAAM,SAAS,UAAU,EAAE,CAAC;;AAErD,QAAK,cAAc,MAAM,SAAU,KAAK;AACpC,WAAO,IAAI,KAAK,KAAK,QAAQ,SAAS,UAAU,EAAE,CAAC;;AAEvD,QAAK,cAAc,MAAM,SAAU,KAAK;AACpC,WAAO,IAAI,kBAAkB,IAAI,GAAG;;AAExC,QAAK,cAAc,MAAM,SAAU,KAAK;AACpC,WAAO,SAAS;;AAEpB,QAAK,cAAc,MAAM,SAAU,KAAK;AACpC,WAAO,IAAI,SAAS,kBAAkB,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG;;AAE/D,QAAK,cAAc,MAAM,SAAU,KAAK;AACpC,WAAO,IAAI,SAAS,cAAc,IAAI,GAAG;;;AAIjD,cAAY,cAAc;GACtB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH;AAED,cAAY,oBAAoB;GAC5B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH;AAED,cAAY,YAAY;GACpB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH;AAED,cAAY,cAAc;GACtB;IAAC;IAAG;IAAG;IAAE;GACT;IAAC;IAAG;IAAG;IAAE;GACT;IAAC;IAAG;IAAG;IAAE;GACT;IAAC;IAAG;IAAG;IAAG;IAAI;IAAE;GAChB;IAAC;IAAG;IAAG;IAAE;GACT;IAAC;IAAG;IAAG;IAAG;IAAI;IAAE;GAChB;IAAC;IAAG;IAAG;IAAE;GACT;IAAC;IAAG;IAAG;IAAG;IAAK;IAAE;GACjB;IAAC;IAAG;IAAG;IAAG;IAAI;IAAE;GAChB;IAAC;IAAG;IAAG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AK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SACL,KAAK,SAAU,KAAK;;AAG5B,YAAU,eAAe,SAAU,GAAG;AAClC,UAAO,KAAK,MAAU,KAAK,MACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,MACL,KAAK,MACL,KAAK,MACL,UAAU,SAAS,EAAE,IACrB,KAAK,OAAU,KAAK,OACpB,KAAK,OAAU,KAAK,OACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QACL,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QAC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"}