@markuplint/selector 3.0.0-alpha.2105 → 3.0.0-alpha.27

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/README.md CHANGED
@@ -1,18 +1,8 @@
1
1
  # @markuplint/selector
2
2
 
3
3
  [![npm version](https://badge.fury.io/js/%40markuplint%2Fselector.svg)](https://www.npmjs.com/package/@markuplint/selector)
4
- [![Build Status](https://travis-ci.org/markuplint/markuplint.svg?branch=main)](https://travis-ci.org/markuplint/markuplint)
5
- [![Coverage Status](https://coveralls.io/repos/github/markuplint/markuplint/badge.svg?branch=main)](https://coveralls.io/github/markuplint/markuplint?branch=main)
6
4
 
7
- ## Install
8
-
9
- ```sh
10
- $ npm install @markuplint/selector
11
-
12
- $ yarn add @markuplint/selector
13
- ```
14
-
15
- ## [W3C Selectors](https://www.w3.org/TR/selectors-4/) matcher
5
+ **Extended [W3C Selectors](https://www.w3.org/TR/selectors-4/) matcher**
16
6
 
17
7
  Supported selectors and operators:
18
8
 
@@ -74,22 +64,42 @@ Supported selectors and operators:
74
64
 
75
65
  The below is selectors that are extended by markuplint:
76
66
 
77
- | Selector Type | Code Example |
78
- | ----------------- | ----------------- |
79
- | ARIA pseudo-class | `:aria(has name)` |
67
+ | Selector Type | Code Example |
68
+ | -------------------------- | --------------------- |
69
+ | ARIA pseudo-class | `:aria(has name)` |
70
+ | ARIA Role pseudo-class | `:role(heading)` |
71
+ | Content Model pseudo-class | `:model(interactive)` |
80
72
 
81
73
  ### ARIA pseudo-class
82
74
 
83
75
  ```
84
76
  :aria(syntax)
85
- :aria(syntax/version)
86
77
  ```
87
78
 
88
- | Syntax | Example | Description |
89
- | -------------- | ------------------------------------------------------- | ------------------------------- |
90
- | `has name` | `:aria(has name)`<br>`:aria(has name/1.1)` | It has accessible name |
91
- | `has no name` | `:aria(has no name)`<br>`:aria(has no name/1.1)` | It does'nt have accessible name |
92
- | `role is Role` | `:aria(role is banner)`<br>`:aria(role is generic/1.2)` | It matches the specfied role |
79
+ | Syntax | Example | Description |
80
+ | ------------- | -------------------- | ---------------------------------------------- |
81
+ | `has name` | `:aria(has name)` | Matches the element has accessible name |
82
+ | `has no name` | `:aria(has no name)` | Matches the element has **no** accessible name |
83
+
84
+ ### ARIA Role pseudo-class
85
+
86
+ ```
87
+ :role(roleName)
88
+ :role(roleName|version)
89
+ ```
90
+
91
+ For example, `:role(button)` matches `<button>` and `<div role="button">`.
92
+
93
+ You can specify the version of WAI-ARIA by separating the pipe like `:role(form|1.1)`.
94
+
95
+ ### Content Model pseudo-class
96
+
97
+ ```
98
+ :model(interactive)
99
+ :model(palpable)
100
+ ```
101
+
102
+ For example, `:role(interactive)` matches `<a>`(with `href` attr), `<button>`, and so on.
93
103
 
94
104
  ## Regex Selector
95
105
 
@@ -100,3 +110,18 @@ The below is selectors that are extended by markuplint:
100
110
  "attrValue": "/^[a-z]+$/"
101
111
  }
102
112
  ```
113
+
114
+ ## Install
115
+
116
+ [`markuplint`](https://www.npmjs.com/package/markuplint) package includes this package.
117
+
118
+ <details>
119
+ <summary>If you are installing purposely, how below:</summary>
120
+
121
+ ```shell
122
+ $ npm install @markuplint/selector
123
+
124
+ $ yarn add @markuplint/selector
125
+ ```
126
+
127
+ </details>
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createSelector = void 0;
4
4
  const aria_pseudo_class_1 = require("./extended-selector/aria-pseudo-class");
5
+ const aria_role_pseudo_class_1 = require("./extended-selector/aria-role-pseudo-class");
6
+ const content_model_pseudo_class_1 = require("./extended-selector/content-model-pseudo-class");
5
7
  const selector_1 = require("./selector");
6
8
  const caches = new Map();
7
9
  function createSelector(selector, specs) {
@@ -10,7 +12,9 @@ function createSelector(selector, specs) {
10
12
  return instance;
11
13
  }
12
14
  instance = new selector_1.Selector(selector, {
13
- aria: (0, aria_pseudo_class_1.ariaPseudoClass)(specs),
15
+ model: (0, content_model_pseudo_class_1.contentModelPseudoClass)(specs),
16
+ aria: (0, aria_pseudo_class_1.ariaPseudoClass)(),
17
+ role: (0, aria_role_pseudo_class_1.ariaRolePseudoClass)(specs),
14
18
  });
15
19
  caches.set(selector, instance);
16
20
  return instance;
@@ -1,3 +1,5 @@
1
1
  import type { SelectorResult } from '../types';
2
- import type { MLMLSpec } from '@markuplint/ml-spec';
3
- export declare function ariaPseudoClass(specs: MLMLSpec): (content: string) => (el: Element) => SelectorResult;
2
+ /**
3
+ * Version Syntax is not support yet.
4
+ */
5
+ export declare function ariaPseudoClass(): (content: string) => (el: Element) => SelectorResult;
@@ -2,31 +2,40 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ariaPseudoClass = void 0;
4
4
  const ml_spec_1 = require("@markuplint/ml-spec");
5
- const roleIsRegxp = /^roleis/gi;
6
- function ariaPseudoClass(specs) {
5
+ /**
6
+ * Version Syntax is not support yet.
7
+ */
8
+ function ariaPseudoClass() {
7
9
  return (content) => (el) => {
8
- var _a, _b;
9
10
  const aria = ariaPseudoClassParser(content);
11
+ const name = (0, ml_spec_1.getAccname)(el);
10
12
  switch (aria.type) {
11
13
  case 'hasName': {
12
- const name = (0, ml_spec_1.getAccname)(el);
14
+ if (name) {
15
+ return {
16
+ specificity: [0, 1, 0],
17
+ matched: true,
18
+ nodes: [el],
19
+ has: [],
20
+ };
21
+ }
13
22
  return {
14
23
  specificity: [0, 1, 0],
15
- matched: !!name,
24
+ matched: false,
16
25
  };
17
26
  }
18
27
  case 'hasNoName': {
19
- const name = (0, ml_spec_1.getAccname)(el);
28
+ if (!name) {
29
+ return {
30
+ specificity: [0, 1, 0],
31
+ matched: true,
32
+ nodes: [el],
33
+ has: [],
34
+ };
35
+ }
20
36
  return {
21
37
  specificity: [0, 1, 0],
22
- matched: !name,
23
- };
24
- }
25
- case 'roleIs': {
26
- const computed = (0, ml_spec_1.getComputedRole)(specs, el, (_a = aria.version) !== null && _a !== void 0 ? _a : '1.2');
27
- return {
28
- specificity: [0, 1, 0],
29
- matched: ((_b = computed.role) === null || _b === void 0 ? void 0 : _b.name) === aria.role,
38
+ matched: false,
30
39
  };
31
40
  }
32
41
  }
@@ -51,16 +60,5 @@ function ariaPseudoClassParser(syntax) {
51
60
  };
52
61
  }
53
62
  }
54
- if (roleIsRegxp.test(query)) {
55
- const role = query.replace(roleIsRegxp, '');
56
- if (!role) {
57
- throw new SyntaxError(`Unsupported syntax: ${syntax}`);
58
- }
59
- return {
60
- type: 'roleIs',
61
- role,
62
- version,
63
- };
64
- }
65
63
  throw new SyntaxError(`Unsupported syntax: ${syntax}`);
66
64
  }
@@ -0,0 +1,3 @@
1
+ import type { SelectorResult } from '../types';
2
+ import type { MLMLSpec } from '@markuplint/ml-spec';
3
+ export declare function ariaRolePseudoClass(specs: MLMLSpec): (content: string) => (el: Element) => SelectorResult;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ariaRolePseudoClass = void 0;
4
+ const ml_spec_1 = require("@markuplint/ml-spec");
5
+ function ariaRolePseudoClass(specs) {
6
+ return (content) => (el) => {
7
+ var _a, _b;
8
+ const aria = ariaPseudoClassParser(content);
9
+ const computed = (0, ml_spec_1.getComputedRole)(specs, el, (_a = aria.version) !== null && _a !== void 0 ? _a : '1.2');
10
+ if (((_b = computed.role) === null || _b === void 0 ? void 0 : _b.name) === aria.role) {
11
+ return {
12
+ specificity: [0, 1, 0],
13
+ matched: true,
14
+ nodes: [el],
15
+ has: [],
16
+ };
17
+ }
18
+ return {
19
+ specificity: [0, 1, 0],
20
+ matched: false,
21
+ };
22
+ };
23
+ }
24
+ exports.ariaRolePseudoClass = ariaRolePseudoClass;
25
+ function ariaPseudoClassParser(syntax) {
26
+ const [roleName, _version] = syntax.split('|');
27
+ const version = _version === '1.1' ? '1.1' : '1.2';
28
+ return {
29
+ role: roleName.trim().toLowerCase(),
30
+ version,
31
+ };
32
+ }
@@ -0,0 +1,3 @@
1
+ import type { SelectorResult } from '../types';
2
+ import type { MLMLSpec } from '@markuplint/ml-spec';
3
+ export declare function contentModelPseudoClass(specs: MLMLSpec): (category: string) => (el: Element) => SelectorResult;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.contentModelPseudoClass = void 0;
4
+ const ml_spec_1 = require("@markuplint/ml-spec");
5
+ const create_selector_1 = require("../create-selector");
6
+ function contentModelPseudoClass(specs) {
7
+ return (category) => (el) => {
8
+ category = category.trim().toLowerCase();
9
+ const selectors = (0, ml_spec_1.contentModelCategoryToTagNames)(`#${category}`, specs.def);
10
+ const matched = selectors
11
+ .map(selector => {
12
+ if (selector === '#custom') {
13
+ // @ts-ignore
14
+ if (el.isCustomElement) {
15
+ return [
16
+ {
17
+ specificity: [0, 1, 0],
18
+ matched: true,
19
+ nodes: [el],
20
+ has: [],
21
+ },
22
+ ];
23
+ }
24
+ return [
25
+ {
26
+ specificity: [0, 1, 0],
27
+ matched: false,
28
+ },
29
+ ];
30
+ }
31
+ if (selector === '#text') {
32
+ return [
33
+ {
34
+ specificity: [0, 1, 0],
35
+ matched: false,
36
+ },
37
+ ];
38
+ }
39
+ return (0, create_selector_1.createSelector)(selector, specs).search(el);
40
+ })
41
+ .flat()
42
+ .filter((m) => m.matched);
43
+ if (matched.length) {
44
+ return {
45
+ specificity: [0, 1, 0],
46
+ matched: true,
47
+ nodes: matched.map(m => (m.matched ? m.nodes : [])).flat(),
48
+ has: matched.map(m => (m.matched ? m.has : [])).flat(),
49
+ };
50
+ }
51
+ return {
52
+ specificity: [0, 1, 0],
53
+ matched: false,
54
+ };
55
+ };
56
+ }
57
+ exports.contentModelPseudoClass = contentModelPseudoClass;
@@ -1,12 +1,12 @@
1
1
  import type { Specificity, RegexSelector } from './types';
2
- export declare type SelectorMatches = SelectorMatched | SelectorUnmatched;
3
- declare type SelectorMatched = {
2
+ export type SelectorMatches = SelectorMatched | SelectorUnmatched;
3
+ type SelectorMatched = {
4
4
  matched: true;
5
5
  selector: string;
6
6
  specificity: Specificity;
7
7
  data?: Record<string, string>;
8
8
  };
9
- declare type SelectorUnmatched = {
9
+ type SelectorUnmatched = {
10
10
  matched: false;
11
11
  };
12
12
  export declare function matchSelector(el: Node, selector: string | RegexSelector | undefined): SelectorMatches;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
+ var _SelectorTarget_combinedFrom, _SelectorTarget_selector;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.matchSelector = void 0;
5
+ const tslib_1 = require("tslib");
4
6
  const is_1 = require("./is");
5
7
  const regex_selector_matches_1 = require("./regex-selector-matches");
6
8
  const selector_1 = require("./selector");
@@ -40,24 +42,25 @@ function regexSelect(el, selector) {
40
42
  }
41
43
  class SelectorTarget {
42
44
  constructor(selector) {
43
- this._combinatedFrom = null;
44
- this._selector = selector;
45
+ _SelectorTarget_combinedFrom.set(this, null);
46
+ _SelectorTarget_selector.set(this, void 0);
47
+ tslib_1.__classPrivateFieldSet(this, _SelectorTarget_selector, selector, "f");
45
48
  }
46
49
  from(target, combinator) {
47
- this._combinatedFrom = { target, combinator };
50
+ tslib_1.__classPrivateFieldSet(this, _SelectorTarget_combinedFrom, { target, combinator }, "f");
48
51
  }
49
52
  match(el) {
50
- const unitCheck = this._matchWithoutCombinateChecking(el);
53
+ const unitCheck = this._matchWithoutCombineChecking(el);
51
54
  if (!unitCheck.matched) {
52
55
  return unitCheck;
53
56
  }
54
- if (!this._combinatedFrom) {
57
+ if (!tslib_1.__classPrivateFieldGet(this, _SelectorTarget_combinedFrom, "f")) {
55
58
  return unitCheck;
56
59
  }
57
60
  if (!(0, is_1.isNonDocumentTypeChildNode)(el)) {
58
61
  return unitCheck;
59
62
  }
60
- const { target, combinator } = this._combinatedFrom;
63
+ const { target, combinator } = tslib_1.__classPrivateFieldGet(this, _SelectorTarget_combinedFrom, "f");
61
64
  switch (combinator) {
62
65
  // Descendant combinator
63
66
  case ' ': {
@@ -132,15 +135,16 @@ class SelectorTarget {
132
135
  return { matched: false };
133
136
  }
134
137
  default: {
135
- throw new Error(`Unsupported ${this._combinatedFrom.combinator} combinator in selector`);
138
+ throw new Error(`Unsupported ${tslib_1.__classPrivateFieldGet(this, _SelectorTarget_combinedFrom, "f").combinator} combinator in selector`);
136
139
  }
137
140
  }
138
141
  }
139
- _matchWithoutCombinateChecking(el) {
140
- return uncombinatedRegexSelect(el, this._selector);
142
+ _matchWithoutCombineChecking(el) {
143
+ return uncombinedRegexSelect(el, tslib_1.__classPrivateFieldGet(this, _SelectorTarget_selector, "f"));
141
144
  }
142
145
  }
143
- function uncombinatedRegexSelect(el, selector) {
146
+ _SelectorTarget_combinedFrom = new WeakMap(), _SelectorTarget_selector = new WeakMap();
147
+ function uncombinedRegexSelect(el, selector) {
144
148
  if (!(0, is_1.isElement)(el)) {
145
149
  return {
146
150
  matched: false,
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.regexSelectorMatches = void 0;
4
4
  function regexSelectorMatches(reg, raw, ignoreCase) {
5
5
  const res = {};
6
- const pattern = toRegxp(reg);
6
+ const pattern = toRegexp(reg);
7
7
  const regex = new RegExp(pattern instanceof RegExp ? pattern : `^${pattern.trim()}$`, ignoreCase ? 'i' : undefined);
8
8
  const matched = regex.exec(raw);
9
9
  if (!matched) {
@@ -16,7 +16,7 @@ function regexSelectorMatches(reg, raw, ignoreCase) {
16
16
  };
17
17
  }
18
18
  exports.regexSelectorMatches = regexSelectorMatches;
19
- function toRegxp(pattern) {
19
+ function toRegexp(pattern) {
20
20
  const matched = pattern.match(/^\/(.+)\/([ig]*)$/i);
21
21
  if (matched) {
22
22
  return new RegExp(matched[1], matched[2]);
package/lib/selector.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import type { SelectorResult, Specificity } from './types';
2
- declare type ExtendedPseudoClass = Record<string, (content: string) => (el: Element) => SelectorResult>;
2
+ type ExtendedPseudoClass = Record<string, (content: string) => (el: Element) => SelectorResult>;
3
3
  export declare class Selector {
4
4
  #private;
5
5
  constructor(selector: string, extended?: ExtendedPseudoClass);
6
6
  match(el: Node, scope?: ParentNode | null): Specificity | false;
7
+ search(el: Node, scope?: ParentNode | null): SelectorResult[];
7
8
  }
8
9
  export {};
package/lib/selector.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
- var _Selector_ruleset, _Ruleset_selectorGroup, _StructuredSelector_selector, _StructuredSelector_edge, _SelectorTarget_extended, _SelectorTarget_combinatedFrom, _SelectorTarget_isAdded;
2
+ var _Selector_ruleset, _Ruleset_selectorGroup, _StructuredSelector_edge, _StructuredSelector_selector, _SelectorTarget_combinedFrom, _SelectorTarget_extended, _SelectorTarget_isAdded;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Selector = void 0;
5
5
  const tslib_1 = require("tslib");
6
+ const ml_spec_1 = require("@markuplint/ml-spec");
6
7
  const postcss_selector_parser_1 = tslib_1.__importStar(require("postcss-selector-parser"));
7
8
  const compare_specificity_1 = require("./compare-specificity");
8
9
  const debug_1 = require("./debug");
@@ -16,7 +17,7 @@ class Selector {
16
17
  tslib_1.__classPrivateFieldSet(this, _Selector_ruleset, Ruleset.parse(selector, extended), "f");
17
18
  }
18
19
  match(el, scope = (0, is_1.isElement)(el) ? el : null) {
19
- const results = tslib_1.__classPrivateFieldGet(this, _Selector_ruleset, "f").match(el, scope);
20
+ const results = this.search(el, scope);
20
21
  for (const result of results) {
21
22
  if (result.matched) {
22
23
  return result.specificity;
@@ -24,10 +25,28 @@ class Selector {
24
25
  }
25
26
  return false;
26
27
  }
28
+ search(el, scope = (0, is_1.isElement)(el) ? el : null) {
29
+ return tslib_1.__classPrivateFieldGet(this, _Selector_ruleset, "f").match(el, scope);
30
+ }
27
31
  }
28
32
  exports.Selector = Selector;
29
33
  _Selector_ruleset = new WeakMap();
30
34
  class Ruleset {
35
+ static parse(selector, extended) {
36
+ const selectors = [];
37
+ try {
38
+ (0, postcss_selector_parser_1.default)(root => {
39
+ selectors.push(...root.nodes);
40
+ }).processSync(selector);
41
+ }
42
+ catch (e) {
43
+ if (e instanceof Error) {
44
+ throw new Error(`${e.message} At the selector: "${selector}"`);
45
+ }
46
+ throw e;
47
+ }
48
+ return new Ruleset(selectors, extended, 0);
49
+ }
31
50
  constructor(selectors, extended, depth) {
32
51
  _Ruleset_selectorGroup.set(this, []);
33
52
  tslib_1.__classPrivateFieldGet(this, _Ruleset_selectorGroup, "f").push(...selectors.map(selector => new StructuredSelector(selector, depth, extended)));
@@ -39,13 +58,6 @@ class Ruleset {
39
58
  }
40
59
  }
41
60
  }
42
- static parse(selector, extended) {
43
- const selectors = [];
44
- (0, postcss_selector_parser_1.default)(root => {
45
- selectors.push(...root.nodes);
46
- }).processSync(selector);
47
- return new Ruleset(selectors, extended, 0);
48
- }
49
61
  match(el, scope) {
50
62
  (0, debug_1.log)('<%s> (%s)', (0, is_1.isElement)(el) ? el.localName : el.nodeName, scope ? ((0, is_1.isElement)(scope) ? scope.localName : scope.nodeName) : null);
51
63
  return tslib_1.__classPrivateFieldGet(this, _Ruleset_selectorGroup, "f").map(selector => {
@@ -59,8 +71,8 @@ class Ruleset {
59
71
  _Ruleset_selectorGroup = new WeakMap();
60
72
  class StructuredSelector {
61
73
  constructor(selector, depth, extended) {
62
- _StructuredSelector_selector.set(this, void 0);
63
74
  _StructuredSelector_edge.set(this, void 0);
75
+ _StructuredSelector_selector.set(this, void 0);
64
76
  tslib_1.__classPrivateFieldSet(this, _StructuredSelector_selector, selector, "f");
65
77
  tslib_1.__classPrivateFieldSet(this, _StructuredSelector_edge, new SelectorTarget(extended, depth), "f");
66
78
  this.headCombinator =
@@ -71,9 +83,9 @@ class StructuredSelector {
71
83
  tslib_1.__classPrivateFieldGet(this, _StructuredSelector_selector, "f").nodes.forEach(node => {
72
84
  switch (node.type) {
73
85
  case 'combinator': {
74
- const combinatedTarget = new SelectorTarget(extended, depth);
75
- combinatedTarget.from(tslib_1.__classPrivateFieldGet(this, _StructuredSelector_edge, "f"), node);
76
- tslib_1.__classPrivateFieldSet(this, _StructuredSelector_edge, combinatedTarget, "f");
86
+ const combinedTarget = new SelectorTarget(extended, depth);
87
+ combinedTarget.from(tslib_1.__classPrivateFieldGet(this, _StructuredSelector_edge, "f"), node);
88
+ tslib_1.__classPrivateFieldSet(this, _StructuredSelector_edge, combinedTarget, "f");
77
89
  break;
78
90
  }
79
91
  case 'root':
@@ -99,15 +111,15 @@ class StructuredSelector {
99
111
  return tslib_1.__classPrivateFieldGet(this, _StructuredSelector_edge, "f").match(el, scope, 0);
100
112
  }
101
113
  }
102
- _StructuredSelector_selector = new WeakMap(), _StructuredSelector_edge = new WeakMap();
114
+ _StructuredSelector_edge = new WeakMap(), _StructuredSelector_selector = new WeakMap();
103
115
  class SelectorTarget {
104
116
  constructor(extended, depth) {
105
- _SelectorTarget_extended.set(this, void 0);
106
- _SelectorTarget_combinatedFrom.set(this, null);
107
- _SelectorTarget_isAdded.set(this, false);
108
117
  this.attr = [];
109
118
  this.class = [];
119
+ _SelectorTarget_combinedFrom.set(this, null);
120
+ _SelectorTarget_extended.set(this, void 0);
110
121
  this.id = [];
122
+ _SelectorTarget_isAdded.set(this, false);
111
123
  this.pseudo = [];
112
124
  this.tag = null;
113
125
  tslib_1.__classPrivateFieldSet(this, _SelectorTarget_extended, extended, "f");
@@ -140,14 +152,14 @@ class SelectorTarget {
140
152
  }
141
153
  }
142
154
  from(target, combinator) {
143
- tslib_1.__classPrivateFieldSet(this, _SelectorTarget_combinatedFrom, { target, combinator }, "f");
155
+ tslib_1.__classPrivateFieldSet(this, _SelectorTarget_combinedFrom, { target, combinator }, "f");
144
156
  }
145
157
  match(el, scope, count) {
146
158
  var _a;
147
159
  const result = this._match(el, scope, count);
148
160
  if (selLog.enabled) {
149
161
  const nodeName = el.nodeName;
150
- const selector = ((_a = tslib_1.__classPrivateFieldGet(this, _SelectorTarget_combinatedFrom, "f")) === null || _a === void 0 ? void 0 : _a.target.toString()) || this.toString();
162
+ const selector = ((_a = tslib_1.__classPrivateFieldGet(this, _SelectorTarget_combinedFrom, "f")) === null || _a === void 0 ? void 0 : _a.target.toString()) || this.toString();
151
163
  const combinator = result.combinator ? ` ${result.combinator}` : '';
152
164
  selLog('The %s element by "%s" => %s (%d)', nodeName, `${selector}${combinator}`, result.matched, count);
153
165
  if (selector === ':scope') {
@@ -157,23 +169,35 @@ class SelectorTarget {
157
169
  delete result.combinator;
158
170
  return result;
159
171
  }
172
+ toString() {
173
+ var _a, _b;
174
+ return [
175
+ (_b = (_a = this.tag) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '',
176
+ this.id.map(id => `#${id.value}`).join(''),
177
+ this.class.map(c => `.${c.value}`).join(''),
178
+ this.attr.map(attr => `[${attr.toString()}]`).join(''),
179
+ this.pseudo.map(pseudo => pseudo.value).join(''),
180
+ ].join('');
181
+ }
160
182
  _match(el, scope, count) {
161
- const unitCheck = this._matchWithoutCombinateChecking(el, scope);
183
+ const unitCheck = this._matchWithoutCombineChecking(el, scope);
162
184
  if (!unitCheck.matched) {
163
185
  return unitCheck;
164
186
  }
165
- if (!tslib_1.__classPrivateFieldGet(this, _SelectorTarget_combinatedFrom, "f")) {
187
+ if (!tslib_1.__classPrivateFieldGet(this, _SelectorTarget_combinedFrom, "f")) {
166
188
  return unitCheck;
167
189
  }
168
190
  if (!(0, is_1.isNonDocumentTypeChildNode)(el)) {
169
191
  return unitCheck;
170
192
  }
171
- const { target, combinator } = tslib_1.__classPrivateFieldGet(this, _SelectorTarget_combinatedFrom, "f");
193
+ const { target, combinator } = tslib_1.__classPrivateFieldGet(this, _SelectorTarget_combinedFrom, "f");
172
194
  switch (combinator.value) {
173
195
  // Descendant combinator
174
196
  case ' ': {
197
+ const matchedNodes = [];
198
+ const has = [];
199
+ const not = [];
175
200
  let ancestor = el.parentElement;
176
- let matched = false;
177
201
  let specificity;
178
202
  while (ancestor) {
179
203
  const res = target.match(ancestor, scope, count + 1);
@@ -185,7 +209,13 @@ class SelectorTarget {
185
209
  ];
186
210
  }
187
211
  if (res.matched) {
188
- matched = true;
212
+ matchedNodes.push(...res.nodes);
213
+ has.push(...res.has);
214
+ }
215
+ else {
216
+ if (res.not) {
217
+ not.push(...res.not);
218
+ }
189
219
  }
190
220
  ancestor = ancestor.parentElement;
191
221
  }
@@ -197,15 +227,27 @@ class SelectorTarget {
197
227
  unitCheck.specificity[2] + res.specificity[2],
198
228
  ];
199
229
  }
230
+ if (matchedNodes.length) {
231
+ return {
232
+ combinator: '␣',
233
+ specificity,
234
+ matched: true,
235
+ nodes: matchedNodes,
236
+ has,
237
+ };
238
+ }
200
239
  return {
201
240
  combinator: '␣',
202
241
  specificity,
203
- matched,
242
+ matched: false,
243
+ not,
204
244
  };
205
245
  }
206
246
  // Child combinator
207
247
  case '>': {
208
- let matched;
248
+ const matchedNodes = [];
249
+ const has = [];
250
+ const not = [];
209
251
  const specificity = unitCheck.specificity;
210
252
  const parentNode = el.parentElement;
211
253
  if (parentNode) {
@@ -213,49 +255,87 @@ class SelectorTarget {
213
255
  specificity[0] += res.specificity[0];
214
256
  specificity[1] += res.specificity[1];
215
257
  specificity[2] += res.specificity[2];
216
- matched = res.matched;
258
+ if (res.matched) {
259
+ matchedNodes.push(...res.nodes);
260
+ has.push(...res.has);
261
+ }
262
+ else {
263
+ if (res.not) {
264
+ not.push(...res.not);
265
+ }
266
+ }
217
267
  }
218
268
  else {
219
269
  const res = target.match(el, scope, count + 1);
220
270
  specificity[0] += res.specificity[0];
221
271
  specificity[1] += res.specificity[1];
222
272
  specificity[2] += res.specificity[2];
223
- matched = false;
273
+ }
274
+ if (matchedNodes.length) {
275
+ return {
276
+ combinator: '>',
277
+ specificity,
278
+ matched: true,
279
+ nodes: matchedNodes,
280
+ has,
281
+ };
224
282
  }
225
283
  return {
226
284
  combinator: '>',
227
285
  specificity,
228
- matched,
286
+ matched: false,
287
+ not,
229
288
  };
230
289
  }
231
290
  // Next-sibling combinator
232
291
  case '+': {
233
- let matched;
292
+ const matchedNodes = [];
293
+ const has = [];
294
+ const not = [];
234
295
  const specificity = unitCheck.specificity;
235
296
  if (el.previousElementSibling) {
236
297
  const res = target.match(el.previousElementSibling, scope, count + 1);
237
298
  specificity[0] += res.specificity[0];
238
299
  specificity[1] += res.specificity[1];
239
300
  specificity[2] += res.specificity[2];
240
- matched = res.matched;
301
+ if (res.matched) {
302
+ matchedNodes.push(...res.nodes);
303
+ has.push(...res.has);
304
+ }
305
+ else {
306
+ if (res.not) {
307
+ not.push(...res.not);
308
+ }
309
+ }
241
310
  }
242
311
  else {
243
312
  const res = target.match(el, scope, count + 1);
244
313
  specificity[0] += res.specificity[0];
245
314
  specificity[1] += res.specificity[1];
246
315
  specificity[2] += res.specificity[2];
247
- matched = false;
316
+ }
317
+ if (matchedNodes.length) {
318
+ return {
319
+ combinator: '+',
320
+ specificity,
321
+ matched: true,
322
+ nodes: matchedNodes,
323
+ has,
324
+ };
248
325
  }
249
326
  return {
250
327
  combinator: '+',
251
328
  specificity,
252
- matched,
329
+ matched: false,
330
+ not,
253
331
  };
254
332
  }
255
333
  // Subsequent-sibling combinator
256
334
  case '~': {
335
+ const matchedNodes = [];
336
+ const has = [];
337
+ const not = [];
257
338
  let prev = el.previousElementSibling;
258
- let matched = false;
259
339
  let specificity;
260
340
  while (prev) {
261
341
  const res = target.match(prev, scope, count + 1);
@@ -267,7 +347,13 @@ class SelectorTarget {
267
347
  ];
268
348
  }
269
349
  if (res.matched) {
270
- matched = true;
350
+ matchedNodes.push(...res.nodes);
351
+ has.push(...res.has);
352
+ }
353
+ else {
354
+ if (res.not) {
355
+ not.push(...res.not);
356
+ }
271
357
  }
272
358
  prev = prev.previousElementSibling;
273
359
  }
@@ -279,10 +365,20 @@ class SelectorTarget {
279
365
  unitCheck.specificity[2] + res.specificity[2],
280
366
  ];
281
367
  }
368
+ if (matchedNodes.length) {
369
+ return {
370
+ combinator: '~',
371
+ specificity,
372
+ matched: true,
373
+ nodes: matchedNodes,
374
+ has,
375
+ };
376
+ }
282
377
  return {
283
378
  combinator: '~',
284
379
  specificity,
285
- matched,
380
+ matched: false,
381
+ not,
286
382
  };
287
383
  }
288
384
  // Column combinator
@@ -290,21 +386,12 @@ class SelectorTarget {
290
386
  throw new Error('Unsupported column combinator yet. If you want it, please request it as the issue (https://github.com/markuplint/markuplint/issues/new).');
291
387
  }
292
388
  default: {
293
- throw new Error(`Unsupported ${tslib_1.__classPrivateFieldGet(this, _SelectorTarget_combinatedFrom, "f").combinator.value} combinator in selector`);
389
+ throw new Error(`Unsupported ${tslib_1.__classPrivateFieldGet(this, _SelectorTarget_combinedFrom, "f").combinator.value} combinator in selector`);
294
390
  }
295
391
  }
296
392
  }
297
- toString() {
298
- var _a, _b;
299
- return [
300
- (_b = (_a = this.tag) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : '',
301
- this.id.map(id => `#${id.value}`).join(''),
302
- this.class.map(c => `.${c.value}`).join(''),
303
- this.attr.map(attr => `[${attr.toString()}]`).join(''),
304
- this.pseudo.map(pseudo => pseudo.value).join(''),
305
- ].join('');
306
- }
307
- _matchWithoutCombinateChecking(el, scope) {
393
+ _matchWithoutCombineChecking(el, scope) {
394
+ var _a;
308
395
  const specificity = [0, 0, 0];
309
396
  if (!(0, is_1.isElement)(el)) {
310
397
  return {
@@ -312,6 +399,8 @@ class SelectorTarget {
312
399
  matched: false,
313
400
  };
314
401
  }
402
+ const has = [];
403
+ const not = [];
315
404
  // @ts-ignore
316
405
  if (this.tag && this.tag._namespace) {
317
406
  // @ts-ignore
@@ -356,7 +445,11 @@ class SelectorTarget {
356
445
  specificity[0] += pseudoRes.specificity[0];
357
446
  specificity[1] += pseudoRes.specificity[1];
358
447
  specificity[2] += pseudoRes.specificity[2];
359
- if (!pseudoRes.matched) {
448
+ if (pseudoRes.matched) {
449
+ has.push(...pseudoRes.has);
450
+ }
451
+ else {
452
+ not.push(...((_a = pseudoRes.not) !== null && _a !== void 0 ? _a : []));
360
453
  matched = false;
361
454
  }
362
455
  }
@@ -372,18 +465,33 @@ class SelectorTarget {
372
465
  matched = false;
373
466
  }
374
467
  }
468
+ if (matched) {
469
+ return {
470
+ specificity,
471
+ matched,
472
+ nodes: [el],
473
+ has,
474
+ };
475
+ }
375
476
  return {
376
477
  specificity,
377
478
  matched,
479
+ not,
378
480
  };
379
481
  }
380
482
  }
381
- _SelectorTarget_extended = new WeakMap(), _SelectorTarget_combinatedFrom = new WeakMap(), _SelectorTarget_isAdded = new WeakMap();
483
+ _SelectorTarget_combinedFrom = new WeakMap(), _SelectorTarget_extended = new WeakMap(), _SelectorTarget_isAdded = new WeakMap();
382
484
  function attrMatch(attr, el) {
383
485
  return Array.from(el.attributes).some(attrOfEl => {
384
- if (attr.attribute !== attrOfEl.name) {
486
+ if (attr.attribute !== attrOfEl.localName) {
385
487
  return false;
386
488
  }
489
+ if (attr.namespace != null && attr.namespace !== true && attr.namespace !== '*') {
490
+ const ns = (0, ml_spec_1.resolveNamespace)(attrOfEl.localName, attrOfEl.namespaceURI);
491
+ if (attr.namespace !== ns.namespace) {
492
+ return false;
493
+ }
494
+ }
387
495
  if (attr.value != null) {
388
496
  let value = attr.value;
389
497
  let valueOfEl = attrOfEl.value;
@@ -444,10 +552,13 @@ function pseudoMatch(pseudo, el, scope, extended, depth) {
444
552
  const specificity = getSpecificity(ruleset.match(el, scope));
445
553
  let parent = el.parentElement;
446
554
  while (parent) {
447
- if (ruleset.match(parent, scope).some(r => r.matched)) {
555
+ const matched = ruleset.match(parent, scope).filter((r) => r.matched);
556
+ if (matched.length) {
448
557
  return {
449
558
  specificity,
450
559
  matched: true,
560
+ nodes: [el],
561
+ has: matched,
451
562
  };
452
563
  }
453
564
  parent = parent.parentElement;
@@ -464,20 +575,31 @@ function pseudoMatch(pseudo, el, scope, extended, depth) {
464
575
  const ruleset = new Ruleset(pseudo.nodes, extended, depth + 1);
465
576
  const resList = ruleset.match(el, scope);
466
577
  const specificity = getSpecificity(resList);
467
- const matched = resList.every(r => !r.matched);
578
+ const not = resList.filter((r) => r.matched);
579
+ if (not.length === 0) {
580
+ return {
581
+ specificity,
582
+ matched: true,
583
+ nodes: [el],
584
+ has: [],
585
+ };
586
+ }
468
587
  return {
469
588
  specificity,
470
- matched,
589
+ matched: false,
590
+ not,
471
591
  };
472
592
  }
473
593
  case ':is': {
474
594
  const ruleset = new Ruleset(pseudo.nodes, extended, depth + 1);
475
595
  const resList = ruleset.match(el, scope);
476
596
  const specificity = getSpecificity(resList);
477
- const matched = resList.some(r => r.matched);
597
+ const matched = resList.filter((r) => r.matched);
478
598
  return {
479
599
  specificity,
480
- matched,
600
+ matched: !!matched.length,
601
+ nodes: matched.map(m => m.nodes).flat(),
602
+ has: matched.map(m => m.has).flat(),
481
603
  };
482
604
  }
483
605
  case ':has': {
@@ -486,17 +608,37 @@ function pseudoMatch(pseudo, el, scope, extended, depth) {
486
608
  switch (ruleset.headCombinator) {
487
609
  case '+':
488
610
  case '~': {
489
- const matched = getSiblings(el).some(sib => ruleset.match(sib, el).some(m => m.matched));
611
+ const has = getSiblings(el)
612
+ .map(sib => ruleset.match(sib, el).filter((m) => m.matched))
613
+ .flat();
614
+ if (has.length) {
615
+ return {
616
+ specificity,
617
+ matched: true,
618
+ nodes: [el],
619
+ has,
620
+ };
621
+ }
490
622
  return {
491
623
  specificity,
492
- matched,
624
+ matched: false,
493
625
  };
494
626
  }
495
627
  default: {
496
- const matched = getDescendants(el).some(desc => ruleset.match(desc, el).some(m => m.matched));
628
+ const has = getDescendants(el)
629
+ .map(sib => ruleset.match(sib, el).filter((m) => m.matched))
630
+ .flat();
631
+ if (has.length) {
632
+ return {
633
+ specificity,
634
+ matched: true,
635
+ nodes: [el],
636
+ has,
637
+ };
638
+ }
497
639
  return {
498
640
  specificity,
499
- matched,
641
+ matched: false,
500
642
  };
501
643
  }
502
644
  }
@@ -504,10 +646,12 @@ function pseudoMatch(pseudo, el, scope, extended, depth) {
504
646
  case ':where': {
505
647
  const ruleset = new Ruleset(pseudo.nodes, extended, depth + 1);
506
648
  const resList = ruleset.match(el, scope);
507
- const matched = resList.some(r => r.matched);
649
+ const matched = resList.filter((r) => r.matched);
508
650
  return {
509
651
  specificity: [0, 0, 0],
510
- matched,
652
+ matched: !!matched.length,
653
+ nodes: matched.map(m => m.nodes).flat(),
654
+ has: matched.map(m => m.has).flat(),
511
655
  };
512
656
  }
513
657
  case ':scope': {
@@ -515,6 +659,8 @@ function pseudoMatch(pseudo, el, scope, extended, depth) {
515
659
  return {
516
660
  specificity: [0, 1, 0],
517
661
  matched: true,
662
+ nodes: [el],
663
+ has: [],
518
664
  };
519
665
  }
520
666
  return {
@@ -527,6 +673,8 @@ function pseudoMatch(pseudo, el, scope, extended, depth) {
527
673
  return {
528
674
  specificity: [0, 1, 0],
529
675
  matched: true,
676
+ nodes: [el],
677
+ has: [],
530
678
  };
531
679
  }
532
680
  return {
@@ -612,17 +760,17 @@ function getSiblings(el) {
612
760
  var _a;
613
761
  return Array.from(((_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.children) || []);
614
762
  }
615
- function getSpecificity(result) {
763
+ function getSpecificity(results) {
616
764
  let specificity;
617
- for (const res of result) {
765
+ for (const result of results) {
618
766
  if (specificity) {
619
- const order = (0, compare_specificity_1.compareSpecificity)(specificity, res.specificity);
767
+ const order = (0, compare_specificity_1.compareSpecificity)(specificity, result.specificity);
620
768
  if (order === -1) {
621
- specificity = res.specificity;
769
+ specificity = result.specificity;
622
770
  }
623
771
  }
624
772
  else {
625
- specificity = res.specificity;
773
+ specificity = result.specificity;
626
774
  }
627
775
  }
628
776
  if (!specificity) {
package/lib/types.d.ts CHANGED
@@ -1,15 +1,23 @@
1
- export declare type Specificity = [number, number, number];
2
- export declare type SelectorResult = {
1
+ export type Specificity = [number, number, number];
2
+ export type SelectorResult = SelectorMatchedResult | SelectorUnmatchedResult;
3
+ export type SelectorMatchedResult = {
3
4
  specificity: Specificity;
4
- matched: boolean;
5
+ matched: true;
6
+ nodes: (Element | Text)[];
7
+ has: SelectorMatchedResult[];
5
8
  };
6
- export declare type RegexSelector = RegexSelectorWithoutCompination & {
9
+ export type SelectorUnmatchedResult = {
10
+ specificity: Specificity;
11
+ matched: false;
12
+ not?: SelectorMatchedResult[];
13
+ };
14
+ export type RegexSelector = RegexSelectorWithoutCombination & {
7
15
  combination?: {
8
16
  combinator: RegexSelectorCombinator;
9
17
  } & RegexSelector;
10
18
  };
11
- export declare type RegexSelectorCombinator = ' ' | '>' | '+' | '~' | ':has(+)' | ':has(~)';
12
- export declare type RegexSelectorWithoutCompination = {
19
+ export type RegexSelectorCombinator = ' ' | '>' | '+' | '~' | ':has(+)' | ':has(~)';
20
+ export type RegexSelectorWithoutCombination = {
13
21
  nodeName?: string;
14
22
  attrName?: string;
15
23
  attrValue?: string;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@markuplint/selector",
3
- "version": "3.0.0-alpha.2105+6cde1134",
4
- "description": "W3C Selector and Regex selector",
3
+ "version": "3.0.0-alpha.27+b5eef04a",
4
+ "description": "Extended W3C Selectors matcher",
5
5
  "repository": "git@github.com:markuplint/markuplint.git",
6
6
  "author": "Yusuke Hirao <yusukehirao@me.com>",
7
7
  "license": "MIT",
@@ -18,14 +18,14 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "debug": "^4.3.4",
21
- "postcss-selector-parser": "^6.0.10",
22
- "tslib": "^2.4.0"
21
+ "postcss-selector-parser": "^6.0.11",
22
+ "tslib": "^2.4.1"
23
23
  },
24
24
  "devDependencies": {
25
- "@markuplint/ml-spec": "3.0.0-alpha.82+6cde1134",
25
+ "@markuplint/ml-spec": "3.0.0-alpha.27+b5eef04a",
26
26
  "@types/debug": "^4.1.7",
27
- "@types/jsdom": "^16.2.14",
28
- "jsdom": "^19.0.0"
27
+ "@types/jsdom": "16",
28
+ "jsdom": "19"
29
29
  },
30
- "gitHead": "6cde113402758a8fdbd6a0fcf98e78efd2cdb778"
30
+ "gitHead": "b5eef04a99177b25dccb164b486fba9fa01893ae"
31
31
  }
@@ -1 +0,0 @@
1
- export declare function isPureHTMLElement(el: Element): boolean;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isPureHTMLElement = void 0;
4
- function isPureHTMLElement(el) {
5
- return el.localName !== el.nodeName;
6
- }
7
- exports.isPureHTMLElement = isPureHTMLElement;
@@ -1 +0,0 @@
1
- export declare function isPureHTMLElement(el: Element): boolean;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isPureHTMLElement = void 0;
4
- function isPureHTMLElement(el) {
5
- return el.localName !== el.nodeName;
6
- }
7
- exports.isPureHTMLElement = isPureHTMLElement;
@@ -1,3 +0,0 @@
1
- {
2
- "extends": "../../../tsconfig.json"
3
- }
@@ -1 +0,0 @@
1
- {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/tslib/tslib.d.ts","./src/types.ts","./src/compare-specificity.ts","../ml-spec/lib/dom-traverse/accname-computation.d.ts","../ml-spec/lib/types/aria.d.ts","../ml-spec/lib/types/attributes.d.ts","../ml-spec/lib/types/permitted-structres.d.ts","../ml-spec/node_modules/@markuplint/ml-ast/lib/types.d.ts","../ml-spec/node_modules/@markuplint/ml-ast/lib/index.d.ts","../ml-spec/lib/types/index.d.ts","../ml-spec/lib/dom-traverse/get-attr-specs.d.ts","../ml-spec/lib/dom-traverse/get-computed-role.d.ts","../ml-spec/lib/dom-traverse/get-implicit-role.d.ts","../ml-spec/lib/dom-traverse/get-permitted-roles.d.ts","../ml-spec/lib/dom-traverse/get-spec.d.ts","../ml-spec/lib/dom-traverse/has-required-owned-elements.d.ts","../ml-spec/lib/specs/aria-specs.d.ts","../ml-spec/lib/specs/content-model-category-to-tag-names.d.ts","../ml-spec/lib/specs/get-role-spec.d.ts","../ml-spec/lib/specs/get-spec-by-tag-name.d.ts","../ml-spec/lib/specs/schema-to-spec.d.ts","../ml-spec/lib/utils/resolve-namespace.d.ts","../ml-spec/lib/index.d.ts","./src/extended-selector/aria-pseudo-class.ts","../../../node_modules/postcss-selector-parser/postcss-selector-parser.d.ts","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","./src/debug.ts","./src/invalid-selector-error.ts","./src/is.ts","./src/selector.ts","./src/create-selector.ts","./src/regex-selector-matches.ts","./src/match-selector.ts","./src/index.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/bcp-47/index.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/@types/connect/index.d.ts","../../../node_modules/@types/body-parser/index.d.ts","../../../node_modules/@types/bonjour/index.d.ts","../../../node_modules/@types/cheerio/index.d.ts","../../../node_modules/@types/cli-color/art.d.ts","../../../node_modules/@types/cli-color/bare.d.ts","../../../node_modules/@types/cli-color/beep.d.ts","../../../node_modules/@types/cli-color/columns.d.ts","../../../node_modules/@types/cli-color/erase.d.ts","../../../node_modules/@types/cli-color/move.d.ts","../../../node_modules/@types/cli-color/get-stripped-length.d.ts","../../../node_modules/@types/cli-color/slice.d.ts","../../../node_modules/@types/cli-color/strip.d.ts","../../../node_modules/@types/cli-color/throbber.d.ts","../../../node_modules/@types/cli-color/reset.d.ts","../../../node_modules/@types/cli-color/window-size.d.ts","../../../node_modules/@types/cli-color/index.d.ts","../../../node_modules/@types/cli-progress/index.d.ts","../../../node_modules/@types/range-parser/index.d.ts","../../../node_modules/@types/qs/index.d.ts","../../../node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/@types/connect-history-api-fallback/index.d.ts","../../../node_modules/@types/css-tree/index.d.ts","../../../node_modules/@types/eslint/helpers.d.ts","../../../node_modules/@types/json-schema/index.d.ts","../../../node_modules/@types/estree/index.d.ts","../../../node_modules/@types/eslint/index.d.ts","../../../node_modules/@types/eslint-scope/index.d.ts","../../../node_modules/@types/mime/index.d.ts","../../../node_modules/@types/serve-static/index.d.ts","../../../node_modules/@types/express/index.d.ts","../../../node_modules/@types/fs-extra/index.d.ts","../../../node_modules/@types/minimatch/index.d.ts","../../../node_modules/@types/glob/index.d.ts","../../../node_modules/@types/graceful-fs/index.d.ts","../../../node_modules/@types/html-minifier-terser/index.d.ts","../../../node_modules/@types/http-proxy/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/jest-diff/build/cleanupsemantic.d.ts","../../../node_modules/pretty-format/build/types.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/types.d.ts","../../../node_modules/jest-diff/build/difflines.d.ts","../../../node_modules/jest-diff/build/printdiffs.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/parse5/lib/tree-adapters/default.d.ts","../../../node_modules/@types/parse5/index.d.ts","../../../node_modules/@types/tough-cookie/index.d.ts","../../../node_modules/@types/jsdom/base.d.ts","../../../node_modules/@types/jsdom/ts4.0/index.d.ts","../../../node_modules/@types/jsdom/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/lodash/common/common.d.ts","../../../node_modules/@types/lodash/common/array.d.ts","../../../node_modules/@types/lodash/common/collection.d.ts","../../../node_modules/@types/lodash/common/date.d.ts","../../../node_modules/@types/lodash/common/function.d.ts","../../../node_modules/@types/lodash/common/lang.d.ts","../../../node_modules/@types/lodash/common/math.d.ts","../../../node_modules/@types/lodash/common/number.d.ts","../../../node_modules/@types/lodash/common/object.d.ts","../../../node_modules/@types/lodash/common/seq.d.ts","../../../node_modules/@types/lodash/common/string.d.ts","../../../node_modules/@types/lodash/common/util.d.ts","../../../node_modules/@types/lodash/index.d.ts","../../../node_modules/@types/unist/index.d.ts","../../../node_modules/@types/mdast/index.d.ts","../../../node_modules/schema-utils/declarations/validationerror.d.ts","../../../node_modules/ajv/lib/ajv.d.ts","../../../node_modules/schema-utils/declarations/validate.d.ts","../../../node_modules/schema-utils/declarations/index.d.ts","../../../node_modules/tapable/tapable.d.ts","../../../node_modules/@types/mini-css-extract-plugin/node_modules/webpack/types.d.ts","../../../node_modules/@types/mini-css-extract-plugin/index.d.ts","../../../node_modules/@types/minimist/index.d.ts","../../../node_modules/@types/mustache/index.d.ts","../../../node_modules/form-data/index.d.ts","../../../node_modules/@types/node-fetch/externals.d.ts","../../../node_modules/@types/node-fetch/index.d.ts","../../../node_modules/@types/normalize-package-data/index.d.ts","../../../node_modules/@types/parse-json/index.d.ts","../../../node_modules/@types/prettier/index.d.ts","../../../node_modules/@types/pug/index.d.ts","../../../node_modules/@types/retry/index.d.ts","../../../node_modules/@types/sass/index.d.ts","../../../node_modules/webpack/node_modules/@types/estree/index.d.ts","../../../node_modules/webpack/types.d.ts","../../../node_modules/@types/script-ext-html-webpack-plugin/index.d.ts","../../../node_modules/@types/serve-index/index.d.ts","../../../node_modules/@types/source-list-map/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/tapable/index.d.ts","../../../node_modules/source-map/source-map.d.ts","../../../node_modules/@types/uglify-js/index.d.ts","../../../node_modules/@types/uuid/index.d.ts","../../../node_modules/anymatch/index.d.ts","../../../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts","../../../node_modules/@types/webpack-sources/lib/source.d.ts","../../../node_modules/@types/webpack-sources/lib/compatsource.d.ts","../../../node_modules/@types/webpack-sources/lib/concatsource.d.ts","../../../node_modules/@types/webpack-sources/lib/originalsource.d.ts","../../../node_modules/@types/webpack-sources/lib/prefixsource.d.ts","../../../node_modules/@types/webpack-sources/lib/rawsource.d.ts","../../../node_modules/@types/webpack-sources/lib/replacesource.d.ts","../../../node_modules/@types/webpack-sources/lib/sizeonlysource.d.ts","../../../node_modules/@types/webpack-sources/lib/sourcemapsource.d.ts","../../../node_modules/@types/webpack-sources/lib/index.d.ts","../../../node_modules/@types/webpack-sources/lib/cachedsource.d.ts","../../../node_modules/@types/webpack-sources/index.d.ts","../../../node_modules/@types/webpack/index.d.ts","../../../node_modules/@types/webpack-dev-server/node_modules/webpack/types.d.ts","../../../node_modules/http-proxy-middleware/dist/types.d.ts","../../../node_modules/http-proxy-middleware/dist/handlers/response-interceptor.d.ts","../../../node_modules/http-proxy-middleware/dist/handlers/fix-request-body.d.ts","../../../node_modules/http-proxy-middleware/dist/handlers/public.d.ts","../../../node_modules/http-proxy-middleware/dist/handlers/index.d.ts","../../../node_modules/http-proxy-middleware/dist/index.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/schema-utils/declarations/validationerror.d.ts","../../../node_modules/uri-js/dist/es5/uri.all.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/compile/codegen/code.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/compile/codegen/scope.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/compile/codegen/index.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/compile/rules.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/compile/util.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/compile/validate/subschema.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/compile/errors.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/compile/validate/index.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/compile/validate/datatype.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/applicator/additionalitems.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/applicator/contains.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/applicator/propertynames.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/applicator/additionalproperties.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/applicator/not.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/applicator/anyof.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/applicator/oneof.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/applicator/if.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/applicator/index.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/validation/limitnumber.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/validation/multipleof.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/validation/pattern.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/validation/required.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/validation/uniqueitems.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/validation/const.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/validation/enum.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/validation/index.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/format/format.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedproperties.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/unevaluated/unevaluateditems.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/validation/dependentrequired.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/discriminator/types.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/discriminator/index.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/vocabularies/errors.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/types/json-schema.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/types/jtd-schema.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/runtime/validation_error.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/compile/ref_error.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/core.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/compile/resolve.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/compile/index.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/types/index.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/ajv/dist/ajv.d.ts","../../../node_modules/webpack-dev-middleware/node_modules/schema-utils/declarations/validate.d.ts","../../../node_modules/webpack-dev-middleware/types/index.d.ts","../../../node_modules/chokidar/types/index.d.ts","../../../node_modules/@types/webpack-dev-server/index.d.ts","../../../node_modules/@types/whatwg-mimetype/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"3ac1b83264055b28c0165688fda6dfcc39001e9e7828f649299101c23ad0a0c3","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","2f93dda35dafec68ec217c9ce67f0f4fbbbb030c055ac312641565ad60dd7e26","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"72704b10d97777e15f1a581b73f88273037ef752d2e50b72287bd0a90af64fe6","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"5075b36ab861c8c0c45377cb8c96270d7c65f0eeaf105d53fac6850da61f1027","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"e8c9f4e445a489991ca1a4232667de3ac36b07ba75ea335971fbeacf2d26fe67","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"6ea9ab679ea030cf46c16a711a316078e9e02619ebaf07a7fcd16964aba88f2d","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"14a84fbe4ec531dcbaf5d2594fd95df107258e60ae6c6a076404f13c3f66f28e","7a0b4373fa9aa0543f7774debd70b0bea5b6964c61ce1766136c4ffb18298b15","51ca8761428de0372639ff722580c1049b19350210f0b8c94e6063b3ffb01c9e","30070473f3c9f82e4b9acd51775bc6e9e3d748b04e8a7228a07e2df18b88e811","6c7618ecafc7c5c30d4ea0383493bb6f52b59b0d00995e80005c712a2700383d","468eeef346e27512a3bcb17bafcddf7444f3d18baab352caaf5f990e25f94166","8c041be53cdb171bde460bc1d5f44eab640716fb1fe33483a4f68f0af3533aaa","f7ca8fa6b32b2323784fe39c6a7739667e16fa40192b3ff078699df1c96fdd7c","d5c19655468e29f60c871b21e73af8ebc653f736e7123ade916f22c4a5f80ce5","3ff9a126c67fe062f003d5caef82f3adc68dd9c0a6ce9fe4802b3cc6cd89eb23","60c5fdb48b631ab3d7e30e8ae0f80132672d3fb10892f119bef8d47e860a13bb","8ceca669ca875c99809350719f0857701edef93cde0bd3d7740abdb1000e0333","65911474b8066910597d335a85fc76d0d81d9cc38d60e65f45980167899730ce","29baf6825ade0ce8b0fbf0b42f7b4578dfd7f95ddea0619792ef5a61721d197b","7cdcfd1ef792d559a048f8f9a7ca91c76b61bc3d98be8cf4d973d639e278133d","a4988ce9ea67d7f14196038494465d0c6a759ff52311926afead339052875c70","2c976a874b55f496245b8760cdd19c6952a39ed1ab8ed579e254d124781244a0","6af04679a4651978b280c3c64c3ff7941df58422835abdbc1432680e4f3aba25","ed0cd9a47656338ab5d493138cfa70d91eec03b39e985d2d90e88b851f8a2889","4c517f1a402edfc0fd0e185430b2f193a367fbd0db06c87d5ed5528f0af1d2cc","89b3d59037522e331c0e819157ac6672dd0ccfcc92401410599cf305151ad476","3b384ec93a30b9333ec1fd18b5b43da098826e2f0071711e91f8ca1a3c54039b","587aa0b12b1c676dc8d905c0e3c330ec2f45b5d907453d43d039bbda889ee2aa",{"version":"b097b3aa37fd348dea4fc79b0a193291e83868cb236b9ff7a16ec68837297367","signature":"eb704cb63c38284e3508f9ad8ed9bf6500fdf5b3e6cad449e502e8dc15ec080a"},"82a38d1a11c413447da80c7275d0b23ab8ad76ff24541abe455284efa4866691","6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","78828b06c0d3b586954015e9ebde5480b009e166c71244763bda328ec0920f41","3166d5e8a564e47b93da562d5b58e59e77f1ab81dff5e33d0d03f0335d56739a","d3dbfd18065310bb5b09a030295ffaa57afd6a61040a1adedefdb9354729f978","4afe429c1bb65734d7ffff0c118a36a9f660a5efb129de2ada93b49513d6935a","205d4a8175e4b73855deca5056e73d544bf9d06cb1835dfd0fde2d0af70bcd75",{"version":"1bf957a87ab7bdbb89a1aa9473c7409dd7858d1d5904f4585570cb2df396f5a6","signature":"b106759be4af4294804d71cc18466dd283e7526e92031b85dfc8df9c9164d70e"},"a01f0e02862e9ad3bb63ad2f9e42f53df5088a4cc991d5f023f87f7553f3ccc4","b207766b0a221caa546ed96fdb7dee30946479f00daa06cafa8357ca598f2cd0","c4ea611138b4c94a41f6b482fa2049bd2c014720944ed1371f09d9eb1ca25d81","2ff9995137f3e5d68971388ec58af0c79721626323884513f9f5e2e996ac1fdd","cc957354aa3c94c9961ebf46282cfde1e81d107fc5785a61f62c67f1dd3ac2eb","1a7cc144992d79b062c22ac0309c6624dbb0d49bbddff7ea3b9daa0c17bcac0a","93de1c6dab503f053efe8d304cb522bb3a89feab8c98f307a674a4fae04773e9","3b043cf9a81854a72963fdb57d1884fc4da1cf5be69b5e0a4c5b751e58cb6d88","5426e62886b7be7806312d31a00e8f7dccd6fe63ba9bbefe99ee2eab29cc48a3","e2a56bb80f66ac0b6767fd7bb6b337ac3cb9cd4a368b13491e3fd1b5e26d93d6","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"712ba0d43b44d144dfd01593f61af6e2e21cfae83e834d297643e7973e55ed61","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","98a3ebfa494b46265634a73459050befba5da8fdc6ca0ef9b7269421780f4ff3","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","afc559c1b93df37c25aef6b3dfa2d64325b0e112e887ee18bf7e6f4ec383fc90","d78e5898c8de5e0f934eee83f680262de005caa268d137101b833fd932f95e07",{"version":"57a1cb6f082fa2df46deaa96fa0063463b3393dd39bd09359dab251db28000b9","affectsGlobalScope":true},"a7b9533447378e7f34fa432e26be9102173e79bceb65b20d258d61c4042e90ad","d71ffe64592c4e61c6b431d8fbaff58735cd659738d788a4c8423a27f78f01b7","b869f848bec826c9d3645d10a183b905672a4675747f41700fd30e1b7e0d0308","62cc84c2971b16cc82e1f7cb1dac7d8c70b589d492fbc2f6efbcbfc53b61d514","67729b7b26e1ecf2afeb2f4a0a8c3ba16712918ef22d23bb615f033169ebe0f3","903da09dbdfea0af66cb6b7b25950e42e350f1f3cc87f3516baa553cc4de882f","e237aa7b157ebfb2699d2e3bbf07c65a8cea0382201dc44c9da006f0f730de67","05e8a403b04248dbe9eebd2025d58e95495de303f37b39f13e7562f5f414087a","a56bf5dce7c05192e4c2d95eb1527feda15f9225afea8c5ad67034a79992ebb6","fcb510be50b0756cb770f8caf321dba38ae074665efbea090584f8a8d3e6b8f4","d4c9c56a2f4ecedcc224a495dfbaee88072c8e99679504fb32ef1d0629f843a1","5ec537948044f7c0280d6175729bf7aa13deae28fe0f6346628a8cf15569aefa","94998ffb6165ce44d492327169a7f7cb0e1e11a967f068fbda6796029a4a40dd","1cc502622a7f773e7cd75ecacd64d0bc83a2a6442dc16a7081f968702edf5051","16d51f964ec125ad2024cf03f0af444b3bc3ec3614d9345cc54d09bab45c9a4c","ba601641fac98c229ccd4a303f747de376d761babb33229bb7153bed9356c9cc",{"version":"d2f7baf43dfa349d4010cbd9d64d84cdf3ec26c65fa5f44c8f74f052bedd0b49","affectsGlobalScope":true},"56cbe80e6c42d7e6e66b6f048add8b01c663797b843a074d9f19c4a3d63a269a","af9abc3144d279b29affb0e6dd842609eca65fb44c712368f6a89bb264b34ef4",{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true},"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","a1c79f857f5c7754e14c93949dad8cfefcd7df2ecc0dc9dd79a30fd493e28449","8566fa84085caa46340393b1704ecd368491918fb45bd688d6e89736aec73a2f","dc33ce27fbeaf0ea3da556c80a6cc8af9d13eb443088c8f25cdc39fca8e756f6","84e3bbd6f80983d468260fdbfeeb431cc81f7ea98d284d836e4d168e36875e86","0b85cb069d0e427ba946e5eb2d86ef65ffd19867042810516d16919f6c1a5aec","15c88bfd1b8dc7231ff828ae8df5d955bae5ebca4cf2bcb417af5821e52299ae","ed19da84b7dbf00952ad0b98ce5c194f1903bcf7c94d8103e8e0d63b271543ae","8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","fd326577c62145816fe1acc306c734c2396487f76719d3785d4e825b34540b33","3ebae8c00411116a66fca65b08228ea0cf0b72724701f9b854442100aab55aba","ee65fe452abe1309389c5f50710f24114e08a302d40708101c4aa950a2a7d044","e4b4326b61261bf5ffd6de8b4825f00eb11ebb89a51bd92663dd6e660abf4210","8b06ac3faeacb8484d84ddb44571d8f410697f98d7bfa86c0fda60373a9f5215","7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","f5638f7c2f12a9a1a57b5c41b3c1ea7db3876c003bab68e6a57afd6bcc169af0","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","d8aab31ba8e618cc3eea10b0945de81cb93b7e8150a013a482332263b9305322","462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","7adecb2c3238794c378d336a8182d4c3dd2c4fa6fa1785e2797a3db550edea62","dc12dc0e5aa06f4e1a7692149b78f89116af823b9e1f1e4eae140cd3e0e674e6","1bfc6565b90c8771615cd8cfcf9b36efc0275e5e83ac7d9181307e96eb495161","8a8a96898906f065f296665e411f51010b51372fa260d5373bf9f64356703190","7f82ef88bdb67d9a850dd1c7cd2d690f33e0f0acd208e3c9eba086f3670d4f73",{"version":"3fe15a491a792852283caeece8142bc7427a29c183d9fec8691d95a49c8932a1","affectsGlobalScope":true},"fc37aca06f6b8b296c42412a2e75ab53d30cd1fa8a340a3bb328a723fd678377","5f2c582b9ef260cb9559a64221b38606378c1fabe17694592cdfe5975a6d7efa","cc256fd958b33576ed32c7338c64adb0d08fc0c2c6525010202fab83f32745da","fd20dfa2434a61a87e3fa9450f9de2ed2c365ea43b17b34ac6616d90d9681381","389303117a81e90897689e7adb4b53a062e68a6fe4067088fae9552907aa28c3",{"version":"d4c4fe14b23180acf25e4a68dc3bb9e5c38233dd3de12a4ab9569e636090ac9b","affectsGlobalScope":true},"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","fe4a2042d087990ebfc7dc0142d5aaf5a152e4baea86b45f283f103ec1e871ea","d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","ca59fe42b81228a317812e95a2e72ccc8c7f1911b5f0c2a032adf41a0161ec5d","9364c7566b0be2f7b70ff5285eb34686f83ccb01bda529b82d23b2a844653bfb","00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","ae9930989ed57478eb03b9b80ad3efa7a3eacdfeff0f78ecf7894c4963a64f93","3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","3e59f00ab03c33717b3130066d4debb272da90eeded4935ff0604c2bc25a5cae","df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9",{"version":"0714e2046df66c0e93c3330d30dbc0565b3e8cd3ee302cf99e4ede6220e5fec8","affectsGlobalScope":true},"cddf5c26907c0b8378bc05543161c11637b830da9fadf59e02a11e675d11e180","2a2e2c6463bcf3c59f31bc9ab4b6ef963bbf7dffb049cd017e2c1834e3adca63","dee5d387e2e6f3015cbf91fc0c13ed6f016f9c5c1f2ad9c62602f4fd398fa83a","67f129ed8b372622ff36b8b10e39d03e09e363a5ff7821105f92f085b8d1ccba","721124f5db1f4a42da2308dfa1414d2e99055d2dfc59de7bf2e0b6ac64356c0e","0d7569149194d622212c21d5d162b0715d5a6ca764cebae7145fdbaff1e07311","cd74c8275483d3fe0d07a9b4bba28845a8a611f0aa399e961dbd40e5d46dd9ad","9fd94af6ff33bb25c014a4cc2dd9ffb54650176666b7831f1c85168784826ad4","4b0011a86baef7b2d7a95ce25e729c96f28c923a06cb0cbf9915135eae784aee","209e814e8e71aec74f69686a9506dd7610b97ab59dcee9446266446f72a76d05","56dd85019d2374449708458f4acf4712d4c6f7b19ae597e910bab6ae75bc9e05","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","208bb742e0f201470da121bc73847c74b62cff4172f38ae5949ae77d6c9c6b71","3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568","6fa0008bf91a4cc9c8963bace4bba0bd6865cbfa29c3e3ccc461155660fb113a","2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","6209c901f30cc321f4b86800d11fad3d67e73a3308f19946b1bc642af0280298","dac991ec2b7f56b1a39f74a65cca109ec9cde62df848c5bd41524030c894e341","58a3914b1cce4560d9ad6eee2b716caaa030eda0a90b21ca2457ea9e2783eaa3","d64037d2df4c89d6d2113b1aaad4b59259d448dbd8862bc20003d1caef23b1d4","7d7c8ef7d48a035142c07dae60545ecc0e4af4c337742760cb09726f2f8e31db","3054859381b164f72e31f3554b795761db2f4a54208587c55bdd690af83b3bc0","44a9aadd9a9e24c7fab7f5b271c8eb89d0e6af07bbc637adae7f15f1c1b6f70e","acebfe99678cf7cddcddc3435222cf132052b1226e902daac9fbb495c321a9b5","67fc055eb86a0632e2e072838f889ffe1754083cb13c8c80a06a7d895d877aae","b0d10e46cfe3f6c476b69af02eaa38e4ccc7430221ce3109ae84bb9fb8282298","3833c70307dc3d2b46cb6f2a8b6a90e4d7e7367a21ab18c481d7de0909a43e67","2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579","9d74c7330800b325bb19cc8c1a153a612c080a60094e1ab6cfb6e39cf1b88c36","fab58e600970e66547644a44bc9918e3223aa2cbd9e8763cec004b2cfb48827e","4fb0b7d532aa6fb850b6cd2f1ee4f00802d877b5c66a51903bc1fb0624126349","b90c59ac4682368a01c83881b814738eb151de8a58f52eb7edadea2bcffb11b9","8560a87b2e9f8e2c3808c8f6172c9b7eb6c9b08cb9f937db71c285ecf292c81d","ffe3931ff864f28d80ae2f33bd11123ad3d7bad9896b910a1e61504cc093e1f5","083c1bd82f8dc3a1ed6fc9e8eaddf141f7c05df418eca386598821e045253af9","274ebe605bd7f71ce161f9f5328febc7d547a2929f803f04b44ec4a7d8729517","6ca0207e70d985a24396583f55836b10dc181063ab6069733561bfde404d1bad","5908142efeaab38ffdf43927ee0af681ae77e0d7672b956dfb8b6c705dbfe106","f772b188b943549b5c5eb803133314b8aa7689eced80eed0b70e2f30ca07ab9c","0026b816ef05cfbf290e8585820eef0f13250438669107dfc44482bac007b14f","05d64cc1118031b29786632a9a0f6d7cf1dcacb303f27023a466cf3cdc860538","e0fff9119e1a5d2fdd46345734126cd6cb99c2d98a9debf0257047fe3937cc3f","d84398556ba4595ee6be554671da142cfe964cbdebb2f0c517a10f76f2b016c0","e275297155ec3251200abbb334c7f5641fecc68b2a9573e40eed50dff7584762","b2f006ee835f315d01c43c0f5d9e9ad78a5870b380899877b32a33078d065dbd","9fd94af6ff33bb25c014a4cc2dd9ffb54650176666b7831f1c85168784826ad4","43a4860173cec933ed8380e55f7a4473dd0df38b43e706b492f443cd8612bd87","f90d85d4cb38445499bdb7e7b013e4f64d99d157a6fa0843e998495ceb27b520","2e178a87e7bf03a067cfb1cf5573e7c4899fcbc9f462a0b0c67d238e39b794a4","901becb8779e1089442378fda5623e607ee4588762a32e7692436f1ea81cf848","8286d84d2567b713fd6a1fdfbb1a0abc8cfa668ee1e0e83d7dd4ade5761f2750","f28dffc6bf9bbd8b9dc156aadb74d11de7faabf547eb9f0aebb8cd03e8750a6c","dee5d387e2e6f3015cbf91fc0c13ed6f016f9c5c1f2ad9c62602f4fd398fa83a","9f3c5498245c38c9016a369795ec5ef1768d09db63643c8dba9656e5ab294825","44a8d350600656882fd7462774e32e8d13788313ba2e36d2e8d5437ac91b98df","60bb0e47502bf8716d1230288b4e6387c1d34cded12752ab5338108e2e662e67","b8870b5155d11a273c75718a4f19026da49f91c548703858cd3400d06c3bd3b8","b3ae4ded82f27cabba780b9af9647f6e08c9a4cabe8fbb7a0cca69c7add9ef4b","8d26ae32e5c9c080e44aee4a67e5ef02b5fda0604e6fecbb7b753c537e5282d9","05c4e792dae38912ba333725cdf8c42d242337d006c0d887f4ce5a7787871a95","cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e","1a23b521db8d7ec9e2b96c6fbd4c7e96d12f408b1e03661b3b9f7da7291103e6","d3d0d11d30c9878ada3356b9c36a2754b8c7b6204a41c86bfb1488c08ce263b0","a6493f1f479637ed89a3ebec03f6dc117e3b1851d7e938ac4c8501396b8639a8","ae0951e44973e928fe2e999b11960493835d094b16adac0b085a79cff181bcb9","9d00e3a59eff68fa8c40e89953083eeaad1c5b2580ed7da2304424b249ecb237","1609ad4d488c356ee91eba7d7aa87cc6fb59bc8ac05c1a8f08665285ba3b71ad","8add088f72326098d68d622ddb024c00ae56a912383efe96b03f0481db88f7c9","dd17fe6332567b8f13e33dd3ff8926553cdcea2ad32d4350ce0063a2addaa764","4091d56a4622480549350b8811ec64c7826cd41a70ce5d9c1cc20384bb144049","353c0125b9e50c2a71e18394d46be5ccb37161cc0f0e7c69216aa6932c8cdafb","9c5d5f167e86b6ddf7142559a17d13fd39c34e868ae947c40381db866eed6609","4430dea494b0ee77bf823d9a7c4850a539e1060d5d865316bb23fb393e4f01d7","aae698ceead4edad0695b9ea87e43f274e698bdb302c8cb5fd2cab4dc496ccf0","51631e9a0c041e12479ab01f5801d8a237327d19e9ee37d5f1f66be912631425","c9d5d8adb1455f49182751ce885745dcc5f9697e9c260388bc3ae9d1860d5d10","f64289e3fa8d5719eaf5ba1bb02dd32dbbf7c603dda75c16770a6bc6e9c6b6d9","b1aa0e2e3511a8d10990f35866405c64c9e576258ef99eeb9ebafed980fd7506","2d255a5287f2fb5295688cb25bd18e1cd59866179f795f3f1fd6b71b7f0edf8f","43c1dbb78d5277a5fdd8fddce8b257f84ffa2b4253f58b95c04a310710d19e97","6c669d7e080344c1574aa276a89e57c3b9f0e97fab96a09427e7dfb19ca261bf","b71ac126853867d8e64c910f47d46d05c5ea797987d2604f63d401507dc43b6d","9a37238558d28b7ee06d08599e92eab30b90704541cc85e6448009d6d55fffa9","120b14d66a061910309ff97e7b06b5c6c09444218178b80b687a92af4d22d5dc","3de958065e3a44cbe0bfa667813bc59c63e63c9ce522af8dc1b64714910fa9ba","66e655f7c43558bae6703242cbd6c0551a94d0a97204bd4c4bbf7e77f24d1f85","72f7b32e023814078046c036ed4b7ad92414be0aebb63e805c682e14103ae38a","a89d8e67966d085ff971c9900cfa1abdd9732bab66d9c1914ecc15befdf8623d","7dfd0308261bb91b058eb91802690fe3f09192b263e070a19df4d629df29e265","608eb9d411ac76e93a10e05f8aae92b3a5cefc87594219b737df7c8737ba2bd7","cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","93ba4ac36f570c70a12d588e21c10dda9f351fad3e77d416952acddb27bff01d","8750f9dc1e277ffff7446c95571bae61aca0984e8f99e40fc1e8cb7161ae0642","66408d81ba8962282b1a55da34c6bd767105141f54d0ba14dca330efe0c8f552","7481b9d93ca44eb1f689e0b939545ff00dead7bdb9daba401dfb74292d83f831","821e64ddbdfa10fac5f0aed1c1d4e1f275840400caa96357ddfd15d02e5afba1","1154651a6fbc1d60e448b903ec80f256f6771ced212ee1c3e5121168723621db","b0e5214ceeeb82c90f925ae53482d511c4ecabc47d74d49851f5d5d9257893aa","a7e430e32eaefba6b1ebf23a94a4562bfe7051cc83558d33ddc8ff342f3c18e9","2f495fcb913e89c0dace4a79e5bd7214c674ef8a391c8056a77a084eb3c882f9","3c71707988135662b344d59c4f92d2ea37b1f198149b762693db61e30bdaae9a","70e9a18da08294f75bf23e46c7d69e67634c0765d355887b9b41f0d959e1426e","6ba73232c9d3267ca36ddb83e335d474d2c0e167481e3dec416c782894e11438"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"esModuleInterop":true,"experimentalDecorators":true,"importHelpers":true,"module":1,"noImplicitAny":true,"outDir":"./lib","rootDir":"./src","skipLibCheck":true,"strict":true,"strictNullChecks":true,"strictPropertyInitialization":true,"target":6},"fileIdsList":[[86,136,197,198,199],[136,197,198,199],[86,87,88,89,90,136,197,198,199],[86,88,136,197,198,199],[111,136,143,144,197,198,199],[103,136,143,197,198,199],[136,143,197,198,199],[136,148,149,150,151,152,153,154,155,156,157,158,159,197,198,199],[108,136,143,197,198,199],[135,136,143,164,197,198,199],[111,136,143,197,198,199],[76,136,197,198,199],[136,169,170,197,198,199],[136,167,168,169,197,198,199],[108,111,136,143,162,163,197,198,199],[136,145,163,164,173,197,198,199],[109,136,143,197,198,199],[108,109,136,143,176,197,198,199],[108,111,113,116,125,135,136,143,197,198,199],[136,181,197,198,199],[136,182,197,198,199],[136,187,192,197,198,199],[108,136,138,143,195,196,198,199],[136,197,198],[136,197,199],[136,197,198,199,201,203,204,205,206,207,208,209,210,211,212,213],[136,197,198,199,201,202,204,205,206,207,208,209,210,211,212,213],[136,197,198,199,202,203,204,205,206,207,208,209,210,211,212,213],[136,197,198,199,201,202,203,205,206,207,208,209,210,211,212,213],[136,197,198,199,201,202,203,204,206,207,208,209,210,211,212,213],[136,197,198,199,201,202,203,204,205,207,208,209,210,211,212,213],[136,197,198,199,201,202,203,204,205,206,208,209,210,211,212,213],[136,197,198,199,201,202,203,204,205,206,207,209,210,211,212,213],[136,197,198,199,201,202,203,204,205,206,207,208,210,211,212,213],[136,197,198,199,201,202,203,204,205,206,207,208,209,211,212,213],[136,197,198,199,201,202,203,204,205,206,207,208,209,210,212,213],[136,197,198,199,201,202,203,204,205,206,207,208,209,210,211,213],[136,197,198,199,201,202,203,204,205,206,207,208,209,210,211,212],[136,197,198,199,214],[136,143,197,198,199,221],[97,111,116,132,136,169,197,198,199,216,218,219,220],[111,135,136,143,197,198,199,225,226],[93,136,197,198,199],[96,136,197,198,199],[97,102,136,197,198,199],[98,108,109,116,125,135,136,197,198,199],[98,99,108,116,136,197,198,199],[100,136,197,198,199],[101,102,109,117,136,197,198,199],[102,125,132,136,197,198,199],[103,105,108,116,136,197,198,199],[104,136,197,198,199],[105,106,136,197,198,199],[107,108,136,197,198,199],[108,136,197,198,199],[108,109,110,125,135,136,197,198,199],[108,109,110,125,136,197,198,199],[111,116,125,135,136,197,198,199],[108,109,111,112,116,125,132,135,136,197,198,199],[111,113,125,132,135,136,197,198,199],[93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,197,198,199],[108,114,136,197,198,199],[115,135,136,197,198,199],[105,108,116,125,136,197,198,199],[117,136,197,198,199],[118,136,197,198,199],[96,119,136,197,198,199],[120,134,136,140,197,198,199],[121,136,197,198,199],[122,136,197,198,199],[108,123,136,197,198,199],[123,124,136,138,197,198,199],[108,125,126,127,136,197,198,199],[125,127,136,197,198,199],[125,126,136,197,198,199],[128,136,197,198,199],[129,136,197,198,199],[108,130,131,136,197,198,199],[130,131,136,197,198,199],[102,116,125,132,136,197,198,199],[133,136,197,198,199],[116,134,136,197,198,199],[97,111,122,135,136,197,198,199],[102,136,197,198,199],[125,136,137,197,198,199],[136,138,197,198,199],[136,139,197,198,199],[97,102,108,110,119,125,135,136,138,140,197,198,199],[125,136,141,197,198,199],[136,194,197,198,199],[136,195,197,198,199],[135,136,143,197,198,199],[136,197,198,199,235],[109,136,174,197,198,199],[111,136,143,172,197,198,199],[136,197,198,199,241],[111,113,136,146,165,173,174,197,198,199,221,237,265,313,314],[136,143,197,198,199,246,247,248,249,250,251,252,253,254,255,256],[136,197,198,199,245,246,255],[136,197,198,199,246,255],[136,197,198,199,238,245,246,255],[136,197,198,199,245,246,247,248,249,250,251,252,253,254,256],[136,197,198,199,246],[102,136,197,198,199,245,255],[102,136,143,197,198,199,220,241,242,244,257],[136,197,198,199,317],[108,109,136,143,197,198,199,244],[111,125,136,143,197,198,199],[136,197,198,199,263],[136,197,198,199,261,262],[136,197,198,199,260,264],[111,116,135,136,143,174,180,197,198,199],[136,185,188,197,198,199],[136,185,188,189,190,197,198,199],[136,187,197,198,199],[136,184,191,197,198,199],[136,186,197,198,199],[136,197,198,199,218],[136,168,197,198,199,216,217],[136,168,197,198,199,218],[136,197,198,199,270,271,275,302,303,307,309,310],[136,197,198,199,268,269],[136,197,198,199,268],[136,197,198,199,270,310],[136,197,198,199,270,271,307,308,310],[136,197,198,199,310],[136,197,198,199,267,310,311],[136,197,198,199,270,271,309,310],[136,197,198,199,270,271,273,274,309,310],[136,197,198,199,270,271,272,309,310],[136,197,198,199,270,271,275,302,303,304,305,306,309,310],[136,197,198,199,267,270,271,275,307,309],[136,197,198,199,275,310],[136,197,198,199,277,278,279,280,281,282,283,284,285,286,310],[136,197,198,199,300,310],[136,197,198,199,276,287,295,296,297,298,299,301],[136,197,198,199,280,310],[136,197,198,199,288,289,290,291,292,293,294,310],[136,168,197,198,199,266,311],[136,168,197,198,199,312],[109,111,136,143,197,198,199,235,312],[111,116,132,136,197,198,199,216,218,219,220,234],[60,136,197,198,199],[60,73,136,197,198,199],[54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,72,136,197,198,199],[57,60,136,197,198,199],[59,60,136,197,198,199],[55,56,57,59,136,197,198,199],[59,136,197,198,199],[58,136,197,198,199],[51,52,136,197,198,199],[51,73,74,81,136,197,198,199],[51,77,136,197,198,199],[51,52,73,136,197,198,199],[51,52,53,82,84,136,197,198,199],[51,136,197,198,199],[51,52,80,81,83,136,197,198,199],[51,52,53,75,78,79,80,136,197,198,199],[73,81],[52,73]],"referencedMap":[[88,1],[86,2],[91,3],[87,1],[89,4],[90,1],[92,2],[145,5],[146,6],[147,7],[148,2],[149,2],[150,2],[151,2],[152,2],[154,2],[160,8],[153,2],[158,2],[155,2],[156,2],[157,2],[159,2],[161,9],[165,10],[144,11],[166,2],[77,12],[171,13],[167,2],[170,14],[169,2],[164,15],[174,16],[175,17],[177,18],[178,17],[179,2],[180,19],[181,2],[182,20],[183,21],[193,22],[197,23],[199,24],[198,25],[168,2],[200,2],[202,26],[203,27],[201,28],[204,29],[205,30],[206,31],[207,32],[208,33],[209,34],[210,35],[211,36],[212,37],[213,38],[215,39],[172,2],[222,40],[221,41],[176,2],[223,2],[76,2],[224,2],[226,2],[227,42],[93,43],[94,43],[96,44],[97,45],[98,46],[99,47],[100,48],[101,49],[102,50],[103,51],[104,52],[105,53],[106,53],[107,54],[108,55],[109,56],[110,57],[95,2],[142,2],[111,58],[112,59],[113,60],[143,61],[114,62],[115,63],[116,64],[117,65],[118,66],[119,67],[120,68],[121,69],[122,70],[123,71],[124,72],[125,73],[127,74],[126,75],[128,76],[129,77],[130,78],[131,79],[132,80],[133,81],[134,82],[135,83],[136,84],[137,85],[138,86],[139,87],[140,88],[141,89],[228,2],[229,2],[195,90],[194,91],[230,2],[231,2],[163,2],[162,2],[232,2],[233,92],[236,93],[237,94],[173,95],[238,2],[239,2],[240,2],[196,2],[242,96],[214,2],[243,2],[315,97],[259,41],[257,98],[256,99],[247,100],[248,101],[255,102],[249,101],[250,100],[251,100],[252,100],[253,103],[246,104],[254,99],[245,2],[258,105],[316,2],[317,2],[318,106],[217,2],[244,2],[184,2],[314,107],[225,108],[262,11],[264,109],[263,110],[261,11],[265,111],[260,112],[185,2],[189,113],[191,114],[190,113],[188,115],[192,116],[75,2],[187,117],[186,2],[219,118],[218,119],[216,120],[241,2],[220,2],[11,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[33,2],[34,2],[35,2],[36,2],[7,2],[41,2],[37,2],[38,2],[39,2],[40,2],[8,2],[45,2],[42,2],[43,2],[44,2],[46,2],[9,2],[47,2],[48,2],[49,2],[1,2],[10,2],[50,2],[267,2],[311,121],[268,2],[270,122],[269,123],[274,124],[309,125],[306,126],[308,127],[271,126],[272,128],[276,128],[275,129],[273,130],[307,131],[305,126],[310,132],[303,2],[304,2],[277,133],[282,126],[284,126],[279,126],[280,133],[286,126],[287,134],[278,126],[283,126],[285,126],[281,126],[301,135],[300,126],[302,136],[296,126],[298,126],[297,126],[293,126],[299,137],[294,126],[295,138],[288,126],[289,126],[290,126],[291,126],[292,126],[312,139],[266,140],[313,141],[234,2],[235,142],[54,2],[61,143],[62,143],[63,144],[64,143],[65,143],[66,143],[73,145],[67,143],[68,146],[69,147],[70,143],[71,143],[55,2],[56,2],[60,148],[57,2],[72,149],[59,150],[58,2],[51,2],[53,151],[82,152],[78,153],[74,154],[85,155],[79,156],[80,156],[84,157],[83,156],[81,158],[52,156]],"exportedModulesMap":[[88,1],[86,2],[91,3],[87,1],[89,4],[90,1],[92,2],[145,5],[146,6],[147,7],[148,2],[149,2],[150,2],[151,2],[152,2],[154,2],[160,8],[153,2],[158,2],[155,2],[156,2],[157,2],[159,2],[161,9],[165,10],[144,11],[166,2],[77,12],[171,13],[167,2],[170,14],[169,2],[164,15],[174,16],[175,17],[177,18],[178,17],[179,2],[180,19],[181,2],[182,20],[183,21],[193,22],[197,23],[199,24],[198,25],[168,2],[200,2],[202,26],[203,27],[201,28],[204,29],[205,30],[206,31],[207,32],[208,33],[209,34],[210,35],[211,36],[212,37],[213,38],[215,39],[172,2],[222,40],[221,41],[176,2],[223,2],[76,2],[224,2],[226,2],[227,42],[93,43],[94,43],[96,44],[97,45],[98,46],[99,47],[100,48],[101,49],[102,50],[103,51],[104,52],[105,53],[106,53],[107,54],[108,55],[109,56],[110,57],[95,2],[142,2],[111,58],[112,59],[113,60],[143,61],[114,62],[115,63],[116,64],[117,65],[118,66],[119,67],[120,68],[121,69],[122,70],[123,71],[124,72],[125,73],[127,74],[126,75],[128,76],[129,77],[130,78],[131,79],[132,80],[133,81],[134,82],[135,83],[136,84],[137,85],[138,86],[139,87],[140,88],[141,89],[228,2],[229,2],[195,90],[194,91],[230,2],[231,2],[163,2],[162,2],[232,2],[233,92],[236,93],[237,94],[173,95],[238,2],[239,2],[240,2],[196,2],[242,96],[214,2],[243,2],[315,97],[259,41],[257,98],[256,99],[247,100],[248,101],[255,102],[249,101],[250,100],[251,100],[252,100],[253,103],[246,104],[254,99],[245,2],[258,105],[316,2],[317,2],[318,106],[217,2],[244,2],[184,2],[314,107],[225,108],[262,11],[264,109],[263,110],[261,11],[265,111],[260,112],[185,2],[189,113],[191,114],[190,113],[188,115],[192,116],[75,2],[187,117],[186,2],[219,118],[218,119],[216,120],[241,2],[220,2],[11,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[33,2],[34,2],[35,2],[36,2],[7,2],[41,2],[37,2],[38,2],[39,2],[40,2],[8,2],[45,2],[42,2],[43,2],[44,2],[46,2],[9,2],[47,2],[48,2],[49,2],[1,2],[10,2],[50,2],[267,2],[311,121],[268,2],[270,122],[269,123],[274,124],[309,125],[306,126],[308,127],[271,126],[272,128],[276,128],[275,129],[273,130],[307,131],[305,126],[310,132],[303,2],[304,2],[277,133],[282,126],[284,126],[279,126],[280,133],[286,126],[287,134],[278,126],[283,126],[285,126],[281,126],[301,135],[300,126],[302,136],[296,126],[298,126],[297,126],[293,126],[299,137],[294,126],[295,138],[288,126],[289,126],[290,126],[291,126],[292,126],[312,139],[266,140],[313,141],[234,2],[235,142],[54,2],[61,143],[62,143],[63,144],[64,143],[65,143],[66,143],[73,145],[67,143],[68,146],[69,147],[70,143],[71,143],[55,2],[56,2],[60,148],[57,2],[72,149],[59,150],[58,2],[51,2],[53,151],[82,159],[78,153],[74,160],[85,155],[79,156],[80,156],[84,157],[83,156],[81,158],[52,156]],"semanticDiagnosticsPerFile":[88,86,91,87,89,90,92,145,146,147,148,149,150,151,152,154,160,153,158,155,156,157,159,161,165,144,166,77,171,167,170,169,164,174,175,177,178,179,180,181,182,183,193,197,199,198,168,200,202,203,201,204,205,206,207,208,209,210,211,212,213,215,172,222,221,176,223,76,224,226,227,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,95,142,111,112,113,143,114,115,116,117,118,119,120,121,122,123,124,125,127,126,128,129,130,131,132,133,134,135,136,137,138,139,140,141,228,229,195,194,230,231,163,162,232,233,236,237,173,238,239,240,196,242,214,243,315,259,257,256,247,248,255,249,250,251,252,253,246,254,245,258,316,317,318,217,244,184,314,225,262,264,263,261,265,260,185,189,191,190,188,192,75,187,186,219,218,216,241,220,11,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,33,34,35,36,7,41,37,38,39,40,8,45,42,43,44,46,9,47,48,49,1,10,50,267,311,268,270,269,274,309,306,308,271,272,276,275,273,307,305,310,303,304,277,282,284,279,280,286,287,278,283,285,281,301,300,302,296,298,297,293,299,294,295,288,289,290,291,292,312,266,313,234,235,54,61,62,63,64,65,66,73,67,68,69,70,71,55,56,60,57,72,59,58,51,53,82,78,74,85,79,80,84,83,81,52]},"version":"4.6.3"}