@bagelink/vue 0.0.933 → 0.0.937

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 (210) hide show
  1. package/dist/components/AccordionItem.vue.d.ts.map +1 -1
  2. package/dist/components/AddressSaerch.vue.d.ts +7 -0
  3. package/dist/components/AddressSaerch.vue.d.ts.map +1 -0
  4. package/dist/components/Btn.vue.d.ts.map +1 -1
  5. package/dist/components/ComboBox.vue.d.ts +3 -3
  6. package/dist/components/Comments.vue.d.ts +2 -2
  7. package/dist/components/ContactSubmissions.vue.d.ts +2 -2
  8. package/dist/components/DropDown.vue.d.ts +186 -17
  9. package/dist/components/DropDown.vue.d.ts.map +1 -1
  10. package/dist/components/FormSchema.vue.d.ts +4 -5
  11. package/dist/components/LangText.vue.d.ts +2 -2
  12. package/dist/components/ModalBglForm.vue.d.ts +20 -21
  13. package/dist/components/PersonPreview.vue.d.ts +4 -5
  14. package/dist/components/PersonPreviewFormkit.vue.d.ts +3 -4
  15. package/dist/components/Popover.vue.d.ts +10 -0
  16. package/dist/components/Popover.vue.d.ts.map +1 -0
  17. package/dist/components/RTXEditor.vue.d.ts +3 -3
  18. package/dist/components/TabbedLayout.vue.d.ts +4 -5
  19. package/dist/components/TableSchema.vue.d.ts +11 -2
  20. package/dist/components/TableSchema.vue.d.ts.map +1 -1
  21. package/dist/components/charts/BarChart.vue.d.ts +2 -2
  22. package/dist/components/form/BglField.vue.d.ts +6 -2
  23. package/dist/components/form/BglField.vue.d.ts.map +1 -1
  24. package/dist/components/form/BglMultiStepForm.vue.d.ts +21 -3
  25. package/dist/components/form/BglMultiStepForm.vue.d.ts.map +1 -1
  26. package/dist/components/form/ItemRef.vue.d.ts +3 -5
  27. package/dist/components/form/ItemRef.vue.d.ts.map +1 -1
  28. package/dist/components/form/MaterialIcon.vue.d.ts +3 -4
  29. package/dist/components/form/PlainInputField.vue.d.ts +3 -3
  30. package/dist/components/form/inputs/CurrencyInput.vue.d.ts +3 -3
  31. package/dist/components/form/inputs/DatetimeInput.vue.d.ts +3 -3
  32. package/dist/components/form/inputs/DurationInput.vue.d.ts +3 -3
  33. package/dist/components/form/inputs/DynamicLinkField.vue.d.ts +3 -3
  34. package/dist/components/form/inputs/EmailInput.vue.d.ts +3 -3
  35. package/dist/components/form/inputs/FileUpload.vue.d.ts +0 -2
  36. package/dist/components/form/inputs/FileUpload.vue.d.ts.map +1 -1
  37. package/dist/components/form/inputs/FloatInput.vue.d.ts +3 -3
  38. package/dist/components/form/inputs/IntInput.vue.d.ts +3 -3
  39. package/dist/components/form/inputs/LinkField.vue.d.ts +3 -3
  40. package/dist/components/form/inputs/Password.vue.d.ts +3 -3
  41. package/dist/components/form/inputs/PlainText.vue.d.ts +3 -3
  42. package/dist/components/form/inputs/RadioGroup.vue.d.ts +6 -2
  43. package/dist/components/form/inputs/RadioGroup.vue.d.ts.map +1 -1
  44. package/dist/components/form/inputs/RangeInput.vue.d.ts +5 -0
  45. package/dist/components/form/inputs/RangeInput.vue.d.ts.map +1 -1
  46. package/dist/components/form/inputs/ReadOnlyInput.vue.d.ts +2 -2
  47. package/dist/components/form/inputs/RichTextEditor.vue.d.ts +3 -3
  48. package/dist/components/form/inputs/SelectField.vue.d.ts +8 -6
  49. package/dist/components/form/inputs/SelectField.vue.d.ts.map +1 -1
  50. package/dist/components/form/inputs/SelectInput.vue.d.ts +52 -2
  51. package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
  52. package/dist/components/form/inputs/TextArea.vue.d.ts +3 -3
  53. package/dist/components/form/inputs/TextInput.vue.d.ts +1 -0
  54. package/dist/components/form/inputs/TextInput.vue.d.ts.map +1 -1
  55. package/dist/components/formkit/AddressArray.vue.d.ts +2 -2
  56. package/dist/components/formkit/BankDetailsArray.vue.d.ts +2 -2
  57. package/dist/components/formkit/ContactArrayFormKit.vue.d.ts +2 -2
  58. package/dist/components/formkit/FileUploader.vue.d.ts +2 -2
  59. package/dist/components/formkit/MiscFields.vue.d.ts +2 -2
  60. package/dist/components/formkit/Toggle.vue.d.ts +2 -2
  61. package/dist/components/sortable/Animation.d.ts +43 -0
  62. package/dist/components/sortable/Animation.d.ts.map +1 -0
  63. package/dist/components/sortable/BrowserInfo.d.ts +7 -0
  64. package/dist/components/sortable/BrowserInfo.d.ts.map +1 -0
  65. package/dist/components/sortable/EventDispatcher.d.ts +13 -0
  66. package/dist/components/sortable/EventDispatcher.d.ts.map +1 -0
  67. package/dist/components/sortable/PluginManager.d.ts +27 -0
  68. package/dist/components/sortable/PluginManager.d.ts.map +1 -0
  69. package/dist/components/sortable/Sortable.d.ts +81 -0
  70. package/dist/components/sortable/Sortable.d.ts.map +1 -0
  71. package/dist/components/sortable/index.d.ts +5 -0
  72. package/dist/components/sortable/index.d.ts.map +1 -0
  73. package/dist/components/sortable/utils.d.ts +49 -0
  74. package/dist/components/sortable/utils.d.ts.map +1 -0
  75. package/dist/components/whatsapp/form/MsgTemplate.vue.d.ts +3 -4
  76. package/dist/components/whatsapp/form/TextVariableExamples.vue.d.ts +2 -2
  77. package/dist/composables/drag-n-drop/useDraggable.d.ts +2 -0
  78. package/dist/composables/drag-n-drop/useDraggable.d.ts.map +1 -0
  79. package/dist/index.cjs +1448 -1513
  80. package/dist/index.mjs +1448 -1513
  81. package/dist/plugins/drag-n-drop/draggable.d.ts +4 -0
  82. package/dist/plugins/drag-n-drop/draggable.d.ts.map +1 -0
  83. package/dist/plugins/drag-n-drop/droppable.d.ts +4 -0
  84. package/dist/plugins/drag-n-drop/droppable.d.ts.map +1 -0
  85. package/dist/plugins/drag-n-drop/index.d.ts +5 -0
  86. package/dist/plugins/drag-n-drop/index.d.ts.map +1 -0
  87. package/dist/plugins/drag-n-drop/useDraggable.d.ts +8 -0
  88. package/dist/plugins/drag-n-drop/useDraggable.d.ts.map +1 -0
  89. package/dist/plugins/drag-n-drop/useDroppable.d.ts +7 -0
  90. package/dist/plugins/drag-n-drop/useDroppable.d.ts.map +1 -0
  91. package/dist/style.css +76 -81
  92. package/dist/types/materialIcon.d.ts +2 -0
  93. package/dist/types/materialIcon.d.ts.map +1 -0
  94. package/dist/utils/BagelFormUtils.d.ts +30 -2
  95. package/dist/utils/BagelFormUtils.d.ts.map +1 -1
  96. package/dist/utils/objects.d.ts +0 -1
  97. package/package.json +1 -1
  98. package/src/components/AccordionItem.vue +2 -0
  99. package/src/components/Btn.vue +2 -1
  100. package/src/components/form/inputs/RangeInput.vue +49 -14
  101. package/src/components/form/inputs/TextInput.vue +2 -1
  102. package/dist/components/Accordion.d.ts +0 -12
  103. package/dist/components/Accordion.d.ts.map +0 -1
  104. package/dist/components/AccordionItem.d.ts +0 -34
  105. package/dist/components/AccordionItem.d.ts.map +0 -1
  106. package/dist/components/Alert.d.ts +0 -34
  107. package/dist/components/Alert.d.ts.map +0 -1
  108. package/dist/components/Avatar.d.ts +0 -36
  109. package/dist/components/Avatar.d.ts.map +0 -1
  110. package/dist/components/Badge.d.ts +0 -22
  111. package/dist/components/Badge.d.ts.map +0 -1
  112. package/dist/components/BglVideo.d.ts +0 -20
  113. package/dist/components/BglVideo.d.ts.map +0 -1
  114. package/dist/components/Btn.d.ts +0 -99
  115. package/dist/components/Btn.d.ts.map +0 -1
  116. package/dist/components/Card.d.ts +0 -39
  117. package/dist/components/Card.d.ts.map +0 -1
  118. package/dist/components/Carousel.d.ts +0 -74
  119. package/dist/components/Carousel.d.ts.map +0 -1
  120. package/dist/components/DataPreview.d.ts +0 -42
  121. package/dist/components/DataPreview.d.ts.map +0 -1
  122. package/dist/components/Drop.vue.d.ts +0 -34
  123. package/dist/components/Drop.vue.d.ts.map +0 -1
  124. package/dist/components/FileUploader.vue.d.ts +0 -60
  125. package/dist/components/FileUploader.vue.d.ts.map +0 -1
  126. package/dist/components/Flag.d.ts +0 -20
  127. package/dist/components/Flag.d.ts.map +0 -1
  128. package/dist/components/ListItem.d.ts +0 -34
  129. package/dist/components/ListItem.d.ts.map +0 -1
  130. package/dist/components/ListView.d.ts +0 -13
  131. package/dist/components/ListView.d.ts.map +0 -1
  132. package/dist/components/MapEmbed.d.ts +0 -3
  133. package/dist/components/MapEmbed.d.ts.map +0 -1
  134. package/dist/components/MaterialIcon.d.ts +0 -26
  135. package/dist/components/MaterialIcon.d.ts.map +0 -1
  136. package/dist/components/Modal.d.ts +0 -46
  137. package/dist/components/Modal.d.ts.map +0 -1
  138. package/dist/components/ModalConfirm.d.ts +0 -24
  139. package/dist/components/ModalConfirm.d.ts.map +0 -1
  140. package/dist/components/ModalForm.d.ts +0 -78
  141. package/dist/components/ModalForm.d.ts.map +0 -1
  142. package/dist/components/NavBar.d.ts +0 -64
  143. package/dist/components/NavBar.d.ts.map +0 -1
  144. package/dist/components/PageTitle.d.ts +0 -24
  145. package/dist/components/PageTitle.d.ts.map +0 -1
  146. package/dist/components/RouterWrapper.d.ts +0 -3
  147. package/dist/components/RouterWrapper.d.ts.map +0 -1
  148. package/dist/components/TableSchema.d.ts +0 -35
  149. package/dist/components/TableSchema.d.ts.map +0 -1
  150. package/dist/components/Title.d.ts +0 -42
  151. package/dist/components/Title.d.ts.map +0 -1
  152. package/dist/components/TopBar.d.ts +0 -12
  153. package/dist/components/TopBar.d.ts.map +0 -1
  154. package/dist/components/dashboard/Lineart.d.ts +0 -20
  155. package/dist/components/dashboard/Lineart.d.ts.map +0 -1
  156. package/dist/components/form/BglField.d.ts +0 -25
  157. package/dist/components/form/BglField.d.ts.map +0 -1
  158. package/dist/components/form/BglForm.d.ts +0 -75
  159. package/dist/components/form/BglForm.d.ts.map +0 -1
  160. package/dist/components/form/inputs/CheckInput.d.ts +0 -56
  161. package/dist/components/form/inputs/CheckInput.d.ts.map +0 -1
  162. package/dist/components/form/inputs/Checkbox.d.ts +0 -16
  163. package/dist/components/form/inputs/Checkbox.d.ts.map +0 -1
  164. package/dist/components/form/inputs/ColorPicker.d.ts +0 -48
  165. package/dist/components/form/inputs/ColorPicker.d.ts.map +0 -1
  166. package/dist/components/form/inputs/DateInput.d.ts +0 -64
  167. package/dist/components/form/inputs/DateInput.d.ts.map +0 -1
  168. package/dist/components/form/inputs/DatePicker.d.ts +0 -33
  169. package/dist/components/form/inputs/DatePicker.d.ts.map +0 -1
  170. package/dist/components/form/inputs/FileUpload.d.ts +0 -108
  171. package/dist/components/form/inputs/FileUpload.d.ts.map +0 -1
  172. package/dist/components/form/inputs/JSONInput.d.ts +0 -53
  173. package/dist/components/form/inputs/JSONInput.d.ts.map +0 -1
  174. package/dist/components/form/inputs/RadioGroup.d.ts +0 -42
  175. package/dist/components/form/inputs/RadioGroup.d.ts.map +0 -1
  176. package/dist/components/form/inputs/RadioPillsInput.d.ts +0 -48
  177. package/dist/components/form/inputs/RadioPillsInput.d.ts.map +0 -1
  178. package/dist/components/form/inputs/RichText.d.ts +0 -20
  179. package/dist/components/form/inputs/RichText.d.ts.map +0 -1
  180. package/dist/components/form/inputs/RichText2/Toolbar.d.ts +0 -22
  181. package/dist/components/form/inputs/RichText2/Toolbar.d.ts.map +0 -1
  182. package/dist/components/form/inputs/RichText2/index.d.ts +0 -24
  183. package/dist/components/form/inputs/RichText2/index.d.ts.map +0 -1
  184. package/dist/components/form/inputs/SelectInput.d.ts +0 -55
  185. package/dist/components/form/inputs/SelectInput.d.ts.map +0 -1
  186. package/dist/components/form/inputs/SignaturePad.d.ts +0 -72
  187. package/dist/components/form/inputs/SignaturePad.d.ts.map +0 -1
  188. package/dist/components/form/inputs/TableField.d.ts +0 -45
  189. package/dist/components/form/inputs/TableField.d.ts.map +0 -1
  190. package/dist/components/form/inputs/TelInput.d.ts +0 -241
  191. package/dist/components/form/inputs/TelInput.d.ts.map +0 -1
  192. package/dist/components/form/inputs/TextInput.d.ts +0 -90
  193. package/dist/components/form/inputs/TextInput.d.ts.map +0 -1
  194. package/dist/components/form/inputs/ToggleInput.d.ts +0 -58
  195. package/dist/components/form/inputs/ToggleInput.d.ts.map +0 -1
  196. package/dist/components/layout/BottomMenu.d.ts +0 -27
  197. package/dist/components/layout/BottomMenu.d.ts.map +0 -1
  198. package/dist/components/layout/Layout.d.ts +0 -58
  199. package/dist/components/layout/Layout.d.ts.map +0 -1
  200. package/dist/components/layout/SidebarMenu.d.ts +0 -38
  201. package/dist/components/layout/SidebarMenu.d.ts.map +0 -1
  202. package/dist/components/layout/TabbedLayout.d.ts +0 -42
  203. package/dist/components/layout/TabbedLayout.d.ts.map +0 -1
  204. package/dist/components/layout/Tabs.d.ts +0 -31
  205. package/dist/components/layout/Tabs.d.ts.map +0 -1
  206. package/dist/components/layout/TabsBody.d.ts +0 -23
  207. package/dist/components/layout/TabsBody.d.ts.map +0 -1
  208. package/dist/components/layout/TabsNav.d.ts +0 -35
  209. package/dist/components/layout/TabsNav.d.ts.map +0 -1
  210. package/dist/vue.css +0 -13814
package/dist/index.cjs CHANGED
@@ -156,7 +156,7 @@ const _export_sfc = (sfc, props2) => {
156
156
  }
157
157
  return target;
158
158
  };
159
- const AccordionItem = /* @__PURE__ */ _export_sfc(_sfc_main$Y, [["__scopeId", "data-v-bb26ed1a"]]);
159
+ const AccordionItem = /* @__PURE__ */ _export_sfc(_sfc_main$Y, [["__scopeId", "data-v-2054c0ea"]]);
160
160
  const _hoisted_1$K = { class: "relative" };
161
161
  const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
162
162
  __name: "AddressSearch",
@@ -248,8 +248,8 @@ const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
248
248
  },
249
249
  setup(__props) {
250
250
  vue.useCssVars((_ctx) => ({
251
- "da24ea44": computedBackgroundColor.value,
252
- "864c1f8e": cumputedTextColor.value
251
+ "eb819078": computedBackgroundColor.value,
252
+ "4a90c19f": cumputedTextColor.value
253
253
  }));
254
254
  const props2 = __props;
255
255
  const isComponent = vue.computed(() => {
@@ -342,7 +342,7 @@ const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
342
342
  };
343
343
  }
344
344
  });
345
- const Btn = /* @__PURE__ */ _export_sfc(_sfc_main$W, [["__scopeId", "data-v-be5ba54d"]]);
345
+ const Btn = /* @__PURE__ */ _export_sfc(_sfc_main$W, [["__scopeId", "data-v-c3d9914e"]]);
346
346
  const _hoisted_1$I = ["dismissable"];
347
347
  const _hoisted_2$u = { class: "m-0" };
348
348
  const _sfc_main$V = /* @__PURE__ */ vue.defineComponent({
@@ -6585,7 +6585,7 @@ const _hoisted_1$1$1 = {
6585
6585
  };
6586
6586
  const _hoisted_2$1$1 = ["width", "height", "viewBox"];
6587
6587
  const _hoisted_3$l = { class: "layer-rectangles" };
6588
- const _hoisted_4$f = ["transform", "onMouseover"];
6588
+ const _hoisted_4$e = ["transform", "onMouseover"];
6589
6589
  const _hoisted_5$d = ["width", "height"];
6590
6590
  const _hoisted_6$a = {
6591
6591
  x: 0 + 10,
@@ -6637,7 +6637,7 @@ function render$1(_ctx, _cache, $props, $setup, $data, $options) {
6637
6637
  )
6638
6638
  ])
6639
6639
  ])
6640
- ], 42, _hoisted_4$f);
6640
+ ], 42, _hoisted_4$e);
6641
6641
  }),
6642
6642
  128
6643
6643
  /* KEYED_FRAGMENT */
@@ -6861,7 +6861,7 @@ const _hoisted_2$q = {
6861
6861
  class: "data-row m_py-05"
6862
6862
  };
6863
6863
  const _hoisted_3$k = { class: "key" };
6864
- const _hoisted_4$e = { class: "m-0" };
6864
+ const _hoisted_4$d = { class: "m-0" };
6865
6865
  const _hoisted_5$c = { key: 1 };
6866
6866
  const _hoisted_6$9 = {
6867
6867
  key: 0,
@@ -6920,7 +6920,7 @@ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
6920
6920
  }, [
6921
6921
  vue.unref(iffer)(field, itemData.value) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$q, [
6922
6922
  vue.createElementVNode("div", _hoisted_3$k, [
6923
- vue.createElementVNode("p", _hoisted_4$e, vue.toDisplayString((field == null ? void 0 : field.label) || vue.unref(keyToLabel)(field.id)), 1)
6923
+ vue.createElementVNode("p", _hoisted_4$d, vue.toDisplayString((field == null ? void 0 : field.label) || vue.unref(keyToLabel)(field.id)), 1)
6924
6924
  ]),
6925
6925
  vue.createVNode(vue.unref(_sfc_main$L), {
6926
6926
  modelValue: itemData.value,
@@ -7555,9 +7555,10 @@ async function convertValueToCoords(state2, options) {
7555
7555
  crossAxis: 0,
7556
7556
  alignmentAxis: null
7557
7557
  } : {
7558
- mainAxis: rawValue.mainAxis || 0,
7559
- crossAxis: rawValue.crossAxis || 0,
7560
- alignmentAxis: rawValue.alignmentAxis
7558
+ mainAxis: 0,
7559
+ crossAxis: 0,
7560
+ alignmentAxis: null,
7561
+ ...rawValue
7561
7562
  };
7562
7563
  if (alignment && typeof alignmentAxis === "number") {
7563
7564
  crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
@@ -7662,11 +7663,7 @@ const shift$1 = function(options) {
7662
7663
  ...limitedCoords,
7663
7664
  data: {
7664
7665
  x: limitedCoords.x - x2,
7665
- y: limitedCoords.y - y2,
7666
- enabled: {
7667
- [mainAxis]: checkMainAxis,
7668
- [crossAxis]: checkCrossAxis
7669
- }
7666
+ y: limitedCoords.y - y2
7670
7667
  }
7671
7668
  };
7672
7669
  }
@@ -7680,7 +7677,6 @@ const size = function(options) {
7680
7677
  name: "size",
7681
7678
  options,
7682
7679
  async fn(state2) {
7683
- var _state$middlewareData, _state$middlewareData2;
7684
7680
  const {
7685
7681
  placement,
7686
7682
  rects,
@@ -7716,11 +7712,10 @@ const size = function(options) {
7716
7712
  const noShift = !state2.middlewareData.shift;
7717
7713
  let availableHeight = overflowAvailableHeight;
7718
7714
  let availableWidth = overflowAvailableWidth;
7719
- if ((_state$middlewareData = state2.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
7720
- availableWidth = maximumClippingWidth;
7721
- }
7722
- if ((_state$middlewareData2 = state2.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
7723
- availableHeight = maximumClippingHeight;
7715
+ if (isYAxis) {
7716
+ availableWidth = alignment || noShift ? min$1(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;
7717
+ } else {
7718
+ availableHeight = alignment || noShift ? min$1(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;
7724
7719
  }
7725
7720
  if (noShift && !alignment) {
7726
7721
  const xMin = max$1(overflow.left, 0);
@@ -18584,7 +18579,7 @@ const _hoisted_3$i = {
18584
18579
  key: 0,
18585
18580
  class: "time-wrap"
18586
18581
  };
18587
- const _hoisted_4$d = ["id", "name", "value"];
18582
+ const _hoisted_4$c = ["id", "name", "value"];
18588
18583
  const _hoisted_5$b = ["for"];
18589
18584
  const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
18590
18585
  __name: "DatePicker",
@@ -18642,7 +18637,7 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
18642
18637
  type: "radio",
18643
18638
  name: _ctx.label,
18644
18639
  value: hr2
18645
- }, null, 8, _hoisted_4$d), [
18640
+ }, null, 8, _hoisted_4$c), [
18646
18641
  [vue.vModelRadio, selectedHour.value]
18647
18642
  ]),
18648
18643
  vue.createElementVNode("label", {
@@ -18661,7 +18656,7 @@ const _hoisted_3$h = {
18661
18656
  key: 0,
18662
18657
  class: "txt-gray txt-12"
18663
18658
  };
18664
- const _hoisted_4$c = {
18659
+ const _hoisted_4$b = {
18665
18660
  key: 0,
18666
18661
  class: "bgl-multi-preview"
18667
18662
  };
@@ -18905,7 +18900,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
18905
18900
  files: storageFiles.value,
18906
18901
  fileQueue: fileQueue.value
18907
18902
  }, () => [
18908
- _ctx.multiple ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$c, [
18903
+ _ctx.multiple ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$b, [
18909
18904
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(storageFiles.value, (file) => {
18910
18905
  return vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
18911
18906
  key: file.id,
@@ -19274,7 +19269,7 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
19274
19269
  const _hoisted_1$s = ["for"];
19275
19270
  const _hoisted_2$j = ["id", "name", "value"];
19276
19271
  const _hoisted_3$f = { class: "flex w-100 gap-1 flex-wrap m_gap-05 m_gap-row-025" };
19277
- const _hoisted_4$b = ["src", "alt"];
19272
+ const _hoisted_4$a = ["src", "alt"];
19278
19273
  const _hoisted_5$9 = { class: "" };
19279
19274
  const _hoisted_6$7 = {
19280
19275
  key: 0,
@@ -19322,7 +19317,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
19322
19317
  width: "60",
19323
19318
  src: opt.imgSrc,
19324
19319
  alt: opt.imgAlt
19325
- }, null, 8, _hoisted_4$b)) : vue.createCommentVNode("", true),
19320
+ }, null, 8, _hoisted_4$a)) : vue.createCommentVNode("", true),
19326
19321
  vue.createElementVNode("div", _hoisted_5$9, [
19327
19322
  opt.label ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_6$7, vue.toDisplayString(opt.label), 1)) : vue.createCommentVNode("", true),
19328
19323
  opt.subLabel ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_7$4, vue.toDisplayString(opt.subLabel), 1)) : vue.createCommentVNode("", true)
@@ -19347,7 +19342,7 @@ const RadioGroup = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data
19347
19342
  const _hoisted_1$r = { class: "bagel-input" };
19348
19343
  const _hoisted_2$i = { class: "pb-025" };
19349
19344
  const _hoisted_3$e = { class: "flex gap-05 flex-wrap" };
19350
- const _hoisted_4$a = ["id", "name", "value", "checked"];
19345
+ const _hoisted_4$9 = ["id", "name", "value", "checked"];
19351
19346
  const _hoisted_5$8 = ["for"];
19352
19347
  const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
19353
19348
  __name: "RadioPillsInput",
@@ -19405,7 +19400,7 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
19405
19400
  value: getValue(option2),
19406
19401
  checked: vue.unref(selectedValue) === getValue(option2),
19407
19402
  onChange: handleSelect
19408
- }, null, 40, _hoisted_4$a),
19403
+ }, null, 40, _hoisted_4$9),
19409
19404
  vue.createElementVNode("label", {
19410
19405
  for: `${_ctx.id}-${getValue(option2)}`
19411
19406
  }, vue.toDisplayString(getLabel(option2)), 9, _hoisted_5$8)
@@ -19417,16 +19412,20 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
19417
19412
  }
19418
19413
  });
19419
19414
  const RadioPillsInput = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__scopeId", "data-v-cf892d71"]]);
19420
- const _hoisted_1$q = { class: "flex gap-1 align-center range-slide" };
19421
- const _hoisted_2$h = { key: 0 };
19422
- const _hoisted_3$d = ["max", "min", "step"];
19423
- const _hoisted_4$9 = { key: 1 };
19415
+ const _hoisted_1$q = { key: 0 };
19416
+ const _hoisted_2$h = ["id", "disabled", "max", "min", "step", "required", "name"];
19417
+ const _hoisted_3$d = { key: 1 };
19424
19418
  const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
19425
19419
  __name: "RangeInput",
19426
19420
  props: /* @__PURE__ */ vue.mergeModels({
19427
19421
  min: {},
19428
19422
  max: {},
19429
- step: {}
19423
+ step: {},
19424
+ disabled: { type: Boolean },
19425
+ id: {},
19426
+ name: {},
19427
+ required: { type: Boolean },
19428
+ thickness: { default: "8px" }
19430
19429
  }, {
19431
19430
  "modelValue": { default: 0 },
19432
19431
  "modelModifiers": {}
@@ -19434,31 +19433,55 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
19434
19433
  emits: ["update:modelValue"],
19435
19434
  setup(__props) {
19436
19435
  const val = vue.useModel(__props, "modelValue");
19436
+ const range2 = vue.ref();
19437
+ const direction = vue.computed(() => {
19438
+ if (!range2.value) return "ltr";
19439
+ const parent = range2.value.parentElement;
19440
+ return getComputedStyle(parent).direction;
19441
+ });
19437
19442
  const background = vue.computed(() => {
19438
19443
  const minVal = __props.min ?? 0;
19439
19444
  const maxVal = __props.max ?? 100;
19440
19445
  const percentage = (val.value - minVal) / (maxVal - minVal) * 100;
19446
+ if (direction.value === "rtl") {
19447
+ return `linear-gradient(to left, var(--bgl-primary) ${percentage}%, var(--input-bg) ${percentage}%)`;
19448
+ }
19441
19449
  return `linear-gradient(to right, var(--bgl-primary) ${percentage}%, var(--input-bg) ${percentage}%)`;
19442
19450
  });
19451
+ vue.watch(() => val.value, (newValue) => {
19452
+ if (__props.min !== void 0 && newValue < __props.min) val.value = __props.min;
19453
+ if (__props.max !== void 0 && newValue > __props.max) val.value = __props.max;
19454
+ });
19455
+ const height = vue.computed(() => {
19456
+ return Number.isNaN(Number(__props.thickness)) ? __props.thickness : `${__props.thickness}px`;
19457
+ });
19443
19458
  return (_ctx, _cache) => {
19444
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$q, [
19445
- _ctx.min !== void 0 ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_2$h, vue.toDisplayString(_ctx.min), 1)) : vue.createCommentVNode("", true),
19459
+ return vue.openBlock(), vue.createElementBlock("div", {
19460
+ class: vue.normalizeClass(["flex gap-1 align-center range-slide", { disabled: _ctx.disabled }])
19461
+ }, [
19462
+ _ctx.min !== void 0 ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_1$q, vue.toDisplayString(_ctx.min), 1)) : vue.createCommentVNode("", true),
19446
19463
  vue.withDirectives(vue.createElementVNode("input", {
19464
+ id: _ctx.id,
19465
+ ref_key: "range",
19466
+ ref: range2,
19447
19467
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => val.value = $event),
19448
- style: vue.normalizeStyle({ background: background.value }),
19468
+ disabled: _ctx.disabled,
19469
+ style: vue.normalizeStyle({ background: background.value, height: height.value }),
19449
19470
  max: _ctx.max,
19450
19471
  min: _ctx.min,
19451
19472
  step: _ctx.step,
19452
- type: "range"
19453
- }, null, 12, _hoisted_3$d), [
19473
+ required: _ctx.required,
19474
+ type: "range",
19475
+ name: _ctx.name
19476
+ }, null, 12, _hoisted_2$h), [
19454
19477
  [vue.vModelText, val.value]
19455
19478
  ]),
19456
- _ctx.max !== void 0 ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_4$9, vue.toDisplayString(_ctx.max), 1)) : vue.createCommentVNode("", true)
19457
- ]);
19479
+ _ctx.max !== void 0 ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_3$d, vue.toDisplayString(_ctx.max), 1)) : vue.createCommentVNode("", true)
19480
+ ], 2);
19458
19481
  };
19459
19482
  }
19460
19483
  });
19461
- const RangeInput = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-d653c76a"]]);
19484
+ const RangeInput = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-ded4d62d"]]);
19462
19485
  function OrderedMap(content) {
19463
19486
  this.content = content;
19464
19487
  }
@@ -20614,12 +20637,6 @@ let Node$2 = class Node2 {
20614
20637
  this.content = content || Fragment.empty;
20615
20638
  }
20616
20639
  /**
20617
- The array of this node's child nodes.
20618
- */
20619
- get children() {
20620
- return this.content.content;
20621
- }
20622
- /**
20623
20640
  The size of this node, as defined by the integer-based [indexing
20624
20641
  scheme](/docs/guide/#doc.indexing). For text nodes, this is the
20625
20642
  amount of characters. For other leaf nodes, it is one. For
@@ -21306,7 +21323,7 @@ function resolveName(stream, name) {
21306
21323
  let result2 = [];
21307
21324
  for (let typeName in types) {
21308
21325
  let type4 = types[typeName];
21309
- if (type4.isInGroup(name))
21326
+ if (type4.groups.indexOf(name) > -1)
21310
21327
  result2.push(type4);
21311
21328
  }
21312
21329
  if (result2.length == 0)
@@ -21544,13 +21561,6 @@ let NodeType$1 = class NodeType2 {
21544
21561
  return this.isLeaf || !!this.spec.atom;
21545
21562
  }
21546
21563
  /**
21547
- Return true when this node type is part of the given
21548
- [group](https://prosemirror.net/docs/ref/#model.NodeSpec.group).
21549
- */
21550
- isInGroup(group) {
21551
- return this.groups.indexOf(group) > -1;
21552
- }
21553
- /**
21554
21564
  The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.
21555
21565
  */
21556
21566
  get whitespace() {
@@ -22306,7 +22316,6 @@ class ParseContext {
22306
22316
  contentDOM = rule.contentElement;
22307
22317
  this.findAround(dom, contentDOM, true);
22308
22318
  this.addAll(contentDOM, marks);
22309
- this.findAround(dom, contentDOM, false);
22310
22319
  }
22311
22320
  if (sync && this.sync(startIn))
22312
22321
  this.open--;
@@ -22482,7 +22491,7 @@ class ParseContext {
22482
22491
  return false;
22483
22492
  } else {
22484
22493
  let next = depth > 0 || depth == 0 && useRoot ? this.nodes[depth].type : option2 && depth >= minDepth ? option2.node(depth - minDepth).type : null;
22485
- if (!next || next.name != part && !next.isInGroup(part))
22494
+ if (!next || next.name != part && next.groups.indexOf(part) == -1)
22486
22495
  return false;
22487
22496
  depth--;
22488
22497
  }
@@ -23742,24 +23751,8 @@ function canJoin(doc2, pos) {
23742
23751
  let $pos = doc2.resolve(pos), index2 = $pos.index();
23743
23752
  return joinable($pos.nodeBefore, $pos.nodeAfter) && $pos.parent.canReplace(index2, index2 + 1);
23744
23753
  }
23745
- function canAppendWithSubstitutedLinebreaks(a2, b2) {
23746
- if (!b2.content.size)
23747
- a2.type.compatibleContent(b2.type);
23748
- let match2 = a2.contentMatchAt(a2.childCount);
23749
- let { linebreakReplacement } = a2.type.schema;
23750
- for (let i2 = 0; i2 < b2.childCount; i2++) {
23751
- let child = b2.child(i2);
23752
- let type3 = child.type == linebreakReplacement ? a2.type.schema.nodes.text : child.type;
23753
- match2 = match2.matchType(type3);
23754
- if (!match2)
23755
- return false;
23756
- if (!a2.type.allowsMarks(child.marks))
23757
- return false;
23758
- }
23759
- return match2.validEnd;
23760
- }
23761
23754
  function joinable(a2, b2) {
23762
- return !!(a2 && b2 && !a2.isLeaf && canAppendWithSubstitutedLinebreaks(a2, b2));
23755
+ return !!(a2 && b2 && !a2.isLeaf && a2.canAppend(b2));
23763
23756
  }
23764
23757
  function joinPoint(doc2, pos, dir = -1) {
23765
23758
  let $pos = doc2.resolve(pos);
@@ -23784,31 +23777,8 @@ function joinPoint(doc2, pos, dir = -1) {
23784
23777
  }
23785
23778
  }
23786
23779
  function join(tr2, pos, depth) {
23787
- let convertNewlines = null;
23788
- let { linebreakReplacement } = tr2.doc.type.schema;
23789
- let $before = tr2.doc.resolve(pos - depth), beforeType = $before.node().type;
23790
- if (linebreakReplacement && beforeType.inlineContent) {
23791
- let pre = beforeType.whitespace == "pre";
23792
- let supportLinebreak = !!beforeType.contentMatch.matchType(linebreakReplacement);
23793
- if (pre && !supportLinebreak)
23794
- convertNewlines = false;
23795
- else if (!pre && supportLinebreak)
23796
- convertNewlines = true;
23797
- }
23798
- let mapFrom = tr2.steps.length;
23799
- if (convertNewlines === false) {
23800
- let $after = tr2.doc.resolve(pos + depth);
23801
- replaceLinebreaks(tr2, $after.node(), $after.before(), mapFrom);
23802
- }
23803
- if (beforeType.inlineContent)
23804
- clearIncompatible(tr2, pos + depth - 1, beforeType, $before.node().contentMatchAt($before.index()), convertNewlines == null);
23805
- let mapping = tr2.mapping.slice(mapFrom), start2 = mapping.map(pos - depth);
23806
- tr2.step(new ReplaceStep(start2, mapping.map(pos + depth, -1), Slice.empty, true));
23807
- if (convertNewlines === true) {
23808
- let $full = tr2.doc.resolve(start2);
23809
- replaceNewlines(tr2, $full.node(), $full.before(), tr2.steps.length);
23810
- }
23811
- return tr2;
23780
+ let step = new ReplaceStep(pos - depth, pos + depth, Slice.empty, true);
23781
+ tr2.step(step);
23812
23782
  }
23813
23783
  function insertPoint(doc2, pos, nodeType) {
23814
23784
  let $pos = doc2.resolve(pos);
@@ -24204,7 +24174,7 @@ function deleteRange$1(tr2, from2, to2) {
24204
24174
  return tr2.delete($from.before(depth), $to.after(depth));
24205
24175
  }
24206
24176
  for (let d2 = 1; d2 <= $from.depth && d2 <= $to.depth; d2++) {
24207
- if (from2 - $from.start(d2) == $from.depth - d2 && to2 > $from.end(d2) && $to.end(d2) - to2 != $to.depth - d2 && $from.start(d2 - 1) == $to.start(d2 - 1) && $from.node(d2 - 1).canReplace($from.index(d2 - 1), $to.index(d2 - 1)))
24177
+ if (from2 - $from.start(d2) == $from.depth - d2 && to2 > $from.end(d2) && $to.end(d2) - to2 != $to.depth - d2)
24208
24178
  return tr2.delete($from.before(d2), to2);
24209
24179
  }
24210
24180
  tr2.delete(from2, to2);
@@ -26358,18 +26328,17 @@ class ViewDesc {
26358
26328
  // custom things with the selection. Note that this falls apart when
26359
26329
  // a selection starts in such a node and ends in another, in which
26360
26330
  // case we just use whatever domFromPos produces as a best effort.
26361
- setSelection(anchor, head, view, force = false) {
26331
+ setSelection(anchor, head, root2, force = false) {
26362
26332
  let from2 = Math.min(anchor, head), to2 = Math.max(anchor, head);
26363
26333
  for (let i2 = 0, offset2 = 0; i2 < this.children.length; i2++) {
26364
26334
  let child = this.children[i2], end2 = offset2 + child.size;
26365
26335
  if (from2 > offset2 && to2 < end2)
26366
- return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, view, force);
26336
+ return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, root2, force);
26367
26337
  offset2 = end2;
26368
26338
  }
26369
26339
  let anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);
26370
26340
  let headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);
26371
- let domSel = view.root.getSelection();
26372
- let selRange = view.domSelectionRange();
26341
+ let domSel = root2.getSelection();
26373
26342
  let brKludge = false;
26374
26343
  if ((gecko || safari) && anchor == head) {
26375
26344
  let { node, offset: offset2 } = anchorDOM;
@@ -26392,12 +26361,12 @@ class ViewDesc {
26392
26361
  brKludge = prev && (prev.nodeName == "BR" || prev.contentEditable == "false");
26393
26362
  }
26394
26363
  }
26395
- if (gecko && selRange.focusNode && selRange.focusNode != headDOM.node && selRange.focusNode.nodeType == 1) {
26396
- let after = selRange.focusNode.childNodes[selRange.focusOffset];
26364
+ if (gecko && domSel.focusNode && domSel.focusNode != headDOM.node && domSel.focusNode.nodeType == 1) {
26365
+ let after = domSel.focusNode.childNodes[domSel.focusOffset];
26397
26366
  if (after && after.contentEditable == "false")
26398
26367
  force = true;
26399
26368
  }
26400
- if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, selRange.anchorNode, selRange.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, selRange.focusNode, selRange.focusOffset))
26369
+ if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset))
26401
26370
  return;
