@vpmedia/simplify 1.58.0 โ†’ 1.59.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,18 @@
1
+ ## [1.59.0] - 2026-01-13
2
+
3
+ ### ๐Ÿš€ Features
4
+
5
+ - Updated http status codes and added map to get status names
6
+
7
+ ### ๐Ÿงช Testing
8
+
9
+ - Fix flaky delayPromise test
10
+
11
+ ### โš™๏ธ Miscellaneous Tasks
12
+
13
+ - Release
14
+ - Updated http status code names
15
+ - *(release)* V1.59.0
1
16
  ## [1.58.0] - 2026-01-13
2
17
 
3
18
  ### ๐Ÿ’ผ Other
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vpmedia/simplify",
3
- "version": "1.58.0",
3
+ "version": "1.59.0",
4
4
  "description": "@vpmedia/simplify",
5
5
  "author": "Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)",
6
6
  "license": "MIT",
@@ -1,3 +1,6 @@
1
+ // @see https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
2
+ // @see https://www.rfc-editor.org/rfc/rfc9110
3
+
1
4
  export const HTTP_100_CONTINUE = 100;
2
5
  export const HTTP_101_SWITCHING_PROTOCOLS = 101;
3
6
  export const HTTP_102_PROCESSING = 102;
@@ -34,23 +37,23 @@ export const HTTP_409_CONFLICT = 409;
34
37
  export const HTTP_410_GONE = 410;
35
38
  export const HTTP_411_LENGTH_REQUIRED = 411;
36
39
  export const HTTP_412_PRECONDITION_FAILED = 412;
37
- export const HTTP_413_REQUEST_ENTITY_TOO_LARGE = 413;
38
- export const HTTP_414_REQUEST_URI_TOO_LONG = 414;
40
+ export const HTTP_413_CONTENT_TOO_LARGE = 413;
41
+ export const HTTP_414_URI_TOO_LONG = 414;
39
42
  export const HTTP_415_UNSUPPORTED_MEDIA_TYPE = 415;
40
- export const HTTP_416_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
43
+ export const HTTP_416_RANGE_NOT_SATISFIABLE = 416;
41
44
  export const HTTP_417_EXPECTATION_FAILED = 417;
42
45
  export const HTTP_418_IM_A_TEAPOT = 418;
43
46
  export const HTTP_421_MISDIRECTED_REQUEST = 421;
44
- export const HTTP_422_UNPROCESSABLE_ENTITY = 422;
47
+ export const HTTP_422_UNPROCESSABLE_CONTENT = 422;
45
48
  export const HTTP_423_LOCKED = 423;
46
49
  export const HTTP_424_FAILED_DEPENDENCY = 424;
47
50
  export const HTTP_425_TOO_EARLY = 425;
48
51
  export const HTTP_426_UPGRADE_REQUIRED = 426;
49
52
  export const HTTP_428_PRECONDITION_REQUIRED = 428;
50
53
  export const HTTP_429_TOO_MANY_REQUESTS = 429;
51
- export const HTTP_499_CLIENT_CLOSED_CONNECTION = 499;
52
54
  export const HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE = 431;
53
55
  export const HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS = 451;
56
+ export const HTTP_499_CLIENT_CLOSED_CONNECTION = 499;
54
57
  export const HTTP_500_INTERNAL_SERVER_ERROR = 500;
55
58
  export const HTTP_501_NOT_IMPLEMENTED = 501;
56
59
  export const HTTP_502_BAD_GATEWAY = 502;
@@ -62,3 +65,70 @@ export const HTTP_507_INSUFFICIENT_STORAGE = 507;
62
65
  export const HTTP_508_LOOP_DETECTED = 508;
63
66
  export const HTTP_510_NOT_EXTENDED = 510;
64
67
  export const HTTP_511_NETWORK_AUTHENTICATION_REQUIRED = 511;
