From b9e714fc6f54e197907e7c663fa87cbf7c866c81 Mon Sep 17 00:00:00 2001 From: Roman Hotsiy Date: Sat, 22 Jul 2017 17:04:54 +0200 Subject: [PATCH] chore: aot fixes --- .gitignore | 1 + .travis.yml | 2 +- lib/bootstrap.dev.ts | 3 +- lib/bootstrap.ts | 4 +- lib/components/JsonSchema/json-schema.html | 12 +- lib/components/Redoc/redoc.ts | 2 +- lib/services/warnings.service.ts | 9 +- package.json | 7 +- tsconfig.aot.json | 2 +- tslint.json | 2 +- yarn.lock | 168 +++++++++++++++++++-- 11 files changed, 180 insertions(+), 32 deletions(-) diff --git a/.gitignore b/.gitignore index e4d93b7367..51a2fb0f96 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ compiled /coverage .ghpages-tmp stats.json +/package-lock.json diff --git a/.travis.yml b/.travis.yml index 0a7f2ca0ad..93032cf938 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ addons: cache: yarn before_install: if [[ `npm -v` != 3* ]]; then npm i -g npm@3; fi before_deploy: -- if [[ ! -z "$TRAVIS_TAG" ]]; then npm run build:prod; fi +- if [[ ! -z "$TRAVIS_TAG" ]]; then npm run build:all; fi deploy: - provider: npm skip_cleanup: true diff --git a/lib/bootstrap.dev.ts b/lib/bootstrap.dev.ts index 296618d767..0ae0cee2f9 100644 --- a/lib/bootstrap.dev.ts +++ b/lib/bootstrap.dev.ts @@ -1,6 +1,7 @@ +import { NgModuleRef } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app.module'; -export function bootstrapRedoc() { +export function bootstrapRedoc(): Promise> { return platformBrowserDynamic().bootstrapModule(AppModule); } diff --git a/lib/bootstrap.ts b/lib/bootstrap.ts index 86eddbd36c..080140d25d 100644 --- a/lib/bootstrap.ts +++ b/lib/bootstrap.ts @@ -1,6 +1,8 @@ +import { NgModuleRef } from '@angular/core'; import { platformBrowser } from '@angular/platform-browser'; +import { AppModule } from './app.module'; import { AppModuleNgFactory } from '../compiled/lib/app.module.ngfactory'; -export function bootstrapRedoc() { +export function bootstrapRedoc():Promise> { return platformBrowser().bootstrapModuleFactory(AppModuleNgFactory); } diff --git a/lib/components/JsonSchema/json-schema.html b/lib/components/JsonSchema/json-schema.html index b05f7afdc0..e32a857883 100644 --- a/lib/components/JsonSchema/json-schema.html +++ b/lib/components/JsonSchema/json-schema.html @@ -49,12 +49,12 @@ - +
diff --git a/lib/components/Redoc/redoc.ts b/lib/components/Redoc/redoc.ts index 395641e7b7..600a2a8583 100644 --- a/lib/components/Redoc/redoc.ts +++ b/lib/components/Redoc/redoc.ts @@ -45,7 +45,7 @@ function getPreOptions() { //changeDetection: ChangeDetectionStrategy.OnPush }) export class Redoc extends BaseComponent implements OnInit { - static _preOptions: any; + static _preOptions: any = {}; error: any; specLoaded: boolean; diff --git a/lib/services/warnings.service.ts b/lib/services/warnings.service.ts index b547f56467..265c2e3e89 100644 --- a/lib/services/warnings.service.ts +++ b/lib/services/warnings.service.ts @@ -4,12 +4,9 @@ import { BehaviorSubject } from 'rxjs/BehaviorSubject'; @Injectable() export class WarningsService { - private static _warnings: Array = []; - private static _warningsObs = new BehaviorSubject>([]); + public static warnings = new BehaviorSubject>([]); - static get warnings() { - return WarningsService._warningsObs; - } + private static _warnings: Array = []; static hasWarnings() { return !!WarningsService._warnings.length; @@ -17,7 +14,7 @@ export class WarningsService { static warn(message:string) { WarningsService._warnings.push(message); - WarningsService._warningsObs.next(WarningsService._warnings); + WarningsService.warnings.next(WarningsService._warnings); console.warn(message); } } diff --git a/package.json b/package.json index 7a3d838392..da7f9aab1b 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "start": "webpack-dev-server --config build/webpack.dev.js --content-base demo", "start:prod": "NODE_ENV=production npm start", "test": "npm run lint && node ./build/run_tests.js", - "lint": "tslint --type-check -e \"lib/**/*{ngfactory|css.shim}.ts\" lib/**/*.ts", + "lint": "tslint --type-check --project tsconfig.json -e \"lib/**/*{ngfactory|css.shim}.ts\" lib/**/*.ts", "unit": "karma start", "pree2e": "npm run build:prod && npm run e2e-copy", "e2e": "run-p -r protractor e2e-server", @@ -74,8 +74,8 @@ "conventional-changelog-cli": "^1.3.2", "css-loader": "^0.28.1", "deploy-to-gh-pages": "^1.3.3", - "http-server": "^0.10.0", "exports-loader": "^0.6.4", + "http-server": "^0.10.0", "istanbul-instrumenter-loader": "^2.0.0", "jasmine-core": "^2.6.4", "jasmine-spec-reporter": "^4.1.1", @@ -93,6 +93,7 @@ "karma-sourcemap-loader": "^0.3.7", "karma-webpack": "^2.0.4", "node-sass": "^4.5.3", + "npm-run-all": "^4.0.2", "phantomjs-prebuilt": "^2.1.14", "protractor": "^5.1.1", "raw-loader": "^0.5.1", @@ -125,8 +126,8 @@ "rxjs": "^5.3.1" }, "dependencies": { - "dropkickjs": "^2.1.10", "core-js": "^2.4.1", + "dropkickjs": "^2.1.10", "hint.css": "^2.3.2", "https-browserify": "^1.0.0", "json-pointer": "^0.6.0", diff --git a/tsconfig.aot.json b/tsconfig.aot.json index d228538481..988ce7e262 100644 --- a/tsconfig.aot.json +++ b/tsconfig.aot.json @@ -7,8 +7,8 @@ "experimentalDecorators": true, "allowSyntheticDefaultImports": true, "sourceMap": true, - "noEmit": true, "noEmitHelpers": true, + "outDir": "./dist", "strictNullChecks": false, "typeRoots": [ "./node_modules/@types" ], "declaration": true, diff --git a/tslint.json b/tslint.json index 215abcd7d9..4322d1b88d 100644 --- a/tslint.json +++ b/tslint.json @@ -19,7 +19,7 @@ "no-eval": true, "no-trailing-whitespace": true, "no-unused-expression": true, - "no-use-before-declare": true, + "no-use-before-declare": false, "one-line": [true, "check-open-brace", "check-catch", diff --git a/yarn.lock b/yarn.lock index 1b1f99edf8..bfe5fa14a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -290,6 +290,10 @@ array-differ@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" @@ -306,6 +310,14 @@ array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + array-slice@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" @@ -1383,6 +1395,14 @@ cross-spawn@^3.0.0: lru-cache "^4.0.1" which "^1.2.9" +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" @@ -1584,6 +1604,13 @@ deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + define-property@^0.2.5: version "0.2.5" resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" @@ -1734,6 +1761,10 @@ duplexer2@0.0.2: dependencies: readable-stream "~1.1.9" +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" @@ -1841,6 +1872,23 @@ error-ex@^1.2.0: dependencies: is-arrayish "^0.2.1" +es-abstract@^1.4.3: + version "1.7.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.0" + is-callable "^1.1.3" + is-regex "^1.0.3" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: version "0.10.24" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.24.tgz#a55877c9924bc0c8d9bd3c2cbe17495ac1709b14" @@ -1967,6 +2015,18 @@ event-emitter@~0.3.5: d "1" es5-ext "~0.10.14" +event-stream@~3.3.0: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + eventemitter3@1.x.x: version "1.2.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" @@ -2227,7 +2287,7 @@ for-own@^1.0.0: dependencies: for-in "^1.0.1" -foreach@^2.0.4: +foreach@^2.0.4, foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" @@ -2263,6 +2323,10 @@ fresh@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + fs-access@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" @@ -2305,7 +2369,7 @@ fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: mkdirp ">=0.5 0" rimraf "2" -function-bind@^1.0.2: +function-bind@^1.0.2, function-bind@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" @@ -2885,12 +2949,20 @@ is-builtin-module@^1.0.0: dependencies: builtin-modules "^1.0.0" +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" dependencies: kind-of "^3.0.2" +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + is-descriptor@^0.1.0: version "0.1.5" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.5.tgz#e3fb8b4ab65f3a37373388e18b401d78c58cbea7" @@ -3034,6 +3106,12 @@ is-property@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" +is-regex@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + is-ssh@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.0.tgz#ebea1169a2614da392a63740366c3ce049d8dff6" @@ -3054,6 +3132,10 @@ is-svg@^2.0.0: dependencies: html-comment-regex "^1.1.0" +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + is-text-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" @@ -3720,6 +3802,10 @@ map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + map-visit@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-0.1.5.tgz#dbe43927ce5525b80dfc1573a44d68c51f26816b" @@ -4074,6 +4160,18 @@ normalize-url@^1.4.0: query-string "^4.1.0" sort-keys "^1.0.0" +npm-run-all@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.0.2.tgz#a84669348e6db6ccbe052200b4cdb6bfe034a4fe" + dependencies: + chalk "^1.1.3" + cross-spawn "^5.0.1" + minimatch "^3.0.2" + ps-tree "^1.0.1" + read-pkg "^2.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -4123,6 +4221,10 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" +object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + object-visit@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-0.3.4.tgz#ae15cf86f0b2fdd551771636448452c54c3da829" @@ -4389,6 +4491,12 @@ path-type@^2.0.0: dependencies: pify "^2.0.0" +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + dependencies: + through "~2.3" + pbkdf2@^3.0.3: version "3.0.12" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.12.tgz#be36785c5067ea48d806ff923288c5f750b6b8a2" @@ -4772,6 +4880,12 @@ prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" +ps-tree@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" + dependencies: + event-stream "~3.3.0" + pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -5385,6 +5499,25 @@ shallow-clone@^0.1.2: lazy-cache "^0.2.3" mixin-object "^2.0.1" +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +shell-quote@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + shelljs@^0.7.0, shelljs@^0.7.7: version "0.7.8" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" @@ -5669,6 +5802,12 @@ split2@^2.0.0: dependencies: through2 "^2.0.2" +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + dependencies: + through "2" + split@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/split/-/split-1.0.0.tgz#c4395ce683abcd254bc28fe1dabb6e5c27dcffae" @@ -5721,6 +5860,12 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + dependencies: + duplexer "~0.1.1" + stream-http@^2.3.1, stream-http@^2.6.1: version "2.7.2" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" @@ -5754,6 +5899,14 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" +string.prototype.padend@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.4.3" + function-bind "^1.0.2" + string_decoder@^0.10.25, string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -5908,7 +6061,7 @@ through2@^2.0.2: readable-stream "^2.1.5" xtend "~4.0.1" -through@2, "through@>=2.2.7 <3", through@X.X.X: +through@2, "through@>=2.2.7 <3", through@X.X.X, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -6475,20 +6628,13 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -ws@1.1.2: +ws@1.1.2, ws@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" dependencies: options ">=0.0.5" ultron "1.0.x" -ws@^1.0.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.4.tgz#57f40d036832e5f5055662a397c4de76ed66bf61" - dependencies: - options ">=0.0.5" - ultron "1.0.x" - wtf-8@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a"