scanoss 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/build/main/index.d.ts +1 -0
  2. package/build/main/index.js +4 -1
  3. package/build/main/sdk/BaseConfig.js +24 -18
  4. package/build/main/sdk/Config/BaseConfig.d.ts +6 -0
  5. package/build/main/sdk/Config/BaseConfig.js +40 -0
  6. package/build/main/sdk/Logger.d.ts +19 -0
  7. package/build/main/sdk/Logger.js +31 -0
  8. package/build/main/sdk/Utils/Utils.d.ts +2 -2
  9. package/build/main/sdk/Utils/Utils.js +22 -8
  10. package/build/main/sdk/filters/DefaultFilterForDependencies.d.ts +16 -0
  11. package/build/main/sdk/filters/DefaultFilterForDependencies.js +145 -0
  12. package/build/main/sdk/filters/DefaultFilterForScanning.d.ts +16 -0
  13. package/build/main/sdk/filters/DefaultFilterForScanning.js +194 -0
  14. package/build/main/sdk/filters/filtering.d.ts +32 -0
  15. package/build/main/sdk/filters/filtering.js +228 -0
  16. package/build/main/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +1 -1
  17. package/build/main/tsconfig.tsbuildinfo +24 -11
  18. package/build/module/index.d.ts +1 -0
  19. package/build/module/index.js +2 -1
  20. package/build/module/sdk/BaseConfig.js +24 -18
  21. package/build/module/sdk/Config/BaseConfig.d.ts +6 -0
  22. package/build/module/sdk/Config/BaseConfig.js +37 -0
  23. package/build/module/sdk/Logger.d.ts +19 -0
  24. package/build/module/sdk/Logger.js +28 -0
  25. package/build/module/sdk/Utils/Utils.d.ts +2 -2
  26. package/build/module/sdk/Utils/Utils.js +22 -8
  27. package/build/module/sdk/filters/DefaultFilterForDependencies.d.ts +16 -0
  28. package/build/module/sdk/filters/DefaultFilterForDependencies.js +143 -0
  29. package/build/module/sdk/filters/DefaultFilterForScanning.d.ts +16 -0
  30. package/build/module/sdk/filters/DefaultFilterForScanning.js +192 -0
  31. package/build/module/sdk/filters/filtering.d.ts +32 -0
  32. package/build/module/sdk/filters/filtering.js +203 -0
  33. package/build/module/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +1 -1
  34. package/build/module/tsconfig.module.tsbuildinfo +24 -11
  35. package/package.json +2 -2