68
+
69
+ export const HTTP_STATUS_MAP = {
70
+ [HTTP_100_CONTINUE]: 'HTTP_100_CONTINUE',
71
+ [HTTP_101_SWITCHING_PROTOCOLS]: 'HTTP_101_SWITCHING_PROTOCOLS',
72
+ [HTTP_102_PROCESSING]: 'HTTP_102_PROCESSING',
73
+ [HTTP_103_EARLY_HINTS]: 'HTTP_103_EARLY_HINTS',
74
+ [HTTP_200_OK]: 'HTTP_200_OK',
75
+ [HTTP_201_CREATED]: 'HTTP_201_CREATED',
76
+ [HTTP_202_ACCEPTED]: 'HTTP_202_ACCEPTED',
77
+ [HTTP_203_NON_AUTHORITATIVE_INFORMATION]: 'HTTP_203_NON_AUTHORITATIVE_INFORMATION',
78
+ [HTTP_204_NO_CONTENT]: 'HTTP_204_NO_CONTENT',
79
+ [HTTP_205_RESET_CONTENT]: 'HTTP_205_RESET_CONTENT',
80
+ [HTTP_206_PARTIAL_CONTENT]: 'HTTP_206_PARTIAL_CONTENT',
81
+ [HTTP_207_MULTI_STATUS]: 'HTTP_207_MULTI_STATUS',
82
+ [HTTP_208_ALREADY_REPORTED]: 'HTTP_208_ALREADY_REPORTED',
83
+ [HTTP_226_IM_USED]: 'HTTP_226_IM_USED',
84
+ [HTTP_300_MULTIPLE_CHOICES]: 'HTTP_300_MULTIPLE_CHOICES',
85
+ [HTTP_301_MOVED_PERMANENTLY]: 'HTTP_301_MOVED_PERMANENTLY',
86
+ [HTTP_302_FOUND]: 'HTTP_302_FOUND',
87
+ [HTTP_303_SEE_OTHER]: 'HTTP_303_SEE_OTHER',
88
+ [HTTP_304_NOT_MODIFIED]: 'HTTP_304_NOT_MODIFIED',
89
+ [HTTP_305_USE_PROXY]: 'HTTP_305_USE_PROXY',
90
+ [HTTP_306_RESERVED]: 'HTTP_306_RESERVED',
91
+ [HTTP_307_TEMPORARY_REDIRECT]: 'HTTP_307_TEMPORARY_REDIRECT',
92
+ [HTTP_308_PERMANENT_REDIRECT]: 'HTTP_308_PERMANENT_REDIRECT',
93
+ [HTTP_400_BAD_REQUEST]: 'HTTP_400_BAD_REQUEST',
94
+ [HTTP_401_UNAUTHORIZED]: 'HTTP_401_UNAUTHORIZED',
95
+ [HTTP_402_PAYMENT_REQUIRED]: 'HTTP_402_PAYMENT_REQUIRED',
96
+ [HTTP_403_FORBIDDEN]: 'HTTP_403_FORBIDDEN',
97
+ [HTTP_404_NOT_FOUND]: 'HTTP_404_NOT_FOUND',
98
+ [HTTP_405_METHOD_NOT_ALLOWED]: 'HTTP_405_METHOD_NOT_ALLOWED',
99
+ [HTTP_406_NOT_ACCEPTABLE]: 'HTTP_406_NOT_ACCEPTABLE',
100
+ [HTTP_407_PROXY_AUTHENTICATION_REQUIRED]: 'HTTP_407_PROXY_AUTHENTICATION_REQUIRED',
101
+ [HTTP_408_REQUEST_TIMEOUT]: 'HTTP_408_REQUEST_TIMEOUT',
102
+ [HTTP_409_CONFLICT]: 'HTTP_409_CONFLICT',
103
+ [HTTP_410_GONE]: 'HTTP_410_GONE',
104
+ [HTTP_411_LENGTH_REQUIRED]: 'HTTP_411_LENGTH_REQUIRED',
105
+ [HTTP_412_PRECONDITION_FAILED]: 'HTTP_412_PRECONDITION_FAILED',
106
+ [HTTP_413_CONTENT_TOO_LARGE]: 'HTTP_413_CONTENT_TOO_LARGE',
107
+ [HTTP_414_URI_TOO_LONG]: 'HTTP_414_URI_TOO_LONG',
108
+ [HTTP_415_UNSUPPORTED_MEDIA_TYPE]: 'HTTP_415_UNSUPPORTED_MEDIA_TYPE',
109
+ [HTTP_416_RANGE_NOT_SATISFIABLE]: 'HTTP_416_RANGE_NOT_SATISFIABLE',
110
+ [HTTP_417_EXPECTATION_FAILED]: 'HTTP_417_EXPECTATION_FAILED',
111
+ [HTTP_418_IM_A_TEAPOT]: 'HTTP_418_IM_A_TEAPOT',
112
+ [HTTP_421_MISDIRECTED_REQUEST]: 'HTTP_421_MISDIRECTED_REQUEST',
113
+ [HTTP_422_UNPROCESSABLE_CONTENT]: 'HTTP_422_UNPROCESSABLE_CONTENT',
114
+ [HTTP_423_LOCKED]: 'HTTP_423_LOCKED',
115
+ [HTTP_424_FAILED_DEPENDENCY]: 'HTTP_424_FAILED_DEPENDENCY',
116
+ [HTTP_425_TOO_EARLY]: 'HTTP_425_TOO_EARLY',
117
+ [HTTP_426_UPGRADE_REQUIRED]: 'HTTP_426_UPGRADE_REQUIRED',
118
+ [HTTP_428_PRECONDITION_REQUIRED]: 'HTTP_428_PRECONDITION_REQUIRED',
119
+ [HTTP_429_TOO_MANY_REQUESTS]: 'HTTP_429_TOO_MANY_REQUESTS',
120
+ [HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE]: 'HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE',
121
+ [HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS]: 'HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS',
122
+ [HTTP_499_CLIENT_CLOSED_CONNECTION]: 'HTTP_499_CLIENT_CLOSED_CONNECTION',
123
+ [HTTP_500_INTERNAL_SERVER_ERROR]: 'HTTP_500_INTERNAL_SERVER_ERROR',
124
+ [HTTP_501_NOT_IMPLEMENTED]: 'HTTP_501_NOT_IMPLEMENTED',
125
+ [HTTP_502_BAD_GATEWAY]: 'HTTP_502_BAD_GATEWAY',
126
+ [HTTP_503_SERVICE_UNAVAILABLE]: 'HTTP_503_SERVICE_UNAVAILABLE',
127
+ [HTTP_504_GATEWAY_TIMEOUT]: 'HTTP_504_GATEWAY_TIMEOUT',
128
+ [HTTP_505_HTTP_VERSION_NOT_SUPPORTED]: 'HTTP_505_HTTP_VERSION_NOT_SUPPORTED',
129
+ [HTTP_506_VARIANT_ALSO_NEGOTIATES]: 'HTTP_506_VARIANT_ALSO_NEGOTIATES',
130
+ [HTTP_507_INSUFFICIENT_STORAGE]: 'HTTP_507_INSUFFICIENT_STORAGE',
131
+ [HTTP_508_LOOP_DETECTED]: 'HTTP_508_LOOP_DETECTED',
132
+ [HTTP_510_NOT_EXTENDED]: 'HTTP_510_NOT_EXTENDED',
133
+ [HTTP_511_NETWORK_AUTHENTICATION_REQUIRED]: 'HTTP_511_NETWORK_AUTHENTICATION_REQUIRED',
134
+ };
@@ -0,0 +1,7 @@
1
+ import { HTTP_100_CONTINUE, HTTP_STATUS_MAP } from './http_status.js';
2
+
3
+ describe('http_status', () => {
4
+ test('HTTP status name from code', () => {
5
+ expect(HTTP_STATUS_MAP[HTTP_100_CONTINUE]).toBe('HTTP_100_CONTINUE');
6
+ });
7
+ });
@@ -7,7 +7,7 @@ describe('delayPromise', () => {
7
7
  const end = Date.now();
8
8
 
9
9
  // Should resolve within a reasonable time frame
10
- expect(end - start).toBeGreaterThanOrEqual(10);
10
+ expect(end - start).toBeGreaterThanOrEqual(9);
11
11
  });
