@code-plate/iran-cities 1.1.0 → 2.0.0

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 (130) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/LICENSE +21 -0
  3. package/MIGRATION.fa.md +277 -0
  4. package/MIGRATION.md +272 -0
  5. package/NOTICE.md +38 -0
  6. package/README.fa.md +528 -201
  7. package/README.md +524 -201
  8. package/dist/boundaries.cjs +9218 -0
  9. package/dist/boundaries.cjs.map +1 -0
  10. package/dist/boundaries.d.cts +30 -0
  11. package/dist/boundaries.d.mts +30 -0
  12. package/dist/boundaries.mjs +9215 -0
  13. package/dist/boundaries.mjs.map +1 -0
  14. package/dist/changes-B-wz9-Gy.cjs +841 -0
  15. package/dist/changes-B-wz9-Gy.cjs.map +1 -0
  16. package/dist/changes-CMVZbfZO.d.mts +8 -0
  17. package/dist/changes-DLZkHBwZ.mjs +800 -0
  18. package/dist/changes-DLZkHBwZ.mjs.map +1 -0
  19. package/dist/changes-DnnwRAKl.d.cts +8 -0
  20. package/dist/components-B7060em0.mjs +240 -0
  21. package/dist/components-B7060em0.mjs.map +1 -0
  22. package/dist/components-BuMUB7XT.d.cts +47 -0
  23. package/dist/components-DZz72pd1.d.mts +47 -0
  24. package/dist/components-grWmOsaV.cjs +247 -0
  25. package/dist/components-grWmOsaV.cjs.map +1 -0
  26. package/dist/components.css +251 -0
  27. package/dist/data/cities.csv +1253 -0
  28. package/dist/data/cities.json +23305 -0
  29. package/dist/data/iran-cities.sql +1487 -0
  30. package/dist/data/iran-provinces.geojson +1 -0
  31. package/dist/data/provinces.csv +32 -0
  32. package/dist/data/provinces.json +460 -0
  33. package/dist/hooks-C6kjWLIE.mjs +134 -0
  34. package/dist/hooks-C6kjWLIE.mjs.map +1 -0
  35. package/dist/hooks-K7pTMF2R.cjs +139 -0
  36. package/dist/hooks-K7pTMF2R.cjs.map +1 -0
  37. package/dist/index.cjs +30 -7550
  38. package/dist/index.d.cts +25 -0
  39. package/dist/index.d.mts +25 -25
  40. package/dist/index.mjs +3 -7507
  41. package/dist/lite-CtNPRhU-.mjs +1926 -0
  42. package/dist/lite-CtNPRhU-.mjs.map +1 -0
  43. package/dist/lite-CutarzAc.cjs +2051 -0
  44. package/dist/lite-CutarzAc.cjs.map +1 -0
  45. package/dist/lite-react-1HVWJOWt.cjs +55 -0
  46. package/dist/lite-react-1HVWJOWt.cjs.map +1 -0
  47. package/dist/lite-react-Ds-DNmEi.mjs +20 -0
  48. package/dist/lite-react-Ds-DNmEi.mjs.map +1 -0
  49. package/dist/lite-react-components.cjs +12 -0
  50. package/dist/lite-react-components.cjs.map +1 -0
  51. package/dist/lite-react-components.d.cts +5 -0
  52. package/dist/lite-react-components.d.mts +5 -0
  53. package/dist/lite-react-components.mjs +11 -0
  54. package/dist/lite-react-components.mjs.map +1 -0
  55. package/dist/lite-react.cjs +8 -0
  56. package/dist/lite-react.d.cts +7 -0
  57. package/dist/lite-react.d.mts +7 -0
  58. package/dist/lite-react.mjs +2 -0
  59. package/dist/lite.cjs +28 -0
  60. package/dist/lite.d.cts +23 -0
  61. package/dist/lite.d.mts +23 -0
  62. package/dist/lite.mjs +3 -0
  63. package/dist/react-BKmJ476x.mjs +20 -0
  64. package/dist/react-BKmJ476x.mjs.map +1 -0
  65. package/dist/react-BZV3TkXB.cjs +55 -0
  66. package/dist/react-BZV3TkXB.cjs.map +1 -0
  67. package/dist/react-components.cjs +12 -0
  68. package/dist/react-components.cjs.map +1 -0
  69. package/dist/react-components.d.cts +5 -0
  70. package/dist/react-components.d.mts +5 -0
  71. package/dist/react-components.mjs +11 -0
  72. package/dist/react-components.mjs.map +1 -0
  73. package/dist/react.cjs +8 -7553
  74. package/dist/react.d.cts +7 -0
  75. package/dist/react.d.mts +7 -30
  76. package/dist/react.mjs +2 -7524
  77. package/dist/rolldown-runtime-78lK1XfQ.cjs +42 -0
  78. package/dist/rolldown-runtime-D3KUYPsf.mjs +12 -0
  79. package/dist/src-DRaUVbc4.mjs +4302 -0
  80. package/dist/src-DRaUVbc4.mjs.map +1 -0
  81. package/dist/src-mqZTwJfQ.cjs +4439 -0
  82. package/dist/src-mqZTwJfQ.cjs.map +1 -0
  83. package/dist/types/boundaries.d.ts +30 -0
  84. package/dist/types/changes.d.ts +4 -0
  85. package/dist/types/components.d.ts +47 -0
  86. package/dist/types/core.d.ts +25 -0
  87. package/dist/types/geo.d.ts +2 -0
  88. package/dist/types/hooks.d.ts +2 -0
  89. package/dist/types/index.d.ts +28 -0
  90. package/dist/types/keyboard.d.ts +3 -0
  91. package/dist/types/lite-react-components.d.ts +5 -0
  92. package/dist/types/lite-react.d.ts +7 -0
  93. package/dist/types/lite.d.ts +26 -0
  94. package/dist/types/normalize.d.ts +1 -0
  95. package/dist/types/packed.d.ts +16 -0
  96. package/dist/types/react-components.d.ts +5 -0
  97. package/dist/types/react.d.ts +7 -0
  98. package/dist/types/types.d.ts +149 -0
  99. package/dist/types/valibot.d.ts +23 -0
  100. package/dist/types/validation-shared.d.ts +11 -0
  101. package/dist/types/zod.d.ts +23 -0
  102. package/dist/types-Ds_b0yHP.d.cts +150 -0
  103. package/dist/types-Ds_b0yHP.d.mts +150 -0
  104. package/dist/valibot.cjs +47 -0
  105. package/dist/valibot.cjs.map +1 -0
  106. package/dist/valibot.d.cts +21 -0
  107. package/dist/valibot.d.mts +21 -0
  108. package/dist/valibot.mjs +38 -0
  109. package/dist/valibot.mjs.map +1 -0
  110. package/dist/validation-shared-BFilTuY1.cjs +58 -0
  111. package/dist/validation-shared-BFilTuY1.cjs.map +1 -0
  112. package/dist/validation-shared-C7l2cv4e.d.cts +8 -0
  113. package/dist/validation-shared-CJjGRx8p.d.mts +7 -0
  114. package/dist/validation-shared-mh_saZne.mjs +29 -0
  115. package/dist/validation-shared-mh_saZne.mjs.map +1 -0
  116. package/dist/zod.cjs +49 -0
  117. package/dist/zod.cjs.map +1 -0
  118. package/dist/zod.d.cts +21 -0
  119. package/dist/zod.d.mts +21 -0
  120. package/dist/zod.mjs +42 -0
  121. package/dist/zod.mjs.map +1 -0
  122. package/package.json +177 -29
  123. package/dist/index.cjs.map +0 -1
  124. package/dist/index.d.ts +0 -25
  125. package/dist/index.mjs.map +0 -1
  126. package/dist/react.cjs.map +0 -1
  127. package/dist/react.d.ts +0 -30
  128. package/dist/react.mjs.map +0 -1
  129. package/dist/types-DzSw8Uw2.d.mts +0 -52
  130. package/dist/types-DzSw8Uw2.d.ts +0 -52
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src-DRaUVbc4.mjs","names":["packed"],"sources":["../src/generated/data-full.json","../src/geo.ts","../src/index.ts"],"sourcesContent":["","import type {\r\n CoordinateConfidence,\r\n FlatCity,\r\n IranCities,\r\n IranCitiesGeo,\r\n LatLng,\r\n NearestCitiesOptions,\r\n NearestCity,\r\n Query,\r\n} from './types';\r\n\r\nconst EARTH_RADIUS_KM = 6371.0088;\r\n\r\nconst CONFIDENCE_LEVEL: Readonly<Record<CoordinateConfidence, number>> = { low: 0, medium: 1, high: 2 };\r\n\r\nfunction toRadians(deg: number): number {\r\n return (deg * Math.PI) / 180;\r\n}\r\n\r\nfunction haversine(a: LatLng, b: LatLng): number {\r\n const dLat = toRadians(b.lat - a.lat);\r\n const dLng = toRadians(b.lng - a.lng);\r\n const h =\r\n Math.sin(dLat / 2) ** 2 + Math.cos(toRadians(a.lat)) * Math.cos(toRadians(b.lat)) * Math.sin(dLng / 2) ** 2;\r\n return 2 * EARTH_RADIUS_KM * Math.asin(Math.min(1, Math.sqrt(h)));\r\n}\r\n\r\nfunction isLatLng(value: unknown): value is LatLng {\r\n return (\r\n typeof value === 'object' &&\r\n value !== null &&\r\n typeof (value as LatLng).lat === 'number' &&\r\n typeof (value as LatLng).lng === 'number' &&\r\n Number.isFinite((value as LatLng).lat) &&\r\n Number.isFinite((value as LatLng).lng)\r\n );\r\n}\r\n\r\nexport function createGeo(api: IranCities): IranCitiesGeo {\r\n function resolve(point: LatLng | Query): { coords?: LatLng; city?: FlatCity } {\r\n if (isLatLng(point)) return { coords: { lat: point.lat, lng: point.lng } };\r\n if (typeof point !== 'string' && typeof point !== 'number') return {};\r\n const city = api.getCity(point);\r\n return { coords: city?.coordinates, city };\r\n }\r\n\r\n function getDistance(from: LatLng | Query, to: LatLng | Query): number | undefined {\r\n const a = resolve(from).coords;\r\n const b = resolve(to).coords;\r\n return a && b ? haversine(a, b) : undefined;\r\n }\r\n\r\n function getNearestCities(point: LatLng | Query, options: NearestCitiesOptions = {}): NearestCity[] {\r\n const { coords, city: origin } = resolve(point);\r\n if (!coords) return [];\r\n const limit = typeof options.limit === 'number' && options.limit >= 0 ? Math.floor(options.limit) : 5;\r\n const minLevel = CONFIDENCE_LEVEL[options.minConfidence ?? 'low'] ?? 0;\r\n const maxDistanceKm =\r\n typeof options.maxDistanceKm === 'number' && options.maxDistanceKm >= 0 ? options.maxDistanceKm : Infinity;\r\n\r\n const results: NearestCity[] = [];\r\n for (const city of api.getAllCities()) {\r\n if (!city.coordinates || city === origin) continue;\r\n if (CONFIDENCE_LEVEL[city.coordinates.confidence] < minLevel) continue;\r\n const distanceKm = haversine(coords, city.coordinates);\r\n if (distanceKm <= maxDistanceKm) results.push({ city, distanceKm });\r\n }\r\n results.sort((a, b) => a.distanceKm - b.distanceKm || a.city.id - b.city.id);\r\n return limit > 0 ? results.slice(0, limit) : results;\r\n }\r\n\r\n return { getDistance, getNearestCities };\r\n}\r\n","import packed from './generated/data-full.json' with { type: 'json' };\nimport { createApi } from './core';\nimport { unpack } from './packed';\nimport type { PackedData } from './packed';\nimport { createGeo } from './geo';\nimport type { IranCities, IranCitiesGeo } from './types';\n\nconst api: IranCities = createApi(unpack(packed as PackedData));\nconst geo: IranCitiesGeo = createGeo(api);\n\nexport const getProvinces: IranCities['getProvinces'] = api.getProvinces;\nexport const getProvincesList: IranCities['getProvincesList'] = api.getProvincesList;\nexport const getProvinceById: IranCities['getProvinceById'] = api.getProvinceById;\nexport const getProvince: IranCities['getProvince'] = api.getProvince;\nexport const getCities: IranCities['getCities'] = api.getCities;\nexport const getAllCities: IranCities['getAllCities'] = api.getAllCities;\nexport const getCityById: IranCities['getCityById'] = api.getCityById;\nexport const getCityBySlug: IranCities['getCityBySlug'] = api.getCityBySlug;\nexport const getCity: IranCities['getCity'] = api.getCity;\nexport const getCitiesByName: IranCities['getCitiesByName'] = api.getCitiesByName;\nexport const isAmbiguousCityName: IranCities['isAmbiguousCityName'] = api.isAmbiguousCityName;\nexport const getProvinceOfCity: IranCities['getProvinceOfCity'] = api.getProvinceOfCity;\nexport const getCapital: IranCities['getCapital'] = api.getCapital;\nexport const getCapitals: IranCities['getCapitals'] = api.getCapitals;\nexport const getProvinceByPhoneCode: IranCities['getProvinceByPhoneCode'] = api.getProvinceByPhoneCode;\nexport const searchProvinces: IranCities['searchProvinces'] = api.searchProvinces;\nexport const searchCities: IranCities['searchCities'] = api.searchCities;\nexport const getNeighborProvinces: IranCities['getNeighborProvinces'] = api.getNeighborProvinces;\nexport const areNeighborProvinces: IranCities['areNeighborProvinces'] = api.areNeighborProvinces;\nexport const getStats: IranCities['getStats'] = api.getStats;\nexport const getDistance: IranCitiesGeo['getDistance'] = geo.getDistance;\nexport const getNearestCities: IranCitiesGeo['getNearestCities'] = geo.getNearestCities;\n\nexport { normalize } from './normalize';\nexport { convertKeyboardLayout } from './keyboard';\nexport type { KeyboardTarget } from './keyboard';\nexport { DATA_VERSION, DATA_CHANGES, getDataChanges } from './changes';\n\nexport type {\n City,\n CityId,\n CityKey,\n DataChange,\n DataChangeType,\n CoordinateConfidence,\n Coordinates,\n FlatCity,\n IranCities,\n IranCitiesGeo,\n LatLng,\n Locale,\n NearestCitiesOptions,\n NearestCity,\n Province,\n ProvinceId,\n ProvinceListItem,\n Query,\n SearchOptions,\n Stats,\n} from './types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACWA,MAAM,kBAAkB;AAExB,MAAM,mBAAmE;CAAE,KAAK;CAAG,QAAQ;CAAG,MAAM;AAAE;AAEtG,SAAS,UAAU,KAAqB;CACtC,OAAQ,MAAM,KAAK,KAAM;AAC3B;AAEA,SAAS,UAAU,GAAW,GAAmB;CAC/C,MAAM,OAAO,UAAU,EAAE,MAAM,EAAE,GAAG;CACpC,MAAM,OAAO,UAAU,EAAE,MAAM,EAAE,GAAG;CACpC,MAAM,IACJ,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,IAAI,UAAU,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,UAAU,EAAE,GAAG,CAAC,IAAI,KAAK,IAAI,OAAO,CAAC,KAAK;CAC5G,OAAO,IAAI,kBAAkB,KAAK,KAAK,KAAK,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC;AAClE;AAEA,SAAS,SAAS,OAAiC;CACjD,OACE,OAAO,UAAU,YACjB,UAAU,QACV,OAAQ,MAAiB,QAAQ,YACjC,OAAQ,MAAiB,QAAQ,YACjC,OAAO,SAAU,MAAiB,GAAG,KACrC,OAAO,SAAU,MAAiB,GAAG;AAEzC;AAEA,SAAgB,UAAU,KAAgC;CACxD,SAAS,QAAQ,OAA6D;EAC5E,IAAI,SAAS,KAAK,GAAG,OAAO,EAAE,QAAQ;GAAE,KAAK,MAAM;GAAK,KAAK,MAAM;EAAI,EAAE;EACzE,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU,OAAO,CAAC;EACpE,MAAM,OAAO,IAAI,QAAQ,KAAK;EAC9B,OAAO;GAAE,QAAA,SAAA,QAAA,SAAA,KAAA,IAAA,KAAA,IAAQ,KAAM;GAAa;EAAK;CAC3C;CAEA,SAAS,YAAY,MAAsB,IAAwC;EACjF,MAAM,IAAI,QAAQ,IAAI,CAAC,CAAC;EACxB,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;EACtB,OAAO,KAAK,IAAI,UAAU,GAAG,CAAC,IAAI,KAAA;CACpC;CAEA,SAAS,iBAAiB,OAAuB,UAAgC,CAAC,GAAkB;;EAClG,MAAM,EAAE,QAAQ,MAAM,WAAW,QAAQ,KAAK;EAC9C,IAAI,CAAC,QAAQ,OAAO,CAAC;EACrB,MAAM,QAAQ,OAAO,QAAQ,UAAU,YAAY,QAAQ,SAAS,IAAI,KAAK,MAAM,QAAQ,KAAK,IAAI;EACpG,MAAM,YAAA,oBAAW,kBAAA,wBAAiB,QAAQ,mBAAA,QAAA,0BAAA,KAAA,IAAA,wBAAiB,YAAA,QAAA,sBAAA,KAAA,IAAA,oBAAU;EACrE,MAAM,gBACJ,OAAO,QAAQ,kBAAkB,YAAY,QAAQ,iBAAiB,IAAI,QAAQ,gBAAgB;EAEpG,MAAM,UAAyB,CAAC;EAChC,KAAK,MAAM,QAAQ,IAAI,aAAa,GAAG;GACrC,IAAI,CAAC,KAAK,eAAe,SAAS,QAAQ;GAC1C,IAAI,iBAAiB,KAAK,YAAY,cAAc,UAAU;GAC9D,MAAM,aAAa,UAAU,QAAQ,KAAK,WAAW;GACrD,IAAI,cAAc,eAAe,QAAQ,KAAK;IAAE;IAAM;GAAW,CAAC;EACpE;EACA,QAAQ,MAAM,GAAG,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,KAAK,EAAE,KAAK,EAAE;EAC3E,OAAO,QAAQ,IAAI,QAAQ,MAAM,GAAG,KAAK,IAAI;CAC/C;CAEA,OAAO;EAAE;EAAa;CAAiB;AACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjEA,MAAM,MAAkB,UAAU,OAAOA,iBAAoB,CAAC;AAC9D,MAAM,MAAqB,UAAU,GAAG;AAExC,MAAa,eAA2C,IAAI;AAC5D,MAAa,mBAAmD,IAAI;AACpE,MAAa,kBAAiD,IAAI;AAClE,MAAa,cAAyC,IAAI;AAC1D,MAAa,YAAqC,IAAI;AACtD,MAAa,eAA2C,IAAI;AAC5D,MAAa,cAAyC,IAAI;AAC1D,MAAa,gBAA6C,IAAI;AAC9D,MAAa,UAAiC,IAAI;AAClD,MAAa,kBAAiD,IAAI;AAClE,MAAa,sBAAyD,IAAI;AAC1E,MAAa,oBAAqD,IAAI;AACtE,MAAa,aAAuC,IAAI;AACxD,MAAa,cAAyC,IAAI;AAC1D,MAAa,yBAA+D,IAAI;AAChF,MAAa,kBAAiD,IAAI;AAClE,MAAa,eAA2C,IAAI;AAC5D,MAAa,uBAA2D,IAAI;AAC5E,MAAa,uBAA2D,IAAI;AAC5E,MAAa,WAAmC,IAAI;AACpD,MAAa,cAA4C,IAAI;AAC7D,MAAa,mBAAsD,IAAI"}