mwoffliner 1.15.1 → 1.17.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 (152) hide show
  1. package/README.md +2 -2
  2. package/docs/functional_architecture.md +37 -3
  3. package/lib/Downloader.d.ts +10 -6
  4. package/lib/Downloader.js +59 -46
  5. package/lib/Downloader.js.map +1 -1
  6. package/lib/Dump.d.ts +0 -1
  7. package/lib/Dump.js +0 -3
  8. package/lib/Dump.js.map +1 -1
  9. package/lib/Gadgets.d.ts +44 -0
  10. package/lib/Gadgets.js +59 -0
  11. package/lib/Gadgets.js.map +1 -0
  12. package/lib/MediaWiki.d.ts +77 -7
  13. package/lib/MediaWiki.js +100 -61
  14. package/lib/MediaWiki.js.map +1 -1
  15. package/lib/RedisStore.d.ts +3 -1
  16. package/lib/RedisStore.js +12 -12
  17. package/lib/RedisStore.js.map +1 -1
  18. package/lib/Templates.d.ts +3 -1
  19. package/lib/Templates.js +7 -1
  20. package/lib/Templates.js.map +1 -1
  21. package/lib/cli.js +6 -4
  22. package/lib/cli.js.map +1 -1
  23. package/lib/config.d.ts +8 -1
  24. package/lib/config.js +13 -5
  25. package/lib/config.js.map +1 -1
  26. package/lib/error.manager.d.ts +1 -0
  27. package/lib/error.manager.js +42 -0
  28. package/lib/error.manager.js.map +1 -1
  29. package/lib/mutex.d.ts +2 -1
  30. package/lib/mutex.js +2 -1
  31. package/lib/mutex.js.map +1 -1
  32. package/lib/mwoffliner.lib.js +121 -82
  33. package/lib/mwoffliner.lib.js.map +1 -1
  34. package/lib/parameterList.d.ts +2 -0
  35. package/lib/parameterList.js +7 -5
  36. package/lib/parameterList.js.map +1 -1
  37. package/lib/renderers/abstract.renderer.d.ts +30 -6
  38. package/lib/renderers/abstract.renderer.js +174 -93
  39. package/lib/renderers/abstract.renderer.js.map +1 -1
  40. package/lib/renderers/abstractDesktop.render.js +13 -6
  41. package/lib/renderers/abstractDesktop.render.js.map +1 -1
  42. package/lib/renderers/abstractMobile.render.js +12 -4
  43. package/lib/renderers/abstractMobile.render.js.map +1 -1
  44. package/lib/renderers/action-parse.renderer.d.ts +3 -2
  45. package/lib/renderers/action-parse.renderer.js +105 -22
  46. package/lib/renderers/action-parse.renderer.js.map +1 -1
  47. package/lib/renderers/renderer.builder.js +12 -9
  48. package/lib/renderers/renderer.builder.js.map +1 -1
  49. package/lib/renderers/rest-api.renderer.js +11 -3
  50. package/lib/renderers/rest-api.renderer.js.map +1 -1
  51. package/lib/renderers/visual-editor.renderer.js +11 -3
  52. package/lib/renderers/visual-editor.renderer.js.map +1 -1
  53. package/lib/renderers/wikimedia-mobile.renderer.js +8 -1
  54. package/lib/renderers/wikimedia-mobile.renderer.js.map +1 -1
  55. package/lib/sanitize-argument.d.ts +5 -3
  56. package/lib/sanitize-argument.js +45 -28
  57. package/lib/sanitize-argument.js.map +1 -1
  58. package/lib/util/RedisKvs.d.ts +13 -0
  59. package/lib/util/RedisKvs.js +14 -2
  60. package/lib/util/RedisKvs.js.map +1 -1
  61. package/lib/util/RedisQueue.d.ts +14 -0
  62. package/lib/util/RedisQueue.js +64 -0
  63. package/lib/util/RedisQueue.js.map +1 -0
  64. package/lib/util/articles.d.ts +26 -0
  65. package/lib/util/articles.js +102 -0
  66. package/lib/util/articles.js.map +1 -0
  67. package/lib/util/builders/url/action-parse.director.d.ts +3 -2
  68. package/lib/util/builders/url/action-parse.director.js +22 -3
  69. package/lib/util/builders/url/action-parse.director.js.map +1 -1
  70. package/lib/util/builders/url/api.director.d.ts +0 -2
  71. package/lib/util/builders/url/api.director.js +22 -13
  72. package/lib/util/builders/url/api.director.js.map +1 -1
  73. package/lib/util/builders/url/desktop.director.d.ts +1 -1
  74. package/lib/util/builders/url/desktop.director.js +2 -1
  75. package/lib/util/builders/url/desktop.director.js.map +1 -1
  76. package/lib/util/builders/url/mobile.director.d.ts +1 -1
  77. package/lib/util/builders/url/mobile.director.js +2 -1
  78. package/lib/util/builders/url/mobile.director.js.map +1 -1
  79. package/lib/util/builders/url/rest-api.director.d.ts +1 -1
  80. package/lib/util/builders/url/rest-api.director.js +2 -1
  81. package/lib/util/builders/url/rest-api.director.js.map +1 -1
  82. package/lib/util/builders/url/visual-editor.director.d.ts +1 -1
  83. package/lib/util/builders/url/visual-editor.director.js +2 -1
  84. package/lib/util/builders/url/visual-editor.director.js.map +1 -1
  85. package/lib/util/categories.js +2 -2
  86. package/lib/util/categories.js.map +1 -1
  87. package/lib/util/const.d.ts +2 -2
  88. package/lib/util/const.js +5 -5
  89. package/lib/util/const.js.map +1 -1
  90. package/lib/util/dump.d.ts +1 -1
  91. package/lib/util/dump.js +26 -18
  92. package/lib/util/dump.js.map +1 -1
  93. package/lib/util/misc.d.ts +7 -1
  94. package/lib/util/misc.js +51 -20
  95. package/lib/util/misc.js.map +1 -1
  96. package/lib/util/mw-api.js +9 -2
  97. package/lib/util/mw-api.js.map +1 -1
  98. package/lib/util/rewriteUrls.d.ts +1 -1
  99. package/lib/util/rewriteUrls.js +30 -25
  100. package/lib/util/rewriteUrls.js.map +1 -1
  101. package/lib/util/saveArticles.d.ts +1 -1
  102. package/lib/util/saveArticles.js +151 -99
  103. package/lib/util/saveArticles.js.map +1 -1
  104. package/lib/version.d.ts +1 -1
  105. package/lib/version.js +1 -1
  106. package/package.json +5 -3
  107. package/res/footer.css +10 -11
  108. package/res/templates/article_list_home.html +9 -10
  109. package/res/templates/html_redirect.html +9 -0
  110. package/res/templates/pageFallback.html +29 -0
  111. package/res/templates/pageVector2022.html +19 -13
  112. package/res/templates/pageVectorLegacy.html +17 -12
  113. package/res/templates/pageWikimediaDesktop.html +8 -8
  114. package/res/templates/pageWikimediaMobile.html +8 -8
  115. package/res/vector-2022.css +0 -10
  116. package/translation/ar.json +22 -2
  117. package/translation/bn.json +1 -2
  118. package/translation/de.json +26 -3
  119. package/translation/en.json +4 -2
  120. package/translation/es-formal.json +29 -0
  121. package/translation/es.json +23 -2
  122. package/translation/fi.json +4 -2
  123. package/translation/fr.json +8 -3
  124. package/translation/ha.json +1 -2
  125. package/translation/he.json +7 -2
  126. package/translation/hi.json +1 -2
  127. package/translation/ia.json +21 -2
  128. package/translation/id.json +0 -1
  129. package/translation/ig.json +1 -2
  130. package/translation/it.json +2 -2
  131. package/translation/kaa.json +1 -2
  132. package/translation/ko.json +3 -2
  133. package/translation/lb.json +1 -0
  134. package/translation/mk.json +4 -3
  135. package/translation/nb.json +1 -2
  136. package/translation/nl.json +21 -2
  137. package/translation/or.json +1 -2
  138. package/translation/pt-br.json +1 -2
  139. package/translation/pt.json +3 -2
  140. package/translation/qqq.json +3 -1
  141. package/translation/ro.json +1 -2
  142. package/translation/ru.json +4 -2
  143. package/translation/sc.json +1 -2
  144. package/translation/sl.json +21 -2
  145. package/translation/sq.json +1 -2
  146. package/translation/sv.json +1 -2
  147. package/translation/sw.json +1 -2
  148. package/translation/te.json +1 -2
  149. package/translation/tn.json +1 -2
  150. package/translation/tr.json +1 -2
  151. package/translation/zh-hans.json +0 -1
  152. package/translation/zh-hant.json +10 -3