@@ -0,0 +1,192 @@
1
+ // ------ FILTERS SYNC WITH PYTHON CLIENT 06/10/2021 ------ //
2
+ import { FilterListType } from "./filtering";
3
+ export const defaultFilterForScanning = {
4
+ name: 'Default',
5
+ type: FilterListType.BANNED,
6
+ filters: [
7
+ { condition: '=', value: '0', ftype: 'SIZE', scope: 'FILE' },
8
+ //Folders and files filters
9
+ { condition: 'starts', value: '.', ftype: 'NAME' },
10
+ //Folder filters
11
+ { condition: 'ends', value: '.egg-info', ftype: 'NAME', scope: 'FOLDER' },
12
+ { condition: 'fullmatch', value: 'nbproject', ftype: 'NAME', scope: 'FOLDER' },
13
+ { condition: 'fullmatch', value: 'nbbuild', ftype: 'NAME', scope: 'FOLDER' },
14
+ { condition: 'fullmatch', value: 'nbdist', ftype: 'NAME', scope: 'FOLDER' },
15
+ { condition: 'fullmatch', value: '__pycache__', ftype: 'NAME', scope: 'FOLDER' },
16
+ { condition: 'fullmatch', value: 'venv', ftype: 'NAME', scope: 'FOLDER' },
17
+ { condition: 'fullmatch', value: '_yardoc', ftype: 'NAME', scope: 'FOLDER' },
18
+ { condition: 'fullmatch', value: 'eggs', ftype: 'NAME', scope: 'FOLDER' },
19
+ { condition: 'fullmatch', value: 'wheels', ftype: 'NAME', scope: 'FOLDER' },
20
+ { condition: 'fullmatch', value: 'htmlcov', ftype: 'NAME', scope: 'FOLDER' },
21
+ { condition: 'fullmatch', value: '__pypackages__', ftype: 'NAME', scope: 'FOLDER' },
22
+ //Files filters
23
+ { condition: 'fullmatch', value: 'gradlew', ftype: 'NAME', scope: 'FILE' },
24
+ { condition: 'fullmatch', value: 'gradlew.bat', ftype: 'NAME', scope: 'FILE' },
25
+ { condition: 'fullmatch', value: 'mvnw', ftype: 'NAME', scope: 'FILE' },
26
+ { condition: 'fullmatch', value: 'mvnw.cmd', ftype: 'NAME', scope: 'FILE' },
27
+ { condition: 'fullmatch', value: 'gradle-wrapper.jar', ftype: 'NAME', scope: 'FILE' },
28
+ { condition: 'fullmatch', value: 'maven-wrapper.jar', ftype: 'NAME', scope: 'FILE' },
29
+ { condition: 'fullmatch', value: 'thumbs.db', ftype: 'NAME', scope: 'FILE' },
30
+ { condition: 'fullmatch', value: 'babel.config.js', ftype: 'NAME', scope: 'FILE' },
31
+ { condition: 'fullmatch', value: 'license.txt', ftype: 'NAME', scope: 'FILE' },
32
+ { condition: 'fullmatch', value: 'license.md', ftype: 'NAME', scope: 'FILE' },
33
+ { condition: 'fullmatch', value: 'copying.lib', ftype: 'NAME', scope: 'FILE' },
34
+ { condition: 'fullmatch', value: 'makefile', ftype: 'NAME', scope: 'FILE' },
35
+ { condition: 'starts', value: '.asar', ftype: 'NAME', scope: 'FILE' },
36
+ { condition: 'ends', value: 'news', ftype: 'NAME', scope: 'FILE' },
37
+ { condition: 'ends', value: 'authors', ftype: 'NAME', scope: 'FILE' },
38
+ { condition: 'ends', value: '-doc', ftype: 'NAME', scope: 'FILE' },
39
+ { condition: 'ends', value: 'changelog', ftype: 'NAME', scope: 'FILE' },
40
+ { condition: 'ends', value: 'config', ftype: 'NAME', scope: 'FILE' },
41
+ { condition: 'ends', value: 'copying', ftype: 'NAME', scope: 'FILE' },
42
+ { condition: 'ends', value: 'license', ftype: 'NAME', scope: 'FILE' },
43
+ { condition: 'ends', value: 'licenses', ftype: 'NAME', scope: 'FILE' },
44
+ { condition: 'ends', value: 'notice', ftype: 'NAME', scope: 'FILE' },
45
+ { condition: 'ends', value: 'readme', ftype: 'NAME', scope: 'FILE' },
46
+ { condition: 'ends', value: 'swiftdoc', ftype: 'NAME', scope: 'FILE' },
47
+ { condition: 'ends', value: 'texidoc', ftype: 'NAME', scope: 'FILE' },
48
+ { condition: 'ends', value: 'todo', ftype: 'NAME', scope: 'FILE' },
49
+ { condition: 'ends', value: 'version', ftype: 'NAME', scope: 'FILE' },
50
+ { condition: 'ends', value: 'ignore', ftype: 'NAME', scope: 'FILE' },
51
+ { condition: 'ends', value: 'manifest', ftype: 'NAME', scope: 'FILE' },
52
+ { condition: 'ends', value: 'sqlite', ftype: 'NAME', scope: 'FILE' },
53
+ { condition: 'ends', value: 'sqlite3', ftype: 'NAME', scope: 'FILE' },
54
+ { condition: '=', value: '.1', ftype: 'EXTENSION', scope: 'FILE' },
55
+ { condition: '=', value: '.2', ftype: 'EXTENSION', scope: 'FILE' },
56
+ { condition: '=', value: '.3', ftype: 'EXTENSION', scope: 'FILE' },
57
+ { condition: '=', value: '.4', ftype: 'EXTENSION', scope: 'FILE' },
58
+ { condition: '=', value: '.5', ftype: 'EXTENSION', scope: 'FILE' },
59
+ { condition: '=', value: '.6', ftype: 'EXTENSION', scope: 'FILE' },
60
+ { condition: '=', value: '.7', ftype: 'EXTENSION', scope: 'FILE' },
61
+ { condition: '=', value: '.8', ftype: 'EXTENSION', scope: 'FILE' },
62
+ { condition: '=', value: '.9', ftype: 'EXTENSION', scope: 'FILE' },
63
+ { condition: '=', value: '.ac', ftype: 'EXTENSION', scope: 'FILE' },
64
+ { condition: '=', value: '.adoc', ftype: 'EXTENSION', scope: 'FILE' },
65
+ { condition: '=', value: '.am', ftype: 'EXTENSION', scope: 'FILE' },
66
+ { condition: '=', value: '.asciidoc', ftype: 'EXTENSION', scope: 'FILE' },
67
+ { condition: '=', value: '.bmp', ftype: 'EXTENSION', scope: 'FILE' },
68
+ { condition: '=', value: '.build', ftype: 'EXTENSION', scope: 'FILE' },
69
+ { condition: '=', value: '.cfg', ftype: 'EXTENSION', scope: 'FILE' },
70
+ { condition: '=', value: '.chm', ftype: 'EXTENSION', scope: 'FILE' },
71
+ { condition: '=', value: '.class', ftype: 'EXTENSION', scope: 'FILE' },
72
+ { condition: '=', value: '.cmake', ftype: 'EXTENSION', scope: 'FILE' },
73
+ { condition: '=', value: '.cnf', ftype: 'EXTENSION', scope: 'FILE' },
74
+ { condition: '=', value: '.conf', ftype: 'EXTENSION', scope: 'FILE' },
75
+ { condition: '=', value: '.config', ftype: 'EXTENSION', scope: 'FILE' },
76
+ { condition: '=', value: '.contributors', ftype: 'EXTENSION', scope: 'FILE' },
77
+ { condition: '=', value: '.copying', ftype: 'EXTENSION', scope: 'FILE' },
78
+ { condition: '=', value: '.crt', ftype: 'EXTENSION', scope: 'FILE' },
79
+ { condition: '=', value: '.csproj', ftype: 'EXTENSION', scope: 'FILE' },
80
+ { condition: '=', value: '.css', ftype: 'EXTENSION', scope: 'FILE' },
81
+ { condition: '=', value: '.csv', ftype: 'EXTENSION', scope: 'FILE' },
82
+ { condition: '=', value: '.dat', ftype: 'EXTENSION', scope: 'FILE' },
83
+ { condition: '=', value: '.data', ftype: 'EXTENSION', scope: 'FILE' },
84
+ { condition: '=', value: '.doc', ftype: 'EXTENSION', scope: 'FILE' },
85
+ { condition: '=', value: '.docx', ftype: 'EXTENSION', scope: 'FILE' },
86
+ { condition: '=', value: '.dtd', ftype: 'EXTENSION', scope: 'FILE' },
87
+ { condition: '=', value: '.dts', ftype: 'EXTENSION', scope: 'FILE' },
88
+ { condition: '=', value: '.iws', ftype: 'EXTENSION', scope: 'FILE' },
89
+ { condition: '=', value: '.c9', ftype: 'EXTENSION', scope: 'FILE' },
90
+ { condition: '=', value: '.c9revisions', ftype: 'EXTENSION', scope: 'FILE' },
91
+ { condition: '=', value: '.dtsi', ftype: 'EXTENSION', scope: 'FILE' },
92
+ { condition: '=', value: '.dump', ftype: 'EXTENSION', scope: 'FILE' },
93
+ { condition: '=', value: '.eot', ftype: 'EXTENSION', scope: 'FILE' },
94
+ { condition: '=', value: '.eps', ftype: 'EXTENSION', scope: 'FILE' },
95
+ { condition: '=', value: '.geojson', ftype: 'EXTENSION', scope: 'FILE' },
96
+ { condition: '=', value: '.gdoc', ftype: 'EXTENSION', scope: 'FILE' },
97
+ { condition: '=', value: '.gif', ftype: 'EXTENSION', scope: 'FILE' },
98
+ { condition: '=', value: '.glif', ftype: 'EXTENSION', scope: 'FILE' },
99
+ { condition: '=', value: '.gmo', ftype: 'EXTENSION', scope: 'FILE' },
100
+ { condition: '=', value: '.gradle', ftype: 'EXTENSION', scope: 'FILE' },
101
+ { condition: '=', value: '.guess', ftype: 'EXTENSION', scope: 'FILE' },
102
+ { condition: '=', value: '.hex', ftype: 'EXTENSION', scope: 'FILE' },
103
+ { condition: '=', value: '.htm', ftype: 'EXTENSION', scope: 'FILE' },
104
+ { condition: '=', value: '.html', ftype: 'EXTENSION', scope: 'FILE' },
105
+ { condition: '=', value: '.ico', ftype: 'EXTENSION', scope: 'FILE' },
106
+ { condition: '=', value: '.iml', ftype: 'EXTENSION', scope: 'FILE' },
107
+ { condition: '=', value: '.in', ftype: 'EXTENSION', scope: 'FILE' },
108
+ { condition: '=', value: '.inc', ftype: 'EXTENSION', scope: 'FILE' },
109
+ { condition: '=', value: '.info', ftype: 'EXTENSION', scope: 'FILE' },
110
+ { condition: '=', value: '.ini', ftype: 'EXTENSION', scope: 'FILE' },
111
+ { condition: '=', value: '.ipynb', ftype: 'EXTENSION', scope: 'FILE' },
112
+ { condition: '=', value: '.jpeg', ftype: 'EXTENSION', scope: 'FILE' },
113
+ { condition: '=', value: '.jpg', ftype: 'EXTENSION', scope: 'FILE' },
114
+ { condition: '=', value: '.json', ftype: 'EXTENSION', scope: 'FILE' },
115
+ { condition: '=', value: '.jsonld', ftype: 'EXTENSION', scope: 'FILE' },
116
+ { condition: '=', value: '.lock', ftype: 'EXTENSION', scope: 'FILE' },
117
+ { condition: '=', value: '.log', ftype: 'EXTENSION', scope: 'FILE' },
118
+ { condition: '=', value: '.m4', ftype: 'EXTENSION', scope: 'FILE' },
119
+ { condition: '=', value: '.map', ftype: 'EXTENSION', scope: 'FILE' },
120
+ { condition: '=', value: '.markdown', ftype: 'EXTENSION', scope: 'FILE' },
121
+ { condition: '=', value: '.md', ftype: 'EXTENSION', scope: 'FILE' },
122
+ { condition: '=', value: '.md5', ftype: 'EXTENSION', scope: 'FILE' },
123
+ { condition: '=', value: '.meta', ftype: 'EXTENSION', scope: 'FILE' },
124
+ { condition: '=', value: '.mk', ftype: 'EXTENSION', scope: 'FILE' },
125
+ { condition: '=', value: '.mxml', ftype: 'EXTENSION', scope: 'FILE' },
126
+ { condition: '=', value: '.o', ftype: 'EXTENSION', scope: 'FILE' },
127
+ { condition: '=', value: '.otf', ftype: 'EXTENSION', scope: 'FILE' },
128
+ { condition: '=', value: '.out', ftype: 'EXTENSION', scope: 'FILE' },
129
+ { condition: '=', value: '.pbtxt', ftype: 'EXTENSION', scope: 'FILE' },
130
+ { condition: '=', value: '.pdf', ftype: 'EXTENSION', scope: 'FILE' },
131
+ { condition: '=', value: '.pem', ftype: 'EXTENSION', scope: 'FILE' },
132
+ { condition: '=', value: '.phtml', ftype: 'EXTENSION', scope: 'FILE' },
133
+ { condition: '=', value: '.plist', ftype: 'EXTENSION', scope: 'FILE' },
134
+ { condition: '=', value: '.png', ftype: 'EXTENSION', scope: 'FILE' },
135
+ { condition: '=', value: '.po', ftype: 'EXTENSION', scope: 'FILE' },
136
+ { condition: '=', value: '.ppt', ftype: 'EXTENSION', scope: 'FILE' },
137
+ { condition: '=', value: '.prefs', ftype: 'EXTENSION', scope: 'FILE' },
138
+ { condition: '=', value: '.properties', ftype: 'EXTENSION', scope: 'FILE' },
139
+ { condition: '=', value: '.pyc', ftype: 'EXTENSION', scope: 'FILE' },
140
+ { condition: '=', value: '.qdoc', ftype: 'EXTENSION', scope: 'FILE' },
141
+ { condition: '=', value: '.result', ftype: 'EXTENSION', scope: 'FILE' },
142
+ { condition: '=', value: '.rgb', ftype: 'EXTENSION', scope: 'FILE' },
143
+ { condition: '=', value: '.rst', ftype: 'EXTENSION', scope: 'FILE' },
144
+ { condition: '=', value: '.scss', ftype: 'EXTENSION', scope: 'FILE' },
145
+ { condition: '=', value: '.sha', ftype: 'EXTENSION', scope: 'FILE' },
146
+ { condition: '=', value: '.sha1', ftype: 'EXTENSION', scope: 'FILE' },
147
+ { condition: '=', value: '.sha2', ftype: 'EXTENSION', scope: 'FILE' },
148
+ { condition: '=', value: '.sha256', ftype: 'EXTENSION', scope: 'FILE' },
149
+ { condition: '=', value: '.sln', ftype: 'EXTENSION', scope: 'FILE' },
150
+ { condition: '=', value: '.spec', ftype: 'EXTENSION', scope: 'FILE' },
151
+ { condition: '=', value: '.sql', ftype: 'EXTENSION', scope: 'FILE' },
152
+ { condition: '=', value: '.sub', ftype: 'EXTENSION', scope: 'FILE' },
153
+ { condition: '=', value: '.svg', ftype: 'EXTENSION', scope: 'FILE' },
154
+ { condition: '=', value: '.svn-base', ftype: 'EXTENSION', scope: 'FILE' },
155
+ { condition: '=', value: '.tab', ftype: 'EXTENSION', scope: 'FILE' },
156
+ { condition: '=', value: '.template', ftype: 'EXTENSION', scope: 'FILE' },
157
+ { condition: '=', value: '.test', ftype: 'EXTENSION', scope: 'FILE' },
158
+ { condition: '=', value: '.tex', ftype: 'EXTENSION', scope: 'FILE' },
159
+ { condition: '=', value: '.tiff', ftype: 'EXTENSION', scope: 'FILE' },
160
+ { condition: '=', value: '.toml', ftype: 'EXTENSION', scope: 'FILE' },
161
+ { condition: '=', value: '.ttf', ftype: 'EXTENSION', scope: 'FILE' },
162
+ { condition: '=', value: '.txt', ftype: 'EXTENSION', scope: 'FILE' },
163
+ { condition: '=', value: '.utf-8', ftype: 'EXTENSION', scope: 'FILE' },
164
+ { condition: '=', value: '.vim', ftype: 'EXTENSION', scope: 'FILE' },
165
+ { condition: '=', value: '.wav', ftype: 'EXTENSION', scope: 'FILE' },
166
+ { condition: '=', value: '.whl', ftype: 'EXTENSION', scope: 'FILE' },
167
+ { condition: '=', value: '.woff', ftype: 'EXTENSION', scope: 'FILE' },
168
+ { condition: '=', value: '.xht', ftype: 'EXTENSION', scope: 'FILE' },
169
+ { condition: '=', value: '.xhtml', ftype: 'EXTENSION', scope: 'FILE' },
170
+ { condition: '=', value: '.xls', ftype: 'EXTENSION', scope: 'FILE' },
171
+ { condition: '=', value: '.xlsx', ftype: 'EXTENSION', scope: 'FILE' },
172
+ { condition: '=', value: '.xml', ftype: 'EXTENSION', scope: 'FILE' },
173
+ { condition: '=', value: '.xpm', ftype: 'EXTENSION', scope: 'FILE' },
174
+ { condition: '=', value: '.xsd', ftype: 'EXTENSION', scope: 'FILE' },
175
+ { condition: '=', value: '.xul', ftype: 'EXTENSION', scope: 'FILE' },
176
+ { condition: '=', value: '.yaml', ftype: 'EXTENSION', scope: 'FILE' },
177
+ { condition: '=', value: '.yml', ftype: 'EXTENSION', scope: 'FILE' },
178
+ { condition: '=', value: '.wfp', ftype: 'EXTENSION', scope: 'FILE' },
179
+ { condition: '=', value: '.editorconfig', ftype: 'EXTENSION', scope: 'FILE' },
180
+ { condition: '=', value: '.dotcover', ftype: 'EXTENSION', scope: 'FILE' },
181
+ { condition: '=', value: '.pid', ftype: 'EXTENSION', scope: 'FILE' },
182
+ { condition: '=', value: '.lcov', ftype: 'EXTENSION', scope: 'FILE' },
183
+ { condition: '=', value: '.egg', ftype: 'EXTENSION', scope: 'FILE' },
184
+ { condition: '=', value: '.manifest', ftype: 'EXTENSION', scope: 'FILE' },
185
+ { condition: '=', value: '.cache', ftype: 'EXTENSION', scope: 'FILE' },
186
+ { condition: '=', value: '.coverage', ftype: 'EXTENSION', scope: 'FILE' },
187
+ { condition: '=', value: '.cover', ftype: 'EXTENSION', scope: 'FILE' },
188
+ { condition: '=', value: '.gem', ftype: 'EXTENSION', scope: 'FILE' },
189
+ { condition: '=', value: '.lst', ftype: 'EXTENSION', scope: 'FILE' },
190
+ ],
191
+ };
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEZpbHRlckZvclNjYW5uaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9maWx0ZXJzL0RlZmF1bHRGaWx0ZXJGb3JTY2FubmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc3QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxJQUFJLEVBQUUsU0FBUztJQUNmLElBQUksRUFBRSxjQUFjLENBQUMsTUFBTTtJQUMzQixPQUFPLEVBQUU7UUFDUCxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFFNUQsMkJBQTJCO1FBQzNCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFFbEQsZ0JBQWdCO1FBQ2hCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUV6RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDOUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFHO1FBQzdFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRztRQUM1RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUc7UUFDakYsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFHO1FBQzFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRztRQUM3RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUc7UUFDMUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFHO1FBQzVFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRztRQUM3RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRztRQUdwRixlQUFlO1FBRWYsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQzFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUM5RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdkUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQzNFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JGLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BGLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUM1RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDOUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQzdFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUM5RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFHM0UsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBR3JFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFHckUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ2xFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN2RSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdEUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdEUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN0RSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBRXJFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDbEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ2xFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDbEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ2xFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDbEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ2xFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNuRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ25FLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN0RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN2RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDN0UsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3hFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ25FLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUM1RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3hFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ25FLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN0RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDbkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDbkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDbkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN0RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN0RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNuRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUMzRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN2RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDekUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQzdFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDekUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtLQUNyRTtDQUNGLENBQUMifQ==
@@ -0,0 +1,32 @@
1
+ export declare enum FilterType {
2
+ NAME = "NAME",
3
+ CONTENT = "CONTENT",
4
+ EXTENSION = "EXTENSION",
5
+ SIZE = "SIZE",
6
+ DATE = "DATE"
7
+ }
8
+ export declare enum FilterListType {
9
+ BANNED = "BANNED",
10
+ WHITELIST = "WHITELIST"
11
+ }
12
+ declare class AbstractFilter {
13
+ condition: string;
14
+ value: string;
15
+ ftype: string;
16
+ scope: string;
17
+ constructor(condition: string, value: string);
18
+ evaluate(path: string): boolean;
19
+ }
20
+ export declare class FilterList {
21
+ type: FilterListType;
22
+ name: string;
23
+ filters: AbstractFilter[];
24
+ constructor(name: string);
25
+ addFilter(filter: AbstractFilter): void;
26
+ evaluate(path: string): boolean;
27
+ include(path: string): boolean;
28
+ save(path: string): void;
29
+ loadFromFile(path: string): void;
30
+ load(fList: FilterList): void;
31
+ }
32
+ export {};
@@ -0,0 +1,203 @@
1
+ import fs from 'fs';
2
+ import * as fpath from 'path';
3
+ import { isBinaryFileSync } from 'isbinaryfile';
4
+ export var FilterType;
5
+ (function (FilterType) {
6
+ FilterType["NAME"] = "NAME";
7
+ FilterType["CONTENT"] = "CONTENT";
8
+ FilterType["EXTENSION"] = "EXTENSION";
9
+ FilterType["SIZE"] = "SIZE";
10
+ FilterType["DATE"] = "DATE";
11
+ })(FilterType || (FilterType = {}));
12
+ ;
13
+ export var FilterListType;
14
+ (function (FilterListType) {
15
+ FilterListType["BANNED"] = "BANNED";
16
+ FilterListType["WHITELIST"] = "WHITELIST";
17
+ })(FilterListType || (FilterListType = {}));
18
+ ;
19
+ class AbstractFilter {
20
+ constructor(condition, value) {
21
+ this.condition = condition;
22
+ this.value = value;
23
+ this.ftype = 'NONE';
24
+ this.scope = 'ALL';
25
+ }
26
+ evaluate(path) {
27
+ return true;
28
+ }
29
+ }
30
+ class NameFilter extends AbstractFilter {
31
+ constructor(condition, value, scope) {
32
+ super(condition, value);
33
+ this.ftype = 'NAME';
34
+ this.scope = scope || super.scope;
35
+ }
36
+ evaluate(path) {
37
+ this.value = this.value.toLowerCase();
38
+ path = path.toLowerCase();
39
+ if (this.condition === 'contains') {
40
+ return !(path.indexOf(this.value) >= 0);
41
+ }
42
+ if (this.condition === 'fullmatch')
43
+ return fpath.basename(path) !== this.value;
44
+ if (this.condition === 'starts') {
45
+ let filename;
46
+ filename = fpath.basename(path);
47
+ return !filename.startsWith(this.value);
48
+ }
49
+ if (this.condition === 'ends') {
50
+ let filename;
51
+ filename = fpath.basename(path);
52
+ return !filename.endsWith(this.value);
53
+ }
54
+ return true;
55
+ }
56
+ }
57
+ class ContentFilter extends AbstractFilter {
58
+ constructor(condition, value, scope) {
59
+ super(condition, value);
60
+ this.ftype = 'CONTENT';
61
+ this.scope = scope || super.scope; // Verificar
62
+ }
63
+ evaluate(path) {
64
+ const binary = isBinaryFileSync(path);
65
+ if (this.condition === '=' && this.value === 'BINARY' && binary)
66
+ return false;
67
+ if (this.condition === '!=' && this.value === 'TEXT' && binary)
68
+ return false;
69
+ if (this.condition === '=' && this.value === 'TEXT' && !binary)
70
+ return false;
71
+ if (this.condition === '!=' && this.value === 'BINARY' && !binary)
72
+ return false;
73
+ return true;
74
+ }
75
+ }
76
+ class ExtensionFilter extends AbstractFilter {
77
+ constructor(condition, value, scope) {
78
+ super(condition, value);
79
+ this.ftype = 'EXTENSION';
80
+ this.scope = scope || super.scope; // Verificar
81
+ }
82
+ evaluate(path) {
83
+ path = path.toLowerCase();
84
+ this.value = this.value.toLowerCase();
85
+ return !path.endsWith(this.value);
86
+ }
87
+ }
88
+ class SizeFilter extends AbstractFilter {
89
+ constructor(condition, value, scope) {
90
+ super(condition, value);
91
+ this.ftype = 'SIZE';
92
+ this.scope = scope || super.scope; // Verificar
93
+ }
94
+ evaluate(path) {
95
+ const stat = fs.statSync(path);
96
+ if (this.condition === '>') {
97
+ if (stat.size > parseInt(this.value, 10)) {
98
+ // console.log("NO aceptado por que NO es mayor");
99
+ return false;
100
+ }
101
+ return true;
102
+ }
103
+ if (this.condition === '<') {
104
+ if (stat.size < parseInt(this.value, 10)) {
105
+ return false;
106
+ }
107
+ return true;
108
+ }
109
+ if (this.condition === '=') {
110
+ if (stat.size === parseInt(this.value, 10)) {
111
+ return false;
112
+ }
113
+ return true;
114
+ }
115
+ return true;
116
+ }
117
+ }
118
+ class DateFilter extends AbstractFilter {
119
+ constructor(condition, value, scope) {
120
+ super(condition, value);
121
+ this.ftype = 'DATE';
122
+ this.scope = scope || super.scope; // Verificar
123
+ }
124
+ evaluate(path) {
125
+ const stats = fs.statSync(path);
126
+ modified = stats.mtime;
127
+ const lDate = new Date(this.value);
128
+ const ms = stats.mtimeMs;
129
+ var modified = new Date(ms);
130
+ // console.log(lDate);
131
+ // console.log(modified);
132
+ if (this.condition === '>') {
133
+ if (modified > lDate) {
134
+ return false;
135
+ }
136
+ return true;
137
+ }
138
+ if (this.condition === '<') {
139
+ if (modified < lDate) {
140
+ return false;
141
+ }
142
+ return true;
143
+ }
144
+ return true;
145
+ }
146
+ }
147
+ export class FilterList {
148
+ constructor(name) {
149
+ this.name = name;
150
+ this.filters = [];
151
+ }
152
+ addFilter(filter) {
153
+ this.filters.push(filter);
154
+ }
155
+ // Returns false if the path match with some filter in the list
156
+ evaluate(path) {
157
+ const pathStat = fs.lstatSync(path);
158
+ let i;
159
+ for (i = 0; i < this.filters.length; i += 1) {
160
+ const evaluation = this.filters[i].evaluate(path);
161
+ if (this.filters[i].scope === 'FOLDER' && pathStat.isDirectory() && !evaluation)
162
+ return false;
163
+ if (this.filters[i].scope === 'FILE' && pathStat.isFile() && !evaluation)
164
+ return false;
165
+ if (this.filters[i].scope === 'ALL' && !evaluation)
166
+ return false;
167
+ }
168
+ return true;
169
+ }
170
+ include(path) {
171
+ if (this.type === FilterListType.BANNED)
172
+ return this.evaluate(path);
173
+ return !this.evaluate(path);
174
+ }
175
+ save(path) {
176
+ fs.writeFileSync(path, JSON.stringify(this.filters).toString());
177
+ }
178
+ loadFromFile(path) {
179
+ const json = fs.readFileSync(path, 'utf8');
180
+ const filters = JSON.parse(json);
181
+ this.load(filters);
182
+ }
183
+ load(fList) {
184
+ this.name = fList.name;
185
+ this.type = fList.type;
186
+ const a = fList.filters;
187
+ let i;
188
+ for (i = 0; i < a.length; i += 1) {
189
+ const scope = a[i].scope || 'ALL';
190
+ if (a[i].ftype === 'NAME')
191
+ this.addFilter(new NameFilter(a[i].condition, a[i].value, scope));
192
+ if (a[i].ftype === 'DATE')
193
+ this.addFilter(new DateFilter(a[i].condition, a[i].value, scope));
194
+ if (a[i].ftype === 'SIZE')
195
+ this.addFilter(new SizeFilter(a[i].condition, a[i].value, scope));
196
+ if (a[i].ftype === 'EXTENSION')
197
+ this.addFilter(new ExtensionFilter(a[i].condition, a[i].value, scope));
198
+ if (a[i].ftype === 'CONTENT')
199
+ this.addFilter(new ContentFilter(a[i].condition, a[i].value, scope));
200
+ }
201
+ }
202
+ }
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Nkay9maWx0ZXJzL2ZpbHRlcmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxLQUFLLEtBQUssTUFBTSxNQUFNLENBQUM7QUFDOUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhELE1BQU0sQ0FBTixJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIsMkJBQWEsQ0FBQTtJQUNiLGlDQUFtQixDQUFBO0lBQ25CLHFDQUF1QixDQUFBO0lBQ3ZCLDJCQUFhLENBQUE7SUFDYiwyQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQU5XLFVBQVUsS0FBVixVQUFVLFFBTXJCO0FBQUEsQ0FBQztBQUVGLE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDeEIsbUNBQWlCLENBQUE7SUFDakIseUNBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCO0FBQUEsQ0FBQztBQUVGLE1BQU0sY0FBYztJQVNsQixZQUFZLFNBQWlCLEVBQUUsS0FBYTtRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVcsU0FBUSxjQUFjO0lBQ3JDLFlBQVksU0FBaUIsRUFBRSxLQUFhLEVBQUUsS0FBYTtRQUN6RCxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUks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
@@ -8,7 +8,7 @@ export declare class WfpCalculator extends WfpProvider {
8
8
  constructor(scannerCfg?: ScannerCfg);
9
9
  init(): void;
10
10
  prepareWorker(): void;
11
- recoveryIndex(): -1 | 0;
11
+ recoveryIndex(): 0 | -1;
12
12
  forceStopWorker(): void;
13
13
  protected processPackedWfp(content: any): void;
14
14
  getNextScannableItem(): Promise<ScannableItem>;
@@ -497,13 +497,13 @@
497
497
  "affectsGlobalScope": false
498
498
  },