26402
26371
  let domSelExtended = false;
26403
26372
  if ((domSel.extend || anchor == head) && !brKludge) {
@@ -26538,17 +26507,16 @@ class CompositionViewDesc extends ViewDesc {
26538
26507
  }
26539
26508
  }
26540
26509
  class MarkViewDesc extends ViewDesc {
26541
- constructor(parent, mark, dom, contentDOM, spec) {
26510
+ constructor(parent, mark, dom, contentDOM) {
26542
26511
  super(parent, [], dom, contentDOM);
26543
26512
  this.mark = mark;
26544
- this.spec = spec;
26545
26513
  }
26546
26514
  static create(parent, mark, inline, view) {
26547
26515
  let custom2 = view.nodeViews[mark.type.name];
26548
26516
  let spec = custom2 && custom2(mark, view, inline);
26549
26517
  if (!spec || !spec.dom)
26550
26518
  spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline), null, mark.attrs);
26551
- return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom, spec);
26519
+ return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom);
26552
26520
  }
26553
26521
  parseRule() {
26554
26522
  if (this.dirty & NODE_DIRTY || this.mark.type.spec.reparseInView)
@@ -26581,14 +26549,6 @@ class MarkViewDesc extends ViewDesc {
26581
26549
  copy2.children = nodes;
26582
26550
  return copy2;
26583
26551
  }
26584
- ignoreMutation(mutation) {
26585
- return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);
26586
- }
26587
- destroy() {
26588
- if (this.spec.destroy)
26589
- this.spec.destroy();
26590
- super.destroy();
26591
- }
26592
26552
  }
