PK !:8ƕHVVets/modules.abcPANDA_ V`<R@U.X ` < v;~ ya1VKD|~k i['v%MiN0I`V8TPP < v;uw " Q W d q   Nk~!Ij%/7@FQ`int"<IS^cpx")5KZgv$Xbu LUl~#7?JWaq5:IWcm|  $ 2 = H U [ i y 55666!6*606:6C6K6R6Z6e6k66666666666667 777A7P7_7k7p7777777 88+898P8W8b88888889919G9^9u999999999:::$:I:g:q::::::::: ;;A;H;P;f;n;;D~BI<e<<<<<< =;)=E=a=}===== >%><A>]>y>>>>>?!?=?-<Y?u?????@@9@U@WCq@@@@@@A5AQAmAKDAADrCfD#EAACD?EBZEBEHBBC!CB { var _a, _b; if (err.code) { hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', (_a = JSON.stringify(err)) !== null && _a !== void 0 ? _a : ''); return; } hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', (_b = JSON.stringify(data)) !== null && _b !== void 0 ? _b : ''); }); } onWindowStageDestroy() { // Main window is destroyed, release UI related resources hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); } onForeground() { // Ability has brought to foreground hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); } onBackground() { // Ability has back to background hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); } } //# sourceMappingURL=EntryAbility.js.maponBackgroundonCreatelaunchParam wantonDestroyonForeground'onWindowStageCreateatManagerwindowStage)onWindowStageDestroy + + +? + M Y 4Pm&  m  R y7 W @ohos:hilog7@ohos:app.ability.UIAbility/@ohos:abilityAccessCtrldefault5ohos.permission.READ_MEDIA7ohos.permission.WRITE_MEDIA=ohos.permission.MEDIA_LOCATION - #FFFFFF, height is :, message is , value is :,reason is : 1.0x 100%45%= ?/AUTO_ROTATION_LANDSCAPE7AVPlayer prepare succeeded.MAVPlayer seek succeeded, seek time is ?AVPlayer state released called.=AVPlayer state stopped called.=AVPlayer state unknown called.#AVPlayerConstantsCAVPlayerstate initialized called.AlignmentEAllocateNewElmetIdForNextComponent Black Color ColumnEllipsis Error FileKey FlexFlexAlignFlexDirectionForEachGet Gray'HarmonyHeiTi-Medium Image InitAInvoke avPlayer failed, code is ?Invoke prepare failed, code is %LANDSCAPE_INVERTED ListListItem LoggerMEDIA_TYPE MathMediaType1ObservedPropertySimplePUOrientationPORTRAITPlacementRowSPEED_ARRAY SliderSpaceBetween Stack Start5StartGetAccessRecordingFor-StopGetAccessRecording#SubscriberManager TextTextAlignTextOverflowTop VIDEO ViewPU%ViewStackProcessor WhiteXComponent)XComponentController__currentTime__fileTitle__isLandscape__isPlaying__isSpeedShow__speed__totalDurationaboutToAppear!aboutToBeDeleted1aboutToBeDeletedInternal!aboutToDisappearalignContentaspectRatioaudioInterrupteaudioInterrupt success,and InterruptEvent info is:avPlayer#availableBitratesuavailableBitrates success,and availableBitrates length is:backgroundColor bindbindPopupbitrateDoneSbitrateDone success,and bitrate value is:bufferingUpdate]bufferingUpdate success,and infoType value is:builder+callbackBitrateUpdate!callbackComplete'callbackErrorUpdate%callbackTimeUpdate#changeOrientationcompleted-completed state calledcontroller count createcreateAVPlayercurrentTimedeclareWatch%deepRenderFunction deletedirectiondisplayNamedurationdurationUpdate[durationUpdate success,and durationUpdate is:endOfStream'endOfStream success7error happened,message is : fd://fileTitlefontColorfontFamilyfontSizefontWeight+forEachUpdateFunctiongetget mediaListgetAllObjectgetContextgetCountgetFileAssetsgetLastWindowgetMediaLibrarygetPausegetPlaygetTimeString-getXComponentSurfaceId heightiid id__ idleinitialRenderinitializedisCreateisLandscapeisLazyCreateisLoadingisPlayingisSpeedShow itemitemCreationjustifyContentlayoutWeightloadDocument margin mediamediaLibrarymediaListmessage1observeComponentCreation=ohos.samples.videoplayer/entryeohos.samples.videoplayer/entry/ets/pages/Index.#1#}ohos.samples.videoplayer/entry/ets/pages/Index.#10#isSpeedShowqohos.samples.videoplayer/entry/ets/pages/Index.#11#speedgohos.samples.videoplayer/entry/ets/pages/Index.#12#gohos.samples.videoplayer/entry/ets/pages/Index.#13#gohos.samples.videoplayer/entry/ets/pages/Index.#14#gohos.samples.videoplayer/entry/ets/pages/Index.#15#gohos.samples.videoplayer/entry/ets/pages/Index.#16#gohos.samples.videoplayer/entry/ets/pages/Index.#17#gohos.samples.videoplayer/entry/ets/pages/Index.#18#gohos.samples.videoplayer/entry/ets/pages/Index.#19#eohos.samples.videoplayer/entry/ets/pages/Index.#2#gohos.samples.videoplayer/entry/ets/pages/Index.#20#gohos.samples.videoplayer/entry/ets/pages/Index.#21#gohos.samples.videoplayer/entry/ets/pages/Index.#22#gohos.samples.videoplayer/entry/ets/pages/Index.#23#gohos.samples.videoplayer/entry/ets/pages/Index.#24#gohos.samples.videoplayer/entry/ets/pages/Index.#25#gohos.samples.videoplayer/entry/ets/pages/Index.#26#gohos.samples.videoplayer/entry/ets/pages/Index.#27#gohos.samples.videoplayer/entry/ets/pages/Index.#28#gohos.samples.videoplayer/entry/ets/pages/Index.#29#eohos.samples.videoplayer/entry/ets/pages/Index.#3#gohos.samples.videoplayer/entry/ets/pages/Index.#30#gohos.samples.videoplayer/entry/ets/pages/Index.#31#gohos.samples.videoplayer/entry/ets/pages/Index.#32#gohos.samples.videoplayer/entry/ets/pages/Index.#33#gohos.samples.videoplayer/entry/ets/pages/Index.#34#gohos.samples.videoplayer/entry/ets/pages/Index.#35#gohos.samples.videoplayer/entry/ets/pages/Index.#36#gohos.samples.videoplayer/entry/ets/pages/Index.#37#gohos.samples.videoplayer/entry/ets/pages/Index.#38#gohos.samples.videoplayer/entry/ets/pages/Index.#39#eohos.samples.videoplayer/entry/ets/pages/Index.#4#gohos.samples.videoplayer/entry/ets/pages/Index.#40#gohos.samples.videoplayer/entry/ets/pages/Index.#41#gohos.samples.videoplayer/entry/ets/pages/Index.#42#gohos.samples.videoplayer/entry/ets/pages/Index.#43#gohos.samples.videoplayer/entry/ets/pages/Index.#44#gohos.samples.videoplayer/entry/ets/pages/Index.#45#gohos.samples.videoplayer/entry/ets/pages/Index.#46#gohos.samples.videoplayer/entry/ets/pages/Index.#47#gohos.samples.videoplayer/entry/ets/pages/Index.#48#gohos.samples.videoplayer/entry/ets/pages/Index.#49#wohos.samples.videoplayer/entry/ets/pages/Index.#5#fileTitlegohos.samples.videoplayer/entry/ets/pages/Index.#50#gohos.samples.videoplayer/entry/ets/pages/Index.#51#gohos.samples.videoplayer/entry/ets/pages/Index.#52#gohos.samples.videoplayer/entry/ets/pages/Index.#53#gohos.samples.videoplayer/entry/ets/pages/Index.#54#gohos.samples.videoplayer/entry/ets/pages/Index.#55#gohos.samples.videoplayer/entry/ets/pages/Index.#56#gohos.samples.videoplayer/entry/ets/pages/Index.#57#gohos.samples.videoplayer/entry/ets/pages/Index.#58#gohos.samples.videoplayer/entry/ets/pages/Index.#59#{ohos.samples.videoplayer/entry/ets/pages/Index.#6#currentTimegohos.samples.videoplayer/entry/ets/pages/Index.#60#gohos.samples.videoplayer/entry/ets/pages/Index.#61#ohos.samples.videoplayer/entry/ets/pages/Index.#7#totalDurationwohos.samples.videoplayer/entry/ets/pages/Index.#8#isPlaying{ohos.samples.videoplayer/entry/ets/pages/Index.#9#isLandscapeohos.samples.videoplayer/entry/ets/pages/Index.AVPlayerConstantsiohos.samples.videoplayer/entry/ets/pages/Index.Indexgohos.samples.videoplayer/entry/ets/pages/Index.Inityohos.samples.videoplayer/entry/ets/pages/Index.aboutToAppearohos.samples.videoplayer/entry/ets/pages/Index.aboutToDisappearohos.samples.videoplayer/entry/ets/pages/Index.changeOrientationuohos.samples.videoplayer/entry/ets/pages/Index.currentTimeohos.samples.videoplayer/entry/ets/pages/Index.deepRenderFunctionqohos.samples.videoplayer/entry/ets/pages/Index.fileTitleohos.samples.videoplayer/entry/ets/pages/Index.forEachItemGenFunctionoohos.samples.videoplayer/entry/ets/pages/Index.getPausemohos.samples.videoplayer/entry/ets/pages/Index.getPlayyohos.samples.videoplayer/entry/ets/pages/Index.initialRenderuohos.samples.videoplayer/entry/ets/pages/Index.isLandscapeqohos.samples.videoplayer/entry/ets/pages/Index.isPlayinguohos.samples.videoplayer/entry/ets/pages/Index.isSpeedShowwohos.samples.videoplayer/entry/ets/pages/Index.itemCreationohos.samples.videoplayer/entry/ets/pages/Index.observedDeepRenderohos.samples.videoplayer/entry/ets/pages/Index.observedShallowRenderwohos.samples.videoplayer/entry/ets/pages/Index.onChangePlaymohos.samples.videoplayer/entry/ets/pages/Index.releaseoohos.samples.videoplayer/entry/ets/pages/Index.rerenderohos.samples.videoplayer/entry/ets/pages/Index.setAVPlayerCallbackohos.samples.videoplayer/entry/ets/pages/Index.setBitrateUpdateCallbackohos.samples.videoplayer/entry/ets/pages/Index.setCompleteCallbackohos.samples.videoplayer/entry/ets/pages/Index.setErrorCallbackyohos.samples.videoplayer/entry/ets/pages/Index.setSourceInfoohos.samples.videoplayer/entry/ets/pages/Index.setStateChangeCallbackwohos.samples.videoplayer/entry/ets/pages/Index.setSurfaceIDohos.samples.videoplayer/entry/ets/pages/Index.setTimeUpdateCallbackiohos.samples.videoplayer/entry/ets/pages/Index.speedsohos.samples.videoplayer/entry/ets/pages/Index.speedPopupyohos.samples.videoplayer/entry/ets/pages/Index.totalDurationononChangeonChangePlayonClick onLoadopacity openoverflowpadding params pause pausedplacement play3play video: surfaceID is:playingpopprepareprepared/purgeDependencyOnElmtIdr ratioreleasereleasedrerender reset-rgba(255,255,255,0.90) round seekseekDoneEseekDone success,and seek time is:selectedColorselectionArgsselectionsset'setAVPlayerCallback1setBitrateUpdateCallback'setCompleteCallback!setErrorCallback3setInitiallyProvidedValue/setPreferredOrientationsetSourceInfosetSpeed-setStateChangeCallbacksetSurfaceID+setTimeUpdateCallback speedspeedDoneKspeedDone success,and speed value is:speedPopup!startRenderFrame5startRenderFrame success 1-state completed called%state error called#state idle called1state initialized called'state paused called)state playing called+state prepared called+state released called)state stopped calledstateChangeistateChange callback function is triggered,state is: stopstoppedsurfaceIDsurfaceId texttextAligntextOverflow thentimeUpdateGtimeUpdate called: currentTime is :9timeUpdate called: time is :toStringtotalDurationtrackColorunkown state :'updateDirtyElements%updateFuncByElmtIdurl valuevideoSizeChangeKvideoSizeChange success,and width is:volumeChangeQvolumeChange success,and new volume is : width window)xComponentController zIndex标题aLohos.samples.videoplayer/entry/ets/pages/Index;c   v M$0G%'0G%B,0H%D10Fa%=FH%JF %WFZ&dFn&F&G$'GU'(G3'.Gc(=Go(qMG(SG(qYG<`)~_G)oG*duG E!+G+G ,dG z_-G-G+.G=.G/G/ HI(0H 0H1 H;k1&H1,H12HF28H2>HD3 DH3JHC4PH4'VHP54jHB6#pH6AvH7|Ha7NH7[H8hH9HG9[H9uH9F:H:HZ;R>HG=P8MYF=6I_F=6IF5$ iA= {G8BN  @j > D WGH G\H5HN;[ 4G#6~H~+8IM+?F7Lq:RrNHan:Hz;F n$e%N0H";] @` O@7JJ<0 @# A]IZHp7$J 7tJJqIEH98MJG A=8KMq7GJJ7K2JIEentry/src/main/ets/pages/Index.ets#10#isSpeedShownewValue#11#speed #12# #13# time #14#fd #15# #16#vol #17# #18#seekDoneTime #19##2#nol #20# #21#bitrate #22#infoType #23# #24# #25# #26#bitrates #27# #28# reason state #29##3#bitrateList #30# #31# #32# #33# #34#lastWindow #35# elmtIdisInitialRender #36#-forEachItemGenFunction #37# #38# #39##4# #40# #41# #42# #43# #44# #45# #46# #47# #48# #49##5#fileTitle #50# #51# #52# #53# #54# #55# #56# #57# #58# #59##6#currentTime #60# #61#!#7#totalDuration#8#isPlaying#9#isLandscape Index__localStorage parentfetchFileResultmediaFetchOpmediaType mediasfileKeyObj _item%observedDeepRender+observedShallowRenderimport mediaLibrary from '@ohos:multimedia.mediaLibrary'; import media from '@ohos:multimedia.media'; import window from '@ohos:window'; import Logger from '@bundle:ohos.samples.videoplayer/entry/ets/util/Logger'; import { getTimeString } from '@bundle:ohos.samples.videoplayer/entry/ets/util/TimeTools'; class AVPlayerConstants { } // 倍速 AVPlayerConstants.SPEED_ARRAY = [ { text: '0.75x', value: 0 }, { text: '1.0x', value: 1 }, { text: '1.25x', value: 2 }, { text: '1.75x', value: 3 }, { text: '2.0x', value: 4 } ]; class Index extends ViewPU { constructor(parent, params, __localStorage, elmtId = -1) { super(parent, __localStorage, elmtId); this.__fileTitle = new ObservedPropertySimplePU('标题', this, "fileTitle"); this.__currentTime = new ObservedPropertySimplePU(0, this, "currentTime"); this.__totalDuration = new ObservedPropertySimplePU(0, this, "totalDuration"); this.__isPlaying = new ObservedPropertySimplePU(false, this, "isPlaying"); this.__isLandscape = new ObservedPropertySimplePU(false, this, "isLandscape"); this.__isSpeedShow = new ObservedPropertySimplePU(false, this, "isSpeedShow"); this.__speed = new ObservedPropertySimplePU('1.0x', this, "speed"); this.fileId = undefined; this.avPlayer = undefined; this.surfaceID = undefined; this.count = 0; this.ratio = 1.0; this.isCreate = false; this.isLoading = false; this.xComponentController = new XComponentController(); this.callbackComplete = () => { }; this.callbackTimeUpdate = (nol) => { }; this.callbackBitrateUpdate = (bitrateList) => { }; this.callbackErrorUpdate = (error) => { }; this.setInitiallyProvidedValue(params); this.declareWatch("isPlaying", this.onChangePlay); this.declareWatch("isLandscape", this.changeOrientation); } setInitiallyProvidedValue(params) { if (params.fileTitle !== undefined) { this.fileTitle = params.fileTitle; } if (params.currentTime !== undefined) { this.currentTime = params.currentTime; } if (params.totalDuration !== undefined) { this.totalDuration = params.totalDuration; } if (params.isPlaying !== undefined) { this.isPlaying = params.isPlaying; } if (params.isLandscape !== undefined) { this.isLandscape = params.isLandscape; } if (params.isSpeedShow !== undefined) { this.isSpeedShow = params.isSpeedShow; } if (params.speed !== undefined) { this.speed = params.speed; } if (params.fileId !== undefined) { this.fileId = params.fileId; } if (params.avPlayer !== undefined) { this.avPlayer = params.avPlayer; } if (params.surfaceID !== undefined) { this.surfaceID = params.surfaceID; } if (params.count !== undefined) { this.count = params.count; } if (params.ratio !== undefined) { this.ratio = params.ratio; } if (params.isCreate !== undefined) { this.isCreate = params.isCreate; } if (params.isLoading !== undefined) { this.isLoading = params.isLoading; } if (params.xComponentController !== undefined) { this.xComponentController = params.xComponentController; } if (params.callbackComplete !== undefined) { this.callbackComplete = params.callbackComplete; } if (params.callbackTimeUpdate !== undefined) { this.callbackTimeUpdate = params.callbackTimeUpdate; } if (params.callbackBitrateUpdate !== undefined) { this.callbackBitrateUpdate = params.callbackBitrateUpdate; } if (params.callbackErrorUpdate !== undefined) { this.callbackErrorUpdate = params.callbackErrorUpdate; } } updateStateVars(params) { } purgeVariableDependenciesOnElmtId(rmElmtId) { this.__fileTitle.purgeDependencyOnElmtId(rmElmtId); this.__currentTime.purgeDependencyOnElmtId(rmElmtId); this.__totalDuration.purgeDependencyOnElmtId(rmElmtId); this.__isPlaying.purgeDependencyOnElmtId(rmElmtId); this.__isLandscape.purgeDependencyOnElmtId(rmElmtId); this.__isSpeedShow.purgeDependencyOnElmtId(rmElmtId); this.__speed.purgeDependencyOnElmtId(rmElmtId); } aboutToBeDeleted() { this.__fileTitle.aboutToBeDeleted(); this.__currentTime.aboutToBeDeleted(); this.__totalDuration.aboutToBeDeleted(); this.__isPlaying.aboutToBeDeleted(); this.__isLandscape.aboutToBeDeleted(); this.__isSpeedShow.aboutToBeDeleted(); this.__speed.aboutToBeDeleted(); SubscriberManager.Get().delete(this.id__()); this.aboutToBeDeletedInternal(); } get fileTitle() { return this.__fileTitle.get(); } set fileTitle(newValue) { this.__fileTitle.set(newValue); } get currentTime() { return this.__currentTime.get(); } set currentTime(newValue) { this.__currentTime.set(newValue); } get totalDuration() { return this.__totalDuration.get(); } set totalDuration(newValue) { this.__totalDuration.set(newValue); } get isPlaying() { return this.__isPlaying.get(); } set isPlaying(newValue) { this.__isPlaying.set(newValue); } get isLandscape() { return this.__isLandscape.get(); } set isLandscape(newValue) { this.__isLandscape.set(newValue); } get isSpeedShow() { return this.__isSpeedShow.get(); } set isSpeedShow(newValue) { this.__isSpeedShow.set(newValue); } get speed() { return this.__speed.get(); } set speed(newValue) { this.__speed.set(newValue); } aboutToAppear() { this.fileId = AppStorage.Get('fileId'); this.setCompleteCallback(() => { Logger.info('completed state called'); this.isPlaying = !this.isPlaying; }); this.setTimeUpdateCallback((time) => { this.currentTime = time; }); } aboutToDisappear() { this.release(); this.isLandscape = false; } async Init() { await this.release(); let mediaList; const context = getContext(this); let medias = mediaLibrary.getMediaLibrary(context); let fileKeyObj = mediaLibrary.FileKey; let mediaType = mediaLibrary.MediaType.VIDEO; let mediaFetchOp = { selections: fileKeyObj.MEDIA_TYPE + '= ?', selectionArgs: [mediaType.toString()] }; let fetchFileResult = await medias.getFileAssets(mediaFetchOp); if (fetchFileResult.getCount() > 0) { mediaList = await fetchFileResult.getAllObject(); Logger.info('get mediaList' + JSON.stringify(mediaList)); } for (let i = 0; i < mediaList.length; i++) { if (mediaList[i].id == this.fileId) { mediaList[i].open('r').then(async (fd) => { this.fileTitle = mediaList[i].displayName; this.totalDuration = mediaList[i].duration; this.avPlayer = await media.createAVPlayer(); this.isCreate = true; this.setSourceInfo(); this.setStateChangeCallback(); this.ratio = mediaList[i].width / mediaList[i].height; this.avPlayer.url = 'fd://' + fd; }); } } } async release() { if (this.isCreate) { await this.avPlayer.release(); this.isCreate = false; } } getPlay() { if (this.isCreate) { this.avPlayer.play(); } } getPause() { if (this.isCreate) { this.avPlayer.pause(); } } setSurfaceID() { Logger.info('play video: surfaceID is:' + this.surfaceID); this.avPlayer.surfaceId = this.surfaceID; } setCompleteCallback(func) { this.callbackComplete = func; } setTimeUpdateCallback(func) { this.callbackTimeUpdate = func; } setBitrateUpdateCallback(func) { this.callbackBitrateUpdate = func; } setErrorCallback(func) { this.callbackErrorUpdate = func; } // 视频信息上报函数 async setSourceInfo() { // 时间上报函数 this.avPlayer.on('timeUpdate', (time) => { Logger.info('timeUpdate called: time is :' + time); Logger.info('timeUpdate called: currentTime is :' + this.avPlayer.currentTime); this.callbackTimeUpdate(time); }); // 音量变化回调函数 this.avPlayer.on('volumeChange', (vol) => { Logger.info('volumeChange success,and new volume is :' + vol); }); // 视频播放结束触发回调 this.avPlayer.on('endOfStream', () => { Logger.info('endOfStream success'); }); // seek操作回调函数 this.avPlayer.on('seekDone', (seekDoneTime) => { Logger.info('seekDone success,and seek time is:' + seekDoneTime); }); // 视频总时长上报函数 this.avPlayer.on('durationUpdate', (duration) => { Logger.info('durationUpdate success,and durationUpdate is:' + duration); }); // 设置倍速播放回调函数 this.avPlayer.on('speedDone', (speed) => { Logger.info('speedDone success,and speed value is:' + speed); }); // bitrate设置成功回调函数 this.avPlayer.on('bitrateDone', (bitrate) => { Logger.info('bitrateDone success,and bitrate value is:' + bitrate); }); // 缓冲上报回调函数 this.avPlayer.on('bufferingUpdate', (infoType, value) => { Logger.info('bufferingUpdate success,and infoType value is:' + infoType + ', value is :' + value); }); // 首帧上报回调函数 this.avPlayer.on('startRenderFrame', () => { Logger.info('startRenderFrame success 1'); }); // 视频宽高上报回调函数 this.avPlayer.on('videoSizeChange', (width, height) => { Logger.info('videoSizeChange success,and width is:' + width + ', height is :' + height); }); // 焦点上报回调函数 this.avPlayer.on('audioInterrupt', (info) => { // 触发焦点上报后调用暂停接口暂停播放 Logger.info('audioInterrupt success,and InterruptEvent info is:' + JSON.stringify(info)); }); // HLS上报所有支持的比特率 this.avPlayer.on('availableBitrates', (bitrates) => { Logger.info('availableBitrates success,and availableBitrates length is:' + bitrates.length); this.callbackBitrateUpdate(bitrates); }); // 设置错误监听 this.avPlayer.on('error', (error) => { Logger.error('error happened,message is :' + error.message); this.callbackErrorUpdate('Error ' + error.code + ' - ' + error.message); }); } // 状态机上报回调函数 async setStateChangeCallback() { this.avPlayer.on('stateChange', async (state, reason) => { Logger.info('stateChange callback function is triggered,state is:' + state + ',reason is :' + reason); switch (state) { case 'idle': this.release(); Logger.info('state idle called'); break; case 'initialized': this.isLoading = true; Logger.info('state initialized called'); this.setSurfaceID(); this.avPlayer.prepare(); break; case 'prepared': Logger.info('state prepared called'); this.isLoading = true; this.isPlaying = true; this.totalDuration = this.avPlayer.duration; this.getPlay(); break; case 'playing': Logger.info('state playing called'); this.isLoading = false; break; case 'paused': Logger.info('state paused called'); break; case 'completed': Logger.info('state completed called'); this.callbackComplete(); break; case 'stopped': Logger.info('state stopped called'); break; case 'released': Logger.info('state released called'); this.isLoading = false; break; case 'error': Logger.info('state error called'); break; default: Logger.info('unkown state :' + state); break; } }); } setAVPlayerCallback() { this.avPlayer.on('seekDone', (seekDoneTime) => { Logger.info(`AVPlayer seek succeeded, seek time is ${seekDoneTime}`); }); this.avPlayer.on('error', (err) => { Logger.error(`Invoke avPlayer failed, code is ${err.code}, message is ${err.message}`); this.avPlayer.reset(); }); // 状态机变化回调函数 this.avPlayer.on('stateChange', async (state, reason) => { switch (state) { case 'idle': this.avPlayer.release(); break; case 'initialized': Logger.info('AVPlayerstate initialized called.'); this.avPlayer.surfaceId = this.surfaceID; this.avPlayer.prepare().then(() => { Logger.info('AVPlayer prepare succeeded.'); }, (err) => { Logger.error(`Invoke prepare failed, code is ${err.code}, message is ${err.message}`); }); break; case 'prepared': this.avPlayer.play(); break; case 'playing': if (this.count !== 0) { this.avPlayer.seek(this.avPlayer.duration); } else { this.avPlayer.pause(); } this.count++; break; case 'paused': this.avPlayer.play(); break; case 'completed': this.avPlayer.stop(); break; case 'stopped': Logger.info('AVPlayer state stopped called.'); this.avPlayer.reset(); break; case 'released': Logger.info('AVPlayer state released called.'); break; default: Logger.info('AVPlayer state unknown called.'); break; } }); } onChangePlay() { this.isPlaying ? this.getPlay() : this.getPause(); } changeOrientation() { // 获取UIAbility实例的上下文信息 let context = getContext(this); // 调用该接口手动改变设备横竖屏状态(设置全屏模式,先强制横屏,再加上传感器模式) window.getLastWindow(context).then((lastWindow) => { lastWindow.setPreferredOrientation(this.isLandscape ? window.Orientation.LANDSCAPE_INVERTED : window.Orientation.PORTRAIT); lastWindow.setPreferredOrientation(this.isLandscape ? window.Orientation.AUTO_ROTATION_LANDSCAPE : window.Orientation.PORTRAIT); }); } speedPopup(parent = null) { this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); List.create({ space: 20 }); List.width(80); List.padding(10); if (!isInitialRender) { List.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); ForEach.create(); const forEachItemGenFunction = _item => { const item = _item; { const isLazyCreate = true; const itemCreation = (elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); ListItem.create(deepRenderFunction, isLazyCreate); if (!isInitialRender) { ListItem.pop(); } ViewStackProcessor.StopGetAccessRecording(); }; const observedShallowRender = () => { this.observeComponentCreation(itemCreation); ListItem.pop(); }; const observedDeepRender = () => { this.observeComponentCreation(itemCreation); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); Row.create(); Row.padding({ left: 10 }); Row.width("100%"); Row.height(20); if (!isInitialRender) { Row.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); Text.create(item.text); Text.fontColor('rgba(255,255,255,0.90)'); Text.fontSize(15); Text.onClick(() => { if (this.isCreate) { this.avPlayer.setSpeed(item.value); } this.speed = item.text; this.isSpeedShow = false; }); if (!isInitialRender) { Text.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); Text.pop(); Row.pop(); ListItem.pop(); }; const deepRenderFunction = (elmtId, isInitialRender) => { itemCreation(elmtId, isInitialRender); this.updateFuncByElmtId.set(elmtId, itemCreation); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); Row.create(); Row.padding({ left: 10 }); Row.width("100%"); Row.height(20); if (!isInitialRender) { Row.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); Text.create(item.text); Text.fontColor('rgba(255,255,255,0.90)'); Text.fontSize(15); Text.onClick(() => { if (this.isCreate) { this.avPlayer.setSpeed(item.value); } this.speed = item.text; this.isSpeedShow = false; }); if (!isInitialRender) { Text.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); Text.pop(); Row.pop(); ListItem.pop(); }; if (isLazyCreate) { observedShallowRender(); } else { observedDeepRender(); } } }; this.forEachUpdateFunction(elmtId, AVPlayerConstants.SPEED_ARRAY, forEachItemGenFunction, (item) => JSON.stringify(item), false, false); if (!isInitialRender) { ForEach.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); ForEach.pop(); List.pop(); } initialRender() { this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); Stack.create({ alignContent: Alignment.Top }); Stack.width('100%'); Stack.height(this.isLandscape ? '100%' : '45%'); if (!isInitialRender) { Stack.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); Column.create(); Column.width('100%'); Column.height('100%'); Column.backgroundColor(Color.Black); Column.zIndex(0); if (!isInitialRender) { Column.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); XComponent.create({ id: '', type: 'surface', controller: this.xComponentController }, "ohos.samples.videoplayer/entry"); XComponent.width('100%'); XComponent.height('100%'); XComponent.aspectRatio(1920 / 1080); XComponent.onLoad(() => { this.surfaceID = this.xComponentController.getXComponentSurfaceId(); this.Init(); }); if (!isInitialRender) { XComponent.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); Column.pop(); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); Flex.create({ direction: FlexDirection.Column, justifyContent: FlexAlign.SpaceBetween }); Flex.width('100%'); Flex.height('100%'); Flex.zIndex(1); if (!isInitialRender) { Flex.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); Text.create(this.fileTitle); Text.textAlign(TextAlign.Start); Text.fontFamily('HarmonyHeiTi-Medium'); Text.textOverflow({ overflow: TextOverflow.Ellipsis }); Text.fontSize(24); Text.fontColor(Color.White); Text.padding(10); Text.width('100%'); if (!isInitialRender) { Text.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); Text.pop(); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); Row.create(); if (!isInitialRender) { Row.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); // 播放icon Image.create(this.isPlaying ? { "id": 16777225, "type": 20000, params: [], "bundleName": "ohos.samples.videoplayer", "moduleName": "entry" } : { "id": 16777224, "type": 20000, params: [], "bundleName": "ohos.samples.videoplayer", "moduleName": "entry" }); // 播放icon Image.width(24); // 播放icon Image.height(24); // 播放icon Image.margin({ top: 0, bottom: 0, left: 10, right: 10 }); // 播放icon Image.onClick(() => { this.isPlaying = !this.isPlaying; }); if (!isInitialRender) { // 播放icon Image.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); // 时间轴 Row.create(); // 时间轴 Row.layoutWeight(1); // 时间轴 Row.height(25); if (!isInitialRender) { // 时间轴 Row.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); Text.create(getTimeString(this.currentTime)); Text.fontSize(16); Text.fontColor('#FFFFFF'); Text.fontWeight(500); Text.opacity(0.6); if (!isInitialRender) { Text.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); Text.pop(); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); Slider.create({ value: Math.round(this.currentTime / this.totalDuration * 100) }); Slider.selectedColor(Color.White); Slider.layoutWeight(1); Slider.trackColor(Color.Gray); Slider.onChange((value) => { if (this.isCreate) { this.currentTime = this.totalDuration * value / 100; this.avPlayer.seek(this.currentTime); } }); if (!isInitialRender) { Slider.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); Text.create(getTimeString(this.totalDuration)); Text.fontSize(16); Text.fontColor('#FFFFFF'); Text.fontWeight(500); Text.opacity(0.6); if (!isInitialRender) { Text.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); Text.pop(); // 时间轴 Row.pop(); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); // 全屏icon Image.create({ "id": 16777223, "type": 20000, params: [], "bundleName": "ohos.samples.videoplayer", "moduleName": "entry" }); // 全屏icon Image.width(24); // 全屏icon Image.height(24); // 全屏icon Image.margin({ top: 0, bottom: 0, left: 10, right: 10 }); // 全屏icon Image.opacity(this.isLandscape ? 1 : 0.4); // 全屏icon Image.onClick(() => { this.isLandscape = !this.isLandscape; }); if (!isInitialRender) { // 全屏icon Image.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); this.observeComponentCreation((elmtId, isInitialRender) => { ViewStackProcessor.StartGetAccessRecordingFor(elmtId); // 倍速icon Text.create(this.speed); // 倍速icon Text.fontColor('rgba(255,255,255,0.90)'); // 倍速icon Text.fontSize(18); // 倍速icon Text.fontFamily('HarmonyHeiTi-Medium'); // 倍速icon Text.margin(15); // 倍速icon Text.onClick(() => { this.isSpeedShow = !this.isSpeedShow; }); // 倍速icon Text.bindPopup(this.isSpeedShow, { builder: { builder: this.speedPopup.bind(this) }, placement: Placement.Top, popupColor: 'rgba(0,0,0,0.6)' }); if (!isInitialRender) { // 倍速icon Text.pop(); } ViewStackProcessor.StopGetAccessRecording(); }); // 倍速icon Text.pop(); Row.pop(); Flex.pop(); Stack.pop(); } rerender() { this.updateDirtyElements(); } } ViewStackProcessor.StartGetAccessRecordingFor(ViewStackProcessor.AllocateNewElmetIdForNextComponent()); loadDocument(new Index(undefined, {})); ViewStackProcessor.StopGetAccessRecording(); //# sourceMappingURL=Index.js.mapCpurgeVariableDependenciesOnElmtIdrmElmtId funcupdateStateVars2+ + +H;+ LZ6my?i u M Y   #$ [ U  M Y  M Y L M Y  M Y  M Y _7P7 M Y  M Y  M Y  NC69:9:9:9:9:7QF eD 2lF D   :  NC6 NC6  06;@ohos:multimedia.mediaLibrary-@ohos:multimedia.media@ohos:windowm@bundle:ohos.samples.videoplayer/entry/ets/util/Loggers@bundle:ohos.samples.videoplayer/entry/ets/util/TimeToolspopupColorrgba(0,0,0,0.6) typesurface left spacebundleName1ohos.samples.videoplayermoduleName entry 0.75x 1.25x 1.75x 2.0xtop bottom right-%{public}s, %{public}s+[Samples_VideoPlayer] debug domain formatkohos.samples.videoplayer/entry/ets/util/Logger.Logger prefix warnaLohos.samples.videoplayer/entry/ets/util/Logger;    P~PP~= O~  TO~vNj ZOCentry/src/main/ets/util/Logger.ts/* * Copyright (c) 2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import hilog from '@ohos:hilog'; class Logger { constructor(prefix) { this.format = "%{public}s, %{public}s"; this.prefix = prefix; this.domain = 0xFF00; } debug(...args) { hilog.debug(this.domain, this.prefix, this.format, args); } info(...args) { hilog.info(this.domain, this.prefix, this.format, args); } warn(...args) { hilog.warn(this.domain, this.prefix, this.format, args); } error(...args) { hilog.error(this.domain, this.prefix, this.format, args); } } export default new Logger('[Samples_VideoPlayer]'); //# sourceMappingURL=Logger.js.map  +;+=2     M *default*0: DateMB floorgetDategetFullYeargetHoursgetMinutesgetMonthgetSecondssohos.samples.videoplayer/entry/ets/util/TimeTools.fillNumyohos.samples.videoplayer/entry/ets/util/TimeTools.filterSize{ohos.samples.videoplayer/entry/ets/util/TimeTools.getDateTimeohos.samples.videoplayer/entry/ets/util/TimeTools.getTimeStringtoFixed年日 月gLohos.samples.videoplayer/entry/ets/util/TimeTools;   1Pqq$Q=j Q\RAA0T8fillNumnumIentry/src/main/ets/util/TimeTools.tsfilterSizeKEEP_DECIMALS size /* * Copyright (c) 2022-2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ export function fillNum(num) { if (num < 10) { return `0${num}`; } return num.toString(); } export function getTimeString(time) { if (time == -1 || time == undefined) { time = 0; } const TIMESTAMP = 1000; const TIME_UNIT = 60; const MAX_HOURS = 24; let hour = Math.floor(time % (TIMESTAMP * TIME_UNIT * TIME_UNIT * MAX_HOURS) / (TIMESTAMP * TIME_UNIT * TIME_UNIT)); let minute = Math.floor(time % (TIMESTAMP * TIME_UNIT * TIME_UNIT) / (TIMESTAMP * TIME_UNIT)); let second = Math.floor(time % (TIMESTAMP * TIME_UNIT) / TIMESTAMP); if (hour > 0) { return `${fillNum(hour)}:${fillNum(minute)}:${fillNum(second)}`; } return `${fillNum(minute)}:${fillNum(second)}`; } export const filterSize = (size) => { const KEEP_DECIMALS = 2; return `${(size / (1024 * 1024)).toFixed(KEEP_DECIMALS)}MB`; }; export function getDateTime(time) { const TIMESTAMP = 1000; const EIGHT_HOURS = 28800; time = (time + EIGHT_HOURS) * TIMESTAMP; let date = new Date(time); let year = date.getFullYear(); let month = date.getMonth() + 1; let day = date.getDate(); let hours = date.getHours(); let minute = date.getMinutes(); let second = date.getSeconds(); return `${year}年${fillNum(month)}月${fillNum(day)}日 ${fillNum(hours)}:${fillNum(minute)}:${fillNum(second)}`; } //# sourceMappingURL=TimeTools.js.mapgetDateTime second minute hoursday date month yearTIMESTAMPEIGHT_HOURSTIME_UNIT hourMAX_HOURS M Y SlotNumber77777777-777 7 7_77a7 777$7&77+7/7.7E7477,7=757H7V7Q77;7!7t7n77 7*77[7 767EEEEEaa`a`B$Qh~ a ` Baba >a > a ? a`Ba`a`.aa ' $Q`a b' $Q`M>a `1  e~ a ` B aba >a > a ? a`Ba`a`.aa ' $Q`a b' $Q`M>a `1 e@DpDDDa`aaba``Ba``a``a`d9$DDD"aa`=~ a5 #aa`Ba`|e 4DDD~ a`Baba>a>a>a `1eDEEEE~ a`Baba>a >a >a ? a ` Ba `a`Ba` .  a `1 ? a`B a>a`a ` Ba ` Ba `/ e 4DDD~ a`Baba>a>a>a `1e 4DDD~ a`Baba>a>a>a `1e !D` =`=Da~ a`Baba>a >a >a `1~ a`Ba`-a`a`Ba<a`B a< a `/  `a`ab$Q```a`Ba>a3a `/ dad 4DDD~ a`Baba>a>a>a `1eD@DQDbe(DDDD`a`Bla`Ba`a`.e(DDDD`a`Bma`Ba`a`.e?DpDD~ Ma`Ba>a`.<a<a`Ba#QMCeD`DqDD<a`Ce DDDDӮaa` *C+dad  tDDDD~ Ma`Ba>a` a`.~ Ma`Ba> a<a ` Bwa`B a`. <a`Ba`a`.e,DDDD~ Ma`Ba>a` a`.e#DpDD~ Ma`Ba>a`.e,DDDD~ Ma`Ba>a` a`.e,DDDD~ Ma`Ba>a` a`.e DPDaDrDe,DDDD~ Ma`Ba>a` a`.e,DDDD~ Ma`Ba>~a` a`.e =DDDDD~ Ma`Ba>a `  a >)  a` a`.e#DpDD~ Ma`Ba>a`.e =DDDDD~ Ma`Ba>a `  a >'  a` a`.e BDDDD~ Ma`Ba>va? a ` Ba`a `. a`.e JDDDD~ Ma`Ba>ya`a`B a`.<a`Ba`a`. e qDDDD~ Ma`Ba>a`a`B a`.<a`Ba>=a `a ` B  a>% a`a`B a`.e DDDDDa~ Ma`Ba>a `  a >*  a` a`.`a>'$QU>'${>' $>' $>' $5>' $I>' $n>'$>'$N<a`Ba`-~ Ma`Ba>a `. N<aC~ Ma`Ba>a `. <a`Ba`- <a ` B"wa`B$a`-&N[~ Ma`B(a>a `.* <aC,<aC.<a<a ` B0wa`B2C4<a`B6a`-8N~ Ma`B:a>a `.< <aC>N~ Ma`B@a>a `.B N~ Ma`BDa>a `.F <a`BHa`-JN~ Ma`BLa>a `.N Mj~ Ma`BPa>a `.R <aCTMC~ Ma`BVa>a `.X M&~ Ma`BZa>a ` \ a `.] Mdad 4DDDD~ Ma`Ba>1a` a> a`.e lDDDD~ Ma`Ba>Ha`a`B a>( a`a`B a> a`. <a`B wa`Ba`-e DDDDEa`a>'$QJ>'$Q]>'$>'$>'$I>'$[>'$l>'$N<a ` Bwa`B a`- N~ Ma`Ba>6a `. <a`Bwa<a`BC<a ` Bwa ` Ba ` - a`B a3 9a 3!:a `/" NB<a ` B$wa`B&a`-(N&<a`B*ab',$Q2<a ` B-wa`B/a<a ` B1wa ` B3a `.5 M<a ` B7wa`B9a`-;<a`B=a`!?C@`BN<a ` BCwa`BEa`-GN<a ` BIwa`BKa`-MMr~ Ma`BOa>3a `.Q <a ` BSwa`BUa`-WM<~ Ma`BYa>2a `.[ M~ Ma`B]a>4a `._ Mdad#DpDD~ Ma`Ba>0a`.e SDDDD~ Ma`Ba>Ia`a`B a>( a`a`B a> a`. e DDDD`a`Ba<a`B$Q~ a`BRa`BJM~ a`BRa`B Sa`. `a`Ba<a`B$Q~ a`BRa`B/M~ a`BRa`BSa`.e DDDDD?da`B[a`a`.?Ka`Baa`a`. ? Ka`B abPa`.?Ka`Bab a`.`#QM$Q?Ka`Ba`-?da`B\a`-eDEEEE?da`B[a`a `. ?Ba`Ba`-3 fa<a`B a`a < 5a ` B Va `a 3Ea a a`1`#QM$Q?Ba`Ba`-?da`B\a`-e DDDDD?da`B[a`a`.?Ua`Ba`-? Ua`B a a`a`.?Ua`Ba>,a`.?Ua`Baba`.`#QM$Q?Ua`Ba`-?da`B \a`-"e DDDDD?da`B[a`a`.?^a`Ba<0 a`Ba`. ? ^a`B a>a`.?^a`Baba`.?^a`Ba3@a`.`#QM$Q?^a`Ba`-?!da`B"\a`-$e`DpDD<a`B$Q,<a`Bwa`Ba<0 a`Ba`.<a<0 a`B C <aCe DDDDD?da`B[a`a`.?Ua`Ba`-? Ua`B a a`a`.?Ua`Ba>,a`.?Ua`Baba`.`#QM$Q?Ua`Ba`-?da`B \a`-"e DDDDD?da`B[a`a`.?^a`Ba<0 a`Ba`. ? ^a`B a>a`.?^a`Baba`.?^a`Ba3Da`.`#QM$Q?^a`Ba`-?!da`B"\a`-$e!DDDD? a`Ba`a`.d DDDDD?da`B[a`a`.?Ya`Baa? 7a ` B az s`a`.?Ya`Ba>,a`.?Ya`Ba<a`B$Q>,M>-a`.`#QM$Q?Ya`Ba`-?!da`B"\a`-$e DDDDD?da`B[a`a`.?;a`Ba`-? ;a`B a>,a`. ?;a`Ba>,a`.?;a`Bza?:a`B9a`.?;a`Baba`.`#QM$Q?!;a`B"a`-$?&da`B'\a`-)e DDDDD?da`B[a`a`.?fa`Baa<a ` B z `a>a `/  ?fa`Ba>,a`.?fa`Ba>,a`.?fa`Btabab8 a`.?fa`B a3"Ia`.#`#QM$Q?%fa`B&a`-(?*da`B+\a`--e;DDD<a<a`Ba`Ba`-C<a`BGa`- e DDDDD?da`B[a`a`.??a`Baa? Aa ` B ;z ?@a ` BXz`a`.??a`Ba>,a`.??a`Ba>,a`.??a`B aba`."`#QM$Q?$?a`B%a`-'?)da`B*\a`-,e DDDDD?da`B[a`a`.?^a`Ba<a`Ba`. ? ^a`B a?_a`BZa`.?^a`Ba>Ea`.?^a`B aa?`a ` B<z `a`."?$^a`B%aba`.'?)^a`B*a?,:a`B-ea`./?1^a`B2ab a`.4?6^a`B7a>,a`.9`#QM$Q?;^a`B<a`->?@da`BA\a`-Ce(DDDD`a`Bia`Ba`a`.e iDDDDD?da`B[a`a`.?Ua`Ba`-`#QM$Q? Ua`B a`- ?da`B\a`-e DDDDD?da`B[a`a`.?Fa`Ba<a`B$Q a a z `Maa z`a`.?Fa`Baba`.?Fa`Baba`.?Fa`Ba!a`a`."?$Fa`B%a3'Oa`.(`#QM$Q?*Fa`B+a`--?/da`B0\a`-2e$D`DqD<a<a`Ba#QMCe DDDDD?da`B[a`a`.?Ua`Ba`-? Ua`B aba`. ?Ua`Baba`.`#QM$Q?Ua`Ba`-?da`B\a`-e DDDDD?da`B[a`a`.?^a`Ba~ a<a ` Ba `* a`. ?^a`Baba`.?^a`Ba>&a`.?^a`Baba`.?^a`Bac333333?a`. `#QM$Q?"^a`B#a`-%?'da`B(\a`-*eDDEEE?da`B[a`a`.?Wa`Baa? Oa ` B a <a ` B a <a ` B  a bd  a ` . z`a`.?Wa`Ba?:a`Bea`.? Wa`B!aba`.#?%Wa`B&a?(:a`B)Da`.+?-Wa`B.a30Sa`.1`#QM$Q?3Wa`B4a`-6?8da`B9\a`-;e aDDDD<a`B$QL<a<a`Ba` abd C<a`Bwa`B a<a`B a`.e DDDDD?da`B[a`a`.?^a`Ba~ a<a ` Ba `* a`. ?^a`Baba`.?^a`Ba>&a`.?^a`Baba`.?^a`Bac333333?a`. `#QM$Q?"^a`B#a`-%?'da`B(\a`-*e DDDDD?da`B[a`a`.?Fa`Baa a z `a`. ?Fa`Baba`.?Fa`Baba`.?Fa`Baa`a`.?Fa`Ba<a`B!$Q bM c?a`.#?%Fa`B&a3(Va`.)`#QM$Q?+Fa`B,a`-.?0da`B1\a`-3e$D`DqD<a<a`Ba#QMCe(DDDD`a`Bha`Ba`a`.eDDEEE?da`B[a`a`.?^a`Ba<a`Ba`. ? ^a`B a>a`.?^a`Baba`.?^a`Ba>Ea`.?^a`Baba`.? ^a`B!a3#Ya`.$?&^a`B'|a<a`B)a+~a ,a <a ` B-a ` B/{a <a ` .1 z3 ` z5 ?7Ta ` B8az: ` a `/< `#QM$Q?>^a`B?a`-A?Cda`BD\a`-Fe$D`DqD<a<a`Ba#QMCe(DDDD`a`Bna`Ba`a`.e(DDDD`a`Bka`Ba`a`.e(DDDD`a`Bja`Ba`a`.eDPDaDr`a`d D`=`=EEEE`a(Oba`a<a`a`a `a 2a<`a ` =<a?Qa >a <a >a  Ci<a? Qa ba <a >a   C h<a?Qa ba <a >a  Cn<a?Qa a <a >a  Ck<a?Qa a <a >a  Cj<a?Qa a <a >a  C l<a?"Qa >+a <a >a # C%m<aC'<aC)w<aC+<abC-<abC/<aC1<aC3<a?5ga 6 C8<a3: C;<a3=+C><a3@6CA<a3CACD<a ` BFa`a `.H <a ` BJa>a <a ` BLa `/N <a ` BPa>a <a ` BRa `/T <dE`=`= a < a ` Ba ` - ` a ` a b $Q` ` a ` =?a < a ` * a~ a ` Ba `a ` . a~ a ` B >a~ a ` BPa ` Bbaa `a ` BNa >.  z a `a ` Ba ` - y ` z ` a`a ` B!a `a ` .# ` a ` a b% $Q` ` a`a ` B&a ` -( a b* $`a ` B+a ` -- ` a ` a b/ $Q` ` a < ` a ` =~ Ma ` B0a >a ?2 a`B3a < a` .5 7 a ` .8 ba ` =< a < a ` B:< $< a < a ` 7= a ` B?a a` .H a ` BJ a 3L%a ` .M <a i` =< a ` !Oa < ` a ` =` PNFMii da ddD` =` =<a?a`BCa>a`.C<a`Ba3 #a`. <a`B a3$a`.eDDD`a`Bia`Bpa`-`a`Bha`Bpa`- `a`B na`Bpa`-`a`Bka`Bpa`-`a`Bja`Bpa`-`a`Bla`B pa`-"`a`B$ma`B&pa`-(?*]a`B+Ca`--a`B/a`a`B1a`-3a`.5`a`B7qa`-9e#D`DqD`a`Ba`-`aCe RD` =` =?a<a`*a~ a`Ba`a `. a`B a3 ;a`. e DpDD`a`Bha`Ba`-d DDDDD< a`a`a`+<a`Ba`Ba`a< a `/ <a`Ba3 Ba`. <a`B a3Ca`.?^a`Ba`-?Ua`Ba`-?La`Ba`-e DpDD`a`Bia`Ba`-d\DDDD`a`=0a`=3ma`= 3oa3na3da`=< $Q `a`)M `a`)e DDDpa5]aa`Ba`a`=< 5aaa`ya`y a`y  a`ya`y`CV?ca5^aa`Ba>a a `4ea  >a a `4La  >a a `4ca  >a a `4Wa  >a a `4}a  >a a `4Za  >a a `4ka  >a a `4 [a  >a a `4!ja  >a a `4"\a  >a a `4#la  >a a `4$!a  >a a `4%{a  >a a `4&"a  `4'`z(o`4*az+r`4-_z.G`40qz1`43hz4`46gz7`49yz:`4Ra`.?<a`BAa3CTa`.D?F^a`BGa`-I?KUa`BLa`-N<a`BPa3RUa`.S<a`BUa3WXa`.X?Z^a`B[a`-]?_Ua`B`a`-b?d?a`Bea`-g?iYa`Bja`-le DpDD`a`Bja`Ba`-d DpDD`a`Bka`Ba`-d DpDD`a`Bla`Ba`-d {DDDDD?da`B[a`a`.?La`Ba< a< a `/ `#QM$Q? La`B a`- ?da`B\a`-eDpDD<a`Ba< a`.<a`Ba3>a`.<a`B a3 ?a`. ?^a`Ba`-?Ua`Ba`-?La`Ba`-e5DpDD<a`Ba< a`.?La`Ba`-e9D`DqD`a`B$Q`a`Ba`-M`a`Ba`-eDDDD`a`Bia`Ba`a`.`a`Bha`Ba`a`. `a`B na`Ba`a`.`a`Bka`Ba`a`.`a`Bja`Ba`a`.`a`Bla`B a`a`."`a`B$ma`B&a`a`.(eaDpDDa`a`B$QD`a`Bwa`Ba`-`a`ab$Q```aC dad S\D`DqD`a`Ba`-eD` =` =<a`Bwa`Ba>a35a`/<a`Bwa`B a>a3 7a`/ <a`Bwa`Ba>a38a`/eD`DqDD`a`CeD`DqDD`a`CeD`DqDD`a`CeDpDDD`a`Ba'$Q`a`a`BC`a`Ba' $Q`a`a`B C `a`Ba'$Q`a`a`BC`a`Ba'$Q`a`a`BC`a`Ba'$Q`a`a`BC!`a`B#a'%$Q`a`a`B&C(`a`B*a',$Q`a`a`B-C/`a`B1a'3$Q`a`a`B4C6`a`B8wa':$Q`a`a`B;wC=w`a`B?a'A$Q`a`a`BBCD`a`BFa'H$Q`a`a`BICK`a`BMa'O$Q`a`a`BPCR`a`BTa'V$Q`a`a`BWCY`a`B[a']$Q`a`a`B^C``a`Bba'd$Q`a`a`BeCg`a`Bia'k$Q`a`a`BlCn`a`Bpa'r$Q`a`a`BsCu`a`Bwa'y$Q`a`a`BzC|`a`B~a'$Q`a`a`eD` =` =a<a`Bwa`Ba> a3&a`/<a`Bwa`B a>a3 'a`/ <a`Bwa`Ba>a3(a`/<a`Bwa`Ba>a3)a`/<a`Bwa`Ba>a3 *a`/!<a`B#wa`B%a>a3',a`/(<a`B*wa`B,a>}a3.-a`//<a`B1wa`B3a>a35.a`/6<a`B8wa`B:a>a3a3C0a`/D<a`BFwa`BHa>ua3J1a`/K<a`BMwa`BOa>xa3Q2a`/R<a`BTwa`BVa>a3X3a`/YdadAD` =` =a<a`Bwa`Ba>a34a`/dad+<MDDD~ Ma`Ba>a`a`B a`.`a`Bwa`a`B C eD`DqDD`a`Ce DpDD`a`Bma`Ba`-dwD` =` =D`a(Oa<a`Ba3<a`.<a`Ba3=a`. ? Ba`B a`-?Ka`Ba`-e DpDD`a`Bna`Ba`-d@D`DqDD`a`a>C`a`C`abC`d LDDDDa~ a`Ba`a`Ba`a`Ba`a ` Ba `a `1e LDDDDa~ a`Ba`a`Ba`a`Ba`a ` Ba `a `1e 3DDDpa5aa`Ba`a`a>a|e LDDDDa~ a`Ba`a`Ba`a`Ba`a ` Ba `a `1e LDDDDa~ a`Ba`a`Ba`a`Ba`a ` Ba `a `1e<DpDDD`ab $Q>a` a> d`a`Ba`-d JDDDDba>a`a ba b  a`Ba`a `. a> d,D@`=`=3|3|3|3|eEEEEba bpa `a` a` a?a`aa`a`Ba`-a `a`B a`- ab a `a`Ba`-a`a`Ba`-a`a`Ba`-a`a`Ba`-a>a` a> a}a` a`*  "a> #a}a`a`*$ &a> 'a}a`a`*( *a> +a}a`a`*, .a> /a}a`a`*0 2a> 3dEEEE`a ba `  #Q `a  $Q baba b<aba?Oa ` Ba `a` a` a` a`  a ` a` a`  a ` . a?Oa ` Ba `a` a` a` a ` a`   a ` . a?Oa ` Ba `a` a` a `  a ` . a`a b! $QT>a }a `a ` *" $ a > % a }a `a ` *& ( a > ) a }a `a ` ** , a > - d>a }a `a ` *. 0 a > 1 a }a `a ` *2 4 a > 5 d                      k?                     $/fufa````` *fufa`````   8   3      - *4 4 ")&4           k   <++ &4P_ P4)        "&4"%&4       k  /         9++&4  3 A / {"!&4  ,&%    %    k   $        %ݍ        \    \   \  \        \     Y%/% )3) *$$!+!6@6 ! (2( x,      k    k  5ݍ 9 @ $       ) E       ) ? (< J    .+      (p B ) F           7 uÎ KVg             6 ?v BJ\         , O^O       k  - W  '       k        8 9  %0 %=%E %           k M  n     }  |  }  |  }  |   k?  \  k?  k  \  \  \?  k  \?  k?  k?  k0  k  \0  k0    k J   QYj [ %  %%) %    %  3 W (         / ANN    06             k6 <EET``   M  m  s  |   |  |  }  | ?  k  \ { w ~??   k   ??0  k0  k0  k K q \  . #1 '+   X (!$             6%GP%P_k%k%"        k      9 / B/j/ / B/o/ #    k  k  k  k   = ҏڏ :     $    k          k   Pҏڏ : + '/Nf  %    k  k  k  k   > ҏڏJ( &'!     k  k  k  k  q   A ҏڏJ(+*)!     l   \  '$;$ - 3  2.> ҏڏJ( &'!  A ҏڏJ(+*)!  '$;$ - 3      &@ppf&    k    k  k      k   I ҏڏ : )    ,5  '    k  k  k  k  k   B ҏڏ :   #   (    k m W ~  k  k    k  n   K ҏڏ :    #*#   )    \!*    k      k  k  k  k   I ҏڏ : % K      +    k  k  k  k    k  k  k  k  k   U ҏڏ :    *       ,%    k   2 ҏڏ :  -    l          l  l  l  l  m   X ҏڏ :  *S*      .      " !     l  l  k   : ҏڏ :    /    k    k  k  k  k  k   I ҏڏ : &           k k       i  m  k  k  k  p   S ҏڏ : " 5 "J" !      0        \  h 1u' <'D'' 1I ҏڏ : &           l    l  l  l  l      l  m   U ҏڏ : B     -1    2 $ # %    l  l  l  l  l  l  n  k     x ]  ~   [ ҏڏ :        -$9$--  3 $ # %!%%   4       M             \         \         \         \         \         \         \  \  \  \  \  \  \  \   \  ]  ]  ]  ]  k   z     ҏl0:90&8>D!:=C#<?E8?E!:AG!:AG4<B($ "%#'')e5    z    /    /  /  / k   < ]  , 2     /  z         l      z     k      h    ’ʒ #2    0 $ 9$ )  *9* # ", .  p6      \  n  % ! #7    k%'8    9     0     #! +:     k   z    B ҏڏ%-4< 6 6;   0  k  r  2      J ֒ݒ))2/"/#<     m  M                                                                                                                            k       \1    s  ~~~~~~~~~~~~~ ~~ ~~~~~ ~ ~~~~~~~ }}|||{ z.  " =         t          r              ` & & & & & & & & &  & &  & &>    k   z   7 ҏڏF(<?    k    , 6 6 6@    k 6A      " *B    k  k  k  k  k  k  =Ո135133-C     Y K %   D     |   ~    %"( E%߈%%߈ %߈#    k  ]  k  ]  k  ]  k  ]  k  ]  k  ]  k  ]  k  ]  k  ]  k  ]  k  ]  k  ]  k  ]  k  ]  k  ]  k  ]  k  ]  k  ]  k  i l9 !  #  % ! !  #  #        !        !  , ( ( $ * & - ) + ' F        }   }   }   }   }   }   }   }   }   ~   ~    `')(%+&(,-,+." JG     ( H      k  &2  " I%߈"        /   t  ( & &J l  M   \  \  X ^ /K,   ! . ;,   ! . ;          9—33  L   /      ,   - :,   - :    k      !  2 M   /               F%  - < <N   2 $ O       /  /       /     /  /    /  /  /  /  /                                         øɸиָݍ)    " "  % %(0(5 59A9H HKSK[ [^f^n nP          >  0  /  /  /                    /                /           /  k                    !                ָݍ   ".":"!F!T`TSlS$0$#<#JIVI$#0#=  #+#336>6FF  !)!1 1Q$M&#&O&'6:$/n007BF !)""#$-%u%-&'D((=)))]*++,j,,-i..U/)2t233+4i445=6.78889: <;<P>??6@v@@A!B}FG0HHHIIJJeL7MiMNNOPPrQQ -CDIDATxyp\ŝ?$- CH VH6ne7GmŁ$$E6TͲTb 0a;6^la[u?4Q?Io$VM4{ݯ׿_@)F1߁2 x  Yw!hl o솠u뾆Y4# $ %m<{ORuddbNx8R[O屃yЄHsW$:KPD@ |}PsvԱfnïہ(:H*j}-pԷycZF6&֢8E *ߌ"(J)Oxx <cȿ!(qT \կ?&c4T/'PxD03 OQI`܍.ӋLku^oq=OچԽA fNPT >6Zon,#|"l0w3$@[2hhP; ml>E㢻S<.>q\q, })vuj{/b@P@ٛ5?*ƴFG)L=$7抄*\& a@>%)<1WZeHN 6i[] =P|QX"W-Ȍl@/CCoJűeޭ=K+˄+|&Н ,2>4eB[6R bYN0t`Z6ď_]h^nUsjZJC* \unY%8(&e限2` EvR ¢K9zVm9|GZD`wk̕,ܡ'WqU'?syXBKuv Ku!OM#Eç0|V"O"f ma%*K : 6!}FœK(EÅ5҇tnOr)aP9&E~'L-6!%XB!+!>5)WTxMk̥p)!0K/Oj:4S\亊$ڇ*O`SH# +"ɔh chņT\2"LDAq9ΎTmӅbZ'[)g|Th)P /Q,lY0N(,5Z(6!m w-Հ#гq8JH 2_u{S.e)#܏ X&|mW~R2@EHo+e+ eOQPhtB-@ \ Y= VqBoU&7חNCw U $4hG4gf\Bw"z2)}u 4*CFFtmˆ\ádђ B Kggœ<хc%"=>B]1%(8Z #@s2`Yy\V{S{ڑ2է-eW#dFppp|X9ښ*Q!U:a<3>h+w\#AUKzش JO^oj0#7,vfg;<ٮe$auY3==(D>,jo]&K$VH(E+{*ֵuv}jMqGcւ3%Ǿ6}9fWH}$$cB+Wͤq3>:.=>5wrHՐ,V/5ÿ"N2_&Pq#UCB/Hx7f`p oί,- $1@G AWQpB85B Ek#\(VSԿ9pB.诒>ϳ/i]32!oS7]4AApIuVvqݯ4] EB78јk>32 #}W91!9>=d yڏtl㔁HyLc u<ʡ^iacrznXtz^pXHHow3(\4Nɴ2Jvb _[J EHz~`ۨvš 5B?&`YE$ܧ}=)ͨzO-=)MZ:íUkm4qHnT ZF/tr @/)k:7e`~xP,'6vL!lx4YNl< জnZ~?5B@65+t;]i2<Ȧ>BCqH9\hpq#\e`Hxn| 35oi2+Y6$HXBB|װ`:|t8$6ĞhJ:Ob. #UOFzb<(ش5FߨP@gz~ '5]ҋT*|@?@īRl.81@@D@o+j9{װ#|IRB(PFDXJsM?W|t`b뫊\~l>vtxuO*lGH @JvdQ_b ;Q͕GVǀwga>[΄_/1)o?zz6~}1g8 ن r S}m':e xdc/t,X5N70CCRj#9ڥ0Έb1G]YX~ >"k_`30s&]k)+FW`R׎ٲG@nx#V?Nh.nh<6 nwm0I;C$ [a~(|Кt8d:hkႈG@ /FiГ8c9i"d4 g`-:7L09SpX52pOs oشvO\(VFli>NRz|Ch%Fqgg]RVFزMe@e#d ɦv1c1障Jk 4^εTAk'֫ .l] mw_irMu 9wd prx e[ ^Y{PÛ$uapn$限ճ"2`SV8 {BefE],ܤQ|vK7fJб: f7HDДhQ'FIx`-V.l+.#E8| l3rx!|JfE}ڜ9ՙl҃f Y;9E]g+r̓dDB;~M^T%Rg-;)\B/=V cW xc_>QI߰ 'eUԳ#iK]ʔx!kS.j|p)p٩@)NlJNx}ҙpaSO$y4/eZR5dO,frbٰjvЧT 0;3ipm'5UC^67c0ّhɑfvv^yx20ّh=ᇄc)FK'&ʤ>=(e =e*rVVus\0HHZ S RV+|4>>4ϨwP'x栍BvM "xU:4Y4 reUq8k^<Eo-,Ր[5?qR:fWgn6CT:L>L^pugHwU:9U\{[TG^íy}X_pN׀ۺ_L{F^T4xi=wga6mAN2%:e`lX$~\=ZjsBє7?L?y~r!ܳ hS"aXA)5M}>х?쮟_TiǶ쩏,?yMs PqfDܱ:GW QO6/GgQ.*E$Ĺ{ߗ&⋿x4^EcDd?ҔEu~HD+@y"=n}'<]k)/~ b:H8#u]#dMOͿT4jaE;_?N[t뜩IT=VF+0.}pn*&ǻpjKBY\+g~]sqgWeZ_y}kEA":EO)5l^}>3Szsu,KkzY;s|Xw@=p^X{8gvpMJ~ t4)!-82VR|ԑ§;F8gcIN/+@.S_35Q|;`s`̀   otì#{{vg2UUk0*s#mڊ/ [׌֓y ^g[%25-\pW*)y'«~;@f>y~DfGfiP B | [)Gvk;hT0 9}f)Q@Vₓ p3֦pEFXpϙe>#A`V&4J5A2N Fԅ@to7ٚޙH0e[<k0wSEpI[/jדf r\B%'6:H ̚q):kZ ly-V˳h?TcADʨ7P]qK+^W$!82)!5 tM e [\wh;>NN om?~K<]C$H8Z6\о"|.۳hg=IВ 8Y !0RX^!E_rb|֥»H!w l_f6| sCڏ g6vud~}^x7JBq hmy3iuE%(WԒ u8ʗ2;dհL;rE{7Ix|B6͉k)l(XBDXJ%Bs3Mg$sŻ X\u6 A}Ӫl3Mo`N:"L:`oFnVs5k=e:Ar7568(¶]7`s=8DBmnw46dBJ9 ؄*a -CDIDATxyp\ŝ?$- CH VH6ne7GmŁ$$E6TͲTb 0a;6^la[u?4Q?Io$VM4{ݯ׿_@)F1߁2 x  Yw!hl o솠u뾆Y4# $ %m<{ORuddbNx8R[O屃yЄHsW$:KPD@ |}PsvԱfnïہ(:H*j}-pԷycZF6&֢8E *ߌ"(J)Oxx <cȿ!(qT \կ?&c4T/'PxD03 OQI`܍.ӋLku^oq=OچԽA fNPT >6Zon,#|"l0w3$@[2hhP; ml>E㢻S<.>q\q, })vuj{/b@P@ٛ5?*ƴFG)L=$7抄*\& a@>%)<1WZeHN 6i[] =P|QX"W-Ȍl@/CCoJűeޭ=K+˄+|&Н ,2>4eB[6R bYN0t`Z6ď_]h^nUsjZJC* \unY%8(&e限2` EvR ¢K9zVm9|GZD`wk̕,ܡ'WqU'?syXBKuv Ku!OM#Eç0|V"O"f ma%*K : 6!}FœK(EÅ5҇tnOr)aP9&E~'L-6!%XB!+!>5)WTxMk̥p)!0K/Oj:4S\亊$ڇ*O`SH# +"ɔh chņT\2"LDAq9ΎTmӅbZ'[)g|Th)P /Q,lY0N(,5Z(6!m w-Հ#гq8JH 2_u{S.e)#܏ X&|mW~R2@EHo+e+ eOQPhtB-@ \ Y= VqBoU&7חNCw U $4hG4gf\Bw"z2)}u 4*CFFtmˆ\ádђ B Kggœ<хc%"=>B]1%(8Z #@s2`Yy\V{S{ڑ2է-eW#dFppp|X9ښ*Q!U:a<3>h+w\#AUKzش JO^oj0#7,vfg;<ٮe$auY3==(D>,jo]&K$VH(E+{*ֵuv}jMqGcւ3%Ǿ6}9fWH}$$cB+Wͤq3>:.=>5wrHՐ,V/5ÿ"N2_&Pq#UCB/Hx7f`p oί,- $1@G AWQpB85B Ek#\(VSԿ9pB.诒>ϳ/i]32!oS7]4AApIuVvqݯ4] EB78јk>32 #}W91!9>=d yڏtl㔁HyLc u<ʡ^iacrznXtz^pXHHow3(\4Nɴ2Jvb _[J EHz~`ۨvš 5B?&`YE$ܧ}=)ͨzO-=)MZ:íUkm4qHnT ZF/tr @/)k:7e`~xP,'6vL!lx4YNl< জnZ~?5B@65+t;]i2<Ȧ>BCqH9\hpq#\e`Hxn| 35oi2+Y6$HXBB|װ`:|t8$6ĞhJ:Ob. #UOFzb<(ش5FߨP@gz~ '5]ҋT*|@?@īRl.81@@D@o+j9{װ#|IRB(PFDXJsM?W|t`b뫊\~l>vtxuO*lGH @JvdQ_b ;Q͕GVǀwga>[΄_/1)o?zz6~}1g8 ن r S}m':e xdc/t,X5N70CCRj#9ڥ0Έb1G]YX~ >"k_`30s&]k)+FW`R׎ٲG@nx#V?Nh.nh<6 nwm0I;C$ [a~(|Кt8d:hkႈG@ /FiГ8c9i"d4 g`-:7L09SpX52pOs oشvO\(VFli>NRz|Ch%Fqgg]RVFزMe@e#d ɦv1c1障Jk 4^εTAk'֫ .l] mw_irMu 9wd prx e[ ^Y{PÛ$uapn$限ճ"2`SV8 {BefE],ܤQ|vK7fJб: f7HDДhQ'FIx`-V.l+.#E8| l3rx!|JfE}ڜ9ՙl҃f Y;9E]g+r̓dDB;~M^T%Rg-;)\B/=V cW xc_>QI߰ 'eUԳ#iK]ʔx!kS.j|p)p٩@)NlJNx}ҙpaSO$y4/eZR5dO,frbٰjvЧT 0;3ipm'5UC^67c0ّhɑfvv^yx20ّh=ᇄc)FK'&ʤ>=(e =e*rVVus\0HHZ S RV+|4>>4ϨwP'x栍BvM "xU:4Y4 reUq8k^<Eo-,Ր[5?qR:fWgn6CT:L>L^pugHwU:9U\{[TG^íy}X_pN׀ۺ_L{F^T4xi=wga6mAN2%:e`lX$~\=ZjsBє7?L?y~r!ܳ hS"aXA)5M}>х?쮟_TiǶ쩏,?yMs PqfDܱ:GW QO6/GgQ.*E$Ĺ{ߗ&⋿x4^EcDd?ҔEu~HD+@y"=n}'<]k)/~ b:H8#u]#dMOͿT4jaE;_?N[t뜩IT=VF+0.}pn*&ǻpjKBY\+g~]sqgWeZ_y}kEA":EO)5l^}>3Szsu,KkzY;s|Xw@=p^X{8gvpMJ~ t4)!-82VR|ԑ§;F8gcIN/+@.S_35Q|;`s`̀   otì#{{vg2UUk0*s#mڊ/ [׌֓y ^g[%25-\pW*)y'«~;@f>y~DfGfiP B | [)Gvk;hT0 9}f)Q@Vₓ p3֦pEFXpϙe>#A`V&4J5A2N Fԅ@to7ٚޙH0e[<k0wSEpI[/jדf r\B%'6:H ̚q):kZ ly-V˳h?TcADʨ7P]qK+^W$!82)!5 tM e [\wh;>NN om?~K<]C$H8Z6\о"|.۳hg=IВ 8Y !0RX^!E_rb|֥»H!w l_f6| sCڏ g6vud~}^x7JBq hmy3iuE%(WԒ u8ʗ2;dհL;rE{7Ix|B6͉k)l(XBDXJ%Bs3Mg$sŻ X\u6 A}Ӫl3Mo`N:"L:`oFnVs5k=e:Ar7568(¶]7`s=8DBmnw46dBJ9 ؄*a icon_large PK !:F#resources/base/media/icon_pause.svg icon_pause PK !:G"resources/base/media/icon_play.svg icon_play PK !:wr&resources/base/profile/main_pages.json{"src": ["pages/Index"]} g  7 0 c *H  T0 P1 0  `He0 *H {"version-name":"2.0.0","version-code":2,"app-distribution-type":"os_integration","uuid":"5027b99e-5f9e-465d-9508-a9e0134ffe18","validity":{"not-before":1594865258,"not-after":1689473258},"type":"release","bundle-info":{"developer-id":"OpenHarmony","distribution-certificate":"-----BEGIN CERTIFICATE-----\nMIICFDCCAZugAwIBAgIIf0y5BjgBI64wCgYIKoZIzj0EAwMwYzELMAkGA1UEBhMC\nQ04xFDASBgNVBAoTC09wZW5IYXJtb255MRkwFwYDVQQLExBPcGVuSGFybW9ueSBU\nZWFtMSMwIQYDVQQDExpPcGVuSGFybW9ueSBBcHBsaWNhdGlvbiBDQTAeFw0yNDAx\nMTIwNzQ4NTNaFw0zNDAxMDkwNzQ4NTNaMEoxFTATBgNVBAMMDGlkZV9kZW1vX2Fw\ncDENMAsGA1UECxMEVW5pdDEVMBMGA1UEChMMT3JnYW5pemF0aW9uMQswCQYDVQQG\nEwJDTjBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABB2mnOwrF3f+9m0irigI0IjT\nY86UBRimHJnz6X9T/lkNTH18/QjQt7/eIa/8texeNhOZWLMDJhcwFD8s/8VVtLaj\nUjBQMB0GA1UdDgQWBBRC9+K6+Xk9xivfGJ0Tb6yHCzAVVzAOBgNVHQ8BAf8EBAMC\nB4AwHwYDVR0jBBgwFoAU24a3IhbVC6FLt90le7nxBX2iLUcwCgYIKoZIzj0EAwMD\nZwAwZAIwfX51NnGDtlFmrXoRw8VgddNkJ7J+7fJVl+iP8u0XGsRi1sOcOzfTnPau\nCnTFUyC0AjAeNr3DVqg7YyDrmVFmyV0QgH3m79zcX6W34mxoU+l9aZAttuNkJsES\nZkDvAHAD/2Y=\n-----END CERTIFICATE-----\n","bundle-name":"ohos.samples.videoplayer","apl":"system_core","app-feature":"hos_system_app"},"acls":{"allowed-acls":[""]},"permissions":{"restricted-permissions":[]},"issuer":"pki_internal"}0<07m0 *H=0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA0 210202122105Z 491231122105Z0p1 0 UCN10U  OpenHarmony10U OpenHarmony Team100.U'OpenHarmony Application Profile Release0Y0*H=*H=BW빦Aqɒ(F7 *ČM7n+T?ȠQ Ó4nR0P0U#0ۆ" K%{}-G0U0Ua齧zNϕ_ R0 *H=i0f1 byH$BehwF>좘Bdf6`1jz :A$]L!O0D&RC$5xs~0D0ɠ80 *H=0h1 0 UCN10U  OpenHarmony10U OpenHarmony Team1(0&UOpenHarmony Application Root CA0 210202121418Z 491231121418Z0h1 0 UCN10U  OpenHarmony10U OpenHarmony Team1(0&UOpenHarmony Application Root CA0v0*H=+"bM6yk J(ocAmK{- vYY[@YGMGpB_T cG ޸_&r )QsYI~7GB0@0U00U0U:|Oј'Zw0 *H=g0d0wZw'1w>X' :*5z\-o#iY't0$$o]#R0J?yDuEpv0qOy֧+G0a0e=0 *H=0h1 0 UCN10U  OpenHarmony10U OpenHarmony Team1(0&UOpenHarmony Application Root CA0 210202121532Z 491231121532Z0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA0v0*H=+"b!ǝ5ʤ_A%'tC'֓ 7~pX~pvR0Wڗ(6P›ј!`+-Uc0a0U#0:|Oј'Zw0U00U0Uۆ" K%{}-G0 *H=h0e0m^8t:h_6}fOHU߉hI1ow:rR&-XŖl;NrapYtg4;.1A0=0k0c1 0 UCN10U  OpenHarmony10U OpenHarmony Team1#0!UOpenHarmony Application CA7m0  `Hei0 *H  1  *H 0 *H  1 240112074854Z0/ *H  1" R=bBzPK !:8ƕHVVets/modules.abcPK !:/MpcpcVets/sourceMaps.mapPK !:?nn \module.jsonPK !:I   pack.infoPK !:@resources.indexPK !:.І!^resources/base/media/app_icon.pngPK !:.І&resources/base/media/icon.pngPK !: #resources/base/media/icon_large.svgPK !:F# resources/base/media/icon_pause.svgPK !:G"( resources/base/media/icon_play.svgPK !:wr&resources/base/profile/main_pages.jsonPK $&#