Tizen.Messaging.Push/a> namespace include the following:<\/p>\n<ul>\n<li>\n<p>Connecting to the push service<\/p>\n<p>You can <a href=https://samsungtizenos.com/"#connect\">establish a socket connection to the push service<\/a>.<\/p>\n<\/li>\n<li>\n<p>Registering with the push server<\/p>\n<p>You can <a href=https://samsungtizenos.com/"#registration\">obtain a registration ID to receive push notifications<\/a>.<\/p>\n<\/li>\n<li>\n<p>Managing security<\/p>\n<p>You need to <a href=https://samsungtizenos.com/"#security\">take care of security issues<\/a> when sending notifications containing sensitive information.<\/p>\n<\/li>\n<li>\n<p>Sending push notifications<\/p>\n<p>You can <a href=https://samsungtizenos.com/"#send\">send push notifications<\/a> from the application server to an application.<\/p>\n<\/li>\n<li>\n<p>Receiving push notifications<\/p>\n<p>You can <a href=https://samsungtizenos.com/"#receive_push\">receive notifications<\/a> in the application at different application states.<\/p>\n<\/li>\n<\/ul>\n<p><strong>Figure: Push messaging service<\/strong><\/p>\n<p><img src=https://samsungtizenos.com/"media//ui_push_message.png/" alt=\"Push messaging service\" \/><\/p>\n<p><a name=\"service\"><\/a><\/p>\n<h2 id=\"content-service-architecture\"><a href=https://samsungtizenos.com/"#content-service-architecture\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Service architecture<\/h2>\n<p>The following figure illustrates the service architecture of the Tizen push messaging service.<\/p>\n<p><strong>Figure: Service architecture<\/strong><\/p>\n<p><img src=https://samsungtizenos.com/"media//push_overview.png/" alt=\"Service architecture\" \/><\/p>\n<p>The following steps illustrate a typical scenario for using the push messaging service on a Tizen device:<\/p>\n<ol>\n<li>\n<p>The application on the device registers for the push messaging service.<\/p>\n<\/li>\n<li>\n<p>When an application is installed and launched, the device establishes a push session with the Tizen server by sending a registration request to the Tizen push server through the push service.<\/p>\n<p>The push session is managed by the Tizen server and device platform, so there is no need to create any code to manage it within the application.<\/p>\n<\/li>\n<li>\n<p>If the registration request is approved, the application receives a registration ID through the push service. The registration ID is a unique key used to identify the application installed on that particular device and route the push message.<\/p>\n<p>The application delivers the registration ID to the application server. This registration ID is used to identify the application installed on that particular device.<\/p>\n<\/li>\n<li>\n<p>When the application server needs to send a push message to the application on a particular device, it calls the Tizen server's open API to send the message together with the registration ID. (For more information for server developers on sending push messages, see <a href=https://samsungtizenos.com/"push-server.md#send_server\">Sending Push Notifications<\/a>.)<\/p>\n<p>A text message of up to 1024 bytes can be sent in a push message. If the application needs to download a large amount of data, the application server sends a link to the data in the push message.<\/p>\n<\/li>\n<li>\n<p>When the Tizen push server receives the message and the registration ID, it checks which device has the application with the particular registration ID and then routes the message to that device.<\/p>\n<\/li>\n<li>\n<p>When the push service receives the message and the registration ID, it sends the message to the destination application, which receives the push message.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"content-prerequisites\"><a href=https://samsungtizenos.com/"#content-prerequisites\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Prerequisites<\/h2>\n<p>To enable your application to use the push functionality, follow the steps below:<\/p>\n<ol>\n<li>\n<p>To use the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Messaging.Push.md/">Tizen.Messaging.Push/a> namespace, the application has to request permission by adding the following privilege to the <code>tizen-manifest.xml<\/code> file:<\/p>\n<code class=\"language-XML\"><privileges>\n <privilege>http:\/\/tizen.org\/privilege\/push<\/privilege>\n<\/privileges>\n<\/code>\n<\/li>\n<li>\n<p>Make sure the following requirements are fulfilled:<\/p>\n<ul>\n<li>\n<p>Internet access<\/p>\n<p>To connect to the Tizen push server and receive notifications from it, the target device or emulator must be able to contact any IP address with the port 5223. If you are in an enterprise network, ensure that the proxy setting in your local network allows outgoing traffic destined for this port number.<\/p>\n<\/li>\n<li>\n<p>Package ID<\/p>\n<p>When you create a project in Tizen Studio, you are given the package ID (randomly generated by Tizen Studio or entered by yourself). The Tizen push server identifies your applications using the package ID.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p><a name=\"permission\"><\/a>\n- Permission to Tizen push servers<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">To<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">use<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">push<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">messaging<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">service<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">needs<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">permission<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">to<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">access<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">Tizen<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">push<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">server<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">. <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">Request<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">permission<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">from<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">Tizen<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">push<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">service<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">team<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">using<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">one<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">of<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">following<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">online<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">request<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">forms<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> - [<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">Request<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">permission<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">for<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">a<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">](<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">https<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:<\/span><span style=\"color:#6A737D;--shiki-dark:#6A737D\">\/\/developer.tizen.org\/webform\/request-permission-tizen-push-service){:target="_blank"}<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> - [<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">Extend<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">expiration<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">date<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">or<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">change<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">quota<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">](<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">https<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:<\/span><span style=\"color:#6A737D;--shiki-dark:#6A737D\">\/\/developer.tizen.org\/webform\/request-extend-expiration-date-or-change-quota){:target="_blank"} for an application that already has the permission to use the push messaging service<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">When<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">team<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">approves<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">request<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">you<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">receive<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">a<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">push<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">app<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">ID<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">corresponding<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">to<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">your<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">package<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">ID<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<ol start=\"3\">\n<li>\n<p>To use the methods and properties of the <code>Tizen.Messaging.Push<\/code> namespace, include it in your application:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">using<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Tizen<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Messaging<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Push<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<\/ol>\n<div class=\"md-alert md-alert-note\">\n<span><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"\/><\/svg>Note<\/span>\n<p>The push service supports launching an application in the background. Remember that you can deliver application data to your application without an unwanted UI launch.<\/p>\n<\/div>\n<p><a name=\"connect\"><\/a><\/p>\n<h2 id=\"content-connect-to-the-push-service\"><a href=https://samsungtizenos.com/"#content-connect-to-the-push-service\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Connect to the push service<\/h2>\n<p>To manage push service connections, follow the steps below:<\/p>\n<ol>\n<li>\n<p>Define event handlers:<\/p>\n<ul>\n<li><code>EventHandlerStateChanged()<\/code> is triggered when the connection state changes.<\/li>\n<li><code>EventHandlerNotificationReceived()<\/code> is triggered when the push notification is received from the push service.<\/li>\n<\/ul>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">public<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">static<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">void<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">EventHandlerStateChanged<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">object<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">sender<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushConnectionStateEventArgs<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">e<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/\/ State change events<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">};<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">public<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">static<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">void<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">EventHandlerNotificationReceived<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">object<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">sender<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushMessageEventArgs<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">e<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/\/ Notification received events<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">};<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Register the event handlers for the <code>StateChanged<\/code> and <code>NotificationReceived<\/code> events of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Messaging.Push.PushClient.md/">Tizen.Messaging.Push.PushClient/a> class and connect to the push service with the <code>PushServiceConnect()<\/code> method:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">try<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">string<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">pushAppId<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"YOUR_PUSH_APP_ID"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> PushClient.StateChanged <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> EventHandlerStateChanged;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> PushClient.NotificationReceived <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> EventHandlerNotificationReceived;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> PushClient.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushServiceConnect<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(pushAppId);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> PushClient.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetUnreadNotifications<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">catch<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> (<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Exception<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">e<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Console.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">WriteLine<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Exception occurred"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> e.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">ToString<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>After calling the <code>PushServiceConnect()<\/code> method, the application establishes a socket connection to the push service:<\/p>\n<ul>\n<li>The <code>YOUR_PUSH_APP_ID<\/code> parameter is the push app ID received from the Tizen push server team when access to the server was requested. Keep this push app ID confidential, otherwise, your push notifications can be hijacked by malicious applications.<\/li>\n<li>If the <code>PushServiceConnect()<\/code> method catches any exception, it means the connection to the service failed. This happens most likely when the <a href=https://samsungtizenos.com/"#prerequisites\">push privilege<\/a> is not added to the application manifest.<\/li>\n<\/ul>\n<p>If the connection with the push service succeeds, the application must request the unread notification messages sent during the disconnected state by using the <code>GetUnreadNotification()<\/code> method.<\/p>\n<p>Establish a connection to the push service when the application is launched and disconnect from the service when it terminates. The application can be resumed after being paused. To ensure that push notifications are handled fluently, the <code>PushServiceConnect()<\/code> method must be called when the application is resumed.<\/p>\n<\/li>\n<li>\n<p>Disconnect from the push service.<\/p>\n<p>When the application terminates or no longer uses the push service, close the connection using the <code>PushServiceDisconnect()<\/code> method.<\/p>\n<p>The <code>PushServiceDisconnect()<\/code> method returns all the resources allocated for the connection:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">PushClient.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushServiceDisconnect<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>The connection is automatically closed when the application terminates. Hence, if the application uses the push service while being launched, it does not need this method.<\/p>\n<p>The application can also disconnect the service in the middle of the application operation. If you add a toggle switch to the application for switching the push service on and off, call this method when the service is switched off. Do not call this method inside any event handlers, however, since it can cause the application to crash.<\/p>\n<p>The application can be paused by pressing the <strong>Home<\/strong> or <strong>Back<\/strong> key. For a proper push operation, the <code>PushServiceDisconnect()<\/code> method must be called when the application is paused.<\/p>\n<\/li>\n<\/ol>\n<p><a name=\"state\"><\/a><\/p>\n<ol start=\"4\">\n<li>\n<p>Handle state transitions.<\/p>\n<p>After the connection to the service is made, the application is notified whenever the connection state changes. This notification is conducted through the <code>EventHandlerStateChanged()<\/code> event handler. The following figure illustrates the possible states of the push service.<\/p>\n<p><img src=https://samsungtizenos.com/"media//push_state_transitions_cs.png/" alt=\"Push service state transitions\" \/><\/p>\n<p>Once launched, the application is in the <code>Initial<\/code> state. When the application establishes a connection to the service using the <code>PushServiceConnect()<\/code> method, the state becomes either <code>Unregistered<\/code> or <code>Registered<\/code>:<\/p>\n<ul>\n<li>If the application is currently registered to the push server, the service forces it to transit from the <code>Initial<\/code> state to the <code>Registered<\/code> state. In this case, the application can request deregistration from the push server using the <code>PushServiceDeregister()<\/code> method. If this request is approved by the push server, the state transits to <code>Unregistered<\/code>.<\/li>\n<li>If the application is not currently registered to the push server, the state transits from the <code>Initial<\/code> state to the <code>Unregistered<\/code> state. In this case, the application can request registration to the push server using the <code>PushServiceRegister()<\/code> method. If this request is approved by the push server, the state transits to <code>Registered<\/code>.<\/li>\n<li>When an error occurs, the state transits to <code>Error<\/code>.<\/li>\n<\/ul>\n<p>When the current state transits, the <code>EventHandlerStateChanged()<\/code> event handler is called and the new state is obtained. Determine the application actions based on the new state:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">public<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">static<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">void<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">EventHandlerStateChanged<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">object<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">sender<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushConnectionStateEventArgs<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">e<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">switch<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> (e.state)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">case<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushConnectionStateEventArgs<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushState<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Unregistered<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Console.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">WriteLine<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Arrived at STATE_UNREGISTERED"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">OnStateUnregistered<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">break<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">case<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushConnectionStateEventArgs<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushState<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Registered<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Console.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">WriteLine<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Arrived at STATE_REGISTERED"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">OnStateRegistered<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">break<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">case<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushConnectionStateEventArgs<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushState<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">StateError<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Console.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">WriteLine<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Arrived at STATE_ERROR"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> e.Error);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">OnStateError<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">break<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">default<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Console.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">WriteLine<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Unknown State"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">break<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>In the above example, the <code>OnStateRegistered()<\/code>, <code>OnStateUnregistered()<\/code>, and <code>OnStateError()<\/code> methods contain the actions for the <code>Registered<\/code>, <code>Unregistered<\/code>, and <code>StateError<\/code> states, respectively. The application does not need to handle the <code>Initial<\/code> state, because it is maintained internally, and this event handler is never invoked in that state. The <code>e.Error<\/code> is the error message from the push service when the state becomes <code>StateError<\/code>.<\/p>\n<p>The registration state is subject to change. Consequently, make sure that the application connects to the push service whenever it is launched.<\/p>\n<\/li>\n<\/ol>\n<p><a name=\"registration\"><\/a><\/p>\n<h2 id=\"content-register-with-the-push-server\"><a href=https://samsungtizenos.com/"#content-register-with-the-push-server\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Register with the push server<\/h2>\n<p>To receive push notifications, the application must send a registration request to the Tizen push server. When the server receives this request, it assigns a registration ID that is unique to the application on the particular device. When sending a notification from your application server, this registration ID is used the destination address of the application. If the application no longer needs to receive push notifications, it needs to send a deregistration request to the server.<\/p>\n<p>To register with the push server, follow the steps below:<\/p>\n<ol>\n<li>\n<p>Request registration.<\/p>\n<p>After connecting to the push service, request registration using the <code>PushServerRegister()<\/code> method of the <a href=https://samsungtizenos.com/"//application//dotnet//api//TizenFX//latest//api//Tizen.Messaging.Push.PushClient.md/">Tizen.Messaging.Push.PushClient/a> class:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">public<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">static<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">void<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">OnStateUnregistered<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Task<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"><<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">ServerResponse<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">tr<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> PushClient.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushServerRegister<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> tr.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetAwaiter<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">().<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">OnCompleted<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">() =<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">><\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">ServerResponse<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">res<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> tr.Result;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<p>The <code>OnStateUnregistered()<\/code> method containing the <code>PushServiceRegister()<\/code> method is called when the state transits to <code>Unregistered<\/code>. This sample application is designed to send the registration request as soon as it is connected to the push service. If the application requires users to log in to the service, this registration request must be sent after the login process is complete.<\/p>\n<p>The registration request is non-blocking. If the push service successfully sends the request to the server and receives an approval, the <code>res<\/code> value is <code>Success<\/code>.<\/p>\n<p>When an error occurs in the middle of the registration process, the reason is returned. For example, if the push server is not responding, the <code>ServerResponse res<\/code> returns <code>Timeout<\/code>. In this case, the application does not need to request registration again because the push service keeps the previous request and sends it when the network becomes online.<\/p>\n<\/li>\n<li>\n<p>Handle the transit to the <code>Registered<\/code> state.<\/p>\n<p>The application transits to the <code>Registered<\/code> state in one of the following cases:<\/p>\n<ul>\n<li>The registration request sent at the <code>Unregistered<\/code> state is approved.<\/li>\n<li>The already-registered application at the <code>Initial<\/code> state is successfully connected to the push service.<\/li>\n<\/ul>\n<p>In both cases, the <code>EventHandlerStateChanged()<\/code> is called with the <code>Registered<\/code> value. The application calls the <code>OnStateRegistered()<\/code> method immediately, <a href=https://samsungtizenos.com/"#state\">as shown in the state transitions<\/a>. When defining the actions inside the method, keep the following points in mind:<\/p>\n<ul>\n<li>\n<p>If the application has already been registered, request the push service for any unread notifications that have arrived before the application is launched.<\/p>\n<p>Request the unread notifications asynchronously. If there is such a notification, it can be received through the <code>EventHandlerNotificationReceived()<\/code> event handler after the <code>OnStateRegistered()<\/code> method returns.<\/p>\n<\/li>\n<li>\n<p>If the application is newly registered, send the registration ID issued by the push server to your application server.<\/p>\n<p>If the ID is new or updated, you need to send it to your application server. This ID is used as a destination address for the application on a particular device. If the application has already sent the ID, you can skip this step:<\/p>\n<\/li>\n<\/ul>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">public<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">static<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">void<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">OnStateRegistered<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/\/ Request unread notifications to the push service<\/span><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/\/ EventHandlerNotificationReceived() is called if there are unread notifications<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> PushClient.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetUnreadNotifications<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/\/ Get the registration ID<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">string<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">id<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> PushClient.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetRegistrationId<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D;--shiki-dark:#6A737D\"> \/\/\/ Send registration ID to your application server if necessary<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Request deregistration.<\/p>\n<p>When the application no longer wants to receive push notifications, use the following method to request deregistration:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">Task<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"><<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">ServerResponse<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">tu<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> PushClient.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushServerUnregister<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">tu.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetAwaiter<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">().<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">OnCompleted<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(() <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=><\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">ServerResponse<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">res<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> tu.Result;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<div class=\"md-alert md-alert-note\">\n<span><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"\/><\/svg>Note<\/span>\n<p>The <code>PushServiceUnregister()<\/code> method is not used if the application is intended to receive push notifications continuously while it is installed on the device. When the application is uninstalled, the push service detects the event and deregisters the application automatically.<\/p>\n<p>On the other hand, if the application wants to receive push notifications only when a user logs in, the <code>PushServiceUnregister()<\/code> method must be called whenever the user logs out.<\/p>\n<\/div>\n<\/li>\n<\/ol>\n<p><a name=\"security\"><\/a><\/p>\n<h2 id=\"content-manage-security\"><a href=https://samsungtizenos.com/"#content-manage-security\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Manage security<\/h2>\n<p>When you send a notification with sensitive information, be aware of the chance that the notification gets hijacked by someone else. It is your responsibility to keep such sensitive information safe from malicious access. The following rules are strongly recommended:<\/p>\n<ul>\n<li>\n<p>Keep the push application ID confidential.<\/p>\n<p>If the application ID is exposed, hackers can try to hijack notifications using a fake application with the exposed ID.<\/p>\n<\/li>\n<li>\n<p>Do not store the registration ID on the device.<\/p>\n<p>The registration ID can be considered as the destination address for notifications. Without the ID, hackers cannot send fake notifications to your application.<\/p>\n<\/li>\n<li>\n<p>Encrypt sensitive information.<\/p>\n<p>When you send sensitive information, such as personal information and financial transactions, encrypt it and load it to the notification as a payload instead of the message field. When the notification arrives at the device, the application decrypts the payload and retrieves the sensitive information.<\/p>\n<\/li>\n<li>\n<p>Do not hardcode the AppSecret in the source code.<\/p>\n<p>The AppSecret is a key to accessing the push server for sending notifications. If notifications are sent from your application server, the application does not need to know the AppSecret at all. Keep the AppSecret on the server and do not load any related information in the application. If you want device-to-device notification delivery without your application server, the application needs the AppSecret to send a notification from a device. In this case, it is your responsibility to keep the AppSecret safe.<\/p>\n<\/li>\n<\/ul>\n<p><a name=\"send\"><\/a><\/p>\n<h2 id=\"content-send-push-notifications\"><a href=https://samsungtizenos.com/"#content-send-push-notifications\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Send Push Notifications<\/h2>\n<p>Once the application successfully sends its registration ID to the application server, you are ready to send push notifications from the application server to the application on that particular device. This use case describes how to send a simple push notification to the device. For advanced features, see the <a href=https://samsungtizenos.com/"push-server.md/">Push Server<\/a> guide for server developers.<\/p>\n<p>The following example shows a sample push notification:<\/p>\n<ul>\n<li>\n<p>URI: See the <a href=https://samsungtizenos.com/"push-server.md#send_server\">Push RQM (Request Manager) server URLs table<\/a>.<\/p>\n<\/li>\n<li>\n<p>Method: HTTP POST<\/p>\n<\/li>\n<li>\n<p>Header:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"\">appID: 1234567890987654<\/span><\/span>\n<span class=\"line\"><span style=\"\">appSecret: dYo\/o\/m11gmWmjs7+5f+2zLNVOc=<\/span><\/span>\n<span class=\"line\"><span style=\"\"><\/span><\/span><\/code><\/pre>\n<\/li>\n<li>\n<p>Body:<\/p>\n<code class=\"language-JSON\">{\n "regID": "0501a53f4affdcbb98197f188345ff30c04b-5001",\n "requestID": "01231-22EAX-223442",\n "message": "badgeOption=INCREASE&badgeNumber=1&action=ALERT&alertMessage=Hi",\n "appData": "{id:asdf&passwd:1234}", \/* Optional, if the message field is not empty *\/\n}\n<\/code>\n<\/li>\n<\/ul>\n<p>To send a notification:<\/p>\n<ol>\n<li>\n<p>Prepare the <code>appID<\/code>, <code>appSecret<\/code>, <code>regID<\/code>, and <code>requestID<\/code>:<\/p>\n<ul>\n<li>The <code>appID<\/code> and <code>appSecret<\/code> values are given in the email message that you receive when requesting <a href=https://samsungtizenos.com/"#permission\">permission to use Tizen push servers<\/a>.<\/li>\n<li>The <code>regID<\/code> value is the one that the application server received from your application installed on a Tizen device. Depending on the <code>regID<\/code> value, the URI of the server to which your application server sends the notification varies.<\/li>\n<li>The <code>requestID<\/code> value is used to identify the notification in the push server. When your application server sends notifications using the same <code>requestID<\/code> value, the last notification overwrites all the previous notifications that are not delivered yet.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Use the message field to describe how to process the notification.<\/p>\n<p>The message field contains not only the message to show in the quick panel on the device, but also the behaviors that the device must take when receiving the notification. The message field is a string that consists of key-value pairs. The available pair options are given in the following table.<\/p>\n<p><strong>Table: Message field key-value pairs<\/strong><\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Key<\/th>\n<th>Value<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>action<\/code><\/td>\n<td><code>ALERT<\/code>: Store the message and alert the user.<br><code>SILENT<\/code>: Store the message without alerting the user.<br><code>DISCARD<\/code>: Discard the message, if the application is not up and running.<br><code>LAUNCH<\/code>: Forcibly launch the application and deliver the notification.<br><code>BACKGROUNDLAUNCH<\/code>: Launch the application in the background and deliver the notification.<\/td>\n<td>Action to be performed if the application is not running. If no action is defined, the default behavior is <code>SILENT<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>alertMessage<\/code><\/td>\n<td>Up to 127 bytes<\/td>\n<td>Alert message shown to the user in the quick panel. If the action is not set as <code>ALERT<\/code>, this value is meaningless.<\/td>\n<\/tr>\n<tr>\n<td><code>badgeOption<\/code><\/td>\n<td><code>INCREASE<\/code>: Increase the badge number by the given value.<br><code>DECREASE<\/code>: Decrease the badge number by the given value.<br><code>SET<\/code>: Set badge number to the given value.<\/td>\n<td>Option for updating the icon badge number. If the action is set as <code>DISCARD<\/code>, the <code>badgeOption<\/code> is ignored. If the badge option is not included, the icon badge number remains unchanged.<\/td>\n<\/tr>\n<tr>\n<td><code>badgeNumber<\/code><\/td>\n<td>0-999<\/td>\n<td>-<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<p>For example, to show a "Hi" message in the quick panel and increase the badge count by 1 when the notification arrives at the device, the message field of the notification must be the following:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"\">"badgeOption=INCREASE&badgeNumber=1&action=ALERT&alertMessage=Hi"<\/span><\/span>\n<span class=\"line\"><span style=\"\"><\/span><\/span><\/code><\/pre>\n<p>If you want to deliver the notification directly to your application, the message field must be the following:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"\">"action=LAUNCH"<\/span><\/span>\n<span class=\"line\"><span style=\"\"><\/span><\/span><\/code><\/pre>\n<p>When the push service on the target device receives a notification with this message, it launches your application and delivers the notification. For more information, see how to <a href=https://samsungtizenos.com/"#recv_noti_app_not_run\">receive notifications when the application is not running<\/a>.<\/p>\n<p>The message field takes effect only when the application is not running (more precisely, when the application is not connected to the push service). If a notification with the above message field arrives at the device where the application is running, the push service delivers the notification directly to the application. It does not show the "Hi" message in the quick panel or increase the badge count.<\/p>\n<\/li>\n<li>\n<p>Load your own data to the <code>appData<\/code> field as a string.<\/p>\n<p>This use case focuses on how an application developer can construct a notification. For advanced features, see the <a href=https://samsungtizenos.com/"push-server.md/">Push Server<\/a> guide for server developers.<\/p>\n<\/li>\n<\/ol>\n<p><a name=\"receive_push\"><\/a><\/p>\n<h2 id=\"content-receive-push-notifications\"><a href=https://samsungtizenos.com/"#content-receive-push-notifications\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Receive push notifications<\/h2>\n<p>When a notification arrives at the device, its delivery mechanism depends on whether the application is running.<\/p>\n<p>To handle incoming push notifications, follow the steps below:<\/p>\n<ul>\n<li>\n<p>Receive notifications when the application is running.<\/p>\n<p>When a notification arrives at the application while it is running (more precisely, while the application is connected to the service), the <code>EventHandlerNotificationReceived()<\/code> event handler is called. You can handle the received notification in the event handler.<\/p>\n<p>The following example shows how the application can retrieve the app data (payload), message, and timestamp from the received notification. When the <code>EventHandlerNotificationReceived()<\/code> event handler is called, you can retrieve the app data, message, and time stamp from <code>e.AppData<\/code>, <code>e.Message<\/code>, and <code>e.ReceivedAt<\/code> respectively:<\/p>\n<pre class=\"shiki shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#D73A49;--shiki-dark:#F97583\">public<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">static<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">void<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">EventHandlerNotificationReceived<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">object<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">sender<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">PushMessageEventArgs<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">e<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Console.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">WriteLine<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Notification Data: "<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> e.AppData);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Console.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">WriteLine<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Notification Message: "<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> e.Message);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Console.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">WriteLine<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Notification Timestamp: "<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> e.ReceivedAt);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Console.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">WriteLine<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Notification RequestId: "<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> e.RequestId);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Console.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">WriteLine<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Notification Sender: "<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> e.Sender);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Console.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">WriteLine<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Notification SessionInfo: "<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> e.SessionInfo);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> Console.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">WriteLine<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"Notification Type: "<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">+<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> e.Type);<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<\/li>\n<\/ul>\n<p><a name=\"recv_noti_app_not_run\"><\/a><\/p>\n<ul>\n<li>\n<p>Receive notifications when the application is not running.<\/p>\n<p>If the notification arrives when the application is not running, it can be handled in 3 ways:<\/p>\n<\/li>\n<\/ul>\n<p><a name=\"force_launch\"><\/a>\n- Forcibly launch the application and deliver the notification to it.<\/p>\n<pre class=\"shiki deleted shiki-themes github-light github-dark\" style=\"background-color:#fff;--shiki-dark-bg:#24292e;color:#24292e;--shiki-dark:#e1e4e8;\"><code><span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">You<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">need<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">to<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">set<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">action<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">to<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">`LAUNCH`<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">in<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">message<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">field<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">when<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">sending<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">notification<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">from<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">server<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">When<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">notification<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">action<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">arrives<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">at<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">device<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">push<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">service<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">forcibly<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">launches<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">and<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">delivers<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">notification<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">By<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">way<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">when<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">is<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">launched<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">by<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">push<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">service<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">you<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">need<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">to<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">determine<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">reason<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">for<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">launch<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">and<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">react<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">to<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">it<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">appropriately<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">The<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">push<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">service<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">provides<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">launch<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">types<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">when<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">is<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">launched<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">by<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">service<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">.<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">Use<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">following<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">code<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">to<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">figure<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">out<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">why<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">is<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">launched<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">in<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">both<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">cases<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">of<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">receiving<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">notification<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">and<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">changing<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">registration<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">state<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> 1. <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">Get<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">the<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">requested<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">application<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">control<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> ```<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">csharp<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">public<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">static<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">Tizen<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">Applications<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">.<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">AppControl<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">_appCtrl<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">public<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">static<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">Tizen<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">.<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">Applications<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">.<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">AppControl<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">.<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">ExtraDataCollection<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">_extraDataSet<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">_appCtrl<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">new<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">AppControl<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">_extraDataSet<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">_appCtrl<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">.<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">ExtraData<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">```<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> 2. Determine the reason for the application launch. If the reason for the launch is a notification, retrieve the latest push message:<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> ```<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">csharp<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">string<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">GettedValue<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">""<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">bool<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">isGetted<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">=<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">_extraDataSet<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">TryGet<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">(<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"http:\/\/tizen.org\/appcontrol\/data\/push\/launch_type"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">, <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">out<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">GettedValue<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">if<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> (<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">isGetted<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">if<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> (<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">GettedValue<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">==<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"notification"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6A737D;--shiki-dark:#6A737D\">\/\/\/ Add your code here for when push messages arrive<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">else<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">if<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> (<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">GettedValue<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">==<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">"registration_change"<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#6A737D;--shiki-dark:#6A737D\">\/\/\/ Add your code here for when registration state is changed<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">```<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line del\"><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">Store the notification in the push service database and request it later when the application is launched.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> You need to set the action to `<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">ALERT<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">` or `<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">SILENT<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">` in the message field when sending the notification from the application server. When such a notification arrives at the device, the push service keeps the notification in the database and waits for the request from the application.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> You can request unread notifications from the push service. The request can be performed after connecting to the push server when the application is launched:<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> ```<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">csharp<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">PushClient<\/span><span style=\"color:#D73A49;--shiki-dark:#F97583\">.<\/span><span style=\"color:#6F42C1;--shiki-dark:#B392F0\">GetUnreadNotifications<\/span><span style=\"color:#24292E;--shiki-dark:#E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color:#24292E;--shiki-dark:#E1E4E8\"> <\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">```<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> The difference between the `<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">ALERT<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">` and `<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">SILENT<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">` actions is that the former shows an alert message in the quick panel and changes the badge count, while the latter does not. If the user clicks the alert message in the quick panel, the push service [forcibly launches the application](#force_launch) and delivers the notification through the app control.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line del\"><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">Discard the notification.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#032F62;--shiki-dark:#9ECBFF\"> You need to set the action to `<\/span><span style=\"color:#005CC5;--shiki-dark:#79B8FF\">DISCARD<\/span><span style=\"color:#032F62;--shiki-dark:#9ECBFF\">` in the message field when sending the notification from the application server. When such a notification arrives at the device, the push service delivers the notification only when the application is up and running. Otherwise, the push service does not store the notification and discards it.<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre>\n<h2 id=\"content-related-information\"><a href=https://samsungtizenos.com/"#content-related-information\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Related information<\/h2>\n<ul>\n<li>Dependencies\n<ul>\n<li>Tizen 4.0 and Higher<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","table_of_content":"<ul class=\"table-of-contents\">\n<li><a href=https://samsungtizenos.com/"#content-service-architecture\">Service architecture<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-prerequisites\">Prerequisites<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-connect-to-the-push-service\">Connect to the push service<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-register-with-the-push-server\">Register with the push server<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-manage-security\">Manage security<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-send-push-notifications\">Send Push Notifications<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-receive-push-notifications\">Receive push notifications<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-related-information\">Related information<\/a><\/li>\n<\/ul>\n","title":"Push","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"svrqkNTAsTMWJdq4yvYt","name":"documentation::article","path":"docs\/application\/dotnet\/guides\/messaging\/push","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"8b1c5009ae81686417050ccf38a6ea36991d2c2463548f35b1dc2ec678034f19"}" wire:effects="[]" wire:id="svrqkNTAsTMWJdq4yvYt" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtcHVzaFwiPjxhIGhyZWY9XCIjY29udGVudC1wdXNoXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5QdXNoPFwvaDE+PGRpdiBkYXRhLWtub3dsZWRnZS1iYXNlLW1ldGFkYXRhPjxcL2Rpdj5cbjxwPllvdSBjYW4gcHVzaCBldmVudHMgZnJvbSBhbiBhcHBsaWNhdGlvbiBzZXJ2ZXIgdG8geW91ciBhcHBsaWNhdGlvbiBvbiBhIFRpemVuIGRldmljZS48XC9wPlxuPHA+T25jZSB5b3VyIGFwcGxpY2F0aW9uIGlzIHN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkIGluIHRoZSBwdXNoIHNlcnZlciB0aHJvdWdoIHRoZSA8YSBocmVmPVwiI3NlcnZpY2VcIj5wdXNoIHNlcnZpY2U8XC9hPiAoZGFlbW9uKSBvbiB0aGUgZGV2aWNlLCB5b3VyIGFwcGxpY2F0aW9uIHNlcnZlciBjYW4gc2VuZCBwdXNoIG1lc3NhZ2VzIHRvIHRoZSBhcHBsaWNhdGlvbiBvbiB0aGF0IHBhcnRpY3VsYXIgZGV2aWNlLjxcL3A+XG48cD5JZiBhIHB1c2ggbWVzc2FnZSBhcnJpdmVzIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcsIHRoZSBtZXNzYWdlIGlzIGF1dG9tYXRpY2FsbHkgZGVsaXZlcmVkIHRvIHRoZSBhcHBsaWNhdGlvbi4gSWYgdGhlIGFwcGxpY2F0aW9uIGlzIG5vdCBydW5uaW5nLCB0aGUgcHVzaCBzZXJ2aWNlIG1ha2VzIGEgc291bmQgb3IgdmlicmF0ZXMgYW5kIGFkZHMgYSB0aWNrZXIgb3IgYSBiYWRnZSBub3RpZmljYXRpb24gdG8gbm90aWZ5IHRoZSB1c2VyLiBCeSB0b3VjaGluZyB0aGlzIG5vdGlmaWNhdGlvbiwgdGhlIHVzZXIgY2FuIGNoZWNrIHRoZSBtZXNzYWdlLiBJZiB0aGUgYXBwbGljYXRpb24gc2VydmVyIHNlbmRzIGEgbWVzc2FnZSB3aXRoIGEgPGNvZGU+TEFVTkNIPFwvY29kZT4gb3B0aW9uLCB0aGUgcHVzaCBzZXJ2aWNlIGZvcmNpYmx5IGxhdW5jaGVzIHRoZSBhcHBsaWNhdGlvbiBhbmQgaGFuZHMgb3ZlciB0aGUgbWVzc2FnZSB0byB0aGUgYXBwbGljYXRpb24uPFwvcD5cbjxwPlRoZSBtYWluIGZlYXR1cmVzIG9mIHRoZSA8YSBocmVmPVwiXC9hcHBsaWNhdGlvblwvZG90bmV0XC9hcGlcL1RpemVuRlhcL2xhdGVzdFwvYXBpXC9UaXplbi5NZXNzYWdpbmcuUHVzaC5tZFwiPlRpemVuLk1lc3NhZ2luZy5QdXNoPFwvYT4gbmFtZXNwYWNlIGluY2x1ZGUgdGhlIGZvbGxvd2luZzo8XC9wPlxuPHVsPlxuPGxpPlxuPHA+Q29ubmVjdGluZyB0byB0aGUgcHVzaCBzZXJ2aWNlPFwvcD5cbjxwPllvdSBjYW4gPGEgaHJlZj1cIiNjb25uZWN0XCI+ZXN0YWJsaXNoIGEgc29ja2V0IGNvbm5lY3Rpb24gdG8gdGhlIHB1c2ggc2VydmljZTxcL2E+LjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPlJlZ2lzdGVyaW5nIHdpdGggdGhlIHB1c2ggc2VydmVyPFwvcD5cbjxwPllvdSBjYW4gPGEgaHJlZj1cIiNyZWdpc3RyYXRpb25cIj5vYnRhaW4gYSByZWdpc3RyYXRpb24gSUQgdG8gcmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbnM8XC9hPi48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5NYW5hZ2luZyBzZWN1cml0eTxcL3A+XG48cD5Zb3UgbmVlZCB0byA8YSBocmVmPVwiI3NlY3VyaXR5XCI+dGFrZSBjYXJlIG9mIHNlY3VyaXR5IGlzc3VlczxcL2E+IHdoZW4gc2VuZGluZyBub3RpZmljYXRpb25zIGNvbnRhaW5pbmcgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPlNlbmRpbmcgcHVzaCBub3RpZmljYXRpb25zPFwvcD5cbjxwPllvdSBjYW4gPGEgaHJlZj1cIiNzZW5kXCI+c2VuZCBwdXNoIG5vdGlmaWNhdGlvbnM8XC9hPiBmcm9tIHRoZSBhcHBsaWNhdGlvbiBzZXJ2ZXIgdG8gYW4gYXBwbGljYXRpb24uPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+UmVjZWl2aW5nIHB1c2ggbm90aWZpY2F0aW9uczxcL3A+XG48cD5Zb3UgY2FuIDxhIGhyZWY9XCIjcmVjZWl2ZV9wdXNoXCI+cmVjZWl2ZSBub3RpZmljYXRpb25zPFwvYT4gaW4gdGhlIGFwcGxpY2F0aW9uIGF0IGRpZmZlcmVudCBhcHBsaWNhdGlvbiBzdGF0ZXMuPFwvcD5cbjxcL2xpPlxuPFwvdWw+XG48cD48c3Ryb25nPkZpZ3VyZTogUHVzaCBtZXNzYWdpbmcgc2VydmljZTxcL3N0cm9uZz48XC9wPlxuPHA+PGltZyBzcmM9XCJtZWRpYVwvdWlfcHVzaF9tZXNzYWdlLnBuZ1wiIGFsdD1cIlB1c2ggbWVzc2FnaW5nIHNlcnZpY2VcIiBcLz48XC9wPlxuPHA+PGEgbmFtZT1cInNlcnZpY2VcIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LXNlcnZpY2UtYXJjaGl0ZWN0dXJlXCI+PGEgaHJlZj1cIiNjb250ZW50LXNlcnZpY2UtYXJjaGl0ZWN0dXJlXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5TZXJ2aWNlIGFyY2hpdGVjdHVyZTxcL2gyPlxuPHA+VGhlIGZvbGxvd2luZyBmaWd1cmUgaWxsdXN0cmF0ZXMgdGhlIHNlcnZpY2UgYXJjaGl0ZWN0dXJlIG9mIHRoZSBUaXplbiBwdXNoIG1lc3NhZ2luZyBzZXJ2aWNlLjxcL3A+XG48cD48c3Ryb25nPkZpZ3VyZTogU2VydmljZSBhcmNoaXRlY3R1cmU8XC9zdHJvbmc+PFwvcD5cbjxwPjxpbWcgc3JjPVwibWVkaWFcL3B1c2hfb3ZlcnZpZXcucG5nXCIgYWx0PVwiU2VydmljZSBhcmNoaXRlY3R1cmVcIiBcLz48XC9wPlxuPHA+VGhlIGZvbGxvd2luZyBzdGVwcyBpbGx1c3RyYXRlIGEgdHlwaWNhbCBzY2VuYXJpbyBmb3IgdXNpbmcgdGhlIHB1c2ggbWVzc2FnaW5nIHNlcnZpY2Ugb24gYSBUaXplbiBkZXZpY2U6PFwvcD5cbjxvbD5cbjxsaT5cbjxwPlRoZSBhcHBsaWNhdGlvbiBvbiB0aGUgZGV2aWNlIHJlZ2lzdGVycyBmb3IgdGhlIHB1c2ggbWVzc2FnaW5nIHNlcnZpY2UuPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+V2hlbiBhbiBhcHBsaWNhdGlvbiBpcyBpbnN0YWxsZWQgYW5kIGxhdW5jaGVkLCB0aGUgZGV2aWNlIGVzdGFibGlzaGVzIGEgcHVzaCBzZXNzaW9uIHdpdGggdGhlIFRpemVuIHNlcnZlciBieSBzZW5kaW5nIGEgcmVnaXN0cmF0aW9uIHJlcXVlc3QgdG8gdGhlIFRpemVuIHB1c2ggc2VydmVyIHRocm91Z2ggdGhlIHB1c2ggc2VydmljZS48XC9wPlxuPHA+VGhlIHB1c2ggc2Vzc2lvbiBpcyBtYW5hZ2VkIGJ5IHRoZSBUaXplbiBzZXJ2ZXIgYW5kIGRldmljZSBwbGF0Zm9ybSwgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBjcmVhdGUgYW55IGNvZGUgdG8gbWFuYWdlIGl0IHdpdGhpbiB0aGUgYXBwbGljYXRpb24uPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+SWYgdGhlIHJlZ2lzdHJhdGlvbiByZXF1ZXN0IGlzIGFwcHJvdmVkLCB0aGUgYXBwbGljYXRpb24gcmVjZWl2ZXMgYSByZWdpc3RyYXRpb24gSUQgdGhyb3VnaCB0aGUgcHVzaCBzZXJ2aWNlLiBUaGUgcmVnaXN0cmF0aW9uIElEIGlzIGEgdW5pcXVlIGtleSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBhcHBsaWNhdGlvbiBpbnN0YWxsZWQgb24gdGhhdCBwYXJ0aWN1bGFyIGRldmljZSBhbmQgcm91dGUgdGhlIHB1c2ggbWVzc2FnZS48XC9wPlxuPHA+VGhlIGFwcGxpY2F0aW9uIGRlbGl2ZXJzIHRoZSByZWdpc3RyYXRpb24gSUQgdG8gdGhlIGFwcGxpY2F0aW9uIHNlcnZlci4gVGhpcyByZWdpc3RyYXRpb24gSUQgaXMgdXNlZCB0byBpZGVudGlmeSB0aGUgYXBwbGljYXRpb24gaW5zdGFsbGVkIG9uIHRoYXQgcGFydGljdWxhciBkZXZpY2UuPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+V2hlbiB0aGUgYXBwbGljYXRpb24gc2VydmVyIG5lZWRzIHRvIHNlbmQgYSBwdXNoIG1lc3NhZ2UgdG8gdGhlIGFwcGxpY2F0aW9uIG9uIGEgcGFydGljdWxhciBkZXZpY2UsIGl0IGNhbGxzIHRoZSBUaXplbiBzZXJ2ZXIncyBvcGVuIEFQSSB0byBzZW5kIHRoZSBtZXNzYWdlIHRvZ2V0aGVyIHdpdGggdGhlIHJlZ2lzdHJhdGlvbiBJRC4gKEZvciBtb3JlIGluZm9ybWF0aW9uIGZvciBzZXJ2ZXIgZGV2ZWxvcGVycyBvbiBzZW5kaW5nIHB1c2ggbWVzc2FnZXMsIHNlZSA8YSBocmVmPVwicHVzaC1zZXJ2ZXIubWQjc2VuZF9zZXJ2ZXJcIj5TZW5kaW5nIFB1c2ggTm90aWZpY2F0aW9uczxcL2E+Lik8XC9wPlxuPHA+QSB0ZXh0IG1lc3NhZ2Ugb2YgdXAgdG8gMTAyNCBieXRlcyBjYW4gYmUgc2VudCBpbiBhIHB1c2ggbWVzc2FnZS4gSWYgdGhlIGFwcGxpY2F0aW9uIG5lZWRzIHRvIGRvd25sb2FkIGEgbGFyZ2UgYW1vdW50IG9mIGRhdGEsIHRoZSBhcHBsaWNhdGlvbiBzZXJ2ZXIgc2VuZHMgYSBsaW5rIHRvIHRoZSBkYXRhIGluIHRoZSBwdXNoIG1lc3NhZ2UuPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+V2hlbiB0aGUgVGl6ZW4gcHVzaCBzZXJ2ZXIgcmVjZWl2ZXMgdGhlIG1lc3NhZ2UgYW5kIHRoZSByZWdpc3RyYXRpb24gSUQsIGl0IGNoZWNrcyB3aGljaCBkZXZpY2UgaGFzIHRoZSBhcHBsaWNhdGlvbiB3aXRoIHRoZSBwYXJ0aWN1bGFyIHJlZ2lzdHJhdGlvbiBJRCBhbmQgdGhlbiByb3V0ZXMgdGhlIG1lc3NhZ2UgdG8gdGhhdCBkZXZpY2UuPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+V2hlbiB0aGUgcHVzaCBzZXJ2aWNlIHJlY2VpdmVzIHRoZSBtZXNzYWdlIGFuZCB0aGUgcmVnaXN0cmF0aW9uIElELCBpdCBzZW5kcyB0aGUgbWVzc2FnZSB0byB0aGUgZGVzdGluYXRpb24gYXBwbGljYXRpb24sIHdoaWNoIHJlY2VpdmVzIHRoZSBwdXNoIG1lc3NhZ2UuPFwvcD5cbjxcL2xpPlxuPFwvb2w+XG48aDIgaWQ9XCJjb250ZW50LXByZXJlcXVpc2l0ZXNcIj48YSBocmVmPVwiI2NvbnRlbnQtcHJlcmVxdWlzaXRlc1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+UHJlcmVxdWlzaXRlczxcL2gyPlxuPHA+VG8gZW5hYmxlIHlvdXIgYXBwbGljYXRpb24gdG8gdXNlIHRoZSBwdXNoIGZ1bmN0aW9uYWxpdHksIGZvbGxvdyB0aGUgc3RlcHMgYmVsb3c6PFwvcD5cbjxvbD5cbjxsaT5cbjxwPlRvIHVzZSB0aGUgPGEgaHJlZj1cIlwvYXBwbGljYXRpb25cL2RvdG5ldFwvYXBpXC9UaXplbkZYXC9sYXRlc3RcL2FwaVwvVGl6ZW4uTWVzc2FnaW5nLlB1c2gubWRcIj5UaXplbi5NZXNzYWdpbmcuUHVzaDxcL2E+IG5hbWVzcGFjZSwgdGhlIGFwcGxpY2F0aW9uIGhhcyB0byByZXF1ZXN0IHBlcm1pc3Npb24gYnkgYWRkaW5nIHRoZSBmb2xsb3dpbmcgcHJpdmlsZWdlIHRvIHRoZSA8Y29kZT50aXplbi1tYW5pZmVzdC54bWw8XC9jb2RlPiBmaWxlOjxcL3A+XG48Y29kZSBjbGFzcz1cImxhbmd1YWdlLVhNTFwiPiZsdDtwcml2aWxlZ2VzJmd0O1xuICAgJmx0O3ByaXZpbGVnZSZndDtodHRwOlwvXC90aXplbi5vcmdcL3ByaXZpbGVnZVwvcHVzaCZsdDtcL3ByaXZpbGVnZSZndDtcbiZsdDtcL3ByaXZpbGVnZXMmZ3Q7XG48XC9jb2RlPlxuPFwvbGk+XG48bGk+XG48cD5NYWtlIHN1cmUgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMgYXJlIGZ1bGZpbGxlZDo8XC9wPlxuPHVsPlxuPGxpPlxuPHA+SW50ZXJuZXQgYWNjZXNzPFwvcD5cbjxwPlRvIGNvbm5lY3QgdG8gdGhlIFRpemVuIHB1c2ggc2VydmVyIGFuZCByZWNlaXZlIG5vdGlmaWNhdGlvbnMgZnJvbSBpdCwgdGhlIHRhcmdldCBkZXZpY2Ugb3IgZW11bGF0b3IgbXVzdCBiZSBhYmxlIHRvIGNvbnRhY3QgYW55IElQIGFkZHJlc3Mgd2l0aCB0aGUgcG9ydCA1MjIzLiBJZiB5b3UgYXJlIGluIGFuIGVudGVycHJpc2UgbmV0d29yaywgZW5zdXJlIHRoYXQgdGhlIHByb3h5IHNldHRpbmcgaW4geW91ciBsb2NhbCBuZXR3b3JrIGFsbG93cyBvdXRnb2luZyB0cmFmZmljIGRlc3RpbmVkIGZvciB0aGlzIHBvcnQgbnVtYmVyLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPlBhY2thZ2UgSUQ8XC9wPlxuPHA+V2hlbiB5b3UgY3JlYXRlIGEgcHJvamVjdCBpbiBUaXplbiBTdHVkaW8sIHlvdSBhcmUgZ2l2ZW4gdGhlIHBhY2thZ2UgSUQgKHJhbmRvbWx5IGdlbmVyYXRlZCBieSBUaXplbiBTdHVkaW8gb3IgZW50ZXJlZCBieSB5b3Vyc2VsZikuIFRoZSBUaXplbiBwdXNoIHNlcnZlciBpZGVudGlmaWVzIHlvdXIgYXBwbGljYXRpb25zIHVzaW5nIHRoZSBwYWNrYWdlIElELjxcL3A+XG48XC9saT5cbjxcL3VsPlxuPFwvbGk+XG48XC9vbD5cbjxwPjxhIG5hbWU9XCJwZXJtaXNzaW9uXCI+PFwvYT5cbi0gUGVybWlzc2lvbiB0byBUaXplbiBwdXNoIHNlcnZlcnM8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPlRvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj51c2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+cHVzaDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+bWVzc2FnaW5nPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5zZXJ2aWNlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4sIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+dGhlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5hcHBsaWNhdGlvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+bmVlZHM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnBlcm1pc3Npb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5hY2Nlc3M8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+VGl6ZW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnB1c2g8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnNlcnZlcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPlJlcXVlc3Q8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnBlcm1pc3Npb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmZyb208XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+VGl6ZW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnB1c2g8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnNlcnZpY2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRlYW08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnVzaW5nPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5vbmU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPm9mPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj50aGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmZvbGxvd2luZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+b25saW5lPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5yZXF1ZXN0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5mb3JtczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+OjxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgLSAgIFs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPlJlcXVlc3Q8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+cGVybWlzc2lvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+Zm9yPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5hPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5uZXc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmFwcGxpY2F0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5dKDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+aHR0cHM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjo8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPlwvXC9kZXZlbG9wZXIudGl6ZW4ub3JnXC93ZWJmb3JtXC9yZXF1ZXN0LXBlcm1pc3Npb24tdGl6ZW4tcHVzaC1zZXJ2aWNlKXs6dGFyZ2V0PSZxdW90O19ibGFuayZxdW90O308XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgLSAgIFs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPkV4dGVuZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+dGhlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5leHBpcmF0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5kYXRlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5vcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+Y2hhbmdlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj50aGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnF1b3RhPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj5dKDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+aHR0cHM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjo8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPlwvXC9kZXZlbG9wZXIudGl6ZW4ub3JnXC93ZWJmb3JtXC9yZXF1ZXN0LWV4dGVuZC1leHBpcmF0aW9uLWRhdGUtb3ItY2hhbmdlLXF1b3RhKXs6dGFyZ2V0PSZxdW90O19ibGFuayZxdW90O30gZm9yIGFuIGFwcGxpY2F0aW9uIHRoYXQgYWxyZWFkeSBoYXMgdGhlIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBwdXNoIG1lc3NhZ2luZyBzZXJ2aWNlPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPldoZW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+dGVhbTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+YXBwcm92ZXM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+cmVxdWVzdDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnlvdTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+cmVjZWl2ZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+YTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+cHVzaDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+YXBwPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5JRDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+Y29ycmVzcG9uZGluZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+dG88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnlvdXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnBhY2thZ2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPklEPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4uPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxvbCBzdGFydD1cIjNcIj5cbjxsaT5cbjxwPlRvIHVzZSB0aGUgbWV0aG9kcyBhbmQgcHJvcGVydGllcyBvZiB0aGUgPGNvZGU+VGl6ZW4uTWVzc2FnaW5nLlB1c2g8XC9jb2RlPiBuYW1lc3BhY2UsIGluY2x1ZGUgaXQgaW4geW91ciBhcHBsaWNhdGlvbjo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnVzaW5nPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5UaXplbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+TWVzc2FnaW5nPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5QdXNoPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj47PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxcL2xpPlxuPFwvb2w+XG48ZGl2IGNsYXNzPVwibWQtYWxlcnQgbWQtYWxlcnQtbm90ZVwiPlxuPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6XC9cL3d3dy53My5vcmdcLzIwMDBcL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIj48cGF0aCBkPVwiTTAgOGE4IDggMCAxIDEgMTYgMEE4IDggMCAwIDEgMCA4Wm04LTYuNWE2LjUgNi41IDAgMSAwIDAgMTMgNi41IDYuNSAwIDAgMCAwLTEzWk02LjUgNy43NUEuNzUuNzUgMCAwIDEgNy4yNSA3aDFhLjc1Ljc1IDAgMCAxIC43NS43NXYyLjc1aC4yNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTJhLjc1Ljc1IDAgMCAxIDAtMS41aC4yNXYtMmgtLjI1YS43NS43NSAwIDAgMS0uNzUtLjc1Wk04IDZhMSAxIDAgMSAxIDAtMiAxIDEgMCAwIDEgMCAyWlwiXC8+PFwvc3ZnPk5vdGU8XC9zcGFuPlxuPHA+VGhlIHB1c2ggc2VydmljZSBzdXBwb3J0cyBsYXVuY2hpbmcgYW4gYXBwbGljYXRpb24gaW4gdGhlIGJhY2tncm91bmQuIFJlbWVtYmVyIHRoYXQgeW91IGNhbiBkZWxpdmVyIGFwcGxpY2F0aW9uIGRhdGEgdG8geW91ciBhcHBsaWNhdGlvbiB3aXRob3V0IGFuIHVud2FudGVkIFVJIGxhdW5jaC48XC9wPlxuPFwvZGl2PlxuPHA+PGEgbmFtZT1cImNvbm5lY3RcIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LWNvbm5lY3QtdG8tdGhlLXB1c2gtc2VydmljZVwiPjxhIGhyZWY9XCIjY29udGVudC1jb25uZWN0LXRvLXRoZS1wdXNoLXNlcnZpY2VcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkNvbm5lY3QgdG8gdGhlIHB1c2ggc2VydmljZTxcL2gyPlxuPHA+VG8gbWFuYWdlIHB1c2ggc2VydmljZSBjb25uZWN0aW9ucywgZm9sbG93IHRoZSBzdGVwcyBiZWxvdzo8XC9wPlxuPG9sPlxuPGxpPlxuPHA+RGVmaW5lIGV2ZW50IGhhbmRsZXJzOjxcL3A+XG48dWw+XG48bGk+PGNvZGU+RXZlbnRIYW5kbGVyU3RhdGVDaGFuZ2VkKCk8XC9jb2RlPiBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgY29ubmVjdGlvbiBzdGF0ZSBjaGFuZ2VzLjxcL2xpPlxuPGxpPjxjb2RlPkV2ZW50SGFuZGxlck5vdGlmaWNhdGlvblJlY2VpdmVkKCk8XC9jb2RlPiBpcyB0cmlnZ2VyZWQgd2hlbiB0aGUgcHVzaCBub3RpZmljYXRpb24gaXMgcmVjZWl2ZWQgZnJvbSB0aGUgcHVzaCBzZXJ2aWNlLjxcL2xpPlxuPFwvdWw+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+cHVibGljPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5zdGF0aWM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnZvaWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPkV2ZW50SGFuZGxlclN0YXRlQ2hhbmdlZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+b2JqZWN0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5zZW5kZXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiwgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5QdXNoQ29ubmVjdGlvblN0YXRlRXZlbnRBcmdzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5lPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ezxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPiAgICBcL1wvXC8gU3RhdGUgY2hhbmdlIGV2ZW50czxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPn07PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnB1YmxpYzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+c3RhdGljPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj52b2lkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5FdmVudEhhbmRsZXJOb3RpZmljYXRpb25SZWNlaXZlZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+b2JqZWN0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5zZW5kZXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiwgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5QdXNoTWVzc2FnZUV2ZW50QXJnczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+ZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPns8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiM2QTczN0Q7LS1zaGlraS1kYXJrOiM2QTczN0RcIj4gICAgXC9cL1wvIE5vdGlmaWNhdGlvbiByZWNlaXZlZCBldmVudHM8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj59OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48XC9saT5cbjxsaT5cbjxwPlJlZ2lzdGVyIHRoZSBldmVudCBoYW5kbGVycyBmb3IgdGhlIDxjb2RlPlN0YXRlQ2hhbmdlZDxcL2NvZGU+IGFuZCA8Y29kZT5Ob3RpZmljYXRpb25SZWNlaXZlZDxcL2NvZGU+IGV2ZW50cyBvZiB0aGUgPGEgaHJlZj1cIlwvYXBwbGljYXRpb25cL2RvdG5ldFwvYXBpXC9UaXplbkZYXC9sYXRlc3RcL2FwaVwvVGl6ZW4uTWVzc2FnaW5nLlB1c2guUHVzaENsaWVudC5tZFwiPlRpemVuLk1lc3NhZ2luZy5QdXNoLlB1c2hDbGllbnQ8XC9hPiBjbGFzcyBhbmQgY29ubmVjdCB0byB0aGUgcHVzaCBzZXJ2aWNlIHdpdGggdGhlIDxjb2RlPlB1c2hTZXJ2aWNlQ29ubmVjdCgpPFwvY29kZT4gbWV0aG9kOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+dHJ5PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ezxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnN0cmluZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+cHVzaEFwcElkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtZT1VSX1BVU0hfQVBQX0lEJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj47PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICBQdXNoQ2xpZW50LlN0YXRlQ2hhbmdlZCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPis9PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gRXZlbnRIYW5kbGVyU3RhdGVDaGFuZ2VkOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICBQdXNoQ2xpZW50Lk5vdGlmaWNhdGlvblJlY2VpdmVkIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+Kz08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBFdmVudEhhbmRsZXJOb3RpZmljYXRpb25SZWNlaXZlZDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgIFB1c2hDbGllbnQuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5QdXNoU2VydmljZUNvbm5lY3Q8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPihwdXNoQXBwSWQpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICBQdXNoQ2xpZW50LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+R2V0VW5yZWFkTm90aWZpY2F0aW9uczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KCk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+fTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPmNhdGNoPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gKDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+RXhjZXB0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5lPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ezxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICBDb25zb2xlLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+V3JpdGVMaW5lPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtFeGNlcHRpb24gb2NjdXJyZWQmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPis8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBlLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+VG9TdHJpbmc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPigpKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj59PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxwPkFmdGVyIGNhbGxpbmcgdGhlIDxjb2RlPlB1c2hTZXJ2aWNlQ29ubmVjdCgpPFwvY29kZT4gbWV0aG9kLCB0aGUgYXBwbGljYXRpb24gZXN0YWJsaXNoZXMgYSBzb2NrZXQgY29ubmVjdGlvbiB0byB0aGUgcHVzaCBzZXJ2aWNlOjxcL3A+XG48dWw+XG48bGk+VGhlIDxjb2RlPllPVVJfUFVTSF9BUFBfSUQ8XC9jb2RlPiBwYXJhbWV0ZXIgaXMgdGhlIHB1c2ggYXBwIElEIHJlY2VpdmVkIGZyb20gdGhlIFRpemVuIHB1c2ggc2VydmVyIHRlYW0gd2hlbiBhY2Nlc3MgdG8gdGhlIHNlcnZlciB3YXMgcmVxdWVzdGVkLiBLZWVwIHRoaXMgcHVzaCBhcHAgSUQgY29uZmlkZW50aWFsLCBvdGhlcndpc2UsIHlvdXIgcHVzaCBub3RpZmljYXRpb25zIGNhbiBiZSBoaWphY2tlZCBieSBtYWxpY2lvdXMgYXBwbGljYXRpb25zLjxcL2xpPlxuPGxpPklmIHRoZSA8Y29kZT5QdXNoU2VydmljZUNvbm5lY3QoKTxcL2NvZGU+IG1ldGhvZCBjYXRjaGVzIGFueSBleGNlcHRpb24sIGl0IG1lYW5zIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2aWNlIGZhaWxlZC4gVGhpcyBoYXBwZW5zIG1vc3QgbGlrZWx5IHdoZW4gdGhlIDxhIGhyZWY9XCIjcHJlcmVxdWlzaXRlc1wiPnB1c2ggcHJpdmlsZWdlPFwvYT4gaXMgbm90IGFkZGVkIHRvIHRoZSBhcHBsaWNhdGlvbiBtYW5pZmVzdC48XC9saT5cbjxcL3VsPlxuPHA+SWYgdGhlIGNvbm5lY3Rpb24gd2l0aCB0aGUgcHVzaCBzZXJ2aWNlIHN1Y2NlZWRzLCB0aGUgYXBwbGljYXRpb24gbXVzdCByZXF1ZXN0IHRoZSB1bnJlYWQgbm90aWZpY2F0aW9uIG1lc3NhZ2VzIHNlbnQgZHVyaW5nIHRoZSBkaXNjb25uZWN0ZWQgc3RhdGUgYnkgdXNpbmcgdGhlIDxjb2RlPkdldFVucmVhZE5vdGlmaWNhdGlvbigpPFwvY29kZT4gbWV0aG9kLjxcL3A+XG48cD5Fc3RhYmxpc2ggYSBjb25uZWN0aW9uIHRvIHRoZSBwdXNoIHNlcnZpY2Ugd2hlbiB0aGUgYXBwbGljYXRpb24gaXMgbGF1bmNoZWQgYW5kIGRpc2Nvbm5lY3QgZnJvbSB0aGUgc2VydmljZSB3aGVuIGl0IHRlcm1pbmF0ZXMuIFRoZSBhcHBsaWNhdGlvbiBjYW4gYmUgcmVzdW1lZCBhZnRlciBiZWluZyBwYXVzZWQuIFRvIGVuc3VyZSB0aGF0IHB1c2ggbm90aWZpY2F0aW9ucyBhcmUgaGFuZGxlZCBmbHVlbnRseSwgdGhlIDxjb2RlPlB1c2hTZXJ2aWNlQ29ubmVjdCgpPFwvY29kZT4gbWV0aG9kIG11c3QgYmUgY2FsbGVkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGlzIHJlc3VtZWQuPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+RGlzY29ubmVjdCBmcm9tIHRoZSBwdXNoIHNlcnZpY2UuPFwvcD5cbjxwPldoZW4gdGhlIGFwcGxpY2F0aW9uIHRlcm1pbmF0ZXMgb3Igbm8gbG9uZ2VyIHVzZXMgdGhlIHB1c2ggc2VydmljZSwgY2xvc2UgdGhlIGNvbm5lY3Rpb24gdXNpbmcgdGhlIDxjb2RlPlB1c2hTZXJ2aWNlRGlzY29ubmVjdCgpPFwvY29kZT4gbWV0aG9kLjxcL3A+XG48cD5UaGUgPGNvZGU+UHVzaFNlcnZpY2VEaXNjb25uZWN0KCk8XC9jb2RlPiBtZXRob2QgcmV0dXJucyBhbGwgdGhlIHJlc291cmNlcyBhbGxvY2F0ZWQgZm9yIHRoZSBjb25uZWN0aW9uOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+UHVzaENsaWVudC48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlB1c2hTZXJ2aWNlRGlzY29ubmVjdDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KCk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxwPlRoZSBjb25uZWN0aW9uIGlzIGF1dG9tYXRpY2FsbHkgY2xvc2VkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIHRlcm1pbmF0ZXMuIEhlbmNlLCBpZiB0aGUgYXBwbGljYXRpb24gdXNlcyB0aGUgcHVzaCBzZXJ2aWNlIHdoaWxlIGJlaW5nIGxhdW5jaGVkLCBpdCBkb2VzIG5vdCBuZWVkIHRoaXMgbWV0aG9kLjxcL3A+XG48cD5UaGUgYXBwbGljYXRpb24gY2FuIGFsc28gZGlzY29ubmVjdCB0aGUgc2VydmljZSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBhcHBsaWNhdGlvbiBvcGVyYXRpb24uIElmIHlvdSBhZGQgYSB0b2dnbGUgc3dpdGNoIHRvIHRoZSBhcHBsaWNhdGlvbiBmb3Igc3dpdGNoaW5nIHRoZSBwdXNoIHNlcnZpY2Ugb24gYW5kIG9mZiwgY2FsbCB0aGlzIG1ldGhvZCB3aGVuIHRoZSBzZXJ2aWNlIGlzIHN3aXRjaGVkIG9mZi4gRG8gbm90IGNhbGwgdGhpcyBtZXRob2QgaW5zaWRlIGFueSBldmVudCBoYW5kbGVycywgaG93ZXZlciwgc2luY2UgaXQgY2FuIGNhdXNlIHRoZSBhcHBsaWNhdGlvbiB0byBjcmFzaC48XC9wPlxuPHA+VGhlIGFwcGxpY2F0aW9uIGNhbiBiZSBwYXVzZWQgYnkgcHJlc3NpbmcgdGhlIDxzdHJvbmc+SG9tZTxcL3N0cm9uZz4gb3IgPHN0cm9uZz5CYWNrPFwvc3Ryb25nPiBrZXkuIEZvciBhIHByb3BlciBwdXNoIG9wZXJhdGlvbiwgdGhlIDxjb2RlPlB1c2hTZXJ2aWNlRGlzY29ubmVjdCgpPFwvY29kZT4gbWV0aG9kIG11c3QgYmUgY2FsbGVkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGlzIHBhdXNlZC48XC9wPlxuPFwvbGk+XG48XC9vbD5cbjxwPjxhIG5hbWU9XCJzdGF0ZVwiPjxcL2E+PFwvcD5cbjxvbCBzdGFydD1cIjRcIj5cbjxsaT5cbjxwPkhhbmRsZSBzdGF0ZSB0cmFuc2l0aW9ucy48XC9wPlxuPHA+QWZ0ZXIgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZpY2UgaXMgbWFkZSwgdGhlIGFwcGxpY2F0aW9uIGlzIG5vdGlmaWVkIHdoZW5ldmVyIHRoZSBjb25uZWN0aW9uIHN0YXRlIGNoYW5nZXMuIFRoaXMgbm90aWZpY2F0aW9uIGlzIGNvbmR1Y3RlZCB0aHJvdWdoIHRoZSA8Y29kZT5FdmVudEhhbmRsZXJTdGF0ZUNoYW5nZWQoKTxcL2NvZGU+IGV2ZW50IGhhbmRsZXIuIFRoZSBmb2xsb3dpbmcgZmlndXJlIGlsbHVzdHJhdGVzIHRoZSBwb3NzaWJsZSBzdGF0ZXMgb2YgdGhlIHB1c2ggc2VydmljZS48XC9wPlxuPHA+PGltZyBzcmM9XCJtZWRpYVwvcHVzaF9zdGF0ZV90cmFuc2l0aW9uc19jcy5wbmdcIiBhbHQ9XCJQdXNoIHNlcnZpY2Ugc3RhdGUgdHJhbnNpdGlvbnNcIiBcLz48XC9wPlxuPHA+T25jZSBsYXVuY2hlZCwgdGhlIGFwcGxpY2F0aW9uIGlzIGluIHRoZSA8Y29kZT5Jbml0aWFsPFwvY29kZT4gc3RhdGUuIFdoZW4gdGhlIGFwcGxpY2F0aW9uIGVzdGFibGlzaGVzIGEgY29ubmVjdGlvbiB0byB0aGUgc2VydmljZSB1c2luZyB0aGUgPGNvZGU+UHVzaFNlcnZpY2VDb25uZWN0KCk8XC9jb2RlPiBtZXRob2QsIHRoZSBzdGF0ZSBiZWNvbWVzIGVpdGhlciA8Y29kZT5VbnJlZ2lzdGVyZWQ8XC9jb2RlPiBvciA8Y29kZT5SZWdpc3RlcmVkPFwvY29kZT46PFwvcD5cbjx1bD5cbjxsaT5JZiB0aGUgYXBwbGljYXRpb24gaXMgY3VycmVudGx5IHJlZ2lzdGVyZWQgdG8gdGhlIHB1c2ggc2VydmVyLCB0aGUgc2VydmljZSBmb3JjZXMgaXQgdG8gdHJhbnNpdCBmcm9tIHRoZSA8Y29kZT5Jbml0aWFsPFwvY29kZT4gc3RhdGUgdG8gdGhlIDxjb2RlPlJlZ2lzdGVyZWQ8XC9jb2RlPiBzdGF0ZS4gSW4gdGhpcyBjYXNlLCB0aGUgYXBwbGljYXRpb24gY2FuIHJlcXVlc3QgZGVyZWdpc3RyYXRpb24gZnJvbSB0aGUgcHVzaCBzZXJ2ZXIgdXNpbmcgdGhlIDxjb2RlPlB1c2hTZXJ2aWNlRGVyZWdpc3RlcigpPFwvY29kZT4gbWV0aG9kLiBJZiB0aGlzIHJlcXVlc3QgaXMgYXBwcm92ZWQgYnkgdGhlIHB1c2ggc2VydmVyLCB0aGUgc3RhdGUgdHJhbnNpdHMgdG8gPGNvZGU+VW5yZWdpc3RlcmVkPFwvY29kZT4uPFwvbGk+XG48bGk+SWYgdGhlIGFwcGxpY2F0aW9uIGlzIG5vdCBjdXJyZW50bHkgcmVnaXN0ZXJlZCB0byB0aGUgcHVzaCBzZXJ2ZXIsIHRoZSBzdGF0ZSB0cmFuc2l0cyBmcm9tIHRoZSA8Y29kZT5Jbml0aWFsPFwvY29kZT4gc3RhdGUgdG8gdGhlIDxjb2RlPlVucmVnaXN0ZXJlZDxcL2NvZGU+IHN0YXRlLiBJbiB0aGlzIGNhc2UsIHRoZSBhcHBsaWNhdGlvbiBjYW4gcmVxdWVzdCByZWdpc3RyYXRpb24gdG8gdGhlIHB1c2ggc2VydmVyIHVzaW5nIHRoZSA8Y29kZT5QdXNoU2VydmljZVJlZ2lzdGVyKCk8XC9jb2RlPiBtZXRob2QuIElmIHRoaXMgcmVxdWVzdCBpcyBhcHByb3ZlZCBieSB0aGUgcHVzaCBzZXJ2ZXIsIHRoZSBzdGF0ZSB0cmFuc2l0cyB0byA8Y29kZT5SZWdpc3RlcmVkPFwvY29kZT4uPFwvbGk+XG48bGk+V2hlbiBhbiBlcnJvciBvY2N1cnMsIHRoZSBzdGF0ZSB0cmFuc2l0cyB0byA8Y29kZT5FcnJvcjxcL2NvZGU+LjxcL2xpPlxuPFwvdWw+XG48cD5XaGVuIHRoZSBjdXJyZW50IHN0YXRlIHRyYW5zaXRzLCB0aGUgPGNvZGU+RXZlbnRIYW5kbGVyU3RhdGVDaGFuZ2VkKCk8XC9jb2RlPiBldmVudCBoYW5kbGVyIGlzIGNhbGxlZCBhbmQgdGhlIG5ldyBzdGF0ZSBpcyBvYnRhaW5lZC4gRGV0ZXJtaW5lIHRoZSBhcHBsaWNhdGlvbiBhY3Rpb25zIGJhc2VkIG9uIHRoZSBuZXcgc3RhdGU6PFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBzaGlraS10aGVtZXMgZ2l0aHViLWxpZ2h0IGdpdGh1Yi1kYXJrXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7LS1zaGlraS1kYXJrLWJnOiMyNDI5MmU7Y29sb3I6IzI0MjkyZTstLXNoaWtpLWRhcms6I2UxZTRlODtcIj48Y29kZT48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5wdWJsaWM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnN0YXRpYzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+dm9pZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+RXZlbnRIYW5kbGVyU3RhdGVDaGFuZ2VkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5vYmplY3Q8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnNlbmRlcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlB1c2hDb25uZWN0aW9uU3RhdGVFdmVudEFyZ3M8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPmU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPik8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj57PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+c3dpdGNoPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gKGUuc3RhdGUpPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgIHs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+Y2FzZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+UHVzaENvbm5lY3Rpb25TdGF0ZUV2ZW50QXJnczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+UHVzaFN0YXRlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5VbnJlZ2lzdGVyZWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjo8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICBDb25zb2xlLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+V3JpdGVMaW5lPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtBcnJpdmVkIGF0IFNUQVRFX1VOUkVHSVNURVJFRCZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPk9uU3RhdGVVbnJlZ2lzdGVyZWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPigpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+YnJlYWs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+Y2FzZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+UHVzaENvbm5lY3Rpb25TdGF0ZUV2ZW50QXJnczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+UHVzaFN0YXRlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5SZWdpc3RlcmVkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj46PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICAgICAgQ29uc29sZS48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPldyaXRlTGluZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7QXJyaXZlZCBhdCBTVEFURV9SRUdJU1RFUkVEJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+T25TdGF0ZVJlZ2lzdGVyZWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPigpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+YnJlYWs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+Y2FzZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+UHVzaENvbm5lY3Rpb25TdGF0ZUV2ZW50QXJnczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+UHVzaFN0YXRlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5TdGF0ZUVycm9yPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj46PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICAgICAgQ29uc29sZS48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPldyaXRlTGluZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7QXJyaXZlZCBhdCBTVEFURV9FUlJPUiZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+KzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IGUuRXJyb3IpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+T25TdGF0ZUVycm9yPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPmJyZWFrPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj47PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPmRlZmF1bHQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjo8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICBDb25zb2xlLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+V3JpdGVMaW5lPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtVbmtub3duIFN0YXRlJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4pOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+YnJlYWs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgfTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPn08XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHA+SW4gdGhlIGFib3ZlIGV4YW1wbGUsIHRoZSA8Y29kZT5PblN0YXRlUmVnaXN0ZXJlZCgpPFwvY29kZT4sIDxjb2RlPk9uU3RhdGVVbnJlZ2lzdGVyZWQoKTxcL2NvZGU+LCBhbmQgPGNvZGU+T25TdGF0ZUVycm9yKCk8XC9jb2RlPiBtZXRob2RzIGNvbnRhaW4gdGhlIGFjdGlvbnMgZm9yIHRoZSA8Y29kZT5SZWdpc3RlcmVkPFwvY29kZT4sIDxjb2RlPlVucmVnaXN0ZXJlZDxcL2NvZGU+LCBhbmQgPGNvZGU+U3RhdGVFcnJvcjxcL2NvZGU+IHN0YXRlcywgcmVzcGVjdGl2ZWx5LiBUaGUgYXBwbGljYXRpb24gZG9lcyBub3QgbmVlZCB0byBoYW5kbGUgdGhlIDxjb2RlPkluaXRpYWw8XC9jb2RlPiBzdGF0ZSwgYmVjYXVzZSBpdCBpcyBtYWludGFpbmVkIGludGVybmFsbHksIGFuZCB0aGlzIGV2ZW50IGhhbmRsZXIgaXMgbmV2ZXIgaW52b2tlZCBpbiB0aGF0IHN0YXRlLiBUaGUgPGNvZGU+ZS5FcnJvcjxcL2NvZGU+IGlzIHRoZSBlcnJvciBtZXNzYWdlIGZyb20gdGhlIHB1c2ggc2VydmljZSB3aGVuIHRoZSBzdGF0ZSBiZWNvbWVzIDxjb2RlPlN0YXRlRXJyb3I8XC9jb2RlPi48XC9wPlxuPHA+VGhlIHJlZ2lzdHJhdGlvbiBzdGF0ZSBpcyBzdWJqZWN0IHRvIGNoYW5nZS4gQ29uc2VxdWVudGx5LCBtYWtlIHN1cmUgdGhhdCB0aGUgYXBwbGljYXRpb24gY29ubmVjdHMgdG8gdGhlIHB1c2ggc2VydmljZSB3aGVuZXZlciBpdCBpcyBsYXVuY2hlZC48XC9wPlxuPFwvbGk+XG48XC9vbD5cbjxwPjxhIG5hbWU9XCJyZWdpc3RyYXRpb25cIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LXJlZ2lzdGVyLXdpdGgtdGhlLXB1c2gtc2VydmVyXCI+PGEgaHJlZj1cIiNjb250ZW50LXJlZ2lzdGVyLXdpdGgtdGhlLXB1c2gtc2VydmVyXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5SZWdpc3RlciB3aXRoIHRoZSBwdXNoIHNlcnZlcjxcL2gyPlxuPHA+VG8gcmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbnMsIHRoZSBhcHBsaWNhdGlvbiBtdXN0IHNlbmQgYSByZWdpc3RyYXRpb24gcmVxdWVzdCB0byB0aGUgVGl6ZW4gcHVzaCBzZXJ2ZXIuIFdoZW4gdGhlIHNlcnZlciByZWNlaXZlcyB0aGlzIHJlcXVlc3QsIGl0IGFzc2lnbnMgYSByZWdpc3RyYXRpb24gSUQgdGhhdCBpcyB1bmlxdWUgdG8gdGhlIGFwcGxpY2F0aW9uIG9uIHRoZSBwYXJ0aWN1bGFyIGRldmljZS4gV2hlbiBzZW5kaW5nIGEgbm90aWZpY2F0aW9uIGZyb20geW91ciBhcHBsaWNhdGlvbiBzZXJ2ZXIsIHRoaXMgcmVnaXN0cmF0aW9uIElEIGlzIHVzZWQgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3Mgb2YgdGhlIGFwcGxpY2F0aW9uLiBJZiB0aGUgYXBwbGljYXRpb24gbm8gbG9uZ2VyIG5lZWRzIHRvIHJlY2VpdmUgcHVzaCBub3RpZmljYXRpb25zLCBpdCBuZWVkcyB0byBzZW5kIGEgZGVyZWdpc3RyYXRpb24gcmVxdWVzdCB0byB0aGUgc2VydmVyLjxcL3A+XG48cD5UbyByZWdpc3RlciB3aXRoIHRoZSBwdXNoIHNlcnZlciwgZm9sbG93IHRoZSBzdGVwcyBiZWxvdzo8XC9wPlxuPG9sPlxuPGxpPlxuPHA+UmVxdWVzdCByZWdpc3RyYXRpb24uPFwvcD5cbjxwPkFmdGVyIGNvbm5lY3RpbmcgdG8gdGhlIHB1c2ggc2VydmljZSwgcmVxdWVzdCByZWdpc3RyYXRpb24gdXNpbmcgdGhlIDxjb2RlPlB1c2hTZXJ2ZXJSZWdpc3RlcigpPFwvY29kZT4gbWV0aG9kIG9mIHRoZSA8YSBocmVmPVwiXC9hcHBsaWNhdGlvblwvZG90bmV0XC9hcGlcL1RpemVuRlhcL2xhdGVzdFwvYXBpXC9UaXplbi5NZXNzYWdpbmcuUHVzaC5QdXNoQ2xpZW50Lm1kXCI+VGl6ZW4uTWVzc2FnaW5nLlB1c2guUHVzaENsaWVudDxcL2E+IGNsYXNzOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+cHVibGljPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5zdGF0aWM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnZvaWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPk9uU3RhdGVVbnJlZ2lzdGVyZWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPigpPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ezxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlRhc2s8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZsdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPlNlcnZlclJlc3BvbnNlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4mZ3Q7IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+dHI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBQdXNoQ2xpZW50LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+UHVzaFNlcnZlclJlZ2lzdGVyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgdHIuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5HZXRBd2FpdGVyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKS48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPk9uQ29tcGxldGVkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKSA9PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj4mZ3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgIHs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+U2VydmVyUmVzcG9uc2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPnJlczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IHRyLlJlc3VsdDs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgfTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPn08XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPHA+VGhlIDxjb2RlPk9uU3RhdGVVbnJlZ2lzdGVyZWQoKTxcL2NvZGU+IG1ldGhvZCBjb250YWluaW5nIHRoZSA8Y29kZT5QdXNoU2VydmljZVJlZ2lzdGVyKCk8XC9jb2RlPiBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlIHN0YXRlIHRyYW5zaXRzIHRvIDxjb2RlPlVucmVnaXN0ZXJlZDxcL2NvZGU+LiBUaGlzIHNhbXBsZSBhcHBsaWNhdGlvbiBpcyBkZXNpZ25lZCB0byBzZW5kIHRoZSByZWdpc3RyYXRpb24gcmVxdWVzdCBhcyBzb29uIGFzIGl0IGlzIGNvbm5lY3RlZCB0byB0aGUgcHVzaCBzZXJ2aWNlLiBJZiB0aGUgYXBwbGljYXRpb24gcmVxdWlyZXMgdXNlcnMgdG8gbG9nIGluIHRvIHRoZSBzZXJ2aWNlLCB0aGlzIHJlZ2lzdHJhdGlvbiByZXF1ZXN0IG11c3QgYmUgc2VudCBhZnRlciB0aGUgbG9naW4gcHJvY2VzcyBpcyBjb21wbGV0ZS48XC9wPlxuPHA+VGhlIHJlZ2lzdHJhdGlvbiByZXF1ZXN0IGlzIG5vbi1ibG9ja2luZy4gSWYgdGhlIHB1c2ggc2VydmljZSBzdWNjZXNzZnVsbHkgc2VuZHMgdGhlIHJlcXVlc3QgdG8gdGhlIHNlcnZlciBhbmQgcmVjZWl2ZXMgYW4gYXBwcm92YWwsIHRoZSA8Y29kZT5yZXM8XC9jb2RlPiB2YWx1ZSBpcyA8Y29kZT5TdWNjZXNzPFwvY29kZT4uPFwvcD5cbjxwPldoZW4gYW4gZXJyb3Igb2NjdXJzIGluIHRoZSBtaWRkbGUgb2YgdGhlIHJlZ2lzdHJhdGlvbiBwcm9jZXNzLCB0aGUgcmVhc29uIGlzIHJldHVybmVkLiBGb3IgZXhhbXBsZSwgaWYgdGhlIHB1c2ggc2VydmVyIGlzIG5vdCByZXNwb25kaW5nLCB0aGUgPGNvZGU+U2VydmVyUmVzcG9uc2UgcmVzPFwvY29kZT4gcmV0dXJucyA8Y29kZT5UaW1lb3V0PFwvY29kZT4uIEluIHRoaXMgY2FzZSwgdGhlIGFwcGxpY2F0aW9uIGRvZXMgbm90IG5lZWQgdG8gcmVxdWVzdCByZWdpc3RyYXRpb24gYWdhaW4gYmVjYXVzZSB0aGUgcHVzaCBzZXJ2aWNlIGtlZXBzIHRoZSBwcmV2aW91cyByZXF1ZXN0IGFuZCBzZW5kcyBpdCB3aGVuIHRoZSBuZXR3b3JrIGJlY29tZXMgb25saW5lLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPkhhbmRsZSB0aGUgdHJhbnNpdCB0byB0aGUgPGNvZGU+UmVnaXN0ZXJlZDxcL2NvZGU+IHN0YXRlLjxcL3A+XG48cD5UaGUgYXBwbGljYXRpb24gdHJhbnNpdHMgdG8gdGhlIDxjb2RlPlJlZ2lzdGVyZWQ8XC9jb2RlPiBzdGF0ZSBpbiBvbmUgb2YgdGhlIGZvbGxvd2luZyBjYXNlczo8XC9wPlxuPHVsPlxuPGxpPlRoZSByZWdpc3RyYXRpb24gcmVxdWVzdCBzZW50IGF0IHRoZSA8Y29kZT5VbnJlZ2lzdGVyZWQ8XC9jb2RlPiBzdGF0ZSBpcyBhcHByb3ZlZC48XC9saT5cbjxsaT5UaGUgYWxyZWFkeS1yZWdpc3RlcmVkIGFwcGxpY2F0aW9uIGF0IHRoZSA8Y29kZT5Jbml0aWFsPFwvY29kZT4gc3RhdGUgaXMgc3VjY2Vzc2Z1bGx5IGNvbm5lY3RlZCB0byB0aGUgcHVzaCBzZXJ2aWNlLjxcL2xpPlxuPFwvdWw+XG48cD5JbiBib3RoIGNhc2VzLCB0aGUgPGNvZGU+RXZlbnRIYW5kbGVyU3RhdGVDaGFuZ2VkKCk8XC9jb2RlPiBpcyBjYWxsZWQgd2l0aCB0aGUgPGNvZGU+UmVnaXN0ZXJlZDxcL2NvZGU+IHZhbHVlLiBUaGUgYXBwbGljYXRpb24gY2FsbHMgdGhlIDxjb2RlPk9uU3RhdGVSZWdpc3RlcmVkKCk8XC9jb2RlPiBtZXRob2QgaW1tZWRpYXRlbHksIDxhIGhyZWY9XCIjc3RhdGVcIj5hcyBzaG93biBpbiB0aGUgc3RhdGUgdHJhbnNpdGlvbnM8XC9hPi4gV2hlbiBkZWZpbmluZyB0aGUgYWN0aW9ucyBpbnNpZGUgdGhlIG1ldGhvZCwga2VlcCB0aGUgZm9sbG93aW5nIHBvaW50cyBpbiBtaW5kOjxcL3A+XG48dWw+XG48bGk+XG48cD5JZiB0aGUgYXBwbGljYXRpb24gaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkLCByZXF1ZXN0IHRoZSBwdXNoIHNlcnZpY2UgZm9yIGFueSB1bnJlYWQgbm90aWZpY2F0aW9ucyB0aGF0IGhhdmUgYXJyaXZlZCBiZWZvcmUgdGhlIGFwcGxpY2F0aW9uIGlzIGxhdW5jaGVkLjxcL3A+XG48cD5SZXF1ZXN0IHRoZSB1bnJlYWQgbm90aWZpY2F0aW9ucyBhc3luY2hyb25vdXNseS4gSWYgdGhlcmUgaXMgc3VjaCBhIG5vdGlmaWNhdGlvbiwgaXQgY2FuIGJlIHJlY2VpdmVkIHRocm91Z2ggdGhlIDxjb2RlPkV2ZW50SGFuZGxlck5vdGlmaWNhdGlvblJlY2VpdmVkKCk8XC9jb2RlPiBldmVudCBoYW5kbGVyIGFmdGVyIHRoZSA8Y29kZT5PblN0YXRlUmVnaXN0ZXJlZCgpPFwvY29kZT4gbWV0aG9kIHJldHVybnMuPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+SWYgdGhlIGFwcGxpY2F0aW9uIGlzIG5ld2x5IHJlZ2lzdGVyZWQsIHNlbmQgdGhlIHJlZ2lzdHJhdGlvbiBJRCBpc3N1ZWQgYnkgdGhlIHB1c2ggc2VydmVyIHRvIHlvdXIgYXBwbGljYXRpb24gc2VydmVyLjxcL3A+XG48cD5JZiB0aGUgSUQgaXMgbmV3IG9yIHVwZGF0ZWQsIHlvdSBuZWVkIHRvIHNlbmQgaXQgdG8geW91ciBhcHBsaWNhdGlvbiBzZXJ2ZXIuIFRoaXMgSUQgaXMgdXNlZCBhcyBhIGRlc3RpbmF0aW9uIGFkZHJlc3MgZm9yIHRoZSBhcHBsaWNhdGlvbiBvbiBhIHBhcnRpY3VsYXIgZGV2aWNlLiBJZiB0aGUgYXBwbGljYXRpb24gaGFzIGFscmVhZHkgc2VudCB0aGUgSUQsIHlvdSBjYW4gc2tpcCB0aGlzIHN0ZXA6PFwvcD5cbjxcL2xpPlxuPFwvdWw+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+cHVibGljPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5zdGF0aWM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnZvaWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPk9uU3RhdGVSZWdpc3RlcmVkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPns8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiM2QTczN0Q7LS1zaGlraS1kYXJrOiM2QTczN0RcIj4gICAgXC9cL1wvIFJlcXVlc3QgdW5yZWFkIG5vdGlmaWNhdGlvbnMgdG8gdGhlIHB1c2ggc2VydmljZTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPiAgICBcL1wvXC8gRXZlbnRIYW5kbGVyTm90aWZpY2F0aW9uUmVjZWl2ZWQoKSBpcyBjYWxsZWQgaWYgdGhlcmUgYXJlIHVucmVhZCBub3RpZmljYXRpb25zPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgIFB1c2hDbGllbnQuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5HZXRVbnJlYWROb3RpZmljYXRpb25zPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkE3MzdEOy0tc2hpa2ktZGFyazojNkE3MzdEXCI+ICAgIFwvXC9cLyBHZXQgdGhlIHJlZ2lzdHJhdGlvbiBJRDxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnN0cmluZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+aWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBQdXNoQ2xpZW50LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+R2V0UmVnaXN0cmF0aW9uSWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPigpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiM2QTczN0Q7LS1zaGlraS1kYXJrOiM2QTczN0RcIj4gICAgXC9cL1wvIFNlbmQgcmVnaXN0cmF0aW9uIElEIHRvIHlvdXIgYXBwbGljYXRpb24gc2VydmVyIGlmIG5lY2Vzc2FyeTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPn08XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPFwvbGk+XG48bGk+XG48cD5SZXF1ZXN0IGRlcmVnaXN0cmF0aW9uLjxcL3A+XG48cD5XaGVuIHRoZSBhcHBsaWNhdGlvbiBubyBsb25nZXIgd2FudHMgdG8gcmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbnMsIHVzZSB0aGUgZm9sbG93aW5nIG1ldGhvZCB0byByZXF1ZXN0IGRlcmVnaXN0cmF0aW9uOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+VGFzazxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+Jmx0OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+U2VydmVyUmVzcG9uc2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiZndDsgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj50dTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IFB1c2hDbGllbnQuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5QdXNoU2VydmVyVW5yZWdpc3RlcjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KCk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+dHUuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5HZXRBd2FpdGVyPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKS48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPk9uQ29tcGxldGVkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKCkgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49Jmd0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPns8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5TZXJ2ZXJSZXNwb25zZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+cmVzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gdHUuUmVzdWx0OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPn08XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPjxcL2NvZGU+PFwvcHJlPlxuPGRpdiBjbGFzcz1cIm1kLWFsZXJ0IG1kLWFsZXJ0LW5vdGVcIj5cbjxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOlwvXC93d3cudzMub3JnXC8yMDAwXC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCI+PHBhdGggZD1cIk0wIDhhOCA4IDAgMSAxIDE2IDBBOCA4IDAgMCAxIDAgOFptOC02LjVhNi41IDYuNSAwIDEgMCAwIDEzIDYuNSA2LjUgMCAwIDAgMC0xM1pNNi41IDcuNzVBLjc1Ljc1IDAgMCAxIDcuMjUgN2gxYS43NS43NSAwIDAgMSAuNzUuNzV2Mi43NWguMjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0yYS43NS43NSAwIDAgMSAwLTEuNWguMjV2LTJoLS4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NVpNOCA2YTEgMSAwIDEgMSAwLTIgMSAxIDAgMCAxIDAgMlpcIlwvPjxcL3N2Zz5Ob3RlPFwvc3Bhbj5cbjxwPlRoZSA8Y29kZT5QdXNoU2VydmljZVVucmVnaXN0ZXIoKTxcL2NvZGU+IG1ldGhvZCBpcyBub3QgdXNlZCBpZiB0aGUgYXBwbGljYXRpb24gaXMgaW50ZW5kZWQgdG8gcmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbnMgY29udGludW91c2x5IHdoaWxlIGl0IGlzIGluc3RhbGxlZCBvbiB0aGUgZGV2aWNlLiBXaGVuIHRoZSBhcHBsaWNhdGlvbiBpcyB1bmluc3RhbGxlZCwgdGhlIHB1c2ggc2VydmljZSBkZXRlY3RzIHRoZSBldmVudCBhbmQgZGVyZWdpc3RlcnMgdGhlIGFwcGxpY2F0aW9uIGF1dG9tYXRpY2FsbHkuPFwvcD5cbjxwPk9uIHRoZSBvdGhlciBoYW5kLCBpZiB0aGUgYXBwbGljYXRpb24gd2FudHMgdG8gcmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbnMgb25seSB3aGVuIGEgdXNlciBsb2dzIGluLCB0aGUgPGNvZGU+UHVzaFNlcnZpY2VVbnJlZ2lzdGVyKCk8XC9jb2RlPiBtZXRob2QgbXVzdCBiZSBjYWxsZWQgd2hlbmV2ZXIgdGhlIHVzZXIgbG9ncyBvdXQuPFwvcD5cbjxcL2Rpdj5cbjxcL2xpPlxuPFwvb2w+XG48cD48YSBuYW1lPVwic2VjdXJpdHlcIj48XC9hPjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LW1hbmFnZS1zZWN1cml0eVwiPjxhIGhyZWY9XCIjY29udGVudC1tYW5hZ2Utc2VjdXJpdHlcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPk1hbmFnZSBzZWN1cml0eTxcL2gyPlxuPHA+V2hlbiB5b3Ugc2VuZCBhIG5vdGlmaWNhdGlvbiB3aXRoIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiwgYmUgYXdhcmUgb2YgdGhlIGNoYW5jZSB0aGF0IHRoZSBub3RpZmljYXRpb24gZ2V0cyBoaWphY2tlZCBieSBzb21lb25lIGVsc2UuIEl0IGlzIHlvdXIgcmVzcG9uc2liaWxpdHkgdG8ga2VlcCBzdWNoIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBzYWZlIGZyb20gbWFsaWNpb3VzIGFjY2Vzcy4gVGhlIGZvbGxvd2luZyBydWxlcyBhcmUgc3Ryb25nbHkgcmVjb21tZW5kZWQ6PFwvcD5cbjx1bD5cbjxsaT5cbjxwPktlZXAgdGhlIHB1c2ggYXBwbGljYXRpb24gSUQgY29uZmlkZW50aWFsLjxcL3A+XG48cD5JZiB0aGUgYXBwbGljYXRpb24gSUQgaXMgZXhwb3NlZCwgaGFja2VycyBjYW4gdHJ5IHRvIGhpamFjayBub3RpZmljYXRpb25zIHVzaW5nIGEgZmFrZSBhcHBsaWNhdGlvbiB3aXRoIHRoZSBleHBvc2VkIElELjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPkRvIG5vdCBzdG9yZSB0aGUgcmVnaXN0cmF0aW9uIElEIG9uIHRoZSBkZXZpY2UuPFwvcD5cbjxwPlRoZSByZWdpc3RyYXRpb24gSUQgY2FuIGJlIGNvbnNpZGVyZWQgYXMgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MgZm9yIG5vdGlmaWNhdGlvbnMuIFdpdGhvdXQgdGhlIElELCBoYWNrZXJzIGNhbm5vdCBzZW5kIGZha2Ugbm90aWZpY2F0aW9ucyB0byB5b3VyIGFwcGxpY2F0aW9uLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPkVuY3J5cHQgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLjxcL3A+XG48cD5XaGVuIHlvdSBzZW5kIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyBwZXJzb25hbCBpbmZvcm1hdGlvbiBhbmQgZmluYW5jaWFsIHRyYW5zYWN0aW9ucywgZW5jcnlwdCBpdCBhbmQgbG9hZCBpdCB0byB0aGUgbm90aWZpY2F0aW9uIGFzIGEgcGF5bG9hZCBpbnN0ZWFkIG9mIHRoZSBtZXNzYWdlIGZpZWxkLiBXaGVuIHRoZSBub3RpZmljYXRpb24gYXJyaXZlcyBhdCB0aGUgZGV2aWNlLCB0aGUgYXBwbGljYXRpb24gZGVjcnlwdHMgdGhlIHBheWxvYWQgYW5kIHJldHJpZXZlcyB0aGUgc2Vuc2l0aXZlIGluZm9ybWF0aW9uLjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPkRvIG5vdCBoYXJkY29kZSB0aGUgQXBwU2VjcmV0IGluIHRoZSBzb3VyY2UgY29kZS48XC9wPlxuPHA+VGhlIEFwcFNlY3JldCBpcyBhIGtleSB0byBhY2Nlc3NpbmcgdGhlIHB1c2ggc2VydmVyIGZvciBzZW5kaW5nIG5vdGlmaWNhdGlvbnMuIElmIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgZnJvbSB5b3VyIGFwcGxpY2F0aW9uIHNlcnZlciwgdGhlIGFwcGxpY2F0aW9uIGRvZXMgbm90IG5lZWQgdG8ga25vdyB0aGUgQXBwU2VjcmV0IGF0IGFsbC4gS2VlcCB0aGUgQXBwU2VjcmV0IG9uIHRoZSBzZXJ2ZXIgYW5kIGRvIG5vdCBsb2FkIGFueSByZWxhdGVkIGluZm9ybWF0aW9uIGluIHRoZSBhcHBsaWNhdGlvbi4gSWYgeW91IHdhbnQgZGV2aWNlLXRvLWRldmljZSBub3RpZmljYXRpb24gZGVsaXZlcnkgd2l0aG91dCB5b3VyIGFwcGxpY2F0aW9uIHNlcnZlciwgdGhlIGFwcGxpY2F0aW9uIG5lZWRzIHRoZSBBcHBTZWNyZXQgdG8gc2VuZCBhIG5vdGlmaWNhdGlvbiBmcm9tIGEgZGV2aWNlLiBJbiB0aGlzIGNhc2UsIGl0IGlzIHlvdXIgcmVzcG9uc2liaWxpdHkgdG8ga2VlcCB0aGUgQXBwU2VjcmV0IHNhZmUuPFwvcD5cbjxcL2xpPlxuPFwvdWw+XG48cD48YSBuYW1lPVwic2VuZFwiPjxcL2E+PFwvcD5cbjxoMiBpZD1cImNvbnRlbnQtc2VuZC1wdXNoLW5vdGlmaWNhdGlvbnNcIj48YSBocmVmPVwiI2NvbnRlbnQtc2VuZC1wdXNoLW5vdGlmaWNhdGlvbnNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlNlbmQgUHVzaCBOb3RpZmljYXRpb25zPFwvaDI+XG48cD5PbmNlIHRoZSBhcHBsaWNhdGlvbiBzdWNjZXNzZnVsbHkgc2VuZHMgaXRzIHJlZ2lzdHJhdGlvbiBJRCB0byB0aGUgYXBwbGljYXRpb24gc2VydmVyLCB5b3UgYXJlIHJlYWR5IHRvIHNlbmQgcHVzaCBub3RpZmljYXRpb25zIGZyb20gdGhlIGFwcGxpY2F0aW9uIHNlcnZlciB0byB0aGUgYXBwbGljYXRpb24gb24gdGhhdCBwYXJ0aWN1bGFyIGRldmljZS4gVGhpcyB1c2UgY2FzZSBkZXNjcmliZXMgaG93IHRvIHNlbmQgYSBzaW1wbGUgcHVzaCBub3RpZmljYXRpb24gdG8gdGhlIGRldmljZS4gRm9yIGFkdmFuY2VkIGZlYXR1cmVzLCBzZWUgdGhlIDxhIGhyZWY9XCJwdXNoLXNlcnZlci5tZFwiPlB1c2ggU2VydmVyPFwvYT4gZ3VpZGUgZm9yIHNlcnZlciBkZXZlbG9wZXJzLjxcL3A+XG48cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgYSBzYW1wbGUgcHVzaCBub3RpZmljYXRpb246PFwvcD5cbjx1bD5cbjxsaT5cbjxwPlVSSTogU2VlIHRoZSA8YSBocmVmPVwicHVzaC1zZXJ2ZXIubWQjc2VuZF9zZXJ2ZXJcIj5QdXNoIFJRTSAoUmVxdWVzdCBNYW5hZ2VyKSBzZXJ2ZXIgVVJMcyB0YWJsZTxcL2E+LjxcL3A+XG48XC9saT5cbjxsaT5cbjxwPk1ldGhvZDogSFRUUCBQT1NUPFwvcD5cbjxcL2xpPlxuPGxpPlxuPHA+SGVhZGVyOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJcIj5hcHBJRDogMTIzNDU2Nzg5MDk4NzY1NDxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiXCI+YXBwU2VjcmV0OiBkWW9cL29cL20xMWdtV21qczcrNWYrMnpMTlZPYz08XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cIlwiPjxcL3NwYW4+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxcL2xpPlxuPGxpPlxuPHA+Qm9keTo8XC9wPlxuPGNvZGUgY2xhc3M9XCJsYW5ndWFnZS1KU09OXCI+e1xuICAgICZxdW90O3JlZ0lEJnF1b3Q7OiAmcXVvdDswNTAxYTUzZjRhZmZkY2JiOTgxOTdmMTg4MzQ1ZmYzMGMwNGItNTAwMSZxdW90OyxcbiAgICAmcXVvdDtyZXF1ZXN0SUQmcXVvdDs6ICZxdW90OzAxMjMxLTIyRUFYLTIyMzQ0MiZxdW90OyxcbiAgICAmcXVvdDttZXNzYWdlJnF1b3Q7OiAmcXVvdDtiYWRnZU9wdGlvbj1JTkNSRUFTRSZhbXA7YmFkZ2VOdW1iZXI9MSZhbXA7YWN0aW9uPUFMRVJUJmFtcDthbGVydE1lc3NhZ2U9SGkmcXVvdDssXG4gICAgJnF1b3Q7YXBwRGF0YSZxdW90OzogJnF1b3Q7e2lkOmFzZGYmYW1wO3Bhc3N3ZDoxMjM0fSZxdW90OywgXC8qIE9wdGlvbmFsLCBpZiB0aGUgbWVzc2FnZSBmaWVsZCBpcyBub3QgZW1wdHkgKlwvXG59XG48XC9jb2RlPlxuPFwvbGk+XG48XC91bD5cbjxwPlRvIHNlbmQgYSBub3RpZmljYXRpb246PFwvcD5cbjxvbD5cbjxsaT5cbjxwPlByZXBhcmUgdGhlIDxjb2RlPmFwcElEPFwvY29kZT4sIDxjb2RlPmFwcFNlY3JldDxcL2NvZGU+LCA8Y29kZT5yZWdJRDxcL2NvZGU+LCBhbmQgPGNvZGU+cmVxdWVzdElEPFwvY29kZT46PFwvcD5cbjx1bD5cbjxsaT5UaGUgPGNvZGU+YXBwSUQ8XC9jb2RlPiBhbmQgPGNvZGU+YXBwU2VjcmV0PFwvY29kZT4gdmFsdWVzIGFyZSBnaXZlbiBpbiB0aGUgZW1haWwgbWVzc2FnZSB0aGF0IHlvdSByZWNlaXZlIHdoZW4gcmVxdWVzdGluZyA8YSBocmVmPVwiI3Blcm1pc3Npb25cIj5wZXJtaXNzaW9uIHRvIHVzZSBUaXplbiBwdXNoIHNlcnZlcnM8XC9hPi48XC9saT5cbjxsaT5UaGUgPGNvZGU+cmVnSUQ8XC9jb2RlPiB2YWx1ZSBpcyB0aGUgb25lIHRoYXQgdGhlIGFwcGxpY2F0aW9uIHNlcnZlciByZWNlaXZlZCBmcm9tIHlvdXIgYXBwbGljYXRpb24gaW5zdGFsbGVkIG9uIGEgVGl6ZW4gZGV2aWNlLiBEZXBlbmRpbmcgb24gdGhlIDxjb2RlPnJlZ0lEPFwvY29kZT4gdmFsdWUsIHRoZSBVUkkgb2YgdGhlIHNlcnZlciB0byB3aGljaCB5b3VyIGFwcGxpY2F0aW9uIHNlcnZlciBzZW5kcyB0aGUgbm90aWZpY2F0aW9uIHZhcmllcy48XC9saT5cbjxsaT5UaGUgPGNvZGU+cmVxdWVzdElEPFwvY29kZT4gdmFsdWUgaXMgdXNlZCB0byBpZGVudGlmeSB0aGUgbm90aWZpY2F0aW9uIGluIHRoZSBwdXNoIHNlcnZlci4gV2hlbiB5b3VyIGFwcGxpY2F0aW9uIHNlcnZlciBzZW5kcyBub3RpZmljYXRpb25zIHVzaW5nIHRoZSBzYW1lIDxjb2RlPnJlcXVlc3RJRDxcL2NvZGU+IHZhbHVlLCB0aGUgbGFzdCBub3RpZmljYXRpb24gb3ZlcndyaXRlcyBhbGwgdGhlIHByZXZpb3VzIG5vdGlmaWNhdGlvbnMgdGhhdCBhcmUgbm90IGRlbGl2ZXJlZCB5ZXQuPFwvbGk+XG48XC91bD5cbjxcL2xpPlxuPGxpPlxuPHA+VXNlIHRoZSBtZXNzYWdlIGZpZWxkIHRvIGRlc2NyaWJlIGhvdyB0byBwcm9jZXNzIHRoZSBub3RpZmljYXRpb24uPFwvcD5cbjxwPlRoZSBtZXNzYWdlIGZpZWxkIGNvbnRhaW5zIG5vdCBvbmx5IHRoZSBtZXNzYWdlIHRvIHNob3cgaW4gdGhlIHF1aWNrIHBhbmVsIG9uIHRoZSBkZXZpY2UsIGJ1dCBhbHNvIHRoZSBiZWhhdmlvcnMgdGhhdCB0aGUgZGV2aWNlIG11c3QgdGFrZSB3aGVuIHJlY2VpdmluZyB0aGUgbm90aWZpY2F0aW9uLiBUaGUgbWVzc2FnZSBmaWVsZCBpcyBhIHN0cmluZyB0aGF0IGNvbnNpc3RzIG9mIGtleS12YWx1ZSBwYWlycy4gVGhlIGF2YWlsYWJsZSBwYWlyIG9wdGlvbnMgYXJlIGdpdmVuIGluIHRoZSBmb2xsb3dpbmcgdGFibGUuPFwvcD5cbjxwPjxzdHJvbmc+VGFibGU6IE1lc3NhZ2UgZmllbGQga2V5LXZhbHVlIHBhaXJzPFwvc3Ryb25nPjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5LZXk8XC90aD5cbjx0aD5WYWx1ZTxcL3RoPlxuPHRoPkRlc2NyaXB0aW9uPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxjb2RlPmFjdGlvbjxcL2NvZGU+PFwvdGQ+XG48dGQ+PGNvZGU+QUxFUlQ8XC9jb2RlPjogU3RvcmUgdGhlIG1lc3NhZ2UgYW5kIGFsZXJ0IHRoZSB1c2VyLjxicj48Y29kZT5TSUxFTlQ8XC9jb2RlPjogU3RvcmUgdGhlIG1lc3NhZ2Ugd2l0aG91dCBhbGVydGluZyB0aGUgdXNlci48YnI+PGNvZGU+RElTQ0FSRDxcL2NvZGU+OiBEaXNjYXJkIHRoZSBtZXNzYWdlLCBpZiB0aGUgYXBwbGljYXRpb24gaXMgbm90IHVwIGFuZCBydW5uaW5nLjxicj48Y29kZT5MQVVOQ0g8XC9jb2RlPjogRm9yY2libHkgbGF1bmNoIHRoZSBhcHBsaWNhdGlvbiBhbmQgZGVsaXZlciB0aGUgbm90aWZpY2F0aW9uLjxicj48Y29kZT5CQUNLR1JPVU5ETEFVTkNIPFwvY29kZT46IExhdW5jaCB0aGUgYXBwbGljYXRpb24gaW4gdGhlIGJhY2tncm91bmQgYW5kIGRlbGl2ZXIgdGhlIG5vdGlmaWNhdGlvbi48XC90ZD5cbjx0ZD5BY3Rpb24gdG8gYmUgcGVyZm9ybWVkIGlmIHRoZSBhcHBsaWNhdGlvbiBpcyBub3QgcnVubmluZy4gSWYgbm8gYWN0aW9uIGlzIGRlZmluZWQsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIDxjb2RlPlNJTEVOVDxcL2NvZGU+LjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGNvZGU+YWxlcnRNZXNzYWdlPFwvY29kZT48XC90ZD5cbjx0ZD5VcCB0byAxMjcgYnl0ZXM8XC90ZD5cbjx0ZD5BbGVydCBtZXNzYWdlIHNob3duIHRvIHRoZSB1c2VyIGluIHRoZSBxdWljayBwYW5lbC4gSWYgdGhlIGFjdGlvbiBpcyBub3Qgc2V0IGFzIDxjb2RlPkFMRVJUPFwvY29kZT4sIHRoaXMgdmFsdWUgaXMgbWVhbmluZ2xlc3MuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48Y29kZT5iYWRnZU9wdGlvbjxcL2NvZGU+PFwvdGQ+XG48dGQ+PGNvZGU+SU5DUkVBU0U8XC9jb2RlPjogSW5jcmVhc2UgdGhlIGJhZGdlIG51bWJlciBieSB0aGUgZ2l2ZW4gdmFsdWUuPGJyPjxjb2RlPkRFQ1JFQVNFPFwvY29kZT46IERlY3JlYXNlIHRoZSBiYWRnZSBudW1iZXIgYnkgdGhlIGdpdmVuIHZhbHVlLjxicj48Y29kZT5TRVQ8XC9jb2RlPjogU2V0IGJhZGdlIG51bWJlciB0byB0aGUgZ2l2ZW4gdmFsdWUuPFwvdGQ+XG48dGQ+T3B0aW9uIGZvciB1cGRhdGluZyB0aGUgaWNvbiBiYWRnZSBudW1iZXIuIElmIHRoZSBhY3Rpb24gaXMgc2V0IGFzIDxjb2RlPkRJU0NBUkQ8XC9jb2RlPiwgdGhlIDxjb2RlPmJhZGdlT3B0aW9uPFwvY29kZT4gaXMgaWdub3JlZC4gSWYgdGhlIGJhZGdlIG9wdGlvbiBpcyBub3QgaW5jbHVkZWQsIHRoZSBpY29uIGJhZGdlIG51bWJlciByZW1haW5zIHVuY2hhbmdlZC48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxjb2RlPmJhZGdlTnVtYmVyPFwvY29kZT48XC90ZD5cbjx0ZD4wLTk5OTxcL3RkPlxuPHRkPi08XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48cD5Gb3IgZXhhbXBsZSwgdG8gc2hvdyBhICZxdW90O0hpJnF1b3Q7IG1lc3NhZ2UgaW4gdGhlIHF1aWNrIHBhbmVsIGFuZCBpbmNyZWFzZSB0aGUgYmFkZ2UgY291bnQgYnkgMSB3aGVuIHRoZSBub3RpZmljYXRpb24gYXJyaXZlcyBhdCB0aGUgZGV2aWNlLCB0aGUgbWVzc2FnZSBmaWVsZCBvZiB0aGUgbm90aWZpY2F0aW9uIG11c3QgYmUgdGhlIGZvbGxvd2luZzo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiXCI+JnF1b3Q7YmFkZ2VPcHRpb249SU5DUkVBU0UmYW1wO2JhZGdlTnVtYmVyPTEmYW1wO2FjdGlvbj1BTEVSVCZhbXA7YWxlcnRNZXNzYWdlPUhpJnF1b3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJcIj48XC9zcGFuPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48cD5JZiB5b3Ugd2FudCB0byBkZWxpdmVyIHRoZSBub3RpZmljYXRpb24gZGlyZWN0bHkgdG8geW91ciBhcHBsaWNhdGlvbiwgdGhlIG1lc3NhZ2UgZmllbGQgbXVzdCBiZSB0aGUgZm9sbG93aW5nOjxcL3A+XG48cHJlIGNsYXNzPVwic2hpa2kgc2hpa2ktdGhlbWVzIGdpdGh1Yi1saWdodCBnaXRodWItZGFya1wiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojZmZmOy0tc2hpa2ktZGFyay1iZzojMjQyOTJlO2NvbG9yOiMyNDI5MmU7LS1zaGlraS1kYXJrOiNlMWU0ZTg7XCI+PGNvZGU+PHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJcIj4mcXVvdDthY3Rpb249TEFVTkNIJnF1b3Q7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJcIj48XC9zcGFuPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48cD5XaGVuIHRoZSBwdXNoIHNlcnZpY2Ugb24gdGhlIHRhcmdldCBkZXZpY2UgcmVjZWl2ZXMgYSBub3RpZmljYXRpb24gd2l0aCB0aGlzIG1lc3NhZ2UsIGl0IGxhdW5jaGVzIHlvdXIgYXBwbGljYXRpb24gYW5kIGRlbGl2ZXJzIHRoZSBub3RpZmljYXRpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaG93IHRvIDxhIGhyZWY9XCIjcmVjdl9ub3RpX2FwcF9ub3RfcnVuXCI+cmVjZWl2ZSBub3RpZmljYXRpb25zIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGlzIG5vdCBydW5uaW5nPFwvYT4uPFwvcD5cbjxwPlRoZSBtZXNzYWdlIGZpZWxkIHRha2VzIGVmZmVjdCBvbmx5IHdoZW4gdGhlIGFwcGxpY2F0aW9uIGlzIG5vdCBydW5uaW5nIChtb3JlIHByZWNpc2VseSwgd2hlbiB0aGUgYXBwbGljYXRpb24gaXMgbm90IGNvbm5lY3RlZCB0byB0aGUgcHVzaCBzZXJ2aWNlKS4gSWYgYSBub3RpZmljYXRpb24gd2l0aCB0aGUgYWJvdmUgbWVzc2FnZSBmaWVsZCBhcnJpdmVzIGF0IHRoZSBkZXZpY2Ugd2hlcmUgdGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcsIHRoZSBwdXNoIHNlcnZpY2UgZGVsaXZlcnMgdGhlIG5vdGlmaWNhdGlvbiBkaXJlY3RseSB0byB0aGUgYXBwbGljYXRpb24uIEl0IGRvZXMgbm90IHNob3cgdGhlICZxdW90O0hpJnF1b3Q7IG1lc3NhZ2UgaW4gdGhlIHF1aWNrIHBhbmVsIG9yIGluY3JlYXNlIHRoZSBiYWRnZSBjb3VudC48XC9wPlxuPFwvbGk+XG48bGk+XG48cD5Mb2FkIHlvdXIgb3duIGRhdGEgdG8gdGhlIDxjb2RlPmFwcERhdGE8XC9jb2RlPiBmaWVsZCBhcyBhIHN0cmluZy48XC9wPlxuPHA+VGhpcyB1c2UgY2FzZSBmb2N1c2VzIG9uIGhvdyBhbiBhcHBsaWNhdGlvbiBkZXZlbG9wZXIgY2FuIGNvbnN0cnVjdCBhIG5vdGlmaWNhdGlvbi4gRm9yIGFkdmFuY2VkIGZlYXR1cmVzLCBzZWUgdGhlIDxhIGhyZWY9XCJwdXNoLXNlcnZlci5tZFwiPlB1c2ggU2VydmVyPFwvYT4gZ3VpZGUgZm9yIHNlcnZlciBkZXZlbG9wZXJzLjxcL3A+XG48XC9saT5cbjxcL29sPlxuPHA+PGEgbmFtZT1cInJlY2VpdmVfcHVzaFwiPjxcL2E+PFwvcD5cbjxoMiBpZD1cImNvbnRlbnQtcmVjZWl2ZS1wdXNoLW5vdGlmaWNhdGlvbnNcIj48YSBocmVmPVwiI2NvbnRlbnQtcmVjZWl2ZS1wdXNoLW5vdGlmaWNhdGlvbnNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlJlY2VpdmUgcHVzaCBub3RpZmljYXRpb25zPFwvaDI+XG48cD5XaGVuIGEgbm90aWZpY2F0aW9uIGFycml2ZXMgYXQgdGhlIGRldmljZSwgaXRzIGRlbGl2ZXJ5IG1lY2hhbmlzbSBkZXBlbmRzIG9uIHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcuPFwvcD5cbjxwPlRvIGhhbmRsZSBpbmNvbWluZyBwdXNoIG5vdGlmaWNhdGlvbnMsIGZvbGxvdyB0aGUgc3RlcHMgYmVsb3c6PFwvcD5cbjx1bD5cbjxsaT5cbjxwPlJlY2VpdmUgbm90aWZpY2F0aW9ucyB3aGVuIHRoZSBhcHBsaWNhdGlvbiBpcyBydW5uaW5nLjxcL3A+XG48cD5XaGVuIGEgbm90aWZpY2F0aW9uIGFycml2ZXMgYXQgdGhlIGFwcGxpY2F0aW9uIHdoaWxlIGl0IGlzIHJ1bm5pbmcgKG1vcmUgcHJlY2lzZWx5LCB3aGlsZSB0aGUgYXBwbGljYXRpb24gaXMgY29ubmVjdGVkIHRvIHRoZSBzZXJ2aWNlKSwgdGhlIDxjb2RlPkV2ZW50SGFuZGxlck5vdGlmaWNhdGlvblJlY2VpdmVkKCk8XC9jb2RlPiBldmVudCBoYW5kbGVyIGlzIGNhbGxlZC4gWW91IGNhbiBoYW5kbGUgdGhlIHJlY2VpdmVkIG5vdGlmaWNhdGlvbiBpbiB0aGUgZXZlbnQgaGFuZGxlci48XC9wPlxuPHA+VGhlIGZvbGxvd2luZyBleGFtcGxlIHNob3dzIGhvdyB0aGUgYXBwbGljYXRpb24gY2FuIHJldHJpZXZlIHRoZSBhcHAgZGF0YSAocGF5bG9hZCksIG1lc3NhZ2UsIGFuZCB0aW1lc3RhbXAgZnJvbSB0aGUgcmVjZWl2ZWQgbm90aWZpY2F0aW9uLiBXaGVuIHRoZSA8Y29kZT5FdmVudEhhbmRsZXJOb3RpZmljYXRpb25SZWNlaXZlZCgpPFwvY29kZT4gZXZlbnQgaGFuZGxlciBpcyBjYWxsZWQsIHlvdSBjYW4gcmV0cmlldmUgdGhlIGFwcCBkYXRhLCBtZXNzYWdlLCBhbmQgdGltZSBzdGFtcCBmcm9tIDxjb2RlPmUuQXBwRGF0YTxcL2NvZGU+LCA8Y29kZT5lLk1lc3NhZ2U8XC9jb2RlPiwgYW5kIDxjb2RlPmUuUmVjZWl2ZWRBdDxcL2NvZGU+IHJlc3BlY3RpdmVseTo8XC9wPlxuPHByZSBjbGFzcz1cInNoaWtpIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnB1YmxpYzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+c3RhdGljPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj52b2lkPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5FdmVudEhhbmRsZXJOb3RpZmljYXRpb25SZWNlaXZlZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+b2JqZWN0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5zZW5kZXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiwgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5QdXNoTWVzc2FnZUV2ZW50QXJnczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+ZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPns8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgQ29uc29sZS48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPldyaXRlTGluZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7Tm90aWZpY2F0aW9uIERhdGE6ICZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+KzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IGUuQXBwRGF0YSk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgIENvbnNvbGUuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5Xcml0ZUxpbmU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPig8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O05vdGlmaWNhdGlvbiBNZXNzYWdlOiAmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPis8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBlLk1lc3NhZ2UpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICBDb25zb2xlLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+V3JpdGVMaW5lPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtOb3RpZmljYXRpb24gVGltZXN0YW1wOiAmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPis8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBlLlJlY2VpdmVkQXQpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICBDb25zb2xlLjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+V3JpdGVMaW5lPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtOb3RpZmljYXRpb24gUmVxdWVzdElkOiAmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPis8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBlLlJlcXVlc3RJZCk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgIENvbnNvbGUuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5Xcml0ZUxpbmU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPig8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90O05vdGlmaWNhdGlvbiBTZW5kZXI6ICZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+KzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IGUuU2VuZGVyKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgQ29uc29sZS48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPldyaXRlTGluZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7Tm90aWZpY2F0aW9uIFNlc3Npb25JbmZvOiAmcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPis8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiBlLlNlc3Npb25JbmZvKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgQ29uc29sZS48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZGNDJDMTstLXNoaWtpLWRhcms6I0IzOTJGMFwiPldyaXRlTGluZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7Tm90aWZpY2F0aW9uIFR5cGU6ICZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+KzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IGUuVHlwZSk7PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+fTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+PFwvY29kZT48XC9wcmU+XG48XC9saT5cbjxcL3VsPlxuPHA+PGEgbmFtZT1cInJlY3Zfbm90aV9hcHBfbm90X3J1blwiPjxcL2E+PFwvcD5cbjx1bD5cbjxsaT5cbjxwPlJlY2VpdmUgbm90aWZpY2F0aW9ucyB3aGVuIHRoZSBhcHBsaWNhdGlvbiBpcyBub3QgcnVubmluZy48XC9wPlxuPHA+SWYgdGhlIG5vdGlmaWNhdGlvbiBhcnJpdmVzIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGlzIG5vdCBydW5uaW5nLCBpdCBjYW4gYmUgaGFuZGxlZCBpbiAzIHdheXM6PFwvcD5cbjxcL2xpPlxuPFwvdWw+XG48cD48YSBuYW1lPVwiZm9yY2VfbGF1bmNoXCI+PFwvYT5cbi0gICBGb3JjaWJseSBsYXVuY2ggdGhlIGFwcGxpY2F0aW9uIGFuZCBkZWxpdmVyIHRoZSBub3RpZmljYXRpb24gdG8gaXQuPFwvcD5cbjxwcmUgY2xhc3M9XCJzaGlraSBkZWxldGVkIHNoaWtpLXRoZW1lcyBnaXRodWItbGlnaHQgZ2l0aHViLWRhcmtcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2ZmZjstLXNoaWtpLWRhcmstYmc6IzI0MjkyZTtjb2xvcjojMjQyOTJlOy0tc2hpa2ktZGFyazojZTFlNGU4O1wiPjxjb2RlPjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPllvdTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+bmVlZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+dG88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnNldDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+dGhlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5hY3Rpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj5gTEFVTkNIYDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+aW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+bWVzc2FnZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+ZmllbGQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPndoZW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnNlbmRpbmc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+bm90aWZpY2F0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5mcm9tPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj50aGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmFwcGxpY2F0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5zZXJ2ZXI8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPldoZW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+bm90aWZpY2F0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5hY3Rpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmFycml2ZXM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmF0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj50aGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmRldmljZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LCA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+cHVzaDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+c2VydmljZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+Zm9yY2libHk8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmxhdW5jaGVzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj50aGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmFwcGxpY2F0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5hbmQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmRlbGl2ZXJzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj50aGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPm5vdGlmaWNhdGlvbjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+LjxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5CeTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+dGhlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj53YXk8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiwgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj53aGVuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj50aGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmFwcGxpY2F0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5pczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+bGF1bmNoZWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmJ5PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj50aGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnB1c2g8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnNlcnZpY2U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiwgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj55b3U8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPm5lZWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRvPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5kZXRlcm1pbmU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+cmVhc29uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5mb3I8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+YXBwbGljYXRpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmxhdW5jaDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+YW5kPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5yZWFjdDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+dG88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPml0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5hcHByb3ByaWF0ZWx5PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj4uPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPlRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+cHVzaDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+c2VydmljZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+cHJvdmlkZXM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmxhdW5jaDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+dHlwZXM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPndoZW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+YXBwbGljYXRpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmlzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5sYXVuY2hlZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+Ynk8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+c2VydmljZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+VXNlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj50aGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmZvbGxvd2luZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+Y29kZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+dG88XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmZpZ3VyZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+b3V0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj53aHk8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+YXBwbGljYXRpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmlzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5sYXVuY2hlZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+aW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmJvdGg8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmNhc2VzPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5vZjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+cmVjZWl2aW5nPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5ub3RpZmljYXRpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmFuZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+Y2hhbmdpbmc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnRoZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+cmVnaXN0cmF0aW9uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5zdGF0ZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LjxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgMS4gIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+R2V0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj50aGU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnJlcXVlc3RlZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+YXBwbGljYXRpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmNvbnRyb2w8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjo8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICBgYGA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPmNzaGFycDxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5wdWJsaWM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPnN0YXRpYzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+VGl6ZW48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPkFwcGxpY2F0aW9uczxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+QXBwQ29udHJvbDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+X2FwcEN0cmw8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+cHVibGljPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5zdGF0aWM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPlRpemVuPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5BcHBsaWNhdGlvbnM8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPkFwcENvbnRyb2w8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPi48XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPkV4dHJhRGF0YUNvbGxlY3Rpb248XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPl9leHRyYURhdGFTZXQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPjs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPl9hcHBDdHJsPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5uZXc8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPkFwcENvbnRyb2w8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPigpOzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5fZXh0cmFEYXRhU2V0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5fYXBwQ3RybDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+RXh0cmFEYXRhPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj47PFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPmBgYDxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4gICAgMi4gRGV0ZXJtaW5lIHRoZSByZWFzb24gZm9yIHRoZSBhcHBsaWNhdGlvbiBsYXVuY2guIElmIHRoZSByZWFzb24gZm9yIHRoZSBsYXVuY2ggaXMgYSBub3RpZmljYXRpb24sIHJldHJpZXZlIHRoZSBsYXRlc3QgcHVzaCBtZXNzYWdlOjxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4gICAgICAgIGBgYDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+Y3NoYXJwPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPnN0cmluZzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+R2V0dGVkVmFsdWU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPj08XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiZxdW90OyZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+OzxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5ib29sPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5pc0dldHRlZDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+X2V4dHJhRGF0YVNldDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojRDczQTQ5Oy0tc2hpa2ktZGFyazojRjk3NTgzXCI+LjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojNkY0MkMxOy0tc2hpa2ktZGFyazojQjM5MkYwXCI+VHJ5R2V0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtodHRwOlwvXC90aXplbi5vcmdcL2FwcGNvbnRyb2xcL2RhdGFcL3B1c2hcL2xhdW5jaF90eXBlJnF1b3Q7PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4sIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+b3V0PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5HZXR0ZWRWYWx1ZTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPmlmPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gKDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+aXNHZXR0ZWQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPik8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgIHs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPmlmPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gKDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+R2V0dGVkVmFsdWU8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6I0Q3M0E0OTstLXNoaWtpLWRhcms6I0Y5NzU4M1wiPj09PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4mcXVvdDtub3RpZmljYXRpb24mcXVvdDs8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPik8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgICAgICAgICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2QTczN0Q7LS1zaGlraS1kYXJrOiM2QTczN0RcIj5cL1wvXC8gQWRkIHlvdXIgY29kZSBoZXJlIGZvciB3aGVuIHB1c2ggbWVzc2FnZXMgYXJyaXZlPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICAgICAgICAgICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5lbHNlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj5pZjxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+ICg8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPkdldHRlZFZhbHVlPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj49PTxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+IDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+JnF1b3Q7cmVnaXN0cmF0aW9uX2NoYW5nZSZxdW90OzxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMjQyOTJFOy0tc2hpa2ktZGFyazojRTFFNEU4XCI+KTxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzI0MjkyRTstLXNoaWtpLWRhcms6I0UxRTRFOFwiPiAgICAgICAgICAgICAgICA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzZBNzM3RDstLXNoaWtpLWRhcms6IzZBNzM3RFwiPlwvXC9cLyBBZGQgeW91ciBjb2RlIGhlcmUgZm9yIHdoZW4gcmVnaXN0cmF0aW9uIHN0YXRlIGlzIGNoYW5nZWQ8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgIH08XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgICAgIDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+YGBgPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZSBkZWxcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj5TdG9yZSB0aGUgbm90aWZpY2F0aW9uIGluIHRoZSBwdXNoIHNlcnZpY2UgZGF0YWJhc2UgYW5kIHJlcXVlc3QgaXQgbGF0ZXIgd2hlbiB0aGUgYXBwbGljYXRpb24gaXMgbGF1bmNoZWQuPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiAgICBZb3UgbmVlZCB0byBzZXQgdGhlIGFjdGlvbiB0byBgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5BTEVSVDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+YCBvciBgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5TSUxFTlQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPmAgaW4gdGhlIG1lc3NhZ2UgZmllbGQgd2hlbiBzZW5kaW5nIHRoZSBub3RpZmljYXRpb24gZnJvbSB0aGUgYXBwbGljYXRpb24gc2VydmVyLiBXaGVuIHN1Y2ggYSBub3RpZmljYXRpb24gYXJyaXZlcyBhdCB0aGUgZGV2aWNlLCB0aGUgcHVzaCBzZXJ2aWNlIGtlZXBzIHRoZSBub3RpZmljYXRpb24gaW4gdGhlIGRhdGFiYXNlIGFuZCB3YWl0cyBmb3IgdGhlIHJlcXVlc3QgZnJvbSB0aGUgYXBwbGljYXRpb24uPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPiAgICBZb3UgY2FuIHJlcXVlc3QgdW5yZWFkIG5vdGlmaWNhdGlvbnMgZnJvbSB0aGUgcHVzaCBzZXJ2aWNlLiBUaGUgcmVxdWVzdCBjYW4gYmUgcGVyZm9ybWVkIGFmdGVyIGNvbm5lY3RpbmcgdG8gdGhlIHB1c2ggc2VydmVyIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGlzIGxhdW5jaGVkOjxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4gICAgYGBgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5jc2hhcnA8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5QdXNoQ2xpZW50PFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiNENzNBNDk7LS1zaGlraS1kYXJrOiNGOTc1ODNcIj4uPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiM2RjQyQzE7LS1zaGlraS1kYXJrOiNCMzkyRjBcIj5HZXRVbnJlYWROb3RpZmljYXRpb25zPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4oKTs8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMyNDI5MkU7LS1zaGlraS1kYXJrOiNFMUU0RThcIj4gICAgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj5gYGA8XC9zcGFuPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+ICAgIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGA8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAwNUNDNTstLXNoaWtpLWRhcms6Izc5QjhGRlwiPkFMRVJUPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj5gIGFuZCBgPFwvc3Bhbj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMDVDQzU7LS1zaGlraS1kYXJrOiM3OUI4RkZcIj5TSUxFTlQ8XC9zcGFuPjxzcGFuIHN0eWxlPVwiY29sb3I6IzAzMkY2MjstLXNoaWtpLWRhcms6IzlFQ0JGRlwiPmAgYWN0aW9ucyBpcyB0aGF0IHRoZSBmb3JtZXIgc2hvd3MgYW4gYWxlcnQgbWVzc2FnZSBpbiB0aGUgcXVpY2sgcGFuZWwgYW5kIGNoYW5nZXMgdGhlIGJhZGdlIGNvdW50LCB3aGlsZSB0aGUgbGF0dGVyIGRvZXMgbm90LiBJZiB0aGUgdXNlciBjbGlja3MgdGhlIGFsZXJ0IG1lc3NhZ2UgaW4gdGhlIHF1aWNrIHBhbmVsLCB0aGUgcHVzaCBzZXJ2aWNlIFtmb3JjaWJseSBsYXVuY2hlcyB0aGUgYXBwbGljYXRpb25dKCNmb3JjZV9sYXVuY2gpIGFuZCBkZWxpdmVycyB0aGUgbm90aWZpY2F0aW9uIHRocm91Z2ggdGhlIGFwcCBjb250cm9sLjxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmUgZGVsXCI+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+RGlzY2FyZCB0aGUgbm90aWZpY2F0aW9uLjxcL3NwYW4+PFwvc3Bhbj5cbjxzcGFuIGNsYXNzPVwibGluZVwiPjxcL3NwYW4+XG48c3BhbiBjbGFzcz1cImxpbmVcIj48c3BhbiBzdHlsZT1cImNvbG9yOiMwMzJGNjI7LS1zaGlraS1kYXJrOiM5RUNCRkZcIj4gICAgWW91IG5lZWQgdG8gc2V0IHRoZSBhY3Rpb24gdG8gYDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDA1Q0M1Oy0tc2hpa2ktZGFyazojNzlCOEZGXCI+RElTQ0FSRDxcL3NwYW4+PHNwYW4gc3R5bGU9XCJjb2xvcjojMDMyRjYyOy0tc2hpa2ktZGFyazojOUVDQkZGXCI+YCBpbiB0aGUgbWVzc2FnZSBmaWVsZCB3aGVuIHNlbmRpbmcgdGhlIG5vdGlmaWNhdGlvbiBmcm9tIHRoZSBhcHBsaWNhdGlvbiBzZXJ2ZXIuIFdoZW4gc3VjaCBhIG5vdGlmaWNhdGlvbiBhcnJpdmVzIGF0IHRoZSBkZXZpY2UsIHRoZSBwdXNoIHNlcnZpY2UgZGVsaXZlcnMgdGhlIG5vdGlmaWNhdGlvbiBvbmx5IHdoZW4gdGhlIGFwcGxpY2F0aW9uIGlzIHVwIGFuZCBydW5uaW5nLiBPdGhlcndpc2UsIHRoZSBwdXNoIHNlcnZpY2UgZG9lcyBub3Qgc3RvcmUgdGhlIG5vdGlmaWNhdGlvbiBhbmQgZGlzY2FyZHMgaXQuPFwvc3Bhbj48XC9zcGFuPlxuPHNwYW4gY2xhc3M9XCJsaW5lXCI+PFwvc3Bhbj48XC9jb2RlPjxcL3ByZT5cbjxoMiBpZD1cImNvbnRlbnQtcmVsYXRlZC1pbmZvcm1hdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC1yZWxhdGVkLWluZm9ybWF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5SZWxhdGVkIGluZm9ybWF0aW9uPFwvaDI+XG48dWw+XG48bGk+RGVwZW5kZW5jaWVzXG48dWw+XG48bGk+VGl6ZW4gNC4wIGFuZCBIaWdoZXI8XC9saT5cbjxcL3VsPlxuPFwvbGk+XG48XC91bD5cbiIsInRhYmxlX29mX2NvbnRlbnQiOiI8dWwgY2xhc3M9XCJ0YWJsZS1vZi1jb250ZW50c1wiPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1zZXJ2aWNlLWFyY2hpdGVjdHVyZVwiPlNlcnZpY2UgYXJjaGl0ZWN0dXJlPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtcHJlcmVxdWlzaXRlc1wiPlByZXJlcXVpc2l0ZXM8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1jb25uZWN0LXRvLXRoZS1wdXNoLXNlcnZpY2VcIj5Db25uZWN0IHRvIHRoZSBwdXNoIHNlcnZpY2U8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1yZWdpc3Rlci13aXRoLXRoZS1wdXNoLXNlcnZlclwiPlJlZ2lzdGVyIHdpdGggdGhlIHB1c2ggc2VydmVyPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtbWFuYWdlLXNlY3VyaXR5XCI+TWFuYWdlIHNlY3VyaXR5PFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtc2VuZC1wdXNoLW5vdGlmaWNhdGlvbnNcIj5TZW5kIFB1c2ggTm90aWZpY2F0aW9uczxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXJlY2VpdmUtcHVzaC1ub3RpZmljYXRpb25zXCI+UmVjZWl2ZSBwdXNoIG5vdGlmaWNhdGlvbnM8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1yZWxhdGVkLWluZm9ybWF0aW9uXCI+UmVsYXRlZCBpbmZvcm1hdGlvbjxcL2E+PFwvbGk+XG48XC91bD5cbiIsInRpdGxlIjoiUHVzaCIsInJhdyI6bnVsbH0seyJjbGFzcyI6IkFwcFxcU2VydmljZXNcXERvY3VtZW50YXRpb25cXERhdGFcXFJlbmRlcmVkTWFya2Rvd24iLCJzIjoid3JibCJ9XX0seyJzIjoiYXJyIn1dfSwibWVtbyI6eyJpZCI6InZFY1VBU2pidEk5azhNMEI3RFdVIiwibmFtZSI6Il9fbW91bnRQYXJhbXNDb250YWluZXIiLCJwYXRoIjoiZG9jc1wvYXBwbGljYXRpb25cL2RvdG5ldFwvZ3VpZGVzXC9tZXNzYWdpbmdcL3B1c2giLCJtZXRob2QiOiJHRVQiLCJyZWxlYXNlIjoiYS1hLWEifSwiY2hlY2tzdW0iOiIwOWRkNTYyNjk2YmQ4YjcwNjQxMTdhOTczNDdkOTU1MTI0M2I3YzUwMjBlYTM0Y2EwYmY0OWE4ODc2ZTY2ZjJkIn0=')" >