26593
26553
  class NodeViewDesc extends ViewDesc {
26594
26554
  constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {
@@ -26880,7 +26840,7 @@ class CustomNodeViewDesc extends NodeViewDesc {
26880
26840
  update(node, outerDeco, innerDeco, view) {
26881
26841
  if (this.dirty == NODE_DIRTY)
26882
26842
  return false;
26883
- if (this.spec.update && (this.node.type == node.type || this.spec.multiType)) {
26843
+ if (this.spec.update) {
26884
26844
  let result2 = this.spec.update(node, outerDeco, innerDeco);
26885
26845
  if (result2)
26886
26846
  this.updateInner(node, outerDeco, innerDeco, view);
@@ -26897,8 +26857,8 @@ class CustomNodeViewDesc extends NodeViewDesc {
26897
26857
  deselectNode() {
26898
26858
  this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();
26899
26859
  }
26900
- setSelection(anchor, head, view, force) {
26901
- this.spec.setSelection ? this.spec.setSelection(anchor, head, view.root) : super.setSelection(anchor, head, view, force);
26860
+ setSelection(anchor, head, root2, force) {
26861
+ this.spec.setSelection ? this.spec.setSelection(anchor, head, root2) : super.setSelection(anchor, head, root2, force);
26902
26862
  }
26903
26863
  destroy() {
26904
26864
  if (this.spec.destroy)
@@ -27485,7 +27445,7 @@ function selectionToDOM(view, force = false) {
27485
27445
  if (!sel.empty && !sel.$from.parent.inlineContent)
27486
27446
  resetEditableTo = temporarilyEditableNear(view, sel.to);
27487
27447
  }
27488
- view.docView.setSelection(anchor, head, view, force);
27448
+ view.docView.setSelection(anchor, head, view.root, force);
27489
27449
  if (brokenSelectBetweenUneditable) {
27490
27450
  if (resetEditableFrom)
27491
27451
  resetEditable(resetEditableFrom);
@@ -28121,14 +28081,11 @@ let _detachedDoc = null;
28121
28081
  function detachedDoc() {
28122
28082
  return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument("title"));
28123
28083
  }
28124
- let _policy = null;
28125
28084
  function maybeWrapTrusted(html) {
28126
28085
  let trustedTypes = window.trustedTypes;
28127
28086
  if (!trustedTypes)
28128
28087
  return html;
28129
- if (!_policy)
28130
- _policy = trustedTypes.createPolicy("ProseMirrorClipboard", { createHTML: (s2) => s2 });
28131
- return _policy.createHTML(html);
28088
+ return trustedTypes.createPolicy("detachedDocument", { createHTML: (s2) => s2 }).createHTML(html);
28132
28089
  }
28133
28090
  function readHTML(html) {
28134
28091
  let metas = /^(\s*<meta [^>]*>)*/.exec(html);
@@ -28260,7 +28217,9 @@ editHandlers.keydown = (view, _event) => {
28260
28217
  view.input.lastKeyCodeTime = Date.now();
28261
28218
  if (android && chrome && event.keyCode == 13)
28262
28219
  return;
28263
- if (event.keyCode != 229)
28220
+ if (view.domObserver.selectionChanged(view.domSelectionRange()))
28221
+ view.domObserver.flush();
28222
+ else if (event.keyCode != 229)
28264
28223
  view.domObserver.forceFlush();
28265
28224
  if (ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {
28266
28225
  let now = Date.now();
@@ -29638,6 +29597,9 @@ class DOMObserver {
29638
29597
  this.queue.push(mut);
29639
29598
  return this.queue;
29640
29599
  }
29600
+ selectionChanged(sel) {
29601
+ return !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(this.view) && !this.ignoreSelectionChange(sel);
29602
+ }
29641
29603
  flush() {
29642
29604
  let { view } = this;
29643
29605
  if (!view.docView || this.flushingSoon > -1)
@@ -29645,8 +29607,7 @@ class DOMObserver {
29645
29607
  let mutations = this.pendingRecords();
29646
29608
  if (mutations.length)
29647
29609
  this.queue = [];
29648
- let sel = view.domSelectionRange();
29649
- let newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(view) && !this.ignoreSelectionChange(sel);
29610
+ let sel = view.domSelectionRange(), newSel = this.selectionChanged(sel);
29650
29611
  let from2 = -1, to2 = -1, typeOver = false, added = [];
29651
29612
  if (view.editable) {
29652
29613
  for (let i2 = 0; i2 < mutations.length; i2++) {
@@ -31086,7 +31047,7 @@ function joinMaybeClear(state2, $pos, dispatch) {
31086
31047
  if (!$pos.parent.canReplace(index2, index2 + 1) || !(after.isTextblock || canJoin(state2.doc, $pos.pos)))
31087
31048
  return false;
31088
31049
  if (dispatch)
31089
- dispatch(state2.tr.join($pos.pos).scrollIntoView());
31050
+ dispatch(state2.tr.clearIncompatible($pos.pos, before.type, before.contentMatchAt(before.childCount)).join($pos.pos).scrollIntoView());
31090
31051
  return true;
31091
31052
  }
31092
31053
  function deleteBarrier(state2, $cut, dispatch, dir) {
@@ -31102,9 +31063,9 @@ function deleteBarrier(state2, $cut, dispatch, dir) {
31102
31063
  wrap2 = Fragment.from(conn[i2].create(null, wrap2));
31103
31064
  wrap2 = Fragment.from(before.copy(wrap2));
31104
31065
  let tr2 = state2.tr.step(new ReplaceAroundStep($cut.pos - 1, end2, $cut.pos, end2, new Slice(wrap2, 1, 0), conn.length, true));
31105
- let $joinAt = tr2.doc.resolve(end2 + 2 * conn.length);
31106
- if ($joinAt.nodeAfter && $joinAt.nodeAfter.type == before.type && canJoin(tr2.doc, $joinAt.pos))
31107
- tr2.join($joinAt.pos);
31066
+ let joinAt = end2 + 2 * conn.length;
31067
+ if (canJoin(tr2.doc, joinAt))
31068
+ tr2.join(joinAt);
31108
31069
  dispatch(tr2.scrollIntoView());
31109
31070
  }
31110
31071
  return true;
@@ -31469,13 +31430,6 @@ class EventEmitter {
31469
31430
  }
31470
31431
  return this;
31471
31432
  }
31472
- once(event, fn3) {
31473
- const onceFn = (...args) => {
31474
- this.off(event, onceFn);
31475
- fn3.apply(this, args);
31476
- };
31477
- return this.on(event, onceFn);
31478
- }
31479
31433
  removeAllListeners() {
31480
31434
  this.callbacks = {};
31481
31435
  }
@@ -31723,7 +31677,6 @@ function getSchemaByResolvedExtensions(extensions, editor) {
31723
31677
  draggable: callOrReturn(getExtensionField(extension, "draggable", context)),
31724
31678
  code: callOrReturn(getExtensionField(extension, "code", context)),
31725
31679
  whitespace: callOrReturn(getExtensionField(extension, "whitespace", context)),
31726
- linebreakReplacement: callOrReturn(getExtensionField(extension, "linebreakReplacement", context)),
31727
31680
  defining: callOrReturn(getExtensionField(extension, "defining", context)),
31728
31681
  isolating: callOrReturn(getExtensionField(extension, "isolating", context)),
31729
31682
  attrs: Object.fromEntries(extensionAttributes.map((extensionAttribute) => {
@@ -31806,13 +31759,6 @@ function isExtensionRulesEnabled(extension, enabled) {
31806
31759
  }
31807
31760
  return enabled;
31808
31761
  }
31809
- function getHTMLFromFragment(fragment, schema) {
31810
- const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
31811
- const temporaryDocument = document.implementation.createHTMLDocument();
31812
- const container = temporaryDocument.createElement("div");
31813
- container.appendChild(documentFragment);
31814
- return container.innerHTML;
31815
- }
31816
31762
  const getTextContentFromNodes = ($from, maxMatch = 500) => {
31817
31763
  let textBefore = "";
31818
31764
  const sliceEndPos = $from.parentOffset;
@@ -31923,7 +31869,7 @@ function inputRulesPlugin(props2) {
31923
31869
  init() {
31924
31870
  return null;
31925
31871
  },
31926
- apply(tr2, prev, state2) {
31872
+ apply(tr2, prev) {
31927
31873
  const stored = tr2.getMeta(plugin);
31928
31874
  if (stored) {
31929
31875
  return stored;
@@ -31932,13 +31878,7 @@ function inputRulesPlugin(props2) {
31932
31878
  const isSimulatedInput = !!simulatedInputMeta;
31933
31879
  if (isSimulatedInput) {
31934
31880
  setTimeout(() => {
31935
- let { text } = simulatedInputMeta;
31936
- if (typeof text === "string") {
31937
- text = text;
31938
- } else {
31939
- text = getHTMLFromFragment(Fragment.from(text), state2.schema);
31940
- }
31941
- const { from: from2 } = simulatedInputMeta;
31881
+ const { from: from2, text } = simulatedInputMeta;
31942
31882
  const to2 = from2 + text.length;
31943
31883
  run$1({
31944
31884
  editor,
@@ -32007,109 +31947,6 @@ function inputRulesPlugin(props2) {
32007
31947
  });
32008
31948
  return plugin;
32009
31949
  }
32010
- function getType$1(value) {
32011
- return Object.prototype.toString.call(value).slice(8, -1);
32012
- }
32013
- function isPlainObject$1(value) {
32014
- if (getType$1(value) !== "Object") {
32015
- return false;
32016
- }
32017
- return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32018
- }
32019
- function mergeDeep(target, source) {
32020
- const output = { ...target };
32021
- if (isPlainObject$1(target) && isPlainObject$1(source)) {
32022
- Object.keys(source).forEach((key) => {
32023
- if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32024
- output[key] = mergeDeep(target[key], source[key]);
32025
- } else {
32026
- output[key] = source[key];
32027
- }
32028
- });
32029
- }
32030
- return output;
32031
- }
32032
- class Mark {
32033
- constructor(config = {}) {
32034
- this.type = "mark";
32035
- this.name = "mark";
32036
- this.parent = null;
32037
- this.child = null;
32038
- this.config = {
32039
- name: this.name,
32040
- defaultOptions: {}
32041
- };
32042
- this.config = {
32043
- ...this.config,
32044
- ...config
32045
- };
32046
- this.name = this.config.name;
32047
- if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
32048
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
32049
- }
32050
- this.options = this.config.defaultOptions;
32051
- if (this.config.addOptions) {
32052
- this.options = callOrReturn(getExtensionField(this, "addOptions", {
32053
- name: this.name
32054
- }));
32055
- }
32056
- this.storage = callOrReturn(getExtensionField(this, "addStorage", {
32057
- name: this.name,
32058
- options: this.options
32059
- })) || {};
32060
- }
32061
- static create(config = {}) {
32062
- return new Mark(config);
32063
- }
32064
- configure(options = {}) {
32065
- const extension = this.extend({
32066
- ...this.config,
32067
- addOptions: () => {
32068
- return mergeDeep(this.options, options);
32069
- }
32070
- });
32071
- extension.name = this.name;
32072
- extension.parent = this.parent;
32073
- return extension;
32074
- }
32075
- extend(extendedConfig = {}) {
32076
- const extension = new Mark(extendedConfig);
32077
- extension.parent = this;
32078
- this.child = extension;
32079
- extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
32080
- if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
32081
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
32082
- }
32083
- extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
32084
- name: extension.name
32085
- }));
32086
- extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
32087
- name: extension.name,
32088
- options: extension.options
32089
- }));
32090
- return extension;
32091
- }
32092
- static handleExit({ editor, mark }) {
32093
- const { tr: tr2 } = editor.state;
32094
- const currentPos = editor.state.selection.$from;
32095
- const isAtEnd = currentPos.pos === currentPos.end();
32096
- if (isAtEnd) {
32097
- const currentMarks = currentPos.marks();
32098
- const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32099
- if (!isInMark) {
32100
- return false;
32101
- }
32102
- const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32103
- if (removeMark2) {
32104
- tr2.removeStoredMark(removeMark2);
32105
- }
32106
- tr2.insertText(" ", currentPos.pos);
32107
- editor.view.dispatch(tr2);
32108
- return true;
32109
- }
32110
- return false;
32111
- }
32112
- }
32113
31950
  function isNumber$1(value) {
32114
31951
  return typeof value === "number";
32115
31952
  }
@@ -32196,12 +32033,7 @@ function pasteRulesPlugin(props2) {
32196
32033
  let isPastedFromProseMirror = false;
32197
32034
  let isDroppedFromProseMirror = false;
32198
32035
  let pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32199
- let dropEvent;
32200
- try {
32201
- dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32202
- } catch (e) {
32203
- dropEvent = null;
32204
- }
32036
+ let dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32205
32037
  const processEvent = ({ state: state2, from: from2, to: to2, rule, pasteEvt }) => {
32206
32038
  const tr2 = state2.tr;
32207
32039
  const chainableState = createChainableState({
@@ -32220,11 +32052,7 @@ function pasteRulesPlugin(props2) {
32220
32052
  if (!handler || !tr2.steps.length) {
32221
32053
  return;
32222
32054
  }
32223
- try {
32224
- dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32225
- } catch (e) {
32226
- dropEvent = null;
32227
- }
32055
+ dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32228
32056
  pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32229
32057
  return tr2;
32230
32058
  };
@@ -32269,13 +32097,7 @@ function pasteRulesPlugin(props2) {
32269
32097
  return;
32270
32098
  }
32271
32099
  if (isSimulatedPaste) {
32272
- let { text } = simulatedPasteMeta;
32273
- if (typeof text === "string") {
32274
- text = text;
32275
- } else {
32276
- text = getHTMLFromFragment(Fragment.from(text), state2.schema);
32277
- }
32278
- const { from: from3 } = simulatedPasteMeta;
32100
+ const { from: from3, text } = simulatedPasteMeta;
32279
32101
  const to3 = from3 + text.length;
32280
32102
  const pasteEvt = createClipboardPasteEvent(text);
32281
32103
  return processEvent({
@@ -32549,6 +32371,28 @@ class ExtensionManager {
32549
32371
  });
32550
32372
  }
32551
32373
  }
32374
+ function getType$1(value) {
32375
+ return Object.prototype.toString.call(value).slice(8, -1);
32376
+ }
32377
+ function isPlainObject$1(value) {
32378
+ if (getType$1(value) !== "Object") {
32379
+ return false;
32380
+ }
32381
+ return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32382
+ }
32383
+ function mergeDeep(target, source) {
32384
+ const output = { ...target };
32385
+ if (isPlainObject$1(target) && isPlainObject$1(source)) {
32386
+ Object.keys(source).forEach((key) => {
32387
+ if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32388
+ output[key] = mergeDeep(target[key], source[key]);
32389
+ } else {
32390
+ output[key] = source[key];
32391
+ }
32392
+ });
32393
+ }
32394
+ return output;
32395
+ }
32552
32396
  class Extension {
32553
32397
  constructor(config = {}) {
32554
32398
  this.type = "extension";
@@ -32799,29 +32643,23 @@ function objectIncludes(object1, object2, options = { strict: true }) {
32799
32643
  }
32800
32644
  function findMarkInSet(marks, type3, attributes = {}) {
32801
32645
  return marks.find((item) => {
32802
- return item.type === type3 && objectIncludes(
32803
- // Only check equality for the attributes that are provided
32804
- Object.fromEntries(Object.keys(attributes).map((k2) => [k2, item.attrs[k2]])),
32805
- attributes
32806
- );
32646
+ return item.type === type3 && objectIncludes(item.attrs, attributes);
32807
32647
  });
32808
32648
  }
32809
32649
  function isMarkInSet(marks, type3, attributes = {}) {
32810
32650
  return !!findMarkInSet(marks, type3, attributes);
32811
32651
  }
32812
- function getMarkRange($pos, type3, attributes) {
32813
- var _a2;
32652
+ function getMarkRange($pos, type3, attributes = {}) {
32814
32653
  if (!$pos || !type3) {
32815
32654
  return;
32816
32655
  }
32817
32656
  let start2 = $pos.parent.childAfter($pos.parentOffset);
32818
- if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32657
+ if ($pos.parentOffset === start2.offset && start2.offset !== 0) {
32819
32658
  start2 = $pos.parent.childBefore($pos.parentOffset);
32820
32659
  }
32821
- if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32660
+ if (!start2.node) {
32822
32661
  return;
32823
32662
  }
32824
- attributes = attributes || ((_a2 = start2.node.marks[0]) === null || _a2 === void 0 ? void 0 : _a2.attrs);
32825
32663
  const mark = findMarkInSet([...start2.node.marks], type3, attributes);
32826
32664
  if (!mark) {
32827
32665
  return;
@@ -32830,7 +32668,8 @@ function getMarkRange($pos, type3, attributes) {
32830
32668
  let startPos = $pos.start() + start2.offset;
32831
32669
  let endIndex = startIndex + 1;
32832
32670
  let endPos = startPos + start2.node.nodeSize;
32833
- while (startIndex > 0 && isMarkInSet([...$pos.parent.child(startIndex - 1).marks], type3, attributes)) {
32671
+ findMarkInSet([...start2.node.marks], type3, attributes);
32672
+ while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {
32834
32673
  startIndex -= 1;
32835
32674
  startPos -= $pos.parent.child(startIndex).nodeSize;
32836
32675
  }
@@ -32971,9 +32810,6 @@ function elementFromString(value) {
32971
32810
  return removeWhitespaces(html);
32972
32811
  }
32973
32812
  function createNodeFromContent(content, schema, options) {
32974
- if (content instanceof Node$2 || content instanceof Fragment) {
32975
- return content;
32976
- }
32977
32813
  options = {
32978
32814
  slice: true,
32979
32815
  parseOptions: {},
@@ -33068,7 +32904,7 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
33068
32904
  var _a2;
33069
32905
  if (dispatch) {
33070
32906
  options = {
33071
- parseOptions: editor.options.parseOptions,
32907
+ parseOptions: {},
33072
32908
  updateSelection: true,
33073
32909
  applyInputRules: false,
33074
32910
  applyPasteRules: false,
@@ -33088,9 +32924,7 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
33088
32924
  editor,
33089
32925
  error: e,
33090
32926
  disableCollaboration: () => {
33091
- if (editor.storage.collaboration) {
33092
- editor.storage.collaboration.isDisabled = true;
33093
- }
32927
+ console.error("[tiptap error]: Unable to disable collaboration at this point in time");
33094
32928
  }
33095
32929
  });
33096
32930
  return false;
@@ -33116,14 +32950,6 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
33116
32950
  if (isOnlyTextContent) {
33117
32951
  if (Array.isArray(value)) {
33118
32952
  newContent = value.map((v2) => v2.text || "").join("");
33119
- } else if (value instanceof Fragment) {
33120
- let text = "";
33121
- value.forEach((node) => {
33122
- if (node.text) {
33123
- text += node.text;
33124
- }
33125
- });
33126
- newContent = text;
33127
32953
  } else if (typeof value === "object" && !!value && !!value.text) {
33128
32954
  newContent = value.text;
33129
32955
  } else {
@@ -33459,6 +33285,13 @@ function findParentNodeClosestToPos($pos, predicate) {
33459
33285
  function findParentNode(predicate) {
33460
33286
  return (selection) => findParentNodeClosestToPos(selection.$from, predicate);
33461
33287
  }
33288
+ function getHTMLFromFragment(fragment, schema) {
33289
+ const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
33290
+ const temporaryDocument = document.implementation.createHTMLDocument();
33291
+ const container = temporaryDocument.createElement("div");
33292
+ container.appendChild(documentFragment);
33293
+ return container.innerHTML;
33294
+ }
33462
33295
  function getText(node, options) {
33463
33296
  const range2 = {
33464
33297
  from: 0,
@@ -33744,22 +33577,18 @@ const setMeta = (key, value) => ({ tr: tr2 }) => {
33744
33577
  };
33745
33578
  const setNode = (typeOrName, attributes = {}) => ({ state: state2, dispatch, chain }) => {
33746
33579
  const type3 = getNodeType(typeOrName, state2.schema);
33747
- let attributesToCopy;
33748
- if (state2.selection.$anchor.sameParent(state2.selection.$head)) {
33749
- attributesToCopy = state2.selection.$anchor.parent.attrs;
33750
- }
33751
33580
  if (!type3.isTextblock) {
33752
33581
  console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.');
33753
33582
  return false;
33754
33583
  }
33755
33584
  return chain().command(({ commands: commands2 }) => {
33756
- const canSetBlock = setBlockType(type3, { ...attributesToCopy, ...attributes })(state2);
33585
+ const canSetBlock = setBlockType(type3, attributes)(state2);
33757
33586
  if (canSetBlock) {
33758
33587
  return true;
33759
33588
  }
33760
33589
  return commands2.clearNodes();
33761
33590
  }).command(({ state: updatedState }) => {
33762
- return setBlockType(type3, { ...attributesToCopy, ...attributes })(updatedState, dispatch);
33591
+ return setBlockType(type3, attributes)(updatedState, dispatch);
33763
33592
  }).run();
33764
33593
  };
33765
33594
  const setNodeSelection = (position) => ({ tr: tr2, dispatch }) => {
@@ -34118,59 +33947,18 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
34118
33947
  tr2.selection.ranges.forEach((range2) => {
34119
33948
  const from2 = range2.$from.pos;
34120
33949
  const to2 = range2.$to.pos;
34121
- let lastPos;
34122
- let lastNode;
34123
- let trimmedFrom;
34124
- let trimmedTo;
34125
- if (tr2.selection.empty) {
34126
- state2.doc.nodesBetween(from2, to2, (node, pos) => {
34127
- if (nodeType && nodeType === node.type) {
34128
- trimmedFrom = Math.max(pos, from2);
34129
- trimmedTo = Math.min(pos + node.nodeSize, to2);
34130
- lastPos = pos;
34131
- lastNode = node;
34132
- }
34133
- });
34134
- } else {
34135
- state2.doc.nodesBetween(from2, to2, (node, pos) => {
34136
- if (pos < from2 && nodeType && nodeType === node.type) {
34137
- trimmedFrom = Math.max(pos, from2);
34138
- trimmedTo = Math.min(pos + node.nodeSize, to2);
34139
- lastPos = pos;
34140
- lastNode = node;
34141
- }
34142
- if (pos >= from2 && pos <= to2) {
34143
- if (nodeType && nodeType === node.type) {
34144
- tr2.setNodeMarkup(pos, void 0, {
34145
- ...node.attrs,
34146
- ...attributes
34147
- });
34148
- }
34149
- if (markType && node.marks.length) {
34150
- node.marks.forEach((mark) => {
34151
- if (markType === mark.type) {
34152
- const trimmedFrom2 = Math.max(pos, from2);
34153
- const trimmedTo2 = Math.min(pos + node.nodeSize, to2);
34154
- tr2.addMark(trimmedFrom2, trimmedTo2, markType.create({
34155
- ...mark.attrs,
34156
- ...attributes
34157
- }));
34158
- }
34159
- });
34160
- }
34161
- }
34162
- });
34163
- }
34164
- if (lastNode) {
34165
- if (lastPos !== void 0) {
34166
- tr2.setNodeMarkup(lastPos, void 0, {
34167
- ...lastNode.attrs,
33950
+ state2.doc.nodesBetween(from2, to2, (node, pos) => {
33951
+ if (nodeType && nodeType === node.type) {
33952
+ tr2.setNodeMarkup(pos, void 0, {
33953
+ ...node.attrs,
34168
33954
  ...attributes
34169
33955
  });
34170
33956
  }
34171
- if (markType && lastNode.marks.length) {
34172
- lastNode.marks.forEach((mark) => {
33957
+ if (markType && node.marks.length) {
33958
+ node.marks.forEach((mark) => {
34173
33959
  if (markType === mark.type) {
33960
+ const trimmedFrom = Math.max(pos, from2);
33961
+ const trimmedTo = Math.min(pos + node.nodeSize, to2);
34174
33962
  tr2.addMark(trimmedFrom, trimmedTo, markType.create({
34175
33963
  ...mark.attrs,
34176
33964
  ...attributes
@@ -34178,7 +33966,7 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
34178
33966
  }
34179
33967
  });
34180
33968
  }
34181
- }
33969
+ });
34182
33970
  });
34183
33971
  }
34184
33972
  return true;
@@ -34260,26 +34048,6 @@ const Commands = Extension.create({
34260
34048
  };
34261
34049
  }
34262
34050
  });
34263
- const Drop = Extension.create({
34264
- name: "drop",
34265
- addProseMirrorPlugins() {
34266
- return [
34267
- new Plugin({
34268
- key: new PluginKey("tiptapDrop"),
34269
- props: {
34270
- handleDrop: (_2, e, slice4, moved2) => {
34271
- this.editor.emit("drop", {
34272
- editor: this.editor,
34273
- event: e,
34274
- slice: slice4,
34275
- moved: moved2
34276
- });
34277
- }
34278
- }
34279
- })
34280
- ];
34281
- }
34282
- });
34283
34051
  const Editable = Extension.create({
34284
34052
  name: "editable",
34285
34053
  addProseMirrorPlugins() {
@@ -34429,25 +34197,6 @@ const Keymap = Extension.create({
34429
34197
  ];
34430
34198
  }
34431
34199
  });
34432
- const Paste = Extension.create({
34433
- name: "paste",
34434
- addProseMirrorPlugins() {
34435
- return [
34436
- new Plugin({
34437
- key: new PluginKey("tiptapPaste"),
34438
- props: {
34439
- handlePaste: (_view, e, slice4) => {
34440
- this.editor.emit("paste", {
34441
- editor: this.editor,
34442
- event: e,
34443
- slice: slice4
34444
- });
34445
- }
34446
- }
34447
- })
34448
- ];
34449
- }
34450
- });
34451
34200
  const Tabindex = Extension.create({
34452
34201
  name: "tabindex",
34453
34202
  addProseMirrorPlugins() {
@@ -34555,8 +34304,7 @@ class NodePos {
34555
34304
  const children2 = [];
34556
34305
  this.node.content.forEach((node, offset2) => {
34557
34306
  const isBlock = node.isBlock && !node.isTextblock;
34558
- const isNonTextAtom = node.isAtom && !node.isText;
34559
- const targetPos = this.pos + offset2 + (isNonTextAtom ? 0 : 1);
34307
+ const targetPos = this.pos + offset2 + 1;
34560
34308
  const $pos = this.resolvedPos.doc.resolve(targetPos);
34561
34309
  if (!isBlock && $pos.depth <= this.depth) {
34562
34310
  return;
@@ -34625,14 +34373,30 @@ class NodePos {
34625
34373
  return nodes;
34626
34374
  }
34627
34375
  setAttribute(attributes) {
34628
- const { tr: tr2 } = this.editor.state;
34629
- tr2.setNodeMarkup(this.from, void 0, {
34630
- ...this.node.attrs,
34631
- ...attributes
34632
- });
34633
- this.editor.view.dispatch(tr2);
34376
+ const oldSelection = this.editor.state.selection;
34377
+ this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from).run();
34634
34378
  }
34635
34379
  }
34380
+ const DropPlugin = (onDrop) => {
34381
+ return new Plugin({
34382
+ key: new PluginKey("tiptapDrop"),
34383
+ props: {
34384
+ handleDrop: (_2, e, slice4, moved2) => {
34385
+ onDrop(e, slice4, moved2);
34386
+ }
34387
+ }
34388
+ });
34389
+ };
34390
+ const PastePlugin = (onPaste) => {
34391
+ return new Plugin({
34392
+ key: new PluginKey("tiptapPaste"),
34393
+ props: {
34394
+ handlePaste: (_view, e, slice4) => {
34395
+ onPaste(e, slice4);
34396
+ }
34397
+ }
34398
+ });
34399
+ };
34636
34400
  const style = `.ProseMirror {
34637
34401
  position: relative;
34638
34402
  }
@@ -34775,8 +34539,12 @@ let Editor$1 = class Editor2 extends EventEmitter {
34775
34539
  this.on("focus", this.options.onFocus);
34776
34540
  this.on("blur", this.options.onBlur);
34777
34541
  this.on("destroy", this.options.onDestroy);
34778
- this.on("drop", ({ event, slice: slice4, moved: moved2 }) => this.options.onDrop(event, slice4, moved2));
34779
- this.on("paste", ({ event, slice: slice4 }) => this.options.onPaste(event, slice4));
34542
+ if (this.options.onPaste) {
34543
+ this.registerPlugin(PastePlugin(this.options.onPaste));
34544
+ }
34545
+ if (this.options.onDrop) {
34546
+ this.registerPlugin(DropPlugin(this.options.onDrop));
34547
+ }
34780
34548
  window.setTimeout(() => {
34781
34549
  if (this.isDestroyed) {
34782
34550
  return;
@@ -34873,24 +34641,17 @@ let Editor$1 = class Editor2 extends EventEmitter {
34873
34641
  /**
34874
34642
  * Unregister a ProseMirror plugin.
34875
34643
  *
34876
- * @param nameOrPluginKeyToRemove The plugins name
34644
+ * @param nameOrPluginKey The plugins name
34877
34645
  * @returns The new editor state or undefined if the editor is destroyed
34878
34646
  */
34879
- unregisterPlugin(nameOrPluginKeyToRemove) {
34647
+ unregisterPlugin(nameOrPluginKey) {
34880
34648
  if (this.isDestroyed) {
34881
34649
  return void 0;
34882
34650
  }
34883
- const prevPlugins = this.state.plugins;
34884
- let plugins2 = prevPlugins;
34885
- [].concat(nameOrPluginKeyToRemove).forEach((nameOrPluginKey) => {
34886
- const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34887
- plugins2 = prevPlugins.filter((plugin) => !plugin.key.startsWith(name));
34888
- });
34889
- if (prevPlugins.length === plugins2.length) {
34890
- return void 0;
34891
- }
34651
+ const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34892
34652
  const state2 = this.state.reconfigure({
34893
- plugins: plugins2
34653
+ // @ts-ignore
34654
+ plugins: this.state.plugins.filter((plugin) => !plugin.key.startsWith(name))
34894
34655
  });
34895
34656
  this.view.updateState(state2);
34896
34657
  return state2;
@@ -34908,9 +34669,7 @@ let Editor$1 = class Editor2 extends EventEmitter {
34908
34669
  Commands,
34909
34670
  FocusEvents,
34910
34671
  Keymap,
34911
- Tabindex,
34912
- Drop,
34913
- Paste
34672
+ Tabindex
34914
34673
  ].filter((ext) => {
34915
34674
  if (typeof this.options.enableCoreExtensions === "object") {
34916
34675
  return this.options.enableCoreExtensions[ext.name] !== false;
@@ -34940,7 +34699,6 @@ let Editor$1 = class Editor2 extends EventEmitter {
34940
34699
  * Creates a ProseMirror view.
34941
34700
  */
34942
34701
  createView() {
34943
- var _a2;
34944
34702
  let doc2;
34945
34703
  try {
34946
34704
  doc2 = createDocument(this.options.content, this.schema, this.options.parseOptions, { errorOnInvalidContent: this.options.enableContentCheck });
@@ -34952,9 +34710,6 @@ let Editor$1 = class Editor2 extends EventEmitter {
34952
34710
  editor: this,
34953
34711
  error: e,
34954
34712
  disableCollaboration: () => {
34955
- if (this.storage.collaboration) {
34956
- this.storage.collaboration.isDisabled = true;
34957
- }
34958
34713
  this.options.extensions = this.options.extensions.filter((extension) => extension.name !== "collaboration");
34959
34714
  this.createExtensionManager();
34960
34715
  }
@@ -34964,11 +34719,6 @@ let Editor$1 = class Editor2 extends EventEmitter {
34964
34719
  const selection = resolveFocusPosition(doc2, this.options.autofocus);
34965
34720
  this.view = new EditorView(this.options.element, {
34966
34721
  ...this.options.editorProps,
34967
- attributes: {
34968
- // add `role="textbox"` to the editor element
34969
- role: "textbox",
34970
- ...(_a2 = this.options.editorProps) === null || _a2 === void 0 ? void 0 : _a2.attributes
34971
- },
34972
34722
  dispatchTransaction: this.dispatchTransaction.bind(this),
34973
34723
  state: EditorState.create({
34974
34724
  doc: doc2,
@@ -35268,6 +35018,87 @@ function wrappingInputRule(config) {
35268
35018
  }
35269
35019
  });
35270
35020
  }
35021
+ class Mark {
35022
+ constructor(config = {}) {
35023
+ this.type = "mark";
35024
+ this.name = "mark";
35025
+ this.parent = null;
35026
+ this.child = null;
35027
+ this.config = {
35028
+ name: this.name,
35029
+ defaultOptions: {}
35030
+ };
35031
+ this.config = {
35032
+ ...this.config,
35033
+ ...config
35034
+ };
35035
+ this.name = this.config.name;
35036
+ if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
35037
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
35038
+ }
35039
+ this.options = this.config.defaultOptions;
35040
+ if (this.config.addOptions) {
35041
+ this.options = callOrReturn(getExtensionField(this, "addOptions", {
35042
+ name: this.name
35043
+ }));
35044
+ }
35045
+ this.storage = callOrReturn(getExtensionField(this, "addStorage", {
35046
+ name: this.name,
35047
+ options: this.options
35048
+ })) || {};
35049
+ }
35050
+ static create(config = {}) {
35051
+ return new Mark(config);
35052
+ }
35053
+ configure(options = {}) {
35054
+ const extension = this.extend({
35055
+ ...this.config,
35056
+ addOptions: () => {
35057
+ return mergeDeep(this.options, options);
35058
+ }
35059
+ });
35060
+ extension.name = this.name;
35061
+ extension.parent = this.parent;
35062
+ return extension;
35063
+ }
35064
+ extend(extendedConfig = {}) {
35065
+ const extension = new Mark(extendedConfig);
35066
+ extension.parent = this;
35067
+ this.child = extension;
35068
+ extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
35069
+ if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
35070
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
35071
+ }
35072
+ extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
35073
+ name: extension.name
35074
+ }));
35075
+ extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
35076
+ name: extension.name,
35077
+ options: extension.options
35078
+ }));
35079
+ return extension;
35080
+ }
35081
+ static handleExit({ editor, mark }) {
35082
+ const { tr: tr2 } = editor.state;
35083
+ const currentPos = editor.state.selection.$from;
35084
+ const isAtEnd = currentPos.pos === currentPos.end();
35085
+ if (isAtEnd) {
35086
+ const currentMarks = currentPos.marks();
35087
+ const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35088
+ if (!isInMark) {
35089
+ return false;
35090
+ }
35091
+ const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35092
+ if (removeMark2) {
35093
+ tr2.removeStoredMark(removeMark2);
35094
+ }
35095
+ tr2.insertText(" ", currentPos.pos);
35096
+ editor.view.dispatch(tr2);
35097
+ return true;
35098
+ }
35099
+ return false;
35100
+ }
35101
+ }
35271
35102
  let Node$1 = class Node3 {
35272
35103
  constructor(config = {}) {
35273
35104
  this.type = "node";
@@ -36097,7 +35928,7 @@ function drawCellSelection(state2) {
36097
35928
  return DecorationSet.create(state2.doc, cells);
36098
35929
  }
36099
35930
  function isCellBoundarySelection({ $from, $to }) {
36100
- if ($from.pos == $to.pos || $from.pos < $to.pos - 6)
35931
+ if ($from.pos == $to.pos || $from.pos < $from.pos - 6)
36101
35932
  return false;
36102
35933
  let afterFrom = $from.pos;
36103
35934
  let beforeTo = $to.pos;
@@ -36260,800 +36091,233 @@ function fixTable(state2, table, tablePos, tr2) {
36260
36091
  }
36261
36092
  return tr2.setMeta(fixTablesKey, { fixTables: true });
36262
36093
  }
36263
- function selectedRect(state2) {
36264
- const sel = state2.selection;
36265
- const $pos = selectionCell(state2);
36266
- const table = $pos.node(-1);
36267
- const tableStart = $pos.start(-1);
36268
- const map4 = TableMap.get(table);
36269
- const rect = sel instanceof CellSelection ? map4.rectBetween(
36270
- sel.$anchorCell.pos - tableStart,
36271
- sel.$headCell.pos - tableStart
36272
- ) : map4.findCell($pos.pos - tableStart);
36273
- return { ...rect, tableStart, map: map4, table };
36274
- }
36275
- function addColumn(tr2, { map: map4, tableStart, table }, col) {
36276
- let refColumn = col > 0 ? -1 : 0;
36277
- if (columnIsHeader(map4, table, col + refColumn)) {
36278
- refColumn = col == 0 || col == map4.width ? null : 0;
36094
+ function pastedCells(slice4) {
36095
+ if (!slice4.size)
36096
+ return null;
36097
+ let { content, openStart, openEnd } = slice4;
36098
+ while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36099
+ openStart--;
36100
+ openEnd--;
36101
+ content = content.child(0).content;
36279
36102
  }
36280
- for (let row = 0; row < map4.height; row++) {
36281
- const index2 = row * map4.width + col;
36282
- if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
36283
- const pos = map4.map[index2];
36284
- const cell = table.nodeAt(pos);
36285
- tr2.setNodeMarkup(
36286
- tr2.mapping.map(tableStart + pos),
36287
- null,
36288
- addColSpan(cell.attrs, col - map4.colCount(pos))
36289
- );
36290
- row += cell.attrs.rowspan - 1;
36291
- } else {
36292
- const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
36293
- const pos = map4.positionAt(row, col, table);
36294
- tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
36103
+ const first2 = content.child(0);
36104
+ const role = first2.type.spec.tableRole;
36105
+ const schema = first2.type.schema, rows = [];
36106
+ if (role == "row") {
36107
+ for (let i2 = 0; i2 < content.childCount; i2++) {
36108
+ let cells = content.child(i2).content;
36109
+ const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36110
+ const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36111
+ if (left2 || right2)
36112
+ cells = fitSlice(
36113
+ tableNodeTypes(schema).row,
36114
+ new Slice(cells, left2, right2)
36115
+ ).content;
36116
+ rows.push(cells);
36295
36117
  }
36118
+ } else if (role == "cell" || role == "header_cell") {
36119
+ rows.push(
36120
+ openStart || openEnd ? fitSlice(
36121
+ tableNodeTypes(schema).row,
36122
+ new Slice(content, openStart, openEnd)
36123
+ ).content : content
36124
+ );
36125
+ } else {
36126
+ return null;
36296
36127
  }
36297
- return tr2;
36128
+ return ensureRectangular(schema, rows);
36298
36129
  }
36299
- function addColumnBefore(state2, dispatch) {
36300
- if (!isInTable(state2))
36301
- return false;
36302
- if (dispatch) {
36303
- const rect = selectedRect(state2);
36304
- dispatch(addColumn(state2.tr, rect, rect.left));
36130
+ function ensureRectangular(schema, rows) {
36131
+ const widths = [];
36132
+ for (let i2 = 0; i2 < rows.length; i2++) {
36133
+ const row = rows[i2];
36134
+ for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36135
+ const { rowspan, colspan } = row.child(j2).attrs;
36136
+ for (let r2 = i2; r2 < i2 + rowspan; r2++)
36137
+ widths[r2] = (widths[r2] || 0) + colspan;
36138
+ }
36305
36139
  }
36306
- return true;
36307
- }
36308
- function addColumnAfter(state2, dispatch) {
36309
- if (!isInTable(state2))
36310
- return false;
36311
- if (dispatch) {
36312
- const rect = selectedRect(state2);
36313
- dispatch(addColumn(state2.tr, rect, rect.right));
36140
+ let width = 0;
36141
+ for (let r2 = 0; r2 < widths.length; r2++)
36142
+ width = Math.max(width, widths[r2]);
36143
+ for (let r2 = 0; r2 < widths.length; r2++) {
36144
+ if (r2 >= rows.length)
36145
+ rows.push(Fragment.empty);
36146
+ if (widths[r2] < width) {
36147
+ const empty2 = tableNodeTypes(schema).cell.createAndFill();
36148
+ const cells = [];
36149
+ for (let i2 = widths[r2]; i2 < width; i2++) {
36150
+ cells.push(empty2);
36151
+ }
36152
+ rows[r2] = rows[r2].append(Fragment.from(cells));
36153
+ }
36314
36154
  }
36315
- return true;
36155
+ return { height: rows.length, width, rows };
36316
36156
  }
36317
- function removeColumn(tr2, { map: map4, table, tableStart }, col) {
36318
- const mapStart = tr2.mapping.maps.length;
36319
- for (let row = 0; row < map4.height; ) {
36320
- const index2 = row * map4.width + col;
36321
- const pos = map4.map[index2];
36322
- const cell = table.nodeAt(pos);
36323
- const attrs = cell.attrs;
36324
- if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
36325
- tr2.setNodeMarkup(
36326
- tr2.mapping.slice(mapStart).map(tableStart + pos),
36327
- null,
36328
- removeColSpan(attrs, col - map4.colCount(pos))
36329
- );
36330
- } else {
36331
- const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
36332
- tr2.delete(start2, start2 + cell.nodeSize);
36157
+ function fitSlice(nodeType, slice4) {
36158
+ const node = nodeType.createAndFill();
36159
+ const tr2 = new Transform(node).replace(0, node.content.size, slice4);
36160
+ return tr2.doc;
36161
+ }
36162
+ function clipCells({ width, height, rows }, newWidth, newHeight) {
36163
+ if (width != newWidth) {
36164
+ const added = [];
36165
+ const newRows = [];
36166
+ for (let row = 0; row < rows.length; row++) {
36167
+ const frag = rows[row], cells = [];
36168
+ for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
36169
+ let cell = frag.child(i2 % frag.childCount);
36170
+ if (col + cell.attrs.colspan > newWidth)
36171
+ cell = cell.type.createChecked(
36172
+ removeColSpan(
36173
+ cell.attrs,
36174
+ cell.attrs.colspan,
36175
+ col + cell.attrs.colspan - newWidth
36176
+ ),
36177
+ cell.content
36178
+ );
36179
+ cells.push(cell);
36180
+ col += cell.attrs.colspan;
36181
+ for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
36182
+ added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
36183
+ }
36184
+ newRows.push(Fragment.from(cells));
36333
36185
  }
36334
- row += attrs.rowspan;
36186
+ rows = newRows;
36187
+ width = newWidth;
36335
36188
  }
36336
- }
36337
- function deleteColumn(state2, dispatch) {
36338
- if (!isInTable(state2))
36339
- return false;
36340
- if (dispatch) {
36341
- const rect = selectedRect(state2);
36342
- const tr2 = state2.tr;
36343
- if (rect.left == 0 && rect.right == rect.map.width)
36344
- return false;
36345
- for (let i2 = rect.right - 1; ; i2--) {
36346
- removeColumn(tr2, rect, i2);
36347
- if (i2 == rect.left)
36348
- break;
36349
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36350
- if (!table) {
36351
- throw RangeError("No table found");
36189
+ if (height != newHeight) {
36190
+ const newRows = [];
36191
+ for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
36192
+ const cells = [], source = rows[i2 % height];
36193
+ for (let j2 = 0; j2 < source.childCount; j2++) {
36194
+ let cell = source.child(j2);
36195
+ if (row + cell.attrs.rowspan > newHeight)
36196
+ cell = cell.type.create(
36197
+ {
36198
+ ...cell.attrs,
36199
+ rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
36200
+ },
36201
+ cell.content
36202
+ );
36203
+ cells.push(cell);
36352
36204
  }
36353
- rect.table = table;
36354
- rect.map = TableMap.get(table);
36205
+ newRows.push(Fragment.from(cells));
36355
36206
  }
36356
- dispatch(tr2);
36207
+ rows = newRows;
36208
+ height = newHeight;
36357
36209
  }
36358
- return true;
36359
- }
36360
- function rowIsHeader(map4, table, row) {
36361
- var _a2;
36362
- const headerCell = tableNodeTypes(table.type.schema).header_cell;
36363
- for (let col = 0; col < map4.width; col++)
36364
- if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
36365
- return false;
36366
- return true;
36210
+ return { width, height, rows };
36367
36211
  }
36368
- function addRow(tr2, { map: map4, tableStart, table }, row) {
36369
- var _a2;
36370
- let rowPos = tableStart;
36371
- for (let i2 = 0; i2 < row; i2++)
36372
- rowPos += table.child(i2).nodeSize;
36373
- const cells = [];
36374
- let refRow = row > 0 ? -1 : 0;
36375
- if (rowIsHeader(map4, table, row + refRow))
36376
- refRow = row == 0 || row == map4.height ? null : 0;
36377
- for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
36378
- if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
36379
- const pos = map4.map[index2];
36380
- const attrs = table.nodeAt(pos).attrs;
36381
- tr2.setNodeMarkup(tableStart + pos, null, {
36382
- ...attrs,
36383
- rowspan: attrs.rowspan + 1
36384
- });
36385
- col += attrs.colspan - 1;
36386
- } else {
36387
- const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
36388
- const node = type3 == null ? void 0 : type3.createAndFill();
36389
- if (node)
36390
- cells.push(node);
36212
+ function growTable(tr2, map4, table, start2, width, height, mapFrom) {
36213
+ const schema = tr2.doc.type.schema;
36214
+ const types = tableNodeTypes(schema);
36215
+ let empty2;
36216
+ let emptyHead;
36217
+ if (width > map4.width) {
36218
+ for (let row = 0, rowEnd = 0; row < map4.height; row++) {
36219
+ const rowNode = table.child(row);
36220
+ rowEnd += rowNode.nodeSize;
36221
+ const cells = [];
36222
+ let add2;
36223
+ if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
36224
+ add2 = empty2 || (empty2 = types.cell.createAndFill());
36225
+ else
36226
+ add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
36227
+ for (let i2 = map4.width; i2 < width; i2++)
36228
+ cells.push(add2);
36229
+ tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
36391
36230
  }
36392
36231
  }
36393
- tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
36394
- return tr2;
36395
- }
36396
- function addRowBefore(state2, dispatch) {
36397
- if (!isInTable(state2))
36398
- return false;
36399
- if (dispatch) {
36400
- const rect = selectedRect(state2);
36401
- dispatch(addRow(state2.tr, rect, rect.top));
36232
+ if (height > map4.height) {
36233
+ const cells = [];
36234
+ for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
36235
+ const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
36236
+ cells.push(
36237
+ header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
36238
+ );
36239
+ }
36240
+ const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
36241
+ for (let i2 = map4.height; i2 < height; i2++)
36242
+ rows.push(emptyRow);
36243
+ tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
36402
36244
  }
36403
- return true;
36245
+ return !!(empty2 || emptyHead);
36404
36246
  }
36405
- function addRowAfter(state2, dispatch) {
36406
- if (!isInTable(state2))
36247
+ function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
36248
+ if (top2 == 0 || top2 == map4.height)
36407
36249
  return false;
36408
- if (dispatch) {
36409
- const rect = selectedRect(state2);
36410
- dispatch(addRow(state2.tr, rect, rect.bottom));
36411
- }
36412
- return true;
36413
- }
36414
- function removeRow(tr2, { map: map4, table, tableStart }, row) {
36415
- let rowPos = 0;
36416
- for (let i2 = 0; i2 < row; i2++)
36417
- rowPos += table.child(i2).nodeSize;
36418
- const nextRow = rowPos + table.child(row).nodeSize;
36419
- const mapFrom = tr2.mapping.maps.length;
36420
- tr2.delete(rowPos + tableStart, nextRow + tableStart);
36421
- const seen = /* @__PURE__ */ new Set();
36422
- for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
36423
- const pos = map4.map[index2];
36424
- if (seen.has(pos))
36425
- continue;
36426
- seen.add(pos);
36427
- if (row > 0 && pos == map4.map[index2 - map4.width]) {
36428
- const attrs = table.nodeAt(pos).attrs;
36429
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
36430
- ...attrs,
36431
- rowspan: attrs.rowspan - 1
36432
- });
36433
- col += attrs.colspan - 1;
36434
- } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
36250
+ let found2 = false;
36251
+ for (let col = left2; col < right2; col++) {
36252
+ const index2 = top2 * map4.width + col, pos = map4.map[index2];
36253
+ if (map4.map[index2 - map4.width] == pos) {
36254
+ found2 = true;
36435
36255
  const cell = table.nodeAt(pos);
36436
- const attrs = cell.attrs;
36437
- const copy2 = cell.type.create(
36438
- { ...attrs, rowspan: cell.attrs.rowspan - 1 },
36439
- cell.content
36256
+ const { top: cellTop, left: cellLeft } = map4.findCell(pos);
36257
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
36258
+ ...cell.attrs,
36259
+ rowspan: top2 - cellTop
36260
+ });
36261
+ tr2.insert(
36262
+ tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
36263
+ cell.type.createAndFill({
36264
+ ...cell.attrs,
36265
+ rowspan: cellTop + cell.attrs.rowspan - top2
36266
+ })
36440
36267
  );
36441
- const newPos = map4.positionAt(row + 1, col, table);
36442
- tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
36443
- col += attrs.colspan - 1;
36268
+ col += cell.attrs.colspan - 1;
36444
36269
  }
36445
36270
  }
36271
+ return found2;
36446
36272
  }
36447
- function deleteRow(state2, dispatch) {
36448
- if (!isInTable(state2))
36273
+ function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
36274
+ if (left2 == 0 || left2 == map4.width)
36449
36275
  return false;
36450
- if (dispatch) {
36451
- const rect = selectedRect(state2), tr2 = state2.tr;
36452
- if (rect.top == 0 && rect.bottom == rect.map.height)
36453
- return false;
36454
- for (let i2 = rect.bottom - 1; ; i2--) {
36455
- removeRow(tr2, rect, i2);
36456
- if (i2 == rect.top)
36457
- break;
36458
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36459
- if (!table) {
36460
- throw RangeError("No table found");
36461
- }
36462
- rect.table = table;
36463
- rect.map = TableMap.get(rect.table);
36276
+ let found2 = false;
36277
+ for (let row = top2; row < bottom2; row++) {
36278
+ const index2 = row * map4.width + left2, pos = map4.map[index2];
36279
+ if (map4.map[index2 - 1] == pos) {
36280
+ found2 = true;
36281
+ const cell = table.nodeAt(pos);
36282
+ const cellLeft = map4.colCount(pos);
36283
+ const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
36284
+ tr2.setNodeMarkup(
36285
+ updatePos,
36286
+ null,
36287
+ removeColSpan(
36288
+ cell.attrs,
36289
+ left2 - cellLeft,
36290
+ cell.attrs.colspan - (left2 - cellLeft)
36291
+ )
36292
+ );
36293
+ tr2.insert(
36294
+ updatePos + cell.nodeSize,
36295
+ cell.type.createAndFill(
36296
+ removeColSpan(cell.attrs, 0, left2 - cellLeft)
36297
+ )
36298
+ );
36299
+ row += cell.attrs.rowspan - 1;
36464
36300
  }
36465
- dispatch(tr2);
36466
36301
  }
36467
- return true;
36468
- }
36469
- function isEmpty(cell) {
36470
- const c2 = cell.content;
36471
- return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
36302
+ return found2;
36472
36303
  }
36473
- function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
36474
- let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
36475
- let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
36476
- for (let i2 = rect.top; i2 < rect.bottom; i2++) {
36477
- if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
36478
- return true;
36479
- indexLeft += width;
36480
- indexRight += width;
36304
+ function insertCells(state2, dispatch, tableStart, rect, cells) {
36305
+ let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
36306
+ if (!table) {
36307
+ throw new Error("No table found");
36481
36308
  }
36482
- for (let i2 = rect.left; i2 < rect.right; i2++) {
36483
- if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
36484
- return true;
36485
- indexTop++;
36486
- indexBottom++;
36487
- }
36488
- return false;
36489
- }
36490
- function mergeCells(state2, dispatch) {
36491
- const sel = state2.selection;
36492
- if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
36493
- return false;
36494
- const rect = selectedRect(state2), { map: map4 } = rect;
36495
- if (cellsOverlapRectangle(map4, rect))
36496
- return false;
36497
- if (dispatch) {
36498
- const tr2 = state2.tr;
36499
- const seen = {};
36500
- let content = Fragment.empty;
36501
- let mergedPos;
36502
- let mergedCell;
36503
- for (let row = rect.top; row < rect.bottom; row++) {
36504
- for (let col = rect.left; col < rect.right; col++) {
36505
- const cellPos = map4.map[row * map4.width + col];
36506
- const cell = rect.table.nodeAt(cellPos);
36507
- if (seen[cellPos] || !cell)
36508
- continue;
36509
- seen[cellPos] = true;
36510
- if (mergedPos == null) {
36511
- mergedPos = cellPos;
36512
- mergedCell = cell;
36513
- } else {
36514
- if (!isEmpty(cell))
36515
- content = content.append(cell.content);
36516
- const mapped = tr2.mapping.map(cellPos + rect.tableStart);
36517
- tr2.delete(mapped, mapped + cell.nodeSize);
36518
- }
36519
- }
36520
- }
36521
- if (mergedPos == null || mergedCell == null) {
36522
- return true;
36523
- }
36524
- tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
36525
- ...addColSpan(
36526
- mergedCell.attrs,
36527
- mergedCell.attrs.colspan,
36528
- rect.right - rect.left - mergedCell.attrs.colspan
36529
- ),
36530
- rowspan: rect.bottom - rect.top
36531
- });
36532
- if (content.size) {
36533
- const end2 = mergedPos + 1 + mergedCell.content.size;
36534
- const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
36535
- tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
36536
- }
36537
- tr2.setSelection(
36538
- new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
36539
- );
36540
- dispatch(tr2);
36541
- }
36542
- return true;
36543
- }
36544
- function splitCell(state2, dispatch) {
36545
- const nodeTypes = tableNodeTypes(state2.schema);
36546
- return splitCellWithType(({ node }) => {
36547
- return nodeTypes[node.type.spec.tableRole];
36548
- })(state2, dispatch);
36549
- }
36550
- function splitCellWithType(getCellType) {
36551
- return (state2, dispatch) => {
36552
- var _a2;
36553
- const sel = state2.selection;
36554
- let cellNode;
36555
- let cellPos;
36556
- if (!(sel instanceof CellSelection)) {
36557
- cellNode = cellWrapping(sel.$from);
36558
- if (!cellNode)
36559
- return false;
36560
- cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
36561
- } else {
36562
- if (sel.$anchorCell.pos != sel.$headCell.pos)
36563
- return false;
36564
- cellNode = sel.$anchorCell.nodeAfter;
36565
- cellPos = sel.$anchorCell.pos;
36566
- }
36567
- if (cellNode == null || cellPos == null) {
36568
- return false;
36569
- }
36570
- if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
36571
- return false;
36572
- }
36573
- if (dispatch) {
36574
- let baseAttrs = cellNode.attrs;
36575
- const attrs = [];
36576
- const colwidth = baseAttrs.colwidth;
36577
- if (baseAttrs.rowspan > 1)
36578
- baseAttrs = { ...baseAttrs, rowspan: 1 };
36579
- if (baseAttrs.colspan > 1)
36580
- baseAttrs = { ...baseAttrs, colspan: 1 };
36581
- const rect = selectedRect(state2), tr2 = state2.tr;
36582
- for (let i2 = 0; i2 < rect.right - rect.left; i2++)
36583
- attrs.push(
36584
- colwidth ? {
36585
- ...baseAttrs,
36586
- colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
36587
- } : baseAttrs
36588
- );
36589
- let lastCell;
36590
- for (let row = rect.top; row < rect.bottom; row++) {
36591
- let pos = rect.map.positionAt(row, rect.left, rect.table);
36592
- if (row == rect.top)
36593
- pos += cellNode.nodeSize;
36594
- for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
36595
- if (col == rect.left && row == rect.top)
36596
- continue;
36597
- tr2.insert(
36598
- lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
36599
- getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
36600
- );
36601
- }
36602
- }
36603
- tr2.setNodeMarkup(
36604
- cellPos,
36605
- getCellType({ node: cellNode, row: rect.top, col: rect.left }),
36606
- attrs[0]
36607
- );
36608
- if (sel instanceof CellSelection)
36609
- tr2.setSelection(
36610
- new CellSelection(
36611
- tr2.doc.resolve(sel.$anchorCell.pos),
36612
- lastCell ? tr2.doc.resolve(lastCell) : void 0
36613
- )
36614
- );
36615
- dispatch(tr2);
36616
- }
36617
- return true;
36618
- };
36619
- }
36620
- function setCellAttr(name, value) {
36621
- return function(state2, dispatch) {
36622
- if (!isInTable(state2))
36623
- return false;
36624
- const $cell = selectionCell(state2);
36625
- if ($cell.nodeAfter.attrs[name] === value)
36626
- return false;
36627
- if (dispatch) {
36628
- const tr2 = state2.tr;
36629
- if (state2.selection instanceof CellSelection)
36630
- state2.selection.forEachCell((node, pos) => {
36631
- if (node.attrs[name] !== value)
36632
- tr2.setNodeMarkup(pos, null, {
36633
- ...node.attrs,
36634
- [name]: value
36635
- });
36636
- });
36637
- else
36638
- tr2.setNodeMarkup($cell.pos, null, {
36639
- ...$cell.nodeAfter.attrs,
36640
- [name]: value
36641
- });
36642
- dispatch(tr2);
36643
- }
36644
- return true;
36645
- };
36646
- }
36647
- function deprecated_toggleHeader(type3) {
36648
- return function(state2, dispatch) {
36649
- if (!isInTable(state2))
36650
- return false;
36651
- if (dispatch) {
36652
- const types = tableNodeTypes(state2.schema);
36653
- const rect = selectedRect(state2), tr2 = state2.tr;
36654
- const cells = rect.map.cellsInRect(
36655
- type3 == "column" ? {
36656
- left: rect.left,
36657
- top: 0,
36658
- right: rect.right,
36659
- bottom: rect.map.height
36660
- } : type3 == "row" ? {
36661
- left: 0,
36662
- top: rect.top,
36663
- right: rect.map.width,
36664
- bottom: rect.bottom
36665
- } : rect
36666
- );
36667
- const nodes = cells.map((pos) => rect.table.nodeAt(pos));
36668
- for (let i2 = 0; i2 < cells.length; i2++)
36669
- if (nodes[i2].type == types.header_cell)
36670
- tr2.setNodeMarkup(
36671
- rect.tableStart + cells[i2],
36672
- types.cell,
36673
- nodes[i2].attrs
36674
- );
36675
- if (tr2.steps.length == 0)
36676
- for (let i2 = 0; i2 < cells.length; i2++)
36677
- tr2.setNodeMarkup(
36678
- rect.tableStart + cells[i2],
36679
- types.header_cell,
36680
- nodes[i2].attrs
36681
- );
36682
- dispatch(tr2);
36683
- }
36684
- return true;
36685
- };
36686
- }
36687
- function isHeaderEnabledByType(type3, rect, types) {
36688
- const cellPositions = rect.map.cellsInRect({
36689
- left: 0,
36690
- top: 0,
36691
- right: type3 == "row" ? rect.map.width : 1,
36692
- bottom: type3 == "column" ? rect.map.height : 1
36693
- });
36694
- for (let i2 = 0; i2 < cellPositions.length; i2++) {
36695
- const cell = rect.table.nodeAt(cellPositions[i2]);
36696
- if (cell && cell.type !== types.header_cell) {
36697
- return false;
36698
- }
36699
- }
36700
- return true;
36701
- }
36702
- function toggleHeader(type3, options) {
36703
- options = options || { useDeprecatedLogic: false };
36704
- if (options.useDeprecatedLogic)
36705
- return deprecated_toggleHeader(type3);
36706
- return function(state2, dispatch) {
36707
- if (!isInTable(state2))
36708
- return false;
36709
- if (dispatch) {
36710
- const types = tableNodeTypes(state2.schema);
36711
- const rect = selectedRect(state2), tr2 = state2.tr;
36712
- const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
36713
- const isHeaderColumnEnabled = isHeaderEnabledByType(
36714
- "column",
36715
- rect,
36716
- types
36717
- );
36718
- const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
36719
- const selectionStartsAt = isHeaderEnabled ? 1 : 0;
36720
- const cellsRect = type3 == "column" ? {
36721
- left: 0,
36722
- top: selectionStartsAt,
36723
- right: 1,
36724
- bottom: rect.map.height
36725
- } : type3 == "row" ? {
36726
- left: selectionStartsAt,
36727
- top: 0,
36728
- right: rect.map.width,
36729
- bottom: 1
36730
- } : rect;
36731
- const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
36732
- rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
36733
- const cellPos = relativeCellPos + rect.tableStart;
36734
- const cell = tr2.doc.nodeAt(cellPos);
36735
- if (cell) {
36736
- tr2.setNodeMarkup(cellPos, newType, cell.attrs);
36737
- }
36738
- });
36739
- dispatch(tr2);
36740
- }
36741
- return true;
36742
- };
36743
- }
36744
- toggleHeader("row", {
36745
- useDeprecatedLogic: true
36746
- });
36747
- toggleHeader("column", {
36748
- useDeprecatedLogic: true
36749
- });
36750
- var toggleHeaderCell = toggleHeader("cell", {
36751
- useDeprecatedLogic: true
36752
- });
36753
- function findNextCell($cell, dir) {
36754
- if (dir < 0) {
36755
- const before = $cell.nodeBefore;
36756
- if (before)
36757
- return $cell.pos - before.nodeSize;
36758
- for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
36759
- const rowNode = $cell.node(-1).child(row);
36760
- const lastChild2 = rowNode.lastChild;
36761
- if (lastChild2) {
36762
- return rowEnd - 1 - lastChild2.nodeSize;
36763
- }
36764
- rowEnd -= rowNode.nodeSize;
36765
- }
36766
- } else {
36767
- if ($cell.index() < $cell.parent.childCount - 1) {
36768
- return $cell.pos + $cell.nodeAfter.nodeSize;
36769
- }
36770
- const table = $cell.node(-1);
36771
- for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
36772
- const rowNode = table.child(row);
36773
- if (rowNode.childCount)
36774
- return rowStart + 1;
36775
- rowStart += rowNode.nodeSize;
36776
- }
36777
- }
36778
- return null;
36779
- }
36780
- function goToNextCell(direction) {
36781
- return function(state2, dispatch) {
36782
- if (!isInTable(state2))
36783
- return false;
36784
- const cell = findNextCell(selectionCell(state2), direction);
36785
- if (cell == null)
36786
- return false;
36787
- if (dispatch) {
36788
- const $cell = state2.doc.resolve(cell);
36789
- dispatch(
36790
- state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
36791
- );
36792
- }
36793
- return true;
36794
- };
36795
- }
36796
- function deleteTable(state2, dispatch) {
36797
- const $pos = state2.selection.$anchor;
36798
- for (let d2 = $pos.depth; d2 > 0; d2--) {
36799
- const node = $pos.node(d2);
36800
- if (node.type.spec.tableRole == "table") {
36801
- if (dispatch)
36802
- dispatch(
36803
- state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
36804
- );
36805
- return true;
36806
- }
36807
- }
36808
- return false;
36809
- }
36810
- function deleteCellSelection(state2, dispatch) {
36811
- const sel = state2.selection;
36812
- if (!(sel instanceof CellSelection))
36813
- return false;
36814
- if (dispatch) {
36815
- const tr2 = state2.tr;
36816
- const baseContent = tableNodeTypes(state2.schema).cell.createAndFill().content;
36817
- sel.forEachCell((cell, pos) => {
36818
- if (!cell.content.eq(baseContent))
36819
- tr2.replace(
36820
- tr2.mapping.map(pos + 1),
36821
- tr2.mapping.map(pos + cell.nodeSize - 1),
36822
- new Slice(baseContent, 0, 0)
36823
- );
36824
- });
36825
- if (tr2.docChanged)
36826
- dispatch(tr2);
36827
- }
36828
- return true;
36829
- }
36830
- function pastedCells(slice4) {
36831
- if (!slice4.size)
36832
- return null;
36833
- let { content, openStart, openEnd } = slice4;
36834
- while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36835
- openStart--;
36836
- openEnd--;
36837
- content = content.child(0).content;
36838
- }
36839
- const first2 = content.child(0);
36840
- const role = first2.type.spec.tableRole;
36841
- const schema = first2.type.schema, rows = [];
36842
- if (role == "row") {
36843
- for (let i2 = 0; i2 < content.childCount; i2++) {
36844
- let cells = content.child(i2).content;
36845
- const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36846
- const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36847
- if (left2 || right2)
36848
- cells = fitSlice(
36849
- tableNodeTypes(schema).row,
36850
- new Slice(cells, left2, right2)
36851
- ).content;
36852
- rows.push(cells);
36853
- }
36854
- } else if (role == "cell" || role == "header_cell") {
36855
- rows.push(
36856
- openStart || openEnd ? fitSlice(
36857
- tableNodeTypes(schema).row,
36858
- new Slice(content, openStart, openEnd)
36859
- ).content : content
36860
- );
36861
- } else {
36862
- return null;
36863
- }
36864
- return ensureRectangular(schema, rows);
36865
- }
36866
- function ensureRectangular(schema, rows) {
36867
- const widths = [];
36868
- for (let i2 = 0; i2 < rows.length; i2++) {
36869
- const row = rows[i2];
36870
- for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36871
- const { rowspan, colspan } = row.child(j2).attrs;
36872
- for (let r2 = i2; r2 < i2 + rowspan; r2++)
36873
- widths[r2] = (widths[r2] || 0) + colspan;
36874
- }
36875
- }
36876
- let width = 0;
36877
- for (let r2 = 0; r2 < widths.length; r2++)
36878
- width = Math.max(width, widths[r2]);
36879
- for (let r2 = 0; r2 < widths.length; r2++) {
36880
- if (r2 >= rows.length)
36881
- rows.push(Fragment.empty);
36882
- if (widths[r2] < width) {
36883
- const empty2 = tableNodeTypes(schema).cell.createAndFill();
36884
- const cells = [];
36885
- for (let i2 = widths[r2]; i2 < width; i2++) {
36886
- cells.push(empty2);
36887
- }
36888
- rows[r2] = rows[r2].append(Fragment.from(cells));
36889
- }
36890
- }
36891
- return { height: rows.length, width, rows };
36892
- }
36893
- function fitSlice(nodeType, slice4) {
36894
- const node = nodeType.createAndFill();
36895
- const tr2 = new Transform(node).replace(0, node.content.size, slice4);
36896
- return tr2.doc;
36897
- }
36898
- function clipCells({ width, height, rows }, newWidth, newHeight) {
36899
- if (width != newWidth) {
36900
- const added = [];
36901
- const newRows = [];
36902
- for (let row = 0; row < rows.length; row++) {
36903
- const frag = rows[row], cells = [];
36904
- for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
36905
- let cell = frag.child(i2 % frag.childCount);
36906
- if (col + cell.attrs.colspan > newWidth)
36907
- cell = cell.type.createChecked(
36908
- removeColSpan(
36909
- cell.attrs,
36910
- cell.attrs.colspan,
36911
- col + cell.attrs.colspan - newWidth
36912
- ),
36913
- cell.content
36914
- );
36915
- cells.push(cell);
36916
- col += cell.attrs.colspan;
36917
- for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
36918
- added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
36919
- }
36920
- newRows.push(Fragment.from(cells));
36921
- }
36922
- rows = newRows;
36923
- width = newWidth;
36924
- }
36925
- if (height != newHeight) {
36926
- const newRows = [];
36927
- for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
36928
- const cells = [], source = rows[i2 % height];
36929
- for (let j2 = 0; j2 < source.childCount; j2++) {
36930
- let cell = source.child(j2);
36931
- if (row + cell.attrs.rowspan > newHeight)
36932
- cell = cell.type.create(
36933
- {
36934
- ...cell.attrs,
36935
- rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
36936
- },
36937
- cell.content
36938
- );
36939
- cells.push(cell);
36940
- }
36941
- newRows.push(Fragment.from(cells));
36942
- }
36943
- rows = newRows;
36944
- height = newHeight;
36945
- }
36946
- return { width, height, rows };
36947
- }
36948
- function growTable(tr2, map4, table, start2, width, height, mapFrom) {
36949
- const schema = tr2.doc.type.schema;
36950
- const types = tableNodeTypes(schema);
36951
- let empty2;
36952
- let emptyHead;
36953
- if (width > map4.width) {
36954
- for (let row = 0, rowEnd = 0; row < map4.height; row++) {
36955
- const rowNode = table.child(row);
36956
- rowEnd += rowNode.nodeSize;
36957
- const cells = [];
36958
- let add2;
36959
- if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
36960
- add2 = empty2 || (empty2 = types.cell.createAndFill());
36961
- else
36962
- add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
36963
- for (let i2 = map4.width; i2 < width; i2++)
36964
- cells.push(add2);
36965
- tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
36966
- }
36967
- }
36968
- if (height > map4.height) {
36969
- const cells = [];
36970
- for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
36971
- const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
36972
- cells.push(
36973
- header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
36974
- );
36975
- }
36976
- const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
36977
- for (let i2 = map4.height; i2 < height; i2++)
36978
- rows.push(emptyRow);
36979
- tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
36980
- }
36981
- return !!(empty2 || emptyHead);
36982
- }
36983
- function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
36984
- if (top2 == 0 || top2 == map4.height)
36985
- return false;
36986
- let found2 = false;
36987
- for (let col = left2; col < right2; col++) {
36988
- const index2 = top2 * map4.width + col, pos = map4.map[index2];
36989
- if (map4.map[index2 - map4.width] == pos) {
36990
- found2 = true;
36991
- const cell = table.nodeAt(pos);
36992
- const { top: cellTop, left: cellLeft } = map4.findCell(pos);
36993
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
36994
- ...cell.attrs,
36995
- rowspan: top2 - cellTop
36996
- });
36997
- tr2.insert(
36998
- tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
36999
- cell.type.createAndFill({
37000
- ...cell.attrs,
37001
- rowspan: cellTop + cell.attrs.rowspan - top2
37002
- })
37003
- );
37004
- col += cell.attrs.colspan - 1;
37005
- }
37006
- }
37007
- return found2;
37008
- }
37009
- function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
37010
- if (left2 == 0 || left2 == map4.width)
37011
- return false;
37012
- let found2 = false;
37013
- for (let row = top2; row < bottom2; row++) {
37014
- const index2 = row * map4.width + left2, pos = map4.map[index2];
37015
- if (map4.map[index2 - 1] == pos) {
37016
- found2 = true;
37017
- const cell = table.nodeAt(pos);
37018
- const cellLeft = map4.colCount(pos);
37019
- const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
37020
- tr2.setNodeMarkup(
37021
- updatePos,
37022
- null,
37023
- removeColSpan(
37024
- cell.attrs,
37025
- left2 - cellLeft,
37026
- cell.attrs.colspan - (left2 - cellLeft)
37027
- )
37028
- );
37029
- tr2.insert(
37030
- updatePos + cell.nodeSize,
37031
- cell.type.createAndFill(
37032
- removeColSpan(cell.attrs, 0, left2 - cellLeft)
37033
- )
37034
- );
37035
- row += cell.attrs.rowspan - 1;
37036
- }
37037
- }
37038
- return found2;
37039
- }
37040
- function insertCells(state2, dispatch, tableStart, rect, cells) {
37041
- let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
37042
- if (!table) {
37043
- throw new Error("No table found");
37044
- }
37045
- let map4 = TableMap.get(table);
37046
- const { top: top2, left: left2 } = rect;
37047
- const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
37048
- const tr2 = state2.tr;
37049
- let mapFrom = 0;
37050
- function recomp() {
37051
- table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
37052
- if (!table) {
37053
- throw new Error("No table found");
37054
- }
37055
- map4 = TableMap.get(table);
37056
- mapFrom = tr2.mapping.maps.length;
36309
+ let map4 = TableMap.get(table);
36310
+ const { top: top2, left: left2 } = rect;
36311
+ const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
36312
+ const tr2 = state2.tr;
36313
+ let mapFrom = 0;
36314
+ function recomp() {
36315
+ table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
36316
+ if (!table) {
36317
+ throw new Error("No table found");
36318
+ }
36319
+ map4 = TableMap.get(table);
36320
+ mapFrom = tr2.mapping.maps.length;
37057
36321
  }
37058
36322
  if (growTable(tr2, map4, table, tableStart, right2, bottom2, mapFrom))
37059
36323
  recomp();
@@ -37164,6 +36428,26 @@ function shiftArrow(axis2, dir) {
37164
36428
  );
37165
36429
  };
37166
36430
  }
36431
+ function deleteCellSelection(state2, dispatch) {
36432
+ const sel = state2.selection;
36433
+ if (!(sel instanceof CellSelection))
36434
+ return false;
36435
+ if (dispatch) {
36436
+ const tr2 = state2.tr;
36437
+ const baseContent = tableNodeTypes(state2.schema).cell.createAndFill().content;
36438
+ sel.forEachCell((cell, pos) => {
36439
+ if (!cell.content.eq(baseContent))
36440
+ tr2.replace(
36441
+ tr2.mapping.map(pos + 1),
36442
+ tr2.mapping.map(pos + cell.nodeSize - 1),
36443
+ new Slice(baseContent, 0, 0)
36444
+ );
36445
+ });
36446
+ if (tr2.docChanged)
36447
+ dispatch(tr2);
36448
+ }
36449
+ return true;
36450
+ }
37167
36451
  function handleTripleClick(view, pos) {
37168
36452
  const doc2 = view.state.doc, $cell = cellAround(doc2.resolve(pos));
37169
36453
  if (!$cell)
@@ -37302,37 +36586,28 @@ function cellUnderMouse(view, event) {
37302
36586
  return mousePos ? cellAround(view.state.doc.resolve(mousePos.pos)) : null;
37303
36587
  }
37304
36588
  var TableView$1 = class TableView2 {
37305
- constructor(node, defaultCellMinWidth) {
36589
+ constructor(node, cellMinWidth) {
37306
36590
  this.node = node;
37307
- this.defaultCellMinWidth = defaultCellMinWidth;
36591
+ this.cellMinWidth = cellMinWidth;
37308
36592
  this.dom = document.createElement("div");
37309
36593
  this.dom.className = "tableWrapper";
37310
36594
  this.table = this.dom.appendChild(document.createElement("table"));
37311
- this.table.style.setProperty(
37312
- "--default-cell-min-width",
37313
- `${defaultCellMinWidth}px`
37314
- );
37315
36595
  this.colgroup = this.table.appendChild(document.createElement("colgroup"));
37316
- updateColumnsOnResize(node, this.colgroup, this.table, defaultCellMinWidth);
36596
+ updateColumnsOnResize(node, this.colgroup, this.table, cellMinWidth);
37317
36597
  this.contentDOM = this.table.appendChild(document.createElement("tbody"));
37318
36598
  }
37319
36599
  update(node) {
37320
36600
  if (node.type != this.node.type)
37321
36601
  return false;
37322
36602
  this.node = node;
37323
- updateColumnsOnResize(
37324
- node,
37325
- this.colgroup,
37326
- this.table,
37327
- this.defaultCellMinWidth
37328
- );
36603
+ updateColumnsOnResize(node, this.colgroup, this.table, this.cellMinWidth);
37329
36604
  return true;
37330
36605
  }
37331
36606
  ignoreMutation(record) {
37332
36607
  return record.type == "attributes" && (record.target == this.table || this.colgroup.contains(record.target));
37333
36608
  }
37334
36609
  };
37335
- function updateColumnsOnResize(node, colgroup, table, defaultCellMinWidth, overrideCol, overrideValue) {
36610
+ function updateColumnsOnResize(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37336
36611
  var _a2;
37337
36612
  let totalWidth = 0;
37338
36613
  let fixedWidth = true;
@@ -37345,17 +36620,14 @@ function updateColumnsOnResize(node, colgroup, table, defaultCellMinWidth, overr
37345
36620
  for (let j2 = 0; j2 < colspan; j2++, col++) {
37346
36621
  const hasWidth = overrideCol == col ? overrideValue : colwidth && colwidth[j2];
37347
36622
  const cssWidth = hasWidth ? hasWidth + "px" : "";
37348
- totalWidth += hasWidth || defaultCellMinWidth;
36623
+ totalWidth += hasWidth || cellMinWidth;
37349
36624
  if (!hasWidth)
37350
36625
  fixedWidth = false;
37351
36626
  if (!nextDOM) {
37352
- const col2 = document.createElement("col");
37353
- col2.style.width = cssWidth;
37354
- colgroup.appendChild(col2);
36627
+ colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37355
36628
  } else {
37356
- if (nextDOM.style.width != cssWidth) {
36629
+ if (nextDOM.style.width != cssWidth)
37357
36630
  nextDOM.style.width = cssWidth;
37358
- }
37359
36631
  nextDOM = nextDOM.nextSibling;
37360
36632
  }
37361
36633
  }
@@ -37379,7 +36651,6 @@ var columnResizingPluginKey = new PluginKey(
37379
36651
  function columnResizing({
37380
36652
  handleWidth = 5,
37381
36653
  cellMinWidth = 25,
37382
- defaultCellMinWidth = 100,
37383
36654
  View = TableView$1,
37384
36655
  lastColumnResizable = true
37385
36656
  } = {}) {
@@ -37392,7 +36663,7 @@ function columnResizing({
37392
36663
  const tableName = tableNodeTypes(state2.schema).table.name;
37393
36664
  if (View && nodeViews) {
37394
36665
  nodeViews[tableName] = (node, view) => {
37395
- return new View(node, defaultCellMinWidth, view);
36666
+ return new View(node, cellMinWidth, view);
37396
36667
  };
37397
36668
  }
37398
36669
  return new ResizeState(-1, false);
@@ -37408,13 +36679,19 @@ function columnResizing({
37408
36679
  },
37409
36680
  handleDOMEvents: {
37410
36681
  mousemove: (view, event) => {
37411
- handleMouseMove(view, event, handleWidth, lastColumnResizable);
36682
+ handleMouseMove(
36683
+ view,
36684
+ event,
36685
+ handleWidth,
36686
+ cellMinWidth,
36687
+ lastColumnResizable
36688
+ );
37412
36689
  },
37413
36690
  mouseleave: (view) => {
37414
36691
  handleMouseLeave(view);
37415
36692
  },
37416
36693
  mousedown: (view, event) => {
37417
- handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth);
36694
+ handleMouseDown2(view, event, cellMinWidth);
37418
36695
  }
37419
36696
  },
37420
36697
  decorations: (state2) => {
@@ -37450,7 +36727,7 @@ var ResizeState = class _ResizeState {
37450
36727
  return state2;
37451
36728
  }
37452
36729
  };
37453
- function handleMouseMove(view, event, handleWidth, lastColumnResizable) {
36730
+ function handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResizable) {
37454
36731
  const pluginState = columnResizingPluginKey.getState(view.state);
37455
36732
  if (!pluginState)
37456
36733
  return;
@@ -37475,194 +36752,718 @@ function handleMouseMove(view, event, handleWidth, lastColumnResizable) {
37475
36752
  return;
37476
36753
  }
37477
36754
  }
37478
- updateHandle(view, cell);
36755
+ updateHandle(view, cell);
36756
+ }
36757
+ }
36758
+ }
36759
+ function handleMouseLeave(view) {
36760
+ const pluginState = columnResizingPluginKey.getState(view.state);
36761
+ if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
36762
+ updateHandle(view, -1);
36763
+ }
36764
+ function handleMouseDown2(view, event, cellMinWidth) {
36765
+ var _a2;
36766
+ const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
36767
+ const pluginState = columnResizingPluginKey.getState(view.state);
36768
+ if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
36769
+ return false;
36770
+ const cell = view.state.doc.nodeAt(pluginState.activeHandle);
36771
+ const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
36772
+ view.dispatch(
36773
+ view.state.tr.setMeta(columnResizingPluginKey, {
36774
+ setDragging: { startX: event.clientX, startWidth: width }
36775
+ })
36776
+ );
36777
+ function finish(event2) {
36778
+ win.removeEventListener("mouseup", finish);
36779
+ win.removeEventListener("mousemove", move);
36780
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
36781
+ if (pluginState2 == null ? void 0 : pluginState2.dragging) {
36782
+ updateColumnWidth(
36783
+ view,
36784
+ pluginState2.activeHandle,
36785
+ draggedWidth(pluginState2.dragging, event2, cellMinWidth)
36786
+ );
36787
+ view.dispatch(
36788
+ view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
36789
+ );
36790
+ }
36791
+ }
36792
+ function move(event2) {
36793
+ if (!event2.which)
36794
+ return finish(event2);
36795
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
36796
+ if (!pluginState2)
36797
+ return;
36798
+ if (pluginState2.dragging) {
36799
+ const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
36800
+ displayColumnWidth(view, pluginState2.activeHandle, dragged, cellMinWidth);
36801
+ }
36802
+ }
36803
+ win.addEventListener("mouseup", finish);
36804
+ win.addEventListener("mousemove", move);
36805
+ event.preventDefault();
36806
+ return true;
36807
+ }
36808
+ function currentColWidth(view, cellPos, { colspan, colwidth }) {
36809
+ const width = colwidth && colwidth[colwidth.length - 1];
36810
+ if (width)
36811
+ return width;
36812
+ const dom = view.domAtPos(cellPos);
36813
+ const node = dom.node.childNodes[dom.offset];
36814
+ let domWidth = node.offsetWidth, parts = colspan;
36815
+ if (colwidth) {
36816
+ for (let i2 = 0; i2 < colspan; i2++)
36817
+ if (colwidth[i2]) {
36818
+ domWidth -= colwidth[i2];
36819
+ parts--;
36820
+ }
36821
+ }
36822
+ return domWidth / parts;
36823
+ }
36824
+ function domCellAround(target) {
36825
+ while (target && target.nodeName != "TD" && target.nodeName != "TH")
36826
+ target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
36827
+ return target;
36828
+ }
36829
+ function edgeCell(view, event, side, handleWidth) {
36830
+ const offset2 = side == "right" ? -handleWidth : handleWidth;
36831
+ const found2 = view.posAtCoords({
36832
+ left: event.clientX + offset2,
36833
+ top: event.clientY
36834
+ });
36835
+ if (!found2)
36836
+ return -1;
36837
+ const { pos } = found2;
36838
+ const $cell = cellAround(view.state.doc.resolve(pos));
36839
+ if (!$cell)
36840
+ return -1;
36841
+ if (side == "right")
36842
+ return $cell.pos;
36843
+ const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
36844
+ const index2 = map4.map.indexOf($cell.pos - start2);
36845
+ return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
36846
+ }
36847
+ function draggedWidth(dragging, event, cellMinWidth) {
36848
+ const offset2 = event.clientX - dragging.startX;
36849
+ return Math.max(cellMinWidth, dragging.startWidth + offset2);
36850
+ }
36851
+ function updateHandle(view, value) {
36852
+ view.dispatch(
36853
+ view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
36854
+ );
36855
+ }
36856
+ function updateColumnWidth(view, cell, width) {
36857
+ const $cell = view.state.doc.resolve(cell);
36858
+ const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
36859
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36860
+ const tr2 = view.state.tr;
36861
+ for (let row = 0; row < map4.height; row++) {
36862
+ const mapIndex = row * map4.width + col;
36863
+ if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
36864
+ continue;
36865
+ const pos = map4.map[mapIndex];
36866
+ const attrs = table.nodeAt(pos).attrs;
36867
+ const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
36868
+ if (attrs.colwidth && attrs.colwidth[index2] == width)
36869
+ continue;
36870
+ const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
36871
+ colwidth[index2] = width;
36872
+ tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
36873
+ }
36874
+ if (tr2.docChanged)
36875
+ view.dispatch(tr2);
36876
+ }
36877
+ function displayColumnWidth(view, cell, width, cellMinWidth) {
36878
+ const $cell = view.state.doc.resolve(cell);
36879
+ const table = $cell.node(-1), start2 = $cell.start(-1);
36880
+ const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36881
+ let dom = view.domAtPos($cell.start(-1)).node;
36882
+ while (dom && dom.nodeName != "TABLE") {
36883
+ dom = dom.parentNode;
36884
+ }
36885
+ if (!dom)
36886
+ return;
36887
+ updateColumnsOnResize(
36888
+ table,
36889
+ dom.firstChild,
36890
+ dom,
36891
+ cellMinWidth,
36892
+ col,
36893
+ width
36894
+ );
36895
+ }
36896
+ function zeroes(n2) {
36897
+ return Array(n2).fill(0);
36898
+ }
36899
+ function handleDecorations(state2, cell) {
36900
+ const decorations = [];
36901
+ const $cell = state2.doc.resolve(cell);
36902
+ const table = $cell.node(-1);
36903
+ if (!table) {
36904
+ return DecorationSet.empty;
36905
+ }
36906
+ const map4 = TableMap.get(table);
36907
+ const start2 = $cell.start(-1);
36908
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36909
+ for (let row = 0; row < map4.height; row++) {
36910
+ const index2 = col + row * map4.width;
36911
+ if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
36912
+ const cellPos = map4.map[index2];
36913
+ const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
36914
+ const dom = document.createElement("div");
36915
+ dom.className = "column-resize-handle";
36916
+ decorations.push(Decoration.widget(pos, dom));
36917
+ }
36918
+ }
36919
+ return DecorationSet.create(state2.doc, decorations);
36920
+ }
36921
+ function selectedRect(state2) {
36922
+ const sel = state2.selection;
36923
+ const $pos = selectionCell(state2);
36924
+ const table = $pos.node(-1);
36925
+ const tableStart = $pos.start(-1);
36926
+ const map4 = TableMap.get(table);
36927
+ const rect = sel instanceof CellSelection ? map4.rectBetween(
36928
+ sel.$anchorCell.pos - tableStart,
36929
+ sel.$headCell.pos - tableStart
36930
+ ) : map4.findCell($pos.pos - tableStart);
36931
+ return { ...rect, tableStart, map: map4, table };
36932
+ }
36933
+ function addColumn(tr2, { map: map4, tableStart, table }, col) {
36934
+ let refColumn = col > 0 ? -1 : 0;
36935
+ if (columnIsHeader(map4, table, col + refColumn)) {
36936
+ refColumn = col == 0 || col == map4.width ? null : 0;
36937
+ }
36938
+ for (let row = 0; row < map4.height; row++) {
36939
+ const index2 = row * map4.width + col;
36940
+ if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
36941
+ const pos = map4.map[index2];
36942
+ const cell = table.nodeAt(pos);
36943
+ tr2.setNodeMarkup(
36944
+ tr2.mapping.map(tableStart + pos),
36945
+ null,
36946
+ addColSpan(cell.attrs, col - map4.colCount(pos))
36947
+ );
36948
+ row += cell.attrs.rowspan - 1;
36949
+ } else {
36950
+ const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
36951
+ const pos = map4.positionAt(row, col, table);
36952
+ tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
36953
+ }
36954
+ }
36955
+ return tr2;
36956
+ }
36957
+ function addColumnBefore(state2, dispatch) {
36958
+ if (!isInTable(state2))
36959
+ return false;
36960
+ if (dispatch) {
36961
+ const rect = selectedRect(state2);
36962
+ dispatch(addColumn(state2.tr, rect, rect.left));
36963
+ }
36964
+ return true;
36965
+ }
36966
+ function addColumnAfter(state2, dispatch) {
36967
+ if (!isInTable(state2))
36968
+ return false;
36969
+ if (dispatch) {
36970
+ const rect = selectedRect(state2);
36971
+ dispatch(addColumn(state2.tr, rect, rect.right));
36972
+ }
36973
+ return true;
36974
+ }
36975
+ function removeColumn(tr2, { map: map4, table, tableStart }, col) {
36976
+ const mapStart = tr2.mapping.maps.length;
36977
+ for (let row = 0; row < map4.height; ) {
36978
+ const index2 = row * map4.width + col;
36979
+ const pos = map4.map[index2];
36980
+ const cell = table.nodeAt(pos);
36981
+ const attrs = cell.attrs;
36982
+ if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
36983
+ tr2.setNodeMarkup(
36984
+ tr2.mapping.slice(mapStart).map(tableStart + pos),
36985
+ null,
36986
+ removeColSpan(attrs, col - map4.colCount(pos))
36987
+ );
36988
+ } else {
36989
+ const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
36990
+ tr2.delete(start2, start2 + cell.nodeSize);
36991
+ }
36992
+ row += attrs.rowspan;
36993
+ }
36994
+ }
36995
+ function deleteColumn(state2, dispatch) {
36996
+ if (!isInTable(state2))
36997
+ return false;
36998
+ if (dispatch) {
36999
+ const rect = selectedRect(state2);
37000
+ const tr2 = state2.tr;
37001
+ if (rect.left == 0 && rect.right == rect.map.width)
37002
+ return false;
37003
+ for (let i2 = rect.right - 1; ; i2--) {
37004
+ removeColumn(tr2, rect, i2);
37005
+ if (i2 == rect.left)
37006
+ break;
37007
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37008
+ if (!table) {
37009
+ throw RangeError("No table found");
37010
+ }
37011
+ rect.table = table;
37012
+ rect.map = TableMap.get(table);
37013
+ }
37014
+ dispatch(tr2);
37015
+ }
37016
+ return true;
37017
+ }
37018
+ function rowIsHeader(map4, table, row) {
37019
+ var _a2;
37020
+ const headerCell = tableNodeTypes(table.type.schema).header_cell;
37021
+ for (let col = 0; col < map4.width; col++)
37022
+ if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
37023
+ return false;
37024
+ return true;
37025
+ }
37026
+ function addRow(tr2, { map: map4, tableStart, table }, row) {
37027
+ var _a2;
37028
+ let rowPos = tableStart;
37029
+ for (let i2 = 0; i2 < row; i2++)
37030
+ rowPos += table.child(i2).nodeSize;
37031
+ const cells = [];
37032
+ let refRow = row > 0 ? -1 : 0;
37033
+ if (rowIsHeader(map4, table, row + refRow))
37034
+ refRow = row == 0 || row == map4.height ? null : 0;
37035
+ for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
37036
+ if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
37037
+ const pos = map4.map[index2];
37038
+ const attrs = table.nodeAt(pos).attrs;
37039
+ tr2.setNodeMarkup(tableStart + pos, null, {
37040
+ ...attrs,
37041
+ rowspan: attrs.rowspan + 1
37042
+ });
37043
+ col += attrs.colspan - 1;
37044
+ } else {
37045
+ const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
37046
+ const node = type3 == null ? void 0 : type3.createAndFill();
37047
+ if (node)
37048
+ cells.push(node);
37049
+ }
37050
+ }
37051
+ tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
37052
+ return tr2;
37053
+ }
37054
+ function addRowBefore(state2, dispatch) {
37055
+ if (!isInTable(state2))
37056
+ return false;
37057
+ if (dispatch) {
37058
+ const rect = selectedRect(state2);
37059
+ dispatch(addRow(state2.tr, rect, rect.top));
37060
+ }
37061
+ return true;
37062
+ }
37063
+ function addRowAfter(state2, dispatch) {
37064
+ if (!isInTable(state2))
37065
+ return false;
37066
+ if (dispatch) {
37067
+ const rect = selectedRect(state2);
37068
+ dispatch(addRow(state2.tr, rect, rect.bottom));
37069
+ }
37070
+ return true;
37071
+ }
37072
+ function removeRow(tr2, { map: map4, table, tableStart }, row) {
37073
+ let rowPos = 0;
37074
+ for (let i2 = 0; i2 < row; i2++)
37075
+ rowPos += table.child(i2).nodeSize;
37076
+ const nextRow = rowPos + table.child(row).nodeSize;
37077
+ const mapFrom = tr2.mapping.maps.length;
37078
+ tr2.delete(rowPos + tableStart, nextRow + tableStart);
37079
+ const seen = /* @__PURE__ */ new Set();
37080
+ for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
37081
+ const pos = map4.map[index2];
37082
+ if (seen.has(pos))
37083
+ continue;
37084
+ seen.add(pos);
37085
+ if (row > 0 && pos == map4.map[index2 - map4.width]) {
37086
+ const attrs = table.nodeAt(pos).attrs;
37087
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
37088
+ ...attrs,
37089
+ rowspan: attrs.rowspan - 1
37090
+ });
37091
+ col += attrs.colspan - 1;
37092
+ } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
37093
+ const cell = table.nodeAt(pos);
37094
+ const attrs = cell.attrs;
37095
+ const copy2 = cell.type.create(
37096
+ { ...attrs, rowspan: cell.attrs.rowspan - 1 },
37097
+ cell.content
37098
+ );
37099
+ const newPos = map4.positionAt(row + 1, col, table);
37100
+ tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
37101
+ col += attrs.colspan - 1;
37102
+ }
37103
+ }
37104
+ }
37105
+ function deleteRow(state2, dispatch) {
37106
+ if (!isInTable(state2))
37107
+ return false;
37108
+ if (dispatch) {
37109
+ const rect = selectedRect(state2), tr2 = state2.tr;
37110
+ if (rect.top == 0 && rect.bottom == rect.map.height)
37111
+ return false;
37112
+ for (let i2 = rect.bottom - 1; ; i2--) {
37113
+ removeRow(tr2, rect, i2);
37114
+ if (i2 == rect.top)
37115
+ break;
37116
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37117
+ if (!table) {
37118
+ throw RangeError("No table found");
37119
+ }
37120
+ rect.table = table;
37121
+ rect.map = TableMap.get(rect.table);
37122
+ }
37123
+ dispatch(tr2);
37124
+ }
37125
+ return true;
37126
+ }
37127
+ function isEmpty(cell) {
37128
+ const c2 = cell.content;
37129
+ return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
37130
+ }
37131
+ function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
37132
+ let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
37133
+ let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
37134
+ for (let i2 = rect.top; i2 < rect.bottom; i2++) {
37135
+ if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
37136
+ return true;
37137
+ indexLeft += width;
37138
+ indexRight += width;
37139
+ }
37140
+ for (let i2 = rect.left; i2 < rect.right; i2++) {
37141
+ if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
37142
+ return true;
37143
+ indexTop++;
37144
+ indexBottom++;
37145
+ }
37146
+ return false;
37147
+ }
37148
+ function mergeCells(state2, dispatch) {
37149
+ const sel = state2.selection;
37150
+ if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
37151
+ return false;
37152
+ const rect = selectedRect(state2), { map: map4 } = rect;
37153
+ if (cellsOverlapRectangle(map4, rect))
37154
+ return false;
37155
+ if (dispatch) {
37156
+ const tr2 = state2.tr;
37157
+ const seen = {};
37158
+ let content = Fragment.empty;
37159
+ let mergedPos;
37160
+ let mergedCell;
37161
+ for (let row = rect.top; row < rect.bottom; row++) {
37162
+ for (let col = rect.left; col < rect.right; col++) {
37163
+ const cellPos = map4.map[row * map4.width + col];
37164
+ const cell = rect.table.nodeAt(cellPos);
37165
+ if (seen[cellPos] || !cell)
37166
+ continue;
37167
+ seen[cellPos] = true;
37168
+ if (mergedPos == null) {
37169
+ mergedPos = cellPos;
37170
+ mergedCell = cell;
37171
+ } else {
37172
+ if (!isEmpty(cell))
37173
+ content = content.append(cell.content);
37174
+ const mapped = tr2.mapping.map(cellPos + rect.tableStart);
37175
+ tr2.delete(mapped, mapped + cell.nodeSize);
37176
+ }
37177
+ }
37178
+ }
37179
+ if (mergedPos == null || mergedCell == null) {
37180
+ return true;
37181
+ }
37182
+ tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
37183
+ ...addColSpan(
37184
+ mergedCell.attrs,
37185
+ mergedCell.attrs.colspan,
37186
+ rect.right - rect.left - mergedCell.attrs.colspan
37187
+ ),
37188
+ rowspan: rect.bottom - rect.top
37189
+ });
37190
+ if (content.size) {
37191
+ const end2 = mergedPos + 1 + mergedCell.content.size;
37192
+ const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
37193
+ tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
37194
+ }
37195
+ tr2.setSelection(
37196
+ new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
37197
+ );
37198
+ dispatch(tr2);
37199
+ }
37200
+ return true;
37201
+ }
37202
+ function splitCell(state2, dispatch) {
37203
+ const nodeTypes = tableNodeTypes(state2.schema);
37204
+ return splitCellWithType(({ node }) => {
37205
+ return nodeTypes[node.type.spec.tableRole];
37206
+ })(state2, dispatch);
37207
+ }
37208
+ function splitCellWithType(getCellType) {
37209
+ return (state2, dispatch) => {
37210
+ var _a2;
37211
+ const sel = state2.selection;
37212
+ let cellNode;
37213
+ let cellPos;
37214
+ if (!(sel instanceof CellSelection)) {
37215
+ cellNode = cellWrapping(sel.$from);
37216
+ if (!cellNode)
37217
+ return false;
37218
+ cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
37219
+ } else {
37220
+ if (sel.$anchorCell.pos != sel.$headCell.pos)
37221
+ return false;
37222
+ cellNode = sel.$anchorCell.nodeAfter;
37223
+ cellPos = sel.$anchorCell.pos;
37224
+ }
37225
+ if (cellNode == null || cellPos == null) {
37226
+ return false;
37227
+ }
37228
+ if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
37229
+ return false;
37230
+ }
37231
+ if (dispatch) {
37232
+ let baseAttrs = cellNode.attrs;
37233
+ const attrs = [];
37234
+ const colwidth = baseAttrs.colwidth;
37235
+ if (baseAttrs.rowspan > 1)
37236
+ baseAttrs = { ...baseAttrs, rowspan: 1 };
37237
+ if (baseAttrs.colspan > 1)
37238
+ baseAttrs = { ...baseAttrs, colspan: 1 };
37239
+ const rect = selectedRect(state2), tr2 = state2.tr;
37240
+ for (let i2 = 0; i2 < rect.right - rect.left; i2++)
37241
+ attrs.push(
37242
+ colwidth ? {
37243
+ ...baseAttrs,
37244
+ colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
37245
+ } : baseAttrs
37246
+ );
37247
+ let lastCell;
37248
+ for (let row = rect.top; row < rect.bottom; row++) {
37249
+ let pos = rect.map.positionAt(row, rect.left, rect.table);
37250
+ if (row == rect.top)
37251
+ pos += cellNode.nodeSize;
37252
+ for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
37253
+ if (col == rect.left && row == rect.top)
37254
+ continue;
37255
+ tr2.insert(
37256
+ lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
37257
+ getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
37258
+ );
37259
+ }
37260
+ }
37261
+ tr2.setNodeMarkup(
37262
+ cellPos,
37263
+ getCellType({ node: cellNode, row: rect.top, col: rect.left }),
37264
+ attrs[0]
37265
+ );
37266
+ if (sel instanceof CellSelection)
37267
+ tr2.setSelection(
37268
+ new CellSelection(
37269
+ tr2.doc.resolve(sel.$anchorCell.pos),
37270
+ lastCell ? tr2.doc.resolve(lastCell) : void 0
37271
+ )
37272
+ );
37273
+ dispatch(tr2);
37479
37274
  }
37480
- }
37275
+ return true;
37276
+ };
37481
37277
  }
37482
- function handleMouseLeave(view) {
37483
- const pluginState = columnResizingPluginKey.getState(view.state);
37484
- if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
37485
- updateHandle(view, -1);
37278
+ function setCellAttr(name, value) {
37279
+ return function(state2, dispatch) {
37280
+ if (!isInTable(state2))
37281
+ return false;
37282
+ const $cell = selectionCell(state2);
37283
+ if ($cell.nodeAfter.attrs[name] === value)
37284
+ return false;
37285
+ if (dispatch) {
37286
+ const tr2 = state2.tr;
37287
+ if (state2.selection instanceof CellSelection)
37288
+ state2.selection.forEachCell((node, pos) => {
37289
+ if (node.attrs[name] !== value)
37290
+ tr2.setNodeMarkup(pos, null, {
37291
+ ...node.attrs,
37292
+ [name]: value
37293
+ });
37294
+ });
37295
+ else
37296
+ tr2.setNodeMarkup($cell.pos, null, {
37297
+ ...$cell.nodeAfter.attrs,
37298
+ [name]: value
37299
+ });
37300
+ dispatch(tr2);
37301
+ }
37302
+ return true;
37303
+ };
37486
37304
  }
37487
- function handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth) {
37488
- var _a2;
37489
- const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
37490
- const pluginState = columnResizingPluginKey.getState(view.state);
37491
- if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
37492
- return false;
37493
- const cell = view.state.doc.nodeAt(pluginState.activeHandle);
37494
- const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
37495
- view.dispatch(
37496
- view.state.tr.setMeta(columnResizingPluginKey, {
37497
- setDragging: { startX: event.clientX, startWidth: width }
37498
- })
37499
- );
37500
- function finish(event2) {
37501
- win.removeEventListener("mouseup", finish);
37502
- win.removeEventListener("mousemove", move);
37503
- const pluginState2 = columnResizingPluginKey.getState(view.state);
37504
- if (pluginState2 == null ? void 0 : pluginState2.dragging) {
37505
- updateColumnWidth(
37506
- view,
37507
- pluginState2.activeHandle,
37508
- draggedWidth(pluginState2.dragging, event2, cellMinWidth)
37509
- );
37510
- view.dispatch(
37511
- view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
37305
+ function deprecated_toggleHeader(type3) {
37306
+ return function(state2, dispatch) {
37307
+ if (!isInTable(state2))
37308
+ return false;
37309
+ if (dispatch) {
37310
+ const types = tableNodeTypes(state2.schema);
37311
+ const rect = selectedRect(state2), tr2 = state2.tr;
37312
+ const cells = rect.map.cellsInRect(
37313
+ type3 == "column" ? {
37314
+ left: rect.left,
37315
+ top: 0,
37316
+ right: rect.right,
37317
+ bottom: rect.map.height
37318
+ } : type3 == "row" ? {
37319
+ left: 0,
37320
+ top: rect.top,
37321
+ right: rect.map.width,
37322
+ bottom: rect.bottom
37323
+ } : rect
37512
37324
  );
37325
+ const nodes = cells.map((pos) => rect.table.nodeAt(pos));
37326
+ for (let i2 = 0; i2 < cells.length; i2++)
37327
+ if (nodes[i2].type == types.header_cell)
37328
+ tr2.setNodeMarkup(
37329
+ rect.tableStart + cells[i2],
37330
+ types.cell,
37331
+ nodes[i2].attrs
37332
+ );
37333
+ if (tr2.steps.length == 0)
37334
+ for (let i2 = 0; i2 < cells.length; i2++)
37335
+ tr2.setNodeMarkup(
37336
+ rect.tableStart + cells[i2],
37337
+ types.header_cell,
37338
+ nodes[i2].attrs
37339
+ );
37340
+ dispatch(tr2);
37513
37341
  }
37514
- }
37515
- function move(event2) {
37516
- if (!event2.which)
37517
- return finish(event2);
37518
- const pluginState2 = columnResizingPluginKey.getState(view.state);
37519
- if (!pluginState2)
37520
- return;
37521
- if (pluginState2.dragging) {
37522
- const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
37523
- displayColumnWidth(
37524
- view,
37525
- pluginState2.activeHandle,
37526
- dragged,
37527
- defaultCellMinWidth
37528
- );
37342
+ return true;
37343
+ };
37344
+ }
37345
+ function isHeaderEnabledByType(type3, rect, types) {
37346
+ const cellPositions = rect.map.cellsInRect({
37347
+ left: 0,
37348
+ top: 0,
37349
+ right: type3 == "row" ? rect.map.width : 1,
37350
+ bottom: type3 == "column" ? rect.map.height : 1
37351
+ });
37352
+ for (let i2 = 0; i2 < cellPositions.length; i2++) {
37353
+ const cell = rect.table.nodeAt(cellPositions[i2]);
37354
+ if (cell && cell.type !== types.header_cell) {
37355
+ return false;
37529
37356
  }
37530
37357
  }
37531
- displayColumnWidth(
37532
- view,
37533
- pluginState.activeHandle,
37534
- width,
37535
- defaultCellMinWidth
37536
- );
37537
- win.addEventListener("mouseup", finish);
37538
- win.addEventListener("mousemove", move);
37539
- event.preventDefault();
37540
37358
  return true;
37541
37359
  }
37542
- function currentColWidth(view, cellPos, { colspan, colwidth }) {
37543
- const width = colwidth && colwidth[colwidth.length - 1];
37544
- if (width)
37545
- return width;
37546
- const dom = view.domAtPos(cellPos);
37547
- const node = dom.node.childNodes[dom.offset];
37548
- let domWidth = node.offsetWidth, parts = colspan;
37549
- if (colwidth) {
37550
- for (let i2 = 0; i2 < colspan; i2++)
37551
- if (colwidth[i2]) {
37552
- domWidth -= colwidth[i2];
37553
- parts--;
37554
- }
37555
- }
37556
- return domWidth / parts;
37557
- }
37558
- function domCellAround(target) {
37559
- while (target && target.nodeName != "TD" && target.nodeName != "TH")
37560
- target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
37561
- return target;
37562
- }
37563
- function edgeCell(view, event, side, handleWidth) {
37564
- const offset2 = side == "right" ? -handleWidth : handleWidth;
37565
- const found2 = view.posAtCoords({
37566
- left: event.clientX + offset2,
37567
- top: event.clientY
37568
- });
37569
- if (!found2)
37570
- return -1;
37571
- const { pos } = found2;
37572
- const $cell = cellAround(view.state.doc.resolve(pos));
37573
- if (!$cell)
37574
- return -1;
37575
- if (side == "right")
37576
- return $cell.pos;
37577
- const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
37578
- const index2 = map4.map.indexOf($cell.pos - start2);
37579
- return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
37580
- }
37581
- function draggedWidth(dragging, event, resizeMinWidth) {
37582
- const offset2 = event.clientX - dragging.startX;
37583
- return Math.max(resizeMinWidth, dragging.startWidth + offset2);
37584
- }
37585
- function updateHandle(view, value) {
37586
- view.dispatch(
37587
- view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
37588
- );
37589
- }
37590
- function updateColumnWidth(view, cell, width) {
37591
- const $cell = view.state.doc.resolve(cell);
37592
- const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
37593
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37594
- const tr2 = view.state.tr;
37595
- for (let row = 0; row < map4.height; row++) {
37596
- const mapIndex = row * map4.width + col;
37597
- if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
37598
- continue;
37599
- const pos = map4.map[mapIndex];
37600
- const attrs = table.nodeAt(pos).attrs;
37601
- const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
37602
- if (attrs.colwidth && attrs.colwidth[index2] == width)
37603
- continue;
37604
- const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
37605
- colwidth[index2] = width;
37606
- tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
37607
- }
37608
- if (tr2.docChanged)
37609
- view.dispatch(tr2);
37360
+ function toggleHeader(type3, options) {
37361
+ options = options || { useDeprecatedLogic: false };
37362
+ if (options.useDeprecatedLogic)
37363
+ return deprecated_toggleHeader(type3);
37364
+ return function(state2, dispatch) {
37365
+ if (!isInTable(state2))
37366
+ return false;
37367
+ if (dispatch) {
37368
+ const types = tableNodeTypes(state2.schema);
37369
+ const rect = selectedRect(state2), tr2 = state2.tr;
37370
+ const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
37371
+ const isHeaderColumnEnabled = isHeaderEnabledByType(
37372
+ "column",
37373
+ rect,
37374
+ types
37375
+ );
37376
+ const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
37377
+ const selectionStartsAt = isHeaderEnabled ? 1 : 0;
37378
+ const cellsRect = type3 == "column" ? {
37379
+ left: 0,
37380
+ top: selectionStartsAt,
37381
+ right: 1,
37382
+ bottom: rect.map.height
37383
+ } : type3 == "row" ? {
37384
+ left: selectionStartsAt,
37385
+ top: 0,
37386
+ right: rect.map.width,
37387
+ bottom: 1
37388
+ } : rect;
37389
+ const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
37390
+ rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
37391
+ const cellPos = relativeCellPos + rect.tableStart;
37392
+ const cell = tr2.doc.nodeAt(cellPos);
37393
+ if (cell) {
37394
+ tr2.setNodeMarkup(cellPos, newType, cell.attrs);
37395
+ }
37396
+ });
37397
+ dispatch(tr2);
37398
+ }
37399
+ return true;
37400
+ };
37610
37401
  }
37611
- function displayColumnWidth(view, cell, width, defaultCellMinWidth) {
37612
- const $cell = view.state.doc.resolve(cell);
37613
- const table = $cell.node(-1), start2 = $cell.start(-1);
37614
- const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37615
- let dom = view.domAtPos($cell.start(-1)).node;
37616
- while (dom && dom.nodeName != "TABLE") {
37617
- dom = dom.parentNode;
37402
+ toggleHeader("row", {
37403
+ useDeprecatedLogic: true
37404
+ });
37405
+ toggleHeader("column", {
37406
+ useDeprecatedLogic: true
37407
+ });
37408
+ var toggleHeaderCell = toggleHeader("cell", {
37409
+ useDeprecatedLogic: true
37410
+ });
37411
+ function findNextCell($cell, dir) {
37412
+ if (dir < 0) {
37413
+ const before = $cell.nodeBefore;
37414
+ if (before)
37415
+ return $cell.pos - before.nodeSize;
37416
+ for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
37417
+ const rowNode = $cell.node(-1).child(row);
37418
+ const lastChild2 = rowNode.lastChild;
37419
+ if (lastChild2) {
37420
+ return rowEnd - 1 - lastChild2.nodeSize;
37421
+ }
37422
+ rowEnd -= rowNode.nodeSize;
37423
+ }
37424
+ } else {
37425
+ if ($cell.index() < $cell.parent.childCount - 1) {
37426
+ return $cell.pos + $cell.nodeAfter.nodeSize;
37427
+ }
37428
+ const table = $cell.node(-1);
37429
+ for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
37430
+ const rowNode = table.child(row);
37431
+ if (rowNode.childCount)
37432
+ return rowStart + 1;
37433
+ rowStart += rowNode.nodeSize;
37434
+ }
37618
37435
  }
37619
- if (!dom)
37620
- return;
37621
- updateColumnsOnResize(
37622
- table,
37623
- dom.firstChild,
37624
- dom,
37625
- defaultCellMinWidth,
37626
- col,
37627
- width
37628
- );
37436
+ return null;
37629
37437
  }
37630
- function zeroes(n2) {
37631
- return Array(n2).fill(0);
37438
+ function goToNextCell(direction) {
37439
+ return function(state2, dispatch) {
37440
+ if (!isInTable(state2))
37441
+ return false;
37442
+ const cell = findNextCell(selectionCell(state2), direction);
37443
+ if (cell == null)
37444
+ return false;
37445
+ if (dispatch) {
37446
+ const $cell = state2.doc.resolve(cell);
37447
+ dispatch(
37448
+ state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
37449
+ );
37450
+ }
37451
+ return true;
37452
+ };
37632
37453
  }
37633
- function handleDecorations(state2, cell) {
37634
- var _a2;
37635
- const decorations = [];
37636
- const $cell = state2.doc.resolve(cell);
37637
- const table = $cell.node(-1);
37638
- if (!table) {
37639
- return DecorationSet.empty;
37640
- }
37641
- const map4 = TableMap.get(table);
37642
- const start2 = $cell.start(-1);
37643
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37644
- for (let row = 0; row < map4.height; row++) {
37645
- const index2 = col + row * map4.width;
37646
- if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
37647
- const cellPos = map4.map[index2];
37648
- const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
37649
- const dom = document.createElement("div");
37650
- dom.className = "column-resize-handle";
37651
- if ((_a2 = columnResizingPluginKey.getState(state2)) == null ? void 0 : _a2.dragging) {
37652
- decorations.push(
37653
- Decoration.node(
37654
- start2 + cellPos,
37655
- start2 + cellPos + table.nodeAt(cellPos).nodeSize,
37656
- {
37657
- class: "column-resize-dragging"
37658
- }
37659
- )
37454
+ function deleteTable(state2, dispatch) {
37455
+ const $pos = state2.selection.$anchor;
37456
+ for (let d2 = $pos.depth; d2 > 0; d2--) {
37457
+ const node = $pos.node(d2);
37458
+ if (node.type.spec.tableRole == "table") {
37459
+ if (dispatch)
37460
+ dispatch(
37461
+ state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
37660
37462
  );
37661
- }
37662
- decorations.push(Decoration.widget(pos, dom));
37463
+ return true;
37663
37464
  }
37664
37465
  }
37665
- return DecorationSet.create(state2.doc, decorations);
37466
+ return false;
37666
37467
  }
37667
37468
  function tableEditing({
37668
37469
  allowTableNodeSelection = false
@@ -37707,46 +37508,33 @@ function tableEditing({
37707
37508
  }
37708
37509
  });
37709
37510
  }
37710
- function getColStyleDeclaration(minWidth, width) {
37711
- if (width) {
37712
- return ["width", `${Math.max(width, minWidth)}px`];
37713
- }
37714
- return ["min-width", `${minWidth}px`];
37715
- }
37716
37511
  function updateColumns(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37717
- var _a2;
37718
37512
  let totalWidth = 0;
37719
37513
  let fixedWidth = true;
37720
37514
  let nextDOM = colgroup.firstChild;
37721
37515
  const row = node.firstChild;
37722
- if (row !== null) {
37723
- for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37724
- const { colspan, colwidth } = row.child(i2).attrs;
37725
- for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37726
- const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37727
- const cssWidth = hasWidth ? `${hasWidth}px` : "";
37728
- totalWidth += hasWidth || cellMinWidth;
37729
- if (!hasWidth) {
37730
- fixedWidth = false;
37731
- }
37732
- if (!nextDOM) {
37733
- const colElement = document.createElement("col");
37734
- const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37735
- colElement.style.setProperty(propertyKey, propertyValue);
37736
- colgroup.appendChild(colElement);
37737
- } else {
37738
- if (nextDOM.style.width !== cssWidth) {
37739
- const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37740
- nextDOM.style.setProperty(propertyKey, propertyValue);
37741
- }
37742
- nextDOM = nextDOM.nextSibling;
37516
+ for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37517
+ const { colspan, colwidth } = row.child(i2).attrs;
37518
+ for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37519
+ const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37520
+ const cssWidth = hasWidth ? `${hasWidth}px` : "";
37521
+ totalWidth += hasWidth || cellMinWidth;
37522
+ if (!hasWidth) {
37523
+ fixedWidth = false;
37524
+ }
37525
+ if (!nextDOM) {
37526
+ colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37527
+ } else {
37528
+ if (nextDOM.style.width !== cssWidth) {
37529
+ nextDOM.style.width = cssWidth;
37743
37530
  }
37531
+ nextDOM = nextDOM.nextSibling;
37744
37532
  }
37745
37533
  }
37746
37534
  }
37747
37535
  while (nextDOM) {
37748
37536
  const after = nextDOM.nextSibling;
37749
- (_a2 = nextDOM.parentNode) === null || _a2 === void 0 ? void 0 : _a2.removeChild(nextDOM);
37537
+ nextDOM.parentNode.removeChild(nextDOM);
37750
37538
  nextDOM = after;
37751
37539
  }
37752
37540
  if (fixedWidth) {
@@ -37792,15 +37580,12 @@ function createColGroup(node, cellMinWidth, overrideCol, overrideValue) {
37792
37580
  const { colspan, colwidth } = row.child(i2).attrs;
37793
37581
  for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37794
37582
  const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37583
+ const cssWidth = hasWidth ? `${hasWidth}px` : "";
37795
37584
  totalWidth += hasWidth || cellMinWidth;
37796
37585
  if (!hasWidth) {
37797
37586
  fixedWidth = false;
37798
37587
  }
37799
- const [property, value] = getColStyleDeclaration(cellMinWidth, hasWidth);
37800
- cols.push([
37801
- "col",
37802
- { style: `${property}: ${value}` }
37803
- ]);
37588
+ cols.push(["col", cssWidth ? { style: `width: ${cssWidth}` } : {}]);
37804
37589
  }
37805
37590
  }
37806
37591
  const tableWidth = fixedWidth ? `${totalWidth}px` : "";
@@ -38009,7 +37794,6 @@ const Table = Node$1.create({
38009
37794
  columnResizing({
38010
37795
  handleWidth: this.options.handleWidth,
38011
37796
  cellMinWidth: this.options.cellMinWidth,
38012
- defaultCellMinWidth: this.options.cellMinWidth,
38013
37797
  View: this.options.View,
38014
37798
  lastColumnResizable: this.options.lastColumnResizable
38015
37799
  })
@@ -38050,7 +37834,7 @@ const TableCell = Node$1.create({
38050
37834
  default: null,
38051
37835
  parseHTML: (element) => {
38052
37836
  const colwidth = element.getAttribute("colwidth");
38053
- const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37837
+ const value = colwidth ? [parseInt(colwidth, 10)] : null;
38054
37838
  return value;
38055
37839
  }
38056
37840
  }
@@ -38087,7 +37871,7 @@ const TableHeader = Node$1.create({
38087
37871
  default: null,
38088
37872
  parseHTML: (element) => {
38089
37873
  const colwidth = element.getAttribute("colwidth");
38090
- const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37874
+ const value = colwidth ? [parseInt(colwidth, 10)] : null;
38091
37875
  return value;
38092
37876
  }
38093
37877
  }
@@ -38404,10 +38188,6 @@ const Bold = Mark.create({
38404
38188
  tag: "b",
38405
38189
  getAttrs: (node) => node.style.fontWeight !== "normal" && null
38406
38190
  },
38407
- {
38408
- style: "font-weight=400",
38409
- clearMark: (mark) => mark.type.name === this.name
38410
- },
38411
38191
  {
38412
38192
  style: "font-weight",
38413
38193
  getAttrs: (value) => /^(bold(er)?|[5-9]\d{2,})$/.test(value) && null
@@ -38461,8 +38241,73 @@ const Bold = Mark.create({
38461
38241
  ];
38462
38242
  }
38463
38243
  });
38464
- const ListItemName$1 = "listItem";
38465
- const TextStyleName$1 = "textStyle";
38244
+ const ListItem$2 = Node$1.create({
38245
+ name: "listItem",
38246
+ addOptions() {
38247
+ return {
38248
+ HTMLAttributes: {},
38249
+ bulletListTypeName: "bulletList",
38250
+ orderedListTypeName: "orderedList"
38251
+ };
38252
+ },
38253
+ content: "paragraph block*",
38254
+ defining: true,
38255
+ parseHTML() {
38256
+ return [
38257
+ {
38258
+ tag: "li"
38259
+ }
38260
+ ];
38261
+ },
38262
+ renderHTML({ HTMLAttributes }) {
38263
+ return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38264
+ },
38265
+ addKeyboardShortcuts() {
38266
+ return {
38267
+ Enter: () => this.editor.commands.splitListItem(this.name),
38268
+ Tab: () => this.editor.commands.sinkListItem(this.name),
38269
+ "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
38270
+ };
38271
+ }
38272
+ });
38273
+ const TextStyle$1 = Mark.create({
38274
+ name: "textStyle",
38275
+ priority: 101,
38276
+ addOptions() {
38277
+ return {
38278
+ HTMLAttributes: {}
38279
+ };
38280
+ },
38281
+ parseHTML() {
38282
+ return [
38283
+ {
38284
+ tag: "span",
38285
+ getAttrs: (element) => {
38286
+ const hasStyles = element.hasAttribute("style");
38287
+ if (!hasStyles) {
38288
+ return false;
38289
+ }
38290
+ return {};
38291
+ }
38292
+ }
38293
+ ];
38294
+ },
38295
+ renderHTML({ HTMLAttributes }) {
38296
+ return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38297
+ },
38298
+ addCommands() {
38299
+ return {
38300
+ removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
38301
+ const attributes = getMarkAttributes(state2, this.type);
38302
+ const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
38303
+ if (hasStyles) {
38304
+ return true;
38305
+ }
38306
+ return commands2.unsetMark(this.name);
38307
+ }
38308
+ };
38309
+ }
38310
+ });
38466
38311
  const inputRegex$3 = /^\s*([-+*])\s$/;
38467
38312
  const BulletList = Node$1.create({
38468
38313
  name: "bulletList",
@@ -38490,7 +38335,7 @@ const BulletList = Node$1.create({
38490
38335
  return {
38491
38336
  toggleBulletList: () => ({ commands: commands2, chain }) => {
38492
38337
  if (this.options.keepAttributes) {
38493
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName$1, this.editor.getAttributes(TextStyleName$1)).run();
38338
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem$2.name, this.editor.getAttributes(TextStyle$1.name)).run();
38494
38339
  }
38495
38340
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
38496
38341
  }
@@ -38513,7 +38358,7 @@ const BulletList = Node$1.create({
38513
38358
  keepMarks: this.options.keepMarks,
38514
38359
  keepAttributes: this.options.keepAttributes,
38515
38360
  getAttributes: () => {
38516
- return this.editor.getAttributes(TextStyleName$1);
38361
+ return this.editor.getAttributes(TextStyle$1.name);
38517
38362
  },
38518
38363
  editor: this.editor
38519
38364
  });
@@ -38523,8 +38368,8 @@ const BulletList = Node$1.create({
38523
38368
  ];
38524
38369
  }
38525
38370
  });
38526
- const inputRegex$2 = new RegExp("(?<!`)`([^`]+)`(?!`)");
38527
- const pasteRegex$1 = new RegExp("(?<!`)`([^`]+)`(?!`)", "g");
38371
+ const inputRegex$2 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))$/;
38372
+ const pasteRegex$1 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))/g;
38528
38373
  const Code = Mark.create({
38529
38374
  name: "code",
38530
38375
  addOptions() {
@@ -39151,7 +38996,6 @@ const HardBreak = Node$1.create({
39151
38996
  inline: true,
39152
38997
  group: "inline",
39153
38998
  selectable: false,
39154
- linebreakReplacement: true,
39155
38999
  parseHTML() {
39156
39000
  return [
39157
39001
  { tag: "br" }
@@ -39913,10 +39757,6 @@ const Italic = Mark.create({
39913
39757
  tag: "i",
39914
39758
  getAttrs: (node) => node.style.fontStyle !== "normal" && null
39915
39759
  },
39916
- {
39917
- style: "font-style=normal",
39918
- clearMark: (mark) => mark.type.name === this.name
39919
- },
39920
39760
  {
39921
39761
  style: "font-style=italic"
39922
39762
  }
@@ -39969,6 +39809,35 @@ const Italic = Mark.create({
39969
39809
  ];
39970
39810
  }
39971
39811
  });
39812
+ const ListItem$1 = Node$1.create({
39813
+ name: "listItem",
39814
+ addOptions() {
39815
+ return {
39816
+ HTMLAttributes: {},
39817
+ bulletListTypeName: "bulletList",
39818
+ orderedListTypeName: "orderedList"
39819
+ };
39820
+ },
39821
+ content: "paragraph block*",
39822
+ defining: true,
39823
+ parseHTML() {
39824
+ return [
39825
+ {
39826
+ tag: "li"
39827
+ }
39828
+ ];
39829
+ },
39830
+ renderHTML({ HTMLAttributes }) {
39831
+ return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39832
+ },
39833
+ addKeyboardShortcuts() {
39834
+ return {
39835
+ Enter: () => this.editor.commands.splitListItem(this.name),
39836
+ Tab: () => this.editor.commands.sinkListItem(this.name),
39837
+ "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
39838
+ };
39839
+ }
39840
+ });
39972
39841
  const ListItem = Node$1.create({
39973
39842
  name: "listItem",
39974
39843
  addOptions() {
@@ -39998,8 +39867,44 @@ const ListItem = Node$1.create({
39998
39867
  };
39999
39868
  }
40000
39869
  });
40001
- const ListItemName = "listItem";
40002
- const TextStyleName = "textStyle";
39870
+ const TextStyle = Mark.create({
39871
+ name: "textStyle",
39872
+ priority: 101,
39873
+ addOptions() {
39874
+ return {
39875
+ HTMLAttributes: {}
39876
+ };
39877
+ },
39878
+ parseHTML() {
39879
+ return [
39880
+ {
39881
+ tag: "span",
39882
+ getAttrs: (element) => {
39883
+ const hasStyles = element.hasAttribute("style");
39884
+ if (!hasStyles) {
39885
+ return false;
39886
+ }
39887
+ return {};
39888
+ }
39889
+ }
39890
+ ];
39891
+ },
39892
+ renderHTML({ HTMLAttributes }) {
39893
+ return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39894
+ },
39895
+ addCommands() {
39896
+ return {
39897
+ removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
39898
+ const attributes = getMarkAttributes(state2, this.type);
39899
+ const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
39900
+ if (hasStyles) {
39901
+ return true;
39902
+ }
39903
+ return commands2.unsetMark(this.name);
39904
+ }
39905
+ };
39906
+ }
39907
+ });
40003
39908
  const inputRegex$1 = /^(\d+)\.\s$/;
40004
39909
  const OrderedList = Node$1.create({
40005
39910
  name: "orderedList",
@@ -40044,7 +39949,7 @@ const OrderedList = Node$1.create({
40044
39949
  return {
40045
39950
  toggleOrderedList: () => ({ commands: commands2, chain }) => {
40046
39951
  if (this.options.keepAttributes) {
40047
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName, this.editor.getAttributes(TextStyleName)).run();
39952
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem.name, this.editor.getAttributes(TextStyle.name)).run();
40048
39953
  }
40049
39954
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
40050
39955
  }
@@ -40068,7 +39973,7 @@ const OrderedList = Node$1.create({
40068
39973
  type: this.type,
40069
39974
  keepMarks: this.options.keepMarks,
40070
39975
  keepAttributes: this.options.keepAttributes,
40071
- getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyleName) }),
39976
+ getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyle.name) }),
40072
39977
  joinPredicate: (match2, node) => node.childCount + node.attrs.start === +match2[1],
40073
39978
  editor: this.editor
40074
39979
  });
@@ -40223,7 +40128,7 @@ const StarterKit = Extension.create({
40223
40128
  extensions.push(Italic.configure((_o = this.options) === null || _o === void 0 ? void 0 : _o.italic));
40224
40129
  }
40225
40130
  if (this.options.listItem !== false) {
40226
- extensions.push(ListItem.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40131
+ extensions.push(ListItem$1.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40227
40132
  }
40228
40133
  if (this.options.orderedList !== false) {
40229
40134
  extensions.push(OrderedList.configure((_q = this.options) === null || _q === void 0 ? void 0 : _q.orderedList));
@@ -42898,9 +42803,6 @@ class BubbleMenuView {
42898
42803
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
42899
42804
  return;
42900
42805
  }
42901
- if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
42902
- return;
42903
- }
42904
42806
  this.hide();
42905
42807
  };
42906
42808
  this.tippyBlurHandler = (event) => {
@@ -42933,7 +42835,6 @@ class BubbleMenuView {
42933
42835
  const to2 = Math.max(...ranges.map((range2) => range2.$to.pos));
42934
42836
  const shouldShow2 = (_a2 = this.shouldShow) === null || _a2 === void 0 ? void 0 : _a2.call(this, {
42935
42837
  editor: this.editor,
42936
- element: this.element,
42937
42838
  view: view2,
42938
42839
  state: state2,
42939
42840
  oldState,
@@ -42948,14 +42849,12 @@ class BubbleMenuView {
42948
42849
  getReferenceClientRect: ((_c = this.tippyOptions) === null || _c === void 0 ? void 0 : _c.getReferenceClientRect) || (() => {
42949
42850
  if (isNodeSelection(state2.selection)) {
42950
42851
  let node = view2.nodeDOM(from2);
42852
+ const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
42853
+ if (nodeViewWrapper) {
42854
+ node = nodeViewWrapper.firstChild;
42855
+ }
42951
42856
  if (node) {
42952
- const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
42953
- if (nodeViewWrapper) {
42954
- node = nodeViewWrapper.firstChild;
42955
- }
42956
- if (node) {
42957
- return node.getBoundingClientRect();
42958
- }
42857
+ return node.getBoundingClientRect();
42959
42858
  }
42960
42859
  }
42961
42860
  return posToDOMRect(view2, from2, to2);
@@ -43090,9 +42989,6 @@ class FloatingMenuView {
43090
42989
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
43091
42990
  return;
43092
42991
  }
43093
- if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
43094
- return;
43095
- }
43096
42992
  this.hide();
43097
42993
  };
43098
42994
  this.tippyBlurHandler = (event) => {
@@ -43353,8 +43249,21 @@ const EditorContent = vue.defineComponent({
43353
43249
  if (!editor) {
43354
43250
  return;
43355
43251
  }
43252
+ if (!editor.isDestroyed) {
43253
+ editor.view.setProps({
43254
+ nodeViews: {}
43255
+ });
43256
+ }
43356
43257
  editor.contentComponent = null;
43357
43258
  editor.appContext = null;
43259
+ if (!editor.options.element.firstChild) {
43260
+ return;
43261
+ }
43262
+ const newElement = document.createElement("div");
43263
+ newElement.append(...editor.options.element.childNodes);
43264
+ editor.setOptions({
43265
+ element: newElement
43266
+ });
43358
43267
  });
43359
43268
  return { rootEl: rootEl2 };
43360
43269
  },
@@ -44482,7 +44391,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
44482
44391
  });
44483
44392
  const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-982f5078"]]);
44484
44393
  /*!
44485
- * Signature Pad v5.0.4 | https://github.com/szimek/signature_pad
44394
+ * Signature Pad v5.0.3 | https://github.com/szimek/signature_pad
44486
44395
  * (c) 2024 Szymon Nowak | Released under the MIT license
44487
44396
  */
44488
44397
  class Point {
@@ -44566,7 +44475,7 @@ class SignatureEventTarget {
44566
44475
  constructor() {
44567
44476
  try {
44568
44477
  this._et = new EventTarget();
44569
- } catch (_a2) {
44478
+ } catch (error) {
44570
44479
  this._et = document;
44571
44480
  }
44572
44481
  }
@@ -44680,16 +44589,13 @@ class SignaturePad extends SignatureEventTarget {
44680
44589
  this._strokeEnd(this._touchEventToSignatureEvent(event));
44681
44590
  };
44682
44591
  this._handlePointerDown = (event) => {
44683
- if (!event.isPrimary || !this._isLeftButtonPressed(event) || this._drawingStroke) {
44592
+ if (!this._isLeftButtonPressed(event) || this._drawingStroke) {
44684
44593
  return;
44685
44594
  }
44686
44595
  event.preventDefault();
44687
44596
  this._strokeBegin(this._pointerEventToSignatureEvent(event));
44688
44597
  };
44689
44598
  this._handlePointerMove = (event) => {
44690
- if (!event.isPrimary) {
44691
- return;
44692
- }
44693
44599
  if (!this._isLeftButtonPressed(event, true) || !this._drawingStroke) {
44694
44600
  this._strokeEnd(this._pointerEventToSignatureEvent(event), false);
44695
44601
  return;
@@ -44698,7 +44604,7 @@ class SignaturePad extends SignatureEventTarget {
44698
44604
  this._strokeMoveUpdate(this._pointerEventToSignatureEvent(event));
44699
44605
  };
44700
44606
  this._handlePointerUp = (event) => {
44701
- if (!event.isPrimary || this._isLeftButtonPressed(event)) {
44607
+ if (this._isLeftButtonPressed(event)) {
44702
44608
  return;
44703
44609
  }
44704
44610
  event.preventDefault();
@@ -48476,11 +48382,6 @@ function buildURL(url, params, options) {
48476
48382
  return url;
48477
48383
  }
48478
48384
  const _encode = options && options.encode || encode;
48479
- if (utils$1.isFunction(options)) {
48480
- options = {
48481
- serialize: options
48482
- };
48483
- }
48484
48385
  const serializeFn = options && options.serialize;
48485
48386
  let serializedParams;
48486
48387
  if (serializeFn) {
@@ -48667,7 +48568,7 @@ function stringifySafely(rawValue, parser, encoder) {
48667
48568
  }
48668
48569
  }
48669
48570
  }
48670
- return (0, JSON.stringify)(rawValue);
48571
+ return (encoder || JSON.stringify)(rawValue);
48671
48572
  }
48672
48573
  const defaults = {
48673
48574
  transitional: transitionalDefaults,
@@ -49160,13 +49061,45 @@ const progressEventDecorator = (total, throttled) => {
49160
49061
  }), throttled[1]];
49161
49062
  };
49162
49063
  const asyncDecorator = (fn3) => (...args) => utils$1.asap(() => fn3(...args));
49163
- const isURLSameOrigin = platform.hasStandardBrowserEnv ? /* @__PURE__ */ ((origin2, isMSIE) => (url) => {
49164
- url = new URL(url, platform.origin);
49165
- return origin2.protocol === url.protocol && origin2.host === url.host && (isMSIE || origin2.port === url.port);
49166
- })(
49167
- new URL(platform.origin),
49168
- platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)
49169
- ) : () => true;
49064
+ const isURLSameOrigin = platform.hasStandardBrowserEnv ? (
49065
+ // Standard browser envs have full support of the APIs needed to test
49066
+ // whether the request URL is of the same origin as current location.
49067
+ function standardBrowserEnv() {
49068
+ const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);
49069
+ const urlParsingNode = document.createElement("a");
49070
+ let originURL;
49071
+ function resolveURL(url) {
49072
+ let href = url;
49073
+ if (msie) {
49074
+ urlParsingNode.setAttribute("href", href);
49075
+ href = urlParsingNode.href;
49076
+ }
49077
+ urlParsingNode.setAttribute("href", href);
49078
+ return {
49079
+ href: urlParsingNode.href,
49080
+ protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, "") : "",
49081
+ host: urlParsingNode.host,
49082
+ search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, "") : "",
49083
+ hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, "") : "",
49084
+ hostname: urlParsingNode.hostname,
49085
+ port: urlParsingNode.port,
49086
+ pathname: urlParsingNode.pathname.charAt(0) === "/" ? urlParsingNode.pathname : "/" + urlParsingNode.pathname
49087
+ };
49088
+ }
49089
+ originURL = resolveURL(window.location.href);
49090
+ return function isURLSameOrigin2(requestURL) {
49091
+ const parsed = utils$1.isString(requestURL) ? resolveURL(requestURL) : requestURL;
49092
+ return parsed.protocol === originURL.protocol && parsed.host === originURL.host;
49093
+ };
49094
+ }()
49095
+ ) : (
49096
+ // Non standard browser envs (web workers, react-native) lack needed support.
49097
+ /* @__PURE__ */ function nonStandardBrowserEnv() {
49098
+ return function isURLSameOrigin2() {
49099
+ return true;
49100
+ };
49101
+ }()
49102
+ );
49170
49103
  const cookies = platform.hasStandardBrowserEnv ? (
49171
49104
  // Standard browser envs support document.cookie
49172
49105
  {
@@ -49214,7 +49147,7 @@ const headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing }
49214
49147
  function mergeConfig(config1, config2) {
49215
49148
  config2 = config2 || {};
49216
49149
  const config = {};
49217
- function getMergedValue(target, source, prop3, caseless) {
49150
+ function getMergedValue(target, source, caseless) {
49218
49151
  if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
49219
49152
  return utils$1.merge.call({ caseless }, target, source);
49220
49153
  } else if (utils$1.isPlainObject(source)) {
@@ -49224,11 +49157,11 @@ function mergeConfig(config1, config2) {
49224
49157
  }
49225
49158
  return source;
49226
49159
  }
49227
- function mergeDeepProperties(a2, b2, prop3, caseless) {
49160
+ function mergeDeepProperties(a2, b2, caseless) {
49228
49161
  if (!utils$1.isUndefined(b2)) {
49229
- return getMergedValue(a2, b2, prop3, caseless);
49162
+ return getMergedValue(a2, b2, caseless);
49230
49163
  } else if (!utils$1.isUndefined(a2)) {
49231
- return getMergedValue(void 0, a2, prop3, caseless);
49164
+ return getMergedValue(void 0, a2, caseless);
49232
49165
  }
49233
49166
  }
49234
49167
  function valueFromConfig2(a2, b2) {
@@ -49279,7 +49212,7 @@ function mergeConfig(config1, config2) {
49279
49212
  socketPath: defaultToConfig2,
49280
49213
  responseEncoding: defaultToConfig2,
49281
49214
  validateStatus: mergeDirectKeys,
49282
- headers: (a2, b2, prop3) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), prop3, true)
49215
+ headers: (a2, b2) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), true)
49283
49216
  };
49284
49217
  utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop3) {
49285
49218
  const merge2 = mergeMap[prop3] || mergeDeepProperties;
@@ -49479,7 +49412,7 @@ const composeSignals = (signals, timeout) => {
49479
49412
  };
49480
49413
  const streamChunk = function* (chunk, chunkSize) {
49481
49414
  let len = chunk.byteLength;
49482
- if (len < chunkSize) {
49415
+ if (!chunkSize || len < chunkSize) {
49483
49416
  yield chunk;
49484
49417
  return;
49485
49418
  }
@@ -49809,7 +49742,7 @@ function dispatchRequest(config) {
49809
49742
  return Promise.reject(reason);
49810
49743
  });
49811
49744
  }
49812
- const VERSION = "1.7.9";
49745
+ const VERSION = "1.7.7";
49813
49746
  const validators$1 = {};
49814
49747
  ["object", "boolean", "number", "function", "string", "symbol"].forEach((type3, i2) => {
49815
49748
  validators$1[type3] = function validator2(thing) {
@@ -49840,12 +49773,6 @@ validators$1.transitional = function transitional(validator2, version2, message2
49840
49773
  return validator2 ? validator2(value, opt, opts) : true;
49841
49774
  };
49842
49775
  };
49843
- validators$1.spelling = function spelling(correctSpelling) {
49844
- return (value, opt) => {
49845
- console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
49846
- return true;
49847
- };
49848
- };
49849
49776
  function assertOptions(options, schema, allowUnknown) {
49850
49777
  if (typeof options !== "object") {
49851
49778
  throw new AxiosError("options must be an object", AxiosError.ERR_BAD_OPTION_VALUE);
@@ -49894,8 +49821,8 @@ class Axios {
49894
49821
  return await this._request(configOrUrl, config);
49895
49822
  } catch (err) {
49896
49823
  if (err instanceof Error) {
49897
- let dummy = {};
49898
- Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error();
49824
+ let dummy;
49825
+ Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : dummy = new Error();
49899
49826
  const stack2 = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : "";
49900
49827
  try {
49901
49828
  if (!err.stack) {
@@ -49937,10 +49864,6 @@ class Axios {
49937
49864
  }, true);
49938
49865
  }
49939
49866
  }
49940
- validator.assertOptions(config, {
49941
- baseUrl: validators.spelling("baseURL"),
49942
- withXsrfToken: validators.spelling("withXSRFToken")
49943
- }, true);
49944
49867
  config.method = (config.method || this.defaults.method || "get").toLowerCase();
49945
49868
  let contextHeaders = headers && utils$1.merge(
49946
49869
  headers.common,
@@ -50237,7 +50160,7 @@ axios$1.formToJSON = (thing) => formDataToJSON(utils$1.isHTMLForm(thing) ? new F
50237
50160
  axios$1.getAdapter = adapters.getAdapter;
50238
50161
  axios$1.HttpStatusCode = HttpStatusCode;
50239
50162
  axios$1.default = axios$1;
50240
- const metadata = { "version": 4, "country_calling_codes": { "1": ["US", "AG", "AI", "AS", "BB", "BM", "BS", "CA", "DM", "DO", "GD", "GU", "JM", "KN", "KY", "LC", "MP", "MS", "PR", "SX", "TC", "TT", "VC", "VG", "VI"], "7": ["RU", "KZ"], "20": ["EG"], "27": ["ZA"], "30": ["GR"], "31": ["NL"], "32": ["BE"], "33": ["FR"], "34": ["ES"], "36": ["HU"], "39": ["IT", "VA"], "40": ["RO"], "41": ["CH"], "43": ["AT"], "44": ["GB", "GG", "IM", "JE"], "45": ["DK"], "46": ["SE"], "47": ["NO", "SJ"], "48": ["PL"], "49": ["DE"], "51": ["PE"], "52": ["MX"], "53": ["CU"], "54": ["AR"], "55": ["BR"], "56": ["CL"], "57": ["CO"], "58": ["VE"], "60": ["MY"], "61": ["AU", "CC", "CX"], "62": ["ID"], "63": ["PH"], "64": ["NZ"], "65": ["SG"], "66": ["TH"], "81": ["JP"], "82": ["KR"], "84": ["VN"], "86": ["CN"], "90": ["TR"], "91": ["IN"], "92": ["PK"], "93": ["AF"], "94": ["LK"], "95": ["MM"], "98": ["IR"], "211": ["SS"], "212": ["MA", "EH"], "213": ["DZ"], "216": ["TN"], "218": ["LY"], "220": ["GM"], "221": ["SN"], "222": ["MR"], "223": ["ML"], "224": ["GN"], "225": ["CI"], "226": ["BF"], "227": ["NE"], "228": ["TG"], "229": ["BJ"], "230": ["MU"], "231": ["LR"], "232": ["SL"], "233": ["GH"], "234": ["NG"], "235": ["TD"], "236": ["CF"], "237": ["CM"], "238": ["CV"], "239": ["ST"], "240": ["GQ"], "241": ["GA"], "242": ["CG"], "243": ["CD"], "244": ["AO"], "245": ["GW"], "246": ["IO"], "247": ["AC"], "248": ["SC"], "249": ["SD"], "250": ["RW"], "251": ["ET"], "252": ["SO"], "253": ["DJ"], "254": ["KE"], "255": ["TZ"], "256": ["UG"], "257": ["BI"], "258": ["MZ"], "260": ["ZM"], "261": ["MG"], "262": ["RE", "YT"], "263": ["ZW"], "264": ["NA"], "265": ["MW"], "266": ["LS"], "267": ["BW"], "268": ["SZ"], "269": ["KM"], "290": ["SH", "TA"], "291": ["ER"], "297": ["AW"], "298": ["FO"], "299": ["GL"], "350": ["GI"], "351": ["PT"], "352": ["LU"], "353": ["IE"], "354": ["IS"], "355": ["AL"], "356": ["MT"], "357": ["CY"], "358": ["FI", "AX"], "359": ["BG"], "370": ["LT"], "371": ["LV"], "372": ["EE"], "373": ["MD"], "374": ["AM"], "375": ["BY"], "376": ["AD"], "377": ["MC"], "378": ["SM"], "380": ["UA"], "381": ["RS"], "382": ["ME"], "383": ["XK"], "385": ["HR"], "386": ["SI"], "387": ["BA"], "389": ["MK"], "420": ["CZ"], "421": ["SK"], "423": ["LI"], "500": ["FK"], "501": ["BZ"], "502": ["GT"], "503": ["SV"], "504": ["HN"], "505": ["NI"], "506": ["CR"], "507": ["PA"], "508": ["PM"], "509": ["HT"], "590": ["GP", "BL", "MF"], "591": ["BO"], "592": ["GY"], "593": ["EC"], "594": ["GF"], "595": ["PY"], "596": ["MQ"], "597": ["SR"], "598": ["UY"], "599": ["CW", "BQ"], "670": ["TL"], "672": ["NF"], "673": ["BN"], "674": ["NR"], "675": ["PG"], "676": ["TO"], "677": ["SB"], "678": ["VU"], "679": ["FJ"], "680": ["PW"], "681": ["WF"], "682": ["CK"], "683": ["NU"], "685": ["WS"], "686": ["KI"], "687": ["NC"], "688": ["TV"], "689": ["PF"], "690": ["TK"], "691": ["FM"], "692": ["MH"], "850": ["KP"], "852": ["HK"], "853": ["MO"], "855": ["KH"], "856": ["LA"], "880": ["BD"], "886": ["TW"], "960": ["MV"], "961": ["LB"], "962": ["JO"], "963": ["SY"], "964": ["IQ"], "965": ["KW"], "966": ["SA"], "967": ["YE"], "968": ["OM"], "970": ["PS"], "971": ["AE"], "972": ["IL"], "973": ["BH"], "974": ["QA"], "975": ["BT"], "976": ["MN"], "977": ["NP"], "992": ["TJ"], "993": ["TM"], "994": ["AZ"], "995": ["GE"], "996": ["KG"], "998": ["UZ"] }, "countries": { "AC": ["247", "00", "(?:[01589]\\d|[46])\\d{4}", [5, 6]], "AD": ["376", "00", "(?:1|6\\d)\\d{7}|[135-9]\\d{5}", [6, 8, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["[135-9]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["1"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]]], "AE": ["971", "00", "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{2,9})", "$1 $2", ["60|8"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[236]|[479][2-8]"], "0$1"], ["(\\d{3})(\\d)(\\d{5})", "$1 $2 $3", ["[479]"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"]], "0"], "AF": ["93", "00", "[2-7]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"]], "0"], "AG": ["1", "011", "(?:268|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([457]\\d{6})$|1", "268$1", 0, "268"], "AI": ["1", "011", "(?:264|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2457]\\d{6})$|1", "264$1", 0, "264"], "AL": ["355", "00", "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}", [6, 7, 8, 9], [["(\\d{3})(\\d{3,4})", "$1 $2", ["80|9"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["4[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2358][2-5]|4"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["[23578]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["6"], "0$1"]], "0"], "AM": ["374", "00", "(?:[1-489]\\d|55|60|77)\\d{6}", [8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[89]0"], "0 $1"], ["(\\d{3})(\\d{5})", "$1 $2", ["2|3[12]"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["1|47"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[3-9]"], "0$1"]], "0"], "AO": ["244", "00", "[29]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[29]"]]]], "AR": ["54", "00", "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}", [10, 11], [["(\\d{4})(\\d{2})(\\d{4})", "$1 $2-$3", ["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])", "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", 1], ["(\\d)(\\d{4})(\\d{2})(\\d{4})", "$2 15-$3-$4", ["9(?:2[2-469]|3[3-578])", "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))", "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 15-$3-$4", ["91"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 15-$3-$4", ["9"], "0$1", 0, "$1 $2 $3-$4"]], "0", 0, "0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?", "9$1"], "AS": ["1", "011", "(?:[58]\\d\\d|684|900)\\d{7}", [10], 0, "1", 0, "([267]\\d{6})$|1", "684$1", 0, "684"], "AT": ["43", "00", "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"], ["(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"], ["(\\d{3})(\\d{3,10})", "$1 $2", ["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"], "0$1"], ["(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"]], "0"], "AU": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}", [5, 6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[2378]"], "(0$1)"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]]], "0", 0, "(183[12])|0", 0, 0, 0, [["(?:(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\d|2[0-8]))\\d|3(?:(?:[0-3589]\\d|6[1-9]|7[0-35-9])\\d|4(?:[0-578]\\d|90)))\\d\\d|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4])|3\\d\\d)|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, ["163\\d{2,6}", [5, 6, 7, 8, 9]], ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "AW": ["297", "00", "(?:[25-79]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[25-9]"]]]], "AX": ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}", [5, 6, 7, 8, 9, 10, 11, 12], 0, "0", 0, 0, 0, 0, "18", 0, "00"], "AZ": ["994", "00", "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[28]|2|365|46", "1[28]|2|365[45]|46", "1[28]|2|365(?:4|5[02])|46"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[13-9]"], "0$1"]], "0"], "BA": ["387", "00", "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"]], "0"], "BB": ["1", "011", "(?:246|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "246$1", 0, "246"], "BD": ["880", "00", "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{2})(\\d{4,6})", "$1-$2", ["31[5-8]|[459]1"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1-$2", ["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"], "0$1"], ["(\\d{4})(\\d{3,6})", "$1-$2", ["[13-9]|2[23]"], "0$1"], ["(\\d)(\\d{7,8})", "$1-$2", ["2"], "0$1"]], "0"], "BE": ["32", "00", "4\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:80|9)0"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[239]|4[23]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[15-8]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4"], "0$1"]], "0"], "BF": ["226", "00", "[025-7]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[025-7]"]]]], "BG": ["359", "00", "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}", [6, 7, 8, 9, 12], [["(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"], ["(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"]], "0"], "BH": ["973", "00", "[136-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[13679]|8[02-4679]"]]]], "BI": ["257", "00", "(?:[267]\\d|31)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2367]"]]]], "BJ": ["229", "00", "(?:01\\d|[24-689])\\d{7}", [8, 10], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-689]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["0"]]]], "BL": ["590", "00", "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "BM": ["1", "011", "(?:441|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "441$1", 0, "441"], "BN": ["673", "00", "[2-578]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-578]"]]]], "BO": ["591", "00(?:1\\d)?", "8001\\d{5}|(?:[2-467]\\d|50)\\d{6}", [8, 9], [["(\\d)(\\d{7})", "$1 $2", ["[235]|4[46]"]], ["(\\d{8})", "$1", ["[67]"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["8"]]], "0", 0, "0(1\\d)?"], "BQ": ["599", "00", "(?:[34]1|7\\d)\\d{5}", [7], 0, 0, 0, 0, 0, 0, "[347]"], "BR": ["55", "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)", "(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}", [8, 9, 10, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["300|4(?:0[02]|37)", "4(?:02|37)0|[34]00"]], ["(\\d{3})(\\d{2,3})(\\d{4})", "$1 $2 $3", ["(?:[358]|90)0"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"], "($1)"], ["(\\d{2})(\\d{5})(\\d{4})", "$1 $2-$3", ["[16][1-9]|[2-57-9]"], "($1)"]], "0", 0, "(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?", "$2"], "BS": ["1", "011", "(?:242|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([3-8]\\d{6})$|1", "242$1", 0, "242"], "BT": ["975", "00", "[17]\\d{7}|[2-8]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-68]|7[246]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|7"]]]], "BW": ["267", "00", "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["90"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[24-6]|3[15-9]"]], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37]"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["8"]]]], "BY": ["375", "810", "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3})", "$1 $2", ["800"], "8 $1"], ["(\\d{3})(\\d{2})(\\d{2,4})", "$1 $2 $3", ["800"], "8 $1"], ["(\\d{4})(\\d{2})(\\d{3})", "$1 $2-$3", ["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])", "1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"], "8 0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["1(?:[56]|7[467])|2[1-3]"], "8 0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-4]"], "8 0$1"], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[89]"], "8 $1"]], "8", 0, "0|80?", 0, 0, 0, 0, "8~10"], "BZ": ["501", "00", "(?:0800\\d|[2-8])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-8]"]], ["(\\d)(\\d{3})(\\d{4})(\\d{3})", "$1-$2-$3-$4", ["0"]]]], "CA": ["1", "011", "(?:[2-8]\\d|90)\\d{8}|3\\d{6}", [7, 10], 0, "1", 0, 0, 0, 0, 0, [["(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|90[25])[2-9]\\d{6}", [10]], ["", [10]], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", [10]], ["900[2-9]\\d{6}", [10]], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\d{6}", [10]], 0, ["310\\d{4}", [7]], 0, ["600[2-9]\\d{6}", [10]]]], "CC": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CD": ["243", "00", "(?:(?:[189]|5\\d)\\d|2)\\d{7}|[1-68]\\d{6}", [7, 8, 9, 10], [["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["[1-6]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["5"], "0$1"]], "0"], "CF": ["236", "00", "(?:[27]\\d{3}|8776)\\d{4}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[278]"]]]], "CG": ["242", "00", "222\\d{6}|(?:0\\d|80)\\d{7}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[02]"]]]], "CH": ["41", "00", "8\\d{11}|[2-9]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8[047]|90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]|81"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["8"], "0$1"]], "0"], "CI": ["225", "00", "[02]\\d{9}", [10], [["(\\d{2})(\\d{2})(\\d)(\\d{5})", "$1 $2 $3 $4", ["2"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3 $4", ["0"]]]], "CK": ["682", "00", "[2-578]\\d{4}", [5], [["(\\d{2})(\\d{3})", "$1 $2", ["[2-578]"]]]], "CL": ["56", "(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0", "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}", [9, 10, 11], [["(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9[2-9]"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"], "($1)"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]]]], "CM": ["237", "00", "[26]\\d{8}|88\\d{6,7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["88"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[26]|88"]]]], "CN": ["86", "00|1(?:[12]\\d|79)\\d\\d00", "(?:(?:1[03-689]|2\\d)\\d\\d|6)\\d{8}|1\\d{10}|[126]\\d{6}(?:\\d(?:\\d{2})?)?|86\\d{5,6}|(?:[3-579]\\d|8[0-57-9])\\d{5,9}", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5,6})", "$1 $2", ["(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]", "(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123"], "0$1"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]", "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]", "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])", "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|2(?:[02-57-9]|1[1-9])", "10|2(?:[02-57-9]|1[1-9])", "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"], "0$1", 1], ["(\\d{3})(\\d{7,8})", "$1 $2", ["9"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["80"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[3-578]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["[12]"], "0$1", 1]], "0", 0, "(1(?:[12]\\d|79)\\d\\d)|0", 0, 0, 0, 0, "00"], "CO": ["57", "00(?:4(?:[14]4|56)|[579])", "(?:46|60\\d\\d)\\d{6}|(?:1\\d|[39])\\d{9}", [8, 10, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["46"]], ["(\\d{3})(\\d{7})", "$1 $2", ["6|90"], "($1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3[0-357]|91"]], ["(\\d)(\\d{3})(\\d{7})", "$1-$2-$3", ["1"], "0$1", 0, "$1 $2 $3"]], "0", 0, "0([3579]|4(?:[14]4|56))?"], "CR": ["506", "00", "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}", [8, 10], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[3-9]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[89]"]]], 0, 0, "(19(?:0[0-2468]|1[09]|20|66|77|99))"], "CU": ["53", "119", "(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}", [6, 7, 8, 10], [["(\\d{2})(\\d{4,6})", "$1 $2", ["2[1-4]|[34]"], "(0$1)"], ["(\\d)(\\d{6,7})", "$1 $2", ["7"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["[56]"], "0$1"], ["(\\d{3})(\\d{7})", "$1 $2", ["8"], "0$1"]], "0"], "CV": ["238", "0", "(?:[2-59]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2-589]"]]]], "CW": ["599", "00", "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[3467]"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["9[4-8]"]]], 0, 0, 0, 0, 0, "[69]"], "CX": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CY": ["357", "00", "(?:[279]\\d|[58]0)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[257-9]"]]]], "CZ": ["420", "00", "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}", [9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["96"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]]], "DE": ["49", "00", "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [["(\\d{2})(\\d{3,13})", "$1 $2", ["3[02]|40|[68]9"], "0$1"], ["(\\d{3})(\\d{3,12})", "$1 $2", ["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", "2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"], "0$1"], ["(\\d{4})(\\d{2,11})", "$1 $2", ["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]", "[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["138"], "0$1"], ["(\\d{5})(\\d{2,10})", "$1 $2", ["3"], "0$1"], ["(\\d{3})(\\d{5,11})", "$1 $2", ["181"], "0$1"], ["(\\d{3})(\\d)(\\d{4,10})", "$1 $2 $3", ["1(?:3|80)|9"], "0$1"], ["(\\d{3})(\\d{7,8})", "$1 $2", ["1[67]"], "0$1"], ["(\\d{3})(\\d{7,12})", "$1 $2", ["8"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["185", "1850", "18500"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["18[68]"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["15[03568]", "15(?:[0568]|31)"], "0$1"], ["(\\d{3})(\\d{8})", "$1 $2", ["18"], "0$1"], ["(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"], ["(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"]], "0"], "DJ": ["253", "00", "(?:2\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[27]"]]]], "DK": ["45", "00", "[2-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-9]"]]]], "DM": ["1", "011", "(?:[58]\\d\\d|767|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "767$1", 0, "767"], "DO": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "8001|8[024]9"], "DZ": ["213", "00", "(?:[1-4]|[5-79]\\d|80)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["9"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-8]"], "0$1"]], "0"], "EC": ["593", "00", "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}", [8, 9, 10, 11], [["(\\d)(\\d{3})(\\d{4})", "$1 $2-$3", ["[2-7]"], "(0$1)", 0, "$1-$2-$3"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]]], "0"], "EE": ["372", "00", "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88", "[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]], ["(\\d{4})(\\d{3,4})", "$1 $2", ["[45]|8(?:00|[1-49])", "[45]|8(?:00[1-9]|[1-49])"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]], "EG": ["20", "00", "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}", [8, 9, 10], [["(\\d)(\\d{7,8})", "$1 $2", ["[23]"], "0$1"], ["(\\d{2})(\\d{6,7})", "$1 $2", ["1[35]|[4-6]|8[2468]|9[235-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{8})", "$1 $2", ["1"], "0$1"]], "0"], "EH": ["212", "00", "[5-8]\\d{8}", [9], 0, "0", 0, 0, 0, 0, "528[89]"], "ER": ["291", "00", "[178]\\d{6}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[178]"], "0$1"]], "0"], "ES": ["34", "00", "[5-9]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]00"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-9]"]]]], "ET": ["251", "00", "(?:11|[2-579]\\d)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-579]"], "0$1"]], "0"], "FI": ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{5})", "$1", ["20[2-59]"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1 $2", ["(?:[1-3]0|[68])0|70[07-9]"], "0$1"], ["(\\d{2})(\\d{4,8})", "$1 $2", ["[14]|2[09]|50|7[135]"], "0$1"], ["(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], ["(\\d)(\\d{4,9})", "$1 $2", ["(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"], "0$1"]], "0", 0, 0, 0, 0, "1[03-79]|[2-9]", 0, "00"], "FJ": ["679", "0(?:0|52)", "45\\d{5}|(?:0800\\d|[235-9])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[235-9]|45"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "FK": ["500", "00", "[2-7]\\d{4}", [5]], "FM": ["691", "00", "(?:[39]\\d\\d|820)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[389]"]]]], "FO": ["298", "00", "[2-9]\\d{5}", [6], [["(\\d{6})", "$1", ["[2-9]"]]], 0, 0, "(10(?:01|[12]0|88))"], "FR": ["33", "00", "[1-9]\\d{8}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0 $1"], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[1-79]"], "0$1"]], "0"], "GA": ["241", "00", "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}", [7, 8], [["(\\d)(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-7]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["11|[67]"], "0$1"]], 0, 0, "0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})", "$1"], "GB": ["44", "00", "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}", [7, 9, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["800", "8001", "80011", "800111", "8001111"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["845", "8454", "84546", "845464"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["800"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["1(?:38|5[23]|69|76|94)", "1(?:(?:38|69)7|5(?:24|39)|768|946)", "1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["1(?:[2-69][02-9]|[78])"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[25]|7(?:0|6[02-9])", "[25]|7(?:0|6(?:[03-9]|2[356]))"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1389]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0-35])|4(?:(?:[0-5]\\d|70)\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|50))\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[0-3]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}", [9, 10]], ["7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]], 0, " x"], "GD": ["1", "011", "(?:473|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "473$1", 0, "473"], "GE": ["995", "00", "(?:[3-57]\\d\\d|800)\\d{6}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["32"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[57]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[348]"], "0$1"]], "0"], "GF": ["594", "00", "[56]94\\d{6}|(?:80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[56]|9[47]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[89]"], "0$1"]], "0"], "GG": ["44", "00", "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?", [7, 9, 10], 0, "0", 0, "([25-9]\\d{5})$|0", "1481$1", 0, 0, [["1481[25-9]\\d{5}", [10]], ["7(?:(?:781|839)\\d|911[17])\\d{5}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]]], "GH": ["233", "00", "(?:[235]\\d{3}|800)\\d{5}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[235]"], "0$1"]], "0"], "GI": ["350", "00", "(?:[25]\\d|60)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["2"]]]], "GL": ["299", "00", "(?:19|[2-689]\\d|70)\\d{4}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["19|[2-9]"]]]], "GM": ["220", "00", "[2-9]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "GN": ["224", "00", "722\\d{6}|(?:3|6\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["3"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[67]"]]]], "GP": ["590", "00", "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-79]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\d)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "GQ": ["240", "00", "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235]"]], ["(\\d{3})(\\d{6})", "$1 $2", ["[89]"]]]], "GR": ["30", "00", "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}", [10, 11, 12], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["21|7"]], ["(\\d{4})(\\d{6})", "$1 $2", ["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2689]"]], ["(\\d{3})(\\d{3,4})(\\d{5})", "$1 $2 $3", ["8"]]]], "GT": ["502", "00", "80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-8]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]], "GU": ["1", "011", "(?:[58]\\d\\d|671|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "671$1", 0, "671"], "GW": ["245", "00", "[49]\\d{8}|4\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["40"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"]]]], "GY": ["592", "001", "(?:[2-8]\\d{3}|9008)\\d{3}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "HK": ["852", "00(?:30|5[09]|[126-9]?)", "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}", [5, 6, 7, 8, 9, 11], [["(\\d{3})(\\d{2,5})", "$1 $2", ["900", "9003"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{3})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "HN": ["504", "00", "8\\d{10}|[237-9]\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]]]], "HR": ["385", "00", "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}", [6, 7, 8, 9], [["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["6[01]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{4})(\\d{3})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6|7[245]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-57]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"]], "0"], "HT": ["509", "00", "(?:[2-489]\\d|55)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[2-589]"]]]], "HU": ["36", "00", "[235-7]\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "06 $1"]], "06"], "ID": ["62", "00[89]", "00[1-9]\\d{9,14}|(?:[1-36]|8\\d{5})\\d{6}|00\\d{9}|[1-9]\\d{8,10}|[2-9]\\d{7}", [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]], ["(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"], ["(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"], ["(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"], ["(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"], ["(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"], ["(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"]], "0"], "IE": ["353", "00", "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}", [7, 8, 9, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["2[24-9]|47|58|6[237-9]|9[35-9]"], "(0$1)"], ["(\\d{3})(\\d{5})", "$1 $2", ["[45]0"], "(0$1)"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2569]|4[1-69]|7[14]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["81"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["4"], "(0$1)"], ["(\\d{2})(\\d)(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "IL": ["972", "0(?:0|1[2-9])", "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}", [7, 8, 9, 10, 11, 12], [["(\\d{4})(\\d{3})", "$1-$2", ["125"]], ["(\\d{4})(\\d{2})(\\d{2})", "$1-$2-$3", ["121"]], ["(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-489]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1-$2-$3", ["12"]], ["(\\d{4})(\\d{6})", "$1-$2", ["159"]], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3-$4", ["1[7-9]"]], ["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})", "$1-$2 $3-$4", ["15"]]], "0"], "IM": ["44", "00", "1624\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([25-8]\\d{5})$|0", "1624$1", 0, "74576|(?:16|7[56])24"], "IN": ["91", "00", "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}", [8, 9, 10, 11, 12, 13], [["(\\d{8})", "$1", ["5(?:0|2[23]|3[03]|[67]1|88)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"], 0, 1], ["(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], 0, 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["11|2[02]|33|4[04]|79[1-7]|80[2-46]", "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])", "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"], "0$1", 1], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807", "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]", "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"], "0$1", 1], ["(\\d{5})(\\d{5})", "$1 $2", ["[6-9]"], "0$1", 1], ["(\\d{4})(\\d{2,4})(\\d{4})", "$1 $2 $3", ["1(?:6|8[06])", "1(?:6|8[06]0)"], 0, 1], ["(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], 0, 1]], "0"], "IO": ["246", "00", "3\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["3"]]]], "IQ": ["964", "00", "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-6]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"]], "0"], "IR": ["98", "00", "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}", [4, 5, 6, 7, 10], [["(\\d{4,5})", "$1", ["96"], "0$1"], ["(\\d{2})(\\d{4,5})", "$1 $2", ["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[1-8]"], "0$1"]], "0"], "IS": ["354", "00|1(?:0(?:01|[12]0)|100)", "(?:38\\d|[4-9])\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["[4-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["3"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "IT": ["39", "00", "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", [6, 7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], ["(\\d{3})(\\d{3,6})", "$1 $2", ["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]], ["(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], ["(\\d{4})(\\d{4})", "$1 $2", ["894"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1(?:44|[679])|[378]|43"]], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], ["(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]]], 0, 0, 0, 0, 0, 0, [["0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}", [6, 7, 8, 9, 10, 11]], ["3[2-9]\\d{7,8}|(?:31|43)\\d{8}", [9, 10]], ["80(?:0\\d{3}|3)\\d{3}", [6, 9]], ["(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", [6, 8, 9, 10]], ["1(?:78\\d|99)\\d{6}", [9, 10]], ["3[2-8]\\d{9,10}", [11, 12]], 0, 0, ["55\\d{8}", [10]], ["84(?:[08]\\d{3}|[17])\\d{3}", [6, 9]]]], "JE": ["44", "00", "1534\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([0-24-8]\\d{5})$|0", "1534$1", 0, 0, [["1534[0-24-8]\\d{5}"], ["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97\\d))\\d{5}"], ["80(?:07(?:35|81)|8901)\\d{4}"], ["(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"], ["701511\\d{4}"], 0, ["(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}"], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}"], ["56\\d{8}"]]], "JM": ["1", "011", "(?:[58]\\d\\d|658|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "658|876"], "JO": ["962", "00", "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2356]|87"], "(0$1)"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["70"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"]], "0"], "JP": ["81", "010", "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}", [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"], ["(\\d{4})(\\d)(\\d{4})", "$1-$2-$3", ["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2-$3", ["[36]|4(?:2[09]|7[01])", "[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3", ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[257-9]"], "0$1"]], "0", 0, "(000[259]\\d{6})$|(?:(?:003768)0?)|0", "$1"], "KE": ["254", "000", "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}", [7, 8, 9, 10], [["(\\d{2})(\\d{5,7})", "$1 $2", ["[24-6]"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[17]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0"], "KG": ["996", "00", "8\\d{9}|[235-9]\\d{8}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["3(?:1[346]|[24-79])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-79]|88"], "0$1"], ["(\\d{3})(\\d{3})(\\d)(\\d{2,3})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "KH": ["855", "00[14-9]", "1\\d{9}|[1-9]\\d{7,8}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "KI": ["686", "00", "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}", [5, 8], 0, "0"], "KM": ["269", "00", "[3478]\\d{6}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[3478]"]]]], "KN": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "869$1", 0, "869"], "KP": ["850", "00|99", "85\\d{6}|(?:19\\d|[2-7])\\d{7}", [8, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"]], "0"], "KR": ["82", "00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))", "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}", [5, 6, 8, 9, 10, 11, 12, 13, 14], [["(\\d{2})(\\d{3,4})", "$1-$2", ["(?:3[1-3]|[46][1-4]|5[1-5])1"], "0$1"], ["(\\d{4})(\\d{4})", "$1-$2", ["1"]], ["(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[36]0|8"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1-$2-$3", ["[1346]|5[1-5]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1"]], "0", 0, "0(8(?:[1-46-8]|5\\d\\d))?"], "KW": ["965", "00", "18\\d{5}|(?:[2569]\\d|41)\\d{6}", [7, 8], [["(\\d{4})(\\d{3,4})", "$1 $2", ["[169]|2(?:[235]|4[1-35-9])|52"]], ["(\\d{3})(\\d{5})", "$1 $2", ["[245]"]]]], "KY": ["1", "011", "(?:345|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "345$1", 0, "345"], "KZ": ["7", "810", "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}", [10, 14], 0, "8", 0, 0, 0, 0, "33|7", 0, "8~10"], "LA": ["856", "00", "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2[13]|3[14]|[4-8]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["30[0135-9]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0"], "LB": ["961", "00", "[27-9]\\d{7}|[13-9]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27-9]"]]], "0"], "LC": ["1", "011", "(?:[58]\\d\\d|758|900)\\d{7}", [10], 0, "1", 0, "([2-8]\\d{6})$|1", "758$1", 0, "758"], "LI": ["423", "00", "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", [7, 9], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2379]|8(?:0[09]|7)", "[2379]|8(?:0(?:02|9)|7)"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["69"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]], "0", 0, "(1001)|0"], "LK": ["94", "00", "[1-9]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[1-689]"], "0$1"]], "0"], "LR": ["231", "00", "(?:[245]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["4[67]|[56]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-578]"], "0$1"]], "0"], "LS": ["266", "00", "(?:[256]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2568]"]]]], "LT": ["370", "00", "(?:[3469]\\d|52|[78]0)\\d{6}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["52[0-7]"], "(0-$1)", 1], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0 $1", 1], ["(\\d{2})(\\d{6})", "$1 $2", ["37|4(?:[15]|6[1-8])"], "(0-$1)", 1], ["(\\d{3})(\\d{5})", "$1 $2", ["[3-6]"], "(0-$1)", 1]], "0", 0, "[08]"], "LU": ["352", "00", "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}", [4, 5, 6, 7, 8, 9, 10, 11], [["(\\d{2})(\\d{3})", "$1 $2", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["20[2-689]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4", ["2(?:[0367]|4[3-8])"]], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["80[01]|90[015]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["20"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4 $5", ["2(?:[0367]|4[3-8])"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})", "$1 $2 $3 $4", ["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"]]], 0, 0, "(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)"], "LV": ["371", "00", "(?:[268]\\d|90)\\d{6}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[269]|8[01]"]]]], "LY": ["218", "00", "[2-9]\\d{8}", [9], [["(\\d{2})(\\d{7})", "$1-$2", ["[2-9]"], "0$1"]], "0"], "MA": ["212", "00", "[5-8]\\d{8}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5[45]"], "0$1"], ["(\\d{4})(\\d{5})", "$1-$2", ["5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)"], "0$1"], ["(\\d{2})(\\d{7})", "$1-$2", ["8"], "0$1"], ["(\\d{3})(\\d{6})", "$1-$2", ["[5-7]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["5(?:2(?:[0-25-79]\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}"], ["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-4]|5[01]|8[0-3]))\\d{6}"], ["80[0-7]\\d{6}"], ["89\\d{7}"], 0, 0, 0, 0, ["(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}"]]], "MC": ["377", "00", "(?:[3489]|6\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["6"], "0$1"]], "0"], "MD": ["373", "00", "(?:[235-7]\\d|[89]0)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["22|3"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[25-7]"], "0$1"]], "0"], "ME": ["382", "00", "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "0$1"]], "0"], "MF": ["590", "00", "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "MG": ["261", "00", "[23]\\d{8}", [9], [["(\\d{2})(\\d{2})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0", 0, "([24-9]\\d{6})$|0", "20$1"], "MH": ["692", "011", "329\\d{4}|(?:[256]\\d|45)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-6]"]]], "1"], "MK": ["389", "00", "[2-578]\\d{7}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2|34[47]|4(?:[37]7|5[47]|64)"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[347]"], "0$1"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[58]"], "0$1"]], "0"], "ML": ["223", "00", "[24-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]]]], "MM": ["95", "00", "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}", [6, 7, 8, 9, 10], [["(\\d)(\\d{2})(\\d{3})", "$1 $2 $3", ["16|2"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]|452|678|86", "[12]|452|6788|86"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[4-7]|8[1-35]"], "0$1"], ["(\\d)(\\d{3})(\\d{4,6})", "$1 $2 $3", ["9(?:2[0-4]|[35-9]|4[137-9])"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["92"], "0$1"], ["(\\d)(\\d{5})(\\d{4})", "$1 $2 $3", ["9"], "0$1"]], "0"], "MN": ["976", "001", "[12]\\d{7,9}|[5-9]\\d{7}", [8, 9, 10], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[12]1"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[5-9]"]], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[12]2[1-3]"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["[12](?:27|3[2-8]|4[2-68]|5[1-4689])", "[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["[12]"], "0$1"]], "0"], "MO": ["853", "00", "0800\\d{3}|(?:28|[68]\\d)\\d{6}", [7, 8], [["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[268]"]]]], "MP": ["1", "011", "[58]\\d{9}|(?:67|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "670$1", 0, "670"], "MQ": ["596", "00", "596\\d{6}|(?:69|[89]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]|8(?:0[6-9]|[36])"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "MR": ["222", "00", "(?:[2-4]\\d\\d|800)\\d{5}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-48]"]]]], "MS": ["1", "011", "(?:[58]\\d\\d|664|900)\\d{7}", [10], 0, "1", 0, "([34]\\d{6})$|1", "664$1", 0, "664"], "MT": ["356", "00", "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2357-9]"]]]], "MU": ["230", "0(?:0|[24-7]0|3[03])", "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-46]|8[013]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[57]"]], ["(\\d{5})(\\d{5})", "$1 $2", ["8"]]], 0, 0, 0, 0, 0, 0, 0, "020"], "MV": ["960", "0(?:0|19)", "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}", [7, 10], [["(\\d{3})(\\d{4})", "$1-$2", ["[34679]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "MW": ["265", "00", "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}", [7, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["1[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[137-9]"], "0$1"]], "0"], "MX": ["52", "0[09]", "[2-9]\\d{9}", [10], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "MY": ["60", "00", "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1-$2 $3", ["[4-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1-$2 $3", ["1(?:[02469]|[378][1-9]|53)|8", "1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2 $3", ["3"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3-$4", ["1(?:[367]|80)"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2 $3", ["15"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2 $3", ["1"], "0$1"]], "0"], "MZ": ["258", "00", "(?:2|8\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2|8[2-79]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]], "NA": ["264", "00", "[68]\\d{7,8}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["87"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0"], "NC": ["687", "00", "(?:050|[2-57-9]\\d\\d)\\d{3}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]]]], "NE": ["227", "00", "[027-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["08"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[089]|2[013]|7[0467]"]]]], "NF": ["672", "00", "[13]\\d{5}", [6], [["(\\d{2})(\\d{4})", "$1 $2", ["1[0-3]"]], ["(\\d)(\\d{5})", "$1 $2", ["[13]"]]], 0, 0, "([0-258]\\d{4})$", "3$1"], "NG": ["234", "009", "38\\d{6}|[78]\\d{9,13}|(?:20|9\\d)\\d{8}", [8, 10, 11, 12, 13, 14], [["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["3"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[7-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["20[129]"], "0$1"], ["(\\d{4})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{3})(\\d{5})(\\d{5,6})", "$1 $2 $3", ["[78]"], "0$1"]], "0"], "NI": ["505", "00", "(?:1800|[25-8]\\d{3})\\d{4}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[125-8]"]]]], "NL": ["31", "00", "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}", [5, 6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"], ["(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-578]|91"], "0$1"], ["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"]], "0"], "NO": ["47", "00", "(?:0|[2-9]\\d{3})\\d{4}", [5, 8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]"]]], 0, 0, 0, 0, 0, "[02-689]|7[0-8]"], "NP": ["977", "00", "(?:1\\d|9)\\d{9}|[1-9]\\d{7}", [8, 10, 11], [["(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], ["(\\d{2})(\\d{6})", "$1-$2", ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], "0$1"], ["(\\d{3})(\\d{7})", "$1-$2", ["9"]]], "0"], "NR": ["674", "00", "(?:444|(?:55|8\\d)\\d|666)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[4-68]"]]]], "NU": ["683", "00", "(?:[4-7]|888\\d)\\d{3}", [4, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["8"]]]], "NZ": ["64", "0(?:0|161)", "[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,8})", "$1 $2", ["8[1-79]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["50[036-8]|8|90", "50(?:[0367]|88)|8|90"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["24|[346]|7[2-57-9]|9[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:10|74)|[589]"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1|2[028]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,5})", "$1 $2 $3", ["2(?:[169]|7[0-35-9])|7"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "00"], "OM": ["968", "00", "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}", [7, 8, 9], [["(\\d{3})(\\d{4,6})", "$1 $2", ["[58]"]], ["(\\d{2})(\\d{6})", "$1 $2", ["2"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[179]"]]]], "PA": ["507", "00", "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}", [7, 8, 10, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[1-57-9]"]], ["(\\d{4})(\\d{4})", "$1-$2", ["[68]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]]], "PE": ["51", "00|19(?:1[124]|77|90)00", "(?:[14-8]|9\\d)\\d{7}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["80"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["1"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[4-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"]]], "0", 0, 0, 0, 0, 0, 0, "00", " Anexo "], "PF": ["689", "00", "4\\d{5}(?:\\d{2})?|8\\d{7,8}", [6, 8, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["44"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4|8[7-9]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]], "PG": ["675", "00|140[1-3]", "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["18|[2-69]|85"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[78]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "PH": ["63", "00", "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}", [6, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{5})", "$1 $2", ["2"], "(0$1)"], ["(\\d{4})(\\d{4,6})", "$1 $2", ["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2", "3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"], "(0$1)"], ["(\\d{5})(\\d{4})", "$1 $2", ["346|4(?:27|9[35])|883", "3469|4(?:279|9(?:30|56))|8834"], "(0$1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|8[2-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["1"]]], "0"], "PK": ["92", "00", "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,7})", "$1 $2 $3", ["[89]0"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["1"]], ["(\\d{3})(\\d{6,7})", "$1 $2", ["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])", "9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"], "(0$1)"], ["(\\d{2})(\\d{7,8})", "$1 $2", ["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"], "(0$1)"], ["(\\d{5})(\\d{5})", "$1 $2", ["58"], "(0$1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[24-9]"], "(0$1)"]], "0"], "PL": ["48", "00", "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{5})", "$1", ["19"]], ["(\\d{3})(\\d{3})", "$1 $2", ["11|20|64"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1", "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["64"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[2-8]|[2-7]|8[1-79]|9[145]"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["8"]]]], "PM": ["508", "00", "[45]\\d{5}|(?:708|8\\d\\d)\\d{6}", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[45]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "PR": ["1", "011", "(?:[589]\\d\\d|787)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "787|939"], "PS": ["970", "00", "[2489]2\\d{6}|(?:1\\d|5)\\d{8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2489]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "PT": ["351", "00", "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["2[12]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["16|[236-9]"]]]], "PW": ["680", "01[12]", "(?:[24-8]\\d\\d|345|900)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "PY": ["595", "00", "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3,6})", "$1 $2", ["[2-9]0"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"], "(0$1)"], ["(\\d{3})(\\d{4,5})", "$1 $2", ["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["87"]], ["(\\d{3})(\\d{6})", "$1 $2", ["9(?:[5-79]|8[1-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"]]], "0"], "QA": ["974", "00", "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}", [7, 8, 9, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["2[16]|8"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[3-7]"]]]], "RE": ["262", "00", "(?:26|[689]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2689]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["26(?:2\\d\\d|3(?:0\\d|1[0-6]))\\d{4}"], ["69(?:2\\d\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))\\d{4}"], ["80\\d{7}"], ["89[1-37-9]\\d{6}"], 0, 0, 0, 0, ["9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\d{4}"], ["8(?:1[019]|2[0156]|84|90)\\d{6}"]]], "RO": ["40", "00", "(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}", [6, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["2[3-6]", "2[3-6]\\d9"], "0$1"], ["(\\d{2})(\\d{4})", "$1 $2", ["219|31"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[23]1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[236-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, 0, " int "], "RS": ["381", "00", "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}", [6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{3,9})", "$1 $2", ["(?:2[389]|39)0|[7-9]"], "0$1"], ["(\\d{2})(\\d{5,10})", "$1 $2", ["[1-36]"], "0$1"]], "0"], "RU": ["7", "810", "8\\d{13}|[347-9]\\d{9}", [10, 14], [["(\\d{4})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-8]|2[1-9])", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"], "8 ($1)", 1], ["(\\d{5})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-68]|2[1-9])", "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))", "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[349]|8(?:[02-7]|1[1-8])"], "8 ($1)", 1], ["(\\d{4})(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["8"], "8 ($1)"]], "8", 0, 0, 0, 0, "3[04-689]|[489]", 0, "8~10"], "RW": ["250", "00", "(?:06|[27]\\d\\d|[89]00)\\d{6}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0$1"]], "0"], "SA": ["966", "00", "92\\d{7}|(?:[15]|8\\d)\\d{8}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["9"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["81"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]], "0"], "SB": ["677", "0[01]", "[6-9]\\d{6}|[1-6]\\d{4}", [5, 7], [["(\\d{2})(\\d{5})", "$1 $2", ["6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])"]]]], "SC": ["248", "010|0[0-2]", "(?:[2489]\\d|64)\\d{5}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[246]|9[57]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "SD": ["249", "00", "[19]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "SE": ["46", "00", "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}", [6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["20"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{4})", "$1-$2", ["9(?:00|39|44|9)"], "0$1", 0, "$1 $2"], ["(\\d{2})(\\d{3})(\\d{2})", "$1-$2 $3", ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3"], ["(\\d)(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{2,3})(\\d{3})", "$1-$2 $3", ["9(?:00|39|44)"], "0$1", 0, "$1 $2 $3"], ["(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["10|7"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{3})", "$1-$2 $3 $4", ["9"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4 $5", ["[26]"], "0$1", 0, "$1 $2 $3 $4 $5"]], "0"], "SG": ["65", "0[0-3]\\d", "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}", [8, 10, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-9]|[1-9])"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]], "SH": ["290", "00", "(?:[256]\\d|8)\\d{3}", [4, 5], 0, 0, 0, 0, 0, 0, "[256]"], "SI": ["386", "00|10(?:22|66|88|99)", "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}", [5, 6, 7, 8], [["(\\d{2})(\\d{3,6})", "$1 $2", ["8[09]|9"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["59|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37][01]|4[0139]|51|6"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-57]"], "(0$1)"]], "0", 0, 0, 0, 0, 0, 0, "00"], "SJ": ["47", "00", "0\\d{4}|(?:[489]\\d|79)\\d{6}", [5, 8], 0, 0, 0, 0, 0, 0, "79"], "SK": ["421", "00", "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}", [6, 7, 9], [["(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["[3-5][1-8]1", "[3-5][1-8]1[67]"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1/$2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1/$2 $3 $4", ["[3-5]"], "0$1"]], "0"], "SL": ["232", "00", "(?:[237-9]\\d|66)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[236-9]"], "(0$1)"]], "0"], "SM": ["378", "00", "(?:0549|[5-7]\\d)\\d{6}", [8, 10], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], ["(\\d{4})(\\d{6})", "$1 $2", ["0"]]], 0, 0, "([89]\\d{5})$", "0549$1"], "SN": ["221", "00", "(?:[378]\\d|93)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[379]"]]]], "SO": ["252", "00", "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}", [6, 7, 8, 9], [["(\\d{2})(\\d{4})", "$1 $2", ["8[125]"]], ["(\\d{6})", "$1", ["[134]"]], ["(\\d)(\\d{6})", "$1 $2", ["[15]|2[0-79]|3[0-46-8]|4[0-7]"]], ["(\\d)(\\d{7})", "$1 $2", ["(?:2|90)4|[67]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[348]|64|79|90"]], ["(\\d{2})(\\d{5,7})", "$1 $2", ["1|28|6[0-35-9]|77|9[2-9]"]]], "0"], "SR": ["597", "00", "(?:[2-5]|68|[78]\\d)\\d{5}", [6, 7], [["(\\d{2})(\\d{2})(\\d{2})", "$1-$2-$3", ["56"]], ["(\\d{3})(\\d{3})", "$1-$2", ["[2-5]"]], ["(\\d{3})(\\d{4})", "$1-$2", ["[6-8]"]]]], "SS": ["211", "00", "[19]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "ST": ["239", "00", "(?:22|9\\d)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[29]"]]]], "SV": ["503", "00", "[267]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?", [7, 8, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[89]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[267]"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[89]"]]]], "SX": ["1", "011", "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "(5\\d{6})$|1", "721$1", 0, "721"], "SY": ["963", "00", "[1-39]\\d{8}|[1-5]\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-5]"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1", 1]], "0"], "SZ": ["268", "00", "0800\\d{4}|(?:[237]\\d|900)\\d{6}", [8, 9], [["(\\d{4})(\\d{4})", "$1 $2", ["[0237]"]], ["(\\d{5})(\\d{4})", "$1 $2", ["9"]]]], "TA": ["290", "00", "8\\d{3}", [4], 0, 0, 0, 0, 0, 0, "8"], "TC": ["1", "011", "(?:[58]\\d\\d|649|900)\\d{7}", [10], 0, "1", 0, "([2-479]\\d{6})$|1", "649$1", 0, "649"], "TD": ["235", "00|16", "(?:22|[689]\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[26-9]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "TG": ["228", "00", "[279]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[279]"]]]], "TH": ["66", "00[1-9]", "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}", [8, 9, 10, 13], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[13-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "TJ": ["992", "810", "[0-57-9]\\d{8}", [9], [["(\\d{6})(\\d)(\\d{2})", "$1 $2 $3", ["331", "3317"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["44[02-479]|[34]7"]], ["(\\d{4})(\\d)(\\d{4})", "$1 $2 $3", ["3(?:[1245]|3[12])"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[0-57-9]"]]], 0, 0, 0, 0, 0, 0, 0, "8~10"], "TK": ["690", "00", "[2-47]\\d{3,6}", [4, 5, 6, 7]], "TL": ["670", "00", "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-489]|70"]], ["(\\d{4})(\\d{4})", "$1 $2", ["7"]]]], "TM": ["993", "810", "(?:[1-6]\\d|71)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["12"], "(8 $1)"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-5]"], "(8 $1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[67]"], "8 $1"]], "8", 0, 0, 0, 0, 0, 0, "8~10"], "TN": ["216", "00", "[2-57-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-57-9]"]]]], "TO": ["676", "00", "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}", [5, 7], [["(\\d{2})(\\d{3})", "$1-$2", ["[2-4]|50|6[09]|7[0-24-69]|8[05]"]], ["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[5-9]"]]]], "TR": ["90", "00", "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}", [7, 10, 12, 13], [["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["512|8[01589]|90"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5(?:[0-59]|61)", "5(?:[0-59]|61[06])", "5(?:[0-59]|61[06]1)"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24][1-8]|3[1-9]"], "(0$1)", 1], ["(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", 1]], "0"], "TT": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-46-8]\\d{6})$|1", "868$1", 0, "868"], "TV": ["688", "00", "(?:2|7\\d\\d|90)\\d{4}", [5, 6, 7], [["(\\d{2})(\\d{3})", "$1 $2", ["2"]], ["(\\d{2})(\\d{4})", "$1 $2", ["90"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]]], "TW": ["886", "0(?:0[25-79]|19)", "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}", [7, 8, 9, 10, 11], [["(\\d{2})(\\d)(\\d{4})", "$1 $2 $3", ["202"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[258]0"], "0$1"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]", "[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["7"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, 0, "#"], "TZ": ["255", "00[056]", "(?:[25-8]\\d|41|90)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[24]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["5"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[67]"], "0$1"]], "0"], "UA": ["380", "00", "[89]\\d{9}|[3-9]\\d{8}", [9, 10], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]", "6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])", "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|89|9[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "0~0"], "UG": ["256", "00[057]", "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}", [9], [["(\\d{4})(\\d{5})", "$1 $2", ["202", "2024"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[27-9]|4(?:6[45]|[7-9])"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[34]"], "0$1"]], "0"], "US": ["1", "011", "[2-9]\\d{9}|3\\d{6}", [10], [["(\\d{3})(\\d{4})", "$1-$2", ["310"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3", ["[2-9]"], 0, 1, "$1-$2-$3"]], "1", 0, 0, 0, 0, 0, [["(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[468])|7302[0-4]\\d)\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|983[2-47-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013569]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}"], [""], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"], 0, 0, 0, ["305209\\d{4}"]]], "UY": ["598", "0(?:0|1[3-9]\\d)", "0004\\d{2,9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}", [6, 7, 8, 9, 10, 11, 12, 13], [["(\\d{3})(\\d{3,4})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[49]0|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[124]"]], ["(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3 $4", ["0"]]], "0", 0, 0, 0, 0, 0, 0, "00", " int. "], "UZ": ["998", "00", "(?:20|33|[5-79]\\d|88)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[235-9]"]]]], "VA": ["39", "00", "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}", [6, 7, 8, 9, 10, 11, 12], 0, 0, 0, 0, 0, 0, "06698"], "VC": ["1", "011", "(?:[58]\\d\\d|784|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "784$1", 0, "784"], "VE": ["58", "00", "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}", [10], [["(\\d{3})(\\d{7})", "$1-$2", ["[24-689]"], "0$1"]], "0"], "VG": ["1", "011", "(?:284|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-578]\\d{6})$|1", "284$1", 0, "284"], "VI": ["1", "011", "[58]\\d{9}|(?:34|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "340$1", 0, "340"], "VN": ["84", "00", "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}", [7, 8, 9, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["80"], "0$1", 1], ["(\\d{4})(\\d{4,6})", "$1 $2", ["1"], 0, 1], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["6"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[357-9]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", 1]], "0"], "VU": ["678", "00", "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}", [5, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["[57-9]"]]]], "WF": ["681", "00", "(?:40|72|8\\d{4})\\d{4}|[89]\\d{5}", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[47-9]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]], "WS": ["685", "0", "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}", [5, 6, 7, 10], [["(\\d{5})", "$1", ["[2-5]|6[1-9]"]], ["(\\d{3})(\\d{3,7})", "$1 $2", ["[68]"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]]], "XK": ["383", "00", "2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2|39"], "0$1"], ["(\\d{2})(\\d{7,10})", "$1 $2", ["3"], "0$1"]], "0"], "YE": ["967", "00", "(?:1|7\\d)\\d{7}|[1-7]\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-6]|7(?:[24-6]|8[0-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"], "0$1"]], "0"], "YT": ["262", "00", "(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}", [9], 0, "0", 0, 0, 0, 0, 0, [["269(?:0[0-467]|15|5[0-4]|6\\d|[78]0)\\d{4}"], ["639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])\\d{4}"], ["80\\d{7}"], 0, 0, 0, 0, 0, ["9(?:(?:39|47)8[01]|769\\d)\\d{4}"]]], "ZA": ["27", "00", "[1-79]\\d{8}|8\\d{4,9}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,4})", "$1 $2", ["8[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["8[1-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["860"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0"], "ZM": ["260", "00", "800\\d{6}|(?:21|63|[79]\\d)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[79]"], "0$1"]], "0"], "ZW": ["263", "00", "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}", [5, 6, 7, 8, 9, 10], [["(\\d{3})(\\d{3,5})", "$1 $2", ["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"], "0$1"], ["(\\d)(\\d{3})(\\d{2,4})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["80"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2", "2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)", "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["29[013-9]|39|54"], "0$1"], ["(\\d{4})(\\d{3,5})", "$1 $2", ["(?:25|54)8", "258|5483"], "0$1"]], "0"] }, "nonGeographic": { "800": ["800", 0, "(?:00|[1-9]\\d)\\d{6}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["\\d"]]], 0, 0, 0, 0, 0, 0, [0, 0, ["(?:00|[1-9]\\d)\\d{6}"]]], "808": ["808", 0, "[1-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[1-9]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, ["[1-9]\\d{7}"]]], "870": ["870", 0, "7\\d{11}|[35-7]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[35-7]"]]], 0, 0, 0, 0, 0, 0, [0, ["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"]]], "878": ["878", 0, "10\\d{10}", [12], [["(\\d{2})(\\d{5})(\\d{5})", "$1 $2 $3", ["1"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["10\\d{10}"]]], "881": ["881", 0, "6\\d{9}|[0-36-9]\\d{8}", [9, 10], [["(\\d)(\\d{3})(\\d{5})", "$1 $2 $3", ["[0-37-9]"]], ["(\\d)(\\d{3})(\\d{5,6})", "$1 $2 $3", ["6"]]], 0, 0, 0, 0, 0, 0, [0, ["6\\d{9}|[0-36-9]\\d{8}"]]], "882": ["882", 0, "[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5})", "$1 $2", ["16|342"]], ["(\\d{2})(\\d{6})", "$1 $2", ["49"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["1[36]|9"]], ["(\\d{2})(\\d{4})(\\d{3})", "$1 $2 $3", ["3[23]"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["16"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|23|3(?:[15]|4[57])|4|51"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["34"]], ["(\\d{2})(\\d{4,5})(\\d{5})", "$1 $2 $3", ["[1-35]"]]], 0, 0, 0, 0, 0, 0, [0, ["342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}", [7, 8, 9, 10, 12]], 0, 0, 0, ["348[57]\\d{7}", [11]], 0, 0, ["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}"]]], "883": ["883", 0, "(?:[1-4]\\d|51)\\d{6,10}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,8})", "$1 $2 $3", ["[14]|2[24-689]|3[02-689]|51[24-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["510"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["21"]], ["(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["51[13]"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[235]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"]]], "888": ["888", 0, "\\d{11}", [11], [["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3"]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, ["\\d{11}"]]], "979": ["979", 0, "[1359]\\d{8}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[1359]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, ["[1359]\\d{8}"]]] } };
50163
+ const metadata = { "version": 4, "country_calling_codes": { "1": ["US", "AG", "AI", "AS", "BB", "BM", "BS", "CA", "DM", "DO", "GD", "GU", "JM", "KN", "KY", "LC", "MP", "MS", "PR", "SX", "TC", "TT", "VC", "VG", "VI"], "7": ["RU", "KZ"], "20": ["EG"], "27": ["ZA"], "30": ["GR"], "31": ["NL"], "32": ["BE"], "33": ["FR"], "34": ["ES"], "36": ["HU"], "39": ["IT", "VA"], "40": ["RO"], "41": ["CH"], "43": ["AT"], "44": ["GB", "GG", "IM", "JE"], "45": ["DK"], "46": ["SE"], "47": ["NO", "SJ"], "48": ["PL"], "49": ["DE"], "51": ["PE"], "52": ["MX"], "53": ["CU"], "54": ["AR"], "55": ["BR"], "56": ["CL"], "57": ["CO"], "58": ["VE"], "60": ["MY"], "61": ["AU", "CC", "CX"], "62": ["ID"], "63": ["PH"], "64": ["NZ"], "65": ["SG"], "66": ["TH"], "81": ["JP"], "82": ["KR"], "84": ["VN"], "86": ["CN"], "90": ["TR"], "91": ["IN"], "92": ["PK"], "93": ["AF"], "94": ["LK"], "95": ["MM"], "98": ["IR"], "211": ["SS"], "212": ["MA", "EH"], "213": ["DZ"], "216": ["TN"], "218": ["LY"], "220": ["GM"], "221": ["SN"], "222": ["MR"], "223": ["ML"], "224": ["GN"], "225": ["CI"], "226": ["BF"], "227": ["NE"], "228": ["TG"], "229": ["BJ"], "230": ["MU"], "231": ["LR"], "232": ["SL"], "233": ["GH"], "234": ["NG"], "235": ["TD"], "236": ["CF"], "237": ["CM"], "238": ["CV"], "239": ["ST"], "240": ["GQ"], "241": ["GA"], "242": ["CG"], "243": ["CD"], "244": ["AO"], "245": ["GW"], "246": ["IO"], "247": ["AC"], "248": ["SC"], "249": ["SD"], "250": ["RW"], "251": ["ET"], "252": ["SO"], "253": ["DJ"], "254": ["KE"], "255": ["TZ"], "256": ["UG"], "257": ["BI"], "258": ["MZ"], "260": ["ZM"], "261": ["MG"], "262": ["RE", "YT"], "263": ["ZW"], "264": ["NA"], "265": ["MW"], "266": ["LS"], "267": ["BW"], "268": ["SZ"], "269": ["KM"], "290": ["SH", "TA"], "291": ["ER"], "297": ["AW"], "298": ["FO"], "299": ["GL"], "350": ["GI"], "351": ["PT"], "352": ["LU"], "353": ["IE"], "354": ["IS"], "355": ["AL"], "356": ["MT"], "357": ["CY"], "358": ["FI", "AX"], "359": ["BG"], "370": ["LT"], "371": ["LV"], "372": ["EE"], "373": ["MD"], "374": ["AM"], "375": ["BY"], "376": ["AD"], "377": ["MC"], "378": ["SM"], "380": ["UA"], "381": ["RS"], "382": ["ME"], "383": ["XK"], "385": ["HR"], "386": ["SI"], "387": ["BA"], "389": ["MK"], "420": ["CZ"], "421": ["SK"], "423": ["LI"], "500": ["FK"], "501": ["BZ"], "502": ["GT"], "503": ["SV"], "504": ["HN"], "505": ["NI"], "506": ["CR"], "507": ["PA"], "508": ["PM"], "509": ["HT"], "590": ["GP", "BL", "MF"], "591": ["BO"], "592": ["GY"], "593": ["EC"], "594": ["GF"], "595": ["PY"], "596": ["MQ"], "597": ["SR"], "598": ["UY"], "599": ["CW", "BQ"], "670": ["TL"], "672": ["NF"], "673": ["BN"], "674": ["NR"], "675": ["PG"], "676": ["TO"], "677": ["SB"], "678": ["VU"], "679": ["FJ"], "680": ["PW"], "681": ["WF"], "682": ["CK"], "683": ["NU"], "685": ["WS"], "686": ["KI"], "687": ["NC"], "688": ["TV"], "689": ["PF"], "690": ["TK"], "691": ["FM"], "692": ["MH"], "850": ["KP"], "852": ["HK"], "853": ["MO"], "855": ["KH"], "856": ["LA"], "880": ["BD"], "886": ["TW"], "960": ["MV"], "961": ["LB"], "962": ["JO"], "963": ["SY"], "964": ["IQ"], "965": ["KW"], "966": ["SA"], "967": ["YE"], "968": ["OM"], "970": ["PS"], "971": ["AE"], "972": ["IL"], "973": ["BH"], "974": ["QA"], "975": ["BT"], "976": ["MN"], "977": ["NP"], "992": ["TJ"], "993": ["TM"], "994": ["AZ"], "995": ["GE"], "996": ["KG"], "998": ["UZ"] }, "countries": { "AC": ["247", "00", "(?:[01589]\\d|[46])\\d{4}", [5, 6]], "AD": ["376", "00", "(?:1|6\\d)\\d{7}|[135-9]\\d{5}", [6, 8, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["[135-9]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["1"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]]], "AE": ["971", "00", "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{2,9})", "$1 $2", ["60|8"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[236]|[479][2-8]"], "0$1"], ["(\\d{3})(\\d)(\\d{5})", "$1 $2 $3", ["[479]"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"]], "0"], "AF": ["93", "00", "[2-7]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"]], "0"], "AG": ["1", "011", "(?:268|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([457]\\d{6})$|1", "268$1", 0, "268"], "AI": ["1", "011", "(?:264|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2457]\\d{6})$|1", "264$1", 0, "264"], "AL": ["355", "00", "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}", [6, 7, 8, 9], [["(\\d{3})(\\d{3,4})", "$1 $2", ["80|9"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["4[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2358][2-5]|4"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["[23578]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["6"], "0$1"]], "0"], "AM": ["374", "00", "(?:[1-489]\\d|55|60|77)\\d{6}", [8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[89]0"], "0 $1"], ["(\\d{3})(\\d{5})", "$1 $2", ["2|3[12]"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["1|47"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[3-9]"], "0$1"]], "0"], "AO": ["244", "00", "[29]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[29]"]]]], "AR": ["54", "00", "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}", [10, 11], [["(\\d{4})(\\d{2})(\\d{4})", "$1 $2-$3", ["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])", "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", 1], ["(\\d)(\\d{4})(\\d{2})(\\d{4})", "$2 15-$3-$4", ["9(?:2[2-469]|3[3-578])", "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))", "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 15-$3-$4", ["91"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 15-$3-$4", ["9"], "0$1", 0, "$1 $2 $3-$4"]], "0", 0, "0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?", "9$1"], "AS": ["1", "011", "(?:[58]\\d\\d|684|900)\\d{7}", [10], 0, "1", 0, "([267]\\d{6})$|1", "684$1", 0, "684"], "AT": ["43", "00", "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"], ["(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"], ["(\\d{3})(\\d{3,10})", "$1 $2", ["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"], "0$1"], ["(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"]], "0"], "AU": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}", [5, 6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[2378]"], "(0$1)"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]]], "0", 0, "(183[12])|0", 0, 0, 0, [["(?:(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\d|2[0-8]))\\d|3(?:(?:[0-3589]\\d|6[1-9]|7[0-35-9])\\d|4(?:[0-578]\\d|90)))\\d\\d|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4])|3\\d\\d)|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, ["163\\d{2,6}", [5, 6, 7, 8, 9]], ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "AW": ["297", "00", "(?:[25-79]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[25-9]"]]]], "AX": ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}", [5, 6, 7, 8, 9, 10, 11, 12], 0, "0", 0, 0, 0, 0, "18", 0, "00"], "AZ": ["994", "00", "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[28]|2|365|46", "1[28]|2|365[45]|46", "1[28]|2|365(?:4|5[02])|46"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[13-9]"], "0$1"]], "0"], "BA": ["387", "00", "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"]], "0"], "BB": ["1", "011", "(?:246|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "246$1", 0, "246"], "BD": ["880", "00", "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{2})(\\d{4,6})", "$1-$2", ["31[5-8]|[459]1"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1-$2", ["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"], "0$1"], ["(\\d{4})(\\d{3,6})", "$1-$2", ["[13-9]|2[23]"], "0$1"], ["(\\d)(\\d{7,8})", "$1-$2", ["2"], "0$1"]], "0"], "BE": ["32", "00", "4\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:80|9)0"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[239]|4[23]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[15-8]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4"], "0$1"]], "0"], "BF": ["226", "00", "[025-7]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[025-7]"]]]], "BG": ["359", "00", "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}", [6, 7, 8, 9, 12], [["(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"], ["(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"]], "0"], "BH": ["973", "00", "[136-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[13679]|8[02-4679]"]]]], "BI": ["257", "00", "(?:[267]\\d|31)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2367]"]]]], "BJ": ["229", "00", "[24-689]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-689]"]]]], "BL": ["590", "00", "590\\d{6}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}"], ["69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "BM": ["1", "011", "(?:441|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "441$1", 0, "441"], "BN": ["673", "00", "[2-578]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-578]"]]]], "BO": ["591", "00(?:1\\d)?", "8001\\d{5}|(?:[2-467]\\d|50)\\d{6}", [8, 9], [["(\\d)(\\d{7})", "$1 $2", ["[235]|4[46]"]], ["(\\d{8})", "$1", ["[67]"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["8"]]], "0", 0, "0(1\\d)?"], "BQ": ["599", "00", "(?:[34]1|7\\d)\\d{5}", [7], 0, 0, 0, 0, 0, 0, "[347]"], "BR": ["55", "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)", "(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}", [8, 9, 10, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["300|4(?:0[02]|37)", "4(?:02|37)0|[34]00"]], ["(\\d{3})(\\d{2,3})(\\d{4})", "$1 $2 $3", ["(?:[358]|90)0"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"], "($1)"], ["(\\d{2})(\\d{5})(\\d{4})", "$1 $2-$3", ["[16][1-9]|[2-57-9]"], "($1)"]], "0", 0, "(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?", "$2"], "BS": ["1", "011", "(?:242|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([3-8]\\d{6})$|1", "242$1", 0, "242"], "BT": ["975", "00", "[17]\\d{7}|[2-8]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-68]|7[246]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|7"]]]], "BW": ["267", "00", "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["90"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[24-6]|3[15-9]"]], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37]"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["8"]]]], "BY": ["375", "810", "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3})", "$1 $2", ["800"], "8 $1"], ["(\\d{3})(\\d{2})(\\d{2,4})", "$1 $2 $3", ["800"], "8 $1"], ["(\\d{4})(\\d{2})(\\d{3})", "$1 $2-$3", ["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])", "1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"], "8 0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["1(?:[56]|7[467])|2[1-3]"], "8 0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-4]"], "8 0$1"], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[89]"], "8 $1"]], "8", 0, "0|80?", 0, 0, 0, 0, "8~10"], "BZ": ["501", "00", "(?:0800\\d|[2-8])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-8]"]], ["(\\d)(\\d{3})(\\d{4})(\\d{3})", "$1-$2-$3-$4", ["0"]]]], "CA": ["1", "011", "(?:[2-8]\\d|90)\\d{8}|3\\d{6}", [7, 10], 0, "1", 0, 0, 0, 0, 0, [["(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|90[25])[2-9]\\d{6}", [10]], ["", [10]], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", [10]], ["900[2-9]\\d{6}", [10]], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\d{6}", [10]], 0, ["310\\d{4}", [7]], 0, ["600[2-9]\\d{6}", [10]]]], "CC": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CD": ["243", "00", "(?:(?:[189]|5\\d)\\d|2)\\d{7}|[1-68]\\d{6}", [7, 8, 9, 10], [["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["[1-6]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["5"], "0$1"]], "0"], "CF": ["236", "00", "(?:[27]\\d{3}|8776)\\d{4}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[278]"]]]], "CG": ["242", "00", "222\\d{6}|(?:0\\d|80)\\d{7}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[02]"]]]], "CH": ["41", "00", "8\\d{11}|[2-9]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8[047]|90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]|81"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["8"], "0$1"]], "0"], "CI": ["225", "00", "[02]\\d{9}", [10], [["(\\d{2})(\\d{2})(\\d)(\\d{5})", "$1 $2 $3 $4", ["2"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3 $4", ["0"]]]], "CK": ["682", "00", "[2-578]\\d{4}", [5], [["(\\d{2})(\\d{3})", "$1 $2", ["[2-578]"]]]], "CL": ["56", "(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0", "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}", [9, 10, 11], [["(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9[2-9]"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"], "($1)"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]]]], "CM": ["237", "00", "[26]\\d{8}|88\\d{6,7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["88"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[26]|88"]]]], "CN": ["86", "00|1(?:[12]\\d|79)\\d\\d00", "(?:(?:1[03-689]|2\\d)\\d\\d|6)\\d{8}|1\\d{10}|[126]\\d{6}(?:\\d(?:\\d{2})?)?|86\\d{5,6}|(?:[3-579]\\d|8[0-57-9])\\d{5,9}", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5,6})", "$1 $2", ["(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]", "(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123"], "0$1"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]", "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]", "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])", "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|2(?:[02-57-9]|1[1-9])", "10|2(?:[02-57-9]|1[1-9])", "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"], "0$1", 1], ["(\\d{3})(\\d{7,8})", "$1 $2", ["9"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["80"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[3-578]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["[12]"], "0$1", 1]], "0", 0, "(1(?:[12]\\d|79)\\d\\d)|0", 0, 0, 0, 0, "00"], "CO": ["57", "00(?:4(?:[14]4|56)|[579])", "60\\d{8}|(?:1\\d|[39])\\d{9}", [10, 11], [["(\\d{3})(\\d{7})", "$1 $2", ["6|90"], "($1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3[0-357]|91"]], ["(\\d)(\\d{3})(\\d{7})", "$1-$2-$3", ["1"], "0$1", 0, "$1 $2 $3"]], "0", 0, "0([3579]|4(?:[14]4|56))?"], "CR": ["506", "00", "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}", [8, 10], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[3-9]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[89]"]]], 0, 0, "(19(?:0[0-2468]|1[09]|20|66|77|99))"], "CU": ["53", "119", "(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}", [6, 7, 8, 10], [["(\\d{2})(\\d{4,6})", "$1 $2", ["2[1-4]|[34]"], "(0$1)"], ["(\\d)(\\d{6,7})", "$1 $2", ["7"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["[56]"], "0$1"], ["(\\d{3})(\\d{7})", "$1 $2", ["8"], "0$1"]], "0"], "CV": ["238", "0", "(?:[2-59]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2-589]"]]]], "CW": ["599", "00", "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[3467]"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["9[4-8]"]]], 0, 0, 0, 0, 0, "[69]"], "CX": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CY": ["357", "00", "(?:[279]\\d|[58]0)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[257-9]"]]]], "CZ": ["420", "00", "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}", [9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["96"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]]], "DE": ["49", "00", "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [["(\\d{2})(\\d{3,13})", "$1 $2", ["3[02]|40|[68]9"], "0$1"], ["(\\d{3})(\\d{3,12})", "$1 $2", ["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", "2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"], "0$1"], ["(\\d{4})(\\d{2,11})", "$1 $2", ["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]", "[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["138"], "0$1"], ["(\\d{5})(\\d{2,10})", "$1 $2", ["3"], "0$1"], ["(\\d{3})(\\d{5,11})", "$1 $2", ["181"], "0$1"], ["(\\d{3})(\\d)(\\d{4,10})", "$1 $2 $3", ["1(?:3|80)|9"], "0$1"], ["(\\d{3})(\\d{7,8})", "$1 $2", ["1[67]"], "0$1"], ["(\\d{3})(\\d{7,12})", "$1 $2", ["8"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["185", "1850", "18500"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["18[68]"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["15[03568]", "15(?:[0568]|31)"], "0$1"], ["(\\d{3})(\\d{8})", "$1 $2", ["18"], "0$1"], ["(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"], ["(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"]], "0"], "DJ": ["253", "00", "(?:2\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[27]"]]]], "DK": ["45", "00", "[2-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-9]"]]]], "DM": ["1", "011", "(?:[58]\\d\\d|767|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "767$1", 0, "767"], "DO": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "8001|8[024]9"], "DZ": ["213", "00", "(?:[1-4]|[5-79]\\d|80)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["9"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-8]"], "0$1"]], "0"], "EC": ["593", "00", "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}", [8, 9, 10, 11], [["(\\d)(\\d{3})(\\d{4})", "$1 $2-$3", ["[2-7]"], "(0$1)", 0, "$1-$2-$3"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]]], "0"], "EE": ["372", "00", "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88", "[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]], ["(\\d{4})(\\d{3,4})", "$1 $2", ["[45]|8(?:00|[1-49])", "[45]|8(?:00[1-9]|[1-49])"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]], "EG": ["20", "00", "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}", [8, 9, 10], [["(\\d)(\\d{7,8})", "$1 $2", ["[23]"], "0$1"], ["(\\d{2})(\\d{6,7})", "$1 $2", ["1[35]|[4-6]|8[2468]|9[235-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{8})", "$1 $2", ["1"], "0$1"]], "0"], "EH": ["212", "00", "[5-8]\\d{8}", [9], 0, "0", 0, 0, 0, 0, "528[89]"], "ER": ["291", "00", "[178]\\d{6}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[178]"], "0$1"]], "0"], "ES": ["34", "00", "[5-9]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]00"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-9]"]]]], "ET": ["251", "00", "(?:11|[2-579]\\d)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-579]"], "0$1"]], "0"], "FI": ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{5})", "$1", ["20[2-59]"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1 $2", ["(?:[1-3]0|[68])0|70[07-9]"], "0$1"], ["(\\d{2})(\\d{4,8})", "$1 $2", ["[14]|2[09]|50|7[135]"], "0$1"], ["(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], ["(\\d)(\\d{4,9})", "$1 $2", ["(?:1[49]|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"], "0$1"]], "0", 0, 0, 0, 0, "1[03-79]|[2-9]", 0, "00"], "FJ": ["679", "0(?:0|52)", "45\\d{5}|(?:0800\\d|[235-9])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[235-9]|45"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "FK": ["500", "00", "[2-7]\\d{4}", [5]], "FM": ["691", "00", "(?:[39]\\d\\d|820)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[389]"]]]], "FO": ["298", "00", "[2-9]\\d{5}", [6], [["(\\d{6})", "$1", ["[2-9]"]]], 0, 0, "(10(?:01|[12]0|88))"], "FR": ["33", "00", "[1-9]\\d{8}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0 $1"], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[1-79]"], "0$1"]], "0"], "GA": ["241", "00", "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}", [7, 8], [["(\\d)(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-7]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["11|[67]"], "0$1"]], 0, 0, "0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})", "$1"], "GB": ["44", "00", "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}", [7, 9, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["800", "8001", "80011", "800111", "8001111"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["845", "8454", "84546", "845464"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["800"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["1(?:38|5[23]|69|76|94)", "1(?:(?:38|69)7|5(?:24|39)|768|946)", "1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["1(?:[2-69][02-9]|[78])"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[25]|7(?:0|6[02-9])", "[25]|7(?:0|6(?:[03-9]|2[356]))"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1389]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0-35])|4(?:(?:[0-5]\\d|70)\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|50))\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[0-3]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}", [9, 10]], ["7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]], 0, " x"], "GD": ["1", "011", "(?:473|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "473$1", 0, "473"], "GE": ["995", "00", "(?:[3-57]\\d\\d|800)\\d{6}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["32"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[57]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[348]"], "0$1"]], "0"], "GF": ["594", "00", "[56]94\\d{6}|(?:80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[56]|9[47]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[89]"], "0$1"]], "0"], "GG": ["44", "00", "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?", [7, 9, 10], 0, "0", 0, "([25-9]\\d{5})$|0", "1481$1", 0, 0, [["1481[25-9]\\d{5}", [10]], ["7(?:(?:781|839)\\d|911[17])\\d{5}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]]], "GH": ["233", "00", "(?:[235]\\d{3}|800)\\d{5}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[235]"], "0$1"]], "0"], "GI": ["350", "00", "(?:[25]\\d|60)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["2"]]]], "GL": ["299", "00", "(?:19|[2-689]\\d|70)\\d{4}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["19|[2-9]"]]]], "GM": ["220", "00", "[2-9]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "GN": ["224", "00", "722\\d{6}|(?:3|6\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["3"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[67]"]]]], "GP": ["590", "00", "590\\d{6}|(?:69|80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\d)\\d{4}"], ["69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "GQ": ["240", "00", "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235]"]], ["(\\d{3})(\\d{6})", "$1 $2", ["[89]"]]]], "GR": ["30", "00", "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}", [10, 11, 12], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["21|7"]], ["(\\d{4})(\\d{6})", "$1 $2", ["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2689]"]], ["(\\d{3})(\\d{3,4})(\\d{5})", "$1 $2 $3", ["8"]]]], "GT": ["502", "00", "80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-8]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]], "GU": ["1", "011", "(?:[58]\\d\\d|671|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "671$1", 0, "671"], "GW": ["245", "00", "[49]\\d{8}|4\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["40"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"]]]], "GY": ["592", "001", "(?:[2-8]\\d{3}|9008)\\d{3}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "HK": ["852", "00(?:30|5[09]|[126-9]?)", "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}", [5, 6, 7, 8, 9, 11], [["(\\d{3})(\\d{2,5})", "$1 $2", ["900", "9003"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{3})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "HN": ["504", "00", "8\\d{10}|[237-9]\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]]]], "HR": ["385", "00", "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}", [6, 7, 8, 9], [["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["6[01]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{4})(\\d{3})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6|7[245]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-57]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"]], "0"], "HT": ["509", "00", "(?:[2-489]\\d|55)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[2-589]"]]]], "HU": ["36", "00", "[235-7]\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "06 $1"]], "06"], "ID": ["62", "00[89]", "00[1-9]\\d{9,14}|(?:[1-36]|8\\d{5})\\d{6}|00\\d{9}|[1-9]\\d{8,10}|[2-9]\\d{7}", [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]], ["(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"], ["(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"], ["(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"], ["(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"], ["(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"], ["(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"]], "0"], "IE": ["353", "00", "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}", [7, 8, 9, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["2[24-9]|47|58|6[237-9]|9[35-9]"], "(0$1)"], ["(\\d{3})(\\d{5})", "$1 $2", ["[45]0"], "(0$1)"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2569]|4[1-69]|7[14]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["81"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["4"], "(0$1)"], ["(\\d{2})(\\d)(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "IL": ["972", "0(?:0|1[2-9])", "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}", [7, 8, 9, 10, 11, 12], [["(\\d{4})(\\d{3})", "$1-$2", ["125"]], ["(\\d{4})(\\d{2})(\\d{2})", "$1-$2-$3", ["121"]], ["(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-489]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1-$2-$3", ["12"]], ["(\\d{4})(\\d{6})", "$1-$2", ["159"]], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3-$4", ["1[7-9]"]], ["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})", "$1-$2 $3-$4", ["15"]]], "0"], "IM": ["44", "00", "1624\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([25-8]\\d{5})$|0", "1624$1", 0, "74576|(?:16|7[56])24"], "IN": ["91", "00", "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}", [8, 9, 10, 11, 12, 13], [["(\\d{8})", "$1", ["5(?:0|2[23]|3[03]|[67]1|88)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"], 0, 1], ["(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], 0, 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["11|2[02]|33|4[04]|79[1-7]|80[2-46]", "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])", "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"], "0$1", 1], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807", "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]", "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"], "0$1", 1], ["(\\d{5})(\\d{5})", "$1 $2", ["[6-9]"], "0$1", 1], ["(\\d{4})(\\d{2,4})(\\d{4})", "$1 $2 $3", ["1(?:6|8[06])", "1(?:6|8[06]0)"], 0, 1], ["(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], 0, 1]], "0"], "IO": ["246", "00", "3\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["3"]]]], "IQ": ["964", "00", "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-6]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"]], "0"], "IR": ["98", "00", "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}", [4, 5, 6, 7, 10], [["(\\d{4,5})", "$1", ["96"], "0$1"], ["(\\d{2})(\\d{4,5})", "$1 $2", ["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[1-8]"], "0$1"]], "0"], "IS": ["354", "00|1(?:0(?:01|[12]0)|100)", "(?:38\\d|[4-9])\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["[4-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["3"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "IT": ["39", "00", "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", [6, 7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], ["(\\d{3})(\\d{3,6})", "$1 $2", ["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]], ["(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], ["(\\d{4})(\\d{4})", "$1 $2", ["894"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1(?:44|[679])|[378]|43"]], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], ["(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]]], 0, 0, 0, 0, 0, 0, [["0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}", [6, 7, 8, 9, 10, 11]], ["3[2-9]\\d{7,8}|(?:31|43)\\d{8}", [9, 10]], ["80(?:0\\d{3}|3)\\d{3}", [6, 9]], ["(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", [6, 8, 9, 10]], ["1(?:78\\d|99)\\d{6}", [9, 10]], ["3[2-8]\\d{9,10}", [11, 12]], 0, 0, ["55\\d{8}", [10]], ["84(?:[08]\\d{3}|[17])\\d{3}", [6, 9]]]], "JE": ["44", "00", "1534\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([0-24-8]\\d{5})$|0", "1534$1", 0, 0, [["1534[0-24-8]\\d{5}"], ["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97\\d))\\d{5}"], ["80(?:07(?:35|81)|8901)\\d{4}"], ["(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"], ["701511\\d{4}"], 0, ["(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}"], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}"], ["56\\d{8}"]]], "JM": ["1", "011", "(?:[58]\\d\\d|658|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "658|876"], "JO": ["962", "00", "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2356]|87"], "(0$1)"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["70"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"]], "0"], "JP": ["81", "010", "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}", [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"], ["(\\d{4})(\\d)(\\d{4})", "$1-$2-$3", ["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2-$3", ["[36]|4(?:2[09]|7[01])", "[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3", ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[257-9]"], "0$1"]], "0", 0, "(000[259]\\d{6})$|(?:(?:003768)0?)|0", "$1"], "KE": ["254", "000", "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}", [7, 8, 9, 10], [["(\\d{2})(\\d{5,7})", "$1 $2", ["[24-6]"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[17]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0"], "KG": ["996", "00", "8\\d{9}|[235-9]\\d{8}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["3(?:1[346]|[24-79])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-79]|88"], "0$1"], ["(\\d{3})(\\d{3})(\\d)(\\d{2,3})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "KH": ["855", "00[14-9]", "1\\d{9}|[1-9]\\d{7,8}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "KI": ["686", "00", "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}", [5, 8], 0, "0"], "KM": ["269", "00", "[3478]\\d{6}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[3478]"]]]], "KN": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "869$1", 0, "869"], "KP": ["850", "00|99", "85\\d{6}|(?:19\\d|[2-7])\\d{7}", [8, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"]], "0"], "KR": ["82", "00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))", "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}", [5, 6, 8, 9, 10, 11, 12, 13, 14], [["(\\d{2})(\\d{3,4})", "$1-$2", ["(?:3[1-3]|[46][1-4]|5[1-5])1"], "0$1"], ["(\\d{4})(\\d{4})", "$1-$2", ["1"]], ["(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[36]0|8"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1-$2-$3", ["[1346]|5[1-5]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1"]], "0", 0, "0(8(?:[1-46-8]|5\\d\\d))?"], "KW": ["965", "00", "18\\d{5}|(?:[2569]\\d|41)\\d{6}", [7, 8], [["(\\d{4})(\\d{3,4})", "$1 $2", ["[169]|2(?:[235]|4[1-35-9])|52"]], ["(\\d{3})(\\d{5})", "$1 $2", ["[245]"]]]], "KY": ["1", "011", "(?:345|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "345$1", 0, "345"], "KZ": ["7", "810", "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}", [10, 14], 0, "8", 0, 0, 0, 0, "33|7", 0, "8~10"], "LA": ["856", "00", "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2[13]|3[14]|[4-8]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["30[0135-9]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0"], "LB": ["961", "00", "[27-9]\\d{7}|[13-9]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27-9]"]]], "0"], "LC": ["1", "011", "(?:[58]\\d\\d|758|900)\\d{7}", [10], 0, "1", 0, "([2-8]\\d{6})$|1", "758$1", 0, "758"], "LI": ["423", "00", "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", [7, 9], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2379]|8(?:0[09]|7)", "[2379]|8(?:0(?:02|9)|7)"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["69"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]], "0", 0, "(1001)|0"], "LK": ["94", "00", "[1-9]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[1-689]"], "0$1"]], "0"], "LR": ["231", "00", "(?:[245]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["4[67]|[56]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-578]"], "0$1"]], "0"], "LS": ["266", "00", "(?:[256]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2568]"]]]], "LT": ["370", "00", "(?:[3469]\\d|52|[78]0)\\d{6}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["52[0-7]"], "(0-$1)", 1], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0 $1", 1], ["(\\d{2})(\\d{6})", "$1 $2", ["37|4(?:[15]|6[1-8])"], "(0-$1)", 1], ["(\\d{3})(\\d{5})", "$1 $2", ["[3-6]"], "(0-$1)", 1]], "0", 0, "[08]"], "LU": ["352", "00", "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}", [4, 5, 6, 7, 8, 9, 10, 11], [["(\\d{2})(\\d{3})", "$1 $2", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["20[2-689]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4", ["2(?:[0367]|4[3-8])"]], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["80[01]|90[015]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["20"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4 $5", ["2(?:[0367]|4[3-8])"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})", "$1 $2 $3 $4", ["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"]]], 0, 0, "(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)"], "LV": ["371", "00", "(?:[268]\\d|90)\\d{6}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[269]|8[01]"]]]], "LY": ["218", "00", "[2-9]\\d{8}", [9], [["(\\d{2})(\\d{7})", "$1-$2", ["[2-9]"], "0$1"]], "0"], "MA": ["212", "00", "[5-8]\\d{8}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5[45]"], "0$1"], ["(\\d{4})(\\d{5})", "$1-$2", ["5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)"], "0$1"], ["(\\d{2})(\\d{7})", "$1-$2", ["8"], "0$1"], ["(\\d{3})(\\d{6})", "$1-$2", ["[5-7]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["5(?:2(?:[0-25-79]\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}"], ["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-4]|5[01]|8[0-3]))\\d{6}"], ["80[0-7]\\d{6}"], ["89\\d{7}"], 0, 0, 0, 0, ["(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}"]]], "MC": ["377", "00", "(?:[3489]|6\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["6"], "0$1"]], "0"], "MD": ["373", "00", "(?:[235-7]\\d|[89]0)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["22|3"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[25-7]"], "0$1"]], "0"], "ME": ["382", "00", "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "0$1"]], "0"], "MF": ["590", "00", "590\\d{6}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\d{4}"], ["69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "MG": ["261", "00", "[23]\\d{8}", [9], [["(\\d{2})(\\d{2})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0", 0, "([24-9]\\d{6})$|0", "20$1"], "MH": ["692", "011", "329\\d{4}|(?:[256]\\d|45)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-6]"]]], "1"], "MK": ["389", "00", "[2-578]\\d{7}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2|34[47]|4(?:[37]7|5[47]|64)"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[347]"], "0$1"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[58]"], "0$1"]], "0"], "ML": ["223", "00", "[24-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]]]], "MM": ["95", "00", "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}", [6, 7, 8, 9, 10], [["(\\d)(\\d{2})(\\d{3})", "$1 $2 $3", ["16|2"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[4-7]|8[1-35]"], "0$1"], ["(\\d)(\\d{3})(\\d{4,6})", "$1 $2 $3", ["9(?:2[0-4]|[35-9]|4[137-9])"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["92"], "0$1"], ["(\\d)(\\d{5})(\\d{4})", "$1 $2 $3", ["9"], "0$1"]], "0"], "MN": ["976", "001", "[12]\\d{7,9}|[5-9]\\d{7}", [8, 9, 10], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[12]1"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[5-9]"]], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[12]2[1-3]"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["[12](?:27|3[2-8]|4[2-68]|5[1-4689])", "[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["[12]"], "0$1"]], "0"], "MO": ["853", "00", "0800\\d{3}|(?:28|[68]\\d)\\d{6}", [7, 8], [["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[268]"]]]], "MP": ["1", "011", "[58]\\d{9}|(?:67|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "670$1", 0, "670"], "MQ": ["596", "00", "596\\d{6}|(?:69|80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "MR": ["222", "00", "(?:[2-4]\\d\\d|800)\\d{5}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-48]"]]]], "MS": ["1", "011", "(?:[58]\\d\\d|664|900)\\d{7}", [10], 0, "1", 0, "([34]\\d{6})$|1", "664$1", 0, "664"], "MT": ["356", "00", "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2357-9]"]]]], "MU": ["230", "0(?:0|[24-7]0|3[03])", "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-46]|8[013]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[57]"]], ["(\\d{5})(\\d{5})", "$1 $2", ["8"]]], 0, 0, 0, 0, 0, 0, 0, "020"], "MV": ["960", "0(?:0|19)", "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}", [7, 10], [["(\\d{3})(\\d{4})", "$1-$2", ["[34679]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "MW": ["265", "00", "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}", [7, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["1[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[137-9]"], "0$1"]], "0"], "MX": ["52", "0[09]", "[2-9]\\d{9}", [10], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "MY": ["60", "00", "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1-$2 $3", ["[4-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1-$2 $3", ["1(?:[02469]|[378][1-9]|53)|8", "1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2 $3", ["3"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3-$4", ["1(?:[367]|80)"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2 $3", ["15"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2 $3", ["1"], "0$1"]], "0"], "MZ": ["258", "00", "(?:2|8\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2|8[2-79]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]], "NA": ["264", "00", "[68]\\d{7,8}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["87"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0"], "NC": ["687", "00", "(?:050|[2-57-9]\\d\\d)\\d{3}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]]]], "NE": ["227", "00", "[027-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["08"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[089]|2[013]|7[0467]"]]]], "NF": ["672", "00", "[13]\\d{5}", [6], [["(\\d{2})(\\d{4})", "$1 $2", ["1[0-3]"]], ["(\\d)(\\d{5})", "$1 $2", ["[13]"]]], 0, 0, "([0-258]\\d{4})$", "3$1"], "NG": ["234", "009", "38\\d{6}|[78]\\d{9,13}|(?:20|9\\d)\\d{8}", [8, 10, 11, 12, 13, 14], [["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["3"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[7-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["20[129]"], "0$1"], ["(\\d{4})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{3})(\\d{5})(\\d{5,6})", "$1 $2 $3", ["[78]"], "0$1"]], "0"], "NI": ["505", "00", "(?:1800|[25-8]\\d{3})\\d{4}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[125-8]"]]]], "NL": ["31", "00", "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}", [5, 6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"], ["(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-578]|91"], "0$1"], ["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"]], "0"], "NO": ["47", "00", "(?:0|[2-9]\\d{3})\\d{4}", [5, 8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]"]]], 0, 0, 0, 0, 0, "[02-689]|7[0-8]"], "NP": ["977", "00", "(?:1\\d|9)\\d{9}|[1-9]\\d{7}", [8, 10, 11], [["(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], ["(\\d{2})(\\d{6})", "$1-$2", ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], "0$1"], ["(\\d{3})(\\d{7})", "$1-$2", ["9"]]], "0"], "NR": ["674", "00", "(?:444|(?:55|8\\d)\\d|666)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[4-68]"]]]], "NU": ["683", "00", "(?:[4-7]|888\\d)\\d{3}", [4, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["8"]]]], "NZ": ["64", "0(?:0|161)", "[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,8})", "$1 $2", ["8[1-79]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["50[036-8]|8|90", "50(?:[0367]|88)|8|90"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["24|[346]|7[2-57-9]|9[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:10|74)|[589]"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1|2[028]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,5})", "$1 $2 $3", ["2(?:[169]|7[0-35-9])|7"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "00"], "OM": ["968", "00", "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}", [7, 8, 9], [["(\\d{3})(\\d{4,6})", "$1 $2", ["[58]"]], ["(\\d{2})(\\d{6})", "$1 $2", ["2"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[179]"]]]], "PA": ["507", "00", "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}", [7, 8, 10, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[1-57-9]"]], ["(\\d{4})(\\d{4})", "$1-$2", ["[68]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]]], "PE": ["51", "00|19(?:1[124]|77|90)00", "(?:[14-8]|9\\d)\\d{7}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["80"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["1"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[4-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"]]], "0", 0, 0, 0, 0, 0, 0, "00", " Anexo "], "PF": ["689", "00", "4\\d{5}(?:\\d{2})?|8\\d{7,8}", [6, 8, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["44"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4|8[7-9]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]], "PG": ["675", "00|140[1-3]", "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["18|[2-69]|85"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[78]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "PH": ["63", "00", "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}", [6, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{5})", "$1 $2", ["2"], "(0$1)"], ["(\\d{4})(\\d{4,6})", "$1 $2", ["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2", "3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"], "(0$1)"], ["(\\d{5})(\\d{4})", "$1 $2", ["346|4(?:27|9[35])|883", "3469|4(?:279|9(?:30|56))|8834"], "(0$1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|8[2-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["1"]]], "0"], "PK": ["92", "00", "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,7})", "$1 $2 $3", ["[89]0"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["1"]], ["(\\d{3})(\\d{6,7})", "$1 $2", ["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])", "9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"], "(0$1)"], ["(\\d{2})(\\d{7,8})", "$1 $2", ["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"], "(0$1)"], ["(\\d{5})(\\d{5})", "$1 $2", ["58"], "(0$1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[24-9]"], "(0$1)"]], "0"], "PL": ["48", "00", "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{5})", "$1", ["19"]], ["(\\d{3})(\\d{3})", "$1 $2", ["11|20|64"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1", "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["64"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[2-8]|[2-7]|8[1-79]|9[145]"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["8"]]]], "PM": ["508", "00", "[45]\\d{5}|(?:708|80\\d)\\d{6}", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[45]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "PR": ["1", "011", "(?:[589]\\d\\d|787)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "787|939"], "PS": ["970", "00", "[2489]2\\d{6}|(?:1\\d|5)\\d{8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2489]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "PT": ["351", "00", "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["2[12]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["16|[236-9]"]]]], "PW": ["680", "01[12]", "(?:[24-8]\\d\\d|345|900)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "PY": ["595", "00", "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3,6})", "$1 $2", ["[2-9]0"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"], "(0$1)"], ["(\\d{3})(\\d{4,5})", "$1 $2", ["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["87"]], ["(\\d{3})(\\d{6})", "$1 $2", ["9(?:[5-79]|8[1-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"]]], "0"], "QA": ["974", "00", "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}", [7, 8, 9, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["2[16]|8"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[3-7]"]]]], "RE": ["262", "00", "(?:26|[689]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2689]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["26(?:2\\d\\d|3(?:0\\d|1[0-6]))\\d{4}"], ["69(?:2\\d\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))\\d{4}"], ["80\\d{7}"], ["89[1-37-9]\\d{6}"], 0, 0, 0, 0, ["9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\d{4}"], ["8(?:1[019]|2[0156]|84|90)\\d{6}"]]], "RO": ["40", "00", "(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}", [6, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["2[3-6]", "2[3-6]\\d9"], "0$1"], ["(\\d{2})(\\d{4})", "$1 $2", ["219|31"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[23]1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[236-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, 0, " int "], "RS": ["381", "00", "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}", [6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{3,9})", "$1 $2", ["(?:2[389]|39)0|[7-9]"], "0$1"], ["(\\d{2})(\\d{5,10})", "$1 $2", ["[1-36]"], "0$1"]], "0"], "RU": ["7", "810", "8\\d{13}|[347-9]\\d{9}", [10, 14], [["(\\d{4})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-8]|2[1-9])", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"], "8 ($1)", 1], ["(\\d{5})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-68]|2[1-9])", "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))", "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[349]|8(?:[02-7]|1[1-8])"], "8 ($1)", 1], ["(\\d{4})(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["8"], "8 ($1)"]], "8", 0, 0, 0, 0, "3[04-689]|[489]", 0, "8~10"], "RW": ["250", "00", "(?:06|[27]\\d\\d|[89]00)\\d{6}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0$1"]], "0"], "SA": ["966", "00", "92\\d{7}|(?:[15]|8\\d)\\d{8}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["9"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["81"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]], "0"], "SB": ["677", "0[01]", "[6-9]\\d{6}|[1-6]\\d{4}", [5, 7], [["(\\d{2})(\\d{5})", "$1 $2", ["6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])"]]]], "SC": ["248", "010|0[0-2]", "(?:[2489]\\d|64)\\d{5}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[246]|9[57]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "SD": ["249", "00", "[19]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "SE": ["46", "00", "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}", [6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["20"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{4})", "$1-$2", ["9(?:00|39|44|9)"], "0$1", 0, "$1 $2"], ["(\\d{2})(\\d{3})(\\d{2})", "$1-$2 $3", ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3"], ["(\\d)(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{2,3})(\\d{3})", "$1-$2 $3", ["9(?:00|39|44)"], "0$1", 0, "$1 $2 $3"], ["(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["10|7"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{3})", "$1-$2 $3 $4", ["9"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4 $5", ["[26]"], "0$1", 0, "$1 $2 $3 $4 $5"]], "0"], "SG": ["65", "0[0-3]\\d", "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}", [8, 10, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-9]|[1-9])"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]], "SH": ["290", "00", "(?:[256]\\d|8)\\d{3}", [4, 5], 0, 0, 0, 0, 0, 0, "[256]"], "SI": ["386", "00|10(?:22|66|88|99)", "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}", [5, 6, 7, 8], [["(\\d{2})(\\d{3,6})", "$1 $2", ["8[09]|9"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["59|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37][01]|4[0139]|51|6"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-57]"], "(0$1)"]], "0", 0, 0, 0, 0, 0, 0, "00"], "SJ": ["47", "00", "0\\d{4}|(?:[489]\\d|79)\\d{6}", [5, 8], 0, 0, 0, 0, 0, 0, "79"], "SK": ["421", "00", "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}", [6, 7, 9], [["(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["[3-5][1-8]1", "[3-5][1-8]1[67]"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1/$2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1/$2 $3 $4", ["[3-5]"], "0$1"]], "0"], "SL": ["232", "00", "(?:[237-9]\\d|66)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[236-9]"], "(0$1)"]], "0"], "SM": ["378", "00", "(?:0549|[5-7]\\d)\\d{6}", [8, 10], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], ["(\\d{4})(\\d{6})", "$1 $2", ["0"]]], 0, 0, "([89]\\d{5})$", "0549$1"], "SN": ["221", "00", "(?:[378]\\d|93)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[379]"]]]], "SO": ["252", "00", "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}", [6, 7, 8, 9], [["(\\d{2})(\\d{4})", "$1 $2", ["8[125]"]], ["(\\d{6})", "$1", ["[134]"]], ["(\\d)(\\d{6})", "$1 $2", ["[15]|2[0-79]|3[0-46-8]|4[0-7]"]], ["(\\d)(\\d{7})", "$1 $2", ["(?:2|90)4|[67]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[348]|64|79|90"]], ["(\\d{2})(\\d{5,7})", "$1 $2", ["1|28|6[0-35-9]|77|9[2-9]"]]], "0"], "SR": ["597", "00", "(?:[2-5]|68|[78]\\d)\\d{5}", [6, 7], [["(\\d{2})(\\d{2})(\\d{2})", "$1-$2-$3", ["56"]], ["(\\d{3})(\\d{3})", "$1-$2", ["[2-5]"]], ["(\\d{3})(\\d{4})", "$1-$2", ["[6-8]"]]]], "SS": ["211", "00", "[19]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "ST": ["239", "00", "(?:22|9\\d)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[29]"]]]], "SV": ["503", "00", "[267]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?", [7, 8, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[89]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[267]"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[89]"]]]], "SX": ["1", "011", "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "(5\\d{6})$|1", "721$1", 0, "721"], "SY": ["963", "00", "[1-39]\\d{8}|[1-5]\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-5]"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1", 1]], "0"], "SZ": ["268", "00", "0800\\d{4}|(?:[237]\\d|900)\\d{6}", [8, 9], [["(\\d{4})(\\d{4})", "$1 $2", ["[0237]"]], ["(\\d{5})(\\d{4})", "$1 $2", ["9"]]]], "TA": ["290", "00", "8\\d{3}", [4], 0, 0, 0, 0, 0, 0, "8"], "TC": ["1", "011", "(?:[58]\\d\\d|649|900)\\d{7}", [10], 0, "1", 0, "([2-479]\\d{6})$|1", "649$1", 0, "649"], "TD": ["235", "00|16", "(?:22|[689]\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[26-9]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "TG": ["228", "00", "[279]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[279]"]]]], "TH": ["66", "00[1-9]", "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}", [8, 9, 10, 13], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[13-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "TJ": ["992", "810", "[0-57-9]\\d{8}", [9], [["(\\d{6})(\\d)(\\d{2})", "$1 $2 $3", ["331", "3317"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["44[02-479]|[34]7"]], ["(\\d{4})(\\d)(\\d{4})", "$1 $2 $3", ["3(?:[1245]|3[12])"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[0-57-9]"]]], 0, 0, 0, 0, 0, 0, 0, "8~10"], "TK": ["690", "00", "[2-47]\\d{3,6}", [4, 5, 6, 7]], "TL": ["670", "00", "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-489]|70"]], ["(\\d{4})(\\d{4})", "$1 $2", ["7"]]]], "TM": ["993", "810", "(?:[1-6]\\d|71)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["12"], "(8 $1)"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-5]"], "(8 $1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[67]"], "8 $1"]], "8", 0, 0, 0, 0, 0, 0, "8~10"], "TN": ["216", "00", "[2-57-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-57-9]"]]]], "TO": ["676", "00", "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}", [5, 7], [["(\\d{2})(\\d{3})", "$1-$2", ["[2-4]|50|6[09]|7[0-24-69]|8[05]"]], ["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[5-9]"]]]], "TR": ["90", "00", "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}", [7, 10, 12, 13], [["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["512|8[01589]|90"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5(?:[0-59]|61)", "5(?:[0-59]|61[06])", "5(?:[0-59]|61[06]1)"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24][1-8]|3[1-9]"], "(0$1)", 1], ["(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", 1]], "0"], "TT": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-46-8]\\d{6})$|1", "868$1", 0, "868"], "TV": ["688", "00", "(?:2|7\\d\\d|90)\\d{4}", [5, 6, 7], [["(\\d{2})(\\d{3})", "$1 $2", ["2"]], ["(\\d{2})(\\d{4})", "$1 $2", ["90"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]]], "TW": ["886", "0(?:0[25-79]|19)", "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}", [7, 8, 9, 10, 11], [["(\\d{2})(\\d)(\\d{4})", "$1 $2 $3", ["202"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[258]0"], "0$1"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]", "[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["7"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, 0, "#"], "TZ": ["255", "00[056]", "(?:[25-8]\\d|41|90)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[24]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["5"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[67]"], "0$1"]], "0"], "UA": ["380", "00", "[89]\\d{9}|[3-9]\\d{8}", [9, 10], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]", "6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])", "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|89|9[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "0~0"], "UG": ["256", "00[057]", "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}", [9], [["(\\d{4})(\\d{5})", "$1 $2", ["202", "2024"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[27-9]|4(?:6[45]|[7-9])"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[34]"], "0$1"]], "0"], "US": ["1", "011", "[2-9]\\d{9}|3\\d{6}", [10], [["(\\d{3})(\\d{4})", "$1-$2", ["310"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3", ["[2-9]"], 0, 1, "$1-$2-$3"]], "1", 0, 0, 0, 0, 0, [["(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[468])|7302[0-4]\\d)\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|983[2-47-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013569]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}"], [""], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"], 0, 0, 0, ["305209\\d{4}"]]], "UY": ["598", "0(?:0|1[3-9]\\d)", "0004\\d{2,9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}", [6, 7, 8, 9, 10, 11, 12, 13], [["(\\d{3})(\\d{3,4})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[49]0|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[124]"]], ["(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3 $4", ["0"]]], "0", 0, 0, 0, 0, 0, 0, "00", " int. "], "UZ": ["998", "00", "(?:20|33|[5-79]\\d|88)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[235-9]"]]]], "VA": ["39", "00", "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}", [6, 7, 8, 9, 10, 11, 12], 0, 0, 0, 0, 0, 0, "06698"], "VC": ["1", "011", "(?:[58]\\d\\d|784|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "784$1", 0, "784"], "VE": ["58", "00", "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}", [10], [["(\\d{3})(\\d{7})", "$1-$2", ["[24-689]"], "0$1"]], "0"], "VG": ["1", "011", "(?:284|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-578]\\d{6})$|1", "284$1", 0, "284"], "VI": ["1", "011", "[58]\\d{9}|(?:34|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "340$1", 0, "340"], "VN": ["84", "00", "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}", [7, 8, 9, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["80"], "0$1", 1], ["(\\d{4})(\\d{4,6})", "$1 $2", ["1"], 0, 1], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["6"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[357-9]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", 1]], "0"], "VU": ["678", "00", "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}", [5, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["[57-9]"]]]], "WF": ["681", "00", "(?:40|72)\\d{4}|8\\d{5}(?:\\d{3})?", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[478]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]], "WS": ["685", "0", "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}", [5, 6, 7, 10], [["(\\d{5})", "$1", ["[2-5]|6[1-9]"]], ["(\\d{3})(\\d{3,7})", "$1 $2", ["[68]"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]]], "XK": ["383", "00", "2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2|39"], "0$1"], ["(\\d{2})(\\d{7,10})", "$1 $2", ["3"], "0$1"]], "0"], "YE": ["967", "00", "(?:1|7\\d)\\d{7}|[1-7]\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-6]|7(?:[24-6]|8[0-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"], "0$1"]], "0"], "YT": ["262", "00", "(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}", [9], 0, "0", 0, 0, 0, 0, 0, [["269(?:0[0-467]|15|5[0-4]|6\\d|[78]0)\\d{4}"], ["639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])\\d{4}"], ["80\\d{7}"], 0, 0, 0, 0, 0, ["9(?:(?:39|47)8[01]|769\\d)\\d{4}"]]], "ZA": ["27", "00", "[1-79]\\d{8}|8\\d{4,9}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,4})", "$1 $2", ["8[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["8[1-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["860"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0"], "ZM": ["260", "00", "800\\d{6}|(?:21|63|[79]\\d)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[79]"], "0$1"]], "0"], "ZW": ["263", "00", "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}", [5, 6, 7, 8, 9, 10], [["(\\d{3})(\\d{3,5})", "$1 $2", ["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"], "0$1"], ["(\\d)(\\d{3})(\\d{2,4})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["80"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2", "2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)", "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["29[013-9]|39|54"], "0$1"], ["(\\d{4})(\\d{3,5})", "$1 $2", ["(?:25|54)8", "258|5483"], "0$1"]], "0"] }, "nonGeographic": { "800": ["800", 0, "(?:00|[1-9]\\d)\\d{6}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["\\d"]]], 0, 0, 0, 0, 0, 0, [0, 0, ["(?:00|[1-9]\\d)\\d{6}"]]], "808": ["808", 0, "[1-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[1-9]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, ["[1-9]\\d{7}"]]], "870": ["870", 0, "7\\d{11}|[35-7]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[35-7]"]]], 0, 0, 0, 0, 0, 0, [0, ["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"]]], "878": ["878", 0, "10\\d{10}", [12], [["(\\d{2})(\\d{5})(\\d{5})", "$1 $2 $3", ["1"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["10\\d{10}"]]], "881": ["881", 0, "6\\d{9}|[0-36-9]\\d{8}", [9, 10], [["(\\d)(\\d{3})(\\d{5})", "$1 $2 $3", ["[0-37-9]"]], ["(\\d)(\\d{3})(\\d{5,6})", "$1 $2 $3", ["6"]]], 0, 0, 0, 0, 0, 0, [0, ["6\\d{9}|[0-36-9]\\d{8}"]]], "882": ["882", 0, "[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5})", "$1 $2", ["16|342"]], ["(\\d{2})(\\d{6})", "$1 $2", ["49"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["1[36]|9"]], ["(\\d{2})(\\d{4})(\\d{3})", "$1 $2 $3", ["3[23]"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["16"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|23|3(?:[15]|4[57])|4|51"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["34"]], ["(\\d{2})(\\d{4,5})(\\d{5})", "$1 $2 $3", ["[1-35]"]]], 0, 0, 0, 0, 0, 0, [0, ["342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}", [7, 8, 9, 10, 12]], 0, 0, 0, ["348[57]\\d{7}", [11]], 0, 0, ["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}"]]], "883": ["883", 0, "(?:[1-4]\\d|51)\\d{6,10}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,8})", "$1 $2 $3", ["[14]|2[24-689]|3[02-689]|51[24-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["510"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["21"]], ["(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["51[13]"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[235]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"]]], "888": ["888", 0, "\\d{11}", [11], [["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3"]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, ["\\d{11}"]]], "979": ["979", 0, "[1359]\\d{8}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[1359]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, ["[1359]\\d{8}"]]] } };
50241
50164
  function withMetadataArgument(func, _arguments) {
50242
50165
  var args = Array.prototype.slice.call(_arguments);
50243
50166
  args.push(metadata);
@@ -51850,8 +51773,9 @@ function _arrayLikeToArray$1(arr, len) {
51850
51773
  return arr2;
51851
51774
  }
51852
51775
  function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51853
- var countries = _ref.countries, metadata2 = _ref.metadata;
51776
+ var countries = _ref.countries, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;
51854
51777
  metadata2 = new Metadata(metadata2);
51778
+ var matchingCountries = [];
51855
51779
  for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done; ) {
51856
51780
  var country = _step.value;
51857
51781
  metadata2.country(country);
@@ -51863,9 +51787,19 @@ function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51863
51787
  phone: nationalPhoneNumber,
51864
51788
  country
51865
51789
  }, void 0, metadata2.metadata)) {
51866
- return country;
51790
+ if (defaultCountry) {
51791
+ if (country === defaultCountry) {
51792
+ return country;
51793
+ }
51794
+ matchingCountries.push(country);
51795
+ } else {
51796
+ return country;
51797
+ }
51867
51798
  }
51868
51799
  }
51800
+ if (matchingCountries.length > 0) {
51801
+ return matchingCountries[0];
51802
+ }
51869
51803
  }
51870
51804
  function getCountryByCallingCode(callingCode, _ref) {
51871
51805
  var nationalPhoneNumber = _ref.nationalNumber, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;
@@ -52733,11 +52667,12 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
52733
52667
  },
52734
52668
  { immediate: true }
52735
52669
  );
52670
+ const hasFocus = () => document.activeElement === input.value;
52736
52671
  const focus2 = () => {
52737
52672
  var _a2;
52738
52673
  return (_a2 = input.value) == null ? void 0 : _a2.focus();
52739
52674
  };
52740
- __expose({ focus: focus2 });
52675
+ __expose({ focus: focus2, hasFocus });
52741
52676
  vue.onMounted(() => {
52742
52677
  if (props2.autofocus) setTimeout(() => {
52743
52678
  var _a2;
@@ -52818,7 +52753,7 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
52818
52753
  };
52819
52754
  }
52820
52755
  });
52821
- const TextInput = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-2c465924"]]);
52756
+ const TextInput = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-0e10a3b5"]]);
52822
52757
  const _hoisted_1$h = ["title"];
52823
52758
  const _hoisted_2$9 = ["id", "required"];
52824
52759
  const _hoisted_3$7 = ["for"];