499
499
  "../../node_modules/degenerator/dist/src/index.d.ts": {
500
- "version": "d1369307f840d879926732671d461a728f9947c7794d32f7f6096a7b7ab79c83",
501
- "signature": "d1369307f840d879926732671d461a728f9947c7794d32f7f6096a7b7ab79c83",
500
+ "version": "78a8742d20dd29ade7e70e233582e36e6464280842b6b354820adec2257363db",
501
+ "signature": "78a8742d20dd29ade7e70e233582e36e6464280842b6b354820adec2257363db",
502
502
  "affectsGlobalScope": false
503
503
  },
504
504
  "../../node_modules/pac-resolver/dist/index.d.ts": {
505
- "version": "6230b604c9b3ea78afb81ccb6f35e48b9692dd4cb948f4766e91e49b083a4da2",
506
- "signature": "6230b604c9b3ea78afb81ccb6f35e48b9692dd4cb948f4766e91e49b083a4da2",
505
+ "version": "e333ff0616cfe7b876afe314ed978678482f355eaca53d798d5d9e41f8c92bd4",
506
+ "signature": "e333ff0616cfe7b876afe314ed978678482f355eaca53d798d5d9e41f8c92bd4",
507
507
  "affectsGlobalScope": false
508
508
  },
509
509
  "../../node_modules/agent-base/dist/src/index.d.ts": {
@@ -531,13 +531,18 @@
531
531
  "signature": "67918f0ddd6271a88574dfe495942f4a6e982b9c3c1a2ce14c273f103691394d",
532
532
  "affectsGlobalScope": false
533
533
  },
