scanoss 0.7.4 → 0.7.8
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/.idea/workspace.xml +22 -20
- package/build/main/cli/bin/cli-bin.d.ts +2 -1
- package/build/main/cli/bin/cli-bin.js +10 -2
- package/build/main/package.json +120 -0
- package/build/main/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +1 -1
- package/build/main/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +4 -4
- package/build/main/sdk/scanner/Dispatcher/Dispatcher.js +5 -2
- package/build/main/sdk/scanner/Fingerprint.d.ts +2 -2
- package/build/main/sdk/scanner/Fingerprint.js +26 -8
- package/build/main/sdk/scanner/Scanner.js +4 -1
- package/build/main/sdk/scanner/ScannerCfg.d.ts +1 -0
- package/build/main/sdk/scanner/ScannerCfg.js +6 -3
- package/build/main/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +6 -3
- package/build/main/src/cli/bin/cli-bin.d.ts +2 -0
- package/build/main/src/cli/bin/cli-bin.js +68 -0
- package/build/main/src/cli/commands/dep.d.ts +1 -0
- package/build/main/src/cli/commands/dep.js +38 -0
- package/build/main/src/cli/commands/helpers.d.ts +2 -0
- package/build/main/src/cli/commands/helpers.js +25 -0
- package/build/main/src/cli/commands/scan.d.ts +1 -0
- package/build/main/src/cli/commands/scan.js +138 -0
- package/build/main/src/cli/commands/wfp.d.ts +1 -0
- package/build/main/src/cli/commands/wfp.js +54 -0
- package/build/main/src/index.d.ts +14 -0
- package/build/main/src/index.js +30 -0
- package/build/main/src/sdk/DataLayer/DataLayerTypes.d.ts +108 -0
- package/build/main/src/sdk/DataLayer/DataLayerTypes.js +5 -0
- package/build/main/src/sdk/DataLayer/DataProviderManager.d.ts +7 -0
- package/build/main/src/sdk/DataLayer/DataProviderManager.js +24 -0
- package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +13 -0
- package/build/main/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +164 -0
- package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +9 -0
- package/build/main/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +37 -0
- package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +18 -0
- package/build/main/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +148 -0
- package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +11 -0
- package/build/main/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +33 -0
- package/build/main/src/sdk/Decompress/DecompressionManager.d.ts +12 -0
- package/build/main/src/sdk/Decompress/DecompressionManager.js +73 -0
- package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +5 -0
- package/build/main/src/sdk/Decompress/Decompressor/DecompressTgz.js +22 -0
- package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +5 -0
- package/build/main/src/sdk/Decompress/Decompressor/DecompressZips.js +24 -0
- package/build/main/src/sdk/Decompress/Decompressor/Decompressor.d.ts +10 -0
- package/build/main/src/sdk/Decompress/Decompressor/Decompressor.js +18 -0
- package/build/main/src/sdk/Dependencies/DependencyScanner.d.ts +11 -0
- package/build/main/src/sdk/Dependencies/DependencyScanner.js +96 -0
- package/build/main/src/sdk/Dependencies/DependencyScannerCfg.d.ts +4 -0
- package/build/main/src/sdk/Dependencies/DependencyScannerCfg.js +10 -0
- package/build/main/src/sdk/Dependencies/DependencyTypes.d.ts +21 -0
- package/build/main/src/sdk/Dependencies/DependencyTypes.js +2 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +2 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +8 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/LocalDependency.js +102 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +2 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +95 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +3 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +97 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +183 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +13 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +187 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +3 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +58 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +64 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +3 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +132 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +2 -0
- package/build/main/src/sdk/Dependencies/LocalDependency/parsers/utils.js +19 -0
- package/build/main/src/sdk/Report/Report.d.ts +8 -0
- package/build/main/src/sdk/Report/Report.js +26 -0
- package/build/main/src/sdk/filters/DefaultFilterForDependencies.d.ts +16 -0
- package/build/main/src/sdk/filters/DefaultFilterForDependencies.js +145 -0
- package/build/main/src/sdk/filters/DefaultFilterForScanning.d.ts +16 -0
- package/build/main/src/sdk/filters/DefaultFilterForScanning.js +194 -0
- package/build/main/src/sdk/filters/filtering.d.ts +32 -0
- package/build/main/src/sdk/filters/filtering.js +228 -0
- package/build/main/src/sdk/grpc/GrpcDependencyService.d.ts +11 -0
- package/build/main/src/sdk/grpc/GrpcDependencyService.js +86 -0
- package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
- package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
- package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
- package/build/main/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +404 -0
- package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +39 -0
- package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
- package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
- package/build/main/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1197 -0
- package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +19 -0
- package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +66 -0
- package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
- package/build/main/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +14 -0
- package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +19 -0
- package/build/main/src/sdk/scanner/Dispatcher/DispatchableItem.js +43 -0
- package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +20 -0
- package/build/main/src/sdk/scanner/Dispatcher/Dispatcher.js +160 -0
- package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +12 -0
- package/build/main/src/sdk/scanner/Dispatcher/DispatcherResponse.js +33 -0
- package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +10 -0
- package/build/main/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +32 -0
- package/build/main/src/sdk/scanner/Fingerprint.d.ts +16 -0
- package/build/main/src/sdk/scanner/Fingerprint.js +78 -0
- package/build/main/src/sdk/scanner/Scannable/ScannableItem.d.ts +15 -0
- package/build/main/src/sdk/scanner/Scannable/ScannableItem.js +27 -0
- package/build/main/src/sdk/scanner/Scanner.d.ts +46 -0
- package/build/main/src/sdk/scanner/Scanner.js +283 -0
- package/build/main/src/sdk/scanner/ScannerCfg.d.ts +16 -0
- package/build/main/src/sdk/scanner/ScannerCfg.js +30 -0
- package/build/main/src/sdk/scanner/ScannerTypes.d.ts +121 -0
- package/build/main/src/sdk/scanner/ScannerTypes.js +48 -0
- package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +9 -0
- package/build/main/src/sdk/scanner/WfpProvider/FingerprintPackage.js +31 -0
- package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +20 -0
- package/build/main/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +492 -0
- package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +35 -0
- package/build/main/src/sdk/scanner/WfpProvider/WfpProvider.js +68 -0
- package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +21 -0
- package/build/main/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +139 -0
- package/build/main/src/sdk/tree/File.d.ts +7 -0
- package/build/main/src/sdk/tree/File.js +24 -0
- package/build/main/src/sdk/tree/Filters/DecompressionFilter.d.ts +7 -0
- package/build/main/src/sdk/tree/Filters/DecompressionFilter.js +21 -0
- package/build/main/src/sdk/tree/Filters/DependencyFilter.d.ts +7 -0
- package/build/main/src/sdk/tree/Filters/DependencyFilter.js +17 -0
- package/build/main/src/sdk/tree/Filters/Filter.d.ts +4 -0
- package/build/main/src/sdk/tree/Filters/Filter.js +6 -0
- package/build/main/src/sdk/tree/Filters/ScanFilter.d.ts +7 -0
- package/build/main/src/sdk/tree/Filters/ScanFilter.js +17 -0
- package/build/main/src/sdk/tree/Folder.d.ts +12 -0
- package/build/main/src/sdk/tree/Folder.js +58 -0
- package/build/main/src/sdk/tree/Node.d.ts +17 -0
- package/build/main/src/sdk/tree/Node.js +25 -0
- package/build/main/src/sdk/tree/Tree.d.ts +18 -0
- package/build/main/src/sdk/tree/Tree.js +70 -0
- package/build/main/tsconfig.tsbuildinfo +126 -123
- package/build/module/cli/bin/cli-bin.d.ts +2 -1
- package/build/module/cli/bin/cli-bin.js +6 -2
- package/build/module/package.json +120 -0
- package/build/module/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +1 -1
- package/build/module/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +4 -4
- package/build/module/sdk/scanner/Dispatcher/Dispatcher.js +5 -2
- package/build/module/sdk/scanner/Fingerprint.d.ts +2 -2
- package/build/module/sdk/scanner/Fingerprint.js +6 -6
- package/build/module/sdk/scanner/Scanner.js +4 -1
- package/build/module/sdk/scanner/ScannerCfg.d.ts +1 -0
- package/build/module/sdk/scanner/ScannerCfg.js +6 -3
- package/build/module/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +6 -3
- package/build/module/src/cli/bin/cli-bin.d.ts +2 -0
- package/build/module/src/cli/bin/cli-bin.js +67 -0
- package/build/module/src/cli/commands/dep.d.ts +1 -0
- package/build/module/src/cli/commands/dep.js +32 -0
- package/build/module/src/cli/commands/helpers.d.ts +2 -0
- package/build/module/src/cli/commands/helpers.js +19 -0
- package/build/module/src/cli/commands/scan.d.ts +1 -0
- package/build/module/src/cli/commands/scan.js +135 -0
- package/build/module/src/cli/commands/wfp.d.ts +1 -0
- package/build/module/src/cli/commands/wfp.js +48 -0
- package/build/module/src/index.d.ts +14 -0
- package/build/module/src/index.js +19 -0
- package/build/module/src/sdk/DataLayer/DataLayerTypes.d.ts +108 -0
- package/build/module/src/sdk/DataLayer/DataLayerTypes.js +5 -0
- package/build/module/src/sdk/DataLayer/DataProviderManager.d.ts +7 -0
- package/build/module/src/sdk/DataLayer/DataProviderManager.js +21 -0
- package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.d.ts +13 -0
- package/build/module/src/sdk/DataLayer/DataProviders/ComponentDataProvider.js +159 -0
- package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.d.ts +9 -0
- package/build/module/src/sdk/DataLayer/DataProviders/DependencyDataProvider.js +34 -0
- package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.d.ts +18 -0
- package/build/module/src/sdk/DataLayer/DataProviders/LicenseDataProvider.js +145 -0
- package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.d.ts +11 -0
- package/build/module/src/sdk/DataLayer/DataProviders/SummaryDataProvider.js +30 -0
- package/build/module/src/sdk/Decompress/DecompressionManager.d.ts +12 -0
- package/build/module/src/sdk/Decompress/DecompressionManager.js +67 -0
- package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.d.ts +5 -0
- package/build/module/src/sdk/Decompress/Decompressor/DecompressTgz.js +16 -0
- package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.d.ts +5 -0
- package/build/module/src/sdk/Decompress/Decompressor/DecompressZips.js +18 -0
- package/build/module/src/sdk/Decompress/Decompressor/Decompressor.d.ts +10 -0
- package/build/module/src/sdk/Decompress/Decompressor/Decompressor.js +15 -0
- package/build/module/src/sdk/Dependencies/DependencyScanner.d.ts +11 -0
- package/build/module/src/sdk/Dependencies/DependencyScanner.js +93 -0
- package/build/module/src/sdk/Dependencies/DependencyScannerCfg.d.ts +4 -0
- package/build/module/src/sdk/Dependencies/DependencyScannerCfg.js +7 -0
- package/build/module/src/sdk/Dependencies/DependencyTypes.d.ts +21 -0
- package/build/module/src/sdk/Dependencies/DependencyTypes.js +2 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.d.ts +16 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/DependencyTypes.js +2 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.d.ts +8 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/LocalDependency.js +96 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.d.ts +2 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/buildGradleParser.js +87 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.d.ts +3 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/golangParser.js +88 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.d.ts +2 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/mavenParser.js +180 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.d.ts +13 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/npmParser.js +175 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.d.ts +3 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/nugetParser.js +49 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.d.ts +2 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/pyParser.js +57 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.d.ts +3 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.js +125 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.d.ts +2 -0
- package/build/module/src/sdk/Dependencies/LocalDependency/parsers/utils.js +15 -0
- package/build/module/src/sdk/Report/Report.d.ts +8 -0
- package/build/module/src/sdk/Report/Report.js +20 -0
- package/build/module/src/sdk/filters/DefaultFilterForDependencies.d.ts +16 -0
- package/build/module/src/sdk/filters/DefaultFilterForDependencies.js +143 -0
- package/build/module/src/sdk/filters/DefaultFilterForScanning.d.ts +16 -0
- package/build/module/src/sdk/filters/DefaultFilterForScanning.js +192 -0
- package/build/module/src/sdk/filters/filtering.d.ts +32 -0
- package/build/module/src/sdk/filters/filtering.js +203 -0
- package/build/module/src/sdk/grpc/GrpcDependencyService.d.ts +11 -0
- package/build/module/src/sdk/grpc/GrpcDependencyService.js +64 -0
- package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.d.ts +0 -0
- package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_grpc_pb.js +2 -0
- package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.d.ts +1 -0
- package/build/module/src/sdk/grpc/scanoss/api/common/v2/scanoss-common_pb.js +404 -0
- package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.d.ts +39 -0
- package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb.js +98 -0
- package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.d.ts +1 -0
- package/build/module/src/sdk/grpc/scanoss/api/dependencies/v2/scanoss-dependencies_pb.js +1197 -0
- package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.d.ts +19 -0
- package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_grpc_pb.js +66 -0
- package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.d.ts +1 -0
- package/build/module/src/sdk/grpc/scanoss/api/scanning/v2/scanoss-scanning_pb.js +14 -0
- package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.d.ts +19 -0
- package/build/module/src/sdk/scanner/Dispatcher/DispatchableItem.js +37 -0
- package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.d.ts +20 -0
- package/build/module/src/sdk/scanner/Dispatcher/Dispatcher.js +135 -0
- package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.d.ts +12 -0
- package/build/module/src/sdk/scanner/Dispatcher/DispatcherResponse.js +30 -0
- package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.d.ts +10 -0
- package/build/module/src/sdk/scanner/Dispatcher/GlobalControllerAborter.js +26 -0
- package/build/module/src/sdk/scanner/Fingerprint.d.ts +16 -0
- package/build/module/src/sdk/scanner/Fingerprint.js +54 -0
- package/build/module/src/sdk/scanner/Scannable/ScannableItem.d.ts +15 -0
- package/build/module/src/sdk/scanner/Scannable/ScannableItem.js +24 -0
- package/build/module/src/sdk/scanner/Scanner.d.ts +46 -0
- package/build/module/src/sdk/scanner/Scanner.js +275 -0
- package/build/module/src/sdk/scanner/ScannerCfg.d.ts +16 -0
- package/build/module/src/sdk/scanner/ScannerCfg.js +27 -0
- package/build/module/src/sdk/scanner/ScannerTypes.d.ts +121 -0
- package/build/module/src/sdk/scanner/ScannerTypes.js +46 -0
- package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.d.ts +9 -0
- package/build/module/src/sdk/scanner/WfpProvider/FingerprintPackage.js +28 -0
- package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.d.ts +20 -0
- package/build/module/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.js +486 -0
- package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.d.ts +35 -0
- package/build/module/src/sdk/scanner/WfpProvider/WfpProvider.js +65 -0
- package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.d.ts +21 -0
- package/build/module/src/sdk/scanner/WfpProvider/WfpSplitter/WfpSplitter.js +132 -0
- package/build/module/src/sdk/tree/File.d.ts +7 -0
- package/build/module/src/sdk/tree/File.js +19 -0
- package/build/module/src/sdk/tree/Filters/DecompressionFilter.d.ts +7 -0
- package/build/module/src/sdk/tree/Filters/DecompressionFilter.js +18 -0
- package/build/module/src/sdk/tree/Filters/DependencyFilter.d.ts +7 -0
- package/build/module/src/sdk/tree/Filters/DependencyFilter.js +14 -0
- package/build/module/src/sdk/tree/Filters/Filter.d.ts +4 -0
- package/build/module/src/sdk/tree/Filters/Filter.js +3 -0
- package/build/module/src/sdk/tree/Filters/ScanFilter.d.ts +7 -0
- package/build/module/src/sdk/tree/Filters/ScanFilter.js +14 -0
- package/build/module/src/sdk/tree/Folder.d.ts +12 -0
- package/build/module/src/sdk/tree/Folder.js +53 -0
- package/build/module/src/sdk/tree/Node.d.ts +17 -0
- package/build/module/src/sdk/tree/Node.js +22 -0
- package/build/module/src/sdk/tree/Tree.d.ts +18 -0
- package/build/module/src/sdk/tree/Tree.js +64 -0
- package/build/module/tsconfig.module.tsbuildinfo +126 -123
- package/package-lock.json +17117 -0
- package/package.json +1 -1
- package/src/cli/bin/cli-bin.ts +7 -4
- package/src/sdk/Dependencies/LocalDependency/parsers/rubyParser.ts +10 -9
- package/src/sdk/scanner/Dispatcher/Dispatcher.ts +5 -2
- package/src/sdk/scanner/Fingerprint.ts +6 -8
- package/src/sdk/scanner/Scanner.ts +4 -0
- package/src/sdk/scanner/ScannerCfg.ts +8 -2
- package/src/sdk/scanner/WfpProvider/WfpCalculator/WfpCalculator.ts +7 -2
- package/yarn.lock +4977 -4864
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEZpbHRlckZvclNjYW5uaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9maWx0ZXJzL0RlZmF1bHRGaWx0ZXJGb3JTY2FubmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc3QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxJQUFJLEVBQUUsU0FBUztJQUNmLElBQUksRUFBRSxjQUFjLENBQUMsTUFBTTtJQUMzQixPQUFPLEVBQUU7UUFDUCxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFFNUQsMkJBQTJCO1FBQzNCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFFbEQsZ0JBQWdCO1FBQ2hCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUV6RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDOUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFHO1FBQzdFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRztRQUM1RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUc7UUFDakYsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFHO1FBQzFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRztRQUM3RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUc7UUFDMUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFHO1FBQzVFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRztRQUM3RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRztRQUdwRixlQUFlO1FBRWYsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQzFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUM5RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdkUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQzNFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JGLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BGLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUM1RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDOUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQzdFLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUM5RSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFHM0UsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBR3JFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFHckUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ2xFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN2RSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdEUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdEUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN0RSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBRXJFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDbEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ2xFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDbEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ2xFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDbEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ2xFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNuRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ25FLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN0RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN2RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDN0UsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3hFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ25FLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUM1RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3hFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ25FLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN0RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDbkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDbkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDbkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNsRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN0RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN0RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNuRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUMzRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN2RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdkUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDekUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDckUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNyRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQzdFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDcEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3JFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDekUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3RFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtRQUN6RSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7UUFDdEUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1FBQ3BFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtLQUNyRTtDQUNGLENBQUMifQ==
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9maWx0ZXJzL2ZpbHRlcmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxLQUFLLEtBQUssTUFBTSxNQUFNLENBQUM7QUFDOUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWhELE1BQU0sQ0FBTixJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIsMkJBQWEsQ0FBQTtJQUNiLGlDQUFtQixDQUFBO0lBQ25CLHFDQUF1QixDQUFBO0lBQ3ZCLDJCQUFhLENBQUE7SUFDYiwyQkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQU5XLFVBQVUsS0FBVixVQUFVLFFBTXJCO0FBQUEsQ0FBQztBQUVGLE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDeEIsbUNBQWlCLENBQUE7SUFDakIseUNBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUhXLGNBQWMsS0FBZCxjQUFjLFFBR3pCO0FBQUEsQ0FBQztBQUVGLE1BQU0sY0FBYztJQVNsQixZQUFZLFNBQWlCLEVBQUUsS0FBYTtRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVcsU0FBUSxjQUFjO0lBQ3JDLFlBQVksU0FBaUIsRUFBRSxLQUFhLEVBQUUsS0FBYTtRQUN6RCxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElB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
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as DependenciesMessages from './scanoss/api/dependencies/v2/scanoss-dependencies_pb';
|
|
2
|
+
import * as CommonMessages from './scanoss/api/common/v2/scanoss-common_pb';
|
|
3
|
+
export declare class GrpcDependencyService {
|
|
4
|
+
private client;
|
|
5
|
+
private metadata;
|
|
6
|
+
constructor(endpoint: string, port: string, apiKey?: string);
|
|
7
|
+
get(req: DependenciesMessages.DependencyRequest): Promise<DependenciesMessages.DependencyResponse>;
|
|
8
|
+
buildDependencyRequestMsg(plainObj: DependenciesMessages.DependencyRequest.AsObject): DependenciesMessages.DependencyRequest;
|
|
9
|
+
echo(req: CommonMessages.EchoRequest): Promise<CommonMessages.EchoResponse>;
|
|
10
|
+
buildEchoRequestMsg(plainObj: CommonMessages.EchoRequest.AsObject): CommonMessages.EchoRequest;
|
|
11
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import * as grpc from '@grpc/grpc-js';
|
|
2
|
+
import { DependenciesClient } from './scanoss/api/dependencies/v2/scanoss-dependencies_grpc_pb';
|
|
3
|
+
import * as DependenciesMessages from './scanoss/api/dependencies/v2/scanoss-dependencies_pb';
|
|
4
|
+
import * as CommonMessages from './scanoss/api/common/v2/scanoss-common_pb';
|
|
5
|
+
export class GrpcDependencyService {
|
|
6
|
+
constructor(endpoint, port, apiKey = '') {
|
|
7
|
+
this.client = new DependenciesClient(endpoint + ':' + port, grpc.credentials.createSsl());
|
|
8
|
+
if (apiKey) {
|
|
9
|
+
this.metadata = new grpc.Metadata();
|
|
10
|
+
this.metadata.add('x-api-key', apiKey);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
async get(req) {
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
this.client.getDependencies(req, (err, response) => {
|
|
16
|
+
if (err)
|
|
17
|
+
reject(err);
|
|
18
|
+
resolve(response);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
buildDependencyRequestMsg(plainObj) {
|
|
23
|
+
try {
|
|
24
|
+
const depMessage = new DependenciesMessages.DependencyRequest();
|
|
25
|
+
for (const dependency of plainObj.filesList) {
|
|
26
|
+
const fileMsg = new DependenciesMessages.DependencyRequest.Files();
|
|
27
|
+
fileMsg.setFile(dependency.file);
|
|
28
|
+
for (const purl of dependency.purlsList) {
|
|
29
|
+
const purlMsg = new DependenciesMessages.DependencyRequest.Purls();
|
|
30
|
+
purlMsg.setPurl(purl.purl);
|
|
31
|
+
purlMsg.setRequirement(purl?.requirement);
|
|
32
|
+
fileMsg.addPurls(purlMsg);
|
|
33
|
+
}
|
|
34
|
+
depMessage.addFiles(fileMsg);
|
|
35
|
+
}
|
|
36
|
+
return depMessage;
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
console.error(e);
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async echo(req) {
|
|
44
|
+
return new Promise((resolve, reject) => {
|
|
45
|
+
this.client.echo(req, (err, response) => {
|
|
46
|
+
if (err)
|
|
47
|
+
reject(err);
|
|
48
|
+
resolve(response);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
buildEchoRequestMsg(plainObj) {
|
|
53
|
+
try {
|
|
54
|
+
const echoMessage = new CommonMessages.EchoRequest();
|
|
55
|
+
echoMessage.setMessage(plainObj.message);
|
|
56
|
+
return echoMessage;
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
console.error(e);
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JwY0RlcGVuZGVuY3lTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3Nkay9ncnBjL0dycGNEZXBlbmRlbmN5U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNoRyxPQUFPLEtBQUssb0JBQW9CLE1BQU0sdURBQXVELENBQUM7QUFDOUYsT0FBTyxLQUFLLGNBQWMsTUFBTSwyQ0FBMkMsQ0FBQTtBQUUzRSxNQUFNLE9BQU8scUJBQXFCO0lBTWhDLFlBQVksUUFBZ0IsRUFBRSxJQUFZLEVBQUUsTUFBTSxHQUFDLEVBQUU7UUFDbkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGtCQUFrQixDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxRixJQUFHLE1BQU0sRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBMkM7UUFDMUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pELElBQUksR0FBRztvQkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHlCQUF5QixDQUFDLFFBQXlEO1FBQ3hGLElBQUk7WUFDRixNQUFNLFVBQVUsR0FBRyxJQUFJLG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDaEUsS0FBSyxNQUFNLFVBQVUsSUFBSSxRQUFRLENBQUMsU0FBUyxFQUFFO2dCQUMzQyxNQUFNLE9BQU8sR0FBRyxJQUFJLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNuRSxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDakMsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFO29CQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNuRSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDM0IsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7b0JBQzFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQzNCO2dCQUNELFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDOUI7WUFDRCxPQUFPLFVBQVUsQ0FBQztTQUNuQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUdNLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBK0I7UUFDL0MsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ3RDLElBQUksR0FBRztvQkFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdNLG1CQUFtQixDQUFDLFFBQTZDO1FBQ3RFLElBQUk7WUFDRixNQUFNLFdBQVcsR0FBRyxJQUFJLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyRCxXQUFXLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QyxPQUFPLFdBQVcsQ0FBQztTQUNwQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQztDQUVGIn0=
|
|
File without changes
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// GENERATED CODE -- NO SERVICES IN PROTO
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm9zcy1jb21tb25fZ3JwY19wYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9zZGsvZ3JwYy9zY2Fub3NzL2FwaS9jb21tb24vdjIvc2Nhbm9zcy1jb21tb25fZ3JwY19wYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5Q0FBeUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|