--------------------------------------------------------------------------------------------------------------- INITIALIZING VIDBOT, v1.7.1... --------------------------------------------------------------------------------------------------------------- [23:56:46.927] Vidbot :: start() [23:56:46.927] Vidbot :: _next(), _stepIndex:0 of 4 [23:56:46.928] index :: _onStepStarted_vidbot(), step: 1 [23:56:46.929] Vidbot :: step[0], label:Initializing Core [23:56:46.938] index :: _onStepProgress_vidbot(), percent: 20 [23:56:46.939] Vidbot :: _parse() [23:56:46.940] index :: _onStepProgress_vidbot(), percent: 40 [23:56:46.941] Vidbot :: _validate() [23:56:46.941] index :: _onStepProgress_vidbot(), percent: 60 [23:56:46.942] Vidbot :: _fonts() [23:56:46.942] FabricFontManager :: add(), id: SourceSansPro-Bold [23:56:46.942] src: /var/app/Vidbot-V2/assets/fonts/SourceSansPro/SourceSansPro-Bold.ttf [23:56:46.951] FabricFontManager :: add(), id: SourceSansPro-Light [23:56:46.951] src: /var/app/Vidbot-V2/assets/fonts/SourceSansPro/SourceSansPro-Light.ttf [23:56:46.952] FabricFontManager :: add(), id: DINOT-Bold [23:56:46.952] src: /var/app/Vidbot-V2/assets/fonts/DINOT/DINOT-Bold.otf [23:56:46.953] FabricFontManager :: add(), id: DINOT-Light [23:56:46.953] src: /var/app/Vidbot-V2/assets/fonts/DINOT/DINOT-Light.otf [23:56:46.954] FabricFontManager :: add(), id: TradeGothicLTStd-Regular [23:56:46.954] src: /var/app/Vidbot-V2/assets/fonts/TradeGothicCond/TradeGothicLTStd-Regular.otf [23:56:46.954] FabricFontManager :: add(), id: TradeGothicLTStd-Bold [23:56:46.955] src: /var/app/Vidbot-V2/assets/fonts/TradeGothicCond/TradeGothicLTStd-Bold.otf [23:56:46.956] index :: _onStepProgress_vidbot(), percent: 80 [23:56:46.956] Vidbot :: _clips() [23:56:46.956] StreamManager :: add(), id:audio_vo, type:audio [23:56:46.957] AudioClip[audio_vo] :: constructor() [23:56:46.957] InputStream[audio_vo] :: constructor() [23:56:46.957] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'audio_vo', clipId: null } [23:56:46.960] StreamManager :: add(), id:bg_music, type:audio [23:56:46.960] AudioClip[bg_music] :: constructor() [23:56:46.960] InputStream[bg_music] :: constructor() [23:56:46.961] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'bg_music', clipId: null } [23:56:46.961] StreamManager :: add(), id:intro, type:video [23:56:46.961] VideoStream[intro] :: constructor() [23:56:46.961] InputStream[intro] :: constructor() [23:56:46.961] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'intro', clipId: null } [23:56:46.961] StreamManager :: add(), id:bg, type:canvas [23:56:46.962] CanvasStream[canvas_498845417965] :: constructor() [23:56:46.962] InputStream[canvas_498845417965] :: constructor() [23:56:47.049] KenBurnsSlideshow[bg] :: constructor() [23:56:47.049] Overlay[bg] :: constructor() [23:56:47.049] CanvasClip[bg] :: constructor() [23:56:47.049] Clip[bg] :: constructor() [23:56:47.049] clip:"bg" added to stream:"canvas_498845417965" [23:56:47.049] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'canvas_498845417965', clipId: 'bg' } [23:56:47.049] StreamManager :: add(), id:facet, type:canvas [23:56:47.050] FacetSlideshow[facet] :: constructor() [23:56:47.050] Overlay[facet] :: constructor() [23:56:47.050] CanvasClip[facet] :: constructor() [23:56:47.050] Clip[facet] :: constructor() [23:56:47.050] clip:"facet" added to stream:"canvas_498845417965" [23:56:47.050] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'canvas_498845417965', clipId: 'facet' } [23:56:47.050] StreamManager :: add(), id:map, type:canvas [23:56:47.050] RenMap[map] :: constructor() [23:56:47.050] Ren[map] :: constructor() [23:56:47.050] Overlay[map] :: constructor() [23:56:47.050] CanvasClip[map] :: constructor() [23:56:47.051] Clip[map] :: constructor() [23:56:47.051] clip:"map" added to stream:"canvas_498845417965" [23:56:47.051] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'canvas_498845417965', clipId: 'map' } [23:56:47.051] StreamManager :: add(), id:outro, type:video [23:56:47.051] VideoStream[outro] :: constructor() [23:56:47.051] InputStream[outro] :: constructor() [23:56:47.051] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'outro', clipId: null } [23:56:47.051] all added... [23:56:47.051] Vidbot :: _next(), _stepIndex:1 of 4 [23:56:47.051] index :: _onStepCompleted_vidbot(), step: 1 [23:56:47.052] index :: _onStepStarted_vidbot(), step: 2 [23:56:47.052] Vidbot :: step[1], label:Initializing Input Streams [23:56:47.052] StreamManager :: init() [23:56:47.053] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'audio_vo', progress: 0.2 } [23:56:47.053] index :: _onStepProgress_vidbot(), percent: 20 [23:56:47.053] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'bg_music', progress: 0.4 } [23:56:47.053] index :: _onStepProgress_vidbot(), percent: 40 [23:56:47.053] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'intro', progress: 0.6 } [23:56:47.053] index :: _onStepProgress_vidbot(), percent: 60 [23:56:47.054] CanvasStream[canvas_498845417965] :: _init(), BEGIN [23:56:47.054] i:0, c.id:bg [23:56:47.054] KenBurnsSlideshow[bg] :: _init(), BEGIN [23:56:47.054] KenBurnsSlideshow[bg] :: _validate() [23:56:47.055] KenBurnsSlideshow[undefined] :: _validateAnim() [23:56:47.055] KenBurnsSlideshow[undefined] :: _validateTheme() [23:56:47.056] i:1, c.id:facet [23:56:47.056] FacetSlideshow[facet] :: _init(), BEGIN [23:56:47.057] FacetSlideshow[facet] :: _validate() [23:56:47.058] i:2, c.id:map [23:56:47.058] RenMap[map] :: _init() [23:56:47.058] RenMap[map] :: _validate() [23:56:47.059] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'outro', progress: 0.8 } [23:56:47.059] index :: _onStepProgress_vidbot(), percent: 80 [23:56:47.060] KenBurnsSlideshow[bg] :: _build() [23:56:47.066] AnimatedImageFrame[aif] :: constructor() [23:56:47.067] AnimatedImageFrame[aif] :: _init(), BEGIN [23:56:47.067] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_1.jpg [23:56:47.080] FacetSlideshow[facet] :: _build(), BEGIN [23:56:47.081] FacetSlideshow :: _generateSlideShapes() [23:56:47.083] AnimatedImageFrame[aif] :: constructor() [23:56:47.084] AnimatedImageFrame[aif] :: _init(), BEGIN [23:56:47.084] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_3.jpg [23:56:47.086] RenMap[map] :: _assets() [23:56:47.087] CanvasClip :: LoadSVGFromStringWithPromise() [23:56:47.111] CanvasClip :: LoadSVGFromString(), loaded [23:56:47.112] CanvasClip :: LoadImageWithPromise(), src: map_540.jpg [23:56:47.145] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.194] AnimatedImageFrame[aif] :: _init(), END [23:56:47.197] Overlay[bg] :: _animate() [23:56:47.198] KenBurnsSlideshow[bg] :: _init(), END [23:56:47.198] CanvasStream[bg] :: _init(), p.then() [23:56:47.221] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.223] AnimatedImageFrame[aif] :: _init(), END [23:56:47.223] InfoBlocks[info] :: constructor() [23:56:47.224] InfoBlocks[info] :: _validate() [23:56:47.224] InfoBlocks[info] :: init() [23:56:47.224] InfoBlocks[info] :: _build() [23:56:47.225] KeyValuePair[0] :: constructor() [23:56:47.225] KeyValuePair[0] :: _validate() [23:56:47.226] KeyValuePair[0] :: _build() [23:56:47.243] KeyValuePair[1] :: constructor() [23:56:47.243] KeyValuePair[1] :: _validate() [23:56:47.243] KeyValuePair[1] :: _build() [23:56:47.255] FacetSlideshow :: _generateSlideShapes() [23:56:47.258] AnimatedImageFrame[aR] :: constructor() [23:56:47.259] AnimatedImageFrame[aR] :: _init(), BEGIN [23:56:47.259] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_1.jpg [23:56:47.274] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.275] RenMap[map] :: _build() [23:56:47.294] Overlay[map] :: _animate() [23:56:47.294] CanvasStream[map] :: _init(), p.then() [23:56:47.319] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.320] AnimatedImageFrame[aR] :: _init(), END [23:56:47.320] AnimatedImageFrame[aLTop] :: constructor() [23:56:47.320] AnimatedImageFrame[aLTop] :: _init(), BEGIN [23:56:47.320] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_2.jpg [23:56:47.351] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.352] AnimatedImageFrame[aLTop] :: _init(), END [23:56:47.352] AnimatedImageFrame[aLBot] :: constructor() [23:56:47.352] AnimatedImageFrame[aLBot] :: _init(), BEGIN [23:56:47.352] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_3.jpg [23:56:47.377] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.378] AnimatedImageFrame[aLBot] :: _init(), END [23:56:47.380] FacetSlideshow :: _generateSlideShapes() [23:56:47.381] AnimatedImageFrame[aR] :: constructor() [23:56:47.382] AnimatedImageFrame[aR] :: _init(), BEGIN [23:56:47.382] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_4.jpg [23:56:47.406] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.407] AnimatedImageFrame[aR] :: _init(), END [23:56:47.408] AnimatedImageFrame[aLTop] :: constructor() [23:56:47.408] AnimatedImageFrame[aLTop] :: _init(), BEGIN [23:56:47.408] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_5.jpg [23:56:47.433] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.434] AnimatedImageFrame[aLTop] :: _init(), END [23:56:47.434] AnimatedImageFrame[aLBot] :: constructor() [23:56:47.434] AnimatedImageFrame[aLBot] :: _init(), BEGIN [23:56:47.434] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_6.jpg [23:56:47.458] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.459] AnimatedImageFrame[aLBot] :: _init(), END [23:56:47.460] FacetSlideshow :: _generateSlideShapes() [23:56:47.462] AnimatedImageFrame[aL] :: constructor() [23:56:47.462] AnimatedImageFrame[aL] :: _init(), BEGIN [23:56:47.463] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_7.jpg [23:56:47.489] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.490] AnimatedImageFrame[aL] :: _init(), END [23:56:47.490] AnimatedImageFrame[aRTop] :: constructor() [23:56:47.491] AnimatedImageFrame[aRTop] :: _init(), BEGIN [23:56:47.491] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_8.jpg [23:56:47.520] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.521] AnimatedImageFrame[aRTop] :: _init(), END [23:56:47.521] AnimatedImageFrame[aRBot] :: constructor() [23:56:47.521] AnimatedImageFrame[aRBot] :: _init(), BEGIN [23:56:47.521] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_9.jpg [23:56:47.547] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.548] AnimatedImageFrame[aRBot] :: _init(), END [23:56:47.549] FacetSlideshow :: _generateSlideShapes() [23:56:47.550] AnimatedImageFrame[aL] :: constructor() [23:56:47.550] AnimatedImageFrame[aL] :: _init(), BEGIN [23:56:47.551] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_10.jpg [23:56:47.577] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.578] AnimatedImageFrame[aL] :: _init(), END [23:56:47.578] AnimatedImageFrame[aRTop] :: constructor() [23:56:47.578] AnimatedImageFrame[aRTop] :: _init(), BEGIN [23:56:47.578] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_11.jpg [23:56:47.604] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.605] AnimatedImageFrame[aRTop] :: _init(), END [23:56:47.605] AnimatedImageFrame[aRBot] :: constructor() [23:56:47.606] AnimatedImageFrame[aRBot] :: _init(), BEGIN [23:56:47.606] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_12.jpg [23:56:47.628] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.629] AnimatedImageFrame[aRBot] :: _init(), END [23:56:47.630] FacetSlideshow :: _generateSlideShapes() [23:56:47.632] AnimatedImageFrame[aR] :: constructor() [23:56:47.632] AnimatedImageFrame[aR] :: _init(), BEGIN [23:56:47.632] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_13.jpg [23:56:47.657] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.658] AnimatedImageFrame[aR] :: _init(), END [23:56:47.658] AnimatedImageFrame[aLTop] :: constructor() [23:56:47.658] AnimatedImageFrame[aLTop] :: _init(), BEGIN [23:56:47.658] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_14.jpg [23:56:47.678] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.679] AnimatedImageFrame[aLTop] :: _init(), END [23:56:47.679] AnimatedImageFrame[aLBot] :: constructor() [23:56:47.679] AnimatedImageFrame[aLBot] :: _init(), BEGIN [23:56:47.679] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_15.jpg [23:56:47.706] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.707] AnimatedImageFrame[aLBot] :: _init(), END [23:56:47.707] FacetSlideshow :: _generateSlideShapes() [23:56:47.709] AnimatedImageFrame[aR] :: constructor() [23:56:47.709] AnimatedImageFrame[aR] :: _init(), BEGIN [23:56:47.709] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_16.jpg [23:56:47.734] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.735] AnimatedImageFrame[aR] :: _init(), END [23:56:47.735] AnimatedImageFrame[aLTop] :: constructor() [23:56:47.735] AnimatedImageFrame[aLTop] :: _init(), BEGIN [23:56:47.736] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_17.jpg [23:56:47.763] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.764] AnimatedImageFrame[aLTop] :: _init(), END [23:56:47.764] AnimatedImageFrame[aLBot] :: constructor() [23:56:47.764] AnimatedImageFrame[aLBot] :: _init(), BEGIN [23:56:47.764] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_18.jpg [23:56:47.794] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.795] AnimatedImageFrame[aLBot] :: _init(), END [23:56:47.796] FacetSlideshow :: _generateSlideShapes() [23:56:47.799] AnimatedImageFrame[aL] :: constructor() [23:56:47.799] AnimatedImageFrame[aL] :: _init(), BEGIN [23:56:47.800] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_19.jpg [23:56:47.841] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.843] AnimatedImageFrame[aL] :: _init(), END [23:56:47.843] AnimatedImageFrame[aRTop] :: constructor() [23:56:47.843] AnimatedImageFrame[aRTop] :: _init(), BEGIN [23:56:47.843] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_20.jpg [23:56:47.870] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.871] AnimatedImageFrame[aRTop] :: _init(), END [23:56:47.871] AnimatedImageFrame[aRBot] :: constructor() [23:56:47.871] AnimatedImageFrame[aRBot] :: _init(), BEGIN [23:56:47.872] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_21.jpg [23:56:47.906] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.907] AnimatedImageFrame[aRBot] :: _init(), END [23:56:47.908] FacetSlideshow :: _generateSlideShapes() [23:56:47.910] AnimatedImageFrame[aL] :: constructor() [23:56:47.910] AnimatedImageFrame[aL] :: _init(), BEGIN [23:56:47.910] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_1.jpg [23:56:47.934] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.935] AnimatedImageFrame[aL] :: _init(), END [23:56:47.935] AnimatedImageFrame[aRTop] :: constructor() [23:56:47.935] AnimatedImageFrame[aRTop] :: _init(), BEGIN [23:56:47.935] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_2.jpg [23:56:47.962] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.963] AnimatedImageFrame[aRTop] :: _init(), END [23:56:47.963] AnimatedImageFrame[aRBot] :: constructor() [23:56:47.964] AnimatedImageFrame[aRBot] :: _init(), BEGIN [23:56:47.964] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_3.jpg [23:56:47.986] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:47.987] AnimatedImageFrame[aRBot] :: _init(), END [23:56:47.988] FacetSlideshow :: _generateSlideShapes() [23:56:47.989] AnimatedImageFrame[aR] :: constructor() [23:56:47.989] AnimatedImageFrame[aR] :: _init(), BEGIN [23:56:47.989] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_4.jpg [23:56:48.011] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.012] AnimatedImageFrame[aR] :: _init(), END [23:56:48.012] AnimatedImageFrame[aLTop] :: constructor() [23:56:48.012] AnimatedImageFrame[aLTop] :: _init(), BEGIN [23:56:48.012] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_5.jpg [23:56:48.036] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.037] AnimatedImageFrame[aLTop] :: _init(), END [23:56:48.037] AnimatedImageFrame[aLBot] :: constructor() [23:56:48.037] AnimatedImageFrame[aLBot] :: _init(), BEGIN [23:56:48.037] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_6.jpg [23:56:48.060] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.061] AnimatedImageFrame[aLBot] :: _init(), END [23:56:48.062] FacetSlideshow :: _generateSlideShapes() [23:56:48.063] AnimatedImageFrame[aR] :: constructor() [23:56:48.063] AnimatedImageFrame[aR] :: _init(), BEGIN [23:56:48.063] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_7.jpg [23:56:48.088] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.089] AnimatedImageFrame[aR] :: _init(), END [23:56:48.089] AnimatedImageFrame[aLTop] :: constructor() [23:56:48.089] AnimatedImageFrame[aLTop] :: _init(), BEGIN [23:56:48.089] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_8.jpg [23:56:48.116] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.117] AnimatedImageFrame[aLTop] :: _init(), END [23:56:48.117] AnimatedImageFrame[aLBot] :: constructor() [23:56:48.117] AnimatedImageFrame[aLBot] :: _init(), BEGIN [23:56:48.118] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_9.jpg [23:56:48.140] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.141] AnimatedImageFrame[aLBot] :: _init(), END [23:56:48.142] FacetSlideshow :: _generateSlideShapes() [23:56:48.143] AnimatedImageFrame[aL] :: constructor() [23:56:48.143] AnimatedImageFrame[aL] :: _init(), BEGIN [23:56:48.143] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_10.jpg [23:56:48.174] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.174] AnimatedImageFrame[aL] :: _init(), END [23:56:48.174] AnimatedImageFrame[aRTop] :: constructor() [23:56:48.175] AnimatedImageFrame[aRTop] :: _init(), BEGIN [23:56:48.175] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_11.jpg [23:56:48.205] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.205] AnimatedImageFrame[aRTop] :: _init(), END [23:56:48.206] AnimatedImageFrame[aRBot] :: constructor() [23:56:48.206] AnimatedImageFrame[aRBot] :: _init(), BEGIN [23:56:48.206] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_12.jpg [23:56:48.226] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.227] AnimatedImageFrame[aRBot] :: _init(), END [23:56:48.227] FacetSlideshow :: _generateSlideShapes() [23:56:48.228] AnimatedImageFrame[aL] :: constructor() [23:56:48.229] AnimatedImageFrame[aL] :: _init(), BEGIN [23:56:48.229] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_13.jpg [23:56:48.248] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.249] AnimatedImageFrame[aL] :: _init(), END [23:56:48.249] AnimatedImageFrame[aRTop] :: constructor() [23:56:48.249] AnimatedImageFrame[aRTop] :: _init(), BEGIN [23:56:48.249] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_14.jpg [23:56:48.269] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.270] AnimatedImageFrame[aRTop] :: _init(), END [23:56:48.270] AnimatedImageFrame[aRBot] :: constructor() [23:56:48.270] AnimatedImageFrame[aRBot] :: _init(), BEGIN [23:56:48.270] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_15.jpg [23:56:48.295] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.296] AnimatedImageFrame[aRBot] :: _init(), END [23:56:48.297] FacetSlideshow :: _generateSlideShapes() [23:56:48.298] AnimatedImageFrame[aR] :: constructor() [23:56:48.298] AnimatedImageFrame[aR] :: _init(), BEGIN [23:56:48.298] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_16.jpg [23:56:48.330] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.331] AnimatedImageFrame[aR] :: _init(), END [23:56:48.331] AnimatedImageFrame[aLTop] :: constructor() [23:56:48.331] AnimatedImageFrame[aLTop] :: _init(), BEGIN [23:56:48.331] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_17.jpg [23:56:48.367] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.369] AnimatedImageFrame[aLTop] :: _init(), END [23:56:48.369] AnimatedImageFrame[aLBot] :: constructor() [23:56:48.369] AnimatedImageFrame[aLBot] :: _init(), BEGIN [23:56:48.369] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_18.jpg [23:56:48.397] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.398] AnimatedImageFrame[aLBot] :: _init(), END [23:56:48.399] FacetSlideshow :: _generateSlideShapes() [23:56:48.401] AnimatedImageFrame[aR] :: constructor() [23:56:48.401] AnimatedImageFrame[aR] :: _init(), BEGIN [23:56:48.401] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_19.jpg [23:56:48.429] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.430] AnimatedImageFrame[aR] :: _init(), END [23:56:48.430] AnimatedImageFrame[aLTop] :: constructor() [23:56:48.430] AnimatedImageFrame[aLTop] :: _init(), BEGIN [23:56:48.430] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_20.jpg [23:56:48.457] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.458] AnimatedImageFrame[aLTop] :: _init(), END [23:56:48.458] AnimatedImageFrame[aLBot] :: constructor() [23:56:48.459] AnimatedImageFrame[aLBot] :: _init(), BEGIN [23:56:48.459] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_21.jpg [23:56:48.496] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.497] AnimatedImageFrame[aLBot] :: _init(), END [23:56:48.498] FacetSlideshow :: _generateSlideShapes() [23:56:48.500] AnimatedImageFrame[aL] :: constructor() [23:56:48.500] AnimatedImageFrame[aL] :: _init(), BEGIN [23:56:48.500] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_1.jpg [23:56:48.528] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.529] AnimatedImageFrame[aL] :: _init(), END [23:56:48.529] AnimatedImageFrame[aRTop] :: constructor() [23:56:48.529] AnimatedImageFrame[aRTop] :: _init(), BEGIN [23:56:48.529] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_2.jpg [23:56:48.560] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.561] AnimatedImageFrame[aRTop] :: _init(), END [23:56:48.561] AnimatedImageFrame[aRBot] :: constructor() [23:56:48.562] AnimatedImageFrame[aRBot] :: _init(), BEGIN [23:56:48.562] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_3.jpg [23:56:48.589] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.590] AnimatedImageFrame[aRBot] :: _init(), END [23:56:48.591] FacetSlideshow :: _generateSlideShapes() [23:56:48.592] AnimatedImageFrame[aL] :: constructor() [23:56:48.593] AnimatedImageFrame[aL] :: _init(), BEGIN [23:56:48.593] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_4.jpg [23:56:48.618] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.619] AnimatedImageFrame[aL] :: _init(), END [23:56:48.619] AnimatedImageFrame[aRTop] :: constructor() [23:56:48.619] AnimatedImageFrame[aRTop] :: _init(), BEGIN [23:56:48.620] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_5.jpg [23:56:48.645] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.646] AnimatedImageFrame[aRTop] :: _init(), END [23:56:48.646] AnimatedImageFrame[aRBot] :: constructor() [23:56:48.646] AnimatedImageFrame[aRBot] :: _init(), BEGIN [23:56:48.646] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_6.jpg [23:56:48.671] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.672] AnimatedImageFrame[aRBot] :: _init(), END [23:56:48.673] FacetSlideshow :: _generateSlideShapes() [23:56:48.674] AnimatedImageFrame[aR] :: constructor() [23:56:48.674] AnimatedImageFrame[aR] :: _init(), BEGIN [23:56:48.674] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_7.jpg [23:56:48.700] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.701] AnimatedImageFrame[aR] :: _init(), END [23:56:48.702] AnimatedImageFrame[aLTop] :: constructor() [23:56:48.702] AnimatedImageFrame[aLTop] :: _init(), BEGIN [23:56:48.702] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_8.jpg [23:56:48.730] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.731] AnimatedImageFrame[aLTop] :: _init(), END [23:56:48.732] AnimatedImageFrame[aLBot] :: constructor() [23:56:48.732] AnimatedImageFrame[aLBot] :: _init(), BEGIN [23:56:48.732] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_9.jpg [23:56:48.757] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.758] AnimatedImageFrame[aLBot] :: _init(), END [23:56:48.759] FacetSlideshow :: _generateSlideShapes() [23:56:48.760] AnimatedImageFrame[aR] :: constructor() [23:56:48.760] AnimatedImageFrame[aR] :: _init(), BEGIN [23:56:48.760] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_10.jpg [23:56:48.788] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.789] AnimatedImageFrame[aR] :: _init(), END [23:56:48.789] AnimatedImageFrame[aLTop] :: constructor() [23:56:48.789] AnimatedImageFrame[aLTop] :: _init(), BEGIN [23:56:48.789] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_11.jpg [23:56:48.817] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.818] AnimatedImageFrame[aLTop] :: _init(), END [23:56:48.818] AnimatedImageFrame[aLBot] :: constructor() [23:56:48.818] AnimatedImageFrame[aLBot] :: _init(), BEGIN [23:56:48.818] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_12.jpg [23:56:48.842] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.842] AnimatedImageFrame[aLBot] :: _init(), END [23:56:48.843] FacetSlideshow :: _generateSlideShapes() [23:56:48.844] AnimatedImageFrame[aL] :: constructor() [23:56:48.844] AnimatedImageFrame[aL] :: _init(), BEGIN [23:56:48.844] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_13.jpg [23:56:48.870] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.871] AnimatedImageFrame[aL] :: _init(), END [23:56:48.871] AnimatedImageFrame[aRTop] :: constructor() [23:56:48.871] AnimatedImageFrame[aRTop] :: _init(), BEGIN [23:56:48.871] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_14.jpg [23:56:48.899] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.901] AnimatedImageFrame[aRTop] :: _init(), END [23:56:48.901] AnimatedImageFrame[aRBot] :: constructor() [23:56:48.901] AnimatedImageFrame[aRBot] :: _init(), BEGIN [23:56:48.901] CanvasClip :: LoadImageWithPromise(), src: F256244D-9C2A-1D30-54F6-F5ACAC3FF802_15.jpg [23:56:48.929] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [23:56:48.930] AnimatedImageFrame[aRBot] :: _init(), END [23:56:48.931] FacetSlideshow[facet] :: _build(), END [23:56:48.931] Overlay[facet] :: _animate() [23:56:48.932] FacetSlideshow[facet] :: _init(), END [23:56:48.932] CanvasStream[facet] :: _init(), p.then() [23:56:48.933] CanvasStream[canvas_498845417965] :: _init(), promise.all.then() [23:56:48.935] CanvasStream[canvas_498845417965] :: _init(), END [23:56:48.936] StreamMangaer :: init(), stream[canvas_498845417965].then() [23:56:48.936] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'canvas_498845417965', progress: 1 } [23:56:48.936] index :: _onStepProgress_vidbot(), percent: 100 [23:56:48.936] StreamManager :: init(), promise.all.then... [23:56:48.936] Vidbot :: StreamMgr.on( 'INITED' ) [23:56:48.937] Vidbot :: _next(), _stepIndex:2 of 4 [23:56:48.937] index :: _onStepCompleted_vidbot(), step: 2 [23:56:48.937] index :: _onStepStarted_vidbot(), step: 3 [23:56:48.937] Vidbot :: step[2], label:Rendering Canvas Streams [23:56:48.937] Vidbot :: StreamMgr.on( 'RENDER_STARTED' ), data: undefined [23:56:48.938] StreamManager :: render() [23:56:48.938] CanvasStream[canvas_498845417965] :: render() [23:56:49.012] index :: _onStepProgress_vidbot(), percent: 0 [23:56:55.805] index :: _onStepProgress_vidbot(), percent: 5 [23:57:02.567] index :: _onStepProgress_vidbot(), percent: 10 [23:57:09.164] index :: _onStepProgress_vidbot(), percent: 15 [23:57:22.303] index :: _onStepProgress_vidbot(), percent: 20 [23:57:55.218] index :: _onStepProgress_vidbot(), percent: 25 [23:58:33.541] index :: _onStepProgress_vidbot(), percent: 30 [23:59:12.113] index :: _onStepProgress_vidbot(), percent: 35 [23:59:50.084] index :: _onStepProgress_vidbot(), percent: 40 [00:00:32.235] index :: _onStepProgress_vidbot(), percent: 45 [00:01:18.673] index :: _onStepProgress_vidbot(), percent: 50 [00:01:59.150] index :: _onStepProgress_vidbot(), percent: 55 [00:02:40.739] index :: _onStepProgress_vidbot(), percent: 60 [00:03:23.353] index :: _onStepProgress_vidbot(), percent: 65 [00:04:01.460] index :: _onStepProgress_vidbot(), percent: 70 [00:04:47.841] index :: _onStepProgress_vidbot(), percent: 75 [00:05:31.659] index :: _onStepProgress_vidbot(), percent: 80 [00:06:06.951] index :: _onStepProgress_vidbot(), percent: 85 [00:06:47.394] index :: _onStepProgress_vidbot(), percent: 90 [00:07:22.031] index :: _onStepProgress_vidbot(), percent: 95 [00:07:43.797] index :: _onStepProgress_vidbot(), percent: 100 [00:07:45.305] StreamManager :: render(), Promise.all.then... [00:07:45.306] Vidbot :: StreamMgr.on( 'RENDER_COMPLETED' ), data: undefined [00:07:45.306] Vidbot :: _next(), _stepIndex:3 of 4 [00:07:45.306] index :: _onStepCompleted_vidbot(), step: 3 [00:07:45.307] index :: _onStepStarted_vidbot(), step: 4 [00:07:45.308] Vidbot :: step[3], label:Encoding Media [00:07:45.311] VideoStream[intro] :: inputOptions() [00:07:45.311] VideoFilters :: Scale() [00:07:45.312] VideoFilters :: Overlay() [00:07:45.312] CanvasFilters :: Overlay() [00:07:45.313] VideoStream[outro] :: inputOptions() [00:07:45.313] VideoFilters :: Tpad() [00:07:45.313] VideoFilters :: Scale() [00:07:45.313] VideoFilters :: Overlay() [00:07:45.313] AudioStream[audio_vo] :: inputOptions() [00:07:45.314] AudioFilters :: Volume() [00:07:45.314] filter: [4:a]volume=1[4_vol] [00:07:45.314] AudioFilters :: Delay() [00:07:45.314] filter: [4_vol]adelay=14000|14000[4_del] [00:07:45.314] AudioStream[bg_music] :: inputOptions() [00:07:45.314] AudioFilters :: Volume() [00:07:45.314] filter: [5:a]volume=0.15[5_vol] [00:07:45.314] AudioFilters :: FadeOut() [00:07:45.314] filter: [5_vol]afade=t=out:st=60:d=1[5_fadeout] [00:07:45.314] AudioFilters :: Delay() [00:07:45.314] filter: [5_fadeout]adelay=14000|14000[5_del] [00:07:45.315] VideoStream[intro] :: inputOptions() [00:07:45.315] AudioFilters :: Volume() [00:07:45.315] filter: [6:a]volume=1[6_vol] [00:07:45.315] AudioFilters :: Delay() [00:07:45.315] filter: [6_vol]adelay=0|0[6_del] [00:07:45.315] VideoStream[outro] :: inputOptions() [00:07:45.315] AudioFilters :: Volume() [00:07:45.315] filter: [7:a]volume=1[7_vol] [00:07:45.315] AudioFilters :: Delay() [00:07:45.316] filter: [7_vol]adelay=77000|77000[7_del] [00:07:45.316] AudioFilters :: Mix() [00:07:45.316] filter: [4_del][5_del][6_del][7_del]amix=inputs=4:duration=longest[a_out] [00:07:45.316] mixed filter: [4_del][5_del][6_del][7_del]amix=inputs=4:duration=longest[a_out] [00:07:45.318] hang.time: 60 [00:07:45.543] Vidbot :: ffmpeg.on( 'start' ) [00:07:45.543] ffmpeg -f lavfi -i color=c=000000:s=960x540:r=30:duration=92.02 -to 00:00:14.000 -i file:///var/www/html/clients/13482/library/960_intro.mp4 -r 30 -i [00:07:45.544] ./tmp/canvas_498845417965_%05d.png -to 00:00:15.019 -i file:///var/www/html/clients/13482/library/960_outro.mp4 -to 00:01:03.000 -i file:///var/www/ht [00:07:45.544] ml/clients/13482/audio/F256244D-9C2A-1D30-54F6-F5ACAC3FF802.mp3 -to 00:01:00.000 -i file:///var/app/video_pre_processor/assets/vidbot/_files/audio/Con [00:07:45.544] cept1.mp3 -to 00:00:14.000 -i file:///var/www/html/clients/13482/library/960_intro.mp4 -to 00:00:15.019 -i file:///var/www/html/clients/13482/library/ [00:07:45.544] 960_outro.mp4 -y -filter_complex [1:v]scale=w=960:h=540[1_scaled];[0:v][1_scaled]overlay=x=0:y=0:enable='between(t,0,14)'[1_out];[1_out][2:v]overlay=x [00:07:45.544] =0:y=0[2_out];[3:v]tpad=start_duration=76.95[3_tpad];[3_tpad]scale=w=960:h=540[3_scaled];[2_out][3_scaled]overlay=x=0:y=0:enable='between(t,77,92.02)' [00:07:45.544] [3_out];[4:a]volume=1[4_vol];[4_vol]adelay=14000|14000[4_del];[5:a]volume=0.15[5_vol];[5_vol]afade=t=out:st=60:d=1[5_fadeout];[5_fadeout]adelay=14000| [00:07:45.544] 14000[5_del];[6:a]volume=1[6_vol];[6_vol]adelay=0|0[6_del];[7:a]volume=1[7_vol];[7_vol]adelay=77000|77000[7_del];[4_del][5_del][6_del][7_del]amix=inpu [00:07:45.544] ts=4:duration=longest[a_out] -acodec aac -vcodec libx264 -r 30 -f mp4 -map [a_out] -map [3_out] -preset veryfast -crf 18 -movflags frag_keyframe+empty [00:07:45.544] _moov -pix_fmt yuv420p /var/www/html/clients/13482/video/F256244D-9C2A-1D30-54F6-F5ACAC3FF802.mp4 [00:07:46.117] index :: _onStepProgress_vidbot(), percent: -2257388021 [00:07:46.450] index :: _onStepProgress_vidbot(), percent: 0 [00:07:50.006] index :: _onStepProgress_vidbot(), percent: 5 [00:07:53.054] index :: _onStepProgress_vidbot(), percent: 10 [00:07:55.565] index :: _onStepProgress_vidbot(), percent: 15 [00:07:58.116] index :: _onStepProgress_vidbot(), percent: 20 [00:08:00.673] index :: _onStepProgress_vidbot(), percent: 25 [00:08:03.752] index :: _onStepProgress_vidbot(), percent: 30 [00:08:06.290] index :: _onStepProgress_vidbot(), percent: 35 [00:08:08.323] index :: _onStepProgress_vidbot(), percent: 40 [00:08:10.326] index :: _onStepProgress_vidbot(), percent: 45 [00:08:12.859] index :: _onStepProgress_vidbot(), percent: 51 [00:08:14.890] index :: _onStepProgress_vidbot(), percent: 55 [00:08:16.900] index :: _onStepProgress_vidbot(), percent: 60 [00:08:18.938] index :: _onStepProgress_vidbot(), percent: 65 [00:08:20.968] index :: _onStepProgress_vidbot(), percent: 70 [00:08:23.500] index :: _onStepProgress_vidbot(), percent: 76 [00:08:25.034] index :: _onStepProgress_vidbot(), percent: 80 [00:08:26.559] index :: _onStepProgress_vidbot(), percent: 86 [00:08:27.557] index :: _onStepProgress_vidbot(), percent: 90 [00:08:28.562] index :: _onStepProgress_vidbot(), percent: 95 [00:08:29.871] index :: _onStepProgress_vidbot(), percent: 100 [00:08:29.932] Vidbot :: ffmpeg.on( 'end' ), Done! [00:08:29.933] StreamManager :: dispose() [00:08:29.933] CanvasStream[canvas_498845417965] :: dispose() [00:08:29.956] Vidbot :: fflog.on( 'finish' ) [00:08:29.956] fflog.path: /var/www/html/clients/13482/video/F256244D-9C2A-1D30-54F6-F5ACAC3FF802.mp4.fflog [00:08:29.957] Vidbot :: _next(), _stepIndex:4 of 4 [00:08:29.957] index :: _onStepCompleted_vidbot(), step: 4 [00:08:29.957] index :: _onComplete_vidbot(), data: { stepTime: 0, appTime: 703.051, output: '/var/www/html/clients/13482/video/F256244D-9C2A-1D30-54F6-F5ACAC3FF802.mp4', duration: 92.02 } --------------------------------------------------------------------------------------------------------------- Output File : /var/app/video_pre_processor/jobs/postp//var/www/html/clients/13482/video/F256244D-9C2A-1D30-54F6-F5ACAC3FF802.mp4 Media Duration : 00:01:32.019 Generation Time : 00:11:43.051 ---------------------------------------------------------------------------------------------------------------