534
+ "../../src/sdk/Logger.ts": {
535
+ "version": "fd4d3f1ba4c837397a726d1383127dc43e8ff7f35cc9b513bf15ebadc9733f16",
536
+ "signature": "1b47705dfcc269d6ae10979dcca4479eb47e72d09c59d67d8c95a91551d78eca",
537
+ "affectsGlobalScope": false
538
+ },
534
539
  "../../src/sdk/Utils/Utils.ts": {
535
- "version": "2bc8199199c925de123b77f20045bbbeb663e543d6b0ff0b94c88e5fb20b84ad",
536
- "signature": "ca5bcf44b984602473598b61436891d236fe173f455d397f2776861d9a4d5dcc",
540
+ "version": "c144aa852b0d16e267fb120eda7cbecdb2d097831f16bc8979c5a66d8f4d97a3",
541
+ "signature": "e1703a60aed7b8a401834f29b2f5e29e221748aa4add7e28dc9c89ead9636d8f",
537
542
  "affectsGlobalScope": false
538
543
  },
539
544
  "../../src/sdk/BaseConfig.ts": {
540
- "version": "b2432dbfbc5cefd6cfc51d2d4c0cf090eaa921a1bc09205e2a3245bb305cb054",
545
+ "version": "bb7e25376c325553b0f3c6766dbb6c24673adc5ab9d81b19242fb3a0ae53e05b",
541
546
  "signature": "9a171a10f05da82af3f099ed69587aa05f883e04f3dd8183a06763f083628aef",
542
547
  "affectsGlobalScope": false
543
548
  },
