From e9027951c40ab92099bfdbecee1edbb294e1b41e Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 4 Jun 2017 16:37:39 -0400 Subject: [PATCH] update web components --- .../emby-apiclient/connectionmanager.js | 2 +- .../emby-webcomponents/browserdeviceprofile.js | 2 +- .../cardbuilder/cardbuilder.js | 4 ++-- .../emby-webcomponents/guide/guide.js | 2 +- .../htmlvideoplayer/plugin.js | 2 +- .../emby-webcomponents/inputmanager.js | 2 +- .../nowplayingbar/nowplayingbar.css | 1 + .../nowplayingbar/nowplayingbar.js | 1 + .../playback/playbackmanager.js | 4 ++-- .../playback/playerselection.js | 2 +- .../emby-webcomponents/router.js | 2 +- .../viewmanager/viewmanager.js | 2 +- dashboard-ui/css/librarymenu.css | 2 +- dashboard-ui/css/nowplayingbar.css | 1 - dashboard-ui/dashboard/autoorganizelog.js | 2 +- dashboard-ui/dashboard/autoorganizesmart.js | 2 +- dashboard-ui/dashboard/dashboardgeneral.js | 2 +- dashboard-ui/dashboard/librarysettings.js | 2 +- dashboard-ui/dashboard/livetvtuner.js | 2 +- dashboard-ui/dashboard/wizardcomponents.js | 2 +- dashboard-ui/files/dummy.mp4 | Bin 328795 -> 0 bytes dashboard-ui/scripts/editorsidebar.js | 2 +- dashboard-ui/scripts/librarybrowser.js | 2 +- dashboard-ui/scripts/librarymenu.js | 2 +- dashboard-ui/scripts/nowplayingbar.js | 1 - dashboard-ui/scripts/nowplayingpage.js | 2 +- dashboard-ui/scripts/site.js | 3 ++- dashboard-ui/usernew.html | 1 - 28 files changed, 27 insertions(+), 27 deletions(-) create mode 100644 dashboard-ui/bower_components/emby-webcomponents/nowplayingbar/nowplayingbar.css create mode 100644 dashboard-ui/bower_components/emby-webcomponents/nowplayingbar/nowplayingbar.js delete mode 100644 dashboard-ui/css/nowplayingbar.css delete mode 100644 dashboard-ui/files/dummy.mp4 delete mode 100644 dashboard-ui/scripts/nowplayingbar.js diff --git a/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js b/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js index 954f292c2b..d36411c957 100644 --- a/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js +++ b/dashboard-ui/bower_components/emby-apiclient/connectionmanager.js @@ -1 +1 @@ -define(["events","apiclient","appStorage"],function(events,apiClientFactory,appStorage){"use strict";function paramsToString(params){var values=[];for(var key in params){var value=params[key];null!==value&&void 0!==value&&""!==value&&values.push(encodeURIComponent(key)+"="+encodeURIComponent(value))}return values.join("&")}function resolveFailure(instance,resolve){resolve({State:ConnectionState.Unavailable,ConnectUser:instance.connectUser()})}function mergeServers(credentialProvider,list1,list2){for(var i=0,length=list2.length;i0})}function findServers(){return new Promise(function(resolve,reject){var onFinish=function(foundServers){var servers=foundServers.map(function(foundServer){var info={Id:foundServer.Id,LocalAddress:convertEndpointAddressToManualAddress(foundServer)||foundServer.Address,Name:foundServer.Name};return info.LastConnectionMode=info.ManualAddress?ConnectionMode.Manual:ConnectionMode.Local,info});resolve(servers)};require(["serverdiscovery"],function(serverDiscovery){serverDiscovery.findServers(1e3).then(onFinish,function(){onFinish([])})})})}function convertEndpointAddressToManualAddress(info){if(info.Address&&info.EndpointAddress){var address=info.EndpointAddress.split(":")[0],parts=info.Address.split(":");if(parts.length>1){var portString=parts[parts.length-1];isNaN(parseInt(portString))||(address+=":"+portString)}return normalizeAddress(address)}return null}function stringEqualsIgnoreCase(str1,str2){return(str1||"").toLowerCase()===(str2||"").toLowerCase()}function compareVersions(a,b){a=a.split("."),b=b.split(".");for(var i=0,length=Math.max(a.length,b.length);ibVal)return 1}return 0}function testNextConnectionMode(tests,index,server,options,resolve){if(index>=tests.length)return console.log("Tested all connection modes. Failing server connection."),void resolveFailure(self,resolve);var mode=tests[index],address=ServerInfo.getServerAddress(server,mode),enableRetry=!1,skipTest=!1,timeout=defaultTimeout;return mode===ConnectionMode.Local?(enableRetry=!0,timeout=8e3,stringEqualsIgnoreCase(address,server.ManualAddress)&&(console.log("skipping LocalAddress test because it is the same as ManualAddress"),skipTest=!0)):mode===ConnectionMode.Manual&&stringEqualsIgnoreCase(address,server.LocalAddress)&&(enableRetry=!0,timeout=8e3),skipTest||!address?(console.log("skipping test at index "+index),void testNextConnectionMode(tests,index+1,server,options,resolve)):(console.log("testing connection mode "+mode+" with server "+server.Name),void tryConnect(address,timeout).then(function(result){1===compareVersions(self.minServerVersion(),result.Version)?(console.log("minServerVersion requirement not met. Server version: "+result.Version),resolve({State:ConnectionState.ServerUpdateNeeded,Servers:[server]})):result.Id!==server.Id?testNextConnectionMode(tests,index+1,server,options,resolve):(console.log("calling onSuccessfulConnection with connection mode "+mode+" with server "+server.Name),onSuccessfulConnection(server,result,mode,options,resolve))},function(){console.log("test failed for connection mode "+mode+" with server "+server.Name),enableRetry?testNextConnectionMode(tests,index+1,server,options,resolve):testNextConnectionMode(tests,index+1,server,options,resolve)}))}function onSuccessfulConnection(server,systemInfo,connectionMode,options,resolve){var credentials=credentialProvider.credentials();options=options||{},credentials.ConnectAccessToken&&options.enableAutoLogin!==!1?ensureConnectUser(credentials).then(function(){server.ExchangeToken?addAuthenticationInfoFromConnect(server,connectionMode,credentials).then(function(){afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)},function(){afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)}):afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)}):afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)}function afterConnectValidated(server,credentials,systemInfo,connectionMode,verifyLocalAuthentication,options,resolve){if(options=options||{},options.enableAutoLogin===!1)server.UserId=null,server.AccessToken=null;else if(verifyLocalAuthentication&&server.AccessToken&&options.enableAutoLogin!==!1)return void validateAuthentication(server,connectionMode).then(function(){afterConnectValidated(server,credentials,systemInfo,connectionMode,!1,options,resolve)});updateServerInfo(server,systemInfo),server.LastConnectionMode=connectionMode,options.updateDateLastAccessed!==!1&&(server.DateLastAccessed=(new Date).getTime()),credentialProvider.addOrUpdateServer(credentials.Servers,server),credentialProvider.credentials(credentials);var result={Servers:[]};result.ApiClient=getOrAddApiClient(server,connectionMode),result.ApiClient.setSystemInfo(systemInfo),result.State=server.AccessToken&&options.enableAutoLogin!==!1?ConnectionState.SignedIn:ConnectionState.ServerSignIn,result.Servers.push(server),result.ApiClient.updateServerInfo(server,connectionMode),result.State===ConnectionState.SignedIn&&afterConnected(result.ApiClient,options),resolve(result),events.trigger(self,"connected",[result])}function replaceAll(originalString,strReplace,strWith){var reg=new RegExp(strReplace,"ig");return originalString.replace(reg,strWith)}function normalizeAddress(address){return address=address.trim(),0!==address.toLowerCase().indexOf("http")&&(address="http://"+address),address=replaceAll(address,"Http:","http:"),address=replaceAll(address,"Https:","https:")}function addAppInfoToConnectRequest(request){request.headers=request.headers||{},request.headers["X-Application"]=appName+"/"+appVersion}function exchangePin(pinInfo){if(!pinInfo)throw new Error("pinInfo cannot be null");var request={type:"POST",url:getConnectUrl("pin/authenticate"),data:{deviceId:pinInfo.DeviceId,pin:pinInfo.Pin},dataType:"json"};return addAppInfoToConnectRequest(request),ajax(request)}console.log("Begin ConnectionManager constructor");var self=this;this._apiClients=[];var connectUser;return self.connectUser=function(){return connectUser},self._minServerVersion="3.2.3",self.appVersion=function(){return appVersion},self.capabilities=function(){return capabilities},self.deviceId=function(){return deviceId},self.credentialProvider=function(){return credentialProvider},self.connectUserId=function(){return credentialProvider.credentials().ConnectUserId},self.connectToken=function(){return credentialProvider.credentials().ConnectAccessToken},self.getServerInfo=function(id){var servers=credentialProvider.credentials().Servers;return servers.filter(function(s){return s.Id===id})[0]},self.getLastUsedServer=function(){var servers=credentialProvider.credentials().Servers;return servers.sort(function(a,b){return(b.DateLastAccessed||0)-(a.DateLastAccessed||0)}),servers.length?servers[0]:null},self.getLastUsedApiClient=function(){var servers=credentialProvider.credentials().Servers;if(servers.sort(function(a,b){return(b.DateLastAccessed||0)-(a.DateLastAccessed||0)}),!servers.length)return null;var server=servers[0];return getOrAddApiClient(server,server.LastConnectionMode)},self.addApiClient=function(apiClient){self._apiClients.push(apiClient);var existingServers=credentialProvider.credentials().Servers.filter(function(s){return stringEqualsIgnoreCase(s.ManualAddress,apiClient.serverAddress())||stringEqualsIgnoreCase(s.LocalAddress,apiClient.serverAddress())||stringEqualsIgnoreCase(s.RemoteAddress,apiClient.serverAddress())}),existingServer=existingServers.length?existingServers[0]:{};if(existingServer.DateLastAccessed=(new Date).getTime(),existingServer.LastConnectionMode=ConnectionMode.Manual,existingServer.ManualAddress=apiClient.serverAddress(),apiClient.serverInfo(existingServer),apiClient.onAuthenticated=function(instance,result){onAuthenticated(instance,result,{},!0)},!existingServers.length){var credentials=credentialProvider.credentials();credentials.Servers=[existingServer],credentialProvider.credentials(credentials)}events.trigger(self,"apiclientcreated",[apiClient]),existingServer.Id||apiClient.getPublicSystemInfo().then(function(systemInfo){var credentials=credentialProvider.credentials();existingServer.Id=systemInfo.Id,apiClient.serverInfo(existingServer),credentials.Servers=[existingServer],credentialProvider.credentials(credentials)})},self.clearData=function(){console.log("connection manager clearing data"),connectUser=null;var credentials=credentialProvider.credentials();credentials.ConnectAccessToken=null,credentials.ConnectUserId=null,credentials.Servers=[],credentialProvider.credentials(credentials)},self.getOrCreateApiClient=function(serverId){var credentials=credentialProvider.credentials(),servers=credentials.Servers.filter(function(s){return stringEqualsIgnoreCase(s.Id,serverId)});if(!servers.length)throw new Error("Server not found: "+serverId);var server=servers[0];return getOrAddApiClient(server,server.LastConnectionMode)},self.user=function(apiClient){return new Promise(function(resolve,reject){function onLocalUserDone(e){var image=getImageUrl(localUser);resolve({localUser:localUser,name:connectUser?connectUser.Name:localUser?localUser.Name:null,imageUrl:image.url,supportsImageParams:image.supportsParams})}function onEnsureConnectUserDone(){apiClient&&apiClient.getCurrentUserId()?apiClient.getCurrentUser().then(function(u){localUser=u,onLocalUserDone()},onLocalUserDone):onLocalUserDone()}var localUser,credentials=credentialProvider.credentials();!credentials.ConnectUserId||!credentials.ConnectAccessToken||apiClient&&apiClient.getCurrentUserId()?onEnsureConnectUserDone():ensureConnectUser(credentials).then(onEnsureConnectUserDone,onEnsureConnectUserDone)})},self.isLoggedIntoConnect=function(){return!(!self.connectToken()||!self.connectUserId())},self.logout=function(){console.log("begin connectionManager loguot");for(var promises=[],i=0,length=self._apiClients.length;i0})}function findServers(){return new Promise(function(resolve,reject){var onFinish=function(foundServers){var servers=foundServers.map(function(foundServer){var info={Id:foundServer.Id,LocalAddress:convertEndpointAddressToManualAddress(foundServer)||foundServer.Address,Name:foundServer.Name};return info.LastConnectionMode=info.ManualAddress?ConnectionMode.Manual:ConnectionMode.Local,info});resolve(servers)};require(["serverdiscovery"],function(serverDiscovery){serverDiscovery.findServers(1e3).then(onFinish,function(){onFinish([])})})})}function convertEndpointAddressToManualAddress(info){if(info.Address&&info.EndpointAddress){var address=info.EndpointAddress.split(":")[0],parts=info.Address.split(":");if(parts.length>1){var portString=parts[parts.length-1];isNaN(parseInt(portString))||(address+=":"+portString)}return normalizeAddress(address)}return null}function stringEqualsIgnoreCase(str1,str2){return(str1||"").toLowerCase()===(str2||"").toLowerCase()}function compareVersions(a,b){a=a.split("."),b=b.split(".");for(var i=0,length=Math.max(a.length,b.length);ibVal)return 1}return 0}function testNextConnectionMode(tests,index,server,options,resolve){if(index>=tests.length)return console.log("Tested all connection modes. Failing server connection."),void resolveFailure(self,resolve);var mode=tests[index],address=ServerInfo.getServerAddress(server,mode),enableRetry=!1,skipTest=!1,timeout=defaultTimeout;return mode===ConnectionMode.Local?(enableRetry=!0,timeout=8e3,stringEqualsIgnoreCase(address,server.ManualAddress)&&(console.log("skipping LocalAddress test because it is the same as ManualAddress"),skipTest=!0)):mode===ConnectionMode.Manual&&stringEqualsIgnoreCase(address,server.LocalAddress)&&(enableRetry=!0,timeout=8e3),skipTest||!address?(console.log("skipping test at index "+index),void testNextConnectionMode(tests,index+1,server,options,resolve)):(console.log("testing connection mode "+mode+" with server "+server.Name),void tryConnect(address,timeout).then(function(result){1===compareVersions(self.minServerVersion(),result.Version)?(console.log("minServerVersion requirement not met. Server version: "+result.Version),resolve({State:ConnectionState.ServerUpdateNeeded,Servers:[server]})):result.Id!==server.Id?testNextConnectionMode(tests,index+1,server,options,resolve):(console.log("calling onSuccessfulConnection with connection mode "+mode+" with server "+server.Name),onSuccessfulConnection(server,result,mode,options,resolve))},function(){console.log("test failed for connection mode "+mode+" with server "+server.Name),enableRetry?testNextConnectionMode(tests,index+1,server,options,resolve):testNextConnectionMode(tests,index+1,server,options,resolve)}))}function onSuccessfulConnection(server,systemInfo,connectionMode,options,resolve){var credentials=credentialProvider.credentials();options=options||{},credentials.ConnectAccessToken&&options.enableAutoLogin!==!1?ensureConnectUser(credentials).then(function(){server.ExchangeToken?addAuthenticationInfoFromConnect(server,connectionMode,credentials).then(function(){afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)},function(){afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)}):afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)}):afterConnectValidated(server,credentials,systemInfo,connectionMode,!0,options,resolve)}function afterConnectValidated(server,credentials,systemInfo,connectionMode,verifyLocalAuthentication,options,resolve){if(options=options||{},options.enableAutoLogin===!1)server.UserId=null,server.AccessToken=null;else if(verifyLocalAuthentication&&server.AccessToken&&options.enableAutoLogin!==!1)return void validateAuthentication(server,connectionMode).then(function(){afterConnectValidated(server,credentials,systemInfo,connectionMode,!1,options,resolve)});updateServerInfo(server,systemInfo),server.LastConnectionMode=connectionMode,options.updateDateLastAccessed!==!1&&(server.DateLastAccessed=(new Date).getTime()),credentialProvider.addOrUpdateServer(credentials.Servers,server),credentialProvider.credentials(credentials);var result={Servers:[]};result.ApiClient=getOrAddApiClient(server,connectionMode),result.ApiClient.setSystemInfo(systemInfo),result.State=server.AccessToken&&options.enableAutoLogin!==!1?ConnectionState.SignedIn:ConnectionState.ServerSignIn,result.Servers.push(server),result.ApiClient.updateServerInfo(server,connectionMode),result.State===ConnectionState.SignedIn&&afterConnected(result.ApiClient,options),resolve(result),events.trigger(self,"connected",[result])}function replaceAll(originalString,strReplace,strWith){var reg=new RegExp(strReplace,"ig");return originalString.replace(reg,strWith)}function normalizeAddress(address){return address=address.trim(),0!==address.toLowerCase().indexOf("http")&&(address="http://"+address),address=replaceAll(address,"Http:","http:"),address=replaceAll(address,"Https:","https:")}function addAppInfoToConnectRequest(request){request.headers=request.headers||{},request.headers["X-Application"]=appName+"/"+appVersion}function exchangePin(pinInfo){if(!pinInfo)throw new Error("pinInfo cannot be null");var request={type:"POST",url:getConnectUrl("pin/authenticate"),data:{deviceId:pinInfo.DeviceId,pin:pinInfo.Pin},dataType:"json"};return addAppInfoToConnectRequest(request),ajax(request)}console.log("Begin ConnectionManager constructor");var self=this;this._apiClients=[];var connectUser;return self.connectUser=function(){return connectUser},self._minServerVersion="3.2.5",self.appVersion=function(){return appVersion},self.capabilities=function(){return capabilities},self.deviceId=function(){return deviceId},self.credentialProvider=function(){return credentialProvider},self.connectUserId=function(){return credentialProvider.credentials().ConnectUserId},self.connectToken=function(){return credentialProvider.credentials().ConnectAccessToken},self.getServerInfo=function(id){var servers=credentialProvider.credentials().Servers;return servers.filter(function(s){return s.Id===id})[0]},self.getLastUsedServer=function(){var servers=credentialProvider.credentials().Servers;return servers.sort(function(a,b){return(b.DateLastAccessed||0)-(a.DateLastAccessed||0)}),servers.length?servers[0]:null},self.getLastUsedApiClient=function(){var servers=credentialProvider.credentials().Servers;if(servers.sort(function(a,b){return(b.DateLastAccessed||0)-(a.DateLastAccessed||0)}),!servers.length)return null;var server=servers[0];return getOrAddApiClient(server,server.LastConnectionMode)},self.addApiClient=function(apiClient){self._apiClients.push(apiClient);var existingServers=credentialProvider.credentials().Servers.filter(function(s){return stringEqualsIgnoreCase(s.ManualAddress,apiClient.serverAddress())||stringEqualsIgnoreCase(s.LocalAddress,apiClient.serverAddress())||stringEqualsIgnoreCase(s.RemoteAddress,apiClient.serverAddress())}),existingServer=existingServers.length?existingServers[0]:{};if(existingServer.DateLastAccessed=(new Date).getTime(),existingServer.LastConnectionMode=ConnectionMode.Manual,existingServer.ManualAddress=apiClient.serverAddress(),apiClient.serverInfo(existingServer),apiClient.onAuthenticated=function(instance,result){onAuthenticated(instance,result,{},!0)},!existingServers.length){var credentials=credentialProvider.credentials();credentials.Servers=[existingServer],credentialProvider.credentials(credentials)}events.trigger(self,"apiclientcreated",[apiClient]),existingServer.Id||apiClient.getPublicSystemInfo().then(function(systemInfo){var credentials=credentialProvider.credentials();existingServer.Id=systemInfo.Id,apiClient.serverInfo(existingServer),credentials.Servers=[existingServer],credentialProvider.credentials(credentials)})},self.clearData=function(){console.log("connection manager clearing data"),connectUser=null;var credentials=credentialProvider.credentials();credentials.ConnectAccessToken=null,credentials.ConnectUserId=null,credentials.Servers=[],credentialProvider.credentials(credentials)},self.getOrCreateApiClient=function(serverId){var credentials=credentialProvider.credentials(),servers=credentials.Servers.filter(function(s){return stringEqualsIgnoreCase(s.Id,serverId)});if(!servers.length)throw new Error("Server not found: "+serverId);var server=servers[0];return getOrAddApiClient(server,server.LastConnectionMode)},self.user=function(apiClient){return new Promise(function(resolve,reject){function onLocalUserDone(e){var image=getImageUrl(localUser);resolve({localUser:localUser,name:connectUser?connectUser.Name:localUser?localUser.Name:null,imageUrl:image.url,supportsImageParams:image.supportsParams})}function onEnsureConnectUserDone(){apiClient&&apiClient.getCurrentUserId()?apiClient.getCurrentUser().then(function(u){localUser=u,onLocalUserDone()},onLocalUserDone):onLocalUserDone()}var localUser,credentials=credentialProvider.credentials();!credentials.ConnectUserId||!credentials.ConnectAccessToken||apiClient&&apiClient.getCurrentUserId()?onEnsureConnectUserDone():ensureConnectUser(credentials).then(onEnsureConnectUserDone,onEnsureConnectUserDone)})},self.isLoggedIntoConnect=function(){return!(!self.connectToken()||!self.connectUserId())},self.logout=function(){console.log("begin connectionManager loguot");for(var promises=[],i=0,length=self._apiClients.length;i=2200?10:screenWidth>=2100?9:screenWidth>=1600?8:screenWidth>=1400?7:screenWidth>=1200?6:screenWidth>=800?5:screenWidth>=640?4:3;case"square":return screenWidth>=2100?9:screenWidth>=1800?8:screenWidth>=1400?7:screenWidth>=1200?6:screenWidth>=900?5:screenWidth>=700?4:screenWidth>=500?3:2;case"banner":return screenWidth>=2200?4:screenWidth>=1200?3:screenWidth>=800?2:1;case"backdrop":return screenWidth>=2500?6:screenWidth>=1600?5:screenWidth>=1200?4:screenWidth>=770?3:screenWidth>=420?2:1;case"smallBackdrop":return screenWidth>=1440?8:screenWidth>=1100?6:screenWidth>=800?5:screenWidth>=600?4:screenWidth>=540?3:screenWidth>=420?2:1;case"overflowPortrait":return screenWidth>=1e3?100/22:screenWidth>=540?100/30:100/42;case"overflowSquare":return screenWidth>=1e3?100/22:screenWidth>=540?100/30:100/42;case"overflowBackdrop":return screenWidth>=1e3?2.5:screenWidth>=640?100/56:screenWidth>=540?1.5625:100/72;case"overflowSmallBackdrop":return screenWidth>=1200?100/18:screenWidth>=1e3?100/24:screenWidth>=770?100/30:screenWidth>=540?2.5:100/60;default:return 4}}function isResizable(windowWidth){var screen=window.screen;if(screen){var screenWidth=screen.availWidth;if(screenWidth-windowWidth>20)return!0}return!1}function getImageWidth(shape){var screenWidth=dom.getWindowSize().innerWidth;if(isResizable(screenWidth)){var roundScreenTo=100;screenWidth=Math.floor(screenWidth/roundScreenTo)*roundScreenTo}window.screen&&(screenWidth=Math.min(screenWidth,screen.availWidth||screenWidth));var imagesPerRow=getPostersPerRow(shape,screenWidth),shapeWidth=screenWidth/imagesPerRow;return Math.round(shapeWidth)}function setCardData(items,options){options.shape=options.shape||"auto";var primaryImageAspectRatio=imageLoader.getPrimaryImageAspectRatio(items),isThumbAspectRatio=primaryImageAspectRatio&&Math.abs(primaryImageAspectRatio-1.777777778)<.3,isSquareAspectRatio=primaryImageAspectRatio&&Math.abs(primaryImageAspectRatio-1)<.33||primaryImageAspectRatio&&Math.abs(primaryImageAspectRatio-1.3333334)<.01;"auto"!==options.shape&&"autohome"!==options.shape&&"autooverflow"!==options.shape&&"autoVertical"!==options.shape||(options.preferThumb===!0||isThumbAspectRatio?options.shape="autooverflow"===options.shape?"overflowBackdrop":"backdrop":isSquareAspectRatio?(options.coverImage=!0,options.shape="autooverflow"===options.shape?"overflowSquare":"square"):primaryImageAspectRatio&&primaryImageAspectRatio>1.9?(options.shape="banner",options.coverImage=!0):primaryImageAspectRatio&&Math.abs(primaryImageAspectRatio-.6666667)<.2?options.shape="autooverflow"===options.shape?"overflowPortrait":"portrait":options.shape=options.defaultShape||("autooverflow"===options.shape?"overflowSquare":"square")),"auto"===options.preferThumb&&(options.preferThumb="backdrop"===options.shape||"overflowBackdrop"===options.shape),options.uiAspect=getDesiredAspect(options.shape),options.primaryImageAspectRatio=primaryImageAspectRatio,!options.width&&options.widths&&(options.width=options.widths[options.shape]),options.rows&&"number"!=typeof options.rows&&(options.rows=options.rows[options.shape]),layoutManager.tv&&("backdrop"===options.shape?options.width=options.width||500:"portrait"===options.shape?options.width=options.width||256:"square"===options.shape?options.width=options.width||256:"banner"===options.shape&&(options.width=options.width||800)),options.width=options.width||getImageWidth(options.shape)}function buildCardsHtmlInternal(items,options){var isVertical;"autoVertical"===options.shape&&(isVertical=!0),options.vibrant&&!appHost.supports("imageanalysis")&&(options.vibrant=!1),setCardData(items,options);var className="card";options.shape&&(className+=" "+options.shape+"Card"),options.cardCssClass&&(className+=" "+options.cardCssClass);var currentIndexValue,hasOpenRow,hasOpenSection,apiClient,lastServerId,i,length,html="",itemsInRow=0,sectionTitleTagName=options.sectionTitleTagName||"div";for(i=0,length=items.length;i=.5?.5:0)+"+":null);newIndexValue!==currentIndexValue&&(hasOpenRow&&(html+="",hasOpenRow=!1,itemsInRow=0),hasOpenSection&&(html+="",isVertical&&(html+=""),hasOpenSection=!1),html+=isVertical?'
':'
',html+="<"+sectionTitleTagName+' class="sectionTitle">'+newIndexValue+"",isVertical&&(html+='
'),currentIndexValue=newIndexValue,hasOpenSection=!0)}options.rows&&0===itemsInRow&&(hasOpenRow&&(html+="
",hasOpenRow=!1),html+='
',hasOpenRow=!0);var cardClass=className;html+=buildCard(i,item,apiClient,options,cardClass),itemsInRow++,options.rows&&itemsInRow>=options.rows&&(html+="
",hasOpenRow=!1,itemsInRow=0)}if(hasOpenRow&&(html+="
"),hasOpenSection&&(html+="
",isVertical&&(html+="")),options.leadingButtons)for(i=0,length=options.leadingButtons.length;i
'+options.leadingButtons[i].name+"
"+html;if(options.trailingButtons)for(i=0,length=options.trailingButtons.length;i
'+options.trailingButtons[i].name+"
";return html}function getDesiredAspect(shape){if(shape){if(shape=shape.toLowerCase(),shape.indexOf("portrait")!==-1)return 2/3;if(shape.indexOf("backdrop")!==-1)return 16/9;if(shape.indexOf("square")!==-1)return 1;if(shape.indexOf("banner")!==-1)return 1e3/185}return null}function getCardImageUrl(item,apiClient,options){var imageItem=item.ProgramInfo||item;item=imageItem;var width=options.width,height=null,primaryImageAspectRatio=imageLoader.getPrimaryImageAspectRatio([item]),forceName=!1,imgUrl=null,coverImage=!1,uiAspect=null;return options.preferThumb&&item.ImageTags&&item.ImageTags.Thumb?imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Thumb",maxWidth:width,tag:item.ImageTags.Thumb}):options.preferBanner&&item.ImageTags&&item.ImageTags.Banner?imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Banner",maxWidth:width,tag:item.ImageTags.Banner}):options.preferThumb&&item.SeriesThumbImageTag&&options.inheritThumb!==!1?imgUrl=apiClient.getScaledImageUrl(item.SeriesId,{type:"Thumb",maxWidth:width,tag:item.SeriesThumbImageTag}):options.preferThumb&&item.ParentThumbItemId&&options.inheritThumb!==!1&&"Photo"!==item.MediaType?imgUrl=apiClient.getScaledImageUrl(item.ParentThumbItemId,{type:"Thumb",maxWidth:width,tag:item.ParentThumbImageTag}):options.preferThumb&&item.BackdropImageTags&&item.BackdropImageTags.length?(imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Backdrop",maxWidth:width,tag:item.BackdropImageTags[0]}),forceName=!0):item.ImageTags&&item.ImageTags.Primary?(height=width&&primaryImageAspectRatio?Math.round(width/primaryImageAspectRatio):null,imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Primary",maxHeight:height,maxWidth:width,tag:item.ImageTags.Primary}),options.preferThumb&&options.showTitle!==!1&&(forceName=!0),primaryImageAspectRatio&&(uiAspect=getDesiredAspect(options.shape),uiAspect&&(coverImage=Math.abs(primaryImageAspectRatio-uiAspect)<=.2))):item.PrimaryImageTag?(height=width&&primaryImageAspectRatio?Math.round(width/primaryImageAspectRatio):null,imgUrl=apiClient.getScaledImageUrl(item.PrimaryImageItemId||item.Id||item.ItemId,{type:"Primary",maxHeight:height,maxWidth:width,tag:item.PrimaryImageTag}),options.preferThumb&&options.showTitle!==!1&&(forceName=!0),primaryImageAspectRatio&&(uiAspect=getDesiredAspect(options.shape),uiAspect&&(coverImage=Math.abs(primaryImageAspectRatio-uiAspect)<=.2))):item.ParentPrimaryImageTag?imgUrl=apiClient.getScaledImageUrl(item.ParentPrimaryImageItemId,{type:"Primary",maxWidth:width,tag:item.ParentPrimaryImageTag}):item.AlbumId&&item.AlbumPrimaryImageTag?(width=primaryImageAspectRatio?Math.round(height*primaryImageAspectRatio):null,imgUrl=apiClient.getScaledImageUrl(item.AlbumId,{type:"Primary",maxHeight:height,maxWidth:width,tag:item.AlbumPrimaryImageTag}),primaryImageAspectRatio&&(uiAspect=getDesiredAspect(options.shape),uiAspect&&(coverImage=Math.abs(primaryImageAspectRatio-uiAspect)<=.2))):"Season"===item.Type&&item.ImageTags&&item.ImageTags.Thumb?imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Thumb",maxWidth:width,tag:item.ImageTags.Thumb}):item.BackdropImageTags&&item.BackdropImageTags.length?imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Backdrop",maxWidth:width,tag:item.BackdropImageTags[0]}):item.ImageTags&&item.ImageTags.Thumb?imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Thumb",maxWidth:width,tag:item.ImageTags.Thumb}):item.SeriesThumbImageTag&&options.inheritThumb!==!1?imgUrl=apiClient.getScaledImageUrl(item.SeriesId,{type:"Thumb",maxWidth:width,tag:item.SeriesThumbImageTag}):item.ParentThumbItemId&&options.inheritThumb!==!1&&(imgUrl=apiClient.getScaledImageUrl(item.ParentThumbItemId,{type:"Thumb",maxWidth:width,tag:item.ParentThumbImageTag})),{imgUrl:imgUrl,forceName:forceName,coverImage:coverImage}}function getRandomInt(min,max){return Math.floor(Math.random()*(max-min+1))+min}function getDefaultColorIndex(str){if(str){for(var charIndex=Math.floor(str.length/2),character=String(str.substr(charIndex,1).charCodeAt()),sum=0,i=0;i0&&isOuterFooter&&(currentCssClass+=" cardText-secondary"),addRightMargin&&(currentCssClass+=" cardText-rightmargin"),text&&(html+="
",html+=text,html+="
",valid++,maxLines&&valid>=maxLines))break}if(forceLines)for(length=Math.min(lines.length,maxLines||lines.length);valid ",valid++;return html}function isUsingLiveTvNaming(item){return"Program"===item.Type||"Timer"===item.Type||"Recording"===item.Type}function getCardFooterText(item,apiClient,options,showTitle,forceName,overlayText,imgUrl,footerClass,progressHtml,isOuterFooter,cardFooterId,vibrantSwatch){var html="",showOtherText=isOuterFooter?!overlayText:overlayText;if(isOuterFooter&&options.cardLayout&&!layoutManager.tv&&"none"!==options.cardFooterAside){var moreIcon="dots-horiz"===appHost.moreIcon?"":"";html+='"}var titleAdded,cssClass=options.centerText?"cardText cardTextCentered":"cardText",lines=[],parentTitleUnderneath="MusicAlbum"===item.Type||"Audio"===item.Type||"MusicVideo"===item.Type;if(showOtherText&&(options.showParentTitle||options.showParentTitleOrTitle)&&!parentTitleUnderneath)if(isOuterFooter&&"Episode"===item.Type&&item.SeriesName&&item.SeriesId)lines.push(getTextActionButton({Id:item.SeriesId,ServerId:item.ServerId,Name:item.SeriesName,Type:"Series",IsFolder:!0}));else if(isUsingLiveTvNaming(item))lines.push(item.Name),item.IsSeries||(titleAdded=!0);else{var parentTitle=item.SeriesName||item.Series||item.Album||item.AlbumArtist||item.GameSystem||"";(parentTitle||showTitle)&&lines.push(parentTitle)}var showMediaTitle=showTitle&&!titleAdded||options.showParentTitleOrTitle&&!lines.length;if(showMediaTitle||titleAdded||!showTitle&&!forceName||(showMediaTitle=!0),showMediaTitle){var name="auto"!==options.showTitle||item.IsFolder||"Photo"!==item.MediaType?itemHelper.getDisplayName(item,{includeParentInfo:options.includeParentInfoInTitle}):"";lines.push(name)}if(showOtherText){if(options.showParentTitle&&parentTitleUnderneath&&(isOuterFooter&&item.AlbumArtists&&item.AlbumArtists.length?(item.AlbumArtists[0].Type="MusicArtist",item.AlbumArtists[0].IsFolder=!0,lines.push(getTextActionButton(item.AlbumArtists[0],null,item.ServerId))):lines.push(isUsingLiveTvNaming(item)?item.Name:item.SeriesName||item.Series||item.Album||item.AlbumArtist||item.GameSystem||"")),options.showItemCounts){var itemCountHtml=getItemCountsHtml(options,item);lines.push(itemCountHtml)}if(options.textLines)for(var additionalLines=options.textLines(item),i=0,length=additionalLines.length;i"+html,html+=""}return html}function getTextActionButton(item,text,serverId){if(text||(text=itemHelper.getDisplayName(item)),layoutManager.tv)return text;var html=""}function getItemCountsHtml(options,item){var childText,counts=[];if("Playlist"===item.Type){if(childText="",item.RunTimeTicks){var minutes=item.RunTimeTicks/6e8;minutes=minutes||1,childText+=globalize.translate("sharedcomponents#ValueMinutes",Math.round(minutes))}else childText+=globalize.translate("sharedcomponents#ValueMinutes",0);counts.push(childText)}else"Genre"===item.Type||"Studio"===item.Type?(item.MovieCount&&(childText=1===item.MovieCount?globalize.translate("sharedcomponents#ValueOneMovie"):globalize.translate("sharedcomponents#ValueMovieCount",item.MovieCount),counts.push(childText)),item.SeriesCount&&(childText=1===item.SeriesCount?globalize.translate("sharedcomponents#ValueOneSeries"):globalize.translate("sharedcomponents#ValueSeriesCount",item.SeriesCount),counts.push(childText)),item.EpisodeCount&&(childText=1===item.EpisodeCount?globalize.translate("sharedcomponents#ValueOneEpisode"):globalize.translate("sharedcomponents#ValueEpisodeCount",item.EpisodeCount),counts.push(childText)),item.GameCount&&(childText=1===item.GameCount?globalize.translate("sharedcomponents#ValueOneGame"):globalize.translate("sharedcomponents#ValueGameCount",item.GameCount),counts.push(childText))):"GameGenre"===item.Type?item.GameCount&&(childText=1===item.GameCount?globalize.translate("sharedcomponents#ValueOneGame"):globalize.translate("sharedcomponents#ValueGameCount",item.GameCount),counts.push(childText)):"MusicGenre"===item.Type||"MusicArtist"===options.context?(item.AlbumCount&&(childText=1===item.AlbumCount?globalize.translate("sharedcomponents#ValueOneAlbum"):globalize.translate("sharedcomponents#ValueAlbumCount",item.AlbumCount),counts.push(childText)),item.SongCount&&(childText=1===item.SongCount?globalize.translate("sharedcomponents#ValueOneSong"):globalize.translate("sharedcomponents#ValueSongCount",item.SongCount),counts.push(childText)),item.MusicVideoCount&&(childText=1===item.MusicVideoCount?globalize.translate("sharedcomponents#ValueOneMusicVideo"):globalize.translate("sharedcomponents#ValueMusicVideoCount",item.MusicVideoCount),counts.push(childText))):"Series"===item.Type&&(childText=1===item.RecursiveItemCount?globalize.translate("sharedcomponents#ValueOneEpisode"):globalize.translate("sharedcomponents#ValueEpisodeCount",item.RecursiveItemCount),counts.push(childText));return counts.join(", ")}function buildCard(index,item,apiClient,options,className){var action=options.action||"link",scalable=options.scalable!==!1;scalable&&(className+=" scalableCard "+options.shape+"Card-scalable");var imgInfo=getCardImageUrl(item,apiClient,options),imgUrl=imgInfo.imgUrl,forceName=imgInfo.forceName,showTitle="auto"===options.showTitle||(options.showTitle||"PhotoAlbum"===item.Type||"Folder"===item.Type),overlayText=options.overlayText;forceName&&!options.cardLayout&&null==overlayText&&(overlayText=!0);var cardImageContainerClass="cardImageContainer",coveredImage=options.coverImage||imgInfo.coverImage;coveredImage&&(cardImageContainerClass+=" coveredImage",("Photo"===item.MediaType||"PhotoAlbum"===item.Type||"Folder"===item.Type||item.ProgramInfo||"Program"===item.Type||"Recording"===item.Type)&&(cardImageContainerClass+=" coveredImage-noScale")),imgUrl||(cardImageContainerClass+=" "+getDefaultColorClass(item.Name));var separateCardBox=scalable,cardBoxClass=options.cardLayout?"cardBox visualCardBox":"cardBox";layoutManager.tv&&(browser.slow||(cardBoxClass+=" cardBox-focustransform"),!options.cardLayout&&separateCardBox||(cardBoxClass+=" card-focuscontent"));var footerCssClass,progressHtml=indicators.getProgressBarHtml(item),innerCardFooter="",footerOverlayed=!1,cardFooterId="cardFooter"+uniqueFooterIndex;uniqueFooterIndex++,overlayText?(footerCssClass=progressHtml?"innerCardFooter fullInnerCardFooter":"innerCardFooter",innerCardFooter+=getCardFooterText(item,apiClient,options,showTitle,forceName,overlayText,imgUrl,footerCssClass,progressHtml,!1,cardFooterId),footerOverlayed=!0):progressHtml&&(innerCardFooter+='
',innerCardFooter+=progressHtml,innerCardFooter+="
",progressHtml="");var mediaSourceCount=item.MediaSourceCount||1;mediaSourceCount>1&&(innerCardFooter+='
'+mediaSourceCount+"
");var vibrantSwatch=options.vibrant&&imgUrl?imageLoader.getCachedVibrantInfo(imgUrl):null,outerCardFooter="";overlayText||footerOverlayed||(footerCssClass=options.cardLayout?"cardFooter":"cardFooter cardFooter-transparent",outerCardFooter=getCardFooterText(item,apiClient,options,showTitle,forceName,overlayText,imgUrl,footerCssClass,progressHtml,!0,cardFooterId,vibrantSwatch)),outerCardFooter&&!options.cardLayout&&options.allowBottomPadding!==!1&&(cardBoxClass+=" cardBox-bottompadded"),separateCardBox||(cardImageContainerClass+=" "+cardBoxClass);var overlayButtons="";if(!layoutManager.tv){var overlayPlayButton=options.overlayPlayButton;if(null!=overlayPlayButton||options.overlayMoreButton||options.cardLayout||(overlayPlayButton="Video"===item.MediaType),!overlayPlayButton||item.IsPlaceHolder||"Virtual"===item.LocationType&&item.MediaType&&"Program"!==item.Type||"Person"===item.Type||(overlayButtons+=''),options.overlayMoreButton){var moreIcon="dots-horiz"===appHost.moreIcon?"":"";overlayButtons+='"}}options.showChildCountIndicator&&item.ChildCount&&(className+=" groupedCard");var cardImageContainerOpen,cardImageContainerClose="",cardBoxClose="",cardContentClose="",cardScalableClose="";if(separateCardBox){var cardContentOpen,cardContentClass="cardContent";options.cardLayout||(cardContentClass+=" cardContent-shadow"),layoutManager.tv?(cardContentOpen='
',cardContentClose="
"):(cardContentOpen='");var vibrantAttributes=options.vibrant&&imgUrl&&!vibrantSwatch?' data-vibrant="'+cardFooterId+'" data-swatch="db"':"";if(vibrantAttributes&&!browser.safari){cardImageContainerOpen='
';var imgClass="cardImage cardImage-img lazy";coveredImage&&(imgClass+=1===devicePixelRatio?" coveredImage-noscale-img":" coveredImage-img"),cardImageContainerOpen+=''}else cardImageContainerOpen=imgUrl?'
':'
';var cardScalableClass="cardScalable";layoutManager.tv&&!options.cardLayout&&(cardScalableClass+=" card-focuscontent"),cardImageContainerOpen='
'+cardContentOpen+cardImageContainerOpen,cardBoxClose="
",cardScalableClose="
",cardImageContainerClose="
"}else overlayButtons&&!separateCardBox?(cardImageContainerClass+=" cardImageContainerClass-button",cardImageContainerOpen=imgUrl?'",className+=" forceRelative"):(cardImageContainerOpen=imgUrl?'
':'
',cardImageContainerClose="
");var indicatorsHtml="";if(indicatorsHtml+=indicators.getSyncIndicator(item),indicatorsHtml+=indicators.getTimerIndicator(item),options.showVideoIndicator&&(indicatorsHtml+=indicators.getVideoIndicator(item)),indicatorsHtml+=options.showGroupCount?indicators.getChildCountIndicatorHtml(item,{minCount:1}):indicators.getPlayedIndicatorHtml(item),indicatorsHtml&&(cardImageContainerOpen+='
'+indicatorsHtml+"
"),!imgUrl){var defaultName=isUsingLiveTvNaming(item)?item.Name:itemHelper.getDisplayName(item);cardImageContainerOpen+='
'+defaultName+"
"}var tagName=!layoutManager.tv&&scalable||overlayButtons?"div":"button",nameWithPrefix=item.SortName||item.Name||"",prefix=nameWithPrefix.substring(0,Math.min(3,nameWithPrefix.length));prefix&&(prefix=prefix.toUpperCase());var timerAttributes="";item.TimerId&&(timerAttributes+=' data-timerid="'+item.TimerId+'"'),item.SeriesTimerId&&(timerAttributes+=' data-seriestimerid="'+item.SeriesTimerId+'"');var actionAttribute;"button"===tagName?(className+=" itemAction",actionAttribute=' data-action="'+action+'"'):actionAttribute="","MusicAlbum"!==item.Type&&"MusicArtist"!==item.Type&&"Audio"!==item.Type&&(className+=" card-withuserdata");var positionTicksData=item.UserData&&item.UserData.PlaybackPositionTicks?' data-positionticks="'+item.UserData.PlaybackPositionTicks+'"':"",collectionIdData=options.collectionId?' data-collectionid="'+options.collectionId+'"':"",playlistIdData=options.playlistId?' data-playlistid="'+options.playlistId+'"':"",mediaTypeData=item.MediaType?' data-mediatype="'+item.MediaType+'"':"",collectionTypeData=item.CollectionType?' data-collectiontype="'+item.CollectionType+'"':"",channelIdData=item.ChannelId?' data-channelid="'+item.ChannelId+'"':"",contextData=options.context?' data-context="'+options.context+'"':"",parentIdData=options.parentId?' data-parentid="'+options.parentId+'"':"";return"<"+tagName+' data-index="'+index+'"'+timerAttributes+actionAttribute+' data-isfolder="'+(item.IsFolder||!1)+'" data-serverid="'+(item.ServerId||options.serverId)+'" data-id="'+(item.Id||item.ItemId)+'" data-type="'+item.Type+'"'+mediaTypeData+collectionTypeData+channelIdData+positionTicksData+collectionIdData+playlistIdData+contextData+parentIdData+' data-prefix="'+prefix+'" class="'+className+'">'+cardImageContainerOpen+innerCardFooter+cardImageContainerClose+cardContentClose+overlayButtons+cardScalableClose+outerCardFooter+cardBoxClose+""}function buildCards(items,options){if(document.body.contains(options.itemsContainer)){if(options.parentContainer){if(!items.length)return void options.parentContainer.classList.add("hide");options.parentContainer.classList.remove("hide")}var html=buildCardsHtmlInternal(items,options);html?(options.itemsContainer.cardBuilderHtml!==html&&(options.itemsContainer.innerHTML=html,items.length<50?options.itemsContainer.cardBuilderHtml=html:options.itemsContainer.cardBuilderHtml=null),imageLoader.lazyChildren(options.itemsContainer)):(options.itemsContainer.innerHTML=html,options.itemsContainer.cardBuilderHtml=null),options.autoFocus&&focusManager.autoFocus(options.itemsContainer,!0)}}function ensureIndicators(card,indicatorsElem){if(indicatorsElem)return indicatorsElem;if(indicatorsElem=card.querySelector(".cardIndicators"),!indicatorsElem){var cardImageContainer=card.querySelector(".cardImageContainer");indicatorsElem=document.createElement("div"),indicatorsElem.classList.add("cardIndicators"),cardImageContainer.appendChild(indicatorsElem)}return indicatorsElem}function updateUserData(card,userData){var type=card.getAttribute("data-type"),enableCountIndicator="Series"===type||"BoxSet"===type||"Season"===type,indicatorsElem=null,playedIndicator=null,countIndicator=null,itemProgressBar=null;userData.Played?(playedIndicator=card.querySelector(".playedIndicator"),playedIndicator||(playedIndicator=document.createElement("div"),playedIndicator.classList.add("playedIndicator"),playedIndicator.classList.add("indicator"),indicatorsElem=ensureIndicators(card,indicatorsElem),indicatorsElem.appendChild(playedIndicator)),playedIndicator.innerHTML='check'):(playedIndicator=card.querySelector(".playedIndicator"),playedIndicator&&playedIndicator.parentNode.removeChild(playedIndicator)),userData.UnplayedItemCount?(countIndicator=card.querySelector(".countIndicator"),countIndicator||(countIndicator=document.createElement("div"),countIndicator.classList.add("countIndicator"),indicatorsElem=ensureIndicators(card,indicatorsElem),indicatorsElem.appendChild(countIndicator)),countIndicator.innerHTML=userData.UnplayedItemCount):enableCountIndicator&&(countIndicator=card.querySelector(".countIndicator"),countIndicator&&countIndicator.parentNode.removeChild(countIndicator));var progressHtml=indicators.getProgressBarHtml({Type:type,UserData:userData,MediaType:"Video"});if(progressHtml){if(itemProgressBar=card.querySelector(".itemProgressBar"),!itemProgressBar){itemProgressBar=document.createElement("div"),itemProgressBar.classList.add("itemProgressBar");var innerCardFooter=card.querySelector(".innerCardFooter");if(!innerCardFooter){innerCardFooter=document.createElement("div"),innerCardFooter.classList.add("innerCardFooter");var cardImageContainer=card.querySelector(".cardImageContainer");cardImageContainer.appendChild(innerCardFooter)}innerCardFooter.appendChild(itemProgressBar)}itemProgressBar.innerHTML=progressHtml}else itemProgressBar=card.querySelector(".itemProgressBar"),itemProgressBar&&itemProgressBar.parentNode.removeChild(itemProgressBar)}function onUserDataChanged(userData,scope){for(var cards=(scope||document.body).querySelectorAll('.card-withuserdata[data-id="'+userData.ItemId+'"]'),i=0,length=cards.length;i')}cell.setAttribute("data-timerid",newTimerId)}}function onTimerCancelled(id,itemsContainer){for(var cells=itemsContainer.querySelectorAll('.card[data-timerid="'+id+'"]'),i=0,length=cells.length;i=2200?10:screenWidth>=2100?9:screenWidth>=1600?8:screenWidth>=1400?7:screenWidth>=1200?6:screenWidth>=800?5:screenWidth>=640?4:3;case"square":return screenWidth>=2100?9:screenWidth>=1800?8:screenWidth>=1400?7:screenWidth>=1200?6:screenWidth>=900?5:screenWidth>=700?4:screenWidth>=500?3:2;case"banner":return screenWidth>=2200?4:screenWidth>=1200?3:screenWidth>=800?2:1;case"backdrop":return screenWidth>=2500?6:screenWidth>=1600?5:screenWidth>=1200?4:screenWidth>=770?3:screenWidth>=420?2:1;case"smallBackdrop":return screenWidth>=1440?8:screenWidth>=1100?6:screenWidth>=800?5:screenWidth>=600?4:screenWidth>=540?3:screenWidth>=420?2:1;case"overflowPortrait":return screenWidth>=1e3?100/22:screenWidth>=540?100/30:100/42;case"overflowSquare":return screenWidth>=1e3?100/22:screenWidth>=540?100/30:100/42;case"overflowBackdrop":return screenWidth>=1e3?2.5:screenWidth>=640?100/56:screenWidth>=540?1.5625:100/72;case"overflowSmallBackdrop":return screenWidth>=1200?100/18:screenWidth>=1e3?100/24:screenWidth>=770?100/30:screenWidth>=540?2.5:100/60;default:return 4}}function isResizable(windowWidth){var screen=window.screen;if(screen){var screenWidth=screen.availWidth;if(screenWidth-windowWidth>20)return!0}return!1}function getImageWidth(shape){var screenWidth=dom.getWindowSize().innerWidth;if(isResizable(screenWidth)){var roundScreenTo=100;screenWidth=Math.floor(screenWidth/roundScreenTo)*roundScreenTo}window.screen&&(screenWidth=Math.min(screenWidth,screen.availWidth||screenWidth));var imagesPerRow=getPostersPerRow(shape,screenWidth),shapeWidth=screenWidth/imagesPerRow;return Math.round(shapeWidth)}function setCardData(items,options){options.shape=options.shape||"auto";var primaryImageAspectRatio=imageLoader.getPrimaryImageAspectRatio(items),isThumbAspectRatio=primaryImageAspectRatio&&Math.abs(primaryImageAspectRatio-1.777777778)<.3,isSquareAspectRatio=primaryImageAspectRatio&&Math.abs(primaryImageAspectRatio-1)<.33||primaryImageAspectRatio&&Math.abs(primaryImageAspectRatio-1.3333334)<.01;"auto"!==options.shape&&"autohome"!==options.shape&&"autooverflow"!==options.shape&&"autoVertical"!==options.shape||(options.preferThumb===!0||isThumbAspectRatio?options.shape="autooverflow"===options.shape?"overflowBackdrop":"backdrop":isSquareAspectRatio?(options.coverImage=!0,options.shape="autooverflow"===options.shape?"overflowSquare":"square"):primaryImageAspectRatio&&primaryImageAspectRatio>1.9?(options.shape="banner",options.coverImage=!0):primaryImageAspectRatio&&Math.abs(primaryImageAspectRatio-.6666667)<.2?options.shape="autooverflow"===options.shape?"overflowPortrait":"portrait":options.shape=options.defaultShape||("autooverflow"===options.shape?"overflowSquare":"square")),"auto"===options.preferThumb&&(options.preferThumb="backdrop"===options.shape||"overflowBackdrop"===options.shape),options.uiAspect=getDesiredAspect(options.shape),options.primaryImageAspectRatio=primaryImageAspectRatio,!options.width&&options.widths&&(options.width=options.widths[options.shape]),options.rows&&"number"!=typeof options.rows&&(options.rows=options.rows[options.shape]),layoutManager.tv&&("backdrop"===options.shape?options.width=options.width||500:"portrait"===options.shape?options.width=options.width||256:"square"===options.shape?options.width=options.width||256:"banner"===options.shape&&(options.width=options.width||800)),options.width=options.width||getImageWidth(options.shape)}function buildCardsHtmlInternal(items,options){var isVertical;"autoVertical"===options.shape&&(isVertical=!0),options.vibrant&&!appHost.supports("imageanalysis")&&(options.vibrant=!1),setCardData(items,options);var className="card";options.shape&&(className+=" "+options.shape+"Card"),options.cardCssClass&&(className+=" "+options.cardCssClass);var currentIndexValue,hasOpenRow,hasOpenSection,apiClient,lastServerId,i,length,html="",itemsInRow=0,sectionTitleTagName=options.sectionTitleTagName||"div";for(i=0,length=items.length;i=.5?.5:0)+"+":null);newIndexValue!==currentIndexValue&&(hasOpenRow&&(html+="
",hasOpenRow=!1,itemsInRow=0),hasOpenSection&&(html+="
",isVertical&&(html+="
"),hasOpenSection=!1),html+=isVertical?'
':'
',html+="<"+sectionTitleTagName+' class="sectionTitle">'+newIndexValue+"",isVertical&&(html+='
'),currentIndexValue=newIndexValue,hasOpenSection=!0)}options.rows&&0===itemsInRow&&(hasOpenRow&&(html+="
",hasOpenRow=!1),html+='
',hasOpenRow=!0);var cardClass=className;html+=buildCard(i,item,apiClient,options,cardClass),itemsInRow++,options.rows&&itemsInRow>=options.rows&&(html+="
",hasOpenRow=!1,itemsInRow=0)}if(hasOpenRow&&(html+="
"),hasOpenSection&&(html+="
",isVertical&&(html+="")),options.leadingButtons)for(i=0,length=options.leadingButtons.length;i
'+options.leadingButtons[i].name+"
"+html;if(options.trailingButtons)for(i=0,length=options.trailingButtons.length;i
'+options.trailingButtons[i].name+"
";return html}function getDesiredAspect(shape){if(shape){if(shape=shape.toLowerCase(),shape.indexOf("portrait")!==-1)return 2/3;if(shape.indexOf("backdrop")!==-1)return 16/9;if(shape.indexOf("square")!==-1)return 1;if(shape.indexOf("banner")!==-1)return 1e3/185}return null}function getCardImageUrl(item,apiClient,options){var imageItem=item.ProgramInfo||item;item=imageItem;var width=options.width,height=null,primaryImageAspectRatio=imageLoader.getPrimaryImageAspectRatio([item]),forceName=!1,imgUrl=null,coverImage=!1,uiAspect=null;return options.preferThumb&&item.ImageTags&&item.ImageTags.Thumb?imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Thumb",maxWidth:width,tag:item.ImageTags.Thumb}):options.preferBanner&&item.ImageTags&&item.ImageTags.Banner?imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Banner",maxWidth:width,tag:item.ImageTags.Banner}):options.preferThumb&&item.SeriesThumbImageTag&&options.inheritThumb!==!1?imgUrl=apiClient.getScaledImageUrl(item.SeriesId,{type:"Thumb",maxWidth:width,tag:item.SeriesThumbImageTag}):options.preferThumb&&item.ParentThumbItemId&&options.inheritThumb!==!1&&"Photo"!==item.MediaType?imgUrl=apiClient.getScaledImageUrl(item.ParentThumbItemId,{type:"Thumb",maxWidth:width,tag:item.ParentThumbImageTag}):options.preferThumb&&item.BackdropImageTags&&item.BackdropImageTags.length?(imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Backdrop",maxWidth:width,tag:item.BackdropImageTags[0]}),forceName=!0):options.preferThumb&&item.ParentBackdropImageTags&&item.ParentBackdropImageTags.length?imgUrl=apiClient.getScaledImageUrl(item.ParentBackdropItemId,{type:"Backdrop",maxWidth:width,tag:item.ParentBackdropImageTags[0]}):item.ImageTags&&item.ImageTags.Primary?(height=width&&primaryImageAspectRatio?Math.round(width/primaryImageAspectRatio):null,imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Primary",maxHeight:height,maxWidth:width,tag:item.ImageTags.Primary}),options.preferThumb&&options.showTitle!==!1&&(forceName=!0),primaryImageAspectRatio&&(uiAspect=getDesiredAspect(options.shape),uiAspect&&(coverImage=Math.abs(primaryImageAspectRatio-uiAspect)<=.2))):item.PrimaryImageTag?(height=width&&primaryImageAspectRatio?Math.round(width/primaryImageAspectRatio):null,imgUrl=apiClient.getScaledImageUrl(item.PrimaryImageItemId||item.Id||item.ItemId,{type:"Primary",maxHeight:height,maxWidth:width,tag:item.PrimaryImageTag}),options.preferThumb&&options.showTitle!==!1&&(forceName=!0),primaryImageAspectRatio&&(uiAspect=getDesiredAspect(options.shape),uiAspect&&(coverImage=Math.abs(primaryImageAspectRatio-uiAspect)<=.2))):item.ParentPrimaryImageTag?imgUrl=apiClient.getScaledImageUrl(item.ParentPrimaryImageItemId,{type:"Primary",maxWidth:width,tag:item.ParentPrimaryImageTag}):item.AlbumId&&item.AlbumPrimaryImageTag?(width=primaryImageAspectRatio?Math.round(height*primaryImageAspectRatio):null,imgUrl=apiClient.getScaledImageUrl(item.AlbumId,{type:"Primary",maxHeight:height,maxWidth:width,tag:item.AlbumPrimaryImageTag}),primaryImageAspectRatio&&(uiAspect=getDesiredAspect(options.shape),uiAspect&&(coverImage=Math.abs(primaryImageAspectRatio-uiAspect)<=.2))):"Season"===item.Type&&item.ImageTags&&item.ImageTags.Thumb?imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Thumb",maxWidth:width,tag:item.ImageTags.Thumb}):item.BackdropImageTags&&item.BackdropImageTags.length?imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Backdrop",maxWidth:width,tag:item.BackdropImageTags[0]}):item.ImageTags&&item.ImageTags.Thumb?imgUrl=apiClient.getScaledImageUrl(item.Id,{type:"Thumb",maxWidth:width,tag:item.ImageTags.Thumb}):item.SeriesThumbImageTag&&options.inheritThumb!==!1?imgUrl=apiClient.getScaledImageUrl(item.SeriesId,{type:"Thumb",maxWidth:width,tag:item.SeriesThumbImageTag}):item.ParentThumbItemId&&options.inheritThumb!==!1?imgUrl=apiClient.getScaledImageUrl(item.ParentThumbItemId,{type:"Thumb",maxWidth:width,tag:item.ParentThumbImageTag}):item.ParentBackdropImageTags&&item.ParentBackdropImageTags.length&&(imgUrl=apiClient.getScaledImageUrl(item.ParentBackdropItemId,{type:"Backdrop",maxWidth:width,tag:item.ParentBackdropImageTags[0]})),{imgUrl:imgUrl,forceName:forceName,coverImage:coverImage}}function getRandomInt(min,max){return Math.floor(Math.random()*(max-min+1))+min}function getDefaultColorIndex(str){if(str){for(var charIndex=Math.floor(str.length/2),character=String(str.substr(charIndex,1).charCodeAt()),sum=0,i=0;i0&&isOuterFooter&&(currentCssClass+=" cardText-secondary"),addRightMargin&&(currentCssClass+=" cardText-rightmargin"),text&&(html+="
",html+=text,html+="
",valid++,maxLines&&valid>=maxLines))break}if(forceLines)for(length=Math.min(lines.length,maxLines||lines.length);valid ",valid++;return html}function isUsingLiveTvNaming(item){return"Program"===item.Type||"Timer"===item.Type||"Recording"===item.Type}function getCardFooterText(item,apiClient,options,showTitle,forceName,overlayText,imgUrl,footerClass,progressHtml,isOuterFooter,cardFooterId,vibrantSwatch){var html="",showOtherText=isOuterFooter?!overlayText:overlayText;if(isOuterFooter&&options.cardLayout&&!layoutManager.tv&&"none"!==options.cardFooterAside){var moreIcon="dots-horiz"===appHost.moreIcon?"":"";html+='"}var titleAdded,cssClass=options.centerText?"cardText cardTextCentered":"cardText",lines=[],parentTitleUnderneath="MusicAlbum"===item.Type||"Audio"===item.Type||"MusicVideo"===item.Type;if(showOtherText&&(options.showParentTitle||options.showParentTitleOrTitle)&&!parentTitleUnderneath)if(isOuterFooter&&"Episode"===item.Type&&item.SeriesName&&item.SeriesId)lines.push(getTextActionButton({Id:item.SeriesId,ServerId:item.ServerId,Name:item.SeriesName,Type:"Series",IsFolder:!0}));else if(isUsingLiveTvNaming(item))lines.push(item.Name),item.IsSeries||(titleAdded=!0);else{var parentTitle=item.SeriesName||item.Series||item.Album||item.AlbumArtist||item.GameSystem||"";(parentTitle||showTitle)&&lines.push(parentTitle)}var showMediaTitle=showTitle&&!titleAdded||options.showParentTitleOrTitle&&!lines.length;if(showMediaTitle||titleAdded||!showTitle&&!forceName||(showMediaTitle=!0),showMediaTitle){var name="auto"!==options.showTitle||item.IsFolder||"Photo"!==item.MediaType?itemHelper.getDisplayName(item,{includeParentInfo:options.includeParentInfoInTitle}):"";lines.push(name)}if(showOtherText){if(options.showParentTitle&&parentTitleUnderneath&&(isOuterFooter&&item.AlbumArtists&&item.AlbumArtists.length?(item.AlbumArtists[0].Type="MusicArtist",item.AlbumArtists[0].IsFolder=!0,lines.push(getTextActionButton(item.AlbumArtists[0],null,item.ServerId))):lines.push(isUsingLiveTvNaming(item)?item.Name:item.SeriesName||item.Series||item.Album||item.AlbumArtist||item.GameSystem||"")),options.showItemCounts){var itemCountHtml=getItemCountsHtml(options,item);lines.push(itemCountHtml)}if(options.textLines)for(var additionalLines=options.textLines(item),i=0,length=additionalLines.length;i"+html,html+=""}return html}function getTextActionButton(item,text,serverId){if(text||(text=itemHelper.getDisplayName(item)),layoutManager.tv)return text;var html=""}function getItemCountsHtml(options,item){var childText,counts=[];if("Playlist"===item.Type){if(childText="",item.RunTimeTicks){var minutes=item.RunTimeTicks/6e8;minutes=minutes||1,childText+=globalize.translate("sharedcomponents#ValueMinutes",Math.round(minutes))}else childText+=globalize.translate("sharedcomponents#ValueMinutes",0);counts.push(childText)}else"Genre"===item.Type||"Studio"===item.Type?(item.MovieCount&&(childText=1===item.MovieCount?globalize.translate("sharedcomponents#ValueOneMovie"):globalize.translate("sharedcomponents#ValueMovieCount",item.MovieCount),counts.push(childText)),item.SeriesCount&&(childText=1===item.SeriesCount?globalize.translate("sharedcomponents#ValueOneSeries"):globalize.translate("sharedcomponents#ValueSeriesCount",item.SeriesCount),counts.push(childText)),item.EpisodeCount&&(childText=1===item.EpisodeCount?globalize.translate("sharedcomponents#ValueOneEpisode"):globalize.translate("sharedcomponents#ValueEpisodeCount",item.EpisodeCount),counts.push(childText)),item.GameCount&&(childText=1===item.GameCount?globalize.translate("sharedcomponents#ValueOneGame"):globalize.translate("sharedcomponents#ValueGameCount",item.GameCount),counts.push(childText))):"GameGenre"===item.Type?item.GameCount&&(childText=1===item.GameCount?globalize.translate("sharedcomponents#ValueOneGame"):globalize.translate("sharedcomponents#ValueGameCount",item.GameCount),counts.push(childText)):"MusicGenre"===item.Type||"MusicArtist"===options.context?(item.AlbumCount&&(childText=1===item.AlbumCount?globalize.translate("sharedcomponents#ValueOneAlbum"):globalize.translate("sharedcomponents#ValueAlbumCount",item.AlbumCount),counts.push(childText)),item.SongCount&&(childText=1===item.SongCount?globalize.translate("sharedcomponents#ValueOneSong"):globalize.translate("sharedcomponents#ValueSongCount",item.SongCount),counts.push(childText)),item.MusicVideoCount&&(childText=1===item.MusicVideoCount?globalize.translate("sharedcomponents#ValueOneMusicVideo"):globalize.translate("sharedcomponents#ValueMusicVideoCount",item.MusicVideoCount),counts.push(childText))):"Series"===item.Type&&(childText=1===item.RecursiveItemCount?globalize.translate("sharedcomponents#ValueOneEpisode"):globalize.translate("sharedcomponents#ValueEpisodeCount",item.RecursiveItemCount),counts.push(childText));return counts.join(", ")}function buildCard(index,item,apiClient,options,className){var action=options.action||"link",scalable=options.scalable!==!1;scalable&&(className+=" scalableCard "+options.shape+"Card-scalable");var imgInfo=getCardImageUrl(item,apiClient,options),imgUrl=imgInfo.imgUrl,forceName=imgInfo.forceName,showTitle="auto"===options.showTitle||(options.showTitle||"PhotoAlbum"===item.Type||"Folder"===item.Type),overlayText=options.overlayText;forceName&&!options.cardLayout&&null==overlayText&&(overlayText=!0);var cardImageContainerClass="cardImageContainer",coveredImage=options.coverImage||imgInfo.coverImage;coveredImage&&(cardImageContainerClass+=" coveredImage",("Photo"===item.MediaType||"PhotoAlbum"===item.Type||"Folder"===item.Type||item.ProgramInfo||"Program"===item.Type||"Recording"===item.Type)&&(cardImageContainerClass+=" coveredImage-noScale")),imgUrl||(cardImageContainerClass+=" "+getDefaultColorClass(item.Name));var separateCardBox=scalable,cardBoxClass=options.cardLayout?"cardBox visualCardBox":"cardBox";layoutManager.tv&&(browser.slow||(cardBoxClass+=" cardBox-focustransform"),!options.cardLayout&&separateCardBox||(cardBoxClass+=" card-focuscontent"));var footerCssClass,progressHtml=indicators.getProgressBarHtml(item),innerCardFooter="",footerOverlayed=!1,cardFooterId="cardFooter"+uniqueFooterIndex;uniqueFooterIndex++,overlayText?(footerCssClass=progressHtml?"innerCardFooter fullInnerCardFooter":"innerCardFooter",innerCardFooter+=getCardFooterText(item,apiClient,options,showTitle,forceName,overlayText,imgUrl,footerCssClass,progressHtml,!1,cardFooterId),footerOverlayed=!0):progressHtml&&(innerCardFooter+='
',innerCardFooter+=progressHtml,innerCardFooter+="
",progressHtml="");var mediaSourceCount=item.MediaSourceCount||1;mediaSourceCount>1&&(innerCardFooter+='
'+mediaSourceCount+"
");var vibrantSwatch=options.vibrant&&imgUrl?imageLoader.getCachedVibrantInfo(imgUrl):null,outerCardFooter="";overlayText||footerOverlayed||(footerCssClass=options.cardLayout?"cardFooter":"cardFooter cardFooter-transparent",outerCardFooter=getCardFooterText(item,apiClient,options,showTitle,forceName,overlayText,imgUrl,footerCssClass,progressHtml,!0,cardFooterId,vibrantSwatch)),outerCardFooter&&!options.cardLayout&&options.allowBottomPadding!==!1&&(cardBoxClass+=" cardBox-bottompadded"),separateCardBox||(cardImageContainerClass+=" "+cardBoxClass);var overlayButtons="";if(!layoutManager.tv){var overlayPlayButton=options.overlayPlayButton;if(null!=overlayPlayButton||options.overlayMoreButton||options.cardLayout||(overlayPlayButton="Video"===item.MediaType),!overlayPlayButton||item.IsPlaceHolder||"Virtual"===item.LocationType&&item.MediaType&&"Program"!==item.Type||"Person"===item.Type||(overlayButtons+=''),options.overlayMoreButton){var moreIcon="dots-horiz"===appHost.moreIcon?"":"";overlayButtons+='"}}options.showChildCountIndicator&&item.ChildCount&&(className+=" groupedCard");var cardImageContainerOpen,cardImageContainerClose="",cardBoxClose="",cardContentClose="",cardScalableClose="";if(separateCardBox){var cardContentOpen,cardContentClass="cardContent";options.cardLayout||(cardContentClass+=" cardContent-shadow"),layoutManager.tv?(cardContentOpen='
',cardContentClose="
"):(cardContentOpen='");var vibrantAttributes=options.vibrant&&imgUrl&&!vibrantSwatch?' data-vibrant="'+cardFooterId+'" data-swatch="db"':"";if(vibrantAttributes&&!browser.safari){cardImageContainerOpen='
';var imgClass="cardImage cardImage-img lazy";coveredImage&&(imgClass+=1===devicePixelRatio?" coveredImage-noscale-img":" coveredImage-img"),cardImageContainerOpen+=''}else cardImageContainerOpen=imgUrl?'
':'
';var cardScalableClass="cardScalable";layoutManager.tv&&!options.cardLayout&&(cardScalableClass+=" card-focuscontent"),cardImageContainerOpen='
'+cardContentOpen+cardImageContainerOpen,cardBoxClose="
",cardScalableClose="
",cardImageContainerClose="
"}else overlayButtons&&!separateCardBox?(cardImageContainerClass+=" cardImageContainerClass-button",cardImageContainerOpen=imgUrl?'",className+=" forceRelative"):(cardImageContainerOpen=imgUrl?'
':'
',cardImageContainerClose="
");var indicatorsHtml="";if(indicatorsHtml+=indicators.getSyncIndicator(item),indicatorsHtml+=indicators.getTimerIndicator(item),options.showVideoIndicator&&(indicatorsHtml+=indicators.getVideoIndicator(item)),indicatorsHtml+=options.showGroupCount?indicators.getChildCountIndicatorHtml(item,{minCount:1}):indicators.getPlayedIndicatorHtml(item),indicatorsHtml&&(cardImageContainerOpen+='
'+indicatorsHtml+"
"),!imgUrl){var defaultName=isUsingLiveTvNaming(item)?item.Name:itemHelper.getDisplayName(item);cardImageContainerOpen+='
'+defaultName+"
"}var tagName=!layoutManager.tv&&scalable||overlayButtons?"div":"button",nameWithPrefix=item.SortName||item.Name||"",prefix=nameWithPrefix.substring(0,Math.min(3,nameWithPrefix.length));prefix&&(prefix=prefix.toUpperCase());var timerAttributes="";item.TimerId&&(timerAttributes+=' data-timerid="'+item.TimerId+'"'),item.SeriesTimerId&&(timerAttributes+=' data-seriestimerid="'+item.SeriesTimerId+'"');var actionAttribute;"button"===tagName?(className+=" itemAction",actionAttribute=' data-action="'+action+'"'):actionAttribute="","MusicAlbum"!==item.Type&&"MusicArtist"!==item.Type&&"Audio"!==item.Type&&(className+=" card-withuserdata");var positionTicksData=item.UserData&&item.UserData.PlaybackPositionTicks?' data-positionticks="'+item.UserData.PlaybackPositionTicks+'"':"",collectionIdData=options.collectionId?' data-collectionid="'+options.collectionId+'"':"",playlistIdData=options.playlistId?' data-playlistid="'+options.playlistId+'"':"",mediaTypeData=item.MediaType?' data-mediatype="'+item.MediaType+'"':"",collectionTypeData=item.CollectionType?' data-collectiontype="'+item.CollectionType+'"':"",channelIdData=item.ChannelId?' data-channelid="'+item.ChannelId+'"':"",contextData=options.context?' data-context="'+options.context+'"':"",parentIdData=options.parentId?' data-parentid="'+options.parentId+'"':"";return"<"+tagName+' data-index="'+index+'"'+timerAttributes+actionAttribute+' data-isfolder="'+(item.IsFolder||!1)+'" data-serverid="'+(item.ServerId||options.serverId)+'" data-id="'+(item.Id||item.ItemId)+'" data-type="'+item.Type+'"'+mediaTypeData+collectionTypeData+channelIdData+positionTicksData+collectionIdData+playlistIdData+contextData+parentIdData+' data-prefix="'+prefix+'" class="'+className+'">'+cardImageContainerOpen+innerCardFooter+cardImageContainerClose+cardContentClose+overlayButtons+cardScalableClose+outerCardFooter+cardBoxClose+""}function buildCards(items,options){if(document.body.contains(options.itemsContainer)){if(options.parentContainer){if(!items.length)return void options.parentContainer.classList.add("hide");options.parentContainer.classList.remove("hide")}var html=buildCardsHtmlInternal(items,options);html?(options.itemsContainer.cardBuilderHtml!==html&&(options.itemsContainer.innerHTML=html,items.length<50?options.itemsContainer.cardBuilderHtml=html:options.itemsContainer.cardBuilderHtml=null),imageLoader.lazyChildren(options.itemsContainer)):(options.itemsContainer.innerHTML=html,options.itemsContainer.cardBuilderHtml=null),options.autoFocus&&focusManager.autoFocus(options.itemsContainer,!0)}}function ensureIndicators(card,indicatorsElem){if(indicatorsElem)return indicatorsElem;if(indicatorsElem=card.querySelector(".cardIndicators"),!indicatorsElem){var cardImageContainer=card.querySelector(".cardImageContainer");indicatorsElem=document.createElement("div"),indicatorsElem.classList.add("cardIndicators"),cardImageContainer.appendChild(indicatorsElem)}return indicatorsElem}function updateUserData(card,userData){var type=card.getAttribute("data-type"),enableCountIndicator="Series"===type||"BoxSet"===type||"Season"===type,indicatorsElem=null,playedIndicator=null,countIndicator=null,itemProgressBar=null;userData.Played?(playedIndicator=card.querySelector(".playedIndicator"),playedIndicator||(playedIndicator=document.createElement("div"),playedIndicator.classList.add("playedIndicator"),playedIndicator.classList.add("indicator"),indicatorsElem=ensureIndicators(card,indicatorsElem),indicatorsElem.appendChild(playedIndicator)),playedIndicator.innerHTML='check'):(playedIndicator=card.querySelector(".playedIndicator"),playedIndicator&&playedIndicator.parentNode.removeChild(playedIndicator)),userData.UnplayedItemCount?(countIndicator=card.querySelector(".countIndicator"),countIndicator||(countIndicator=document.createElement("div"),countIndicator.classList.add("countIndicator"),indicatorsElem=ensureIndicators(card,indicatorsElem),indicatorsElem.appendChild(countIndicator)),countIndicator.innerHTML=userData.UnplayedItemCount):enableCountIndicator&&(countIndicator=card.querySelector(".countIndicator"),countIndicator&&countIndicator.parentNode.removeChild(countIndicator));var progressHtml=indicators.getProgressBarHtml({Type:type,UserData:userData,MediaType:"Video"});if(progressHtml){if(itemProgressBar=card.querySelector(".itemProgressBar"),!itemProgressBar){itemProgressBar=document.createElement("div"),itemProgressBar.classList.add("itemProgressBar");var innerCardFooter=card.querySelector(".innerCardFooter");if(!innerCardFooter){innerCardFooter=document.createElement("div"),innerCardFooter.classList.add("innerCardFooter");var cardImageContainer=card.querySelector(".cardImageContainer");cardImageContainer.appendChild(innerCardFooter)}innerCardFooter.appendChild(itemProgressBar)}itemProgressBar.innerHTML=progressHtml}else itemProgressBar=card.querySelector(".itemProgressBar"),itemProgressBar&&itemProgressBar.parentNode.removeChild(itemProgressBar)}function onUserDataChanged(userData,scope){for(var cards=(scope||document.body).querySelectorAll('.card-withuserdata[data-id="'+userData.ItemId+'"]'),i=0,length=cards.length;i')}cell.setAttribute("data-timerid",newTimerId)}}function onTimerCancelled(id,itemsContainer){for(var cells=itemsContainer.querySelectorAll('.card[data-timerid="'+id+'"]'),i=0,length=cells.length;i0&&pctOfWidth<=100?(guideProgramName.style.transform="translateX("+pctOfWidth+"%)",caret.classList.remove("hide")):(guideProgramName.style.transform="none",caret.classList.add("hide")))}function updateProgramCellsOnScroll(programGrid,programCells){isUpdatingProgramCellScroll||(isUpdatingProgramCellScroll=!0,requestAnimationFrame(function(){for(var scrollLeft=programGrid.scrollLeft,scrollPct=scrollLeft?scrollLeft/programGrid.scrollWidth*100:0,i=0,length=programCells.length;i=0?date.setHours(date.getHours(),cellCurationMinutes,0,0):date.setHours(date.getHours(),0,0,0),date}function showLoading(){loading.show()}function hideLoading(){loading.hide()}function startCurrentTimeUpdateInterval(){clearCurrentTimeUpdateInterval(),currentTimeUpdateInterval=setInterval(updateCurrentTimeIndicator,6e4),updateCurrentTimeIndicator()}function clearCurrentTimeUpdateInterval(){var interval=currentTimeUpdateInterval;interval&&clearInterval(interval),currentTimeUpdateInterval=null,currentTimeIndicatorBar=null,currentTimeIndicatorArrow=null}function updateCurrentTimeIndicator(){if(currentTimeIndicatorBar||(currentTimeIndicatorBar=options.element.querySelector(".currentTimeIndicatorBar")),currentTimeIndicatorArrow||(currentTimeIndicatorArrow=options.element.querySelector(".currentTimeIndicatorArrowContainer")),currentDate){var dateDifference=(new Date).getTime()-currentDate.getTime(),pct=dateDifference>0?dateDifference/totalRendererdMs:0;pct=Math.min(pct,1),pct<=0||pct>=1?(currentTimeIndicatorBar.classList.add("hide"),currentTimeIndicatorArrow.classList.add("hide")):(currentTimeIndicatorBar.classList.remove("hide"),currentTimeIndicatorArrow.classList.remove("hide"),currentTimeIndicatorBar.style.transform="scaleX("+pct+")",currentTimeIndicatorArrow.style.left=100*pct+"%")}}function getChannelLimit(context){return registrationServices.validateFeature("livetv").then(function(){var limit=browser.slow?100:500;return context.querySelector(".guideRequiresUnlock").classList.add("hide"),limit},function(){var limit=5;return context.querySelector(".guideRequiresUnlock").classList.remove("hide"),context.querySelector(".unlockText").innerHTML=globalize.translate("sharedcomponents#LiveTvGuideRequiresUnlock",limit),limit})}function reloadGuide(context,newStartDate,scrollToTimeMs,focusToTimeMs,startTimeOfDayMs,focusProgramOnRender){var apiClient=connectionManager.currentApiClient(),channelQuery={StartIndex:0,EnableFavoriteSorting:"false"!==userSettings.get("livetv-favoritechannelsattop")};channelQuery.UserId=apiClient.getCurrentUserId(),getChannelLimit(context).then(function(channelLimit){currentChannelLimit=channelLimit,showLoading(),channelQuery.StartIndex=currentStartIndex,channelQuery.Limit=channelLimit,channelQuery.AddCurrentProgram=!1,channelQuery.EnableUserData=!1,channelQuery.EnableImageTypes="Primary";var categories=self.categoryOptions.categories||[],displayMovieContent=!categories.length||categories.indexOf("movies")!==-1,displaySportsContent=!categories.length||categories.indexOf("sports")!==-1,displayNewsContent=!categories.length||categories.indexOf("news")!==-1,displayKidsContent=!categories.length||categories.indexOf("kids")!==-1,displaySeriesContent=!categories.length||categories.indexOf("series")!==-1;displayMovieContent&&displaySportsContent&&displayNewsContent&&displayKidsContent?(channelQuery.IsMovie=null,channelQuery.IsSports=null,channelQuery.IsKids=null,channelQuery.IsNews=null,channelQuery.IsSeries=null):(displayNewsContent&&(channelQuery.IsNews=!0),displaySportsContent&&(channelQuery.IsSports=!0),displayKidsContent&&(channelQuery.IsKids=!0),displayMovieContent&&(channelQuery.IsMovie=!0),displaySeriesContent&&(channelQuery.IsSeries=!0)),"DatePlayed"===userSettings.get("livetv-channelorder")?(channelQuery.SortBy="DatePlayed",channelQuery.SortOrder="Descending"):(channelQuery.SortBy=null,channelQuery.SortOrder=null);var date=newStartDate;date=new Date(date.getTime()+1e3);var nextDay=new Date(date.getTime()+msPerDay-2e3);apiClient.getLiveTvChannels(channelQuery).then(function(channelsResult){var btnPreviousPage=context.querySelector(".btnPreviousPage"),btnNextPage=context.querySelector(".btnNextPage");channelsResult.TotalRecordCount>channelLimit?(context.querySelector(".guideOptions").classList.remove("hide"),btnPreviousPage.classList.remove("hide"),btnNextPage.classList.remove("hide"),channelQuery.StartIndex?context.querySelector(".btnPreviousPage").disabled=!1:context.querySelector(".btnPreviousPage").disabled=!0,channelQuery.StartIndex+channelLimit",startDate.setTime(startDate.getTime()+cellDurationMs);return html+='
',html+="
",html+='
',html+='arrow_drop_down',html+="
"}function parseDates(program){if(!program.StartDateLocal)try{program.StartDateLocal=datetime.parseISO8601Date(program.StartDate,{toLocal:!0})}catch(err){}if(!program.EndDateLocal)try{program.EndDateLocal=datetime.parseISO8601Date(program.EndDate,{toLocal:!0})}catch(err){}return null}function getTimerIndicator(item){var status;if("SeriesTimer"===item.Type)return'';if(item.TimerId||item.SeriesTimerId)status=item.Status||"Cancelled";else{if("Timer"!==item.Type)return"";status=item.Status}return item.SeriesTimerId?"Cancelled"!==status?'':'':''}function getChannelProgramsHtml(context,date,channel,programs,options,listInfo){var html="",startMs=date.getTime(),endMs=startMs+msPerDay-1,outerCssClass=layoutManager.tv?"channelPrograms channelPrograms-tv":"channelPrograms";html+='
';for(var programsFound,clickAction=layoutManager.tv?"link":"programdialog",categories=self.categoryOptions.categories||[],displayMovieContent=!categories.length||categories.indexOf("movies")!==-1,displaySportsContent=!categories.length||categories.indexOf("sports")!==-1,displayNewsContent=!categories.length||categories.indexOf("news")!==-1,displayKidsContent=!categories.length||categories.indexOf("kids")!==-1,displaySeriesContent=!categories.length||categories.indexOf("series")!==-1,enableColorCodedBackgrounds="true"===userSettings.get("guide-colorcodedbackgrounds"),i=listInfo.startIndex,length=programs.length;iendMs)break;items[program.Id]=program;var renderStartMs=Math.max(program.StartDateLocal.getTime(),startMs),startPercent=(program.StartDateLocal.getTime()-startMs)/msPerDay;startPercent*=100,startPercent=Math.max(startPercent,0);var renderEndMs=Math.min(program.EndDateLocal.getTime(),endMs),endPercent=(renderEndMs-renderStartMs)/msPerDay;endPercent*=100;var cssClass="programCell clearButton itemAction",accentCssClass=null,displayInnerContent=!0;program.IsKids?(cssClass+=" childProgramInfo",displayInnerContent=displayKidsContent,accentCssClass="childAccent"):program.IsSports?(cssClass+=" sportsProgramInfo",displayInnerContent=displaySportsContent,accentCssClass="sportsAccent"):program.IsNews?(cssClass+=" newsProgramInfo",displayInnerContent=displayNewsContent,accentCssClass="newsAccent"):program.IsMovie?(cssClass+=" movieProgramInfo",displayInnerContent=displayMovieContent,accentCssClass="movieAccent"):program.IsSeries?(cssClass+=" plainProgramInfo",displayInnerContent=displaySeriesContent):(cssClass+=" plainProgramInfo",displayInnerContent=displayMovieContent&&displayNewsContent&&displaySportsContent&&displayKidsContent&&displaySeriesContent);var timerAttributes="";program.TimerId&&(timerAttributes+=' data-timerid="'+program.TimerId+'"'),program.SeriesTimerId&&(timerAttributes+=' data-seriestimerid="'+program.SeriesTimerId+'"');var isAttribute=endPercent>=2?' is="emby-programcell"':"";if(html+="',html+=displayInnerContent&&enableColorCodedBackgrounds&&accentCssClass?'
':'
',displayInnerContent){var guideProgramNameClass="guideProgramName";html+='
',html+='
',html+='
'+program.Name;var indicatorHtml=null;program.IsLive&&options.showLiveIndicator?indicatorHtml=''+globalize.translate("sharedcomponents#Live")+"":program.IsPremiere&&options.showPremiereIndicator?indicatorHtml=''+globalize.translate("sharedcomponents#Premiere")+"":program.IsSeries&&!program.IsRepeat&&options.showNewIndicator?indicatorHtml=''+globalize.translate("sharedcomponents#AttributeNew")+"":program.IsSeries&&program.IsRepeat&&options.showRepeatIndicator&&(indicatorHtml=''+globalize.translate("sharedcomponents#Repeat")+""),html+=indicatorHtml||"",program.EpisodeTitle&&options.showEpisodeTitle&&(html+='
',program.EpisodeTitle&&options.showEpisodeTitle&&(html+=''+program.EpisodeTitle+""),html+="
"),html+="
",program.IsHD&&options.showHdIcon&&(html+=layoutManager.tv?'
HD
':'
HD
'),html+=getTimerIndicator(program),html+="
"}html+="
",html+=""}}else if(programsFound)break}return html+="
"}function renderChannelHeaders(context,channels,apiClient){for(var html="",i=0,length=channels.length;i',channel.Number&&(html+='

'+channel.Number+"

"),!hasChannelImage&&channel.Name&&(html+='
'+channel.Name+"
"),html+=""}var channelList=context.querySelector(".channelsContainer");channelList.innerHTML=html,imageLoader.lazyChildren(channelList)}function renderPrograms(context,date,channels,programs){for(var allowIndicators=dom.getWindowSize().innerWidth>=600,options={showHdIcon:allowIndicators&&"true"===userSettings.get("guide-indicator-hd"),showLiveIndicator:allowIndicators&&"false"!==userSettings.get("guide-indicator-live"),showPremiereIndicator:allowIndicators&&"false"!==userSettings.get("guide-indicator-premiere"),showNewIndicator:allowIndicators&&"true"===userSettings.get("guide-indicator-new"),showRepeatIndicator:allowIndicators&&"true"===userSettings.get("guide-indicator-repeat"),showEpisodeTitle:!layoutManager.tv},listInfo={startIndex:0},html=[],i=0,length=channels.length;i=pct||left+width>=pct)break;programCell=programCell.nextSibling}programCell?focusManager.focus(programCell):focusManager.autoFocus(autoFocusParent,!0)}}function nativeScrollTo(container,pos,horizontal){container.scrollTo?horizontal?container.scrollTo(pos,0):container.scrollTo(0,pos):horizontal?container.scrollLeft=Math.round(pos):container.scrollTop=Math.round(pos)}function onProgramGridScroll(context,elem,timeslotHeaders){(new Date).getTime()-lastHeaderScroll>=1e3&&(lastGridScroll=(new Date).getTime(),nativeScrollTo(timeslotHeaders,elem.scrollLeft,!0)),updateProgramCellsOnScroll(elem,programCells)}function onTimeslotHeadersScroll(context,elem){(new Date).getTime()-lastGridScroll>=1e3&&(lastHeaderScroll=(new Date).getTime(),nativeScrollTo(programGrid,elem.scrollLeft,!0))}function changeDate(page,date,scrollToTimeMs,focusToTimeMs,startTimeOfDayMs,focusProgramOnRender){clearCurrentTimeUpdateInterval();var newStartDate=normalizeDateToTimeslot(date);currentDate=newStartDate,reloadGuide(page,newStartDate,scrollToTimeMs,focusToTimeMs,startTimeOfDayMs,focusProgramOnRender)}function getDateTabText(date,isActive,tabIndex){var cssClass=isActive?"emby-tab-button guide-date-tab-button emby-tab-button-active":"emby-tab-button guide-date-tab-button",html='"}function setDateRange(page,guideInfo){var today=new Date,nowHours=today.getHours();today.setHours(nowHours,0,0,0);var start=datetime.parseISO8601Date(guideInfo.StartDate,{toLocal:!0}),end=datetime.parseISO8601Date(guideInfo.EndDate,{toLocal:!0});start.setHours(nowHours,0,0,0),end.setHours(0,0,0,0),start.getTime()>=end.getTime()&&end.setDate(start.getDate()+1),start=new Date(Math.max(today,start));var dateTabsHtml="",tabIndex=0,date=new Date;currentDate&&date.setTime(currentDate.getTime()),date.setHours(nowHours,0,0,0);var startTimeOfDayMs=60*start.getHours()*60*1e3;for(startTimeOfDayMs+=60*start.getMinutes()*1e3;start<=end;){var isActive=date.getDate()===start.getDate()&&date.getMonth()===start.getMonth()&&date.getFullYear()===start.getFullYear();dateTabsHtml+=getDateTabText(start,isActive,tabIndex),start.setDate(start.getDate()+1),start.setHours(0,0,0,0),tabIndex++}page.querySelector(".emby-tabs-slider").innerHTML=dateTabsHtml,page.querySelector(".guideDateTabs").refresh();var newDate=new Date,newDateHours=newDate.getHours(),scrollToTimeMs=60*newDateHours*60*1e3,minutes=newDate.getMinutes();minutes>=30&&(scrollToTimeMs+=18e5);var focusToTimeMs=60*(60*newDateHours+minutes)*1e3;changeDate(page,date,scrollToTimeMs,focusToTimeMs,startTimeOfDayMs,layoutManager.tv)}function reloadPage(page){showLoading();var apiClient=connectionManager.currentApiClient();apiClient.getLiveTvGuideInfo().then(function(guideInfo){setDateRange(page,guideInfo)})}function getChildren(element){var nativeResult=element.children;if(nativeResult)return nativeResult;for(var node,i=0,nodes=element.childNodes,children=[];null!=(node=nodes[i++]);)1===node.nodeType&&children.push(node);return children}function isFirstChild(element){var children=getChildren(element.parentNode);return element===children[0]}function isLastChild(element){var children=getChildren(element.parentNode);return children.length>0&&element===children[children.length-1]}function onInputCommand(e){var container,target=e.target,programCell=dom.parentWithClass(target,"programCell"),scrollX=!1;switch(e.detail.command){case"up":container=programCell?programGrid:null,container&&isFirstChild(dom.parentWithClass(programCell,"channelPrograms"))&&(container=null),lastFocusDirection=e.detail.command,focusManager.moveUp(target,{container:container});break;case"down":container=programCell?programGrid:null,container&&isLastChild(dom.parentWithClass(programCell,"channelPrograms"))&&(container=null),lastFocusDirection=e.detail.command,focusManager.moveDown(target,{container:container});break;case"left":container=programCell?dom.parentWithClass(programCell,"channelPrograms"):null,container&&isFirstChild(programCell)&&(container=null),lastFocusDirection=e.detail.command,focusManager.moveLeft(target,{container:container}),scrollX=!0;break;case"right":container=programCell?dom.parentWithClass(programCell,"channelPrograms"):null,lastFocusDirection=e.detail.command,focusManager.moveRight(target,{container:container}),scrollX=!0;break;default:return}e.preventDefault(),e.stopPropagation()}function onScrollerFocus(e){var target=e.target,programCell=dom.parentWithClass(target,"programCell");if(programCell){var focused=target,id=focused.getAttribute("data-id"),item=items[id];item&&events.trigger(self,"focus",[{item:item}])}if("left"===lastFocusDirection||"right"===lastFocusDirection)programCell&&scrollHelper.toCenter(programGrid,programCell,!0);else if("up"===lastFocusDirection||"down"===lastFocusDirection){var verticalScroller=dom.parentWithClass(target,"guideVerticalScroller");if(verticalScroller){var focusedElement=programCell||dom.parentWithTag(target,"BUTTON");verticalScroller.toCenter(focusedElement,!0)}}}function setScrollEvents(view,enabled){if(layoutManager.tv){var guideVerticalScroller=view.querySelector(".guideVerticalScroller");enabled?inputManager.on(guideVerticalScroller,onInputCommand):inputManager.off(guideVerticalScroller,onInputCommand)}}function onTimerCreated(e,apiClient,data){for(var programId=data.ProgramId,newTimerId=data.Id,cells=options.element.querySelectorAll('.programCell[data-id="'+programId+'"]'),i=0,length=cells.length;i'),newTimerId&&cell.setAttribute("data-timerid",newTimerId)}}function onSeriesTimerCreated(e,apiClient,data){}function onTimerCancelled(e,apiClient,data){for(var id=data.Id,cells=options.element.querySelectorAll('.programCell[data-timerid="'+id+'"]'),i=0,length=cells.length;i0&&pctOfWidth<=100?(guideProgramName.style.transform="translateX("+pctOfWidth+"%)",caret.classList.remove("hide")):(guideProgramName.style.transform="none",caret.classList.add("hide")))}function updateProgramCellsOnScroll(programGrid,programCells){isUpdatingProgramCellScroll||(isUpdatingProgramCellScroll=!0,requestAnimationFrame(function(){for(var scrollLeft=programGrid.scrollLeft,scrollPct=scrollLeft?scrollLeft/programGrid.scrollWidth*100:0,i=0,length=programCells.length;i=0?date.setHours(date.getHours(),cellCurationMinutes,0,0):date.setHours(date.getHours(),0,0,0),date}function showLoading(){loading.show()}function hideLoading(){loading.hide()}function startCurrentTimeUpdateInterval(){clearCurrentTimeUpdateInterval(),currentTimeUpdateInterval=setInterval(updateCurrentTimeIndicator,6e4),updateCurrentTimeIndicator()}function clearCurrentTimeUpdateInterval(){var interval=currentTimeUpdateInterval;interval&&clearInterval(interval),currentTimeUpdateInterval=null,currentTimeIndicatorBar=null,currentTimeIndicatorArrow=null}function updateCurrentTimeIndicator(){if(currentTimeIndicatorBar||(currentTimeIndicatorBar=options.element.querySelector(".currentTimeIndicatorBar")),currentTimeIndicatorArrow||(currentTimeIndicatorArrow=options.element.querySelector(".currentTimeIndicatorArrowContainer")),currentDate){var dateDifference=(new Date).getTime()-currentDate.getTime(),pct=dateDifference>0?dateDifference/totalRendererdMs:0;pct=Math.min(pct,1),pct<=0||pct>=1?(currentTimeIndicatorBar.classList.add("hide"),currentTimeIndicatorArrow.classList.add("hide")):(currentTimeIndicatorBar.classList.remove("hide"),currentTimeIndicatorArrow.classList.remove("hide"),currentTimeIndicatorBar.style.transform="scaleX("+pct+")",currentTimeIndicatorArrow.style.left=100*pct+"%")}}function getChannelLimit(context){return registrationServices.validateFeature("livetv").then(function(){var limit=browser.slow?100:500;return context.querySelector(".guideRequiresUnlock").classList.add("hide"),limit},function(){var limit=5;return context.querySelector(".guideRequiresUnlock").classList.remove("hide"),context.querySelector(".unlockText").innerHTML=globalize.translate("sharedcomponents#LiveTvGuideRequiresUnlock",limit),limit})}function reloadGuide(context,newStartDate,scrollToTimeMs,focusToTimeMs,startTimeOfDayMs,focusProgramOnRender){var apiClient=connectionManager.currentApiClient(),channelQuery={StartIndex:0,EnableFavoriteSorting:"false"!==userSettings.get("livetv-favoritechannelsattop")};channelQuery.UserId=apiClient.getCurrentUserId(),getChannelLimit(context).then(function(channelLimit){currentChannelLimit=channelLimit,showLoading(),channelQuery.StartIndex=currentStartIndex,channelQuery.Limit=channelLimit,channelQuery.AddCurrentProgram=!1,channelQuery.EnableUserData=!1,channelQuery.EnableImageTypes="Primary";var categories=self.categoryOptions.categories||[],displayMovieContent=!categories.length||categories.indexOf("movies")!==-1,displaySportsContent=!categories.length||categories.indexOf("sports")!==-1,displayNewsContent=!categories.length||categories.indexOf("news")!==-1,displayKidsContent=!categories.length||categories.indexOf("kids")!==-1,displaySeriesContent=!categories.length||categories.indexOf("series")!==-1;displayMovieContent&&displaySportsContent&&displayNewsContent&&displayKidsContent?(channelQuery.IsMovie=null,channelQuery.IsSports=null,channelQuery.IsKids=null,channelQuery.IsNews=null,channelQuery.IsSeries=null):(displayNewsContent&&(channelQuery.IsNews=!0),displaySportsContent&&(channelQuery.IsSports=!0),displayKidsContent&&(channelQuery.IsKids=!0),displayMovieContent&&(channelQuery.IsMovie=!0),displaySeriesContent&&(channelQuery.IsSeries=!0)),"DatePlayed"===userSettings.get("livetv-channelorder")?(channelQuery.SortBy="DatePlayed",channelQuery.SortOrder="Descending"):(channelQuery.SortBy=null,channelQuery.SortOrder=null);var date=newStartDate;date=new Date(date.getTime()+1e3);var nextDay=new Date(date.getTime()+msPerDay-2e3);apiClient.getLiveTvChannels(channelQuery).then(function(channelsResult){var btnPreviousPage=context.querySelector(".btnPreviousPage"),btnNextPage=context.querySelector(".btnNextPage");channelsResult.TotalRecordCount>channelLimit?(context.querySelector(".guideOptions").classList.remove("hide"),btnPreviousPage.classList.remove("hide"),btnNextPage.classList.remove("hide"),channelQuery.StartIndex?context.querySelector(".btnPreviousPage").disabled=!1:context.querySelector(".btnPreviousPage").disabled=!0,channelQuery.StartIndex+channelLimit",startDate.setTime(startDate.getTime()+cellDurationMs);return html+='
',html+="
",html+='
',html+='arrow_drop_down',html+="
"}function parseDates(program){if(!program.StartDateLocal)try{program.StartDateLocal=datetime.parseISO8601Date(program.StartDate,{toLocal:!0})}catch(err){}if(!program.EndDateLocal)try{program.EndDateLocal=datetime.parseISO8601Date(program.EndDate,{toLocal:!0})}catch(err){}return null}function getTimerIndicator(item){var status;if("SeriesTimer"===item.Type)return'';if(item.TimerId||item.SeriesTimerId)status=item.Status||"Cancelled";else{if("Timer"!==item.Type)return"";status=item.Status}return item.SeriesTimerId?"Cancelled"!==status?'':'':''}function getChannelProgramsHtml(context,date,channel,programs,options,listInfo){var html="",startMs=date.getTime(),endMs=startMs+msPerDay-1,outerCssClass=layoutManager.tv?"channelPrograms channelPrograms-tv":"channelPrograms";html+='
';for(var programsFound,clickAction=layoutManager.tv?"link":"programdialog",categories=self.categoryOptions.categories||[],displayMovieContent=!categories.length||categories.indexOf("movies")!==-1,displaySportsContent=!categories.length||categories.indexOf("sports")!==-1,displayNewsContent=!categories.length||categories.indexOf("news")!==-1,displayKidsContent=!categories.length||categories.indexOf("kids")!==-1,displaySeriesContent=!categories.length||categories.indexOf("series")!==-1,enableColorCodedBackgrounds="true"===userSettings.get("guide-colorcodedbackgrounds"),i=listInfo.startIndex,length=programs.length;iendMs)break;items[program.Id]=program;var renderStartMs=Math.max(program.StartDateLocal.getTime(),startMs),startPercent=(program.StartDateLocal.getTime()-startMs)/msPerDay;startPercent*=100,startPercent=Math.max(startPercent,0);var renderEndMs=Math.min(program.EndDateLocal.getTime(),endMs),endPercent=(renderEndMs-renderStartMs)/msPerDay;endPercent*=100;var cssClass="programCell clearButton itemAction",accentCssClass=null,displayInnerContent=!0;program.IsKids?(cssClass+=" childProgramInfo",displayInnerContent=displayKidsContent,accentCssClass="childAccent"):program.IsSports?(cssClass+=" sportsProgramInfo",displayInnerContent=displaySportsContent,accentCssClass="sportsAccent"):program.IsNews?(cssClass+=" newsProgramInfo",displayInnerContent=displayNewsContent,accentCssClass="newsAccent"):program.IsMovie?(cssClass+=" movieProgramInfo",displayInnerContent=displayMovieContent,accentCssClass="movieAccent"):program.IsSeries?(cssClass+=" plainProgramInfo",displayInnerContent=displaySeriesContent):(cssClass+=" plainProgramInfo",displayInnerContent=displayMovieContent&&displayNewsContent&&displaySportsContent&&displayKidsContent&&displaySeriesContent);var timerAttributes="";program.TimerId&&(timerAttributes+=' data-timerid="'+program.TimerId+'"'),program.SeriesTimerId&&(timerAttributes+=' data-seriestimerid="'+program.SeriesTimerId+'"');var isAttribute=endPercent>=2?' is="emby-programcell"':"";if(html+="',html+=displayInnerContent&&enableColorCodedBackgrounds&&accentCssClass?'
':'
',displayInnerContent){var guideProgramNameClass="guideProgramName";html+='
',html+='
',html+='
'+program.Name;var indicatorHtml=null;program.IsLive&&options.showLiveIndicator?indicatorHtml=''+globalize.translate("sharedcomponents#Live")+"":program.IsPremiere&&options.showPremiereIndicator?indicatorHtml=''+globalize.translate("sharedcomponents#Premiere")+"":program.IsSeries&&!program.IsRepeat&&options.showNewIndicator?indicatorHtml=''+globalize.translate("sharedcomponents#AttributeNew")+"":program.IsSeries&&program.IsRepeat&&options.showRepeatIndicator&&(indicatorHtml=''+globalize.translate("sharedcomponents#Repeat")+""),html+=indicatorHtml||"",program.EpisodeTitle&&options.showEpisodeTitle&&(html+='
',program.EpisodeTitle&&options.showEpisodeTitle&&(html+=''+program.EpisodeTitle+""),html+="
"),html+="
",program.IsHD&&options.showHdIcon&&(html+=layoutManager.tv?'
HD
':'
HD
'),html+=getTimerIndicator(program),html+="
"}html+="
",html+=""}}else if(programsFound)break}return html+="
"}function renderChannelHeaders(context,channels,apiClient){for(var html="",i=0,length=channels.length;i',channel.Number&&(html+='

'+channel.Number+"

"),!hasChannelImage&&channel.Name&&(html+='
'+channel.Name+"
"),html+=""}var channelList=context.querySelector(".channelsContainer");channelList.innerHTML=html,imageLoader.lazyChildren(channelList)}function renderPrograms(context,date,channels,programs){for(var allowIndicators=dom.getWindowSize().innerWidth>=600,options={showHdIcon:allowIndicators&&"true"===userSettings.get("guide-indicator-hd"),showLiveIndicator:allowIndicators&&"false"!==userSettings.get("guide-indicator-live"),showPremiereIndicator:allowIndicators&&"false"!==userSettings.get("guide-indicator-premiere"),showNewIndicator:allowIndicators&&"true"===userSettings.get("guide-indicator-new"),showRepeatIndicator:allowIndicators&&"true"===userSettings.get("guide-indicator-repeat"),showEpisodeTitle:!layoutManager.tv},listInfo={startIndex:0},html=[],i=0,length=channels.length;i=pct||left+width>=pct)break;programCell=programCell.nextSibling}programCell?focusManager.focus(programCell):focusManager.autoFocus(autoFocusParent,!0)}}function nativeScrollTo(container,pos,horizontal){container.scrollTo?horizontal?container.scrollTo(pos,0):container.scrollTo(0,pos):horizontal?container.scrollLeft=Math.round(pos):container.scrollTop=Math.round(pos)}function onProgramGridScroll(context,elem,timeslotHeaders){(new Date).getTime()-lastHeaderScroll>=1e3&&(lastGridScroll=(new Date).getTime(),nativeScrollTo(timeslotHeaders,elem.scrollLeft,!0)),updateProgramCellsOnScroll(elem,programCells)}function onTimeslotHeadersScroll(context,elem){(new Date).getTime()-lastGridScroll>=1e3&&(lastHeaderScroll=(new Date).getTime(),nativeScrollTo(programGrid,elem.scrollLeft,!0))}function changeDate(page,date,scrollToTimeMs,focusToTimeMs,startTimeOfDayMs,focusProgramOnRender){clearCurrentTimeUpdateInterval();var newStartDate=normalizeDateToTimeslot(date);currentDate=newStartDate,reloadGuide(page,newStartDate,scrollToTimeMs,focusToTimeMs,startTimeOfDayMs,focusProgramOnRender)}function getDateTabText(date,isActive,tabIndex){var cssClass=isActive?"emby-tab-button guide-date-tab-button emby-tab-button-active":"emby-tab-button guide-date-tab-button",html='"}function setDateRange(page,guideInfo){var today=new Date,nowHours=today.getHours();today.setHours(nowHours,0,0,0);var start=datetime.parseISO8601Date(guideInfo.StartDate,{toLocal:!0}),end=datetime.parseISO8601Date(guideInfo.EndDate,{toLocal:!0});start.setHours(nowHours,0,0,0),end.setHours(0,0,0,0),start.getTime()>=end.getTime()&&end.setDate(start.getDate()+1),start=new Date(Math.max(today,start));var dateTabsHtml="",tabIndex=0,date=new Date;currentDate&&date.setTime(currentDate.getTime()),date.setHours(nowHours,0,0,0);var startTimeOfDayMs=60*start.getHours()*60*1e3;for(startTimeOfDayMs+=60*start.getMinutes()*1e3;start<=end;){var isActive=date.getDate()===start.getDate()&&date.getMonth()===start.getMonth()&&date.getFullYear()===start.getFullYear();dateTabsHtml+=getDateTabText(start,isActive,tabIndex),start.setDate(start.getDate()+1),start.setHours(0,0,0,0),tabIndex++}page.querySelector(".emby-tabs-slider").innerHTML=dateTabsHtml,page.querySelector(".guideDateTabs").refresh();var newDate=new Date,newDateHours=newDate.getHours(),scrollToTimeMs=60*newDateHours*60*1e3,minutes=newDate.getMinutes();minutes>=30&&(scrollToTimeMs+=18e5);var focusToTimeMs=60*(60*newDateHours+minutes)*1e3;changeDate(page,date,scrollToTimeMs,focusToTimeMs,startTimeOfDayMs,layoutManager.tv)}function reloadPage(page){showLoading();var apiClient=connectionManager.currentApiClient();apiClient.getLiveTvGuideInfo().then(function(guideInfo){setDateRange(page,guideInfo)})}function getChildren(element){var nativeResult=element.children;if(nativeResult)return nativeResult;for(var node,i=0,nodes=element.childNodes,children=[];null!=(node=nodes[i++]);)1===node.nodeType&&children.push(node);return children}function isFirstChild(element){var children=getChildren(element.parentNode);return element===children[0]}function isLastChild(element){var children=getChildren(element.parentNode);return children.length>0&&element===children[children.length-1]}function onInputCommand(e){var container,target=e.target,programCell=dom.parentWithClass(target,"programCell"),scrollX=!1;switch(e.detail.command){case"up":container=programCell?programGrid:null,container&&isFirstChild(dom.parentWithClass(programCell,"channelPrograms"))&&(container=null),lastFocusDirection=e.detail.command,focusManager.moveUp(target,{container:container});break;case"down":container=programCell?programGrid:null,container&&isLastChild(dom.parentWithClass(programCell,"channelPrograms"))&&(container=null),lastFocusDirection=e.detail.command,focusManager.moveDown(target,{container:container});break;case"left":container=programCell?dom.parentWithClass(programCell,"channelPrograms"):null,container&&isFirstChild(programCell)&&(container=null),lastFocusDirection=e.detail.command,focusManager.moveLeft(target,{container:container}),scrollX=!0;break;case"right":container=programCell?dom.parentWithClass(programCell,"channelPrograms"):null,lastFocusDirection=e.detail.command,focusManager.moveRight(target,{container:container}),scrollX=!0;break;default:return}e.preventDefault(),e.stopPropagation()}function onScrollerFocus(e){var target=e.target,programCell=dom.parentWithClass(target,"programCell");if(programCell){var focused=target,id=focused.getAttribute("data-id"),item=items[id];item&&events.trigger(self,"focus",[{item:item}])}if("left"===lastFocusDirection||"right"===lastFocusDirection)programCell&&scrollHelper.toCenter(programGrid,programCell,!0);else if("up"===lastFocusDirection||"down"===lastFocusDirection){var verticalScroller=dom.parentWithClass(target,"guideVerticalScroller");if(verticalScroller){var focusedElement=programCell||dom.parentWithTag(target,"BUTTON");verticalScroller.toCenter(focusedElement,!0)}}}function setScrollEvents(view,enabled){if(layoutManager.tv){var guideVerticalScroller=view.querySelector(".guideVerticalScroller");enabled?inputManager.on(guideVerticalScroller,onInputCommand):inputManager.off(guideVerticalScroller,onInputCommand)}}function onTimerCreated(e,apiClient,data){for(var programId=data.ProgramId,newTimerId=data.Id,cells=options.element.querySelectorAll('.programCell[data-id="'+programId+'"]'),i=0,length=cells.length;i'),newTimerId&&cell.setAttribute("data-timerid",newTimerId)}}function onSeriesTimerCreated(e,apiClient,data){}function onTimerCancelled(e,apiClient,data){for(var id=data.Id,cells=options.element.querySelectorAll('.programCell[data-timerid="'+id+'"]'),i=0,length=cells.length;i"}).join("")}function HtmlVideoPlayer(){function updateVideoUrl(streamInfo){var isHls=streamInfo.url.toLowerCase().indexOf(".m3u8")!==-1,mediaSource=streamInfo.mediaSource,item=streamInfo.item;if(mediaSource&&item&&!mediaSource.RunTimeTicks&&isHls&&"Transcode"===streamInfo.playMethod&&(browser.iOS||browser.osx)){var hlsPlaylistUrl=streamInfo.url.replace("master.m3u8","live.m3u8");return loading.show(),console.log("prefetching hls playlist: "+hlsPlaylistUrl),connectionManager.getApiClient(item.ServerId).ajax({type:"GET",url:hlsPlaylistUrl}).then(function(){return console.log("completed prefetching hls playlist: "+hlsPlaylistUrl),loading.hide(),streamInfo.url=hlsPlaylistUrl,Promise.resolve()},function(){return console.log("error prefetching hls playlist: "+hlsPlaylistUrl),loading.hide(),Promise.resolve()})}return Promise.resolve()}function setCurrentSrc(elem,options){elem.removeEventListener("error",onError);var val=options.url;console.log("playing url: "+val);var seconds=(options.playerStartPositionTicks||0)/1e7;seconds&&(val+="#t="+seconds),htmlMediaHelper.destroyHlsPlayer(self);for(var tracks=getMediaStreamTextTracks(options.mediaSource),currentTrackIndex=-1,i=0,length=tracks.length;i'+getTracksHtml(tracks,options.mediaSource,options.item.ServerId),elem.addEventListener("loadedmetadata",onLoadedMetadata),self._currentSrc=val,setCurrentTrackElement(currentTrackIndex),htmlMediaHelper.playWithPromise(elem,onError)):htmlMediaHelper.applySrc(elem,val,options).then(function(){return setTracks(elem,tracks,options.mediaSource,options.item.ServerId),self._currentSrc=val,setCurrentTrackElement(currentTrackIndex),htmlMediaHelper.playWithPromise(elem,onError)})}function onEnded(){destroyCustomTrack(this),htmlMediaHelper.onEndedInternal(self,this,onError)}function onTimeUpdate(e){var time=this.currentTime;time&&!self._timeUpdated&&(self._timeUpdated=!0,ensureValidVideo(this)),self._currentTime=time;var timeMs=1e3*time;timeMs+=(self._currentPlayOptions.transcodingOffsetTicks||0)/1e4,updateSubtitleText(timeMs),events.trigger(self,"timeupdate")}function onVolumeChange(){htmlMediaHelper.saveVolume(this.volume),events.trigger(self,"volumechange")}function onNavigatedToOsd(){videoDialog.classList.remove("videoPlayerContainer-withBackdrop"),videoDialog.classList.remove("videoPlayerContainer-onTop")}function onPlaying(e){self._started||(self._started=!0,this.removeAttribute("controls"),self._currentPlayOptions.title?(self.originalDocumentTitle=document.title,document.title=self._currentPlayOptions.title):self.originalDocumentTitle=null,setCurrentTrackElement(subtitleTrackIndexToSetOnPlaying),htmlMediaHelper.seekOnPlaybackStart(self,e.target,self._currentPlayOptions.playerStartPositionTicks),self._currentPlayOptions.fullscreen?embyRouter.showVideoOsd().then(onNavigatedToOsd):(embyRouter.setTransparency("backdrop"),videoDialog.classList.remove("videoPlayerContainer-withBackdrop"),videoDialog.classList.remove("videoPlayerContainer-onTop")),loading.hide()),events.trigger(self,"playing")}function onPlay(e){events.trigger(self,"unpause")}function ensureValidVideo(elem){if(elem===self._mediaElement)return 0===elem.videoWidth&&0===elem.videoHeight?void htmlMediaHelper.onErrorInternal(self,"mediadecodeerror"):void 0}function onClick(){events.trigger(self,"click")}function onDblClick(){events.trigger(self,"dblclick")}function onPause(){events.trigger(self,"pause")}function onError(){var errorCode=this.error?this.error.code||0:0,errorMessage=this.error?this.error.message||"":"";console.log("Media element error: "+errorCode.toString()+" "+errorMessage);var type;switch(errorCode){case 1:return;case 2:type="network";break;case 3:if(self._hlsPlayer)return void htmlMediaHelper.handleMediaError(self);type="mediadecodeerror";break;case 4:type="medianotsupported";break;default:return}htmlMediaHelper.onErrorInternal(self,type)}function onLoadedMetadata(e){var mediaElem=e.target;if(mediaElem.removeEventListener("loadedmetadata",onLoadedMetadata),!self._hlsPlayer)try{mediaElem.play()}catch(err){console.log("error calling mediaElement.play: "+err)}}function destroyCustomTrack(videoElement){if(window.removeEventListener("resize",onVideoResize),window.removeEventListener("orientationchange",onVideoResize),videoSubtitlesElem){var subtitlesContainer=videoSubtitlesElem.parentNode;subtitlesContainer&&tryRemoveElement(subtitlesContainer),videoSubtitlesElem=null}if(currentTrackEvents=null,videoElement)for(var allTracks=videoElement.textTracks||[],i=0;i
',videoSubtitlesElem=subtitlesContainer.querySelector(".videoSubtitlesInner"),videoElement.parentNode.appendChild(subtitlesContainer),currentTrackEvents=data.TrackEvents}})}function renderTracksEvents(videoElement,track,serverId){var format=(track.Codec||"").toLowerCase();if("ssa"===format||"ass"===format)return void renderWithLibjass(videoElement,track,serverId);if(requiresCustomSubtitlesElement())return void renderSubtitlesWithCustomElement(videoElement,track,serverId);for(var trackElement=null,expectedId="manualTrack"+track.Index,allTracks=videoElement.textTracks,i=0;i=ticks){selectedTrackEvent=currentTrackEvent;break}}selectedTrackEvent?(videoSubtitlesElem.innerHTML=normalizeTrackEventText(selectedTrackEvent.Text),videoSubtitlesElem.classList.remove("hide")):(videoSubtitlesElem.innerHTML="",videoSubtitlesElem.classList.add("hide"))}}}function setCurrentTrackElement(streamIndex){console.log("Setting new text track index to: "+streamIndex);var mediaStreamTextTracks=getMediaStreamTextTracks(self._currentPlayOptions.mediaSource),track=streamIndex===-1?null:mediaStreamTextTracks.filter(function(t){return t.Index===streamIndex})[0];enableNativeTrackSupport(self._currentSrc,track)?setTrackForCustomDisplay(self._mediaElement,null):(setTrackForCustomDisplay(self._mediaElement,track),streamIndex=-1,track=null);for(var expectedId="textTrack"+streamIndex,trackIndex=streamIndex!==-1&&track?mediaStreamTextTracks.indexOf(track):-1,modes=["disabled","showing","hidden"],allTracks=self._mediaElement.textTracks,i=0;i':'",dlg.innerHTML=html;var videoElement=dlg.querySelector("video");videoElement.volume=htmlMediaHelper.getSavedVolume(),videoElement.addEventListener("timeupdate",onTimeUpdate),videoElement.addEventListener("ended",onEnded),videoElement.addEventListener("volumechange",onVolumeChange),videoElement.addEventListener("pause",onPause),videoElement.addEventListener("playing",onPlaying),videoElement.addEventListener("play",onPlay),videoElement.addEventListener("click",onClick),videoElement.addEventListener("dblclick",onDblClick),document.body.insertBefore(dlg,document.body.firstChild),videoDialog=dlg,self._mediaElement=videoElement,options.fullscreen&&browser.supportsCssAnimation()&&!browser.slow?zoomIn(dlg).then(function(){resolve(videoElement)}):resolve(videoElement)})})}this.name="Html Video Player",this.type="mediaplayer",this.id="htmlvideoplayer",this.priority=1;var videoDialog,subtitleTrackIndexToSetOnPlaying,currentClock,currentAssRenderer,videoSubtitlesElem,currentTrackEvents,lastCustomTrackMs=0,customTrackIndex=-1,self=this;self.currentSrc=function(){return self._currentSrc},self.play=function(options){return browser.msie&&"Transcode"===options.playMethod&&!window.MediaSource?(alert("Playback of this content is not supported in Internet Explorer. For a better experience, try a modern browser such as Microsoft Edge, Google Chrome, Firefox or Opera."),Promise.reject()):(self._started=!1,self._timeUpdated=!1,self._currentTime=null,createMediaElement(options).then(function(elem){return updateVideoUrl(options,options.mediaSource).then(function(){return setCurrentSrc(elem,options)})}))},self.setSubtitleStreamIndex=function(index){setCurrentTrackElement(index)},self.setAudioStreamIndex=function(index){var i,length,audioStreams=getMediaStreamAudioTracks(self._currentPlayOptions.mediaSource),audioTrackOffset=-1;for(i=0,length=audioStreams.length;i=100?"none":rawValue/100;elem.style["-webkit-filter"]="brightness("+cssValue+");",elem.style.filter="brightness("+cssValue+")",elem.brightnessValue=val,events.trigger(this,"brightnesschange")}},HtmlVideoPlayer.prototype.getBrightness=function(){var elem=this._mediaElement;if(elem){var val=elem.brightnessValue;return null==val?100:val}},HtmlVideoPlayer.prototype.seekable=function(){var mediaElement=this._mediaElement;if(mediaElement){var seekable=mediaElement.seekable;if(seekable&&seekable.length){var start=seekable.start(0),end=seekable.end(0);return htmlMediaHelper.isValidDuration(start)||(start=0),htmlMediaHelper.isValidDuration(end)||(end=0),end-start>0}return!1}},HtmlVideoPlayer.prototype.pause=function(){var mediaElement=this._mediaElement;mediaElement&&mediaElement.pause()},HtmlVideoPlayer.prototype.resume=function(){var mediaElement=this._mediaElement;mediaElement&&mediaElement.play()},HtmlVideoPlayer.prototype.unpause=function(){var mediaElement=this._mediaElement;mediaElement&&mediaElement.play()},HtmlVideoPlayer.prototype.paused=function(){var mediaElement=this._mediaElement;return!!mediaElement&&mediaElement.paused},HtmlVideoPlayer.prototype.setVolume=function(val){var mediaElement=this._mediaElement;mediaElement&&(mediaElement.volume=val/100)},HtmlVideoPlayer.prototype.getVolume=function(){var mediaElement=this._mediaElement;if(mediaElement)return 100*mediaElement.volume},HtmlVideoPlayer.prototype.volumeUp=function(){this.setVolume(Math.min(this.getVolume()+2,100))},HtmlVideoPlayer.prototype.volumeDown=function(){this.setVolume(Math.max(this.getVolume()-2,0))},HtmlVideoPlayer.prototype.setMute=function(mute){var mediaElement=this._mediaElement;mediaElement&&(mediaElement.muted=mute)},HtmlVideoPlayer.prototype.isMuted=function(){var mediaElement=this._mediaElement;return!!mediaElement&&mediaElement.muted},HtmlVideoPlayer.prototype.setAspectRatio=function(val){},HtmlVideoPlayer.prototype.getAspectRatio=function(){return this._currentAspectRatio},HtmlVideoPlayer.prototype.getSupportedAspectRatios=function(){return[]},HtmlVideoPlayer.prototype.togglePictureInPicture=function(){return this.setPictureInPictureEnabled(!this.isPictureInPictureEnabled())},HtmlVideoPlayer}); \ No newline at end of file +define(["browser","require","events","apphost","loading","dom","playbackManager","embyRouter","appSettings","connectionManager","./htmlmediahelper"],function(browser,require,events,appHost,loading,dom,playbackManager,embyRouter,appSettings,connectionManager,htmlMediaHelper){"use strict";function tryRemoveElement(elem){var parentNode=elem.parentNode;if(parentNode)try{parentNode.removeChild(elem)}catch(err){console.log("Error removing dialog element: "+err)}}function getDefaultProfile(){return new Promise(function(resolve,reject){require(["browserdeviceprofile"],function(profileBuilder){resolve(profileBuilder({}))})})}function enableNativeTrackSupport(currentSrc,track){if(browser.firefox&&(currentSrc||"").toLowerCase().indexOf(".m3u8")!==-1)return!1;if(browser.ps4)return!1;if(browser.edge)return!1;if(track){var format=(track.Codec||"").toLowerCase();if("ssa"===format||"ass"===format)return!1}return!0}function requireHlsPlayer(callback){require(["hlsjs"],function(hls){window.Hls=hls,callback()})}function getMediaStreamAudioTracks(mediaSource){return mediaSource.MediaStreams.filter(function(s){return"Audio"===s.Type})}function getMediaStreamTextTracks(mediaSource){return mediaSource.MediaStreams.filter(function(s){return"Subtitle"===s.Type&&"External"===s.DeliveryMethod})}function zoomIn(elem){return new Promise(function(resolve,reject){var duration=240;elem.style.animation="htmlvideoplayer-zoomin "+duration+"ms ease-in normal",dom.addEventListener(elem,dom.whichAnimationEvent(),resolve,{once:!0})})}function normalizeTrackEventText(text){return text.replace(/\\N/gi,"\n")}function setTracks(elem,tracks,mediaSource,serverId){elem.innerHTML=getTracksHtml(tracks,mediaSource,serverId)}function getTextTrackUrl(track,serverId){return playbackManager.getSubtitleUrl(track,serverId)}function getTracksHtml(tracks,mediaSource,serverId){return tracks.map(function(t){var defaultAttribute=mediaSource.DefaultSubtitleStreamIndex===t.Index?" default":"",language=t.Language||"und",label=t.Language||"und";return'"}).join("")}function HtmlVideoPlayer(){function updateVideoUrl(streamInfo){var isHls=streamInfo.url.toLowerCase().indexOf(".m3u8")!==-1,mediaSource=streamInfo.mediaSource,item=streamInfo.item;if(mediaSource&&item&&!mediaSource.RunTimeTicks&&isHls&&"Transcode"===streamInfo.playMethod&&(browser.iOS||browser.osx)){var hlsPlaylistUrl=streamInfo.url.replace("master.m3u8","live.m3u8");return loading.show(),console.log("prefetching hls playlist: "+hlsPlaylistUrl),connectionManager.getApiClient(item.ServerId).ajax({type:"GET",url:hlsPlaylistUrl}).then(function(){return console.log("completed prefetching hls playlist: "+hlsPlaylistUrl),loading.hide(),streamInfo.url=hlsPlaylistUrl,Promise.resolve()},function(){return console.log("error prefetching hls playlist: "+hlsPlaylistUrl),loading.hide(),Promise.resolve()})}return Promise.resolve()}function setCurrentSrc(elem,options){elem.removeEventListener("error",onError);var val=options.url;console.log("playing url: "+val);var seconds=(options.playerStartPositionTicks||0)/1e7;seconds&&(val+="#t="+seconds),htmlMediaHelper.destroyHlsPlayer(self);for(var tracks=getMediaStreamTextTracks(options.mediaSource),currentTrackIndex=-1,i=0,length=tracks.length;i'+getTracksHtml(tracks,options.mediaSource,options.item.ServerId),elem.addEventListener("loadedmetadata",onLoadedMetadata),self._currentSrc=val,setCurrentTrackElement(currentTrackIndex),htmlMediaHelper.playWithPromise(elem,onError)):htmlMediaHelper.applySrc(elem,val,options).then(function(){return setTracks(elem,tracks,options.mediaSource,options.item.ServerId),self._currentSrc=val,setCurrentTrackElement(currentTrackIndex),htmlMediaHelper.playWithPromise(elem,onError)})}function onEnded(){destroyCustomTrack(this),htmlMediaHelper.onEndedInternal(self,this,onError)}function onTimeUpdate(e){var time=this.currentTime;time&&!self._timeUpdated&&(self._timeUpdated=!0,ensureValidVideo(this)),self._currentTime=time;var timeMs=1e3*time;timeMs+=(self._currentPlayOptions.transcodingOffsetTicks||0)/1e4,updateSubtitleText(timeMs),events.trigger(self,"timeupdate")}function onVolumeChange(){htmlMediaHelper.saveVolume(this.volume),events.trigger(self,"volumechange")}function onNavigatedToOsd(){videoDialog.classList.remove("videoPlayerContainer-withBackdrop"),videoDialog.classList.remove("videoPlayerContainer-onTop")}function onPlaying(e){self._started||(self._started=!0,this.removeAttribute("controls"),self._currentPlayOptions.title?(self.originalDocumentTitle=document.title,document.title=self._currentPlayOptions.title):self.originalDocumentTitle=null,setCurrentTrackElement(subtitleTrackIndexToSetOnPlaying),htmlMediaHelper.seekOnPlaybackStart(self,e.target,self._currentPlayOptions.playerStartPositionTicks),self._currentPlayOptions.fullscreen?embyRouter.showVideoOsd().then(onNavigatedToOsd):(embyRouter.setTransparency("backdrop"),videoDialog.classList.remove("videoPlayerContainer-withBackdrop"),videoDialog.classList.remove("videoPlayerContainer-onTop")),loading.hide()),events.trigger(self,"playing")}function onPlay(e){events.trigger(self,"unpause")}function ensureValidVideo(elem){if(elem===self._mediaElement)return 0===elem.videoWidth&&0===elem.videoHeight?void htmlMediaHelper.onErrorInternal(self,"mediadecodeerror"):void 0}function onClick(){events.trigger(self,"click")}function onDblClick(){events.trigger(self,"dblclick")}function onPause(){events.trigger(self,"pause")}function onError(){var errorCode=this.error?this.error.code||0:0,errorMessage=this.error?this.error.message||"":"";console.log("Media element error: "+errorCode.toString()+" "+errorMessage);var type;switch(errorCode){case 1:return;case 2:type="network";break;case 3:if(self._hlsPlayer)return void htmlMediaHelper.handleMediaError(self);type="mediadecodeerror";break;case 4:type="medianotsupported";break;default:return}htmlMediaHelper.onErrorInternal(self,type)}function onLoadedMetadata(e){var mediaElem=e.target;if(mediaElem.removeEventListener("loadedmetadata",onLoadedMetadata),!self._hlsPlayer)try{mediaElem.play()}catch(err){console.log("error calling mediaElement.play: "+err)}}function destroyCustomTrack(videoElement){if(window.removeEventListener("resize",onVideoResize),window.removeEventListener("orientationchange",onVideoResize),videoSubtitlesElem){var subtitlesContainer=videoSubtitlesElem.parentNode;subtitlesContainer&&tryRemoveElement(subtitlesContainer),videoSubtitlesElem=null}if(currentTrackEvents=null,videoElement)for(var allTracks=videoElement.textTracks||[],i=0;i
',videoSubtitlesElem=subtitlesContainer.querySelector(".videoSubtitlesInner"),videoElement.parentNode.appendChild(subtitlesContainer),currentTrackEvents=data.TrackEvents}})}function renderTracksEvents(videoElement,track,serverId){var format=(track.Codec||"").toLowerCase();if("ssa"===format||"ass"===format)return void renderWithLibjass(videoElement,track,serverId);if(requiresCustomSubtitlesElement())return void renderSubtitlesWithCustomElement(videoElement,track,serverId);for(var trackElement=null,expectedId="manualTrack"+track.Index,allTracks=videoElement.textTracks,i=0;i=ticks){selectedTrackEvent=currentTrackEvent;break}}selectedTrackEvent&&selectedTrackEvent.Text?(subtitleTextElement.innerHTML=normalizeTrackEventText(selectedTrackEvent.Text),subtitleTextElement.classList.remove("hide")):subtitleTextElement.classList.add("hide")}}}function setCurrentTrackElement(streamIndex){console.log("Setting new text track index to: "+streamIndex);var mediaStreamTextTracks=getMediaStreamTextTracks(self._currentPlayOptions.mediaSource),track=streamIndex===-1?null:mediaStreamTextTracks.filter(function(t){return t.Index===streamIndex})[0];enableNativeTrackSupport(self._currentSrc,track)?setTrackForCustomDisplay(self._mediaElement,null):(setTrackForCustomDisplay(self._mediaElement,track),streamIndex=-1,track=null);for(var expectedId="textTrack"+streamIndex,trackIndex=streamIndex!==-1&&track?mediaStreamTextTracks.indexOf(track):-1,modes=["disabled","showing","hidden"],allTracks=self._mediaElement.textTracks,i=0;i':'",dlg.innerHTML=html;var videoElement=dlg.querySelector("video");videoElement.volume=htmlMediaHelper.getSavedVolume(),videoElement.addEventListener("timeupdate",onTimeUpdate),videoElement.addEventListener("ended",onEnded),videoElement.addEventListener("volumechange",onVolumeChange),videoElement.addEventListener("pause",onPause),videoElement.addEventListener("playing",onPlaying),videoElement.addEventListener("play",onPlay),videoElement.addEventListener("click",onClick),videoElement.addEventListener("dblclick",onDblClick),document.body.insertBefore(dlg,document.body.firstChild),videoDialog=dlg,self._mediaElement=videoElement,options.fullscreen&&browser.supportsCssAnimation()&&!browser.slow?zoomIn(dlg).then(function(){resolve(videoElement)}):resolve(videoElement)})})}this.name="Html Video Player",this.type="mediaplayer",this.id="htmlvideoplayer",this.priority=1;var videoDialog,subtitleTrackIndexToSetOnPlaying,currentClock,currentAssRenderer,videoSubtitlesElem,currentTrackEvents,lastCustomTrackMs=0,customTrackIndex=-1,self=this;self.currentSrc=function(){return self._currentSrc},self.play=function(options){return browser.msie&&"Transcode"===options.playMethod&&!window.MediaSource?(alert("Playback of this content is not supported in Internet Explorer. For a better experience, try a modern browser such as Microsoft Edge, Google Chrome, Firefox or Opera."),Promise.reject()):(self._started=!1,self._timeUpdated=!1,self._currentTime=null,createMediaElement(options).then(function(elem){return updateVideoUrl(options,options.mediaSource).then(function(){return setCurrentSrc(elem,options)})}))},self.setSubtitleStreamIndex=function(index){setCurrentTrackElement(index)},self.setAudioStreamIndex=function(index){var i,length,audioStreams=getMediaStreamAudioTracks(self._currentPlayOptions.mediaSource),audioTrackOffset=-1;for(i=0,length=audioStreams.length;i=100?"none":rawValue/100;elem.style["-webkit-filter"]="brightness("+cssValue+");",elem.style.filter="brightness("+cssValue+")",elem.brightnessValue=val,events.trigger(this,"brightnesschange")}},HtmlVideoPlayer.prototype.getBrightness=function(){var elem=this._mediaElement;if(elem){var val=elem.brightnessValue;return null==val?100:val}},HtmlVideoPlayer.prototype.seekable=function(){var mediaElement=this._mediaElement;if(mediaElement){var seekable=mediaElement.seekable;if(seekable&&seekable.length){var start=seekable.start(0),end=seekable.end(0);return htmlMediaHelper.isValidDuration(start)||(start=0),htmlMediaHelper.isValidDuration(end)||(end=0),end-start>0}return!1}},HtmlVideoPlayer.prototype.pause=function(){var mediaElement=this._mediaElement;mediaElement&&mediaElement.pause()},HtmlVideoPlayer.prototype.resume=function(){var mediaElement=this._mediaElement;mediaElement&&mediaElement.play()},HtmlVideoPlayer.prototype.unpause=function(){var mediaElement=this._mediaElement;mediaElement&&mediaElement.play()},HtmlVideoPlayer.prototype.paused=function(){var mediaElement=this._mediaElement;return!!mediaElement&&mediaElement.paused},HtmlVideoPlayer.prototype.setVolume=function(val){var mediaElement=this._mediaElement;mediaElement&&(mediaElement.volume=val/100)},HtmlVideoPlayer.prototype.getVolume=function(){var mediaElement=this._mediaElement;if(mediaElement)return 100*mediaElement.volume},HtmlVideoPlayer.prototype.volumeUp=function(){this.setVolume(Math.min(this.getVolume()+2,100))},HtmlVideoPlayer.prototype.volumeDown=function(){this.setVolume(Math.max(this.getVolume()-2,0))},HtmlVideoPlayer.prototype.setMute=function(mute){var mediaElement=this._mediaElement;mediaElement&&(mediaElement.muted=mute)},HtmlVideoPlayer.prototype.isMuted=function(){var mediaElement=this._mediaElement;return!!mediaElement&&mediaElement.muted},HtmlVideoPlayer.prototype.setAspectRatio=function(val){},HtmlVideoPlayer.prototype.getAspectRatio=function(){return this._currentAspectRatio},HtmlVideoPlayer.prototype.getSupportedAspectRatios=function(){return[]},HtmlVideoPlayer.prototype.togglePictureInPicture=function(){return this.setPictureInPictureEnabled(!this.isPictureInPictureEnabled())},HtmlVideoPlayer}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/inputmanager.js b/dashboard-ui/bower_components/emby-webcomponents/inputmanager.js index 5ecde0ba5f..256fa0f36b 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/inputmanager.js +++ b/dashboard-ui/bower_components/emby-webcomponents/inputmanager.js @@ -1 +1 @@ -define(["playbackManager","focusManager","embyRouter","dom"],function(playbackManager,focusManager,embyRouter,dom){"use strict";function notify(){lastInputTime=(new Date).getTime(),handleCommand("unknown")}function notifyMouseMove(){lastInputTime=(new Date).getTime()}function idleTime(){return(new Date).getTime()-lastInputTime}function select(sourceElement){sourceElement.click()}function on(scope,fn){eventListenerCount++,dom.addEventListener(scope,"command",fn,{})}function off(scope,fn){eventListenerCount&&eventListenerCount--,dom.removeEventListener(scope,"command",fn,{})}function checkCommandTime(command){var last=commandTimes[command]||0,now=(new Date).getTime();return!(now-last<1e3)&&(commandTimes[command]=now,!0)}function handleCommand(name,options){lastInputTime=(new Date).getTime();var sourceElement=options?options.sourceElement:null;if(sourceElement&&(sourceElement=focusManager.focusableParent(sourceElement)),sourceElement=sourceElement||document.activeElement||window,eventListenerCount){var customEvent=new CustomEvent("command",{detail:{command:name},bubbles:!0,cancelable:!0}),eventResult=sourceElement.dispatchEvent(customEvent);if(!eventResult)return}switch(name){case"up":focusManager.moveUp(sourceElement);break;case"down":focusManager.moveDown(sourceElement);break;case"left":focusManager.moveLeft(sourceElement);break;case"right":focusManager.moveRight(sourceElement);break;case"home":embyRouter.goHome();break;case"settings":embyRouter.showSettings();break;case"back":embyRouter.back();break;case"forward":break;case"select":select(sourceElement);break;case"pageup":break;case"pagedown":break;case"end":break;case"menu":case"info":break;case"next":playbackManager.nextChapter();break;case"previous":playbackManager.previousChapter();break;case"guide":embyRouter.showGuide();break;case"recordedtv":embyRouter.showRecordedTV();break;case"record":break;case"livetv":embyRouter.showLiveTV();break;case"mute":playbackManager.setMute(!0);break;case"unmute":playbackManager.setMute(!1);break;case"togglemute":playbackManager.toggleMute();break;case"channelup":playbackManager.nextTrack();break;case"channeldown":playbackManager.previousTrack();break;case"volumedown":playbackManager.volumeDown();break;case"volumeup":playbackManager.volumeUp();break;case"play":playbackManager.unpause();break;case"pause":playbackManager.pause();break;case"playpause":playbackManager.playPause();break;case"stop":checkCommandTime("stop")&&playbackManager.stop();break;case"changezoom":playbackManager.toggleAspectRatio();break;case"changeaudiotrack":playbackManager.changeAudioStream();break;case"changesubtitletrack":playbackManager.changeSubtitleStream();break;case"search":embyRouter.showSearch();break;case"favorites":embyRouter.showFavorites();break;case"fastforward":playbackManager.fastForward();break;case"rewind":playbackManager.rewind();break;case"togglefullscreen":playbackManager.toggleFullscreen();break;case"disabledisplaymirror":playbackManager.enableDisplayMirroring(!1);break;case"enabledisplaymirror":playbackManager.enableDisplayMirroring(!0);break;case"toggledisplaymirror":playbackManager.toggleDisplayMirroring();break;case"movies":break;case"music":break;case"tv":break;case"latestepisodes":break;case"nowplaying":break;case"upcomingtv":break;case"nextup":break;case"save":break;case"screensaver":break;case"refresh":break;case"changebrightness":break;case"red":break;case"green":break;case"yellow":break;case"blue":break;case"grey":break;case"brown":}}var lastInputTime=(new Date).getTime(),eventListenerCount=0,commandTimes={};return dom.addEventListener(document,"click",notify,{passive:!0}),{trigger:handleCommand,handle:handleCommand,notify:notify,notifyMouseMove:notifyMouseMove,idleTime:idleTime,on:on,off:off}}); \ No newline at end of file +define(["playbackManager","focusManager","embyRouter","dom"],function(playbackManager,focusManager,embyRouter,dom){"use strict";function notify(){lastInputTime=(new Date).getTime(),handleCommand("unknown")}function notifyMouseMove(){lastInputTime=(new Date).getTime()}function idleTime(){return(new Date).getTime()-lastInputTime}function select(sourceElement){sourceElement.click()}function on(scope,fn){eventListenerCount++,dom.addEventListener(scope,"command",fn,{})}function off(scope,fn){eventListenerCount&&eventListenerCount--,dom.removeEventListener(scope,"command",fn,{})}function checkCommandTime(command){var last=commandTimes[command]||0,now=(new Date).getTime();return!(now-last<1e3)&&(commandTimes[command]=now,!0)}function handleCommand(name,options){lastInputTime=(new Date).getTime();var sourceElement=options?options.sourceElement:null;if(sourceElement&&(sourceElement=focusManager.focusableParent(sourceElement)),sourceElement=sourceElement||document.activeElement||window,eventListenerCount){var customEvent=new CustomEvent("command",{detail:{command:name},bubbles:!0,cancelable:!0}),eventResult=sourceElement.dispatchEvent(customEvent);if(!eventResult)return}switch(name){case"up":focusManager.moveUp(sourceElement);break;case"down":focusManager.moveDown(sourceElement);break;case"left":focusManager.moveLeft(sourceElement);break;case"right":focusManager.moveRight(sourceElement);break;case"home":embyRouter.goHome();break;case"settings":embyRouter.showSettings();break;case"back":embyRouter.back();break;case"forward":break;case"select":select(sourceElement);break;case"pageup":break;case"pagedown":break;case"end":break;case"menu":case"info":break;case"next":playbackManager.nextChapter();break;case"previous":playbackManager.previousChapter();break;case"guide":embyRouter.showGuide();break;case"recordedtv":embyRouter.showRecordedTV();break;case"record":break;case"livetv":embyRouter.showLiveTV();break;case"mute":playbackManager.setMute(!0);break;case"unmute":playbackManager.setMute(!1);break;case"togglemute":playbackManager.toggleMute();break;case"channelup":playbackManager.nextTrack();break;case"channeldown":playbackManager.previousTrack();break;case"volumedown":playbackManager.volumeDown();break;case"volumeup":playbackManager.volumeUp();break;case"play":playbackManager.unpause();break;case"pause":playbackManager.pause();break;case"playpause":playbackManager.playPause();break;case"stop":checkCommandTime("stop")&&playbackManager.stop();break;case"changezoom":playbackManager.toggleAspectRatio();break;case"changeaudiotrack":playbackManager.changeAudioStream();break;case"changesubtitletrack":playbackManager.changeSubtitleStream();break;case"search":embyRouter.showSearch();break;case"favorites":embyRouter.showFavorites();break;case"fastforward":playbackManager.fastForward();break;case"rewind":playbackManager.rewind();break;case"togglefullscreen":playbackManager.toggleFullscreen();break;case"disabledisplaymirror":playbackManager.enableDisplayMirroring(!1);break;case"enabledisplaymirror":playbackManager.enableDisplayMirroring(!0);break;case"toggledisplaymirror":playbackManager.toggleDisplayMirroring();break;case"movies":embyRouter.goHome();break;case"music":embyRouter.goHome();break;case"tv":embyRouter.goHome();break;case"nowplaying":embyRouter.showNowPlaying();break;case"save":break;case"screensaver":break;case"refresh":break;case"changebrightness":break;case"red":break;case"green":break;case"yellow":break;case"blue":break;case"grey":break;case"brown":}}var lastInputTime=(new Date).getTime(),eventListenerCount=0,commandTimes={};return dom.addEventListener(document,"click",notify,{passive:!0}),{trigger:handleCommand,handle:handleCommand,notify:notify,notifyMouseMove:notifyMouseMove,idleTime:idleTime,on:on,off:off}}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/nowplayingbar/nowplayingbar.css b/dashboard-ui/bower_components/emby-webcomponents/nowplayingbar/nowplayingbar.css new file mode 100644 index 0000000000..987f4f8c6c --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/nowplayingbar/nowplayingbar.css @@ -0,0 +1 @@ +.mediaButton.active{color:#52B54B}.nowPlayingBarInfoContainer{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.nowPlayingBar{color:#ddd;text-align:center;will-change:transform;contain:layout style;-webkit-transition:-webkit-transform .2s ease-out;-o-transition:transform .2s ease-out;transition:transform .2s ease-out}.nowPlayingBar-hidden{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.nowPlayingBarTop{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mediaButton,.nowPlayingBarUserDataButtons .btnUserItemRating{vertical-align:middle;margin:0;text-align:center}.mediaButton i{height:1em;width:1em;font-size:200%}.nowPlayingImage{display:inline-block;vertical-align:middle;margin-right:1em}.nowPlayingImage img{vertical-align:bottom;height:4.1em}.nowPlayingBar .nowPlayingImage{width:4.1em;height:4.1em;background-position:center center;background-repeat:no-repeat;-webkit-background-size:contain;background-size:contain}.nowPlayingBarText{overflow:hidden;white-space:nowrap;-o-text-overflow:ellipsis;text-overflow:ellipsis;vertical-align:middle;text-align:left;max-width:10em;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;font-size:92%;margin-right:2.4em}.repeatActive{color:#52B54B}@media (min-width:31.25em){.nowPlayingBarText{max-width:15.3em}}@media (min-width:37.5em){.nowPlayingBarText{max-width:17em}}@media (min-width:43.75em){.nowPlayingBarText{max-width:20.4em}}@media (min-width:50em){.nowPlayingBarText{max-width:25.5em}}@media (min-width:56.25em){.nowPlayingBarText{max-width:34em}}.nowPlayingBarCenter{vertical-align:middle;text-align:center;z-index:2;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.nowPlayingBarPositionContainer{position:absolute!important;left:4.1em;top:-8px;right:0;z-index:1}.nowPlayingBarPositionContainer .mdl-slider__background-upper{background:#222}.headroom--unpinned .nowPlayingBarPositionContainer,.noMediaProgress .nowPlayingBarPositionContainer{display:none}.nowPlayingBarRight{position:relative;margin:0 .5em 0 auto;z-index:2;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.nowPlayingBarCurrentTime{vertical-align:middle;font-weight:400;text-align:center;display:inline-block;padding-left:1.5em}.nowPlayingBarVolumeSliderContainer{margin-right:2em}.nowPlayingBarUserDataButtons{display:inline-block;margin-left:1em;margin-right:1em}@media all and (max-width:87.5em){.nowPlayingBarUserDataButtons{display:none}}@media all and (max-width:68.75em){.nowPlayingBar .muteButton,.nowPlayingBar .unmuteButton,.nowPlayingBarVolumeSliderContainer{display:none!important}}@media all and (max-width:50em){.nowPlayingBarCenter>*{display:none!important}.toggleRepeatButton{display:none}}@media all and (min-width:50em){.nowPlayingBarRight .playPauseButton{display:none}} \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/nowplayingbar/nowplayingbar.js b/dashboard-ui/bower_components/emby-webcomponents/nowplayingbar/nowplayingbar.js new file mode 100644 index 0000000000..5c6ba596cc --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/nowplayingbar/nowplayingbar.js @@ -0,0 +1 @@ +define(["require","datetime","userdataButtons","itemHelper","events","browser","imageLoader","layoutManager","playbackManager","nowPlayingHelper","apphost","dom","connectionManager","paper-icon-button-light"],function(require,datetime,userdataButtons,itemHelper,events,browser,imageLoader,layoutManager,playbackManager,nowPlayingHelper,appHost,dom,connectionManager){"use strict";function getNowPlayingBarHtml(){var html="";return html+='
',html+='
',html+='
',html+='',html+="
",html+='
',html+='
',html+='
',html+="
",html+='
',html+='',html+='',html+='',html+='',html+='
',html+="
",html+='
',html+='',html+='
',html+='',html+="
",html+='',html+='
',html+="
",html+='',html+='',html+="
",html+="
",html+="
"}function onSlideDownComplete(){this.classList.add("hide")}function slideUp(elem){setTimeout(function(){dom.removeEventListener(elem,dom.whichTransitionEvent(),onSlideDownComplete,{once:!0}),elem.classList.remove("hide"),void elem.offsetWidth,requestAnimationFrame(function(){elem.classList.remove("nowPlayingBar-hidden")})},10)}function onPlayPauseClick(){playbackManager.playPause(currentPlayer)}function bindEvents(elem){currentTimeElement=elem.querySelector(".nowPlayingBarCurrentTime"),nowPlayingImageElement=elem.querySelector(".nowPlayingImage"),nowPlayingTextElement=elem.querySelector(".nowPlayingBarText"),nowPlayingUserData=elem.querySelector(".nowPlayingBarUserDataButtons"),muteButton=elem.querySelector(".muteButton"),muteButton.addEventListener("click",function(){currentPlayer&&playbackManager.toggleMute(currentPlayer)}),elem.querySelector(".stopButton").addEventListener("click",function(){currentPlayer&&playbackManager.stop(currentPlayer)});var i,length;for(playPauseButtons=elem.querySelectorAll(".playPauseButton"),i=0,length=playPauseButtons.length;i';return html+=text,html+=""}function seriesImageUrl(item,options){if(!item)throw new Error("item cannot be null!");if("Episode"!==item.Type)return null;if(options=options||{},options.type=options.type||"Primary","Primary"===options.type&&item.SeriesPrimaryImageTag)return options.tag=item.SeriesPrimaryImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId,options);if("Thumb"===options.type){if(item.SeriesThumbImageTag)return options.tag=item.SeriesThumbImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId,options);if(item.ParentThumbImageTag)return options.tag=item.ParentThumbImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.ParentThumbItemId,options)}return null}function imageUrl(item,options){if(!item)throw new Error("item cannot be null!");return options=options||{},options.type=options.type||"Primary",item.ImageTags&&item.ImageTags[options.type]?(options.tag=item.ImageTags[options.type],connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.PrimaryImageItemId||item.Id,options)):item.AlbumId&&item.AlbumPrimaryImageTag?(options.tag=item.AlbumPrimaryImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.AlbumId,options)):null}function updateNowPlayingInfo(state){var nowPlayingItem=state.NowPlayingItem;nowPlayingTextElement.innerHTML=nowPlayingItem?nowPlayingHelper.getNowPlayingNames(nowPlayingItem).map(function(nowPlayingName){return nowPlayingName.item?"
"+getTextActionButton(nowPlayingName.item,nowPlayingName.text)+"
":"
"+nowPlayingName.text+"
"}).join(""):"";var imgHeight=70,url=nowPlayingItem?seriesImageUrl(nowPlayingItem,{height:imgHeight})||imageUrl(nowPlayingItem,{height:imgHeight}):null,isRefreshing=!1;if(url!==currentImgUrl&&(currentImgUrl=url,isRefreshing=!0,imageLoader.lazyImage(nowPlayingImageElement,url)),nowPlayingItem.Id){if(isRefreshing){var apiClient=connectionManager.getApiClient(nowPlayingItem.ServerId);apiClient.getItem(apiClient.getCurrentUserId(),nowPlayingItem.Id).then(function(item){userdataButtons.fill({item:item,includePlayed:!1,element:nowPlayingUserData})})}}else userdataButtons.destroy({element:nowPlayingUserData})}function onPlaybackStart(e,state){var player=this;onStateChanged.call(player,e,state)}function onRepeatModeChange(e){var player=this;updateRepeatModeDisplay(playbackManager.getRepeatMode(player))}function showNowPlayingBar(){return isVisibilityAllowed?void getNowPlayingBar().then(slideUp):void hideNowPlayingBar()}function hideNowPlayingBar(){isEnabled=!1;var elem=document.getElementsByClassName("nowPlayingBar")[0];elem&&(dom.removeEventListener(elem,dom.whichTransitionEvent(),onSlideDownComplete,{once:!0}),elem.classList.add("hide"),elem.classList.add("nowPlayingBar-hidden"))}function onPlaybackStopped(e,state){var player=this;player.isLocalPlayer?"Audio"!==state.NextMediaType&&hideNowPlayingBar():state.NextMediaType||hideNowPlayingBar()}function onPlayPauseStateChanged(e){if(isEnabled){var player=this;updatePlayPauseState(player.paused())}}function onStateChanged(event,state){var player=this;return!state.NowPlayingItem||layoutManager.tv?void hideNowPlayingBar():player.isLocalPlayer&&state.NowPlayingItem&&"Video"===state.NowPlayingItem.MediaType?void hideNowPlayingBar():(isEnabled=!0,nowPlayingBarElement?void updatePlayerStateInternal(event,state):void getNowPlayingBar().then(function(){updatePlayerStateInternal(event,state)}))}function onTimeUpdate(e){if(isEnabled){var now=(new Date).getTime();if(!(now-lastUpdateTime<700)){lastUpdateTime=now;var player=this;currentRuntimeTicks=playbackManager.duration(player),updateTimeDisplay(playbackManager.currentTime(player),currentRuntimeTicks)}}}function releaseCurrentPlayer(){var player=currentPlayer;player&&(events.off(player,"playbackstart",onPlaybackStart),events.off(player,"statechange",onPlaybackStart),events.off(player,"repeatmodechange",onRepeatModeChange),events.off(player,"playbackstop",onPlaybackStopped),events.off(player,"volumechange",onVolumeChanged),events.off(player,"pause",onPlayPauseStateChanged),events.off(player,"unpause",onPlayPauseStateChanged),events.off(player,"timeupdate",onTimeUpdate),currentPlayer=null,hideNowPlayingBar())}function onVolumeChanged(e){if(isEnabled){var player=this;updatePlayerVolumeState(player.isMuted(),player.getVolume())}}function refreshFromPlayer(player){playbackManager.getPlayerState(player).then(function(state){onStateChanged.call(player,{type:"init"},state)})}function bindToPlayer(player){player!==currentPlayer&&(releaseCurrentPlayer(),currentPlayer=player,player&&(refreshFromPlayer(player),events.on(player,"playbackstart",onPlaybackStart),events.on(player,"statechange",onPlaybackStart),events.on(player,"repeatmodechange",onRepeatModeChange),events.on(player,"playbackstop",onPlaybackStopped),events.on(player,"volumechange",onVolumeChanged),events.on(player,"pause",onPlayPauseStateChanged),events.on(player,"unpause",onPlayPauseStateChanged),events.on(player,"timeupdate",onTimeUpdate)))}var currentPlayer,currentTimeElement,nowPlayingImageElement,nowPlayingTextElement,nowPlayingUserData,muteButton,volumeSlider,volumeSliderContainer,playPauseButtons,positionSlider,toggleRepeatButton,toggleRepeatButtonIcon,isEnabled,nowPlayingBarElement,currentImgUrl,currentPlayerSupportedCommands=[],lastUpdateTime=0,lastPlayerState={},currentRuntimeTicks=0,isVisibilityAllowed=!0;events.on(playbackManager,"playerchange",function(){bindToPlayer(playbackManager.getCurrentPlayer())}),bindToPlayer(playbackManager.getCurrentPlayer()),document.addEventListener("viewbeforeshow",function(e){e.detail.options.enableMediaControl?isVisibilityAllowed||(isVisibilityAllowed=!0,currentPlayer?refreshFromPlayer(currentPlayer):hideNowPlayingBar()):isVisibilityAllowed&&(isVisibilityAllowed=!1,hideNowPlayingBar())})}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/playback/playbackmanager.js b/dashboard-ui/bower_components/emby-webcomponents/playback/playbackmanager.js index 9c0e13b119..37a981e21a 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/playback/playbackmanager.js +++ b/dashboard-ui/bower_components/emby-webcomponents/playback/playbackmanager.js @@ -1,2 +1,2 @@ -define(["events","datetime","appSettings","pluginManager","playQueueManager","userSettings","globalize","connectionManager","loading","serverNotifications","apphost","fullscreenManager","layoutManager"],function(events,datetime,appSettings,pluginManager,PlayQueueManager,userSettings,globalize,connectionManager,loading,serverNotifications,apphost,fullscreenManager,layoutManager){"use strict";function enableLocalPlaylistManagement(player){return!player.getPlaylist&&!!player.isLocalPlayer}function bindToFullscreenChange(player){events.on(fullscreenManager,"fullscreenchange",function(){events.trigger(player,"fullscreenchange")})}function triggerPlayerChange(playbackManagerInstance,newPlayer,newTarget,previousPlayer,previousTargetInfo){(newPlayer||previousPlayer)&&(newTarget&&previousTargetInfo&&newTarget.id===previousTargetInfo.id||events.trigger(playbackManagerInstance,"playerchange",[newPlayer,newTarget,previousPlayer]))}function reportPlayback(state,serverId,method,progressEventName){if(serverId){var info=Object.assign({},state.PlayState);info.ItemId=state.NowPlayingItem.Id,progressEventName&&(info.EventName=progressEventName);var apiClient=connectionManager.getApiClient(serverId);apiClient[method](info)}}function normalizeName(t){return t.toLowerCase().replace(" ","")}function getItemsForPlayback(serverId,query){var apiClient=connectionManager.getApiClient(serverId);if(query.Ids&&1===query.Ids.split(",").length){var itemId=query.Ids.split(",");return apiClient.getItem(apiClient.getCurrentUserId(),itemId).then(function(item){return{Items:[item],TotalRecordCount:1}})}return query.Limit=query.Limit||200,query.Fields="MediaSources,Chapters",query.ExcludeLocationTypes="Virtual",query.EnableTotalRecordCount=!1,apiClient.getItems(apiClient.getCurrentUserId(),query)}function createStreamInfoFromUrlItem(item){return{url:item.Url||item.Path,playMethod:"DirectPlay",item:item,textTracks:[],mediaType:item.MediaType}}function backdropImageUrl(apiClient,item,options){return options=options||{},options.type=options.type||"Backdrop",options.maxWidth||options.width||options.maxHeight||options.height||(options.quality=100),item.BackdropImageTags&&item.BackdropImageTags.length?(options.tag=item.BackdropImageTags[0],apiClient.getScaledImageUrl(item.Id,options)):item.ParentBackdropImageTags&&item.ParentBackdropImageTags.length?(options.tag=item.ParentBackdropImageTags[0],apiClient.getScaledImageUrl(item.ParentBackdropItemId,options)):null}function getMimeType(type,container){if(container=(container||"").toLowerCase(),"audio"===type){if("opus"===container)return"audio/ogg";if("webma"===container)return"audio/webm";if("m4a"===container)return"audio/mp4"}else if("video"===type){if("mkv"===container)return"video/x-matroska";if("m4v"===container)return"video/mp4";if("mov"===container)return"video/quicktime";if("mpg"===container)return"video/mpeg";if("flv"===container)return"video/x-flv"}return type+"/"+container}function getParam(name,url){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url);return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function isAutomaticPlayer(player){return!!player.isLocalPlayer}function getAutomaticPlayers(instance){var player=instance._currentPlayer;return player&&!isAutomaticPlayer(player)?[player]:instance.getPlayers().filter(isAutomaticPlayer)}function isServerItem(item){return!!item.Id}function enableIntros(item){return"Video"===item.MediaType&&("TvChannel"!==item.Type&&("InProgress"!==item.Status&&isServerItem(item)))}function getIntros(firstItem,apiClient,options){return!options.startPositionTicks&&options.fullscreen!==!1&&enableIntros(firstItem)&&userSettings.enableCinemaMode()?apiClient.getIntros(firstItem.Id):Promise.resolve({Items:[]})}function getAudioStreamUrl(item,transcodingProfile,directPlayContainers,maxBitrate,apiClient,startPosition){var url="Audio/"+item.Id+"/universal";return startingPlaySession++,apiClient.getUrl(url,{UserId:apiClient.getCurrentUserId(),DeviceId:apiClient.deviceId(),MaxStreamingBitrate:maxBitrate||appSettings.maxStreamingBitrate(),Container:directPlayContainers,TranscodingContainer:transcodingProfile.Container||null,TranscodingProtocol:transcodingProfile.Protocol||null,AudioCodec:transcodingProfile.AudioCodec,MaxSampleRate:48e3,api_key:apiClient.accessToken(),PlaySessionId:startingPlaySession,StartTimeTicks:startPosition||0,EnableRedirection:!0,EnableRemoteMedia:apphost.supports("remotemedia")})}function getAudioStreamUrlFromDeviceProfile(item,deviceProfile,maxBitrate,apiClient,startPosition){var transcodingProfile=deviceProfile.TranscodingProfiles.filter(function(p){return"Audio"===p.Type&&"Streaming"===p.Context})[0],directPlayContainers="";return deviceProfile.DirectPlayProfiles.map(function(p){"Audio"===p.Type&&(directPlayContainers?directPlayContainers+=","+p.Container:directPlayContainers=p.Container)}),getAudioStreamUrl(item,transcodingProfile,directPlayContainers,maxBitrate,apiClient,startPosition)}function getStreamUrls(items,deviceProfile,maxBitrate,apiClient,startPosition){var audioTranscodingProfile=deviceProfile.TranscodingProfiles.filter(function(p){return"Audio"===p.Type&&"Streaming"===p.Context})[0],audioDirectPlayContainers="";deviceProfile.DirectPlayProfiles.map(function(p){"Audio"===p.Type&&(audioDirectPlayContainers?audioDirectPlayContainers+=","+p.Container:audioDirectPlayContainers=p.Container)});for(var supportsUniversalAudio=apiClient.isMinServerVersion("3.2.17.5"),streamUrls=[],i=0,length=items.length;i=interceptors.length)return void resolve();var interceptor=interceptors[index];interceptor.intercept(options).then(function(){runNextPrePlay(interceptors,index+1,options,resolve,reject)},reject)}function sendPlaybackListToPLayer(player,items,deviceProfile,maxBitrate,apiClient,startPosition){return setStreamUrls(items,deviceProfile,maxBitrate,apiClient,startPosition).then(function(){return player.play({items:items})})}function playAfterBitrateDetect(connectionManager,maxBitrate,item,playOptions,onPlaybackStartedFn){var promise,startPosition=playOptions.startPositionTicks,player=getPlayer(item,playOptions),activePlayer=self._currentPlayer;return activePlayer?(self._playNextAfterEnded=!1,promise=onPlaybackChanging(activePlayer,player,item)):promise=Promise.resolve(),isServerItem(item)&&"Game"!==item.MediaType?Promise.all([promise,player.getDeviceProfile(item)]).then(function(responses){var deviceProfile=responses[1],apiClient=connectionManager.getApiClient(item.ServerId);return player&&!enableLocalPlaylistManagement(player)?sendPlaybackListToPLayer(player,playOptions.items,deviceProfile,maxBitrate,apiClient,startPosition):getPlaybackMediaSource(player,apiClient,deviceProfile,maxBitrate,item,startPosition).then(function(mediaSource){var streamInfo=createStreamInfo(apiClient,item.MediaType,item,mediaSource,startPosition);return streamInfo.fullscreen=playOptions.fullscreen,getPlayerData(player).isChangingStream=!1,getPlayerData(player).maxStreamingBitrate=maxBitrate,player.play(streamInfo).then(function(){loading.hide(),onPlaybackStartedFn(),onPlaybackStarted(player,playOptions,streamInfo,mediaSource)},function(){onPlaybackStartedFn(),onPlaybackStarted(player,playOptions,streamInfo,mediaSource),setTimeout(function(err){onPlaybackError.call(player,err,{type:"mediadecodeerror"})},100)})})}):promise.then(function(){var streamInfo=createStreamInfoFromUrlItem(item);return streamInfo.fullscreen=playOptions.fullscreen,getPlayerData(player).isChangingStream=!1,player.play(streamInfo).then(function(){loading.hide(),onPlaybackStartedFn(),onPlaybackStarted(player,playOptions,streamInfo)},function(){self.stop(player)})})}function createStreamInfo(apiClient,type,item,mediaSource,startPosition,forceTranscoding){var mediaUrl,contentType,directOptions,transcodingOffsetTicks=0,playerStartPositionTicks=startPosition,liveStreamId=mediaSource.LiveStreamId,playMethod="Transcode",mediaSourceContainer=(mediaSource.Container||"").toLowerCase();"Video"===type?(contentType=getMimeType("video",mediaSourceContainer),mediaSource.enableDirectPlay&&!forceTranscoding?(mediaUrl=mediaSource.Path,playMethod="DirectPlay"):mediaSource.SupportsDirectStream&&!forceTranscoding?(directOptions={Static:!0,mediaSourceId:mediaSource.Id,deviceId:apiClient.deviceId(),api_key:apiClient.accessToken()},mediaSource.ETag&&(directOptions.Tag=mediaSource.ETag),mediaSource.LiveStreamId&&(directOptions.LiveStreamId=mediaSource.LiveStreamId),mediaUrl=apiClient.getUrl("Videos/"+item.Id+"/stream."+mediaSourceContainer,directOptions),playMethod="DirectStream"):mediaSource.SupportsTranscoding&&(mediaUrl=apiClient.getUrl(mediaSource.TranscodingUrl),"hls"===mediaSource.TranscodingSubProtocol?contentType="application/x-mpegURL":(playerStartPositionTicks=null,contentType=getMimeType("video",mediaSource.TranscodingContainer),mediaUrl.toLowerCase().indexOf("copytimestamps=true")===-1&&(transcodingOffsetTicks=startPosition||0)))):"Audio"===type?(contentType=getMimeType("audio",mediaSourceContainer),mediaSource.enableDirectPlay&&!forceTranscoding?(mediaUrl=mediaSource.Path,playMethod="DirectPlay"):mediaSource.StreamUrl?(playMethod="Transcode",mediaUrl=mediaSource.StreamUrl):mediaSource.SupportsDirectStream&&!forceTranscoding?(directOptions={Static:!0,mediaSourceId:mediaSource.Id,deviceId:apiClient.deviceId(),api_key:apiClient.accessToken()},mediaSource.ETag&&(directOptions.Tag=mediaSource.ETag),mediaSource.LiveStreamId&&(directOptions.LiveStreamId=mediaSource.LiveStreamId),mediaUrl=apiClient.getUrl("Audio/"+item.Id+"/stream."+mediaSourceContainer,directOptions),playMethod="DirectStream"):mediaSource.SupportsTranscoding&&(mediaUrl=apiClient.getUrl(mediaSource.TranscodingUrl),"hls"===mediaSource.TranscodingSubProtocol?contentType="application/x-mpegURL":(transcodingOffsetTicks=startPosition||0,playerStartPositionTicks=null,contentType=getMimeType("audio",mediaSource.TranscodingContainer)))):"Game"===type&&(mediaUrl=mediaSource.Path,playMethod="DirectPlay"),!mediaUrl&&mediaSource.SupportsDirectPlay&&(mediaUrl=mediaSource.Path,playMethod="DirectPlay");var resultInfo={url:mediaUrl,mimeType:contentType,transcodingOffsetTicks:transcodingOffsetTicks,playMethod:playMethod,playerStartPositionTicks:playerStartPositionTicks,item:item,mediaSource:mediaSource,textTracks:getTextTracks(apiClient,mediaSource),tracks:getTextTracks(apiClient,mediaSource),mediaType:type,liveStreamId:liveStreamId,playSessionId:getParam("playSessionId",mediaUrl),title:item.Name},backdropUrl=backdropImageUrl(apiClient,item,{});return backdropUrl&&(resultInfo.backdropUrl=backdropUrl),resultInfo}function getTextTracks(apiClient,mediaSource){for(var subtitleStreams=mediaSource.MediaStreams.filter(function(s){return"Subtitle"===s.Type}),textStreams=subtitleStreams.filter(function(s){return"External"===s.DeliveryMethod}),tracks=[],i=0,length=textStreams.length;idatetime.parseISO8601Date(item.EndDate).getTime()||(new Date).getTime()=supported.length&&(index=0),self.setAspectRatio(supported[index].id,player)}},self.setAspectRatio=function(val,player){player=player||self._currentPlayer,player&&player.setAspectRatio&&player.setAspectRatio(val)},self.getSupportedAspectRatios=function(player){return player=player||self._currentPlayer,player&&player.getSupportedAspectRatios?player.getSupportedAspectRatios():[]},self.getAspectRatio=function(player){if(player=player||self._currentPlayer,player&&player.getAspectRatio)return player.getAspectRatio()};var brightnessOsdLoaded;self.setBrightness=function(val,player){player=player||self._currentPlayer,player&&(brightnessOsdLoaded||(brightnessOsdLoaded=!0,require(["brightnessOsd"])),player.setBrightness(val))},self.getBrightness=function(player){if(player=player||self._currentPlayer)return player.getBrightness()},self.setVolume=function(val,player){player=player||self._currentPlayer,player&&player.setVolume(val)},self.getVolume=function(player){if(player=player||self._currentPlayer)return player.getVolume()},self.volumeUp=function(player){player=player||self._currentPlayer,player&&player.volumeUp()},self.volumeDown=function(player){player=player||self._currentPlayer,player&&player.volumeDown()},self.changeAudioStreamIndex=function(player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.changeAudioStreamIndex()},self.changeSubtitleStreamIndex=function(player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.changeSubtitleStreamIndex()},self.getAudioStreamIndex=function(player){return player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.getAudioStreamIndex():getPlayerData(player).audioStreamIndex},self.setAudioStreamIndex=function(index,player){return player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.setAudioStreamIndex(index):void("Transcode"!==getPlayerData(player).streamInfo.playMethod&&player.canSetAudioStreamIndex()?(player.setAudioStreamIndex(index),getPlayerData(player).audioStreamIndex=index):(changeStream(player,getCurrentTicks(player),{AudioStreamIndex:index}),getPlayerData(player).audioStreamIndex=index))},self.getMaxStreamingBitrate=function(player){return player=player||self._currentPlayer,player&&player.getMaxStreamingBitrate?player.getMaxStreamingBitrate():getPlayerData(player).maxStreamingBitrate||appSettings.maxStreamingBitrate()},self.enableAutomaticBitrateDetection=function(player){return player=player||self._currentPlayer,player&&player.enableAutomaticBitrateDetection?player.enableAutomaticBitrateDetection():appSettings.enableAutomaticBitrateDetection()},self.setMaxStreamingBitrate=function(options,player){if(player=player||self._currentPlayer,player&&player.setMaxStreamingBitrate)return player.setMaxStreamingBitrate(options);var promise;options.enableAutomaticBitrateDetection?(appSettings.enableAutomaticBitrateDetection(!0),promise=connectionManager.getApiClient(self.currentItem(player).ServerId).detectBitrate(!0)):(appSettings.enableAutomaticBitrateDetection(!1),promise=Promise.resolve(options.maxBitrate)),promise.then(function(bitrate){appSettings.maxStreamingBitrate(bitrate),changeStream(player,getCurrentTicks(player),{MaxStreamingBitrate:bitrate})})},self.isFullscreen=function(player){return player=player||self._currentPlayer,!player.isLocalPlayer||player.isFullscreen?player.isFullscreen():fullscreenManager.isFullScreen()},self.toggleFullscreen=function(player){return player=player||self._currentPlayer,!player.isLocalPlayer||player.toggleFulscreen?player.toggleFulscreen():void(fullscreenManager.isFullScreen()?fullscreenManager.exitFullscreen():fullscreenManager.requestFullscreen())},self.togglePictureInPicture=function(player){return player=player||self._currentPlayer,player.togglePictureInPicture()},self.getSubtitleStreamIndex=function(player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.getSubtitleStreamIndex();if(!player)throw new Error("player cannot be null");return getPlayerData(player).subtitleStreamIndex},self.setSubtitleStreamIndex=function(index,player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.setSubtitleStreamIndex(index);var currentStream=getCurrentSubtitleStream(player),newStream=getSubtitleStream(player,index);if(currentStream||newStream){var selectedTrackElementIndex=-1,currentPlayMethod=(getPlayerData(player).streamInfo||{}).playMethod;currentStream&&!newStream?("Encode"===currentStream.DeliveryMethod||"Embed"===currentStream.DeliveryMethod&&"Transcode"===currentPlayMethod)&&changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:-1}):!currentStream&&newStream?"External"===newStream.DeliveryMethod?selectedTrackElementIndex=index:"Embed"===newStream.DeliveryMethod&&"Transcode"!==currentPlayMethod?selectedTrackElementIndex=index:changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:index}):currentStream&&newStream&&("External"===newStream.DeliveryMethod||"Embed"===newStream.DeliveryMethod&&"Transcode"!==currentPlayMethod?(selectedTrackElementIndex=index,"External"!==currentStream.DeliveryMethod&&"Embed"!==currentStream.DeliveryMethod&&changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:-1})):changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:index})),player.setSubtitleStreamIndex(selectedTrackElementIndex),getPlayerData(player).subtitleStreamIndex=index}},self.seek=function(ticks,player){return ticks=Math.max(0,ticks),player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.seek(ticks):void changeStream(player,ticks)},self.play=function(options){if(normalizePlayOptions(options),self._currentPlayer){if(options.enableRemotePlayers===!1&&!self._currentPlayer.isLocalPlayer)return Promise.reject();if(!self._currentPlayer.isLocalPlayer)return self._currentPlayer.play(options)}if(options.fullscreen&&loading.show(),options.items)return translateItemsForPlayback(options.items,options).then(function(items){return playWithIntros(items,options)});if(!options.serverId)throw new Error("serverId required!");return getItemsForPlayback(options.serverId,{Ids:options.ids.join(",")}).then(function(result){return translateItemsForPlayback(result.Items,options).then(function(items){return playWithIntros(items,options)})})},self.getPlayerState=function(player){if(player=player||self._currentPlayer,!player)throw new Error("player cannot be null");if(!enableLocalPlaylistManagement(player))return player.getPlayerState();var playerData=getPlayerData(player),streamInfo=playerData.streamInfo,item=streamInfo?streamInfo.item:null,mediaSource=streamInfo?streamInfo.mediaSource:null,state={PlayState:{}};return player&&(state.PlayState.VolumeLevel=player.getVolume(),state.PlayState.IsMuted=player.isMuted(),state.PlayState.IsPaused=player.paused(),state.PlayState.RepeatMode=self.getRepeatMode(player),state.PlayState.MaxStreamingBitrate=self.getMaxStreamingBitrate(player),streamInfo&&(state.PlayState.PositionTicks=getCurrentTicks(player),state.PlayState.SubtitleStreamIndex=playerData.subtitleStreamIndex,state.PlayState.AudioStreamIndex=playerData.audioStreamIndex,state.PlayState.PlayMethod=playerData.streamInfo.playMethod,mediaSource&&(state.PlayState.LiveStreamId=mediaSource.LiveStreamId),state.PlayState.PlaySessionId=playerData.streamInfo.playSessionId)),mediaSource&&(state.PlayState.MediaSourceId=mediaSource.Id,state.NowPlayingItem={RunTimeTicks:mediaSource.RunTimeTicks},state.PlayState.CanSeek=(mediaSource.RunTimeTicks||0)>0||canPlayerSeek(player)),item&&(state.NowPlayingItem=getNowPlayingItemForReporting(player,item,mediaSource)),state.MediaSource=mediaSource,Promise.resolve(state)},self.duration=function(player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.duration();if(!player)throw new Error("player cannot be null");var streamInfo=getPlayerData(player).streamInfo;if(streamInfo&&streamInfo.mediaSource&&streamInfo.mediaSource.RunTimeTicks)return streamInfo.mediaSource.RunTimeTicks;var playerDuration=player.duration();return playerDuration&&(playerDuration*=1e4),playerDuration},self.getCurrentTicks=getCurrentTicks,self.setCurrentPlaylistItem=function(playlistItemId,player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.setCurrentPlaylistItem(playlistItemId);for(var newItem,newItemIndex,playlist=self._playQueueManager.getPlaylist(),i=0,length=playlist.length;i=0){var playlist=self._playQueueManager.getPlaylist(),newItem=playlist[newIndex];if(newItem){var playOptions=Object.assign({},currentPlayOptions,{startPositionTicks:0});playInternal(newItem,playOptions,function(){setPlaylistState(newItem.PlaylistItemId,newIndex)})}}},self.queue=function(options,player){queue(options,"",player)},self.queueNext=function(options,player){queue(options,"next",player)},events.on(pluginManager,"registered",function(e,plugin){"mediaplayer"===plugin.type&&initMediaPlayer(plugin)}),pluginManager.ofType("mediaplayer").map(initMediaPlayer),window.addEventListener("beforeunload",function(e){var player=self._currentPlayer;player&&self.isPlaying(player)&&(self._playNextAfterEnded=!1,onPlaybackStopped.call(player))}),events.on(serverNotifications,"ServerShuttingDown",function(e,apiClient,data){self.setDefaultPlayerActive()}),events.on(serverNotifications,"ServerRestarting",function(e,apiClient,data){self.setDefaultPlayerActive()})}var startingPlaySession=(new Date).getTime();return PlaybackManager.prototype.getCurrentPlayer=function(){return this._currentPlayer},PlaybackManager.prototype.currentTime=function(player){return player=player||this._currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.currentTime():this.getCurrentTicks(player)},PlaybackManager.prototype.canQueue=function(item){return"MusicAlbum"===item.Type||"MusicArtist"===item.Type||"MusicGenre"===item.Type?this.canQueueMediaType("Audio"):this.canQueueMediaType(item.MediaType)},PlaybackManager.prototype.canQueueMediaType=function(mediaType){return!!this._currentPlayer&&this._currentPlayer.canPlayMediaType(mediaType)},PlaybackManager.prototype.isMuted=function(player){return player=player||this._currentPlayer,!!player&&player.isMuted()},PlaybackManager.prototype.setMute=function(mute,player){player=player||this._currentPlayer,player&&player.setMute(mute)},PlaybackManager.prototype.toggleMute=function(mute,player){player=player||this._currentPlayer,player&&(player.toggleMute?player.toggleMute():player.setMute(!player.isMuted()))},PlaybackManager.prototype.toggleDisplayMirroring=function(){this.enableDisplayMirroring(!this.enableDisplayMirroring())},PlaybackManager.prototype.enableDisplayMirroring=function(enabled){if(null!=enabled){var val=enabled?"1":"0";return void appSettings.set("displaymirror",val)}return"0"!==(appSettings.get("displaymirror")||"")},PlaybackManager.prototype.nextChapter=function(player){player=player||this._currentPlayer;var item=this.currentItem(player),ticks=this.getCurrentTicks(player),nextChapter=(item.Chapters||[]).filter(function(i){return i.StartPositionTicks>ticks})[0];nextChapter?this.seek(nextChapter.StartPositionTicks,player):this.nextTrack(player)},PlaybackManager.prototype.previousChapter=function(player){player=player||this._currentPlayer;var item=this.currentItem(player),ticks=this.getCurrentTicks(player);ticks-=1e8,0===this.getCurrentPlaylistIndex(player)&&(ticks=Math.max(ticks,0));var previousChapters=(item.Chapters||[]).filter(function(i){return i.StartPositionTicks<=ticks});previousChapters.length?this.seek(previousChapters[previousChapters.length-1].StartPositionTicks,player):this.previousTrack(player)},PlaybackManager.prototype.fastForward=function(player){if(player=player||this._currentPlayer,null!=player.fastForward)return void player.fastForward(userSettings.skipForwardLength());var ticks=this.getCurrentTicks(player);ticks+=1e4*userSettings.skipForwardLength();var runTimeTicks=this.duration(player)||0;ticks=interceptors.length)return void resolve();var interceptor=interceptors[index];interceptor.intercept(options).then(function(){runNextPrePlay(interceptors,index+1,options,resolve,reject)},reject)}function sendPlaybackListToPLayer(player,items,deviceProfile,maxBitrate,apiClient,startPosition){return setStreamUrls(items,deviceProfile,maxBitrate,apiClient,startPosition).then(function(){return player.play({items:items})})}function playAfterBitrateDetect(connectionManager,maxBitrate,item,playOptions,onPlaybackStartedFn){var promise,startPosition=playOptions.startPositionTicks,player=getPlayer(item,playOptions),activePlayer=self._currentPlayer;return activePlayer?(self._playNextAfterEnded=!1,promise=onPlaybackChanging(activePlayer,player,item)):promise=Promise.resolve(),isServerItem(item)&&"Game"!==item.MediaType?Promise.all([promise,player.getDeviceProfile(item)]).then(function(responses){var deviceProfile=responses[1],apiClient=connectionManager.getApiClient(item.ServerId);return player&&!enableLocalPlaylistManagement(player)?sendPlaybackListToPLayer(player,playOptions.items,deviceProfile,maxBitrate,apiClient,startPosition):getPlaybackMediaSource(player,apiClient,deviceProfile,maxBitrate,item,startPosition).then(function(mediaSource){var streamInfo=createStreamInfo(apiClient,item.MediaType,item,mediaSource,startPosition);return streamInfo.fullscreen=playOptions.fullscreen,getPlayerData(player).isChangingStream=!1,getPlayerData(player).maxStreamingBitrate=maxBitrate,player.play(streamInfo).then(function(){loading.hide(),onPlaybackStartedFn(),onPlaybackStarted(player,playOptions,streamInfo,mediaSource)},function(){onPlaybackStartedFn(),onPlaybackStarted(player,playOptions,streamInfo,mediaSource),setTimeout(function(err){onPlaybackError.call(player,err,{type:"mediadecodeerror"})},100)})})}):promise.then(function(){var streamInfo=createStreamInfoFromUrlItem(item);return streamInfo.fullscreen=playOptions.fullscreen,getPlayerData(player).isChangingStream=!1,player.play(streamInfo).then(function(){loading.hide(),onPlaybackStartedFn(),onPlaybackStarted(player,playOptions,streamInfo)},function(){self.stop(player)})})}function createStreamInfo(apiClient,type,item,mediaSource,startPosition,forceTranscoding){var mediaUrl,contentType,directOptions,transcodingOffsetTicks=0,playerStartPositionTicks=startPosition,liveStreamId=mediaSource.LiveStreamId,playMethod="Transcode",mediaSourceContainer=(mediaSource.Container||"").toLowerCase();"Video"===type?(contentType=getMimeType("video",mediaSourceContainer),mediaSource.enableDirectPlay&&!forceTranscoding?(mediaUrl=mediaSource.Path,playMethod="DirectPlay"):mediaSource.SupportsDirectStream&&!forceTranscoding?(directOptions={Static:!0,mediaSourceId:mediaSource.Id,deviceId:apiClient.deviceId(),api_key:apiClient.accessToken()},mediaSource.ETag&&(directOptions.Tag=mediaSource.ETag),mediaSource.LiveStreamId&&(directOptions.LiveStreamId=mediaSource.LiveStreamId),mediaUrl=apiClient.getUrl("Videos/"+item.Id+"/stream."+mediaSourceContainer,directOptions),playMethod="DirectStream"):mediaSource.SupportsTranscoding&&(mediaUrl=apiClient.getUrl(mediaSource.TranscodingUrl),"hls"===mediaSource.TranscodingSubProtocol?contentType="application/x-mpegURL":(playerStartPositionTicks=null,contentType=getMimeType("video",mediaSource.TranscodingContainer),mediaUrl.toLowerCase().indexOf("copytimestamps=true")===-1&&(transcodingOffsetTicks=startPosition||0)))):"Audio"===type?(contentType=getMimeType("audio",mediaSourceContainer),mediaSource.enableDirectPlay&&!forceTranscoding?(mediaUrl=mediaSource.Path,playMethod="DirectPlay"):mediaSource.StreamUrl?(playMethod="Transcode",mediaUrl=mediaSource.StreamUrl):mediaSource.SupportsDirectStream&&!forceTranscoding?(directOptions={Static:!0,mediaSourceId:mediaSource.Id,deviceId:apiClient.deviceId(),api_key:apiClient.accessToken()},mediaSource.ETag&&(directOptions.Tag=mediaSource.ETag),mediaSource.LiveStreamId&&(directOptions.LiveStreamId=mediaSource.LiveStreamId),mediaUrl=apiClient.getUrl("Audio/"+item.Id+"/stream."+mediaSourceContainer,directOptions),playMethod="DirectStream"):mediaSource.SupportsTranscoding&&(mediaUrl=apiClient.getUrl(mediaSource.TranscodingUrl),"hls"===mediaSource.TranscodingSubProtocol?contentType="application/x-mpegURL":(transcodingOffsetTicks=startPosition||0,playerStartPositionTicks=null,contentType=getMimeType("audio",mediaSource.TranscodingContainer)))):"Game"===type&&(mediaUrl=mediaSource.Path,playMethod="DirectPlay"),!mediaUrl&&mediaSource.SupportsDirectPlay&&(mediaUrl=mediaSource.Path,playMethod="DirectPlay");var resultInfo={url:mediaUrl,mimeType:contentType,transcodingOffsetTicks:transcodingOffsetTicks,playMethod:playMethod,playerStartPositionTicks:playerStartPositionTicks,item:item,mediaSource:mediaSource,textTracks:getTextTracks(apiClient,mediaSource),tracks:getTextTracks(apiClient,mediaSource),mediaType:type,liveStreamId:liveStreamId,playSessionId:getParam("playSessionId",mediaUrl),title:item.Name},backdropUrl=backdropImageUrl(apiClient,item,{});return backdropUrl&&(resultInfo.backdropUrl=backdropUrl),resultInfo}function getTextTracks(apiClient,mediaSource){for(var subtitleStreams=mediaSource.MediaStreams.filter(function(s){return"Subtitle"===s.Type}),textStreams=subtitleStreams.filter(function(s){return"External"===s.DeliveryMethod}),tracks=[],i=0,length=textStreams.length;idatetime.parseISO8601Date(item.EndDate).getTime()||(new Date).getTime()=supported.length&&(index=0),self.setAspectRatio(supported[index].id,player)}},self.setAspectRatio=function(val,player){player=player||self._currentPlayer,player&&player.setAspectRatio&&player.setAspectRatio(val)},self.getSupportedAspectRatios=function(player){return player=player||self._currentPlayer,player&&player.getSupportedAspectRatios?player.getSupportedAspectRatios():[]},self.getAspectRatio=function(player){if(player=player||self._currentPlayer,player&&player.getAspectRatio)return player.getAspectRatio()};var brightnessOsdLoaded;self.setBrightness=function(val,player){player=player||self._currentPlayer,player&&(brightnessOsdLoaded||(brightnessOsdLoaded=!0,require(["brightnessOsd"])),player.setBrightness(val))},self.getBrightness=function(player){if(player=player||self._currentPlayer)return player.getBrightness()},self.setVolume=function(val,player){player=player||self._currentPlayer,player&&player.setVolume(val)},self.getVolume=function(player){if(player=player||self._currentPlayer)return player.getVolume()},self.volumeUp=function(player){player=player||self._currentPlayer,player&&player.volumeUp()},self.volumeDown=function(player){player=player||self._currentPlayer,player&&player.volumeDown()},self.changeAudioStreamIndex=function(player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.changeAudioStreamIndex()},self.changeSubtitleStreamIndex=function(player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.changeSubtitleStreamIndex()},self.getAudioStreamIndex=function(player){return player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.getAudioStreamIndex():getPlayerData(player).audioStreamIndex},self.setAudioStreamIndex=function(index,player){return player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.setAudioStreamIndex(index):void("Transcode"!==getPlayerData(player).streamInfo.playMethod&&player.canSetAudioStreamIndex()?(player.setAudioStreamIndex(index),getPlayerData(player).audioStreamIndex=index):(changeStream(player,getCurrentTicks(player),{AudioStreamIndex:index}),getPlayerData(player).audioStreamIndex=index))},self.getMaxStreamingBitrate=function(player){return player=player||self._currentPlayer,player&&player.getMaxStreamingBitrate?player.getMaxStreamingBitrate():getPlayerData(player).maxStreamingBitrate||appSettings.maxStreamingBitrate()},self.enableAutomaticBitrateDetection=function(player){return player=player||self._currentPlayer,player&&player.enableAutomaticBitrateDetection?player.enableAutomaticBitrateDetection():appSettings.enableAutomaticBitrateDetection()},self.setMaxStreamingBitrate=function(options,player){if(player=player||self._currentPlayer,player&&player.setMaxStreamingBitrate)return player.setMaxStreamingBitrate(options);var promise;options.enableAutomaticBitrateDetection?(appSettings.enableAutomaticBitrateDetection(!0),promise=connectionManager.getApiClient(self.currentItem(player).ServerId).detectBitrate(!0)):(appSettings.enableAutomaticBitrateDetection(!1),promise=Promise.resolve(options.maxBitrate)),promise.then(function(bitrate){appSettings.maxStreamingBitrate(bitrate),changeStream(player,getCurrentTicks(player),{MaxStreamingBitrate:bitrate})})},self.isFullscreen=function(player){return player=player||self._currentPlayer,!player.isLocalPlayer||player.isFullscreen?player.isFullscreen():fullscreenManager.isFullScreen()},self.toggleFullscreen=function(player){return player=player||self._currentPlayer,!player.isLocalPlayer||player.toggleFulscreen?player.toggleFulscreen():void(fullscreenManager.isFullScreen()?fullscreenManager.exitFullscreen():fullscreenManager.requestFullscreen())},self.togglePictureInPicture=function(player){return player=player||self._currentPlayer,player.togglePictureInPicture()},self.getSubtitleStreamIndex=function(player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.getSubtitleStreamIndex();if(!player)throw new Error("player cannot be null");return getPlayerData(player).subtitleStreamIndex},self.setSubtitleStreamIndex=function(index,player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.setSubtitleStreamIndex(index);var currentStream=getCurrentSubtitleStream(player),newStream=getSubtitleStream(player,index);if(currentStream||newStream){var selectedTrackElementIndex=-1,currentPlayMethod=(getPlayerData(player).streamInfo||{}).playMethod;currentStream&&!newStream?("Encode"===currentStream.DeliveryMethod||"Embed"===currentStream.DeliveryMethod&&"Transcode"===currentPlayMethod)&&changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:-1}):!currentStream&&newStream?"External"===newStream.DeliveryMethod?selectedTrackElementIndex=index:"Embed"===newStream.DeliveryMethod&&"Transcode"!==currentPlayMethod?selectedTrackElementIndex=index:changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:index}):currentStream&&newStream&&("External"===newStream.DeliveryMethod||"Embed"===newStream.DeliveryMethod&&"Transcode"!==currentPlayMethod?(selectedTrackElementIndex=index,"External"!==currentStream.DeliveryMethod&&"Embed"!==currentStream.DeliveryMethod&&changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:-1})):changeStream(player,getCurrentTicks(player),{SubtitleStreamIndex:index})),player.setSubtitleStreamIndex(selectedTrackElementIndex),getPlayerData(player).subtitleStreamIndex=index}},self.seek=function(ticks,player){return ticks=Math.max(0,ticks),player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.seek(ticks):void changeStream(player,ticks)},self.play=function(options){if(normalizePlayOptions(options),self._currentPlayer){if(options.enableRemotePlayers===!1&&!self._currentPlayer.isLocalPlayer)return Promise.reject();if(!self._currentPlayer.isLocalPlayer)return self._currentPlayer.play(options)}if(options.fullscreen&&loading.show(),options.items)return translateItemsForPlayback(options.items,options).then(function(items){return playWithIntros(items,options)});if(!options.serverId)throw new Error("serverId required!");return getItemsForPlayback(options.serverId,{Ids:options.ids.join(",")}).then(function(result){return translateItemsForPlayback(result.Items,options).then(function(items){return playWithIntros(items,options)})})},self.getPlayerState=function(player){if(player=player||self._currentPlayer,!player)throw new Error("player cannot be null");if(!enableLocalPlaylistManagement(player))return player.getPlayerState();var playerData=getPlayerData(player),streamInfo=playerData.streamInfo,item=streamInfo?streamInfo.item:null,mediaSource=streamInfo?streamInfo.mediaSource:null,state={PlayState:{}};return player&&(state.PlayState.VolumeLevel=player.getVolume(),state.PlayState.IsMuted=player.isMuted(),state.PlayState.IsPaused=player.paused(),state.PlayState.RepeatMode=self.getRepeatMode(player),state.PlayState.MaxStreamingBitrate=self.getMaxStreamingBitrate(player),streamInfo&&(state.PlayState.PositionTicks=getCurrentTicks(player),state.PlayState.SubtitleStreamIndex=playerData.subtitleStreamIndex,state.PlayState.AudioStreamIndex=playerData.audioStreamIndex,state.PlayState.PlayMethod=playerData.streamInfo.playMethod,mediaSource&&(state.PlayState.LiveStreamId=mediaSource.LiveStreamId),state.PlayState.PlaySessionId=playerData.streamInfo.playSessionId)),mediaSource&&(state.PlayState.MediaSourceId=mediaSource.Id,state.NowPlayingItem={RunTimeTicks:mediaSource.RunTimeTicks},state.PlayState.CanSeek=(mediaSource.RunTimeTicks||0)>0||canPlayerSeek(player)),item&&(state.NowPlayingItem=getNowPlayingItemForReporting(player,item,mediaSource)),state.MediaSource=mediaSource,Promise.resolve(state)},self.duration=function(player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.duration();if(!player)throw new Error("player cannot be null");var streamInfo=getPlayerData(player).streamInfo;if(streamInfo&&streamInfo.mediaSource&&streamInfo.mediaSource.RunTimeTicks)return streamInfo.mediaSource.RunTimeTicks;var playerDuration=player.duration();return playerDuration&&(playerDuration*=1e4),playerDuration},self.getCurrentTicks=getCurrentTicks,self.setCurrentPlaylistItem=function(playlistItemId,player){if(player=player||self._currentPlayer,player&&!enableLocalPlaylistManagement(player))return player.setCurrentPlaylistItem(playlistItemId);for(var newItem,newItemIndex,playlist=self._playQueueManager.getPlaylist(),i=0,length=playlist.length;i=0){var playlist=self._playQueueManager.getPlaylist(),newItem=playlist[newIndex];if(newItem){var playOptions=Object.assign({},currentPlayOptions,{startPositionTicks:0});playInternal(newItem,playOptions,function(){setPlaylistState(newItem.PlaylistItemId,newIndex)})}}},self.queue=function(options,player){queue(options,"",player)},self.queueNext=function(options,player){queue(options,"next",player)},events.on(pluginManager,"registered",function(e,plugin){"mediaplayer"===plugin.type&&initMediaPlayer(plugin)}),pluginManager.ofType("mediaplayer").map(initMediaPlayer),window.addEventListener("beforeunload",function(e){var player=self._currentPlayer;player&&self.isPlaying(player)&&(self._playNextAfterEnded=!1,onPlaybackStopped.call(player))}),events.on(serverNotifications,"ServerShuttingDown",function(e,apiClient,data){self.setDefaultPlayerActive()}),events.on(serverNotifications,"ServerRestarting",function(e,apiClient,data){self.setDefaultPlayerActive()})}var startingPlaySession=(new Date).getTime();return PlaybackManager.prototype.getCurrentPlayer=function(){return this._currentPlayer},PlaybackManager.prototype.currentTime=function(player){return player=player||this._currentPlayer,player&&!enableLocalPlaylistManagement(player)?player.currentTime():this.getCurrentTicks(player)},PlaybackManager.prototype.canQueue=function(item){return"MusicAlbum"===item.Type||"MusicArtist"===item.Type||"MusicGenre"===item.Type?this.canQueueMediaType("Audio"):this.canQueueMediaType(item.MediaType)},PlaybackManager.prototype.canQueueMediaType=function(mediaType){return!!this._currentPlayer&&this._currentPlayer.canPlayMediaType(mediaType)},PlaybackManager.prototype.isMuted=function(player){return player=player||this._currentPlayer,!!player&&player.isMuted()},PlaybackManager.prototype.setMute=function(mute,player){player=player||this._currentPlayer,player&&player.setMute(mute)},PlaybackManager.prototype.toggleMute=function(mute,player){player=player||this._currentPlayer,player&&(player.toggleMute?player.toggleMute():player.setMute(!player.isMuted()))},PlaybackManager.prototype.toggleDisplayMirroring=function(){this.enableDisplayMirroring(!this.enableDisplayMirroring())},PlaybackManager.prototype.enableDisplayMirroring=function(enabled){if(null!=enabled){var val=enabled?"1":"0";return void appSettings.set("displaymirror",val)}return"0"!==(appSettings.get("displaymirror")||"")},PlaybackManager.prototype.nextChapter=function(player){player=player||this._currentPlayer;var item=this.currentItem(player),ticks=this.getCurrentTicks(player),nextChapter=(item.Chapters||[]).filter(function(i){return i.StartPositionTicks>ticks})[0];nextChapter?this.seek(nextChapter.StartPositionTicks,player):this.nextTrack(player)},PlaybackManager.prototype.previousChapter=function(player){player=player||this._currentPlayer;var item=this.currentItem(player),ticks=this.getCurrentTicks(player);ticks-=1e8,0===this.getCurrentPlaylistIndex(player)&&(ticks=Math.max(ticks,0));var previousChapters=(item.Chapters||[]).filter(function(i){return i.StartPositionTicks<=ticks});previousChapters.length?this.seek(previousChapters[previousChapters.length-1].StartPositionTicks,player):this.previousTrack(player)},PlaybackManager.prototype.fastForward=function(player){if(player=player||this._currentPlayer,null!=player.fastForward)return void player.fastForward(userSettings.skipForwardLength());var ticks=this.getCurrentTicks(player);ticks+=1e4*userSettings.skipForwardLength();var runTimeTicks=this.duration(player)||0;ticks',html+='

',html+=playerInfo.deviceName||playerInfo.name,html+="

",html+="
",playerInfo.supportedCommands.indexOf("DisplayContent")!==-1){html+='"}html+="
",html+='
',html+='",html+='",html+='",html+="
",html+="
",dlg.innerHTML=html;var chkMirror=dlg.querySelector(".chkMirror");chkMirror&&chkMirror.addEventListener("change",onMirrorChange);var destination="",btnRemoteControl=dlg.querySelector(".btnRemoteControl");btnRemoteControl&&btnRemoteControl.addEventListener("click",function(){destination="nowplaying.html",dialogHelper.close(dlg)}),dlg.querySelector(".btnDisconnect").addEventListener("click",function(){playbackManager.disconnectFromPlayer(),dialogHelper.close(dlg)}),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),dialogHelper.open(dlg).then(function(){destination&&embyRouter.show(destination)},emptyCallback)}function onMirrorChange(){playbackManager.enableDisplayMirroring(this.checked)}var currentDisplayInfo;return document.addEventListener("viewbeforeshow",function(){currentDisplayInfo=null}),document.addEventListener("viewshow",function(e){var state=e.detail.state||{},item=state.item;if(item&&item.ServerId)return void mirrorIfEnabled({item:item})}),events.on(appSettings,"change",function(e,name){"displaymirror"===name&&mirrorIfEnabled()}),{show:showPlayerSelection}}); \ No newline at end of file +define(["appSettings","events","browser","loading","playbackManager","embyRouter","globalize","apphost"],function(appSettings,events,browser,loading,playbackManager,embyRouter,globalize,appHost){"use strict";function mirrorItem(info,player){var item=info.item;playbackManager.displayContent({ItemName:item.Name,ItemId:item.Id,ItemType:item.Type,Context:info.context},player)}function mirrorIfEnabled(info){if(info=info||currentDisplayInfo,info&&playbackManager.enableDisplayMirroring()){var getPlayerInfo=playbackManager.getPlayerInfo();getPlayerInfo&&(getPlayerInfo.isLocalPlayer||getPlayerInfo.supportedCommands.indexOf("DisplayContent")===-1||mirrorItem(info,playbackManager.getCurrentPlayer()))}}function emptyCallback(){}function showPlayerSelection(button){var currentPlayerInfo=playbackManager.getPlayerInfo();if(currentPlayerInfo&&!currentPlayerInfo.isLocalPlayer)return void showActivePlayerMenu(currentPlayerInfo);var currentPlayerId=currentPlayerInfo?currentPlayerInfo.id:null;loading.show(),playbackManager.getTargets().then(function(targets){var menuItems=targets.map(function(t){var name=t.name;return t.appName&&t.appName!==t.name&&(name+=" - "+t.appName),{name:name,id:t.id,selected:currentPlayerId===t.id}});require(["actionsheet"],function(actionsheet){loading.hide();var menuOptions={title:globalize.translate("sharedcomponents#HeaderSelectPlayer"),items:menuItems,positionTo:button,resolveOnClick:!0};browser.chrome&&!appHost.supports("castmenuhashchange")&&(menuOptions.enableHistory=!1),actionsheet.show(menuOptions).then(function(id){var target=targets.filter(function(t){return t.id===id})[0];playbackManager.trySetActivePlayer(target.playerName,target),mirrorIfEnabled()},emptyCallback)})})}function showActivePlayerMenu(playerInfo){require(["dialogHelper","dialog","emby-checkbox","emby-button"],function(dialogHelper){showActivePlayerMenuInternal(dialogHelper,playerInfo)})}function showActivePlayerMenuInternal(dialogHelper,playerInfo){var html="",dialogOptions={removeOnClose:!0};dialogOptions.modal=!1,dialogOptions.entryAnimationDuration=160,dialogOptions.exitAnimationDuration=160,dialogOptions.autoFocus=!1;var dlg=dialogHelper.createDialog(dialogOptions);if(dlg.classList.add("promptDialog"),html+='
',html+='

',html+=playerInfo.deviceName||playerInfo.name,html+="

",html+="
",playerInfo.supportedCommands.indexOf("DisplayContent")!==-1){html+='"}html+="
",html+='
',html+='",html+='",html+='",html+="
",html+="
",dlg.innerHTML=html;var chkMirror=dlg.querySelector(".chkMirror");chkMirror&&chkMirror.addEventListener("change",onMirrorChange);var destination="",btnRemoteControl=dlg.querySelector(".btnRemoteControl");btnRemoteControl&&btnRemoteControl.addEventListener("click",function(){destination="nowplaying",dialogHelper.close(dlg)}),dlg.querySelector(".btnDisconnect").addEventListener("click",function(){playbackManager.disconnectFromPlayer(),dialogHelper.close(dlg)}),dlg.querySelector(".btnCancel").addEventListener("click",function(){dialogHelper.close(dlg)}),dialogHelper.open(dlg).then(function(){"nowplaying"===destination&&embyRouter.showNowPlaying()},emptyCallback)}function onMirrorChange(){playbackManager.enableDisplayMirroring(this.checked)}var currentDisplayInfo;return document.addEventListener("viewbeforeshow",function(){currentDisplayInfo=null}),document.addEventListener("viewshow",function(e){var state=e.detail.state||{},item=state.item;if(item&&item.ServerId)return void mirrorIfEnabled({item:item})}),events.on(appSettings,"change",function(e,name){"displaymirror"===name&&mirrorIfEnabled()}),{show:showPlayerSelection}}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/router.js b/dashboard-ui/bower_components/emby-webcomponents/router.js index 12b27598d7..0320296037 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/router.js +++ b/dashboard-ui/bower_components/emby-webcomponents/router.js @@ -1 +1 @@ -define(["loading","viewManager","skinManager","pluginManager","backdrop","browser","pageJs","appSettings","apphost","connectionManager"],function(loading,viewManager,skinManager,pluginManager,backdrop,browser,page,appSettings,appHost,connectionManager){"use strict";function beginConnectionWizard(){backdrop.clear(),loading.show(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){handleConnectionResult(result,loading)})}function handleConnectionResult(result,loading){switch(result.State){case MediaBrowser.ConnectionState.SignedIn:loading.hide(),skinManager.loadUserSkin();break;case MediaBrowser.ConnectionState.ServerSignIn:result.ApiClient.getPublicUsers().then(function(users){users.length?embyRouter.showLocalLogin(result.ApiClient,result.Servers[0].Id):embyRouter.showLocalLogin(result.ApiClient,result.Servers[0].Id,!0)});break;case MediaBrowser.ConnectionState.ServerSelection:embyRouter.showSelectServer();break;case MediaBrowser.ConnectionState.ConnectSignIn:embyRouter.showWelcome();break;case MediaBrowser.ConnectionState.ServerUpdateNeeded:require(["alert"],function(alert){alert({text:Globalize.translate("sharedcomponents#ServerUpdateNeeded","https://emby.media"),html:Globalize.translate("sharedcomponents#ServerUpdateNeeded",'https://emby.media')}).then(function(){embyRouter.showSelectServer()})})}}function loadContentUrl(ctx,next,route,request){var url=route.contentPath||route.path;url.indexOf("://")===-1&&(0!==url.indexOf("/")&&(url="/"+url),url=baseUrl()+url),ctx.querystring&&route.enableContentQueryString&&(url+="?"+ctx.querystring),require(["text!"+url],function(html){loadContent(ctx,route,html,request)})}function handleRoute(ctx,next,route){authenticate(ctx,route,function(){initRoute(ctx,next,route)})}function initRoute(ctx,next,route){var onInitComplete=function(controllerFactory){sendRouteToViewManager(ctx,next,route,controllerFactory)};require(route.dependencies||[],function(){route.controller?require([route.controller],onInitComplete):onInitComplete()})}function cancelCurrentLoadRequest(){var currentRequest=currentViewLoadRequest;currentRequest&&(currentRequest.cancel=!0)}function sendRouteToViewManager(ctx,next,route,controllerFactory){if(isDummyBackToHome&&"home"===route.type)return void(isDummyBackToHome=!1);cancelCurrentLoadRequest();var isBackNav=ctx.isBack,currentRequest={url:baseUrl()+ctx.path,transition:route.transition,isBack:isBackNav,state:ctx.state,type:route.type,fullscreen:route.fullscreen,controllerFactory:controllerFactory,options:{supportsThemeMedia:route.supportsThemeMedia||!1},autoFocus:route.autoFocus};currentViewLoadRequest=currentRequest;var onNewViewNeeded=function(){"string"==typeof route.path?loadContentUrl(ctx,next,route,currentRequest):next()};return isBackNav?void viewManager.tryRestoreView(currentRequest,function(){currentRouteInfo={route:route,path:ctx.path}}).catch(function(result){result&&result.cancelled||onNewViewNeeded()}):void onNewViewNeeded()}function start(options){loading.show(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){firstConnectionResult=result,loading.hide(),options=options||{},page({click:options.click!==!1,hashbang:options.hashbang!==!1,enableHistory:enableHistory()})})}function enableHistory(){return!browser.xboxOne&&!browser.orsay}function enableNativeHistory(){return page.enableNativeHistory()}function authenticate(ctx,route,callback){var firstResult=firstConnectionResult;if(firstResult&&(firstConnectionResult=null,firstResult.State!==MediaBrowser.ConnectionState.SignedIn&&!route.anonymous))return void handleConnectionResult(firstResult,loading);var apiClient=connectionManager.currentApiClient(),pathname=ctx.pathname.toLowerCase();console.log("embyRouter - processing path request "+pathname);var isCurrentRouteStartup=!currentRouteInfo||currentRouteInfo.route.startup,shouldExitApp=ctx.isBack&&route.isDefaultRoute&&isCurrentRouteStartup;if(!(shouldExitApp||apiClient&&apiClient.isLoggedIn()||route.anonymous))return console.log("embyRouter - route does not allow anonymous access, redirecting to login"),void beginConnectionWizard();if(shouldExitApp){if(appHost.supports("exit"))return void appHost.exit()}else{if(apiClient&&apiClient.isLoggedIn()){if(console.log("embyRouter - user is authenticated"),ctx.isBack&&(route.isDefaultRoute||route.startup)&&!isCurrentRouteStartup)return void handleBackToDefault();if(route.isDefaultRoute)return console.log("embyRouter - loading skin home page"),void skinManager.loadUserSkin();if(route.roles)return void validateRoles(apiClient,route.roles).then(function(){apiClient.ensureWebSocket(),callback()},beginConnectionWizard)}console.log("embyRouter - proceeding to "+pathname),callback()}}function validateRoles(apiClient,roles){return Promise.all(roles.split(",").map(function(role){return validateRole(apiClient,role)}))}function validateRole(apiClient,role){return"admin"===role?apiClient.getCurrentUser().then(function(user){return user.Policy.IsAdministrator?Promise.resolve():Promise.reject()}):Promise.resolve()}function handleBackToDefault(){return!appHost.supports("exitmenu")&&appHost.supports("exit")?void appHost.exit():(isDummyBackToHome=!0,skinManager.loadUserSkin(),void(isHandlingBackToDefault||skinManager.getCurrentSkin().showBackMenu().then(function(){isHandlingBackToDefault=!1})))}function loadContent(ctx,route,html,request){html=Globalize.translateDocument(html,route.dictionary),request.view=html,viewManager.loadView(request),currentRouteInfo={route:route,path:ctx.path},ctx.handled=!0}function getRequestFile(){var path=window.location.pathname||"",index=path.lastIndexOf("/");return path=index!==-1?path.substring(index):"/"+path,path&&"/"!==path||(path="/index.html"),path}function baseUrl(){return baseRoute}function getHandler(route){return function(ctx,next){handleRoute(ctx,next,route)}}function getWindowLocationSearch(win){var currentPath=currentRouteInfo?currentRouteInfo.path||"":"",index=currentPath.indexOf("?"),search="";return index!==-1&&(search=currentPath.substring(index)),search||""}function param(name,url){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url||getWindowLocationSearch());return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function back(){page.back()}function canGoBack(){var curr=current();return!!curr&&("home"!==curr.type&&page.canGoBack())}function show(path,options){0!==path.indexOf("/")&&path.indexOf("://")===-1&&(path="/"+path);var baseRoute=baseUrl();return path=path.replace(baseRoute,""),currentRouteInfo&¤tRouteInfo.path===path&&"home"!==currentRouteInfo.route.type?(loading.hide(),Promise.resolve()):new Promise(function(resolve,reject){resolveOnNextShow=resolve,page.show(path,options)})}function current(){return currentRouteInfo?currentRouteInfo.route:null}function goHome(){var skin=skinManager.getCurrentSkin();if(skin.getHomeRoute){var homePath=skin.getHomeRoute();return show(pluginManager.mapRoute(skin,homePath))}var homeRoute=skin.getRoutes().filter(function(r){return"home"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function getRouteUrl(item,options){return skinManager.getCurrentSkin().getRouteUrl(item,options)}function showItem(item,serverId,options){if("string"==typeof item){var apiClient=serverId?connectionManager.getApiClient(serverId):connectionManager.currentApiClient();apiClient.getItem(apiClient.getCurrentUserId(),item).then(function(item){embyRouter.showItem(item,options)})}else{2===arguments.length&&(options=arguments[1]);var url=embyRouter.getRouteUrl(item,options);embyRouter.show(url,{item:item})}}function setTitle(title){skinManager.getCurrentSkin().setTitle(title)}function showVideoOsd(){var skin=skinManager.getCurrentSkin(),homeRoute=skin.getRoutes().filter(function(r){return"video-osd"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function addRoute(path,newRoute){page(path,getHandler(newRoute)),allRoutes.push(newRoute)}function getRoutes(){return allRoutes}function setTransparency(level){backdropContainer||(backdropContainer=document.querySelector(".backdropContainer")),backgroundContainer||(backgroundContainer=document.querySelector(".backgroundContainer")),"full"===level||2===level?(backdrop.clear(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):"backdrop"===level||1===level?(backdrop.externalBackdrop(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):(backdrop.externalBackdrop(!1),document.documentElement.classList.remove("transparentDocument"),backgroundContainer.classList.remove("backgroundContainer-transparent"),backdropContainer.classList.remove("hide"))}function pushState(state,title,url){state.navigate=!1,page.pushState(state,title,url)}function setBaseRoute(){var baseRoute=window.location.pathname.replace(getRequestFile(),"");baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1)),console.log("Setting page base to "+baseRoute),page.base(baseRoute)}var currentViewLoadRequest,firstConnectionResult,isHandlingBackToDefault,isDummyBackToHome,embyRouter={showLocalLogin:function(apiClient,serverId,manualLogin){var pageName=manualLogin?"manuallogin":"login";show("/startup/"+pageName+".html?serverid="+serverId)},showSelectServer:function(){show("/startup/selectserver.html")},showWelcome:function(){show("/startup/welcome.html")},showSettings:function(){show("/settings/settings.html")},showSearch:function(){skinManager.getCurrentSkin().search()},showGenre:function(options){skinManager.getCurrentSkin().showGenre(options)},showGuide:function(){skinManager.getCurrentSkin().showGuide()},showLiveTV:function(){skinManager.getCurrentSkin().showLiveTV()},showRecordedTV:function(){skinManager.getCurrentSkin().showRecordedTV()},showFavorites:function(){skinManager.getCurrentSkin().showFavorites()}},baseRoute=window.location.href.split("?")[0].replace(getRequestFile(),"");baseRoute=baseRoute.split("#")[0],baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1));var resolveOnNextShow;document.addEventListener("viewshow",function(){var resolve=resolveOnNextShow;resolve&&(resolveOnNextShow=null,resolve())});var currentRouteInfo,backdropContainer,backgroundContainer,allRoutes=[];return setBaseRoute(),embyRouter.addRoute=addRoute,embyRouter.param=param,embyRouter.back=back,embyRouter.show=show,embyRouter.start=start,embyRouter.baseUrl=baseUrl,embyRouter.canGoBack=canGoBack,embyRouter.current=current,embyRouter.beginConnectionWizard=beginConnectionWizard,embyRouter.goHome=goHome,embyRouter.showItem=showItem,embyRouter.setTitle=setTitle,embyRouter.setTransparency=setTransparency,embyRouter.getRoutes=getRoutes,embyRouter.getRouteUrl=getRouteUrl,embyRouter.pushState=pushState,embyRouter.enableNativeHistory=enableNativeHistory,embyRouter.showVideoOsd=showVideoOsd,embyRouter.handleAnchorClick=page.handleAnchorClick,embyRouter.TransparencyLevel={None:0,Backdrop:1,Full:2},embyRouter}); \ No newline at end of file +define(["loading","viewManager","skinManager","pluginManager","backdrop","browser","pageJs","appSettings","apphost","connectionManager"],function(loading,viewManager,skinManager,pluginManager,backdrop,browser,page,appSettings,appHost,connectionManager){"use strict";function beginConnectionWizard(){backdrop.clear(),loading.show(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){handleConnectionResult(result,loading)})}function handleConnectionResult(result,loading){switch(result.State){case MediaBrowser.ConnectionState.SignedIn:loading.hide(),skinManager.loadUserSkin();break;case MediaBrowser.ConnectionState.ServerSignIn:result.ApiClient.getPublicUsers().then(function(users){users.length?embyRouter.showLocalLogin(result.ApiClient,result.Servers[0].Id):embyRouter.showLocalLogin(result.ApiClient,result.Servers[0].Id,!0)});break;case MediaBrowser.ConnectionState.ServerSelection:embyRouter.showSelectServer();break;case MediaBrowser.ConnectionState.ConnectSignIn:embyRouter.showWelcome();break;case MediaBrowser.ConnectionState.ServerUpdateNeeded:require(["alert"],function(alert){alert({text:Globalize.translate("sharedcomponents#ServerUpdateNeeded","https://emby.media"),html:Globalize.translate("sharedcomponents#ServerUpdateNeeded",'https://emby.media')}).then(function(){embyRouter.showSelectServer()})})}}function loadContentUrl(ctx,next,route,request){var url=route.contentPath||route.path;url.indexOf("://")===-1&&(0!==url.indexOf("/")&&(url="/"+url),url=baseUrl()+url),ctx.querystring&&route.enableContentQueryString&&(url+="?"+ctx.querystring),require(["text!"+url],function(html){loadContent(ctx,route,html,request)})}function handleRoute(ctx,next,route){authenticate(ctx,route,function(){initRoute(ctx,next,route)})}function initRoute(ctx,next,route){var onInitComplete=function(controllerFactory){sendRouteToViewManager(ctx,next,route,controllerFactory)};require(route.dependencies||[],function(){route.controller?require([route.controller],onInitComplete):onInitComplete()})}function cancelCurrentLoadRequest(){var currentRequest=currentViewLoadRequest;currentRequest&&(currentRequest.cancel=!0)}function sendRouteToViewManager(ctx,next,route,controllerFactory){if(isDummyBackToHome&&"home"===route.type)return void(isDummyBackToHome=!1);cancelCurrentLoadRequest();var isBackNav=ctx.isBack,currentRequest={url:baseUrl()+ctx.path,transition:route.transition,isBack:isBackNav,state:ctx.state,type:route.type,fullscreen:route.fullscreen,controllerFactory:controllerFactory,options:{supportsThemeMedia:route.supportsThemeMedia||!1,enableMediaControl:route.enableMediaControl!==!1},autoFocus:route.autoFocus};currentViewLoadRequest=currentRequest;var onNewViewNeeded=function(){"string"==typeof route.path?loadContentUrl(ctx,next,route,currentRequest):next()};return isBackNav?void viewManager.tryRestoreView(currentRequest,function(){currentRouteInfo={route:route,path:ctx.path}}).catch(function(result){result&&result.cancelled||onNewViewNeeded()}):void onNewViewNeeded()}function start(options){loading.show(),connectionManager.connect({enableAutoLogin:appSettings.enableAutoLogin()}).then(function(result){firstConnectionResult=result,loading.hide(),options=options||{},page({click:options.click!==!1,hashbang:options.hashbang!==!1,enableHistory:enableHistory()})})}function enableHistory(){return!browser.xboxOne&&!browser.orsay}function enableNativeHistory(){return page.enableNativeHistory()}function authenticate(ctx,route,callback){var firstResult=firstConnectionResult;if(firstResult&&(firstConnectionResult=null,firstResult.State!==MediaBrowser.ConnectionState.SignedIn&&!route.anonymous))return void handleConnectionResult(firstResult,loading);var apiClient=connectionManager.currentApiClient(),pathname=ctx.pathname.toLowerCase();console.log("embyRouter - processing path request "+pathname);var isCurrentRouteStartup=!currentRouteInfo||currentRouteInfo.route.startup,shouldExitApp=ctx.isBack&&route.isDefaultRoute&&isCurrentRouteStartup;if(!(shouldExitApp||apiClient&&apiClient.isLoggedIn()||route.anonymous))return console.log("embyRouter - route does not allow anonymous access, redirecting to login"),void beginConnectionWizard();if(shouldExitApp){if(appHost.supports("exit"))return void appHost.exit()}else{if(apiClient&&apiClient.isLoggedIn()){if(console.log("embyRouter - user is authenticated"),ctx.isBack&&(route.isDefaultRoute||route.startup)&&!isCurrentRouteStartup)return void handleBackToDefault();if(route.isDefaultRoute)return console.log("embyRouter - loading skin home page"),void skinManager.loadUserSkin();if(route.roles)return void validateRoles(apiClient,route.roles).then(function(){apiClient.ensureWebSocket(),callback()},beginConnectionWizard)}console.log("embyRouter - proceeding to "+pathname),callback()}}function validateRoles(apiClient,roles){return Promise.all(roles.split(",").map(function(role){return validateRole(apiClient,role)}))}function validateRole(apiClient,role){return"admin"===role?apiClient.getCurrentUser().then(function(user){return user.Policy.IsAdministrator?Promise.resolve():Promise.reject()}):Promise.resolve()}function handleBackToDefault(){return!appHost.supports("exitmenu")&&appHost.supports("exit")?void appHost.exit():(isDummyBackToHome=!0,skinManager.loadUserSkin(),void(isHandlingBackToDefault||skinManager.getCurrentSkin().showBackMenu().then(function(){isHandlingBackToDefault=!1})))}function loadContent(ctx,route,html,request){html=Globalize.translateDocument(html,route.dictionary),request.view=html,viewManager.loadView(request),currentRouteInfo={route:route,path:ctx.path},ctx.handled=!0}function getRequestFile(){var path=window.location.pathname||"",index=path.lastIndexOf("/");return path=index!==-1?path.substring(index):"/"+path,path&&"/"!==path||(path="/index.html"),path}function baseUrl(){return baseRoute}function getHandler(route){return function(ctx,next){handleRoute(ctx,next,route)}}function getWindowLocationSearch(win){var currentPath=currentRouteInfo?currentRouteInfo.path||"":"",index=currentPath.indexOf("?"),search="";return index!==-1&&(search=currentPath.substring(index)),search||""}function param(name,url){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url||getWindowLocationSearch());return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function back(){page.back()}function canGoBack(){var curr=current();return!!curr&&("home"!==curr.type&&page.canGoBack())}function show(path,options){0!==path.indexOf("/")&&path.indexOf("://")===-1&&(path="/"+path);var baseRoute=baseUrl();return path=path.replace(baseRoute,""),currentRouteInfo&¤tRouteInfo.path===path&&"home"!==currentRouteInfo.route.type?(loading.hide(),Promise.resolve()):new Promise(function(resolve,reject){resolveOnNextShow=resolve,page.show(path,options)})}function current(){return currentRouteInfo?currentRouteInfo.route:null}function goHome(){var skin=skinManager.getCurrentSkin();if(skin.getHomeRoute){var homePath=skin.getHomeRoute();return show(pluginManager.mapRoute(skin,homePath))}var homeRoute=skin.getRoutes().filter(function(r){return"home"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function getRouteUrl(item,options){return skinManager.getCurrentSkin().getRouteUrl(item,options)}function showItem(item,serverId,options){if("string"==typeof item){var apiClient=serverId?connectionManager.getApiClient(serverId):connectionManager.currentApiClient();apiClient.getItem(apiClient.getCurrentUserId(),item).then(function(item){embyRouter.showItem(item,options)})}else{2===arguments.length&&(options=arguments[1]);var url=embyRouter.getRouteUrl(item,options);embyRouter.show(url,{item:item})}}function setTitle(title){skinManager.getCurrentSkin().setTitle(title)}function showVideoOsd(){var skin=skinManager.getCurrentSkin(),homeRoute=skin.getRoutes().filter(function(r){return"video-osd"===r.type})[0];return show(pluginManager.mapRoute(skin,homeRoute))}function addRoute(path,newRoute){page(path,getHandler(newRoute)),allRoutes.push(newRoute)}function getRoutes(){return allRoutes}function setTransparency(level){backdropContainer||(backdropContainer=document.querySelector(".backdropContainer")),backgroundContainer||(backgroundContainer=document.querySelector(".backgroundContainer")),"full"===level||2===level?(backdrop.clear(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):"backdrop"===level||1===level?(backdrop.externalBackdrop(!0),document.documentElement.classList.add("transparentDocument"),backgroundContainer.classList.add("backgroundContainer-transparent"),backdropContainer.classList.add("hide")):(backdrop.externalBackdrop(!1),document.documentElement.classList.remove("transparentDocument"),backgroundContainer.classList.remove("backgroundContainer-transparent"),backdropContainer.classList.remove("hide"))}function pushState(state,title,url){state.navigate=!1,page.pushState(state,title,url)}function setBaseRoute(){var baseRoute=window.location.pathname.replace(getRequestFile(),"");baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1)),console.log("Setting page base to "+baseRoute),page.base(baseRoute)}var currentViewLoadRequest,firstConnectionResult,isHandlingBackToDefault,isDummyBackToHome,embyRouter={showLocalLogin:function(apiClient,serverId,manualLogin){var pageName=manualLogin?"manuallogin":"login";show("/startup/"+pageName+".html?serverid="+serverId)},showSelectServer:function(){show("/startup/selectserver.html")},showWelcome:function(){show("/startup/welcome.html")},showSettings:function(){show("/settings/settings.html")},showSearch:function(){skinManager.getCurrentSkin().search()},showGenre:function(options){skinManager.getCurrentSkin().showGenre(options)},showGuide:function(){skinManager.getCurrentSkin().showGuide()},showLiveTV:function(){skinManager.getCurrentSkin().showLiveTV()},showRecordedTV:function(){skinManager.getCurrentSkin().showRecordedTV()},showFavorites:function(){skinManager.getCurrentSkin().showFavorites()},showNowPlaying:function(){skinManager.getCurrentSkin().showNowPlaying()}},baseRoute=window.location.href.split("?")[0].replace(getRequestFile(),"");baseRoute=baseRoute.split("#")[0],baseRoute.lastIndexOf("/")===baseRoute.length-1&&(baseRoute=baseRoute.substring(0,baseRoute.length-1));var resolveOnNextShow;document.addEventListener("viewshow",function(){var resolve=resolveOnNextShow;resolve&&(resolveOnNextShow=null,resolve())});var currentRouteInfo,backdropContainer,backgroundContainer,allRoutes=[];return setBaseRoute(),embyRouter.addRoute=addRoute,embyRouter.param=param,embyRouter.back=back,embyRouter.show=show,embyRouter.start=start,embyRouter.baseUrl=baseUrl,embyRouter.canGoBack=canGoBack,embyRouter.current=current,embyRouter.beginConnectionWizard=beginConnectionWizard,embyRouter.goHome=goHome,embyRouter.showItem=showItem,embyRouter.setTitle=setTitle,embyRouter.setTransparency=setTransparency,embyRouter.getRoutes=getRoutes,embyRouter.getRouteUrl=getRouteUrl,embyRouter.pushState=pushState,embyRouter.enableNativeHistory=enableNativeHistory,embyRouter.showVideoOsd=showVideoOsd,embyRouter.handleAnchorClick=page.handleAnchorClick,embyRouter.TransparencyLevel={None:0,Backdrop:1,Full:2},embyRouter}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewmanager.js b/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewmanager.js index 79e01a4c3c..db1038a724 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewmanager.js +++ b/dashboard-ui/bower_components/emby-webcomponents/viewmanager/viewmanager.js @@ -1 +1 @@ -define(["viewcontainer","focusManager","queryString","layoutManager"],function(viewcontainer,focusManager,queryString,layoutManager){"use strict";function onViewChange(view,options,isRestore){var lastView=currentView;lastView&&dispatchViewEvent(lastView,"viewhide"),currentView=view;var eventDetail=getViewEventDetail(view,options,isRestore);isRestore?layoutManager.mobile||(view.activeElement&&document.body.contains(view.activeElement)&&focusManager.isCurrentlyFocusable(view.activeElement)?focusManager.focus(view.activeElement):focusManager.autoFocus(view)):options.autoFocus!==!1&&focusManager.autoFocus(view),view.dispatchEvent(new CustomEvent("viewshow",eventDetail)),dispatchPageEvents&&view.dispatchEvent(new CustomEvent("pageshow",eventDetail))}function getProperties(view){var props=view.getAttribute("data-properties");return props?props.split(","):[]}function dispatchViewEvent(view,eventName,isRestored,isCancellable){var eventDetail={type:view.getAttribute("data-type"),isRestored:isRestored,properties:getProperties(view)},eventResult=view.dispatchEvent(new CustomEvent(eventName,{detail:eventDetail,bubbles:!0,cancelable:isCancellable||!1}));return dispatchPageEvents&&view.dispatchEvent(new CustomEvent(eventName.replace("view","page"),{detail:eventDetail,bubbles:!0,cancelable:!1})),eventResult}function getViewEventDetail(view,options,isRestore){var url=options.url,index=url.indexOf("?"),params=index===-1?{}:queryString.parse(url.substring(index+1));return{detail:{type:view.getAttribute("data-type"),properties:getProperties(view),params:params,isRestored:isRestore,state:options.state,options:options.options||{}},bubbles:!0,cancelable:!1}}function resetCachedViews(){viewcontainer.reset()}function ViewManager(){}var currentView,dispatchPageEvents;return viewcontainer.setOnBeforeChange(function(newView,isRestored,options){var lastView=currentView;if(lastView){dispatchViewEvent(lastView,"viewbeforehide",null,!0)}if(!newView.initComplete){newView.initComplete=!0;var eventDetail=getViewEventDetail(newView,options,!1);if(options.controllerFactory){new options.controllerFactory(newView,eventDetail.detail.params)}options.controllerFactory&&!dispatchPageEvents||dispatchViewEvent(newView,"viewinit")}dispatchViewEvent(newView,"viewbeforeshow",isRestored)}),document.addEventListener("skinunload",resetCachedViews),ViewManager.prototype.loadView=function(options){var lastView=currentView;lastView&&(lastView.activeElement=document.activeElement),options.cancel||viewcontainer.loadView(options).then(function(view){onViewChange(view,options)})},ViewManager.prototype.tryRestoreView=function(options,onViewChanging){return options.cancel?Promise.reject({cancelled:!0}):(currentView&&(currentView.activeElement=document.activeElement),viewcontainer.tryRestoreView(options).then(function(view){onViewChanging(),onViewChange(view,options,!0)}))},ViewManager.prototype.currentView=function(){return currentView},ViewManager.prototype.dispatchPageEvents=function(value){dispatchPageEvents=value},new ViewManager}); \ No newline at end of file +define(["viewcontainer","focusManager","queryString","layoutManager"],function(viewcontainer,focusManager,queryString,layoutManager){"use strict";function onViewChange(view,options,isRestore){var lastView=currentView;lastView&&dispatchViewEvent(lastView,null,"viewhide"),currentView=view;var eventDetail=getViewEventDetail(view,options,isRestore);isRestore?layoutManager.mobile||(view.activeElement&&document.body.contains(view.activeElement)&&focusManager.isCurrentlyFocusable(view.activeElement)?focusManager.focus(view.activeElement):focusManager.autoFocus(view)):options.autoFocus!==!1&&focusManager.autoFocus(view),view.dispatchEvent(new CustomEvent("viewshow",eventDetail)),dispatchPageEvents&&view.dispatchEvent(new CustomEvent("pageshow",eventDetail))}function getProperties(view){var props=view.getAttribute("data-properties");return props?props.split(","):[]}function dispatchViewEvent(view,eventInfo,eventName,isCancellable){eventInfo||(eventInfo={detail:{type:view.getAttribute("data-type"),properties:getProperties(view)},bubbles:!0,cancelable:isCancellable}),eventInfo.cancelable=isCancellable||!1;var eventResult=view.dispatchEvent(new CustomEvent(eventName,eventInfo));return dispatchPageEvents&&(eventInfo.cancelable=!1,view.dispatchEvent(new CustomEvent(eventName.replace("view","page"),eventInfo))),eventResult}function getViewEventDetail(view,options,isRestore){var url=options.url,index=url.indexOf("?"),params=index===-1?{}:queryString.parse(url.substring(index+1));return{detail:{type:view.getAttribute("data-type"),properties:getProperties(view),params:params,isRestored:isRestore,state:options.state,options:options.options||{}},bubbles:!0,cancelable:!1}}function resetCachedViews(){viewcontainer.reset()}function ViewManager(){}var currentView,dispatchPageEvents;return viewcontainer.setOnBeforeChange(function(newView,isRestored,options){var lastView=currentView;if(lastView){dispatchViewEvent(lastView,null,"viewbeforehide",!0)}var eventDetail=getViewEventDetail(newView,options,!1);if(!newView.initComplete){if(newView.initComplete=!0,options.controllerFactory){new options.controllerFactory(newView,eventDetail.detail.params)}options.controllerFactory&&!dispatchPageEvents||dispatchViewEvent(newView,eventDetail,"viewinit")}dispatchViewEvent(newView,eventDetail,"viewbeforeshow")}),document.addEventListener("skinunload",resetCachedViews),ViewManager.prototype.loadView=function(options){var lastView=currentView;lastView&&(lastView.activeElement=document.activeElement),options.cancel||viewcontainer.loadView(options).then(function(view){onViewChange(view,options)})},ViewManager.prototype.tryRestoreView=function(options,onViewChanging){return options.cancel?Promise.reject({cancelled:!0}):(currentView&&(currentView.activeElement=document.activeElement),viewcontainer.tryRestoreView(options).then(function(view){onViewChanging(),onViewChange(view,options,!0)}))},ViewManager.prototype.currentView=function(){return currentView},ViewManager.prototype.dispatchPageEvents=function(value){dispatchPageEvents=value},new ViewManager}); \ No newline at end of file diff --git a/dashboard-ui/css/librarymenu.css b/dashboard-ui/css/librarymenu.css index 8094ffa349..dee23a1566 100644 --- a/dashboard-ui/css/librarymenu.css +++ b/dashboard-ui/css/librarymenu.css @@ -1 +1 @@ -.libraryMenuButtonText,.viewMenuLink{vertical-align:middle;text-decoration:none}.libraryPage{padding-top:4.6em!important}.libraryPage:not(.noSecondaryNavPage){padding-top:6.6em!important}.absolutePageTabContent{position:absolute;left:0;right:0;bottom:0;z-index:1;margin:0!important;top:6.5em!important;-webkit-transition:-webkit-transform .2s ease-out;-o-transition:transform .2s ease-out;transition:transform .2s ease-out}.pageTabContent:not(.is-active){display:none!important}.sidebarDivider{height:1px;background:#eaeaea;margin:.5em 0}.headerUserImage{-webkit-background-size:contain;background-size:contain;background-repeat:no-repeat;background-position:center center;-webkit-border-radius:100em;border-radius:100em;vertical-align:middle;display:inline-block}.headerUserButtonRound img{-webkit-border-radius:100em;border-radius:100em}.headerButton{-webkit-flex-shrink:0;flex-shrink:0}.hideMainDrawer .mainDrawerButton{display:none}.libraryMenuButtonText{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;padding-left:0!important;cursor:default;white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin:0 0 0 .5em;-webkit-flex-shrink:1;flex-shrink:1}.skinHeader{position:fixed;right:0;left:0;z-index:999;top:0;border:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;background-color:#101010;color:#ddd}.hiddenViewMenuBar .skinHeader{display:none}.headerLeft,.headerRight{display:-webkit-box;display:-webkit-flex;-webkit-box-align:center}.headerTop{padding:.9em 0}.headerLeft{display:flex;-webkit-align-items:center;align-items:center}@supports (backdrop-filter:blur(1.5em)) or (-webkit-backdrop-filter:blur(1.5em)){.skinHeader-blurred{background:rgba(24,24,24,.7);-webkit-backdrop-filter:blur(1.5em);backdrop-filter:blur(1.5em)}}.sectionTabs{width:100%;text-align:center;font-size:92%}.skinHeader.semiTransparent{background-color:rgba(15,15,15,.4);color:#fff}.viewMenuLink{color:#eee!important;padding:.5em;display:inline-block}.viewMenuLink:hover{color:#fff}.viewMenuLink img{height:1.5em;vertical-align:top}.headerRight{display:flex;-webkit-align-items:center;align-items:center;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.selectedMediaFolder{background-color:#f2f2f2!important}.sidebarLink{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;text-decoration:none;color:#111!important;font-weight:400!important;vertical-align:middle;padding:1em 0 1em 2.4em}.sidebarLink:hover{background:#f2f2f2}.sidebarLink.selectedSidebarLink{background:#f2f2f2!important}.sidebarLinkIcon{margin-right:1em;color:#444!important}.sidebarHeader{padding-left:1.4em;margin:1.2em 0 .7em;color:#555}body:not(.dashboardDocument) .btnNotifications{display:none!important}.darkDrawer{background-color:#181818!important}.darkDrawer .sidebarLinkIcon{color:#bbb!important}.darkDrawer .sidebarLink{color:#fff!important}.darkDrawer .sidebarHeader{color:#bbb!important}.darkDrawer .sidebarDivider{background:#262626!important}.darkDrawer .sidebarLink:hover{background:#252528}.darkDrawer .selectedMediaFolder,.darkDrawer .sidebarLink.selectedSidebarLink{background:#252528!important;color:#52B54B!important}.mainDrawer-scrollContainer{padding-bottom:10vh}.dashboardDocument .skinBody{-webkit-transition:left ease-in-out .3s,padding ease-in-out .3s;-o-transition:left ease-in-out .3s,padding ease-in-out .3s;transition:left ease-in-out .3s,padding ease-in-out .3s;position:absolute;top:0;right:0;bottom:0;left:0}@media all and (max-width:40em){.sidebarLink{font-size:110%}}@media all and (min-width:40em){.dashboardDocument .adminDrawerLogo,.dashboardDocument .mainDrawerButton,.dashboardDocument .tmla-mask{display:none!important}.dashboardDocument .sidebarLink{padding-top:.7em;padding-bottom:.7em}.dashboardDocument .mainDrawer{z-index:inherit!important;left:0!important;top:0!important;-webkit-transform:none!important;transform:none!important;font-size:92%;width:20.07em!important}.dashboardDocument .mainDrawer-scrollContainer{margin-top:4.3em!important}.dashboardDocument.withSectionTabs .mainDrawer-scrollContainer{margin-top:7em!important}.dashboardDocument .skinBody{left:18.5em}.dashboardDocument .darkDrawer{background-color:rgba(28,28,31,.3)!important}}@media all and (max-width:84em){.withSectionTabs .headerTop{padding-bottom:.3em}}@media all and (min-width:84em){.headerTabs{-webkit-align-self:center;align-self:center;width:auto;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;font-size:inherit;margin-top:-3.34em;position:relative;top:-.39em}.headerTop{padding:.9em 0}.libraryPage:not(.noSecondaryNavPage){padding-top:5em!important}.absolutePageTabContent{top:4.8em!important}} \ No newline at end of file +.libraryMenuButtonText,.viewMenuLink{vertical-align:middle;text-decoration:none}.libraryPage{padding-top:4.6em!important}.libraryPage:not(.noSecondaryNavPage){padding-top:6.6em!important}.absolutePageTabContent{position:absolute;left:0;right:0;bottom:0;z-index:1;margin:0!important;top:6.5em!important;-webkit-transition:-webkit-transform .2s ease-out;-o-transition:transform .2s ease-out;transition:transform .2s ease-out}.pageTabContent:not(.is-active){display:none!important}.sidebarDivider{height:1px;background:#eaeaea;margin:.5em 0}.headerUserImage{-webkit-background-size:contain;background-size:contain;background-repeat:no-repeat;background-position:center center;-webkit-border-radius:100em;border-radius:100em;vertical-align:middle;display:inline-block}.headerUserButtonRound img{-webkit-border-radius:100em;border-radius:100em}.headerButton{-webkit-flex-shrink:0;flex-shrink:0}.hideMainDrawer .mainDrawerButton{display:none}.libraryMenuButtonText{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;padding-left:0!important;cursor:default;white-space:nowrap;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin:0 0 0 .5em;-webkit-flex-shrink:1;flex-shrink:1}.skinHeader{position:fixed;right:0;left:0;z-index:999;top:0;border:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;background-color:#101010;color:#ddd}.hiddenViewMenuBar .skinHeader{display:none}.headerLeft,.headerRight{display:-webkit-box;display:-webkit-flex;-webkit-box-align:center}.headerTop{padding:.9em 0}.headerLeft{display:flex;-webkit-align-items:center;align-items:center;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;overflow:hidden}@supports (backdrop-filter:blur(1.5em)) or (-webkit-backdrop-filter:blur(1.5em)){.skinHeader-blurred{background:rgba(24,24,24,.7);-webkit-backdrop-filter:blur(1.5em);backdrop-filter:blur(1.5em)}}.sectionTabs{width:100%;text-align:center;font-size:92%}.skinHeader.semiTransparent{background-color:rgba(15,15,15,.4);color:#fff}.viewMenuLink{color:#eee!important;padding:.5em;display:inline-block}.viewMenuLink:hover{color:#fff}.viewMenuLink img{height:1.5em;vertical-align:top}.headerRight{display:flex;-webkit-align-items:center;align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.selectedMediaFolder{background-color:#f2f2f2!important}.sidebarLink{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;text-decoration:none;color:#111!important;font-weight:400!important;vertical-align:middle;padding:1em 0 1em 2.4em}.sidebarLink:hover{background:#f2f2f2}.sidebarLink.selectedSidebarLink{background:#f2f2f2!important}.sidebarLinkIcon{margin-right:1em;color:#444!important}.sidebarHeader{padding-left:1.4em;margin:1.2em 0 .7em;color:#555}body:not(.dashboardDocument) .btnNotifications{display:none!important}.darkDrawer{background-color:#181818!important}.darkDrawer .sidebarLinkIcon{color:#bbb!important}.darkDrawer .sidebarLink{color:#fff!important}.darkDrawer .sidebarHeader{color:#bbb!important}.darkDrawer .sidebarDivider{background:#262626!important}.darkDrawer .sidebarLink:hover{background:#252528}.darkDrawer .selectedMediaFolder,.darkDrawer .sidebarLink.selectedSidebarLink{background:#252528!important;color:#52B54B!important}.mainDrawer-scrollContainer{padding-bottom:10vh}.dashboardDocument .skinBody{-webkit-transition:left ease-in-out .3s,padding ease-in-out .3s;-o-transition:left ease-in-out .3s,padding ease-in-out .3s;transition:left ease-in-out .3s,padding ease-in-out .3s;position:absolute;top:0;right:0;bottom:0;left:0}@media all and (max-width:40em){.sidebarLink{font-size:110%}}@media all and (min-width:40em){.dashboardDocument .adminDrawerLogo,.dashboardDocument .mainDrawerButton,.dashboardDocument .tmla-mask{display:none!important}.dashboardDocument .sidebarLink{padding-top:.7em;padding-bottom:.7em}.dashboardDocument .mainDrawer{z-index:inherit!important;left:0!important;top:0!important;-webkit-transform:none!important;transform:none!important;font-size:92%;width:20.07em!important}.dashboardDocument .mainDrawer-scrollContainer{margin-top:4.3em!important}.dashboardDocument.withSectionTabs .mainDrawer-scrollContainer{margin-top:7em!important}.dashboardDocument .skinBody{left:18.5em}.dashboardDocument .darkDrawer{background-color:rgba(28,28,31,.3)!important}}@media all and (max-width:84em){.withSectionTabs .headerTop{padding-bottom:.3em}}@media all and (min-width:84em){.headerTabs{-webkit-align-self:center;align-self:center;width:auto;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;font-size:inherit;margin-top:-3.34em;position:relative;top:-.39em}.headerTop{padding:.9em 0}.libraryPage:not(.noSecondaryNavPage){padding-top:5em!important}.absolutePageTabContent{top:4.8em!important}} \ No newline at end of file diff --git a/dashboard-ui/css/nowplayingbar.css b/dashboard-ui/css/nowplayingbar.css deleted file mode 100644 index 43f2e38b82..0000000000 --- a/dashboard-ui/css/nowplayingbar.css +++ /dev/null @@ -1 +0,0 @@ -.mediaButton.active{color:#52B54B}.nowPlayingBarInfoContainer{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.nowPlayingBar{color:#ddd;text-align:center;will-change:transform;contain:layout style;-webkit-transition:-webkit-transform .2s ease-out;-o-transition:transform .2s ease-out;transition:transform .2s ease-out}.nowPlayingBar-hidden{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.hiddenNowPlayingBar .nowPlayingBar{display:none!important}.nowPlayingBarTop{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mediaButton,.nowPlayingBarUserDataButtons .btnUserItemRating{vertical-align:middle;margin:0;text-align:center}.mediaButton i{height:1em;width:1em;font-size:200%}.nowPlayingImage{display:inline-block;vertical-align:middle;margin-right:1em}.nowPlayingImage img{vertical-align:bottom;height:3.9em}.nowPlayingBar .nowPlayingImage{width:3.9em;height:3.9em;background-position:center center;background-repeat:no-repeat;-webkit-background-size:contain;background-size:contain}.nowPlayingBarText{overflow:hidden;white-space:nowrap;-o-text-overflow:ellipsis;text-overflow:ellipsis;vertical-align:middle;text-align:left;max-width:10em;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;font-size:88%;margin-right:2.4em}.repeatActive{color:#52B54B}@media (min-width:31.25em){.nowPlayingBarText{max-width:15.3em}}@media (min-width:37.5em){.nowPlayingBarText{max-width:17em}}@media (min-width:43.75em){.nowPlayingBarText{max-width:20.4em}}@media (min-width:50em){.nowPlayingBarText{max-width:25.5em}}@media (min-width:56.25em){.nowPlayingBarText{max-width:34em}}.nowPlayingBarCenter{vertical-align:middle;text-align:center;z-index:2;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.nowPlayingBarPositionContainer{position:absolute!important;left:3.9em;top:-8px;right:0;z-index:1}.nowPlayingBarPositionContainer .mdl-slider__background-upper{background:#222}.headroom--unpinned .nowPlayingBarPositionContainer,.noMediaProgress .nowPlayingBarPositionContainer{display:none}.nowPlayingBarRight{position:relative;margin:0 .5em 0 auto;z-index:2;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.nowPlayingBarCurrentTime{vertical-align:middle;font-weight:400;text-align:center;display:inline-block;padding-left:1.5em}.nowPlayingBarVolumeSliderContainer{margin-right:2em}.nowPlayingBarUserDataButtons{display:inline-block;margin-left:1em;margin-right:1em}@media all and (max-width:87.5em){.nowPlayingBarUserDataButtons{display:none}}@media all and (max-width:68.75em){.nowPlayingBar .muteButton,.nowPlayingBar .unmuteButton,.nowPlayingBarVolumeSliderContainer{display:none!important}}@media all and (max-width:50em){.nowPlayingBarCenter>*{display:none!important}.toggleRepeatButton{display:none}}@media all and (min-width:50em){.nowPlayingBarRight .playPauseButton{display:none}} \ No newline at end of file diff --git a/dashboard-ui/dashboard/autoorganizelog.js b/dashboard-ui/dashboard/autoorganizelog.js index eb62b45ba8..5f59f447db 100644 --- a/dashboard-ui/dashboard/autoorganizelog.js +++ b/dashboard-ui/dashboard/autoorganizelog.js @@ -1 +1 @@ -define(["serverNotifications","events","scripts/taskbutton","datetime","loading","libraryMenu","libraryBrowser","paper-icon-button-light"],function(serverNotifications,events,taskButton,datetime,loading,libraryMenu,libraryBrowser){"use strict";function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function showStatusMessage(id){var item=currentResult.Items.filter(function(i){return i.Id==id})[0];Dashboard.alert({title:getStatusText(item,!1),message:item.StatusMessage})}function deleteOriginalFile(page,id){var item=currentResult.Items.filter(function(i){return i.Id==id})[0],message=Globalize.translate("MessageFileWillBeDeleted")+"

"+item.OriginalPath+"

"+Globalize.translate("MessageSureYouWishToProceed");require(["confirm"],function(confirm){confirm(message,Globalize.translate("HeaderDeleteFile")).then(function(){loading.show(),ApiClient.deleteOriginalFileFromOrganizationResult(id).then(function(){loading.hide(),reloadItems(page,!0)},Dashboard.processErrorResponse)})})}function organizeFileWithCorrections(page,item){showCorrectionPopup(page,item)}function showCorrectionPopup(page,item){require(["components/fileorganizer/fileorganizer"],function(fileorganizer){fileorganizer.show(item).then(function(){reloadItems(page,!1)})})}function organizeFile(page,id){var item=currentResult.Items.filter(function(i){return i.Id==id})[0];if(!item.TargetPath)return void("Episode"==item.Type&&organizeFileWithCorrections(page,item));var message=Globalize.translate("MessageFollowingFileWillBeMovedFrom")+"

"+item.OriginalPath+"

"+Globalize.translate("MessageDestinationTo")+"

"+item.TargetPath;item.DuplicatePaths.length&&(message+="

"+Globalize.translate("MessageDuplicatesWillBeDeleted"),message+="

"+item.DuplicatePaths.join("
")),message+="

"+Globalize.translate("MessageSureYouWishToProceed"),require(["confirm"],function(confirm){confirm(message,Globalize.translate("HeaderOrganizeFile")).then(function(){loading.show(),ApiClient.performOrganization(id).then(function(){loading.hide(),reloadItems(page,!0)},Dashboard.processErrorResponse)})})}function reloadItems(page,showSpinner){showSpinner&&loading.show(),ApiClient.getFileOrganizationResults(query).then(function(result){currentResult=result,renderResults(page,result),loading.hide()},Dashboard.processErrorResponse)}function getStatusText(item,enhance){var status=item.Status,color=null;return"SkippedExisting"==status?status=Globalize.translate("StatusSkipped"):"Failure"==status&&(color="#cc0000",status=Globalize.translate("StatusFailed")),"Success"==status&&(color="green",status=Globalize.translate("StatusSuccess")),enhance?item.StatusMessage?''+status+"":''+status+"":status}function renderResults(page,result){var rows=result.Items.map(function(item){var html="";return html+='',html+=renderItemRow(item),html+=""}).join(""),resultBody=page.querySelector(".resultBody");resultBody.innerHTML=rows,resultBody.addEventListener("click",handleItemClick);var pagingHtml=libraryBrowser.getQueryPagingHtml({startIndex:query.StartIndex,limit:query.Limit,totalRecordCount:result.TotalRecordCount,showLimit:!1,updatePageSizeSetting:!1}),topPaging=page.querySelector(".listTopPaging");topPaging.innerHTML=pagingHtml;var bottomPaging=page.querySelector(".listBottomPaging");bottomPaging.innerHTML=pagingHtml;var btnNextTop=topPaging.querySelector(".btnNextPage"),btnNextBottom=bottomPaging.querySelector(".btnNextPage"),btnPrevTop=topPaging.querySelector(".btnPreviousPage"),btnPrevBottom=bottomPaging.querySelector(".btnPreviousPage");btnNextTop&&btnNextTop.addEventListener("click",function(){query.StartIndex+=query.Limit,reloadItems(page,!0)}),btnNextBottom&&btnNextBottom.addEventListener("click",function(){query.StartIndex+=query.Limit,reloadItems(page,!0)}),btnPrevTop&&btnPrevTop.addEventListener("click",function(){query.StartIndex-=query.Limit,reloadItems(page,!0)}),btnPrevBottom&&btnPrevBottom.addEventListener("click",function(){query.StartIndex-=query.Limit,reloadItems(page,!0)});var btnClearLog=page.querySelector(".btnClearLog");result.TotalRecordCount?btnClearLog.classList.remove("hide"):btnClearLog.classList.add("hide")}function renderItemRow(item){var html="";html+="";var hide=item.IsInProgress?"":" hide";html+='',html+="",html+='';var date=datetime.parseISO8601Date(item.Date,!0);html+=datetime.toLocaleDateString(date),html+="",html+='';var status=item.Status;return item.IsInProgress?(html+='',html+=item.OriginalFileName,html+=""):"SkippedExisting"==status?(html+='',html+=item.OriginalFileName,html+=""):"Failure"==status?(html+='',html+=item.OriginalFileName,html+=""):(html+='',html+=item.OriginalFileName,html+=""),html+="",html+='',html+=item.TargetPath||"",html+="",html+='',"Success"!=item.Status&&(html+='',html+=''),html+=""}function handleItemClick(e){var id,buttonStatus=parentWithClass(e.target,"btnShowStatusMessage");buttonStatus&&(id=buttonStatus.getAttribute("data-resultid"),showStatusMessage(id));var buttonOrganize=parentWithClass(e.target,"btnProcessResult");buttonOrganize&&(id=buttonOrganize.getAttribute("data-resultid"),organizeFile(e.view,id));var buttonDelete=parentWithClass(e.target,"btnDeleteResult");buttonDelete&&(id=buttonDelete.getAttribute("data-resultid"),deleteOriginalFile(e.view,id))}function onServerEvent(e,apiClient,data){"ScheduledTaskEnded"==e.type?data&&"AutoOrganize"==data.Key&&reloadItems(page,!1):"AutoOrganize_ItemUpdated"==e.type&&data?updateItemStatus(page,data):reloadItems(page,!1)}function updateItemStatus(page,item){var rowId="#row"+item.Id,row=page.querySelector(rowId);row&&(row.innerHTML=renderItemRow(item))}function getTabs(){return[{href:"autoorganizelog.html",name:Globalize.translate("TabActivityLog")},{href:"autoorganizetv.html",name:Globalize.translate("TabTV")},{href:"autoorganizesmart.html",name:Globalize.translate("TabSmartMatches")}]}var currentResult,page,query={StartIndex:0,Limit:50};return function(view,params){page=view;var clearButton=view.querySelector(".btnClearLog");clearButton.addEventListener("click",function(){ApiClient.clearOrganizationLog().then(function(){query.StartIndex=0,reloadItems(view,!0)},Dashboard.processErrorResponse)}),view.addEventListener("viewshow",function(e){libraryMenu.setTabs("autoorganize",0,getTabs),reloadItems(view,!0),events.on(serverNotifications,"AutoOrganize_LogReset",onServerEvent),events.on(serverNotifications,"AutoOrganize_ItemUpdated",onServerEvent),events.on(serverNotifications,"AutoOrganize_ItemRemoved",onServerEvent),events.on(serverNotifications,"AutoOrganize_ItemAdded",onServerEvent),events.on(serverNotifications,"ScheduledTaskEnded",onServerEvent),taskButton({mode:"on",progressElem:view.querySelector(".organizeProgress"),panel:view.querySelector(".organizeTaskPanel"),taskKey:"AutoOrganize",button:view.querySelector(".btnOrganize")})}),view.addEventListener("viewhide",function(e){currentResult=null,events.off(serverNotifications,"AutoOrganize_LogReset",onServerEvent),events.off(serverNotifications,"AutoOrganize_ItemUpdated",onServerEvent),events.off(serverNotifications,"AutoOrganize_ItemRemoved",onServerEvent),events.off(serverNotifications,"AutoOrganize_ItemAdded",onServerEvent),events.off(serverNotifications,"ScheduledTaskEnded",onServerEvent),taskButton({mode:"off",button:view.querySelector(".btnOrganize")})})}}); \ No newline at end of file +define(["serverNotifications","events","scripts/taskbutton","datetime","loading","libraryMenu","libraryBrowser","paper-icon-button-light"],function(serverNotifications,events,taskButton,datetime,loading,libraryMenu,libraryBrowser){"use strict";function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function showStatusMessage(id){var item=currentResult.Items.filter(function(i){return i.Id===id})[0];Dashboard.alert({title:getStatusText(item,!1),message:item.StatusMessage})}function deleteOriginalFile(page,id){var item=currentResult.Items.filter(function(i){return i.Id===id})[0],message=Globalize.translate("MessageFileWillBeDeleted")+"

"+item.OriginalPath+"

"+Globalize.translate("MessageSureYouWishToProceed");require(["confirm"],function(confirm){confirm(message,Globalize.translate("HeaderDeleteFile")).then(function(){loading.show(),ApiClient.deleteOriginalFileFromOrganizationResult(id).then(function(){loading.hide(),reloadItems(page,!0)},Dashboard.processErrorResponse)})})}function organizeFileWithCorrections(page,item){showCorrectionPopup(page,item)}function showCorrectionPopup(page,item){require(["components/fileorganizer/fileorganizer"],function(fileorganizer){fileorganizer.show(item).then(function(){reloadItems(page,!1)})})}function organizeFile(page,id){var item=currentResult.Items.filter(function(i){return i.Id===id})[0];if(!item.TargetPath)return void("Episode"===item.Type&&organizeFileWithCorrections(page,item));var message=Globalize.translate("MessageFollowingFileWillBeMovedFrom")+"

"+item.OriginalPath+"

"+Globalize.translate("MessageDestinationTo")+"

"+item.TargetPath;item.DuplicatePaths.length&&(message+="

"+Globalize.translate("MessageDuplicatesWillBeDeleted"),message+="

"+item.DuplicatePaths.join("
")),message+="

"+Globalize.translate("MessageSureYouWishToProceed"),require(["confirm"],function(confirm){confirm(message,Globalize.translate("HeaderOrganizeFile")).then(function(){loading.show(),ApiClient.performOrganization(id).then(function(){loading.hide(),reloadItems(page,!0)},Dashboard.processErrorResponse)})})}function reloadItems(page,showSpinner){showSpinner&&loading.show(),ApiClient.getFileOrganizationResults(query).then(function(result){currentResult=result,renderResults(page,result),loading.hide()},Dashboard.processErrorResponse)}function getStatusText(item,enhance){var status=item.Status,color=null;return"SkippedExisting"===status?status=Globalize.translate("StatusSkipped"):"Failure"===status&&(color="#cc0000",status=Globalize.translate("StatusFailed")),"Success"===status&&(color="green",status=Globalize.translate("StatusSuccess")),enhance?item.StatusMessage?''+status+"":''+status+"":status}function renderResults(page,result){var rows=result.Items.map(function(item){var html="";return html+='',html+=renderItemRow(item),html+=""}).join(""),resultBody=page.querySelector(".resultBody");resultBody.innerHTML=rows,resultBody.addEventListener("click",handleItemClick);var pagingHtml=libraryBrowser.getQueryPagingHtml({startIndex:query.StartIndex,limit:query.Limit,totalRecordCount:result.TotalRecordCount,showLimit:!1,updatePageSizeSetting:!1}),topPaging=page.querySelector(".listTopPaging");topPaging.innerHTML=pagingHtml;var bottomPaging=page.querySelector(".listBottomPaging");bottomPaging.innerHTML=pagingHtml;var btnNextTop=topPaging.querySelector(".btnNextPage"),btnNextBottom=bottomPaging.querySelector(".btnNextPage"),btnPrevTop=topPaging.querySelector(".btnPreviousPage"),btnPrevBottom=bottomPaging.querySelector(".btnPreviousPage");btnNextTop&&btnNextTop.addEventListener("click",function(){query.StartIndex+=query.Limit,reloadItems(page,!0)}),btnNextBottom&&btnNextBottom.addEventListener("click",function(){query.StartIndex+=query.Limit,reloadItems(page,!0)}),btnPrevTop&&btnPrevTop.addEventListener("click",function(){query.StartIndex-=query.Limit,reloadItems(page,!0)}),btnPrevBottom&&btnPrevBottom.addEventListener("click",function(){query.StartIndex-=query.Limit,reloadItems(page,!0)});var btnClearLog=page.querySelector(".btnClearLog");result.TotalRecordCount?btnClearLog.classList.remove("hide"):btnClearLog.classList.add("hide")}function renderItemRow(item){var html="";html+="";var hide=item.IsInProgress?"":" hide";html+='',html+="",html+='';var date=datetime.parseISO8601Date(item.Date,!0);html+=datetime.toLocaleDateString(date),html+="",html+='';var status=item.Status;return item.IsInProgress?(html+='',html+=item.OriginalFileName,html+=""):"SkippedExisting"===status?(html+='',html+=item.OriginalFileName,html+=""):"Failure"===status?(html+='',html+=item.OriginalFileName,html+=""):(html+='',html+=item.OriginalFileName,html+=""),html+="",html+='',html+=item.TargetPath||"",html+="",html+='',"Success"!==item.Status&&(html+='',html+=''),html+=""}function handleItemClick(e){var id,buttonStatus=parentWithClass(e.target,"btnShowStatusMessage");buttonStatus&&(id=buttonStatus.getAttribute("data-resultid"),showStatusMessage(id));var buttonOrganize=parentWithClass(e.target,"btnProcessResult");buttonOrganize&&(id=buttonOrganize.getAttribute("data-resultid"),organizeFile(e.view,id));var buttonDelete=parentWithClass(e.target,"btnDeleteResult");buttonDelete&&(id=buttonDelete.getAttribute("data-resultid"),deleteOriginalFile(e.view,id))}function onServerEvent(e,apiClient,data){"ScheduledTaskEnded"===e.type?data&&"AutoOrganize"===data.Key&&reloadItems(page,!1):"AutoOrganize_ItemUpdated"===e.type&&data?updateItemStatus(page,data):reloadItems(page,!1)}function updateItemStatus(page,item){var rowId="#row"+item.Id,row=page.querySelector(rowId);row&&(row.innerHTML=renderItemRow(item))}function getTabs(){return[{href:"autoorganizelog.html",name:Globalize.translate("TabActivityLog")},{href:"autoorganizetv.html",name:Globalize.translate("TabTV")},{href:"autoorganizesmart.html",name:Globalize.translate("TabSmartMatches")}]}var currentResult,page,query={StartIndex:0,Limit:50};return function(view,params){page=view;var clearButton=view.querySelector(".btnClearLog");clearButton.addEventListener("click",function(){ApiClient.clearOrganizationLog().then(function(){query.StartIndex=0,reloadItems(view,!0)},Dashboard.processErrorResponse)}),view.addEventListener("viewshow",function(e){libraryMenu.setTabs("autoorganize",0,getTabs),reloadItems(view,!0),events.on(serverNotifications,"AutoOrganize_LogReset",onServerEvent),events.on(serverNotifications,"AutoOrganize_ItemUpdated",onServerEvent),events.on(serverNotifications,"AutoOrganize_ItemRemoved",onServerEvent),events.on(serverNotifications,"AutoOrganize_ItemAdded",onServerEvent),events.on(serverNotifications,"ScheduledTaskEnded",onServerEvent),taskButton({mode:"on",progressElem:view.querySelector(".organizeProgress"),panel:view.querySelector(".organizeTaskPanel"),taskKey:"AutoOrganize",button:view.querySelector(".btnOrganize")})}),view.addEventListener("viewhide",function(e){currentResult=null,events.off(serverNotifications,"AutoOrganize_LogReset",onServerEvent),events.off(serverNotifications,"AutoOrganize_ItemUpdated",onServerEvent),events.off(serverNotifications,"AutoOrganize_ItemRemoved",onServerEvent),events.off(serverNotifications,"AutoOrganize_ItemAdded",onServerEvent),events.off(serverNotifications,"ScheduledTaskEnded",onServerEvent),taskButton({mode:"off",button:view.querySelector(".btnOrganize")})})}}); \ No newline at end of file diff --git a/dashboard-ui/dashboard/autoorganizesmart.js b/dashboard-ui/dashboard/autoorganizesmart.js index 6d00dd7c70..8e578ddc55 100644 --- a/dashboard-ui/dashboard/autoorganizesmart.js +++ b/dashboard-ui/dashboard/autoorganizesmart.js @@ -1 +1 @@ -define(["loading","libraryMenu","listViewStyle"],function(loading,libraryMenu){"use strict";function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function reloadList(page){loading.show(),ApiClient.getSmartMatchInfos(query).then(function(infos){currentResult=infos,populateList(page,infos),loading.hide()},function(){loading.hide()})}function populateList(page,result){var infos=result.Items;infos.length>0&&(infos=infos.sort(function(a,b){return a=a.OrganizerType+" "+(a.DisplayName||a.ItemName),b=b.OrganizerType+" "+(b.DisplayName||b.ItemName),a==b?0:a',html+='
',html+='folder',html+="
",html+='
',html+="

"+(info.DisplayName||info.ItemName)+"

",html+="
",html+="
";var matchStringIndex=0;html+=info.MatchStrings.map(function(m){var matchStringHtml="";return matchStringHtml+='
',matchStringHtml+='
',matchStringHtml+="
"+m+"
",matchStringHtml+="
",matchStringHtml+='',matchStringHtml+="
",matchStringIndex++,matchStringHtml}).join("")}infos.length&&(html+="
");var matchInfos=page.querySelector(".divMatchInfos");matchInfos.innerHTML=html}function getTabs(){return[{href:"autoorganizelog.html",name:Globalize.translate("TabActivityLog")},{href:"autoorganizetv.html",name:Globalize.translate("TabTV")},{href:"autoorganizesmart.html",name:Globalize.translate("TabSmartMatches")}]}var currentResult,query={StartIndex:0,Limit:1e5};return function(view,params){var divInfos=view.querySelector(".divMatchInfos");divInfos.addEventListener("click",function(e){var button=parentWithClass(e.target,"btnDeleteMatchEntry");if(button){var index=parseInt(button.getAttribute("data-index")),matchIndex=parseInt(button.getAttribute("data-matchindex")),info=currentResult.Items[index],entries=[{Name:info.ItemName,Value:info.MatchStrings[matchIndex]}];ApiClient.deleteSmartMatchEntries(entries).then(function(){reloadList(view)},Dashboard.processErrorResponse)}}),view.addEventListener("viewshow",function(e){libraryMenu.setTabs("autoorganize",2,getTabs),loading.show(),reloadList(view)}),view.addEventListener("viewhide",function(e){currentResult=null})}}); \ No newline at end of file +define(["loading","libraryMenu","listViewStyle"],function(loading,libraryMenu){"use strict";function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function reloadList(page){loading.show(),ApiClient.getSmartMatchInfos(query).then(function(infos){currentResult=infos,populateList(page,infos),loading.hide()},function(){loading.hide()})}function getHtmlFromMatchStrings(info,i){var matchStringIndex=0;return info.MatchStrings.map(function(m){var matchStringHtml="";return matchStringHtml+='
',matchStringHtml+='
',matchStringHtml+="
"+m+"
",matchStringHtml+="
",matchStringHtml+='',matchStringHtml+="
",matchStringIndex++,matchStringHtml}).join("")}function populateList(page,result){var infos=result.Items;infos.length>0&&(infos=infos.sort(function(a,b){return a=a.OrganizerType+" "+(a.DisplayName||a.ItemName),b=b.OrganizerType+" "+(b.DisplayName||b.ItemName),a===b?0:a',html+='
',html+='folder',html+="
",html+='
',html+="

"+(info.DisplayName||info.ItemName)+"

",html+="
",html+="",html+=getHtmlFromMatchStrings(info,i)}infos.length&&(html+="");var matchInfos=page.querySelector(".divMatchInfos");matchInfos.innerHTML=html}function getTabs(){return[{href:"autoorganizelog.html",name:Globalize.translate("TabActivityLog")},{href:"autoorganizetv.html",name:Globalize.translate("TabTV")},{href:"autoorganizesmart.html",name:Globalize.translate("TabSmartMatches")}]}var currentResult,query={StartIndex:0,Limit:1e5};return function(view,params){var divInfos=view.querySelector(".divMatchInfos");divInfos.addEventListener("click",function(e){var button=parentWithClass(e.target,"btnDeleteMatchEntry");if(button){var index=parseInt(button.getAttribute("data-index")),matchIndex=parseInt(button.getAttribute("data-matchindex")),info=currentResult.Items[index],entries=[{Name:info.ItemName,Value:info.MatchStrings[matchIndex]}];ApiClient.deleteSmartMatchEntries(entries).then(function(){reloadList(view)},Dashboard.processErrorResponse)}}),view.addEventListener("viewshow",function(e){libraryMenu.setTabs("autoorganize",2,getTabs),loading.show(),reloadList(view)}),view.addEventListener("viewhide",function(e){currentResult=null})}}); \ No newline at end of file diff --git a/dashboard-ui/dashboard/dashboardgeneral.js b/dashboard-ui/dashboard/dashboardgeneral.js index b124b2fd67..25ea2f32fc 100644 --- a/dashboard-ui/dashboard/dashboardgeneral.js +++ b/dashboard-ui/dashboard/dashboardgeneral.js @@ -1 +1 @@ -define(["jQuery","loading","fnchecked","emby-checkbox","emby-collapse","emby-textarea","emby-input","emby-select","emby-linkbutton"],function($,loading){"use strict";function loadPage(page,config,languageOptions,systemInfo){var os=systemInfo.OperatingSystem.toLowerCase();os.indexOf("windows")!=-1?$("#windowsStartupDescription",page).show():$("#windowsStartupDescription",page).hide(),systemInfo.SupportsAutoRunAtStartup?$("#fldRunAtStartup",page).show():$("#fldRunAtStartup",page).hide(),page.querySelector("#txtCachePath").value=config.CachePath||"",$("#selectLocalizationLanguage",page).html(languageOptions.map(function(l){return'"})).val(config.UICulture),currentLanguage=config.UICulture,$("#chkUsageData",page).checked(config.EnableAnonymousUsageReporting),$("#chkRunAtStartup",page).checked(config.RunAtStartup),systemInfo.CanSelfUpdate?$(".fldAutomaticUpdates",page).show():$(".fldAutomaticUpdates",page).hide(),$("#chkEnableAutomaticServerUpdates",page).checked(config.EnableAutoUpdate),$("#chkEnableAutomaticRestart",page).checked(config.EnableAutomaticRestart),systemInfo.CanSelfRestart?$("#fldEnableAutomaticRestart",page).show():$("#fldEnableAutomaticRestart",page).hide(),systemInfo.CanSelfRestart||systemInfo.CanSelfUpdate?$(".autoUpdatesContainer",page).removeClass("hide"):$(".autoUpdatesContainer",page).addClass("hide"),loading.hide()}function onSubmit(){loading.show();var form=this;$(form).parents(".page");return ApiClient.getServerConfiguration().then(function(config){config.UICulture=$("#selectLocalizationLanguage",form).val(),config.CachePath=form.querySelector("#txtCachePath").value;var requiresReload=!1;config.UICulture!=currentLanguage&&(requiresReload=!0),config.EnableAnonymousUsageReporting=$("#chkUsageData",form).checked(),config.RunAtStartup=$("#chkRunAtStartup",form).checked(),config.EnableAutomaticRestart=$("#chkEnableAutomaticRestart",form).checked(),config.EnableAutoUpdate=$("#chkEnableAutomaticServerUpdates",form).checked(),ApiClient.updateServerConfiguration(config).then(function(){ApiClient.getNamedConfiguration(brandingConfigKey).then(function(brandingConfig){brandingConfig.LoginDisclaimer=form.querySelector("#txtLoginDisclaimer").value,brandingConfig.CustomCss=form.querySelector("#txtCustomCss").value,currentBrandingOptions&&brandingConfig.CustomCss!=currentBrandingOptions.CustomCss&&(requiresReload=!0),ApiClient.updateNamedConfiguration(brandingConfigKey,brandingConfig).then(function(){Dashboard.processServerConfigurationUpdateResult(),requiresReload&&!AppInfo.isNativeApp&&window.location.reload(!0)})})})}),!1}var currentBrandingOptions,currentLanguage,brandingConfigKey="branding";return function(view,params){$("#btnSelectCachePath",view).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&(view.querySelector("#txtCachePath").value=path),picker.close()},header:Globalize.translate("HeaderSelectServerCachePath"),instruction:Globalize.translate("HeaderSelectServerCachePathHelp")})})}),$(".dashboardGeneralForm",view).off("submit",onSubmit).on("submit",onSubmit),view.addEventListener("viewshow",function(){var promise1=ApiClient.getServerConfiguration(),promise2=ApiClient.getJSON(ApiClient.getUrl("Localization/Options")),promise3=ApiClient.getSystemInfo();Promise.all([promise1,promise2,promise3]).then(function(responses){loadPage(view,responses[0],responses[1],responses[2])}),ApiClient.getNamedConfiguration(brandingConfigKey).then(function(config){currentBrandingOptions=config,view.querySelector("#txtLoginDisclaimer").value=config.LoginDisclaimer||"",view.querySelector("#txtCustomCss").value=config.CustomCss||""})})}}); \ No newline at end of file +define(["jQuery","loading","fnchecked","emby-checkbox","emby-collapse","emby-textarea","emby-input","emby-select","emby-linkbutton"],function($,loading){"use strict";function loadPage(page,config,languageOptions,systemInfo){var os=systemInfo.OperatingSystem.toLowerCase();os.indexOf("windows")!==-1?$("#windowsStartupDescription",page).show():$("#windowsStartupDescription",page).hide(),systemInfo.SupportsAutoRunAtStartup?$("#fldRunAtStartup",page).show():$("#fldRunAtStartup",page).hide(),page.querySelector("#txtCachePath").value=config.CachePath||"",$("#selectLocalizationLanguage",page).html(languageOptions.map(function(l){return'"})).val(config.UICulture),currentLanguage=config.UICulture,$("#chkUsageData",page).checked(config.EnableAnonymousUsageReporting),$("#chkRunAtStartup",page).checked(config.RunAtStartup),systemInfo.CanSelfUpdate?$(".fldAutomaticUpdates",page).show():$(".fldAutomaticUpdates",page).hide(),$("#chkEnableAutomaticServerUpdates",page).checked(config.EnableAutoUpdate),$("#chkEnableAutomaticRestart",page).checked(config.EnableAutomaticRestart),systemInfo.CanSelfRestart?$("#fldEnableAutomaticRestart",page).show():$("#fldEnableAutomaticRestart",page).hide(),systemInfo.CanSelfRestart||systemInfo.CanSelfUpdate?$(".autoUpdatesContainer",page).removeClass("hide"):$(".autoUpdatesContainer",page).addClass("hide"),loading.hide()}function onSubmit(){loading.show();var form=this;$(form).parents(".page");return ApiClient.getServerConfiguration().then(function(config){config.UICulture=$("#selectLocalizationLanguage",form).val(),config.CachePath=form.querySelector("#txtCachePath").value;var requiresReload=!1;config.UICulture!==currentLanguage&&(requiresReload=!0),config.EnableAnonymousUsageReporting=$("#chkUsageData",form).checked(),config.RunAtStartup=$("#chkRunAtStartup",form).checked(),config.EnableAutomaticRestart=$("#chkEnableAutomaticRestart",form).checked(),config.EnableAutoUpdate=$("#chkEnableAutomaticServerUpdates",form).checked(),ApiClient.updateServerConfiguration(config).then(function(){ApiClient.getNamedConfiguration(brandingConfigKey).then(function(brandingConfig){brandingConfig.LoginDisclaimer=form.querySelector("#txtLoginDisclaimer").value,brandingConfig.CustomCss=form.querySelector("#txtCustomCss").value,currentBrandingOptions&&brandingConfig.CustomCss!==currentBrandingOptions.CustomCss&&(requiresReload=!0),ApiClient.updateNamedConfiguration(brandingConfigKey,brandingConfig).then(function(){Dashboard.processServerConfigurationUpdateResult(),requiresReload&&!AppInfo.isNativeApp&&window.location.reload(!0)})})})}),!1}var currentBrandingOptions,currentLanguage,brandingConfigKey="branding";return function(view,params){$("#btnSelectCachePath",view).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({callback:function(path){path&&(view.querySelector("#txtCachePath").value=path),picker.close()},header:Globalize.translate("HeaderSelectServerCachePath"),instruction:Globalize.translate("HeaderSelectServerCachePathHelp")})})}),$(".dashboardGeneralForm",view).off("submit",onSubmit).on("submit",onSubmit),view.addEventListener("viewshow",function(){var promise1=ApiClient.getServerConfiguration(),promise2=ApiClient.getJSON(ApiClient.getUrl("Localization/Options")),promise3=ApiClient.getSystemInfo();Promise.all([promise1,promise2,promise3]).then(function(responses){loadPage(view,responses[0],responses[1],responses[2])}),ApiClient.getNamedConfiguration(brandingConfigKey).then(function(config){currentBrandingOptions=config,view.querySelector("#txtLoginDisclaimer").value=config.LoginDisclaimer||"",view.querySelector("#txtCustomCss").value=config.CustomCss||""})})}}); \ No newline at end of file diff --git a/dashboard-ui/dashboard/librarysettings.js b/dashboard-ui/dashboard/librarysettings.js index 0cf18541a7..816c62105c 100644 --- a/dashboard-ui/dashboard/librarysettings.js +++ b/dashboard-ui/dashboard/librarysettings.js @@ -1 +1 @@ -define(["jQuery","loading","libraryMenu","fnchecked","emby-checkbox","emby-linkbutton"],function($,loading,libraryMenu){"use strict";function loadPage(page,config){config.MergeMetadataAndImagesByName?$(".fldImagesByName",page).hide():$(".fldImagesByName",page).show(),$("#txtSeasonZeroName",page).val(config.SeasonZeroDisplayName),$("#chkSaveMetadataHidden",page).checked(config.SaveMetadataHidden),$("#txtMetadataPath",page).val(config.MetadataPath||""),$("#txtMetadataNetworkPath",page).val(config.MetadataNetworkPath||""),loading.hide()}function loadMetadataConfig(page,config){$("#selectDateAdded",page).val(config.UseFileCreationTimeForDateAdded?"1":"0")}function loadFanartConfig(page,config){$("#txtFanartApiKey",page).val(config.UserApiKey||"")}function saveFanart(form){ApiClient.getNamedConfiguration("fanart").then(function(config){config.UserApiKey=$("#txtFanartApiKey",form).val(),ApiClient.updateNamedConfiguration("fanart",config)})}function saveMetadata(form){ApiClient.getNamedConfiguration("metadata").then(function(config){config.UseFileCreationTimeForDateAdded="1"==$("#selectDateAdded",form).val(),ApiClient.updateNamedConfiguration("metadata",config)})}function onSubmit(){loading.show();var form=this;return ApiClient.getServerConfiguration().then(function(config){config.SeasonZeroDisplayName=$("#txtSeasonZeroName",form).val(),config.SaveMetadataHidden=$("#chkSaveMetadataHidden",form).checked(),config.EnableTvDbUpdates=$("#chkEnableTvdbUpdates",form).checked(),config.EnableTmdbUpdates=$("#chkEnableTmdbUpdates",form).checked(),config.EnableFanArtUpdates=$("#chkEnableFanartUpdates",form).checked(),config.MetadataPath=$("#txtMetadataPath",form).val(),config.MetadataNetworkPath=$("#txtMetadataNetworkPath",form).val(),config.FanartApiKey=$("#txtFanartApiKey",form).val(),ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult)}),saveMetadata(form),saveFanart(form),!1}function getTabs(){return[{href:"library.html",name:Globalize.translate("HeaderLibraries")},{href:"librarydisplay.html",name:Globalize.translate("TabDisplay")},{href:"metadataimages.html",name:Globalize.translate("TabMetadata")},{href:"metadatanfo.html",name:Globalize.translate("TabNfoSettings")},{href:"librarysettings.html",name:Globalize.translate("TabAdvanced")}]}return function(view,params){$("#btnSelectMetadataPath",view).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({path:$("#txtMetadataPath",view).val(),networkSharePath:$("#txtMetadataNetworkPath",view).val(),callback:function(path,networkPath){path&&($("#txtMetadataPath",view).val(path),$("#txtMetadataNetworkPath",view).val(networkPath)),picker.close()},header:Globalize.translate("HeaderSelectMetadataPath"),instruction:Globalize.translate("HeaderSelectMetadataPathHelp"),enableNetworkSharePath:!0})})}),$(".librarySettingsForm").off("submit",onSubmit).on("submit",onSubmit),view.addEventListener("viewshow",function(){libraryMenu.setTabs("librarysetup",4,getTabs),loading.show();var page=this;ApiClient.getServerConfiguration().then(function(config){loadPage(page,config)}),ApiClient.getNamedConfiguration("metadata").then(function(metadata){loadMetadataConfig(page,metadata)}),ApiClient.getNamedConfiguration("fanart").then(function(metadata){loadFanartConfig(page,metadata)})})}}); \ No newline at end of file +define(["jQuery","loading","libraryMenu","fnchecked","emby-checkbox","emby-linkbutton"],function($,loading,libraryMenu){"use strict";function loadPage(page,config){config.MergeMetadataAndImagesByName?$(".fldImagesByName",page).hide():$(".fldImagesByName",page).show(),$("#txtSeasonZeroName",page).val(config.SeasonZeroDisplayName),$("#chkSaveMetadataHidden",page).checked(config.SaveMetadataHidden),$("#txtMetadataPath",page).val(config.MetadataPath||""),$("#txtMetadataNetworkPath",page).val(config.MetadataNetworkPath||""),loading.hide()}function loadMetadataConfig(page,config){$("#selectDateAdded",page).val(config.UseFileCreationTimeForDateAdded?"1":"0")}function loadFanartConfig(page,config){$("#txtFanartApiKey",page).val(config.UserApiKey||"")}function saveFanart(form){ApiClient.getNamedConfiguration("fanart").then(function(config){config.UserApiKey=$("#txtFanartApiKey",form).val(),ApiClient.updateNamedConfiguration("fanart",config)})}function saveMetadata(form){ApiClient.getNamedConfiguration("metadata").then(function(config){config.UseFileCreationTimeForDateAdded="1"===$("#selectDateAdded",form).val(),ApiClient.updateNamedConfiguration("metadata",config)})}function onSubmit(){loading.show();var form=this;return ApiClient.getServerConfiguration().then(function(config){config.SeasonZeroDisplayName=$("#txtSeasonZeroName",form).val(),config.SaveMetadataHidden=$("#chkSaveMetadataHidden",form).checked(),config.EnableTvDbUpdates=$("#chkEnableTvdbUpdates",form).checked(),config.EnableTmdbUpdates=$("#chkEnableTmdbUpdates",form).checked(),config.EnableFanArtUpdates=$("#chkEnableFanartUpdates",form).checked(),config.MetadataPath=$("#txtMetadataPath",form).val(),config.MetadataNetworkPath=$("#txtMetadataNetworkPath",form).val(),config.FanartApiKey=$("#txtFanartApiKey",form).val(),ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult)}),saveMetadata(form),saveFanart(form),!1}function getTabs(){return[{href:"library.html",name:Globalize.translate("HeaderLibraries")},{href:"librarydisplay.html",name:Globalize.translate("TabDisplay")},{href:"metadataimages.html",name:Globalize.translate("TabMetadata")},{href:"metadatanfo.html",name:Globalize.translate("TabNfoSettings")},{href:"librarysettings.html",name:Globalize.translate("TabAdvanced")}]}return function(view,params){$("#btnSelectMetadataPath",view).on("click.selectDirectory",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({path:$("#txtMetadataPath",view).val(),networkSharePath:$("#txtMetadataNetworkPath",view).val(),callback:function(path,networkPath){path&&($("#txtMetadataPath",view).val(path),$("#txtMetadataNetworkPath",view).val(networkPath)),picker.close()},header:Globalize.translate("HeaderSelectMetadataPath"),instruction:Globalize.translate("HeaderSelectMetadataPathHelp"),enableNetworkSharePath:!0})})}),$(".librarySettingsForm").off("submit",onSubmit).on("submit",onSubmit),view.addEventListener("viewshow",function(){libraryMenu.setTabs("librarysetup",4,getTabs),loading.show();var page=this;ApiClient.getServerConfiguration().then(function(config){loadPage(page,config)}),ApiClient.getNamedConfiguration("metadata").then(function(metadata){loadMetadataConfig(page,metadata)}),ApiClient.getNamedConfiguration("fanart").then(function(metadata){loadFanartConfig(page,metadata)})})}}); \ No newline at end of file diff --git a/dashboard-ui/dashboard/livetvtuner.js b/dashboard-ui/dashboard/livetvtuner.js index 9dbe1c9f11..9e5514e462 100644 --- a/dashboard-ui/dashboard/livetvtuner.js +++ b/dashboard-ui/dashboard/livetvtuner.js @@ -1 +1 @@ -define(["globalize","loading","libraryMenu","emby-input","emby-button","emby-checkbox","emby-select"],function(globalize,loading,libraryMenu){"use strict";function fillTypes(view,currentId){return ApiClient.getJSON(ApiClient.getUrl("LiveTv/TunerHosts/Types")).then(function(types){var selectType=view.querySelector(".selectType");selectType.innerHTML=types.map(function(t){return'"}).join("")+'",selectType.disabled=null!=currentId,selectType.value="",selectType.dispatchEvent(new CustomEvent("change",{}))})}function reload(view,providerId){view.querySelector(".txtDevicePath").value="",view.querySelector(".chkFavorite").checked=!1,providerId&&ApiClient.getNamedConfiguration("livetv").then(function(config){var info=config.TunerHosts.filter(function(i){return i.Id==providerId})[0];fillTunerHostInfo(view,info)})}function fillTunerHostInfo(view,info){var selectType=view.querySelector(".selectType");selectType.value=info.Type||"",selectType.dispatchEvent(new CustomEvent("change",{})),view.querySelector(".txtDevicePath").value=info.Url||"",view.querySelector(".chkFavorite").checked=info.ImportFavoritesOnly,view.querySelector(".chkTranscode").checked=info.AllowHWTranscoding}function submitForm(page){loading.show();var info={Type:page.querySelector(".selectType").value,Url:page.querySelector(".txtDevicePath").value,ImportFavoritesOnly:page.querySelector(".chkFavorite").checked,AllowHWTranscoding:page.querySelector(".chkTranscode").checked,EnableTvgId:!0},id=getParameterByName("id");id&&(info.Id=id);var originalId=info.Id;ApiClient.ajax({type:"POST",url:ApiClient.getUrl("LiveTv/TunerHosts"),data:JSON.stringify(info),contentType:"application/json"}).then(function(result){Dashboard.processServerConfigurationUpdateResult(),originalId?Dashboard.navigate("livetvstatus.html"):Dashboard.navigate("livetvstatus.html")},function(){Dashboard.alert({message:Globalize.translate("ErrorSavingTvProvider")})})}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function getDetectedDevice(){return getRequirePromise(["tunerPicker"]).then(function(tunerPicker){return(new tunerPicker).show({serverId:ApiClient.serverId()})})}function getTabs(){return[{href:"livetvstatus.html",name:Globalize.translate("TabDevices")},{href:"livetvsettings.html",name:Globalize.translate("TabSettings")},{href:"appservices.html?context=livetv",name:Globalize.translate("TabServices")}]}return function(view,params){function onTypeChange(){var value=this.value,mayIncludeUnsupportedDrmChannels="hdhomerun"===value,supportsTranscoding="hdhomerun"===value,supportsFavorites="hdhomerun"===value,supportsTunerIpAddress="hdhomerun"===value,supportsTunerFileOrUrl="m3u"===value,suppportsSubmit="other"!==value;supportsTunerIpAddress?(view.querySelector(".txtDevicePath").label(globalize.translate("LabelTunerIpAddress")),view.querySelector(".btnSelectPath").classList.add("hide"),view.querySelector(".fldPath").classList.remove("hide")):supportsTunerFileOrUrl?(view.querySelector(".txtDevicePath").label(globalize.translate("LabelFileOrUrl")),view.querySelector(".btnSelectPath").classList.remove("hide"),view.querySelector(".fldPath").classList.remove("hide")):(view.querySelector(".fldPath").classList.add("hide"),view.querySelector(".btnSelectPath").classList.add("hide")),supportsFavorites?view.querySelector(".fldFavorites").classList.remove("hide"):view.querySelector(".fldFavorites").classList.add("hide"),supportsTranscoding?view.querySelector(".fldTranscode").classList.remove("hide"):view.querySelector(".fldTranscode").classList.add("hide"),mayIncludeUnsupportedDrmChannels?view.querySelector(".drmMessage").classList.remove("hide"):view.querySelector(".drmMessage").classList.add("hide"),suppportsSubmit?(view.querySelector(".button-submit").classList.remove("hide"),view.querySelector(".otherOptionsMessage").classList.add("hide")):(view.querySelector(".button-submit").classList.add("hide"),view.querySelector(".otherOptionsMessage").classList.remove("hide"))}params.id||view.querySelector(".btnDetect").classList.remove("hide"),view.addEventListener("viewshow",function(){libraryMenu.setTabs("livetvadmin",0,getTabs);var currentId=params.id;fillTypes(view,currentId).then(function(){reload(view,currentId)})}),view.querySelector("form").addEventListener("submit",function(e){return submitForm(view),e.preventDefault(),e.stopPropagation(),!1}),view.querySelector(".selectType").addEventListener("change",onTypeChange),view.querySelector(".btnDetect").addEventListener("click",function(){getDetectedDevice().then(function(info){fillTunerHostInfo(view,info)})}),view.querySelector(".btnSelectPath").addEventListener("click",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({includeFiles:!0,callback:function(path){path&&(view.querySelector(".txtDevicePath").value=path),picker.close()}})})})}}); \ No newline at end of file +define(["globalize","loading","libraryMenu","emby-input","emby-button","emby-checkbox","emby-select"],function(globalize,loading,libraryMenu){"use strict";function fillTypes(view,currentId){return ApiClient.getJSON(ApiClient.getUrl("LiveTv/TunerHosts/Types")).then(function(types){var selectType=view.querySelector(".selectType");selectType.innerHTML=types.map(function(t){return'"}).join("")+'",selectType.disabled=null!=currentId,selectType.value="",selectType.dispatchEvent(new CustomEvent("change",{}))})}function reload(view,providerId){view.querySelector(".txtDevicePath").value="",view.querySelector(".chkFavorite").checked=!1,providerId&&ApiClient.getNamedConfiguration("livetv").then(function(config){var info=config.TunerHosts.filter(function(i){return i.Id===providerId})[0];fillTunerHostInfo(view,info)})}function fillTunerHostInfo(view,info){var selectType=view.querySelector(".selectType");selectType.value=info.Type||"",selectType.dispatchEvent(new CustomEvent("change",{})),view.querySelector(".txtDevicePath").value=info.Url||"",view.querySelector(".chkFavorite").checked=info.ImportFavoritesOnly,view.querySelector(".chkTranscode").checked=info.AllowHWTranscoding}function submitForm(page){loading.show();var info={Type:page.querySelector(".selectType").value,Url:page.querySelector(".txtDevicePath").value,ImportFavoritesOnly:page.querySelector(".chkFavorite").checked,AllowHWTranscoding:page.querySelector(".chkTranscode").checked,EnableTvgId:!0},id=getParameterByName("id");id&&(info.Id=id);var originalId=info.Id;ApiClient.ajax({type:"POST",url:ApiClient.getUrl("LiveTv/TunerHosts"),data:JSON.stringify(info),contentType:"application/json"}).then(function(result){Dashboard.processServerConfigurationUpdateResult(),originalId?Dashboard.navigate("livetvstatus.html"):Dashboard.navigate("livetvstatus.html")},function(){Dashboard.alert({message:Globalize.translate("ErrorSavingTvProvider")})})}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function getDetectedDevice(){return getRequirePromise(["tunerPicker"]).then(function(tunerPicker){return(new tunerPicker).show({serverId:ApiClient.serverId()})})}function getTabs(){return[{href:"livetvstatus.html",name:Globalize.translate("TabDevices")},{href:"livetvsettings.html",name:Globalize.translate("TabSettings")},{href:"appservices.html?context=livetv",name:Globalize.translate("TabServices")}]}return function(view,params){function onTypeChange(){var value=this.value,mayIncludeUnsupportedDrmChannels="hdhomerun"===value,supportsTranscoding="hdhomerun"===value,supportsFavorites="hdhomerun"===value,supportsTunerIpAddress="hdhomerun"===value,supportsTunerFileOrUrl="m3u"===value,suppportsSubmit="other"!==value;supportsTunerIpAddress?(view.querySelector(".txtDevicePath").label(globalize.translate("LabelTunerIpAddress")),view.querySelector(".btnSelectPath").classList.add("hide"),view.querySelector(".fldPath").classList.remove("hide")):supportsTunerFileOrUrl?(view.querySelector(".txtDevicePath").label(globalize.translate("LabelFileOrUrl")),view.querySelector(".btnSelectPath").classList.remove("hide"),view.querySelector(".fldPath").classList.remove("hide")):(view.querySelector(".fldPath").classList.add("hide"),view.querySelector(".btnSelectPath").classList.add("hide")),supportsFavorites?view.querySelector(".fldFavorites").classList.remove("hide"):view.querySelector(".fldFavorites").classList.add("hide"),supportsTranscoding?view.querySelector(".fldTranscode").classList.remove("hide"):view.querySelector(".fldTranscode").classList.add("hide"),mayIncludeUnsupportedDrmChannels?view.querySelector(".drmMessage").classList.remove("hide"):view.querySelector(".drmMessage").classList.add("hide"),suppportsSubmit?(view.querySelector(".button-submit").classList.remove("hide"),view.querySelector(".otherOptionsMessage").classList.add("hide")):(view.querySelector(".button-submit").classList.add("hide"),view.querySelector(".otherOptionsMessage").classList.remove("hide"))}params.id||view.querySelector(".btnDetect").classList.remove("hide"),view.addEventListener("viewshow",function(){libraryMenu.setTabs("livetvadmin",0,getTabs);var currentId=params.id;fillTypes(view,currentId).then(function(){reload(view,currentId)})}),view.querySelector("form").addEventListener("submit",function(e){return submitForm(view),e.preventDefault(),e.stopPropagation(),!1}),view.querySelector(".selectType").addEventListener("change",onTypeChange),view.querySelector(".btnDetect").addEventListener("click",function(){getDetectedDevice().then(function(info){fillTunerHostInfo(view,info)})}),view.querySelector(".btnSelectPath").addEventListener("click",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({includeFiles:!0,callback:function(path){path&&(view.querySelector(".txtDevicePath").value=path),picker.close()}})})})}}); \ No newline at end of file diff --git a/dashboard-ui/dashboard/wizardcomponents.js b/dashboard-ui/dashboard/wizardcomponents.js index 5195e5fb24..008cf33e37 100644 --- a/dashboard-ui/dashboard/wizardcomponents.js +++ b/dashboard-ui/dashboard/wizardcomponents.js @@ -1 +1 @@ -define(["emby-linkbutton"],function(){"use strict";function goNext(){Dashboard.navigate("wizardagreement.html")}function loadDownloadInfo(view){var instructions="";ApiClient.getSystemInfo().then(function(systemInfo){var operatingSystem=systemInfo.OperatingSystem.toLowerCase();"windows"==operatingSystem?(view.querySelector(".fldSelectEncoderPathType").classList.add("hide"),view.querySelector(".markExec").classList.add("hide")):(view.querySelector(".fldSelectEncoderPathType").classList.remove("hide"),view.querySelector(".markExec").classList.remove("hide")),"windows"==operatingSystem&&"Arm"!=systemInfo.SystemArchitecture?(view.querySelector(".suggestedLocation").innerHTML=Globalize.translate("FFmpegSuggestedDownload",'https://ffmpeg.zeranoe.com'),"X86"==systemInfo.SystemArchitecture?instructions="Download FFmpeg 32-Bit Static":"X64"==systemInfo.SystemArchitecture&&(instructions="Download FFmpeg 64-Bit Static")):"linux"==operatingSystem?(view.querySelector(".suggestedLocation").innerHTML=Globalize.translate("FFmpegSuggestedDownload",'http://johnvansickle.com/ffmpeg'),"X86"==systemInfo.SystemArchitecture?instructions="Download x86 build":"X64"==systemInfo.SystemArchitecture&&(instructions="Download x86_64 build")):"osx"==operatingSystem&&"X64"==systemInfo.SystemArchitecture?(view.querySelector(".suggestedLocation").innerHTML=Globalize.translate("FFmpegSuggestedDownload",'http://evermeet.cx/ffmpeg'),instructions="Download both ffmpeg and ffprobe, and extract them to the same folder."):view.querySelector(".suggestedLocation").innerHTML=Globalize.translate("FFmpegSuggestedDownload",'https://ffmpeg.org/download.html'),view.querySelector(".downloadInstructions").innerHTML=instructions;var selectEncoderPath=view.querySelector("#selectEncoderPath");selectEncoderPath.value="Custom",onSelectEncoderPathChange.call(selectEncoderPath)})}function onSaveEncodingPathFailure(response){var msg="";msg=Globalize.translate("FFmpegSavePathNotFound"),require(["alert"],function(alert){alert(msg)})}function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function onSelectEncoderPathChange(e){var page=parentWithClass(this,"page");"Custom"==this.value?page.querySelector(".fldEncoderPath").classList.remove("hide"):page.querySelector(".fldEncoderPath").classList.add("hide")}return function(view,params){view.querySelector("#btnSelectEncoderPath").addEventListener("click",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({includeFiles:!0,callback:function(path){path&&(view.querySelector(".txtEncoderPath").value=path),picker.close()}})})}),view.querySelector("form").addEventListener("submit",function(e){var form=this;return ApiClient.ajax({url:ApiClient.getUrl("System/MediaEncoder/Path"),type:"POST",data:{Path:form.querySelector(".txtEncoderPath").value,PathType:"Custom"}}).then(goNext,onSaveEncodingPathFailure),e.preventDefault(),!1}),view.querySelector("#selectEncoderPath").addEventListener("change",onSelectEncoderPathChange),view.addEventListener("viewbeforeshow",function(e){loadDownloadInfo(view)})}}); \ No newline at end of file +define(["emby-linkbutton"],function(){"use strict";function goNext(){Dashboard.navigate("wizardagreement.html")}function loadDownloadInfo(view){var instructions="";ApiClient.getSystemInfo().then(function(systemInfo){var operatingSystem=systemInfo.OperatingSystem.toLowerCase();"windows"===operatingSystem?(view.querySelector(".fldSelectEncoderPathType").classList.add("hide"),view.querySelector(".markExec").classList.add("hide")):(view.querySelector(".fldSelectEncoderPathType").classList.remove("hide"),view.querySelector(".markExec").classList.remove("hide")),"windows"===operatingSystem&&"Arm"!==systemInfo.SystemArchitecture?(view.querySelector(".suggestedLocation").innerHTML=Globalize.translate("FFmpegSuggestedDownload",'https://ffmpeg.zeranoe.com'),"X86"===systemInfo.SystemArchitecture?instructions="Download FFmpeg 32-Bit Static":"X64"===systemInfo.SystemArchitecture&&(instructions="Download FFmpeg 64-Bit Static")):"linux"===operatingSystem?(view.querySelector(".suggestedLocation").innerHTML=Globalize.translate("FFmpegSuggestedDownload",'http://johnvansickle.com/ffmpeg'),"X86"===systemInfo.SystemArchitecture?instructions="Download x86 build":"X64"===systemInfo.SystemArchitecture&&(instructions="Download x86_64 build")):"osx"===operatingSystem&&"X64"===systemInfo.SystemArchitecture?(view.querySelector(".suggestedLocation").innerHTML=Globalize.translate("FFmpegSuggestedDownload",'http://evermeet.cx/ffmpeg'),instructions="Download both ffmpeg and ffprobe, and extract them to the same folder."):view.querySelector(".suggestedLocation").innerHTML=Globalize.translate("FFmpegSuggestedDownload",'https://ffmpeg.org/download.html'),view.querySelector(".downloadInstructions").innerHTML=instructions;var selectEncoderPath=view.querySelector("#selectEncoderPath");selectEncoderPath.value="Custom",onSelectEncoderPathChange.call(selectEncoderPath)})}function onSaveEncodingPathFailure(response){var msg="";msg=Globalize.translate("FFmpegSavePathNotFound"),require(["alert"],function(alert){alert(msg)})}function parentWithClass(elem,className){for(;!elem.classList||!elem.classList.contains(className);)if(elem=elem.parentNode,!elem)return null;return elem}function onSelectEncoderPathChange(e){var page=parentWithClass(this,"page");"Custom"===this.value?page.querySelector(".fldEncoderPath").classList.remove("hide"):page.querySelector(".fldEncoderPath").classList.add("hide")}return function(view,params){view.querySelector("#btnSelectEncoderPath").addEventListener("click",function(){require(["directorybrowser"],function(directoryBrowser){var picker=new directoryBrowser;picker.show({includeFiles:!0,callback:function(path){path&&(view.querySelector(".txtEncoderPath").value=path),picker.close()}})})}),view.querySelector("form").addEventListener("submit",function(e){var form=this;return ApiClient.ajax({url:ApiClient.getUrl("System/MediaEncoder/Path"),type:"POST",data:{Path:form.querySelector(".txtEncoderPath").value,PathType:"Custom"}}).then(goNext,onSaveEncodingPathFailure),e.preventDefault(),!1}),view.querySelector("#selectEncoderPath").addEventListener("change",onSelectEncoderPathChange),view.addEventListener("viewbeforeshow",function(e){loadDownloadInfo(view)})}}); \ No newline at end of file diff --git a/dashboard-ui/files/dummy.mp4 b/dashboard-ui/files/dummy.mp4 deleted file mode 100644 index dee995f575797500a08a4176eea5ac77d35eef36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328795 zcmeEthc{eb^zWU5(MRu$-h1z(lZ5Cc(YxrKL>VP|4T3}vMDIj&qe~D(O`;PdL>DEP zC%^aJzwp+2YklupbMD@!?0wJY-q~lLea@j(TPZG9j)?#%pWpqCBcRGB5isS*ICmRA zA5ULb8|B!$tmhG6Y6FxL2)MhjpqwPyul;JZJCY2lqA9d091W@?;gJ8$QX1B}{$s1P zJCg58=?yyW*eEP0$=<{9e~tgU{zKqD1pY(dKLq|m;6DWZL*PFI{zKqD1pY(dKLq|m z;6DWZKSJQ&ydPQ2Gv5$Jtc=t~6}!3EI@r3qAp(R2L4VVlaj@}2sJQsKIQVjMBP7IZUHlNX{w{8Q z2u}}$wv7)0A%YMQ5*9;<2+N3y$%sg(#z(7F?*OVcaaaeo7a^J~fNx1!q61dF^N-xf zlIllm?Q6>d{~{7dRPF721ju(VE_RLt=P~(Oaa05-F9LAijsV4^8e3`Ws%eM`Y8gBf zR5DhvE2;u1qZu)40G-p_J)b#(+CUqLMCt+n1c2WqkdY(XeGq`<{26-`!MYI@4Z1Eg zVtJnzI}^Lhh+D|9|vy|9jN`5cm&)|JMjGskHdB zRhVr@0L2Jn-Ut9d-5C&EY%B~0Yf3{?&H&^YfAs6buXu6bNv! zckpzx@euIzaT5F|R>0Zs&W!UTJiYu}JUx765Oy}UHg@tt2puFaj* zcXtVLu($dr?_Yf@9~%!R2YF!$gq^dGr@M{ST|;4npO1r^n~U$AUa24{dpo~7!p__M zF12^Cv4866;UF&}%y*~n|FrS;vhs9v^mXu)=NCcvIo}N>_P%%OJ$(MBg`LaYQ1nl# zyRD6*<3CY%J@fOiaq+l&4i}F*>MqaL(Z|N!;h)ApFCPbcuRFrkA^5ITUR3D+l2-06 z9(OFl*UrJi!Oq`LUhEDRJ1aL&Pgfh~JDvZVm$&nAyi;}8g?~El7*~%xD0qE(O3~YFouuid4zLVQt57J#PF35xM!J;5b(9zrn|F+k%j?qld=@ z(%9Um#KH=jWV`tdf^PQj-Pz|eEQpBuc1sqVmM)so# zSdUn3&@?S)kma6OER~TS%7GmMatCp*MjeRMs!p2WM35g=zOe|D>z&&qO{NU~bIdh$ zMK~kK=wW^k^zZH!)+SdkX3;fjIm*K{WY+i9o5IuZThi;T? z3bwlS$LEK8;SdHJik$mAr;nz4x;eF{WE-+b?YvUa(kfa3Jm zZ)uhkgY`D@i%5{*1SgseYtkH!t z0T7UeyP7yITC3DwMcj30O{)iUXIkfgLv7SHwQetW6pM+{3RGIE>a7v>L;wOWgTH(|DrIvh*sb;v1KS3BbX?fe zq37=(GHMXVX!mcyRT|3iX-O$!si7=hWaC4IPeX52e&*n35^$MnwcGz~>%um?Qfuyp z<1NF2PC7&JoefJ}M)!u8R9Fk92w>0Ed!h+kZAPutw$G2$nL>Zu z8e@t+;V%-L@69(o?S=@|8bB=*cf?8#kMmHOs7$o9S4?Hm6p8R4wS{o(sN$VGjA(Pqvg$ zLliPX#v`^9B_??5Ykr+d0B&v{kdn{%W3jK-lJQfn=@~97XM7q3yp$?}|7PfH=v&7C zb9@EBX}Z?ZqNGaPJlY|-`u;Pme^gE8+tQGUzyP|4myRpJ+$#5lb{O6JmHEQ-Ys-!c zgC>Olt|27=6j+?+HKE3{F1mT_#9tdRsT~P-9}Bg;yfEXZds1#uY(f_JF{UcLZT7VR zl~I^+=XgsNvz%B6y3cvRnA#l=@tbH^i8}Z; z^z>7%lF?7QZO?9qyJ5pq^;B;ujA-3C5wSqr7Mw+21$WB$7Es0~#U>6%#C+)N@I|@7 z(CbIK)Azv4vMR7p$! zeEiq+A|V;!Ty^!`vG=xzK*n2t4=CtPrt1aKP!2qLy`u03Os^~Uwm zBLoooGx}G*ozxP<2aDL)S>O5ep9`-0dq3IWQmg!!8zyxvvqHlsEb{#!mWw$~u1mHE zB_CmUlqkVzxJbpf%lf3p_VNX^?G$r==I*r_w(ELY{HidhKCd?E*ISF+gZki<#v7;j zTu1-N6?rXnE^Y`iz?C@rCL*+#GxYf(){@Kc)~x=MJd+Nm3cA-@W zJuV7NP#W@JM-za0U6&Gr{VDd?0X+42Qm?UvzEVccEeh0(_h>=QSwSC*bO6qZp~&r@ zv&XkVHXADRehekAiU(QvR!j;3t#xU!;*waJs8uYKcXDG_$*M6z};E9juc*x9nB~RgarJ5UQh1hna5jwv_%SJK{X=0t|bW*MKNCG%D(7-EfR-4*{rW zojf9J;Q`^BhULXpKgF`Q;Dq67>Y^U#tK&zgNqoK$1MxCB$*ooQ+#hXybH%PkuP0T< zl_fyobKD;P$WPo-@%Oqn@#i?S-yyd=S$x|4BLAO8Iz@XrmAT^NpR4HevVP7DX7CJL zTCN-22+CZsy|}q|ABR&8g4)jmT!`BgNVAt;VXgRZFfcc8B2KRC4eMT6F3V}=c8p|MK!Krmd{QkndhZ~9dR!(Br}G!$S;mhWo;E{cNs8IJ4Wqkv)a|)ThIXKR z|K}o)t2QXlgw`LA=ZKm?2sfK9Uhm;tr9b}jjL(%*Jlv-`f?}0rv)ji70r7+04{L4x zhxt{dDAc4TFo%}0mWpFHv8vXHWODK43mimE0-mF|{C5#F4~Bg7b}`GY^u-53#!I#P z7bgvWVffA0gI$tCfxFm$3NA8T3oiA%{d2P_yvg-e0NB8Ln;0i@PEjE~Kxz%GHA>Kl zhnvt5nyO*y=4(MU4REBuSzm4lJ;sFn4$Tp4jH_i!t*cL9Nl({g=p6uaC;psSrASV0 zuA&4OYAKMxrU2=YezuImo@wdR$fdN=QgvYbJM-J{P8+kF7tex3q`pNxqv!0;E6?** zYhrm3LUtt?@bkJOn(D9;L6E_RRY{89!Ci6k49I1Sq=50M5ABQ5a_)@u0;MpqS zpF)Tffu*#sSmOr(t#0y>T2ibK1uTH^c;N6V7BOeQQ8*=MC1S5ose*6;-%bh?DA_dg zJPS2dsEC^c(TjSadfyy`Xz;j(=KbVu>fu8%L|#*mS7cqJ!I`ItP5TeWr-}ggg%7sg z0m9|NUWE*t0k0CpRDMlMQ0a+VM}p%IweW!H!=dmK#)(rW@2J|tLH8dghx`n^D?v%k zmDqL%LPI+G$-vLm~wzt7YMMu}o^T z%9NO8O6eR5=Rcr0J9}!ZW8s+PE3SIYmaUZrYz3vGhVFV|+yN|pU!D*yr6;%)-@N|Z z66FLu|19sbfp|2tqg--=Du=|bQmZZ>^tQ3ruT*v3m?w!E6@RtMWjbh!Twr8&%2Uy3 zyzV`3kEcz8w*jjSO1#*l?)`p!@c5P1& zdjYL}N|@V0z0aGt4?M^iisy*4Ws|x9QeuY(UUvPM)ieMOw!WL9{9z+Q#4J`kCkr8o zAP+QaR98i-;yl_MjUXPLUVXh)*3+?ENv6fwS6Q(W4hosU=`6x=Jkz78PqTJsZ)Z87ZuIEFrsKKz7HA< z#@-CGDuyXr18_2MdBA?*PNee7!a3y$buazkwxX(+Y@U|OkN7)g)C`>%8}ET?!~EQx zn2S=|$4R1Wz6c(rNlY+3mR=Q|QMi5-xP>`?&gh-aRU(-&Bs`-^(h?#x`w^iE$E z{o?|(X+z=MuAcxzO*mf>29VG@BT1B*X!-$gZtgt5LuHQSc| znhxz3iCfLW)@_)uYQkvuA;1eFmS61sz^HFb9>0>XJPOQ>2(X$`-7ns0mC;?<)3pPK z`~DqRE_g1>E0z5qbDakN6&SEiqmGjIn%OQd6GFZg_6ERhUo!a{$T%nbMHqVzLCe4H z*>AMA*Dw&AD~o{|A6PV1`$t`}*5v&;?>x5m}lkf_mu zqJ@i`DlgRAA<$t{%F+oe!Ry6j{WUou6|BeVp8v8+PXU`Vfrt z#?989uYX0=5CS2umOJU#BaBs^SbWCZuU9WJnq3LQLd_}jJw~-51M+CqBcZ$r5-5+< z?kACb6BeyGE{o3eX3IP@@qg6jE^3bLbx4T6My7@cc9d}kxX1T4e6-i4o)Exn(qXz&llp3*f5KHPEVMSc1B`uxl8duY>epHd7|F)9h#fzrQv->Co7X% z%YE?D2?OgNz=nFIDuLM#H_TPOVFs*aWJr|~?rG)| z&i_zcvxvmp=DN(VJfWo;D8Srw|GB<;`JO8E7S6{LYVZ!SVTGm$a2R0(3aA)z z1dQ1a-vOUwV!?M5r&*#p924It(t(4pmS=RM$8Z;}D${J-r$kHbv(w z@t!QdFOJ_eY>1N(hj|%?=8`F#^*ll3I6yE1!HqZu&qmFNzIsr$>I$l{eIHFp-fQ+? zcBUVD(aQv$7@_5>WaDUSY$lY-IR)MMm#SEDh_qF>NJ*hG{qv{Vzy^{JWN2G?k7B+# z2x@cCuXj208%KY-^efF@8nF$_M(hB{Bfcf+B6?o;MxDq`#za#rAwoW-sV^!AHkTkt z*3_6x_B_pX=84X;#0CMTxe!Ua$!Vszm5tZuV@8=R!Q7kT5?J)lP%2A-Nl8^0%oIyd zK(tl*yE&Hdp3{{_FaYUvh-8eM^W7D1zuXk26PM!t+W6rt@uf0RbtTG^ z!TxK$mLMAP0TA(*o)YHe$X*+w_wAURW@&r>uty*MEZ|cfpht*>Q0xr)-MmjxB6W(; zVDRPc5~S<_n@o0RnAfq@*UxD!!J*ajCI%fGna_%n`&%_>t<#tsJm$OACC4#yov?`k#EQ=>wUeM**)+s ziR38%pl?0vOMuaLtn}4fTV!$!{gec_bGv>08LM(3Oo}%fSt6H;d23jE8<&Zk?e8GX z57QPwf8j<}Cl^$0XD+n*tDydBs1Ktrqhz)KHk;#PHp)T$X`kmhG?4Xf97KwxpM3e5ZhI&&swvxk;wPxV* zkF6c<-tuRzI@+ro8ezn^W)2Oy1Qn6zC;g&_Uk|qQLTQ74u9+rHX%Y0 zH-|$a@a(2MDug(A#u{`RFSign10r}uNG&*7YIXbZV;wE_sbKb5lsh?!qtNmsBZwHv zrdm9D9Pxd30tS=Sfsr&6Mxnh7RE&sl)qB;yY^>7Vj--2M*nrKZ=HCEkbkHs z(hMKRY;Fq(MDkh~8jjz83ssJm_HR-k8ru0N^Xwigu;luhU`V31>vOOn$NEtDn+^>k zdpGr}n>1y>P}dro@bcTiuz8;(JyTm0AtVRF_jbtQ#tkBs`|`o)m?0Y;@!6tdDNSCn zD@SLy+~SMyF)ZqDUoVzR*&0`^X21FnP!{aR05sp6Y?>U;GJ5yn0Ls~m8X$@8224v0 zWnqVasM~7#f>1WO{&p_cGLlkPUupY);JSF-nIC~- zCqj?OA#vwesf!X@z@UAh5xjOKySPI3&pswGfIV5l6}y!lFOTYVK4%uY30Z>NyFuza zy;F72;vvsad}i*Hg6OJ9r8d|Ov|6L|!QMpg8WJj<`d29XCBGRJH0qp)u6`PMv3Tb4{3nK3_r0md5o zasaYs+@=>*^PEOZZMIMu02ji0nE|y&bhwP)P(14O8{~F(Zq3^_Yr@k=$osU<--#c} z$?(1weOvsT(n~JQG&cvvheq$K*#ebdkPxNfT7uBjy7{|NQF*o9uPru-p})5UkZp5H z*9lLIGF*O64@BDc(YjrgxG6nsDvghTex(CFT}1-AOxA2s*37of=@(CQiqDozJ<(9s+Iwm49aC*LF$Jl8xBE zzfW}$Nf7v3a_MaVO^i+6LSX*%pD+;}R}mQ2-{&@}xzJpa?EXCrohkFpZ>rx#Z){#T zzU3AXDe4-kJ4P12LmMkR0gaZP%Kmu7tMXr76xzP-tFRE5m?3$G_)Za;*)@_cXP zSTE)|Iw3GZU;63Jk2vBPSbLcOPK36*n&_~cldW={Mhkp@cAaK9R{+rJ16~FUG0Z(xOmWn9f+aB)+ zKp+l)ks9k=!Xb?^Vbj22C%_Ro)dXWzmYy{5l99-^w<7^4+lg(;XMTWVxC#zJBbGiZ z4#+kGr3t_3uy~N|g&9?!T3Y?=Z;;>mEv1TN@22Fdj&!DUa={qxv8VdYaHzH%f_CXo zfJygP6VPu(Dm~!ePYx#eXCs19$fbA3)UhDW6y}O8Q(9p2dZBdXe55su6HU! zlxyMuSe%%-yW02R`jDo*CH-k&6Jf*RBZXZn>dD{q+4@5fZfF7ZclzrnzLBCzGw&*y z1*T3_A`l%>g&|08RwyYkUpgWVh|u){ghZ;fMLa(Ymi3{6((QxFlRiefcMj0~WfeMK zKfnpR=U~7=wAcDzk*AY)P~?bo{m%OZy+HUF&Rspke(2=(^o{sNKybK}CLJ{aUarzws+ldgU;{cAhpM2sGy7;lG&Ap8LZkb%&~kUq0< zTIy`MX^XHvc6Dyf6wM6)1VGZ{`gDJ$Sw}$RErt@GAueSd8Lhp|a=3an5Aw18^yXtF z$#NjsI**yY4DviJ<&LRUDZ56M|J)1X*JpK)P7Ae8CqtHQoEJbr6n)Ad+oq{ek-sc) zM@A8XmhFVv(PGldZP=@$(W(HNRCid}JQnwEW~HldbTf^_B~ei-ButR7n;pq@8)8wM z!w9o^Zh`-j*e6HWaF3>7`5wMK%g~wYP&(J#he&xT3e8$)MVZ7WW5ajinj3w*8iv>4_>~+pkYNr%s^~-% zC6Qdk>8LE|Lznj<3Wpwv($m-b8-aFXBtLhI@e@f_1oYG91uspSzlgt498$m(*o7>& zucp~>z!r4ve~&3UCk^HwgN03mdB^TGRI!Acz8S+cG}c$M^?rmTEozTn|E6ysfe#~R zpOP|f{Ar|74hzf*Uh%|K)@U&8cr*H5_|8=sv3xG@#9-cju`wucYQ5&~et8v@nUX=W z_}2=9QL-W0pIy=E!R&aPcYNFZ{Z~j$^;A5eyir{v&&{tiiJr(f^zbEzQb+~Mz%S04 z;CBgM*Pax0xICS)qq)aowf&u>{TY`M0bv;~|6*Na4@1xLg4+G5eAZg>I2af#5nD_i zl<#>F=mn;KN+nM9o|T=jiW-D!aI>8&GQoRik-5U7}pVkq|rkLM)9`a4es zKi&i={-ukQ+h-tH#`zU{f^%ib0o#!4z?J0f(I0ch>OpoXPLZNx$G*R=asyGnEX6y@ zKcCAnfJp2etnIJwXLquOKQc=b)uSUO8Ql6AI9lVw&moPa;1 z-@WRK_Go*_tTGvwiaGE=q$;>%<3m(&6;oFr!U{`vyWE z1XuR=f~j9UJTw+8opb#qTLpU~dAnAUfEXB*e2*gVjo3InBM}ztjD1HuchRyms6B!z zR!PY_BGS6^q(L}ffY>A@vG)|S1h-dZgS<(wN88{CLPeZhOjM(#sFq<<-*wc(tmIWc zdbW_fC|%`_&eoJ&DP#IcXCO}3q+Gw4F2=QG>} zNrF$ccCatYS^Lf5q4>U^T@QO&61lLllGc6t0kW}F@Rk$|yxba97Y)FFw2H>l7OC9= z0>`RjIe-&*R#qRu4l3s^WLL>R`8}k0NKiW0eczNYZ{ElCWxX{x!iq4KxcInrfvYl) zx_FwUBx)KBs0O^G2D+o8KZy{a4hL7#BAa5%uu*4Vq4C?J ztAt%ULpisV_yIDuz=T1BObUDQf&3_go|^L8Z3=FwIz>EjzM&m#Y(H$A1|p8{H~SRK zqspHAGDvA5kAUk$L#>aqT%&ye5{Scz2B2uk6qyIsxeYByp>L_N0H~hR~5i?|r(fPDjgcsXDWDZ6$xrzd8zEW{-*KrrY%Gf(;+a*V(24meq0D)bI zFgsF}k58FpVs-{;_5C9q%JXYKp2 zU%fHT!(fY3h{mQ{^PxxEnRa4tBMCt7yj zKuyBg;aq8UBPk!3Y~UYo(9g?+oR}hiOD%YTP#RvVK3CFChBOOnOEi&Y2UIzEE>Ko@ zAqp%+D?;-rAL)I6BcT4Z98pn}Ozv}{TtelQ5nQc9B1)NAS7NKxYIj?CtM~>k%goyk zeI&&0M?XvpresT$1Ahkl9LZ*}588&Sp2%WG&x{`JKB_xykN>`@W@b#HLCn*GDZ}_M zA7s?-MzkGTM(Lg$BN^`_7+4d@Pk}(U_Zx4%5HKvQ7#QP>+tSmhq{&58q!VR8X-5hC zI3*hU8F0tM=ZS5U$|G0?TL}DlZmRXpvUYCCbWKHUkGj{k;AIjw*&)obZ z@HLLOlszVN$y9#GG4PL-Yj)JK(nt#b0ke+6-Gt+5^R(X2pT8EORuKTcln^07wGDli zJgtfU&2%*tXFYeOS8)$8I6Zi&$S5VhAjMU23CHd_qqnfl#IF%q8c_Oy2opM6PGu}y z^vF#M3DPW_4G(K8Chmx-Tj53g08<`~5jzEbYs=9OW_o3<=5YeSNC~gCKH0q&AYT1F z7t2|LWm{#OdJnOIqrjNjwjw)R*9SmAAL*&@#%k&h_xN z=*UtF|Ml?1&4BDgLWTL~_pm4n5;>;jna++MWD0Zya}|-66yTQE6W^^u4^d>%NY@7# zL|m>pG3C*8qya3~e3^Ka#K87sVr@zxWAX&hDM*-^=spyBqw;E&wW(aR6z_8265J(j z30f=ZF;@;H-k*PTuoz-E?8|YtxXZ;Aq>0dlkrIhB&)eX9KXseK77Mb&Cs`x@(e~}D z*zk)CFlVI88eYL>kJ$LUE7Q+c16Eh(&@PXj>}wjJE;vZCDx z;yeG)J+(xZ6lg|0mN57eSFmN8inixw(hXL!<>u%+~5ka}jTy|BOc@vMJQl|F)sPfLar4!cL zt0R`x_`}VDqb5GnT<$W+JgT;s`Z$Qk+IbBmlOCdF_pnfzBYH1|-U}#u(@WqwJuBMT zk@CJ&!uGRQi+bUy(?b3Tp{a+`hJTi%V2?SwN*_f)sOLW+yiGy@!;$k#jKWg@D;!&rv*cnnR+a*N#eWrmIs zwrGozvyYrFZc11d%B0m8k}})}|4hhaK>`RC1T6rgv}V;-2p9`EzD@!+03>!N+S|S~ z%?UQ|7dgIg6DVq$%ot{;gi%u3w#KtAr_-uS$Fy+y^T#J#a^{6zP$_3#$4d|nSU{g% zDJh7LWv~!iNn{(@W=LCnt|1;Vdh!l(v@=vd(-A9SUEGx#WB9J4R$jCfWP0{pEn{<%{+tKqFE;QjO zq1tH~I4askG?qJMP_6kwwGl|K5PBQcvH!)ch4q$wl_87-q`&@+NobG^Pr|nO+n_t!dz6JJ83AacViQ5H+KjCXcQtIML_-4ZjPNb!kFj95D7r5J zD}=qQ^WQ-;H!|%Ni_AeeW-kcBC4Rn({rWVu_f~3suC5aSoW6z2e)A-4H~1Cpm2&4# z(LG_ZjNrOxllIWLt$uBYwO3babkEVhy`smhah$JYN2%)!bWSfqKGqYtP`hi`@m3t) zCGPV1hu0%`2CrA48RU$H99a10QL#12;GWCq8vBRxVU(k1};_CR>{?WRg z`R@(nPo>LN*%@*LZD`4ih!&K$82v=2H~T5^PYcjEC$4|GKK0|L28pQCF30FZ0?;}EzYpS~E zB_X)0UcX+a+=N#u9IhXP-^Toe-i=AK(yw;o$Eze?wwU%{}eeGaKN^E@7U)3T#k|!~O*s}U=SYKUMNdFd}Wa{Mfk#>+CGyVDQV52P- z{ef}(TdvY7R{giHL}bPXJ>(*Qaqa_0Llf4nSC}5yBe&?vMK}P14*fCp=2(OIgP zVLEmc_Y%zMMk$9Xj2I7F&|crnriB_Y#!2MOajqUi*icy9PN7UwBow&TIF|#+Pn`FdPt|u}EeWBIBn(TR3GN6xB&Sh+7YC%!w}O zpe=u9PXM>eS4YUEMl8SO2MB|IN$=f@Q_H%sc;{818_*)8#G@f4)e27I)b7u6&b zicqLWfl#d&OhXYzmEW!tC$v691H-n6ncwKzUwb^ySkkX2OFgtSj`eP>`eckC3h@B< zcplHgY{`xms@3w@{Qd6}-LYt>r|zpc42q;>yf4-2HiIJPlb7qf7wAD~{DRH4I(`_w zJ-()_P9e9A*PTJa#=(z?xWLn2)#Z4aQ`R3nySfez*e{y%ImfnA<9SvY3x1ygb1tmle=}fW`_1H`5 zY>v2SXw&kF40Jtm;G0lG5E1Ks#sAZn^lAtB7eB;@JM}rvBashQC7yUX^|s$Wzd<|+ zbYDIUu*#c!-S1fw4dM#Grn!*dbyZi{q7>7lB%eC8nEYPyW$suMXR@Bb$+-evP6r87 z!o4Wqi){w-xg#cHsBVFAX6`!GM-;JsXSv&09v3Xzw?(Tn)o<@B0Han;3dx03MlXZx zJQrTw9V$q?t@Y z^$VL3{@;&H{s@{?G;Y2}|4tAczbex+ihaB&p5~;;?)3Y!I120HKE=x?uj%?yj&$Ei z*PqFMt*1PGj_NpDNuWr$AW-hCv|Cx;eG7m{LMF>qbWGy2@GrYLpI24771>3Y^hoMN zK#Oa;51-HCR;ZN)%LGq)Na+p^6)sEzP&Kv~-AVV%P529xy z)yXAk(ZX>b4rP@R>7sWY3@0QkaUxJ^n=(iF}fW-@o@ByG$Dkg>VF` z40o_afk?b6OgkOz$tC*L1WykBo3G3@&U* z%(f0r`aycq2wF9Z^mr0E(3{CV2`}yrmDDawpeiZ<*-JLEwtOci7s8dl>1+PobIKBk z0eI`gH1GG-(83fwLHX7F?wHT8!0i*U;2YAW>fw?2rTX3E2;h90 z3AH92QT9bfU5P!E>o@&NY|cMxRQ=CtiZ|5yF(h&4?d<$6aV9@cpT&|tmwHkIx{I5> zMe0Q*NN5sr!QNxihD$FCSP>`F1z$zjgcPP#M@4mu5j$s>B4sIYxbI@F!8xTFQ$2sv zGHNxy|N74N{X-a-qasT9Ls1>9O3F%we9#^9<;+86W zp|SJDSyJriS<_ggimL8`YlEhpanw3#7uI4xPtpxPG4odffY%{u0gtuQ$}r}(9zp=? zGnH4qp%qfOX+q^>_N7|4o7z6)NNP{HZo#`QaP3YS*q6%sJmR5z`>JX(md8>0cmuav z?nChj9uN1-!8$j9!u{L9A-J1YU05O(DQBr2Dl=$ZZ2;lo^qIc=gU|#~wY?bR(*Ddd zM3K_Kgg;35fKCH#3aAlbDMooMySa6Gi18^*e zauQIu4&wG8g&z>p>wLIe+hibW-j{@MKETy{JG`^kg_91d2h3+^F08|E($n9m*jL}K zu{)OSo2OElxfJ$bIHNHIvMpI%0(hSC7^erVWPv!vt=#o5aFuaiQ3+|4x<$?jUNWX3 zis#!~lC&`N`{6At$~@=(A5$EJg+U&)GLLlf-k@;CC+P(ELIt9x5jMSOL}qD!0HT{v zWQZmxCdG>??ce)3^(LJD2@?C6 z_~pDRcIk&zb{uY6D^S^x*c24wK|@LIO#k;$2TWPZTbt>OV;`3+Va5FN>)TV?v53ew zr=I@5S0ex}EI1y3WJC(33V?|`R;td{-e#HG2+fu2+9hD`K)bxCOX8r|h3!8qsmj?s zb7QwP^FF>~`I;hyvfz)Z(8K1~ZdmECsOIaH=-CJIKg`d^YG@KDO**N%0THM%2;3So za=De5q;ZZ4Ly7mWrqNqJ6k0aLjCtx^mico{dX`?mN>qT!s+OOyZ%I)Sgai%|HB zJY`P1_7o~-&`+?ZC8FP%R}=!he7p?S@I+UUASYnAUDZCq*1t`|9Z+RXuWo?>rkEJ1cf5ym?5A zP?F;ZgEg*FWv(a$0x6fdP?Hd{C{;JQz*9^Z`KA?c6`j3!Hh|PZWeH(jKYGw%JBGDO zx%mT+rNCu}BMvLc?=PizSK5_uz1hRQO(6mqk)@BnHR*T=1p(0PA81$ z5T(ZVo2VjX&8_{<{90!{zvamjc2}B3qRrti;swqY%1|r;ZqGBzD+I>GeF@r*)(m%i zGR7_o@tp)R6f0no#KeUuXqO5( z93f)|TWf6iBS004f7wpY*@PnHnd&SATXJZ%zAr)bT-48l4B`N07OY|8o_ilu1N-(k?=2cu@R`>U$@OS^60jE64TPCk6STk&4c z+9l7KmHEnS_%Gz3P(32DS9&C9`ZM~5i%S&Tck7kz2N9**AO{xZSsu|Bi5v=u6tl1vT+n15NOEbqi z4^tFuWOn=-HH6L|q`S>j7$1t0@?3nNo;l3qA-u8^+PvF?VBKy_HgMc%TG-fm^-Ff| zQ`%Ne7sfi0qBv5FY?(YIY+RzxoH7Y(SlwE(o3Q8t$NSKd_arQ4FFA`*ZT?EAy3l^d zuQ*|8jx(*&ymjb^#-1+OLuxIb>=)Lvb7ps;u(G$R0QTpCH~uh6q)@EnGsrDP2K7=0-XdXm9?y`So#IYTX4^jg~kZUA?)1(k{dqj`yzeY@cF+zP(c)&k7(`-i^ z6f&o*h%al5LUmsnlAk^8=;7o&R@ezAzdU66%g6m>eW!$w3)odS)m#RsT_ z{mHVBm9_eU8VnLc6Tkoz&&>3?m^?eQnrf9fe4(CZO~JSqrvNIBNuurNMA0Y zwt5xOjHk;qeN9mok!rF?RS0t9NQ31yqPXj)i0W=s1RwEaQ7T-IG)Sr*sgaZkZMd#&m7cgQ_`;`7U_=SDxyPa?C^02ly{O3ouCJuJLC zDg#ow6rq;Y#Qxz!y7>%Z?W_n&gZirUaioyTKYY*0#pi(qYpN-H8;?q_YvQ2J zq;2E%T#M%U#K=Wx%@*UO)UU-$B*>81BKxW*ciiXgDN0;ON&tz1VWoN33x9WXG0@rr z>5@LQ@a0GX>Du&MS{8C`fTh+p7DLCi{nK(!);aEnO6^1RHwij|@Ob(;_?M&j#!8WX^ts*H2n(=6|4uv9q&(KDDZwJLaMZls{=CWiNdx$3i+XLHsF z!Knns?2$aHuo?Agp6dO1?FTC5COb4FlCNwQ_&FcM%`7U_$lW#48w`?njivibHw`Jy2xYGb~Dfm}Jr0$CN>Y}@~dtFgGW zeSxR|nGv-h9sJvT*Y)djkF+q(<5X_HyiWw;2y4>Np^kau`@8E&5>q^+MG#p=D#QUL zx1)wrIlY|)_LuCy!j#d_kGzme(>IdNoNuRJ-q7jR(bo^ncqO9x_6{$0ny@@?<0+v| zL_(g>Z+L$~;&VV_5VwtF>CDbdf8X%+jGtbR+Kk~hhBJh z;hZb3NyM?(>ZMxnI2!kIcWpeWTvl zH3Y%l^tldl&G(O(bqadhKkIi|uyIX6n_Z(dg^fSX*sg!YEh>>KtIO=QT@xDb7w&Z~ zeEEt+kCGfuswdUIsXb>72=13k6YEW08{?>sz~wyAlKlE_A}@i>o^MXjz^Un=t zdMVOcdXkP${s}BzFuS|)t1133 z-aYmvBY(C{&+hk$&$nt!?m^6>Q`@Io837NtSHZ+p@jCliDUMqL_TC1o*}7un^`Aq` z#e5?0#`z*eiagtBZ5pvJFFxBkPIB@KCM1);|Q9rsk+alaGSJ? z>KzEU?eZQWD{VU>FQ63PoLELiO_ftGw|Z@{l-Nf7Mk*eduTMiBct?&9cT3w{DTX(n z&rGac^V2zwiiCnhkMV}^NM|AQS$}EZKMmB9!TQT5i%+TIYY2X}7*tF@2??~wY%4%x z_c3WkpPJh6tF^c+9F+f8xDwanxZ2ms%nK0_Da@=6ukCx4sN^}jbaNt{0Zs_aHrgUZ zk!9&f@o~|oF{313={o_`*K9-Y8agg6^$}{ScOQLxIx>Nf;%v2km)(6!UE%F1tF#e8 zt$kMa!7cbpruRLD53WFuM>sxalk5%@zbam7*L#tVZt#B0$g zc2p>AAAcOCh6Y)os@wF7em=R_uru|V{UsglpjcZHXm`48?N(e4CZOy~_jLUp66iZ4 zW?)&1lV_$4#C9=RD!tQm?~4eH{}>e^+FZzaG57yRJ9snbXcQ%AJ28%+st3nSUQt<6Px&MS(V`?YRq)Lt6TXiiNmoVGAN zZ#6Af%#(;a;c9p|6lUI=fxP5kB9WF_CZ$nbnz+|NZ(GU$@(uOtp?(xSV$4(aAJu~e zn$fF)^&jt;iU+G1PaeIFqw0~mf5SWrzfYOuwD?3)KHRC$X`VzNU22PauIo(td?Sd@ zgH*`L<99?8b2xiWoj@G9{UBrkg8pU5Q5%&Man%0IArX9A?9RUdy5ztv)h*kN86{FV z%Vyak$v%cCIRR(!2>C)<$rD%8`$CN7hMHzlTj87Z+~Hu_wYBayQXC5C$kyfGbEmLJ zi#>(2)f(KKE#sdYJtu$qX}m5YeLE6hBbKh073)SQIT@h`lUoN)-FvyJRHym5T1F#$ z@1{pQKzY5LzbliKr=_4NWq-)$Oq*6^Bw*kDbnLM$Yq@m$h2i~})}@fM>Gyx0#K6Y< z|M~YN%*ro~nt6mHH>HhP>D2kHO1XS!xbLe+&`aF<5=!n_>CyYM^+?++llc>sPNURk zh7wKboRsD`;iW&iUV#ns_WH@wac7sk9A-hB{IPNm&yF#<0iU%5r0jJxIKA@S33FdF z-esy6{&YN*a1ouZKmctKp5#p1KCMCyE2HC%Gw|r2_f|Z%BVrl#+VmB?Ou9@`o_?bw zve~AOJRR*3wtMv^ptVM%G9w4mLF4nxvIBDL`JA+eMO^AxY2VS~pQ5kDesO~wIoy9I zb1$t?(<$CGAQ?%>NQws6$i6S7uODCDsytPWsTiDBnJwo}ka_XCVlSeH>YYQTheLV? zFX?LM2eW4=r|&K?&{^(?5LNOo*>MrT)MdAi4u=|#)YrOx$Lb&T%=yYRJ8gzH(97FV ztf>%8HB+NVxJi?4MX^vaM{wU~KH}(pcvq3b>k+FqK|#mnIFKrZd?9M1{d~4;z4c=CiEG2_Zqci8BF&rT#V=;peLj+qgxmd@J@)S-jzHf@8?>0L zN&6b^CG)ZtILghDIO$fcPW<@%fa^yo$MTk;h;V!W!^$p4>W6*3GQ}X{*W<*{a{cAV zFV|iC3emSX$Hu1ms9(xZMp;Zt3EI7>OIjAJ0Xwcs5H6sI*Xi-9%DQ7n!Sm!zAIgl- zuUQ1|0hg4*LX|A*JI@Li*mEL&FD3UpM}U4RTrpq$@y66-gYmLXQ`fyk&Kz8pi9d~n z$`zQzEebTy4zs$tiKBEK9m*RUMwmwK_DJX5bTdISKC0pxRyk2&s$fM2uIYqoAjg4E zO66O-K8Ol(`{|e1{+AM(2EvaLLfk8tM7k?|Jd_<Q|%7UqmM5`*6FzDQhKwQe?&}JeIFCZyQjuW2c_U%Sb9aLCAJw1br8qYg= zDuAtywiupe0{i!~8z#~1SpFon$nLjILmbJmTBj-WvJa@b0wN%OX!7|O64FPX)Xha> zkEAl{F|C(VWq0B{HGbvK4c{$LSdFG$3v9aWSk6h-a9{175J}P_EnThD>z0W^ztIzZbuCe-JfYh z*_)YpY@Hn)Xp_Hs@}-&7S2X2$ZK>@RA9HoG@6mGk{&vx~yLRpa~GY}ERm(_Ta4w1WBzPOtw4^(uZRAqj`9#>{E)4ESFPmO2@xO+3S!3JHkxpP7! z6i~k%>LQls=lE3+W^xF;(dec5tDRRG?DnZ@#Knz7y9RIR`Sb#K#t$-+&rxK!%9O@t zY;yQT(dBN4)ouKD?R|m>)Yh^~@1MBJ!7CEyR-J&7;256`)hYjbv*c>D9T%1rb;zjz zQoB}u!AoYP5w15}dFS^{^~4^ln;fe@)D4~c2$)Gf?Hc}Gnx|ooVeg?&VR{{263|^G zZa;N*e!8CP*8ctH*B?oIclN1+9RsK5beKR2cOgc`Z-sVTdDM&U7|Jn_NAkZ^Wg$?+ zUaFHASCTw<@cqf8GflIQE9%on2X+F;Mn58*WHT!{BI#P!o(%WE*R5Nxx*`f@-4XPJ z#8~JKRZfOK%$3rYLv`ebdF$?x26n}j9&x4N09nxE0&A!xGtYdrFl^N}|Fz5Q;_4?# zKEqLyg7Bqz-8=fC1T*J~!E(W`7iPOp-SzRgF7X6OyuwMv)#CLiMtaU)-^t~=SNRJ^eb}j zzy0xwxyN^c&-t!<1up#Adzb|We=kLG@ICXi>4`qIqB7^kRSg`Ev(R4DQ$5HVt+EUf z-*~COMh^oTvf6Z}-!dPwK- zm3rKq(WN=l#3vFd23Be4JE~XQFC`wp-Atl47%LYl?sN4?JnR(sxRVznmg;Sa|IHj| zNU0wFJ&GhepIJ;Hj{U52-QAuw>S)z-w4O0tt1g;GLW=aE&;n~V-Bu;1df}m$%UP=M zfZde2VVJaBOQLFfrSXn74J!#GFafs1M*BtGF56%S=(|WpGkY_O>PyZ+k>o18ZJK-} z+cVxt?Jd?SHRbPft3*od{tJ@1X);>iKbB_|2ayf*mucz6R?4Ao^sy#C4DJ+-uCRqiu<`8$j{_LH2iCZZAa>-4}@cB zeg_?55sxC{cw#mSGTUfHBg!Hb^8bi!-r=yL)KQon1-+YV4;GCL^fZ%t?L7doK1zi?KCZjX&7 zjDx~pYblK3U^;S~w10NjBUeZ!6Cn9^8b8^HFa6o%1ZK^*~!tFNPkC#;-2?`{`bE; zto=34@|(2h6YY}0={dqPjEOGz=x(B|z`yzEPlvY^tAlKDUDU4z3gvJqP5 zTZ)hrD$8;{(LA3t0IS1ade%_PwD;gcQbpa>r5;Z2f*(=eBPtD!B-#C>Lc>?TB}j;0 z@;qO=%t}5AXcSkYVCq>MnD9|8=1mNvy3P2Mog*_4e8*YncEzGuKOWT@2lwu8G-g~F z{Sx^j{3q{m_Pn;>8#Y;Hd(My9oIg{4QXHmPyN3dP~adnFnk4};oINx&$}MK z=o(hPYWDncTA@pCegsN%0*w2?u4W3m8y>CB73;jjGzpQg(z!{W)c6LIZ{6e6&$TP) z`}RDNB22>@d;7irNu>0z=AyC}X|tR@4v!j1JIn2*%AdD(&vI$-)z^%8v2VA0d7No1 zn&)UsBv?s6A+{iWl;A!y$|ZhWw}2s<2}0a1GzZi*o1F@`2%A6nMyFIl#ASDZT=h(A z`w>B9Bs+5TN8V|!X| zNYDB{85dO-p&Js!NbU7x>&V+Hik3v}2wlBvD%VQffecQIzO|Ov-CTJ=64=7xHV>S9 ztXQfndfZAII|O@rwEL98m-ZQlHQ7kO_KDJS5-lEY8H?N)qb4pejxnu1`8-hE62L!q z8ui7jNKRqLR_j}daH*4)q>)d>W{uJ7xg>93^mSZzJv--WVJ|C#6vI(C^*tp62Q%TI z#ShNN$GpO?Ql3yAeyjgj*Oeq!sW|5*YW~&Qg5<4X6sylPP^RY6{+Lq$jnl=YkZRFM z&BwmED2^kLw zxBc@EFGpBt4mJvx&5Bn?6s?L%6Q|a0>t*&o5~2{q_U3)RJGi`Z^*iiKZjxm6!&rpi z2k9Is5U7~$wA3Wjm1~YUEbkWT5O<=*N;#DKh_QUk zHUgqiFp3E$(%M6XPil@sgXQ(_^S=c8=pdcn%e;wmPWh>kb37m1-Kt_l@o19J`i_)z zy)(BFM*Og)kVYiDM`DqGkyQGJbNuS@W{M3=Q5b`df($WQmgP#`vmduxEMS2JWyDr& zkdda|EL?4R^;@*3+!a2$tnal511DvFDyfQY1oEQCa!!+f?;KH8{To_QG{7giLSoMz zYu2)PB^2R*=bAp0I@n(MtdoyT>h-aqe_k|+AJ_LR3!!nmQS}XPsJ6ge$s zisFYS0;``PT=V;-w<*JJ84POwVf%aOK&EXUX&U%y@4}QdL&^4$0uhUWJ6BPTN>|<2 z`bGe*Pms2H*gN{igxuO z`(HAuC*(@oxnyf;cj_z0Wmg0ELzK{VYO6w7>Y1(|GQl zwOpy4`cU=Zpmb~LYbN$3WDE*+o%^h8Xc)l8R_%VtgT9K?iwW6|EHPNQoHhMUOj|$M ztx!JgU*wu1iL9&^0~!3b$ke_R$NcAYxU6i|+N(whT5%x@zY5?a5(n?Bo`EZ>Hl68% zUXIj%25b^T*$ul}tJ~ItLe~!jIi8RBKeqM!0#rfPS$q-d7+9LtcZj+Tv+}fv>l@U@9VF7 zeozdCYp?rsL?lO$_SsH`xL!hH+gpkF$&=*QP2+p8by4I0*4$4Mk;?0bDetTDBUc{k z9ti0@Z(+0JsDJb*<$C<`+B}DQCc1Hx|7nF$e+v(1WJQ<$y76o=Lv5TuR)p~4+#mm!``czGWA`?Zn$%#e*SZb0bc~k z|MjKmI5cu@_EcS5PY)6YllDUWEMRya?4Yg9v1*3MAsR#+4h9^3O|d#95&;7a z+GMC}IczhKh=t9Gxfp&A6AoEXMja|dcQT1yI=s0|3UFT-+&ZSKiy~9ya7kcc{=}?t z>(MO4nZozm!*G(7&gck_p*`3jKs!^Jwac%$1X|;RyjvBt*=uXpFn00|pxTx6XYYC1 zV>K4b3?yLq?MNjogg5{Dc*|8NUQTZYbokKaVPZ_7KoHpFa09}SL%@AyZ7Dfk3G(39 zZSwn(pSpX5zaL-6_N;93pJdV_!G%@_MPLs}TT{MIR<5tN(F_gUB+8wPO%GRCm4L~8?H+5(W zWc`_BzKJ%A3gIP!rN`Y%M6bLPL*9Kt!Q<_YXL*ioI$zCu#iUOmXMSQ;EXr7+(V;1T zEG1N|xYE`sIJ;I>I3!>WTpQ|_0IUt{hF~&2{_G*)SrWqOEk6xgsl0nI%b2UZvGb4m z{enA6KUS!w2aAX|SA}AnY#u}5cG0fhq7s9mH`W39Ss)MuuWAp#f9~L{nPAW2$rO5R z$=cHA_j1Cb5Hnyv^ix0sbyYO4GdT==0C3Rm7M^}u?_}f<5cB}3?>alFL=Zmcc6l}q zw8G9Q2Rf#kABPFFR~TzuLSJI-ipKXRt9otSC$F7KO@{&oRi&NoeqW3gTGl$M%5^0a z8QT1JTY2Bo_NPDZ9B|RMFN^w3#pO542M?GA>`fvQeQvnpuXI}j$c>^LrnEUB5}M$otHcHFsAx}_vectgsHO?71vUm*zaBSEyCBx@OK z_dsY+>?Z}9u-dJf{0uY%pnVt^7T_n$V;O%gI%uIIks8U^6As5Pyr;S^coM@)Cpfz) z@HSFbziC&V@mW*Tw`mA_gpy~3M`F!GHwSWpLR1TmqCixbU&G}c@jkhD?J{5J^#{WDuJskfMxw8hluRPXF| z?Wi$77z0|_6=t9r`EOl(!~3!vlg>e#Lfg2DIWrhpM8*Y!0tnHfG`*vgoJs6w2w5@l z<)aK>(y*V=#sHM7u+b8E^jB8114C&dnfPkBfmL;6{MD0@PJ04D+;Pq5SRY+?zs#c8 z3e#r`Zg+=Brk4lc5C=O_-WGcwr=MzRDGRM3Vr94FTeEKe<_RFEC2f@SC(J@0sE$Q* zl^#=C|KxG;+eSD1gmcE$ajM^OEJ}~tbe=R>HQ3FtUv9^T^5gu|UB&AMxIbi2OuE@9 z|4Z6Y6aD?d;@jio&`T6;l$2Vf;MS=b#w+r1+W9zPInpP@cg<&OZ~vI_+_waI`<69< z`h5=dqoMG>)w8S`bd#TkuQQZ_a$j+}BAomuI2$%Txk!=+Zxq$8$h!r7I6+ZNDh1K@ z#VCwDYd$uL@10i`@oP=Mdia=kGOx&Val9=w`C4b&D`EYh>g{bE#|lm_v^MHc21<*T zX~T?_kS(bJ*3u-*SgmTorZ`Ew)8|L{Uaq?RJ~9bY^lBwHnaN|C@Zs;T)(rg`0)Ch_ zuF}V<^|2l+@@|G=8Sr78aqJqE#D{v};WAbZ4?o`%-L;x3U`$r{J#&8b`b&Jdq9ze? z=a@~HC-lNP_}cTHjFEx ztV4_Qe8+wGT#?6;AtMI8Tmn=M#Y{i=>^Q#ctw`=kCxIKDWxGfp2CWDVUZL*dft*?V zqt;gq2AY|3vw1R(?bVR~E}9gxzS;LojY)-0ZxTC|DPGwZ_)>QI_9*^M-c%Y->ihujmDl!EzzxbVMb953fx<6Li|(s8D$DmJ+1B1NjpC4nZf zIsYKzGe39KHzvG(%+^1U;|b)hH4l=8psG|~+JH~A@!i1Lyw9v&{!><#e;gVW>ejL3 zE%JslDSW(Rl_4__w9>1S*cAt9`vCJKuDL#zY*kB zHTmK#VQM~FOuVWSRRPi1;GlM?lAcFJ>}E{`w6w#ME8m PqOO>zI;j6cn&>i69? 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:K0N5 zs`9oIt;_hD0Qd;9gPL5wvYL|yY$<0bA9T68C)#veGiBuAwa)Px^p?4_8m_nQ5Ghzt zsuA@=Zm#+0QyrMrzxj8rB3N1NLEeoodDvPnEKI5E4*zljAgY7deB}n;Y*VqTD_Fkd z-T3tbV&>3(w>H$hvq0@~lNBM-Ws8NO_RMY0x|V6JF&W0PPug3%2yMr70J|3hG?Ol@ zXD>T}Xt97SEdms~X;%{fFt0N^uT%I#sC%)R*s+NnOC+9&9&TEF^S2?Q@Ynk7f7MRH zYO%1-Wq2SMqak6yr{>y=#y=O>K>#_qG=Aq-c6E@e&L5b!L7M=6 z5d`XYh_S3t&SsT6yfVNGP6S+aRJ4OTRGb#FT_mxCm%J?;-xog{rbU#3bP94}Z&r879P@&aS6vm4a5IIv1%n8pNS% z^IIX5_5$>$vp+IqN*;0(;&(Cj1y;sD_%;5?-~W_RI65@N(%7jio`@zaqsQbr&788UC zD?{~V9Oj<9aQy%a<7$_1vjN>Lsn(AwxHdPJ8~Uy)`QLW~;HAJ!Lsj&z70DSHyk7@` zz5qrnZoTAd`Q{q!9{F&S_3&RDx570)_t}pCLgH%ZOEail-1008Vg_Cw=^8J}%*R1O zsU6Z`NCY?)%hv_ZS=L~C;JNy7*(Qs>*GgDYk-N_8Naf=*&CPb*l}ob?=5B5G~zOnHJG!(HOi1-p;^c)A30Vto8Bu z?Q^VxX^9qH1j)$%(Suwghn!^WCf%1N+BD=#&WUbz0Ir-PsBTCMSR#>d^Tu1?Ok;!H zaHBXNp<7wosn$Briu*Z2wxuUF?Jv<3a1t0oZN+WE+t}$BYA&0W=^!N-KH8ugOI@GCJsoVcg5W?hX^>D^$LA3N>q6x zPk>=|3x6NIftUx_l^VsTAv%hXl5-B-@C0avttI;Si@Y@fT^0;Bx-c0E?;x{g7dP&gg|F%8*aUP`^VseCNgB+x=0n;g|6W>`m=^qdbW+^mq^TqKi_WeF zPy?*B4F$7RUs!bktc`hL)kF(5JFr5m$wSPi)1{IQVlV4%^Olj?O^y|4--ECAYg%&A zyB~jg@lSEtj)I@UFNZnH>P&D4ineo9ctB~iCb~zaQ)l1fPrYZLXs=>di*#oV#1h=@ zX7zsHdw6z#N4*Ox!TLTY%kL2C2Dh|!M+%0Tp?+^*?7Qx6+L;I-PJCsEQNI*AtJEmo zPGK$u`4Yr@ASeThX9$rS8;R6fwMm$Rc%cho^`L9il`dEX?%jeIo*mu+%32%tEsN;bZ>uG%KDWd*nfPheh@AQcKh)SMV|% zQO7v~1TMMBPz8p-{9ZPn!miw{PjMU(Ka9|m4tKs`F>Y6h#M2twCL7l&FJ#24ssW>ygUaSr39V^!lI8Ub9U@?UO zxF|AKz%%y`@JxAiW;-^Hom-Zr5OzEgOucJ~30gy&cZ}MnrnoJq9U|oa>tm)m($W4~ zjX9h`FL)8y>$-nBD9SJw1Hlk;x?a|1^u6U5Q?I%~Q;TU2L6|IeHg{mmr_v1GYvj{X z<%=E2`11O5Ry5@1SgQj{%&wY0C>t7u7I$s#6HBe|4<&XA!rD3%z-Y7nNvoU;RviBA zLN=#wT}F4NM7-&V0Yn0C^WMzslIP&id*Ht=K%E(+L;9EqmMYO~k09B-K?Cx}8#D+< zQHCN|@zge2RviE}8}MAWyupF_Q3lH}0mYBRHr4_$pSo|NjDRA#KS7Pbc5ND5K7%(t z;N*q`8X%3Uq`uq%p{@w;r$k3ZC ztlfN{5ID?ySVG!DfKUT~gy@=FxFf}b&bqtIYg4wVQ0OydQ=lNRm-;ws?vKJ<{~G@; z%{I&e#;P+5+ZBYU9<#O$2)ohWO0Zsc>42i3$u8MCnIcNdcFI`lDK1^0sQ!oSf$-K)_nJNH;)dM7@eXKB6FzO36 z@bxmG*0dQ(Vbcb;{sTj_p!g~pna_vftObIFb(6-4RrJY`fsz~GW3ye)Co@5vYughWJVn$bmJGf(0AOd|#mawe zzr4hpJig+mr-a=Y#cZnq(jNS$0lAtAI&i+a7!Pg>4Z{0?ZAL@gj1BmUwUMAKL*MAr z43J*FQRsDMjym30?vjr=a}O95&r{_ImrP9MlHgW3ueU{lfh<^P+J6LtYs}RT&ruZI zZ#D5Tj?98DRoB3SUfWF1D$TpO=Se?(h=*Z5T~0AyM+3u%EZgqEh4A914|ZVj-6*1kP(JR8rX;{^4EX*e zZ4L&6gOwptapwi-KMTqRsAXGZaZ4ya>L&TE$8KV?8$aWSCQC;pIxiwf>293&mWDM-HFJdAc*U*((a7$m2xAK_xVY)l6<`t%F$aXKE}Z#g0xO)* z#g@j8_%G`x-s-ST)UH9FAYxZFmer~yJnF8Yx?o^->n=q*yvX5O_m{o zF#-sn=Qrn`dYMTAz~yaj;6tdr^-XdD>_&j$&(hz43|JEY*z(+)8VD2(Jw!-sw6Ck# zZQETAj+KKDbvHU{=KO8ZK_D2yx89qrtnC2W`AuE={oD=^y>t>kdsYqoGH+vLwIc zx$Wscd>?jW+S#A4rzj`zNgD@UUm5rLv>GfY4Cq>zFq~5apFTshi+dD#mMo36HmJ&d_IqL!_3#+W7ulxD$#_q$8T?!hWyQ1@3?*IY_h2XQ@+7wek74P zwyPx0#x$!j>9+TcxZfc>^I1XCx|bCf-AU2wwMlD7Fio5ze^>GM3D}L_pT$9#jB;t6 z4@Pou!(jRei@&$5W_U)`%(kDuzowLxk$bE^!eVQw!%)XR@|DgPP~hB|e=jXR!hGtl zw&mUOjUGI$?WQG(RKEYsc8i>M-exmH z|6nYg!%uhFbHIj?WI6Np+6xyw*QIWp`adZA^!skHGcDmM+4k?X6X&#JeQ43`#fF`j z^xj=JCm!E~4(2zwy~TWf`6_(jk+AJh^5GYsK@RS!79Ob}s0GNl@|& zbj$T?8{Yq&Iv3Bdj zIPL7RgR4e9F_CHmEKBdL-}83j=G_f@zymYxozmM(&Hdn3E{%8ExpA`J{L7Dn=i2l- z%jK*k3tajVN9g%wBx@ZWm7CG`H8+p1bvju8-<{kWBeI_U72mGS?_09OHE~taTsME= z{{~#zO=j`u9nUvmpwBO#^J5krnR|HGZge)V#!3alC?@sW@sQKZ zIm5p*ua$A)wjN{MQI?>;{BG`A5Z`7qpzcfCGEwkv#Jl@@w5($Xjx71oeExcMWajmO z_z$1xLB}7KO?kbkXZBarfFjImt#WLu+-@NMNYxQys%$tjtz zs`f9TBMjmj*efCB8A^`tw76fu zlo+FGts}y@0)Dj1W(c)*m@(3Eccn4tpvnwl>v}Ru{&??K9RTbTH@+n8 zmruCM8Wk7s`KPvF87N*G@&wwPvdF&WS(z451H==bxvaPSO5G-+1B10<^8r})&11VN z0*2z5`l?KFV@=)69s~8)vs&&I7eYKs!l^%2j4W*U>N-7fm&n0(Zmbkz}?26k<}A1KTLU_*{=wj+AheH1-7cEu#YCV47Bs2V2b?@ zzE&YCs61SPLA_KhHDbm}ERz1;KAkQ3NzrcFr77!vHiA*0mRxe2L1S24Rie9WH($)q zbvEeBnc^iaib5ygSrEY8HUSi$th z&xKX3L^P;6r%c74NdF>L35{VKLp{TRrSrblIEiMBnEdCR^?k69@C?ypbc?N;@urMm zPq7{hN{Ge?McR4N?10iJvv(AqsSV9Xk;db9@K!`c>=#G>Keuk3iYqq8tABsRQfJ3U z#QGBHYeHnug_*u<9(O7^6#O1&UlvoO4i zZ%4q2H2$;y3+Kl;H%*$IU0e9u++cNPy1HWyO~wHzp-j1|P=z$x_w^=OJQ6LHgm@np zU=^`U%&35#BF1sv-Br03WzWil}Ti;Wj_a*aoFU9u+?&= zj2bC@I~nLf&Vdl7X#qit(CT|?!b+Bm-^}~w&YJ&6w=VEPllHE;?(Bmpl4{(PuWa{hJ9`@D=US|1oZN{ey9EPO)b& z%Z@La#A_vbXYv4v|C+XsjB<>WX0*-;r)tn|%(>Bz$9TrZwync8%CCnKrKSqw0k%q` zUn4%AO+o6L|CPAQL}eyTZ=te~74$kfzWSF9vVN!=GRw3(yzO>t>$&Ayz1GI0(E_5g=H0$tDi4%LBJYUez7c1_(mg#>N29#Y>gkfBGjR$dFS&BPAqId}Z! ziFYFICwt5;f7~}5e0u(6-M?Nr#bk`6?H!WNd7fU$Vt#tw<*yU+s~!?fWL|%!p#E&)1&}Y&<@;KQD0a?)=8iHJ8q8 zod+`xWFJp~1={9UexLNcKO|rnBI&*FRE_`nzA`m#>h9#t=EIf{UQTxpN57x9OFrd6 z>F$TY*v|E!|Lym(%E{#P+GoxfJImdZ!+e1fno&fB@}j{Nd96Z9vPKYs_QyfIm==?G zfbY;zb0~vnHRG2f>sesGA4A8M`Fme!Ha&NGm1Vstze6;Aeag*eBkfOL{YoD(pSgH} z?U(J2ZeHX+$MlQuku00`bv}EHnegoWZ-r;8JEknNuUb+|JKy2+<{N4$5~iMZnKWeG zy??Y1mWecjL z^;kMh3)e1BrpjXRs=hM!y-pM11JT+>EmEho2alI@*>{yl{Ih7cB$L!f*!#gP)CsF0T4=m6Y>@vDah%G#2U?;V3~t^bXEtMGeaF%K%{l{`BEDE z2b{|2f=DH3Ehq?G5bsV#(vheRc;22pSLbuCr!L(y-*ABL5r8oU*h<2DjUiQwE@YC* zeVKHmD~FHgr3uPL2|9cUpp3c{WG*h=)3X<04ruvAYkiaU0W}9JGFm%NmRj_%07_o* z-R@Og&6G%WUEsibxznI1?Rj3&jfzR=(7DW1PNvjF!FdvS(&W$5!%}p!t7ig^*{{Ro z?r@n|NuHh<{%nKSdtbGj6UTEd3jeU$sp#Xxso^VAz6aZ1si>eom5$23ZuBBE)9%|Q zg^4COe)?7LbV1uIVr9A-)13M1nr|q{NQjL5mZ1LCvN1XEnE{zxe7lOKP{}zqg+l!r zQ4pr-z_#OON|No%B7q)REhdNhbt*~ahumQu{OOIZ@z}PgWB+ygV@w_E@;#rNd+}-Q zT;}iCo8BXGdbX$NB-r|T{lWsZtRyUB(*E3ucMeQs76`{GZ z&)57BnkP_*-px4CB2U$h#u+J~8Dw!h?Pw&(9=zulFC2nu@K3#CzR8Mq4PKgZ3tX0| z%AL8tOi7y&+rOX8$*wR3NgFF`V>FbxGRQNLHXRSg%IHJEe30 zbtFJIQ?)T115gR19&z|27+~zhybZmpxQibd;V`QQ4}U1(@k^Se1Tp;;#sP3q`Q$Cx zV`eK7~B%nVW(t@5iH8`03vgK*M_+an~#DIiBtzkJfjK=_nFA z%U6b%M@gy-Q%<2x)?)+eIF^o!Fhm-RMn!$UT>g#(bSud&VM)J{UAe z=ZmSxAMTS47&Ty*T23k$uzmQv-3-js936_L=)FKAL4-j!^DQA!1j&x z2Kg2;R^OfArajSGR6QE(^lrH5&$A!K@_5sOF)qzu})^eLtt>6_uQIV{w8vJG?^x=!ki!ohFgVwdPoTdD6k0`1()l_orx*qwhsu z<*HU4^95~zVf$bzM=Jj*9P@8JN?Vd%xlaVyA2W+NkN;v57GYdK)=A&WI3#WBHte|2 z-DcrZkvPF?KpbLa;$85gBgB(?x%fg_e<251yB0RR@bAC17vA%-XgBN9l=7d&fd=CJ zQrS=J^GN}DsEds1hFJh4efAaRgp6^?9NWSNnAUA%!nj}nv!H^mYp}jtj#&<+;n8mc z+47_<&CTCAK zlP47DIpdEuM^dF`&=`y^L9{2@cYTK?LC)NzfrM5?d6ui$tQ={i-TIMKRvV9unG zuJdpps{!ZHfs3t&h^@>hP+Rm1{!N2-1sS7ZQf99}jig~oDM;PvzOPhSv@tqGP9TSd zT+E-GuBY6$8n9Y<_GTAjBkI_M?IRiYw$XJA6A#>7B!($=GeJx<(AFNMl77o z=Ga~vetJkm{#|4=amx%D33AFI;;>2RtH!HPZa_SjSN#K<&`460F4{~I;`ssdT6Vj3 zJSVmU2!9fyYP@<~fdaicoM3Lz{rJGqe}|lurkbc5h1iLF`LS{4p#^r6=8q=fI@;Zh zjx zK~2++bnFR9SE5|ki`2N-qiNQ;#)J)z_1Ynt-r5$JR!aAsV?)Q+mN>Gxo}QB&&7e!{6rA12Ae zW9~eE4+&pvx%Q?HDE)|9XiW@S^L^ES(Mz5@dk;UAK0f|sq-}%QHoJ)HHn*ym7(cQA zZK6g;Pe&<`m(NZ&yPJNucx5=;$uhVtKCRk)q%njwVs>QSq|m{A+58S7#BB6nooI_N znfX^R2Q6?6@$IU!M(`Z&%g*aP(njbmgdaDbNuSF!(q_qjD_YeuQEKHH2N&&?Z*?A% zqQh=v)mJs9V~(Ul1Y8oeog15+w4-FEsHs2(Gkgb8^iCnS1qKyeN7dgW^+az1WBzG7}woUrjY1(ufAcLVWY9XY7b zJsKFJ65x^;gtE}T4^~z~^Kgtru>YpoUIuYY&Y?Z+&n*IajIc_lGRjTmz8BVGZ;&lX z&+r^P_b{0Pt{&557usK46F3=Ey@^KzB$k*U46W4IzknxPBf& zOV!f1bxUVBZ-64|mpEs}47}GjnO;cJ@W<~2j`NJpaokLG>gy=W)ea|-|CoF-ge$yz z#NT$rtco#O)ivrDjbDoT;pIac0MvbPe^G|wRdcd_RYvoOyb}`#jU*yJK_V{>6N)?V zUrFyIYK$5eZ#xtB5s0Tt7f7{rakCSmZxz>$+3)>A{kDFCfBMtrT}e}Gr>u4671V9C zINGwKPQQPt*`wP}^XnFsC;fX7Zl9D}d2k00L;Mmwk}ycXDzh4NryA!fIIS$%V3V2E zF{b{J_9?bFI{4W!>PY+M671v~zFG(Y>};jC-c++dQ`y6>vHyyBZsErijNj8%ycldR za6eQSF$@NsYg~EZ?f3-3ZhvU(K+4_(qBr zZVjGLF^+Q3U?xAPWRO%9TC+zYO8enk-qc@)hAy<>D!Zyk^wh5Fu-FBKzAY z!7yHP@%7+soi`eq6ZJ?OCNeH^syxG~OZ-s#I8tLAIq^xhxxXT(b+Nv|rXMQ;_>qWh zW;Xpke5`JkC2@?KCsqIJ*J>Q@Q#FqURH?zQ;k%8&uHlax-b4tx(=_6c%AoDq?4`K= z{k9wvAwi5))s-jmmw$HL8gXzNccxk)2Su9sI*nv461Fz3|zU!xtYdpVO7YWj;l{lkr_0saB&w#;C7q5cg8Gx6Iz&ag(hy+eo_^$TT#N~S18=qnmNmI9^BtN$$??lAIUB2C^| zb@a;9URTk2kul58B(~=?wsci(zDBw26S2hbpFfVp6=|{%78g@HH>xg2Kgzah)(hyX ze3gy!8B$YvGEMDNU5yOzm_&%i~l@LxG$c3v&j z>0jtIR?^1mQNR3p77BL5wf+Hl$5i5->IXy2Lhp~yD$ck2RfFydgQjOYEhC!fm_KshwTrnSnVW?)Fbr( zrq|Y<-sEF_ERENzb2dtEjlAz1V>ebGFjBt+Zx00MvR;MV!_>AC6@9`G>SW0n#w+ss zp|h*sYng^a8_MH6HH0(SE!zKHw-WFs1zY+JdHTWlUOc5jzKZV56ejMg7B7Ll;$w-7 z74D zoefG@6rPQ0bA_-mK@a3qE1w}+DGUXU!_wr5Nn@zCH_+3#upHaL-^PEVZGEaKrA|&L zB_?uqh$%Y=!1=4bZpBw;3(dn@=SV5{UOQ*A7UOS_$$U6eWK3X=c*R7>xa^eidoKH}PDm!x21t*^fh2#`mzczn7{8M>=WZL% z8BF5?v|W4yarNEP&2-^o5lONSfDAeuADfz@b|@W;_%Jas;ZxDM%9YsZRN0Q+D`O7v}W#-r{Ra}$5LXkR5?}wU3kDT z!1lhIoM;mo_mIa(64q$Nk9bS<%}n9J;vLam|AVIC*0<_#v@SRa0o~OJB!%dt`cl@_e#@ zf+X?D)340;<{0DB9g#F~0EWkW1|D^um@7i!qehQFpVNzFaRHG^(P-!=Jti<)N5hlA zj{fVSjQa=Lw94k#2q}IuhaF9@$Yum2zX>Ot{LN#1j0!D;8Nk(hXoqa#`{rGKnP>f` zZe{lw!@gU-TDg2#2GYzrnod85rMx_P19%A!H;IR4MhJHzz$yImg&)UpU9FvCirI*6|j zYx5-1YI|g0hk0K92aHRTruE}bWyLK0qq362QdOHGHk!T$#{m7;!Any&|11}KLGUIy z&WKJ?0~NWZw~R#)OGTl54DxVntlBE{KfQTltePFG`a*viC+^DUzjhaKypNadw9&67 zI+K>?f-(U&HbNuWiNh7X@!u!ctLJE+cAqHO{l6~5$*HxAOiMEc-tkvgskSxPTnQL-RVjUhr#hv%hY%Lc>vQb z_kTO&3T*T79^f)M7=uIiO9b}mS&4v94FkXipjE5kj*=eb02yFu*%$5EYljtK;%I{< z)!ye9eZI`WEyUK^jxTSf&Sbd}%q5Zr|{+q}sHf9(xtr z2VK`S?l}1U#rl1STEH2moer|E%-_;dIG_DF`7IER*U0a&YUc)jGkZ*l+P+XjH~n71 zNNOvX@9|I#q59RL>47`k!v?^@hR#Y>-UY3UoU_~Fn7y&(npcvp)5Z1{TOz}BaN4hK z=8J?V>H3djPE$G`|Gi~TgU^>I*PT#d?4_Fp)cT-Vm+t?0rgDrtFrvbJ!uD1JjrX}h z%3dGA{}ZGXVOc&km>IUBMWA$XjhEfctY~M=8{Lz%PPWveV&J`TVvZANv^@CdxZZh^iNNtMNVSO1kU5jQxFPFGA93--ExgcijCv+uz!7|HQP= z|JmMYION(sNgBR1v?a!@pGfOQ zr@MEH3=0N|XdDMuHY>mMM#i)&{jA|u3oKZs$GHOMTT6gjKjLgkwBcMGL&4 zytsP(p2JaX35~-S*E%+CJHkyt;%lxnqnq8<=ChD~W0m~cClZ>p(p_&rBCqVD+ZUi) zR;)!)GQ_lS&03t@?9VE!xoQI5qUL^WCvw9`lM^RY8LoM#2*$`SEO;&o)OwN27wtd6 zy3Kk?yqAG_`pULp!Lh{3nXYEN`dXago8jn?bnT_zMv0a^iB}mb>FqCk>S%HQ6*_7L zCOHz#PklMKRVjNXnv4YUuHY+`QdEyu<&&iRZ%9(8sr@u6jJ zop*6r>WFEt+Qrq~6fwf^M2<>$7EV@;EN&4a+^$*8>3G7| z%m{vwFO{(@j|-P1u1YbfQbnpPwon7U`7iMDQ;~4*w=wi`5#?Zi+Zou^+A8{wlZ=eL)#P>%TCokd%RWWXg(Au z=*myW#HL}52@Euea>jzzfoc663S^cmfI_Zn@Mu;nr#LG$4VK{;I=pk2K)tXVGQXnh ztA%T+evPSJ`+_b{)Pk4GlccMs&GFY6T~k@p-JuU;o8 z)6-Olv!`89E?8}lw}wn*pQ>>6`ii~{IH+1{tx4A#37@~{*8cTaBetxUn9;B=pyFT@ zFXH-zAm^NFm+iizgx(%$o$t;Xw-;-4myuI_W#-FKLsvUa9UxavcrWT*6{TSA^MqQ1 z9;=|$J7URdsp_@XPScBQV7^ev6$+KH6+HTIb=4QKJ;b&w`Qg)?V(;`ayLji6ptM!EHSUOyPf!Dg3`T)m0Os~nW-*bT~^{b0N^1AjAOIbk;Y3 zq{z)P4I)1iPp`D3G@L)&*~O{HT+}YC`k45^a3w74-a>W?9E|6D&{_>QL>uH^VWxPZ zYUP83wT;-eK(YR*zIM&xt}1F9copCTefK*0F+-NbSW}t1KXrV?-x)eX=c!+Rv2IWK z+hF%~<<7ir-OD47W2r8aBke47L_xK7vsB|^l~4V5kN~a#Z}`m_NxA0{ES4sxXzOsFwYpr$M&ukLiWD~d#F$!=45o( zreAJH5?eR$U3yeKi7(>p=9n2){OQ1$cl4h-3ufK=jBYyqqw6l7tu~oNd2h*2x5VWe z55ME{s6q@vX-WBUZ)^M)IeYcS51iTl2MYQYy?t5)J-40kIv9D+JwecK#Fo-XY2T{< z-TS2?godB+$K8eDitQvc2rOuDJ)Y|2&y=uh%_*k5djAxcVMwBCh_cy9T{fsodEWGO z(a6X0ElahH`R6Yi6*+aT#&I3KNr>at_z2JB$hFe6;WP6#T7SNAn9%UC@}yWnW0+>m zt|(2odFSTVJEmDe>g`n?Wi8*tV?l}9rLgKCGgZpanfDVLxjWO`ZXS+;r-zH=<122S z9v69)Rm8OM4R*bW=i(=Jpxu8Rcm%gVcZi5NfCfRQR>5apc$ z`k2#;g;d;SxWi?rc^etRssV|>sa>(>qeAxmK3Jj?SWWrepOZ?0gD?2w)v9XIiy^WA zn_;5lk8>{HAOpBh9IMxz$73Mh`Hc+lTK?+J!mY-Wz|}@Zo;;Z7i4Y-FSRAJm_KV3Z*_>)!OQeyqDxt4nma&y0ri-JY>6@3{|7RQI z#r|H>4ce2BhgL=7VgaTKW)GnzzHxY=u|Cu!_H;7_@Vw{^W;Ge8%bUmd!jaPkC2@l` z>t%3Id;Clz(Or65t(QVi^CR4N^Ni6VjhF=YN%rIIi`1jOhY^T~lW`PD2ew_l(Cv4o z%AQ|bf=@+ix}W-8(90ZZkRMG!2MOPE=zx(0nvb-kO$W#E>|3=c|KU- z@+B+VTRm>V8PI9J9_;ENkDl@*Wyu^I^+qdo2fq;~H_dV}`kjKl+!=%OOTS$C?x|`a zD*6!r9G+Gs=CR>TveoiNmU*iukd_fm zAeV?ZKc!zfyeDXg`(oAB^zi~|0a!l*l>7B^P?GT~EzoW4c7N^DaA@Nso+y=BGQ|pp zGoc)O%rAibLEY*hBy+BMwWxK|t3cIegB-a>|JtwjX{x{aS3a)so1hu#&jYF$rmS%5 zsR8<$RFVoW3dHkp8-Q%=h~G~pd6dgcL1?u4=4;G5_uG0+X>If>ocu;Fcr8407WdHT z+eWX8Z>0rXD=bswuNn}WKSuh~r!zXwRiJ^_k<;$cw|tmk1B=qoKu)MAx^h?{R#woJ z3C?Yt;-1GqX4p}NS{(4)dAo|yB}sQ+gh7Eux<+hKXk=py7SX=}yjV|#gTjp(_NXgj$dgP!otme*u<1=(qZN|M93#?my^N-31c3;@` zxaaua|J(lWnpw%MM~nRD`@VE~nRv_V#rYit%JEZ)qGpp|JSjX($Lp8CM>!YT*z;#z znL69y)tQ}jHEROjYrD+x&OKbhdePhni3HBuL_rvY?SU%k z6(U`zAI&#wA*e#O4qs1K&3--y05%K0eoonc!HOPL>-BW}D*u^Lfh1zi)TSBHMNr=3d=m!E8nv4YMB(;-fF@#6 zKRK}-za3Q?DUd|k{HPq;mBfBT(%zGVN9m*Pg$`u1)g2ZDtxnzH0O<9{fw%B&yddpe zBSpL@>_H#Y=H`AYr+BHpHt~cA%aUdi#6(Li+Ov&3tM@TP^kou(RdGPEOEelc-A33Z z4l|NgssUA-@c@XPQ$*E*^qy^JcQA&cr`L!*Hw*7#qjjClAg|kVm_jDkF9z^d3WyoD zsQ`(b%rbf5`5WvzFfzG0rZfPUH-zrta=rA}b%pbr6$ucDlZmdt&Y7m6=7wuDQKX0W zqFg%4q;G4j@oK~!Q-~ut#hF1&S$}4Jcv&Go%BQYo#QM!284riaeJh*JmJZWp>TZHE zXg3kF%Y*)`^bqT#Z7dBW{j4XSgJ>kNO57y2a7sbK<7d6Pl<56-P77F}F^On_$*Dcx zto-&Tv5q8gVHvS()dj>}%<)&FXD3`6XPcR7e605vM1nA-1?C{DveohK;c-Bf zd5wb;V6en7fxe-s)Q3tO136Z`@DsOqSbETgF4XX8tIL}E1}TrVlKCipK*k@Mv$l{j zVA!|LrX}JwZmdGvfQM2B*yZw@9o6(2{PL?XVUQ#aA73%tv1OvT=U7IBDU^4HdGc(7k7^0@2B~QG4_QO{&A1i8_aQ0jw9_q;Kpiz?_e?Sara}TuftxhS$102TXD#S&nC*a!dXw zyys57*@2H64OJv@Co-w|hOongi36_WUq2wB5opzt<==^)2H`KMo)6NNyn2diY8Lgb zf2e%?SSZe-;q8hV@BuO|QQr7DMY>ye3c68wVc3Y;7yf^+LA&f+pVyMD7Ue5PR4i6y zdw>v#a(Y;yYrsOQ^NUioQhw3SAD5;r2T?ese`oHm(|%&CXF-QIJSJo@A-p}urjgb* z4gli-499Bv4j?R!lvSWc0!*ndkm|*HC9}%V^`R5+qOo-CZjlWSdkuw{Ra|rFr07-j zW582O)fj0b28s3$U1KAPtKbk6No6%xQN3g`xA%zL^6hwk0iNNs&4Kjf#?nlzfFg|a z59Ei}K?On=-^sxsSQY3v8R&=xab$e83`czrvKyI$(_IvkV{g{uJo$&6RDDQOB^=VM z>XnGym!jXNmX#zUZFZFX@8YfZ!ec^XG#MTOaO!4#21k6 z!z_`_CO7S|1&q_?^jiChxvmU$(VoHI^=YAl)USG^Hu7>L0zY;z@DSnTaH!rjtQ6*MoY&b!mQi#uia*O7@n;^ z&H?Z4EFx&l|3#8*w6I{ zy_|Mho-jb?B}fxkCN8tQxp0w-j2o@CnM9~}(_Z8Sx6u&-GRo_$^lntsM~T?}Yyuz0 z;ujjj-~hX{Pu6|1tt;{oHJ)0^pkSoE`86HIN5g(I`PqvkYa;f5*_}=fQg9DR%4tAK z0VF4lYK5D=IQRq{EDoQjB1_r5|G^-F&%<>`DoX>FmssT}F-D5<6}`60Cr5hfHA*I% zcUGQNK;%NKlB!3ou6GJWkjzSX>T}*G6j|=I+OfFQ06E=` zw)wu_?kqei;7e8gFuIuwHLakMZgN20KM`I=dL}0liLr_ZBUnU~@=rc!tMLG*a`TQ< zLAACx&Oick{yis^W@Aoe)h;57|0&uzacSD|p9em)Gk5N^eE_yt$1Jr(5|9DSc3E*H z={?G6@6UvS?2ut`0%&Ywbd}n}g*c704nWuq`gXP*(e_=TP*KUv zDTxvC!m>KJ0rjDQQhF6dF7LkL?0rB0{JLpE-qBmM7z9emoD8w(0s!PwG8D(36MdnY z7wAwOq+{@pRJ|pyFMo6sIh}at&ajL}`&e8ORg$eo&RZzd0c4u0fxaey?h-(F>a1f* zvOK{;$hGOY!)Uiap?aw~a!%gvd|bNAx8bbiwRj+O^n9JDmy@CZY~!bX%1mub zaIAv8HLW7i@Mzoks;^q;a~^)%XqDb0fWFF4jXMS9bn5I%^MsK`I`tL|a~>f{AsPVd zXa+yYK3}i-Q14TSwOLn6N>Om|giJ{+pyUsag<977s#rnj$)A z)d+rbAJpj~3DN%Wp1Wd;sYI7x63g{Mx@Aul75{AkR@FC}xN>v;_ds=))SApK$C4@r z!|{4IFQS~?Xr!^GO$h2 z7?vT}Mq`RW`b|JUP7w@5CTJ3%HLe!1hMcyy+Zvdl&eC-Oqv1Nx?y9fqDreJ|yBqNK!HF?6Ral|w`>SZD>C&{4pC>-HGk4xJAT^Ef zqlMxQhk2&*u?Sz<;|^BYlp&B51#U6v)oq1h!kR~jMk;M<&`ZJWpx1wRsGW~mJ{`rM4i68OXT_?FwHh~duaj}M=@-sbpae9R#|k4N>jZL-ul>FEg$2KKd6ZU6mt!k3%fJ= zcw`m!8Rb#$NWinb-V1o0vTe^KlR@y|VsAy^5w_Jvf2tKF{jk2hTR<8y(#-?ti(Y=N z%2>SnX@=WbAwH8^Iy>Lr4eJ?k9r6bJ=y1@gwD%Kd&l;*eTJ#~MjIgW}cI)4nS{Xe3 z>WXyN{fK=bzCXn7$F8%1k1AB5GO%G8F6rPApul>+&)3t^o3?iZ=+}v|q&KCL2pkNk zz$%geADB9Wu=-F}pcDUH{+LTyzV@Tr-g+H*vagWNk`=lJmU~=5^bJhzW_?qLBz%yi z@7`OqQ+;XL>z@Je6$HTLvKbfrF_UFa^55kvNqQ{`PfmycQ(~k7(^42Z2o^#aQK*$H zpuOV62}r53mQI;BgGcOvbE`e7@>rFXm*JAM=h^DhG!~8*#21I~sE~l)O0+k}$n5BA z$ffTWR(yQIk)s!!1`qRo_RlEis=Cb@4c+yMu0|qjmr2j%mWoM^+Kzw=V$XMlr(h{Z z2Ks9#QQoLNOs~ul(nh3EpsbPM%y4olp;0@w8%l9tsU9kos%rHzbutUW>Zo#lnM{-} zP*1`g`=&}F!_~#cghoziF)ZazlD>)gz_rfF(W+d;^eEB<1UjVK-Ko;(Ch@lg>HH26 zA9*Fdx^|6c|Gas{Oz#Ee`+{C7Q)`zeU9(0JGCmA)j7jPmL;3X16aPZ(r6M#!$JI}{r5IMbnjdR zfDW!35nO(+(~-u7Rp)_(6I+?Cz?QmYc03y03nn#V(2Z)jRT4ta@efo!KJDz=2PLz2 znp9FnmVNJ-w!_Rv%EdRwfIr!BW$)^|plvQ>vP?ImvFC#+ZGRT+ z`roB#{Xb88d}r?bX-%Mk$LLGQBqN$Ii#Oo0Ga~AJ$1DNxKbd}V8STb!>L+S z=^rNH3$=o9U_dGC2=>qpD<36eL=dTg!8tNs=zTr}4s=R|4qwHXCrUvcdZ8B(1VE&5 z*O(wtOC|OL37;U6R+%n92<J{AnMS)*J|K-JqsGL2e*P(@&(a^YczW zlBE12DJc)Ql@7|)Q4JO*WKKf(@$C2=?FC)kkTXy7O>l?J6cAT7ERFqM|0q=s(m9zU zZH|erc&T@>G3_FpJZ>G^=lF1bZUsu~Q^n4`b@f%^EmS3qKET~0C&v3$&_Iv@i|>^U z^y&>AheIU-dBVscdb=Oc6G;Kg^Pb$#_t?2GOJm=i@nybux@b5nYg2g~pSDPXu8w;! zjq^=q)zd2)#RDzt(pfHKhm$NM8f(b0?5c7e3sV)tYd(c`r!+For3?@F?bbWdm;z_& z45>Y5JE-`*363pC-mR7uURV|Id@K8XXTFgh<)t1a4IU$Ny7%wpDN3*EC1ga33}Bem z5GhsQ__}ppL1{qbY4@eYAme|zG=0|35cmi};4)CAF&@SrylMVZfrcaV7|uWd1R5KX zV1(8>`7}!Va2X0fX?tHaF5ZJPh=1v_&NrBR|Q&W8SJNNZ?KITc4qki~8SbI7=e`2*r2niWM zS|LM|rOUj5FFP$h2N8t0CM1mq^rI30MiB$mV!F`WKi0^35TLJoE~M$j4SeFir9zi6 zXcpd439L9F1jzlgPbyezQ7srz?e!c+wWP)OZ)YU@A`d}S11$Ik{vbaj2o8E=t|I~6 z`E8tTHNly&?okVOeWpf*hQiZB-DVTF{agW)w`}^%y*WZ=IkN%|Ei=a(sX#75KX3+b z9zzWE%828&+Cuz1AZ*ZH*poAv1N^a`_?1=U#O7|bOf^)6?_yiYHDYfRDXSI*+`-|2&cYg;bH#5kN1u?tkMC{3(a5EouFaF1`V6$P!1dVIWB%_w(!vJ^No2o-6nU zCL(4pIOC>E)17{vaox_`1=DAP9{w!N?kD*NkaMp%!LXFP4MurjtCEg^v+k57ZV)$d z;{>R>oKzeo6LB>8U_VgwAmIQ`+X0a?OFgp7P?Da+-Kt5Z(cH&`2Q??_X%{sPU}F-D z*V3dWfn98Ldzu&DffR<;vv|j?+dBV`qBDW0s ziBdE+kp~CdF#sfU13-@~1EN3zYMXkc$k#omV&kEal7oLU9Q&iXxi>uR&?tlwn2lNuQY3TOl9mqy}5UQ(k|XgwUL>P-n$77F1k~%w+qZta#%bd&TS*sYL@vH zbVohgyen>Dk^CkHVn7%Ky|hwI=R!N#fc-Z=#5kv}U#`fp&a{o&)BWsET*$-pT||Ue zQQ5KHd{$RCZ1+r|jEM`2D8II9eOrpW@kky@nby&Dz)0H(f)(Y#ak3yrvC16)ZibXB z)~<_SdhqWsD}cj{2Gaa1#v)bF`@d6w?t0@R*=w;0jimx9?>2_@4t9`1g{D)RpkQP( z(D4G&#Z7;gnRE-Q5X3QBCSQmK{I)W{4;x;Yle2C~eCI<$ZQ{-X6*q-+X>aLxrxOzku#}Zn>wa(6)^vbe>o!>n5_3Y zRmXV>zz}lL=VZfgSeYYg2iKzSU|RrhQe}7*{h1JTe|f1H;B?1t$WD}^f)s3|2w>Wz z6|y0cfn>iH1TNCxyP636e`rj(f4xR>>2~3X<#dR|gu@kF*`9@Z0@-uwD`onv%F6oW z-uIe79^&$=sAKoUy?a-n$I%!925sP)WC|=W+DZln9f_m*9N|bvqx071LwazxV=HP^ zv{?IB1k=lZht{Q?!@+c)*~jMy^*SySQro;y-GEA@he{DBBy+dLhe%sfH0}^a=R;ez zqB8O!@j)8a#@(Po3-r2k`Z6*Niy>FfY51fqan}U{a=v2N@i z00FN~dNA33I6xK&jilC-fRBEg2EcgD=@aH8XeD9-*%Zm+HI9N3gXzIFsVGcY;nXSz z3AggWXaz-V+BYZW0M@Thq1wU-Vq-bOsz{`2%B0GaIA(pw8cgv4TU1eTg&1Bm9Q$77 zkjUSb?~WxD>4O77efl^)KuuJEB#$uC|1wID`nzNt=?g<%x;waWvKA&?UGy@f@ue-! z!WX@0E+CoM#Dm327S)GGD?@#PyQfWCfdVYy2CgCpfQpvvcx1KmHE(Q?b(GR%nxMn= z=_2uDKO6+fPu#VgPBsJNZ0RAW2j!U*NhMn+sp{dSQu;+NmL;I8DFr%>v|ykn<^U=H zWA`lC=IStiq{%W8@#5I0Lfs{mTIHa@`R~$fjbKXscbq8TIHTSEJ%ex(c7RHGSnG7e zC=?n_)d#@{ZVbj`ef=aQ3>kK9a{@})N0D*;iPvK8wNk%swgJQ1U)9ZrP0rqBcD-pf z>pts{Dk~{W1&Ymj)fTu3(8>gAH(>gnB-`d86G&J9YU z3Xl~y=`Q?K(ZK#I`DCxS!wRpa=Hd);@Mr`*1O?nFR^e56ll``41f&T>?&y`L0*H|E z_7pIM6x;@=lhs+W=!vuBRj;;cnw60nc>&pEgPuTJqAfm-_W>~}tKT%bi#egnT)ZW- z8tiXQ&EO%8vRv`fbK47~1J+l;(!*taViP$?;RYdP!Su>#+HpLBG2$$T0$R3FP4>p- zDh@X)WF5Mcjx9d=GVbF?SgYs;aMQlBNouTiV34FJkUF~C4S?fxuEpQT?|@2Y zvQGo*K&T==z9_f_M{Usuhz}jgB<{WR;OsgEPRkfPFxm31SUV$vspjALC28kyG9@tk zY}=73TltKm>^QiT3XxvrM{&dR*7}JBw2t{3uK)&siq8mex4cg{FrH8)sNu5_E58jTO=aR)BpVwT79y4v<;);b zCZMt;HzcaUF|m1v&-Vf~#X^Ki04ll{K;=_$=hHLt!Q*Yy$?_J&yGCl`QD`VYN$K9! z0$?659_6`~dtCvNg$@TF!k}dDW;Cv}8Lb(=&Imw-BdHW%Ry%Hj?@*!wgD7rr@l%M_ zM#>ib{*XTgl^NU!sY61d>6YuZXwYp@UO2+szoHpP-~yRu%&YpF(4s}EMA1vjqeZWc z7tHbkrR3nIM$h<7SjTZ&DR&&>*w^;Pdx!+!(++#VDcmdR;&#Ue>)C-CkBR71#v*i=Ku-BNrN{` z_1*RiPO3Vgu^YwO@Cc@nf5(yv97}WsP^W-6NOlsr>@1vf8It()yk0n7Bxm>#udAK0Nq z+{D5wx}_`as!T~KCaiP;#0UxRkOs7jE3`(15@}SwF=|^m5Kt`;K%)@?e7$OH=IGvZ zbvUp=sJR(wsbygV@M|bd-zb4n0L}!74{n)8aghksNS1|Fz<;vQ3haQ@$!lu)py8~r z)nez_3NXRz{mtEwJV4ap8Q)5)ymD|8-JSfxle2lwQ9%%dYk|vu97yZ~evyp4218E( z1qV36WYHrKnGpnV{WotYZDtAsM0>!=^oDr*W%KmB1v=2LK?3R%bcSVaxk=0ph^GB0DDR;>Llf@$~P$;4^ra4`XmBBtkv zK-u}7y2|SFP?~`R;$Ya+2@sveV9>1T?t9=Y+DcxQsb0B?1>M=UAIOa;Gf3{Jk0|@r zU~wvFi5?>Kw@7^@hYZ7&0=^a`82DTIAgt*j4GH4zA4hW6`4{%&X=y>Sn>_QSOL62( zyWkQiI3HKCCx&fZ#7RS4*FwQQwgAYuvF}xHLn2uA*nG7r6dvF0PZ|sErY?f2ixlpG z7B=Xmuy}f~F$9s1jRfRt@;KZYCU>6>CqU+h3HJ%vtaytZi>FXBASJt~-2fL;c^6iB z5NUx;-PHE*_zb(St|@bT(JyP@-yQZ8FKG3=+TBp7VtiGr*gu#I1#Zl$$@*p5df8tw zh>3;WH3g`_2JZ2(``3Y`%dYUVm=koSX=6xI+nhXiIpi}FDRmRuyh7YFc0l7;2!=BH z)+zy2uZp#&Bbd4W9mxc6B+*3X04R0gn=~@zka1v$o>0Lt5dO$85DnocbV(BR%HZHMcu% zB?EDR+3-ppWUT*MU|#$@V-hz>Ne850pxgtr2y03`0KVdHxw}aY?tg5|(~ae+1omas4 zh@A`lJ7!_+$FT0Bqqf6}u}{JZFJwF!q%Z8;>z!#$&pV{ECMB7!}`Q|P-ANdVbAtU z-VPa8m{Uh<`}SSrr|5fmhPE0436{Y&$aGQ1xH}k))%}W|--ZzT2ZL2YI=ebe3F#$r!`vT+7d*P+`QOSfbJRh|#1Yu`a zq(LQfjUCf@&=zV}jI9Fw&a!fnD1K?W9FxHXYG)aDc~n^Ax|a};R#kP}yj3|3!W{sE|& zK8URGKI+Hm42hLL#{NE3tzbkiwZB!MxFDvL*UbBdt*Vc;YKtmq3N@+^755-$+dBuQQ2KDJmfUZfbiw09 zMs#~zE%Q$ygF@7Q%FN@a)E89@U7~UNh%MS88HHKB&xQv~ug23mL%0jGk4l;?+&J3} zJ$!{W7hYGnQRk@d48eguwsw7Cp5zJuVAenyw2l-ZpIc)T>Vo90+AQ?@<8yUb$ zFrm5%5E@%UFpZ>yEz1#~^bwhAx}7ZsJ77ogg%vdu2-EeJGUgNNdwGq-#l8E72=jzi zH`7&WE4ej|{{KP zAek<(;s$aMElKtg$y*}3?R<>0Oy4lw9Qj3ve(*r39FsS!=z(zS>UFzl*%)uB>F|q? z^|lG(j_1Pus}4v_fREFi>}9usL$$WiZIPEB9E3jiG1ka>AKqhDH-L`uKnlyvmK@c> zaSaYFO@=w@uimUjLCZ{@PvkE;+;cE1x$J2_tuM$LcD5g7A&Yy=C)awoQu{cZ;#w>R z2YpgruCQF8G7>}sf-_wH!`2r_9r{l|kseWggN1y@Tld7@US=2myrBO@+${)@>1Hyj z&`j7V0$N&3Je7Rz{izu1^HCOqfASeR&?Yi=r_VJrAeD$`dvPmSBD17xxn*_(LznXYxJm_F{QGUl#Q;L8W1_9G>U@#p*P6WnJ zxKg}e$+n)El)Ui8cHvmqN{IaTuwS`?rSB(C`P06spqXO&JKNzj+lLh8YXrhVV;s4f zmJvl;7io)%WQ|)y(Y(1KL%vJ>JM(lN9O>T;0qo0~6TgK3Q1?m6hJ1xmt7dzIlqC3j zL?V<%!;r#7t8IAlW~W#-cn8J4%ZQrW}6_kdL(GT2jUq;`@xKOrII!zPEFO*dR7pPR&@#E8dH$YUzM-cs( zl{xD^lVA@te|PeTn@jrRYPa|vT@6yy;upqr&>~QKqQE4)U({ajG-%a_2%eo)-F4Ef zPv-jsWBp2{J6T!?=Y6?Y`Vj3COy_IBi0ONcR|hYRA0z)R5Fb?8>g#V5F}y&8wc)u3 zL18ev0Lcd5+B9v}=9)1f|DA-Mt~D#Y`z5^x@$AFM&GmD(j6f$B2F@zHsYCBnOGWkH z_A@zPT63(N7HF&~a^U0q`PUO;;SaK)bRCOj=(%gpevvkzP>9iK0MWNvdN^CTy+U^qA_@`XZL}(Q)2>4nu0zmW`CI z_8;%H*sPFq3dKX3&~TUM@>sX6(q?t(>$V8~6hw1o+^y9}U;g+z-e>gJUs&w#iU?k! zuCLOwEwp3=aACEYU7Jh}maW8xpX%a^MJUh=go^TQ59wJGANfFne*l#Hghg3vAT<)X z%J)}#H8KroO?Kx$y8G^|ipWcU<=!7_d)WyZhb@SX8y>SXD*Cd*$V^Y4rX>bfNT`dp zT$r#qc#vQWS{!u6Pk+)eSo)D!@VGFtb9I}SwLHt-RnZVTxsvXgW$F%FplfqXG!Y6? z0huRr1(jgoM)KOyMf}BW&BW~*BFoW`83cH#RPwv>L0Y;5#V3rK-3l-`6GK?+zmed5 z``s=*b&fDS>2!rlkvb|yS4>4X`})=oRpy9j(1FAivEBevWeQq%YQu;$(Ol&O`SJ;V zT+{W}D9@vDr|353rRu!u?K zF6syf^ZVhm1d})HO=NGz*R*4SD-p?j_umK7ZnX=uYI<@deA8r^l`yp(vbMIL2+9Aj zCMDf6s$q`hFpgH|Mv;i6hz<95X86J+PAiKlA(~d3Q*I4a6P$&#HSBU|`U{XXoc##Z zXh^otG(BY1KQO%$y11-bkTFt#V;GW()E8T$`6`mI|FRrzdgUM7zE{vT);j97hzePF z7e=9%GRB`|PO_V8TB;7ZDWmiHxWy{I(@EajmAd)$Tynv1h|i4|xI%wmH!m(k90x-P zNdih~mGWr(HI9^voI2^Z6uf(5Zny*pEtk24w!D+ruvYB{@hfZ!&ok#Ro_xtx&f(Dc zQ=wgC$G*MjiUQ_*t+ttd$W1bmyC@90XL&m@#lB(C7Ios3uX0;sT+Aa(xM>1%nMs+? zTw`J;u$jgwd5yB?+?Dk1sf*tL%locAOI;@ruc>M1;pe)7+S%xPriU>f>L10)$kzZegq$cf;Tc z(>?E*@hWJVm8XX8mAkJQ@O~%f{Mx6oZ>=ocmQKA>^d=kRv~|=*>I8k9QN-aMJ%2v$ z{Y<#6Qhs5}thv*!2o8g>QOZRb~9DVAv-i@5aeq@3fDzy)dh~zHp8!Gs&yJ zHC-g_Cp!zUxYZPTLA((sv`KH{3C=|V zZMAMR{VN9i>}t}pilM9`2QHwZ?A>_vOedeef2nn zs>VEbTd(rsyn{uX((B}~q0-S~?cd$%pWtzJ7tBt+N>S1&$mH8R?K4}m_-5sjTM$P; z=e8g0*$LY=&8Qm<0!!UP$XV}aWUY4n84GG_O~(Q+xE>T%Uxm?hsczQ z$v*P*>{!ipm3E1_Klo`7yZaPlpMNDnc5#&+dS#LHENtViSi&7OYggfpKr8yzA9uwy zRr{dp9pBoo@IE*;eJSsEfcy}%Nz|3m9_yogC6y~(*U!nbu4n50(NodN!X;c>gZ!Gf zIb;0gRp0T^c zS`!ArP@tb{_4>O5)A!LjQ+?ZQ#Xq;F02QQX5%ocXUU9AZF%^34)EBGp4&HAo-FGTg zDkKA0wUP_gMwjLEYG&e%=BL$FB?bua|?&K zfXCUXN8f$%!Ln%EYm+XLmjX}B9_7bCENXpR#Aj{6OczH+nCCx0A5^CBQ9e6?d=^cv z>ftV*U9?5rI?3ZRu&JxMIz#HyVoL^b$en-hBz#TCEtqCFos=h?d<%uMMXP?Dplx&m zCVLxPExY)1_y`nfYWFTz%CkyUiQTUbqI2w;P~Ri6kfK#N?pAsNoawHBAF_Q7|x?xn?isYK7{TJsiM-802V~bK^W43ukj41 zyH`nK+huR!Y5tDWD4mbM**Y{LyJHGXq#{0=yIpGgH?=2YhAU8Rh;I_5e=RVJ{u``0 z4#lrkq?hTFT=)rgzz7yz4!F~u0b6Bjf)z86ecIMQIA$Gc9Md}dNzqM=s*0*}Z>0z%ZEFE8GZ;DjJeK9Wl++YPRrXKHl<-%FolvU-vcakt#pKNEHW zuU&rUAba6l{jJ?6S-JC%c!n71n5Q+FQLfip7Rs~tI)p27qr(o~K!SNDRt^D36Jq-q z;l^DA%rig{XZ0BxA!}A&%@PEBLYSge_rrn1`gJAO^+Dfk`mE9otDiS!NY-qnlxBEx znO5RXSpWSxAD$@IOs5~AwcKB`kH4MEC`2)p^jbG$Ua(*R!!(94(#7r6?pYba*p3_T z>iH5mosw_fn?ZKqKNo%$om!LnG2zkQGeh!mZi-ua8U1tA&Zor7N$%UqW?Q@Frhs;_ z-?bpA&!$_t_VXaqr>2=l(UuG6yrh{FH_v`!9)2i!a2z2|Xn2|P!#ntHY*JA4C%k70 zqZ&ejmLn&=(XDYLGj~g*zaulZl9H%gVEXN!ao9K2OApT_eQ&IM@L5#5irn_0%AI)A zKXP>8%Ht^I+s)^e3|QTxJ=H z>O7uAd-D60{ujm8Gkc26g|ltVjoqL?|8LQmGSm*;J08h|qBQo$+iy?aUnmosU_vzx zVys5TS~qp_LZmP|1k_E`~~p*rhjA*Gu>P{SAPs zHXe{-pCS+M`0oUT*JVZ+D)@wgmJ~Zry!sJ;vD&oyq2yynU7asojz-9>4+~o>^#|78 zr@7-nd0bH|LS3Le!z1;SvM}vl{grc>Cko%tzBA7`KYywfwtJ|h^=el9lG|$Ja{4MD)fbLr9)&gpJ=3JcX z%7*2V;p&?eCWzdEu;6V6D#tNUwveM$Ll9=+ zO4we03av4@AeSHTU7eY^UoR-MQY)<58s*arqC-K|$LoR3!Mwe^7V>_XeE3@kTuYwF zms(v6`1E&ZDWNrEHdi-?W=IGD(90hqCh z%4N8jl>T?~l3CDcbj<^6aM;)}>y7OT9^mM}+J)oud+9r*4#|Z#@O7@?TdntAl<%zM zPaf9?hg8UJ4G!^P^E?E|$~HyUY^Hbvz3+_u`1VF1^FL7q1IG1GTpQ1S+fTWstLd9U z3@T!n(x{Ntpi539W1S}6v$zRr7Rk$H^d)XBN}_i6siW;L@$!hTTl&B81Jq-dZ;5ul zAa&-D=u8!L%AYeLVuzuNecM-WT?M6Sb4_fSi~4EoIK=i=@BL7^o|VJHnc071RO3!w zgLVnaz|$du7joC`MYH^|Wpc+5M5(6Iq*_xQOCi*C<{Hbub@;sz2++nBHud#E0% zJ1g9cJ|B9E#lb1xdrzu*L|`tJ?o4opA_l_dc#)+@uq>7cs6l2r=VFZ8zCq|`!#B>k zDcj)zh%phECIiVwq7%?_BuXyYpSB#Mc_h`!V}ptqd~>ob4puu3#jgI?9P*b zR_eYiPlnH=DL9>tD!v)AbmflD^el%l^SS1cPxRnEx^?=b2wY~51_)oVu*wqP>I@;P z7{6bj$fB7~BCNiOd0*;`eKe>YICJO7>!_~Oe16?z@>2>$x)~b(Cc;jDu!%5{L0c$= zQs)&juJyl7cGXnlecakTE_?Hl5qq|k>&rVuCq3v?zDWfDHLvzAA4Y=#17=fT3S1OI zYw*oWX}V6h*!uHPdjl?8uSICa;cv$o8JEpamGIXp^IDx&6X{_D@KpBwR6b7D)3+-vczuv!I`}DYp~di$*3wn$vZAv|k?4`sW1e`% zxPrk|mOB}9vWo@pbuirts)#QX3}ZGvyYr5S+CH=2O1q9hqFNeaouhYqPpVt?!RI0A zR;~t7aowcKs6V+GU(Rdym`w}Yop_kVxM((D@Lpo6$D`@xk4d**K`@)kTz|i5!%Vu` z`OoOR8~X4)c;Ri&J^HDBO`(UlS0e_P-4R9>zgc-Nz2j@j$4d`Ey>SV~r7A9a= zxk3m}d?%!Xl;%)Se>SZ!J4X8S;Nw~kcDt!t%7$#E(V@?()Anj2%CkFem6sGV+F37K z*mOhq)c%VJ$~kK<8hEMu-CxTO>W}qxE?qD%w?)$;FFd--8TnuKYY)&Cm%&*Rvz@P9 z{72ViijX_O{nTTAeIv%Ob@s8H3hvD7u>0lMgqe)_(X0I#r_(}P{F*SkikU%-g&O+Wkek6z)N5*$nzw%$2) zf9GIfkCmSo)2CP9^acu=z@KiwSe~t_7v$A~#th!Ga(*6lvMEo@D4kZB@4@LQa7mOl z0sT8J4_`~pxA0c@N6MV2g`IHRthf1g)ejFAkG1xuQ}7PC zqqzC`*Ka6n!___fNCB?=$SQ;w-uC;a_-Kz+nr(wQoZe`1pYh=pM3QJ8gyfo zFXAtT1DNnh-9sUMioeSEvo$5MAasYN!63z2=_>M=w-MGZJwVM=0&A8~?xIJ2*0{%C zB(I*lF?&!05hUI8y(2(ZIovagPYNNOXE8QS>(U^JnqNyyN}{8(7k{sc2`OJTUHHr)tf~eH{roxf zvXl=2y0`a0l}YPz+1&$*3sdMlpX>3oJ`!EH7Lg5;p2~aYdQZyDYEvL~fG*CHFOBtj zTPbum>d@!SX1(zK;sUVm`9;o){mZJnd4fm3bJe_f?*+4iy+6r#+4%$JrOO7RVAkUn z8V>T|%FxdJ&dk)=oz|1D|IQDqf#x)$JWu(2N-a9w1D9bQUB%OxX*9ZE3By06`Dcar zT22;yaqsZDwn1ccrAdpw(#?M3C1xCvOHszAY~dd3&C|@^SJ2KEXU9$B`S_>BpD4UQ z!D|E+|I5fZ*XRXZ*w3RfabHch*_s!AT;o_8^XKMs6;4p^OKx6^JYH1#?yfGSYC7aJ zLyj~5PwHLsuc@emsz${F9Tix+2-u<{nZcw|`~iM+%Y^ZF;jqxM3 zJT;SY=gWvSH5)f-rr%+nCor~jR_8QJNJ!r=PK&-TWs#{lw?6m#>e3q)HbdKB@IUcs z{F7FzVHsOAd`eaNN?xJ`|Trz2QQ7j zB(S~^r=IhMo5(OlUNm!qZWjeQtz2N2^D>2o7bo6YA=DdRa`}~VP_A7iJllelh0>CVCHL7!D1ksxpYplnMQp_~yXgX{hK0DEA=$3q+U#dl9Z8~L$= zR}IU!KB-x_&lKOk9>F{X)N5>4fqL!jKX;N>DE$8gC7y|7Dp?R=Y5anU*I#jG>^nO91(FXCMeuoFwx9|?9JR|UUcx32Oh zjCNbp1G|BM9U@u*5junw_Bf5Ilwm{||LM^0#Y&sW&k@Ck>|pk^)ToiO6QYN183xE=k;ENwjmT$k^CBeQ0ARo^GkQxo@h8pqza{PrXJQ6i()zH;AovF~~J2reA_K`{_2O{B-(sWtxf z`cXlEy~PaW1ANT9{etWq=6IT~#r2u*wJaBwtD2Q$em!?hRHx4KkK|-Q(~BfuJ>!>` zTm@o~4Sf5e6m&Z%{p$M^e(9rJ@%9@BuG-H#36D#3LzQyw@e{AEt+wYJD1Hc9&%>>W zM)9g7-HjHRzTzQx8mwH$hY!}Uqs#>o0U|%i4(rx4EODOoVy~Nz)69#lpQ6Gtl#u2Y z<_y&r$JdeE4wv!S_fiG!?~_P>Qk(Fz>nD1WR&R@{cD~Y#Fudl)R1r%`t-p3AJy}%Z z&X$(A%+um%6K4}`Lg^9Oya86<7Q(ZBYX7?b*tx-8x`}v9*ARv3U2qp|-%?7OvY;G( zt28h`M*46@D_e>N1(H<%9-f({-L^`4hFE>omMUVxa;RC|bz|P;f)zSsGq$eVT4E+C z$yqcZWrvV;X|5J>L)Ny;z>3j+%~X5;xVVc;_mft=CQn&e2rC!=T@MM)>@K1D<3asf zDS|}L5d7tGX?GrKd%FOdB=Ze&Krn{!jc6$xp1PZKRgJ>!5XJ3~;=?9?xDou!vY`7! zy!XL{SopZ+lJmLc?F#~&9sJByr=T$le@S4$MP~Jg*>BPp%pGgu3NM@vI~hO>o=Vh$ zE>Hr;IXUCEUTm$JUB4>Usie9lW;cz#dN)ZBm;U!})#SVSmOKH(-7mUm!4I6m-#TL( zl|F(~TgTbscOGnZnV$I8UBbsWh&Z);oTfxQv$aM}{bN!#UoD5{BLIqlx1R)ly!4fjW-X(Wyb|{RPhqp^&KUTvl2_#MRYQQVEwh>l_87`5bLYg6X|`#Jx;=`XZyu@kJV$r zdfLlVRyT4X?E?Zzp;4=gadAhq?Ye;9qkm~3J6 zAVB^{wkzM(aBWuq#TP@f6TU|`*mDHg!rPKet>4Sqz_E=Zj+{@w}IVkRE_(Dxz*1MJboWHaG~ZZk*9 z%#Rf_-I?#X(Q(TIo%dRKj`?R#3*(XHiu8s3<2ZY1m~lQMdbTNEPRoa`ey^nPobwu3 z>{?k_S%26Ly?LI6vB^64)&I@UinqoTmsBucA6j?*y(FlG1%0ja@9v4zGB_+H+l;dc z7UKTkS0qL4$V-jN!sn@tdt2mZfA7!X&?fT0!*xS2^Q1~p5ygwe55^VXWzb*MA-e2?{(VEvc@*I`fA$O3T8yg3kjT*l~ z;4F6HOB);O&0&VRMjKl()f0|EvXoRvYV^eM(N}XA+#h0D*Xwk{H#Z!LE!_6|+%d*J z<4xQej@J-s-Y6vZA9b8H-L`do_-G5x6C_R#-0aBHbQlgsjixkE&|3yJ z_ePvb`PO0k*3XUg_nxaCDZa3XgW+FrNSIT%&!7~ZRq{hOl3Do6G&A-d;udaMTsph( z$Au^vqBTvsVr>L0p>!DC>@rD~Y(jRspMt$9k zylcy@V81AtpCb=x=QD?|c$iTsuC;+u09_$)?#lbPWyz;DWM8i}qZ$Kuyed^4iwI9p zxZfCdApwQcypt%D`j@14eEqINreMl~#{3HJBjK|pp<^mk5nKgoylUi$wJdWwfE~_= zzuaOtpj_na3;A=Bd#(OW@%=Xu%=CXH<7@34K4yUFHOc!E30{Z(OD+M4Ry5y_C~Eh5 zAb|@<#!(Leqr5fX3HPf%b981nzrVCerHtwAj98GPx}_4k;8lCEdE49P9+~@HSZoit zcAR-EhCFS+SL5mQ?KRvZHEkG&0IOSMF>KDr6QWMYFc6r)c;UC)B9Y~wnasIe!r6l_ zaw8nDPp5C>%COz!VHV&O61aJW{ZH`+N$4|J0V9^ZrNR4r&WSE>shU^Nn>DxD3Z-Jx zCHt?Z7$@ize$TIz`*7j}=cAA17pPAxRYlbYPT+2yu^m3^<@mCUs`Pl1Yd69#szhe; zqkd!fnp%6PqNCFZqO~ulSIV$R##})7q0HaYo_)Pk=*8TV^2{E*1@;ix)38hF1MF}9 z%QmbL{ZEu9c`Nx*Eu2;1d>VE3DxcNde>HJ@m#@G7da4jgKB;0t6dhrJf#bGjMnuUDB# zrIij7n~V9Pkx9YUTbd|#h= z%p~gN=u_u9ZCFz=Vcb1Yea7LGZ}S8p^i0DSDT}RC?C6#{|H1Ftc{;seQZ*h@b^1Eb-R<{R4u(!9V6_Q-W9Ha`WT?COQ~l%C zjaDhzj_c0OV-Zl=sLpR`mdhdu_EPcYBG;piGIX=ZT{9bwgtj%^>Eqab&&-atbYQ8& z#|gkxJ0Y2J(_pTeS%{mBDQXoyb&nVP>HwaaGWJIXS=G=R`q+}+`?7jxoF^obGjgj# zY3io=Yr+sybIffeC-IU$&Mx!W{ISO}2kAw4qQUidgDJJ?ar>uPPcMb3c_}*z-R3vT z8ZQ|YQ!&eNng1^T=1nVP8s7nlse6#K)ZAu7XYc(0adiCghNkhVLsCGMw#L=pUEcQO zb?gWkEp0vXrMC>!Y2+@BTz+Tq?XjFf`Joey+!e^7`N*Yg^ig0-8J<%kMq#Dz?)**f zo9#`;H0G=eT-!$6=PCTV*9x2q8~3j`oIUgG3)DbL=b0P@P)pZ^HjP4F-^RU(<};ps zY5(J{hbSAfI(}f#fsO4lO=~8*p{no1h-+M1TgqZOhI;dir&!Lrr~54NC+jQ(1NoUQ zS`12s66b%~nP*hX2DGvENy;gxeF&U);TK_f`pBYQ^gGe&dSuQ+kP%lQdTwK!mYn`ZT zuY<9`b{-$vkO;){#2I!av9V;)q1~~BBJxSmqepT)uY;Oja`Nxq2j@in2WP6)jz7a! z{a6HvP!m7xv`3YQDitfi2fZe_sF?X_gixc8R)JsoNtcs4#Nj-AkY?vd)t~!n&f=H_w?v9B16me zhQBZ0xZu#3)xm7Y654Oq`+6&TXW3!*iFW!AwGFoWEgYF-;dAnY6;=D$UcvENF8YX9017YyOgR%CN%L3| z98^m)gf`z7$6H+KTy!?( zb;taD{H1rnFHeogZrU92u)Fuj`!#+1z93W3oAb^ZJpskmdb?m}5YADpG}Nn+7zfSj z_!tdFf5>S}r6C`|Pv*>Ko3#|~w`A<|&)ONejyv!x^3&nySjTP!;rzmcw)-v7_|cMf zz61i)VdV}Zna?Z)bKrT|)~l=-TC2;7Z&VBZ)A-sxUASEgKha~V%xG&554feqq>r1A zT6p@DlHPfc#>9jE-mUXl&dMa>NN=~-eZ}KSwEg~_bXagGSE3tl*z;SA^_j*wf~9@0 z)bsy(t4;j(D<1sP_6)+7cbpIh!8iLjT}HC*J(*9CFMGNEwkyN6t6^X5@T#ILO={!l zmNZY-qd`;CLu9^hfWQP3lZa1ixX?q9bW&5F;@O^vD|vVSn8&=<3FP27%KM8ZJeNd3 zXXig(DtmO-jA%0+-o+zAj&whJNfe|`#z>~O)=~XqR}WD8ce37U=Cql- z!zLOuogkV;SzZjn7%T#ONRbm*%@Eb~DD;2NKdGGGYdVr1^EYWe`rN&`a@`W8#}@qQ ztfnH{kXr0#!*j%i-Q^bU^J;<~Ym5C(6aEMKRZqXX2SVEY)#hG)#eL05_ft3@^v<=M zb?~_1<|t#x<~?e&_P*jFB4n%FtAWi3*r0TX z%#XRH)c@>fZ@gaFWAiG!$JQA6IHSPP!SQ9vH!h)vN*_MyZ~3{(V70XGbPs4>zP&sx z#F7|)lhfy2-bJP7LW9wXSP=L29ljOII!vZH~qP-njC<4T%spMsA9atNt?7x16~r z7P_c?`4E+>jnOL5dGKxG1Gl)NpYpp%_J^cJ1B}r@SX#(J=CK(|svajI+%uIZzN*mq zl`V5N0o1mmC&qMVCeJ9Q^VyU-oXFPDkmvB)gQK&NGAp3>R_`+Kh3!7br@Wz~>x-Wr2b-Nme}{P+Nhfe;3}1Rv9g( z4R9pA*Gjwdo(Z3SHx>v$Ej6g^7W8n)Wj|Q$HaU%ctGE0(ApLq>r?5LfRZ3yEdU-#}5yXxD^O*EE(iK680?os;LAXft~FtDCJj3Wt6 zjoiE?vv#e;4p@z2n#$;;5dy0mWwQ#qMrVS9#az$uty=(n~E$>DQEQwpGbWn&MpL@ue0;I z-12b&eH3+l^^Sd}pkQZk*KAdx^*nL{ST8!_3@MMEj{9LKkAME|(c_s{2Ui(sGhbkQ zBIyLdP9=d*!DWNu2lWxBMSv3Y91_d?PMeM2#!O<9foW!T2yBqPsjix zOkb1>aS^CYOPV1F+X~V|DH&N>e;>7n+C6Rrw&S9dp2^>TJDtDvCQ2}6KKk95&yjij zhYL5Ob}6LY+p~~9ad(bKFWy_sDkkgvd7;e56fJ+|3~b}TSQkYd=7`6P9|Eyq$Wu4#UXCjkKXZpS-`dhRvtJdi_p8M(L`q}%|<%I@8GDosS z`D=cukbg3noL%LD?FL&^sQ}0h-84%tgl->pkmYZt1gZ_VQ?V8s47M|;F976>U4zff>_qK`vn z_QRYW{Xn_c40|Wn)v*lrqM(`gH=vG6R@A<|9ctp|QwYxS4qiD>-sboci_PZjlsBb% z&{f%gJ1a|he^0~l;<79OqcuL1De7j8a()&y$=%xUe^2cOIcQp7_k+GN7_Z`c)M+C` z8&tZ3wKMuyLNvY_be>IXLZUv;pVJdA4zl3Y2^hfE>re2dB$UeL3vpcv@m%(V>aKgQ zR>EC+FH-MTgN8{)L`ey<3h*c1Im_kpcW61?6Ti}E!>SG!z9Xo(!rznK?*73s%tSvv zy=fN@dgb-?3Yd3D7hmQ6kBjB2@4s-SwNVXmWS~QxXtZFzK!@5Tm-_Hq#IQi_^B8P- zS^D_rvoElKpE^!l5OMfrgu@Rj}4|! z6rV*$T?ZslU{$vWn7>^j;_;IA!u7-YR+pU`@Zi=MQp852_LBL(^Y*$NH`9@y8ZR3b z1MdZ%jaDL&S_3YT|D z4ba!)HwtE-!67AK7!}yjU9;37267}%6xXN!f=kE0&>0N~44+PJcu$y_s6fF;eFu7x z6oZ069po1m+%d$X1T#KciIkGyh3lGyj-qrn;FP0mpFX9@2|=}JD{K6Go!Bxe4k+W* z3rqiBvU6an=|vOk|MY#!crAuUlB%m%8v-Qjj|Y#z7@WUe0~FiDpE{HG27Plz{cDS# z$@{CQ+!}45u>Ai`1{i(g8VVD{1+wcx^U$4k9-@Hnd zQ?F=4{S7!F`gEfgbj=8vm05-c8{mcI@4InPCWyE9_;jJ>p9a2g|22{wY}~)7$j?ns z#BjN$<{{+y{|!)5lOTCmWiyPW|4a~+qXZVgpY~<9rI7Bg`Ha#CbujvUaP1Ra^I@~C zalpnPQO9Q*Yvtt)+M0;h@{%^%R*~+12%lzY4$fBo*k`or91vp^i+hQ-K5H9Sq$!O4 zdj6zF?Emr>(NYz07uqZSxqiOn5$~T*2zdm3oMQtkYAC>v|A&enLP~;CF)V7=Fzi(y zTbtVlqfBSspVqcg@sSJZ1BS=M2UCa%6fimq?(5Vmc-9l$?DtaOgwOY6`hr8-HMuJv zmw9P-g=3*+rDSX6Z=p#Qr8E!Ce@duanLIj@5P|m7D%Au(9LdZgGSV+j5#;x(yLZx) z+w~_bGJgJ`ib7@>xAsrGnsEIUgfk~`Sal8hgL*;_=5m}MGN}n2fAGOqgWPLQ&+vCe z_Ip2qHplIFi>Z6~pNjY2)vwPhW={Pt{{;p%NsJ1?nks_VYUnmp8^A;$;gnp1%g;?h z2Zw7Sc>ZGY`=10t8s7y|_CZP$5y3p4iaAMwa;7DO z_*i~DMy;aUtRY?w{cw5e7^WIi#t+J)*GMDRnaBQ5-tNNWOun5sO#a^6Zu;SG z|JUO+!g*Qi61)H%XnrAga7pKNs!=EsXw)}g7JpOX3U%G<_NiDu(J3r z*6b4>9WsM2kye-|yMl~nN@U6i>-K|oZ>L^UgHJ4JJ_rjUSNB6$W%);!G^1_*)NI=5 z9`l-?z$C7^u~?k(tt?fX+RTDHpFR1tqv-;iHb~=*X)%62w$o=%F>kcR5r}lmp9inL za7HZf_?22pAoDx~yKoe_<7RdI2k&EkK#81nH3JpZJBy8$Z*<3p&!NU+p-W*2DxASf z_=?tc^9A2!pU>s}9K3zFT+f}|oNiM{-pq;+EH>$v4a@bj3;oucpKsQS5;BJvRnL`u zySuCXj?O!J(lX14>AN5Bk^D~&U$i&w3c@Cwg3VT6_9Y3^;?B0wts-xWyGL#omc2Ud zUQ42Wm-wMiIAA#NDtc)zv84p%?@Re(P+PteD zPOao2E;nx>VE1t{Fc)!Td%PW}_tFTPW;z-{t#O}5!WZnnwb~uWh(`K-d855xvD?=D z%toJ~7;NB$zE=LhE)7RiM(W>DFkb-)<2}E@DHW`jsi@oh)m~riR3oKmgcZ|E=%Wry z?bNJg9l($~fd3&wc~21Z-fVhljD$&yUj&)UQrG=I;?z9_{h zXqR|Iry+P{mg}q$RsP=FTj?fdi~87{cX3|th;Sd}e(L|w{L^}!FW0_Kn^QcrB}aR{a@6UVmq?`|D4sm@fVZ0JI&Q`BpBix>NFADOAlCF;@UJ=qe+l~ z20#D+011denivKO1$A{-S`zN-)xTQ!p0B_DyZ^uY{a^q8|Mg0}tGoZ-|E{&F^jhsw zudPW${7>kP_`j-~`d6-AomtP)-WnJe5zE|o=r=0LCk`sUuwW`s!2+ydEp3EK5@bnj z$(1DY>qX!26^9hPxR=nltJb8oc`!k{x+CVHT~c&M$$!ASm2l9;i=hm^-0;_3pjNbuU$Y8IJwK`0qJh ziPdvI@7Mn#^{XB=3awH|G`g=fRa&lKC}YyxXY{8rKM~SyeQHnK{8ZFn(xSKUfriJ6 zmxvE9FLn!;l+u}=Md=A74z-g-znFRo`t?Dsx>4X@dI8EF8%8PvM}fW>v9P>KNGw)n zz;?$#Q#-{oyhdWb(?;LmRza4VfbVzi?|eMYZ=e7C9H3$#m|AJFgjX;tnYL9O%(Rv| zU#irOio4{lZ`ZyOT(Q`$f7dOhs3I7(_V90%Uu{gLu?Jjqc!6&2?(X#+0a6taCVRU3 zN8XPL-tPBx@|iyP4pWO!2B6)4H-7(<)t^h0oNel?RrE^qoVDxNrLR{C{wAkiH_i+W z6deL!_u~+z!nVY>hQW<0rJk2Y8C9Zh)S>6OhVsxrZWZEzfe$px{|$i@`c2@k{g4<0 z39x9))lm1Ly;qg?uxR+J84@(k|BOPA$$3=&y3x2TqWr&qB@RPzcxU?ey;}8Zvi(}_ zTdLPqPoK%~w8qaz;w2Y`=Ub=ZAe>~zv2!S0+r+6vh;ogTfKTEh0kWJ7jQKa#QOB!z52AVDqGSPE0vC1uhrZ27AUsY zF{uCNsluj3r}sOCjh@ih7!?J%(rrKWC(+YB9_8- z3W8SRpxH<9{{>VRj)UDofh%`iUS<8rUyMJbt9WStN1Ps`YRs$l+DLdrVTw}qR+-)y zwnCK)rqA<7EBxXNGZfcaiiXxQ{JxZAKx=$I;VYA#ghhe>6X~Yplp<*5u~^~1`kM3q z#gJ-EQVKl1{-zh;h_!!j@I}ddJx)a_q*BAlsxM8+>GwjH!{iiN*0m5g?^s z0p)^PuB-O3o_u~Mu;8W@iU7p`Y7fx*0o-d{&-y5xnJDHA zoR>%Y*W?;t(&It_&@YCGkxeeA@5-?U4KMG;0tEgVEM0^&viNQ!mIk(0(uPcYZ>q<} zPGnI}tX1fyUS;3-B{)fXn|}M%28O=U z8Sxe9^;g|+$AaT)$@oA(r+we}tmh>*A4HkGBe&M+%OmyV?LTn`E(+}UAYpIM?(h5) z=yI_tjqAZyVS;i>hl3#VH^yjBT(bXbf%n~9!z@f6|AM_^ zaiyd4ruud8r{6sKj zvH}IAx08S28XFz|5jgEng+HkM|Np}_wG4o6zA|iu$>6L;T*u=+k@2J)sbnjM zjb%KmK$a~ZQ~*mpr4gNaY+7Wn9g!@BY7GHR3tI|h|Ch@>9>#797s+GVX8;1Wx-%Jd zW)lgoPZUy5pX@*4|NXJ+za{?=KN(~LzvvF+vTu`Gj;sCNTEh$YE8!(Pl9E2Euswby z!u$RT%a08DP*3Kl%MQ&@o0oO*+sp9SybCL*m1v6o6Kl(oi<67RJ^Hs7FPzH3N5qPW zeqRKIR-xHVF!_A5`uE{ntJM9ws|?URXH2yEGn)26wBOp3SOgVu65%tht0-s3*HO;Ea3P|cO0I74@BptFuP(Jy~E zK&WDyp3As}hum#t{F}#Pd_eyGU*W6+@_l!%9OSf@K9_#}PoPL9tCY5i|4ZGkP2?1G zvZVa}`P5r~iY}Y-%ixZeK4D&qQu)Mbe$?iN$iD<4&|^lORr({=rZTW}e>WQSN%>GE zfXjcKAY;s5uBy@5z`V7OxPvvV$&+7%_?{aQUb55_Ri!U(_vb5!$&Wb1 zvuKCmyBYd={hknS0(Nsb_?Zgd%E0&2HKwHmvQ$CI$;m-C;QK|0|Ky+fnFM<{|L|&c%<3e;44$!$oc@%TPSa#e)(&b@ZMaU&<9r zYv3^0Bp(_-2B}?EX*e+J5$@Imq!b4s{;pa2Sqb(Xz<<-TnkBao6hOgM!Rtv*4!vi9 zO9znCmvY*%`u9XBZi?-D)qP&A)iw36cZhnv>hgYXffP63oF*)F+a?qJV2mc@O)BKHZ5;T6Q2k;LFQt5!_aWeg_XgFgZab{2mWq zTnf7H9SeAW3W^LCk1u=V42Ge!#Yf=Ikguu3A^}C;yN@>)S$1(CUI1JLt%yC~LMkx( z-Amop>ffzcrK_)2pVunsYo@1H=?NGrgilC?T&S>{$`r^N?x=DTWy(5$;FcI&t5gAPC zj+Da>uZ9!d1Tt!#jAQN71gVg671&-6q&a2zWFDIeU<|=g<734I<3Ciu4mLJ*O|Xzt z1@EpkBEYIDOb=%-|F@#oB=sS!(W>s(s8%aiH>*oTuUn#jM5|ugAjS#=Bfp4c*?eyo z7{rPwqz+)$YD6_qs!5whlzkuMK|Zb5yT4xdUhRF_m0n8s+Vy((eJ(kDe!bm#_4@RM z{nzw_knqO>&EpxR>@ZyzF};Pz^*b1$0cH455r#zwJ+k(b2#6)OF|#X&cr+X0&asmr zHzS5KCf>6`}`3MH&mxj!3fvCUgWUt znwPFT)J*SqJU-32^Ox4VFQCp!@rI2CxFv9b?bqIEy9i!Si?!6zT|C9A;F1>oVlwRHkAXWtcfZ<$L_esScz_5WO-%76q zqCpT`6bN{(-Lo*2OW~l-8wyY@6O+I+T>wN7wjl$cAP=8v^5zemgYR#Kxmf)f2^4OP zFWM{}_A2h{E0^Rb*>t)2^u7pb=V3ONn%5}O zv{tMAd-dMp9J&zLd^NUEx}_l*^-8ixaf1mdie#(UhB$4c<+~m zPmP*;vwn?&4UpUV`~6$6;VRXA5tys+O9Xb1`cD4CPWB&#BFaoK%gGJyb}8YL5m`au z^X0^!eZLIV7j3$47+2Cj$(2_4iQ$$TO?)fHS`o6&>;12!7+rs_o5O#I#V@9d7wXm3 zMz2>jU&0=AEJD?FUI|x^ISAsnd+=g3DHV!0xUZ}C6_J02AYE*nVyUe69m@}o-2VFn zWp~Kcb>goSVz7JVjJ&saOc3R}y?Z`1T$Y;ibZ)%G<5H_!!Z_Eqz56QGTko}kcoTja z*Iu_mh(~_#E)B?GSg-g_dz_H}Wi-%52m`A67}aYw-2dZhjPJ}!3e*?qBmwb_`Oy3k51qGP`iya)dUFKzF+sj z0W$hH8rr}eyC5+>=Aa=Xk;;t>m`XR3{J;D_u?+YEtm22qX)ius-^eCfKk*oCmfOC5+UU|+8xjh%Q$HP8$`%N(NRjxxo3t&29= zI~@6w^eA%)&kqn8wD8C$W%qyqH3Edd^H@!m-(cQX-IZn{BVZPEO)1yKUtXgwm8ANs zn_1yeM0x>nh4oe1Q1?u^k0}r4vg`hAq@=3L^s>q@sal#wSp`0r`gT=lhZ*~NiPdi9 z`soyASQ=plK6Ool?3a_xNqQ@*_$Z#51S)ga4XN=xb3U24zOY6=0)lloD(cH9X+HfC z@7KCneG%`&T>i8OZ|_V0SyR_F_b-I448(ok=v$w&HGjw=(Bv!1UuI@GEMXj~AQ8sn z>!muA@=2oLwH8{X_1=H3z5X)nb1lL}S7n0Ah#g5A$n|*ZPsSW!2je$0BNnu+`OO2l z8?-~wYCcQ!!bl@HK&_mxH-{xE^tZsbaceJ-rk2Vw?AC!DX0^lRv=ytHMH6(|cU^q~J`HJAciQ*s)$83}5yW^% zmOI!OSq%n$v3?mX=GFTl%hbMZQx^8Iek7t?=G2@08w|exh~D=yFSsS)#s%Hl#rU!* zv&o-=A!rzJsNa5KQN|xq`s;_T_v23}k@WHP_RXzF><}9$>r5$Q7z^A+5J*nvzm_eF8QHgL@>z91ltoIdq^W${7 zIK%M{7bzuvTv0AKUrt|$pHZ89d&|7u{_j5B?^v-GJ3HWiuJK=;7=n3@=37JRq4~Uq zbPfMno7IQOt+nJdEz0BCCVR&H?q01N;@ni&R41%07!-CuKByw;~luI{QB&Y-Uq-y8#++Cyd|Ut{s%_g;KKX*6BTr|@hjg-)pCwkuLyfsy5+TQ>g3&f z^<(wypS1qHllU0G%Nqq?+`<++C>H-qfgCmwG`?OgjPp&oN31vnP#XY28-5=1a>sB1 zl1pGQSWI5>sJwa3roh{Y+~p`P!{^e32j|ygSbH?zB+5)Lx={drDE=rvfHD(L!zlKk zJJ99uB8I}~2xkPO8`8MEmRRiv?~$5lPtvOKMq~`=A0#d~b^Lnkb&PX8Qu~b8P3>?PphOQHcORuYKXDe^ zRx5X>|CG?*aRLUIRwc)`<=eaB8V@=Q{{f%~_KEv&{;(s+AP`G+irWR+s0y0yKEqCT zI0%Z1klRen2A4~ORCd5j7MV0Hm+@CMbszl#&TwH!9@e^9QKjTG4lur~>CluMz z-tQtmShZto@b!$Ilw zU&_bLJ$XGjIs`%kbrDt{gCX6a=ePRzsA$O|jB@$}8fkxumY>=4+@DXMs7k=paN zWw;<3N%ypDHr|HVaCTGTyq@3TBCT?2`wkO<)ajRvCN!NocinoDlVVo!u>9A;C9-P);(U z>Z+=$s;acB1)z))gn~j3kIAuXtPzL6&?H3oCByiC1h^z{{#7r6))X29Ft8Cu4I|Bq zlR#d+=ZSD@vlYl=@O?Z^s5Hfg_!x!)r31_fLbd<`02Evwyb7!VKpDj1g_*W@`9|}9 z|0mCHf>C~7#)If-Tj?;NzbD$NxPx0t-5b=ngX6Ind8w0{XZ=pf2?Sz{xZ>rnaYb-; za%5Rak!DO)nOnG$(Bj(Jp=i$^JI_Oy_rH_-ciEK{@73VWWS>uDk1yb$2ynni5%_Ps!~+Tmgd)33it7)cL@Y&X zck6KQA_XzZH-@#I@|c1f%fxsx>9%~OfPbG#9)qVx1Md?JKwS0EC*I4v>h7nADSed& zHKd=P(soEsa7w3eZGk9Q_;rLg^ zaEnaoFt$(<{4?1qXZ=J~RG44?Ay;35eecSnUgYf0dBWtz=~A>9qSG}!pgG_2eE6gZ zV$SxdS+kSF_eOK@LB`j2)u8&fNQS?uAp?L3rY~=^aQ&p3__x|CPuJ@8pKz)_aL?ux z@1=BMxpVMDDaJwIHKPTDzh8t2M^X+4s=GGFn#=UJLGr>3ODZXVM2L71RyDrrrwkTs zpX9y49H}6Eh>l;Ftud93UwI^#@VPY2#}heTgHQK02kw6a+}Ro$9VGX3$eZX*2FN00 zXJ+82?UTP}?KD9&J}}D4ke5Ei9X&JxJUVv_5`zF7oA{TH{!~*5(fPr|NuJ{bck3+! z*&+O&t#?6z6Rz0+t@Rrh>PCxEMe9)HoPXF{Nie2(17@|Kv3J+uHV)19I*aELzViP5 zB3dr}9jlwXpP%%tXXGM>BV{qmOb(m{ii;rgWg_YgdJ z%@W|5D1!V|4=CnL!2Pe(DQC|C54IGh7u`?yL=oZZ@o|qj>nN*sL9bwpeh2rSVq+xT zdTt|;?|BpC6vJa+%4_0v))1Qq-f#F`YzceX*>UH@(1~Hr>fw*x-WDrwrWosh&?*Yn z5vO+R|B2l5?$_ZPRdf4wS$DZ|dS5+jHhu3vrgmG~IbiI2XjH=ITKp4`dg9TBcj7+2 z$?N~wk8s02#ZtKiA_56{#$lL9DGVy3qEvkhANtlzX0#s!Es8X zck7aIk=udi2Ld~dPoy--+luPNa?S7OiS&|pe=ObK`qssZq=@#teXVK!rSH}6(P~fi z^(cgr@9;r-e6wnBfIub2S*OOJfGZ7OgZ#f=hkUs&&=k6i$gLAB#}L2Uj~xHtpruGV zneP0ZgrD2*>P(UTAf>94Z)9Iyb1SyxPwHI$+n@gb1V_WEMfL8;q_O{TR+`|19Wa~L zT7*p8V?z_60%G$|(jN1R#zd0C)>hFYt#x76nP0oRFzZ)-#t6}#1yiQ{vgHTY6@pm{ zUdo~g_@=LAim4xXVm!yeTP;*kS#Y$=RQcBks3?$AN4Mv_-XO-H zd5GiQU|va`X(fo}nv^~YT~*QesR;uVF*^tu+CMZ9{9mgZ;Zb#?2dw4EKe-1YN+&S* z(`~INfe&oqen>A4+Lr5tO&N3D(|%cPG!O87o`)Ml3sv7fJWbEgC--yZg}y&XzeC!+ zUcGXY*RR$8Mb&Nyj9MD|jW8z&CMp7 z62_u9D%68s79UufP^G-!=Nb+{OL;g~m?*QUxXd zA`xzX5Yo^g2r$r@v8^$mH{{5pO~ru*qyPW_4ZT5{8HQ>Ff1z!Bzsc(Lck5rRMW?F1 z*1naG)}-}yTGfBe^sn(NUmISvey=4Isds^CftiAVRIXf>=Sdo>FONR*)LRu{ zSywRU+1a4YaqVM%fszOhGY}>~YPG`kbciftL-*$-O#NU57z*M0ZEBtv$(~fFbaH<2)U)9wEZzgYqq8t8q@f%i-u)fV`lMhwI+pd}=cf?WRGZO#=BoO*Xe2 zzC6JZl3|KX9@*{V-ke1<@BDbcVatfzRWv7zjpzU2P@s123N*faJhoG^nf1T;L@XY@ z-QRb6{W-k~TB_%<$bI{&s*|d&y;$x}Zu|)1cY-jRFtL{Ht#bVh3c5g)tu~&LbgF8t z(c$uR3^cq09FW2%I|(E(ho0{GWTUK{e<5!+(AMp?>#XtM)eWHHuGO$8)N^d*!Q|lp z?+D0&Nae1%{#I7|uk<#)Ca(Q!^{d@#u5VhuT%_grmDdSCpmrP{e*>6mNB}w(0Lj%d zdWASW;4&YsN;uB|948em^`>tbEq*XtGo{nB_-RuZVH_-h-u_}QM->Ou73j0u6@)JI z0Nu1ti=rn{YiICdP}tizI}M*W!5JeKEdJR0O=P%GR6Lv#WijhcY%{sx)|>&&Y~NJ- z&qxzy%B0)!JF2dq^d@2>*00v2_3HFjyZsZnccL*tvv8EZF^g^lO=o9c_+A`%EMRyZ zIQTg$5#-{rT2lRj0k7opRJ;(8*r{*Ds<6=n@ySGSLSPpc_ISys~mr<@P`?CKyf6E17Oo2|FkW^ue3+*y>%_E zZv#MV4Mp%X3k3onX?D9<35%Ds*8=deYO8o5AB-xhs;bp-bqfJh!8To-fWI*Dkyyz3 zNFXy#EoqJ+3r^)?`|r0Z4^BEV7!5gOhhx_X)7%fCGZN5ypcbh0UITr;p!D|_{|k`A z!6yo!WE=)}fcnyj5ykb_`lpN(;2L%Lf5R6dI{8DJ;L+?;3_6%f=7GM7lbZ)v?>Z#89`B(I4GkyY;M|U-K;n z03aYpCF(C&W&sWZh$%3m6|~cz1e`oLsxB|u!8n`}koOB`@OH;arlQslLnFaZASU3O z_dG}r2f<+v^8TNgiE`|Dp*Sz#lr$A6SO5(vtN}oXu%Vxc8kvedNKV8xJHP0~@kO=g zL;np6g;521GvBy*C6V1Ye*^@90uO;Do`J`oln55yZ*i0`7&i;1@*Hq~J%0ojMm#<) z9~}x|+9P=fRs;g1vW=n!uG-O}dLXuDQ~v~|DX>pd)`EB9_>%ecZ9E$eehq7kGIYgi zyhGsG&_FokpaP|U@A3)7e}cnUpmx(I{<#K=U!1Bxb55l{`lnq;WyVN3!}E1Iw-`+= zrf{DV-+8(fv7T6w4{1M*%r{wN??Fq));ei%+ z+;Qg!{vM~KT?*Uh;W4Q^g0-)9kLum`8Y|$?NQ36yybggtLOE)!tP3E8M~DYr1HMJ7 zpmQ}27%IOHbC<$EgP5fT62W{0-TSEEJpMM5*XOFEE5llc9FoTjVboiL><;!ib=rua zx)Nl)@Rx<>>)Q@-vOX7Pv6oc*vb!@8A=jt5<-46IZ*!K zHy3JB@rhI_an&i}Ap#-7}?Quvr4Z#qLm>p{43PkxE!*I4mrtO@bh z%%!v|D;y9Xqzeg$Y^25Kb0Q5nNaB6#;9k??gl&OTVaS+XF|bVX;?wgk`K0$LSHj{; zPXZ_4KlZO{@Q2pkPvxzk?8Zkz$8-fvbr;>W^cL-e@P5Rff3J$)t3*wA=jHwK!4dM} z4b4wMsOOKkbAN*ic|zmh z_pcPXmUB!vzE9gNHDlI7P3HDhhfWiiI+OHS;p}5LKAnmqzdP6sa(jPIhF%Y+tJ0St zgPK3EVJ<5K2?xj^EDAOGMsWOw*GeDU*y8FXATTG<$!)C36!|a9SQXXSqZlCx8QGnX z`Jtks$Gymgu>mp=JVkz^4-iH_8k4z#&*OwJXe!DUx-4G66>XV2-}E=Em{|j@0Hj+R znie?!<@-csvApwU^FEk1c{r zF!c3#XrzmN&DN^0ju0h2Fz<(&>uFcls93w)Y?t`HJjUOD!nt#HweaAH_2%`q@V^zK zqbV@1u4VWb;tK)*>=E&5ojBKiveT$fPUrqlFa7#pgh@Xgy99>FOe?2oC87!qX?o5$ z>U_bhP6xCyb<~rC^iS)g9oA$)-RcZd)`a?RIJdwYVDQOv;ii(hr~ijE{$COv?Z=ZE zS<4!+ssY=Cmdfw(#e|?A);#rmz1)%`oVu)mRwQQ-J^PF7XMn3iP1}19_naUiI_vqP=Hy^*{=A>uKyj^=IH=+l55d-w{=8!`X1GjU9Enk2X$;k@9;^Ff~r+Q zWc*8d1su{Zv5>%i=iyjF{Q<43{LE%;kGU#gg7AT*^Ob)_7tZ;6H+T3YE5rtt-teE0 z#hEum`&-rM$a3#VqZ2$H#FG#%jr0U!@Bbe2fiY2I2Oh!;IeoQEgRm$oVutgQDExbcNw95m21i+}Nv z1}+O(@hR>FUsnjJr@;+AJfh+pE*g~=35BZbM~)aStyD?iIz)UHFG-jw*zQ7#ThG1+ z)}U}2GPs!D4Q^-d98`&zQ9k+-GfLJq(YWuR+Tc8nmG+Zy& zwh`T<8pR47@d@DAxW%gkO;h5R$ zEx{S^cEB;YZubyteow0_S$whmaB7y~xlNuY!r*%H7EvVKIFC60sNP=hd{;IK#5hs1 z9kpKR`?|aIKe+tA|KeYF?2df%{#=>;V(n{w=#P`$U&wi-MOWRT<=(Q%*7zdE%dM0% z@(LYg>0VhOoLe`Pai`n*vCvr(;h4>Z&yp{b@P-g&#LZ8aw=aqi7zybJ5f+INynjyF z<@~zA2$Epdz0brL`RvHI=zIK5J9n;^t>>HEx7xb3ySuxrKk=R3y|W6J!NB3+V959P z5IJdgj~*2amvz9SPk4a_#Q*>R4{$-68U~65bMZg+g!Uuvz)S6x0O=>Tf#sCBWa9fsG*X}5>-^|NU8T1bwEK&6?+Z_B^ zFi+D1wnJNf+-kdLm*k)bKtuC=97u^4>6Na)Pr*8rDL2M2}lVJ{RV>OAwRYcn(2V8&@rx8PxB*10o<8 zutZxh^!s=u!XrrHyPiMGZQdcUEVb*!fs=HwWuR448d7?;sYg_$tiLZLf-@?!DzJjL z7uZep@(8ZAjdzM+Y)7H5C#_ems8Zjqs$y(+_olULlh!})z>EpV5Em1{y1T)+!622z zQSGJiU$j28phwA@(K6mCYUK5c^<<6v^>uuhG8ix+0$tE6Dv>gk2HWqv@U+J7awb}N ze1WDxGRAN>a>iZ$@FHp3zJ?ulk>!Tro3s&*&oc>eW)pYpYp(EB?J*@DX)= zo4^j%dcCUJ1p+Y%@B%1qss~98m)|ULvI7$@K+` z1?6CZ4{%AA9hEI(U$jyW^48A=|Bi_+z4F$C{Ob4W*K1PxwOX+eYT|GFo!!BQLK8#_ zlxja`@Drh8*=6?fS>O)su>Nl3?yoDN1D63*ELsV8E?g4JOILO=ge*!bmjx1Z^{P`w z0@nRu`?!m1E)-os!7{iqB?Vq#*23zlrf4W6g`clEk07**%@&so2Lbne#{GE*FAoR^ zSP%rKA^{Dh8%y1cCA69l{Qd)Os9`dkL=Xvg@z#sDXHEO2HUF3YEMUyO#HJ-v3ZtII z95GjfI$ZNa*0ea5nV`)D8PheX^InANt~1rhoAP+13>u1DXrd1>WlA{IMAmk7`914t z#`aDI>|snAk3RSVmgOaOdyeAZQwwn}SxKRSs0Io(A=2w_C)rB~cvgd$2F@N$01ux5 z!^aL=#9Roe2JTsRsAfC;t#4qIQ7|g(75C@l9j@Fu5g7U;|C5uYn@I6arO|#y^V=G2 zHf{TauXR80sii+hJe06Y6{r8gosJnqj^;AKgF(@=zqhM}yVIbMJb&K54lk3-`7T&; z9#5AMWWPeDIVI`W!Y&NRzyx5mLWsuo!S6oz9lq*S$wy7YLyPuHcwI`!)H zim)*R{0u=~0x+p<`)NpYQx60MKvJK< zgm9N%4WjF~8Vyi*Oy&F^cZaqcjRT_vXiNybjv9=&5FRem|4!Z<_s4l54jJ5=4qhVx zRpHsfPzx!+NbMOB8&|#*Tr;W_x=Z`t^j-Be4>zbNL{I%RpSNBaDE?nx-ap$go#ufN zR=&ya`k0(5rX~ISY#GRu8nAFEaZT9=+)n=FmTm#8w7m|M;I8^l2r>0)E*M;TdTZv7 zh>i>JP(~pRLgItT-S{Nxz4^+uHvg??D+o_f+(t9SXCSC^16phUXyjP>YfO*sS>(F( zCsJnX!MI;u3D_(hn+<|oK5xpDQ*%gNht3kK#5_xnIeZKtgcOF@ASifkdU`=I?y#z) zxd}$C`MreW-QO*mqsGKsYBT?p0$8Dij|DPbH9<-XKr`QlhQkPV9=Okc@cB4q9~Yod z+8e$Z?eiLOX)XeX6Q;;Mm112!HZmx<4)TRqAd`*#IAhi5WrtH|t}~7~jE;g9PcQJv zM+?jcNzz0;wIx?CD|C2Aj|!?*<}96PKo|0O_DIl5^!^nzvE8va!K9}y!%rXn#M_sM=AjXr%k({R@0xRy5cq2m5nC8Y;qAnZm~ zSJvg`^n5>FtE*b&TEE~5SRK3#pooTO`PL=TgioDpfP4@Tv6LWElOPd7DrW$GQ)I;h z!T5aOPCm-N&Ru5b%v>$MrJw45$ax4WUI+^UNReptV{y z+ci0Te-0IOm;Rx2qxwNnD4)-lU(rBD?WJ3oL2TH!@wwr1!-t#}5hz#&V@{_XxxvBe zN};89n*YR`7ni5W?c3p^ybh}q|LjRx)#qdNmXM!UHUt~`f)kXAX4`|*Fe6kq$6~MX zk>Xb}>7JB)I}%5X7GY8htU6c=4qZFN>Vv;DOW=^-miY&d)AghXNIWM$+Ftt&Nj@h<48`$jpZzdO zaHn&-Gm80s?_R@YBy&-fdKwN%j2k`(NcKN|7wkomSiz@Em#Z=f#IO92v(j#qb-8w3 zp{B>Z5*T8)`>?+*R$&1dAJ4z3sZAQHek>M8qtinLPEUhqMmw}%#e17op#6q7f|x9D zFx!NF$~c(_3*13+WOf*GeNxSQFyNohq^ZoGzFxn)|JSPcUi}xVLiMP1~thgj8(#B37eu{UQK6|N?UZfb_Q%Co~kU%sac=tlbV6(EMOhE&eZ!2$V`-gKD8 zdeCk-A^&0v8O%HL$@M0K}K^E->}?HdY#-IkvuncqM~Q5505euk`UD86b{Li1_q({bfY) zugTSO?fjnF^`)l;R>kz+$4Gl|JMF{9q(y=33b8qa^Zc@_tyup8(THASElFJ9p1F34k zM$+ZE*Z6RhjU^)BRO6l=Unlh!12i`V55e7>OoJz@&&(*8+yRvrIT>HmIN8^h-~69w zCJMoEgK3Qp zOqd1HV=x;`;e7CmG9kEnpD#4t?|05^{2J?R=M$Vo+b`+k0wWLLb$Cf{ucsGa`fG8+ zVZ9S1O5Tl=^qlI$(Z-s@g*N(T7=*+<=JyaxASbgs`wK?0??Hta7d>J8zqC4M(LO%0rMuuvB$bbNXl0@YL(sY!C@DdRtfJQ4f8{~jyHhEUFS3i9?f=Z5dMZrHoJ!sK`n)LI_vd?Wfv z3d!kR%air_6ve}+Oy9yn0v9+eKpvB5BLmNL`%*)Ds3{?!|E}3aZC1(ml~Pn_3L{J( zsP!ksh3}W)7-F%Uw+z|(y1FCdHj^Hv7wI6)zNGqx*h`HVR}8uwYjv6F^JK3#&^lzj zjJ?b!7!bf+h`tKmaCU;}sN|=xlYi0=;0~%N9iRhlw+3vVsFNa|=Tsg9E1g60V_KMK z`pf#lB5@tdO`7rIK}GI--PqTudFYkw;)Lt&OQ_$_y6D@B)viyH?@-`~>6u}^FeEJ( z{Wg}pu*pbtfSvEyr-Rd{8EXW(M+DP4hMgiZ8deA(&F3eeT>IiB}pXLR4 zqGP3og`OYJUxuHxAgBBnlXoo(opNc({q4}fZ@e&>hSB|1H|~5UO)%7dD8U;t^b0yN z(kt$yVs2jH6LEx%2E=fuHh|toW(`L2_*&eN*kV1?KcSvMPDH)lAtQ3dkC0gN<(2UF zDtzyMaU0aw%oyo91Cik6;i$QBVm#wY6fv!spt)n3G;BG+{$$RY|9HHSnz)x%k4*#l zj?5$<5A!|o2x(o~x(emc=ZcRgmGS(kAU_BCzMD&JCztBtLBK>|>X(Q-`0+(?1fwO^ zcrk*_O`Rtdr3#G0oWAml2vW7eu5MTTpAzyhVw?=YjvP}{?JP@U6Dmqurk1o3?N;E3 z!56v8=D%C~6;m&EZsRp53?8BV9sgq`V1PVV^YCtiGijffJK%HprX^W*Zk@?q$6 zL=(3Tb3gR_Ny+E>f+EJwDbcyvtGu5tdW5OU#Ww$~jr)SX8B%?7dvRBa%8G9qq=>jW z>#%_g9R`?Oyu*6t|YL{6M3ONJ})*`d@@+iKzLEg@u=Y{)ba8U1x~KSR0)p zml0T$9w38Tj8+x{;QR?raDTj6SsSJA&hUYUu@YfY*T!<7^H1Rv5veT|s#HR>{)*w; zi!NnvC0bk~@_A7;SGNw9o(zZ!1rRBc9wdIFP)vaa=Kufz5JW+m8iuL`b!bbHdbfSw z5wDH--~V5K|NZp+H~*_w75Dn35C8vbeXu1eXn;_FMhou)CqwQ zz=cehf$``Tke{v~?8~(Ofk+}ZQLk#cf)-x7nj$cXW5j+FZY%B!L~g>y2K=biowAuc)8Z{rbgJLbvMwtJSZ5u~qi5 zRs2vV(~i2G|%yC9CCg1D}>vFq(LOv^h@8=~Pfp%kwkpQxTYk97@wmQiYi>`Vus}QrfQIqBU0rBm-XJD{i&+Ntj#YoJRHXF628@mc zID&)i)_sbtaK%E52C;yov5(u2`#v8%jb;sj+IT=NLIf6fMGygEctrqmaX+DTSK9Y7 zW1gG7;%#E>YO49~9uqi$ROv*syYRa&@HmD-rbZ0jf*@_WUJ z2d4#7hYlPEU6!lD>i2jKk=|4Vkho}~vS1b5@3xisAz9=5eAfsQn85^vD61Qa9}jSa zvlAS4ICz)&Rs{3`0kU;vNmw<3xSO-E-n z29)X`Cm3B{kE|LB#uLWo3fTl7ed+4OB&n(I)fQjj4qu!9&{wN<@0Q1MxO zd-ZSEyQ=Y@r_0`>1qKFVnuYN0W|{=bspP8~?U#P=N>F7fOK^OhR0cT@4X;)Y3mAJF7xspIaUJxtF9J@a=lUa^6qPBaje*5I8s~$&?1Xh!q3>AbNkt{Wk7S z;_$yDxCSN`S__~rnuxC2`F;ICgR&luS`=GYP zEp1CI-ueoq6d?59SR^hUh&u%29@=*M0r2S;h$MKdt|!<0GL(9<$w+4t-}r3$(kEZf z!?D+>AQX^0QS=5eE3qsB&n48|ugjBNCAcQp%i~d?#j*lbAw=3ziYBo>F1PCMkGrwR zO|RC!Sg*sHM#0*P{Ac!*jRnn@4ne0J85bpvqx~gVAi(Y=Q@KREDfO|Sp4qzwYe58d z8|gU+3et_kl6n5vc1^_c_bR`7)CEgMK4|WL((5ofNIYY>&{P$O31vk`~q3~zw_wE)Nd6OPLEaEtk?axj-|KcIJ^>H4BJh`K|cld)c|Bc6d zM*1vm9W(ynJw5_LyqutbAn%OQujOB0qFI|ch$)K4`6&D&HQ9+OyiV>dC0n>clyhL6 zw2HPz$gFOCD+vEJ?eo_1dOW{c{_rdZ{0c$+U@E3EH+Tr7WA5<|1FICb%1u*~;Ifm! zet^df*!W&VoD$yV5$kgFKaVwgqsb9!!1>CmGHR(h+kLI z-r)OhR&c;f+z&qqgvr9O|M+M3f&hk6WVYhsL9GWk8({GP{u??DY9!Jt)}IZ;v)R6$ z!3Bm1+B@^W)-c+oqUu@{-qtunZF&rd!dl-wRq7wKf-~TbOwt@v{5t3#yrkp4lXnc| zQKbD$^nU!PYq{9E1C#gNAjXJ{!q^m8tNLRXJ_-mJNbcp##M$BGi|RK`cbY~|%_Wp^ zM%h)!NF1-0_`!G9-8!+d%tIXoUATG(y)m4*rxijT!QJ7-JXaxm8I5ImKecM)n(OP6 zc(MWH5rhRQ@2kAo!RRXmbzR>!JG&~$RbZSx3ISl+*Ovh?`i z_~;dX(h(Oya%xba8;cC4u(;B)2wN6AzQf}~cwsCb*l?1K5NOkkQRFJ{=)=?cub>E z{u>Vf;o-+0O*2ovMb?%V=#;|edkn=-f(bEpo>{Ga z9uvF9aorSFuu^Klf5QfM)dL;Fah?#r=XhmD>NjR&ZU{K=47^7TLl{hwL~d)xU4=^Vh^*Bl>R__=zD} zsTZqNc^CD7kRQ7SV5ou;OSZ7BPmD=40f}qAcuJa)n#K5m61ASxVEE|zDz*zwqV>j< zhoa?D@U}*W7Rc3lHTqlo*_|z*S3B6u6>hu&@9}lFXLW$t&qz05I0N79Mo=1~zkDC_ zkpEwt&t4=TDMI~6ukq5m2yagcmTQKd#Z-=Elyuqe9RB{@#yqcZPFvolCqsiTt$Mb- zK@7xcDa-KT4x)7dRbOQv!V#8OTQT!fC%Ip^Y>46J0&s%rM{S!#5KJ>a3~xAqj);y5 zsOAU)P5FN%JP<-l{;`kA!KNmr5p1B3z@eXT(w7=d zYf%^C_*M$Pll6Pc`~)+X*1jU{@3dCCLk= z_3i9Qe4fG4gl;hOC9@A`&Jq!_>s1hSpEgcw~c&qR{j`h0n(*$C5m43LchUI+)3=q_*;hA*RH|UH`l;Eir#Pw46B|cUTh(&t3|3Ol!;fR$vsb5tlRt6 z4g)SPFZX)y4BA~$$4vjUi~K4`ebUr{5@JTEq#gsb>kTi*qWy-b8&}p4>0LN4w@|eJ z<3j7^^=N*e+5d1!9|c@fxDm_WuW}cajW2?7IB6*^UT<$_xK#CmgVufj9tV#Ha)I6B zUWxr~poZiR?JqYu`AK`p`wUZd5rRrtyyAyQbjDI21oo)xGE6C5Lvql58<*$qtX)A$ zJzXlh*#>0!{~OsEb_K9803noQY`Mu<4=4Dw6@^G>7CXvcvMlL#4+2}@3fQ5IZHzj4 z!iVft3Y-?dFp~tP!6BWYcnXJmm@8`r(N49 z3JezAD6BCG+qiZL`ClBxI%xmvuT>*x@{5>JHHrU=I2%)4>j@SWV0 zlW+MAx=H#&Z@eUNVQm?V*Wn|%6tdF}H%i0>@_PP|XY7VY)dr=*&>(`}+kkcD@@q^G zaBH8-782uw;KrBMS(L`Kni`w0&_cpat-gtZ>^JE@Yw)>oTe`9dHq6dNZnVGq{1@)| zI>S`bZbgMQ(=fX-sQ!AJvi_REZH~0nadm~rP|VA?vC6}&qQ*$q*FIm>bS^Wf6PdE4 zkAW%NY3J8l;YguED+}aAfw-{`TUSL}m)MKi7(gDbOw#D~v~nP@`f#i0G|o8+nNtXg zH2MCnz21!DC%8Ao=h!2)h?E*tlOApeuiSzcuVlU;DnYD4P{Nl7axIqiE;j+&j4|lf zTMYTuW1@_!pr*6GTa}&(M~~LacivS%uNkNp^8ohO38Noy;xX)TEjGIen!Vu?s~i;w zzN^{&oLHU?tEqFm7K`uI{v!Lm`NUbi^bzysBUk)>_XD;Md%^&W3CBYqM}6H(AY%Y$ zpb%;U+?T$-1)c~SJ!i*|BZXbzSW4mt{u^?;Kgghw>NKN0aD0+!Ou~12$@6fd0nxD1 z5b!@>j+NaZ>I<*C?&AH~QjgvLiZH~Zd_M{MzrhY#@XPD!6QA+M-Xi6GVq8WLeMm0= zQZ{nu`9EK836aK(YmWKXviKy<=l9vTMBkWTjRX?G6vnp<9LLfneO!f&u#^!Lh7=#% zG80`p{(?4U&Jto@^n`S0gzn0ge7vx+1QA%oZni@0`FNcgN*^>7#PHb@F{#`aNyK+O zM)4;E^EOe%F%!5i{n9r5`i!dl++0s7G~6at)M4#cJ{DAxw9qkB6q3Y1t!t9_g?R;! zyXL!vm0U;V^z?Z`l~?0&WBf~n%FmE_Q+VQ#p@9Oo5G-k8FkU8;)kq^(>(|{{_pjI` z5$DDpT1CaLak~)Au6#afOAJ1yRrHOSm8VzN;qt#79&>~8pP`R!qohAn-QQS3_su}l z^)Yg>-B0=J;nnnQj=jP@Sl#un!5(~L*nCkMvw9WoiSbJKBZX8N`b!?sED;f$$G4#s zMVSzFNA$2%T(xJF?(kV5A{!H7xN=6k&t1+KkAo+ zADNnR&qUdAKjYC`9wpa*P%XntgTDQf;;YY5jX&-ux{spxRPRm`Cjm(!WV!421QcNH zO-O4U_h~QEE!E};X-r2XMRkH0(t=ZBuz2YYk%fmv4(MapL_rkfHzz~hcxWCYRT!BR zZom2+(EZB=y!Vi@7LwMSG+H;1hJNi`bqG1=f=LfsDFle z9-(<7cq!hZ2neu`uPCzq20*uvEwpbk)qQnU;oWyjl{_Ez^L)XI68NK03V{a*0000H z0zsM^2Fe9>b?8gg(2bk5YvO(XQrUlBMPtAIm%r=(;+5Pcz291~+9YoK@Baln<|@f4g1hT(n%&E?@}o;Js?A zQOwsK@Az1uzYrgMxZ1`15e)l7b>N68rv!rqjK*}T?s{+{1-xeYdza9@lKLm5kXPK# z(L&;sX2P5-DZ;{@<1)hYLcD^)m*-lu+7p^hX#)Jx}?;ol!Q_iUb7EFoEUZz<-64__JpM%$;HySMP7@$9MAlKzKk9SUF>Qm3}+sAg@lEyGbrW zMOn7|(oC85!DM}-;5MPqAD=0h-W<0%!rOeKN*#jf8dNdwF%2E`vfJCcz{C`znv=J9pFrO=cgT@T~-fB8);Z;CBo2uz~RZ zJ%oCPIs^_v1JLiFcbCW55A*!z2$CR{W)H|i_;k;{y&cNHiZ*{<$1c_D)pzTaQvSVD z*Q{Lp_qz69lq?g&p&+2?NkNg|1qlhecb+Q0Q!1-y$S=T<=3D~EYL!q2)2lDAh+Gl^ z(xfns=Qc6wo6O=YU^ELmlz<0%83egL99g2S=;(jrwM%}2aY=ozd#_clq`vRf`lKED z^86Kv1qRCi1B9`!+oo3?o526`aZAfD1sRHZQ?xbDXmCna&`R13^L+8YAz#`n6+~WL zQs1F3cURRft5>W3y>k2TR2RAYR z`I@CxMj+&}`9DC89t8*lpe6!Pd_HU#-mQ|9uo_f?*@)`!BjwA`gO`-m=bjk4-;y** zGHEO9-`O!pKS%!{+}96>!sG=(y5alGUrn>$+$l`!Xb+Kh;P3tL<5T#HnApv^`o)vn zvsVR#3b!`+cge5i3zq>IpZD8CINfg>39#%=hNc&mUxAMdAK2Sex#IduUoM~LLV7}e zf6Kb{T=uQse>G}v8))T0a%2}VDhdF+>9rRofgk=i_JiJ7Hngab#|CnS_F)E4LeNzr z88xOQ{h!9pIE)TOof^)S+Vev9J=l8Oc{|d5lsqVoO5h6m&#FK?e82&GVAI3gYuGUU zeTPyDyW{>}bJqmJWhs~RpmCiZ%j@0=N*`csT};(`26r0u1VT9B&R(SYrnFCEu>Ys* z#Aq5o?n%TMgbcTK>}Vh0Do0qqBTG={-u zN7?$b#{+$Y^!a{+g%OfpI`oFjJj&l5KjWic4)BPN2!{sJi0uqG{uA<4{J*b_=!Z>! z7Qc(k6aVV1{~`X$ZbziwZ%?g%BKQj~PQGtwFAcT7FZo__fWhKLlLA%tH=JRw5EULP zY75ppGx^sTo0h5*gK7UuB2f@qJ?!HYHYd05E!0c;wH-PV)W)EGd>2-BHlJtF&ZqCp z`H;)$cA%h@a?=@TS|GKT)$b3(EV4#urqbdS*ZPaYNRDV=q!@T=#jGd5KlpBCiYMsW znH7-z?nomf2_L6b^@esE=b+q+!wrpOygaAX+u*dQ7(J5lvdfER*k-AhjGbq7<|KUP8D-FizA+eWXO#@`k z2--J$H*p3-X8l9_&Xgf9@8e@d^1|KY%^7HBf;Qt6UQ7kHH}zSDe7DY&|IRErXd<*0 zbAoDg^8k zEHZM#JLM|M?7yyGr|fM#_grZPlakW+lbpMo#*G9}Xfs)_!8A6w?0qRSAE`40(vE%3 z7bwB^6#3W5QVgZ_5Fj+~DE;o%%0?YqVd=xoN5R{_l(4cQ65kPf{QKZ?+@9)@b{4pv zqLZ5cki!7~=EKtBM7NT9HgwUAQSn+X@Cjb8@1K*?=+LhNw$yhcI_wsu)*|xDHP*ZP zqqsM$9uU{9{w7cHh450hjfA_w91UUrkZ7t@AZ;qK9e9N3_%)mf8=x{!3XxP!!@R78 z=eT+?qi0Epe%7%30mbzJ_uJ?fbf_p_D2G3&(J=th_lO2@#$_irz8))K<-!WiX&*3r zju>S$+Ei5KpEU95R%Vg3+oE2p{eLjml!)OH;VC&R0IB>!Ns6%7nPd z>HooTuXn$<)*2|R{JmWkvrql6c56dSyq~_}A;P@_NihBo(J*^Ge+)BP?kDmik$#P! zms9?FL*dp0_yG>1mlIbz|CjVvQeA5e{9iA}BJ+!xD{3c0n!P#C%r=X4am``SUXe1lah@Xb|w|B#ZM~#WZ#q!tw8xg4& ze;_UqS1N&pAH^KL|6#J>$Ruef@ger94BUDdb^g(rz3||Si`VNUFqRcKtwg!y!?A}r z(Q4tA|2nxp7kUvUzkTlTh>|kx(!6I3AO8dwz@E3>V&MnI8US+dvt{8UwOB;f_0;{7 z8HG%ql3eRc^;Rkv6=Bt7FvTZF?!7HuU;Y;o!Gjs6!?1bZgJIE^YC9+Lsf)zD|98<3syoOj~Jq!D)YWC|6PgUMe2+6vAVGS_&MqtY)TM#ecB34lP01pu&n0;mM_+YKf5o4iof8}a|Ab>+bAI6!V zL+y&8_MF}~-vO;fafp-X=QZPOd$h)S_bg@1loK%~@6~Z-&;is+X^vo__U=+XVWtu? zZKtrC*?YTP`{!CfJ?jsJ3zTN*Mt+RzA46H0zGY)tsIsTyWyXUO$)uz!@2`9#Ka9%T zftv1@)V~foU$TM%pE(KheL5Fm=BNojPv({VD2__(z^|uj)-=FRi4RKwM#P5Bc597w z#>{UTwO_yY=%+8yI=yuuuk~un;=gb9P2Cg8TkyYRI~c7#JUU+)emgCi(IwP9L9ix_ z7-Qh8uMpG^!gYdHK`FKe4Iyj&{RFTs{x7Ahfa}u>NH0$}!-lWwfuO_f&-pz6&tDss z^k1l4vaqOAGMf!fEUaU${$-gawI2&c@#@FND4>LC+P6MB(c#A@_Vl2WLr{f*;Ih$f z2rqAWUfpKp(|-LBX+OU0OhYNY+`YUY3=7xtO<+!mw6d zM&Wx#TdMHct9Pj8GWy+PCi`vLuqEgwu*b4_$Y`~6?X|HRt!fT$>;L@@6UJxd`N$EP zK&B|~hrnZ|bB6>ulMZEr5uNF9#~*QT$Z&^t&xed1#&(!1OKMNDAB|yvfzzV`Z^7&o zwB`0p34_K2&0CT*VJVP^?1UKIxe)KF5KWjZ>-kX}5z4zTLL^*Hf_X_r$%k@JyTb__ zUr~LcQ=CdEQ(hvA7Xj=X-%GA^R`#p4=`|2#U4o=iR=SJNnMod0a(Rcuqiz?%+%YC3 z9gp*ix(qOWoo+By(nD?S2Xt+44A?Hp0j_k~4`9+aheaQ$tlv_r|IqnOHI5a2h$NiUBQueoJOK%K|(tAp_2n^T` zR7EG?X$(6kV#Ye+s>@zlexu)8RH@EsIX>8mN`!Q{LH1PPtCKCu?0}Z5Ifey{@|4*W zPH)r_#0}y7&l@#;XPgtnF_o55{1p+Y=7OFlf_QU`zr5^cHd1C}$H$s+JT_9k@T6Q{ z2W&QzA~s7gPZDw2m)&%6hi&+f?KP)W_jQIyk^rLL4Bp}39Y8- zy`=T{YnoO0D=a&NFMHi&fwGnNNX?VyZ**CVo>J-Ii6ONKvTTQkJ^2P~(vb|R-cRWyBM3#-KK`VqQ3;E%Ws*E?kp7>@v1`u7@R9BZ zRWLiRb)}caz44ZsQeaSOvz9fV3Jpv83SHUl3%&LhsA=ct#3b|zoQ4tg2_lH3x>ep4C}g0h+l}Y(P0{&yRA?m-OjVyFkEN)y z3J2M17F-g^UkqKxfEpG7lZPYD76Fz4oe?XlbQgS5_w6jdT)Al`_iGgs=l^e2;jC4&|NWkuTKUwjG0aej8iKMehWHI0*qjz|0ees8y(}Lyy9V_#(`L z6puj)4~a0~MhOBqTeeHFukMZRxSI4e>($9__?2lrd!1bST&kt-a||;soA(8fgfG|l zyj)#H#mt31Q9(@9Hs-*+3~NTP>^2vdyB&q)CBM+X*!|3R(f|XEii-F;Mr0mQb>-c<`m2J%U?1JyZpM`s;j5& z>2(dZIR(*1E&_`c*liKvRZWQT_4n~L#9ru6cD>s5-*Qn>^3|_Ze++7WFX$0?WK>?E z0Fa~z2}o4IWD4io20-QbK@tb(YN`f2zCO@%ZwV|+frQezX9=Es$mtp7_&z9{P%aD8 zu{up#ga8nZa6kZ#_mmYbzEqsM^E&J%t5wdWt}26T$N%4?Yy++YBQ&M2&Hf9>35a+a z9pugTcY$^b_qc|IrV$z_K$E0AbG}Xl)4T&P793c!2i7AG62eQ9i|~ho--K>j;(1r3 z9JagXUaBXgz4fqJkYoRC-wi6;!F;mkG=b=6@B+7)k?(F zLggo}UrSP7$#=Y{qJdCCHgkM#Mo@?S6K-eysgpfj&=MCADL@En11?{;_a<`$EaM zXLMk8YgYnL0CgH_PfrCLzL3{jb9sJzoKT@xB35&=T%XiJ?e|$k^2um_cO>fWwXfHz z)xTc-dahgN@W00(xQn}RYFIQ6J$T1_z70Zvge(vZph7gx?PJQDbf6JD1+bjK6Ph+N z!Ww`Yg=b`P6O9lCBov!7)3oEXeqVQ7C^e2r4xyW6q93s9M9UnE{Z34E=D%uIf|$NT zwM`g72=AMEZV&|2D8zRC*RH+yrH6BV8h01gv>elE`-Du>tIrz60;4q=^b;@So=7Xx zyyO~+Gw6)iT{7M?SF7ZeA73oo-!xC7_VQfB;R)WgYE%db#+d>=m#Bq3TnTWdiBx1J z1q)%lFz_*4XN+vDQe)6#La*9`ca9F{df(BSXGU5a7sIw|6JX<$G^ZEv`cU>T zUu&68s2wiJ?#Qk(!(%exQ`54+2B3_~53~AYa)%9efaoB>B|h z_S=Y$^ULJKph+H|A7JPU3Ur9L$`V`KLb<*d!GfYLl zuZ-dIiDNk!CW^AfH0>J_4OE%*E@|5DRL)#~CtU*02o0l#W%wX|dNrO)AY1s@FClE@ z`*p_1cJ6Tu*}BgNu&q8!9tXUK(;VJ93Dn`p;MYI7aGxD67SRe;KLlhz))b~Sza-ok z#!Mlz!$%nl2y^VdF_TTd>Te2>eTmL8G3awqqdLFj{a?d0caL=-%<47I@1MT=MPjS{ zby&CB*M6110ZKo>@;`YHA)(n~6ox!15iuS5#6m$KqE;@kT;vf$4h4i__6v;6M%KOY zjkCGxc>Uv2V`7Z39WwBB=B#646IwVl?_fNJ*HJou^NZ;H&;5IipfJKLfZM}y1z14U zg2!51J&+FEc-jy`HD-ClY_e1fL~Jl>sm{!FVGR3>dRqP+CNmTJ0TSpK(HhW#K(&u< zC)zLM{3G`TB_U%BNfkycBe{u4{@v&NC`wBlxmn%$li#wHs(F1roH5gP8l_F0ixHnJ zzrS#{iI{4lv52Kfow1WQs*$mt!W*0Z|5w!6SX99`UY24mD`Q>)&4@M9P_7lQXc^3?d`3u)E~DR27qxNzLJ`^D=0dpRHO*g2`rAA! z+(>n!aU`Yo5Oq2}WjWW*z7L^ZuYRxHTK~HB?@siY7Q5Cb5QPC|>0e_)KB7t}CYjPI zyg8fgd}%^z{cq{A0-pHqy!gl{u`a;OpGH&v?$NzMWxL9V z8rlHI?BmW!{dY|SY;~2=luB+}$Tu;r?=Q&TjlJ5(EVhg1NH#USO3gd!dVD2!KW3`}I zeqYxQF)aphIn^GJaLrq(pMFFIhGehg^7|=6 zWp{TL;k01|?Ebj#Bb_-tid}H;E?X*f91z{u{A}M>?#+4;O$*H@ZTg0fnV9MYyEpv$ zygY2A6X4u?G3;Y>u?8n^89RX%*MVrhyUlMU&de6WewLgSMbzUtxQbx{rt4tS^R%~ zN+x})tMYk0cJ=%}3`w_WU?vZV;>9Kh#g&}91Scd;31&p3vJdv+CgDhVdNt}arTDmKAE!x!-)v?KF^vte*T7z!=4xl6AgO2OY~Y>EpxfA}Jh6 zzN8+!Y$V7H5#I?JcmDq`T;5=f>~BLb73P(+4A4GXTma8d$&R?Kj*7X+E6hU?|Nz;yU_^flk)5336p?* zQcI3b-$BAv_Q`^JOiJ^I?Y)u)5*%kk>O}gN7Hl@8GK?DKl6h*r_r~yTjdU@PcnmQ6 zOi-N6gty80p$5Pq1qA0cwjpZd zLz2F+!{u-tZErzJdccZm{tY_lGlhZv38x|DOk)))0YtRLz9&>BH2>h`VU20bG`~Yl z1uHAlQ2NXAP4y=>|LA83bJ5YX{wT0^sARJPBbD80Ve<3I3?O7PGc2jI=}7*YVa64R zXr&JrHv1`F)YmUBm(ES?Y}skisk@gllcbiye3EGdYI1v!*LYrdj=ai!qv+TmK$*OD zANhtO0zqk>q*yx4AT|7L3v)o^P)gVkJDo#KE}T?EuT>Yujj>D|vT*&eu>_#4pTPyN zAnse+=-Nj;mJwkB%zB(L-%!l<;CNN)jDC`q+=ZKNVK+}@9H-h9XmlD3)OkA z9Y(lH)7-fKa8I@?d2hqiH);&8YlnB=>3$;evA6NMUcxf14?7of<)l+P^#p=#G>tA# zpKikD!xMK{|Nij948g(uV+KcI%cNWHdm-#{k;iWzh;i-R|AHz~9 z?h5=!CM`8bX^73%unw>1UuE=GTgDKUklEUUX>$5Q6*Kwor|2DMT3_4zF;+Y^J#*=I z>u^FO;?q2GY1{SqvZ}+4X;vjBe`u2Eg?hV}m++aL^3Tcp?~A?0$qhPJHJZUi|vm(L`O@}h<>LmRnWqdUyZ(8Js)x8AnjuAy=h12i_FX! z->rWHg+{x*!4ZcUH~>8$^(QSdd%vhFwD~Y3d#}GeX?GS!E_=P(g7J35{jz4RtkM5r zk^$ZhKy zrAXL(zBDFL4w6Q`=zDsr_OD*GUb#u+q%asi*i_x#8D*PJ!{Og~f46X1!(Xz{N@CBn zocW($ht6_cv8K9FV?gd)wP@&3zQ6Pexqd{;3OCwwdw5#L>AGxpUv{hWUzF%@8vqCaiHTRMsElC+_v*#pC3_17azo@=4L>A|(Rll378c3bs+m%Xzy1he0`afK;=XTnpXB=G^7kbOi!X?{n}P|5rIw#_ z)o0YGTSwVHMi^0p;#|9yoSy>>1@K0K10cG+r#z)He`p=Ek71Y@V3Ov|D< zzNrAk97p6G76YMRo(bUM78F5xV)lalAg{G<`3|~Q-90v*ochVNc-+lFB zH&=9u|Np*dO=6$cwbrlkzaqQ8zyJDId}nf6x`uR<+Su;G3K(UKhk20=E}6C%an?Wk zZSA+%OH$wH>7qd=g%!(y#1IS&&TyUF!RhqGN-@P;ANZYS^M9y_aUlNq^FSlsI+#Ig zf`&A~??Jo8e-+9Otp-1x$6w%D92+?yY}5l=32Aem;(vYj#Yj4QWe(eJ);eqN9I3bK zX{x8qTrvq|E!VwQ6GkxV4iHtXusHhe&EKyf2j@nG?1PLz_Q zGGnQ#*x3eQh1YjvY-6b?ut_XXCifNzC53`XX+Gy+8U`?lCp|5jm6IXmgT5P1pqk4~ znkN_ou5eKN0;a;zw_fx+k>M&5YqtT7w8$6Iv)SQVHE<4@HV zgvlE$#H4*p1s>r@zvs|@oFGxyAoeU}CaOEEoU7~2U*8_2`t^BwTQq{RFqnlIcoyG# z01sN*0av~<0n5SUH_Ji41ep+2-c$y6lnv`*mhY_#>~?YtimHvPT)$Q%zV7>6rG8(L zkWz|jF9@$3>@UIyjm7Q%I}c`6M?&Rb3WI_-9Do;v7LErw0fEov(TsUK;UFa8f&>QH z`=dsZMK_}2>x>`^6uN1*$8KRdi^?^QOx-QiWmn(Q11Jy_k5N6VaSp{VfutY?kpjPg zWMSawqEGjD{h{qz5WU>hue(^kR;yMXEqbk3lhymH?PX9cV3DnZZ>2U!`4|GK0r7wx0#W8%3yZ)elgC+rQfC!UFttaT z)0;kQXtMiBd6&5v1m|D~m#qxk#c{qFW7iQmo^6-Pf`)u*YC@rO&jxjdfmR=7(cfn2 zesBxqVXA*Ej0_s&Vlu#rm}C3JP(f zxZkn%k5FUf6(kAVk07?|02xntW(akupdWd`ag``Ky?Ao zzzk(($u(OQ^3!{Lv0eP;2km3L?EGU3_+x@y*@nn+*x@b#o$@hXiPRbT{6Ywrq)SZ^ z%_}kCrtBI!snSVct_x0R9_iuk^wPzJ4(ely1~A88Ro|g9zh16S345$HR+c4Rq-q?# z{aXEB^=j}*y_+9}$+R@f!d(rD>B}#d_jL?mBxpqo|dKaJml zp$y&XWQDZOI1euv$2wB;LZj!8c=$j{H0fSdNB#AP5c*S~$5}qdeAsgT_? zEgMTI};bg1w-3Hj5AHL1;6?1-QFXxrrgJ9HlU$^{0YgBTj zdc|J7`o;RiAfkFEun|GEtv{#!eBYK$?+6m{Ul~^l3fUm8Uf4slfB z!Q;ni!^5x=hhZte4=ey4_xcW(=3W&f<65YSbMh5yF&cO8b@cR}7gy#i!`3DqP9o{K&gy{ry?^>ARk->(ys`pZA<#mwVq3XlwV0>HHApWWSaO7JdnA z9isvOwDBNrYv1y6()}MV*QyA3Rz<{q8P}`sP+SN%#AXqyr_gjGyab#L;lIYgK_6Bq z0&*v~U6Qau8KBbcsN`LSqsa+`DG%tye*T2P9%sn|_7cHEu_nJ7R`v&=VZ<}70ndDP zPX(rnM~ZyD*La(T2{&rl5I1kac)pK(|C;7z$M+a9xY|!}*?D?p_?0VtH|N64PwOeE zrhwKZ8!c2s0trMhTi@kg5wl0JYW=ASE}&Q zT?2Pej|TqQYyP0Dxc%y?A7`)s!68qEYOp|i@W)lWbuhl`XYu^mg~{_OUdok z;a%?K3?Rac|;>(%1#zV5swNSSe4rt85Wr%QJW&tE`uC@Ra*d-8bd z4}xnRjo8@Vufc~JAHD9rw(KwUJ@{V0-L)Wq=>VKSW52(aBfxB8LigZ+!=^X{r6RY; zi1)+51;eeE4=RaLttD16nW|!pRgG%4vd;f`8SVg=aNp!FgYBa^KDSiZ&L0{PMxkEd z)i)&()BPI9JTl|mxiu=BNJuCnh<#m07!h8M8~}|nGw>A%KAh7kUet9Lncrw_q>hPG zp4H~2-&|#r_Uu4i2_9ZidW#Qo%I2_@D$h{Y58mAR++y9 zV(^qF0hKlB__@6GY}fkqPQNaLcV50P&Q?!D!Wxq)F^z$*f@)4Hkjs$Uh+_O0UuVEe zzFv71Kf{vc_**I~8f*2VWgH=Y=OX?&a|*8nBKL9IOX1^e&cpcgntT>+qMueDvCFD?2o%KFEgrzQDoX1?PIGANYf(;Sw>|HAJ7a{wAy1;_ z)x-8?_ZSDPc_H_`HyT3Pfv&nO87C{^JL#4M;TJ2gfB*epJKsUHOl7uLR_FX)FR#vtmz= zQ+*3Gp_CLC@IrMW8lsl-4vs|(yT!u>KfEOxr}uTxyn-k+`;@oZc5jNcvi=}~-&gcI zZAM0L=eQtf^wG@ggwDZt1i&#Ub`aA&yhLXZ;c)mXZf?TW7;1Zh8Z#YB%W$RM=_KwU z#^o{JI92s`(orNHDDvB73DqsT)|C&F;x#y)2OegA(7y-1C+EE>ztu#P1igNkhYO97 z1X*s_EouP&&_$mzEQgv(JbSoN)96e7vg*8!qt*SnJUD4{R@lk3FZgV(D^jVI#?3)Z%_`-+Q>#4e%6Th{AR z?>&DdmtAG}q}`$Yr)~!PWw5h6OY-{K!W_8S%?XDqB2w}>!mG%1^NEEGGZnnu)UkyC zeVjNe%UmWXHXen_xIa6Y4%C4Yu3`cSjVJ;##e`iVD&*W|aKaUIeuuqZe;?W_N$ZDe zuKxrkX!*taq>|+G>)$R{lGVT2Isd~)jR?9FzDiTS@KxZ~Rwrfs*Zg3pAEo6o!tiRD zS#?l;{fn>axRubBd3bfqXI)A@JX$kl@rfz}M`sfa+_UvOM@~=$(lh9qgQEH`;dB@6M|F2h9kej(;>dVz%7n9TQN&H6` zYuOTzd47Q)!9i9T9uRG?dGN7-YPM`y$)X1(@H7T9Ji^s}36`TwHGv0g0000CEkT+b zhbjekb?8r5uU)B=5zTmoa>~8+#eB2cFW(5SeoMYd@n3V@U0`7sUI_^m#5@DDe~`8_ zab5QvYAY^bMPas>ssjRWU^qw$H^QLNuUBf0aZt`sr+nD?)dni)J5gu_g6@XvWoSUs z9qERJ;6M&kqiP&Sa>0Z1?2+yQxIN%#3sucMj*YR7->a5J`mtB~^?KD>^TjY5Ep{X@1ADt+5Qm*JU{n+l1BU-FUL#` zGGmM`{6?a^*vw=(O=KPANthbCpw9Nyy}fD#C`Ttuouy@K=cZ3-hvx%Yz`_*+$pgG^ zHq!w|)xzydYt-3LK&!YxW?RP4nGUFrwjt&d@tOw+#ybbU>UJUa8 z2DH9t9C(JH6h59E%kQ|)0cziTz1~I)5*q0O60BbY%kejw)l|m-K@WDnXbkWlJ;p%Q zbT`zjde!SRd{(WE1#(9)_aEU-mVa?^YyNCfR@ zX6nK~m}ogS6t)#a*o$Ta)VxhYcS--zeow^wPv~D=tM}Tm-_82>cSKKr6Xf_%8 zErSAr6+>Fqp&@%d}z`6r*%+_L)gp0R$tcV4~j zy0hY@(>l8Q)yt-1!5|xNdAeeHZfI>Lt5HsI$&Tl zY_Z)yaB1NynzrHNPE7_EwBwSFV~)^hBfnu>Fq=&`dUbdDAKld=_kHw2m2n=eC#%)n ztJhxZmxlxx+r4|yq5Kf>brsOT-qv-|2a145JrDOuO}V+JDds_6++|esn=>X@OA{Q* z`gBdVh)xQ7n&k8m@7G@{_Y?B^tKydZTK#HG8DHkh;h`G;jhHYHiNlI#(?B*yq+WrG zh#tGlkFO+Y6v)HwFZj|KMj#0n(}4j2!_N6V#&`eM%f6wK5|*d0{pIsck}DWZ zBC8ulap{4G3cq=KQKWkN?9$*f926uhU3&UwYuQqXXaATfJ*s zDj?j{%VrpcF(px&lIV4a_W!m&j>jZm)DP@g@Y`U6OtP}&^Hnm&_-Mn^&ciu&+Qh*v z^=Xzw%W(UCB~ttu?0n+v8M8JSDNC?>;Gd%fxKb_B+ilytO{o5bqcEj1ZNu6ZzjEWK zjry58TAx+xSPFoE2qD7A?=}iCMmuFw4gT`^B+`8*VMR`SXAf>S4jyxWVaN}UcKUO9 z)q1Xod9}*h?ip6ap+}mUWu?A2ULnl^hYJo80&LZEHue{w8!@pV&>IRm2vtDQuRWgV zHpd0d$!3Z`z{&63VH*Lk?CeL*KRY)52ug3*-nK5%DBCCJbpwpOrFvAz(h2i8%)ehS zC6BkSE*K62wz#kAsY~zwXtg77DTXzG@d88$;>fG0zjy_B4`4TenF&=}z+QxaOoCk4 zvLiQ>-6Jf2rtcM(EVmn%NCvD4*mf_2-UH7XJ;D*(iMXI@N8szh*NdzP2UPR$>n*|ML;>x-eILj)8CRiVOeLit)=$<3SpSAONJZ)+O|c0jsy-eSbv7XwI>^7 zrLAjWURK!ywZx;z&KT+q^4gdGv{$JN`K97kzLvjSuJnI_41&Zes_M6pfLA`SXB7}d z-QC`}W*{lJtX3-(itiP=i}dT@t{hhLKob1ONrC=nfZ_Z0tFn}fprF(E^4Q8_@zaDB z_PmcT|6=qGA98Ph!C0H$C%%~r@I+^Q@_tviUYmpda5xM44ghkDuo>HrA+L7-VIywh zxUK#us?YNOlbWBeb}Y9pUVMK1NxQYP5z9+o6Xl`v)VKOCV!E}jiT2m8m%oFr17J{? zmpb=m)o%d+@dS6oxFyfwIqrOPAM^4Zkud`P2P#K=yp=zX(m5(@CwmnPS5^_LAC1`-l?3kK{#@#-Vn}S$_b&Uo^LWmV z@7JWA7vHJUujO8nD)3Se{aAg7S;Z>ye*a&gE>*HxrSx2@te!YS;)Fh=F@cycA8%Fs zI3zdy=AaDEmUzBcF)m+S@ImFJ0vhX34R^T_gt{&k&00EG=-2i18x;*+CKw&%_dS1u zSlzD#r!H`b-_yJPtvsCmipSuKs`XeRwMz%#qF9Cj0@vGme+3x$nEW(`h{Ehqe_GX_ zqPOBXZ!DRyit7aU@uR!5zu=qCo$m+gP-Xk;1o5Y$Z*-pD?!siogdpJyg%N}P5!uH= zVeSvg=@q_Euo08MUj>o##;6pWG|aet_$=%!5~2e~Ok3tsGPsxb(+HEpa+%w24ay4O zBqKnzijUO3+9P%_z;?7W$5`NF1m^NAlI%^TZyr!`a=rnE=JDUgvXjW@ni3#k_HNYU zQp}G#V>xe3`Mw95n%Xi8)8YO#;U?V2xc4I1V5;NbR7n<)QrPli|Ha-=8~o@pTz_yM zpxB%hQR>&(MzYBMUOii_dQV=z1XAK(UxFDeFD}YQefq_Iiy!dE7%HF*--i7$(|7Pm z*%?H?1sylFc5AGpd;S_1-PJtX_w+o|uUumdD*+tFwl2gNC<8V)$VYXGx9-_efChNb zhocBo@lZSbEad%(eW?C|h9pinJn!kr6FE(NM=^b*yEAjg^a44Pb5+tl&?loo=lQ$- zZl7Z(?#OeND#-W^ZF*s5TTz4cTSQ|H;kQ|YuoL3HLcyX+?&#lT9f%m{;95Dh2i6Q# z*>UsZ_CV~F@HVsA>@)@_fm+id3zCwzuG^vm0u*((vj#U0V6_vQf7EA66lwp2=DXgx zpI`eYcj!!{+mqQH|C&1y7x*IX$FI*^Xc`OA|IcUSiqmi0#a3+pQs?N9Z{6n3UoYKz zd;gH=PawVZ1;j}KmX~syi6C_!-R|W{0>(R!j6jK)aL$|CPv`E;!F<(IU4NOKA=rwN z69m8CI0Gio;~!u6zi{m^di2eKQD?*uLk_htdoEpaaNs}3kv+=e@Sg#(%)C{6Ap{qE zOM(WNJ>WmapNsoN+xH4(hWUC^+!T0#aJzl|g$}`r)vv;FBvjW1-4+OA>g`1k0t6rs zs>hg+;GP$s1FBlNL<{aake*6xzEJ}EMw+Zd#c1s{$>cTOyixL~Y>}(kFS~z4zW)mM zM4X-1WE@VX`k2?T-&r#;%k}>_R?awBaj8p7pH_)~-Qp!KA=#ff<0s>rOOxA4vsMl) zPj_>S9#2R7U87fX!Tcwa@3P0m_;LGgHz&%59?Gcj*L4RW}u%=eXT+ z+}NJ$6;c0Ga+kcWsJ61ZQ^uIORom&z%-29>w?uP6Vtm_p#kB>S`s)Qo<}y2Y>zkVZ zUMd$sEFOHc4bL}QP?nO-KQrc3E{hcxXo@XL-- z(RdqPB24-HV!x+S)}jr&?(ZkQJ|ak)rFAZHd6kw);E&53vU;g5tC-2`J~a`6^c0LF zqwmx!!jGJD9Le7Dej6in3WOH+oM?RMGNiU$vI)OIT9WJ6tBH)iT7-#{74XN#d?`g^ z$b&>Br>co}`p2>1@c{tn{Z0-JmUcF+LtM!ZNUaey1_x)p)>xFvMmbLV+U8$P) zQ>W|Kf(Rt>53OKyfpLZeBrC%8c{p?$OBgR0;;q58)Xf1!j<6Ag2Jrba5-o_~ez8v~T|}#0THKLCD_Ez?|H`l769=H$ z_D^>bPVV`Ds}*bf7C})3Vz+m_# z((##PJiZCT!F%1^-PXbC9zoX%zUWIy>saOWU2;|4D}2@Je`j^e-^rX+Hj0cfQ)4xi-XR!z3NKv#yoiAv}-==YEi*lC^;HnB=!iyIO8WR8Kf@ijq`-$LAs&7I0EQGkz zP_Vx;hPj)MxqVJ*oB2HnuZxz|?+WhMQhLRHuU8>|UAX9&*J2OUPAX^>+;O6aF){$*Y**_1-1Av z>RPIg+9_y0C%t+-cO??F+U45ie!VsV0T`ILo?b2oW>P+_@`2cH@NOLiz}!_;S8M}s zq1R8rF>xmhARr`OK#kjR{wna6!XiraPj77j7XlJ z42-nDmw4C_-sUwjvwb%JtisW;%m!)=p#LE$NvIIAq<<`5YpCqFP(UgdQfPe*^QHYg z^jNY$-C=L%>)gGjuF@QMK=(_qlZWYJL$li<1MC<1#(r$S-P$iydcOqz>fNupW$Ar& zz(2sCZtqAEU?G6!E-o&$S#pp{76Uje2?~0xs`-r0XRtfu(fxUGE+N6vR_@>H2VpRJ z7!JgM;G;fg;+gm`3LVS{kZ=%=dn5ILHrvp9llIG$SRRH1LDS$|u$Fl59t*)nkpHub zgYlv8M@Kjw*I%M#`Ya~;!-m8T3e?k?Z>6P>^d}7|mjBu6G)s&9ZQ)WwASD@rKa*+1 zzC4#tPphBgUC39^e-TpNOp)<6(a=5bf|*DzGZA_4Azc>x2|r8xE8Ix5sc&)O(l2#7 zD|hiL-PSi(+Vr?+P$%&ZpFY+aBopfcpk&exck6}2kXefE?)SXFL-4l<1*MQn0DZH- z0G;`~X4a>1Y5 z|5ZLuUHzXx!!XW!mhS(b+%S*&_pdc7oBT7(F*4Hmwte|a&*Zx1p-VOQs1AYc)q0ZA z7~TS?cq|ByBZ(Zi=pG3G96iI_C$-)RLfDDm4qpN4zCL4D-+!X_ZapdmuhDDqS%0c^ zcvgoRLF9)~*~-7vwWAvU9ctNZCwyuJ*LH*iYahmMPdV4MGE(zof5pv21LuVW@j117 z+E%f6&0l;|N$XagC-i!|@3ct6bf4RKt;liPyS*u#*%9Paqf-zod?A!m4=~I{I z73KB(#dqDSKRs=oEPwUy$Y;OdQj|bV2Q%LkXdDl!A&0337=N(0oqd5E9@9#^V(G09 zSN_A21QWP;#Y#4b=TrMNH~uS5UoWxA{e4hax3VYp`s&~Q2w<1^p)1`3Fw{@2^$8Fm zOqA(clrmHau0HwdQ0wN(u-YV#Lin;Ehvj5(&*9U#qs*U2|vS=K9jB)gAJo#uBXy!#8?MINc2|0lSTT6n_n@|+(K zadoRMBdb~%h_2`xQ#by2c72Az2+TKurEIzKcRhY2uT8kIl6mfhKAMLe{CiJz};YuDe zLnblz=*xNkt_~PGwg#iHj7IUrZKxgEg%?+_*cz>(Q>s+c4gv9$E;bG5# zgvk3OWr(rUzF#{S6J(e{ONGXXRNChLzQuC*pqu#27$Pw0*Gegv4()sJSIg}>J`lu- z3=<12UHl34>p9Jte6!?I-TvbHzT&=BFQKn~zJ9;2UcW*s@mI&h2K67oHbyn6#D4r3 z6nxwHOm3vG&e8wn&2s;nSNtb^+G_Q!1xi0F`ff-{kYShq=+0NHTMJ*&<14`jK!b_p zyE~EdVD9s3MoQB^@q)K}(K9o3zi#9H-+_^qm(;1$MyBvST0Eb;n1L2!ixg?jYo5vP zD6XObyd4%=?+}&3@C<;;csz)-cc+Iowyo`w}5S{uyNdFtogIq za12`NLrb}mt*lvTC}y&13&q{}P`aBEW+rad3W;#9N9*vZtZwIe)_%S^4*^BLa4&)q z>7l1D!t~oO>~p1O$pSyr5S5PR4N~tsCI0TR|JDgJ`}gANgIvFp-`TV&R zJ>c^J(5))7uKpI`F`A^!T`KFYsa#( zKpPc5Bclg%*@sMh`rC7x-Zx3mc7Txl<%4||Ll(c z;ZvW_-fyWUXS4t1lRJ;^jnw}9Y=(F5HD3uzr!4x^yg1Un-n~T_FR|~aU+H`%I1mT| z2t+&xM#Gkry7z-)x_%4uDGgoKUAZfGCJ%ge0-uN{qqa(D{=s|8|2*quF7GPm%fOc8+xuK)l53<*J+9fxWKf1xjT^u1oScSZmE z^=|3}9*+3_5Bk4a{!P|g{jYc5|MrWjl@h;N?k?{GGY%NJaNm-tb-(8C@on7{nQ+9g zZ))2Lg<1$ z-HP35cCqW#>($BSp#Mt>qwtMlm@POH=XJcwe?n@}}IJg@zZ1o}Ir;SBiix_7b(}2$n1wH_w>^RT(q}2DE zI0<{0&*cR9YO&UDUaZriE-4Kmb$6Dus(3TL1Qds%Xz}L(o5b#;%K_7aN*7GqknBY% zv7F1}%u_xJJY98MicV31OTr%O|8Wj=TS_jKUc?Cv3EujwpK|Yp%S}7a9Ly3su1PMi zwo9)<@}BDJ>hnqwuT10(3cewu)CmRwN0oJ!fCAf`j$ov`K`84R-IVYAT*#jZgSt1bD?{YFoAYT2%0gmmf-> z^#rw5RjxVoTfclip?xjgtg&7C)SkC4)QK#;uWyR{N9El>l0nSPcmHU6{3@_~D_M%M zOLcgnYl)NAtJW!fW!>?Wmsl2pK|q9BGb2#hFd_Zi@QPeOq$aNWSR>hj$d*5|Fwhuq zC2Cv3dKrL^dXEh@WXkGDb?%;_b8^udszjXVB&J* zR+O9-E!p$vd%qhn!65~}IKC;n7EH}Sc+g9z*h9@KOqSABXO6F;{t&6)uz^LPOF?gm z%3TY8ZQk~KH?@M8)}@Z#Rs$*W`Ub8z4x8}{RQuEv_g7R+Z6Pm;|5i(XtX1pXqStEv ztA4pW!Yx1|QO~_~%0>u?GN=GX{5gjE$nZ-i0aC%;`K|r32qb^O2=zdgn=p=RyU85l!sUSi8(C~VBT@KG@Z z7aYfEF5QGsEV<~BbUlZR|=v>!YBww!o6I5Eg z&ad390DuAzJr7&&5`fS@z{o#X3SmNK5xd+5koXdSiWCy6sxB@rE-o)oad9EQRYpfk zJ@~Q@Xp#Uc<_#2XKCZ$L;(eZAL7<3jN8QEHV^Vb~qMDii z^m@7KReQDW@0O{*H&v);R0sGzAt%_qV#Wb{9FH)ge-dy=bC)X(vBH5YS3icrVIeaX zuxb+vg2A;*z*Vk#Kx#mTv^)s_2LOuO0vrmiG+v+8z-Sl{tmAp&A^E<{Nm(-y>=4Wt6XxHdrU`w23Yi2Xu}V($t2b(Y^$~IWT5GOv z@a@@D2<9WCYDkC~qtAY&%`f~tx16>YOCa>x)g7v|8gHNX65yAiWsi)cL#!oJ7wEBZ zd{1iq5UqLttzFc@8}JYzgA-Mg@+5Qy`LRMSx$~^>KY}N5TSv~}Xgz$Kyavk|&VbGU z1Go}`L>X-0o`o%o4xNbpU#h$yPy>x?p#MIP^#Qt|U-Ny-j4b;-8yXqjV%>+?Z-Q*p z%h%X2xW|B%dUL~v+m4d^`}#EyF`0irf)-Tq#>Lp`2eQS@8RE^}ag+$tJ#YRb$Ns6V zPapJrwS5=(LobpArMvFUj;f;)l-KIGn)TFRsaB9U0UI#e-lTwtbUBQlmg^t7zLGf9-aWnmdKC*DoI?Vg`B!Q?yc(*Kl>1I)`dHXM0z~8 zo*}uqe}p%?=P^;@3p4n4ZB0OSz;?!Dn`cM!H`o$nzu<=IX4{`8_xL6)(O5{-*5O+; zq>f5;YX75M|6=6AVl7(!X@&^blOwA)sEW-Pk-?Qd*}`?@L(fX z<1eK+V4XuR^#qE5rpO<2Ql`SWNwtA!yI6f;L_N?!WA@-{SLKIitkEQ+zau2N}O% zF;sWQci*@tIM04G4zIb?32HdYk(w%97NzxW>(%Rtk!i20E1$1^TI-c??1UHvN>%Uk zb7gs_^7I&f=KsN)Z!eL$;U z_jf_3V?OdjqZj!5ISIf1OdOJXmsgFUs12C~g7?U`bs7UBJw~I?qWL;V6h(Z@+vW^& zzsvQyh9r%H8>WQ&bYlj5B^1AJWBLUR&o+*OVtsHMeqYq~uB~dlYnoQ^+V!iou2Yds zyM9X*ppY@5Axvo1>~#~KIcRZhyzG1>hMCIp%PoI)({<>sejD=DM@f4d|DL`ygZ~b9 zb@W7fDmv@Q>A#e%QN6oiGG1{3=DfbG>Iz9mAqDsaTVm5dM^r*wWLYNmh6rm`N47nh zNW*Pv+wglb6w-Js(@-Y-=}O6bP%^E%@A2_ihdrdfNhYxd@-vUPK7Py*HHyqV#&>r+ zn>Q0@zYm{6#vMs!AnyrQ3UlzV(VM8Rp*pR^pN9|a0-R5>$TZ&50?e)O`ndo?vO|`( z$I0*}5!NfJs?x*YqK-^mTJ0HX`msbp>Tg!x_2LYC{IphHb4dOQGNKp_0?HiL zE~NBWD}H})LT8N`Y%Y8lUiW=;3?EnO@I)pNcXW3%&SMfV5xXJBc3I+FR6lmYpD1ZXSqAd-fk4hDhRR0Gn0G80+!Xy|2q^^$Ok7=Y zCj{_8p=NAkSYnoZ$?ByfVTX*9Z0F0z>D6%>1r<9gMUscYk0BaAxaymo=JO}qkyhjR z%>{X{65*lpkhA00=u1U;Ev~%8=6}HvYTs4m-GrabL*J+^?vi`fU$4WPy?l_7Cw@rl z-yn>PVqcTqlk*W(e<304x4g3V=dW+vFMDim7ububtdRa+a^1pL+@xCRZTz1y7v-ii z?!oRnmS@gS74u0I{Cl6c_?HAfB~~HdD$_TvKN&6;OBs}D+~)*1x%@UB>hk_4m=}Tr z1Yj%BdNq6pAU@SZvNjgkn79Ibutk2o4{2)c6rlZbtDn)L>=9pgG*y1J`rN!-RlEb(PRo33W29o zF9#SOS0M4#M=wCf3(ofg_b5xuOW!+qUD)0Tk5S!Y0i@`8fi2zSwdP<`d{@AuPd0%E z&;S4c4=zEP9tVmAa(WWSaaYlQ_xi;rtJST1zxUL+a;tWvPyglpW%|@dt8~3BdeoR3 zps+%$H|pP?ImZLBL;W|l#P=5-d}Ol*>`~cwQ*I^ld*Dcm2vBfg{~&BnE(Ll6=fLR)FM|Z7%l{-I8{@vSkxInP)6del-f+P& z4tEeZAPJCwO0XXXMl^$i!Ei8Qf(oDEv*8o2{1$Gp=^S3yE9dDuRx8&p)!0eT(?8pD zdh5T{|62WWuU_hr;B*olg~lJ7w(mDm@R)1_h4`iMMa-kZ7_VNxSC`sd;k6U24uw?2 z_&0+AikYXI06|Y5j-1%7R#kYIUq_2UEDz)OKK1!NqCwD51S!Dm3_%4WSR3hJc4}A; ziDE=QKH}yfI0MYW$gMItZ+buNG-?ot9(};8RnwRk*sO%F9cPc}4>SkYZ8O zQ&_Xyj}uMB2bp|e!GRznoUys|Mh-}<70f&dZcEk~ZDoFK zFrWN49JJZ%U9(Y~n}}J2B4UISxhB;(54T*D1qJNzS-E!{;;j$UAe&jF(Kor3cr?nuQZ3cK$D{|bJI9u7UnZfLX@5g`m zz6An%tG_`P`D)gxp8b06s=r*S=DNU11%iPnFFa=rJ{>?+ZktswDPlNk_}r`m$%QD^ zIhiRUYK5};88B|6x|r6N0Et}RucjlqPhEN`(}*XZy7Uw8RqOR-&aK~0y;XP1)i0|T z>RMkh_#}Bh+rX44EI3$5)S1S|oBU7)EP%#pk2N$$7i_p6RHlOCK^geO2y;*=&ju9o z_+mE$ozfgP(6aO<&~l1!co1 zJp{ssf?`SlMkL-pC#@nfzgOrY=PLTTSfr<3@AWE7IexoR)7j3ah1cf)*~!Af0Zx_y z+*wpNZJY(bC@vyL+sYsg@n2cDa(B-qFn$4x3l@b+1@l$^8*II~FD#y}i4pF`X6maX z3VbK{^q7Gl`U-piQTsm7?52#Sus5xGkjYC-OAQ~~PA$XLsXNk?wytEQjlDW^Q zILQb|$-nI+0V<4#zxmQ#X5ek_TlMd>ez~i}Rk7XG>(%PPQ7b<$b$$2oKI-)S_bOq6 zC5KjNhDOFF!2DYW1W%9be^5Y3QCVZn4evlcM7QJTSmIZjTmx#Ad=gKMh3TG;Hv}lsK5Z854^PU%n*r2pZDTe(fBhK zo=KPA$%D-rt?+7WFflrRQ>av0jwWJ7lcQD0fZ#VPMq;=^~(J<`{o_>&O zd@*?i;iC?$Y74H@AtB*6;AT+1!JuO!6Q4#}rCQTXXyecr_6qpV%1~V>WXd+%c*{l0 zWV#nI+9z`N+U4B0E&?DjzI%GWl^gIB!VGM1KyB&(D}SnaCR+2&`$&N1(6xP^=I>F8W}R`5p4SEg9jvJKVS7`Z2paHoT&}tF^p@(7t$JU;Fz6 zp zak0&+eyYJN^=Hmc-TYygt2xCUZ$0sS-h8De!FO0Hmc~D< z8SQZ+QvHD<3?k_q-Mc65{uSDC<#On8_4fo-Nk8~Xg2p#@-{GywLoDi_-)s_mUY{0< zithhXr^QKYQeP$DA;TU9a8=+ZK>#Ho@JpHQ4!o^v0vHiOV3msMy9H$g_>m+Q$W#EC zPZR<-P#Gl*g?qFT`}h2xiGUJ)SMKwC2DRXQ{g;exHrDKU(GH8GdQ>(c_*&^ z8SZq8<8gOMo?aqfTJ2t36=`@8f;l|^qzeGx2!OZ>aZzZv)!z2IV5En*cg8n%TC{@% zNMz3B7V5*LIl2&K($S0^vxM-=v8JpsYyX06EyJr>^ES(^UTnh@)Q^qThi+qyEXzwh z9Z#&}%LD(rgl{gZ_m^h7c3r_aZM%83w5F~Q1f(#4hbOI+mszbG`UhDq(^3zX!bYEC zzIPH~WigL7Aojy_Q1-Ye*?1>_P5z3${`qCFp{y@^%*R&f$4fuhR?3^9j+Pw*QpIcj zPsiT{-Q&0qHAO??o{u$J<$ruf#Cd41F6iY-yIuKz=_3y0m0l#Wd7^;##Kd)+%X#DS ze*Gi}&USNWTk8cJZFcngSCpfsI*P(y5J81wD>**G9`Oaen_}`9>T~z<`+q@kIdWPC zP=Urla4NYKX7dW)2$0X!oBhfwnux0=HyIQZQ>*TI< zs?lHaXU#vc=FbA<5wi!ZUw!2E|1|h0|FY2v{}q*+b*#T%{Wu~TgVS06V4ADs+9DMrcXGkr<| zXx!?=+X2jr0iaaS80#}3-*fa|dsFTiScmz^dJ=^x=aKTHmw$Wst&hjEUeXz{pJ%&o z2JauD+W$c(Q34AcFcxi=`BkJChhHcZd!Y9fX>9k7 zwLk!_F}%Kmqzh^)@J2PCLM;l6|prv3UrxYpo%tzKn^V$n=m)j?4Q zOsaPCl?c^IAv4X``34w5%MZ6+Sfyv9wnD@!F-xR4F5B@xzm^EfNcg<`pMD_<5G-Bi+}K)I_iEUu?n#MS z_sR7B2z=%dE_B{(c*ppgyy6261RSk@1SMvCAD`6Y;DP?H@X1Em7&ta6?fDb!DG<}x zA~5Ld`yXWLJVcZ1ughFFw`L|IhK=0OM5i?)%851h5*i(dg3l zTKipC7_`DHhgNndQT5Dxz^IK%RG{j;bIuN|c3v_wJCfB!NzV|mXkp@~EPZdDX?oOJJTQNk171=NvYJul&3!T3skc+_ zcMN#f!>`KmNc);9EmHK$oO8D)qxD4ms`cwq_^pjrPG|oy48_0KU6)($vk}?y|6PJ2 z#4K{%crEZs*_N}3sosrm&+w`-u%cpK*0O=UykF}kyweT zkNYi_m4sV_FWR2p1Ezj51a~*rV|xIK6C@C4%(?YuxU`qlUcK}_)8a+}`%vHa*<{X< zp$uo68ZMM)wq)G?8y0RUJ+ld*D}pelD(sULk{dvFHA$Fw;G^uz^1C3QdNi2i?_u^B z9zm$u)l?m@=Za_*S~2}FeJ@w~8rSQW=(&EZtMAC~!4Zl@-xqx2_Z`W&Z@a&&^``6o z!G-jv-H*8OmOY{;H1ht+7W>`*eEj|IInNB6OlvG6-}yYt9G%t8FNZm@r`FnPZKYl2 zq?c8gz=AXAxe^UDd!E<1^t+Q zqP_VtXZ22{`p^GG9lu2CyMqlgj@t@^i&t9PoO)qLmn)rSA@Pyd(o@7KO2VM_a5 zkEQ86-T_6a%;5MgG)Akchdh8ElN5NFO2q!sb%%iSg&f$B(G(xMCPXPo{-tQVSA}512jMEx!IQvPX8HXc7j1)=pLuQ3){^ z3dfUwV#IYaDxTjkv*JGz} z^~LyWzdR4RKn&x!gm2%hBk8vRqCv3a?veLXL527Hp3+5trvlg|8Z?=#jGpFv4>b}VsL;Q_%( zvxbxXqZj)3U~403-QO|1i5w~44|C+W+a{2E@cG}w3=W+6ip6xN%N2^;T?9EMT`1~; zW^Gu!9t^5#yi(VpJyR0BH!Tca7e)TQ_>Z-#^*vb8p`lVqg8=|kdQ5G;fR(MXKX37!szp>Z_%ilcG*K;w;y$J$h}ZquKgidQM=VhGSN5)}*> z|KhX8rLHf)wig9AvfeT7D{&+GJGfZDF9m^lcYRa|00JQZpaLux7;??9Q;o|VlE`?B z#jThRv%dk~J;2bQQkBGF2gDOW!#xn%6Wd`(t__jh>bE^6<&7dE{SO?Z=PUv>f- zC?N(+z3*@v0)Qj{#xgV-qbM$2^(|iZ)wP5XMsO6-grj)yK*YnM5fn7RCmK%1DOR zp}FD7z{`(8J*tRzyg*Db3KAKtP5|~@XlFt}7r(as-@#j{@>eD$8}Iurnc(?q|3NzL zYnIoM8i|v2={)RWev{VzEE@-7gA3K}LcM!f>1E z32}3Uw}nhpIAWG+IGB2mQMELY*xg_1K|c3h?Ru~6Z`_UOxgzeep`?)`eXY@ePW z=MWet9KbqQ3V;w)!+;MGlLUC-Id=>IDI9y%;7u4G8MK(r8?JQ_ibRja#%~L%sI17e znf~kl3J`G8mE$+j5`LP$=p>0p{^BWck`ea)+kZQ#AT!^`|D3D&Oh-$MzFBHmEHss6 z%gtT2i(I4D5}3lb=1AhEB7F! za&vaDb_qL{*!>ZVpLmmaAde{52yDa5Ba@bd4w|>k&1Dd65FC{%>O_daERZT$>K`Te z-I~L|&kqb%x#Q?y_Q_;eF%)(Cz(*M}j8^|qBky~ZV6}U#KP-7RjH!ec+KmrwQgx;G z1lHP?s3+0xzZGYitMkRuNdrLAl#c&G+=>Rh2|z?tM+-Bru~sp{uz$H zDa1jF{M#(Ad|d`9oq|I{2_Sp?x4^3=^XDqtA9cXL;%8E_!S($URq|01`uBfGv3%R- z6ZB6a6e~&XD&7zn1kj%FZg4P$%xz7Tg42Q^&?XY9F9(YO<(0tj*I4^Qa)vi=oCmc* z5*si2Xs0FxhkZ`HGQ4EBH`|dgAL7^*lItmI0Or+chcl-{_rX_v;@B{J6!c zRQLQs79A=QPu^cA_D<}Vf6?E#i|tyjpNx9Inj{2hSU`a;KKj-NkeCzb-S~9j7)dG- z4FVh2M|XsPk%R+T+pVVHc(8GGQ%FN9BSojD@NpTioMR-K&4|81yby zPk#Io-p3R%LnbpI{h4!KbIazgzb=*6uYQY#rf<0}OILKhUC}%aJ|FlhI`**eBFJZZ z-Uz}Nc$U^&atD8*$jL2%J&OVAIEdjd|7E>8U-iW0+n_r`tiH0ZmR|4do*%?;Y(mA| z*)j1cdwdd^V8Q5g9!Pdi+Wf`ID)oxIqF;Z8gmJ?Q`a%77i_P90LA(WY^U&a>* znx}4DZy9?P@5xr-50j9Zh<3M+#mmNuN-Auj@~R&e$}cSoi!N`gUj1LbQxfmn?X@T8 z{kz3c4uzI|q5|Pn;`Er?H5h;EU%f_|a{BzAnps)jtEeOjmRL}C#IFkrTn-`vxI`eBv>eGdA0|NU(iMO3&3%TE&Unjphs33#CJ;00x9P{Jh#GY{q z-#-^Fl^@q|m{UojvELq69q`>J??OU{nUR$(jry;W4Jt^cijwDj^7j}-h{;%W-{*3DQ+|ZhP2YzJQqx~3g#@Nke^y`b zTJ^8Z%xuV|{dSFo1-thMh{IXe9az3h2Fum3l8Ca{FuoOc6&C+-64}7g(Q+;CR)kV2 z1^=60g<7jE@JojhOCM7CG3$>YhJv?Jtk}{?b@)c_q|SR4N6Hf~xXJPNOL1GM>@Ecr zsO7&HP*CP-{b3;eOd3T3B>y6#6{vq-u)C87gYz^BY{wT_p*zrvP{5xV&#T= ztWIA?Y5nsE3#4_E`|k_yM|!jP(jplQr_b;80tct(zU}9@fk6PXKuo{3qCdmFtnqOj z7xYQwaleurzqxJ_q(PU`eg5|{7vXQS^xxtydPO(BDkZFv6&+iyJ}`d}{Oz%JguZEX zhH*R|UmL_8(&{^f^=0*}7Y_wwt&G|H7~eL2hP_|XyXl=<9FoQO}3FD>gV^1*tR{cZ@vjUq(b z!86HC%Rm?1=?Hl6@fAOd+x^^^c8BFBuXld1Rm=5#_uub1C%VMPi(;ZV%j2pJ!r)sT z3W#1<{8eHcZ?gUf1p| zebu2aC$D%LKmY&!2A}=?W&iKLzyHhs|F3W?{=e^mf4<3g)z_k>1#0$BU;6cxm;dVO z0^Yq5=$~HqtPF5G215qKEO13NYX$u?oc+JN4}p>k-^ZJm9|0(Lf@2uDe}X{)f?Xiw z(-oI3_z`A;Qh7{@4>6HWycq}3FLGaKlIWRjYKJZ_*0%Uu#>PN(RI$=zwhnJ^`7*q)r&{B?=laDslgkWH%L5cJ zS&Rj7rW*?m8?M@+USXqhKP)jr6fr|AF+&tFLlAZ#V-7ZzDLxmZu`lI<$OO%Hn_c`# z!8|N7!xC^BuNE0$jVMW}KS>0lz}PSdVnT++Q}B<{Cm$XrI?*-bS^%>67G{DNRgJ_r zDo^5P)uvGjyxpl4e(79LK+k^lS z*1&)P8BM1Z*;3YLYpXeb=WQcrwfO5t4MWsx8&tlG+>(LSDn}(|0&BtGK|~262%CiC8J2rVj!!hY)RWHk+%a`FL zE(gj6W?F?6mqLYeLUOm)LCr8bt#N*tVfRcR+kyv98EMRb25hs~4oed_R(ZXI)znQ@ zR|p}(YP4+60KVKF$e`#@H4XWq<{Eo6wAwXGz=~i@VvxLmBW_~18rNcIkCX0j8wUZr`oS~vz*q$0JK|mTh1F3TKJKl4Ro$yes^MRGcYW0Lc|TGJ#G;&d=p|yF zq?b;q;2HwujA5qW0LqMa$+Z+mcf4cB`q~8iy76RxhkcOW{i0JUH7-yeXE>(QVtI7A z@4YX?6XXB%5pLCr^{)Om^?5$JT}|57^T;$XO|S!=%nuv=>_bK?W(fsqOL4!0e7}>^ z#N50u0~!Sx)5W(f0R|V$&wMWl!U!lRUs11zqfBLvFBrLK7g9IT&sF}1*!7pykJhi| z_4$7~!K|>kI3#-j)JmNL05P!Wx=^?YNF@pOYQrEA{M(5*U4&!i!Dw};40@&<%u19P zOT#={v6hL9AFSEfToBadZ>1K1`$8(FVe#3Jx-@ z)^-y8KaUg8;Wei}{`P9<+En&8xIhtXAao7^KsaLT#!IbhRuNDV_D!Y!7EIQoNe0~| zY{U4&Pn{SKZD(7-n>Si`XB`Y`Mn3=Ss~L=9W`18#!OO>4Y$W;yX!@EN{B#^GJ>E~Q zPi|XBs^pi}zgDmPeMSF?0!W_;)y-wNASQ?%v7(4m)MWD<5k9h|vyP>IaOZY3ujd#h zsMPgCoWHtM8LHRnz75m;3A8o_=0h83L+qdc5C*f;@=9nNH^DlLFlrI_C3oTGuZy>E zoOBH;s0)0S4&K{pkPqQ6)(s(j_kXx5$Na&v>$buloTp{J8k~^r+*hTCP>L@B#l>OHys`8@>wZ_>el$H`i(17?h5<1O0pj5@LK0hhFL-vtAfdJ zxdqN=B{U$b5Mmo2;dGhj5=5cZcu`ev#B8zqb@0nWa_h1H z617W!pbViM@UO18;)xa~RbA!q+zT*0h5$o?p<=Ih6lT$3)wo78io*b~@9-P2+0NX) z-yf6f_XHR}z#{Hh{Cxq2SeG|qaiM|3=(S6*7&LJq{|k^f&@Wrrjd(9Y8_EBBpC2Xh z-n=X|r`y*1`y0+2Ow|?Cm}|sLi>df5`uX)|X-pdL{sCJS!9K2mG50RzHkUct*I=Vo z^;Deo1!S`*fY}pbzdd-g&PT&~$!k{=$0cb|a6kH&CdN}0F0R*VLZD)-;?ZK{_g4Ht z5oPzk20JDYW&$xOf8@kjlpIJO7@Kl5{oU3Y53hI#5hm>|`#vEUG!0T=|NgaAU207A zq{sBrm%x(`h%BgSb$FvpNLRdU>G~}C0@`OLf9LrldV=B` zKRg+&_)OWa12V|}vY6QDR2BY)6N6fdn`)`c)m3h8So(sJf!6lJls<=A{Z+LOQ!=!I z)6%>$L+$JB7kgZ=t`lN}!K!QUS&4=4m+ZgXL>u%R`D#_@^+6`U?Rm4OFRi9j9@7~v ze+>-ug_P-e#rDD3Z%!TPljt3ZKO5Nb@G;R`0KCoh|>2LxRf1uc4yHPm(r6ZdDd?Fa#BY-hy);suJp~&y%xx z2BZ)e3N&%X2CG^4ell(KPx+5MRaRx9Q!$F5_5SF%gsnqm(%VE~cs;`-1p~%hje-LI zTp-w^qzQe`L=2>_i(mbHn73B_g4xo`vW-4B4^b2LifJ!Z}LmAKQ3SE{|t%9#xJg2UOdCCU7JN2CQfD` z?8eJ01qXNT_ZAsAM1#i<;vC)n`y}Zw%0+!acXngp0X~d@y;Cq1@(P@|ez#s@Jr{d- zE$;tCxcSbymRm=s(4!^u=}JNpUl78Z&ryVb|3*46#PiVs80y$}lK3dq-eX%Rjd+}H zL6i6KMg;;QWEkPv$?UJP{!U-)>P+udK3`4}@Y~8B|ovVJeVyTrE-ub4n4d&Jr*~;W$)aGc+BI9B&RTHxdHpFlUoCAC1(A&;gLa zBw_)91OHTNN1f8hw;RbF2kG5LSL5Af<{GI2Iw$NGW2C&)a$ zT}zkWTLpLDsiJLBmlXf*gthwDb>b;5JuCl2@76EL+G+L^u9Pj~*j z6O{p!#Bo>Sl#on5r)u@>clOSGeos#PhO=pvOp^IO8okJ3vOK{$d|DeHA5^If#sFtH z{(Y{p5h)L8Rzl216CB(JX_wxvd>VKO!U3j1RT>rJZ_^BSP5$k_wg2pc2;572ek%q#0wdh7rrf&)V{}z%_hYOtWlAFaomq*52M8x zqnFT{;s-^*`FN~|g<^SuMSDG%Vl=WsCGkB=;2{oSu)mF~_};(E@i}dwefN7^6uSJK z-*@ZZlJB+FVG{p&KR^Ejg_|pso*CIcaq=wOQvcQ(>W02~44XgbkoT*rntZ}qx9$@m zgtvNBPu0tCiL1#rj21v5xxjUw;(-x88h@h}cq zX|#WAyUY1;1`UmY-&#biUmVU>^`COVxd}IK|5;>@D^YB0CzxwdxlJ|3F^^k*5Obew=U0gBF@=eUs(X z|C9Nu-@nbxMCJY2BriQ0m*}KD#8$Bj5xJjyC z)qF#-sqQm*eLW%^7KjUZ9X;`N*Jx~0diT|O^;*4p_q(}im(iX14>&=*znALQ=(Xn8 zh`rvE`~DCa!0x+ubKCOyZX!szs4~5=(MkG|(WH#FZ29BO^Fy+7=a~?aUtS4Bh@HaE z6bv1<+VnlFR_oWKxgd^9jo*KQ5l6$vI%~lwM|cp&kq3#BQjTWqfQOhsbOC@d2EZ@q zir>q(fTK#}fe17J000WyL7E?j>IHq*p)LBo+@7!O*XtG9xh>VJ%WGBZUC(QU+V|_y zQ!jM&1HQf+40M-LLj(Bivr}x?gwTZ4o)Umb!3YhJ@QKQ%)c#%4dTz8UjF!=gqjUY4mm^9Jem-)h0W0hKmv1 ztM}>}5n45dl&=0?UqLXu0=+x=U0O$ge0roVUTJ)M`X$xKEZfnsq(0MyepOl03k`>u znFo!T7sz?0K=^4bGRNsIP4qOnwFIZGe{gyR(!zkWv#4G&HkJxOlAOEQy&g?Lw%^P0 z7+|sjxX~MylHn&zJlBKW?x6R16GcP*t(73FtlGmC)0x~<993UhzEClk)c+8In75TX z>}W5%RgCVrEqqFi{YGf0wE=+c2LW6LkKo?ETtIV5tBPrE*@YBc$yC?{z#P8iCe(tu zdZ|3KIv#Uv8BLz!&GXz_N-g;F_NXeP=mJad#g}U@09rA2AcT5&P zYc?mqy(q##dR`p&2^@eCoEF|q&_r!2(ayL z4srJ1ZvAas7yykB00@PV7JKI$rl}5i>Zp%Jg2G$2%l?#}wcOsMvE7L;Ttq5i zj-%^7UIV~D5ev8G`lQ09O74)gaUBsCMrHAAdS92pL4Q7UrAzp_?tfP`-=R2sO7;4^ zOIEH$TIEO$iVPfRpppGxCp<(0i~ekODI?tum7=)X#Y*E~03aFu=I8@-07vHbsb@6` zNgzFdi8a#Xwkdp7^J7J}HXx}s7F>gQPI&+?y^^=DG{(6B@*>|I02acT$J}kOD|>Ki zE=Iez}O0k_awdA_iGhs zM?`c)w_d5xg|2chkmD`C_77A?$83!KFh7R!N)d2?O zw6R7Kcp)`I-k_*5sV=_7FYDlkOnG{EhsV?%XomqP^5WJnwdU{qFkGY%;4<0H0sg61 z6 zv@NR9C3H{g(yxiJMDPU|80y17gI9kRFRHG*92gWARdHE4Z<$S(8552|NUmIWIDAfX zg~8+J4(*MffxaxWQO z`w6mo_t2dKz0l3R&UN+_U=TU@ExS}+?_o;fZvQ3xAVimAgYV__d1Pm&MxdhtoMuNs z{VHsBrMv79)7#Pi1-O(q}(Bb2UX7gvhC?p9Hzf zs_=n#$sezb36LFrFm?Dn84Pv|CLG@x1P4)qf`Xy9`|q-i-S?`y@di9HW*?tT zJ)26OUjH#~c|Wit27DlEm)*PHPhw)X6`#xZb;Q=i%Pn(M9rw3FJR%?xR=(BfnRnVP zefQZW`|i9Emu9T|K@cW#Ti{0}@Sg9=$hSslV6N?}=(E1geJQPwfII(xdcV86fA~`^ zqQA#-CtnxE^WTCj=4Z<9vXQL!UtQJrYW~?7FTc!oXBjw(1iZEME)_{@!nf{hh5r^J z@F*;o8#OKOzc#RjTkQ*bzFYNYYh0^c_t;N#*&rySrN=i+{fLcqKHjE_=6@ z-oa!zIywe&!MAVOmm#=n&~@W!n(_}CL`2~xSU3N`llJbRQT_!;9xcj}r@mRXbv!t# z#%2z1HFyUEet70cw#Ymhj?#fPLsZxfqR0MUauBX0WU8~KE4IOa!7V=TqjH9@IrPaR zE2O1vSAA)Lsv9}aWt5*HS#k&x5c^EhxX8PQWVJ&lBgKA@Pnv-tcUJ)y%?+o@ETJBI zphi=DP!gvW5f7Dwd)26eU`N zycX*X+z|WB2TZo@y7qr_3~<)&Fp4qmY$Vf2P2!$sxug6>!IF16PIr z%;N8F)9#)Av@V8trHn&>#u_CTCD<(0&v7bMRfj(sa^33CPZ)RM@V4C6mP#^PDp#TT zN3BgrRfAF`H_M7cgaVX+9sJNP^Xz*n*=4a{^uvXPCN#l%U1j-5OUDsGT8WJ+8NF12 zOg?U8>TA8>)kpI9ZXN5R7$6i<-S>T4p1E}|u?!;;Cii>l?uq#u{S*7@zgO)RWo`E* z_xm>*5E5G{#1eu7{Tg4Bjy|WkF6F-G%tfnTLff=LCQlW0ph4U=(@P4}52GJn%9MEX zPFO_PJN&mPKM{?;U!Kc8ROBG;(UJoh!8NO+1V{LWnu-vRMa9N3N0$+(_^G4hLM2AQ zZCqnfg$AMTABT=qte}*MBzuIT>XyrqdyMHM?@)KbSKQ&D&RV@j5D*?%V9)4_6bv8L zIA}fP`e*+y*AietGLo&K6+6hp$M}=t94>T*6{zy}E@4N}bb!Yupd62mkKS2@1vxr5 ziv8Z8(#+>u`2`X8!a!EejB5#U^2>MPOK#om{IuN6e>V3-`zF8eO{&SXUhIaKd&=7+ z+3PD&9nDT$xU-xTPaZb?RLlML;n}Ig!SQWh+}5APi}07>oHPuG`C_SGmo>x|K2EFi zmiB`Btj_+2=Kgj#I=MY6=f)RtwIv3tzg#s|OhZCY*Q zxqgc(pG70R-}PdgC#wQ_G-I+>znqKV#MAqJ5lBuIs=u1AN_;_H^quJ>;DmQ2|FjSY zBo;^f`1n!oH=Li3Ei2vq<801660 znji=Y1%II|UEde~$^U)-m;e9!@AYC@C$;zgU;qCSulM@9zrWW~Y~9w0d?DXNU$1_P z+ycZSz+DLN1T+-*E);J91Ltb6EeI*Y0*k_+`-!9)z&dsXKz+5~Fvn0m9kbA+zc!;P zzwjvv1avPU<42g2jz27);_*{FeB&11-~=cRf}2aE zG%?&tDT;eSn5RaeC*Uz3lu$WCc`!8dTi|3mZj!R0c#>sgPrbuJ2G1-O8DWYUVU}WsC}+kJ&>E3{ z4B~--k6XM9)dTLF7hO(gTzadB*1O>&EANeZbLJQEGaym(1dBXk*dsOU37~q<5#~*> zK>*otSWT#OuGH@e9V(od-Y997X@a2Fe@ENgyesz`m&$|QI?3dPXa4EC(hbs6@TkaI zE%_11uIp4tuO{e>cXe9p(7AZosqstC@TKM`Clu!JSWBn=&0&rvPaa-h7g>I3J3{@y zH-iU@f`$S9t)Jl6m-K;|EMwdNCqVR72sHj3Zd&+{`r+->tyd*lv5F?EuUF)GZX^7a z%fFZ83J8KrD}Wtbm~IISOv@v-g=XKa??GEy3{jMi`D~j+sUZgO`=57@)HGm98tZK& z!ZD|l28lo4!jceLVGtLy#guLi^sC~i&a3V3{?F<1-_Rp2I??5q|14p+@?fM<>cJ~4 zZ3V%qh9g(YUhRTxGz?mos)I%MBhF>9(hCJH3u!$zaC7S{U<(-p)VWHZpXaSY0XfF=ii zkW@nn7a2G0#56;uQ0oYV{!ePxA1*M9h<+TAAqF2O&X+^I2g6)l>05=pb2j}x3NHQc zuXUAr7RP=3T%L)Qdc4}Azq-ZXei!YOnykJBNExt>3NrO?aa}pApTJNE1cw3Wj>+#AL-XqO3q@Cmo_kKte^ABC>s999%aL!YeUq&$_j5Oa%8HbMRu#Zi!88|A0u z;jz0{*l6M8lzbD~@J#Gg19caTZ~tF~HnbT70WWp5;pb0RK%QKK@K#px-2W+xTTbV= zuXa9PC&N#;AfC!E@I&boymb+67wEtmwR$|`nCj&xzGNjhc!xl7@Z6qNG&O!VJEN(B zid0A<%Kuy9cyT_55;q+4|9vTNAFjteV>x)APwb?>_ifkkL`xa7i|v zuzLP-ukh;w{xH|O-QA|H*YM5nUm(GZgXi_>E?OexM|Y3^@V7%8I<-$<_9B%nXQ~5+ zCB*;W!e5`FkS|fOx3YstkNLBR6^VPAu6*SE@9kZhhX(Y)_A0P~1Oi&q!;i>$615F~ zJ`BzL5t|#==`LTE(QBP+zWBZwkvG?gCUJt81*d4J<+*x6jMzpJU`rI z#iSK#3~02Zvx$zTKl&>!>gTk0JN1&~_G-$5`|6>V!)Aa?qBg39U| z2gJ(hs@3`dxh*YlDJv zP*5Y(S+pSjJK~~W?bm)<8aq~>OA}~TUzfYD6`UXnw3Ayz4E)l|GD3PUe!h~?;!`K* z|Ir0M0DGDx)PWCVY4@R|X(?@aWdDw@8=TRn_x#*+_-=nzFx;dYCd>a?Z0{`R-`3tU zdvMc%?>rrkz=z_O-OeG(R2~uwDv9eL+ZcD-<*Fz9W@LpKttGicwNHIy6Jbh%Pcp~L zQ;j9L6JssuS9LYZTF@yaC<60m3rJ@s>FS`$i+}Ye@_qVMr&J`Z(|ox;KkL?A_xkjn ziPh@$=Dqu`IaL`ooL;=7yZ*3+zewu5#d6d5L`5SP$6=1XFa5l2m!MO&g{#eSFH+db zvi)DPr^q6DFjso`mfd7*I^Mx9A;CB?;v7gEdKoJEVaXm!tM!{2ZbcH`)MrU^V^7PZ z+>0Odz6jgejT3gSdPbq?q_5JO;S&C9C%t6|5h-^3>gCJURX9LNn2(#jd_GiG{lYxG zrKQ2u^8fjbO~Yf$(b~m4kY&~WLlZl+c&pXYlg|JAf+Zin$u@t!d>&|*|8q&6yK!)Z zo^qs#>&u0tA6~TerR{F2+trF6ceGvYs2|JgXt0ev=W*&)lP_kmhiL6cn{fBNU1~g} zszk+Vt+s-KI6Gi|ul$)h=Y#9?FDmtF6^h@Yj^C_Oli&RLeOpg{vR%JgPfM=r34bNV zJ^5@_Hp}-4%W`1PYDk*-^)Kd!6V-S4LOjv_H|@1wqA{;gRZ7g|$6+nxPE7fd(AJN+ z3;*#Rtkk&*6=f=J|DoMWEb7DX3eAqd?W#CuMLZCEI)4RhZ#?9f`%gEz;W!?0CplLm$5|20s}|(6hmi8rB}K)H8N{`Sy9GV6AmqF9rFjiFcwqgZpslhy z@?OklaTfklwbW@;TwGk(rQ+0xS9`~Ci;d`0uVch^hZ;*?kQ@7J!^y1!VzSy!t|Yt`!K zjmiA?$(O{$bi%?h%x|w(S}$E8J?W|MFqBxMJrbw&%1>9m{?)%%uEq$k;2?h!spRcR zW&QIWH`Z7O&xW?K-nq`^O2{OSO3!$zbaoo1e#zT~+*;*eEb^|ksE z^=r{r`m~m>CpCJ#e!L(cG2?~!@1IfHqrG9D;;UM?O(oH#zZ8Kai_CM}k1;*J>IhND z2|Z$(<+(jvd=wLf6BS&rW-a{$uQ_w|shO>8W+C=IQ}h<_K!u}##>}n59nY3>`@7<6 zbWv;u(p5hh^wGIJ+tNI4Un>n3)KXy;js2G}!aJDhN%0!|W>JeAnU~kBY*ZTu7vx_i z3Jb<0$H7oBn|+(FC))j8$#gnjOY5nN|F3HD*@?hob5|$p?}hxkm4x9Rp_w-)TcQfh z-1+|xMkN>H*9VNaNOLKV2`;E*W@yIG4O1>tFaD#k_OGuk2cll|8OCmO!zWPseLhgi z@*)3|!}Sm%8xi7RH-uZ4_TL3pkZ(Ripyg07H`3Y;Eq8+b*g#|B2UklanW^bpbcv~q zku_FA5*vz|{r=1f*F|BW4iVu#gQ0AFE`vF(gBX}z6d<0kmZT_SR{Jq352_abqCbQ+ z7Oz5=wR*qRi9J}YS1VXbhXRi^HA)P>Hft!dJ=@*o`}`%C*xBX60>KBBJfC0FjY?ct zcoo#5t}M=&0g+!wM!XdM%fGs{`>jyWgTb~^dZk>UZL%obw0ci0cm!`&;_fwD5f2!C zy+i{3w&*%ish8hk^3bIve!lJ|(Rcfo^M6xRW zB@?yJS$sfVbBH<7g($T z#&X9e^o|HspQT7?qbJ9~pC5i8fZ}6npzotq__P>cMIE!cdVD|WuKJBLW z`444!_E6C!Q8P8;-~GDu`J(DY%WjZ^R3>!wW%%2?Li)Jb)XQZShGT5L9B&8rKEjJ> z$>sTCEd&nbd<1es5%d)9=flL1AxuzOmhOKly|Q z9wbOx_u#KY+MLjp^yeli2z}*NOPAPR5!(j8vYnzDb+~S7T^s)zXB-Z3=tBf%dm<}s{;3K5Wziis%~#!jO_STN)rA)!3tZ5mRTnu$y1&5>lk4+iQj+ev z9nuwwrP*@dzOqGb``7&mcBRA-;ua;eWF!wNmiURV7~UzG#;!Fr!v2`UzLwMR-*U%@ zWY4x9HS~b{@4M^a{S~b!e`UDL=a=fOK@_-t-><=6c6p|dOtA+V@dq*zMn>vkwTXnB zS}#fT>HpWS6ud0Ey1^D6>wi-(7D4H+3u2ajpO#z8-Fgz;u@`wfK{QUTopcithmqjF zJcI=QZICD?K@N#WVToSJvDiUG?OveIY2w5V*+u@sLJJRPKv}YdapjGhI_`FN0Ay~w zadm(88ODpQzAbF^)uQ!!`}OXLUj16HtGzVVm(|MLoS3`k1UpoYrcZzDhR1TDzRegD zyVB+V>-2a#CEfe)Ph=qBn{)gS;k%3+tNVY3C%{Yc^L0j>HdZ8ooniDRA*!VNVS=`2tU5ku{SL=+>bA_>6mKMs$ z!thAD(sX{ZS{szu?U$ayTob?qUc30Ak8~E~z9*?M`j*>$ZU{;ve1i!fP2_u{``5_Yd9h<~cNBpO4KjjnkC0kF)q9 zY+gL26S{>Z^~<<{Uxae_f;+wU?e&w#NSg>kJmU9|Kt`Gqd5&5?FaDs51LZ3@cJ8Ib z8njm*TKwJ|WxWE5nIv6m!+Pm7bEnXF*aqh2RYHL7wT}xGTA4=we~%}0oYhXgMhoff zyg~}D@aZM}c>BTHk}=T+u3ft3tppE;ua>Bj*W%&d_l&e$jk)cmddv1O<;1W$(a&yr zUSU7)SsbG=tez<1 zwBD-8Zx}JLeE2eK>O8*VCjWQjEz<8^q=rz`?i=>%LT>W<`kL;*A$pz33}rQGbDiG8nepgrZ28!E3Wkzr+v} z6;yXY?;0;IqD!Zod7dxjl-~V8V3zAu`KcDTw+Z;fTt=Q@V4_-Ao?t)qRevFUd{+G( zzagWe6YZ0#`|q?@3e~$Ms`d&unv-?=XJjFA`p)Q?QeOQ_Kb@0h-pNV#nyzCbeeP8@ z8-Du;%T%}Lg&%o5)ZcNKk4l|ImmMXvh&Sd^rB$tyUx+3=)73L2eg1@EN$Y)bzzeXpB-tuzVDD(1UqT?n)=DVK@@ktibN*l5{$f4}R~(oh|ye>fftfsnTkdzgW80zAL`h&j0;duI{~E`qyh;6JEVzxo*|} zSHA>=g@nkcsp~JTvbGo?@6`9;2A9tyzqZoHfAqXQ6>Mam>7y)6+w{1QbP_3b^z)O`+v-+>%X@L(V+!vv#rpJ{@W(_iqr4)C1M zDG!F3W&Y?@_0O{SP7`;AqRvtXGZ#r0nxx+^gx_KqDJN5!o?Ayj9@(t2#_b~r+ux_( z5c3q-L?J~gx%K#t<@XAdw!^+jfvWO^en1@g#Pc5K!IpvKg0ev#@N4kP;saV8zrw6A zP%~kjJi86I;rhmDh6#6Gk#*>#p7z6K3=#m;8BBIIrntF$$+7zWO(I*wVi4Y{RXx*i zVE?RM75rX1lq1RVd+wz~%3Jum^>g*^_!;-F`OL@hF4iI!-t*@dK@a2WE5h}vlGzMZ zI`Pl{EN-f+Rh8>zM0KAsZOUZ3FX#BuqlT;1RcbF-D;>64+G=T}{m*mw^0o8MMLla} zZ&TN!#p<;uc%pl|UawxesJiuQxgC^Q1{?W4%AYh4mo|0M@FnvvRns9o5$jTV)R!c; z{j6LJwTeRx8Z9S_DDU-QC)9@;v&NzAUNW6md|{gNGI|d_NQhIC$3!3Ms4{DZtuD2m zq3~`ZZ|{>cmR_}nP#+{!1_>GNj>MTY>d8HR3G2Ba<;uNMBTrx9YT~cS>gt|TLA|b* zOkV~!n@l>J_86{7Egz_I`u%#YE7qjDFNLLDg2Pccn4pzRjg;5F4wb<_nItsd?2t9u zdi?s`e+Cl6Gs1!eM6{Iyq!4YP>ekgX=G_>sUrE-%1T&an+HUI_p^-t=cMi0aFqP^% zb7uO@gNAIc$@4`!Rv#kQ*;Z)!hk2kKswB2$Prb>O{#wMjF&~@sewWpst3-OeZiSNd zFsz0tUb#ub+|}WnnMS_q`uia@96-GbJ(vGc0t?TEqa}@!4r`P5QnDcL8ftt_%XZ=Z zczV^OIVaw#Hqu3=ahMEUjeZXJ!NIwdOojF{u7rGRWMvpZFT9_m3NRSkXSj*UbzUco zv_qBtg{E7r(L1~KYq=-&R_KLt%i^I6b-eX49xFJ3_>U%3(Ec2b3Ev6aDHqYT9T1-+ zc2jGx55)IbFZgi0ok%i~V(tH)zbsM5@I^?39ypiv^hmOPum3{xdv=NWev8zy-9wPf zKLzC(XbXMoeh2XjiwtN_hBV*oih^YW#@}BAv}7?2GRT>2Z;~gQFVXGY+}^B{2P3?A zOj#FCckDaLCbyhdI4mW}Tcfo?0s)olEI&z-eRjwk=2IeuQ{F)xQH0~(IjS@Nq{ zrSTDj$39vwAtZ!pe)}o@63tDdsP9}AVVRj}&``w8v(zmo@4+uz(CSok+&6JI`uFIq z-F27Z3;zhJz?M(Mh|l1~(|&#?8Nm;n5H~d+oO}Jl^N6UsRpuD(;td z8QPa0V|gkV-clS1o1dTSn8~#`)VHC2C$bG8WO=!B5MX~je2DFrl6DA$ z=_H+Z1ty;k<lU`WpEJf`#mq%lW4RvbcS@_2q}MMs^cZ+jN{KYj_NgW<$UpK`qyzgFV^TC44Q zf>mnu)vNB-^<**9Hi`QYoM7GB_uUiUugUHI-CtolIrADZ{#ySpUzhSch!8{cL6?nh zpdcC1pb(9~x2V{Wv6g=c_0Ed1A_F?vqJXQgKk&T3X)amsEbg zQqo;J%1pnt%ep7O-a@+@{s?uGv-5b(QhV3qw1=qeRy~dN{>);r{s_js(qr&cZyd8r zss+i!i|^kix7mHCEx{2mlwz6#OwhJu#?5VE(j@Ov=r~>l8Z`)8`qKBIE2{pSV%2B2 z`i`Kb{$JT@hI8fa<2cK5{3vM*WW}zna^nt`r`iRsJritq48 z(tJM&?wvj4@l|s6u47{ZCtpC6UF~DR2kdv)C(B9(*nM@Ko0}`s>f{SW+!jt%S%igTB8H{cx$@JMB37XcGIQVigbcYcCFl< zD-znp-&CHh%wNg&z2Ps{|MtC;>+b*W@BVd-E!RrV)$;%RyiIWzOW}xMoI@hv`Mzgf z0UW=?u;FAksiT)Lh=WPkrICaNrb>zKN7cC3UfkqCZTeHCGD0b?B^b+C*&Ls;=KH_D zo3+cdT)4Zw@n2U`v|q1Df2$62g7atTMp_HvSlqMAn8_s$(AbicKf)oVMzpwh?F2s6 zgD!AAT93Njb4Mh257_^W3^z*E?#RN(F5imu)-`}uByi9ZVP;Zpbca5xu`l} z$>~x%#%%VEL9!s|V<;@MsXIj%NQ^~5+Ro{#%MwxlzC z$P_qr1~5^vsQthNdXoP~zrE?P{9x5lr<6g?OMq)FHO~;W=e-l}{i@ORSob*=_agpug}1N{l*)I=AV% z+(uW+zrd_mWSQ>2_E#(Zr$VGe-kFeS4dxdE0Gr& z+U0A=K%uEZRo==RO7b@U-7C=knSZkTY0`x_J5Uu-s2+p`*@R83pn)VRr&rcI^k{8u zI6TjH)=!Md=uKYUEB#;f%k^W>zlmO}n__E=UaX%n1(RWi5ZoNmrjxSuuZi{i#2kms zwi#%f#cR>}C4VK?7ex90{a9rV67f7-sE3JvZKez_X_3WPV)N0aWS{HK|KUwo^iGAX z8W08?F_w#_L81R8U@yPm!dfMUcScFnmA2RQ1bo?xd$?X)z3hgxUv2Lv@k!O1>mKtRbvJQxgWzlEf)_b(!Y62r&FjS;P3kEQ7m$Eb}u782p#V4@!o|cj+*qm zq6$Jo`|cE+V1}p4^6;pK75+6D6g;0NE&lz~iP1Ew!6T>K1Ap#X@ipJMa8dmZnWlMR&JkSfbBm0> zBK+Y}!BzeDvYV_}V@=_PpZq-pX6`=^ree=TolxzxY`v(Wnw*-=|Mw4X#}}aR<3Jsz z{h7sa3mHM|&_}E?zTu4*Y`D6-o~+mF)yY`jf2^-iNM2vxD1ud0R=pJxydy+yW81GE85L} zy}T?*FMT;!%MrVu{$t+%6iwTXrfX9@K{cW{`_@zVkIq$11vmTrCSvn($@%ZRp9@|U z<6c_UA8ZT3r`oNBU*A|-GDJ7?N`i^^Pb>B20tWmLd=M+T^~=TAubW4L1cI!FJ}%B^9Qm;b`VS|>e#;VTER^;%Zw1w5mtrWgS1|{?E>Jhglc?rqn)3 zXQeg0pwHosOvOw;aEdsdAb2sx2?>7;T48CE_leXt)&dSM*SOnyL|u;kZzuTh9%?wQ z+Eg%91qMSahoZFA9)J3qQ2o8`NKow{F4)baiQ+OoiE{eFT`<4+BlRsBQC0r6SVKaV zPhP9rm*w85y{}Ndw>O#ht>Xq-|HXb?7VEpC-3i0 zbi(2^HzPR0XItMp|C$vo(zc0=a1|Ho9;JV;!@^Nz58)SqX{W~D0jxOc^k7S^(`|$A z@w318j|{`FH-fN4cne3d-wD^+pF^ASec!l|2$ADR0Uy)(msOo<-_y>TU+Gc{oIR)S z8wGuS0u87=|D-BM4a&T3puE@SXs@*iy1SSw4bqku{5oVyB|md2f*$*?R=zHmp+u_n zudns5uh+eIJqHL(-C;A9R`AFAg#J&DO8!|``m%g({?7}Y!ZVYIJ54e_V#KiG-YQ0i zt9A}B*7mF_Tp~t(`WWes^>iBD>Plhd`#)fV#w&t0!0AqEz_5<;TANrIG!QqX`8{v& zK@RHS4WaE46wDyD+Ys(Sfx`gB^wYol$ni~-7G03`HwWyfgLIrZd_zr37*1#jC=`1i zRt}!_D-30^ic(g>WwNbke!9nj$xgF6-T{qW>Gs@jVK`|?S4n~^?M0LAKcT)HUXU^R zkR3s@(0-}dbwB$plW6B-{X2pS-NXElw6*HALy@n=jvQ{i2B3*dYJ56SMkgg&f7hn1 zeP33+eu-DU+Hv;ux0Gg96Q$fgIs>KAm}3F%mOFO{z~JB5e<$9aNJ||dCFqr$o|o1- z+>~JVaV_;>!ldSXu=sYA!`K|1cRbbq`^G;NvNE$Gdt@GDrOb?slD(aTtRiGP=alR{ zG9rXzJ4Q0kIoTP7!a+FpI-Fx22WS0!e~-uc|NQs5?)QCP*YolZi4MJkAocDj__vE5 z{v8CyO1N(oW#{shtHq{I&;AW_N}%oZQ1dYTZMTtjK=~e9$?!*=(-3u4Vg-Vzt5z@= zTku%ueeo~<1iW;a zB=7AHk^)QMPQjVWT}E3&gh-vE1hLJj>yBloX^j2xau*lj_!u%5dXy@D;b9RJ`DLa7 zPo-~t3_*Drx)W=Uo*sVsf`^zua%q zRNatKqw22FqeYlhU3hNoTNxkDrTj@K58?UmQ5 zpY#5+4z~1!0fSrRUUdsa1mZo|b|9j2E@P%2&(`W6_yfM>j5z)gU+=ukIn~_1=|CIw zCCGL%Hw)AsL#2)m4FEpRttd6G2l>EQhgBvtqEHVH?%p2Br@a;zIqE=)IJds6H<-pw|12EF z&>AnThfpzLv3bE&!)2PALy- zvpcc6opURHcQcJ8k1eyKou3%3Jl|lH z@G73B+Qo`H_s+TZjpk`j^ad0J?)Yaoz3>TMvvv7LHI7intZ%DUiq9j$5MMzT`6BZM z6%3=3eoOYBYioU#Eu4xB^n&}x5&Pp6cc;AVKm8e5w5-hau(b$uM}fc9_;ZgcH>2lt zIQg!BBOq6@?(c^EV%~|wbm>NdKr=OejA7Qp=t;gAV$ncC8b<-==CS8Y47?KA9B$wQ zToE3ohAlZWQL+*-=Holq)|&7dr3H0qSF0h&O$Uc*%@g~WN;YTi_cAq~O0W*}!3+A~ zgbZ5-Xy)NX4$Z3lQp!)p*nO$HwE+z${)IWW<7eRZUaip$g_rkra1;2sYj*~3A~nye z)bkWY)Z<*2tMxBW2?^ublac@G=~8fzF@vUhF;Y}aBw+BfD@7^%d^OuwVpGQeSC2V3R?{`;wbfP9SX{<9m4!i#*k(x*0qJo)YK51JTG zcyRx^X=qdGjHjj{a#c7nUtn$L^oRR7(m75Y5C^C&#t=jI;AMx~LE^mt;ru@~!OP;B zsZ2-;-3V%EqHv^ zc*XCyXl}qo$@uE#>hJV4+GX%fycpMk&X|!Hm9%YxM`F}7p&Uvm5aGQo%vMT8 z`abkq*t92o7N_}NAInSmkk2>B@DmiM-GxV<%k)}O(c{FWt9cRr_J~FiRa=D{qvgpK zlBfJhTStV@iO~E(jj3eZPY<7=(kkcUOOEgUIti@QK?z+f>?Rk5Pl~?*g3u{lIjMb& z@R7k>wb@nX9((TRzv1-mzh6941(xccwUfrT7zeX&pL_I;1Vn1|IHQ(BZInCow^*r? zCT^2|Gj5Q8R4umOBOGOebZAe67F&MzP5w+l{w+3M!zTKx#|LiQ{8}IiqM%V4i>?~; z_-3dPICK?QgqHNC-S@IDO-?#cKHPMBtjqlkj=u5!#q~+_I+-^rMVccPc+(9qfcNOP zQn!GV6Nu4nZ4VIOiO@mfA!}CpXFd;{HC+#h8zQ*8TxqmMW9Ghda88r5$fP*r@;9b# z_3U=otfbT(h{Q3OLrP~#DuMRuZ{w_~9rVG1k&Gp&*$2DFS&WagRXx)yzWwz+{?11i zi4!{ni|e-gNYKEnh=o}NJPvE~x8>IURX?U7N#5@&d0-;^Uu(i@t&j+t_Qg_+eJ5S< zn0HBU+Y4#KVOP5436F!@7QFhDAq4r!8O<`M#EES;WHPFRZ=z}|4w5pME#_RB4tzLN zp+gx0X-`jm@P@P8p)DdJ&b3s<2Yo%!h!n3E`}-n&Gj8%F*}4)1*vf^`&kng2%9I|t zF_&xMf7v``r%BwU40m?N5EF)7i4#+BRT$V(gPdUf*^0d7X;3nq-os;Oky0W9=G`cx zL8O{kOq6^TfMGCii-y$MHa~)UZdgu0Vq|btnogkz)xipP&Y?kKt&^=&(aGW|EWA~H z8nWFKt_d$$8@%6jeqoFFe5lJh=+STBxf8ZHDlgAd2(wRP((l`T{LiZ!%9jcZynh3y05t&+;Ti{}a0EmS(JNY_r(~SUQtG z(uUq3nFxt%88jVupZTYcASZuD0Bjv?P-nj=cB#(wqldgNJfP6h&7muFOGJ$ah#MbX z_z18Ye_`hpd5O66S7*rbQ1iFp+bBw-Tg=)0tZqBsy}UKYM7)i^NNM@R^EqpCI|iJAdnC*BReQq<7+8;U|YIVr99vU|9jx02OAM6xxgD( zV^I}AnkI5=n+j`##qH`6#j>XB5R^ry+HUhoDthC1OSAD+OlNsr32ILMuTq5N=#AD; zG9J>S;|R(O+C2u|D=8kSj@L5V<}3*vH3g=Nt!1FJE6yf{wD`QtENyhI_-Ghv9hmBu zU0rzhSC&m8n{WtXIj4I-rKnr~z;zLGVUwx#YLOJ9u;v|FjLWH_nC;{>~B3V~y1 zFrpYTw)a|Ix1bsqJ4cr-MkNh@>>T!9rx2yARjA@S`8@N&;MW{}HxMwC)HgH@D46wq zj27$1+48j2Ss_tL$r75++v;>>0$ecfxSx}Gf3ezX*FEYQH#XAR+}IewqE?5WRJ)jz zOw39lYbUwchkp?yCE>-plgr)u9A6HvsafNu@zGQq8hBX(4QI(eZ--Y(WV65x6kyba zr&Eh%)C1M%j5)U}8nY#(@}edf-i%m{i$l z#Ox>*ci9ZAbm=@jaUngge$ip*c?Rxqu0>O3eFCJ6)D8ouPA! z_4gn3matcUiP(vN<~r6E_FPd)(Ldc+`fn&yBV_t}xlpnsT{CWga$_{wA!30m1Az}t zO43KHnrUdh9L45Q9*XzVNQ^4>!XCaRt>5}~5<$8LU6D(HXewi)1uP8_x)J-& zYqPRojyQ}1&X3}9993{AzL{i6oOozQku7GW%RetVUGw{~5@X6SN-IeERFRY1c<}CY z&~|a@HT9exJ?X#VL|(_kPkro<^2AmBf8@=gUk;62_~?AUekjHpbBfs;{iuivhd2)` zlJ9~`XxZNO{eB$iX7?JaNTFtJYB`1;5n0#nR-pf?nL|J~**+{I!wttC;+J!WV>0g4 zs({XbjXLv@mL_)7$8&8`h~cvOw++u$SeZl5qAR0LNuY8a zOia^RnZ<`u`<&c)O2?rxH9^vA?lFZ*9N-fA@4zH({S9i~D`Jf~+P>Ox_|})U1ERjP zSIZjkhTrtim%F@|;Rl%4FGZpu6lMzpHPgb#1cdAo#dX^+|65;{c!(xJ_SG9NggE=p zf;jQ>%;$rqTqQ*I$97yzd%R!uT5yf*S~S$(&V*h_C+WK}-@7t}4 z2XD|yCq@T30+Q1-iC>R|@5FC#cvB$<=+bfpZplIVx>_aEc6F$xqnA+hV$9bbbu@nk zTy9oi82yIF=mR}Hs*H(t0R)FQcwaaSHEWjqo14~b@wyV!B|RQvqlK&nv7~TJ5+zcv zmP(F(pgu4fWkg6y_DSxZ)vXS4pIRtfUNcEQl|+6I9Y>;B<8q$=Eikg3Y{_pWIzjjo zGoK3ovf7|re0N@g`2hPe{*({pU8SzMb}v7kv>3C_sLOdrJ6Pw+hF55MN(t@S8a;8& zeeBzvfr$2V21R42CD(FUPEBMN1o&zHbYtf>I$GiV)Q}~g3PTr6wy=R8|L1=F8I*qg z5HA3qoaI<@H9#DEG>FdIC^=rZcp3ls9>@&LCi1tn^}x`YaCr5VCjT_0S;)+GowNfy z<_>FKn`uuB%PpW~!hbJr5N3jAuPoRUz~*R8_E8S_?K9s@9l)ieyCkGeZ=3X=D_D|$ zy{bY`b-hp+(ygEd6AhFUv_j^QT8Jkg*swsPCib%jymkFc-r+6l&1no4BqD~9m^ee& z!B}6{+L!{NdvHXH-^}`|Iq=jLBpZo5in%SY1bm2d`vQw-lCAv;-&x0_C*{lai0|lb zUuqK7iB5qC?a2S*)9Y>OQ;54P)8M=v1IddfB%s#foov1jK@>Fi;jliGZd!xt^9`m`2nS^fWIk4Z8aXzbt?xlqlgu~Wrmh42mB z4k&WA08SQfNG2*kx7|WwH*59Km+kL%Us`=GElOA(2dG1nvD3u{pq8DB6iClFLb*V8 zb?G|kgKE1~vo0A44Gp>k3VN6Jj2YuN4Oo>L2(FnY0sD`lAW)-$;b5y`%b;)&l5|AA zh`wF6sE;G<1t-8VNq1ckZ1ie{-sle}6K{mT#Nsh1=0u8$Ar7YCxgdC~!L8I7jd2LGrVj0vFl> zt+zW&wjY+Hb-jAF*YCyooWBq2q$EBRB35c9LFob95c=FcpwvvBJOm4Vpw3hIsgp-Z zX0dsE|70;%A{O7`KE9%$Qj8~>vkX}(|CHMUMOl95{6b{CxvdforZs)Ta%1ZOf;vw< ze_51cyR+vn;Xr5br##bp$t2B>083%x{GGCE@n^yf7JCs1YcC57)ZUXg&C<52qe2k% zbo&wBk$Jt(X=3!=xWC|kn0V*eGp)q33kEk z<@>cjU5Nd;z#g7H=@tvxbigmk5mufHjiH{`DN9Rr#Ab>~Rg6$cwBoT_?U-1B>0MZu zB*&0fCR_Xl_3yg(<*+d6`;VV#pQ> zkX|hH(~4|}&$~Ey^5nKNQ>KuHuhR_A0DV6o#`|yHFT`=-2x1@{t{y->^VX7}CE|2i zxc3l7PhvXl*K>Rt6Cq9&M=U235`ly!?6IB<=rq|8$^Fn}(8}dmizVx%Aq^-^@!jZI z)fozeEf@;Q&|AnJ_KGCaHf5B85iBn|w#KJXNfIi$oRaBBr*Z#X;#GMzV%tW^ZD??m zWiHb*0rGG_wjYcx`NNkkdyO3k0KKjNwiCI)Z@|`%b{x*pn>d6Wz&KA;qSO;+TZf2% zt{QQ?e6`-}89a)cJ`=%^&VRNra)C71v1p<}kdCfwt*sUa}b0D4W`>~bb26DV*J z0yu+k*tfqJm_|YH^Bt%MWt><<-aMu~4UDulc=IXsXKz0bokbAY3_-p@&giOzOka-P zX11G1>)-&s#U?7+R{@i+Y;9mX;%@Gf zz%j!TtaH(sv0WyMR5fAYtzo>Fn42Ccc*N13ybY6pf*Y#IBCGdpvu2>v6@Xsp zs%CFSm8TDKrmKUHi*~*(w~BmD#3(`r!(G39oT63SjFiDj7;I!$p zyxk0+LP*?rAE8!L)BI?>3r=9z859fiHXS{h9h2B)5t|f#I`L)ba{WDUO9ZFY@p@q= z2DX1?-V?f(BMdin$WNj{(hk zOh8gUf%bf;K=c&VOM{;~~EUD2=U((3H(crS18+k6|;HSphZ$b?}q>m6?sy?d6V zB5MDIJe)w+B*m-4gHprdGymvW>=RL@)}A=FfUdg*T}6#<>&5W<0#OmiyJpoLAjnp67Uo^12u09(%*ub~tK;^`wK&2$X)yEc(!gL{vLwMVBdf-L1m|Mzw<%i({iF zF0~GI?dgU{uW8{ZR@bZ>OV=Cvt_lcH8$I0=iLrXRe=tEt(q4~_?JX#Le>s?|1z)*t zaq-Mz_XJBE;8pi3Yf|`QHv8F(};OXnDCQW0_c7%Eb>4g z!WCYfyT*Xp?QI*R3nGZB>7ACXy=Uk>AtL{h4m8QJ>;?WZ$cabOYoGISUfa~}18tWZ zjlB3g;1RBu$a7xi)YQ4E`n;pPcc+S!!qSeTJP!`3{r_EV$R=Mg2Iw;p*`@xhPr7X< zkVCG|rOr#}M^T3pOn>`=yPwSS?~npX!?RAUbu1?z(4MLn5%g=7={NYx@#^=Mh`_E+ zS)+?#0xGqw{f6V8x2y8vhwpo?{+p{&)a9|H48NyWy3YIizx3qyC#(1gk-jL%f~x{5 zJkpm)I`DaAGjh>GbrE;j-k4gG)>1BT+A>BVj8lZ(KY9o`dt}K7p zeq#i}z1E+VXA>bnqSfXEtoPA*T3GR3{i5T$qero-@-}<}`=e{#m7yU%+0=2f9&U@n z$9)nt4$CR8FdtMNOs#Yrp6Wk$F$jc&zOnQY+HMA;Rv!;NQ1ieAuO%B)t6@9xFKs-2 zd8x)3$c{*ayW}AhlraPn?gJ4=p4wi{ynYwXn;dlclA2E+`#Xg{UW+P8t6$FlTquD6 z+c1NhBPst*Nfe2KJRgpIUaBDEl-EQ+@g~-n+7=bPTsR17zYT=;1dvJ6#8>&pGFheHqTh{|FnnyTHPUjS?T}x)7x{Oz#ph+= zv~Tvu8{W7-oXE?!Cg^S3)6d^(XFGPG_xc~F4GlCovx8=%k-8uf$`@7|a1Mldb{ZEi#It8M1^wgk{eRF$m{nIqZc!fgL&r zdo=}}MWJMR5U(6Sm1no8q)ocTk z?>phpPH~UXwnq_DFII;e-^*YHGI@PkD3W5_W$`aQ^mcvGeVv=KRhzW<9C|0sU-yl) zen{x_^0$hzSwjP|K(x>D^d2@8ssYOUf(n||?a2xX+x4*0RQBvz*WYP4ylDSE^7Q}` z@^SWA0?YE=S)&+M=P+J@)~L^kYKY8rEdKyx%*^QaG+$t{a zWu48w&ZtuO+k%dc`@Pp7Ms;$jp&Z~;f^={ddCXZtXJ1!Bhj>rB;%WBz&i;e1JbjP+ z&4&&HRwEh4G(>hTcy3&0xtbGAqg+0Xu@};3XG%ZaPu-@!cBA$1;T6ol8}s-%P$Lw1 zb4S~>`d|eWdIkb(*8kFk&8SqGyEB%dXW{DTMnPUKDosTjeGKh!wQv!sM|@4Qb1_S; zj>V$@=SC|<7WniGRv6#$NHr}tB5Utlx^k9DuP>gGA^wneNoTe^fo{81{N=3YnJ55| z{3}zG{n_WBZ>pa>#RB-8MAJi&A+czQ_zj&Tq0D11z?~j}!Vm@R8G&2Lh4#Y9Vd|c^ zd)$BI+3(D;re!M2XAUCw?iR}ZXP+g{#C&d1yjs&lEtH)0--~m!JeZ38_cqd20za>J z7n`l?d&H*xFaLP#k?N#Q-!6nqs#}UATY8gFlWmg6< zFAq?2h1qX@sox+52Mwj&vJ&*ZgL&3XCIB(&#N9j30ja81DVkePIHi3QA=+zbbiX3) zL;~i1@JR7L3Rr#Ait^|5_8lrSmvh^B*zFBQ>Z5DO6#5NXg;0hO#cQL>YP2J>vktY7kb@+WADPQnMY13Oe;>rePi2rc)0Io>nk&ICZX&L9E*;yFDnTV&6Eq^X( zsE6wp7r|kO?R!%3(;aMp;fsqWkBld7+0x1Ve$OlNG~@@tLeUd;H-y^fo#6a!A&t_? z8~+-NZxch#%_H^$NxrL^;`^L(;0VM3&s->^?}c#`QyCTf?N9l*+`iD2=;oA|`A~tx zxjv0@Dy_nQ)nRYyv`U14kY;$vL>$=Rnp+TlHBtW-4^2wIwhgk)F}A;S@T1B^W%af{ zP}}=qrbZ-{JLj`xY$dVnjl3aXaFW2&lJ+emt2Drm&!hX%dhBpiBr zLQj`f?ncknsB-<2isGHJfWGv*JerXRiAtACITKR+Gp*_=b#bFZC0FhpcgFkRi0gNX zY!NOEGqSZKX5gClF(vG6n(vtP>uv*S*ma}x?!*u3`!fsMlg*0p)a~MX=K?U-;DO6F z7;5D@I6kpp532kt;^2{s@^_-Dtj5sKBcXj065sN_B}_9IxvKkcE$=TC0^m!oD`~)n zYw<|sMS9r~Mep00j>CF46`YCv!IzHCYD|O#UJF@NzouG&xJEB z7rD5cpB^>aEubUh)$1aG!H}YLJ^1P5Vaz+xfE(W~@YHctevmH-Hi@6#lzf{x_kS|V zVNc%-VTGwB(Sphj4-N;T46_d@H%v6^h9n?U?9wjwk3%upld-U+uRf>3&~LW2d5BU= zn@YF?vlcKxNkP-uvy#Xew5iNG|ER4o4{ObEGe1`u^YV-^;tj2pHF95ih3FAmoO6oM z^I%7IQCLS5jr4b~UKC%uwtpEN79HYw_1h~_M)^bA@ad?JY>mD|VQ6~;HuTV0a9)Vv zP|odTXOy{FqQ9PF_DI*SNO%AU^`?T18CYDxZe1Aqv?3t1!=dPZ{U$hs0`sfL#R<`6 zeC(L68F*TMk(^BwwMWQl;f<&zt2MMXz{Zj~u>Quk@sSvO=q`^?@)CS5bhqi3(Dhg; zx7%MeRm9Kj-;5L!0(qKaz)$j)HD&D?sYE{E(fiL}2-XHdo+(NoTWdMcBuv5bdWu-)5S zbPrB1uE(+ZUY7GvYHE>Rr^9t3hDa`vP@v>FU*VkQaMwf}o*v~n^y>uqvg_-s#fM(l zH%a~P+d{3DU<*qfRyf(wMHjO!%CCCcFLMn5oLfhZ(}I~V*DeJLu|dq8eT(#@cB9V8UZE&THP`j}n=QfzbG0(x$;dTM`U;nen5dhyYj!)yD|tuv zAF*fQA7g2zrk;ILZx7jA=Uj!V%wf(7d45Nn5Uz)$19r1{zf%#B{nq<$ z&K1K7XeDi-6a}V{+%^caDaF)5TAT*BFZ#LCY zY{O?C1Io?$i!fp|^gZbjucpRRf1WpfcMdomlF)ag_2p``mrYf?#*5Y#iq~NBXnQ^W zGRKFYSL!8c<@_{auC}xIf4t98V`FSMec6jok8U_CcDLrjJ^EZeSlti9jN44~LuUQur4OP|JEG5H8u7JNzJ z(IAxcH&d?#hcX)IQIGa$1DVNn6O?~fuy^FV= z?&;!EITfJlSg)ro%SzZ$`wzV^`*Di!X4TPP6u`hHf#KB}6_N9|K+cR=VqzTjH%0Kt}89scb6DtXslt=oUt~$edsVl)Z)8yyS6^5c-w|N(9B)GCOce|vxkS5;TV4HL zbQi0F3cknpYCTasy<<c|aXo&>q0eUmi=Is0ZDwpd42wWvFwyfi`7JvA2;7JkAq)tx{^vV=Oj@Jq^O(Z#5_qid?5NshH75Va}KCoWxa_ugOdkP>kD zZrjMmTgs13-ECjq5RFX1F2lFa6P*=K(jl*>-CmhJmQkFdED4u74)EK5;T~RA`Plv! z9DS7;UWDE5BzagpxsMA1H`vsopupPK$ftTm=Qc}mNxUo^&&5A9U3(W*H1>L4W{~Z# zF25)4`bLI1Ybc&v2XlN2T?GP8LXA~MAjM`rOUI+LvCtBCZ%aXy|^L%+sl)lbuRJ-Qj z&^p6G=G&XZUAS7x)J(wKi=Q?Z9a6pN!4x~cw;@CQBMqF)PpD5LJx5c6}ISaKg zJHP@af)aN`pmNA$7apBw6&Pu##VKI@?|qZBJrmk|+H>04Xys!h70}OX_l{86aCd4$ zH;GqPAA^OYVAjGxvqz0$L;I1;j)QwtKEBG-?w(8`KV>^i94ijuKe<3!!u6VymgWTcc$ydE*s$}es2_E)f?Wr$V;)tM1u9_1EHI(~0k z;*Bp%wd+HU231uY#@viGo&LOjSWXmuGydxdJ{uL;C#JP%A%GEGkJz8y)_ z`MBGexB92qy+yW~%S;$=Hu{2UV|=bevpLE;oK_kV(Z=jew;W>p!=2kUnx|T!z)i4X zZPmb--ujv5&oR8? zyZqy$qF$L3$F6HlN&+*ZW9(}3op(8=H7~HEpxxBZDSkli%gT=>bqPEA(@18WT-}x> zY_m>h`puvctra$p{o>RxjZ+o3Q@FaQ6y(2L?=s|u%zKvTW&Z140a6bP$N!?w{)x*v zvXtuZf7+}Zy~@5MxZIgOAzLBfe&pWa&bs(z{Nd#JgB|w(YNb$~obB3g0en}|n~kJf zaz1tw8FF^HGosCjQSmqm<7P7i^n7q#$+YjG)oF7c1N~V+7n~G{$4ZQQKTDYLW-y(e z@Y5QWsNGmuH_?*l^!@tiAdmlaN!SVT;H=yF1j^JD2>{!|v1VC)$}EUdKQN2x-P8RQ zUX99zH$7JxAKjl5%C#FVd|`Pz>g51<|E6nPt7Ty>TR;a-?UGV0u=qi7pcRI1vgf;9 z!(8Z&w~4`mgG08&J5yKYG#QmQ9J-vjie)8Z15L0b9p=cxBj<}10ViR#f>leZXy?T- zcmd488#Bp+VQ`P@7-TqI?BR?fxgYxP*jcaieoRFU8riqJq%1l4iZ186UAXT`Xt-~b`#s*B8*ZD}(lPHJp?58%ut$6hkq#fm5zGcLM(bBP<$ZNFXbux!GNs89CRY(Q?=6Z;&V=*GAQu0pBuinhz%-|33`e| zTQpI%`acRq)<-|VmOLRk2>229?L}*y4`KaJpoBPo5p+(3i+D-@(PhpO)noyD9h3XL z_icup6pi}!{aA>f>Q6RkNk6>YaP%Er`TsUJeL4kVbjH-6U)v^8h7byhgde52cM&LL z!X+)kgF*oqo)pzmC?MI3(aD@$!dU@1vBA2g%mz9Gx5m;&AJfZm#RB#16xfv5uAc#| zYt9M>|GpghTjNAf7?SPGB=2oiVcn}jF|#7eN16AsDi3rX1|ClPT%MXyT~1xSddPqO zB7Uxk}I&9R`^kBsY8R_TnMW_hXRV0^C$MVW} zq)0Id0T=-u2mMNZxnc zILL+hKkTlVk-|X>NG=@_5?|NJ4seXjrsFe$fnTz&rJ1txPuNhj5FcXx8ZW)yo{cm| z(tsPeGGLBDKwY?5yf;?v-mAq08|lcT0l&2rNEW^Epz}?S)^78p{&vR)pIEw`=%hCt zf5-HO9!;}#gvNA4o>FRycS*IO%6Mmh5u|~G+<&fw+K*`h4hceiVYFD}_nGvi#fz4m zzzvrz%q8^>kIsSDJ3L-TOpim58&6=ZV%#h})4e~$AC)WZs+Hja#-_Tgzuo5tspTI% zOc$(9$~z@q2ac7mSFwFz-~9p%ke=RsZ2}4oyudl&cc+8V&d|`x(;6I^F6Jr5cEX4N z*sDQ0XobKukhS4ark=IP2HSO>Jj9snBx+?RIJ(*j>_DBxmJzsusek;n{C<8u#^ScK^e6RRR;;?*-l4&j&}!WC#mihNI0hf|N5(oR z;)Kk%@!ezyfp3uc^m;Sb9msfCCc$wXAPeFm9O^3A6Uo}h9>IT$f+QfIa92=g?3oEz z>o$A+t|AG+lTZ<*O8jv1K5O4f53hnrAsjjxnN{P^Z7~f6!#k|&5OHV9=<9nuTGuz^ zG1syc-oUB;ET82+dcxLTn#jkiL|J&#R_cZNbYMWU6HAHhf-S-GfBn*mmZZCrLpZ2r z5o*17&~8DWd(V|3_s@|i6uGVx^SUXN*!Ayxq^XQa>tYxp@LR`3fvdDn%EOI9k*L94 zbmxh@*1jpWc*aSsLN~hn)-bl;H(IbUBco<;Z5MLj%zE=0!+%jBcDQUJ+a+ZK7Y$V4 zM?@PBC-cLpt|>ED3A}k{q+kCt zAiMP|JY%#>Hv7-jU#)0GT}bFbCcFhsSG`^G1<|dY@m9P3hd%j-sjU76#nSDu@lx*H zcc}Zc`jJuK``EVDcfOj4Xtkh{J=?*#BrMda_SXy7_oT>!xnQALdGt-)29Q|gbe*55J4N&^`q~gqp-7Wp~YRF>;fZ|K(eT==)>-S2ox<{Kf<9VIT_jhkPlnc zWgdJgW61PCB1v`zza43|i`-JYT&z63>&M%`VVaJkzypiKP5Uo}tc)UiRUmQ>zQezyGH3x>~@}GTyOooOfQu|4SE~yLOO^v@!#g4UDceQ*{zvmFfl6 zx_yA5k$~ynQ#nZ%6sX^ixBOJP?N1#>!vq=l=^GrZQ}#9wo}@PizkC(oelftr64&Ec zJA}SHB(E~UX;Y~v+A7*w#rfo_N0pDlLoeRcgR+;55XD_(car?dwRn0ZmVoWNnet2? ztHzOv!myEwIOANJZ38RrZ+X9}GPU@GjpPHv6T+7K^N&^j9&&^mn{v8#yj#`AmvR#m z6R)Jo+^%I$saG*sk@tE-pYecAAjQ*Xp0zU1AaQc}!FRf~!!**RE6Wab#(J6Truofm zr|Pz}V0Zt=@_)K9*ZyOqzp)Dmi+>U-CK>lIo{>u=yI<+0wrB#wxY{%30{6q=Aw!-@ z(F$wF6NhRf0$5bdjte9O*1~f-o)^)zI#uZm#N_xYe0U@Dx9G3gmY|njpcZxMNSxN3 zYPV~jC;iRF=P8#z^Mu#txp%X~LPxpFzX^NY&Gqg#ifCw`6&U51;@>eTyk^Vf@tFIj zNuMf6*R^pI*dLH!ihxl(>R+qz#iGAt&B$GXh(bqOH6$9W(KBY_=YG&uBnVxkqlOV5 zgW*RHfIs?}!^DNCO0FPFe(OKFtfTe=+QjU_d~t7zp(n7=(T#fN{)mA^XW+z-IO`ws zb8)nTQLVPaz}mHd{Wrwf-m<3mLhfLiwdEMk=##0h%ftWe-%}={>ngP}I`^xJTLaPL z`|n-lvY@L^ZE7w=T3av6Fs3gTbs)hZHVxR=3K%+$v!jA;iMR*cY)kJ zw}oCB*0X17C|29qWJ_tS73M3F54$9I<(ym~JG`2-!+8vGj)2j= z);<%zsab3J)U82I%Dj8oZEssEOf&ZRfB(f@|L?zeY6bJ?2XZv*&s?%xx_uJfp{6O@ zE|+D9U*HO{-O&tnUa8q{l9)vNfXE=Wx#Qi-6P2bJaS>~t;U&&3@wyWI&mfIN7jR(Z zX^gY#`sY7?&g0^DEP(7{(eBj+b8z(R>8-d0j1Db6W+dw8*X;W{Qc7-qjRQhXlP+ze zl*lcTM~JCOk=;S#dp`o~nLkJ5fs4ow^Ed>xC|6x(e5R$KSL0B_Gb&f_y9e)#g<@oK z>6Key)erv_O)-}AXezb|h?SX?>fs}!wX~C|8!@p1=c#hnqD0R0Vu;@i*QQD!g?|1A zD;^is-jrWoHZGa_$DH5b43DjABC$>^Gu;T=$M})tnfm}tLJb(u`>yj)7wTq3K=N7f zugJt4n|(~oKMyV|cVeekyBKS5O0f{?%A($4uk~ok~P%zX+F*gbQ!G3Q%=l}OHg{<`6 zTK`9^mE9oy*D5&e3eWJ`>4wu&;hR_+>9A}R1Axl#Wufug*ZgG{7g*$!Yq#pt|^ z6)ox7VKgB-PZ??>sOM8utVV0Le!d2bR{w=PVc)KNd-iFGo2lM>8EK>WJ99@h+A#a* z28m4CZWn9$e0IP~1-)>w0hvH%zwL38G7V!L2g&S^H-915P%;uzS0I9m`uK3Sj*G{S zm2uzx3TI@>$-@}GC60D`Z}no6W&Tcu86nGsV;iTv_kuyMd5S%@St|kK2rSs|%l^6>)<&al z%@3APwcg6>RvObkY>00xzTGozagB^Bp_}B#r^oKJf)%gFD7EGIsVPQPVn0nBDS3BjTlaAP>(Y8N3--b>@ss(@ z5Z(l(%4Z5+?vxkbo6{Hq18eL@P&z1j{4EVY-$KjS?G?w!tiuMK+LW+Oz1V>BFJ67? z*MjT4xiiaNpoE;0XMc(lnp^MJoc08hX@B7nS`2~$!ttUfNoG)aGvcEkoqaiR{7cb* zKXyFo(`UgiV1f}V234eRsl$n8N*z5R1{F;rVvM(So^?J7`LIS`uA$m-S||Jv1Zw+_s)f*2G_)T?aS%YmD>m=#f->mGyS`BdRqqSAR*#RIDGT(uqLrcL8{x;LtZ?qWAz z(-!N)#snL<9)`SXD2J4Q8jo@u0bBtPt*_!a3uz54-GmWzE@S{rB zfeGaR000WkL7FBBiUo4?gxe9bA37!_l@F9x~ zWx#2gM)xcWhs1@dErF$V9};(A2Fpt3-+?4pBcx`Bhz#H~0a&HU?f-U#zfD%LeE3Th zh z_D?|rmO%#vkn(+MrDqk2@ms`n$@$1{X<^G_~5KV$sg|KZ(I{ zfWT0s);P-OjZ309IO%wQo=C`23L)Y2`d`Y->kJ?y5N)LOt$SNa@?QD7iXp+gz{@~X z?+`zg5ZPk#o(s^qykL;7j!(I4qvwjxQAmSC6d z28B4UQ8Okp{CbbF0bpir10G))mRVonTf5!v!|4-x!a~N24;kIZVjC6Wv@&KpA~xsP z?7QJ>V!%0Pk1fynw-d=7EvBKXRe+PCoI3QHR|mSy!7-&%tY8+>4~#fDl~Y|gXC ztP^2l$vh$(oW^_Q^mp#MRyzM!|Etw4Tu0WcDW1}TahHnkeV>9m-tQ6DP)Pc&g^n~) z0njOtx578l{$AweyXs!QUgiB*i2sc5f6;yaT)STVU(*Fa0OQ0$hc!h>(h5GdFx{4p z13WtZ>LIt84psl@&CKoY`f~7{sy!Y z*PMU4y+aG#da|K*MF@^>s{BaRndQXlW0K;jtELJWzVt>w$m_m`e!y3 z18ej>|60FVtHpH+tRJm+Fy*&*>)p=fBq$Q%9$X}g0B62manr~5YWfY_q#hbV7@$AY zKP&J86Rw_D*4A3=^spG`bgv-0NO$ElrbFjiTGa)`pj}*eqjUdGP zebxogjwXS^;@nhZCR+_0$vgMz(RJVI(H^h*AXr3ajc|20XS@zr(62d<{Ga+!pgf1cJ~A(rT0xuXom8{Y7S)ID-;x)5L?} zlzv)5UJP?0jPok9{nYHtiAyh-DV|M=GVl6{{(~BbZ5JWxObNd3h-tE8qz^~BU{Y&I6IkF_P!J&2(i`28A=AzR5ETkN%R3a1n?ww^N*_jLz;NIG9+w`2FWW0hZXH+HFxrv+$&`y&9E4}| zeoxiT>RZBQUfv~UChu9;8phM-iu@>G)ncKBKK%?i#^V@3kv|+S4~uly*wVZpz?*mn zukTrV8lU7Q{crU}85vMQUHMnEcq5Z&2Vp14E0?bEMZN7dmPo`~Yxj5SU)-fP^8dbF zC*{fU9czZ~jDZ1P&7*Tjz6{YimS`pS4AvZJl(abV6O5nxtD5D)KbNn+jis%N6z|Ip z=h?>Zeo+r^U16Bmg!A?C28TrZQ_fjFvVMPsd14;ahIdw(sY|4v{^yl{Azy!+S(umq zP}HP`ny_>ln8@V6{|^~cS{A_$kspm?D-jC@>l+-*eZgcc7`sQLzxsxE#r2qIfq<}w z_O36?yKDXujX)kC#f&W<_$%axo>m4KOUR9*S9}@W$?IRE)qjZiroF+V-;j_?(>^`- zMKVkb`1U07sdWT}dkE<;`sFVSM47KbbN(6;o2I`&)MRJ*GcoAoNBM(BiRC4%-{klT zAs-8!OKjoc7ANKQgV)GqbUdi9_^xYV5McNDtPc++Z;KUWfM2Bh<>r;k`G2)=LM}c+ z@2lc;FS^BQT`uH5H{CD92*T&b@;Gi~U46cl(SPp*l86||k6)1Tk$Nl(_ zM_C!a*j$14{if~CrmPYQEd9#RFo%%@H*~%qBb9!%e z)fapI-vZ5ruf3nd-jMOGlFrb?Usy~oUQ11qRB(vcRF znlMB?_)}dug@w2TO4GpK<`sh1#G^;9KMZYNg^PEOwba#rT%^0XwX0-R*P3`AKZGc! z8ZIdx1;PUZjB+!`WAH_$8cj{%-Pv_#m-f8n&V7bT%U9rp?|yYJP>ATjQFCBb0mCiU z|201|68hx0;tb0z@#X<6o@Lnz%!; zn$GRROTG95lVs5a-SqyS1Y-9tYOP*dlIy`itPGHes#vSRAzv45UI{qR z&~Gp=#ohOwUx=#scO$7Mi{Sv0yIPBJDbJFZZY?H#u?efse@! zk_P+MBo<6A`W{Q;u>*0-YrV^PaUwW6I9Zm>dd~4M zrd$$ee;wV0sn#04qsMdixGe5nH3jowYHXP1Uyw-e7*?@(n+-I~kzamN3@DesirNOg zS5(1*l*1+U^bz75%F4+#aP*cbek1URtoZJgj8Uj(My-4J%Dr76jHgQC1Y-m#roXLz zQr#q^{^@>EbN;&h#e1((7k!hLIX!-|kpJ~0Vmu2hT|Y16^a;iMMjQEKET4n2Ib%ns z{}&KWG4f_34}6Oj^-NV(ub&3yQ~6kkC)LN7=kLUn5#INwnHZwxi0`EDyYczXEV*gH z)tcqVX9|L|+~g?#6k@lC76dq%?tQVGxR&MCWkF?mV9p#w`}Qn?2OFv8!{PaD1mfd?Rg8N0 zhLwpD<-M^^Upe(WTz}s+U%Yf+EC}Kr7vpa1_~Yu*Weth`5q9+UNM>y>5t>MPf;G{obyll$0cz`(*T6+=M3(V)0s z?_O^Cq60-Q1cK0e!5K_F(~uw><)f}$OYnTY9eaxb8W{`{pxn#B=YaFY#$~SVGtznZ z6Hb^YrJGXG157%@WqIxss4DypnRkOH+w^w7Uj11m#QMeh_kF7#>esNb0ut-^P`kQS z+;$<$(-oG*V!ys{rZ&0$4)`k-ip65G*rOGSzyudv!9+tt`>|MAh;rFcl)h4eBLYYe zg8+krzL1PpE}BhZMmOCllTwW{8I~2`q#cdoj4sPl85T?G5Lq+2O9W#ce;X=grU%cK zDxy&EItpk@Rd~lGit)NVbRZvso;oof!pigPDRhyLO1X)HM<*5hG6wKE*Ru@sE4E9*g(H@CrF84oWh_TXgA@JfFq}K_OVNLoigG+}Wstz)fyU`T{FU zEoR{Yryem}WZ1RhN%in~Jz-D(K^Rp;%WDNv{=Gk|#9uu!M7&H`&JXE}ggD3p5}%Q5L8Lv zxS^d{e7^q>CotWAb-yGb1_r)dB7=g_?+|0U_~beGV7clin?y#xwmUAe@rI9L@0N+$ zHA~QOxIV!&qS1M$LSx-7-ZGB+_r-d??}B){n$VuBzX=Gs-o1hy?)in(nUE50%%hk( z<((kuT6|)}W*^r##Run>5|qLrO}~M_C@=#6cI4qACSa0-{&3K5Qo;O#Mq0!FB@^|& zAdkH z)s_|hlaa93#aby7j89EcX!k-`h?yf2Ww2wOmvUpaISHjp)~f#moy0wjcytmAyWQQR z?*RrHE$0pj>%oYfco7EpZ{R_P4L5)q4)qKBFAZ^U%j>{^@TXBH6$Fz;5(}XlgMA=6 z&>R+_2Y){VQ<=EOp!`t|Ak6Xb0L2bI|CV?$SXK5B67Q#XeI@1NjG|r$caFZ?Ug}d} z+GQOkP8;yiV$os#JFoG_zBnW5WDfNKe-AX*x-1wk#r zkGd|Z)+)ILeh~~1kJpGNfw6B2mMbsT1s&@tfZQY&2&_*90feh$Iy$)c&Ro1b5fsFM z7$(7>Hvs`$CMS-+{vdAd@try^|6++!g0~^TiCn(-U(n)i?|Z-SMlIg#Z@dy3gl0T9 z^dPpGhTLx1{mMaSPhWzf8lJ1-N%Q5=;`I*7z=X1&QTLH}x24WOU|R`TvcLZk({h?V zf59x|66FO@JN_#EgRsvjny`}k2xaqZK6058AEEb3!RJA<}`Q1dM9Gs zp?NV|4)!o|uu{V`kN7Zh z%bqLIYxT>Y;T6}yJ_>?0;s$Eel{n4AtV&4CdkldK}_xSB*qwXJAa+~Bs^Ej3WM3&xL%k(Lg z%lXAG@r$x~#Do`yjwtIr-WcW#JGj~(>=T!k3HQrSWaiJoXNH-(06NOszxzrZ2A%oF z3c4It^=;5LJeSpQI+ zxi>GzB8v<)tgrKDwRt(D^jiIDyqA2IgjeUPdH4Po(VU89{E^aBOXvvU0~nWYz4BM! zvoMA?>^#KO1O;ul)N%E$9rTRGdOJiKy8*&QU)P(@2kV#R?pl2d9lP}e;|jYWUdf1f z?$o_i&mQ@HRT7gNVM39t0~SQ^9r_da0(NVdnRkvNDvIrI@5mJyW((PNmS`8^$RH}b zT53*Pek;1ongeTTS5>uu+;JF{9?|32+61_buZO+m>|iUV9cqkjVQYt9m3!s+gc&%1 zQdi<~Qo-BiSSEBA0<5_s{aK*GGuP8L{3Ifmq%WlITuLu6BRjZ+rEo$-6HoE7e`~pVufitdBsdf!Ge3}%_P^Yp+n0jds1xfO)qSGWM=Hd6 zaHlaxCxu7|I3!0S^89t1nvpTz zoroA$wSkXwljwI9{kXhAkW{SUByr`a`Nd*K2J>StjA?7wq4WJumc?OXR$t_pP!FS4 zJDu7H>aK4l61cnf?!rwOdMEEA;pz0uH#@Ytc!$Rm>>2n@^xJt@*Vp0uz4`pT_xaPz zq$0tVlf`PhpW0p5kVG3PZ@lyXD6Q@LzSzWck<%BF4kp+>*Z^QuBi?|8s0- z9SHFKV*O&iB3zkyeol$5FM?kQcmISwZ;t7~AYc=P9o#_SZ%DZYvN{D^9EX75N6Z`o z7Xg3~*=ksdMN=w^q7(f^77P{VVMp1Z0=HdI(P?1axV7yM&k%MaUEyItxT8!gfeI)9 z000amL7FEC$_00I=uBA8m&8{sZoNNC6@P{0pJ7lPr7-VVQW8ckjF59@a0{D2tNomuYNRp$X`7DR&SKoDR$_gQ)&^YWsrIr0~+L91=tVd>GuSUYI%gGcS|y<&ptg z!96tgBYiSw5C8-KKx7~Q9s$(990^bm0svfLOHoCnpHaDeVDEv0sFi)QSwzH#xDWO* z?&HcOBI%B7QZdGG@#IHh9d8rT`_?7}&@c`3Zp=47)9s?xgZz@WZ5{ z1>QHMcX2P~#V>X=UM?GPI|}>aS||C&4Jt%AQ{Qu8d1fvyqUu06dPV8gbhshnxxxz3 z`mz37pS$(0>h9(p*r)|~Z%AxUnz;XtgND2Jf$V_H)JqDGt{%QvSVu7a7C@AOM+A;y zjW1c9R6<$=zYyknl!9Fo9kmzyQ^NpM&^QGO5+CZz7_1uH?p|NOM?o#8xHj1q?fWx- zkLWvVbhttQ2!Npw0Nfx|iV4iD3pE%EVuP^`obm7Te&dD_K(D$$fdJvD8I1T4ZKL4@ z9Z)dF2k2S{He~%cN6t!{k!`nU+@s%PY#3}IR3JD zc%TM8!iMsys2u1FrqG`7V=t~zAWQ{3a0pxn0FRgzx9K%)NGBeF0mOwQf?Hr}tUrO5 z;r@%|$SaycP@2D5p8J=G_>b1Co(u`aG9r%&0sD^@XS@~tj?2u(BbdQt!kvK|!BatK zK}mI!GYpm25G;CvV(0pT#Px%&OsE*NdbG53;H5A9ED{!YOx39v;4%$Ch!K*47fNr= z?}Lp|5H!mgw47D^%~pafEv_B+e=n4K^#@;#|y7x zyTt0XGs2<({0l)~LsiRxKypY!k(}X?RG*+l4gyiZa1;SF3V734t{gp`g+!{m-^(5> z8!&MEh6^y-*-0O0T|>i7r!C8U!46|Pl5a2dUJ4<3WTHj7H#Y)sCZw>yWxKcgd3c<3 z;7&hbWdMw6uK#_R_6O2XvOgWd9*@Dh!vxGR8p(u@8w(4Z#39A0|6rVuIfGEL zr-0?(pc8$I6gF@GJRUp`$AIBFrKqBHefNs)1~CZeTPD+N`!|#5AP|b4G(0M!&O~q{ z07puc)_J`5IJi_}zx+r=?(aYRneSdhe`to;eg3D@uTfi`U1LOW$7?z#w7I02@SmXn`E|%f~y1R8_i*Ak<_) zhP9TtKEmJ@||uI1mn z;lUHJ9=%;qD?Q(J^5gSr`F+(~CF27l&?eV{IO&hSWigqTz1d>OY$f*f?`3;m9A7KKf zav3b6nD&-@XU@2YQzB05P}*xqe5yLDaMV?BoN( z$U7e26~{?U7%aF2FqLg$B^gJpTJ7k9azt`{hY7o?JTkgZ)mSMtzdRf)d!^y_PVPr# znEbR$@IqImw(~1yt!W^s>?wBJ{PgXN+-)r#;(6M!40AFr^k?IQ$l zXS%3-D_3^qsPYf-ywov`-taO)1_B+?ymkPw*B^>F_2>*Xq5kFehK#$O$MI9FU(c-i zrkl(sbbJZHlxHMO`g}-?mD8@p7eAaZ8$QTRFd#ogm|f;5%2)n#u=;VUl6igqhD2q` z;TuOyl>W))Z{#&&Amj91|1>?8UR`{?PWWJyqa?r@GYS>v%Hf)o;*Y04MmsM^+wo+c zOOil_ht!Gjh0xl$GV=L8l>9;zEi2vrpssL05&1|gH~-k4@&73~Ro)R#z~x~eZHAcNfBIo2F;zsvfh&_eHL5E8#e<`9Ch2o^kw zs*Px(#w5;Y5T526t$9fH4gS4Lyc5`EH$1~k&`6Or5Xnxk$1N-LL7@mKa!`C_`9FVg zSnEN1Xz-WuHLSjB_2#D`&d*z#f7iGqEi1*Np>-!pbyWUOu%7I*OF8fx(i%LDc`K*eaI9tSnIt2_P(nMWCJx) zSoA!s+7qL&w0C7m6EBMhUvY7K*wmR;cqpxyFL8D3pMK3oySvkEPAs@zhEpkZ(P%FE4_uAToNkV;|xB|Vc1&PcYM z_);z>km5FR4tXKwytLkH?_x%C^cT&EtHt!Sdhgb<+8bz{?M@4mSM8p^w>7S!f8$>;0gPT@teW zdT(Bv(HT#DaOW3y%a?kqHrxIQp{K3cx_ZClENBoGUHgJtFo!)I^+f%zC-hQ-*T#Q2 z&I)I{7xMg;5H@_C#JM=KIpfvxe|?jzX-dj#yHfc&xW4bZ);<|1Vvdqd(X4b8 zBQ50i|IzdM36L)9Re#)b-`(wEwu|ePc`ok!5dvUX76E6v0bvIVN8B$_#IXMPIJzm! zJy-GhUI(*F--8;Kc3%JAB|@#eH2IZpFi`%3Lh7Fx%PdHc(L&sKHI;vSqe`BE3P}I} z01B2tnkR|s1%IJzN)YS)wV^k6wRW*xSJL%*#aMs;>ca-VufCPv_x)Vnt@`wyuCHH? z4o0tUEDT_XP^Wiy2CE12z`hy^5#D@vf6n&!_lywZ^VqIGehfti_f7ckkq_<|M`>3i ziEcWAucs`w(rMMFzA0bp-deJyUg%FJ@A|je;<|eE>3wVU z)!MZe|M!9(hJBe-BdUd0lMw%Fy>&JW2n_)S+ZM$2GVxY(xB_Gap|iOir;~Ee1FRC=JmKYt%$DPK%$_gEH1i~}fs z_4;azxuziMf*Q^MOfxlK0^Cy2dj%Kr5>XnQh`w_fZ^4kUx|bW4kK>IidALKx;H3kJ zz*4RbniR0sQqK8&TTc4{FeoX)D}TF-gVq=Du*Gu@3Q^o}QiG*INDG`UaQ!+?e6pal zK# zqdo7!imXpRm&!&B&J0u%ip6$`;@Shg0A^8ll?&2YL#9CQdK|EW3)QoXRKJ%xZK8ETvh<|1k%qHEAat5vV>)?ce~{;m4= zb?YwYfzgGC!8iejV*-R9*^}Tf2BfSDkRum^viZ3cY7q%WBx#bNdKiB$!=V3GN;f&sbF*C> zz_S87HDuSQJsj(-5Ey(A=?{43gp(l~>=NSmjU@4>_9be6cdR{xAWEDUV6=o45|0_1 z4HMtOzb_a_t`t)NRgQb-sSNbAg}kIKXCoo(PV*O>$J*`jRgxkM^v;beydmr5JBd}abH@{WXf!>a;ta?xD2r+JKe9Birp=8^3j*YS&%l~R*n$A z#a_gQ=z8=ew|#muH*O0%xJ37%Fxe3)pSxu4)8L}|Gbz$|e}_tQ5h*R0dUF0cLV(o> zGNd>9_CyT>9B+mq>-X^}wIP51$`Dube0j_=D{)6M)mKAQ|95+e?%TIZai%!aySG;4 z`wT#^9sxxHWNiQ9UvS}ff{F(hfkL<{y}{6$HNO_u5Y>k-*X}6WC4Cpr)7teZIdkE; zaRg{<nqd9k;rwz&%h1%l5a`43)RYw{~oZ)VxFc1e!+M0jE=2?0$F?4J_x<=8EGum#5VrLZpPmEdx8Hgy$#$gv z2~NS(nU6GYti05YL9@Kyy?r9N`ZIxZ)A~huKi^mlfNlcd9EdZup8)Two*yTeC zCiH)`?Or1IQPP(0!bPoeXW}L#8flnCm!5_rLHx#URT{BTf>OQRpG>jKc|8AG@I*p? zD!H~M?)iNS?F-jv(aL`(0R%O68zL$um+_O^(Jw9K30fD zH;*q)XblXX>IsT``@PDrS=@9qQNS19N&k7#!d)}bYV7qQWuVLbV&cVkO3*c#aj}1x zZC~@(&_kwpw>|c~Cz9^ep1od)-Peq{*|Oc`3tzjH{bl~{zX{Ei%Mb5&{Fc(?_Kp@M z5K%BDHg26O@W4=DkL@AD8=bAJVF=Z-D6T@5qS{m(24nOm1Mwh^WGc zapm#f4CV9C3|)g*Smys-9@T=z(+L0&a-5?8-yShM#7 z8u&=G-M4+NY3*7&!4W7MyQHv5HYX&zvTmJvu`iM{kNpXH>_Drv!;X{-TX0@+0thU6 z-t4x!K$Ye(h|+=lndecN60jQp=^&++ul>{}G3p*?%_S*5W8xUTK@tLw!b&{t;8 z@5oIdsDhW({S@l^7AiW+w=DAdVsDbc&>ru-OtGM(yW$MlsyE+!zHtV_zn2|&Q9pj+ zSzyEimj|8$Z^ZA17m8yh-~I}#eU6U=157|T4|vS0`^A&q6MC?RCMr-FV}NPI4FQh2 za(ZmigNX92{8wrz$@y3jVEE%C{{}MsRDTgJS?vUJe>NLI=aH^`_JZO!a>Q!D5W&Q` zzyL!9Ft1eAc!5#6^bvp8ru0_)f)9_cCd_&xKZbX@rZ$Sj3)hI}Vd+a3xed8vC!W0; z4PIZVHigHUAU=VZlk}!GY&ie(m%!NCSfhUA^5EO|llBwKKUy{kwx5ps??{$oFiYHZ3FrYdD&r$V?CdRdMYRB z1ncEqmj7LTz54g-(wFu0Z1v*%HLA&I{a9O12xKAWB>o7(LW*KP5cco#CPj<-?fgO% zBKLPm(yTc ztCmk(I0&(_2zPwUz|IFc&Z^^!f%;cDM z8@jaa3JaDv5+=vuQNJxVYlr{^!6EQDx)I5dL-ViGM7+zkSlZpMvj3pr)c{G>VmDAeR;Io48}?O`EV7 z`4+v0-<^Q%15uZ&DLjRDyxcc% z^^@=NK}7kQs!Nq!RaHqsRp?)l6m0kipq99dqAF~g&Ui>YPUfU#wTp87|M9-=G=jU; zRbAR1T8hT7;2H>a7?*Afh75D`;(*bV8cDzI^$?-?)&=uXr(O6r3-@-Z1`vdW3L29G zJTRozEMr@s5!!g66|gYq1Ri%plRNY(GT{XsP%z{N$C$`9QrpB2_F?YR`B4UreEy(d zY5~CReXmi1eF;jK$T(zPG!uqMOv-?XLS+>)aSIVXdLtF~hV^k&DN|S17xinZ9r}^^ zJ-Cm__z_}A0z4<`0vIfCm_hC9RhRPu+>C{epOktU^G?3`yIzmAa$BN&efd3d|Gb_d z&_q$>f=DU|4dx`~FMsOps2IceW(#A58{$9`B}8-^pgIU0Q0=@REYMScF^QohFWZ#2 zif*?5`ug=nJ%056cW;V-01^bKf65LfuZf=t=E5{SuKp%Zmk!P0$GBoF*iZqcxB{r` zG|aJ7TH-V(Dkq)~=tyw{LPv#x%V0=Y2mYaCTVX~zK2Nf6<8si2p(S={8}>5I4CDWy z{aUV7Ygg*|eoxmaH(JGcfBkN;%WJtlrB~s6-^U3!iUZDWC`S|wGK_Bc!Z61h06HkDc(HvuiMI1c?CvbT{68pVUdT zz3=$@8jbh;YA}$(o?z-%>U}|_-H)AKjw{BWUfU=UetorQ)$dxab z<;#DenO05nNqwtH-@mxBPc0%0Y!xKnp9791H#iO{eZDuoiYz^L00gvTAekH-W>DC_ z-qk`J*#M*WO|+too{sVx5Mgt;hZ1rbtwCtiv*Brb*8TqwD@bd%8;%_nV@stXx&<_d zM5GePgqSl*C-#E0t=|0j)@W zqz!+;SA^auJCTd(F1Jp{ULaYU4}>|ALOk3ichWMOQe^$n7Y&}TZ{d{vTJsZv%$eL3 z@I&v-G??%R{1)QiN=T77YP=D_zKjYjq018dUlYQ2fAIxqeYdP+WrY_aJo|-pQ?Mumn3X2@SI;<_WkR+wfqp=xy8KN5x~df%YA&D-OuRn{`in6 z4>7lX1Yns6E+}$jok_fko5@ms%XR8I}d@O*)tX{WZ| z#Kf$**=qvz&0rOp00bTX1ji?g-ORW~`bSCMipO%-D->0)&LC~>*^J-0gi<ekhKDC@cRs(RiQkkG7Hm8`w=0Itxx*Fwc)My@f7cVah`>(lD*x9jxj8ED(cX*T zRRv(gCmIWRKErUY$BKPN*O7YOutqotVZj6ofT`~-+qhH;^S68t2FY24{}Ou!e--cY z%=tqDzVXmSq3u3MYUT_Ez?Z&wej%uW-%Z+MW)F98e zPOZ`X`~GeS_Rb6){a+ScS(h$vPJdeXnpZ$eI)=%8E zUrcQa`$g^E7v>n0l0&h}YaT7P_tpqHV<6F#E=fDB1x|#5SWy0^-O@J8_0xm}c`F#$ z?ctBh^C93r^9z-K;Eo?j%lKGd} zVXm`k`qi;SYLxgZ1$NymQQLCFPX5mtp2RQt{>pi+6cs zTP1uUC)T}`=*er<>fcM%=)L;%o`g6jhd9v7`$TT(e4iiYzOs7hZW5k9mWp4)MV`Aq z8wL%EFVZdUSS9#MF;Cu$;)sUC8Bp4y{giI+u|gp#zn%4y@sL3m9Bj1Vi9yFw-5WYC zF!=I+Cr^$sdy9>(BpNh6pg3i9Q9@Ao=!41mi@9Q;?9!6K(> zGLzz|{6m7h-u!I!E~Wh)jI!v8+sR$u3clwWt@!BgtedOW+^ z)$6;n46*?;bo~0RfgYM?%KYVYBX@~KmcDX%x9%IB-(2G(fBW5cbVIl#R;TiRtP&Cn zF_|1srrafbqfgJMj}{@pMbx@+t7Sdy6ye$kJf5THY7jWK`}oJ1okrZh@nEE@*&}8B zYj5uSx2AZ5TW%Be*N?Dqm%kGc4)>35mY`$!q!YJ$xcO{WT?4fRWx}oE#adlt570|) zkUyY5&$uc%^D5XLA!wmdmn4B#JMzrl(H<0f>%3jQ^6y!h2!n~dVO&jRDW-Rv&~g?D?nah)yaE0Bx>)I#C+*jeoOcrWVDNW9mrHW&lp2N>NST9zGXmrJV>w~B zW*x065mpQWG=SCKVggL3Kp$QbNdpT)wGq@2i-=&~^bv~YTI25Nc#gXE;(x4H?98uT zFUv{y)Lv`+g@)QOd=S=3X8BP)s%rY`PeF(XA`b6*PW+`}H|6B=HF*RO*WTHwQ6nSw znBi#qm5;#$3B*~w;K`_14h2`s;P_C{Ai)7J2-?R(V8nQi4|$g?#aA|8AL#q-X;!hx z`1w5sPj^3tsLx$~9cj^jR9?P9-QVQ9>vTtx*1x3^g84r%kS6_Lj1mK|QYjR=s|;E)f6Dv3K7@f9v|c z#QUqBzxKX&)&1REldWC-D>?sHUImeU0&N0vJBr<y}2n?|ne-w@z|!{hS- z$6*XbAuW4&oom3zJTWa1m9iz59>rmfD1s z@I?dgVD;m9e*<7B8Y_2Ds8uYvxLuUcSLHq~gk&dBV=Zh;2K7w!EZd)|<3T6sa`j%T zMid8wYHPy-g47HJXkXYCS@sq9DBcCE@nNQ#YAPe}c2{F3h#YMwWSOc_?{!c2l(Yya z9A*WRYGweI+ zDr%IV+%2&~TB7I0S&9XM4e^ZSpG^?dokXvlL!MLUkbVz`=KwwyqLnfzTJv%By7*9d z-(uEn4*sID$f*vesI`fYmQ7wsOnhm_7;5bJbL*5c4o- zR+fGL{2T&6KoZYm8o8aUewi%`j(78QtChvAPwQW;O@15q({rtGBO8R4wg2m7i{Aur zhkcxYeucACD=!ZUzwm+~2$2XTiN6%8e=50Qb@+bHd+2SS_uPN)^?sTV^{IYbyuKnr zm4y&ca7uZkrQ$I|!#{k~t%PVoM+QGhJ!{`5@kp5}5XV{p+JLj^k9)9t^z}c{-{<_B zv=MvlYPjmhrS5vFy>#K|HTr9fJF|v{@luq`7(SodTQLLuV3}6GZ?#i1P z&OaghFoWTAa0tI6wE>)AiQ>wi#KFp%o9vYI&Jmi!WlGE}Mo{X|GS++0G8&%Uy~lGUEz=6xj@TGY32DI5*5Wjsnta}4R{9XWaK#ad%%f+$zZ%!MDM9q$IS(j7G{gXi%%w|yP z$dn#|!e*YaD-+9`8)cqUDvT82hq^cNryt+_33{cL{wox+U+dR^ha9b!z)!$d^9J|= zGB_eK_ZL))mlcZm36TQHyYL?M*o-~|JG z(wL>J6vcOw)G1o>{{4{SW!Pxzp3eRqr@VHHHCWj5R-S<8nhSpfAkX@fNB{GX2UGf- zX5mb-ng+Qm{d%cu1t`aGps0tB1M>eG0uUMi`VbNkyWd;D)C~Yu0wza(ArJ^uhZSIC z1j3;$E8@48&JYCvya)iC2uvloKf)Qg>XQYb@d5Z8p;$Hsp=JOFL$}r65GezoTn*FA z*guSvD4iK7;taNWe+A>qKS5brtk{ZU-XtCQ!a*)zRIpgz!!A(GRmQOo^?Efzj0i1#ZV8UL5x?B{>eb@*J@ zF9+;F`xG_#pFM8U1gAQU$y2t9B8S{X9F1Vt2`;RjbXO&UQ31M9xwPJU?%dw)2yZP5 zkIo_w=sMBXkk~QOzi`!H$15mxH=ecrwCh`>?oXWj%sK*Sq*V@hVSG65y)V{pSO2otbGN&y6- zu?9gm#(_Zrz_%n>5UsEHg1{UE0;+#+-(&dy9bN&3(@-^bv`L*UeibO$ERUmk{;Uo4 zeDUw7el|UV3^;h5F4?%}FZER5f+PUp;BXp%s8|4Md*ieY;&!y+U1R-;AU^Yh?9WSl zLFp>$Yx>2P*Do#6nA9uF!AB+srhU2jw{YQeNgf}j*mfvi3BNRqll# zf!Ekh?ftWoAQ4Gv0$w|AszT; zTm^uIS78S*E?~rYMh3_HGFaHeA1afx%n|dJEwldFZO6?1*>IN^SypXNX)yPM%&j*s zG(Zfey-3jG0kHqKp%dY7v6k;#q^_QQPl)32rmC9Hk_FsCN_;|*b!MD<3yI80?M8gQ z!n8JPSBMdW^L$p{+3{tmQvcZ_VUbutKBx7z;j-i8X!=W!5hv-=FDbxTrM%MN4PSEJ z-!T;}cq13YIa)d(hd@!~r*fGnml)*s@5*phn&oC1F@Vz55MK_(;qvD$PcP{Se#3$a zrOKUCJ~BR|`|H@kNWMB7CgBx_ELc?~m`#Jflh^ejUe?ONR>c{HYLb1B9|BfPdAIRo z^IWwA9yD8xU~4Ka0#+bDT>4{wCy#kpu|;Jem#7cbV|jRW^<@6fJh$u&i)FXgJ3h0WK3BD=f3y?gY5P>9jH<6;=$2fg6s)#WKvJN9Ed zU=@0N5Q*IWv`dOKftcWzV*kN;&>)k99x+d^#)oeH3%VK2e7!e$KOgjK>gd^_>=p2KYG~*ww76N5OOyh6 zLZ$pZWCpKpzS7;pf}RpfEoivIR;9JL6z?$cec%z7;S$rowtLeG7H(-m$_YK)Hxd*D zLVPIsf#q-7tpWViv?A96iqPYZ-f|I*fOnI+rm7pu!$6)!s!n3LsF&OEcaeZzh+XJ=UPu)WHgYn#DE{MwJ;4aB-xkDo08CUMr;vgXxoRt5hQ6!cpU8C4! z;j@z?5P9P$L!~`Myw$kdMSDkn5_Nttm$`1Lxi$avA(rn8#ypG$JdQC%VL9l}<>c31(XD)(rDMDFQ;F7QVO0mSu~FnIDB%11w$QrTxS-|uFQQ5&#{ zvjY4hYMqqCCCul%2$Yu(gm@S7q4yhHHUF+(jFNQ{B`{QYChCt};Xy=dN%C>R(6G!% zD-DOCUxu*4 z?>hN?wtoa%#77&PR#%*h@!5FnBB15yCQFS?Fd6-V(Kcbd-Ok2aT`;5|<9;36Ki=-l z{Y=u*H`6BtihUD?D zQ5GPr5p&yeCprsMSwA*k1vylm#6NsaZT;R{ojpVdW(eit;(73Zfe>|IJ7ijFBZ8gf zvI4FrK|IZo8yxrTbfS+5(IU*^U-DWG%|X@73QGC}f`u92)l}Y)3WMJsyYleZE+{4& z2DgDd=@qY@u%r**Y6J<~E+@%o`YZ+)(DBH-Do07rqm2CD|DpX?KcdZD0#RB_>%5V( z%hYCOIY=X`YQ0TTuJD0n3d%^W20xBk`7PAT?)(yG@3CHb{~tl!;G~Rs{_`7Su`IW3 z2)ndrG;y4+`}mlGGfc0RfX4T|M#;l0(z-VCT#`+jA|M<8=&nU!e>-<~t{&-cEC{?TFvEAQ+ z_!ADsSIKe`-7TMZ7mNZx5P1U@IuW)jFDI^~^j9m@fqW3!zN^))|)tmqSBFSn15qn15qdiL8B$-xSnf#))P_mD)$ z#5@c<2PD?LlgALr;&1VS`2&4?xdfffu^tIO*be%7`>5IUV9LBGGqMeJ&vf<>4?U1%oHw9`&#Q{@0&5F~fNcUqXs z2KdK9xpQ!B%fB!#bAi(pAV8@l@HgqTlLcgGfFzwEJ>srm3Ed(BAC`}6i|&-&aR3xT z097YMBeQ&#vkxMG8PB(v03~;mFVjy=Jv8uhLx*@eyO+ABK1&^VAt~bwb`CF(aM(IN zLF>bKQSAfU#tut*N#8yu5>1(weI=*mk9ro z@m*E=yq9lC!v=%^PRbZ@PC7MVzi?PKSP_E9q8b<(1Xd+E1R>8bu?LKXDOCMb?w`#u zsu!5U;Wx*J&7!ALC%dzKY_ds~iiOUmK7PoanIw3JUnIA6b#wX%v`IXF?$KD~Fw7s| zc|KgaeFmcm8b#9~z$xg((#Zyv5-p&rg(`2ZpS&zstZpNs8f>usklOuASAVTvs~?I8%{h9Ud?1qaQBYujd*yMkf=qRR~hWBR3m| z=yxWv@kFBTwewE&KDr+9Yr*eF&pEiL6d|T<^M1Eo~$pT#*xRqI@U^N zY8%_^wm99AzA+0nFD)!jT8!h<`sqPjrFo`1t7r(_k_}h6@7%x1E6K_7$#qS2AvG_r zL|KiOhg7VepV(r;;in^AH8m6d+^7+eS7)dyHHaS);G$}0jzt{4GMc*@5s$Lkj}*;( zN7!>CaqY}24Kw!^`|QXP!&{~mlI^$Lg6uknLAqD%w$82hRAnjUsWr z_|D=79qoo~Ob+p!vAsHWg5@DA#sqycMyCqnqwDwBdT!vr%oqs%8j%3#yW42NN()lF zfq?s09?o>f=y0v&lp;frL8~ErOOG!t71t-F9r)NWw5OQ#We|kH@OO4Ng*xYa4+XY0 z!f-=#g`i)7s(!b^cXFG|fm5;T@WCLB-P-M-=?V42kAGHJW5r;+lQzRCo)MT2&~h@u7hRKUenBuKxZ=vVE~BN5}6cm;UX> z*&~u{8|m)vckhN#Q~aL)B@QM}P1dV7+7m9K8_Vsy5*GJJuGfCMoQM*c+k&@{ZSMM> z!4H7jo*tsRxZYp9@Qe{iWqv!je(fKmyV{d1nf7m4P6YD^G?*(bi;8aZ2!H;9MlZeH z-&ijZd%#JQ2&1xn0MZ6M;F^l0VHH7-@;0#T#yZis?{YT>R zqMeeO)5-Qvs3GIpb=~sB`pUXjr^ycMLD4dkcj9}2pkHRm>%R6@$`nLLzV!axL>F@6 z=iFW2cRpGt_9v)T9%6#!nW4a>G`R!R4Iy>QJrOeIIN}XXX%fiG9gkxk zPiZJ7+@Dn@!4X`y^_8g77Bo1pd607JI>9LhIXpnq z2!33&-zkVQK*{~{Ua$qM0H*Z8ZVHu(KDRhvB2EJzL}``}SOxjv0zeF93w>Y?QBkuV zJ0&FiD1ib{RmNMAs#*q7FP$TcKX(77`C<(X4A~vz`#K)yh!|fi#|(>6XdTJ=j3#uz zYsKnWm(I=PA0%p2aYhY8%p3S6KR||A@(XI2K735DSHeG8vG47;^+5#Er)q^yllR-O zz_JV_%BJN(Yvme;-+SBr_^jTwci(;Y-(rc5>GqBwJ0v3C(oJUL9jldpt#{v9d%mPC z9ovWuiV+Zk65;*k&CPMKqjGr)1SL*{2qSdnqyB`fYB85o$WFZe2Wt|8C*(m9?i4at zG9qVT6rl7(Z=UNkH5MgIlQlG8sS)@yzRj{GGkT#h&0^u`KM|vs5>w-kU+8uf8WEJG z*)3-@zP%Z85lifj4u)YtE5}TwdGm-277IzTJo2Nm}9}CIE8RNE>BtdgyCvCXf^q+!RbcbFi zxz6%bGX34;ZCor9SV;RvenrENT8yj=pTn{ z9q>OjNAmUafIROw1I|2B@$?h7>lbt1uYIFeeaUuD75f(_p_elnd$keJ2$Ez=_XH{; zNrrQswGJnw(eAvW2#J=}P0Ku%Y68UNt#>t`ReyRN)-4b6l(^TtDlZ3Yq+7(!vC(1* zOqlY0g!wX%>J=*YNE$;RKo1NMQu4{)MVkqc^Jgvt&n6z=PwG9BiN%kFom3D>8Y}m$Gk3X{*YHHxjh!C%0K!hq_xWYCQfU2--5d<_jldS%vQJE@*?F{ zrWHl;>``g>kcT#48Qk&0u5_S3CyMF>kcdRl*uGr(D_D3)Tu9kOS`8Tw!-^V=Pyolj zFmC$2ZtU~hcE3~-M>;||_q-J{A18NSg0riot1ssLU0>*(C$CB9t>r(<`Xds-HIvhc z{oxc00bo$i#sB4fXoKHo0j9fapooZ75?q%;N z3J)S;KeqF3YZbg)bQ6k5vEMFXiJ5?4B?jwbN_ZQ5d4KK1tzD%Oq9c>~5j9%^ zN1p*?=q)P9pg6*&L?tnI;5_In+&}<610eta;10h1tJOj97~$>>ewo$u!FLek9rFwT z55O82034t$FV9QOxa&DARmqyt!6Vqi9y$p@#kt)c*I#uA9)uYQ9SX9=EV~OC(qk;K zW4D-|E~@DSj!bvW!^YT1ugK<(?aTqzjRgGeWpK3^^1gG&3Lx^J#eJ!EKIaEnQr7=6 z4Cp2;E*6q18-$7cSh4Y^BX9DKm88cX(HK%c9F#=60B9N zeyvyfvGZNoJvs1SArFZ=!U%x>09d59Z@0{&{y#vdfPO$>n6@OD#JVJRn!6Q$&@9c4 z%o31^pmxx4w;7g7V*JruUBv_x4EcL!=r=y89<;@7_B+G@tQ;|+59)caEt3!3M?k)0 zLve@pvA(A0{Mh~u(0u>vz*!0o^J7X()o^p6#EH}%7Oo&_4u`iq!NAE$iDXAb2&Lec zIZ-)#?0x{W0eVg&3){E79>~t)!M(s{<&oR!T`+}6LNZr0xYkv zfH=HsuHi;?T-Qba{=Ta8Ea`r|7jkZ`@f>yMFu;%nlt}PsK(D!D$x%RKsu4oxZQhaB= z!a|IUZ(zEX;Z(^^ueMrp%eJ zGo}27l(TVcdMtFb7KUJJXWjmcnqDyft;3}Xkp@^I-f|c}Bx2QdJ|ngDt}@6_dfkn- zDQ)48#)?s?;oE2qrpr*)wGkU(C=Oa`ML^#u5LKN5=RS=H=o9{FdFW%BFx={E{#omf zMxbCnw5+Tb%W%^tcP$s`!&BY*yG9{)j1^0GAk^AFU#(ZIUls`q#69%jNdizv+q=2% z>)FNJR_^r_<^KVm41ge@lV1s!h;i!y;yPae9~MpCun?{;-z+SHX2_5@Bsq?9&4D6r zAOR(iH93KQ?w`aXYi2%dzU@Avl8-uK;3Ge0d#CI#aMI%9bBOTSO0OT>T8a$A_1~di zKV8GThC&GCG!NKvRnXr9Zjx+XGE4j4_{Mc&z^@r2GIxXeg^n&D^K-u!Zg(acI(o)# z?k4Ve@6}%?szE;3Ai#t3-1kVkLqN*8t+Pi=)SEaM@SU#Cu)DFOQqpn@5$+%AI1eDn zi`$7~g1|`EPCaEvdr79aZLj!*8{nqWRY;lsU-1hCep_)1FPlhlrah|W82qu{MVyqL z?yG__)xa55yRP~2$?}zX3Au>Z;KE__4R@VQjb&_gDt-SapZ~;HB)r|1Ye2&x=Dp*xGVvtQo(X!L!P9^hBA^mMQFDYUR-&WIA zVPr*Xu{cl`8$^+!k8-$t(((`d%+yyMT~#IPQy=T>G$zL8`{UUE@#KE?IO-gXP!pMv~A_c$LX?vqv@E1H-N&8(q}?MN9Q05l<9jL{58-{~JC zhV6<8U-&`+XWTt&{xqM;dH3+~)Z!<6@2WSIO=(IB2p(roAo5H1f3I(~Ma$iLc4@6z z`vo1&W1Wv_Tsn7qz3%&S;(vK691zNxv%fBx;%&%fd#UT=WPNvk!wahFxXJAoE5C`8 z0Z~HNLkPG{O#kW$N|3~;xv#YC?79W{ zf3sA>_}sRm_$7@Kvu4P_f@^ta=Di{0mK`&w!_>?jI9?1h7V1@1O>IxgVp;tPwlCY{3A>A%pTYnpCDYFF}F)cbo)ddj(0`@9Lb!a^h zIqKp6_mN<(%<``;2A9@}t9XLAH#n^<_WlgyNNVKf>8j)%FT3EtpC-xs_PKv{)DsNH z@w+6!fs+qV`OEa^GZ>%~dkq0vB~-{TRE)}X2pkua+Y4^+-EPsv$hE=+7MK5gpRehm zd5oVOcrO*5gTmzvduE{?y1?j=-tnZxztZT4!$T&uo%6rwWg$aCW0ia|ChiS?Ax>3g z)&EY=aurLbj{wK7yWax3T``HqbpjcV29O)~{4Y z8v2{V0vKSOrv8Tfm1PL&dQ`PpBS>w{+58X-NI0Hv-QY*~4}ZVw_#mZyeoxlbycg1q z8(9X|s0pWk)jX6?dvJll`y54BlAcRiuSJ!0tNi_Yis>p#*H|Sc?(f$Zli#~=(E_Tt z+5i!EHH3^@tHWRN?)0|oIUEEC?saH{>gE^!din(AmXLN{7E>PoL0KK4{tsmqgYkX` z?H{?X)BnK?qj;_{_kHP-!BxX;YXVV}4-GziBXTvdtfa#-vK4}>2e}p zQioS|uJ95X`)5Akxz|XUu73Z??h}!cB*P2gH@SLqQ9%OswcGHcm2KnTLf11?rq;^m zo4@vj{?N5oazW~Rr5auaUU5H7;m!J?s){HHIUXP2j&k2YgpBz%Q%mfipk87WQq=$K{ymk(XJzx3j<1beb{em0q!TDoNZL(dQzWre`t^8_Tf3Nk@~QvlO79QY01UCX+gY3yF{UHn(Z`9$c% zk0`f;s~W4n1R*-~Uigaj?^8y-W?2YekoQEjaH-$@Q=_~)HMf_^v}8x4cc2M@#G>&~fL z2yk-nS{!^Gd59VVXHrikRHuY=q8}Cb@zr#tYNC$8VdA^LA5gH+@OrGO?4O)g0`@aL zb1`gI?KBp1$82g}0*LV?3YZGS7&2U@T$|FXv&XKK0!6{}mj9ricV4|;AwNI;NoA(Z z|JW%ud_Gxd{`X6l`fahfFVCCWZWlWrU|}8Tfkj_}vXda~;;}Acx?3HBN}=h_#BQ7C z|C@F`%iY(aJDWLOlwo3ZKWL77M8K41Rc48iQ1C@c4Xk>8ANp5%R zsx5=A!=wJ<4h&To0Kvy+G@1*Zpfi6WqEj5^481zL90zQM0e>^ojqo(5hp$7j0T{Ia zd_$tvZD`z`{(`K1E|fO0cUHQu5Fq&Yt^3umOAz65e8q0(sVSJ()Z4S|)}OkuR&CzN z=l}W>DnUZ1i_tX?N2)NBlKK02b_fdRGv3WHt%Ks<7F6Z&v z`dAgmxQ+C~?4^W`?{L5%5IOn9`Du753E}&_xc92YlveTzE9mEof1^%@feP>d000ht zL7FNGiUoZL%V=MfMgFz?Rn-^8^Z(!K-Rb`Q`^oeB@Gv)O#Gb8HRT0|3C#&7BcoIXw z5!<7EAW4G9XX6pukbnEOTN}X8*+fhieF(XNLfIMnZLgFs7%9ckBgidj_)f-}$bpgQV*Y z>RQ!T@HoN)9C^SdLSP-ts2Ro~eA*VpaSN4>{K;N9Za${hQuP=A`|d*j`t{HHvEDl_ zU99;*IKtt>f(MoZ5InFPOM?bCn0pR2>y5KF2l6Hr&f9_0K}ect;|3)!7uy}+FFOr( zV1fv%>BwWXd;O%88}h;h76}$k^m#catJ|m)m<3^m_bw~XC<=Jc1t2mb{{7THN0^B< zy5~1Fr7sZI#kOhIBrpTG3gdg}!-K>{9nO|Ina-(xg|o*J18Ugn)eI>zLNI;yI#6^9e}q4JOT_~0n9QQ z!K?SV$gN*L{GWjMBtap7LI8^ZUWZ06_q`zwHaEBu3IRpGly$eJC$X-q7sCYwTdz^} z9m&;eW@2s@;HCCc`|zTz=-~j6!-NFlvKu(+aC?oT#}%gmSuj^OAM^_Ir2v3H{v`~u zz`EOcliiLuK~aI51N4xkViQ7&@PdgP0}R0Z7eViKfvqq6;zFeX-G)$GpAA^=Km1ZF zysdlgxoXxg)xTQ(d+B;_S0uG#^=jRHNidIqF;SzBl`|mdTwVhEsa(pguDa;0dWybJ zFe1U=83+Y}U6?+~>cAJEB6Z#n_J{Xs*A}k!uh*-d{d$+`*Xt=gd-dwSwbc{MDg}XL zaSSLh0_HZX9p?j(!AKO6NeO;ttgtwq5cUWRVx)mdE*_;zZ%Y2wN#RTYV;Ye*=l6-j z7?jH9A9pR+YoEAJF)OQ?)Zs_k4J<+?BQ z1wc{+z(On_u=nD4?2PV^e=NV?ayc(nXDBKgd}31{GgSg{HZ9XkiWM`GNZ>SLWU|wkpsp>^LG6=o@Gl*qdB!Uky3mzPH3&%W;h7ZI{-T3TPjhY9f5z>@A;>|`ZT|a z6nH5d9myYB8>AB4OLA);>Lz6Fp$;LH#)SG{~mZtviI z_!vZ(`~i_Zf_u_meyBU+Gd7$M7GMGDujxIuK&Uq?sLS!aOMS!e?DaUt)tou`@FEyJ z=g=-XFEt`JhvnNiqBU_Z4Qvo;Q=}2NEXZ?iq#PZ-rq4r9qttK?Cr+r1ca9gBcf?zu z#4$^qFA;~awgLn(Cd}rYLof*Fm8awe*d(pD@A%Ue;T{_b_^PDPe*|q_P*VE8jez~QlZgtj zfV^aUv*EB|?h!p~PB$7iL5*0QJ&G8ov|sS{YY()@C)2R$NF(Ass!Z$j5w(x_BP9MG z6w20a7?u@R-EqSo{5p1T*}s-AwRW%izmmN-?+T7M z|0#0#W%yiqhc5E{$_8P8@JK7Zkh<+Ta^F}=ENI)`vjS_%V3EM60lcyM5DsIfdA;x+g$9++%IE8hDL$Rsi>4_=|#!FwhS7wUpQiqniee$4WQ zs_`h}$)im|-zT5$ax8utcAx2jlAK_{_$`!A+k3eNdtiW<6}&9dXM@XSfH6RBJk*Ml z^oo1G;Gl`WZe6EyUpK&+0(qN8?IIp7{!g1Jfp8S4KMc7FG6D$(P_zxT7G?p;!0xQYXkmNsfs&1O#Im=J z)8H5kQKEweon`%@9u_`=l^2DI0#!YMbKUS-);MqpM~Ww4O$P)ZV$%yrVU70ppiUi~ zNYT5Vkj!vO^dOa>0Yrt+arR#v5T3sTdvNuJ2QcmlM(&A|1A7TStI9yoiGHczfxY$l zKYeiVB#ul9mJfX2sRszJef@X%At>=b(Z%X-B`rNqU&6MPlf6%0PKBqh;lu9h{5yp& z$qkx?84{aLJo(fEz{T*-8Z4dEs%)$|6ymIkZQzfOGoJ6U_CC0|Yo7a}c<>YyAa`@muES43H0{KjGYbF2>JRhKE^cwwldDLt?C7^+5!Q;+M34FOI zrf&vBw&*Nt;Wn)Bp!yZ{Ws(!aFV|T~FYkQUcirKiJ}l(V{Z3k^asTr9Hd^bO3HNs^ z60u*Np@soM-|EUiL|A5HI-3&7^}5htxPf5Z`b+$7)W7?Lr-zmU);WFOTGU^T$}x>r z4eM%q_cyCa=(Ur>@MI@|tQl5l9wVav^tGq3))FyI)1OO%Ce|h6MP?~HE}3W;3fz1U zohnBy9#AC1Q+R@8Dj0FUuc@skSn>{3g3O*%wZWmtP+3J-dy-Z_-&o4jJEa}EkMS?Xm}69 z5TY1DAM3MI9Hgpj6>Y$NGaDG<4VI0w|FD40?Z#TjPd~RsG5!h0jxt^EjRFh)CHG$$ zz?QhN`ubw_`gC94vB;-uF$GJ6a?3A}yla0c65Vb>35ab`R(mGXqqPPcpUgkTLm}{tG1Gr;K4HId(QA z5e!Mfm=`ZbY*`{&&K6-npoMl27qU(ky+<;JH`yG4@nM~1h&b>A5(k<{p9O$rT7ma6 zth79QBX2W+X!#HjY0D3(-_MW~hfI9F3ah2`^%@orp9AkON(@cL_D#L=)ioK-rASajJKf89q-i<8F+?<~1J>T*w%%9|rkzJ}M1?xac;JbZbwy!uVc9oz0?% z3>`=%tppLpzbEtl3BFzvd!PQw@md(XnC*UhzDnY6%lrT0Gh!VZ-|$s;)d-7Rn9~%` z#rhW7O7Z4vyhJOn*Yu?}Us;0r3^|ZtHyXlQmsa_FhxHgBD$`Jh@5x|mJibyCb|~^4 zg2%)g^6^*Sd-C{!%ED|W5w@X3F_2A_uk+V{k()g$K?N9DRYN@Fo%|2oKWB{9$@L6r zVrn>Nmn8cXAQTGl*LPFv zf73xarB(Usw0-;Cdk+x?8%w(Dv`wU1k*smK_=E^7!AO`w5gXfCl{V>#Pyx zG<$hDSE9X_^{pCNeSJkzzjwWNz5axmHn#f9#$Of4kmCk4j$+qMZ`lQkf{K>m<4+B{ z=!R03t&oxTD8fKy`~$-)FO-6gPl6VI5up~Dqd^}mO~h=?v7tW-FJ(cpzl4McAnk&x zk@3>xO*2d3!36{+n(pdb>g6ELA*1fuuAKNPkGSUTxS{bQp9lWbPo`fd=|h|{LjrT~ zl0N}@s>_R9QEN~)u#TnAsYV+2t4AK9Th*@*wxD*)aes7WpNqau_#YJo< zo`YKXKWLE*R837y3poM$oFUqy`morLP*!ewKQMLWjv8TnI(f?%1j9_CWtFLor zUj${zutGPfskXU|ly`#dWnQV$<*!9@{bh5aG@o$&LH|wPh2H#G!4VvLyB-B`;HW^? zJ_`E|!?ozGr+cJVfe1Vg>lUL+eSr%R0000BbwQdcimC;342!kja{Be!#Zi5$cCG(3 zt@^iG_v;sbUrXQos^`Cd<^SOoa!*%2CltN*y?(vg)q1*p_e=eh6FG^OLEpquLSrw1OzT(x8r9bwr2xrhoa`G zsZlIp%leRsWIvO z^5-ZgI)J8#J=7O`!`$A5u~1`FTK9d)Yu~S3->-JPC5DVY;n$o6fJ_R@!@(e(v&<#` z`UQkuAxJ@Jq@|o4jhkwMe)WVTWomXCW_X@jDMwxtzTC=>;cVE8nkny?(Jzu{(ioEEF3A$K#+vhV6}x#I!kXcpCez&wsBk z+(|1ZX_KPkVFN*==_*YGh}d&KNvQt&u3G!)1bgq};;nLsC&w&+GQse0KnK9xlr;vR zGJu(8!C+~LKmfvtfItEx8d2a(1WTta7zzNDw#&dTASi)Qfus~-j6!HGW5hM;jod&? z7Z+I!Zh!{D0s^4)8+3bd%t#>Tj2Jq2>R>?=HV3EEft~Z$e^X}upCmdgy_GN(wwUv- zbCS(k4UitX35MIh@SHfEih)&yYn98Ekx}dVF$$lANH)n!MCF(wdR?fy;SB0&460hT zuuUA61REUniAF~4KGf!wBfa#^@P3aMeHUNOy*>7=Clb9>UDaBfq*x+-ui%{5JTA6Q z=L*O2@qQ#Rr+x1Osi*tIaH$+}c>B~-(J%Pw53fScejv>rOR!W&VqeybgV$@n8+k~B z6w8smF!J{0{+}7(Gz_<(JER|`O(p5hLHxFhOJ4}sGZHbPNXN^I!zKJXF)7<5v(WtH zUya7mN@jigw0^jCd%3+%uh**sNLyGO%n0Ef?|Z%VfRhYl5bxfY3ebl02?I#Mm%Hx# zPaXZ>>@(Mba@m|P9IQenJ+vSkzZJu4fvL47i|~&xKtu3^*!$zZ=PP`Cv)Iq-nSAw> z+6ir+m-X<$7N3=c`xG*rPcQoai?Iu_3UJOTEzAF?zjeC)5-i*1WAH*joAG=1hAn5xqj3kR_qhQ<1-1~o9H`>!QfYMAn{x7e>nME){p;!Ilb|I$cc2m##6^XtQxW>LCyXc)4;lx6n8`bSA?JIxD5dtXUFLEZCws^1NJD}L#9X%J+rFla&+rro zAQ9f0Y1{aIXe}&gnUOOwWy@)bqksxPHs(|aN2p;b1<1wBr^d%UPFw32;o{I^$?g}Fgqk3lq&}yI;yEX& z1!MN%+#2UvseBfRpeXdKrtozJ?cSvn!SI0pY>U13{`oZoTQty_PP`_{a@|RP1@MsF z-@_>N_}I>2nfPCXT%4_FfS%^-^~A7`OR*W36fbo=7pP zit=F-CH_$hjsg?t@A(ON;j)xH$(rKpHE2&&hRhs9vkS3dz{l9UD;u;=zxE z6kFQPm`#bt!C!ZlSY{PoeJXw|Rp2HRL?0Z^?0-15OiF8nj2L^Xm!4Zi)mV(Vd)%Ih z)K4C~G)UOa27OOd$H=&UZRDg#Y2Iq7f&l4t{?3Pg)ylFMXRoga=}a+`F`+^7W%`10 z05o^WYo4-`BXW)xL?_zCh6-V%0UINq<-;v}H4g_7eh)L*R80Wiv1IIJ2}+lRWK`%F zkYmp^_z-s_#!G+8@dYUc#}1)LC28xfA|idtU*|M|?Q>o}xqS_Tt34D3B}erbUBX94 zB|hywJJniH2kS-%7cu|Sz6jY~UO$-7WBV4zBpt&fLybQD$@}Fl2{3C!21maw_@)a+ z)~d!2P&K7RBXmPjaI#WD!@!}p~uY+#n?q9I`*bX@L#;77wLD~j)MD4)8Woq zSK2ZvqTk_rQsnS1T3?w&Xk2~>=P|sMhu6O@rO)7;k3*G@uFN*<+W0Lr67`#uj~h5JomD0Xj_*7zD6Y91UvEzqcuz918whEijg?6_5B~7nc&OdC6S2 zk}-zz-oKMmz1q{?k)b_StKr%4?)YZww24*tt9e<8G=IaW4lDW1U& zBd7KDPfdUFUhcgRtxsGOOWSuYT9Mp*f@g~@Za(gt3ehN|(yI59^K&%9BCbksL8LlZ zH1pxFr}1g8^-}w`?h>nHt|#u9a`dMW%t0Tk+t@qO2*hk&h~tF8_wbBC2}7Xj%rwP8 z+Y4nkhphPdX)9hOI%BH=+Yy{^t~`*ZE%+>?!R3NYEEr$n+cbYXh$+v0)Eb3KwGj6( zv3}tLMjR^l!S)0EXuwZqr!NKruvsoF4Cww5(FGM&tBueqFkU){q`mS6gCLyPSa)LN z7Bd;{H+LnW{a(F(aUD`q|AHdipM$-9tDm~-@V@P>YQ8a?0)^SO$33qESjmqDUzhTb z{(oD7SQk>UmPGlnIrZV~UwKf1Xf;wDyPeobdpm?qUn}t+74e+E;YjIAf&1^|;XoRy z(4_TM2C*d+M!OI^82uhR1B{fhQv9kH7#u+oakY?icn5P{?av>mE8A7nPJw>LAfA|O zH533CABS8!lh96ItXVxj_5Xd$-^=%|2!vgp56^Fh6NS_L6`zvPsi{}8e1521QwxR3ebOwV2FHWyQWK9sS~c`^_S?K-{`&ey~`(* zrTyHTsNEy?Azxa_!4Rg8pKcog5*GzT13OkFhMcv-`QCT28J04#yUx6&c zZw#`4T_K-ZmFbS~1g)vNBNz%uDQ7?1S zoRp}5#0bD6!vrM(+Zl>%0SfA2N0K)kEUn`p5~B+;>t$m$?%~+x2`a9@Av~TfoABrc zKt)wWL)_hO5Aas9p>)7G%nS-JGU5^G1)lCK+#0BajU>D7JQp(sbq6W5Un5rAOkzY2 z)9rcuV^MmO^y*vIqOag$aB&s%2u-q*K{Uezci$uBu-!6$1N@+&0U#zfXbz|C_I4%0 za4iIthGh;cY5YSh^SO^c&gbN24C3eSr zir$fMwiZYWSWG{E#}NJb3JBq`9}-!QFee3t)mD>gs;$}=o4UHBSN&eCSZ!bRm+M@; z*Q??dy=(P(Z=GMjlmf^uG0Sc%aYsIBcbC?0#~?#~eBW3U$^?=IZ3%M$KbnHy?gn82 zAWjYuFd5^cgLW27o2PLV+*|A_6*}Uwk5?z6Rwl22`?*dS70i`L*r= zz6sV^^a@bMZV(Ac_AL#I_3s3LyX32?IeMvUL|*Tq52fnTnqSwd|6D6|Z*}Tl)6Eda zgn(+Ni4(1FQJ2kA)OM(&zL?AbM_P^Z2L`2Wi4VNH`e0%~#ifPcl^Fm9!D(~vkD@B1 z5$-Urh`74-@7KBdF)Ue{!}V2>v

#Au>rq*@R$nz&NiH$YmuNAB0F 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 Qr%B`2EG6js{ET1wf8E78CjbBd diff --git a/dashboard-ui/scripts/editorsidebar.js b/dashboard-ui/scripts/editorsidebar.js index fc777f96d5..f4135f63fe 100644 --- a/dashboard-ui/scripts/editorsidebar.js +++ b/dashboard-ui/scripts/editorsidebar.js @@ -1 +1 @@ -define(["datetime","jQuery","material-icons"],function(datetime,$){"use strict";function getNode(item,folderState,selected){var htmlName=getNodeInnerHtml(item),node={id:item.Id,text:htmlName,state:{opened:item.IsFolder&&"open"==folderState,selected:selected},li_attr:{serveritemtype:item.Type,collectiontype:item.CollectionType}};return item.IsFolder?(node.children=[{text:"Loading...",icon:!1}],node.icon=!1):node.icon=!1,node.state.opened&&(node.li_attr.loadedFromServer=!0),selected&&(selectedNodeId=item.Id),node}function getNodeInnerHtml(item){var name=item.Name;item.Number&&(name=item.Number+" - "+name),null!=item.IndexNumber&&"Season"!=item.Type&&(name=item.IndexNumber+" - "+name);var cssClass="editorNode";"Offline"==item.LocationType&&(cssClass+=" offlineEditorNode");var htmlName="

";if(item.LockData&&(htmlName+='lock'),htmlName+=name,item.ImageTags&&item.ImageTags.Primary||(htmlName+=''),item.BackdropImageTags&&item.BackdropImageTags.length||"Episode"!==item.Type&&"Season"!==item.Type&&"Audio"!==item.MediaType&&"TvChannel"!==item.Type&&"MusicAlbum"!==item.Type&&(htmlName+=''),item.ImageTags&&item.ImageTags.Logo||"Movie"!=item.Type&&"Trailer"!=item.Type&&"Series"!=item.Type&&"MusicArtist"!=item.Type&&"BoxSet"!=item.Type||(htmlName+=''),"Episode"==item.Type&&"Virtual"==item.LocationType)try{item.PremiereDate&&(new Date).getTime()>=datetime.parseISO8601Date(item.PremiereDate,!0).getTime()&&(htmlName+='')}catch(err){}return htmlName+="
"}function loadChildrenOfRootNode(page,scope,callback){ApiClient.getLiveTvChannels({limit:0}).then(function(result){var nodes=[];nodes.push({id:"MediaFolders",text:Globalize.translate("HeaderMediaFolders"),state:{opened:!0},li_attr:{itemtype:"mediafolders",loadedFromServer:!0},icon:!1}),result.TotalRecordCount&&nodes.push({id:"livetv",text:Globalize.translate("HeaderLiveTV"),state:{opened:!1},li_attr:{itemtype:"livetv"},children:[{text:"Loading...",icon:!1}],icon:!1}),callback.call(scope,nodes),nodesToLoad.push("MediaFolders")})}function loadLiveTvChannels(service,openItems,callback){ApiClient.getLiveTvChannels({ServiceName:service,AddCurrentProgram:!1}).then(function(result){var nodes=result.Items.map(function(i){var state=openItems.indexOf(i.Id)==-1?"closed":"open";return getNode(i,state,!1)});callback(nodes)})}function loadMediaFolders(page,scope,openItems,callback){ApiClient.getJSON(ApiClient.getUrl("Library/MediaFolders")).then(function(result){var nodes=result.Items.map(function(n){var state=openItems.indexOf(n.Id)==-1?"closed":"open";return getNode(n,state,!1)});callback.call(scope,nodes);for(var i=0,length=nodes.length;ia",page)[0];if(null!=elem&&($(".editorNode",elem).remove(),$(elem).append(getNodeInnerHtml(item)),item.IsFolder)){var tree=jQuery.jstree._reference(".libraryTree"),currentNode=tree._get_node(null,!1);tree.refresh(currentNode)}}function setCurrentItemId(id){itemId=id}function getCurrentItemId(){if(itemId)return itemId;var url=window.location.hash||window.location.href;return getParameterByName("id",url)}var selectedNodeId,nodesToLoad=[];$(document).on("itemsaved",".metadataEditorPage",function(e,item){updateEditorNode(this,item)}).on("pagebeforeshow",".metadataEditorPage",function(){require(["css!css/metadataeditor.css"])}).on("pagebeforeshow",".metadataEditorPage",function(){var page=this;Dashboard.getCurrentUser().then(function(user){var id=getCurrentItemId();id?ApiClient.getAncestorItems(id,user.Id).then(function(ancestors){var ids=ancestors.map(function(i){return i.Id});initializeTree(page,user,ids,id)}):initializeTree(page,user,[])})}).on("pagebeforehide",".metadataEditorPage",function(){var page=this;$(".libraryTree",page).off("select_node.jstree",onNodeSelect).off("open_node.jstree",onNodeOpen).off("load_node.jstree",onNodeLoad)});var itemId;window.MetadataEditor={getItemPromise:function(){var currentItemId=getCurrentItemId();return currentItemId?ApiClient.getItem(Dashboard.getCurrentUserId(),currentItemId):ApiClient.getRootFolder(Dashboard.getCurrentUserId())},getCurrentItemId:getCurrentItemId,setCurrentItemId:setCurrentItemId}}); \ No newline at end of file +define(["datetime","jQuery","material-icons"],function(datetime,$){"use strict";function getNode(item,folderState,selected){var htmlName=getNodeInnerHtml(item),node={id:item.Id,text:htmlName,state:{opened:item.IsFolder&&"open"==folderState,selected:selected},li_attr:{serveritemtype:item.Type,collectiontype:item.CollectionType}};return item.IsFolder?(node.children=[{text:"Loading...",icon:!1}],node.icon=!1):node.icon=!1,node.state.opened&&(node.li_attr.loadedFromServer=!0),selected&&(selectedNodeId=item.Id),node}function getNodeInnerHtml(item){var name=item.Name;item.Number&&(name=item.Number+" - "+name),null!=item.IndexNumber&&"Season"!=item.Type&&(name=item.IndexNumber+" - "+name);var cssClass="editorNode";"Offline"==item.LocationType&&(cssClass+=" offlineEditorNode");var htmlName="
";if(item.LockData&&(htmlName+='lock'),htmlName+=name,item.ImageTags&&item.ImageTags.Primary||(htmlName+=''),item.BackdropImageTags&&item.BackdropImageTags.length||"Episode"!==item.Type&&"Season"!==item.Type&&"Audio"!==item.MediaType&&"TvChannel"!==item.Type&&"MusicAlbum"!==item.Type&&(htmlName+=''),item.ImageTags&&item.ImageTags.Logo||"Movie"!=item.Type&&"Trailer"!=item.Type&&"Series"!=item.Type&&"MusicArtist"!=item.Type&&"BoxSet"!=item.Type||(htmlName+=''),"Episode"==item.Type&&"Virtual"==item.LocationType)try{item.PremiereDate&&(new Date).getTime()>=datetime.parseISO8601Date(item.PremiereDate,!0).getTime()&&(htmlName+='')}catch(err){}return htmlName+="
"}function loadChildrenOfRootNode(page,scope,callback){ApiClient.getLiveTvChannels({limit:0}).then(function(result){var nodes=[];nodes.push({id:"MediaFolders",text:Globalize.translate("HeaderMediaFolders"),state:{opened:!0},li_attr:{itemtype:"mediafolders",loadedFromServer:!0},icon:!1}),result.TotalRecordCount&&nodes.push({id:"livetv",text:Globalize.translate("HeaderLiveTV"),state:{opened:!1},li_attr:{itemtype:"livetv"},children:[{text:"Loading...",icon:!1}],icon:!1}),callback.call(scope,nodes),nodesToLoad.push("MediaFolders")})}function loadLiveTvChannels(service,openItems,callback){ApiClient.getLiveTvChannels({ServiceName:service,AddCurrentProgram:!1}).then(function(result){var nodes=result.Items.map(function(i){var state=openItems.indexOf(i.Id)==-1?"closed":"open";return getNode(i,state,!1)});callback(nodes)})}function loadMediaFolders(page,scope,openItems,callback){ApiClient.getJSON(ApiClient.getUrl("Library/MediaFolders")).then(function(result){var nodes=result.Items.map(function(n){var state=openItems.indexOf(n.Id)==-1?"closed":"open";return getNode(n,state,!1)});callback.call(scope,nodes);for(var i=0,length=nodes.length;ia",page)[0];if(null!=elem&&($(".editorNode",elem).remove(),$(elem).append(getNodeInnerHtml(item)),item.IsFolder)){var tree=jQuery.jstree._reference(".libraryTree"),currentNode=tree._get_node(null,!1);tree.refresh(currentNode)}}function setCurrentItemId(id){itemId=id}function getCurrentItemId(){if(itemId)return itemId;var url=window.location.hash||window.location.href;return getParameterByName("id",url)}var selectedNodeId,nodesToLoad=[];$(document).on("itemsaved",".metadataEditorPage",function(e,item){updateEditorNode(this,item)}).on("pagebeforeshow",".metadataEditorPage",function(){require(["css!css/metadataeditor.css"])}).on("pagebeforeshow",".metadataEditorPage",function(){var page=this;Dashboard.getCurrentUser().then(function(user){var id=getCurrentItemId();id?ApiClient.getAncestorItems(id,user.Id).then(function(ancestors){var ids=ancestors.map(function(i){return i.Id});initializeTree(page,user,ids,id)}):initializeTree(page,user,[])})}).on("pagebeforehide",".metadataEditorPage",function(){var page=this;$(".libraryTree",page).off("select_node.jstree",onNodeSelect).off("open_node.jstree",onNodeOpen).off("load_node.jstree",onNodeLoad)});var itemId;window.MetadataEditor={getItemPromise:function(){var currentItemId=getCurrentItemId();return currentItemId?ApiClient.getItem(Dashboard.getCurrentUserId(),currentItemId):ApiClient.getRootFolder(Dashboard.getCurrentUserId())},getCurrentItemId:getCurrentItemId,setCurrentItemId:setCurrentItemId}}); \ No newline at end of file diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 4b9890fdf7..93ebdd47bc 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -1 +1 @@ -define(["appSettings","dom","browser","datetime","embyRouter","events","scrollStyles"],function(appSettings,dom,browser,datetime,embyRouter,events){"use strict";function fadeInRight(elem){var pct=browser.mobile?"4%":"0.5%",keyframes=[{opacity:"0",transform:"translate3d("+pct+", 0, 0)",offset:0},{opacity:"1",transform:"none",offset:1}];elem.animate(keyframes,{duration:160,iterations:1,easing:"ease-out"})}var pageSizeKey="pagesize_v4",libraryBrowser={getDefaultPageSize:function(key,defaultValue){return 100},getSavedQueryKey:function(modifier){return window.location.href.split("#")[0]+(modifier||"")},loadSavedQueryValues:function(key,query){var values=appSettings.get(key+"_"+Dashboard.getCurrentUserId());return values?(values=JSON.parse(values),Object.assign(query,values)):query},saveQueryValues:function(key,query){var values={};query.SortBy&&(values.SortBy=query.SortBy),query.SortOrder&&(values.SortOrder=query.SortOrder);try{appSettings.set(key+"_"+Dashboard.getCurrentUserId(),JSON.stringify(values))}catch(e){}},saveViewSetting:function(key,value){try{appSettings.set(key+"_"+Dashboard.getCurrentUserId()+"_view",value)}catch(e){}},getSavedView:function(key){var val=appSettings.get(key+"_"+Dashboard.getCurrentUserId()+"_view");return val},getSavedViewSetting:function(key){return new Promise(function(resolve,reject){var val=libraryBrowser.getSavedView(key);resolve(val)})},allowSwipe:function(target){function allowSwipeOn(elem){return!dom.parentWithTag(elem,"input")&&(!elem.classList||!elem.classList.contains("hiddenScrollX")&&!elem.classList.contains("smoothScrollX")&&!elem.classList.contains("animatedScrollX"))}for(var parent=target;null!=parent;){if(!allowSwipeOn(parent))return!1;parent=parent.parentNode}return!0},configureSwipeTabs:function(ownerpage,tabs){if(browser.touch){var pageCount=ownerpage.querySelectorAll(".pageTabContent").length,onSwipeLeft=function(e,target){if(libraryBrowser.allowSwipe(target)&&ownerpage.contains(target)){var selected=parseInt(tabs.selectedIndex()||"0");selected0&&tabs.selectedIndex(selected-1)}};require(["touchHelper"],function(TouchHelper){var touchHelper=new TouchHelper(ownerpage.parentNode.parentNode);events.on(touchHelper,"swipeleft",onSwipeLeft),events.on(touchHelper,"swiperight",onSwipeRight),ownerpage.addEventListener("viewdestroy",function(){touchHelper.destroy()})})}},configurePaperLibraryTabs:function(ownerpage,tabs,panels,animateTabs,enableSwipe){enableSwipe!==!1&&libraryBrowser.configureSwipeTabs(ownerpage,tabs),tabs.addEventListener("beforetabchange",function(e){null!=e.detail.previousIndex&&panels[e.detail.previousIndex].classList.remove("is-active");var newPanel=panels[e.detail.selectedTabIndex];null!=e.detail.previousIndex&&e.detail.previousIndex!=e.detail.selectedTabIndex&&newPanel.animate&&(animateTabs||[]).indexOf(e.detail.selectedTabIndex)!=-1&&fadeInRight(newPanel),newPanel.classList.add("is-active")})},getArtistLinksHtml:function(artists,cssClass){for(var html=[],i=0,length=artists.length;i'+artist.Name+"
")}return html=html.join(" / ")},getListItemInfo:function(elem){for(var elemWithAttributes=elem;!elemWithAttributes.getAttribute("data-id");)elemWithAttributes=elemWithAttributes.parentNode;var itemId=elemWithAttributes.getAttribute("data-id"),index=elemWithAttributes.getAttribute("data-index"),mediaType=elemWithAttributes.getAttribute("data-mediatype");return{id:itemId,index:index,mediaType:mediaType,context:elemWithAttributes.getAttribute("data-context")}},renderName:function(item,nameElem,linkToElement,context){require(["itemHelper"],function(itemHelper){var name=itemHelper.getDisplayName(item,{includeParentInfo:!1});linkToElement?nameElem.innerHTML=''+name+"":nameElem.innerHTML=name})},renderParentName:function(item,parentNameElem,context){var html=[],contextParam=context?"&context="+context:"";item.AlbumArtists?html.push(libraryBrowser.getArtistLinksHtml(item.AlbumArtists,"detailPageParentLink")):item.ArtistItems&&item.ArtistItems.length&&"MusicVideo"==item.Type?html.push(libraryBrowser.getArtistLinksHtml(item.ArtistItems,"detailPageParentLink")):item.SeriesName&&"Episode"==item.Type&&html.push(''+item.SeriesName+""),item.SeriesName&&"Season"==item.Type?html.push(''+item.SeriesName+""):null!=item.ParentIndexNumber&&"Episode"==item.Type?html.push(''+item.SeasonName+""):item.Album&&"Audio"==item.Type&&(item.AlbumId||item.ParentId)?html.push(''+item.Album+""):item.Album&&"MusicVideo"==item.Type&&item.AlbumId?html.push(''+item.Album+""):item.Album?html.push(item.Album):(item.IsSeries||item.EpisodeTitle)&&html.push(item.Name),html.length?(parentNameElem.classList.remove("hide"),parentNameElem.innerHTML=html.join(" - ")):parentNameElem.classList.add("hide")},showLayoutMenu:function(button,currentLayout,views){var dispatchEvent=!0;views||(dispatchEvent=!1,views=button.getAttribute("data-layouts"),views=views?views.split(","):["List","Poster","PosterCard","Thumb","ThumbCard"]);var menuItems=views.map(function(v){return{name:Globalize.translate("Option"+v),id:v,selected:currentLayout==v}});require(["actionsheet"],function(actionsheet){actionsheet.show({items:menuItems,positionTo:button,callback:function(id){button.dispatchEvent(new CustomEvent("layoutchange",{detail:{viewStyle:id},bubbles:!0,cancelable:!1})),dispatchEvent||window.$&&$(button).trigger("layoutchange",[id])}})})},getQueryPagingHtml:function(options){var startIndex=options.startIndex,limit=options.limit,totalRecordCount=options.totalRecordCount;if(limit&&options.updatePageSizeSetting!==!1)try{appSettings.set(options.pageSizeKey||pageSizeKey,limit)}catch(e){}var html="",recordsEnd=Math.min(startIndex+limit,totalRecordCount),showControls=totalRecordCount>20||limit',showControls){html+='';var startAtDisplay=totalRecordCount?startIndex+1:0;html+=startAtDisplay+"-"+recordsEnd+" of "+totalRecordCount,html+=""}if((showControls||options.viewButton||options.filterButton||options.sortButton||options.addLayoutButton)&&(html+='
',showControls&&(html+='',html+=''),options.addLayoutButton&&(html+=''),options.sortButton&&(html+=''),options.filterButton&&(html+=''),html+="
",showControls&&options.showLimit)){var id="selectPageSize",pageSizes=options.pageSizes||[20,50,100,200,300,400,500],optionsHtml=pageSizes.map(function(val){return limit==val?'":'"}).join("");html+='
"}return html+=""},showSortMenu:function(options){require(["dialogHelper","emby-radio"],function(dialogHelper){function onSortByChange(){var newValue=this.value;if(this.checked){var changed=options.query.SortBy!=newValue;options.query.SortBy=newValue.replace("_",","),options.query.StartIndex=0,options.callback&&changed&&options.callback()}}function onSortOrderChange(){var newValue=this.value;if(this.checked){var changed=options.query.SortOrder!=newValue;options.query.SortOrder=newValue,options.query.StartIndex=0,options.callback&&changed&&options.callback()}}var dlg=dialogHelper.createDialog({removeOnClose:!0,modal:!1,entryAnimationDuration:160,exitAnimationDuration:200});dlg.classList.add("ui-body-a"),dlg.classList.add("background-theme-a"),dlg.classList.add("formDialog");var html="";html+='
',html+='

',html+=Globalize.translate("HeaderSortBy"),html+="

";var i,length,isChecked;for(html+="
",i=0,length=options.items.length;i"+option.name+""}html+="
",html+='

',html+=Globalize.translate("HeaderSortOrder"),html+="

",html+="
",isChecked="Ascending"==options.query.SortOrder?" checked":"",html+='",isChecked="Descending"==options.query.SortOrder?" checked":"",html+='",html+="
",html+="
",dlg.innerHTML=html,dialogHelper.open(dlg);var sortBys=dlg.querySelectorAll(".menuSortBy");for(i=0,length=sortBys.length;i',editable&&(html+=""),detectRatio&&item.PrimaryImageAspectRatio&&(item.PrimaryImageAspectRatio>=1.48?shape="thumb":item.PrimaryImageAspectRatio>=.85&&item.PrimaryImageAspectRatio<=1.34&&(shape="square")),html+="",editable&&(html+="");var progressHtml=item.IsFolder||!item.UserData?"":indicators.getProgressBarHtml(item);if(html+='
',progressHtml&&(html+=progressHtml),html+="
",html+="",elem.innerHTML=html,"thumb"==shape?(elem.classList.add("thumbDetailImageContainer"),elem.classList.remove("portraitDetailImageContainer"),elem.classList.remove("squareDetailImageContainer")):"square"==shape?(elem.classList.remove("thumbDetailImageContainer"),elem.classList.remove("portraitDetailImageContainer"),elem.classList.add("squareDetailImageContainer")):(elem.classList.remove("thumbDetailImageContainer"),elem.classList.add("portraitDetailImageContainer"),elem.classList.remove("squareDetailImageContainer")),url){var img=elem.querySelector("img");img.onload=function(){img.src.indexOf("empty.png")==-1&&img.classList.add("loaded")},imageLoader.lazyImage(img,url)}},renderDetailPageBackdrop:function(page,item,imageLoader,indicators){var imgUrl,screenWidth=screen.availWidth,hasbackdrop=!1,itemBackdropElement=page.querySelector("#itemBackdrop"),usePrimaryImage="Video"===item.MediaType&&"Movie"!==item.Type||item.MediaType&&"Video"!==item.MediaType,useThumbImage=!1;usePrimaryImage&&item.ImageTags&&item.ImageTags.Primary?(imgUrl=ApiClient.getScaledImageUrl(item.Id,{type:"Primary",index:0,maxWidth:screenWidth,tag:item.ImageTags.Primary}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):useThumbImage&&item.ImageTags&&item.ImageTags.Thumb?(imgUrl=ApiClient.getScaledImageUrl(item.Id,{type:"Thumb",index:0,maxWidth:screenWidth,tag:item.ImageTags.Thumb}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):item.BackdropImageTags&&item.BackdropImageTags.length?(imgUrl=ApiClient.getScaledImageUrl(item.Id,{type:"Backdrop",index:0,maxWidth:screenWidth,tag:item.BackdropImageTags[0]}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):item.ParentBackdropItemId&&item.ParentBackdropImageTags&&item.ParentBackdropImageTags.length?(imgUrl=ApiClient.getScaledImageUrl(item.ParentBackdropItemId,{type:"Backdrop",index:0,tag:item.ParentBackdropImageTags[0],maxWidth:screenWidth}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):item.ImageTags&&item.ImageTags.Thumb?(imgUrl=ApiClient.getScaledImageUrl(item.Id,{type:"Thumb",index:0,maxWidth:screenWidth,tag:item.ImageTags.Thumb}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):(itemBackdropElement.classList.add("noBackdrop"),itemBackdropElement.style.backgroundImage="");var progress=itemBackdropElement.querySelector(".itemBackdropProgress");if(progress&&progress.parentNode.removeChild(progress),usePrimaryImage){var progressHtml=indicators.getProgressBarHtml(item,{containerClass:"itemBackdropProgressBar"});progressHtml&&itemBackdropElement.insertAdjacentHTML("beforeend",progressHtml)}return hasbackdrop}};return window.LibraryBrowser=libraryBrowser,libraryBrowser}); \ No newline at end of file +define(["appSettings","dom","browser","datetime","embyRouter","events","scrollStyles"],function(appSettings,dom,browser,datetime,embyRouter,events){"use strict";function fadeInRight(elem){var pct=browser.mobile?"4%":"0.5%",keyframes=[{opacity:"0",transform:"translate3d("+pct+", 0, 0)",offset:0},{opacity:"1",transform:"none",offset:1}];elem.animate(keyframes,{duration:160,iterations:1,easing:"ease-out"})}var pageSizeKey="pagesize_v4",libraryBrowser={getDefaultPageSize:function(key,defaultValue){return 100},getSavedQueryKey:function(modifier){return window.location.href.split("#")[0]+(modifier||"")},loadSavedQueryValues:function(key,query){var values=appSettings.get(key+"_"+Dashboard.getCurrentUserId());return values?(values=JSON.parse(values),Object.assign(query,values)):query},saveQueryValues:function(key,query){var values={};query.SortBy&&(values.SortBy=query.SortBy),query.SortOrder&&(values.SortOrder=query.SortOrder);try{appSettings.set(key+"_"+Dashboard.getCurrentUserId(),JSON.stringify(values))}catch(e){}},saveViewSetting:function(key,value){try{appSettings.set(key+"_"+Dashboard.getCurrentUserId()+"_view",value)}catch(e){}},getSavedView:function(key){var val=appSettings.get(key+"_"+Dashboard.getCurrentUserId()+"_view");return val},getSavedViewSetting:function(key){return new Promise(function(resolve,reject){var val=libraryBrowser.getSavedView(key);resolve(val)})},allowSwipe:function(target){function allowSwipeOn(elem){return!dom.parentWithTag(elem,"input")&&(!elem.classList||!elem.classList.contains("hiddenScrollX")&&!elem.classList.contains("smoothScrollX")&&!elem.classList.contains("animatedScrollX"))}for(var parent=target;null!=parent;){if(!allowSwipeOn(parent))return!1;parent=parent.parentNode}return!0},configureSwipeTabs:function(ownerpage,tabs){if(browser.touch){var pageCount=ownerpage.querySelectorAll(".pageTabContent").length,onSwipeLeft=function(e,target){if(libraryBrowser.allowSwipe(target)&&ownerpage.contains(target)){var selected=parseInt(tabs.selectedIndex()||"0");selected0&&tabs.selectedIndex(selected-1)}};require(["touchHelper"],function(TouchHelper){var touchHelper=new TouchHelper(ownerpage.parentNode.parentNode);events.on(touchHelper,"swipeleft",onSwipeLeft),events.on(touchHelper,"swiperight",onSwipeRight),ownerpage.addEventListener("viewdestroy",function(){touchHelper.destroy()})})}},configurePaperLibraryTabs:function(ownerpage,tabs,panels,animateTabs,enableSwipe){enableSwipe!==!1&&libraryBrowser.configureSwipeTabs(ownerpage,tabs),tabs.addEventListener("beforetabchange",function(e){null!=e.detail.previousIndex&&panels[e.detail.previousIndex].classList.remove("is-active");var newPanel=panels[e.detail.selectedTabIndex];null!=e.detail.previousIndex&&e.detail.previousIndex!=e.detail.selectedTabIndex&&newPanel.animate&&(animateTabs||[]).indexOf(e.detail.selectedTabIndex)!=-1&&fadeInRight(newPanel),newPanel.classList.add("is-active")})},getArtistLinksHtml:function(artists,cssClass){for(var html=[],i=0,length=artists.length;i'+artist.Name+"")}return html=html.join(" / ")},getListItemInfo:function(elem){for(var elemWithAttributes=elem;!elemWithAttributes.getAttribute("data-id");)elemWithAttributes=elemWithAttributes.parentNode;var itemId=elemWithAttributes.getAttribute("data-id"),index=elemWithAttributes.getAttribute("data-index"),mediaType=elemWithAttributes.getAttribute("data-mediatype");return{id:itemId,index:index,mediaType:mediaType,context:elemWithAttributes.getAttribute("data-context")}},renderName:function(item,nameElem,linkToElement,context){require(["itemHelper"],function(itemHelper){var name=itemHelper.getDisplayName(item,{includeParentInfo:!1});linkToElement?nameElem.innerHTML=''+name+"":nameElem.innerHTML=name})},renderParentName:function(item,parentNameElem,context){var html=[],contextParam=context?"&context="+context:"";item.AlbumArtists?html.push(libraryBrowser.getArtistLinksHtml(item.AlbumArtists,"detailPageParentLink")):item.ArtistItems&&item.ArtistItems.length&&"MusicVideo"==item.Type?html.push(libraryBrowser.getArtistLinksHtml(item.ArtistItems,"detailPageParentLink")):item.SeriesName&&"Episode"==item.Type&&html.push(''+item.SeriesName+""),item.SeriesName&&"Season"==item.Type?html.push(''+item.SeriesName+""):null!=item.ParentIndexNumber&&"Episode"==item.Type?html.push(''+item.SeasonName+""):item.Album&&"Audio"==item.Type&&(item.AlbumId||item.ParentId)?html.push(''+item.Album+""):item.Album&&"MusicVideo"==item.Type&&item.AlbumId?html.push(''+item.Album+""):item.Album?html.push(item.Album):(item.IsSeries||item.EpisodeTitle)&&html.push(item.Name),html.length?(parentNameElem.classList.remove("hide"),parentNameElem.innerHTML=html.join(" - ")):parentNameElem.classList.add("hide")},showLayoutMenu:function(button,currentLayout,views){var dispatchEvent=!0;views||(dispatchEvent=!1,views=button.getAttribute("data-layouts"),views=views?views.split(","):["List","Poster","PosterCard","Thumb","ThumbCard"]);var menuItems=views.map(function(v){return{name:Globalize.translate("Option"+v),id:v,selected:currentLayout==v}});require(["actionsheet"],function(actionsheet){actionsheet.show({items:menuItems,positionTo:button,callback:function(id){button.dispatchEvent(new CustomEvent("layoutchange",{detail:{viewStyle:id},bubbles:!0,cancelable:!1})),dispatchEvent||window.$&&$(button).trigger("layoutchange",[id])}})})},getQueryPagingHtml:function(options){var startIndex=options.startIndex,limit=options.limit,totalRecordCount=options.totalRecordCount;if(limit&&options.updatePageSizeSetting!==!1)try{appSettings.set(options.pageSizeKey||pageSizeKey,limit)}catch(e){}var html="",recordsEnd=Math.min(startIndex+limit,totalRecordCount),showControls=totalRecordCount>20||limit',showControls){html+='';var startAtDisplay=totalRecordCount?startIndex+1:0;html+=startAtDisplay+"-"+recordsEnd+" of "+totalRecordCount,html+=""}if((showControls||options.viewButton||options.filterButton||options.sortButton||options.addLayoutButton)&&(html+='
',showControls&&(html+='',html+=''),options.addLayoutButton&&(html+=''),options.sortButton&&(html+=''),options.filterButton&&(html+=''),html+="
",showControls&&options.showLimit)){var id="selectPageSize",pageSizes=options.pageSizes||[20,50,100,200,300,400,500],optionsHtml=pageSizes.map(function(val){return limit==val?'":'"}).join("");html+='
"}return html+=""},showSortMenu:function(options){require(["dialogHelper","emby-radio"],function(dialogHelper){function onSortByChange(){var newValue=this.value;if(this.checked){var changed=options.query.SortBy!=newValue;options.query.SortBy=newValue.replace("_",","),options.query.StartIndex=0,options.callback&&changed&&options.callback()}}function onSortOrderChange(){var newValue=this.value;if(this.checked){var changed=options.query.SortOrder!=newValue;options.query.SortOrder=newValue,options.query.StartIndex=0,options.callback&&changed&&options.callback()}}var dlg=dialogHelper.createDialog({removeOnClose:!0,modal:!1,entryAnimationDuration:160,exitAnimationDuration:200});dlg.classList.add("ui-body-a"),dlg.classList.add("background-theme-a"),dlg.classList.add("formDialog");var html="";html+='
',html+='

',html+=Globalize.translate("HeaderSortBy"),html+="

";var i,length,isChecked;for(html+="
",i=0,length=options.items.length;i"+option.name+""}html+="
",html+='

',html+=Globalize.translate("HeaderSortOrder"),html+="

",html+="
",isChecked="Ascending"==options.query.SortOrder?" checked":"",html+='",isChecked="Descending"==options.query.SortOrder?" checked":"",html+='",html+="
",html+="
",dlg.innerHTML=html,dialogHelper.open(dlg);var sortBys=dlg.querySelectorAll(".menuSortBy");for(i=0,length=sortBys.length;i',editable&&(html+=""),detectRatio&&item.PrimaryImageAspectRatio&&(item.PrimaryImageAspectRatio>=1.48?shape="thumb":item.PrimaryImageAspectRatio>=.85&&item.PrimaryImageAspectRatio<=1.34&&(shape="square")),html+="",editable&&(html+="");var progressHtml=item.IsFolder||!item.UserData?"":indicators.getProgressBarHtml(item);if(html+='
',progressHtml&&(html+=progressHtml),html+="
",html+="",elem.innerHTML=html,"thumb"==shape?(elem.classList.add("thumbDetailImageContainer"),elem.classList.remove("portraitDetailImageContainer"),elem.classList.remove("squareDetailImageContainer")):"square"==shape?(elem.classList.remove("thumbDetailImageContainer"),elem.classList.remove("portraitDetailImageContainer"),elem.classList.add("squareDetailImageContainer")):(elem.classList.remove("thumbDetailImageContainer"),elem.classList.add("portraitDetailImageContainer"),elem.classList.remove("squareDetailImageContainer")),url){var img=elem.querySelector("img");img.onload=function(){img.src.indexOf("empty.png")==-1&&img.classList.add("loaded")},imageLoader.lazyImage(img,url)}},renderDetailPageBackdrop:function(page,item,imageLoader,indicators){var imgUrl,screenWidth=screen.availWidth,hasbackdrop=!1,itemBackdropElement=page.querySelector("#itemBackdrop"),usePrimaryImage="Video"===item.MediaType&&"Movie"!==item.Type&&"Trailer"!==item.Type||item.MediaType&&"Video"!==item.MediaType,useThumbImage=!1;usePrimaryImage&&item.ImageTags&&item.ImageTags.Primary?(imgUrl=ApiClient.getScaledImageUrl(item.Id,{type:"Primary",index:0,maxWidth:screenWidth,tag:item.ImageTags.Primary}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):useThumbImage&&item.ImageTags&&item.ImageTags.Thumb?(imgUrl=ApiClient.getScaledImageUrl(item.Id,{type:"Thumb",index:0,maxWidth:screenWidth,tag:item.ImageTags.Thumb}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):item.BackdropImageTags&&item.BackdropImageTags.length?(imgUrl=ApiClient.getScaledImageUrl(item.Id,{type:"Backdrop",index:0,maxWidth:screenWidth,tag:item.BackdropImageTags[0]}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):item.ParentBackdropItemId&&item.ParentBackdropImageTags&&item.ParentBackdropImageTags.length?(imgUrl=ApiClient.getScaledImageUrl(item.ParentBackdropItemId,{type:"Backdrop",index:0,tag:item.ParentBackdropImageTags[0],maxWidth:screenWidth}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):item.ImageTags&&item.ImageTags.Thumb?(imgUrl=ApiClient.getScaledImageUrl(item.Id,{type:"Thumb",index:0,maxWidth:screenWidth,tag:item.ImageTags.Thumb}),itemBackdropElement.classList.remove("noBackdrop"),imageLoader.lazyImage(itemBackdropElement,imgUrl,!1),hasbackdrop=!0):(itemBackdropElement.classList.add("noBackdrop"),itemBackdropElement.style.backgroundImage="");var progress=itemBackdropElement.querySelector(".itemBackdropProgress");if(progress&&progress.parentNode.removeChild(progress),usePrimaryImage){var progressHtml=indicators.getProgressBarHtml(item,{containerClass:"itemBackdropProgressBar"});progressHtml&&itemBackdropElement.insertAdjacentHTML("beforeend",progressHtml)}return hasbackdrop}};return window.LibraryBrowser=libraryBrowser,libraryBrowser}); \ No newline at end of file diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index cee9bdaa25..ce9e3b7564 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -1 +1 @@ -define(["layoutManager","events","viewManager","libraryBrowser","embyRouter","apphost","playbackManager","browser","paper-icon-button-light","material-icons","scrollStyles","flexStyles"],function(layoutManager,events,viewManager,libraryBrowser,embyRouter,appHost,playbackManager,browser){"use strict";function renderHeader(){var html="";html+='
',html+='
';var backIcon=browser.safari?"chevron_left":"";html+='",html+='',html+='',html+='

',html+="
",html+='
',html+='',html+='',html+='',html+='',html+='',layoutManager.mobile||(html+=''),html+="
",html+="
",html+='
',html+="
",skinHeader.innerHTML=html,btnHome=skinHeader.querySelector(".headerAppsButton"),browser.chrome||skinHeader.classList.add("skinHeader-blurred"),lazyLoadViewMenuBarImages(),bindMenuEvents()}function lazyLoadViewMenuBarImages(){require(["imageLoader"],function(imageLoader){imageLoader.lazyChildren(skinHeader)})}function onBackClick(){embyRouter.back()}function updateUserInHeader(user){var hasImage,headerUserButton=skinHeader.querySelector(".headerUserButton");if(user&&user.name&&user.imageUrl){var userButtonHeight=26,url=user.imageUrl;user.supportsImageParams&&(url+="&height="+Math.round(userButtonHeight*Math.max(window.devicePixelRatio||1,2))),headerUserButton&&(updateHeaderUserButton(headerUserButton,url),hasImage=!0)}headerUserButton&&!hasImage&&updateHeaderUserButton(headerUserButton,null),user&&updateLocalUser(user.localUser),requiresUserRefresh=!1}function updateHeaderUserButton(headerUserButton,src){src?(headerUserButton.classList.add("headerUserButtonRound"),headerUserButton.classList.remove("autoSize"),headerUserButton.innerHTML=''):(headerUserButton.classList.remove("headerUserButtonRound"),headerUserButton.classList.add("autoSize"),headerUserButton.innerHTML='person')}function updateLocalUser(user){var headerSearchButton=skinHeader.querySelector(".headerSearchButton"),btnCast=skinHeader.querySelector(".btnCast"),dashboardEntryHeaderButton=skinHeader.querySelector(".dashboardEntryHeaderButton");user?(btnCast.classList.remove("hide"),headerSearchButton&&headerSearchButton.classList.remove("hide"),dashboardEntryHeaderButton&&(user.Policy.IsAdministrator?dashboardEntryHeaderButton.classList.remove("hide"):dashboardEntryHeaderButton.classList.add("hide"))):(btnCast.classList.add("hide"),headerSearchButton&&headerSearchButton.classList.add("hide"),dashboardEntryHeaderButton&&dashboardEntryHeaderButton.classList.add("hide"))}function showSearch(){Dashboard.navigate("search.html")}function onHeaderUserButtonClick(e){Dashboard.showUserFlyout(e.target)}function onHeaderAppsButtonClick(){Dashboard.navigate("home.html")}function bindMenuEvents(){mainDrawerButton=document.querySelector(".mainDrawerButton"),mainDrawerButton&&mainDrawerButton.addEventListener("click",toggleMainDrawer);var headerBackButton=document.querySelector(".headerBackButton");headerBackButton&&headerBackButton.addEventListener("click",onBackClick);var headerSearchButton=document.querySelector(".headerSearchButton");headerSearchButton&&headerSearchButton.addEventListener("click",showSearch);var headerUserButton=document.querySelector(".headerUserButton");headerUserButton&&headerUserButton.addEventListener("click",onHeaderUserButtonClick);var headerAppsButton=document.querySelector(".headerAppsButton");headerAppsButton&&headerAppsButton.addEventListener("click",onHeaderAppsButtonClick),initHeadRoom(skinHeader),skinHeader.querySelector(".btnNotifications").addEventListener("click",function(){Dashboard.navigate("notificationlist.html")});var btnCast=document.querySelector(".headerButton-btnCast");btnCast&&btnCast.addEventListener("click",onCastButtonClicked)}function onCastButtonClicked(){var btn=this;require(["playerSelectionMenu"],function(playerSelectionMenu){playerSelectionMenu.show(btn)})}function getItemHref(item,context){return embyRouter.getRouteUrl(item,{context:context})}function toggleMainDrawer(){navDrawerInstance.isVisible?closeMainDrawer():openMainDrawer()}function openMainDrawer(){navDrawerInstance.open(),lastOpenTime=(new Date).getTime()}function onMainDrawerOpened(){layoutManager.mobile&&document.body.classList.add("bodyWithPopupOpen")}function closeMainDrawer(){navDrawerInstance.close()}function onMainDrawerSelect(e){navDrawerInstance.isVisible?onMainDrawerOpened():document.body.classList.remove("bodyWithPopupOpen")}function refreshLibraryInfoInDrawer(user,drawer){var html="";html+='
';var homeHref=window.ApiClient?"home.html":"selectserver.html?showuser=1";html+=''+Globalize.translate("ButtonHome")+"",html+=''+Globalize.translate("ButtonRemote")+"",html+='
',html+='
',html+="
";var localUser=user.localUser;localUser&&localUser.Policy.IsAdministrator&&(html+='
',html+='
',html+='
',html+=Globalize.translate("HeaderAdmin"),html+="
",html+=''+Globalize.translate("ButtonManageServer")+"",html+=''+Globalize.translate("MetadataManager")+"",layoutManager.mobile||(html+=''+Globalize.translate("ButtonReports")+""),html+="
"),html+='",navDrawerScrollContainer.innerHTML=html;var lnkManageServer=navDrawerScrollContainer.querySelector(".lnkManageServer");lnkManageServer&&lnkManageServer.addEventListener("click",onManageServerClicked)}function refreshDashboardInfoInDrawer(page,user){loadNavDrawer(),navDrawerScrollContainer.querySelector(".adminDrawerLogo")?updateDashboardMenuSelectedItem():createDashboardMenu(page)}function updateDashboardMenuSelectedItem(){for(var links=navDrawerScrollContainer.querySelectorAll(".sidebarLink"),i=0,length=links.length;i',html+=Globalize.translate("HeaderMedia"),html+="",html+=items.map(function(i){var icon="folder",color="inherit",itemId=i.Id;"channels"==i.CollectionType?itemId="channels":"livetv"==i.CollectionType&&(itemId="livetv"),"photos"==i.CollectionType?(icon="photo_library",color="#009688"):"music"==i.CollectionType||"musicvideos"==i.CollectionType?(icon="library_music",color="#FB8521"):"books"==i.CollectionType?(icon="library_books",color="#1AA1E1"):"playlists"==i.CollectionType?(icon="view_list",color="#795548"):"games"==i.CollectionType?(icon="games",color="#F44336"):"movies"==i.CollectionType?(icon="video_library",color="#CE5043"):"channels"==i.CollectionType||"Channel"==i.Type?(icon="videocam",color="#E91E63"):"tvshows"==i.CollectionType?(icon="tv",color="#4CAF50"):"livetv"==i.CollectionType&&(icon="live_tv",color="#293AAE"),icon=i.icon||icon;var onclick=i.onclick?" function(){"+i.onclick+"}":"null";return''+icon+''+i.Name+""}).join(""),libraryMenuOptions.innerHTML=html;for(var elem=libraryMenuOptions,sidebarLinks=elem.querySelectorAll(".sidebarLink"),i=0,length=sidebarLinks.length;i200&&setTimeout(function(){closeMainDrawer(),setTimeout(function(){action?action():Dashboard.navigate(link.href)},getNavigateDelay())},50),event.stopPropagation(),event.preventDefault(),!1)},onLogoutClicked:function(){return(new Date).getTime()-lastOpenTime>200&&(closeMainDrawer(),setTimeout(function(){Dashboard.logout()},getNavigateDelay())),!1},onHardwareMenuButtonClick:function(){toggleMainDrawer()},onSettingsClicked:function(event){return 1!=event.which||(Dashboard.navigate("dashboard.html"),!1)},setTabs:function(type,selectedIndex,builder){require(["mainTabsManager"],function(mainTabsManager){type?mainTabsManager.setTabs(viewManager.currentView(),selectedIndex,builder):mainTabsManager.setTabs(null)})},setDefaultTitle:function(){var libraryMenuButtonText=document.querySelector(".libraryMenuButtonText");libraryMenuButtonText&&(libraryMenuButtonText.innerHTML=''),document.title="Emby"},setTitle:function(title){var html=title,page=viewManager.currentView();if(page){var helpUrl=page.getAttribute("data-helpurl");helpUrl&&(html+='info'+Globalize.translate("ButtonHelp")+"")}var libraryMenuButtonText=document.querySelector(".libraryMenuButtonText");libraryMenuButtonText&&(libraryMenuButtonText.innerHTML=html),document.title=title||"Emby"},setTransparentMenu:function(transparent){transparent?skinHeader.classList.add("semiTransparent"):skinHeader.classList.remove("semiTransparent")}},pageClassOn("pagebeforeshow","page",function(e){var page=this;page.classList.contains("withTabs")||LibraryMenu.setTabs(null)}),pageClassOn("pageshow","page",function(e){var page=this;btnHome&&("indexPage"===page.id?btnHome.classList.add("hide"):btnHome.classList.remove("hide"));var isDashboardPage=page.classList.contains("type-interior");isDashboardPage?(mainDrawerButton&&mainDrawerButton.classList.remove("hide"),refreshDashboardInfoInDrawer(page)):(mainDrawerButton&&(enableLibraryNavDrawer?mainDrawerButton.classList.remove("hide"):mainDrawerButton.classList.add("hide")),(navDrawerElement&&navDrawerElement.classList.contains("adminDrawer")||!navDrawerElement)&&refreshLibraryDrawer()),setDrawerClass(page),updateViewMenuBar(page),e.detail.isRestored||window.scrollTo(0,0),updateTitle(page),updateBackButton(page),page.classList.contains("libraryPage")?(document.body.classList.add("libraryDocument"),document.body.classList.remove("dashboardDocument"),document.body.classList.remove("hideMainDrawer"),navDrawerInstance&&navDrawerInstance.setEdgeSwipeEnabled(!1)):isDashboardPage?(document.body.classList.remove("libraryDocument"),document.body.classList.add("dashboardDocument"),document.body.classList.remove("hideMainDrawer"),navDrawerInstance&&navDrawerInstance.setEdgeSwipeEnabled(!0)):(document.body.classList.remove("libraryDocument"),document.body.classList.remove("dashboardDocument"),document.body.classList.add("hideMainDrawer"),navDrawerInstance&&navDrawerInstance.setEdgeSwipeEnabled(!1)),updateLibraryNavLinks(page)}),window.ApiClient&&initializeApiClient(window.ApiClient),renderHeader(),events.on(ConnectionManager,"apiclientcreated",function(e,apiClient){initializeApiClient(apiClient)}),events.on(ConnectionManager,"localusersignedin",function(e,user){setDrawerClass(),ConnectionManager.user(ConnectionManager.getApiClient(user.ServerId)).then(function(user){refreshLibraryDrawer(user),updateUserInHeader(user)})}),events.on(ConnectionManager,"localusersignedout",updateUserInHeader),events.on(playbackManager,"playerchange",updateCastIcon),setDrawerClass(),LibraryMenu}); \ No newline at end of file +define(["layoutManager","events","viewManager","libraryBrowser","embyRouter","apphost","playbackManager","browser","paper-icon-button-light","material-icons","scrollStyles","flexStyles"],function(layoutManager,events,viewManager,libraryBrowser,embyRouter,appHost,playbackManager,browser){"use strict";function renderHeader(){var html="";html+='
',html+='
';var backIcon=browser.safari?"chevron_left":"";html+='",html+='',html+='',html+='

',html+="
",html+='
',html+='',html+='',html+='',html+='',html+='',layoutManager.mobile||(html+=''),html+="
",html+="
",html+='
',html+="
",skinHeader.innerHTML=html,btnHome=skinHeader.querySelector(".headerAppsButton"),browser.chrome||skinHeader.classList.add("skinHeader-blurred"),lazyLoadViewMenuBarImages(),bindMenuEvents()}function lazyLoadViewMenuBarImages(){require(["imageLoader"],function(imageLoader){imageLoader.lazyChildren(skinHeader)})}function onBackClick(){embyRouter.back()}function updateUserInHeader(user){var hasImage,headerUserButton=skinHeader.querySelector(".headerUserButton");if(user&&user.name&&user.imageUrl){var userButtonHeight=26,url=user.imageUrl;user.supportsImageParams&&(url+="&height="+Math.round(userButtonHeight*Math.max(window.devicePixelRatio||1,2))),headerUserButton&&(updateHeaderUserButton(headerUserButton,url),hasImage=!0)}headerUserButton&&!hasImage&&updateHeaderUserButton(headerUserButton,null),user&&updateLocalUser(user.localUser),requiresUserRefresh=!1}function updateHeaderUserButton(headerUserButton,src){src?(headerUserButton.classList.add("headerUserButtonRound"),headerUserButton.classList.remove("autoSize"),headerUserButton.innerHTML=''):(headerUserButton.classList.remove("headerUserButtonRound"),headerUserButton.classList.add("autoSize"),headerUserButton.innerHTML='person')}function updateLocalUser(user){var headerSearchButton=skinHeader.querySelector(".headerSearchButton"),btnCast=skinHeader.querySelector(".btnCast"),dashboardEntryHeaderButton=skinHeader.querySelector(".dashboardEntryHeaderButton");user?(btnCast.classList.remove("hide"),headerSearchButton&&headerSearchButton.classList.remove("hide"),dashboardEntryHeaderButton&&(user.Policy.IsAdministrator?dashboardEntryHeaderButton.classList.remove("hide"):dashboardEntryHeaderButton.classList.add("hide"))):(btnCast.classList.add("hide"),headerSearchButton&&headerSearchButton.classList.add("hide"),dashboardEntryHeaderButton&&dashboardEntryHeaderButton.classList.add("hide"))}function showSearch(){Dashboard.navigate("search.html")}function onHeaderUserButtonClick(e){Dashboard.showUserFlyout(e.target)}function onHeaderAppsButtonClick(){Dashboard.navigate("home.html")}function bindMenuEvents(){mainDrawerButton=document.querySelector(".mainDrawerButton"),mainDrawerButton&&mainDrawerButton.addEventListener("click",toggleMainDrawer);var headerBackButton=document.querySelector(".headerBackButton");headerBackButton&&headerBackButton.addEventListener("click",onBackClick);var headerSearchButton=document.querySelector(".headerSearchButton");headerSearchButton&&headerSearchButton.addEventListener("click",showSearch);var headerUserButton=document.querySelector(".headerUserButton");headerUserButton&&headerUserButton.addEventListener("click",onHeaderUserButtonClick);var headerAppsButton=document.querySelector(".headerAppsButton");headerAppsButton&&headerAppsButton.addEventListener("click",onHeaderAppsButtonClick),initHeadRoom(skinHeader),skinHeader.querySelector(".btnNotifications").addEventListener("click",function(){Dashboard.navigate("notificationlist.html")});var btnCast=document.querySelector(".headerButton-btnCast");btnCast&&btnCast.addEventListener("click",onCastButtonClicked)}function onCastButtonClicked(){var btn=this;require(["playerSelectionMenu"],function(playerSelectionMenu){playerSelectionMenu.show(btn)})}function getItemHref(item,context){return embyRouter.getRouteUrl(item,{context:context})}function toggleMainDrawer(){navDrawerInstance.isVisible?closeMainDrawer():openMainDrawer()}function openMainDrawer(){navDrawerInstance.open(),lastOpenTime=(new Date).getTime()}function onMainDrawerOpened(){layoutManager.mobile&&document.body.classList.add("bodyWithPopupOpen")}function closeMainDrawer(){navDrawerInstance.close()}function onMainDrawerSelect(e){navDrawerInstance.isVisible?onMainDrawerOpened():document.body.classList.remove("bodyWithPopupOpen")}function refreshLibraryInfoInDrawer(user,drawer){var html="";html+='
';var homeHref=window.ApiClient?"home.html":"selectserver.html?showuser=1";html+=''+Globalize.translate("ButtonHome")+"",html+='
',html+='
',html+="
";var localUser=user.localUser;localUser&&localUser.Policy.IsAdministrator&&(html+='
',html+='
',html+='
',html+=Globalize.translate("HeaderAdmin"),html+="
",html+=''+Globalize.translate("ButtonManageServer")+"",html+=''+Globalize.translate("MetadataManager")+"",layoutManager.mobile||(html+=''+Globalize.translate("ButtonReports")+""),html+="
"),html+='",navDrawerScrollContainer.innerHTML=html;var lnkManageServer=navDrawerScrollContainer.querySelector(".lnkManageServer");lnkManageServer&&lnkManageServer.addEventListener("click",onManageServerClicked)}function refreshDashboardInfoInDrawer(page,user){loadNavDrawer(),navDrawerScrollContainer.querySelector(".adminDrawerLogo")?updateDashboardMenuSelectedItem():createDashboardMenu(page)}function updateDashboardMenuSelectedItem(){for(var links=navDrawerScrollContainer.querySelectorAll(".sidebarLink"),i=0,length=links.length;i',html+=Globalize.translate("HeaderMedia"),html+="",html+=items.map(function(i){var icon="folder",color="inherit",itemId=i.Id;"channels"==i.CollectionType?itemId="channels":"livetv"==i.CollectionType&&(itemId="livetv"),"photos"==i.CollectionType?(icon="photo_library",color="#009688"):"music"==i.CollectionType||"musicvideos"==i.CollectionType?(icon="library_music",color="#FB8521"):"books"==i.CollectionType?(icon="library_books",color="#1AA1E1"):"playlists"==i.CollectionType?(icon="view_list",color="#795548"):"games"==i.CollectionType?(icon="games",color="#F44336"):"movies"==i.CollectionType?(icon="video_library",color="#CE5043"):"channels"==i.CollectionType||"Channel"==i.Type?(icon="videocam",color="#E91E63"):"tvshows"==i.CollectionType?(icon="tv",color="#4CAF50"):"livetv"==i.CollectionType&&(icon="live_tv",color="#293AAE"),icon=i.icon||icon;var onclick=i.onclick?" function(){"+i.onclick+"}":"null";return''+icon+''+i.Name+""}).join(""),libraryMenuOptions.innerHTML=html;for(var elem=libraryMenuOptions,sidebarLinks=elem.querySelectorAll(".sidebarLink"),i=0,length=sidebarLinks.length;i200&&setTimeout(function(){closeMainDrawer(),setTimeout(function(){action?action():Dashboard.navigate(link.href)},getNavigateDelay())},50),event.stopPropagation(),event.preventDefault(),!1)},onLogoutClicked:function(){return(new Date).getTime()-lastOpenTime>200&&(closeMainDrawer(),setTimeout(function(){Dashboard.logout()},getNavigateDelay())),!1},onHardwareMenuButtonClick:function(){toggleMainDrawer()},onSettingsClicked:function(event){return 1!=event.which||(Dashboard.navigate("dashboard.html"),!1)},setTabs:function(type,selectedIndex,builder){require(["mainTabsManager"],function(mainTabsManager){type?mainTabsManager.setTabs(viewManager.currentView(),selectedIndex,builder):mainTabsManager.setTabs(null)})},setDefaultTitle:function(){var libraryMenuButtonText=document.querySelector(".libraryMenuButtonText");libraryMenuButtonText&&(libraryMenuButtonText.innerHTML=''),document.title="Emby"},setTitle:function(title){var html=title,page=viewManager.currentView();if(page){var helpUrl=page.getAttribute("data-helpurl");helpUrl&&(html+='info'+Globalize.translate("ButtonHelp")+"")}var libraryMenuButtonText=document.querySelector(".libraryMenuButtonText");libraryMenuButtonText&&(libraryMenuButtonText.innerHTML=html),document.title=title||"Emby"},setTransparentMenu:function(transparent){transparent?skinHeader.classList.add("semiTransparent"):skinHeader.classList.remove("semiTransparent")}},pageClassOn("pagebeforeshow","page",function(e){var page=this;page.classList.contains("withTabs")||LibraryMenu.setTabs(null)}),pageClassOn("pageshow","page",function(e){var page=this;btnHome&&("indexPage"===page.id?btnHome.classList.add("hide"):btnHome.classList.remove("hide"));var isDashboardPage=page.classList.contains("type-interior");isDashboardPage?(mainDrawerButton&&mainDrawerButton.classList.remove("hide"),refreshDashboardInfoInDrawer(page)):(mainDrawerButton&&(enableLibraryNavDrawer?mainDrawerButton.classList.remove("hide"):mainDrawerButton.classList.add("hide")),(navDrawerElement&&navDrawerElement.classList.contains("adminDrawer")||!navDrawerElement)&&refreshLibraryDrawer()),setDrawerClass(page),updateViewMenuBar(page),e.detail.isRestored||window.scrollTo(0,0),updateTitle(page),updateBackButton(page),page.classList.contains("libraryPage")?(document.body.classList.add("libraryDocument"),document.body.classList.remove("dashboardDocument"),document.body.classList.remove("hideMainDrawer"),navDrawerInstance&&navDrawerInstance.setEdgeSwipeEnabled(!1)):isDashboardPage?(document.body.classList.remove("libraryDocument"),document.body.classList.add("dashboardDocument"),document.body.classList.remove("hideMainDrawer"),navDrawerInstance&&navDrawerInstance.setEdgeSwipeEnabled(!0)):(document.body.classList.remove("libraryDocument"),document.body.classList.remove("dashboardDocument"),document.body.classList.add("hideMainDrawer"),navDrawerInstance&&navDrawerInstance.setEdgeSwipeEnabled(!1)),updateLibraryNavLinks(page)}),window.ApiClient&&initializeApiClient(window.ApiClient),renderHeader(),events.on(ConnectionManager,"apiclientcreated",function(e,apiClient){initializeApiClient(apiClient)}),events.on(ConnectionManager,"localusersignedin",function(e,user){setDrawerClass(),ConnectionManager.user(ConnectionManager.getApiClient(user.ServerId)).then(function(user){refreshLibraryDrawer(user),updateUserInHeader(user)})}),events.on(ConnectionManager,"localusersignedout",updateUserInHeader),events.on(playbackManager,"playerchange",updateCastIcon),setDrawerClass(),LibraryMenu}); \ No newline at end of file diff --git a/dashboard-ui/scripts/nowplayingbar.js b/dashboard-ui/scripts/nowplayingbar.js deleted file mode 100644 index 49130a8fd9..0000000000 --- a/dashboard-ui/scripts/nowplayingbar.js +++ /dev/null @@ -1 +0,0 @@ -define(["datetime","userdataButtons","itemHelper","events","browser","imageLoader","playbackManager","nowPlayingHelper","apphost","dom","connectionManager","paper-icon-button-light"],function(datetime,userdataButtons,itemHelper,events,browser,imageLoader,playbackManager,nowPlayingHelper,appHost,dom,connectionManager){"use strict";function getNowPlayingBarHtml(){var html="";return html+='
',html+='
',html+='
',html+='',html+="
",html+='
',html+='
',html+='
',html+="
",html+='
',html+='',html+='',html+='',html+='',html+='
',html+="
",html+='
',html+='',html+='
',html+='',html+="
",html+='',html+='
',html+="
",html+='',html+='',html+="
",html+="
",html+="
"}function onSlideDownComplete(){this.classList.add("hide")}function slideDown(elem){void elem.offsetWidth,requestAnimationFrame(function(){elem.classList.add("nowPlayingBar-hidden"),dom.addEventListener(elem,dom.whichTransitionEvent(),onSlideDownComplete,{once:!0})})}function slideUp(elem){setTimeout(function(){dom.removeEventListener(elem,dom.whichTransitionEvent(),onSlideDownComplete,{once:!0}),elem.classList.remove("hide"),void elem.offsetWidth,requestAnimationFrame(function(){elem.classList.remove("nowPlayingBar-hidden")})},10)}function onPlayPauseClick(){playbackManager.playPause(currentPlayer)}function bindEvents(elem){currentTimeElement=elem.querySelector(".nowPlayingBarCurrentTime"),nowPlayingImageElement=elem.querySelector(".nowPlayingImage"),nowPlayingTextElement=elem.querySelector(".nowPlayingBarText"),nowPlayingUserData=elem.querySelector(".nowPlayingBarUserDataButtons"),muteButton=elem.querySelector(".muteButton"),muteButton.addEventListener("click",function(){currentPlayer&&playbackManager.toggleMute(currentPlayer)}),elem.querySelector(".stopButton").addEventListener("click",function(){currentPlayer&&playbackManager.stop(currentPlayer)});var i,length;for(playPauseButtons=elem.querySelectorAll(".playPauseButton"),i=0,length=playPauseButtons.length;i';return html+=text,html+=""}function seriesImageUrl(item,options){if(!item)throw new Error("item cannot be null!");if("Episode"!==item.Type)return null;if(options=options||{},options.type=options.type||"Primary","Primary"===options.type&&item.SeriesPrimaryImageTag)return options.tag=item.SeriesPrimaryImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId,options);if("Thumb"===options.type){if(item.SeriesThumbImageTag)return options.tag=item.SeriesThumbImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId,options);if(item.ParentThumbImageTag)return options.tag=item.ParentThumbImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.ParentThumbItemId,options)}return null}function imageUrl(item,options){if(!item)throw new Error("item cannot be null!");return options=options||{},options.type=options.type||"Primary",item.ImageTags&&item.ImageTags[options.type]?(options.tag=item.ImageTags[options.type],connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.PrimaryImageItemId||item.Id,options)):item.AlbumId&&item.AlbumPrimaryImageTag?(options.tag=item.AlbumPrimaryImageTag,connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.AlbumId,options)):null}function updateNowPlayingInfo(state){var nowPlayingItem=state.NowPlayingItem;nowPlayingTextElement.innerHTML=nowPlayingItem?nowPlayingHelper.getNowPlayingNames(nowPlayingItem).map(function(nowPlayingName){return nowPlayingName.item?"
"+getTextActionButton(nowPlayingName.item,nowPlayingName.text)+"
":"
"+nowPlayingName.text+"
"}).join(""):"";var imgHeight=70,url=nowPlayingItem?seriesImageUrl(nowPlayingItem,{height:imgHeight})||imageUrl(nowPlayingItem,{height:imgHeight}):null,isRefreshing=!1;url!==currentImgUrl&&(currentImgUrl=url,isRefreshing=!0,imageLoader.lazyImage(nowPlayingImageElement,url)),nowPlayingItem.Id?isRefreshing&&ApiClient.getItem(ApiClient.getCurrentUserId(),nowPlayingItem.Id).then(function(item){userdataButtons.fill({item:item,includePlayed:!1,element:nowPlayingUserData})}):userdataButtons.destroy({element:nowPlayingUserData})}function onPlaybackStart(e,state){var player=this;onStateChanged.call(player,e,state)}function onRepeatModeChange(e){var player=this;updateRepeatModeDisplay(playbackManager.getRepeatMode(player))}function showNowPlayingBar(){getNowPlayingBar().then(slideUp)}function hideNowPlayingBar(){isEnabled=!1;var elem=document.getElementsByClassName("nowPlayingBar")[0];elem&&(document.body.classList.contains("hiddenNowPlayingBar")?(dom.removeEventListener(elem,dom.whichTransitionEvent(),onSlideDownComplete,{once:!0}),elem.classList.add("hide"),elem.classList.add("nowPlayingBar-hidden")):slideDown(elem))}function onPlaybackStopped(e,state){var player=this;player.isLocalPlayer?"Audio"!==state.NextMediaType&&hideNowPlayingBar():state.NextMediaType||hideNowPlayingBar()}function onPlayPauseStateChanged(e){if(isEnabled){var player=this;updatePlayPauseState(player.paused())}}function onStateChanged(event,state){var player=this;return state.NowPlayingItem?player.isLocalPlayer&&state.NowPlayingItem&&"Video"==state.NowPlayingItem.MediaType?void hideNowPlayingBar():(isEnabled=!0,nowPlayingBarElement?void updatePlayerStateInternal(event,state):void getNowPlayingBar().then(function(){updatePlayerStateInternal(event,state)})):void hideNowPlayingBar()}function onTimeUpdate(e){if(isEnabled){var now=(new Date).getTime();if(!(now-lastUpdateTime<700)){lastUpdateTime=now;var player=this;currentRuntimeTicks=playbackManager.duration(player),updateTimeDisplay(playbackManager.currentTime(player),currentRuntimeTicks)}}}function releaseCurrentPlayer(){var player=currentPlayer;player&&(events.off(player,"playbackstart",onPlaybackStart),events.off(player,"statechange",onPlaybackStart),events.off(player,"repeatmodechange",onRepeatModeChange),events.off(player,"playbackstop",onPlaybackStopped),events.off(player,"volumechange",onVolumeChanged),events.off(player,"pause",onPlayPauseStateChanged),events.off(player,"unpause",onPlayPauseStateChanged),events.off(player,"timeupdate",onTimeUpdate),currentPlayer=null,hideNowPlayingBar())}function onVolumeChanged(e){if(isEnabled){var player=this;updatePlayerVolumeState(player.isMuted(),player.getVolume())}}function bindToPlayer(player){player!==currentPlayer&&(releaseCurrentPlayer(),currentPlayer=player,player&&(playbackManager.getPlayerState(player).then(function(state){onStateChanged.call(player,{type:"init"},state)}),events.on(player,"playbackstart",onPlaybackStart),events.on(player,"statechange",onPlaybackStart),events.on(player,"repeatmodechange",onRepeatModeChange),events.on(player,"playbackstop",onPlaybackStopped),events.on(player,"volumechange",onVolumeChanged),events.on(player,"pause",onPlayPauseStateChanged),events.on(player,"unpause",onPlayPauseStateChanged),events.on(player,"timeupdate",onTimeUpdate)))}var currentPlayer,currentTimeElement,nowPlayingImageElement,nowPlayingTextElement,nowPlayingUserData,muteButton,volumeSlider,volumeSliderContainer,playPauseButtons,positionSlider,toggleRepeatButton,toggleRepeatButtonIcon,isEnabled,nowPlayingBarElement,currentImgUrl,currentPlayerSupportedCommands=[],lastUpdateTime=0,lastPlayerState={},currentRuntimeTicks=0;events.on(playbackManager,"playerchange",function(){bindToPlayer(playbackManager.getCurrentPlayer())}),bindToPlayer(playbackManager.getCurrentPlayer())}); \ No newline at end of file diff --git a/dashboard-ui/scripts/nowplayingpage.js b/dashboard-ui/scripts/nowplayingpage.js index caea403b42..37fea174f9 100644 --- a/dashboard-ui/scripts/nowplayingpage.js +++ b/dashboard-ui/scripts/nowplayingpage.js @@ -1 +1 @@ -define(["components/remotecontrol","emby-button"],function(remotecontrolFactory){"use strict";return function(view,params){var remoteControl=new remotecontrolFactory;remoteControl.init(view,view.querySelector(".remoteControlContent")),view.addEventListener("viewbeforeshow",function(e){document.body.classList.add("hiddenViewMenuBar"),document.body.classList.add("hiddenNowPlayingBar"),remoteControl&&remoteControl.onShow()}),view.addEventListener("viewbeforehide",function(e){remoteControl&&remoteControl.destroy(),document.body.classList.remove("hiddenViewMenuBar"),document.body.classList.remove("hiddenNowPlayingBar")})}}); \ No newline at end of file +define(["components/remotecontrol","emby-button"],function(remotecontrolFactory){"use strict";return function(view,params){var remoteControl=new remotecontrolFactory;remoteControl.init(view,view.querySelector(".remoteControlContent")),view.addEventListener("viewbeforeshow",function(e){document.body.classList.add("hiddenViewMenuBar"),remoteControl&&remoteControl.onShow()}),view.addEventListener("viewbeforehide",function(e){remoteControl&&remoteControl.destroy(),document.body.classList.remove("hiddenViewMenuBar")})}}); \ No newline at end of file diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 9ebe30c18d..0110bcb75a 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1,2 +1,3 @@ function getWindowLocationSearch(win){"use strict";var search=(win||window).location.search;if(!search){var index=window.location.href.indexOf("?");index!=-1&&(search=window.location.href.substring(index))}return search||""}function getParameterByName(name,url){"use strict";name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regexS="[\\?&]"+name+"=([^&#]*)",regex=new RegExp(regexS,"i"),results=regex.exec(url||getWindowLocationSearch());return null==results?"":decodeURIComponent(results[1].replace(/\+/g," "))}function pageClassOn(eventName,className,fn){"use strict";document.addEventListener(eventName,function(e){var target=e.target;target.classList.contains(className)&&fn.call(target,e)})}function pageIdOn(eventName,id,fn){"use strict";document.addEventListener(eventName,function(e){var target=e.target;target.id==id&&fn.call(target,e)})}var Dashboard={isConnectMode:function(){if(AppInfo.isNativeApp)return!0;var url=window.location.href.toLowerCase();return url.indexOf("mediabrowser.tv")!=-1||url.indexOf("emby.media")!=-1},isRunningInCordova:function(){return"cordova"==window.appMode},onRequestFail:function(e,data){if(401==data.status&&"ParentalControl"==data.errorCode){var currentView=ViewManager.currentView();currentView&&!currentView.classList.contains(".standalonePage")&&Dashboard.alert({message:Globalize.translate("MessageLoggedOutParentalControl"),callback:function(){Dashboard.logout(!1)}})}},getCurrentUser:function(){return window.ApiClient.getCurrentUser()},serverAddress:function(){if(Dashboard.isConnectMode()){var apiClient=window.ApiClient;return apiClient?apiClient.serverAddress():null}var urlLower=window.location.href.toLowerCase(),index=urlLower.lastIndexOf("/web");if(index!=-1)return urlLower.substring(0,index);var loc=window.location,address=loc.protocol+"//"+loc.hostname;return loc.port&&(address+=":"+loc.port),address},getCurrentUserId:function(){var apiClient=window.ApiClient;return apiClient?apiClient.getCurrentUserId():null},onServerChanged:function(userId,accessToken,apiClient){apiClient=apiClient||window.ApiClient,window.ApiClient=apiClient},logout:function(logoutWithServer){function onLogoutDone(){var loginPage;Dashboard.isConnectMode()?(loginPage="connectlogin.html",window.ApiClient=null):loginPage="login.html",Dashboard.navigate(loginPage)}logoutWithServer===!1?onLogoutDone():ConnectionManager.logout().then(onLogoutDone)},getConfigurationPageUrl:function(name){return"configurationpage?name="+encodeURIComponent(name)},navigate:function(url,preserveQueryString){if(!url)throw new Error("url cannot be null or empty");var queryString=getWindowLocationSearch();return preserveQueryString&&queryString&&(url+=queryString),new Promise(function(resolve,reject){require(["embyRouter"],function(embyRouter){return embyRouter.show(url).then(resolve,reject)})})},processPluginConfigurationUpdateResult:function(){require(["loading","toast"],function(loading,toast){loading.hide(),toast(Globalize.translate("MessageSettingsSaved"))})},processServerConfigurationUpdateResult:function(result){require(["loading","toast"],function(loading,toast){loading.hide(),toast(Globalize.translate("MessageSettingsSaved"))})},processErrorResponse:function(response){require(["loading"],function(loading){loading.hide()});var status=""+response.status;response.statusText&&(status=response.statusText),Dashboard.alert({title:status,message:response.headers?response.headers.get("X-Application-Error-Code"):null})},alert:function(options){return"string"==typeof options?void require(["toast"],function(toast){toast({text:options})}):void require(["alert"],function(alert){alert({title:options.title||Globalize.translate("HeaderAlert"),text:options.message}).then(options.callback||function(){})})},restartServer:function(){var apiClient=window.ApiClient;apiClient&&(Dashboard.suppressAjaxErrors=!0,require(["loading"],function(loading){loading.show()}),apiClient.restartServer().then(function(){setTimeout(function(){Dashboard.reloadPageWhenServerAvailable()},250)},function(){Dashboard.suppressAjaxErrors=!1}))},reloadPageWhenServerAvailable:function(retryCount){var apiClient=window.ApiClient;apiClient&&apiClient.getJSON(apiClient.getUrl("System/Info")).then(function(info){info.HasPendingRestart?Dashboard.retryReload(retryCount):window.location.reload(!0)},function(){Dashboard.retryReload(retryCount)})},retryReload:function(retryCount){setTimeout(function(){retryCount=retryCount||0,retryCount++,retryCount<10?Dashboard.reloadPageWhenServerAvailable(retryCount):Dashboard.suppressAjaxErrors=!1},500)},showUserFlyout:function(){Dashboard.navigate("mypreferencesmenu.html")},getPluginSecurityInfo:function(){var apiClient=window.ApiClient;if(!apiClient)return Promise.reject();var cachedInfo=Dashboard.pluginSecurityInfo;return cachedInfo?Promise.resolve(cachedInfo):apiClient.ajax({type:"GET",url:apiClient.getUrl("Plugins/SecurityInfo"),dataType:"json",error:function(){}}).then(function(result){return Dashboard.pluginSecurityInfo=result,result})},resetPluginSecurityInfo:function(){Dashboard.pluginSecurityInfo=null},ensureHeader:function(page){page.classList.contains("standalonePage")&&!page.classList.contains("noHeaderPage")&&Dashboard.renderHeader(page)},renderHeader:function(page){var header=page.querySelector(".header");if(!header){var headerHtml="";headerHtml+='",page.insertAdjacentHTML("afterbegin",headerHtml)}},getToolsLinkHtml:function(item){var menuHtml="",pageIds=item.pageIds?item.pageIds.join(","):"";return pageIds=pageIds?' data-pageids="'+pageIds+'"':"",menuHtml+='",item.icon&&(menuHtml+=''+item.icon+""),menuHtml+='',menuHtml+=item.name,menuHtml+="",menuHtml+=""},getToolsMenuHtml:function(page){var i,length,item,items=Dashboard.getToolsMenuLinks(page),menuHtml="";for(menuHtml+='
',i=0,length=items.length;i
"),item.href?menuHtml+=Dashboard.getToolsLinkHtml(item):(menuHtml+='
',menuHtml+=item.name,menuHtml+="
");return menuHtml+=""},getToolsMenuLinks:function(){return[{name:Globalize.translate("TabServer")},{name:Globalize.translate("TabDashboard"),href:"dashboard.html",pageIds:["dashboardPage"],icon:"dashboard"},{name:Globalize.translate("TabSettings"),href:"dashboardgeneral.html",pageIds:["dashboardGeneralPage"],icon:"settings"},{name:Globalize.translate("TabDevices"),href:"devices.html",pageIds:["devicesPage","devicePage","devicesUploadPage"],icon:"tablet"},{name:Globalize.translate("TabUsers"),href:"userprofiles.html",pageIds:["userProfilesPage","newUserPage","editUserPage","userLibraryAccessPage","userParentalControlPage","userPasswordPage"],icon:"people"},{name:"Emby Premiere",href:"supporterkey.html",pageIds:["supporterKeyPage"],icon:"star"},{divider:!0,name:Globalize.translate("TabLibrary"),href:"library.html",pageIds:["mediaLibraryPage","librarySettingsPage","libraryDisplayPage","metadataImagesConfigurationPage","metadataNfoPage"],icon:"folder",color:"#38c"},{name:Globalize.translate("TabSubtitles"),href:"metadatasubtitles.html",pageIds:["metadataSubtitlesPage"],icon:"closed_caption"},{name:Globalize.translate("TabPlayback"),icon:"play_circle_filled",color:"#E5342E",href:"cinemamodeconfiguration.html",pageIds:["cinemaModeConfigurationPage","playbackConfigurationPage","streamingSettingsPage"]},{name:Globalize.translate("TabSync"),icon:"sync",href:"syncactivity.html",pageIds:["syncActivityPage","syncJobPage","syncSettingsPage"],color:"#009688"},{name:Globalize.translate("TabTranscoding"),icon:"transform",href:"encodingsettings.html",pageIds:["encodingSettingsPage"]},{divider:!0,name:Globalize.translate("TabExtras")},{name:Globalize.translate("TabAutoOrganize"),color:"#01C0DD",href:"autoorganizelog.html",pageIds:["libraryFileOrganizerPage","libraryFileOrganizerSmartMatchPage","libraryFileOrganizerLogPage"],icon:"folder"},{name:Globalize.translate("DLNA"),href:"dlnasettings.html",pageIds:["dlnaSettingsPage","dlnaProfilesPage","dlnaProfilePage"],icon:"settings"},{name:Globalize.translate("TabLiveTV"),href:"livetvstatus.html",pageIds:["liveTvStatusPage","liveTvSettingsPage","liveTvTunerPage"],icon:"dvr"},{name:Globalize.translate("TabNotifications"),icon:"notifications",color:"brown",href:"notificationsettings.html",pageIds:["notificationSettingsPage","notificationSettingPage"]},{name:Globalize.translate("TabPlugins"),icon:"add_shopping_cart",color:"#9D22B1",href:"plugins.html",pageIds:["pluginsPage","pluginCatalogPage"]},{divider:!0,name:Globalize.translate("TabExpert")},{name:Globalize.translate("TabAdvanced"),icon:"settings",href:"dashboardhosting.html",color:"#F16834",pageIds:["dashboardHostingPage","serverSecurityPage"]},{name:Globalize.translate("TabLogs"),href:"log.html",pageIds:["logPage"],icon:"folder_open"},{name:Globalize.translate("TabScheduledTasks"),href:"scheduledtasks.html",pageIds:["scheduledTasksPage","scheduledTaskPage"],icon:"schedule"},{name:Globalize.translate("MetadataManager"),href:"edititemmetadata.html",pageIds:[],icon:"mode_edit"},{name:Globalize.translate("ButtonReports"),href:"reports.html",pageIds:[],icon:"insert_chart"}]},getSupportedRemoteCommands:function(){return["GoHome","GoToSettings","VolumeUp","VolumeDown","Mute","Unmute","ToggleMute","SetVolume","SetAudioStreamIndex","SetSubtitleStreamIndex","DisplayContent","GoToSearch","DisplayMessage","SetRepeatMode"]},capabilities:function(){var caps={PlayableMediaTypes:["Audio","Video"],SupportedCommands:Dashboard.getSupportedRemoteCommands(),SupportsPersistentIdentifier:Dashboard.isRunningInCordova(),SupportsMediaControl:!0,SupportedLiveMediaTypes:["Audio","Video"]};return Dashboard.isRunningInCordova()&&!browserInfo.safari&&(caps.SupportsSync=!0,caps.SupportsContentUploading=!0),caps},normalizeImageOptions:function(options){var setQuality;if(options.maxWidth&&(setQuality=!0),options.width&&(setQuality=!0),options.maxHeight&&(setQuality=!0),options.height&&(setQuality=!0),setQuality){var quality=90,isBackdrop="backdrop"==(options.type||"").toLowerCase();isBackdrop&&(quality-=10),browserInfo.slow&&(quality-=40),AppInfo.hasLowImageBandwidth&&!isBackdrop&&(quality-=10),options.quality=quality}}},AppInfo={};!function(){"use strict";function setAppInfo(){var isCordova=Dashboard.isRunningInCordova();AppInfo.enableAutoSave=browserInfo.touch,AppInfo.enableAppStorePolicy=isCordova,browserInfo.iOS&&(AppInfo.hasLowImageBandwidth=!0),isCordova?(AppInfo.isNativeApp=!0,browserInfo.android&&(AppInfo.supportsExternalPlayers=!0)):AppInfo.enableSupporterMembership=!0,AppInfo.supportsFileInput=!(AppInfo.isNativeApp&&browserInfo.android),AppInfo.supportsUserDisplayLanguageSetting=Dashboard.isConnectMode()}function initializeApiClient(apiClient){AppInfo.enableAppStorePolicy&&(apiClient.getAvailablePlugins=function(){return Promise.resolve([])},apiClient.getInstalledPlugins=function(){return Promise.resolve([])}),apiClient.normalizeImageOptions=Dashboard.normalizeImageOptions,Events.off(apiClient,"requestfail",Dashboard.onRequestFail),Events.on(apiClient,"requestfail",Dashboard.onRequestFail)}function onApiClientCreated(e,newApiClient){initializeApiClient(newApiClient),window.$&&($.ajax=newApiClient.ajax),require(["globalize"],function(globalize){newApiClient.downloadsTitleText=globalize.translate("sharedcomponents#Downloads")})}function defineConnectionManager(connectionManager){window.ConnectionManager=connectionManager,define("connectionManager",[],function(){return connectionManager})}function bindConnectionManagerEvents(connectionManager,events,userSettings){window.Events=events,events.on(ConnectionManager,"apiclientcreated",onApiClientCreated),connectionManager.currentApiClient=function(){if(!localApiClient){var server=connectionManager.getLastUsedServer();server&&(localApiClient=connectionManager.getApiClient(server.Id))}return localApiClient},connectionManager.onLocalUserSignedIn=function(user){return localApiClient=connectionManager.getApiClient(user.ServerId),window.ApiClient=localApiClient,userSettings.setUserInfo(user.Id,localApiClient)},events.on(connectionManager,"localusersignedout",function(){userSettings.setUserInfo(null,null)})}function createConnectionManager(){return new Promise(function(resolve,reject){require(["connectionManagerFactory","apphost","credentialprovider","events","userSettings"],function(connectionManagerExports,apphost,credentialProvider,events,userSettings){window.MediaBrowser=Object.assign(window.MediaBrowser||{},connectionManagerExports);var credentialProviderInstance=new credentialProvider,promises=[apphost.getSyncProfile(),apphost.appInfo()];Promise.all(promises).then(function(responses){var deviceProfile=responses[0],appInfo=responses[1],capabilities=Dashboard.capabilities();capabilities.DeviceProfile=deviceProfile;var connectionManager=new MediaBrowser.ConnectionManager(credentialProviderInstance,appInfo.appName,appInfo.appVersion,appInfo.deviceName,appInfo.deviceId,capabilities,window.devicePixelRatio);return defineConnectionManager(connectionManager),bindConnectionManagerEvents(connectionManager,events,userSettings),Dashboard.isConnectMode()?void resolve():(console.log("loading ApiClient singleton"),getRequirePromise(["apiclient"]).then(function(apiClientFactory){console.log("creating ApiClient singleton");var apiClient=new apiClientFactory(Dashboard.serverAddress(),appInfo.appName,appInfo.appVersion,appInfo.deviceName,appInfo.deviceId,window.devicePixelRatio);apiClient.enableAutomaticNetworking=!1,connectionManager.addApiClient(apiClient),require(["css!"+apiClient.getUrl("Branding/Css")]),window.ApiClient=apiClient,localApiClient=apiClient,console.log("loaded ApiClient singleton"),resolve()}))})})})}function setDocumentClasses(browser){var elem=document.documentElement;AppInfo.enableSupporterMembership||elem.classList.add("supporterMembershipDisabled")}function loadTheme(){var name=getParameterByName("theme");if(name)return void require(["themes/"+name+"/theme"]);if(!AppInfo.isNativeApp){var date=new Date,month=date.getMonth(),day=date.getDate();return 9==month&&day>=30?void require(["themes/halloween/theme"]):void 0}}function returnFirstDependency(obj){return obj}function getBowerPath(){return"bower_components"}function getLayoutManager(layoutManager,appHost){return appHost.getDefaultLayout&&(layoutManager.defaultLayout=appHost.getDefaultLayout()),layoutManager.init(),layoutManager}function getAppStorage(basePath){try{return localStorage.setItem("_test","0"),localStorage.removeItem("_test"),basePath+"/appstorage-localstorage"}catch(e){return basePath+"/appstorage-memory"}}function createWindowHeadroom(Headroom){var headroom=new Headroom([],{});return headroom.init(),headroom}function getCastSenderApiLoader(){var ccLoaded=!1;return{load:function(){return ccLoaded?Promise.resolve():new Promise(function(resolve,reject){var fileref=document.createElement("script");fileref.setAttribute("type","text/javascript"),fileref.onload=function(){ccLoaded=!0,resolve()},fileref.setAttribute("src","https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"),document.querySelector("head").appendChild(fileref)})}}}function getDummyCastSenderApiLoader(){return{load:function(){return window.chrome=window.chrome||{},Promise.resolve()}}}function createSharedAppFooter(appFooter){var footer=new appFooter({});return footer}function onRequireJsError(requireType,requireModules){console.log("RequireJS error: "+(requireType||"unknown")+". Failed modules: "+(requireModules||[]).join(","))}function initRequire(){var urlArgs="v="+(window.dashboardVersion||(new Date).getDate()),bowerPath=getBowerPath(),apiClientBowerPath=bowerPath+"/emby-apiclient",embyWebComponentsBowerPath=bowerPath+"/emby-webcomponents",paths={velocity:bowerPath+"/velocity/velocity.min",vibrant:bowerPath+"/vibrant/dist/vibrant",staticBackdrops:embyWebComponentsBowerPath+"/staticbackdrops",ironCardList:"components/ironcardlist/ironcardlist",scrollThreshold:"components/scrollthreshold",playlisteditor:"components/playlisteditor/playlisteditor",medialibrarycreator:"components/medialibrarycreator/medialibrarycreator",medialibraryeditor:"components/medialibraryeditor/medialibraryeditor",howler:bowerPath+"/howlerjs/howler.min",sortable:bowerPath+"/Sortable/Sortable.min",isMobile:bowerPath+"/isMobile/isMobile.min",masonry:bowerPath+"/masonry/dist/masonry.pkgd.min",humanedate:"components/humanedate",libraryBrowser:"scripts/librarybrowser",chromecasthelpers:"components/chromecasthelpers",events:apiClientBowerPath+"/events",credentialprovider:apiClientBowerPath+"/credentials",connectionManagerFactory:bowerPath+"/emby-apiclient/connectionmanager",visibleinviewport:embyWebComponentsBowerPath+"/visibleinviewport",browserdeviceprofile:embyWebComponentsBowerPath+"/browserdeviceprofile",browser:embyWebComponentsBowerPath+"/browser",inputManager:embyWebComponentsBowerPath+"/inputmanager",qualityoptions:embyWebComponentsBowerPath+"/qualityoptions",hammer:bowerPath+"/hammerjs/hammer.min",pageJs:embyWebComponentsBowerPath+"/pagejs/page",focusManager:embyWebComponentsBowerPath+"/focusmanager",datetime:embyWebComponentsBowerPath+"/datetime",globalize:embyWebComponentsBowerPath+"/globalize",itemHelper:embyWebComponentsBowerPath+"/itemhelper",itemShortcuts:embyWebComponentsBowerPath+"/shortcuts",serverNotifications:embyWebComponentsBowerPath+"/servernotifications",playbackManager:embyWebComponentsBowerPath+"/playback/playbackmanager",playQueueManager:embyWebComponentsBowerPath+"/playback/playqueuemanager",autoPlayDetect:embyWebComponentsBowerPath+"/playback/autoplaydetect",nowPlayingHelper:embyWebComponentsBowerPath+"/playback/nowplayinghelper",pluginManager:embyWebComponentsBowerPath+"/pluginmanager",packageManager:embyWebComponentsBowerPath+"/packagemanager"};paths.hlsjs=bowerPath+"/hlsjs/dist/hls.min",define("mediaSession",[embyWebComponentsBowerPath+"/playback/mediasession"],returnFirstDependency),define("webActionSheet",[embyWebComponentsBowerPath+"/actionsheet/actionsheet"],returnFirstDependency),Dashboard.isRunningInCordova()?paths.sharingMenu="cordova/sharingwidget":define("sharingMenu",[embyWebComponentsBowerPath+"/sharing/sharingmenu"],returnFirstDependency),paths.wakeonlan=apiClientBowerPath+"/wakeonlan",define("libjass",[bowerPath+"/libjass/libjass.min","css!"+bowerPath+"/libjass/libjass"],returnFirstDependency),window.IntersectionObserver?define("lazyLoader",[embyWebComponentsBowerPath+"/lazyloader/lazyloader-intersectionobserver"],returnFirstDependency):define("lazyLoader",[embyWebComponentsBowerPath+"/lazyloader/lazyloader-scroll"],returnFirstDependency),define("tunerPicker",["components/tunerpicker"],returnFirstDependency),define("mainTabsManager",["components/maintabsmanager"],returnFirstDependency),define("imageLoader",[embyWebComponentsBowerPath+"/images/imagehelper"],returnFirstDependency),define("appFooter",[embyWebComponentsBowerPath+"/appfooter/appfooter"],returnFirstDependency),define("directorybrowser",["components/directorybrowser/directorybrowser"],returnFirstDependency),define("metadataEditor",[embyWebComponentsBowerPath+"/metadataeditor/metadataeditor"],returnFirstDependency),define("personEditor",[embyWebComponentsBowerPath+"/metadataeditor/personeditor"],returnFirstDependency),define("playerSelectionMenu",[embyWebComponentsBowerPath+"/playback/playerselection"],returnFirstDependency),define("playerSettingsMenu",[embyWebComponentsBowerPath+"/playback/playersettingsmenu"],returnFirstDependency),define("brightnessOsd",[embyWebComponentsBowerPath+"/playback/brightnessosd"],returnFirstDependency),define("libraryMenu",["scripts/librarymenu"],returnFirstDependency),define("emby-collapse",[embyWebComponentsBowerPath+"/emby-collapse/emby-collapse"],returnFirstDependency),define("emby-button",[embyWebComponentsBowerPath+"/emby-button/emby-button"],returnFirstDependency),define("emby-linkbutton",["emby-button"],returnFirstDependency),define("emby-itemscontainer",[embyWebComponentsBowerPath+"/emby-itemscontainer/emby-itemscontainer"],returnFirstDependency),define("emby-scroller",[embyWebComponentsBowerPath+"/emby-scroller/emby-scroller"],returnFirstDependency),define("emby-tabs",[embyWebComponentsBowerPath+"/emby-tabs/emby-tabs"],returnFirstDependency),define("itemHoverMenu",[embyWebComponentsBowerPath+"/itemhovermenu/itemhovermenu"],returnFirstDependency),define("multiSelect",[embyWebComponentsBowerPath+"/multiselect/multiselect"],returnFirstDependency),define("alphaPicker",[embyWebComponentsBowerPath+"/alphapicker/alphapicker"],returnFirstDependency),define("paper-icon-button-light",[embyWebComponentsBowerPath+"/emby-button/paper-icon-button-light"],returnFirstDependency),define("connectHelper",[embyWebComponentsBowerPath+"/emby-connect/connecthelper"],returnFirstDependency),define("emby-input",[embyWebComponentsBowerPath+"/emby-input/emby-input"],returnFirstDependency),define("emby-select",[embyWebComponentsBowerPath+"/emby-select/emby-select"],returnFirstDependency),define("emby-slider",[embyWebComponentsBowerPath+"/emby-slider/emby-slider"],returnFirstDependency),define("emby-checkbox",[embyWebComponentsBowerPath+"/emby-checkbox/emby-checkbox"],returnFirstDependency),define("emby-radio",[embyWebComponentsBowerPath+"/emby-radio/emby-radio"],returnFirstDependency),define("emby-textarea",[embyWebComponentsBowerPath+"/emby-textarea/emby-textarea"],returnFirstDependency),define("collectionEditor",[embyWebComponentsBowerPath+"/collectioneditor/collectioneditor"],returnFirstDependency),define("playlistEditor",[embyWebComponentsBowerPath+"/playlisteditor/playlisteditor"],returnFirstDependency),define("recordingCreator",[embyWebComponentsBowerPath+"/recordingcreator/recordingcreator"],returnFirstDependency),define("recordingEditor",[embyWebComponentsBowerPath+"/recordingcreator/recordingeditor"],returnFirstDependency),define("seriesRecordingEditor",[embyWebComponentsBowerPath+"/recordingcreator/seriesrecordingeditor"],returnFirstDependency),define("recordingFields",[embyWebComponentsBowerPath+"/recordingcreator/recordingfields"],returnFirstDependency),define("recordingButton",[embyWebComponentsBowerPath+"/recordingcreator/recordingbutton"],returnFirstDependency),define("recordingHelper",[embyWebComponentsBowerPath+"/recordingcreator/recordinghelper"],returnFirstDependency),define("subtitleEditor",[embyWebComponentsBowerPath+"/subtitleeditor/subtitleeditor"],returnFirstDependency),define("itemIdentifier",[embyWebComponentsBowerPath+"/itemidentifier/itemidentifier"],returnFirstDependency),define("mediaInfo",[embyWebComponentsBowerPath+"/mediainfo/mediainfo"],returnFirstDependency),define("itemContextMenu",[embyWebComponentsBowerPath+"/itemcontextmenu"],returnFirstDependency),define("imageEditor",[embyWebComponentsBowerPath+"/imageeditor/imageeditor"],returnFirstDependency),define("dom",[embyWebComponentsBowerPath+"/dom"],returnFirstDependency),define("searchFields",[embyWebComponentsBowerPath+"/search/searchfields"],returnFirstDependency),define("searchResults",[embyWebComponentsBowerPath+"/search/searchresults"],returnFirstDependency),define("fullscreen-doubleclick",[embyWebComponentsBowerPath+"/fullscreen/fullscreen-doubleclick"],returnFirstDependency),define("fullscreenManager",[embyWebComponentsBowerPath+"/fullscreen/fullscreenmanager","events"],returnFirstDependency),define("headroom",[embyWebComponentsBowerPath+"/headroom/headroom"],returnFirstDependency),define("homescreenSettings",[embyWebComponentsBowerPath+"/homescreensettings/homescreensettings"],returnFirstDependency),define("homescreenSettingsDialog",[embyWebComponentsBowerPath+"/homescreensettings/homescreensettingsdialog"],returnFirstDependency),define("layoutManager",[embyWebComponentsBowerPath+"/layoutmanager","apphost"],getLayoutManager),define("homeSections",[embyWebComponentsBowerPath+"/homesections"],returnFirstDependency),define("playMenu",[embyWebComponentsBowerPath+"/playmenu"],returnFirstDependency),define("refreshDialog",[embyWebComponentsBowerPath+"/refreshdialog/refreshdialog"],returnFirstDependency),define("backdrop",[embyWebComponentsBowerPath+"/backdrop/backdrop"],returnFirstDependency),define("fetchHelper",[embyWebComponentsBowerPath+"/fetchhelper"],returnFirstDependency),define("roundCardStyle",["cardStyle","css!"+embyWebComponentsBowerPath+"/cardbuilder/roundcard"],returnFirstDependency),define("cardStyle",["css!"+embyWebComponentsBowerPath+"/cardbuilder/card"],returnFirstDependency),define("cardBuilder",[embyWebComponentsBowerPath+"/cardbuilder/cardbuilder"],returnFirstDependency),define("peoplecardbuilder",[embyWebComponentsBowerPath+"/cardbuilder/peoplecardbuilder"],returnFirstDependency),define("chaptercardbuilder",[embyWebComponentsBowerPath+"/cardbuilder/chaptercardbuilder"],returnFirstDependency),define("mouseManager",[embyWebComponentsBowerPath+"/input/mouse"],returnFirstDependency),define("flexStyles",["css!"+embyWebComponentsBowerPath+"/flexstyles"],returnFirstDependency),define("deleteHelper",[embyWebComponentsBowerPath+"/deletehelper"],returnFirstDependency),define("tvguide",[embyWebComponentsBowerPath+"/guide/guide"],returnFirstDependency),define("programStyles",["css!"+embyWebComponentsBowerPath+"/guide/programs"],returnFirstDependency),define("guide-settings-dialog",[embyWebComponentsBowerPath+"/guide/guide-settings"],returnFirstDependency),define("syncDialog",[embyWebComponentsBowerPath+"/sync/sync"],returnFirstDependency),define("syncToggle",[embyWebComponentsBowerPath+"/sync/synctoggle"],returnFirstDependency),define("syncJobEditor",[embyWebComponentsBowerPath+"/sync/syncjobeditor"],returnFirstDependency),define("syncJobList",[embyWebComponentsBowerPath+"/sync/syncjoblist"],returnFirstDependency),define("voiceDialog",[embyWebComponentsBowerPath+"/voice/voicedialog"],returnFirstDependency),define("voiceReceiver",[embyWebComponentsBowerPath+"/voice/voicereceiver"],returnFirstDependency),define("voiceProcessor",[embyWebComponentsBowerPath+"/voice/voiceprocessor"],returnFirstDependency),define("viewManager",[embyWebComponentsBowerPath+"/viewmanager/viewmanager"],function(viewManager){return window.ViewManager=viewManager,viewManager.dispatchPageEvents(!0),viewManager}),Dashboard.isRunningInCordova()&&window.MainActivity?define("shell",["cordova/shell"],returnFirstDependency):define("shell",[embyWebComponentsBowerPath+"/shell"],returnFirstDependency),define("sharingmanager",[embyWebComponentsBowerPath+"/sharing/sharingmanager"],returnFirstDependency),Dashboard.isRunningInCordova()?paths.apphost="cordova/apphost":paths.apphost="components/apphost",Dashboard.isRunningInCordova()&&window.MainActivity?(paths.appStorage="cordova/appstorage",paths.filesystem="cordova/filesystem"):(paths.appStorage=getAppStorage(apiClientBowerPath),paths.filesystem=embyWebComponentsBowerPath+"/filesystem");var sha1Path=bowerPath+"/cryptojslib/components/sha1-min",md5Path=bowerPath+"/cryptojslib/components/md5-min",shim={};shim[sha1Path]={deps:[bowerPath+"/cryptojslib/components/core-min"]},shim[md5Path]={deps:[bowerPath+"/cryptojslib/components/core-min"]},requirejs.config({waitSeconds:0,map:{"*":{css:bowerPath+"/emby-webcomponents/require/requirecss",html:bowerPath+"/emby-webcomponents/require/requirehtml",text:bowerPath+"/emby-webcomponents/require/requiretext"}},urlArgs:urlArgs,paths:paths,shim:shim,onError:onRequireJsError}),requirejs.onError=onRequireJsError,define("cryptojs-sha1",[sha1Path],returnFirstDependency),define("cryptojs-md5",[md5Path],returnFirstDependency),define("jstree",[bowerPath+"/jstree/dist/jstree","css!thirdparty/jstree/themes/default/style.min.css"],returnFirstDependency),define("dashboardcss",["css!css/dashboard"],returnFirstDependency),define("jqmtable",["thirdparty/jquerymobile-1.4.5/jqm.table","css!thirdparty/jquerymobile-1.4.5/jqm.table.css"],returnFirstDependency),define("jqmwidget",["thirdparty/jquerymobile-1.4.5/jqm.widget"],returnFirstDependency),define("jqmslider",["thirdparty/jquerymobile-1.4.5/jqm.slider","css!thirdparty/jquerymobile-1.4.5/jqm.slider.css"],returnFirstDependency),define("jqmpopup",["thirdparty/jquerymobile-1.4.5/jqm.popup","css!thirdparty/jquerymobile-1.4.5/jqm.popup.css"],returnFirstDependency),define("jqmlistview",["css!thirdparty/jquerymobile-1.4.5/jqm.listview.css"],returnFirstDependency),define("jqmpanel",["thirdparty/jquerymobile-1.4.5/jqm.panel","css!thirdparty/jquerymobile-1.4.5/jqm.panel.css"],returnFirstDependency),define("slideshow",[embyWebComponentsBowerPath+"/slideshow/slideshow"],returnFirstDependency),define("fetch",[bowerPath+"/fetch/fetch"],returnFirstDependency),define("raf",[embyWebComponentsBowerPath+"/polyfills/raf"],returnFirstDependency),define("functionbind",[embyWebComponentsBowerPath+"/polyfills/bind"],returnFirstDependency),define("arraypolyfills",[embyWebComponentsBowerPath+"/polyfills/array"],returnFirstDependency),define("objectassign",[embyWebComponentsBowerPath+"/polyfills/objectassign"],returnFirstDependency),define("clearButtonStyle",["css!"+embyWebComponentsBowerPath+"/clearbutton"],returnFirstDependency),define("userdataButtons",[embyWebComponentsBowerPath+"/userdatabuttons/userdatabuttons"],returnFirstDependency),define("listView",[embyWebComponentsBowerPath+"/listview/listview"],returnFirstDependency),define("listViewStyle",["css!"+embyWebComponentsBowerPath+"/listview/listview"],returnFirstDependency),define("formDialogStyle",["css!"+embyWebComponentsBowerPath+"/formdialog"],returnFirstDependency),define("indicators",[embyWebComponentsBowerPath+"/indicators/indicators"],returnFirstDependency),define("registrationServices",[embyWebComponentsBowerPath+"/registrationservices/registrationservices"],returnFirstDependency),Dashboard.isRunningInCordova()?(define("iapManager",["cordova/iap"],returnFirstDependency),define("fileupload",["cordova/fileupload"],returnFirstDependency)):(define("iapManager",["components/iap"],returnFirstDependency),define("fileupload",[apiClientBowerPath+"/fileupload"],returnFirstDependency)),define("connectionmanager",[apiClientBowerPath+"/connectionmanager"]),define("cameraRoll",[apiClientBowerPath+"/cameraroll"],returnFirstDependency),define("contentuploader",[apiClientBowerPath+"/sync/contentuploader"],returnFirstDependency),define("serversync",[apiClientBowerPath+"/sync/serversync"],returnFirstDependency),define("multiserversync",[apiClientBowerPath+"/sync/multiserversync"],returnFirstDependency),define("mediasync",[apiClientBowerPath+"/sync/mediasync"],returnFirstDependency),define("idb",[embyWebComponentsBowerPath+"/idb"],returnFirstDependency),define("itemrepository",[apiClientBowerPath+"/sync/itemrepository"],returnFirstDependency),define("useractionrepository",[apiClientBowerPath+"/sync/useractionrepository"],returnFirstDependency),self.Windows?(define("bgtaskregister",["environments/windows-uwp/bgtaskregister"],returnFirstDependency),define("transfermanager",["environments/windows-uwp/transfermanager"],returnFirstDependency),define("filerepository",["environments/windows-uwp/filerepository"],returnFirstDependency)):(define("transfermanager",[apiClientBowerPath+"/sync/transfermanager"],returnFirstDependency),define("filerepository",[apiClientBowerPath+"/sync/filerepository"],returnFirstDependency)),define("swiper",[bowerPath+"/Swiper/dist/js/swiper.min","css!"+bowerPath+"/Swiper/dist/css/swiper.min"],returnFirstDependency),define("scroller",[embyWebComponentsBowerPath+"/scroller/smoothscroller"],returnFirstDependency),define("toast",[embyWebComponentsBowerPath+"/toast/toast"],returnFirstDependency),define("scrollHelper",[embyWebComponentsBowerPath+"/scrollhelper"],returnFirstDependency), -define("touchHelper",[embyWebComponentsBowerPath+"/touchhelper"],returnFirstDependency),define("appSettings",[embyWebComponentsBowerPath+"/appsettings"],updateAppSettings),define("userSettings",[embyWebComponentsBowerPath+"/usersettings/usersettings"],returnFirstDependency),define("userSettingsBuilder",[embyWebComponentsBowerPath+"/usersettings/usersettingsbuilder"],returnFirstDependency),define("material-icons",["css!"+embyWebComponentsBowerPath+"/fonts/material-icons/style"],returnFirstDependency),define("robotoFont",["css!fonts/roboto/style"],returnFirstDependency),define("scrollStyles",["css!"+embyWebComponentsBowerPath+"/scrollstyles"],returnFirstDependency),define("navdrawer",["components/navdrawer/navdrawer"],returnFirstDependency),define("viewcontainer",["components/viewcontainer-lite","css!"+embyWebComponentsBowerPath+"/viewmanager/viewcontainer-lite"],returnFirstDependency),define("queryString",[bowerPath+"/query-string/index"],function(){return queryString}),define("jQuery",[bowerPath+"/jquery/dist/jquery.slim.min"],function(){return window.ApiClient&&(jQuery.ajax=ApiClient.ajax),jQuery}),define("fnchecked",["legacy/fnchecked"],returnFirstDependency),define("dialogHelper",[embyWebComponentsBowerPath+"/dialoghelper/dialoghelper"],function(dialoghelper){return dialoghelper.setOnOpen(onDialogOpen),dialoghelper}),define("inputmanager",["inputManager"],returnFirstDependency),define("historyManager",["embyRouter"],returnFirstDependency),define("headroom-window",["headroom"],createWindowHeadroom),define("appFooter-shared",["appFooter"],createSharedAppFooter),define("skinManager",[],function(){return{loadUserSkin:function(){require(["embyRouter"],function(embyRouter){embyRouter.goHome()})}}}),define("connectionManager",[],function(){return ConnectionManager}),define("apiClientResolver",[],function(){return function(){return window.ApiClient}}),define("embyRouter",[embyWebComponentsBowerPath+"/router"],function(embyRouter){function showItem(item,serverId,options){"string"==typeof item?require(["connectionManager"],function(connectionManager){var apiClient=connectionManager.currentApiClient();apiClient.getItem(apiClient.getCurrentUserId(),item).then(function(item){embyRouter.showItem(item,options)})}):(2==arguments.length&&(options=arguments[1]),embyRouter.show("/"+embyRouter.getRouteUrl(item,options),{item:item}))}return embyRouter.showLocalLogin=function(apiClient,serverId,manualLogin){Dashboard.navigate("login.html?serverid="+serverId)},embyRouter.showVideoOsd=function(){return Dashboard.navigate("videoosd.html")},embyRouter.showSelectServer=function(){Dashboard.isConnectMode()?Dashboard.navigate("selectserver.html"):Dashboard.navigate("login.html")},embyRouter.showWelcome=function(){Dashboard.isConnectMode()?Dashboard.navigate("connectlogin.html?mode=welcome"):Dashboard.navigate("login.html")},embyRouter.showSettings=function(){Dashboard.navigate("mypreferencesmenu.html")},embyRouter.showGuide=function(){Dashboard.navigate("livetv.html?tab=1")},embyRouter.goHome=function(){Dashboard.navigate("home.html")},embyRouter.showSearch=function(){Dashboard.navigate("search.html")},embyRouter.showLiveTV=function(){Dashboard.navigate("livetv.html")},embyRouter.showRecordedTV=function(){Dashboard.navigate("livetv.html?tab=3")},embyRouter.showFavorites=function(){Dashboard.navigate("home.html?tab=1")},embyRouter.showSettings=function(){Dashboard.navigate("mypreferencesmenu.html")},embyRouter.setTitle=function(title){LibraryMenu.setTitle(title)},embyRouter.getRouteUrl=function(item,options){if(!item)throw new Error("item cannot be null");if(item.url)return item.url;var context=options?options.context:null,topParentId=options?options.topParentId||options.parentId:null;if("string"==typeof item){if("nextup"===item)return"secondaryitems.html?type=nextup&serverId="+options.serverId;if("livetv"===item)return"guide"===options.section?"livetv.html?tab=1&serverId="+options.serverId:"livetv.html?serverId="+options.serverId}var url,id=item.Id||item.ItemId,itemType=item.Type||(options?options.itemType:null);if("SeriesTimer"==itemType)return"itemdetails.html?seriesTimerId="+id;if("livetv"==item.CollectionType)return"livetv.html";if("channels"==item.CollectionType)return"channels.html";if("folders"!=context){if("movies"==item.CollectionType)return url="movies.html?topParentId="+item.Id,options&&"latest"===options.section&&(url+="&tab=1"),url;if("boxsets"==item.CollectionType)return"itemlist.html?topParentId="+item.Id+"&parentId="+item.Id;if("tvshows"==item.CollectionType)return url="tv.html?topParentId="+item.Id,options&&"latest"===options.section&&(url+="&tab=2"),url;if("music"==item.CollectionType)return"music.html?topParentId="+item.Id;if("games"==item.CollectionType)return id?"itemlist.html?parentId="+id:"#";if("playlists"==item.CollectionType)return"playlists.html?topParentId="+item.Id;if("photos"==item.CollectionType)return"photos.html?topParentId="+item.Id}else if(item.IsFolder&&"BoxSet"!=itemType&&"Series"!=itemType)return id?"itemlist.html?parentId="+id:"#";if("CollectionFolder"==itemType)return"itemlist.html?topParentId="+item.Id+"&parentId="+item.Id;if("PhotoAlbum"==itemType)return"itemlist.html?context=photos&parentId="+id;if("Playlist"==itemType)return"itemdetails.html?id="+id;if("TvChannel"==itemType)return"itemdetails.html?id="+id;if("Channel"==itemType)return"channelitems.html?id="+id;if(item.IsFolder&&"Channel"==item.SourceType||"ChannelFolderItem"==itemType)return"channelitems.html?id="+item.ChannelId+"&folderId="+item.Id;if("Program"==itemType)return"itemdetails.html?id="+id;if("BoxSet"==itemType)return"itemdetails.html?id="+id;if("MusicAlbum"==itemType)return"itemdetails.html?id="+id;if("GameSystem"==itemType)return"itemdetails.html?id="+id;if("Genre"==itemType){var type;switch(context){case"tvshows":type="Series";break;case"games":type="Game";break;default:type="Movie"}return url="secondaryitems.html?type="+type+"&genreId="+id,topParentId&&(url+="&parentId="+topParentId),url}if("MusicGenre"==itemType)return"itemdetails.html?id="+id;if("GameGenre"==itemType)return url="secondaryitems.html?type=Game&genreId="+id,topParentId&&(url+="&parentId="+topParentId),url;if("Studio"==itemType){var type;switch(context){case"tvshows":type="Series";break;case"games":type="Game";break;default:type="Movie"}return url="secondaryitems.html?type="+type+"&studioId="+id,topParentId&&(url+="&parentId="+topParentId),url}if("Person"==itemType)return"itemdetails.html?id="+id;if("Recording"==itemType)return"itemdetails.html?id="+id;if("MusicArtist"==itemType)return"itemdetails.html?id="+id;var contextSuffix=context?"&context="+context:"";return"Series"==itemType||"Season"==itemType||"Episode"==itemType?"itemdetails.html?id="+id+contextSuffix:item.IsFolder?id?"itemlist.html?parentId="+id:"#":"itemdetails.html?id="+id},embyRouter.showItem=showItem,embyRouter})}function updateAppSettings(appSettings){return appSettings.enableExternalPlayers=function(val){return null!=val&&appSettings.set("externalplayers",val.toString()),"true"===appSettings.get("externalplayers")},appSettings}function onDialogOpen(dlg){dlg.classList.contains("background-theme-a")||dlg.classList.contains("actionSheet")||(dlg.classList.add("background-theme-b"),dlg.classList.add("ui-body-b"))}function defineResizeObserver(){self.ResizeObserver?define("ResizeObserver",[],function(){return self.ResizeObserver}):define("ResizeObserver",["bower_components/resize-observer-polyfill/resizeobserver"],returnFirstDependency)}function initRequireWithBrowser(browser){var bowerPath=getBowerPath(),apiClientBowerPath=bowerPath+"/emby-apiclient",embyWebComponentsBowerPath=bowerPath+"/emby-webcomponents";Dashboard.isRunningInCordova()&&browser.android?define("apiclient",["bower_components/emby-apiclient/apiclient"],returnFirstDependency):define("apiclient",["bower_components/emby-apiclient/apiclient"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.safari?define("actionsheet",["cordova/actionsheet"],returnFirstDependency):define("actionsheet",["webActionSheet"],returnFirstDependency),"registerElement"in document?define("registerElement",[]):browser.msie?define("registerElement",[bowerPath+"/webcomponentsjs/webcomponents-lite.min.js"],returnFirstDependency):define("registerElement",[bowerPath+"/document-register-element/build/document-register-element"],returnFirstDependency),window.chrome&&window.chrome.sockets?define("serverdiscovery",[apiClientBowerPath+"/serverdiscovery-chrome"],returnFirstDependency):Dashboard.isRunningInCordova()&&browser.android?define("serverdiscovery",["cordova/serverdiscovery"],returnFirstDependency):Dashboard.isRunningInCordova()&&browser.safari?define("serverdiscovery",[apiClientBowerPath+"/serverdiscovery-chrome"],returnFirstDependency):define("serverdiscovery",[apiClientBowerPath+"/serverdiscovery"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.safari?define("imageFetcher",["cordova/imagestore"],returnFirstDependency):define("imageFetcher",[embyWebComponentsBowerPath+"/images/basicimagefetcher"],returnFirstDependency);var preferNativeAlerts=browser.tv;preferNativeAlerts&&window.alert?define("alert",[embyWebComponentsBowerPath+"/alert/nativealert"],returnFirstDependency):define("alert",[embyWebComponentsBowerPath+"/alert/alert"],returnFirstDependency),defineResizeObserver(),define("dialog",[embyWebComponentsBowerPath+"/dialog/dialog"],returnFirstDependency),preferNativeAlerts&&window.confirm?define("confirm",[embyWebComponentsBowerPath+"/confirm/nativeconfirm"],returnFirstDependency):define("confirm",[embyWebComponentsBowerPath+"/confirm/confirm"],returnFirstDependency);var preferNativePrompt=preferNativeAlerts||browser.xboxOne;preferNativePrompt&&window.confirm?define("prompt",[embyWebComponentsBowerPath+"/prompt/nativeprompt"],returnFirstDependency):define("prompt",[embyWebComponentsBowerPath+"/prompt/prompt"],returnFirstDependency),browser.tizen||browser.operaTv?define("loading",[embyWebComponentsBowerPath+"/loading/loading-legacy"],returnFirstDependency):define("loading",[embyWebComponentsBowerPath+"/loading/loading-lite"],returnFirstDependency),define("multi-download",[embyWebComponentsBowerPath+"/multidownload"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.android?(define("fileDownloader",["cordova/filedownloader"],returnFirstDependency),define("localassetmanager",["cordova/localassetmanager"],returnFirstDependency)):(define("fileDownloader",[embyWebComponentsBowerPath+"/filedownloader"],returnFirstDependency),define("localassetmanager",[apiClientBowerPath+"/localassetmanager"],returnFirstDependency)),define("screenLock",[embyWebComponentsBowerPath+"/resourcelocks/nullresourcelock"],returnFirstDependency),Dashboard.isRunningInCordova()&&browser.android?(define("resourceLockManager",[embyWebComponentsBowerPath+"/resourcelocks/resourcelockmanager"],returnFirstDependency),define("wakeLock",["cordova/wakelock"],returnFirstDependency),define("networkLock",["cordova/networklock"],returnFirstDependency)):(define("resourceLockManager",[embyWebComponentsBowerPath+"/resourcelocks/resourcelockmanager"],returnFirstDependency),define("wakeLock",[embyWebComponentsBowerPath+"/resourcelocks/nullresourcelock"],returnFirstDependency),define("networkLock",[embyWebComponentsBowerPath+"/resourcelocks/nullresourcelock"],returnFirstDependency)),Dashboard.isRunningInCordova()?define("castSenderApiLoader",[],getDummyCastSenderApiLoader):define("castSenderApiLoader",[],getCastSenderApiLoader)}function init(){Dashboard.isRunningInCordova()&&browserInfo.android&&define("nativedirectorychooser",["cordova/nativedirectorychooser"],returnFirstDependency),Dashboard.isRunningInCordova()&&browserInfo.android?define("localsync",["cordova/localsync"],returnFirstDependency):define("localsync",["scripts/localsync"],returnFirstDependency),define("livetvcss",["css!css/livetv.css"],returnFirstDependency),define("detailtablecss",["css!css/detailtable.css"],returnFirstDependency),define("autoorganizetablecss",["css!css/autoorganizetable.css"],returnFirstDependency),define("buttonenabled",["legacy/buttonenabled"],returnFirstDependency),initAfterDependencies()}function getRequirePromise(deps){return new Promise(function(resolve,reject){require(deps,resolve)})}function initAfterDependencies(){var list=[];window.fetch||list.push("fetch"),"function"!=typeof Object.assign&&list.push("objectassign"),Array.prototype.filter||list.push("arraypolyfills"),Function.prototype.bind||list.push("functionbind"),window.requestAnimationFrame||list.push("raf"),require(list,function(){createConnectionManager().then(function(){console.log("initAfterDependencies promises resolved"),require(["globalize"],function(globalize){window.Globalize=globalize,Promise.all([loadCoreDictionary(globalize),loadSharedComponentsDictionary(globalize)]).then(onGlobalizeInit)})})})}function loadSharedComponentsDictionary(globalize){var baseUrl="bower_components/emby-webcomponents/strings/",languages=["ar","bg-bg","ca","cs","da","de","el","en-gb","en-us","es-ar","es-mx","es","fi","fr","gsw","he","hr","hu","id","it","kk","ko","lt-lt","ms","nb","nl","pl","pt-br","pt-pt","ro","ru","sk","sl-si","sv","tr","uk","vi","zh-cn","zh-hk","zh-tw"],translations=languages.map(function(i){return{lang:i,path:baseUrl+i+".json"}});globalize.loadStrings({name:"sharedcomponents",translations:translations})}function loadCoreDictionary(globalize){var baseUrl="strings/",languages=["ar","bg-bg","ca","cs","da","de","el","en-gb","en-us","es-ar","es-mx","es","fa","fi","fr","gsw","he","hr","hu","id","it","kk","ko","ms","nb","nl","pl","pt-br","pt-pt","ro","ru","sl-si","sv","tr","uk","vi","zh-cn","zh-hk","zh-tw"],translations=languages.map(function(i){return{lang:i,path:baseUrl+i+".json"}});return globalize.defaultModule("core"),globalize.loadStrings({name:"core",translations:translations})}function onGlobalizeInit(){document.title=Globalize.translateDocument(document.title,"core"),require(["apphost"],function(appHost){loadPlugins([],appHost,browserInfo).then(onAppReady)})}function defineRoute(newRoute,dictionary){var baseRoute=Emby.Page.baseUrl(),path=newRoute.path;path=path.replace(baseRoute,""),console.log("Defining route: "+path),newRoute.dictionary=newRoute.dictionary||dictionary||"core",Emby.Page.addRoute(path,newRoute)}function defineCoreRoutes(appHost){console.log("Defining core routes"),defineRoute({path:"/addplugin.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"scripts/addpluginpage"}),defineRoute({path:"/appservices.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/autoorganizelog.html",dependencies:["scripts/taskbutton","autoorganizetablecss"],controller:"dashboard/autoorganizelog",roles:"admin"}),defineRoute({path:"/autoorganizesmart.html",dependencies:["emby-button"],controller:"dashboard/autoorganizesmart",autoFocus:!1,roles:"admin"}),defineRoute({path:"/autoorganizetv.html",dependencies:["emby-checkbox","emby-input","emby-button","emby-select","emby-collapse"],controller:"dashboard/autoorganizetv",autoFocus:!1,roles:"admin"}),defineRoute({path:"/channelitems.html",dependencies:[],autoFocus:!1,transition:"fade"}),defineRoute({path:"/channels.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/channels"}),defineRoute({path:"/channelsettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/cinemamodeconfiguration.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/connectlogin.html",dependencies:["emby-button","emby-input"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/connectlogin"}),defineRoute({path:"/dashboard.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dashboardgeneral.html",controller:"dashboard/dashboardgeneral",autoFocus:!1,roles:"admin"}),defineRoute({path:"/dashboardhosting.html",dependencies:["emby-input","emby-button"],autoFocus:!1,roles:"admin",controller:"dashboard/dashboardhosting"}),defineRoute({path:"/device.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/devices.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/devicesupload.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnaprofile.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnaprofiles.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnaserversettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/dlnasettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/edititemmetadata.html",dependencies:[],controller:"scripts/edititemmetadata",autoFocus:!1}),defineRoute({path:"/encodingsettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/forgotpassword.html",dependencies:["emby-input","emby-button"],anonymous:!0,startup:!0,controller:"scripts/forgotpassword"}),defineRoute({path:"/forgotpasswordpin.html",dependencies:["emby-input","emby-button"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/forgotpasswordpin"}),defineRoute({path:"/gamegenres.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/games.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/gamesrecommended.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/gamestudios.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/gamesystems.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/home.html",dependencies:[],autoFocus:!1,controller:"scripts/indexpage",transition:"fade",type:"home"}),defineRoute({path:"/index.html",dependencies:[],autoFocus:!1,isDefaultRoute:!0}),defineRoute({path:"/itemdetails.html",dependencies:["emby-button","scripts/livetvcomponents","paper-icon-button-light","emby-itemscontainer"],controller:"scripts/itemdetailpage",autoFocus:!1,transition:"fade"}),defineRoute({path:"/itemlist.html",dependencies:[],autoFocus:!1,controller:"scripts/itemlistpage",transition:"fade"}),defineRoute({path:"/kids.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/library.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/librarydisplay.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"dashboard/librarydisplay"}),defineRoute({path:"/librarysettings.html",dependencies:["emby-collapse","emby-input","emby-button","emby-select"],autoFocus:!1,roles:"admin",controller:"dashboard/librarysettings"}),defineRoute({path:"/livetv.html",dependencies:["emby-button","livetvcss"],controller:"scripts/livetvsuggested",autoFocus:!1,transition:"fade"}),defineRoute({path:"/livetvguideprovider.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/livetvitems.html",dependencies:[],autoFocus:!1,controller:"scripts/livetvitems"}),defineRoute({path:"/livetvseriestimer.html",dependencies:["emby-checkbox","emby-input","emby-button","emby-collapse","scripts/livetvcomponents","scripts/livetvseriestimer","livetvcss"],autoFocus:!1,controller:"scripts/livetvseriestimer"}),defineRoute({path:"/livetvsettings.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/livetvstatus.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/livetvtuner.html",dependencies:[],autoFocus:!1,roles:"admin",controller:"dashboard/livetvtuner"}),defineRoute({path:"/log.html",dependencies:["emby-checkbox"],roles:"admin",controller:"dashboard/logpage"}),defineRoute({path:"/login.html",dependencies:["emby-button","emby-input"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/loginpage"}),defineRoute({path:"/metadataadvanced.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/metadataimages.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/metadatanfo.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/metadatasubtitles.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/movies.html",dependencies:["emby-button"],autoFocus:!1,controller:"scripts/moviesrecommended",transition:"fade"}),defineRoute({path:"/music.html",dependencies:[],controller:"scripts/musicrecommended",autoFocus:!1,transition:"fade"}),defineRoute({path:"/mypreferencesdisplay.html",dependencies:["emby-checkbox","emby-button","emby-select"],autoFocus:!1,transition:"fade",controller:"scripts/mypreferencesdisplay"}),defineRoute({path:"/mypreferenceshome.html",dependencies:["emby-checkbox","emby-button","emby-select"],autoFocus:!1,transition:"fade",controller:"scripts/mypreferenceshome"}),defineRoute({path:"/mypreferenceslanguages.html",dependencies:["emby-button","emby-checkbox","emby-select"],autoFocus:!1,transition:"fade",controller:"scripts/mypreferenceslanguages"}),defineRoute({path:"/mypreferencesmenu.html",dependencies:["emby-button"],autoFocus:!1,transition:"fade",controller:"scripts/mypreferencescommon"}),defineRoute({path:"/myprofile.html",dependencies:["emby-button","emby-collapse","emby-checkbox","emby-input"],autoFocus:!1,transition:"fade",controller:"scripts/myprofile"}),defineRoute({path:"/offline/offline.html",transition:"false",controller:"offline/offline",dependencies:[],anonymous:!0,startup:!1}),defineRoute({path:"/mysync.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/mysync"}),defineRoute({path:"/camerauploadsettings.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/camerauploadsettings"}),defineRoute({path:"/mysyncjob.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/syncjob"}),defineRoute({path:"/mysyncsettings.html",dependencies:["emby-checkbox","emby-input","emby-button","paper-icon-button-light"],autoFocus:!1,transition:"fade",controller:"scripts/mysyncsettings"}),defineRoute({path:"/notificationlist.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/notificationsetting.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/notificationsettings.html",controller:"scripts/notificationsettings",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/nowplaying.html",dependencies:["paper-icon-button-light","emby-slider","emby-button","emby-input","emby-itemscontainer"],controller:"scripts/nowplayingpage",autoFocus:!1,transition:"fade",fullscreen:!0,supportsThemeMedia:!0}),defineRoute({path:"/photos.html",dependencies:[],autoFocus:!1,transition:"fade"}),defineRoute({path:"/playbackconfiguration.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/playlists.html",dependencies:[],autoFocus:!1,transition:"fade",controller:"scripts/playlists"}),defineRoute({path:"/plugincatalog.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/plugins.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/reports.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/scheduledtask.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/scheduledtasks.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/search.html",dependencies:[],controller:"scripts/searchpage"}),defineRoute({path:"/secondaryitems.html",dependencies:[],autoFocus:!1,controller:"scripts/secondaryitems"}),defineRoute({path:"/selectserver.html",dependencies:["listViewStyle","emby-button"],autoFocus:!1,anonymous:!0,startup:!0,controller:"scripts/selectserver"}),defineRoute({path:"/serversecurity.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/shared.html",dependencies:[],autoFocus:!1,anonymous:!0}),defineRoute({path:"/streamingsettings.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/support.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/supporterkey.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/syncactivity.html",dependencies:[],autoFocus:!1,controller:"scripts/syncactivity"}),defineRoute({path:"/syncsettings.html",dependencies:[],autoFocus:!1}),defineRoute({path:"/tv.html",dependencies:["paper-icon-button-light","emby-button"],autoFocus:!1,controller:"scripts/tvrecommended",transition:"fade"}),defineRoute({path:"/useredit.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/userlibraryaccess.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/usernew.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/userparentalcontrol.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/userpassword.html",dependencies:["emby-input","emby-button","emby-checkbox"],autoFocus:!1,controller:"scripts/userpasswordpage"}),defineRoute({path:"/userprofiles.html",dependencies:[],autoFocus:!1,roles:"admin"}),defineRoute({path:"/wizardagreement.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizardcomponents.html",dependencies:["dashboardcss","emby-button","emby-input","emby-select"],autoFocus:!1,anonymous:!0,controller:"dashboard/wizardcomponents"}),defineRoute({path:"/wizardfinish.html",dependencies:["emby-button","dashboardcss"],autoFocus:!1,anonymous:!0,controller:"dashboard/wizardfinishpage"}),defineRoute({path:"/wizardlibrary.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizardsettings.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizardstart.html",dependencies:["dashboardcss"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/wizarduser.html",dependencies:["dashboardcss","emby-input"],autoFocus:!1,anonymous:!0}),defineRoute({path:"/videoosd.html",dependencies:[],transition:"fade",controller:"scripts/videoosd",autoFocus:!1,type:"video-osd",supportsThemeMedia:!0,fullscreen:!0}),defineRoute({path:"/configurationpage",dependencies:["jQuery"],autoFocus:!1,enableCache:!1,enableContentQueryString:!0,roles:"admin"}),defineRoute({path:"/",isDefaultRoute:!0,autoFocus:!1,dependencies:[]})}function loadPlugins(externalPlugins,appHost,browser,shell){console.log("Loading installed plugins");var list=["bower_components/emby-webcomponents/playback/playbackvalidation","bower_components/emby-webcomponents/playback/playaccessvalidation"];Dashboard.isRunningInCordova()&&browser.android?(document.createElement("audio").canPlayType("audio/flac").replace(/no/,"")&&document.createElement("audio").canPlayType('audio/ogg; codecs="opus"').replace(/no/,"")?window.VlcAudio=!0:window.VlcAudio=!0,list.push("cordova/vlcplayer")):Dashboard.isRunningInCordova()&&browser.safari&&list.push("cordova/audioplayer"),list.push("bower_components/emby-webcomponents/htmlaudioplayer/plugin"),Dashboard.isRunningInCordova()&&browser.safari&&list.push("cordova/chromecast"),Dashboard.isRunningInCordova()&&browser.android&&list.push("cordova/externalplayer"),list.push("bower_components/emby-webcomponents/htmlvideoplayer/plugin"),list.push("bower_components/emby-webcomponents/photoplayer/plugin"),appHost.supports("remotecontrol")&&(list.push("bower_components/emby-webcomponents/sessionplayer"),browser.chrome&&list.push("bower_components/emby-webcomponents/chromecastplayer")),list.push("bower_components/emby-webcomponents/youtubeplayer/plugin");for(var i=0,length=externalPlugins.length;i
-
${LabelNewUserNameHelp}