cg-code-graph 0.10.1__py3-none-any.whl
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.
- cg_code_graph-0.10.1.dist-info/METADATA +678 -0
- cg_code_graph-0.10.1.dist-info/RECORD +174 -0
- cg_code_graph-0.10.1.dist-info/WHEEL +5 -0
- cg_code_graph-0.10.1.dist-info/entry_points.txt +3 -0
- cg_code_graph-0.10.1.dist-info/licenses/LICENSE +21 -0
- cg_code_graph-0.10.1.dist-info/top_level.txt +1 -0
- codegraph/__init__.py +2 -0
- codegraph/aitools.py +129 -0
- codegraph/apps.py +76 -0
- codegraph/blindspots.py +428 -0
- codegraph/bridges.py +1701 -0
- codegraph/cli.py +725 -0
- codegraph/concepts.py +362 -0
- codegraph/config.py +559 -0
- codegraph/core/__init__.py +0 -0
- codegraph/core/cache.py +375 -0
- codegraph/core/detect.py +80 -0
- codegraph/core/extractors.py +187 -0
- codegraph/core/fsutil.py +61 -0
- codegraph/core/generated.py +575 -0
- codegraph/core/model.py +174 -0
- codegraph/core/paths.py +175 -0
- codegraph/core/plugin.py +160 -0
- codegraph/core/store.py +80 -0
- codegraph/core/syntax_errors.py +132 -0
- codegraph/coverage.py +928 -0
- codegraph/doctor.py +453 -0
- codegraph/external.py +613 -0
- codegraph/indexer.py +336 -0
- codegraph/link.py +434 -0
- codegraph/lint_async.py +524 -0
- codegraph/mcp_server.py +1303 -0
- codegraph/parity.py +473 -0
- codegraph/parity_structure.py +307 -0
- codegraph/payload.py +321 -0
- codegraph/plans.py +1285 -0
- codegraph/platform_scan.py +643 -0
- codegraph/platforms.py +1369 -0
- codegraph/plugins/__init__.py +0 -0
- codegraph/plugins/cfamily/__init__.py +0 -0
- codegraph/plugins/cfamily/plugin.py +930 -0
- codegraph/plugins/cfamily/syntax.py +881 -0
- codegraph/plugins/dart/__init__.py +0 -0
- codegraph/plugins/dart/bridges.py +345 -0
- codegraph/plugins/dart/extractor/bin/extract.dart +717 -0
- codegraph/plugins/dart/extractor/pubspec.lock +149 -0
- codegraph/plugins/dart/extractor/pubspec.yaml +7 -0
- codegraph/plugins/dart/http.py +904 -0
- codegraph/plugins/dart/models.py +308 -0
- codegraph/plugins/dart/plugin.py +625 -0
- codegraph/plugins/dart/program.py +907 -0
- codegraph/plugins/django/__init__.py +0 -0
- codegraph/plugins/django/extras.py +378 -0
- codegraph/plugins/django/models.py +508 -0
- codegraph/plugins/django/plugin.py +728 -0
- codegraph/plugins/django/schemas.py +339 -0
- codegraph/plugins/django/shapes.py +216 -0
- codegraph/plugins/django/urls.py +603 -0
- codegraph/plugins/express/__init__.py +0 -0
- codegraph/plugins/express/plugin.py +428 -0
- codegraph/plugins/flutter/__init__.py +0 -0
- codegraph/plugins/flutter/plugin.py +538 -0
- codegraph/plugins/kotlin/__init__.py +0 -0
- codegraph/plugins/kotlin/exact.py +457 -0
- codegraph/plugins/kotlin/plugin.py +1961 -0
- codegraph/plugins/kotlin/reparse.py +234 -0
- codegraph/plugins/laravel/__init__.py +0 -0
- codegraph/plugins/laravel/broadcast.py +351 -0
- codegraph/plugins/laravel/plugin.py +863 -0
- codegraph/plugins/laravel/tests.py +262 -0
- codegraph/plugins/laravel/values.py +728 -0
- codegraph/plugins/native/__init__.py +0 -0
- codegraph/plugins/native/gates.py +286 -0
- codegraph/plugins/native/runner.py +183 -0
- codegraph/plugins/native/scipread.py +194 -0
- codegraph/plugins/native/ts.py +54 -0
- codegraph/plugins/nest/__init__.py +0 -0
- codegraph/plugins/nest/plugin.py +654 -0
- codegraph/plugins/nextjs/__init__.py +0 -0
- codegraph/plugins/nextjs/plugin.py +336 -0
- codegraph/plugins/nuxt/__init__.py +0 -0
- codegraph/plugins/nuxt/plugin.py +308 -0
- codegraph/plugins/php/__init__.py +0 -0
- codegraph/plugins/php/extractor/composer.json +5 -0
- codegraph/plugins/php/extractor/composer.lock +76 -0
- codegraph/plugins/php/extractor/extract.php +743 -0
- codegraph/plugins/php/gating.py +573 -0
- codegraph/plugins/php/plugin.py +668 -0
- codegraph/plugins/php/strings.py +197 -0
- codegraph/plugins/python/__init__.py +0 -0
- codegraph/plugins/python/aitools.py +664 -0
- codegraph/plugins/python/external.py +245 -0
- codegraph/plugins/python/fields.py +107 -0
- codegraph/plugins/python/plugin.py +1733 -0
- codegraph/plugins/python/refs.py +485 -0
- codegraph/plugins/python/roots.py +412 -0
- codegraph/plugins/python/socketio.py +210 -0
- codegraph/plugins/python/subproc.py +864 -0
- codegraph/plugins/python/tests.py +1040 -0
- codegraph/plugins/python/values.py +179 -0
- codegraph/plugins/pyweb/__init__.py +0 -0
- codegraph/plugins/pyweb/plugin.py +1334 -0
- codegraph/plugins/pyweb/values.py +68 -0
- codegraph/plugins/rust/__init__.py +0 -0
- codegraph/plugins/rust/cargo.py +226 -0
- codegraph/plugins/rust/plugin.py +980 -0
- codegraph/plugins/rust/syntax.py +678 -0
- codegraph/plugins/scip/__init__.py +0 -0
- codegraph/plugins/scip/importer.py +129 -0
- codegraph/plugins/scip/scip.proto +962 -0
- codegraph/plugins/scip/scip_pb2.py +97 -0
- codegraph/plugins/stubs/__init__.py +0 -0
- codegraph/plugins/stubs/plugins.py +38 -0
- codegraph/plugins/swift/__init__.py +0 -0
- codegraph/plugins/swift/baseurl.py +109 -0
- codegraph/plugins/swift/exact.py +415 -0
- codegraph/plugins/swift/indexstore.py +209 -0
- codegraph/plugins/swift/packages.py +174 -0
- codegraph/plugins/swift/plugin.py +2890 -0
- codegraph/plugins/ts/__init__.py +0 -0
- codegraph/plugins/ts/baseurl.py +185 -0
- codegraph/plugins/ts/extractor/extract.mjs +2652 -0
- codegraph/plugins/ts/extractor/fw.mjs +685 -0
- codegraph/plugins/ts/extractor/package-lock.json +205 -0
- codegraph/plugins/ts/extractor/package.json +9 -0
- codegraph/plugins/ts/plugin.py +480 -0
- codegraph/plugins/tsweb/__init__.py +0 -0
- codegraph/plugins/tsweb/common.py +290 -0
- codegraph/plugins/tsweb/data.py +276 -0
- codegraph/presets/__init__.py +146 -0
- codegraph/presets/c_cpp.yaml +9 -0
- codegraph/presets/common.yaml +66 -0
- codegraph/presets/dart.yaml +9 -0
- codegraph/presets/django-ninja.yaml +15 -0
- codegraph/presets/django.yaml +25 -0
- codegraph/presets/djangorestframework.yaml +17 -0
- codegraph/presets/express.yaml +17 -0
- codegraph/presets/kotlin.yaml +11 -0
- codegraph/presets/laravel.yaml +40 -0
- codegraph/presets/nest.yaml +11 -0
- codegraph/presets/nextjs.yaml +15 -0
- codegraph/presets/nuxt.yaml +9 -0
- codegraph/presets/php.yaml +5 -0
- codegraph/presets/python.yaml +10 -0
- codegraph/presets/rust.yaml +5 -0
- codegraph/presets/swift.yaml +10 -0
- codegraph/presets/typescript.yaml +13 -0
- codegraph/process_runs.py +328 -0
- codegraph/protocols/__init__.py +299 -0
- codegraph/protocols/builtin.py +67 -0
- codegraph/protocols/matchers.py +144 -0
- codegraph/protocols/view.py +334 -0
- codegraph/query.py +2089 -0
- codegraph/realtime.py +260 -0
- codegraph/roundtrip.py +346 -0
- codegraph/routes.py +442 -0
- codegraph/starters.py +218 -0
- codegraph/tests_index.py +117 -0
- codegraph/viz/__init__.py +0 -0
- codegraph/viz/graph.py +369 -0
- codegraph/viz/server.py +198 -0
- codegraph/viz/static/app.css +148 -0
- codegraph/viz/static/app.js +1082 -0
- codegraph/viz/static/index.html +81 -0
- codegraph/viz/static/layered.js +237 -0
- codegraph/viz/static/vendor/VERSIONS.txt +4 -0
- codegraph/viz/static/vendor/cose-base.js +3214 -0
- codegraph/viz/static/vendor/cytoscape-fcose.js +1549 -0
- codegraph/viz/static/vendor/cytoscape.min.js +31 -0
- codegraph/viz/static/vendor/layout-base.js +5230 -0
- codegraph/viz/tools/package-lock.json +303 -0
- codegraph/viz/tools/package.json +7 -0
- codegraph/viz/tools/shoot.mjs +165 -0
- codegraph/xcode.py +251 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "codegraph-ts-extractor",
|
|
3
|
+
"lockfileVersion": 3,
|
|
4
|
+
"requires": true,
|
|
5
|
+
"packages": {
|
|
6
|
+
"": {
|
|
7
|
+
"name": "codegraph-ts-extractor",
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"@vue/compiler-sfc": "3.5.31",
|
|
10
|
+
"typescript": "6.0.2"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"node_modules/@babel/helper-string-parser": {
|
|
14
|
+
"version": "7.29.7",
|
|
15
|
+
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz",
|
|
16
|
+
"integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==",
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=6.9.0"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"node_modules/@babel/helper-validator-identifier": {
|
|
22
|
+
"version": "7.29.7",
|
|
23
|
+
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
|
|
24
|
+
"integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=6.9.0"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"node_modules/@babel/parser": {
|
|
30
|
+
"version": "7.29.9",
|
|
31
|
+
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz",
|
|
32
|
+
"integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==",
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@babel/types": "^7.29.8"
|
|
35
|
+
},
|
|
36
|
+
"bin": {
|
|
37
|
+
"parser": "bin/babel-parser.js"
|
|
38
|
+
},
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=6.0.0"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"node_modules/@babel/types": {
|
|
44
|
+
"version": "7.29.8",
|
|
45
|
+
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz",
|
|
46
|
+
"integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==",
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"@babel/helper-string-parser": "^7.29.7",
|
|
49
|
+
"@babel/helper-validator-identifier": "^7.29.7"
|
|
50
|
+
},
|
|
51
|
+
"engines": {
|
|
52
|
+
"node": ">=6.9.0"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"node_modules/@jridgewell/sourcemap-codec": {
|
|
56
|
+
"version": "1.6.0",
|
|
57
|
+
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz",
|
|
58
|
+
"integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw=="
|
|
59
|
+
},
|
|
60
|
+
"node_modules/@vue/compiler-core": {
|
|
61
|
+
"version": "3.5.31",
|
|
62
|
+
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.31.tgz",
|
|
63
|
+
"integrity": "sha512-k/ueL14aNIEy5Onf0OVzR8kiqF/WThgLdFhxwa4e/KF/0qe38IwIdofoSWBTvvxQOesaz6riAFAUaYjoF9fLLQ==",
|
|
64
|
+
"dependencies": {
|
|
65
|
+
"@babel/parser": "^7.29.2",
|
|
66
|
+
"@vue/shared": "3.5.31",
|
|
67
|
+
"entities": "^7.0.1",
|
|
68
|
+
"estree-walker": "^2.0.2",
|
|
69
|
+
"source-map-js": "^1.2.1"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"node_modules/@vue/compiler-dom": {
|
|
73
|
+
"version": "3.5.31",
|
|
74
|
+
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.31.tgz",
|
|
75
|
+
"integrity": "sha512-BMY/ozS/xxjYqRFL+tKdRpATJYDTTgWSo0+AJvJNg4ig+Hgb0dOsHPXvloHQ5hmlivUqw1Yt2pPIqp4e0v1GUw==",
|
|
76
|
+
"dependencies": {
|
|
77
|
+
"@vue/compiler-core": "3.5.31",
|
|
78
|
+
"@vue/shared": "3.5.31"
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"node_modules/@vue/compiler-sfc": {
|
|
82
|
+
"version": "3.5.31",
|
|
83
|
+
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.31.tgz",
|
|
84
|
+
"integrity": "sha512-M8wpPgR9UJ8MiRGjppvx9uWJfLV7A/T+/rL8s/y3QG3u0c2/YZgff3d6SuimKRIhcYnWg5fTfDMlz2E6seUW8Q==",
|
|
85
|
+
"dependencies": {
|
|
86
|
+
"@babel/parser": "^7.29.2",
|
|
87
|
+
"@vue/compiler-core": "3.5.31",
|
|
88
|
+
"@vue/compiler-dom": "3.5.31",
|
|
89
|
+
"@vue/compiler-ssr": "3.5.31",
|
|
90
|
+
"@vue/shared": "3.5.31",
|
|
91
|
+
"estree-walker": "^2.0.2",
|
|
92
|
+
"magic-string": "^0.30.21",
|
|
93
|
+
"postcss": "^8.5.8",
|
|
94
|
+
"source-map-js": "^1.2.1"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"node_modules/@vue/compiler-ssr": {
|
|
98
|
+
"version": "3.5.31",
|
|
99
|
+
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.31.tgz",
|
|
100
|
+
"integrity": "sha512-h0xIMxrt/LHOvJKMri+vdYT92BrK3HFLtDqq9Pr/lVVfE4IyKZKvWf0vJFW10Yr6nX02OR4MkJwI0c1HDa1hog==",
|
|
101
|
+
"dependencies": {
|
|
102
|
+
"@vue/compiler-dom": "3.5.31",
|
|
103
|
+
"@vue/shared": "3.5.31"
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"node_modules/@vue/shared": {
|
|
107
|
+
"version": "3.5.31",
|
|
108
|
+
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.31.tgz",
|
|
109
|
+
"integrity": "sha512-nBxuiuS9Lj5bPkPbWogPUnjxxWpkRniX7e5UBQDWl6Fsf4roq9wwV+cR7ezQ4zXswNvPIlsdj1slcLB7XCsRAw=="
|
|
110
|
+
},
|
|
111
|
+
"node_modules/entities": {
|
|
112
|
+
"version": "7.0.1",
|
|
113
|
+
"resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz",
|
|
114
|
+
"integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
|
|
115
|
+
"engines": {
|
|
116
|
+
"node": ">=0.12"
|
|
117
|
+
},
|
|
118
|
+
"funding": {
|
|
119
|
+
"url": "https://github.com/fb55/entities?sponsor=1"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"node_modules/estree-walker": {
|
|
123
|
+
"version": "2.0.2",
|
|
124
|
+
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
|
|
125
|
+
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
|
|
126
|
+
},
|
|
127
|
+
"node_modules/magic-string": {
|
|
128
|
+
"version": "0.30.21",
|
|
129
|
+
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
|
|
130
|
+
"integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
|
|
131
|
+
"dependencies": {
|
|
132
|
+
"@jridgewell/sourcemap-codec": "^1.5.5"
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"node_modules/nanoid": {
|
|
136
|
+
"version": "3.3.19",
|
|
137
|
+
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz",
|
|
138
|
+
"integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==",
|
|
139
|
+
"funding": [
|
|
140
|
+
{
|
|
141
|
+
"type": "github",
|
|
142
|
+
"url": "https://github.com/sponsors/ai"
|
|
143
|
+
}
|
|
144
|
+
],
|
|
145
|
+
"bin": {
|
|
146
|
+
"nanoid": "bin/nanoid.cjs"
|
|
147
|
+
},
|
|
148
|
+
"engines": {
|
|
149
|
+
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"node_modules/picocolors": {
|
|
153
|
+
"version": "1.1.1",
|
|
154
|
+
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
|
155
|
+
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
|
|
156
|
+
},
|
|
157
|
+
"node_modules/postcss": {
|
|
158
|
+
"version": "8.5.28",
|
|
159
|
+
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz",
|
|
160
|
+
"integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==",
|
|
161
|
+
"funding": [
|
|
162
|
+
{
|
|
163
|
+
"type": "opencollective",
|
|
164
|
+
"url": "https://opencollective.com/postcss/"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"type": "tidelift",
|
|
168
|
+
"url": "https://tidelift.com/funding/github/npm/postcss"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"type": "github",
|
|
172
|
+
"url": "https://github.com/sponsors/ai"
|
|
173
|
+
}
|
|
174
|
+
],
|
|
175
|
+
"dependencies": {
|
|
176
|
+
"nanoid": "^3.3.18",
|
|
177
|
+
"picocolors": "^1.1.1",
|
|
178
|
+
"source-map-js": "^1.2.1"
|
|
179
|
+
},
|
|
180
|
+
"engines": {
|
|
181
|
+
"node": "^10 || ^12 || >=14"
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
"node_modules/source-map-js": {
|
|
185
|
+
"version": "1.2.2",
|
|
186
|
+
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz",
|
|
187
|
+
"integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==",
|
|
188
|
+
"engines": {
|
|
189
|
+
"node": ">=0.10.0"
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
"node_modules/typescript": {
|
|
193
|
+
"version": "6.0.2",
|
|
194
|
+
"resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz",
|
|
195
|
+
"integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==",
|
|
196
|
+
"bin": {
|
|
197
|
+
"tsc": "bin/tsc",
|
|
198
|
+
"tsserver": "bin/tsserver"
|
|
199
|
+
},
|
|
200
|
+
"engines": {
|
|
201
|
+
"node": ">=14.17"
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|