@@ -593,7 +598,7 @@
593
598
  },
594
599
  "../../src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.ts": {
595
600
  "version": "8bc5ef5dccad2549261f3cba1a96e5a5be5a7d665bd8fa7d2aeac9dc83cdf9ca",
596
- "signature": "39ebe6a7fcbdf428382559b1bc3f0feffcae712c46e9e4d7226f466f598c20b7",
601
+ "signature": "bb0253fd3d286310519dbdf544e5969cf4b912b83b606904298427aaca31e595",
597
602
  "affectsGlobalScope": false
598
603
  },
599
604
  "../../src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.ts": {
@@ -1222,8 +1227,8 @@
1222
1227
  "affectsGlobalScope": false
1223
1228
  },
1224
1229
  "../../src/index.ts": {
1225
- "version": "1827ee1fa3f96e34a159f6e0d7891557975cb7a043b12bc04b3eb5730b8bdd60",
1226
- "signature": "8d3cdabd02dbfab80ec41f9d416fc5e16d9eeeb9d099afe54fbf0d215792a693",
1230
+ "version": "fc0166a4e45dcc5a9a9fa00866e63fb70157b7f8746576fb2ad58e078dd37e2a",
1231
+ "signature": "b568d563206d8429a811c0b8d2b05279e00bfbcb0661b6f3f7ee62cad4576c63",
1227
1232
  "affectsGlobalScope": false
1228
1233
  },