12
12
 
13
13
  test('Handles zero delay correctly', async () => {
package/src/util/fetch.js CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  HTTP_401_UNAUTHORIZED,
6
6
  HTTP_403_FORBIDDEN,
7
7
  HTTP_405_METHOD_NOT_ALLOWED,
8
- HTTP_422_UNPROCESSABLE_ENTITY,
8
+ HTTP_422_UNPROCESSABLE_CONTENT,
9
9
  } from '../const/http_status.js';
10
10
  import { Logger } from '../logging/Logger.js';
11
11
  import { delayPromise } from './async.js';
@@ -49,7 +49,7 @@ export const fetchRetry = async (resource, fetchOptions, retryOptions) => {
49
49
  HTTP_401_UNAUTHORIZED,
50
50
  HTTP_403_FORBIDDEN,
51
51
  HTTP_405_METHOD_NOT_ALLOWED,
52
- HTTP_422_UNPROCESSABLE_ENTITY,
52
+ HTTP_422_UNPROCESSABLE_CONTENT,
53
53
  ];
54
54
  while (retryOptions.numTries > 0) {
55
55
  logger.info('request', { resource, fetchOptions, retryOptions });
@@ -34,23 +34,23 @@ export const HTTP_409_CONFLICT: 409;
34
34
  export const HTTP_410_GONE: 410;
35
35
  export const HTTP_411_LENGTH_REQUIRED: 411;
36
36
  export const HTTP_412_PRECONDITION_FAILED: 412;
37
- export const HTTP_413_REQUEST_ENTITY_TOO_LARGE: 413;
38
- export const HTTP_414_REQUEST_URI_TOO_LONG: 414;
37
+ export const HTTP_413_CONTENT_TOO_LARGE: 413;
38
+ export const HTTP_414_URI_TOO_LONG: 414;
39
39
  export const HTTP_415_UNSUPPORTED_MEDIA_TYPE: 415;
40
- export const HTTP_416_REQUESTED_RANGE_NOT_SATISFIABLE: 416;
40
+ export const HTTP_416_RANGE_NOT_SATISFIABLE: 416;
41
41
  export const HTTP_417_EXPECTATION_FAILED: 417;
42
42
  export const HTTP_418_IM_A_TEAPOT: 418;
43
43
  export const HTTP_421_MISDIRECTED_REQUEST: 421;
44
- export const HTTP_422_UNPROCESSABLE_ENTITY: 422;
44
+ export const HTTP_422_UNPROCESSABLE_CONTENT: 422;
45
45
  export const HTTP_423_LOCKED: 423;
46
46
  export const HTTP_424_FAILED_DEPENDENCY: 424;
47
47
  export const HTTP_425_TOO_EARLY: 425;
48
48
  export const HTTP_426_UPGRADE_REQUIRED: 426;
49
49
  export const HTTP_428_PRECONDITION_REQUIRED: 428;
50
50
  export const HTTP_429_TOO_MANY_REQUESTS: 429;
51
- export const HTTP_499_CLIENT_CLOSED_CONNECTION: 499;
52
51
  export const HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE: 431;
53
52
  export const HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS: 451;
53
+ export const HTTP_499_CLIENT_CLOSED_CONNECTION: 499;
54
54
  export const HTTP_500_INTERNAL_SERVER_ERROR: 500;
55
55
  export const HTTP_501_NOT_IMPLEMENTED: 501;
56
56
  export const HTTP_502_BAD_GATEWAY: 502;
@@ -62,4 +62,70 @@ export const HTTP_507_INSUFFICIENT_STORAGE: 507;
62
62
  export const HTTP_508_LOOP_DETECTED: 508;
63
63
  export const HTTP_510_NOT_EXTENDED: 510;
64
64
  export const HTTP_511_NETWORK_AUTHENTICATION_REQUIRED: 511;
65
+ export const HTTP_STATUS_MAP: {
66
+ 100: string;
67
+ 101: string;
68
+ 102: string;
69
+ 103: string;
70
+ 200: string;
71
+ 201: string;
72
+ 202: string;
73
+ 203: string;
74
+ 204: string;
75
+ 205: string;
76
+ 206: string;
77
+ 207: string;
78
+ 208: string;
79
+ 226: string;
80
+ 300: string;
81
+ 301: string;
82
+ 302: string;
83
+ 303: string;
84
+ 304: string;
85
+ 305: string;
86
+ 306: string;
87
+ 307: string;
88
+ 308: string;
89
+ 400: string;
90
+ 401: string;
91
+ 402: string;
92
+ 403: string;
93
+ 404: string;
94
+ 405: string;
95
+ 406: string;
96
+ 407: string;
97
+ 408: string;
98
+ 409: string;
99
+ 410: string;
100
+ 411: string;
101
+ 412: string;
102
+ 413: string;
103
+ 414: string;
104
+ 415: string;
105
+ 416: string;
106
+ 417: string;
107
+ 418: string;
108
+ 421: string;
109
+ 422: string;
110
+ 423: string;
111
+ 424: string;
112
+ 425: string;
113
+ 426: string;
114
+ 428: string;
115
+ 429: string;
116
+ 431: string;
117
+ 451: string;
118
+ 499: string;
119
+ 500: string;
120
+ 501: string;
121
+ 502: string;
122
+ 503: string;
123
+ 504: string;
124
+ 505: string;
125
+ 506: string;
126
+ 507: string;
127
+ 508: string;
128
+ 510: string;
129
+ 511: string;
130
+ };
65
131
  //# sourceMappingURL=http_status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http_status.d.ts","sourceRoot":"","sources":["../../src/const/http_status.js"],"names":[],"mappings":"AAAA,gCAAiC,GAAG,CAAC;AACrC,2CAA4C,GAAG,CAAC;AAChD,kCAAmC,GAAG,CAAC;AACvC,mCAAoC,GAAG,CAAC;AACxC,0BAA2B,GAAG,CAAC;AAC/B,+BAAgC,GAAG,CAAC;AACpC,gCAAiC,GAAG,CAAC;AACrC,qDAAsD,GAAG,CAAC;AAC1D,kCAAmC,GAAG,CAAC;AACvC,qCAAsC,GAAG,CAAC;AAC1C,uCAAwC,GAAG,CAAC;AAC5C,oCAAqC,GAAG,CAAC;AACzC,wCAAyC,GAAG,CAAC;AAC7C,+BAAgC,GAAG,CAAC;AACpC,wCAAyC,GAAG,CAAC;AAC7C,yCAA0C,GAAG,CAAC;AAC9C,6BAA8B,GAAG,CAAC;AAClC,iCAAkC,GAAG,CAAC;AACtC,oCAAqC,GAAG,CAAC;AACzC,iCAAkC,GAAG,CAAC;AACtC,gCAAiC,GAAG,CAAC;AACrC,0CAA2C,GAAG,CAAC;AAC/C,0CAA2C,GAAG,CAAC;AAC/C,mCAAoC,GAAG,CAAC;AACxC,oCAAqC,GAAG,CAAC;AACzC,wCAAyC,GAAG,CAAC;AAC7C,iCAAkC,GAAG,CAAC;AACtC,iCAAkC,GAAG,CAAC;AACtC,0CAA2C,GAAG,CAAC;AAC/C,sCAAuC,GAAG,CAAC;AAC3C,qDAAsD,GAAG,CAAC;AAC1D,uCAAwC,GAAG,CAAC;AAC5C,gCAAiC,GAAG,CAAC;AACrC,4BAA6B,GAAG,CAAC;AACjC,uCAAwC,GAAG,CAAC;AAC5C,2CAA4C,GAAG,CAAC;AAChD,gDAAiD,GAAG,CAAC;AACrD,4CAA6C,GAAG,CAAC;AACjD,8CAA+C,GAAG,CAAC;AACnD,uDAAwD,GAAG,CAAC;AAC5D,0CAA2C,GAAG,CAAC;AAC/C,mCAAoC,GAAG,CAAC;AACxC,2CAA4C,GAAG,CAAC;AAChD,4CAA6C,GAAG,CAAC;AACjD,8BAA+B,GAAG,CAAC;AACnC,yCAA0C,GAAG,CAAC;AAC9C,iCAAkC,GAAG,CAAC;AACtC,wCAAyC,GAAG,CAAC;AAC7C,6CAA8C,GAAG,CAAC;AAClD,yCAA0C,GAAG,CAAC;AAC9C,gDAAiD,GAAG,CAAC;AACrD,uDAAwD,GAAG,CAAC;AAC5D,qDAAsD,GAAG,CAAC;AAC1D,6CAA8C,GAAG,CAAC;AAClD,uCAAwC,GAAG,CAAC;AAC5C,mCAAoC,GAAG,CAAC;AACxC,2CAA4C,GAAG,CAAC;AAChD,uCAAwC,GAAG,CAAC;AAC5C,kDAAmD,GAAG,CAAC;AACvD,+CAAgD,GAAG,CAAC;AACpD,4CAA6C,GAAG,CAAC;AACjD,qCAAsC,GAAG,CAAC;AAC1C,oCAAqC,GAAG,CAAC;AACzC,uDAAwD,GAAG,CAAC"}
1
+ {"version":3,"file":"http_status.d.ts","sourceRoot":"","sources":["../../src/const/http_status.js"],"names":[],"mappings":"AAGA,gCAAiC,GAAG,CAAC;AACrC,2CAA4C,GAAG,CAAC;AAChD,kCAAmC,GAAG,CAAC;AACvC,mCAAoC,GAAG,CAAC;AACxC,0BAA2B,GAAG,CAAC;AAC/B,+BAAgC,GAAG,CAAC;AACpC,gCAAiC,GAAG,CAAC;AACrC,qDAAsD,GAAG,CAAC;AAC1D,kCAAmC,GAAG,CAAC;AACvC,qCAAsC,GAAG,CAAC;AAC1C,uCAAwC,GAAG,CAAC;AAC5C,oCAAqC,GAAG,CAAC;AACzC,wCAAyC,GAAG,CAAC;AAC7C,+BAAgC,GAAG,CAAC;AACpC,wCAAyC,GAAG,CAAC;AAC7C,yCAA0C,GAAG,CAAC;AAC9C,6BAA8B,GAAG,CAAC;AAClC,iCAAkC,GAAG,CAAC;AACtC,oCAAqC,GAAG,CAAC;AACzC,iCAAkC,GAAG,CAAC;AACtC,gCAAiC,GAAG,CAAC;AACrC,0CAA2C,GAAG,CAAC;AAC/C,0CAA2C,GAAG,CAAC;AAC/C,mCAAoC,GAAG,CAAC;AACxC,oCAAqC,GAAG,CAAC;AACzC,wCAAyC,GAAG,CAAC;AAC7C,iCAAkC,GAAG,CAAC;AACtC,iCAAkC,GAAG,CAAC;AACtC,0CAA2C,GAAG,CAAC;AAC/C,sCAAuC,GAAG,CAAC;AAC3C,qDAAsD,GAAG,CAAC;AAC1D,uCAAwC,GAAG,CAAC;AAC5C,gCAAiC,GAAG,CAAC;AACrC,4BAA6B,GAAG,CAAC;AACjC,uCAAwC,GAAG,CAAC;AAC5C,2CAA4C,GAAG,CAAC;AAChD,yCAA0C,GAAG,CAAC;AAC9C,oCAAqC,GAAG,CAAC;AACzC,8CAA+C,GAAG,CAAC;AACnD,6CAA8C,GAAG,CAAC;AAClD,0CAA2C,GAAG,CAAC;AAC/C,mCAAoC,GAAG,CAAC;AACxC,2CAA4C,GAAG,CAAC;AAChD,6CAA8C,GAAG,CAAC;AAClD,8BAA+B,GAAG,CAAC;AACnC,yCAA0C,GAAG,CAAC;AAC9C,iCAAkC,GAAG,CAAC;AACtC,wCAAyC,GAAG,CAAC;AAC7C,6CAA8C,GAAG,CAAC;AAClD,yCAA0C,GAAG,CAAC;AAC9C,uDAAwD,GAAG,CAAC;AAC5D,qDAAsD,GAAG,CAAC;AAC1D,gDAAiD,GAAG,CAAC;AACrD,6CAA8C,GAAG,CAAC;AAClD,uCAAwC,GAAG,CAAC;AAC5C,mCAAoC,GAAG,CAAC;AACxC,2CAA4C,GAAG,CAAC;AAChD,uCAAwC,GAAG,CAAC;AAC5C,kDAAmD,GAAG,CAAC;AACvD,+CAAgD,GAAG,CAAC;AACpD,4CAA6C,GAAG,CAAC;AACjD,qCAAsC,GAAG,CAAC;AAC1C,oCAAqC,GAAG,CAAC;AACzC,uDAAwD,GAAG,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEE"}