package/README.md CHANGED
@@ -20,7 +20,7 @@ User Help is available in the for a a
20
20
  [![npm](https://img.shields.io/npm/v/mwoffliner.svg)](https://www.npmjs.com/package/mwoffliner)
21
21
  [![node](https://img.shields.io/node/v/mwoffliner.svg)](https://www.npmjs.com/package/mwoffliner)
22
22
  [![Docker](https://ghcr-badge.egpl.dev/openzim/mwoffliner/latest_tag?label=container)](https://ghcr.io/openzim/mwoffliner)
23
- [![Build Status](https://github.com/openzim/mwoffliner/workflows/CI/badge.svg?query=branch%3Amain)](https://github.com/openzim/mwoffliner/actions/workflows/ci.yml?query=branch%3Amain)
23
+ [![Build Status](https://github.com/openzim/mwoffliner/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/openzim/mwoffliner/actions/workflows/ci.yml?query=branch%3Amain)
24
24
  [![codecov](https://codecov.io/gh/openzim/mwoffliner/branch/main/graph/badge.svg)](https://codecov.io/gh/openzim/mwoffliner)
25
25
  [![CodeFactor](https://www.codefactor.io/repository/github/openzim/mwoffliner/badge)](https://www.codefactor.io/repository/github/openzim/mwoffliner)
26
26
  [![License](https://img.shields.io/npm/l/mwoffliner.svg)](LICENSE)
@@ -41,7 +41,7 @@ Run `mwoffliner --help` to get all the possible options.
41
41
 
42
42
  - *NIX Operating System (GNU/Linux, macOS, ...)
43
43
  - [Redis](https://redis.io/)
44
- - [NodeJS](https://nodejs.org/en/) version 22 (we support only one single Node.JS version, other versions might work or not)
44
+ - [NodeJS](https://nodejs.org/en/) version 24 (we support only one single Node.JS version, other versions might work or not)
45
45
  - [Libzim](https://github.com/openzim/libzim) (On GNU/Linux & macOS we automatically download it)
46
46
  - Various build tools which are probably already installed on your
47
47
  machine (packages `libjpeg-dev`, `libglu1`, `autoconf`, `automake`, `gcc` on
@@ -4,6 +4,7 @@ This document describes a high-level overview of how mwoffliner scraper works.
4
4
 
5
5
  At a high level, mwoffliner is divided into following sequence of actions.
6
6
 
7
+ - retrieve Mediawiki info
7
8
  - retrieve list of articles to include and their metadata
8
9
  - for every article:
9
10
  - retrieve its parsed HTML (Wikitext transformed into HTML) and JS/CSS dependencie
@@ -16,7 +17,28 @@ At a high level, mwoffliner is divided into following sequence of actions.
16
17
 
17
18
  The scraper supports flavours, which are variants of the ZIM (e.g. without images, with images but without videos, ...).
18
19
 
19
- The process above is repeated for every flavour requested.
20
+ For now, retrieval of articles and files dependencies is repeated for every flavour requested (even if content probably didn't changed).
21
+
22
+ ## Retrieve Mediawiki info
23
+
24
+ At scraper startup, it retrieves generic data about Mediawiki instance using `action=query` API.
25
+
26
+ Currently, scrape uses this call to retrieve:
27
+
28
+ - from `siteinfo`: `general` info (language, title, mainPage, site name, logo, text direction, ...), `skins` (to detect default skin), `rightsinfo` (to extract the license), `namespaces` and `namespacealiases` to build the list of namespaces
29
+ - from `allmessages`: the `tagline` (subtitle)
30
+
31
+ ## Retrive list of articles to include and their metadata
32
+
33
+ First, the scraper needs a list of article IDs and their details (redirects, ...).
34
+
35
+ "Article ID" refers to the page title with underscores instead of spaces, not the numeric page ID.
36
+
37
+ If user specified the exact list of articles to retrieve, then scraper simply request details about every articles in the list, in batches of about 50 articles (with `action=query&titles=titleX|titleY|...` ; batch sizes may vary due to constraints on query parameters size).
38
+
39
+ Otherwise, the scraper enumerates articles in given namespaces (by default, all content namespaces) with the `allpages` generator, requesting one namespace content at a time (`action=query&generator=allpages&gapnamespace=xx`).
40
+
41
+ The details we retrieve at this stage about every articles are their title, subtitle, revisions, redirects, thumbnail, categories, coordinates (when it applies), text language, text direction and contentmodel (to consider only on wikitext ones).
20
42
 
21
43
  ## Retrieving article HTML and rendering
22
44
 
@@ -36,15 +58,26 @@ Availability of RestApi and VisualEditor is subject to Mediawiki admin decision
36
58
 
37
59
  ActionParse is available since 1.16.0 (2010) and is anyway a requirement for other APIs.
38
60
 
39
- Only ActionParse (most recent renderer) implements a thorough skin support (see below about skin).
61
+ Only ActionParse (most recent renderer at mwoffliner level) implements a thorough skin support (see below about skin).
40
62
 
41
63
  All renderers but ActionParse needs two HTTP queries: one to retrieve the article HTML and one to retrieve its metadata (to a 'simplified' ActionParse URL in fact).
42
64
 
65
+ The article metadata we retrieve at this stage is the article are:
66
+
67
+ - `displaytitle` and `subtitle`
68
+ - `headhtml`: used to extract proper CSS classes we have to set on `<html>` and `<body>` tags + some JS configuration variables which are part of the HTML head
69
+ - `jsconfigvars`: other JS configuration variables which comes from other parts of the Mediawiki codebase
70
+ - `modules`: list of JS and CSS modules to apply on current article
71
+
43
72
  Renderer is automatically selected based on its availability and mwoffliner own preference. ActionParse is the preferred renderer since 1.15.0 due to its general availability and support of skins.
44
73
 
74
+ ### ActionParse parser
75
+
76
+ When using ActionParse renderer, we pass `usearticle=1`, which means that we ask the Mediawiki to use the parser configured for this article. This allows the scraper to retrieve article `text` (inner of the HTML containing the article itself) that is as close as possible to what is used online, either Parsoid or legacy parser (see https://www.mediawiki.org/wiki/Parsoid). This is mandatory because if we use a parser different than the one used online, we will de-facto get bugs which are "normal", either because parser still has a bug, or an extension is not compatible, or because Wikitext contains some workaround understandable only by a given parser. This should be avoided at all price if we want to have a versatile scraper capable of processing any Mediawiki. Even focusing only on Wikimedia wikis, not all of them have already transitioned to Parsoid for instance.
77
+
45
78
  ### Skins
46
79
 
47
- In Mediwikis, rendering of Wikitext into HTML works around a concept of skin. A skin is a mix of HTML template and CSS+JS dependencies. It defines both the visual appareance of the rendered Wikitext but also everything "around it".
80
+ In Mediawikis, rendering of Wikitext into HTML works around a concept of skin. A skin is a mix of HTML template and CSS+JS dependencies. It defines both the visual appareance of the rendered Wikitext but also everything "around it".
48
81
 
49
82
  Since most wikis have adapted their content to their skin (and vice versa), it is mostly mandatory to use the skin inside the ZIM, both for proper rendering and for a visual appareance similar to online website (users don't mind about technical details, they want the wiki to be the same inside the ZIM than online).
50
83
 
@@ -52,6 +85,7 @@ Skin detection is automated in mwoffliner for now (see https://github.com/openzi
52
85
 
53
86
  For now, only `vector` (legacy) and `vector-2022` are supported, and only with ActionParse renderer. Only `vector-2022` is the truely responsive skin, providing ultimate rendering on mostly all screen sizes.
54
87
 
88
+ With ActionParse renderer, other skins have a `fallback` skin implemented in the scraper. This means that the scraper will render the article HTML inside an HTML structure which looks like an expected structure (which comes from `vector` legacy). The consequence is that if the skins uses only article HTML structure to attach CSS rules or JS code, then everything will render fine. If the skins uses HTML structures coming from the "surrounding HTML" (headers, ...) then things will not apply 100% correctly.
55
89
 
56
90
  ### JS / CSS dependencies
57
91
 
@@ -1,7 +1,9 @@
1
1
  import type { BackoffStrategy } from 'backoff';
2
2
  import { AxiosRequestConfig, AxiosResponse } from 'axios';
3
3
  import S3 from './S3.js';
4
+ import { SiteInfoResponse } from './MediaWiki.js';
4
5
  import { Dump } from './Dump.js';
6
+ import ApiURLDirector from './util/builders/url/api.director.js';
5
7
  import { Renderer } from './renderers/abstract.renderer.js';
6
8
  interface DownloaderOpts {
7
9
  uaString: string;
@@ -11,7 +13,6 @@ interface DownloaderOpts {
11
13
  s3?: S3;
12
14
  webp: boolean;
13
15
  backoffOptions?: BackoffOptions;
14
- mwWikiPath?: string;
15
16
  insecure?: boolean;
16
17
  }
17
18
  interface BackoffOptions {
@@ -40,7 +41,6 @@ export interface DownloadErrorContext {
40
41
  declare class Downloader {
41
42
  private static instance;
42
43
  static getInstance(): Downloader;
43
- loginCookie: string;
44
44
  private _speed;
45
45
  cssDependenceUrls: KVS<boolean>;
46
46
  private _webp;
@@ -57,7 +57,8 @@ declare class Downloader {
57
57
  private backoffOptions;
58
58
  private optimisationCacheUrl;
59
59
  private s3;
60
- private apiUrlDirector;
60
+ private _apiUrlDirector;
61
+ private cookierJar;
61
62
  private articleUrlDirector;
62
63
  private mainPageUrlDirector;
63
64
  private insecure;
@@ -68,23 +69,26 @@ declare class Downloader {
68
69
  get arrayBufferRequestOptions(): AxiosRequestConfig<any>;
69
70
  get jsonRequestOptions(): AxiosRequestConfig<any>;
70
71
  get streamRequestOptions(): AxiosRequestConfig<any>;
72
+ get apiUrlDirector(): ApiURLDirector;
71
73
  set init({ uaString, speed, reqTimeout, optimisationCacheUrl, s3, webp, backoffOptions, insecure }: DownloaderOpts);
72
74
  private reset;
73
75
  private getUrlDirector;
74
76
  setUrlsDirectors(mainPageRenderer: Renderer, articlesRenderer: Renderer): void;
75
- getArticleUrl(articleId: string): string;
77
+ getArticleUrl(articleId: string, articleUrlOpts?: RendererArticleOpts): string;
76
78
  getMainPageUrl(articleId: string): string;
77
79
  removeEtagWeakPrefix(etag: string): string;
78
- query(): KVS<any>;
80
+ querySiteInfo(): Promise<SiteInfoResponse>;
79
81
  getArticleDetailsIds(articleIds: string[], shouldGetThumbnail?: boolean): Promise<QueryMwRet>;
80
82
  getArticleDetailsNS(ns: number, gapcontinue?: string): Promise<{
81
83
  gapContinue: string;
82
84
  articleDetails: QueryMwRet;
83
85
  }>;
84
86
  getLogEvents(letype: string, articleId: string): Promise<any>;
85
- getArticle(articleId: string, articleDetailXId: RKVS<ArticleDetail>, articleRenderer: Renderer, articleUrl: any, dump: Dump, articleDetail?: ArticleDetail, isMainPage?: boolean): Promise<any>;
87
+ getArticle(articleId: string, articleDetailXId: RKVS<ArticleDetail>, articleRenderer: Renderer, articleUrl: any, dump: Dump, articleDetail?: ArticleDetail): Promise<any>;
86
88
  getJSON<T>(_url: string): Promise<T>;
87
89
  request<T = any, R extends AxiosResponse<T> = AxiosResponse<T>, D = any>(config: AxiosRequestConfig<D>): Promise<R>;
90
+ get<T = any, R extends AxiosResponse<T> = AxiosResponse<T>, D = any>(url: string, config?: AxiosRequestConfig<D>): Promise<R>;
91
+ post<T = any, R extends AxiosResponse<T> = AxiosResponse<T>, D = any>(url: string, data?: D, config?: AxiosRequestConfig<D>): Promise<R>;
88
92
  downloadContent(_url: string, kind: DonwloadKind, retry?: boolean): Promise<{
89
93
  content: Buffer | string;
90
94
  contentType: string;
package/lib/Downloader.js CHANGED
@@ -11,9 +11,9 @@ import imageminGifsicle from 'imagemin-gifsicle';
11
11
  import imageminJpegoptim from 'imagemin-jpegoptim';
12
12
  import imageminWebp from 'imagemin-webp';
13
13
  import sharp from 'sharp';
14
- import http from 'http';
15
- import https from 'https';
16
14
  import { fileTypeFromBuffer } from 'file-type';
15
+ import { HttpCookieAgent, HttpsCookieAgent } from 'http-cookie-agent/http';
16
+ import { CookieJar } from 'tough-cookie';
17
17
  import * as logger from './Logger.js';
18
18
  import MediaWiki from './MediaWiki.js';
19
19
  import ApiURLDirector from './util/builders/url/api.director.js';
@@ -67,7 +67,6 @@ class Downloader {
67
67
  }
68
68
  return Downloader.instance;
69
69
  }
70
- loginCookie = '';
71
70
  _speed;
72
71
  cssDependenceUrls = {};
73
72
  _webp = false;
@@ -84,7 +83,8 @@ class Downloader {
84
83
  backoffOptions;
85
84
  optimisationCacheUrl;
86
85
  s3;
87
- apiUrlDirector;
86
+ _apiUrlDirector;
87
+ cookierJar;
88
88
  articleUrlDirector;
89
89
  mainPageUrlDirector;
90
90
  insecure = false;
@@ -109,18 +109,21 @@ class Downloader {
109
109
  get streamRequestOptions() {
110
110
  return this._streamRequestOptions;
111
111
  }
112
+ get apiUrlDirector() {
113
+ return this._apiUrlDirector;
114
+ }
112
115
  set init({ uaString, speed, reqTimeout, optimisationCacheUrl, s3, webp, backoffOptions, insecure }) {
113
116
  this.reset();
114
117
  this.uaString = uaString;
115
118
  this._speed = speed;
116
119
  this.maxActiveRequests = speed * 10;
117
120
  this._requestTimeout = reqTimeout;
118
- this.loginCookie = '';
119
121
  this.optimisationCacheUrl = optimisationCacheUrl;
120
122
  this._webp = webp;
121
123
  this.s3 = s3;
122
- this.apiUrlDirector = new ApiURLDirector(MediaWiki.actionApiUrl.href);
124
+ this._apiUrlDirector = new ApiURLDirector(MediaWiki.actionApiUrl.href);
123
125
  this.insecure = insecure;
126
+ this.cookierJar = new CookieJar();
124
127
  this.backoffOptions = {
125
128
  // retry up to 10 times, with a minimum of 1sec, maximum of 1min
126
129
  // this means we retry for up to about 6 mins, which is supposed
@@ -133,16 +136,24 @@ class Downloader {
133
136
  logger.log(`Retrying ${requestedUrl} URL due to ${err.code} error`);
134
137
  return true; // retry all connection issues
135
138
  }
139
+ if (err.responseData?.error?.code == 'maxlag') {
140
+ logger.log(`Mediawiki server is lagging ${err.responseData?.error?.lag}s; retrying in few seconds`);
141
+ return true; // note that we do not honor Retry-After header value because it is not possible in current code architecture
142
+ }
136
143
  const httpReturnCode = err.response?.status || err.httpReturnCode;
137
- if ([429].includes(httpReturnCode)) {
144
+ if ([429, 500, 502, 503, 504, 524].includes(httpReturnCode)) {
138
145
  logger.log(`Retrying ${requestedUrl} URL due to HTTP ${httpReturnCode} error`);
139
146
  return true; // retry these HTTP status codes
140
147
  }
141
- if ([
142
- 'internal_api_error_DBConnectionError',
143
- 'internal_api_error_DBUnexpectedError',
144
- 'internal_api_error_Wikibase\\DataModel\\Services\\Lookup\\EntityLookupException',
145
- ].includes(err.responseData?.error?.code)) {
148
+ if (err.responseData?.error?.code &&
149
+ ![
150
+ 'missingtitle',
151
+ 'readapidenied',
152
+ 'internal_api_error_MediaWiki\\Revision\\BadRevisionException',
153
+ 'internal_api_error_Wikimedia\\Assert\\UnreachableException',
154
+ 'internal_api_error_Wikimedia\\Assert\\InvariantException',
155
+ 'internal_api_error_Wikimedia\\Parsoid\\Core\\ResourceLimitExceededException',
156
+ ].includes(err.responseData?.error?.code)) {
146
157
  logger.log(`Retrying ${requestedUrl} URL due to ${err.responseData?.error?.code} Mediawiki error`);
147
158
  return true; // retry these Mediawiki codes which are known to be transient
148
159
  }
@@ -155,10 +166,14 @@ class Downloader {
155
166
  };
156
167
  this._basicRequestOptions = {
157
168
  // HTTP agent pools with 'keepAlive' to reuse TCP connections, so it's faster
158
- httpAgent: new http.Agent({ keepAlive: true }),
159
- httpsAgent: new https.Agent({ keepAlive: true, rejectUnauthorized: !this.insecure }), // rejectUnauthorized: false disables TLS
169
+ // Set cookie jar and use special Http(s)CookieAgent so that cookies are automatically intercepted and persited across calls
170
+ httpAgent: new HttpCookieAgent({ cookies: { jar: this.cookierJar }, keepAlive: true }),
171
+ httpsAgent: new HttpsCookieAgent({ cookies: { jar: this.cookierJar }, keepAlive: true, rejectUnauthorized: !this.insecure }), // rejectUnauthorized: false disables TLS
160
172
  timeout: this.requestTimeout,
161
173
  headers: {
174
+ // Use the base domain of the wiki being scraped as the Referer header, so that we can
175
+ // successfully scrap WMF map tiles.
176
+ Referer: MediaWiki.baseUrl.href,
162
177
  'cache-control': 'public, max-stale=86400',
163
178
  'user-agent': this.uaString,
164
179
  },
@@ -197,11 +212,10 @@ class Downloader {
197
212
  this._speed = undefined;
198
213
  this.maxActiveRequests = undefined;
199
214
  this._requestTimeout = undefined;
200
- this.loginCookie = '';
201
215
  this.optimisationCacheUrl = undefined;
202
216
  this._webp = false;
203
217
  this.s3 = undefined;
204
- this.apiUrlDirector = undefined;
218
+ this._apiUrlDirector = undefined;
205
219
  this.insecure = false;
206
220
  this.backoffOptions = undefined;
207
221
  this._basicRequestOptions = undefined;
@@ -237,8 +251,8 @@ class Downloader {
237
251
  this.articleUrlDirector = this.getUrlDirector(articlesRenderer);
238
252
  this.mainPageUrlDirector = this.getUrlDirector(mainPageRenderer);
239
253
  }
240
- getArticleUrl(articleId) {
241
- return this.articleUrlDirector.buildArticleURL(articleId);
254
+ getArticleUrl(articleId, articleUrlOpts = {}) {
255
+ return this.articleUrlDirector.buildArticleURL(articleId, articleUrlOpts);
242
256
  }
243
257
  getMainPageUrl(articleId) {
244
258
  return this.mainPageUrlDirector.buildArticleURL(articleId);
@@ -246,8 +260,8 @@ class Downloader {
246
260
  removeEtagWeakPrefix(etag) {
247
261
  return etag && etag.replace(WEAK_ETAG_REGEX, '');
248
262
  }
249
- query() {
250
- return this.getJSON(this.apiUrlDirector.buildSiteInfoQueryURL());
263
+ querySiteInfo() {
264
+ return this.getJSON(this.apiUrlDirector.buildSiteInfoURL());
251
265
  }
252
266
  async getArticleDetailsIds(articleIds, shouldGetThumbnail = false) {
253
267
  let continuation;
@@ -268,7 +282,7 @@ class Downloader {
268
282
  const reqUrl = this.apiUrlDirector.buildQueryURL(queryOpts);
269
283
  const resp = await this.getJSON(reqUrl);
270
284
  Downloader.handleMWWarningsAndErrors(resp);
271
- let processedResponse = resp.query ? normalizeMwResponse(resp.query) : {};
285
+ let processedResponse = resp.query?.pages ? normalizeMwResponse(resp.query) : {};
272
286
  if (resp.continue) {
273
287
  continuation = resp.continue;
274
288
  finalProcessedResp = finalProcessedResp === undefined ? processedResponse : deepmerge(finalProcessedResp, processedResponse);
@@ -337,10 +351,10 @@ class Downloader {
337
351
  const logEventsData = await this.getJSON(this.apiUrlDirector.buildLogEventsQuery(letype, articleId));
338
352
  return logEventsData.query?.logevents;
339
353
  }
340
- async getArticle(articleId, articleDetailXId, articleRenderer, articleUrl, dump, articleDetail, isMainPage) {
354
+ async getArticle(articleId, articleDetailXId, articleRenderer, articleUrl, dump, articleDetail) {
341
355
  logger.info(`Getting article [${articleId}] from ${articleUrl}`);
342
356
  try {
343
- const { data, moduleDependencies, redirects } = await articleRenderer.download({
357
+ const { data, moduleDependencies, redirects, displayTitle, articleSubtitle, bodyCssClass, htmlCssClass } = await articleRenderer.download({
344
358
  articleId,
345
359
  articleUrl,
346
360
  articleDetail,
@@ -353,7 +367,7 @@ class Downloader {
353
367
  // from new location to original location. Note that only ActionParse API gives proper redirects info.
354
368
  for (const redirect of redirects) {
355
369
  if (!(await RedisStore.articleDetailXId.exists(redirect.to)) && !(await RedisStore.redirectsXId.exists(redirect.to))) {
356
- RedisStore.redirectsXId.set(redirect.to, { targetId: redirect.from, title: redirect.to });
370
+ RedisStore.redirectsXId.set(redirect.to, { targetId: redirect.from, title: redirect.to, fragment: '' });
357
371
  }
358
372
  }
359
373
  return await articleRenderer.render({
@@ -362,7 +376,10 @@ class Downloader {
362
376
  articleId,
363
377
  articleDetailXId,
364
378
  articleDetail,
365
- isMainPage,
379
+ displayTitle,
380
+ articleSubtitle,
381
+ bodyCssClass,
382
+ htmlCssClass,
366
383
  dump,
367
384
  });
368
385
  }
@@ -404,8 +421,7 @@ class Downloader {
404
421
  dump.status.articles.hardFail += 1;
405
422
  dump.status.articles.hardFailedArticleIds.push(articleId);
406
423
  if (dump.maxHardFailedArticles > 0 && dump.status.articles.hardFail > dump.maxHardFailedArticles) {
407
- logger.error('Too many articles failed to download, aborting');
408
- throw err;
424
+ throw new Error('Too many articles failed to download');
409
425
  }
410
426
  }
411
427
  else {
@@ -449,27 +465,22 @@ class Downloader {
449
465
  });
450
466
  }
451
467
  async request(config) {
452
- return axios
453
- .request({
468
+ return axios.request({
469
+ ...this._basicRequestOptions,
454
470
  ...config,
455
471
  headers: {
456
- // Use the base domain of the wiki being scraped as the Referer header, so that we can
457
- // successfully scrap WMF map tiles.
458
- Referer: MediaWiki.baseUrl.href,
459
- // Set loginCookie if present (might be dynamic, so we need to override it at every call)
460
- cookie: this.loginCookie,
461
- ...config.headers,
472
+ ...this._basicRequestOptions.headers,
473
+ ...config?.headers,
462
474
  },
463
475
  signal: AbortSignal.timeout(this.requestTimeout),
464
- })
465
- .then(async (resp) => {
466
- // Store cookie if needed, so that we can pass it to next requests
467
- if (resp.headers['set-cookie']) {
468
- this.loginCookie = resp.headers['set-cookie'].join(';');
469
- }
470
- return resp;
471
476
  });
472
477
  }
478
+ async get(url, config) {
479
+ return this.request({ url, method: 'GET', ...config });
480
+ }
481
+ async post(url, data, config) {
482
+ return this.request({ url, data, method: 'POST', ...config });
483
+ }
473
484
  async downloadContent(_url, kind, retry = true) {
474
485
  if (!_url) {
475
486
  throw new Error(`Parameter [${_url}] is not a valid url`);
@@ -523,15 +534,13 @@ class Downloader {
523
534
  if (resp.error)
524
535
  logger.log(`Got error from MW Query ${JSON.stringify(resp.warnings, null, '\t')}`);
525
536
  }
526
- async getArticleQueryOpts(includePageimages = false, redirects = false) {
527
- const validNamespaceIds = MediaWiki.namespacesToMirror.map((ns) => MediaWiki.namespaces[ns].num);
537
+ async getArticleQueryOpts(includePageimages = false, followRedirects = false) {
528
538
  const prop = `${includePageimages ? '|pageimages' : ''}${(await MediaWiki.hasCoordinates()) ? '|coordinates' : ''}${MediaWiki.getCategories ? '|categories' : ''}`;
529
539
  return {
530
540
  ...MediaWiki.queryOpts,
531
541
  prop: MediaWiki.queryOpts.prop.concat(prop),
532
- rdnamespace: validNamespaceIds.join('|'),
533
542
  formatversion: '2',
534
- redirects: redirects ? true : undefined,
543
+ redirects: followRedirects ? true : undefined,
535
544
  };
536
545
  }
537
546
  async setArticleSubCategories(articleDetails) {
@@ -576,6 +585,10 @@ class Downloader {
576
585
  };
577
586
  async getImageMimeType(data) {
578
587
  const fileType = await fileTypeFromBuffer(data);
588
+ if (fileType && fileType.mime === 'application/xml') {
589
+ // File type is known to be wrong, might be SVG
590
+ return null;
591
+ }
579
592
  return fileType ? fileType.mime : null;
580
593
  }
581
594
  async getCompressedBody(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"Downloader.js","sourceRoot":"","sources":["../src/Downloader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Downloader.js","sourceRoot":"","sources":["../src/Downloader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAA;AAEjK,OAAO,SAAS,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAE5C,OAAO,KAAK,EAAE,EAAE,UAAU,EAAqC,MAAM,OAAO,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,gBAAgB,MAAM,mBAAmB,CAAA;AAChD,OAAO,iBAAiB,MAAM,oBAAoB,CAAA;AAClD,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,SAA0C,MAAM,gBAAgB,CAAA;AAEvE,OAAO,cAAc,MAAM,qCAAqC,CAAA;AAChE,OAAO,SAAS,MAAM,sBAAsB,CAAA;AAO5C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC/E,OAAO,UAAU,MAAM,iBAAiB,CAAA;AAExC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAE,CAAA;AACjC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;AACzC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;AAEtC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE;IAC9C,OAAO,EAAE,CAAE,gBAAwB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;CACvI,CAAC,CAAA;AACF,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE;IAC/C,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;CAC1D,CAAC,CAAA;AACF,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE;IAC9C,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;CAClE,CAAC,CAAA;AACF,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE;IAC3C,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;CACpD,CAAC,CAAA;AACF,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE;IAC5C,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;CACpD,CAAC,CAAA;AAwBF,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,SAAS,CAAe;IACxB,cAAc,CAAe;IAC7B,mBAAmB,CAAe;IAClC,YAAY,CAAK;IAEjB,YAAY,OAAe,EAAE,SAAwB,EAAE,cAA6B,EAAE,mBAAkC,EAAE,YAAiB;QACzI,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;QACpC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAA;QAC9C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAEhC,IAAI,mBAAmB,IAAI,KAAK,EAAE,CAAC;YACjC,gDAAgD;YAChD,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;CACF;AAWD;;GAEG;AACH,MAAM,UAAU;IACN,MAAM,CAAC,QAAQ,CAAY;IAC5B,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YACzB,UAAU,CAAC,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAA;QACxC,CAAC;QACD,OAAO,UAAU,CAAC,QAAQ,CAAA;IAC5B,CAAC;IACO,MAAM,CAAQ;IACf,iBAAiB,GAAiB,EAAE,CAAA;IACnC,KAAK,GAAY,KAAK,CAAA;IACtB,eAAe,CAAQ;IACvB,oBAAoB,CAAoB;IACxC,0BAA0B,CAAoB;IAC9C,mBAAmB,CAAoB;IACvC,qBAAqB,CAAoB;IAC1C,iCAAiC,GAAa,EAAE,CAAA;IAChD,oCAAoC,GAAa,EAAE,CAAA;IAElD,QAAQ,CAAQ;IAChB,cAAc,GAAG,CAAC,CAAA;IAClB,iBAAiB,GAAG,CAAC,CAAA;IACrB,cAAc,CAAgB;IAC9B,oBAAoB,CAAQ;IAC5B,EAAE,CAAI;IACN,eAAe,CAAgB;IAC/B,UAAU,CAAW;IAErB,kBAAkB,CAAa;IAC/B,mBAAmB,CAAa;IAChC,QAAQ,GAAY,KAAK,CAAA;IAEjC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IACD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;IACD,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAA;IAClC,CAAC;IACD,IAAI,yBAAyB;QAC3B,OAAO,IAAI,CAAC,0BAA0B,CAAA;IACxC,CAAC;IACD,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAA;IACjC,CAAC;IACD,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAA;IACnC,CAAC;IACD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;IAED,IAAI,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAkB;QAChH,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,iBAAiB,GAAG,KAAK,GAAG,EAAE,CAAA;QACnC,IAAI,CAAC,eAAe,GAAG,UAAU,CAAA;QACjC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;QACZ,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACtE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAA;QAEjC,IAAI,CAAC,cAAc,GAAG;YACpB,gEAAgE;YAChE,gEAAgE;YAChE,gEAAgE;YAChE,QAAQ,EAAE,IAAI,OAAO,CAAC,mBAAmB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YAClF,SAAS,EAAE,EAAE;YACb,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;gBACpB,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,IAAI,SAAS,CAAA;gBAClE,IAAI,GAAG,YAAY,UAAU,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzG,MAAM,CAAC,GAAG,CAAC,YAAY,YAAY,eAAe,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAA;oBACnE,OAAO,IAAI,CAAA,CAAC,8BAA8B;gBAC5C,CAAC;gBACD,IAAI,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC9C,MAAM,CAAC,GAAG,CAAC,+BAA+B,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,4BAA4B,CAAC,CAAA;oBACnG,OAAO,IAAI,CAAA,CAAC,6GAA6G;gBAC3H,CAAC;gBACD,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,CAAC,cAAc,CAAA;gBACjE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC5D,MAAM,CAAC,GAAG,CAAC,YAAY,YAAY,oBAAoB,cAAc,QAAQ,CAAC,CAAA;oBAC9E,OAAO,IAAI,CAAA,CAAC,gCAAgC;gBAC9C,CAAC;gBACD,IACE,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI;oBAC7B,CAAC;wBACC,cAAc;wBACd,eAAe;wBACf,8DAA8D;wBAC9D,4DAA4D;wBAC5D,0DAA0D;wBAC1D,6EAA6E;qBAC9E,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,EACzC,CAAC;oBACD,MAAM,CAAC,GAAG,CAAC,YAAY,YAAY,eAAe,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,kBAAkB,CAAC,CAAA;oBAClG,OAAO,IAAI,CAAA,CAAC,8DAA8D;gBAC5E,CAAC;gBACD,OAAO,KAAK,CAAA,CAAC,2BAA2B;YAC1C,CAAC;YACD,cAAc,EAAE,CAAC,MAAc,EAAE,KAAa,EAAE,EAAE;gBAChD,MAAM,CAAC,IAAI,CAAC,cAAc,MAAM,UAAU,KAAK,KAAK,CAAC,CAAA;YACvD,CAAC;YACD,GAAG,cAAc;SAClB,CAAA;QAED,IAAI,CAAC,oBAAoB,GAAG;YAC1B,6EAA6E;YAC7E,4HAA4H;YAC5H,SAAS,EAAE,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YACtF,UAAU,EAAE,IAAI,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,yCAAyC;YACvK,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,OAAO,EAAE;gBACP,sFAAsF;gBACtF,oCAAoC;gBACpC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI;gBAC/B,eAAe,EAAE,yBAAyB;gBAC1C,YAAY,EAAE,IAAI,CAAC,QAAQ;aAC5B;YACD,cAAc,CAAC,MAAM;gBACnB,OAAO,CAAC,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC,IAAI,MAAM,KAAK,GAAG,CAAA;YAC1D,CAAC;SACF,CAAA;QAED,IAAI,CAAC,0BAA0B,GAAG;YAChC,GAAG,IAAI,CAAC,mBAAmB;YAC3B,YAAY,EAAE,aAAa;YAC3B,MAAM,EAAE,KAAK;SACd,CAAA;QAED,IAAI,CAAC,mBAAmB,GAAG;YACzB,GAAG,IAAI,CAAC,mBAAmB;YAC3B,OAAO,EAAE;gBACP,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO;gBACnC,MAAM,EAAE,kBAAkB;gBAC1B,iBAAiB,EAAE,eAAe;aACnC;YACD,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE,KAAK;SACd,CAAA;QAED,IAAI,CAAC,qBAAqB,GAAG;YAC3B,GAAG,IAAI,CAAC,mBAAmB;YAC3B,OAAO,EAAE;gBACP,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO;gBACnC,MAAM,EAAE,0BAA0B;gBAClC,iBAAiB,EAAE,eAAe;aACnC;YACD,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,KAAK;SACd,CAAA;IACH,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAA;QACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;QACvB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAA;QAClC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;QAChC,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAA;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;QACnB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;QAChC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;QAErB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;QAC/B,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAA;QACrC,IAAI,CAAC,0BAA0B,GAAG,SAAS,CAAA;QAC3C,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAA;QACpC,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAA;QAEtC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAA;QAE3B,IAAI,CAAC,iCAAiC,GAAG,EAAE,CAAA;QAC3C,IAAI,CAAC,oCAAoC,GAAG,EAAE,CAAA;QAE9C,IAAI,CAAC,cAAc,GAAG,CAAC,CAAA;QACvB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;QAE1B,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAA;QACnC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAA;IACtC,CAAC;IAEO,cAAc,CAAC,QAAgB;QACrC,QAAQ,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAClC,KAAK,0BAA0B;gBAC7B,OAAO,SAAS,CAAC,2BAA2B,CAAA;YAC9C,KAAK,sBAAsB;gBACzB,OAAO,SAAS,CAAC,uBAAuB,CAAA;YAC1C,KAAK,yBAAyB;gBAC5B,OAAO,SAAS,CAAC,0BAA0B,CAAA;YAC7C,KAAK,iBAAiB;gBACpB,OAAO,SAAS,CAAC,kBAAkB,CAAA;YACrC,KAAK,qBAAqB;gBACxB,OAAO,SAAS,CAAC,sBAAsB,CAAA;YACzC,0BAA0B;YAC1B;gBACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IAEM,gBAAgB,CAAC,gBAA0B,EAAE,gBAA0B;QAC5E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;QAC/D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAA;IAClE,CAAC;IAEM,aAAa,CAAC,SAAiB,EAAE,iBAAsC,EAAE;QAC9E,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IAC3E,CAAC;IAEM,cAAc,CAAC,SAAiB;QACrC,OAAO,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;IAC5D,CAAC;IAEM,oBAAoB,CAAC,IAAY;QACtC,OAAO,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;IAClD,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAmB,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAA;IAC/E,CAAC;IAEM,KAAK,CAAC,oBAAoB,CAAC,UAAoB,EAAE,kBAAkB,GAAG,KAAK;QAChF,IAAI,YAA0B,CAAA;QAC9B,IAAI,kBAA8B,CAAA;QAElC,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,SAAS,GAAa;gBAC1B,GAAG,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;gBAC7D,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC5B,GAAG,CAAC,CAAC,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,GAAG,CAAC,SAAS,CAAC,aAAa;oBACzB,CAAC,CAAC;wBACE,OAAO,EAAE,KAAK;wBACd,MAAM,EAAE,SAAS;qBAClB;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,YAAY;aAChB,CAAA;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;YAE3D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAgB,MAAM,CAAC,CAAA;YAEtD,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAA;YAE1C,IAAI,iBAAiB,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YAChF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAA;gBAC5B,kBAAkB,GAAG,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;YAC9H,CAAC;iBAAM,CAAC;gBACN,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;oBAC5B,iBAAiB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAA;gBAC3E,CAAC;gBACD,kBAAkB,GAAG,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;gBAC5H,MAAK;YACP,CAAC;QACH,CAAC;QAED,OAAO,kBAAkB,CAAA;IAC3B,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,EAAU,EAAE,WAAW,GAAG,EAAE;QAC3D,IAAI,iBAAoC,CAAA;QACxC,IAAI,kBAA8B,CAAA;QAClC,IAAI,KAAK,GAAW,IAAI,CAAA;QAExB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,SAAS,GAAa;gBAC1B,GAAG,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACrC,GAAG,CAAC,CAAC,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,GAAG,CAAC,SAAS,CAAC,aAAa;oBACzB,CAAC,CAAC;wBACE,OAAO,EAAE,KAAK;wBACd,MAAM,EAAE,SAAS;qBAClB;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,WAAW,EAAE,MAAM;gBACnB,SAAS,EAAE,UAAU;gBACrB,cAAc,EAAE,cAAc;gBAC9B,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC;gBACxB,WAAW;aACZ,CAAA;YAED,IAAI,iBAAiB,EAAE,CAAC;gBACtB,SAAS,CAAC,UAAU,GAAG,iBAAiB,EAAE,WAAW,EAAE,UAAU,IAAI,SAAS,CAAC,UAAU,CAAA;gBACzF,SAAS,CAAC,UAAU,GAAG,iBAAiB,EAAE,UAAU,EAAE,UAAU,IAAI,SAAS,CAAC,UAAU,CAAA;gBACxF,SAAS,CAAC,UAAU,GAAG,iBAAiB,EAAE,UAAU,EAAE,UAAU,IAAI,SAAS,CAAC,UAAU,CAAA;gBACxF,SAAS,CAAC,UAAU,GAAG,iBAAiB,EAAE,SAAS,EAAE,UAAU,IAAI,SAAS,CAAC,UAAU,CAAA;YACzF,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;YAE3D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAgB,MAAM,CAAC,CAAA;YACtD,UAAU,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAA;YAE1C,IAAI,iBAAiB,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAEvD,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,WAAW,IAAI,KAAK,CAAA;YAE9D,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;YAEhH,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAA;gBAE1C,kBAAkB,GAAG,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;YAC9H,CAAC;iBAAM,CAAC;gBACN,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;oBAC5B,iBAAiB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAA;gBAC3E,CAAC;gBAED,kBAAkB,GAAG,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;gBAC5H,MAAK;YACP,CAAC;QACH,CAAC;QAED,OAAO;YACL,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,KAAK;SACnB,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,SAAiB;QACzD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;QACzG,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAA;IACvC,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,SAAiB,EACjB,gBAAqC,EACrC,eAAyB,EACzB,UAAU,EACV,IAAU,EACV,aAA6B;QAE7B,MAAM,CAAC,IAAI,CAAC,oBAAoB,SAAS,UAAU,UAAU,EAAE,CAAC,CAAA;QAEhE,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC;gBACxI,SAAS;gBACT,UAAU;gBACV,aAAa;aACd,CAAC,CAAA;YAEF,oGAAoG;YACpG,wGAAwG;YACxG,sGAAsG;YACtG,wGAAwG;YACxG,uGAAuG;YACvG,sGAAsG;YACtG,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBACrH,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;gBACzG,CAAC;YACH,CAAC;YAED,OAAO,MAAM,eAAe,CAAC,MAAM,CAAC;gBAClC,IAAI;gBACJ,kBAAkB;gBAClB,SAAS;gBACT,gBAAgB;gBAChB,aAAa;gBACb,YAAY;gBACZ,eAAe;gBACf,YAAY;gBACZ,YAAY;gBACZ,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,oBAA0C,CAAA;YAC9C,IAAI,GAAG,YAAY,UAAU,EAAE,CAAC;gBAC9B,oBAAoB,GAAG;oBACrB,SAAS,EAAE,GAAG,CAAC,IAAI;oBACnB,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG;oBACzB,cAAc,EAAE,GAAG,CAAC,MAAM;oBAC1B,mBAAmB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;oBAC1F,YAAY,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI;iBACjC,CAAA;YACH,CAAC;iBAAM,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;gBACxC,oBAAoB,GAAG;oBACrB,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,cAAc,EAAE,GAAG,CAAC,cAAc;oBAClC,mBAAmB,EAAE,GAAG,CAAC,mBAAmB;oBAC5C,YAAY,EAAE,GAAG,CAAC,YAAY;iBAC/B,CAAA;YACH,CAAC;YACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,MAAM,GAAG,CAAA;YACX,CAAC;YACD,MAAM,CAAC,IAAI,CACT,WAAW,SAAS,6BAA6B,oBAAoB,CAAC,SAAS,SAAS;gBACtF,IAAI,oBAAoB,CAAC,SAAS,gBAAgB;gBAClD,IAAI,oBAAoB,CAAC,cAAc,qBAAqB;gBAC5D,QAAQ,oBAAoB,CAAC,mBAAmB,iBAAiB;gBACjE,sBAAsB,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAC5E,CAAA;YACD,MAAM,SAAS,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,CAAA;YAC7D,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAA;gBACxD,MAAM,GAAG,CAAA;YACX,CAAC;YACD,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;gBAC5B,MAAM,CAAC,GAAG,CAAC,kBAAkB,SAAS,CAAC,iBAAiB,gDAAgD,CAAC,CAAA;gBACzG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAA;gBAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACzD,IAAI,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBACjG,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;gBACzD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,kBAAkB,SAAS,CAAC,iBAAiB,gDAAgD,CAAC,CAAA;gBACzG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAA;gBAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC3D,CAAC;YACD,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA,CAAC,8EAA8E;YAC5H,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YACjD,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAA;YAC1F,OAAO;gBACL;oBACE,SAAS;oBACT,YAAY,EAAE,YAAY;oBAC1B,IAAI,EAAE,oBAAoB;oBAC1B,iBAAiB,EAAE,EAAE;oBACrB,iBAAiB,EAAE,EAAE;oBACrB,iBAAiB,EAAE,EAAE;oBACrB,kBAAkB,EAAE,EAAE;oBACtB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,sBAAsB;oBACjD,SAAS,EAAE,EAAE;iBACd;aACF,CAAA;QACH,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,OAAO,CAAI,IAAY;QAClC,MAAM,GAAG,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QACzB,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,GAAQ,EAAE,GAAQ,EAAE,EAAE;gBACnE,IAAI,CAAC,cAAc,EAAE,CAAA;gBACrB,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,cAAc,CAAA;oBAC9E,MAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,aAAa,UAAU,GAAG,CAAC,CAAA;oBAC5D,MAAM,CAAC,GAAG,CAAC,CAAA;gBACb,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,CAAA;gBACd,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,OAAO,CAAkE,MAA6B;QACjH,OAAO,KAAK,CAAC,OAAO,CAAU;YAC5B,GAAG,IAAI,CAAC,oBAAoB;YAC5B,GAAG,MAAM;YACT,OAAO,EAAE;gBACP,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO;gBACpC,GAAG,MAAM,EAAE,OAAO;aACnB;YACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;SACjD,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,GAAG,CAAkE,GAAW,EAAE,MAA8B;QAC3H,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IACxD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAkE,GAAW,EAAE,IAAQ,EAAE,MAA8B;QACtI,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IAC/D,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,IAAkB,EAAE,KAAK,GAAG,IAAI;QACzE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,sBAAsB,CAAC,CAAA;QAC3D,CAAC;QAED,IAAI,GAAG,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,GAAG,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAA;QAC7C,CAAC;QAED,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;QAEzB,IAAI,CAAC;YACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,EAAE,GAAG,CAAC,GAAQ,EAAE,GAAQ,EAAE,EAAE;oBAChC,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,GAAG,CAAC,CAAA;oBACb,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,CAAA;oBACd,CAAC;gBACH,CAAC,CAAA;gBACD,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;gBACpD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;gBAClC,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAA;YACtD,MAAM,CAAC,IAAI,CAAC,kBAAkB,GAAG,aAAa,UAAU,GAAG,CAAC,CAAA;YAC5D,MAAM,GAAG,CAAA;QACX,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,EAAE,CAAA;QACvB,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,GAAW;QAChC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAA;YAC7E,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,yBAAyB,CAAC,IAAmB;QAC1D,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QACxG,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QACvH,IAAI,IAAI,CAAC,KAAK;YAAE,MAAM,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IACpG,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,iBAAiB,GAAG,KAAK,EAAE,eAAe,GAAG,KAAK;QAClF,MAAM,IAAI,GAAG,GAAG,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QAClK,OAAO;YACL,GAAG,SAAS,CAAC,SAAS;YACtB,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3C,aAAa,EAAE,GAAG;YAClB,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SAC9C,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,cAA0B;QAC9D,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QACpC,KAAK,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YACxE,MAAM,iBAAiB,GAAG,aAAa,CAAC,EAAE,KAAK,EAAE,CAAA;YACjD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAC7D;gBAAC,cAAc,CAAC,SAAS,CAAS,CAAC,aAAa,GAAG,eAAe,CAAC,KAAK,EAAE,CAAA;YAC7E,CAAC;QACH,CAAC;QACD,OAAO,cAAc,CAAA;IACvB,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACjD,IAAI,CAAC,cAAc,IAAI,CAAC,CAAA;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5B,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YAC1B,CAAC,CAAC,CAAA;YACF,OAAO,IAAI,CAAC,YAAY,EAAE,CAAA;QAC5B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC,cAAc,IAAI,CAAC,CAAA;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,SAAS,GAAG,CAAI,GAAW,EAAE,IAAkB,EAAE,OAAgC,EAAQ,EAAE;QACjG,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC,CAAA;QACzC,IAAI,CAAC,OAAO,CAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAChE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,IAAK,GAAG,CAAC,IAAY,CAAC,KAAK,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,aAAa,CAAC,kCAAkC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;YACnI,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACjC,CAAC,CAAA;IAEO,KAAK,CAAC,gBAAgB,CAAC,IAAS;QACtC,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACpD,+CAA+C;YAC/C,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IACxC,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,KAAsB;QACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3D,IAAI,qBAAqB,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,IAAI,IAAI,4BAA4B,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3D,OAAO;oBACL,IAAI,EAAE,MAAO,QAAgB;yBAC1B,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;yBAChE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;wBACnB,IAAI,sCAAsC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;4BAC5D,OAAQ,QAAgB;iCACrB,MAAM,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;iCAC7G,KAAK,CAAC,GAAG,EAAE;gCACV,OAAO,KAAK,CAAC,IAAI,CAAA;4BACnB,CAAC,CAAC;iCACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gCACb,OAAO,IAAI,CAAA;4BACb,CAAC,CAAC,CAAA;wBACN,CAAC;6BAAM,CAAC;4BACN,OAAQ,QAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;gCACtG,OAAO,KAAK,CAAC,IAAI,CAAA;4BACnB,CAAC,CAAC,CAAA;wBACJ,CAAC;oBACH,CAAC,CAAC;yBACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;wBACb,OAAO,IAAI,CAAA;oBACb,CAAC,CAAC;iBACL,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,IAAI,EAAE,MAAO,QAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;wBAC3G,OAAO,KAAK,CAAC,IAAI,CAAA;oBACnB,CAAC,CAAC;iBACH,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAA;IACH,CAAC;IAEO,YAAY,GAAG,KAAK,EAAE,GAAW,EAAE,IAAkB,EAAE,OAAY,EAAiB,EAAE;QAC5F,MAAM,CAAC,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAA;QACnC,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;YAClC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAA;gBAC1F,+DAA+D;gBAC/D,MAAM,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;gBACvG,oFAAoF;gBACpF,MAAM,WAAW,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;gBAC5I,OAAO,CAAC,IAAI,EAAE;oBACZ,WAAW;oBACX,OAAO;iBACR,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,CAAA;YACd,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAEO,KAAK,CAAC,aAAa,CAAC,GAAW,EAAE,OAAY;QACnD,IAAI,CAAC;YACH,IAAI,CAAC,EAAE;gBAEL,6EAA6E;iBAC5E,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;gBAE9D,gDAAgD;iBAC/C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACrB,yDAAyD;gBACzD,2DAA2D;gBAC3D,gCAAgC;gBAChC,IAAI,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;oBAC3B,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBAC3G,CAAC;gBACD,sFAAsF;gBACtF,oCAAoC;gBACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAA;gBAE5F,6DAA6D;gBAC7D,+DAA+D;gBAC/D,2DAA2D;gBAC3D,0DAA0D;gBAC1D,uCAAuC;gBACvC,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC1B,qBAAqB;oBACrB,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAgB,CAAC,CAAQ,CAAA;oBACxE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;oBACrD,MAAM,CAAC,IAAI,CAAC,6BAA6B,GAAG,kBAAkB,WAAW,GAAG,CAAC,CAAA;oBAC7E,OAAO,CAAC,IAAI,EAAE;wBACZ,WAAW;wBACX,OAAO,EAAE,IAAI;qBACd,CAAC,CAAA;oBACF,OAAM;gBACR,CAAC;gBAED,wEAAwE;gBACxE,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;gBACvB,CAAC;gBAED,oEAAoE;gBACpE,MAAM,cAAc,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;gBAEjF,yCAAyC;gBACzC,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAC3D,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;gBACjG,CAAC;gBAED,kHAAkH;gBAClH,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;gBACnG,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,CAAC,4CAA4C,GAAG,+CAA+C,WAAW,GAAG,CAAC,CAAA;gBAC3H,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,4CAA4C,GAAG,4CAA4C,WAAW,GAAG,CAAC,CAAA;gBACxH,CAAC;gBAED,qBAAqB;gBACrB,OAAO,CAAC,IAAI,EAAE;oBACZ,WAAW;oBACX,OAAO,EAAE,cAAc;iBACxB,CAAC,CAAA;YACJ,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;YACpC,CAAC,CAAC,CAAA;QACN,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,GAAQ,EAAE,GAAW,EAAE,OAAY;QACpD,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;YACnD,MAAM,oBAAoB,GAAW,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC5E,MAAM,CAAC,GAAG,CAAC,mCAAmC,IAAI,CAAC,iBAAiB,SAAS,oBAAoB,GAAG,CAAC,CAAA;YACrG,IAAI,CAAC,iBAAiB,GAAG,oBAAoB,CAAA;QAC/C,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,oCAAoC,GAAG,WAAW,GAAG,EAAE,CAAC,CAAA;QACnE,OAAO,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,WAAW,GAAG,EAAE;QAChE,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAEtE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAM,cAAc,CAAC,qBAAqB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;QACvH,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAA;QAEpE,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;YACzE,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAChC,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,OAAiC,EAAE,GAAW,EAAE,IAAkB,EAAE,QAAkD;QACxI,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QACvD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;QAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;QAC7C,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,KAAa;QAC9C,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAA;QAC5C,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAA;QAE9C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAEtE,MAAM,aAAa,GAAG,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAE9D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAM,aAAa,CAAC,CAAA;QAE1D,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,uDAAuD,KAAK,MAAM,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;YAC/G,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAE1B,0EAA0E;YAC1E,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC9C,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAA;YAChF,CAAC;YAED,4EAA4E;YAC5E,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;QAC/B,CAAC;QAED,MAAM,EACJ,KAAK,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,GAC1D,GAAG,WAAW,CAAA;QAEf,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAE3F,MAAM,qBAAqB,GAAG,EAAE;aAC7B,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,iBAAiB,CAAC;aAChD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;aAChB,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAA;QAEtF,MAAM,CAAC,IAAI,CAAC,sBAAsB,KAAK,MAAM,kBAAkB,EAAE,CAAC,CAAA;QAClE,MAAM,CAAC,IAAI,CAAC,uBAAuB,KAAK,MAAM,qBAAqB,EAAE,CAAC,CAAA;QAEtE,MAAM,YAAY,GAAG,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;QAE7D,8CAA8C;QAC9C,IAAI,CAAC,MAAM,SAAS,CAAC,qBAAqB,EAAE,CAAC,IAAI,IAAI,CAAC,iCAAiC,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,oCAAoC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/J,IAAI,CAAC;gBACH,0GAA0G;gBAC1G,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAM,GAAG,SAAS,CAAC,gBAAgB,MAAM,CAAC,CAAA;gBACtF,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAc,EAAE,EAAE;oBAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;wBAClC,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBACrD,CAAC;yBAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;wBAClC,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBACxD,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;YAChE,CAAC;QACH,CAAC;QACD,OAAO;YACL,YAAY;YACZ,kBAAkB,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC;YACrF,qBAAqB,EAAE,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC;SAC/F,CAAA;IACH,CAAC;IAED,yFAAyF;IACjF,KAAK,CAAC,cAAc,CAAC,MAAgB;QAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAiB,EAAE,CAAA;YAC/B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;YAChD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC1B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,QAAgB;QAChD,IAAI,YAAY,GAAG,EAAE,CAAA;QAErB,0FAA0F;QAC1F,sGAAsG;QACtG,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,QAAQ,gBAAgB,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;QACpG,MAAM,KAAK,GAAG,+BAA+B,CAAA;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACjD,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBACtD,YAAY,GAAG,gDAAgD,YAAY,KAAK,CAAA;YAClF,CAAC;iBAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC3I,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YACnC,CAAC;QACH,CAAC;QAED,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA,CAAC,6FAA6F;QAEzJ,OAAO,YAAY,CAAA;IACrB,CAAC;CACF;AAED,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,CAAA;AAExC,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,CAAA;AACnC,eAAe,EAAgB,CAAA"}
package/lib/Dump.d.ts CHANGED
@@ -29,7 +29,6 @@ export declare class Dump {
29
29
  strings: KVS<string>;
30
30
  mwMetaData: MWMetaData;
31
31
  outFile: string;
32
- isMainPage: (articleId: string) => boolean;
33
32
  maxHardFailedArticles: number;
34
33
  status: {
35
34
  files: {
package/lib/Dump.js CHANGED
@@ -12,9 +12,6 @@ export class Dump {
12
12
  strings;
13
13
  mwMetaData;
14
14
  outFile;
15
- isMainPage = (articleId) => {
16
- return this.mwMetaData.mainPage === articleId ? true : false;
17
- };
18
15
  maxHardFailedArticles = 0;
19
16
  status = {
20
17
  files: {
package/lib/Dump.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Dump.js","sourceRoot":"","sources":["../src/Dump.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Dump.js","sourceRoot":"","sources":["../src/Dump.ts"],"names":[],"mappings":"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"}