1229
1234
  "../../node_modules/commander/typings/index.d.ts": {
@@ -2507,6 +2512,7 @@
2507
2512
  "../../src/sdk/Dependencies/LocalDependency/LocalDependency.ts",
2508
2513
  "../../src/sdk/FileCount/FileCount.ts",
2509
2514
  "../../src/sdk/FileCount/Interfaces.ts",
2515
+ "../../src/sdk/Logger.ts",
2510
2516
  "../../src/sdk/scanner/Fingerprint.ts",
2511
2517
  "../../src/sdk/scanner/Scanner.ts",
2512
2518
  "../../src/sdk/scanner/ScannerCfg.ts",
@@ -2516,6 +2522,7 @@
2516
2522
  ],
2517
2523
  "../../src/sdk/BaseConfig.ts": [
2518
2524
  "../../node_modules/@types/node/util.d.ts",
2525
+ "../../src/sdk/Logger.ts",
2519
2526
  "../../src/sdk/Utils/Utils.ts"
2520
2527
  ],
2521
2528
  "../../src/sdk/DataLayer/DataLayerTypes.ts": [
@@ -2679,6 +2686,9 @@
2679
2686
  "../../node_modules/@types/node/util.d.ts",
2680
2687
  "../../node_modules/isbinaryfile/lib/index.d.ts"
2681
2688
  ],
2689
+ "../../src/sdk/Logger.ts": [
2690
+ "../../node_modules/@types/node/util.d.ts"
2691
+ ],
2682
2692
  "../../src/sdk/Report/Report.ts": [
2683
2693
  "../../node_modules/@types/node/fs.d.ts",
2684
2694
  "../../node_modules/@types/node/path.d.ts",
@@ -2696,7 +2706,8 @@
2696
2706
  "../../node_modules/get-uri/dist/index.d.ts",
2697
2707
  "../../node_modules/http-proxy-agent/dist/index.d.ts",
2698
2708
  "../../node_modules/https-proxy-agent/dist/index.d.ts",
2699
- "../../node_modules/pac-resolver/dist/index.d.ts"
2709
+ "../../node_modules/pac-resolver/dist/index.d.ts",
2710
+ "../../src/sdk/Logger.ts"
2700
2711
  ],
2701
2712
  "../../src/sdk/grpc/GrpcDependencyService.ts": [
2702
2713
  "../../node_modules/@grpc/grpc-js/build/src/index.d.ts",
@@ -3989,6 +4000,7 @@
3989
4000
  "../../src/sdk/Dependencies/LocalDependency/LocalDependency.ts",
3990
4001
  "../../src/sdk/FileCount/FileCount.ts",
3991
4002
  "../../src/sdk/FileCount/Interfaces.ts",
4003
+ "../../src/sdk/Logger.ts",
3992
4004
  "../../src/sdk/scanner/Fingerprint.ts",
3993
4005
  "../../src/sdk/scanner/Scanner.ts",
3994
4006
  "../../src/sdk/scanner/ScannerCfg.ts",
@@ -4422,6 +4434,7 @@
4422
4434
  "../../src/sdk/Filtering/DefaultFilterForDependencies.ts",
4423
4435
  "../../src/sdk/Filtering/DefaultFilterForScanning.ts",
4424
4436
  "../../src/sdk/Filtering/Filtering.ts",
4437
+ "../../src/sdk/Logger.ts",
4425
4438
  "../../src/sdk/Report/Report.ts",
4426
4439
  "../../src/sdk/Utils/Utils.ts",
4427
4440
  "../../src/sdk/grpc/GrpcDependencyService.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scanoss",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "description": "The SCANOSS JS package provides a simple, easy to consume module for interacting with SCANOSS APIs/Engine.",
5
5
  "main": "build/main/index.js",
6
6
  "typings": "build/main/index.d.ts",
@@ -37,7 +37,7 @@
37
37
  "isbinaryfile": "^4.0.8",
38
38
  "node-fetch": "^2.6.1",
39
39
  "p-queue": "6.6.2",
40
- "pac-resolver": "^5.0.1",
40
+ "pac-resolver": "^4.2.0",
41
41
  "packageurl-js": "^0.0.5",
42
42
  "sort-paths": "^1.1.1",
43
43
  "syswide-cas": "^5.3.0",