From 86e95543b5e625a65a59965f687e9f300dda67a5 Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Tue, 20 Aug 2024 17:47:37 +0900 Subject: [PATCH 01/94] =?UTF-8?q?UploaderFilesController::ajax=5Flist()=20?= =?UTF-8?q?=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=E8=AA=BF=E6=95=B4=20(#3714)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng --- .../Admin/UploaderFilesController.php | 1 + .../tests/Scenario/UploaderFilesScenario.php | 12 ++++---- .../Admin/UploaderFilesControllerTest.php | 28 +++++++++++++++---- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/plugins/bc-uploader/src/Controller/Admin/UploaderFilesController.php b/plugins/bc-uploader/src/Controller/Admin/UploaderFilesController.php index 5eab8b8548..e110a78ff5 100755 --- a/plugins/bc-uploader/src/Controller/Admin/UploaderFilesController.php +++ b/plugins/bc-uploader/src/Controller/Admin/UploaderFilesController.php @@ -94,6 +94,7 @@ public function ajax_index(UploaderFilesAdminServiceInterface $service, int $id) * @return void * @checked * @noTodo + * @unitTest */ public function ajax_list(UploaderFilesAdminServiceInterface $service, int $id = null) { diff --git a/plugins/bc-uploader/tests/Scenario/UploaderFilesScenario.php b/plugins/bc-uploader/tests/Scenario/UploaderFilesScenario.php index c3da5dd75c..54ba119688 100755 --- a/plugins/bc-uploader/tests/Scenario/UploaderFilesScenario.php +++ b/plugins/bc-uploader/tests/Scenario/UploaderFilesScenario.php @@ -52,12 +52,12 @@ public function load(...$args): mixed UploaderCategoryFactory::make(['id' => 2, 'name' => 'contact'])->persist(); //アップロードファイルデータを生成 - UploaderFileFactory::make(['id' => 1, 'name' => 'social_new.jpg', 'atl' => 'social_new.jpg', 'uploader_category_id' => 1, 'user_id' => 1, 'publish_begin' => '2017-07-09 03:38:07', 'publish_end' => '2017-07-09 03:38:07'])->persist(); - UploaderFileFactory::make(['id' => 2, 'name' => 'widget-hero.jpg', 'atl' => 'widget-hero.jpg', 'uploader_category_id' => 1, 'user_id' => 1])->persist(); - UploaderFileFactory::make(['id' => 3, 'name' => 'logo-48x48_c.png', 'atl' => 'logo-48x48_c.jpg', 'uploader_category_id' => 2, 'user_id' => 1])->persist(); - UploaderFileFactory::make(['id' => 4, 'name' => '2_1.jpg', 'atl' => '2_1.jpg', 'user_id' => 1])->persist(); - UploaderFileFactory::make(['id' => 5, 'name' => '2_2.jpg', 'atl' => '2_2.jpg', 'user_id' => 1])->persist(); - UploaderFileFactory::make(['id' => 6, 'name' => '2_3.jpg', 'atl' => '2_3.jpg', 'user_id' => 1])->persist(); + UploaderFileFactory::make(['id' => 1, 'name' => 'social_new.jpg', 'alt' => 'social_new.jpg', 'uploader_category_id' => 1, 'user_id' => 1, 'publish_begin' => '2017-07-09 03:38:07', 'publish_end' => '2017-07-09 03:38:07'])->persist(); + UploaderFileFactory::make(['id' => 2, 'name' => 'widget-hero.jpg', 'alt' => 'widget-hero.jpg', 'uploader_category_id' => 1, 'user_id' => 1])->persist(); + UploaderFileFactory::make(['id' => 3, 'name' => 'logo-48x48_c.png', 'alt' => 'logo-48x48_c.jpg', 'uploader_category_id' => 2, 'user_id' => 1])->persist(); + UploaderFileFactory::make(['id' => 4, 'name' => '2_1.jpg', 'alt' => '2_1.jpg', 'user_id' => 1])->persist(); + UploaderFileFactory::make(['id' => 5, 'name' => '2_2.jpg', 'alt' => '2_2.jpg', 'user_id' => 1])->persist(); + UploaderFileFactory::make(['id' => 6, 'name' => '2_3.jpg', 'alt' => '2_3.jpg', 'user_id' => 1])->persist(); return null; } diff --git a/plugins/bc-uploader/tests/TestCase/Controller/Admin/UploaderFilesControllerTest.php b/plugins/bc-uploader/tests/TestCase/Controller/Admin/UploaderFilesControllerTest.php index 1f96b5b0e7..54af8e55ff 100644 --- a/plugins/bc-uploader/tests/TestCase/Controller/Admin/UploaderFilesControllerTest.php +++ b/plugins/bc-uploader/tests/TestCase/Controller/Admin/UploaderFilesControllerTest.php @@ -6,6 +6,7 @@ use BaserCore\Test\Scenario\InitAppScenario; use BaserCore\TestSuite\BcTestCase; use BcUploader\Controller\Admin\UploaderFilesController; +use BcUploader\Test\Factory\UploaderConfigFactory; use BcUploader\Test\Factory\UploaderFileFactory; use BcUploader\Test\Scenario\UploaderFilesScenario; use Cake\Event\Event; @@ -64,19 +65,36 @@ public function test_ajax_index() } /** - * test ajax_index + * test ajax_list */ public function test_ajax_list() { $this->loadFixtureScenario(UploaderFilesScenario::class); + SiteConfigFactory::make(['name' => 'admin_list_num', 'value' => 5])->persist(); + UploaderConfigFactory::make(['name' => 'layout_type', 'value' => 'panel'])->persist(); + $this->enableSecurityToken(); $this->enableCsrfToken(); - //正常系実行 - $this->post("/baser/admin/bc-uploader/uploader_files/ajax_index/1"); - $this->assertResponseOk(); + //正常系実行 $id != null + $this->get("/baser/admin/bc-uploader/uploader_files/ajax_list/1"); + $this->assertResponseCode(200); + + $vars = $this->_controller->viewBuilder()->getVars(); + $this->assertFalse($this->_controller->viewBuilder()->isAutoLayoutEnabled()); + $this->assertEquals(1, $vars['listId']); + $this->assertEquals("panel", $vars['layoutType']); + $this->assertEquals(5, count($vars['uploaderFiles'])); + + //正常系実行 $id == null + $this->get("/baser/admin/bc-uploader/uploader_files/ajax_list"); + $this->assertResponseCode(200); + + $vars = $this->_controller->viewBuilder()->getVars(); $this->assertFalse($this->_controller->viewBuilder()->isAutoLayoutEnabled()); - $this->assertEquals(1, $this->_controller->viewBuilder()->getVar('listId')); + $this->assertEquals(null, $vars['listId']); + $this->assertEquals("panel", $vars['layoutType']); + $this->assertEquals(5, count($vars['uploaderFiles'])); } /** From d81b313ac5e7d81876a7768f139ad23012083ec3 Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Tue, 20 Aug 2024 17:48:39 +0900 Subject: [PATCH 02/94] =?UTF-8?q?UploaderFilesController::ajax=5Fget=5Fsea?= =?UTF-8?q?rch=5Fbox()=20=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88=E3=83=86?= =?UTF-8?q?=E3=82=B9=E3=83=88=E8=AA=BF=E6=95=B4=20(#3716)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng --- .../Controller/Admin/UploaderFilesController.php | 1 + .../Admin/UploaderFilesControllerTest.php | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/plugins/bc-uploader/src/Controller/Admin/UploaderFilesController.php b/plugins/bc-uploader/src/Controller/Admin/UploaderFilesController.php index e110a78ff5..a2528e8606 100755 --- a/plugins/bc-uploader/src/Controller/Admin/UploaderFilesController.php +++ b/plugins/bc-uploader/src/Controller/Admin/UploaderFilesController.php @@ -199,6 +199,7 @@ public function delete(UploaderFilesServiceInterface $service, int $id) * @param int|null $listId * @checked * @noTodo + * @unitTest */ public function ajax_get_search_box(int $listId = null) { diff --git a/plugins/bc-uploader/tests/TestCase/Controller/Admin/UploaderFilesControllerTest.php b/plugins/bc-uploader/tests/TestCase/Controller/Admin/UploaderFilesControllerTest.php index 54af8e55ff..aa83488c11 100644 --- a/plugins/bc-uploader/tests/TestCase/Controller/Admin/UploaderFilesControllerTest.php +++ b/plugins/bc-uploader/tests/TestCase/Controller/Admin/UploaderFilesControllerTest.php @@ -168,8 +168,22 @@ public function test_delete() UploaderFileFactory::get(1); } + /** + * test ajax_get_search_box + */ public function test_ajax_get_search_box() { - $this->markTestIncomplete('こちらのテストはまだ未確認です'); + $this->enableSecurityToken(); + $this->enableCsrfToken(); + + //正常系実行 + $this->get("/baser/admin/bc-uploader/uploader_files/ajax_get_search_box/1"); + $this->assertResponseCode(200); + //disableAutoLayoutを確認 + $this->assertFalse($this->_controller->viewBuilder()->isAutoLayoutEnabled()); + //listIdを確認 + $this->assertEquals(1, $this->_controller->viewBuilder()->getVar("listId")); + //使用中テンプレートを確認 + $this->assertEquals("../element/search/uploader_files_index", $this->_controller->viewBuilder()->getTemplate()); } } From 70deeeb0f41b335066ebb43f7fe07a8ed4fce7c0 Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Tue, 20 Aug 2024 17:51:19 +0900 Subject: [PATCH 03/94] =?UTF-8?q?UploaderFilesController::view=5Flimited?= =?UTF-8?q?=5Ffile()=20=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88=E3=83=86?= =?UTF-8?q?=E3=82=B9=E3=83=88=20(#3717)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng --- .../Controller/UploaderFilesController.php | 1 + .../src/Service/UploaderFilesService.php | 2 +- .../UploaderCategoriesControllerTest.php | 2 +- .../UploaderConfigsControllerTest.php | 2 +- .../Api/UploaderFilesControllerTest.php | 168 ++++++++++++++++++ .../UploaderFilesControllerTest.php | 122 +------------ 6 files changed, 181 insertions(+), 116 deletions(-) rename plugins/bc-uploader/tests/TestCase/Controller/{ => Api}/UploaderCategoriesControllerTest.php (99%) rename plugins/bc-uploader/tests/TestCase/Controller/{ => Api}/UploaderConfigsControllerTest.php (98%) create mode 100644 plugins/bc-uploader/tests/TestCase/Controller/Api/UploaderFilesControllerTest.php diff --git a/plugins/bc-uploader/src/Controller/UploaderFilesController.php b/plugins/bc-uploader/src/Controller/UploaderFilesController.php index 65fa837242..65c4394904 100755 --- a/plugins/bc-uploader/src/Controller/UploaderFilesController.php +++ b/plugins/bc-uploader/src/Controller/UploaderFilesController.php @@ -28,6 +28,7 @@ class UploaderFilesController extends BcFrontAppController * 公開期間のチェックを行う * @checked * @noTodo + * @unitTest */ public function view_limited_file(UploaderFilesServiceInterface $service, string $filename) { diff --git a/plugins/bc-uploader/src/Service/UploaderFilesService.php b/plugins/bc-uploader/src/Service/UploaderFilesService.php index 1d5370977e..8efd1da363 100644 --- a/plugins/bc-uploader/src/Service/UploaderFilesService.php +++ b/plugins/bc-uploader/src/Service/UploaderFilesService.php @@ -128,7 +128,7 @@ protected function createAdminIndexConditions(array $params) } // 管理ユーザ以外が利用時、ユーザ制限がOnになっていれば一覧に表示しない $uploaderConfig = $this->uploaderConfigsService->get(); - if ($uploaderConfig->use_permission && !BcUtil::isAdminUser()) { + if ($uploaderConfig != null && $uploaderConfig->use_permission && !BcUtil::isAdminUser()) { $user = BcUtil::loginUser(); if ($user) $conditions['UploaderFiles.user_id'] = $user->id; } diff --git a/plugins/bc-uploader/tests/TestCase/Controller/UploaderCategoriesControllerTest.php b/plugins/bc-uploader/tests/TestCase/Controller/Api/UploaderCategoriesControllerTest.php similarity index 99% rename from plugins/bc-uploader/tests/TestCase/Controller/UploaderCategoriesControllerTest.php rename to plugins/bc-uploader/tests/TestCase/Controller/Api/UploaderCategoriesControllerTest.php index 8b7745820a..03a6467734 100644 --- a/plugins/bc-uploader/tests/TestCase/Controller/UploaderCategoriesControllerTest.php +++ b/plugins/bc-uploader/tests/TestCase/Controller/Api/UploaderCategoriesControllerTest.php @@ -9,7 +9,7 @@ * @license https://basercms.net/license/index.html MIT License */ -namespace BcUploader\Test\TestCase\Controller; +namespace BcUploader\Test\TestCase\Controller\Api; use BaserCore\Service\DblogsServiceInterface; use BaserCore\Test\Scenario\InitAppScenario; diff --git a/plugins/bc-uploader/tests/TestCase/Controller/UploaderConfigsControllerTest.php b/plugins/bc-uploader/tests/TestCase/Controller/Api/UploaderConfigsControllerTest.php similarity index 98% rename from plugins/bc-uploader/tests/TestCase/Controller/UploaderConfigsControllerTest.php rename to plugins/bc-uploader/tests/TestCase/Controller/Api/UploaderConfigsControllerTest.php index 58187833c5..f885cf2276 100644 --- a/plugins/bc-uploader/tests/TestCase/Controller/UploaderConfigsControllerTest.php +++ b/plugins/bc-uploader/tests/TestCase/Controller/Api/UploaderConfigsControllerTest.php @@ -9,7 +9,7 @@ * @license https://basercms.net/license/index.html MIT License */ -namespace BcUploader\Test\TestCase\Controller; +namespace BcUploader\Test\TestCase\Controller\Api; use BaserCore\Test\Scenario\InitAppScenario; use BaserCore\TestSuite\BcTestCase; diff --git a/plugins/bc-uploader/tests/TestCase/Controller/Api/UploaderFilesControllerTest.php b/plugins/bc-uploader/tests/TestCase/Controller/Api/UploaderFilesControllerTest.php new file mode 100644 index 0000000000..b9ebd104f6 --- /dev/null +++ b/plugins/bc-uploader/tests/TestCase/Controller/Api/UploaderFilesControllerTest.php @@ -0,0 +1,168 @@ + + * Copyright (c) NPO baser foundation + * + * @copyright Copyright (c) NPO baser foundation + * @link https://basercms.net baserCMS Project + * @since 5.0.0 + * @license https://basercms.net/license/index.html MIT License + */ + +namespace BcUploader\Test\TestCase\Controller\Api; + +use BaserCore\Test\Scenario\InitAppScenario; +use BaserCore\TestSuite\BcTestCase; +use BaserCore\Utility\BcFile; +use BcUploader\Test\Scenario\UploaderFilesScenario; +use BcUploader\Test\Factory\UploaderFileFactory; +use CakephpFixtureFactories\Scenario\ScenarioAwareTrait; +use Cake\TestSuite\IntegrationTestTrait; + +/** + * Class UploaderFilesControllerTest + */ +class UploaderFilesControllerTest extends BcTestCase +{ + + /** + * ScenarioAwareTrait + */ + use ScenarioAwareTrait; + use IntegrationTestTrait; + + /** + * Access Token + * @var string + */ + public $accessToken = null; + + /** + * Refresh Token + * @var null + */ + public $refreshToken = null; + + /** + * set up + */ + public function setUp(): void + { + parent::setUp(); + $this->loadFixtureScenario(InitAppScenario::class); + $token = $this->apiLoginAdmin(1); + $this->accessToken = $token['access_token']; + $this->refreshToken = $token['refresh_token']; + } + + /** + * Tear Down + * + * @return void + */ + public function tearDown(): void + { + parent::tearDown(); + $this->truncateTable('uploader_categories'); + $this->truncateTable('uploader_files'); + } + + /** + * test index + * @return void + */ + public function test_index() + { + //データを生成 + $this->loadFixtureScenario(UploaderFilesScenario::class); + + //APIを呼ぶ + $this->post("/baser/api/admin/bc-uploader/uploader_files/index.json?token=" . $this->accessToken); + // レスポンスコードを確認する + $this->assertResponseOk(); + // 戻る値を確認 + $result = json_decode((string)$this->_response->getBody()); + $this->assertCount(6, $result->uploaderFiles); + } + + /** + * test upload + */ + public function test_upload() + { + $this->markTestIncomplete('こちらのテストはまだ未確認です'); + $pathTest = TMP . 'test' . DS; + $pathUpload = WWW_ROOT . DS . 'files' . DS . 'uploads' . DS; + + //テストファイルを作成 + $file = new BcFile($pathTest . 'testUpload.txt'); + $file->create(); + $file->write(' \'test0\'];'); + $testFile = $pathTest . 'testUpload.txt'; + + //アップロードファイルを準備 + $this->setUploadFileToRequest('file', $testFile); + $this->setUnlockedFields(['file']); + + //APIをコル + $this->post("/baser/api/admin/bc-uploader/uploader_files/upload.json?token=" . $this->accessToken); + + //レスポンスステータスを確認 + $this->assertResponseOk(); + + //戻る値を確認 + $result = json_decode((string)$this->_response->getBody()); + $this->assertEquals('アップロードファイル「testUpload.txt」を追加しました。', $result->message); + $this->assertNotNull($result->uploaderFile); + + //ファイルがアップロードできるか確認 + $this->assertTrue(file_exists($pathUpload . 'testUpload.txt')); + + //不要ファイルを削除 + unlink($pathUpload . 'testUpload.txt'); + } + + /** + * test edit + */ + public function test_edit() + { + //データを生成 + $this->loadFixtureScenario(UploaderFilesScenario::class); + $data = UploaderFileFactory::get(1); + $data->alt = 'test edit'; + //APIを呼ぶ + $this->post("/baser/api/admin/bc-uploader/uploader_files/edit/1.json?token=" . $this->accessToken, $data->toArray()); + // レスポンスコードを確認する + $this->assertResponseOk(); + //戻る値を確認 + $result = json_decode((string)$this->_response->getBody()); + //メッセージを確認 + $this->assertEquals($result->message, 'アップロードファイル「social_new.jpg」を更新しました。'); + //値が変更されるか確認 + $this->assertEquals($result->uploaderFile->alt, 'test edit'); + } + + /** + * test delete + * @return void + */ + public function test_delete() + { + $pathImg = WWW_ROOT . DS . 'files' . DS . 'uploads' . DS; + //テストファイルを作成 + (new BcFile($pathImg . 'social_new.jpg'))->create(); + //データを生成 + $this->loadFixtureScenario(UploaderFilesScenario::class); + //APIを呼ぶ + $this->post("/baser/api/admin/bc-uploader/uploader_files/delete/1.json?token=" . $this->accessToken); + // レスポンスコードを確認する + $this->assertResponseOk(); + //戻る値を確認 + $result = json_decode((string)$this->_response->getBody()); + $this->assertEquals($result->message, 'アップロードファイル「social_new.jpg」を削除しました。'); + $this->assertEquals($result->uploaderFile->name, 'social_new.jpg'); + //ファイルが削除できるか確認 +// $this->assertFalse(file_exists($pathImg . 'social_new.jpg')); + } +} diff --git a/plugins/bc-uploader/tests/TestCase/Controller/UploaderFilesControllerTest.php b/plugins/bc-uploader/tests/TestCase/Controller/UploaderFilesControllerTest.php index 3c39102363..035a9405ba 100644 --- a/plugins/bc-uploader/tests/TestCase/Controller/UploaderFilesControllerTest.php +++ b/plugins/bc-uploader/tests/TestCase/Controller/UploaderFilesControllerTest.php @@ -11,10 +11,8 @@ namespace BcUploader\Test\TestCase\Controller; -use BaserCore\Test\Scenario\InitAppScenario; +use BaserCore\Test\Factory\SiteFactory; use BaserCore\TestSuite\BcTestCase; -use BaserCore\Utility\BcFile; -use BcUploader\Test\Scenario\UploaderFilesScenario; use BcUploader\Test\Factory\UploaderFileFactory; use CakephpFixtureFactories\Scenario\ScenarioAwareTrait; use Cake\TestSuite\IntegrationTestTrait; @@ -31,28 +29,12 @@ class UploaderFilesControllerTest extends BcTestCase use ScenarioAwareTrait; use IntegrationTestTrait; - /** - * Access Token - * @var string - */ - public $accessToken = null; - - /** - * Refresh Token - * @var null - */ - public $refreshToken = null; - /** * set up */ public function setUp(): void { parent::setUp(); - $this->loadFixtureScenario(InitAppScenario::class); - $token = $this->apiLoginAdmin(1); - $this->accessToken = $token['access_token']; - $this->refreshToken = $token['refresh_token']; } /** @@ -63,106 +45,20 @@ public function setUp(): void public function tearDown(): void { parent::tearDown(); - $this->truncateTable('uploader_categories'); - $this->truncateTable('uploader_files'); - } - - /** - * test index - * @return void - */ - public function test_index() - { - //データを生成 - $this->loadFixtureScenario(UploaderFilesScenario::class); - - //APIを呼ぶ - $this->post("/baser/api/admin/bc-uploader/uploader_files/index.json?token=" . $this->accessToken); - // レスポンスコードを確認する - $this->assertResponseOk(); - // 戻る値を確認 - $result = json_decode((string)$this->_response->getBody()); - $this->assertCount(6, $result->uploaderFiles); - } - - /** - * test upload - */ - public function test_upload() - { - $this->markTestIncomplete('こちらのテストはまだ未確認です'); - $pathTest = TMP . 'test' . DS; - $pathUpload = WWW_ROOT . DS . 'files' . DS . 'uploads' . DS; - - //テストファイルを作成 - $file = new BcFile($pathTest . 'testUpload.txt'); - $file->create(); - $file->write(' \'test0\'];'); - $testFile = $pathTest . 'testUpload.txt'; - - //アップロードファイルを準備 - $this->setUploadFileToRequest('file', $testFile); - $this->setUnlockedFields(['file']); - - //APIをコル - $this->post("/baser/api/admin/bc-uploader/uploader_files/upload.json?token=" . $this->accessToken); - - //レスポンスステータスを確認 - $this->assertResponseOk(); - - //戻る値を確認 - $result = json_decode((string)$this->_response->getBody()); - $this->assertEquals('アップロードファイル「testUpload.txt」を追加しました。', $result->message); - $this->assertNotNull($result->uploaderFile); - - //ファイルがアップロードできるか確認 - $this->assertTrue(file_exists($pathUpload . 'testUpload.txt')); - - //不要ファイルを削除 - unlink($pathUpload . 'testUpload.txt'); } - /** - * test edit - */ - public function test_edit() - { - //データを生成 - $this->loadFixtureScenario(UploaderFilesScenario::class); - $data = UploaderFileFactory::get(1); - $data->alt = 'test edit'; - //APIを呼ぶ - $this->post("/baser/api/admin/bc-uploader/uploader_files/edit/1.json?token=" . $this->accessToken, $data->toArray()); - // レスポンスコードを確認する - $this->assertResponseOk(); - //戻る値を確認 - $result = json_decode((string)$this->_response->getBody()); - //メッセージを確認 - $this->assertEquals($result->message, 'アップロードファイル「social_new.jpg」を更新しました。'); - //値が変更されるか確認 - $this->assertEquals($result->uploaderFile->alt, 'test edit'); - } /** - * test delete + * test view_limited_file * @return void */ - public function test_delete() + public function test_view_limited_file() { - $pathImg = WWW_ROOT . DS . 'files' . DS . 'uploads' . DS; - //テストファイルを作成 - (new BcFile($pathImg . 'social_new.jpg'))->create(); - //データを生成 - $this->loadFixtureScenario(UploaderFilesScenario::class); - //APIを呼ぶ - $this->post("/baser/api/admin/bc-uploader/uploader_files/delete/1.json?token=" . $this->accessToken); - // レスポンスコードを確認する - $this->assertResponseOk(); - //戻る値を確認 - $result = json_decode((string)$this->_response->getBody()); - $this->assertEquals($result->message, 'アップロードファイル「social_new.jpg」を削除しました。'); - $this->assertEquals($result->uploaderFile->name, 'social_new.jpg'); - //ファイルが削除できるか確認 -// $this->assertFalse(file_exists($pathImg . 'social_new.jpg')); + SiteFactory::make()->main()->persist(); + UploaderFileFactory::make(['name' => '2_2_test.jpg', 'publish_end' => '2000-01-27 12:00:00'])->persist(); + + //ログインしていない、かつ 未開日状態 場合:404を返す + $this->get("/files/uploads/2_2_test.jpg"); + $this->assertResponseCode(404); } } From 077e41fc818dec892150fd31ac2f3d3352771d21 Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Tue, 20 Aug 2024 15:53:57 +0700 Subject: [PATCH 04/94] unitTest_UploaderHelper_isPublish (#3718) Co-authored-by: thangnn --- .../src/View/Helper/UploaderHelper.php | 1 + .../View/Helper/UploaderHelperTest.php | 24 +++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/plugins/bc-uploader/src/View/Helper/UploaderHelper.php b/plugins/bc-uploader/src/View/Helper/UploaderHelper.php index 471f0b7b90..9b42c20cd3 100755 --- a/plugins/bc-uploader/src/View/Helper/UploaderHelper.php +++ b/plugins/bc-uploader/src/View/Helper/UploaderHelper.php @@ -161,6 +161,7 @@ public function isLimitSetting($data) * @return boolean * @checked * @noTodo + * @unitTest */ public function isPublish($data) { diff --git a/plugins/bc-uploader/tests/TestCase/View/Helper/UploaderHelperTest.php b/plugins/bc-uploader/tests/TestCase/View/Helper/UploaderHelperTest.php index 8b4615843b..d851288b22 100644 --- a/plugins/bc-uploader/tests/TestCase/View/Helper/UploaderHelperTest.php +++ b/plugins/bc-uploader/tests/TestCase/View/Helper/UploaderHelperTest.php @@ -5,6 +5,7 @@ use BcUploader\View\Helper\UploaderHelper; use BaserCore\TestSuite\BcTestCase; use Cake\Event\Event; +use Cake\I18n\FrozenTime; /** * baserCMS : Based Website Development Project @@ -126,9 +127,28 @@ public static function isLimitSettingDataProvider() /** * ファイルの公開状態を取得する + * test isPublish + * @param $publishBegin + * @param $publishEnd + * @param $expected + * @dataProvider isPublishDataProvider */ - public function testIsPublish() + public function testIsPublish($publishBegin, $publishEnd, $expected) { - $this->markTestIncomplete('このテストは、まだ実装されていません。'); + $uploaderFile = UploaderFileFactory::make(['publish_begin' => $publishBegin, 'publish_end' => $publishEnd])->getEntity(); + $rs = $this->UploaderHelper->isPublish($uploaderFile); + $this->assertEquals($expected, $rs); + } + + public static function isPublishDataProvider() + { + return [ + [null, null, true], + [new FrozenTime('+1 day'), null, false], + [null, new FrozenTime('-1 day'), false], + [new FrozenTime('-1 day'), new FrozenTime('+1 day'), true], + [new FrozenTime('+1 day'), new FrozenTime('+2 day'), false], + [new FrozenTime('now'), new FrozenTime('now'), false] + ]; } } From 79e3b0771658252775b6e75f26639ce1885a7802 Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Tue, 20 Aug 2024 15:54:20 +0700 Subject: [PATCH 05/94] unitTest_BcInstallerPlugin_console (#3723) Co-authored-by: thangnn --- .../bc-installer/src/BcInstallerPlugin.php | 1 + .../tests/TestCase/BcInstallerPluginTest.php | 51 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 plugins/bc-installer/tests/TestCase/BcInstallerPluginTest.php diff --git a/plugins/bc-installer/src/BcInstallerPlugin.php b/plugins/bc-installer/src/BcInstallerPlugin.php index 70c4fafa76..354897dbca 100644 --- a/plugins/bc-installer/src/BcInstallerPlugin.php +++ b/plugins/bc-installer/src/BcInstallerPlugin.php @@ -67,6 +67,7 @@ public function routes($routes): void * @return CommandCollection * @checked * @noTodo + * @unitTest */ public function console(CommandCollection $commands): CommandCollection { diff --git a/plugins/bc-installer/tests/TestCase/BcInstallerPluginTest.php b/plugins/bc-installer/tests/TestCase/BcInstallerPluginTest.php new file mode 100644 index 0000000000..670c5b654c --- /dev/null +++ b/plugins/bc-installer/tests/TestCase/BcInstallerPluginTest.php @@ -0,0 +1,51 @@ +BcInstallerPlugin = new BcInstallerPlugin(); + } + + public function tearDown(): void + { + parent::tearDown(); + } + + /** + * test services + */ + public function test_services() + { + $this->markTestIncomplete('Not implemented yet.'); + } + + /** + * test routes + */ + public function test_routes() + { + $this->markTestIncomplete('Not implemented yet.'); + } + + /** + * test commands + */ + public function test_commands() + { + $commands = new CommandCollection(); + $result = $this->BcInstallerPlugin->console($commands); + + $this->assertEquals(InstallCommand::class, $result->get('install')); + $this->assertEquals(InstallCheckCommand::class, $result->get('install check')); + } +} From 5253af197bc99be49499df965f2a02e9e10e9fb3 Mon Sep 17 00:00:00 2001 From: ryuring Date: Tue, 20 Aug 2024 18:19:00 +0900 Subject: [PATCH 06/94] =?UTF-8?q?UploaderFilesController::view=5Flimited?= =?UTF-8?q?=5Ffile=20=E3=81=8B=E3=82=89=20exit()=20=E3=82=92=E5=89=8A?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit テストができないため --- .../src/Controller/UploaderFilesController.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/bc-uploader/src/Controller/UploaderFilesController.php b/plugins/bc-uploader/src/Controller/UploaderFilesController.php index 65c4394904..7c56970fea 100755 --- a/plugins/bc-uploader/src/Controller/UploaderFilesController.php +++ b/plugins/bc-uploader/src/Controller/UploaderFilesController.php @@ -17,6 +17,7 @@ use BaserCore\Annotation\NoTodo; use BaserCore\Annotation\Checked; use BaserCore\Annotation\UnitTest; +use Laminas\Diactoros\Stream; /** * ファイルアップローダーコントローラー @@ -93,9 +94,12 @@ public function view_limited_file(UploaderFilesServiceInterface $service, string "asf" => "video/x-ms-asf", "wmv" => "video/x-ms-wmv" ]; - header("Content-type: " . $contentsMaping[$ext]); - readfile(WWW_ROOT . 'files' . DS . 'uploads' . DS . 'limited' . DS . $filename); - exit(); + $this->setResponse( + $this->getResponse() + ->withHeader('Content-type', $contentsMaping[$ext]) + ->withBody(new Stream(WWW_ROOT . 'files' . DS . 'uploads' . DS . 'limited' . DS . $filename)) + ); + $this->disableAutoRender(); } else { $this->notFound(); } From 52eda87d2dd7c1e62d2896612519c4f259860886 Mon Sep 17 00:00:00 2001 From: ryuring Date: Thu, 22 Aug 2024 15:38:51 +0900 Subject: [PATCH 07/94] =?UTF-8?q?monorepo=20release=20=E3=81=AE=20SetCurre?= =?UTF-8?q?ntMutualDependenciesReleaseWorker=20=E3=82=92=E7=84=A1=E5=8A=B9?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit リリース時に composer.json にキャレットが入ってしまっていて問題となったため --- monorepo-builder.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/monorepo-builder.php b/monorepo-builder.php index 130f0b2df4..48e954d21d 100644 --- a/monorepo-builder.php +++ b/monorepo-builder.php @@ -27,8 +27,7 @@ */ $mbConfig->defaultBranch('master'); $mbConfig->workers([ - UpdateReplaceReleaseWorker::class, - SetCurrentMutualDependenciesReleaseWorker::class, + UpdateReplaceReleaseWorker::class ]); } elseif(preg_match('/^[0-9]+\.[0-9]+\.[0-9]+-(alpha|beta|rc)/', $version)) { /** From 6c3172b45fe08072ff5789c6bb77a6463ac8c544 Mon Sep 17 00:00:00 2001 From: momofff Date: Thu, 22 Aug 2024 15:52:35 +0900 Subject: [PATCH 08/94] =?UTF-8?q?basercms-5.1.1=20=E3=82=92=E3=83=AA?= =?UTF-8?q?=E3=83=AA=E3=83=BC=E3=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composer.json | 2 +- plugins/baser-core/VERSION.txt | 14 ++++++++++++++ plugins/baser-core/composer.json | 28 ++++++++++++++-------------- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/composer.json b/composer.json index 39b3be0227..77a12925f9 100644 --- a/composer.json +++ b/composer.json @@ -42,8 +42,8 @@ "App\\": "src/", "BaserCore\\": "plugins/baser-core/src", "BcAdminThird\\": "plugins/bc-admin-third/src", - "BcColumn\\": "plugins/BcColumn/src/", "BcBlog\\": "plugins/bc-blog/src/", + "BcColumn\\": "plugins/BcColumn/src/", "BcContentLink\\": "plugins/bc-content-link/src/", "BcCustomContent\\": "plugins/bc-custom-content/src/", "BcEditorTemplate\\": "plugins/bc-editor-template/src/", diff --git a/plugins/baser-core/VERSION.txt b/plugins/baser-core/VERSION.txt index 83e3f27fcf..35d9bf0638 100644 --- a/plugins/baser-core/VERSION.txt +++ b/plugins/baser-core/VERSION.txt @@ -14,6 +14,20 @@ CHG: 変更内容 / BUG: バグフィックス / NEW: 機能追加 +[2024-08-22] basercms-5.1.1 +- NEW [BC] PHP8.3に対応 +- CHG [BC] ダウンロードパッケージからDockerの設定ファイルを削除しないように変更 +- CHG [BC] BcThemeSample / BcPluginSample / BcColumn を packagist に公開 +- CHG [BC] インストーラーを調整 + - .env が存在しない場合にステップ2で生成するようにした + - debugモードがOn になっている場合、ステップ5でOffに設定するようにした +- CHG [BC] docker compose コマンドを変更 + - docker-compose → docker compose +- BUG [BC] 初期データ読み込み時にCSVファイルの"0"がnullとして読み込まれてしまう事象を修正 +- BUG [BC] composer で読み込むライブラリを CakePHPの必要要件に合わせて調整 +- BUG [BG] BlogHelperの一部関数が5.1系に対応していない問題を改善 +- BUG [CC] カスタムコンテンツ設定編集のオプションの項目:更新日に漢字やひらがな等を入力し保存するとエラーになるがエラーメッセージが出ない箇所がある問題を改善 + [2024-07-18] basercms-5.1.0 - NEW [BC] 二段階認証 - NEW [BC] パスワードの再設定間隔 diff --git a/plugins/baser-core/composer.json b/plugins/baser-core/composer.json index 014f768966..c94db64564 100644 --- a/plugins/baser-core/composer.json +++ b/plugins/baser-core/composer.json @@ -15,20 +15,20 @@ "firebase/php-jwt": "6.1.0", "mobiledetect/mobiledetectlib": "^3.74", "ext-json": "*", - "baserproject/bc-admin-third": "5.1.x", - "baserproject/bc-blog": "5.1.x", - "baserproject/bc-content-link": "5.1.x", - "baserproject/bc-custom-content": "5.1.x", - "baserproject/bc-editor-template": "5.1.x", - "baserproject/bc-favorite": "5.1.x", - "baserproject/bc-front": "5.1.x", - "baserproject/bc-installer": "5.1.x", - "baserproject/bc-mail": "5.1.x", - "baserproject/bc-search-index": "5.1.x", - "baserproject/bc-theme-config": "5.1.x", - "baserproject/bc-theme-file": "5.1.x", - "baserproject/bc-uploader": "5.1.x", - "baserproject/bc-widget-area": "5.1.x", + "baserproject/bc-admin-third": "5.1.1", + "baserproject/bc-blog": "5.1.1", + "baserproject/bc-content-link": "5.1.1", + "baserproject/bc-custom-content": "5.1.1", + "baserproject/bc-editor-template": "5.1.1", + "baserproject/bc-favorite": "5.1.1", + "baserproject/bc-front": "5.1.1", + "baserproject/bc-installer": "5.1.1", + "baserproject/bc-mail": "5.1.1", + "baserproject/bc-search-index": "5.1.1", + "baserproject/bc-theme-config": "5.1.1", + "baserproject/bc-theme-file": "5.1.1", + "baserproject/bc-uploader": "5.1.1", + "baserproject/bc-widget-area": "5.1.1", "ext-mbstring": "*", "ext-zip": "*", "ext-gd": "*" From 403270435dbfbc4996e0ac98540ffb1582f792ae Mon Sep 17 00:00:00 2001 From: ryuring Date: Thu, 22 Aug 2024 17:35:11 +0900 Subject: [PATCH 09/94] =?UTF-8?q?basercms-5.1.1=20=E3=82=92=E3=83=AA?= =?UTF-8?q?=E3=83=AA=E3=83=BC=E3=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9628941bf9..d7f69e5612 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Some Handy Links - See [baserCMS Users Community](https://basercms.net/community/) - See [CakePHP - the rapid development PHP framework](https://cakephp.org) -Get Support! +Get Support ------------- - See [baserCMS Users Forum](https://forum.basercms.net/) From c2b19e3b230b7c9904718421f39d7bb8259393cc Mon Sep 17 00:00:00 2001 From: ryuring Date: Thu, 22 Aug 2024 17:38:15 +0900 Subject: [PATCH 10/94] =?UTF-8?q?basercms-5.1.1=20=E3=82=92=E3=83=AA?= =?UTF-8?q?=E3=83=AA=E3=83=BC=E3=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/baser-core/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/baser-core/README.md b/plugins/baser-core/README.md index 7b2b0f083a..04bffd6fcf 100644 --- a/plugins/baser-core/README.md +++ b/plugins/baser-core/README.md @@ -40,7 +40,7 @@ Some Handy Links - See [baserCMS Users Community](https://basercms.net/community/) - See [CakePHP - the rapid development PHP framework](https://cakephp.org) -Get Support! +Get Support ------------- - See [baserCMS Users Forum](https://forum.basercms.net/) From e74ed8c8f40690cde2cfa8afa2c5bc9f53f9565e Mon Sep 17 00:00:00 2001 From: ryuring Date: Sun, 25 Aug 2024 15:22:44 +0900 Subject: [PATCH 11/94] =?UTF-8?q?=E9=96=8B=E7=99=BA=E7=89=88=E3=81=AB?= =?UTF-8?q?=E3=81=8A=E3=81=84=E3=81=A6baserCMS=E5=86=85=E3=81=AE=E4=BE=9D?= =?UTF-8?q?=E5=AD=98=E3=83=A9=E3=82=A4=E3=83=96=E3=83=A9=E3=83=AA=E3=81=AE?= =?UTF-8?q?=E8=A6=81=E6=B1=82=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B3?= =?UTF-8?q?=E3=82=92=205.1.x=20=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit アップデートのテストがうまくいかないため --- plugins/baser-core/composer.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/plugins/baser-core/composer.json b/plugins/baser-core/composer.json index c94db64564..014f768966 100644 --- a/plugins/baser-core/composer.json +++ b/plugins/baser-core/composer.json @@ -15,20 +15,20 @@ "firebase/php-jwt": "6.1.0", "mobiledetect/mobiledetectlib": "^3.74", "ext-json": "*", - "baserproject/bc-admin-third": "5.1.1", - "baserproject/bc-blog": "5.1.1", - "baserproject/bc-content-link": "5.1.1", - "baserproject/bc-custom-content": "5.1.1", - "baserproject/bc-editor-template": "5.1.1", - "baserproject/bc-favorite": "5.1.1", - "baserproject/bc-front": "5.1.1", - "baserproject/bc-installer": "5.1.1", - "baserproject/bc-mail": "5.1.1", - "baserproject/bc-search-index": "5.1.1", - "baserproject/bc-theme-config": "5.1.1", - "baserproject/bc-theme-file": "5.1.1", - "baserproject/bc-uploader": "5.1.1", - "baserproject/bc-widget-area": "5.1.1", + "baserproject/bc-admin-third": "5.1.x", + "baserproject/bc-blog": "5.1.x", + "baserproject/bc-content-link": "5.1.x", + "baserproject/bc-custom-content": "5.1.x", + "baserproject/bc-editor-template": "5.1.x", + "baserproject/bc-favorite": "5.1.x", + "baserproject/bc-front": "5.1.x", + "baserproject/bc-installer": "5.1.x", + "baserproject/bc-mail": "5.1.x", + "baserproject/bc-search-index": "5.1.x", + "baserproject/bc-theme-config": "5.1.x", + "baserproject/bc-theme-file": "5.1.x", + "baserproject/bc-uploader": "5.1.x", + "baserproject/bc-widget-area": "5.1.x", "ext-mbstring": "*", "ext-zip": "*", "ext-gd": "*" From a7dd8d0ce3d4352c23da487a8fd11db102ecf8a8 Mon Sep 17 00:00:00 2001 From: ryuring Date: Thu, 29 Aug 2024 20:26:54 +0900 Subject: [PATCH 12/94] =?UTF-8?q?BurgerEditor=E7=94=A8=E3=81=AECSS?= =?UTF-8?q?=E3=82=92=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit スライドショーが崩れていたため --- .../BcThemeSample/webroot/css/bge_style.css | 1025 +++++++++++++++++ plugins/bc-front/src/css/common/_bge.scss | 6 + plugins/bc-front/webroot/css/bge_style.css | 8 +- 3 files changed, 1038 insertions(+), 1 deletion(-) create mode 100755 plugins/BcThemeSample/webroot/css/bge_style.css diff --git a/plugins/BcThemeSample/webroot/css/bge_style.css b/plugins/BcThemeSample/webroot/css/bge_style.css new file mode 100755 index 0000000000..141201bea2 --- /dev/null +++ b/plugins/BcThemeSample/webroot/css/bge_style.css @@ -0,0 +1,1025 @@ +@charset "UTF-8"; +/** + * baserCMS : Based Website Development Project + * Copyright (c) NPO baser foundation + * + * @copyright Copyright (c) NPO baser foundation + * @link https://basercms.net baserCMS Project + * @since 5.0.0 + * @license https://basercms.net/license/index.html MIT License + */ +/** + * バーガーエディタースタイル + * 管理画面でも呼び出される + */ +/** + * エディター用CSS + */ +.cke_editable { + padding: 15px; +} +/* Editor Parts +----------------------------------------------- */ +.bs-main-contents, +.bge-contents, +.cke_editable { + font-family: Arial, Verdana, "游ゴシック", YuGothic, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; + color: #000; +} +.bs-main-contents h1, +.bge-contents h1, +.cke_editable h1 { + font-size: 40px; + margin-bottom: 40px; + font-weight: bold; +} +.bs-main-contents h2, +.bge-contents h2, +.cke_editable h2 { + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", "sans-serif"; + letter-spacing: 0; + overflow: hidden; + font-size: 2.2em; + font-weight: bold; + line-height: 1.2; + margin: 0.6em 0; + padding: 0.3em 0; + text-align: left; + background: none; +} +.bs-main-contents h2:first-child, +.bge-contents h2:first-child, +.cke_editable h2:first-child { + margin-top: 0; +} +.bs-main-contents h3, +.bge-contents h3, +.cke_editable h3 { + margin: 56px 0 20px 0; + padding: 13px 28px 12px; + font-size: 21px; + font-weight: 700; + background: #f0f0f0; + border-radius: 10px; + line-height: 48.3px; + overflow: hidden; +} +.bs-main-contents h3:first-child, +.bge-contents h3:first-child, +.cke_editable h3:first-child { + margin-top: 0; +} +.bs-main-contents h4, +.bge-contents h4, +.cke_editable h4 { + border-bottom: 1px #CCC dotted; + font-size: 22px; + padding-bottom: 12px; + font-weight: bold; + padding-left: 0; + margin: 50px 0 17px 0; + overflow: hidden; + position: relative; +} +.bs-main-contents h4:first-child, +.bge-contents h4:first-child, +.cke_editable h4:first-child { + margin-top: 0; +} +.bs-main-contents h5, +.bge-contents h5, +.cke_editable h5 { + font-size: 1.2em; + font-weight: bold; + line-height: 1.2; + margin: 1em 0; + padding: 0.3em 0; + overflow: hidden; +} +.bs-main-contents h5:first-child, +.bge-contents h5:first-child, +.cke_editable h5:first-child { + margin-top: 0; +} +.bs-main-contents h6, +.bge-contents h6, +.cke_editable h6 { + font-size: 1em; + font-weight: bold; + line-height: 1.2; + margin: 1em 0; + border: none; + padding: 0.3em 0; + overflow: hidden; +} +.bs-main-contents h6:first-child, +.bge-contents h6:first-child, +.cke_editable h6:first-child { + margin-top: 0; +} +.bs-main-contents strong, +.bge-contents strong, +.cke_editable strong { + font-weight: bold; + font-style: normal; + text-decoration: none; +} +.bs-main-contents u, +.bge-contents u, +.cke_editable u { + font-weight: normal; + font-style: normal; + text-decoration: underline; +} +.bs-main-contents s, +.bge-contents s, +.cke_editable s { + font-weight: normal; + font-style: normal; + text-decoration: line-through; +} +.bs-main-contents em, +.bge-contents em, +.cke_editable em { + font-style: italic; +} +.bs-main-contents hr, +.bge-contents hr, +.cke_editable hr { + width: 100%; + height: 1px; + color: #ddd; + background: currentColor; + border-style: none; + margin: 50px auto; +} +.bs-main-contents hr:first-child, +.bge-contents hr:first-child, +.cke_editable hr:first-child { + margin-top: 0; +} +.bs-main-contents ul, +.bge-contents ul, +.cke_editable ul { + margin: 20px 0 36px 0; + line-height: 1.6; + letter-spacing: 0.05rem; +} +.bs-main-contents ul:first-child, +.bge-contents ul:first-child, +.cke_editable ul:first-child { + margin-top: 0; +} +.bs-main-contents ul li, +.bge-contents ul li, +.cke_editable ul li { + list-style-position: inside; + position: relative; + padding: 0 0 0 25px; + margin: 0.5em 0 0.5em 0; + list-style-type: none; + overflow: hidden; + word-break: break-word; +} +.bs-main-contents ul li a, +.bge-contents ul li a, +.cke_editable ul li a { + zoom: 1; +} +.bs-main-contents ul li:before, +.bge-contents ul li:before, +.cke_editable ul li:before { + display: block; + content: ""; + position: absolute; + top: 9px; + left: 1px; + width: 6px; + height: 6px; + background: #181818; + border-radius: 50%; +} +.bs-main-contents ul ul, +.bge-contents ul ul, +.cke_editable ul ul { + margin: 0 0 0 1.8em; +} +.bs-main-contents ul ul:first-child, +.bge-contents ul ul:first-child, +.cke_editable ul ul:first-child { + margin-top: 0; +} +.bs-main-contents ol, +.bge-contents ol, +.cke_editable ol { + margin: 20px 0 36px 1.8em; + line-height: 1.6; + letter-spacing: 0.05rem; +} +.bs-main-contents ol ol, +.bge-contents ol ol, +.cke_editable ol ol { + margin: 20px; +} +.bs-main-contents ol li, +.bge-contents ol li, +.cke_editable ol li { + list-style-type: decimal-leading-zero; + position: relative; + padding: 0 0 0 0; + margin: 0.5em 0 0.5em 0; + line-height: 1.6; +} +.bs-main-contents p, +.bge-contents p, +.cke_editable p { + margin: 1em 0; + letter-spacing: 0.05rem; + margin-bottom: 20px; + line-height: 2.3; +} +.bs-main-contents table, +.bge-contents table, +.cke_editable table { + border-collapse: collapse; + border-spacing: 0; + table-layout: fixed; + width: 100%; + border-left: 1px solid #e1e1e1; + border-right: 1px solid #e1e1e1; + border-bottom: 1px solid #e1e1e1; + margin: 20px 0 20px 0; +} +@media screen and (max-width: 768px) { + .bs-main-contents table, + .bge-contents table, + .cke_editable table { + width: 100%; + display: block; + } +} +.bs-main-contents table:first-child, +.bge-contents table:first-child, +.cke_editable table:first-child { + margin-top: 0; +} +.bs-main-contents table caption, +.bge-contents table caption, +.cke_editable table caption { + font-weight: bold; + text-align: left; +} +@media screen and (max-width: 768px) { + .bs-main-contents table caption, + .bge-contents table caption, + .cke_editable table caption { + display: block; + } +} +@media screen and (max-width: 768px) { + .bs-main-contents table tbody, + .bs-main-contents table tfoot, + .bge-contents table tbody, + .bge-contents table tfoot, + .cke_editable table tbody, + .cke_editable table tfoot { + display: block; + } +} +.bs-main-contents table tr, +.bge-contents table tr, +.cke_editable table tr { + border-top: 1px solid #e1e1e1; +} +@media screen and (max-width: 768px) { + .bs-main-contents table tr, + .bge-contents table tr, + .cke_editable table tr { + display: block; + margin-top: -1px; + } +} +.bs-main-contents table tr:nth-child(odd) td, +.bge-contents table tr:nth-child(odd) td, +.cke_editable table tr:nth-child(odd) td { + background: #fff; +} +.bs-main-contents table tr th, +.bs-main-contents table tr td, +.bge-contents table tr th, +.bge-contents table tr td, +.cke_editable table tr th, +.cke_editable table tr td { + text-align: left; + padding: 26px 24px; + border-left: 1px solid #e1e1e1; +} +@media screen and (max-width: 768px) { + .bs-main-contents table tr th, + .bs-main-contents table tr td, + .bge-contents table tr th, + .bge-contents table tr td, + .cke_editable table tr th, + .cke_editable table tr td { + width: auto; + display: block; + } +} +.bs-main-contents table tr th, +.bge-contents table tr th, +.cke_editable table tr th { + font-weight: bold; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", "sans-serif"; + background: #f3f3f3; +} +@media screen and (max-width: 768px) { + .bs-main-contents table tr th, + .bge-contents table tr th, + .cke_editable table tr th { + border-bottom: none; + } +} +.bs-main-contents table tr td, +.bge-contents table tr td, +.cke_editable table tr td { + font-weight: normal; +} +.bs-main-contents table tr td ul, +.bge-contents table tr td ul, +.cke_editable table tr td ul { + margin: 0; + padding: 0; +} +.bs-main-contents fieldset, +.bge-contents fieldset, +.cke_editable fieldset { + border: 0; +} +.bs-main-contents img, +.bge-contents img, +.cke_editable img { + border: 0; + margin: auto; +} +.bs-main-contents address, .bs-main-contents button, .bs-main-contents caption, .bs-main-contents cite, .bs-main-contents code, .bs-main-contents dfn, .bs-main-contents em, .bs-main-contents input, .bs-main-contents optgroup, .bs-main-contents option, .bs-main-contents select, .bs-main-contents strong, .bs-main-contents textarea, .bs-main-contents th, .bs-main-contents var, +.bge-contents address, +.bge-contents button, +.bge-contents caption, +.bge-contents cite, +.bge-contents code, +.bge-contents dfn, +.bge-contents em, +.bge-contents input, +.bge-contents optgroup, +.bge-contents option, +.bge-contents select, +.bge-contents strong, +.bge-contents textarea, +.bge-contents th, +.bge-contents var, +.cke_editable address, +.cke_editable button, +.cke_editable caption, +.cke_editable cite, +.cke_editable code, +.cke_editable dfn, +.cke_editable em, +.cke_editable input, +.cke_editable optgroup, +.cke_editable option, +.cke_editable select, +.cke_editable strong, +.cke_editable textarea, +.cke_editable th, +.cke_editable var { + font: inherit; +} +.bs-main-contents small, +.bge-contents small, +.cke_editable small { + color: #666; +} +.bs-main-contents del, .bs-main-contents ins, +.bge-contents del, +.bge-contents ins, +.cke_editable del, +.cke_editable ins { + text-decoration: none; +} +.bs-main-contents a:link, .bs-main-contents a:visited, +.bge-contents a:link, +.bge-contents a:visited, +.cke_editable a:link, +.cke_editable a:visited { + color: #2b7bb9; +} +.bs-main-contents a:hover, +.bge-contents a:hover, +.cke_editable a:hover { + text-decoration: none; +} +.bs-main-contents caption, .bs-main-contents th, +.bge-contents caption, +.bge-contents th, +.cke_editable caption, +.cke_editable th { + text-align: left; +} +.bs-main-contents q:before, .bs-main-contents q:after, +.bge-contents q:before, +.bge-contents q:after, +.cke_editable q:before, +.cke_editable q:after { + content: ""; +} +.bs-main-contents abbr, .bs-main-contents acronym, +.bge-contents abbr, +.bge-contents acronym, +.cke_editable abbr, +.cke_editable acronym { + border: 0; + font-variant: normal; +} +.bs-main-contents sub, +.bge-contents sub, +.cke_editable sub { + font-size: 0.8em; + font-weight: normal; + font-style: normal; + text-decoration: none; + vertical-align: sub; +} +.bs-main-contents sup, +.bge-contents sup, +.cke_editable sup { + font-size: 0.8em; + font-weight: normal; + font-style: normal; + text-decoration: none; + vertical-align: super; +} +.bs-main-contents legend, +.bge-contents legend, +.cke_editable legend { + color: #000; +} +.bs-main-contents pre, +.bge-contents pre, +.cke_editable pre { + background-color: #F3F3F3; + text-align: left; + padding: 10px 20px; + margin-bottom: 20px; + overflow: auto; + border: 1px solid #E2E2E2; +} +.bs-main-contents blockquote, +.bge-contents blockquote, +.cke_editable blockquote { + position: relative; + margin: 1em 0; + padding: 1px 2.5em; + border-radius: 5px; + background: none; + border: 2px solid #ccc; + overflow: hidden; + color: #888; + font-size: 0.9em; +} +.bs-main-contents blockquote:first-child, +.bge-contents blockquote:first-child, +.cke_editable blockquote:first-child { + margin-top: 0; +} +.bs-main-contents blockquote::before, +.bge-contents blockquote::before, +.cke_editable blockquote::before { + content: "“"; + display: block; + font-family: serif; + position: absolute; + top: 0.3em; + left: 0.25em; + z-index: 0; + color: #ccc; + font-size: 3em; +} +.bs-main-contents blockquote::after, +.bge-contents blockquote::after, +.cke_editable blockquote::after { + content: "”"; + display: block; + font-family: serif; + position: absolute; + bottom: -0.3em; + right: 0.25em; + z-index: 0; + color: #ccc; + font-size: 3em; +} +/* Form Parts +----------------------------------------------- */ +.bs-main-contents form, +.bge-contents form, +.cke_editable form, +.bs-sub-contents form { + display: inline; +} +.bs-main-contents input, .bs-main-contents textarea, .bs-main-contents select, .bs-main-contents option, +.bge-contents input, +.bge-contents textarea, +.bge-contents select, +.bge-contents option, +.cke_editable input, +.cke_editable textarea, +.cke_editable select, +.cke_editable option, +.bs-sub-contents input, +.bs-sub-contents textarea, +.bs-sub-contents select, +.bs-sub-contents option { + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", "sans-serif"; +} +.bs-main-contents input[type=password], +.bs-main-contents input[type=text], +.bs-main-contents input[type=email], +.bs-main-contents input[type=tel], +.bs-main-contents input[type=number], +.bs-main-contents textarea, +.bs-main-contents select, +.bge-contents input[type=password], +.bge-contents input[type=text], +.bge-contents input[type=email], +.bge-contents input[type=tel], +.bge-contents input[type=number], +.bge-contents textarea, +.bge-contents select, +.cke_editable input[type=password], +.cke_editable input[type=text], +.cke_editable input[type=email], +.cke_editable input[type=tel], +.cke_editable input[type=number], +.cke_editable textarea, +.cke_editable select, +.bs-sub-contents input[type=password], +.bs-sub-contents input[type=text], +.bs-sub-contents input[type=email], +.bs-sub-contents input[type=tel], +.bs-sub-contents input[type=number], +.bs-sub-contents textarea, +.bs-sub-contents select { + margin: 3px 2px; + padding: 8px 10px; + border: 1px solid #ccc; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.bs-main-contents input[type=checkbox], +.bge-contents input[type=checkbox], +.cke_editable input[type=checkbox], +.bs-sub-contents input[type=checkbox] { + vertical-align: middle; +} +.bs-main-contents input[type=radio], .bs-main-contents input[type=checkbox], +.bge-contents input[type=radio], +.bge-contents input[type=checkbox], +.cke_editable input[type=radio], +.cke_editable input[type=checkbox], +.bs-sub-contents input[type=radio], +.bs-sub-contents input[type=checkbox] { + margin-left: 5px; + margin-right: 5px; +} +.bs-main-contents input[type=submit], .bs-main-contents input[type=reset], .bs-main-contents input[type=button], +.bge-contents input[type=submit], +.bge-contents input[type=reset], +.bge-contents input[type=button], +.cke_editable input[type=submit], +.cke_editable input[type=reset], +.cke_editable input[type=button], +.bs-sub-contents input[type=submit], +.bs-sub-contents input[type=reset], +.bs-sub-contents input[type=button] { + margin: 3px 2px; + font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "メイリオ", "Meiryo", "MS Pゴシック", "Helvetica Neue", "Helvetica", "Arial", "sans-serif"; +} +.bs-main-contents input[type=password], .bs-main-contents input[type=text], .bs-main-contents input[type=email], .bs-main-contents input[type=tel], .bs-main-contents input[type=number], +.bge-contents input[type=password], +.bge-contents input[type=text], +.bge-contents input[type=email], +.bge-contents input[type=tel], +.bge-contents input[type=number], +.cke_editable input[type=password], +.cke_editable input[type=text], +.cke_editable input[type=email], +.cke_editable input[type=tel], +.cke_editable input[type=number], +.bs-sub-contents input[type=password], +.bs-sub-contents input[type=text], +.bs-sub-contents input[type=email], +.bs-sub-contents input[type=tel], +.bs-sub-contents input[type=number] { + font-size: 1em; +} +.bs-main-contents input[type=password]::placeholder, .bs-main-contents input[type=text]::placeholder, .bs-main-contents input[type=email]::placeholder, .bs-main-contents input[type=tel]::placeholder, .bs-main-contents input[type=number]::placeholder, +.bge-contents input[type=password]::placeholder, +.bge-contents input[type=text]::placeholder, +.bge-contents input[type=email]::placeholder, +.bge-contents input[type=tel]::placeholder, +.bge-contents input[type=number]::placeholder, +.cke_editable input[type=password]::placeholder, +.cke_editable input[type=text]::placeholder, +.cke_editable input[type=email]::placeholder, +.cke_editable input[type=tel]::placeholder, +.cke_editable input[type=number]::placeholder, +.bs-sub-contents input[type=password]::placeholder, +.bs-sub-contents input[type=text]::placeholder, +.bs-sub-contents input[type=email]::placeholder, +.bs-sub-contents input[type=tel]::placeholder, +.bs-sub-contents input[type=number]::placeholder { + color: #ccc; +} +.bs-main-contents input:active, .bs-main-contents input:focus, +.bge-contents input:active, +.bge-contents input:focus, +.cke_editable input:active, +.cke_editable input:focus, +.bs-sub-contents input:active, +.bs-sub-contents input:focus { + box-shadow: 0 0 5px 1px #fa9696; + outline: none; +} +.bs-main-contents textarea, +.bge-contents textarea, +.cke_editable textarea, +.bs-sub-contents textarea { + width: 95%; + font-size: 1em; + padding: 3px 3px; +} +.bs-main-contents textarea:active, .bs-main-contents textarea:focus, +.bge-contents textarea:active, +.bge-contents textarea:focus, +.cke_editable textarea:active, +.cke_editable textarea:focus, +.bs-sub-contents textarea:active, +.bs-sub-contents textarea:focus { + box-shadow: 0 0 5px 1px #fa9696; + outline: none; +} +.bs-main-contents input[type=password], .bs-main-contents input[type=text], .bs-main-contents input[type=email], .bs-main-contents input[type=tel], .bs-main-contents input[type=number], +.bge-contents input[type=password], +.bge-contents input[type=text], +.bge-contents input[type=email], +.bge-contents input[type=tel], +.bge-contents input[type=number], +.cke_editable input[type=password], +.cke_editable input[type=text], +.cke_editable input[type=email], +.cke_editable input[type=tel], +.cke_editable input[type=number], +.bs-sub-contents input[type=password], +.bs-sub-contents input[type=text], +.bs-sub-contents input[type=email], +.bs-sub-contents input[type=tel], +.bs-sub-contents input[type=number] { + line-height: 1em; +} +.bs-main-contents select, +.bge-contents select, +.cke_editable select, +.bs-sub-contents select { + font-size: 1em; + height: 2.6em; + padding: 10px 8px; +} +.bs-main-contents select:active, .bs-main-contents select:focus, +.bge-contents select:active, +.bge-contents select:focus, +.cke_editable select:active, +.cke_editable select:focus, +.bs-sub-contents select:active, +.bs-sub-contents select:focus { + box-shadow: 0 0 5px 1px #fa9696; + outline: none; +} +.bs-main-contents optgroup option, +.bge-contents optgroup option, +.cke_editable optgroup option, +.bs-sub-contents optgroup option { + padding-left: 20px; +} +/** + * 変数 + */ +/** ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- * + * + * フォントの定義 + * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + * + * ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- **/ +@font-face { + font-family: FontAwesome; + src: url("../fonts/fontawesome-webfont.eot?v=4.6.3"); + src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.6.3") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.6.3") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.6.3") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular") format("svg"); + font-weight: normal; + font-style: normal; +} +/** ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- * + * + * マルチカラムブロックのレイアウト + * + * ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- **/ +/** + * BurgerEditor StyleSheet Style + */ +.bgt-box__caption { + text-align: left; + font-weight: normal; + padding: 3px; + background: none; + font-size: 0.8em; +} +.bgt-btn { + appearance: none; + display: inline-block; + vertical-align: middle; + padding: 12px 10px; + border-width: 1px; + border-style: solid; + background: #fff; + text-decoration: none; + min-width: 280px; + border-radius: 2px; +} +.bgt-btn:active, .bgt-btn:focus { + box-shadow: 0 0 10px 0 #0570c7, 0 0 10px 0 #fff; +} +.bgt-btn--link, +[data-bgt-button-kind=link] .bgt-btn { + color: #333; + border-color: #ccc; + background: #fff; +} +.bgt-btn--link:hover, .bgt-btn--link:active, .bgt-btn--link:focus, +[data-bgt-button-kind=link] .bgt-btn:hover, +[data-bgt-button-kind=link] .bgt-btn:active, +[data-bgt-button-kind=link] .bgt-btn:focus { + background: #e9e9e9; +} +.bgt-btn--em, +[data-bgt-button-kind=em] .bgt-btn { + font-weight: bold; + color: #fff; + border-color: #333; + background: #333; +} +.bgt-btn--em:hover, .bgt-btn--em:active, .bgt-btn--em:focus, +[data-bgt-button-kind=em] .bgt-btn:hover, +[data-bgt-button-kind=em] .bgt-btn:active, +[data-bgt-button-kind=em] .bgt-btn:focus { + background: #555; +} +.bgt-btn--external, +[data-bgt-button-kind=external] .bgt-btn { + color: #333; + border-color: #ccc; + background: #fff; +} +.bgt-btn--external:hover, .bgt-btn--external:active, .bgt-btn--external:focus, +[data-bgt-button-kind=external] .bgt-btn:hover, +[data-bgt-button-kind=external] .bgt-btn:active, +[data-bgt-button-kind=external] .bgt-btn:focus { + background: #e9e9e9; +} +.bgt-btn--external::after, +[data-bgt-button-kind=external] .bgt-btn::after { + font-family: FontAwesome, serif; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + text-rendering: auto; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f08e"; + font-size: 1em; + color: #999; + vertical-align: middle; +} +.bgt-btn--back, +[data-bgt-button-kind=back] .bgt-btn { + color: #333; + border-color: #ddd; + background: #ddd; +} +.bgt-btn--back:hover, .bgt-btn--back:active, .bgt-btn--back:focus, +[data-bgt-button-kind=back] .bgt-btn:hover, +[data-bgt-button-kind=back] .bgt-btn:active, +[data-bgt-button-kind=back] .bgt-btn:focus { + background: #e9e9e9; +} +.bgt-btn--back span, +[data-bgt-button-kind=back] .bgt-btn span { + display: inline-block; + vertical-align: middle; +} +.bgt-btn--back::before, +[data-bgt-button-kind=back] .bgt-btn::before { + font-family: FontAwesome, serif; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + text-rendering: auto; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f053"; + font-size: 1em; + margin-top: -2px; + display: inline-block; + vertical-align: middle; +} +.bgt-hr { + margin: 0 auto; +} +[data-bgt-hr-kind=dashed] .bgt-hr { + height: 0; + border: none; + background: none; + border-bottom: 2px dashed currentColor; +} +.bgt-hr--bold, +[data-bgt-hr-kind=bold] .bgt-hr { + height: 5px; +} +.bgt-hr--narrow, +[data-bgt-hr-kind=narrow] .bgt-hr { + height: 1px; +} +.bgt-hr--short, +[data-bgt-hr-kind=short] .bgt-hr { + width: 60%; + height: 1px; +} +.bgt-download-file__link { + color: #333; + text-align: left; + font-size: 1.08em; + font-weight: bold; + display: inline-block; + padding: 0.7em 1em; + box-sizing: border-box; + border: 1px solid #ccc; + border-radius: 3px; + background-color: #fff; + line-height: 1; + text-decoration: none; +} +.bgt-download-file__link:hover { + background-color: #eee; +} +.bgt-download-file__link:active, .bgt-download-file__link:focus { + box-shadow: 0 0 5px 1px #0570c7; + outline: none; +} +.bgt-link__size { + color: #808080; + font-size: 0.8em; + font-weight: normal; +} +@media screen and (max-width: 768px) { + .bgt-google-maps-link { + margin-top: 10px; + padding: 1em; + text-decoration: none; + color: #333; + border: solid 1px #999; + border-radius: 3px; + text-align: center; + } + .bgt-google-maps-link span { + display: inline-block; + vertical-align: middle; + } + .bgt-google-maps-link::after { + font-family: FontAwesome, serif; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + text-rendering: auto; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f08e"; + font-size: 1em; + vertical-align: middle; + } +} +[data-bgt=gallery] .bgt-gallery { + padding-top: 54%; +} +[data-bgt=gallery] .bgt-gallery:hover [data-bgt=gallery] .bgt-gallery-ctrl { + opacity: 1; +} +[data-bgt=gallery] .bgt-gallery__img img { + object-fit: cover; +} +[data-bgt=gallery] .bgt-gallery__caption { + color: #fff; + background: rgba(0, 0, 0, 0.6); + padding: 0.7em 1em; + text-align: center; +} +[data-bgt=gallery] .bgt-gallery-ctrl { + top: 50%; + opacity: 0; + transition: opacity 200ms ease-in; +} +[data-bgt=gallery] .bgt-gallery-ctrl__prev, [data-bgt=gallery] .bgt-gallery-ctrl__next { + display: block; + appearance: none; + margin: -20px 0 0; + padding: 0; + background: none; + border: none; + transform-origin: center center; +} +[data-bgt=gallery] .bgt-gallery-ctrl__prev:hover, [data-bgt=gallery] .bgt-gallery-ctrl__next:hover { + opacity: 0.5; +} +[data-bgt=gallery] .bgt-gallery-ctrl__prev:focus, [data-bgt=gallery] .bgt-gallery-ctrl__next:focus { + outline: none; +} +[data-bgt=gallery] .bgt-gallery-ctrl__prev span, [data-bgt=gallery] .bgt-gallery-ctrl__next span { + display: block; + overflow: hidden; + width: 0; + height: 0; +} +[data-bgt=gallery] .bgt-gallery-ctrl__prev::after, [data-bgt=gallery] .bgt-gallery-ctrl__next::after { + content: ""; + display: block; + width: 40px; + height: 40px; + border: solid #fff; + border-width: 5px 5px 0 0; +} +[data-bgt=gallery] .bgt-gallery-ctrl__prev { + left: 20px; + transform: rotate(-135deg); +} +[data-bgt=gallery] .bgt-gallery-ctrl__next { + right: 20px; + transform: rotate(45deg); +} +[data-bgt=gallery] [data-gallery-marker=thumbs] + .bgt-gallery-marker { + margin-top: 10px; +} +[data-bgt=gallery] [data-gallery-marker=thumbs] + .bgt-gallery-marker li { + margin: 0 5px; + width: 60px; + height: 60px; +} +[data-bgt=gallery] [data-gallery-marker=thumbs] + .bgt-gallery-marker li::before { + display: none; +} +[data-bgt=gallery] [data-gallery-marker=dot] + .bgt-gallery-marker { + margin-top: 10px; +} +[data-bgt=gallery] [data-gallery-marker=dot] + .bgt-gallery-marker li { + margin: 0 2px; + width: 10px; + height: 10px; + background-color: #999; + border-radius: 100%; +} +[data-bgt=gallery] [data-gallery-marker=dot] + .bgt-gallery-marker li.current { + background-color: #000; +} +/* デバイス依存汎用クラス */ +.pc-only { + display: block; +} +@media screen and (max-width: 768px) { + .pc-only { + display: none; + } +} +.sp-only { + display: none; +} +@media screen and (max-width: 768px) { + .sp-only { + display: block; + } +} +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9iZ2Vfc3R5bGUuY3NzIiwiY3NzL2JnZV9zdHlsZS5zY3NzIiwiY3NzL2NvbW1vbi9fZWRpdG9yLnNjc3MiLCJjc3MvY29tbW9uL19iZ2Vfc2V0dGluZy5zY3NzIiwiY3NzL2NvbW1vbi9fYmdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQ2hCOzs7Ozs7OztFQUFBO0FBVUE7OztFQUFBO0FDWEE7O0VBQUE7QUFNQTtFQUNFLGFBQUE7QUZZRjtBRVRBO2lEQUFBO0FBR0E7OztFQUdFLCtGQUFBO0VBQ0EsV0FBQTtBRldGO0FFVEU7OztFQUNFLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FGYUo7QUVWRTs7O0VBQ0Usd0xBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtBRmNKO0FFYkk7OztFQUNFLGFBQUE7QUZpQk47QUViRTs7O0VBQ0UscUJBQUE7RUFDQSx1QkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0FGaUJKO0FFZkk7OztFQUNFLGFBQUE7QUZtQk47QUVmRTs7O0VBQ0UsOEJBQUE7RUFDQSxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7QUZtQko7QUVqQkk7OztFQUNFLGFBQUE7QUZxQk47QUVqQkU7OztFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0FGcUJKO0FFbkJJOzs7RUFDRSxhQUFBO0FGdUJOO0FFbkJFOzs7RUFDRSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxn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bUJBQUE7QUpnc0JSO0FJOXJCUTtFQUNFLHNCQUFBO0FKZ3NCVjtBSXhyQkEsZ0JBQUE7QUFDQTtFQUNFLGNBQUE7QUoyckJGO0FJenJCRTtFQUhGO0lBSUksYUFBQTtFSjRyQkY7QUFDRjtBSXpyQkE7RUFDRSxhQUFBO0FKNHJCRjtBSTFyQkU7RUFIRjtJQUlJLGNBQUE7RUo2ckJGO0FBQ0YiLCJmaWxlIjoiY3NzL2JnZV9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIGJhc2VyQ01TIDogIEJhc2VkIFdlYnNpdGUgRGV2ZWxvcG1lbnQgUHJvamVjdCA8aHR0cHM6Ly9iYXNlcmNtcy5uZXQ+XG4gKiBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uIDxodHRwczovL2Jhc2VyZm91bmRhdGlvbi5vcmcvPlxuICpcbiAqIEBjb3B5cmlnaHQgICAgIENvcHlyaWdodCAoYykgTlBPIGJhc2VyIGZvdW5kYXRpb25cbiAqIEBsaW5rICAgICAgICAgIGh0dHBzOi8vYmFzZXJjbXMubmV0IGJhc2VyQ01TIFByb2plY3RcbiAqIEBzaW5jZSAgICAgICAgIDUuMC4wXG4gKiBAbGljZW5zZSAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldC9saWNlbnNlL2luZGV4Lmh0bWwgTUlUIExpY2Vuc2VcbiAqL1xuLyoqXG4gKiDjg5Djg7zjgqzjg7zjgqjjg4fjgqPjgr/jg7zjgrnjgr/jgqTjg6tcbiAqIOeuoeeQhueUu+mdouOBp+OCguWRvOOBs+WHuuOBleOCjOOCi1xuICovXG4vKipcbiAqIOOCqOODh+OCo+OCv+ODvOeUqENTU1xuICovXG4uY2tlX2VkaXRhYmxlIHtcbiAgcGFkZGluZzogMTVweDtcbn1cblxuLyogRWRpdG9yIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJzLW1haW4tY29udGVudHMsXG4uYmdlLWNvbnRlbnRzLFxuLmNrZV9lZGl0YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgVmVyZGFuYSwgXCLmuLjjgrTjgrfjg4Pjgq9cIiwgWXVHb3RoaWMsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvTlwiLCBNZWlyeW8sIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDEsXG4uYmdlLWNvbnRlbnRzIGgxLFxuLmNrZV9lZGl0YWJsZSBoMSB7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoMixcbi5iZ2UtY29udGVudHMgaDIsXG4uY2tlX2VkaXRhYmxlIGgyIHtcbiAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDIuMmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAwLjZlbSAwO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgaDI6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGgyOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoMjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoMyxcbi5iZ2UtY29udGVudHMgaDMsXG4uY2tlX2VkaXRhYmxlIGgzIHtcbiAgbWFyZ2luOiA1NnB4IDAgMjBweCAwO1xuICBwYWRkaW5nOiAxM3B4IDI4cHggMTJweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBsaW5lLWhlaWdodDogNDguM3B4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJzLW1haW4tY29udGVudHMgaDM6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGgzOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoMzpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNCxcbi5iZ2UtY29udGVudHMgaDQsXG4uY2tlX2VkaXRhYmxlIGg0IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4ICNDQ0MgZG90dGVkO1xuICBmb250LXNpemU6IDIycHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDUwcHggMCAxN3B4IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGg0OmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyBoNDpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgaDQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDUsXG4uYmdlLWNvbnRlbnRzIGg1LFxuLmNrZV9lZGl0YWJsZSBoNSB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJzLW1haW4tY29udGVudHMgaDU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGg1OmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoNTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNixcbi5iZ2UtY29udGVudHMgaDYsXG4uY2tlX2VkaXRhYmxlIGg2IHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW46IDFlbSAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAuM2VtIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNjpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgaDY6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGg2OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHN0cm9uZyxcbi5iZ2UtY29udGVudHMgc3Ryb25nLFxuLmNrZV9lZGl0YWJsZSBzdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1LFxuLmJnZS1jb250ZW50cyB1LFxuLmNrZV9lZGl0YWJsZSB1IHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHMsXG4uYmdlLWNvbnRlbnRzIHMsXG4uY2tlX2VkaXRhYmxlIHMge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuLmJzLW1haW4tY29udGVudHMgZW0sXG4uYmdlLWNvbnRlbnRzIGVtLFxuLmNrZV9lZGl0YWJsZSBlbSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5icy1tYWluLWNvbnRlbnRzIGhyLFxuLmJnZS1jb250ZW50cyBocixcbi5ja2VfZWRpdGFibGUgaHIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGNvbG9yOiAjZGRkO1xuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiA1MHB4IGF1dG87XG59XG4uYnMtbWFpbi1jb250ZW50cyBocjpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgaHI6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGhyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsLFxuLmJnZS1jb250ZW50cyB1bCxcbi5ja2VfZWRpdGFibGUgdWwge1xuICBtYXJnaW46IDIwcHggMCAzNnB4IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1cmVtO1xufVxuLmJzLW1haW4tY29udGVudHMgdWw6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIHVsOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSB1bDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCBsaSxcbi5iZ2UtY29udGVudHMgdWwgbGksXG4uY2tlX2VkaXRhYmxlIHVsIGxpIHtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMCAwIDI1cHg7XG4gIG1hcmdpbjogMC41ZW0gMCAwLjVlbSAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCBsaSBhLFxuLmJnZS1jb250ZW50cyB1bCBsaSBhLFxuLmNrZV9lZGl0YWJsZSB1bCBsaSBhIHtcbiAgem9vbTogMTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsIGxpOmJlZm9yZSxcbi5iZ2UtY29udGVudHMgdWwgbGk6YmVmb3JlLFxuLmNrZV9lZGl0YWJsZSB1bCBsaTpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDlweDtcbiAgbGVmdDogMXB4O1xuICB3aWR0aDogNnB4O1xuICBoZWlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZDogIzE4MTgxODtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLmJzLW1haW4tY29udGVudHMgdWwgdWwsXG4uYmdlLWNvbnRlbnRzIHVsIHVsLFxuLmNrZV9lZGl0YWJsZSB1bCB1bCB7XG4gIG1hcmdpbjogMCAwIDAgMS44ZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCB1bDpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgdWwgdWw6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIHVsIHVsOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIG9sLFxuLmJnZS1jb250ZW50cyBvbCxcbi5ja2VfZWRpdGFibGUgb2wge1xuICBtYXJnaW46IDIwcHggMCAzNnB4IDEuOGVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNXJlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIG9sIG9sLFxuLmJnZS1jb250ZW50cyBvbCBvbCxcbi5ja2VfZWRpdGFibGUgb2wgb2wge1xuICBtYXJnaW46IDIwcHg7XG59XG4uYnMtbWFpbi1jb250ZW50cyBvbCBsaSxcbi5iZ2UtY29udGVudHMgb2wgbGksXG4uY2tlX2VkaXRhYmxlIG9sIGxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsLWxlYWRpbmctemVybztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDAgMCAwO1xuICBtYXJnaW46IDAuNWVtIDAgMC41ZW0gMDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHAsXG4uYmdlLWNvbnRlbnRzIHAsXG4uY2tlX2VkaXRhYmxlIHAge1xuICBtYXJnaW46IDFlbSAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDIuMztcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlLFxuLmJnZS1jb250ZW50cyB0YWJsZSxcbi5ja2VfZWRpdGFibGUgdGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMWUxZTE7XG4gIG1hcmdpbjogMjBweCAwIDIwcHggMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLmJzLW1haW4tY29udGVudHMgdGFibGU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIHRhYmxlOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSB0YWJsZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuLmJnZS1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSBjYXB0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIGNhcHRpb24sXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgY2FwdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRib2R5LFxuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0Zm9vdCxcbiAgLmJnZS1jb250ZW50cyB0YWJsZSB0Ym9keSxcbiAgLmJnZS1jb250ZW50cyB0YWJsZSB0Zm9vdCxcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB0Ym9keSxcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB0Zm9vdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0cixcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2UxZTFlMTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIHRyLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0cjpudGgtY2hpbGQob2RkKSB0ZCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgdGQsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHRkIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0ZCxcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMjZweCAyNHB4O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMWUxZTE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0aCxcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGQsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0aCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRoIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIH1cbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRkLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0ZCxcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGQge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQgdWwsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRkIHVsLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSB0ciB0ZCB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGZpZWxkc2V0LFxuLmJnZS1jb250ZW50cyBmaWVsZHNldCxcbi5ja2VfZWRpdGFibGUgZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbWcsXG4uYmdlLWNvbnRlbnRzIGltZyxcbi5ja2VfZWRpdGFibGUgaW1nIHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IGF1dG87XG59XG4uYnMtbWFpbi1jb250ZW50cyBhZGRyZXNzLCAuYnMtbWFpbi1jb250ZW50cyBidXR0b24sIC5icy1tYWluLWNvbnRlbnRzIGNhcHRpb24sIC5icy1tYWluLWNvbnRlbnRzIGNpdGUsIC5icy1tYWluLWNvbnRlbnRzIGNvZGUsIC5icy1tYWluLWNvbnRlbnRzIGRmbiwgLmJzLW1haW4tY29udGVudHMgZW0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0LCAuYnMtbWFpbi1jb250ZW50cyBvcHRncm91cCwgLmJzLW1haW4tY29udGVudHMgb3B0aW9uLCAuYnMtbWFpbi1jb250ZW50cyBzZWxlY3QsIC5icy1tYWluLWNvbnRlbnRzIHN0cm9uZywgLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsIC5icy1tYWluLWNvbnRlbnRzIHRoLCAuYnMtbWFpbi1jb250ZW50cyB2YXIsXG4uYmdlLWNvbnRlbnRzIGFkZHJlc3MsXG4uYmdlLWNvbnRlbnRzIGJ1dHRvbixcbi5iZ2UtY29udGVudHMgY2FwdGlvbixcbi5iZ2UtY29udGVudHMgY2l0ZSxcbi5iZ2UtY29udGVudHMgY29kZSxcbi5iZ2UtY29udGVudHMgZGZuLFxuLmJnZS1jb250ZW50cyBlbSxcbi5iZ2UtY29udGVudHMgaW5wdXQsXG4uYmdlLWNvbnRlbnRzIG9wdGdyb3VwLFxuLmJnZS1jb250ZW50cyBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIHNlbGVjdCxcbi5iZ2UtY29udGVudHMgc3Ryb25nLFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgdGgsXG4uYmdlLWNvbnRlbnRzIHZhcixcbi5ja2VfZWRpdGFibGUgYWRkcmVzcyxcbi5ja2VfZWRpdGFibGUgYnV0dG9uLFxuLmNrZV9lZGl0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSBjaXRlLFxuLmNrZV9lZGl0YWJsZSBjb2RlLFxuLmNrZV9lZGl0YWJsZSBkZm4sXG4uY2tlX2VkaXRhYmxlIGVtLFxuLmNrZV9lZGl0YWJsZSBpbnB1dCxcbi5ja2VfZWRpdGFibGUgb3B0Z3JvdXAsXG4uY2tlX2VkaXRhYmxlIG9wdGlvbixcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBzdHJvbmcsXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmNrZV9lZGl0YWJsZSB0aCxcbi5ja2VfZWRpdGFibGUgdmFyIHtcbiAgZm9udDogaW5oZXJpdDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNtYWxsLFxuLmJnZS1jb250ZW50cyBzbWFsbCxcbi5ja2VfZWRpdGFibGUgc21hbGwge1xuICBjb2xvcjogIzY2Njtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGRlbCwgLmJzLW1haW4tY29udGVudHMgaW5zLFxuLmJnZS1jb250ZW50cyBkZWwsXG4uYmdlLWNvbnRlbnRzIGlucyxcbi5ja2VfZWRpdGFibGUgZGVsLFxuLmNrZV9lZGl0YWJsZSBpbnMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBhOmxpbmssIC5icy1tYWluLWNvbnRlbnRzIGE6dmlzaXRlZCxcbi5iZ2UtY29udGVudHMgYTpsaW5rLFxuLmJnZS1jb250ZW50cyBhOnZpc2l0ZWQsXG4uY2tlX2VkaXRhYmxlIGE6bGluayxcbi5ja2VfZWRpdGFibGUgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICMyYjdiYjk7XG59XG4uYnMtbWFpbi1jb250ZW50cyBhOmhvdmVyLFxuLmJnZS1jb250ZW50cyBhOmhvdmVyLFxuLmNrZV9lZGl0YWJsZSBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgY2FwdGlvbiwgLmJzLW1haW4tY29udGVudHMgdGgsXG4uYmdlLWNvbnRlbnRzIGNhcHRpb24sXG4uYmdlLWNvbnRlbnRzIHRoLFxuLmNrZV9lZGl0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSB0aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyBxOmJlZm9yZSwgLmJzLW1haW4tY29udGVudHMgcTphZnRlcixcbi5iZ2UtY29udGVudHMgcTpiZWZvcmUsXG4uYmdlLWNvbnRlbnRzIHE6YWZ0ZXIsXG4uY2tlX2VkaXRhYmxlIHE6YmVmb3JlLFxuLmNrZV9lZGl0YWJsZSBxOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGFiYnIsIC5icy1tYWluLWNvbnRlbnRzIGFjcm9ueW0sXG4uYmdlLWNvbnRlbnRzIGFiYnIsXG4uYmdlLWNvbnRlbnRzIGFjcm9ueW0sXG4uY2tlX2VkaXRhYmxlIGFiYnIsXG4uY2tlX2VkaXRhYmxlIGFjcm9ueW0ge1xuICBib3JkZXI6IDA7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xufVxuLmJzLW1haW4tY29udGVudHMgc3ViLFxuLmJnZS1jb250ZW50cyBzdWIsXG4uY2tlX2VkaXRhYmxlIHN1YiB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xufVxuLmJzLW1haW4tY29udGVudHMgc3VwLFxuLmJnZS1jb250ZW50cyBzdXAsXG4uY2tlX2VkaXRhYmxlIHN1cCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG59XG4uYnMtbWFpbi1jb250ZW50cyBsZWdlbmQsXG4uYmdlLWNvbnRlbnRzIGxlZ2VuZCxcbi5ja2VfZWRpdGFibGUgbGVnZW5kIHtcbiAgY29sb3I6ICMwMDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBwcmUsXG4uYmdlLWNvbnRlbnRzIHByZSxcbi5ja2VfZWRpdGFibGUgcHJlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YzRjNGMztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgYm9yZGVyOiAxcHggc29saWQgI0UyRTJFMjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGJsb2NrcXVvdGUsXG4uYmdlLWNvbnRlbnRzIGJsb2NrcXVvdGUsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMWVtIDA7XG4gIHBhZGRpbmc6IDFweCAyLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDJweCBzb2xpZCAjY2NjO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgYmxvY2txdW90ZTo6YmVmb3JlLFxuLmJnZS1jb250ZW50cyBibG9ja3F1b3RlOjpiZWZvcmUsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi4oCcXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogc2VyaWY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjNlbTtcbiAgbGVmdDogMC4yNWVtO1xuICB6LWluZGV4OiAwO1xuICBjb2xvcjogI2NjYztcbiAgZm9udC1zaXplOiAzZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyBibG9ja3F1b3RlOjphZnRlcixcbi5iZ2UtY29udGVudHMgYmxvY2txdW90ZTo6YWZ0ZXIsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6OmFmdGVyIHtcbiAgY29udGVudDogXCLigJ1cIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBzZXJpZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0wLjNlbTtcbiAgcmlnaHQ6IDAuMjVlbTtcbiAgei1pbmRleDogMDtcbiAgY29sb3I6ICNjY2M7XG4gIGZvbnQtc2l6ZTogM2VtO1xufVxuXG4vKiBGb3JtIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJzLW1haW4tY29udGVudHMgZm9ybSxcbi5iZ2UtY29udGVudHMgZm9ybSxcbi5ja2VfZWRpdGFibGUgZm9ybSxcbi5icy1zdWItY29udGVudHMgZm9ybSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0LCAuYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYSwgLmJzLW1haW4tY29udGVudHMgc2VsZWN0LCAuYnMtbWFpbi1jb250ZW50cyBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIGlucHV0LFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgc2VsZWN0LFxuLmJnZS1jb250ZW50cyBvcHRpb24sXG4uY2tlX2VkaXRhYmxlIGlucHV0LFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYSxcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBvcHRpb24sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0LFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYSxcbi5icy1zdWItY29udGVudHMgc2VsZWN0LFxuLmJzLXN1Yi1jb250ZW50cyBvcHRpb24ge1xuICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsXG4uYnMtbWFpbi1jb250ZW50cyBzZWxlY3QsXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYmdlLWNvbnRlbnRzIHRleHRhcmVhLFxuLmJnZS1jb250ZW50cyBzZWxlY3QsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRleHRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZWxdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPW51bWJlcl0sXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3QsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYnMtc3ViLWNvbnRlbnRzIHRleHRhcmVhLFxuLmJzLXN1Yi1jb250ZW50cyBzZWxlY3Qge1xuICBtYXJnaW46IDNweCAycHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cmFkaW9dLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1yYWRpb10sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXJhZGlvXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cmFkaW9dLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1zdWJtaXRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXJlc2V0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1idXR0b25dLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXN1Ym1pdF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cmVzZXRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWJ1dHRvbl0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9c3VibWl0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1yZXNldF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9YnV0dG9uXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1zdWJtaXRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXJlc2V0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1idXR0b25dIHtcbiAgbWFyZ2luOiAzcHggMnB4O1xuICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRleHRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZWxdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XTo6cGxhY2Vob2xkZXIsIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1wYXNzd29yZF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRlbF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGV4dF06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9bnVtYmVyXTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjY2NjO1xufVxuLmJzLW1haW4tY29udGVudHMgaW5wdXQ6YWN0aXZlLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dDpmb2N1cyxcbi5iZ2UtY29udGVudHMgaW5wdXQ6YWN0aXZlLFxuLmJnZS1jb250ZW50cyBpbnB1dDpmb2N1cyxcbi5ja2VfZWRpdGFibGUgaW5wdXQ6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSBpbnB1dDpmb2N1cyxcbi5icy1zdWItY29udGVudHMgaW5wdXQ6YWN0aXZlLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWEsXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYSB7XG4gIHdpZHRoOiA5NSU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nOiAzcHggM3B4O1xufVxuLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLCAuYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyxcbi5ja2VfZWRpdGFibGUgdGV4dGFyZWE6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYTpmb2N1cyxcbi5icy1zdWItY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZXh0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1lbWFpbF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNlbGVjdCxcbi5iZ2UtY29udGVudHMgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBzZWxlY3QsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBoZWlnaHQ6IDIuNmVtO1xuICBwYWRkaW5nOiAxMHB4IDhweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNlbGVjdDphY3RpdmUsIC5icy1tYWluLWNvbnRlbnRzIHNlbGVjdDpmb2N1cyxcbi5iZ2UtY29udGVudHMgc2VsZWN0OmFjdGl2ZSxcbi5iZ2UtY29udGVudHMgc2VsZWN0OmZvY3VzLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3Q6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3Q6Zm9jdXMsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdDphY3RpdmUsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBvcHRncm91cCBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIG9wdGdyb3VwIG9wdGlvbixcbi5ja2VfZWRpdGFibGUgb3B0Z3JvdXAgb3B0aW9uLFxuLmJzLXN1Yi1jb250ZW50cyBvcHRncm91cCBvcHRpb24ge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG5cbi8qKlxuICog5aSJ5pWwXG4gKi9cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44OV44Kp44Oz44OI44Gu5a6a576pXG4gKiBGb250IEF3ZXNvbWUgNC42LjMgYnkgQGRhdmVnYW5keSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZVxuICogTGljZW5zZSAtIGh0dHA6Ly9mb250YXdlc29tZS5pby9saWNlbnNlIChGb250OiBTSUwgT0ZMIDEuMSwgQ1NTOiBNSVQgTGljZW5zZSlcbiAqXG4gKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/dj00LjYuM1wiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD8jaWVmaXgmdj00LjYuM1wiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmMj92PTQuNi4zXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LndvZmY/dj00LjYuM1wiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnR0Zj92PTQuNi4zXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnN2Zz92PTQuNi4zI2ZvbnRhd2Vzb21lcmVndWxhclwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44Oe44Or44OB44Kr44Op44Og44OW44Ot44OD44Kv44Gu44Os44Kk44Ki44Km44OIXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG4vKipcbiAqIEJ1cmdlckVkaXRvciBTdHlsZVNoZWV0IFN0eWxlXG4gKi9cbi5iZ3QtYm94X19jYXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogM3B4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuXG4uYmd0LWJ0biB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZzogMTJweCAxMHB4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtaW4td2lkdGg6IDI4MHB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG4uYmd0LWJ0bjphY3RpdmUsIC5iZ3QtYnRuOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggMCAjMDU3MGM3LCAwIDAgMTBweCAwICNmZmY7XG59XG5cbi5iZ3QtYnRuLS1saW5rLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJvcmRlci1jb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5iZ3QtYnRuLS1saW5rOmhvdmVyLCAuYmd0LWJ0bi0tbGluazphY3RpdmUsIC5iZ3QtYnRuLS1saW5rOmZvY3VzLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuOmhvdmVyLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuOmFjdGl2ZSxcbltkYXRhLWJndC1idXR0b24ta2luZD1saW5rXSAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNlOWU5ZTk7XG59XG5cbi5iZ3QtYnRuLS1lbSxcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG4ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZDogIzMzMztcbn1cbi5iZ3QtYnRuLS1lbTpob3ZlciwgLmJndC1idG4tLWVtOmFjdGl2ZSwgLmJndC1idG4tLWVtOmZvY3VzLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWVtXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG46YWN0aXZlLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWVtXSAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICM1NTU7XG59XG5cbi5iZ3QtYnRuLS1leHRlcm5hbCxcbltkYXRhLWJndC1idXR0b24ta2luZD1leHRlcm5hbF0gLmJndC1idG4ge1xuICBjb2xvcjogIzMzMztcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmJndC1idG4tLWV4dGVybmFsOmhvdmVyLCAuYmd0LWJ0bi0tZXh0ZXJuYWw6YWN0aXZlLCAuYmd0LWJ0bi0tZXh0ZXJuYWw6Zm9jdXMsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOmhvdmVyLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWV4dGVybmFsXSAuYmd0LWJ0bjphY3RpdmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogI2U5ZTllOTtcbn1cbi5iZ3QtYnRuLS1leHRlcm5hbDo6YWZ0ZXIsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOjphZnRlciB7XG4gIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZSwgc2VyaWY7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgY29udGVudDogXCJcXGYwOGVcIjtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiAjOTk5O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYmd0LWJ0bi0tYmFjayxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0biB7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG4gIGJhY2tncm91bmQ6ICNkZGQ7XG59XG4uYmd0LWJ0bi0tYmFjazpob3ZlciwgLmJndC1idG4tLWJhY2s6YWN0aXZlLCAuYmd0LWJ0bi0tYmFjazpmb2N1cyxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjphY3RpdmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG46Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjZTllOWU5O1xufVxuLmJndC1idG4tLWJhY2sgc3BhbixcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0biBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmJndC1idG4tLWJhY2s6OmJlZm9yZSxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjo6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lLCBzZXJpZjtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBjb250ZW50OiBcIlxcZjA1M1wiO1xuICBmb250LXNpemU6IDFlbTtcbiAgbWFyZ2luLXRvcDogLTJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYmd0LWhyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbltkYXRhLWJndC1oci1raW5kPWRhc2hlZF0gLmJndC1ociB7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcbn1cblxuLmJndC1oci0tYm9sZCxcbltkYXRhLWJndC1oci1raW5kPWJvbGRdIC5iZ3QtaHIge1xuICBoZWlnaHQ6IDVweDtcbn1cblxuLmJndC1oci0tbmFycm93LFxuW2RhdGEtYmd0LWhyLWtpbmQ9bmFycm93XSAuYmd0LWhyIHtcbiAgaGVpZ2h0OiAxcHg7XG59XG5cbi5iZ3QtaHItLXNob3J0LFxuW2RhdGEtYmd0LWhyLWtpbmQ9c2hvcnRdIC5iZ3QtaHIge1xuICB3aWR0aDogNjAlO1xuICBoZWlnaHQ6IDFweDtcbn1cblxuLmJndC1kb3dubG9hZC1maWxlX19saW5rIHtcbiAgY29sb3I6ICMzMzM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMS4wOGVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjdlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5iZ3QtZG93bmxvYWQtZmlsZV9fbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4uYmd0LWRvd25sb2FkLWZpbGVfX2xpbms6YWN0aXZlLCAuYmd0LWRvd25sb2FkLWZpbGVfX2xpbms6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDFweCAjMDU3MGM3O1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uYmd0LWxpbmtfX3NpemUge1xuICBjb2xvcjogIzgwODA4MDtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJndC1nb29nbGUtbWFwcy1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggIzk5OTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5iZ3QtZ29vZ2xlLW1hcHMtbGluayBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuYmd0LWdvb2dsZS1tYXBzLWxpbms6OmFmdGVyIHtcbiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWUsIHNlcmlmO1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgY29udGVudDogXCJcXGYwOGVcIjtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnkge1xuICBwYWRkaW5nLXRvcDogNTQlO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeTpob3ZlciBbZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmwge1xuICBvcGFjaXR5OiAxO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeV9faW1nIGltZyB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeV9fY2FwdGlvbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIHBhZGRpbmc6IDAuN2VtIDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsIHtcbiAgdG9wOiA1MCU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbjtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldiwgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogLTIwcHggMCAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXY6aG92ZXIsIFtkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dDpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldjpmb2N1cywgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldiBzcGFuLCBbZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX25leHQgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19wcmV2OjphZnRlciwgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXI6IHNvbGlkICNmZmY7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwIDA7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXYge1xuICBsZWZ0OiAyMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dCB7XG4gIHJpZ2h0OiAyMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9dGh1bWJzXSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPXRodW1ic10gKyAuYmd0LWdhbGxlcnktbWFya2VyIGxpIHtcbiAgbWFyZ2luOiAwIDVweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogNjBweDtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSBbZGF0YS1nYWxsZXJ5LW1hcmtlcj10aHVtYnNdICsgLmJndC1nYWxsZXJ5LW1hcmtlciBsaTo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSBbZGF0YS1nYWxsZXJ5LW1hcmtlcj1kb3RdICsgLmJndC1nYWxsZXJ5LW1hcmtlciB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9ZG90XSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIgbGkge1xuICBtYXJnaW46IDAgMnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPWRvdF0gKyAuYmd0LWdhbGxlcnktbWFya2VyIGxpLmN1cnJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuXG4vKiDjg4fjg5DjgqTjgrnkvp3lrZjmsY7nlKjjgq/jg6njgrkgKi9cbi5wYy1vbmx5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAucGMtb25seSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc3Atb25seSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc3Atb25seSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn0iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIGJhc2VyQ01TIDogIEJhc2VkIFdlYnNpdGUgRGV2ZWxvcG1lbnQgUHJvamVjdCA8aHR0cHM6Ly9iYXNlcmNtcy5uZXQ+XG4gKiBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uIDxodHRwczovL2Jhc2VyZm91bmRhdGlvbi5vcmcvPlxuICpcbiAqIEBjb3B5cmlnaHQgICAgIENvcHlyaWdodCAoYykgTlBPIGJhc2VyIGZvdW5kYXRpb25cbiAqIEBsaW5rICAgICAgICAgIGh0dHBzOi8vYmFzZXJjbXMubmV0IGJhc2VyQ01TIFByb2plY3RcbiAqIEBzaW5jZSAgICAgICAgIDUuMC4wXG4gKiBAbGljZW5zZSAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldC9saWNlbnNlL2luZGV4Lmh0bWwgTUlUIExpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIOODkOODvOOCrOODvOOCqOODh+OCo+OCv+ODvOOCueOCv+OCpOODq1xuICog566h55CG55S76Z2i44Gn44KC5ZG844Gz5Ye644GV44KM44KLXG4gKi9cblxuQGltcG9ydCBcImNvbW1vbi9lZGl0b3JcIjtcbkBpbXBvcnQgXCJjb21tb24vYmdlX3NldHRpbmdcIjtcbkBpbXBvcnQgXCJjb21tb24vYmdlXCI7XG5cbiIsIi8qKlxuICog44Ko44OH44Kj44K/44O855SoQ1NTXG4gKi9cblxuJGJyZWFrUG9pbnQ6IDc2OHB4O1xuXG4uY2tlX2VkaXRhYmxlIHtcbiAgcGFkZGluZzogMTVweDtcbn1cblxuLyogRWRpdG9yIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYnMtbWFpbi1jb250ZW50cyxcbi5iZ2UtY29udGVudHMsXG4uY2tlX2VkaXRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBWZXJkYW5hLCBcIua4uOOCtOOCt+ODg+OCr1wiLCBZdUdvdGhpYywgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9OXCIsIE1laXJ5bywgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMwMDA7XG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1zaXplOiAyLjJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbjogMC42ZW0gMDtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbjogNTZweCAwIDIwcHggMDtcbiAgICBwYWRkaW5nOiAxM3B4IDI4cHggMTJweDtcbiAgICBmb250LXNpemU6IDIxcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQ4LjNweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIGg0IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggI0NDQyBkb3R0ZWQ7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXJnaW46IDUwcHggMCAxN3B4IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIHBhZGRpbmc6IDAuM2VtIDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICBoNiB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgdSB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICBzIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgfVxuXG4gIGVtIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICBociB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgY29sb3I6ICNkZGQ7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDUwcHggYXV0bztcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICB1bCB7XG4gICAgbWFyZ2luOiAyMHB4IDAgMzZweCAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNXJlbTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAyNXB4O1xuICAgICAgbWFyZ2luOiAwLjVlbSAwIDAuNWVtIDA7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcblxuICAgICAgYSB7XG4gICAgICAgIHpvb206IDE7XG4gICAgICB9XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogOXB4O1xuICAgICAgICBsZWZ0OiAxcHg7XG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTgxODE4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbWFyZ2luOiAwIDAgMCAxLjhlbTtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb2wge1xuICAgIG1hcmdpbjogMjBweCAwIDM2cHggMS44ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBsZXR0ZXItc3BhY2luZzogLjA1cmVtO1xuXG4gICAgb2wge1xuICAgICAgbWFyZ2luOiAyMHB4O1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbC1sZWFkaW5nLXplcm87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAwO1xuICAgICAgbWFyZ2luOiAwLjVlbSAwIDAuNWVtIDA7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyLjM7XG4gIH1cblxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTFlMWUxO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTFlMWUxO1xuICAgIG1hcmdpbjogMjBweCAwIDIwcHggMDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBjYXB0aW9uIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGJvZHksXG4gICAgdGZvb3Qge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdHIge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQob2RkKSB0ZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICB9XG5cbiAgICAgIHRoLFxuICAgICAgdGQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nOiAyNnB4IDI0cHg7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGQge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBpbWcge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cblxuICBhZGRyZXNzLCBidXR0b24sIGNhcHRpb24sIGNpdGUsIGNvZGUsIGRmbiwgZW0sIGlucHV0LCBvcHRncm91cCwgb3B0aW9uLCBzZWxlY3QsIHN0cm9uZywgdGV4dGFyZWEsIHRoLCB2YXIge1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gIH1cblxuICBzbWFsbCB7XG4gICAgY29sb3I6ICM2NjY7XG4gIH1cblxuICBkZWwsIGlucyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgYSB7XG4gICAgJjpsaW5rLCAmOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMyYjdiYjk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgY2FwdGlvbiwgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICBxIHtcbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cblxuICBhYmJyLCBhY3JvbnltIHtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIH1cblxuICBzdWIge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdWI7XG4gIH1cblxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cblxuICBwcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGM0YzRjM7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRTJFMkUyO1xuICB9XG5cbiAgYmxvY2txdW90ZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgcGFkZGluZzogMXB4IDIuNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNjY2M7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAn4oCcJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6IHNlcmlmO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwLjNlbTtcbiAgICAgIGxlZnQ6IDAuMjVlbTtcbiAgICAgIHotaW5kZXg6IDA7XG4gICAgICBjb2xvcjogI2NjYztcbiAgICAgIGZvbnQtc2l6ZTogM2VtO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICfigJ0nO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LWZhbWlseTogc2VyaWY7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0wLjNlbTtcbiAgICAgIHJpZ2h0OiAwLjI1ZW07XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgY29sb3I6ICNjY2M7XG4gICAgICBmb250LXNpemU6IDNlbTtcbiAgICB9XG4gIH1cblxufVxuXG4vKiBGb3JtIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYnMtbWFpbi1jb250ZW50cyxcbi5iZ2UtY29udGVudHMsXG4uY2tlX2VkaXRhYmxlLFxuLmJzLXN1Yi1jb250ZW50cyB7XG4gIGZvcm0ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxuXG4gIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBvcHRpb24ge1xuICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4gIGlucHV0W3R5cGU9dGV4dF0sXG4gIGlucHV0W3R5cGU9ZW1haWxdLFxuICBpbnB1dFt0eXBlPXRlbF0sXG4gIGlucHV0W3R5cGU9bnVtYmVyXSxcbiAgdGV4dGFyZWEsXG4gIHNlbGVjdCB7XG4gICAgbWFyZ2luOiAzcHggMnB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB9XG5cbiAgaW5wdXQge1xuICAgICZbdHlwZT1jaGVja2JveF0ge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmW3R5cGU9cmFkaW9dLCAmW3R5cGU9Y2hlY2tib3hdIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG5cbiAgICAmW3R5cGU9c3VibWl0XSwgJlt0eXBlPXJlc2V0XSwgJlt0eXBlPWJ1dHRvbl0ge1xuICAgICAgbWFyZ2luOiAzcHggMnB4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG4gICAgfVxuXG4gICAgJlt0eXBlPXBhc3N3b3JkXSxcbiAgICAmW3R5cGU9dGV4dF0sXG4gICAgJlt0eXBlPWVtYWlsXSxcbiAgICAmW3R5cGU9dGVsXSxcbiAgICAmW3R5cGU9bnVtYmVyXVxuICAgIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgcGFkZGluZzogM3B4IDNweDtcblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQge1xuICAgICZbdHlwZT1wYXNzd29yZF0sXG4gICAgJlt0eXBlPXRleHRdLFxuICAgICZbdHlwZT1lbWFpbF0sXG4gICAgJlt0eXBlPXRlbF0sXG4gICAgJlt0eXBlPW51bWJlcl1cbiAgICB7XG4gICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgaGVpZ2h0OiAyLjZlbTtcbiAgICBwYWRkaW5nOiAxMHB4IDhweDtcblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgb3B0Z3JvdXAgb3B0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIH1cbn1cbiIsIi8qKlxuICog5aSJ5pWwXG4gKi9cbkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuLy8gUldE44Gu44OW44Os44O844Kv44Od44Kk44Oz44OIXG4kYnJlYWtQb2ludDogNzY4cHg7XG5cbi8vIOOCq+ODqeODoOmWk+OBruODnuODvOOCuOODs1xuJG11bHRpQ29sdW1uR3JpZE1hcmdpbjogMjBweDtcblxuLy8gUldE44Gn44Kr44Op44Og44GM6JC944Gh44Gf5pmC44Gu5LiL44Oe44O844K444OzXG4kbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDogMjBweDtcblxuLy8g44Oc44K/44Oz44Gu44OV44Kp44O844Kr44K55pmC44Gu44Kr44Op44O8XG4kYnRuR2xvd0NvbG9yOiAjMDU3MGM3O1xuXG4vLyDjg4jjg6rjg6DnlLvlg4/jg5bjg63jg4Pjgq/jga7nuKbmqKrmr5RcbiR0cmltSW1hZ2VBc3BlY3RSYXRpbzogMTsgLy8gNDoz44Gu5aC05ZCI44GvMy80XG5cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44OV44Kp44Oz44OI44Gu5a6a576pXG4gKiBGb250IEF3ZXNvbWUgNC42LjMgYnkgQGRhdmVnYW5keSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZVxuICogTGljZW5zZSAtIGh0dHA6Ly9mb250YXdlc29tZS5pby9saWNlbnNlIChGb250OiBTSUwgT0ZMIDEuMSwgQ1NTOiBNSVQgTGljZW5zZSlcbiAqXG4gKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gIHNyYzogdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD92PTQuNi4zJyk7XG4gIHNyYzogdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD8jaWVmaXgmdj00LjYuMycpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LndvZmYyP3Y9NC42LjMnKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9NC42LjMnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnR0Zj92PTQuNi4zJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJy4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQuc3ZnP3Y9NC42LjMjZm9udGF3ZXNvbWVyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG4vLyDjgrDjg6rjg4Pjg4njgrfjgrnjg4bjg6Bcbi8vXG4vLyDnt6jpm4bpnZ7mjqjlpahcbi8vXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG4kc3BhbjE6IDguMzMzMyU7XG4kc3BhbjI6IDE2LjY2NjYlO1xuJHNwYW4zOiAyNSU7XG4kc3BhbjQ6IDMzLjMzMzMlO1xuJHNwYW41OiA0MS42NjY2JTtcbiRzcGFuNjogNTAlO1xuJHNwYW43OiA1OC4zMzMzJTtcbiRzcGFuODogNjYuNjY2NiU7XG4kc3Bhbjk6IDc1JTtcbiRzcGFuMTA6IDgzLjMzMzMlO1xuJHNwYW4xMTogOTEuNjY2NiU7XG4kc3BhbjEyOiAxMDAlO1xuJGRpdmlkZTU6IDIwJTsgLy8gMTLjgrDjg6rjg4Pjg4njgrfjgrnjg4bjg6Djgafjga/lho3nj77jgafjgY3jgarjgYQ15YiG5YmyXG5cbi8vIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC9cbi8vXG4vLyDjg5/jg4Pjgq/jgrnjgqTjg7Ncbi8vXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG5AbWl4aW4gYmdlLWljb24ge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWUsIHNlcmlmO1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44Oe44Or44OB44Kr44Op44Og44OW44Ot44OD44Kv44Gu44Os44Kk44Ki44Km44OIXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG5cbiVjb2x1bW4yLWxheW91dCB7XG4gIC8qIDLliJfjg5bjg63jg4Pjgq8gKi9cbiAgLmJndC1ncmlkIHtcbiAgICAvKiAy5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOOCs+ODs+ODhuODiiAqL1xuICAgIHdpZHRoOiAkc3BhbjY7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgLyog5LiL44Oe44O844K444Oz44Gv44OW44Ot44OD44Kv5YaF44Gu44K/44Kk44OX44Gu6KaB57Sg44Gr5a++44GX44Gm5oyH5a6a44GZ44KLICjnqbrnlLvlg4/lr77nrZYpICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtdWx0aUNvbHVtbkdyaWRNYXJnaW5Cb3R0b21XaGVuQ2xlYXJlZEZsb2F0O1xuXG4gICAgICAgICZbZGF0YS1iZ2UtZW1wdHk9JzEnXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmW2NsYXNzKj0nYmd0LXNwLWdyaWQnXSB7XG4gICAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIC8qIDLliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So5pyA5Yid44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luLCAyKTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAvKiAy5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOacgOW+jOOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luLCAyKTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lY29sdW1uMy1sYXlvdXQge1xuICAvKiAz5YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogM+WIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJHNwYW40O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDMpO1xuICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCAzKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgLyog5LiL44Oe44O844K444Oz44Gv44OW44Ot44OD44Kv5YaF44Gu44K/44Kk44OX44Gu6KaB57Sg44Gr5a++44GX44Gm5oyH5a6a44GZ44KLICjnqbrnlLvlg4/lr77nrZYpICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtdWx0aUNvbHVtbkdyaWRNYXJnaW5Cb3R0b21XaGVuQ2xlYXJlZEZsb2F0O1xuXG4gICAgICAgICZbZGF0YS1iZ2UtZW1wdHk9JzEnXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmW2NsYXNzKj0nYmd0LXNwLWdyaWQnXSB7XG4gICAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIC8qIDPliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So5pyA5Yid44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMiwgMyk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgLyogM+WIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjmnIDliJ3jga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDIsIDMpO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lY29sdW1uNC1sYXlvdXQge1xuICAvKiA05YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogNOWIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJHNwYW4zO1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZmxvYXQ6IG5vbmU7XG5cbiAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIC8qIOS4i+ODnuODvOOCuOODs+OBr+ODluODreODg+OCr+WGheOBruOCv+OCpOODl+OBruimgee0oOOBq+WvvuOBl+OBpuaMh+WumuOBmeOCiyAo56m655S75YOP5a++562WKSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDtcblxuICAgICAgICAmW2RhdGEtYmdlLWVtcHR5PScxJ10ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJltjbGFzcyo9J2JndC1zcC1ncmlkJ10ge1xuICAgICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNCk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCA0KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA0KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDIsIDQpO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDQpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNCk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiVjb2x1bW41LWxheW91dCB7XG4gIC8qIDXliJfjg5bjg63jg4Pjgq8gKi9cbiAgLmJndC1ncmlkIHtcbiAgICAvKiA15YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOOCs+ODs+ODhuODiiAqL1xuICAgIHdpZHRoOiAkZGl2aWRlNTtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuXG4gICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAvKiDkuIvjg57jg7zjgrjjg7Pjga/jg5bjg63jg4Pjgq/lhoXjga7jgr/jgqTjg5fjga7opoHntKDjgavlr77jgZfjgabmjIflrprjgZnjgosgKOepuueUu+WDj+WvvuetlikgKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG11bHRpQ29sdW1uR3JpZE1hcmdpbkJvdHRvbVdoZW5DbGVhcmVkRmxvYXQ7XG5cbiAgICAgICAgJltkYXRhLWJnZS1lbXB0eT0nMSddIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICZbY2xhc3MqPSdiZ3Qtc3AtZ3JpZCddIHtcbiAgICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDQsIDUpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMSwgNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNSk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA1KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA1KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDMsIDUpO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDUpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNSkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogNCwgNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEJ1cmdlckVkaXRvciBTdHlsZVNoZWV0IFN0eWxlXG4gKi9cblxuLmJndC1ib3hfX2NhcHRpb24ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAzcHg7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG5cbi5iZ3QtYnRuIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG1pbi13aWR0aDogMjgwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggMCAkYnRuR2xvd0NvbG9yLCAwIDAgMTBweCAwICNmZmY7XG4gIH1cbn1cblxuLmJndC1idG4tLWxpbmsgLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9J2xpbmsnXSAuYmd0LWJ0biAvKiDmlrDjgrvjg6zjgq/jgr8gKi9cbntcbiAgJGNvbG9yOiAjMzMzO1xuICAkYkNvbG9yOiAjY2NjO1xuICAkYmdDb2xvcjogI2ZmZjtcbiAgJGJnQ29sb3JIb3ZlcjogI2U5ZTllOTtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkYkNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmdDb2xvcjtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGJnQ29sb3JIb3ZlcjtcbiAgfVxufVxuXG4uYmd0LWJ0bi0tZW0gLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9J2VtJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogI2ZmZjtcbiAgJGJDb2xvcjogIzMzMztcbiAgJGJnQ29sb3I6ICMzMzM7XG4gICRiZ0NvbG9ySG92ZXI6ICM1NTU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJGNvbG9yO1xuICBib3JkZXItY29sb3I6ICRiQ29sb3I7XG4gIGJhY2tncm91bmQ6ICRiZ0NvbG9yO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmdDb2xvckhvdmVyO1xuICB9XG59XG5cbi5iZ3QtYnRuLS1leHRlcm5hbCAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1idXR0b24ta2luZD0nZXh0ZXJuYWwnXSAuYmd0LWJ0biAvKiDmlrDjgrvjg6zjgq/jgr8gKi9cbntcbiAgJGNvbG9yOiAjMzMzO1xuICAkYkNvbG9yOiAjY2NjO1xuICAkYmdDb2xvcjogI2ZmZjtcbiAgJGJnQ29sb3JIb3ZlcjogI2U5ZTllOTtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkYkNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmdDb2xvcjtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGJnQ29sb3JIb3ZlcjtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBiZ2UtaWNvbjtcbiAgICBjb250ZW50OiAnXFxmMDhlJztcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBjb2xvcjogIzk5OTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbi5iZ3QtYnRuLS1iYWNrIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPSdiYWNrJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogIzMzMztcbiAgJGJDb2xvcjogI2RkZDtcbiAgJGJnQ29sb3I6ICNkZGQ7XG4gICRiZ0NvbG9ySG92ZXI6ICNlOWU5ZTk7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJGJDb2xvcjtcbiAgYmFja2dyb3VuZDogJGJnQ29sb3I7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRiZ0NvbG9ySG92ZXI7XG4gIH1cblxuICBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgYmdlLWljb247XG4gICAgY29udGVudDogJ1xcZjA1Myc7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4uYmd0LWhyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbltkYXRhLWJndC1oci1raW5kPSdkYXNoZWQnXSAuYmd0LWhyIHtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDJweCBkYXNoZWQgY3VycmVudENvbG9yO1xufVxuXG4uYmd0LWhyLS1ib2xkIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWhyLWtpbmQ9J2JvbGQnXSAuYmd0LWhyIC8qIOaWsOOCu+ODrOOCr+OCvyAqL1xue1xuICBoZWlnaHQ6IDVweDtcbn1cblxuLmJndC1oci0tbmFycm93IC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWhyLWtpbmQ9J25hcnJvdyddIC5iZ3QtaHIgLyog5paw44K744Os44Kv44K/ICovXG57XG4gIGhlaWdodDogMXB4O1xufVxuXG4uYmd0LWhyLS1zaG9ydCAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1oci1raW5kPSdzaG9ydCddIC5iZ3QtaHIgLyog5paw44K744Os44Kv44K/ICovXG57XG4gIHdpZHRoOiA2MCU7XG4gIGhlaWdodDogMXB4O1xufVxuXG4uYmd0LWRvd25sb2FkLWZpbGVfX2xpbmsge1xuICBjb2xvcjogIzMzMztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxLjA4ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuN2VtIDFlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggJGJ0bkdsb3dDb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG5cbi5iZ3QtbGlua19fc2l6ZSB7XG4gIGNvbG9yOiAjODA4MDgwO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4uYmd0LWdvb2dsZS1tYXBzLWxpbmsge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcGFkZGluZzogMWVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzMzMztcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjOTk5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgYmdlLWljb247XG4gICAgICBjb250ZW50OiAnXFxmMDhlJztcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuW2RhdGEtYmd0PSdnYWxsZXJ5J10ge1xuICAkdGh1bWItc2l6ZTogNjBweDtcblxuICAuYmd0LWdhbGxlcnkge1xuICAgIHBhZGRpbmctdG9wOiA1NCU7XG5cbiAgICAmOmhvdmVyICYtY3RybCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZfX2ltZyB7XG4gICAgICBpbWcge1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jYXB0aW9uIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgcGFkZGluZzogMC43ZW0gMWVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICYtY3RybCB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW47XG5cbiAgICAgICZfX3ByZXYsXG4gICAgICAmX19uZXh0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogLTIwcHggMCAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkICNmZmY7XG4gICAgICAgICAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDAgMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmX19wcmV2IHtcbiAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gICAgICB9XG5cbiAgICAgICZfX25leHQge1xuICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIFtkYXRhLWdhbGxlcnktbWFya2VyPSd0aHVtYnMnXSB7XG4gICAgKyAuYmd0LWdhbGxlcnktbWFya2VyIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgd2lkdGg6ICR0aHVtYi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICR0aHVtYi1zaXplO1xuXHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBbZGF0YS1nYWxsZXJ5LW1hcmtlcj0nZG90J10ge1xuICAgICsgLmJndC1nYWxsZXJ5LW1hcmtlciB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbjogMCAycHg7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyog44OH44OQ44Kk44K55L6d5a2Y5rGO55So44Kv44Op44K5ICovXG4ucGMtb25seSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc3Atb25seSB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4iXX0= */ \ No newline at end of file diff --git a/plugins/bc-front/src/css/common/_bge.scss b/plugins/bc-front/src/css/common/_bge.scss index 41af58c655..e2d69ee580 100755 --- a/plugins/bc-front/src/css/common/_bge.scss +++ b/plugins/bc-front/src/css/common/_bge.scss @@ -1,5 +1,8 @@ /** * BurgerEditor StyleSheet Style + * + * bc-front テーマ側でコンパイルした際は、bge_style.css を + * BcThemeSample テーマ側にコピーする必要がある */ .bgt-box__caption { @@ -298,6 +301,9 @@ margin: 0 5px; width: $thumb-size; height: $thumb-size; + &::before { + display: none; + } } } } diff --git a/plugins/bc-front/webroot/css/bge_style.css b/plugins/bc-front/webroot/css/bge_style.css index 5d2ece29dc..6f22b19c3d 100755 --- a/plugins/bc-front/webroot/css/bge_style.css +++ b/plugins/bc-front/webroot/css/bge_style.css @@ -734,6 +734,9 @@ * ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- **/ /** * BurgerEditor StyleSheet Style + * + * bc-front テーマ側でコンパイルした際は、bge_style.css を + * BcThemeSample テーマ側にコピーする必要がある */ .bgt-box__caption { text-align: left; @@ -989,6 +992,9 @@ width: 60px; height: 60px; } +[data-bgt=gallery] [data-gallery-marker=thumbs] + .bgt-gallery-marker li::before { + display: none; +} [data-bgt=gallery] [data-gallery-marker=dot] + .bgt-gallery-marker { margin-top: 10px; } @@ -1019,4 +1025,4 @@ display: block; } } -/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9iZ2Vfc3R5bGUuY3NzIiwiY3NzL2JnZV9zdHlsZS5zY3NzIiwiY3NzL2NvbW1vbi9fZWRpdG9yLnNjc3MiLCJjc3MvY29tbW9uL19iZ2Vfc2V0dGluZy5zY3NzIiwiY3NzL2NvbW1vbi9fYmdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQ2hCOzs7Ozs7OztFQUFBO0FBVUE7OztFQUFBO0FDWEE7O0VBQUE7QUFNQTtFQUNFLGFBQUE7QUZZRjtBRVRBO2lEQUFBO0FBR0E7OztFQUdFLCtGQUFBO0VBQ0EsV0FBQTtBRldGO0FFVEU7OztFQUNFLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FGYUo7QUVWRTs7O0VBQ0Usd0xBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtBRmNKO0FFYkk7OztFQUNFLGFBQUE7QUZpQk47QUViRTs7O0VBQ0UscUJBQUE7RUFDQSx1QkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0FGaUJKO0FFZkk7OztFQUNFLGFBQUE7QUZtQk47QUVmRTs7O0VBQ0UsOEJBQUE7RUFDQSxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7QUZtQko7QUVqQkk7OztFQUNFLGFBQUE7QUZxQk47QUVqQkU7OztFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0FGcUJKO0FFbkJJOzs7RUFDRSxhQUFBO0FGdUJOO0FFbkJFOzs7RUFDRSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxn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LHNCQUFBO0FKZ3NCVjtBSXhyQkEsZ0JBQUE7QUFDQTtFQUNFLGNBQUE7QUoyckJGO0FJenJCRTtFQUhGO0lBSUksYUFBQTtFSjRyQkY7QUFDRjtBSXpyQkE7RUFDRSxhQUFBO0FKNHJCRjtBSTFyQkU7RUFIRjtJQUlJLGNBQUE7RUo2ckJGO0FBQ0YiLCJmaWxlIjoiY3NzL2JnZV9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIGJhc2VyQ01TIDogIEJhc2VkIFdlYnNpdGUgRGV2ZWxvcG1lbnQgUHJvamVjdCA8aHR0cHM6Ly9iYXNlcmNtcy5uZXQ+XG4gKiBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uIDxodHRwczovL2Jhc2VyZm91bmRhdGlvbi5vcmcvPlxuICpcbiAqIEBjb3B5cmlnaHQgICAgIENvcHlyaWdodCAoYykgTlBPIGJhc2VyIGZvdW5kYXRpb25cbiAqIEBsaW5rICAgICAgICAgIGh0dHBzOi8vYmFzZXJjbXMubmV0IGJhc2VyQ01TIFByb2plY3RcbiAqIEBzaW5jZSAgICAgICAgIDUuMC4wXG4gKiBAbGljZW5zZSAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldC9saWNlbnNlL2luZGV4Lmh0bWwgTUlUIExpY2Vuc2VcbiAqL1xuLyoqXG4gKiDjg5Djg7zjgqzjg7zjgqjjg4fjgqPjgr/jg7zjgrnjgr/jgqTjg6tcbiAqIOeuoeeQhueUu+mdouOBp+OCguWRvOOBs+WHuuOBleOCjOOCi1xuICovXG4vKipcbiAqIOOCqOODh+OCo+OCv+ODvOeUqENTU1xuICovXG4uY2tlX2VkaXRhYmxlIHtcbiAgcGFkZGluZzogMTVweDtcbn1cblxuLyogRWRpdG9yIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJzLW1haW4tY29udGVudHMsXG4uYmdlLWNvbnRlbnRzLFxuLmNrZV9lZGl0YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgVmVyZGFuYSwgXCLmuLjjgrTjgrfjg4Pjgq9cIiwgWXVHb3RoaWMsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvTlwiLCBNZWlyeW8sIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDEsXG4uYmdlLWNvbnRlbnRzIGgxLFxuLmNrZV9lZGl0YWJsZSBoMSB7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoMixcbi5iZ2UtY29udGVudHMgaDIsXG4uY2tlX2VkaXRhYmxlIGgyIHtcbiAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDIuMmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAwLjZlbSAwO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgaDI6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGgyOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoMjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoMyxcbi5iZ2UtY29udGVudHMgaDMsXG4uY2tlX2VkaXRhYmxlIGgzIHtcbiAgbWFyZ2luOiA1NnB4IDAgMjBweCAwO1xuICBwYWRkaW5nOiAxM3B4IDI4cHggMTJweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBsaW5lLWhlaWdodDogNDguM3B4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJzLW1haW4tY29udGVudHMgaDM6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGgzOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoMzpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNCxcbi5iZ2UtY29udGVudHMgaDQsXG4uY2tlX2VkaXRhYmxlIGg0IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4ICNDQ0MgZG90dGVkO1xuICBmb250LXNpemU6IDIycHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDUwcHggMCAxN3B4IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGg0OmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyBoNDpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgaDQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDUsXG4uYmdlLWNvbnRlbnRzIGg1LFxuLmNrZV9lZGl0YWJsZSBoNSB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJzLW1haW4tY29udGVudHMgaDU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGg1OmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoNTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNixcbi5iZ2UtY29udGVudHMgaDYsXG4uY2tlX2VkaXRhYmxlIGg2IHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW46IDFlbSAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAuM2VtIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNjpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgaDY6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGg2OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHN0cm9uZyxcbi5iZ2UtY29udGVudHMgc3Ryb25nLFxuLmNrZV9lZGl0YWJsZSBzdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1LFxuLmJnZS1jb250ZW50cyB1LFxuLmNrZV9lZGl0YWJsZSB1IHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHMsXG4uYmdlLWNvbnRlbnRzIHMsXG4uY2tlX2VkaXRhYmxlIHMge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuLmJzLW1haW4tY29udGVudHMgZW0sXG4uYmdlLWNvbnRlbnRzIGVtLFxuLmNrZV9lZGl0YWJsZSBlbSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5icy1tYWluLWNvbnRlbnRzIGhyLFxuLmJnZS1jb250ZW50cyBocixcbi5ja2VfZWRpdGFibGUgaHIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGNvbG9yOiAjZGRkO1xuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiA1MHB4IGF1dG87XG59XG4uYnMtbWFpbi1jb250ZW50cyBocjpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgaHI6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGhyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsLFxuLmJnZS1jb250ZW50cyB1bCxcbi5ja2VfZWRpdGFibGUgdWwge1xuICBtYXJnaW46IDIwcHggMCAzNnB4IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1cmVtO1xufVxuLmJzLW1haW4tY29udGVudHMgdWw6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIHVsOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSB1bDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCBsaSxcbi5iZ2UtY29udGVudHMgdWwgbGksXG4uY2tlX2VkaXRhYmxlIHVsIGxpIHtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMCAwIDI1cHg7XG4gIG1hcmdpbjogMC41ZW0gMCAwLjVlbSAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCBsaSBhLFxuLmJnZS1jb250ZW50cyB1bCBsaSBhLFxuLmNrZV9lZGl0YWJsZSB1bCBsaSBhIHtcbiAgem9vbTogMTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsIGxpOmJlZm9yZSxcbi5iZ2UtY29udGVudHMgdWwgbGk6YmVmb3JlLFxuLmNrZV9lZGl0YWJsZSB1bCBsaTpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDlweDtcbiAgbGVmdDogMXB4O1xuICB3aWR0aDogNnB4O1xuICBoZWlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZDogIzE4MTgxODtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLmJzLW1haW4tY29udGVudHMgdWwgdWwsXG4uYmdlLWNvbnRlbnRzIHVsIHVsLFxuLmNrZV9lZGl0YWJsZSB1bCB1bCB7XG4gIG1hcmdpbjogMCAwIDAgMS44ZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCB1bDpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgdWwgdWw6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIHVsIHVsOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIG9sLFxuLmJnZS1jb250ZW50cyBvbCxcbi5ja2VfZWRpdGFibGUgb2wge1xuICBtYXJnaW46IDIwcHggMCAzNnB4IDEuOGVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNXJlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIG9sIG9sLFxuLmJnZS1jb250ZW50cyBvbCBvbCxcbi5ja2VfZWRpdGFibGUgb2wgb2wge1xuICBtYXJnaW46IDIwcHg7XG59XG4uYnMtbWFpbi1jb250ZW50cyBvbCBsaSxcbi5iZ2UtY29udGVudHMgb2wgbGksXG4uY2tlX2VkaXRhYmxlIG9sIGxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsLWxlYWRpbmctemVybztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDAgMCAwO1xuICBtYXJnaW46IDAuNWVtIDAgMC41ZW0gMDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHAsXG4uYmdlLWNvbnRlbnRzIHAsXG4uY2tlX2VkaXRhYmxlIHAge1xuICBtYXJnaW46IDFlbSAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDIuMztcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlLFxuLmJnZS1jb250ZW50cyB0YWJsZSxcbi5ja2VfZWRpdGFibGUgdGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMWUxZTE7XG4gIG1hcmdpbjogMjBweCAwIDIwcHggMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLmJzLW1haW4tY29udGVudHMgdGFibGU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIHRhYmxlOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSB0YWJsZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuLmJnZS1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSBjYXB0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIGNhcHRpb24sXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgY2FwdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRib2R5LFxuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0Zm9vdCxcbiAgLmJnZS1jb250ZW50cyB0YWJsZSB0Ym9keSxcbiAgLmJnZS1jb250ZW50cyB0YWJsZSB0Zm9vdCxcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB0Ym9keSxcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB0Zm9vdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0cixcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2UxZTFlMTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIHRyLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0cjpudGgtY2hpbGQob2RkKSB0ZCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgdGQsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHRkIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0ZCxcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMjZweCAyNHB4O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMWUxZTE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0aCxcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGQsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0aCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRoIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIH1cbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRkLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0ZCxcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGQge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQgdWwsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRkIHVsLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSB0ciB0ZCB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGZpZWxkc2V0LFxuLmJnZS1jb250ZW50cyBmaWVsZHNldCxcbi5ja2VfZWRpdGFibGUgZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbWcsXG4uYmdlLWNvbnRlbnRzIGltZyxcbi5ja2VfZWRpdGFibGUgaW1nIHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IGF1dG87XG59XG4uYnMtbWFpbi1jb250ZW50cyBhZGRyZXNzLCAuYnMtbWFpbi1jb250ZW50cyBidXR0b24sIC5icy1tYWluLWNvbnRlbnRzIGNhcHRpb24sIC5icy1tYWluLWNvbnRlbnRzIGNpdGUsIC5icy1tYWluLWNvbnRlbnRzIGNvZGUsIC5icy1tYWluLWNvbnRlbnRzIGRmbiwgLmJzLW1haW4tY29udGVudHMgZW0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0LCAuYnMtbWFpbi1jb250ZW50cyBvcHRncm91cCwgLmJzLW1haW4tY29udGVudHMgb3B0aW9uLCAuYnMtbWFpbi1jb250ZW50cyBzZWxlY3QsIC5icy1tYWluLWNvbnRlbnRzIHN0cm9uZywgLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsIC5icy1tYWluLWNvbnRlbnRzIHRoLCAuYnMtbWFpbi1jb250ZW50cyB2YXIsXG4uYmdlLWNvbnRlbnRzIGFkZHJlc3MsXG4uYmdlLWNvbnRlbnRzIGJ1dHRvbixcbi5iZ2UtY29udGVudHMgY2FwdGlvbixcbi5iZ2UtY29udGVudHMgY2l0ZSxcbi5iZ2UtY29udGVudHMgY29kZSxcbi5iZ2UtY29udGVudHMgZGZuLFxuLmJnZS1jb250ZW50cyBlbSxcbi5iZ2UtY29udGVudHMgaW5wdXQsXG4uYmdlLWNvbnRlbnRzIG9wdGdyb3VwLFxuLmJnZS1jb250ZW50cyBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIHNlbGVjdCxcbi5iZ2UtY29udGVudHMgc3Ryb25nLFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgdGgsXG4uYmdlLWNvbnRlbnRzIHZhcixcbi5ja2VfZWRpdGFibGUgYWRkcmVzcyxcbi5ja2VfZWRpdGFibGUgYnV0dG9uLFxuLmNrZV9lZGl0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSBjaXRlLFxuLmNrZV9lZGl0YWJsZSBjb2RlLFxuLmNrZV9lZGl0YWJsZSBkZm4sXG4uY2tlX2VkaXRhYmxlIGVtLFxuLmNrZV9lZGl0YWJsZSBpbnB1dCxcbi5ja2VfZWRpdGFibGUgb3B0Z3JvdXAsXG4uY2tlX2VkaXRhYmxlIG9wdGlvbixcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBzdHJvbmcsXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmNrZV9lZGl0YWJsZSB0aCxcbi5ja2VfZWRpdGFibGUgdmFyIHtcbiAgZm9udDogaW5oZXJpdDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNtYWxsLFxuLmJnZS1jb250ZW50cyBzbWFsbCxcbi5ja2VfZWRpdGFibGUgc21hbGwge1xuICBjb2xvcjogIzY2Njtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGRlbCwgLmJzLW1haW4tY29udGVudHMgaW5zLFxuLmJnZS1jb250ZW50cyBkZWwsXG4uYmdlLWNvbnRlbnRzIGlucyxcbi5ja2VfZWRpdGFibGUgZGVsLFxuLmNrZV9lZGl0YWJsZSBpbnMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBhOmxpbmssIC5icy1tYWluLWNvbnRlbnRzIGE6dmlzaXRlZCxcbi5iZ2UtY29udGVudHMgYTpsaW5rLFxuLmJnZS1jb250ZW50cyBhOnZpc2l0ZWQsXG4uY2tlX2VkaXRhYmxlIGE6bGluayxcbi5ja2VfZWRpdGFibGUgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICMyYjdiYjk7XG59XG4uYnMtbWFpbi1jb250ZW50cyBhOmhvdmVyLFxuLmJnZS1jb250ZW50cyBhOmhvdmVyLFxuLmNrZV9lZGl0YWJsZSBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgY2FwdGlvbiwgLmJzLW1haW4tY29udGVudHMgdGgsXG4uYmdlLWNvbnRlbnRzIGNhcHRpb24sXG4uYmdlLWNvbnRlbnRzIHRoLFxuLmNrZV9lZGl0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSB0aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyBxOmJlZm9yZSwgLmJzLW1haW4tY29udGVudHMgcTphZnRlcixcbi5iZ2UtY29udGVudHMgcTpiZWZvcmUsXG4uYmdlLWNvbnRlbnRzIHE6YWZ0ZXIsXG4uY2tlX2VkaXRhYmxlIHE6YmVmb3JlLFxuLmNrZV9lZGl0YWJsZSBxOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGFiYnIsIC5icy1tYWluLWNvbnRlbnRzIGFjcm9ueW0sXG4uYmdlLWNvbnRlbnRzIGFiYnIsXG4uYmdlLWNvbnRlbnRzIGFjcm9ueW0sXG4uY2tlX2VkaXRhYmxlIGFiYnIsXG4uY2tlX2VkaXRhYmxlIGFjcm9ueW0ge1xuICBib3JkZXI6IDA7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xufVxuLmJzLW1haW4tY29udGVudHMgc3ViLFxuLmJnZS1jb250ZW50cyBzdWIsXG4uY2tlX2VkaXRhYmxlIHN1YiB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xufVxuLmJzLW1haW4tY29udGVudHMgc3VwLFxuLmJnZS1jb250ZW50cyBzdXAsXG4uY2tlX2VkaXRhYmxlIHN1cCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG59XG4uYnMtbWFpbi1jb250ZW50cyBsZWdlbmQsXG4uYmdlLWNvbnRlbnRzIGxlZ2VuZCxcbi5ja2VfZWRpdGFibGUgbGVnZW5kIHtcbiAgY29sb3I6ICMwMDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBwcmUsXG4uYmdlLWNvbnRlbnRzIHByZSxcbi5ja2VfZWRpdGFibGUgcHJlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YzRjNGMztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgYm9yZGVyOiAxcHggc29saWQgI0UyRTJFMjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGJsb2NrcXVvdGUsXG4uYmdlLWNvbnRlbnRzIGJsb2NrcXVvdGUsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMWVtIDA7XG4gIHBhZGRpbmc6IDFweCAyLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDJweCBzb2xpZCAjY2NjO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgYmxvY2txdW90ZTo6YmVmb3JlLFxuLmJnZS1jb250ZW50cyBibG9ja3F1b3RlOjpiZWZvcmUsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi4oCcXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogc2VyaWY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjNlbTtcbiAgbGVmdDogMC4yNWVtO1xuICB6LWluZGV4OiAwO1xuICBjb2xvcjogI2NjYztcbiAgZm9udC1zaXplOiAzZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyBibG9ja3F1b3RlOjphZnRlcixcbi5iZ2UtY29udGVudHMgYmxvY2txdW90ZTo6YWZ0ZXIsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6OmFmdGVyIHtcbiAgY29udGVudDogXCLigJ1cIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBzZXJpZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0wLjNlbTtcbiAgcmlnaHQ6IDAuMjVlbTtcbiAgei1pbmRleDogMDtcbiAgY29sb3I6ICNjY2M7XG4gIGZvbnQtc2l6ZTogM2VtO1xufVxuXG4vKiBGb3JtIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJzLW1haW4tY29udGVudHMgZm9ybSxcbi5iZ2UtY29udGVudHMgZm9ybSxcbi5ja2VfZWRpdGFibGUgZm9ybSxcbi5icy1zdWItY29udGVudHMgZm9ybSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0LCAuYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYSwgLmJzLW1haW4tY29udGVudHMgc2VsZWN0LCAuYnMtbWFpbi1jb250ZW50cyBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIGlucHV0LFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgc2VsZWN0LFxuLmJnZS1jb250ZW50cyBvcHRpb24sXG4uY2tlX2VkaXRhYmxlIGlucHV0LFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYSxcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBvcHRpb24sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0LFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYSxcbi5icy1zdWItY29udGVudHMgc2VsZWN0LFxuLmJzLXN1Yi1jb250ZW50cyBvcHRpb24ge1xuICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsXG4uYnMtbWFpbi1jb250ZW50cyBzZWxlY3QsXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYmdlLWNvbnRlbnRzIHRleHRhcmVhLFxuLmJnZS1jb250ZW50cyBzZWxlY3QsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRleHRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZWxdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPW51bWJlcl0sXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3QsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYnMtc3ViLWNvbnRlbnRzIHRleHRhcmVhLFxuLmJzLXN1Yi1jb250ZW50cyBzZWxlY3Qge1xuICBtYXJnaW46IDNweCAycHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cmFkaW9dLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1yYWRpb10sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXJhZGlvXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cmFkaW9dLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1zdWJtaXRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXJlc2V0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1idXR0b25dLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXN1Ym1pdF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cmVzZXRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWJ1dHRvbl0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9c3VibWl0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1yZXNldF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9YnV0dG9uXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1zdWJtaXRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXJlc2V0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1idXR0b25dIHtcbiAgbWFyZ2luOiAzcHggMnB4O1xuICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRleHRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZWxdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XTo6cGxhY2Vob2xkZXIsIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1wYXNzd29yZF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRlbF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGV4dF06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9bnVtYmVyXTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjY2NjO1xufVxuLmJzLW1haW4tY29udGVudHMgaW5wdXQ6YWN0aXZlLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dDpmb2N1cyxcbi5iZ2UtY29udGVudHMgaW5wdXQ6YWN0aXZlLFxuLmJnZS1jb250ZW50cyBpbnB1dDpmb2N1cyxcbi5ja2VfZWRpdGFibGUgaW5wdXQ6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSBpbnB1dDpmb2N1cyxcbi5icy1zdWItY29udGVudHMgaW5wdXQ6YWN0aXZlLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWEsXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYSB7XG4gIHdpZHRoOiA5NSU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nOiAzcHggM3B4O1xufVxuLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLCAuYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyxcbi5ja2VfZWRpdGFibGUgdGV4dGFyZWE6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYTpmb2N1cyxcbi5icy1zdWItY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZXh0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1lbWFpbF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNlbGVjdCxcbi5iZ2UtY29udGVudHMgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBzZWxlY3QsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBoZWlnaHQ6IDIuNmVtO1xuICBwYWRkaW5nOiAxMHB4IDhweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNlbGVjdDphY3RpdmUsIC5icy1tYWluLWNvbnRlbnRzIHNlbGVjdDpmb2N1cyxcbi5iZ2UtY29udGVudHMgc2VsZWN0OmFjdGl2ZSxcbi5iZ2UtY29udGVudHMgc2VsZWN0OmZvY3VzLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3Q6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3Q6Zm9jdXMsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdDphY3RpdmUsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBvcHRncm91cCBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIG9wdGdyb3VwIG9wdGlvbixcbi5ja2VfZWRpdGFibGUgb3B0Z3JvdXAgb3B0aW9uLFxuLmJzLXN1Yi1jb250ZW50cyBvcHRncm91cCBvcHRpb24ge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG5cbi8qKlxuICog5aSJ5pWwXG4gKi9cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44OV44Kp44Oz44OI44Gu5a6a576pXG4gKiBGb250IEF3ZXNvbWUgNC42LjMgYnkgQGRhdmVnYW5keSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZVxuICogTGljZW5zZSAtIGh0dHA6Ly9mb250YXdlc29tZS5pby9saWNlbnNlIChGb250OiBTSUwgT0ZMIDEuMSwgQ1NTOiBNSVQgTGljZW5zZSlcbiAqXG4gKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/dj00LjYuM1wiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD8jaWVmaXgmdj00LjYuM1wiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmMj92PTQuNi4zXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LndvZmY/dj00LjYuM1wiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnR0Zj92PTQuNi4zXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnN2Zz92PTQuNi4zI2ZvbnRhd2Vzb21lcmVndWxhclwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44Oe44Or44OB44Kr44Op44Og44OW44Ot44OD44Kv44Gu44Os44Kk44Ki44Km44OIXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG4vKipcbiAqIEJ1cmdlckVkaXRvciBTdHlsZVNoZWV0IFN0eWxlXG4gKi9cbi5iZ3QtYm94X19jYXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogM3B4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuXG4uYmd0LWJ0biB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZzogMTJweCAxMHB4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtaW4td2lkdGg6IDI4MHB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG4uYmd0LWJ0bjphY3RpdmUsIC5iZ3QtYnRuOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggMCAjMDU3MGM3LCAwIDAgMTBweCAwICNmZmY7XG59XG5cbi5iZ3QtYnRuLS1saW5rLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJvcmRlci1jb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5iZ3QtYnRuLS1saW5rOmhvdmVyLCAuYmd0LWJ0bi0tbGluazphY3RpdmUsIC5iZ3QtYnRuLS1saW5rOmZvY3VzLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuOmhvdmVyLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuOmFjdGl2ZSxcbltkYXRhLWJndC1idXR0b24ta2luZD1saW5rXSAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNlOWU5ZTk7XG59XG5cbi5iZ3QtYnRuLS1lbSxcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG4ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZDogIzMzMztcbn1cbi5iZ3QtYnRuLS1lbTpob3ZlciwgLmJndC1idG4tLWVtOmFjdGl2ZSwgLmJndC1idG4tLWVtOmZvY3VzLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWVtXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG46YWN0aXZlLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWVtXSAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICM1NTU7XG59XG5cbi5iZ3QtYnRuLS1leHRlcm5hbCxcbltkYXRhLWJndC1idXR0b24ta2luZD1leHRlcm5hbF0gLmJndC1idG4ge1xuICBjb2xvcjogIzMzMztcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmJndC1idG4tLWV4dGVybmFsOmhvdmVyLCAuYmd0LWJ0bi0tZXh0ZXJuYWw6YWN0aXZlLCAuYmd0LWJ0bi0tZXh0ZXJuYWw6Zm9jdXMsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOmhvdmVyLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWV4dGVybmFsXSAuYmd0LWJ0bjphY3RpdmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogI2U5ZTllOTtcbn1cbi5iZ3QtYnRuLS1leHRlcm5hbDo6YWZ0ZXIsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOjphZnRlciB7XG4gIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZSwgc2VyaWY7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgY29udGVudDogXCJcXGYwOGVcIjtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiAjOTk5O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYmd0LWJ0bi0tYmFjayxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0biB7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG4gIGJhY2tncm91bmQ6ICNkZGQ7XG59XG4uYmd0LWJ0bi0tYmFjazpob3ZlciwgLmJndC1idG4tLWJhY2s6YWN0aXZlLCAuYmd0LWJ0bi0tYmFjazpmb2N1cyxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjphY3RpdmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG46Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjZTllOWU5O1xufVxuLmJndC1idG4tLWJhY2sgc3BhbixcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0biBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmJndC1idG4tLWJhY2s6OmJlZm9yZSxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjo6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lLCBzZXJpZjtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBjb250ZW50OiBcIlxcZjA1M1wiO1xuICBmb250LXNpemU6IDFlbTtcbiAgbWFyZ2luLXRvcDogLTJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYmd0LWhyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbltkYXRhLWJndC1oci1raW5kPWRhc2hlZF0gLmJndC1ociB7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcbn1cblxuLmJndC1oci0tYm9sZCxcbltkYXRhLWJndC1oci1raW5kPWJvbGRdIC5iZ3QtaHIge1xuICBoZWlnaHQ6IDVweDtcbn1cblxuLmJndC1oci0tbmFycm93LFxuW2RhdGEtYmd0LWhyLWtpbmQ9bmFycm93XSAuYmd0LWhyIHtcbiAgaGVpZ2h0OiAxcHg7XG59XG5cbi5iZ3QtaHItLXNob3J0LFxuW2RhdGEtYmd0LWhyLWtpbmQ9c2hvcnRdIC5iZ3QtaHIge1xuICB3aWR0aDogNjAlO1xuICBoZWlnaHQ6IDFweDtcbn1cblxuLmJndC1kb3dubG9hZC1maWxlX19saW5rIHtcbiAgY29sb3I6ICMzMzM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMS4wOGVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjdlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5iZ3QtZG93bmxvYWQtZmlsZV9fbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4uYmd0LWRvd25sb2FkLWZpbGVfX2xpbms6YWN0aXZlLCAuYmd0LWRvd25sb2FkLWZpbGVfX2xpbms6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDFweCAjMDU3MGM3O1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uYmd0LWxpbmtfX3NpemUge1xuICBjb2xvcjogIzgwODA4MDtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJndC1nb29nbGUtbWFwcy1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggIzk5OTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5iZ3QtZ29vZ2xlLW1hcHMtbGluayBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuYmd0LWdvb2dsZS1tYXBzLWxpbms6OmFmdGVyIHtcbiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWUsIHNlcmlmO1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgY29udGVudDogXCJcXGYwOGVcIjtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnkge1xuICBwYWRkaW5nLXRvcDogNTQlO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeTpob3ZlciBbZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmwge1xuICBvcGFjaXR5OiAxO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeV9faW1nIGltZyB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeV9fY2FwdGlvbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIHBhZGRpbmc6IDAuN2VtIDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsIHtcbiAgdG9wOiA1MCU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbjtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldiwgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogLTIwcHggMCAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXY6aG92ZXIsIFtkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dDpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldjpmb2N1cywgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldiBzcGFuLCBbZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX25leHQgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19wcmV2OjphZnRlciwgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXI6IHNvbGlkICNmZmY7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwIDA7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXYge1xuICBsZWZ0OiAyMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dCB7XG4gIHJpZ2h0OiAyMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9dGh1bWJzXSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPXRodW1ic10gKyAuYmd0LWdhbGxlcnktbWFya2VyIGxpIHtcbiAgbWFyZ2luOiAwIDVweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogNjBweDtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSBbZGF0YS1nYWxsZXJ5LW1hcmtlcj1kb3RdICsgLmJndC1nYWxsZXJ5LW1hcmtlciB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9ZG90XSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIgbGkge1xuICBtYXJnaW46IDAgMnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPWRvdF0gKyAuYmd0LWdhbGxlcnktbWFya2VyIGxpLmN1cnJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuXG4vKiDjg4fjg5DjgqTjgrnkvp3lrZjmsY7nlKjjgq/jg6njgrkgKi9cbi5wYy1vbmx5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAucGMtb25seSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc3Atb25seSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc3Atb25seSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn0iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIGJhc2VyQ01TIDogIEJhc2VkIFdlYnNpdGUgRGV2ZWxvcG1lbnQgUHJvamVjdCA8aHR0cHM6Ly9iYXNlcmNtcy5uZXQ+XG4gKiBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uIDxodHRwczovL2Jhc2VyZm91bmRhdGlvbi5vcmcvPlxuICpcbiAqIEBjb3B5cmlnaHQgICAgIENvcHlyaWdodCAoYykgTlBPIGJhc2VyIGZvdW5kYXRpb25cbiAqIEBsaW5rICAgICAgICAgIGh0dHBzOi8vYmFzZXJjbXMubmV0IGJhc2VyQ01TIFByb2plY3RcbiAqIEBzaW5jZSAgICAgICAgIDUuMC4wXG4gKiBAbGljZW5zZSAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldC9saWNlbnNlL2luZGV4Lmh0bWwgTUlUIExpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIOODkOODvOOCrOODvOOCqOODh+OCo+OCv+ODvOOCueOCv+OCpOODq1xuICog566h55CG55S76Z2i44Gn44KC5ZG844Gz5Ye644GV44KM44KLXG4gKi9cblxuQGltcG9ydCBcImNvbW1vbi9lZGl0b3JcIjtcbkBpbXBvcnQgXCJjb21tb24vYmdlX3NldHRpbmdcIjtcbkBpbXBvcnQgXCJjb21tb24vYmdlXCI7XG5cbiIsIi8qKlxuICog44Ko44OH44Kj44K/44O855SoQ1NTXG4gKi9cblxuJGJyZWFrUG9pbnQ6IDc2OHB4O1xuXG4uY2tlX2VkaXRhYmxlIHtcbiAgcGFkZGluZzogMTVweDtcbn1cblxuLyogRWRpdG9yIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYnMtbWFpbi1jb250ZW50cyxcbi5iZ2UtY29udGVudHMsXG4uY2tlX2VkaXRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBWZXJkYW5hLCBcIua4uOOCtOOCt+ODg+OCr1wiLCBZdUdvdGhpYywgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9OXCIsIE1laXJ5bywgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMwMDA7XG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1zaXplOiAyLjJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbjogMC42ZW0gMDtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbjogNTZweCAwIDIwcHggMDtcbiAgICBwYWRkaW5nOiAxM3B4IDI4cHggMTJweDtcbiAgICBmb250LXNpemU6IDIxcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQ4LjNweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIGg0IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggI0NDQyBkb3R0ZWQ7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXJnaW46IDUwcHggMCAxN3B4IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIHBhZGRpbmc6IDAuM2VtIDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICBoNiB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgdSB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICBzIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgfVxuXG4gIGVtIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICBociB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgY29sb3I6ICNkZGQ7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDUwcHggYXV0bztcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICB1bCB7XG4gICAgbWFyZ2luOiAyMHB4IDAgMzZweCAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNXJlbTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAyNXB4O1xuICAgICAgbWFyZ2luOiAwLjVlbSAwIDAuNWVtIDA7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcblxuICAgICAgYSB7XG4gICAgICAgIHpvb206IDE7XG4gICAgICB9XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogOXB4O1xuICAgICAgICBsZWZ0OiAxcHg7XG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTgxODE4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbWFyZ2luOiAwIDAgMCAxLjhlbTtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb2wge1xuICAgIG1hcmdpbjogMjBweCAwIDM2cHggMS44ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBsZXR0ZXItc3BhY2luZzogLjA1cmVtO1xuXG4gICAgb2wge1xuICAgICAgbWFyZ2luOiAyMHB4O1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbC1sZWFkaW5nLXplcm87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAwO1xuICAgICAgbWFyZ2luOiAwLjVlbSAwIDAuNWVtIDA7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyLjM7XG4gIH1cblxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTFlMWUxO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTFlMWUxO1xuICAgIG1hcmdpbjogMjBweCAwIDIwcHggMDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBjYXB0aW9uIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGJvZHksXG4gICAgdGZvb3Qge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdHIge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQob2RkKSB0ZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICB9XG5cbiAgICAgIHRoLFxuICAgICAgdGQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nOiAyNnB4IDI0cHg7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGQge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBpbWcge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cblxuICBhZGRyZXNzLCBidXR0b24sIGNhcHRpb24sIGNpdGUsIGNvZGUsIGRmbiwgZW0sIGlucHV0LCBvcHRncm91cCwgb3B0aW9uLCBzZWxlY3QsIHN0cm9uZywgdGV4dGFyZWEsIHRoLCB2YXIge1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gIH1cblxuICBzbWFsbCB7XG4gICAgY29sb3I6ICM2NjY7XG4gIH1cblxuICBkZWwsIGlucyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgYSB7XG4gICAgJjpsaW5rLCAmOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMyYjdiYjk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgY2FwdGlvbiwgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICBxIHtcbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cblxuICBhYmJyLCBhY3JvbnltIHtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIH1cblxuICBzdWIge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdWI7XG4gIH1cblxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cblxuICBwcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGM0YzRjM7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRTJFMkUyO1xuICB9XG5cbiAgYmxvY2txdW90ZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgcGFkZGluZzogMXB4IDIuNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNjY2M7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAn4oCcJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6IHNlcmlmO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwLjNlbTtcbiAgICAgIGxlZnQ6IDAuMjVlbTtcbiAgICAgIHotaW5kZXg6IDA7XG4gICAgICBjb2xvcjogI2NjYztcbiAgICAgIGZvbnQtc2l6ZTogM2VtO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICfigJ0nO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LWZhbWlseTogc2VyaWY7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0wLjNlbTtcbiAgICAgIHJpZ2h0OiAwLjI1ZW07XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgY29sb3I6ICNjY2M7XG4gICAgICBmb250LXNpemU6IDNlbTtcbiAgICB9XG4gIH1cblxufVxuXG4vKiBGb3JtIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYnMtbWFpbi1jb250ZW50cyxcbi5iZ2UtY29udGVudHMsXG4uY2tlX2VkaXRhYmxlLFxuLmJzLXN1Yi1jb250ZW50cyB7XG4gIGZvcm0ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxuXG4gIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBvcHRpb24ge1xuICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4gIGlucHV0W3R5cGU9dGV4dF0sXG4gIGlucHV0W3R5cGU9ZW1haWxdLFxuICBpbnB1dFt0eXBlPXRlbF0sXG4gIGlucHV0W3R5cGU9bnVtYmVyXSxcbiAgdGV4dGFyZWEsXG4gIHNlbGVjdCB7XG4gICAgbWFyZ2luOiAzcHggMnB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB9XG5cbiAgaW5wdXQge1xuICAgICZbdHlwZT1jaGVja2JveF0ge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmW3R5cGU9cmFkaW9dLCAmW3R5cGU9Y2hlY2tib3hdIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG5cbiAgICAmW3R5cGU9c3VibWl0XSwgJlt0eXBlPXJlc2V0XSwgJlt0eXBlPWJ1dHRvbl0ge1xuICAgICAgbWFyZ2luOiAzcHggMnB4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG4gICAgfVxuXG4gICAgJlt0eXBlPXBhc3N3b3JkXSxcbiAgICAmW3R5cGU9dGV4dF0sXG4gICAgJlt0eXBlPWVtYWlsXSxcbiAgICAmW3R5cGU9dGVsXSxcbiAgICAmW3R5cGU9bnVtYmVyXVxuICAgIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgcGFkZGluZzogM3B4IDNweDtcblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQge1xuICAgICZbdHlwZT1wYXNzd29yZF0sXG4gICAgJlt0eXBlPXRleHRdLFxuICAgICZbdHlwZT1lbWFpbF0sXG4gICAgJlt0eXBlPXRlbF0sXG4gICAgJlt0eXBlPW51bWJlcl1cbiAgICB7XG4gICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgaGVpZ2h0OiAyLjZlbTtcbiAgICBwYWRkaW5nOiAxMHB4IDhweDtcblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgb3B0Z3JvdXAgb3B0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIH1cbn1cbiIsIi8qKlxuICog5aSJ5pWwXG4gKi9cbkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuLy8gUldE44Gu44OW44Os44O844Kv44Od44Kk44Oz44OIXG4kYnJlYWtQb2ludDogNzY4cHg7XG5cbi8vIOOCq+ODqeODoOmWk+OBruODnuODvOOCuOODs1xuJG11bHRpQ29sdW1uR3JpZE1hcmdpbjogMjBweDtcblxuLy8gUldE44Gn44Kr44Op44Og44GM6JC944Gh44Gf5pmC44Gu5LiL44Oe44O844K444OzXG4kbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDogMjBweDtcblxuLy8g44Oc44K/44Oz44Gu44OV44Kp44O844Kr44K55pmC44Gu44Kr44Op44O8XG4kYnRuR2xvd0NvbG9yOiAjMDU3MGM3O1xuXG4vLyDjg4jjg6rjg6DnlLvlg4/jg5bjg63jg4Pjgq/jga7nuKbmqKrmr5RcbiR0cmltSW1hZ2VBc3BlY3RSYXRpbzogMTsgLy8gNDoz44Gu5aC05ZCI44GvMy80XG5cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44OV44Kp44Oz44OI44Gu5a6a576pXG4gKiBGb250IEF3ZXNvbWUgNC42LjMgYnkgQGRhdmVnYW5keSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZVxuICogTGljZW5zZSAtIGh0dHA6Ly9mb250YXdlc29tZS5pby9saWNlbnNlIChGb250OiBTSUwgT0ZMIDEuMSwgQ1NTOiBNSVQgTGljZW5zZSlcbiAqXG4gKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gIHNyYzogdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD92PTQuNi4zJyk7XG4gIHNyYzogdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD8jaWVmaXgmdj00LjYuMycpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LndvZmYyP3Y9NC42LjMnKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9NC42LjMnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnR0Zj92PTQuNi4zJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJy4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQuc3ZnP3Y9NC42LjMjZm9udGF3ZXNvbWVyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG4vLyDjgrDjg6rjg4Pjg4njgrfjgrnjg4bjg6Bcbi8vXG4vLyDnt6jpm4bpnZ7mjqjlpahcbi8vXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG4kc3BhbjE6IDguMzMzMyU7XG4kc3BhbjI6IDE2LjY2NjYlO1xuJHNwYW4zOiAyNSU7XG4kc3BhbjQ6IDMzLjMzMzMlO1xuJHNwYW41OiA0MS42NjY2JTtcbiRzcGFuNjogNTAlO1xuJHNwYW43OiA1OC4zMzMzJTtcbiRzcGFuODogNjYuNjY2NiU7XG4kc3Bhbjk6IDc1JTtcbiRzcGFuMTA6IDgzLjMzMzMlO1xuJHNwYW4xMTogOTEuNjY2NiU7XG4kc3BhbjEyOiAxMDAlO1xuJGRpdmlkZTU6IDIwJTsgLy8gMTLjgrDjg6rjg4Pjg4njgrfjgrnjg4bjg6Djgafjga/lho3nj77jgafjgY3jgarjgYQ15YiG5YmyXG5cbi8vIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC9cbi8vXG4vLyDjg5/jg4Pjgq/jgrnjgqTjg7Ncbi8vXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG5AbWl4aW4gYmdlLWljb24ge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWUsIHNlcmlmO1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44Oe44Or44OB44Kr44Op44Og44OW44Ot44OD44Kv44Gu44Os44Kk44Ki44Km44OIXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG5cbiVjb2x1bW4yLWxheW91dCB7XG4gIC8qIDLliJfjg5bjg63jg4Pjgq8gKi9cbiAgLmJndC1ncmlkIHtcbiAgICAvKiAy5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOOCs+ODs+ODhuODiiAqL1xuICAgIHdpZHRoOiAkc3BhbjY7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgLyog5LiL44Oe44O844K444Oz44Gv44OW44Ot44OD44Kv5YaF44Gu44K/44Kk44OX44Gu6KaB57Sg44Gr5a++44GX44Gm5oyH5a6a44GZ44KLICjnqbrnlLvlg4/lr77nrZYpICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtdWx0aUNvbHVtbkdyaWRNYXJnaW5Cb3R0b21XaGVuQ2xlYXJlZEZsb2F0O1xuXG4gICAgICAgICZbZGF0YS1iZ2UtZW1wdHk9JzEnXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmW2NsYXNzKj0nYmd0LXNwLWdyaWQnXSB7XG4gICAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIC8qIDLliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So5pyA5Yid44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luLCAyKTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAvKiAy5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOacgOW+jOOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luLCAyKTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lY29sdW1uMy1sYXlvdXQge1xuICAvKiAz5YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogM+WIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJHNwYW40O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDMpO1xuICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCAzKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgLyog5LiL44Oe44O844K444Oz44Gv44OW44Ot44OD44Kv5YaF44Gu44K/44Kk44OX44Gu6KaB57Sg44Gr5a++44GX44Gm5oyH5a6a44GZ44KLICjnqbrnlLvlg4/lr77nrZYpICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtdWx0aUNvbHVtbkdyaWRNYXJnaW5Cb3R0b21XaGVuQ2xlYXJlZEZsb2F0O1xuXG4gICAgICAgICZbZGF0YS1iZ2UtZW1wdHk9JzEnXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmW2NsYXNzKj0nYmd0LXNwLWdyaWQnXSB7XG4gICAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIC8qIDPliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So5pyA5Yid44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMiwgMyk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgLyogM+WIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjmnIDliJ3jga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDIsIDMpO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lY29sdW1uNC1sYXlvdXQge1xuICAvKiA05YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogNOWIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJHNwYW4zO1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZmxvYXQ6IG5vbmU7XG5cbiAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIC8qIOS4i+ODnuODvOOCuOODs+OBr+ODluODreODg+OCr+WGheOBruOCv+OCpOODl+OBruimgee0oOOBq+WvvuOBl+OBpuaMh+WumuOBmeOCiyAo56m655S75YOP5a++562WKSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDtcblxuICAgICAgICAmW2RhdGEtYmdlLWVtcHR5PScxJ10ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJltjbGFzcyo9J2JndC1zcC1ncmlkJ10ge1xuICAgICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNCk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCA0KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA0KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDIsIDQpO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDQpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNCk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiVjb2x1bW41LWxheW91dCB7XG4gIC8qIDXliJfjg5bjg63jg4Pjgq8gKi9cbiAgLmJndC1ncmlkIHtcbiAgICAvKiA15YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOOCs+ODs+ODhuODiiAqL1xuICAgIHdpZHRoOiAkZGl2aWRlNTtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuXG4gICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAvKiDkuIvjg57jg7zjgrjjg7Pjga/jg5bjg63jg4Pjgq/lhoXjga7jgr/jgqTjg5fjga7opoHntKDjgavlr77jgZfjgabmjIflrprjgZnjgosgKOepuueUu+WDj+WvvuetlikgKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG11bHRpQ29sdW1uR3JpZE1hcmdpbkJvdHRvbVdoZW5DbGVhcmVkRmxvYXQ7XG5cbiAgICAgICAgJltkYXRhLWJnZS1lbXB0eT0nMSddIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICZbY2xhc3MqPSdiZ3Qtc3AtZ3JpZCddIHtcbiAgICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDQsIDUpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMSwgNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNSk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA1KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA1KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDMsIDUpO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDUpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNSkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogNCwgNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEJ1cmdlckVkaXRvciBTdHlsZVNoZWV0IFN0eWxlXG4gKi9cblxuLmJndC1ib3hfX2NhcHRpb24ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAzcHg7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG5cbi5iZ3QtYnRuIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG1pbi13aWR0aDogMjgwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggMCAkYnRuR2xvd0NvbG9yLCAwIDAgMTBweCAwICNmZmY7XG4gIH1cbn1cblxuLmJndC1idG4tLWxpbmsgLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9J2xpbmsnXSAuYmd0LWJ0biAvKiDmlrDjgrvjg6zjgq/jgr8gKi9cbntcbiAgJGNvbG9yOiAjMzMzO1xuICAkYkNvbG9yOiAjY2NjO1xuICAkYmdDb2xvcjogI2ZmZjtcbiAgJGJnQ29sb3JIb3ZlcjogI2U5ZTllOTtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkYkNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmdDb2xvcjtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGJnQ29sb3JIb3ZlcjtcbiAgfVxufVxuXG4uYmd0LWJ0bi0tZW0gLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9J2VtJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogI2ZmZjtcbiAgJGJDb2xvcjogIzMzMztcbiAgJGJnQ29sb3I6ICMzMzM7XG4gICRiZ0NvbG9ySG92ZXI6ICM1NTU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJGNvbG9yO1xuICBib3JkZXItY29sb3I6ICRiQ29sb3I7XG4gIGJhY2tncm91bmQ6ICRiZ0NvbG9yO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmdDb2xvckhvdmVyO1xuICB9XG59XG5cbi5iZ3QtYnRuLS1leHRlcm5hbCAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1idXR0b24ta2luZD0nZXh0ZXJuYWwnXSAuYmd0LWJ0biAvKiDmlrDjgrvjg6zjgq/jgr8gKi9cbntcbiAgJGNvbG9yOiAjMzMzO1xuICAkYkNvbG9yOiAjY2NjO1xuICAkYmdDb2xvcjogI2ZmZjtcbiAgJGJnQ29sb3JIb3ZlcjogI2U5ZTllOTtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkYkNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmdDb2xvcjtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGJnQ29sb3JIb3ZlcjtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBiZ2UtaWNvbjtcbiAgICBjb250ZW50OiAnXFxmMDhlJztcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBjb2xvcjogIzk5OTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbi5iZ3QtYnRuLS1iYWNrIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPSdiYWNrJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogIzMzMztcbiAgJGJDb2xvcjogI2RkZDtcbiAgJGJnQ29sb3I6ICNkZGQ7XG4gICRiZ0NvbG9ySG92ZXI6ICNlOWU5ZTk7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJGJDb2xvcjtcbiAgYmFja2dyb3VuZDogJGJnQ29sb3I7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRiZ0NvbG9ySG92ZXI7XG4gIH1cblxuICBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgYmdlLWljb247XG4gICAgY29udGVudDogJ1xcZjA1Myc7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4uYmd0LWhyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbltkYXRhLWJndC1oci1raW5kPSdkYXNoZWQnXSAuYmd0LWhyIHtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDJweCBkYXNoZWQgY3VycmVudENvbG9yO1xufVxuXG4uYmd0LWhyLS1ib2xkIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWhyLWtpbmQ9J2JvbGQnXSAuYmd0LWhyIC8qIOaWsOOCu+ODrOOCr+OCvyAqL1xue1xuICBoZWlnaHQ6IDVweDtcbn1cblxuLmJndC1oci0tbmFycm93IC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWhyLWtpbmQ9J25hcnJvdyddIC5iZ3QtaHIgLyog5paw44K744Os44Kv44K/ICovXG57XG4gIGhlaWdodDogMXB4O1xufVxuXG4uYmd0LWhyLS1zaG9ydCAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1oci1raW5kPSdzaG9ydCddIC5iZ3QtaHIgLyog5paw44K744Os44Kv44K/ICovXG57XG4gIHdpZHRoOiA2MCU7XG4gIGhlaWdodDogMXB4O1xufVxuXG4uYmd0LWRvd25sb2FkLWZpbGVfX2xpbmsge1xuICBjb2xvcjogIzMzMztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxLjA4ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuN2VtIDFlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggJGJ0bkdsb3dDb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG5cbi5iZ3QtbGlua19fc2l6ZSB7XG4gIGNvbG9yOiAjODA4MDgwO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4uYmd0LWdvb2dsZS1tYXBzLWxpbmsge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcGFkZGluZzogMWVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzMzMztcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjOTk5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgYmdlLWljb247XG4gICAgICBjb250ZW50OiAnXFxmMDhlJztcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuW2RhdGEtYmd0PSdnYWxsZXJ5J10ge1xuICAkdGh1bWItc2l6ZTogNjBweDtcblxuICAuYmd0LWdhbGxlcnkge1xuICAgIHBhZGRpbmctdG9wOiA1NCU7XG5cbiAgICAmOmhvdmVyICYtY3RybCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZfX2ltZyB7XG4gICAgICBpbWcge1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jYXB0aW9uIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgcGFkZGluZzogMC43ZW0gMWVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICYtY3RybCB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW47XG5cbiAgICAgICZfX3ByZXYsXG4gICAgICAmX19uZXh0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogLTIwcHggMCAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkICNmZmY7XG4gICAgICAgICAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDAgMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmX19wcmV2IHtcbiAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gICAgICB9XG5cbiAgICAgICZfX25leHQge1xuICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIFtkYXRhLWdhbGxlcnktbWFya2VyPSd0aHVtYnMnXSB7XG4gICAgKyAuYmd0LWdhbGxlcnktbWFya2VyIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgd2lkdGg6ICR0aHVtYi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICR0aHVtYi1zaXplO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIFtkYXRhLWdhbGxlcnktbWFya2VyPSdkb3QnXSB7XG4gICAgKyAuYmd0LWdhbGxlcnktbWFya2VyIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcblxuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiDjg4fjg5DjgqTjgrnkvp3lrZjmsY7nlKjjgq/jg6njgrkgKi9cbi5wYy1vbmx5IHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5zcC1vbmx5IHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbiJdfQ== */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9iZ2Vfc3R5bGUuY3NzIiwiY3NzL2JnZV9zdHlsZS5zY3NzIiwiY3NzL2NvbW1vbi9fZWRpdG9yLnNjc3MiLCJjc3MvY29tbW9uL19iZ2Vfc2V0dGluZy5zY3NzIiwiY3NzL2NvbW1vbi9fYmdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQ2hCOzs7Ozs7OztFQUFBO0FBVUE7OztFQUFBO0FDWEE7O0VBQUE7QUFNQTtFQUNFLGFBQUE7QUZZRjtBRVRBO2lEQUFBO0FBR0E7OztFQUdFLCtGQUFBO0VBQ0EsV0FBQTtBRldGO0FFVEU7OztFQUNFLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FGYUo7QUVWRTs7O0VBQ0Usd0xBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtBRmNKO0FFYkk7OztFQUNFLGFBQUE7QUZpQk47QUViRTs7O0VBQ0UscUJBQUE7RUFDQSx1QkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0FGaUJKO0FFZkk7OztFQUNFLGFBQUE7QUZtQk47QUVmRTs7O0VBQ0UsOEJBQUE7RUFDQSxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7QUZtQko7QUVqQkk7OztFQUNFLGFBQUE7QUZxQk47QUVqQkU7OztFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0FGcUJKO0FFbkJJOzs7RUFDRSxhQUFBO0FGdUJOO0FFbkJFOzs7RUFDRSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxn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QUNBLG1CQUFBO0FKZ3NCUjtBSTlyQlE7RUFDRSxzQkFBQTtBSmdzQlY7QUl4ckJBLGdCQUFBO0FBQ0E7RUFDRSxjQUFBO0FKMnJCRjtBSXpyQkU7RUFIRjtJQUlJLGFBQUE7RUo0ckJGO0FBQ0Y7QUl6ckJBO0VBQ0UsYUFBQTtBSjRyQkY7QUkxckJFO0VBSEY7SUFJSSxjQUFBO0VKNnJCRjtBQUNGIiwiZmlsZSI6ImNzcy9iZ2Vfc3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBiYXNlckNNUyA6ICBCYXNlZCBXZWJzaXRlIERldmVsb3BtZW50IFByb2plY3QgPGh0dHBzOi8vYmFzZXJjbXMubmV0PlxuICogQ29weXJpZ2h0IChjKSBOUE8gYmFzZXIgZm91bmRhdGlvbiA8aHR0cHM6Ly9iYXNlcmZvdW5kYXRpb24ub3JnLz5cbiAqXG4gKiBAY29weXJpZ2h0ICAgICBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uXG4gKiBAbGluayAgICAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldCBiYXNlckNNUyBQcm9qZWN0XG4gKiBAc2luY2UgICAgICAgICA1LjAuMFxuICogQGxpY2Vuc2UgICAgICAgaHR0cHM6Ly9iYXNlcmNtcy5uZXQvbGljZW5zZS9pbmRleC5odG1sIE1JVCBMaWNlbnNlXG4gKi9cbi8qKlxuICog44OQ44O844Ks44O844Ko44OH44Kj44K/44O844K544K/44Kk44OrXG4gKiDnrqHnkIbnlLvpnaLjgafjgoLlkbzjgbPlh7rjgZXjgozjgotcbiAqL1xuLyoqXG4gKiDjgqjjg4fjgqPjgr/jg7znlKhDU1NcbiAqL1xuLmNrZV9lZGl0YWJsZSB7XG4gIHBhZGRpbmc6IDE1cHg7XG59XG5cbi8qIEVkaXRvciBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5icy1tYWluLWNvbnRlbnRzLFxuLmJnZS1jb250ZW50cyxcbi5ja2VfZWRpdGFibGUge1xuICBmb250LWZhbWlseTogQXJpYWwsIFZlcmRhbmEsIFwi5ri444K044K344OD44KvXCIsIFl1R290aGljLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb05cIiwgTWVpcnlvLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogIzAwMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGgxLFxuLmJnZS1jb250ZW50cyBoMSxcbi5ja2VfZWRpdGFibGUgaDEge1xuICBmb250LXNpemU6IDQwcHg7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmJzLW1haW4tY29udGVudHMgaDIsXG4uYmdlLWNvbnRlbnRzIGgyLFxuLmNrZV9lZGl0YWJsZSBoMiB7XG4gIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAyLjJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIG1hcmdpbjogMC42ZW0gMDtcbiAgcGFkZGluZzogMC4zZW0gMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGgyOmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyBoMjpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgaDI6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDMsXG4uYmdlLWNvbnRlbnRzIGgzLFxuLmNrZV9lZGl0YWJsZSBoMyB7XG4gIG1hcmdpbjogNTZweCAwIDIwcHggMDtcbiAgcGFkZGluZzogMTNweCAyOHB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDQ4LjNweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGgzOmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyBoMzpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgaDM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDQsXG4uYmdlLWNvbnRlbnRzIGg0LFxuLmNrZV9lZGl0YWJsZSBoNCB7XG4gIGJvcmRlci1ib3R0b206IDFweCAjQ0NDIGRvdHRlZDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luOiA1MHB4IDAgMTdweCAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNDpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgaDQ6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGg0OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGg1LFxuLmJnZS1jb250ZW50cyBoNSxcbi5ja2VfZWRpdGFibGUgaDUge1xuICBmb250LXNpemU6IDEuMmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgcGFkZGluZzogMC4zZW0gMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGg1OmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyBoNTpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgaDU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDYsXG4uYmdlLWNvbnRlbnRzIGg2LFxuLmNrZV9lZGl0YWJsZSBoNiB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJzLW1haW4tY29udGVudHMgaDY6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGg2OmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoNjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBzdHJvbmcsXG4uYmdlLWNvbnRlbnRzIHN0cm9uZyxcbi5ja2VfZWRpdGFibGUgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgdSxcbi5iZ2UtY29udGVudHMgdSxcbi5ja2VfZWRpdGFibGUgdSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBzLFxuLmJnZS1jb250ZW50cyBzLFxuLmNrZV9lZGl0YWJsZSBzIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGVtLFxuLmJnZS1jb250ZW50cyBlbSxcbi5ja2VfZWRpdGFibGUgZW0ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4uYnMtbWFpbi1jb250ZW50cyBocixcbi5iZ2UtY29udGVudHMgaHIsXG4uY2tlX2VkaXRhYmxlIGhyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMXB4O1xuICBjb2xvcjogI2RkZDtcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogNTBweCBhdXRvO1xufVxuLmJzLW1haW4tY29udGVudHMgaHI6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGhyOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBocjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCxcbi5iZ2UtY29udGVudHMgdWwsXG4uY2tlX2VkaXRhYmxlIHVsIHtcbiAgbWFyZ2luOiAyMHB4IDAgMzZweCAwO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNXJlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsOmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyB1bDpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgdWw6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgdWwgbGksXG4uYmdlLWNvbnRlbnRzIHVsIGxpLFxuLmNrZV9lZGl0YWJsZSB1bCBsaSB7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDAgMCAyNXB4O1xuICBtYXJnaW46IDAuNWVtIDAgMC41ZW0gMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuLmJzLW1haW4tY29udGVudHMgdWwgbGkgYSxcbi5iZ2UtY29udGVudHMgdWwgbGkgYSxcbi5ja2VfZWRpdGFibGUgdWwgbGkgYSB7XG4gIHpvb206IDE7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCBsaTpiZWZvcmUsXG4uYmdlLWNvbnRlbnRzIHVsIGxpOmJlZm9yZSxcbi5ja2VfZWRpdGFibGUgdWwgbGk6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA5cHg7XG4gIGxlZnQ6IDFweDtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJhY2tncm91bmQ6ICMxODE4MTg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsIHVsLFxuLmJnZS1jb250ZW50cyB1bCB1bCxcbi5ja2VfZWRpdGFibGUgdWwgdWwge1xuICBtYXJnaW46IDAgMCAwIDEuOGVtO1xufVxuLmJzLW1haW4tY29udGVudHMgdWwgdWw6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIHVsIHVsOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSB1bCB1bDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBvbCxcbi5iZ2UtY29udGVudHMgb2wsXG4uY2tlX2VkaXRhYmxlIG9sIHtcbiAgbWFyZ2luOiAyMHB4IDAgMzZweCAxLjhlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVyZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyBvbCBvbCxcbi5iZ2UtY29udGVudHMgb2wgb2wsXG4uY2tlX2VkaXRhYmxlIG9sIG9sIHtcbiAgbWFyZ2luOiAyMHB4O1xufVxuLmJzLW1haW4tY29udGVudHMgb2wgbGksXG4uYmdlLWNvbnRlbnRzIG9sIGxpLFxuLmNrZV9lZGl0YWJsZSBvbCBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbC1sZWFkaW5nLXplcm87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMCAwIDAgMDtcbiAgbWFyZ2luOiAwLjVlbSAwIDAuNWVtIDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG4uYnMtbWFpbi1jb250ZW50cyBwLFxuLmJnZS1jb250ZW50cyBwLFxuLmNrZV9lZGl0YWJsZSBwIHtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVyZW07XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyLjM7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSxcbi5iZ2UtY29udGVudHMgdGFibGUsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMWUxZTE7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMWUxZTE7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTFlMWUxO1xuICBtYXJnaW46IDIwcHggMCAyMHB4IDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSxcbiAgLmJnZS1jb250ZW50cyB0YWJsZSxcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlOmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyB0YWJsZTpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgdGFibGU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgdGFibGUgY2FwdGlvbixcbi5iZ2UtY29udGVudHMgdGFibGUgY2FwdGlvbixcbi5ja2VfZWRpdGFibGUgdGFibGUgY2FwdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgY2FwdGlvbixcbiAgLmJnZS1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIGNhcHRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0Ym9keSxcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdGZvb3QsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdGJvZHksXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdGZvb3QsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdGJvZHksXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdGZvb3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0cixcbi5iZ2UtY29udGVudHMgdGFibGUgdHIsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0cixcbiAgLmJnZS1jb250ZW50cyB0YWJsZSB0cixcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB0ciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogLTFweDtcbiAgfVxufVxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgdGQsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHRkLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSB0cjpudGgtY2hpbGQob2RkKSB0ZCB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0aCxcbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRkLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0aCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHIgdGQsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRoLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSB0ciB0ZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDI2cHggMjRweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTFlMWUxO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRkLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRkLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRoLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGgsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSB0ciB0aCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbiAgYmFja2dyb3VuZDogI2YzZjNmMztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRoIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0ZCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHIgdGQsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRkIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRkIHVsLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0ZCB1bCxcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGQgdWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBmaWVsZHNldCxcbi5iZ2UtY29udGVudHMgZmllbGRzZXQsXG4uY2tlX2VkaXRhYmxlIGZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaW1nLFxuLmJnZS1jb250ZW50cyBpbWcsXG4uY2tlX2VkaXRhYmxlIGltZyB7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuLmJzLW1haW4tY29udGVudHMgYWRkcmVzcywgLmJzLW1haW4tY29udGVudHMgYnV0dG9uLCAuYnMtbWFpbi1jb250ZW50cyBjYXB0aW9uLCAuYnMtbWFpbi1jb250ZW50cyBjaXRlLCAuYnMtbWFpbi1jb250ZW50cyBjb2RlLCAuYnMtbWFpbi1jb250ZW50cyBkZm4sIC5icy1tYWluLWNvbnRlbnRzIGVtLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dCwgLmJzLW1haW4tY29udGVudHMgb3B0Z3JvdXAsIC5icy1tYWluLWNvbnRlbnRzIG9wdGlvbiwgLmJzLW1haW4tY29udGVudHMgc2VsZWN0LCAuYnMtbWFpbi1jb250ZW50cyBzdHJvbmcsIC5icy1tYWluLWNvbnRlbnRzIHRleHRhcmVhLCAuYnMtbWFpbi1jb250ZW50cyB0aCwgLmJzLW1haW4tY29udGVudHMgdmFyLFxuLmJnZS1jb250ZW50cyBhZGRyZXNzLFxuLmJnZS1jb250ZW50cyBidXR0b24sXG4uYmdlLWNvbnRlbnRzIGNhcHRpb24sXG4uYmdlLWNvbnRlbnRzIGNpdGUsXG4uYmdlLWNvbnRlbnRzIGNvZGUsXG4uYmdlLWNvbnRlbnRzIGRmbixcbi5iZ2UtY29udGVudHMgZW0sXG4uYmdlLWNvbnRlbnRzIGlucHV0LFxuLmJnZS1jb250ZW50cyBvcHRncm91cCxcbi5iZ2UtY29udGVudHMgb3B0aW9uLFxuLmJnZS1jb250ZW50cyBzZWxlY3QsXG4uYmdlLWNvbnRlbnRzIHN0cm9uZyxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWEsXG4uYmdlLWNvbnRlbnRzIHRoLFxuLmJnZS1jb250ZW50cyB2YXIsXG4uY2tlX2VkaXRhYmxlIGFkZHJlc3MsXG4uY2tlX2VkaXRhYmxlIGJ1dHRvbixcbi5ja2VfZWRpdGFibGUgY2FwdGlvbixcbi5ja2VfZWRpdGFibGUgY2l0ZSxcbi5ja2VfZWRpdGFibGUgY29kZSxcbi5ja2VfZWRpdGFibGUgZGZuLFxuLmNrZV9lZGl0YWJsZSBlbSxcbi5ja2VfZWRpdGFibGUgaW5wdXQsXG4uY2tlX2VkaXRhYmxlIG9wdGdyb3VwLFxuLmNrZV9lZGl0YWJsZSBvcHRpb24sXG4uY2tlX2VkaXRhYmxlIHNlbGVjdCxcbi5ja2VfZWRpdGFibGUgc3Ryb25nLFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYSxcbi5ja2VfZWRpdGFibGUgdGgsXG4uY2tlX2VkaXRhYmxlIHZhciB7XG4gIGZvbnQ6IGluaGVyaXQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyBzbWFsbCxcbi5iZ2UtY29udGVudHMgc21hbGwsXG4uY2tlX2VkaXRhYmxlIHNtYWxsIHtcbiAgY29sb3I6ICM2NjY7XG59XG4uYnMtbWFpbi1jb250ZW50cyBkZWwsIC5icy1tYWluLWNvbnRlbnRzIGlucyxcbi5iZ2UtY29udGVudHMgZGVsLFxuLmJnZS1jb250ZW50cyBpbnMsXG4uY2tlX2VkaXRhYmxlIGRlbCxcbi5ja2VfZWRpdGFibGUgaW5zIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgYTpsaW5rLCAuYnMtbWFpbi1jb250ZW50cyBhOnZpc2l0ZWQsXG4uYmdlLWNvbnRlbnRzIGE6bGluayxcbi5iZ2UtY29udGVudHMgYTp2aXNpdGVkLFxuLmNrZV9lZGl0YWJsZSBhOmxpbmssXG4uY2tlX2VkaXRhYmxlIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjMmI3YmI5O1xufVxuLmJzLW1haW4tY29udGVudHMgYTpob3Zlcixcbi5iZ2UtY29udGVudHMgYTpob3Zlcixcbi5ja2VfZWRpdGFibGUgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGNhcHRpb24sIC5icy1tYWluLWNvbnRlbnRzIHRoLFxuLmJnZS1jb250ZW50cyBjYXB0aW9uLFxuLmJnZS1jb250ZW50cyB0aCxcbi5ja2VfZWRpdGFibGUgY2FwdGlvbixcbi5ja2VfZWRpdGFibGUgdGgge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmJzLW1haW4tY29udGVudHMgcTpiZWZvcmUsIC5icy1tYWluLWNvbnRlbnRzIHE6YWZ0ZXIsXG4uYmdlLWNvbnRlbnRzIHE6YmVmb3JlLFxuLmJnZS1jb250ZW50cyBxOmFmdGVyLFxuLmNrZV9lZGl0YWJsZSBxOmJlZm9yZSxcbi5ja2VfZWRpdGFibGUgcTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG4uYnMtbWFpbi1jb250ZW50cyBhYmJyLCAuYnMtbWFpbi1jb250ZW50cyBhY3JvbnltLFxuLmJnZS1jb250ZW50cyBhYmJyLFxuLmJnZS1jb250ZW50cyBhY3JvbnltLFxuLmNrZV9lZGl0YWJsZSBhYmJyLFxuLmNrZV9lZGl0YWJsZSBhY3JvbnltIHtcbiAgYm9yZGVyOiAwO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHN1Yixcbi5iZ2UtY29udGVudHMgc3ViLFxuLmNrZV9lZGl0YWJsZSBzdWIge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IHN1Yjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHN1cCxcbi5iZ2UtY29udGVudHMgc3VwLFxuLmNrZV9lZGl0YWJsZSBzdXAge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xufVxuLmJzLW1haW4tY29udGVudHMgbGVnZW5kLFxuLmJnZS1jb250ZW50cyBsZWdlbmQsXG4uY2tlX2VkaXRhYmxlIGxlZ2VuZCB7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmJzLW1haW4tY29udGVudHMgcHJlLFxuLmJnZS1jb250ZW50cyBwcmUsXG4uY2tlX2VkaXRhYmxlIHByZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGM0YzRjM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFMkUyRTI7XG59XG4uYnMtbWFpbi1jb250ZW50cyBibG9ja3F1b3RlLFxuLmJnZS1jb250ZW50cyBibG9ja3F1b3RlLFxuLmNrZV9lZGl0YWJsZSBibG9ja3F1b3RlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAxcHggMi41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAycHggc29saWQgI2NjYztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICM4ODg7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyBibG9ja3F1b3RlOmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyBibG9ja3F1b3RlOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBibG9ja3F1b3RlOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGJsb2NrcXVvdGU6OmJlZm9yZSxcbi5iZ2UtY29udGVudHMgYmxvY2txdW90ZTo6YmVmb3JlLFxuLmNrZV9lZGl0YWJsZSBibG9ja3F1b3RlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIuKAnFwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IHNlcmlmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC4zZW07XG4gIGxlZnQ6IDAuMjVlbTtcbiAgei1pbmRleDogMDtcbiAgY29sb3I6ICNjY2M7XG4gIGZvbnQtc2l6ZTogM2VtO1xufVxuLmJzLW1haW4tY29udGVudHMgYmxvY2txdW90ZTo6YWZ0ZXIsXG4uYmdlLWNvbnRlbnRzIGJsb2NrcXVvdGU6OmFmdGVyLFxuLmNrZV9lZGl0YWJsZSBibG9ja3F1b3RlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwi4oCdXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogc2VyaWY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtMC4zZW07XG4gIHJpZ2h0OiAwLjI1ZW07XG4gIHotaW5kZXg6IDA7XG4gIGNvbG9yOiAjY2NjO1xuICBmb250LXNpemU6IDNlbTtcbn1cblxuLyogRm9ybSBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5icy1tYWluLWNvbnRlbnRzIGZvcm0sXG4uYmdlLWNvbnRlbnRzIGZvcm0sXG4uY2tlX2VkaXRhYmxlIGZvcm0sXG4uYnMtc3ViLWNvbnRlbnRzIGZvcm0ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dCwgLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsIC5icy1tYWluLWNvbnRlbnRzIHNlbGVjdCwgLmJzLW1haW4tY29udGVudHMgb3B0aW9uLFxuLmJnZS1jb250ZW50cyBpbnB1dCxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWEsXG4uYmdlLWNvbnRlbnRzIHNlbGVjdCxcbi5iZ2UtY29udGVudHMgb3B0aW9uLFxuLmNrZV9lZGl0YWJsZSBpbnB1dCxcbi5ja2VfZWRpdGFibGUgdGV4dGFyZWEsXG4uY2tlX2VkaXRhYmxlIHNlbGVjdCxcbi5ja2VfZWRpdGFibGUgb3B0aW9uLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dCxcbi5icy1zdWItY29udGVudHMgdGV4dGFyZWEsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdCxcbi5icy1zdWItY29udGVudHMgb3B0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGV4dF0sXG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9bnVtYmVyXSxcbi5icy1tYWluLWNvbnRlbnRzIHRleHRhcmVhLFxuLmJzLW1haW4tY29udGVudHMgc2VsZWN0LFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZXh0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1lbWFpbF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYSxcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYSxcbi5icy1zdWItY29udGVudHMgc2VsZWN0IHtcbiAgbWFyZ2luOiAzcHggMnB4O1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXJhZGlvXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cmFkaW9dLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1yYWRpb10sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXJhZGlvXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9c3VibWl0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1yZXNldF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9YnV0dG9uXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1zdWJtaXRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXJlc2V0XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1idXR0b25dLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXN1Ym1pdF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9cmVzZXRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWJ1dHRvbl0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9c3VibWl0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1yZXNldF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9YnV0dG9uXSB7XG4gIG1hcmdpbjogM3B4IDJweDtcbiAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZXh0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1lbWFpbF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6cGxhY2Vob2xkZXIsIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGV4dF06OnBsYWNlaG9sZGVyLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXTo6cGxhY2Vob2xkZXIsIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXTo6cGxhY2Vob2xkZXIsIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9bnVtYmVyXTo6cGxhY2Vob2xkZXIsXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XTo6cGxhY2Vob2xkZXIsXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZWxdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlcixcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1wYXNzd29yZF06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcixcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1lbWFpbF06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRlbF06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPW51bWJlcl06OnBsYWNlaG9sZGVyLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGV4dF06OnBsYWNlaG9sZGVyLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9bnVtYmVyXTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2NjYztcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0OmFjdGl2ZSwgLmJzLW1haW4tY29udGVudHMgaW5wdXQ6Zm9jdXMsXG4uYmdlLWNvbnRlbnRzIGlucHV0OmFjdGl2ZSxcbi5iZ2UtY29udGVudHMgaW5wdXQ6Zm9jdXMsXG4uY2tlX2VkaXRhYmxlIGlucHV0OmFjdGl2ZSxcbi5ja2VfZWRpdGFibGUgaW5wdXQ6Zm9jdXMsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0OmFjdGl2ZSxcbi5icy1zdWItY29udGVudHMgaW5wdXQ6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDFweCAjZmE5Njk2O1xuICBvdXRsaW5lOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsXG4uYmdlLWNvbnRlbnRzIHRleHRhcmVhLFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYSxcbi5icy1zdWItY29udGVudHMgdGV4dGFyZWEge1xuICB3aWR0aDogOTUlO1xuICBmb250LXNpemU6IDFlbTtcbiAgcGFkZGluZzogM3B4IDNweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRleHRhcmVhOmFjdGl2ZSwgLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWE6Zm9jdXMsXG4uYmdlLWNvbnRlbnRzIHRleHRhcmVhOmFjdGl2ZSxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWE6Zm9jdXMsXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhOmFjdGl2ZSxcbi5ja2VfZWRpdGFibGUgdGV4dGFyZWE6Zm9jdXMsXG4uYnMtc3ViLWNvbnRlbnRzIHRleHRhcmVhOmFjdGl2ZSxcbi5icy1zdWItY29udGVudHMgdGV4dGFyZWE6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDFweCAjZmE5Njk2O1xuICBvdXRsaW5lOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1wYXNzd29yZF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGV4dF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXRlbF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9bnVtYmVyXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9dGV4dF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRlbF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9bnVtYmVyXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGV4dF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9ZW1haWxdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRlbF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9bnVtYmVyXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGV4dF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXRlbF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyBzZWxlY3QsXG4uYmdlLWNvbnRlbnRzIHNlbGVjdCxcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmJzLXN1Yi1jb250ZW50cyBzZWxlY3Qge1xuICBmb250LXNpemU6IDFlbTtcbiAgaGVpZ2h0OiAyLjZlbTtcbiAgcGFkZGluZzogMTBweCA4cHg7XG59XG4uYnMtbWFpbi1jb250ZW50cyBzZWxlY3Q6YWN0aXZlLCAuYnMtbWFpbi1jb250ZW50cyBzZWxlY3Q6Zm9jdXMsXG4uYmdlLWNvbnRlbnRzIHNlbGVjdDphY3RpdmUsXG4uYmdlLWNvbnRlbnRzIHNlbGVjdDpmb2N1cyxcbi5ja2VfZWRpdGFibGUgc2VsZWN0OmFjdGl2ZSxcbi5ja2VfZWRpdGFibGUgc2VsZWN0OmZvY3VzLFxuLmJzLXN1Yi1jb250ZW50cyBzZWxlY3Q6YWN0aXZlLFxuLmJzLXN1Yi1jb250ZW50cyBzZWxlY3Q6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDFweCAjZmE5Njk2O1xuICBvdXRsaW5lOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgb3B0Z3JvdXAgb3B0aW9uLFxuLmJnZS1jb250ZW50cyBvcHRncm91cCBvcHRpb24sXG4uY2tlX2VkaXRhYmxlIG9wdGdyb3VwIG9wdGlvbixcbi5icy1zdWItY29udGVudHMgb3B0Z3JvdXAgb3B0aW9uIHtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xufVxuXG4vKipcbiAqIOWkieaVsFxuICovXG4vKiogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKlxuICpcbiAqIOODleOCqeODs+ODiOOBruWumue+qVxuICogRm9udCBBd2Vzb21lIDQuNi4zIGJ5IEBkYXZlZ2FuZHkgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8gLSBAZm9udGF3ZXNvbWVcbiAqIExpY2Vuc2UgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8vbGljZW5zZSAoRm9udDogU0lMIE9GTCAxLjEsIENTUzogTUlUIExpY2Vuc2UpXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQuZW90P3Y9NC42LjNcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/I2llZml4JnY9NC42LjNcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQud29mZjI/dj00LjYuM1wiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9NC42LjNcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC50dGY/dj00LjYuM1wiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5zdmc/dj00LjYuMyNmb250YXdlc29tZXJlZ3VsYXJcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4vKiogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKlxuICpcbiAqIOODnuODq+ODgeOCq+ODqeODoOODluODreODg+OCr+OBruODrOOCpOOCouOCpuODiFxuICpcbiAqIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tICoqL1xuLyoqXG4gKiBCdXJnZXJFZGl0b3IgU3R5bGVTaGVldCBTdHlsZVxuICpcbiAqIGJjLWZyb250IOODhuODvOODnuWBtOOBp+OCs+ODs+ODkeOCpOODq+OBl+OBn+mam+OBr+OAgWJnZV9zdHlsZS5jc3Mg44KSXG4gKiBCY1RoZW1lU2FtcGxlIOODhuODvOODnuWBtOOBq+OCs+ODlOODvOOBmeOCi+W/heimgeOBjOOBguOCi1xuICovXG4uYmd0LWJveF9fY2FwdGlvbiB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDNweDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cblxuLmJndC1idG4ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBhZGRpbmc6IDEycHggMTBweDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWluLXdpZHRoOiAyODBweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuLmJndC1idG46YWN0aXZlLCAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgIzA1NzBjNywgMCAwIDEwcHggMCAjZmZmO1xufVxuXG4uYmd0LWJ0bi0tbGluayxcbltkYXRhLWJndC1idXR0b24ta2luZD1saW5rXSAuYmd0LWJ0biB7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXItY29sb3I6ICNjY2M7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uYmd0LWJ0bi0tbGluazpob3ZlciwgLmJndC1idG4tLWxpbms6YWN0aXZlLCAuYmd0LWJ0bi0tbGluazpmb2N1cyxcbltkYXRhLWJndC1idXR0b24ta2luZD1saW5rXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1saW5rXSAuYmd0LWJ0bjphY3RpdmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9bGlua10gLmJndC1idG46Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjZTllOWU5O1xufVxuXG4uYmd0LWJ0bi0tZW0sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZW1dIC5iZ3QtYnRuIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG59XG4uYmd0LWJ0bi0tZW06aG92ZXIsIC5iZ3QtYnRuLS1lbTphY3RpdmUsIC5iZ3QtYnRuLS1lbTpmb2N1cyxcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG46aG92ZXIsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZW1dIC5iZ3QtYnRuOmFjdGl2ZSxcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG46Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjNTU1O1xufVxuXG4uYmd0LWJ0bi0tZXh0ZXJuYWwsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJvcmRlci1jb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5iZ3QtYnRuLS1leHRlcm5hbDpob3ZlciwgLmJndC1idG4tLWV4dGVybmFsOmFjdGl2ZSwgLmJndC1idG4tLWV4dGVybmFsOmZvY3VzLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWV4dGVybmFsXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1leHRlcm5hbF0gLmJndC1idG46YWN0aXZlLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWV4dGVybmFsXSAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNlOWU5ZTk7XG59XG4uYmd0LWJ0bi0tZXh0ZXJuYWw6OmFmdGVyLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWV4dGVybmFsXSAuYmd0LWJ0bjo6YWZ0ZXIge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWUsIHNlcmlmO1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGNvbnRlbnQ6IFwiXFxmMDhlXCI7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogIzk5OTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmJndC1idG4tLWJhY2ssXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG4ge1xuICBjb2xvcjogIzMzMztcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICBiYWNrZ3JvdW5kOiAjZGRkO1xufVxuLmJndC1idG4tLWJhY2s6aG92ZXIsIC5iZ3QtYnRuLS1iYWNrOmFjdGl2ZSwgLmJndC1idG4tLWJhY2s6Zm9jdXMsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG46aG92ZXIsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG46YWN0aXZlLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWJhY2tdIC5iZ3QtYnRuOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogI2U5ZTllOTtcbn1cbi5iZ3QtYnRuLS1iYWNrIHNwYW4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG4gc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5iZ3QtYnRuLS1iYWNrOjpiZWZvcmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG46OmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZSwgc2VyaWY7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgY29udGVudDogXCJcXGYwNTNcIjtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbi10b3A6IC0ycHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmJndC1ociB7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG5bZGF0YS1iZ3QtaHIta2luZD1kYXNoZWRdIC5iZ3QtaHIge1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IGRhc2hlZCBjdXJyZW50Q29sb3I7XG59XG5cbi5iZ3QtaHItLWJvbGQsXG5bZGF0YS1iZ3QtaHIta2luZD1ib2xkXSAuYmd0LWhyIHtcbiAgaGVpZ2h0OiA1cHg7XG59XG5cbi5iZ3QtaHItLW5hcnJvdyxcbltkYXRhLWJndC1oci1raW5kPW5hcnJvd10gLmJndC1ociB7XG4gIGhlaWdodDogMXB4O1xufVxuXG4uYmd0LWhyLS1zaG9ydCxcbltkYXRhLWJndC1oci1raW5kPXNob3J0XSAuYmd0LWhyIHtcbiAgd2lkdGg6IDYwJTtcbiAgaGVpZ2h0OiAxcHg7XG59XG5cbi5iZ3QtZG93bmxvYWQtZmlsZV9fbGluayB7XG4gIGNvbG9yOiAjMzMzO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDEuMDhlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC43ZW0gMWVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYmd0LWRvd25sb2FkLWZpbGVfX2xpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLmJndC1kb3dubG9hZC1maWxlX19saW5rOmFjdGl2ZSwgLmJndC1kb3dubG9hZC1maWxlX19saW5rOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggIzA1NzBjNztcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmJndC1saW5rX19zaXplIHtcbiAgY29sb3I6ICM4MDgwODA7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5iZ3QtZ29vZ2xlLW1hcHMtbGluayB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBwYWRkaW5nOiAxZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGJvcmRlcjogc29saWQgMXB4ICM5OTk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuYmd0LWdvb2dsZS1tYXBzLWxpbmsgc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLmJndC1nb29nbGUtbWFwcy1saW5rOjphZnRlciB7XG4gICAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lLCBzZXJpZjtcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIGNvbnRlbnQ6IFwiXFxmMDhlXCI7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5IHtcbiAgcGFkZGluZy10b3A6IDU0JTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnk6aG92ZXIgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsIHtcbiAgb3BhY2l0eTogMTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnlfX2ltZyBpbWcge1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnlfX2NhcHRpb24ge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBwYWRkaW5nOiAwLjdlbSAxZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybCB7XG4gIHRvcDogNTAlO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW47XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXYsIFtkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IC0yMHB4IDAgMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19wcmV2OmhvdmVyLCBbZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX25leHQ6aG92ZXIge1xuICBvcGFjaXR5OiAwLjU7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXY6Zm9jdXMsIFtkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXYgc3BhbiwgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0IHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldjo6YWZ0ZXIsIFtkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyOiBzb2xpZCAjZmZmO1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggMCAwO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19wcmV2IHtcbiAgbGVmdDogMjBweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX25leHQge1xuICByaWdodDogMjBweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPXRodW1ic10gKyAuYmd0LWdhbGxlcnktbWFya2VyIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSBbZGF0YS1nYWxsZXJ5LW1hcmtlcj10aHVtYnNdICsgLmJndC1nYWxsZXJ5LW1hcmtlciBsaSB7XG4gIG1hcmdpbjogMCA1cHg7XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDYwcHg7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9dGh1bWJzXSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIgbGk6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9ZG90XSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPWRvdF0gKyAuYmd0LWdhbGxlcnktbWFya2VyIGxpIHtcbiAgbWFyZ2luOiAwIDJweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSBbZGF0YS1nYWxsZXJ5LW1hcmtlcj1kb3RdICsgLmJndC1nYWxsZXJ5LW1hcmtlciBsaS5jdXJyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cblxuLyog44OH44OQ44Kk44K55L6d5a2Y5rGO55So44Kv44Op44K5ICovXG4ucGMtb25seSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnBjLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNwLW9ubHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNwLW9ubHkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59IiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLyoqXG4gKiBiYXNlckNNUyA6ICBCYXNlZCBXZWJzaXRlIERldmVsb3BtZW50IFByb2plY3QgPGh0dHBzOi8vYmFzZXJjbXMubmV0PlxuICogQ29weXJpZ2h0IChjKSBOUE8gYmFzZXIgZm91bmRhdGlvbiA8aHR0cHM6Ly9iYXNlcmZvdW5kYXRpb24ub3JnLz5cbiAqXG4gKiBAY29weXJpZ2h0ICAgICBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uXG4gKiBAbGluayAgICAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldCBiYXNlckNNUyBQcm9qZWN0XG4gKiBAc2luY2UgICAgICAgICA1LjAuMFxuICogQGxpY2Vuc2UgICAgICAgaHR0cHM6Ly9iYXNlcmNtcy5uZXQvbGljZW5zZS9pbmRleC5odG1sIE1JVCBMaWNlbnNlXG4gKi9cblxuLyoqXG4gKiDjg5Djg7zjgqzjg7zjgqjjg4fjgqPjgr/jg7zjgrnjgr/jgqTjg6tcbiAqIOeuoeeQhueUu+mdouOBp+OCguWRvOOBs+WHuuOBleOCjOOCi1xuICovXG5cbkBpbXBvcnQgXCJjb21tb24vZWRpdG9yXCI7XG5AaW1wb3J0IFwiY29tbW9uL2JnZV9zZXR0aW5nXCI7XG5AaW1wb3J0IFwiY29tbW9uL2JnZVwiO1xuXG4iLCIvKipcbiAqIOOCqOODh+OCo+OCv+ODvOeUqENTU1xuICovXG5cbiRicmVha1BvaW50OiA3NjhweDtcblxuLmNrZV9lZGl0YWJsZSB7XG4gIHBhZGRpbmc6IDE1cHg7XG59XG5cbi8qIEVkaXRvciBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmJzLW1haW4tY29udGVudHMsXG4uYmdlLWNvbnRlbnRzLFxuLmNrZV9lZGl0YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgVmVyZGFuYSwgXCLmuLjjgrTjgrfjg4Pjgq9cIiwgWXVHb3RoaWMsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvTlwiLCBNZWlyeW8sIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjMDAwO1xuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIGgyIHtcbiAgICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZvbnQtc2l6ZTogMi4yZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDAuNmVtIDA7XG4gICAgcGFkZGluZzogMC4zZW0gMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIGgzIHtcbiAgICBtYXJnaW46IDU2cHggMCAyMHB4IDA7XG4gICAgcGFkZGluZzogMTNweCAyOHB4IDEycHg7XG4gICAgZm9udC1zaXplOiAyMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0OC4zcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICBoNCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4ICNDQ0MgZG90dGVkO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWFyZ2luOiA1MHB4IDAgMTdweCAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIGg1IHtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgaDYge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMC4zZW0gMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIHUge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgcyB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gIH1cblxuICBlbSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG5cbiAgaHIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGNvbG9yOiAjZGRkO1xuICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiA1MHB4IGF1dG87XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgdWwge1xuICAgIG1hcmdpbjogMjBweCAwIDM2cHggMDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDVyZW07XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZzogMCAwIDAgMjVweDtcbiAgICAgIG1hcmdpbjogMC41ZW0gMCAwLjVlbSAwO1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cbiAgICAgIGEge1xuICAgICAgICB6b29tOiAxO1xuICAgICAgfVxuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDlweDtcbiAgICAgICAgbGVmdDogMXB4O1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgICBoZWlnaHQ6IDZweDtcbiAgICAgICAgYmFja2dyb3VuZDogIzE4MTgxODtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIG1hcmdpbjogMCAwIDAgMS44ZW07XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9sIHtcbiAgICBtYXJnaW46IDIwcHggMCAzNnB4IDEuOGVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNXJlbTtcblxuICAgIG9sIHtcbiAgICAgIG1hcmdpbjogMjBweDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWwtbGVhZGluZy16ZXJvO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZzogMCAwIDAgMDtcbiAgICAgIG1hcmdpbjogMC41ZW0gMCAwLjVlbSAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMi4zO1xuICB9XG5cbiAgdGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMWUxZTE7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UxZTFlMTtcbiAgICBtYXJnaW46IDIwcHggMCAyMHB4IDA7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgY2FwdGlvbiB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRib2R5LFxuICAgIHRmb290IHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRyIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTFlMWUxO1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKG9kZCkgdGQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgfVxuXG4gICAgICB0aCxcbiAgICAgIHRkIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZzogMjZweCAyNHB4O1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMWUxZTE7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbiAgICAgICAgYmFja2dyb3VuZDogI2YzZjNmMztcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgaW1nIHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG5cbiAgYWRkcmVzcywgYnV0dG9uLCBjYXB0aW9uLCBjaXRlLCBjb2RlLCBkZm4sIGVtLCBpbnB1dCwgb3B0Z3JvdXAsIG9wdGlvbiwgc2VsZWN0LCBzdHJvbmcsIHRleHRhcmVhLCB0aCwgdmFyIHtcbiAgICBmb250OiBpbmhlcml0O1xuICB9XG5cbiAgc21hbGwge1xuICAgIGNvbG9yOiAjNjY2O1xuICB9XG5cbiAgZGVsLCBpbnMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIGEge1xuICAgICY6bGluaywgJjp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjMmI3YmI5O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGNhcHRpb24sIHRoIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgcSB7XG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuICB9XG5cbiAgYWJiciwgYWNyb255bSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB9XG5cbiAgc3ViIHtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xuICB9XG5cbiAgc3VwIHtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG4gIH1cblxuICBsZWdlbmQge1xuICAgIGNvbG9yOiAjMDAwO1xuICB9XG5cbiAgcHJlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjNGM0YzO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0UyRTJFMjtcbiAgfVxuXG4gIGJsb2NrcXVvdGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIHBhZGRpbmc6IDFweCAyLjVlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjY2NjO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY29sb3I6ICM4ODg7XG4gICAgZm9udC1zaXplOiAwLjllbTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ+KAnCc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtZmFtaWx5OiBzZXJpZjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMC4zZW07XG4gICAgICBsZWZ0OiAwLjI1ZW07XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgY29sb3I6ICNjY2M7XG4gICAgICBmb250LXNpemU6IDNlbTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAn4oCdJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6IHNlcmlmO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMC4zZW07XG4gICAgICByaWdodDogMC4yNWVtO1xuICAgICAgei1pbmRleDogMDtcbiAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgZm9udC1zaXplOiAzZW07XG4gICAgfVxuICB9XG5cbn1cblxuLyogRm9ybSBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmJzLW1haW4tY29udGVudHMsXG4uYmdlLWNvbnRlbnRzLFxuLmNrZV9lZGl0YWJsZSxcbi5icy1zdWItY29udGVudHMge1xuICBmb3JtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cblxuICBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgb3B0aW9uIHtcbiAgICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbiAgfVxuXG4gIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuICBpbnB1dFt0eXBlPXRleHRdLFxuICBpbnB1dFt0eXBlPWVtYWlsXSxcbiAgaW5wdXRbdHlwZT10ZWxdLFxuICBpbnB1dFt0eXBlPW51bWJlcl0sXG4gIHRleHRhcmVhLFxuICBzZWxlY3Qge1xuICAgIG1hcmdpbjogM3B4IDJweDtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICAmW3R5cGU9Y2hlY2tib3hdIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgJlt0eXBlPXJhZGlvXSwgJlt0eXBlPWNoZWNrYm94XSB7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuXG4gICAgJlt0eXBlPXN1Ym1pdF0sICZbdHlwZT1yZXNldF0sICZbdHlwZT1idXR0b25dIHtcbiAgICAgIG1hcmdpbjogM3B4IDJweDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICAgIH1cblxuICAgICZbdHlwZT1wYXNzd29yZF0sXG4gICAgJlt0eXBlPXRleHRdLFxuICAgICZbdHlwZT1lbWFpbF0sXG4gICAgJlt0eXBlPXRlbF0sXG4gICAgJlt0eXBlPW51bWJlcl1cbiAgICB7XG4gICAgICBmb250LXNpemU6IDFlbTtcblxuICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRleHRhcmVhIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIHBhZGRpbmc6IDNweCAzcHg7XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0IHtcbiAgICAmW3R5cGU9cGFzc3dvcmRdLFxuICAgICZbdHlwZT10ZXh0XSxcbiAgICAmW3R5cGU9ZW1haWxdLFxuICAgICZbdHlwZT10ZWxdLFxuICAgICZbdHlwZT1udW1iZXJdXG4gICAge1xuICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGhlaWdodDogMi42ZW07XG4gICAgcGFkZGluZzogMTBweCA4cHg7XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIG9wdGdyb3VwIG9wdGlvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB9XG59XG4iLCIvKipcbiAqIOWkieaVsFxuICovXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbi8vIFJXROOBruODluODrOODvOOCr+ODneOCpOODs+ODiFxuJGJyZWFrUG9pbnQ6IDc2OHB4O1xuXG4vLyDjgqvjg6njg6DplpPjga7jg57jg7zjgrjjg7NcbiRtdWx0aUNvbHVtbkdyaWRNYXJnaW46IDIwcHg7XG5cbi8vIFJXROOBp+OCq+ODqeODoOOBjOiQveOBoeOBn+aZguOBruS4i+ODnuODvOOCuOODs1xuJG11bHRpQ29sdW1uR3JpZE1hcmdpbkJvdHRvbVdoZW5DbGVhcmVkRmxvYXQ6IDIwcHg7XG5cbi8vIOODnOOCv+ODs+OBruODleOCqeODvOOCq+OCueaZguOBruOCq+ODqeODvFxuJGJ0bkdsb3dDb2xvcjogIzA1NzBjNztcblxuLy8g44OI44Oq44Og55S75YOP44OW44Ot44OD44Kv44Gu57im5qiq5q+UXG4kdHJpbUltYWdlQXNwZWN0UmF0aW86IDE7IC8vIDQ6M+OBruWgtOWQiOOBrzMvNFxuXG4vKiogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKlxuICpcbiAqIOODleOCqeODs+ODiOOBruWumue+qVxuICogRm9udCBBd2Vzb21lIDQuNi4zIGJ5IEBkYXZlZ2FuZHkgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8gLSBAZm9udGF3ZXNvbWVcbiAqIExpY2Vuc2UgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8vbGljZW5zZSAoRm9udDogU0lMIE9GTCAxLjEsIENTUzogTUlUIExpY2Vuc2UpXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuICBzcmM6IHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/dj00LjYuMycpO1xuICBzcmM6IHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/I2llZml4JnY9NC42LjMnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmMj92PTQuNi4zJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJy4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQud29mZj92PTQuNi4zJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC50dGY/dj00LjYuMycpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnN2Zz92PTQuNi4zI2ZvbnRhd2Vzb21lcmVndWxhcicpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLy8gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gL1xuLy8g44Kw44Oq44OD44OJ44K344K544OG44OgXG4vL1xuLy8g57eo6ZuG6Z2e5o6o5aWoXG4vL1xuLy8gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gL1xuJHNwYW4xOiA4LjMzMzMlO1xuJHNwYW4yOiAxNi42NjY2JTtcbiRzcGFuMzogMjUlO1xuJHNwYW40OiAzMy4zMzMzJTtcbiRzcGFuNTogNDEuNjY2NiU7XG4kc3BhbjY6IDUwJTtcbiRzcGFuNzogNTguMzMzMyU7XG4kc3Bhbjg6IDY2LjY2NjYlO1xuJHNwYW45OiA3NSU7XG4kc3BhbjEwOiA4My4zMzMzJTtcbiRzcGFuMTE6IDkxLjY2NjYlO1xuJHNwYW4xMjogMTAwJTtcbiRkaXZpZGU1OiAyMCU7IC8vIDEy44Kw44Oq44OD44OJ44K344K544OG44Og44Gn44Gv5YaN54++44Gn44GN44Gq44GENeWIhuWJslxuXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG4vL1xuLy8g44Of44OD44Kv44K544Kk44OzXG4vL1xuLy8gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gL1xuQG1peGluIGJnZS1pY29uIHtcbiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lLCBzZXJpZjtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4vKiogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKlxuICpcbiAqIOODnuODq+ODgeOCq+ODqeODoOODluODreODg+OCr+OBruODrOOCpOOCouOCpuODiFxuICpcbiAqIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tICoqL1xuXG4lY29sdW1uMi1sYXlvdXQge1xuICAvKiAy5YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogMuWIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJHNwYW42O1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZmxvYXQ6IG5vbmU7XG5cbiAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIC8qIOS4i+ODnuODvOOCuOODs+OBr+ODluODreODg+OCr+WGheOBruOCv+OCpOODl+OBruimgee0oOOBq+WvvuOBl+OBpuaMh+WumuOBmeOCiyAo56m655S75YOP5a++562WKSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDtcblxuICAgICAgICAmW2RhdGEtYmdlLWVtcHR5PScxJ10ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJltjbGFzcyo9J2JndC1zcC1ncmlkJ10ge1xuICAgICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAvKiAy5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOacgOWIneOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiwgMik7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgLyogMuWIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjmnIDlvozjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiwgMik7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuJWNvbHVtbjMtbGF5b3V0IHtcbiAgLyogM+WIl+ODluODreODg+OCryAqL1xuICAuYmd0LWdyaWQge1xuICAgIC8qIDPliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So44Kz44Oz44OG44OKICovXG4gICAgd2lkdGg6ICRzcGFuNDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCAzKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMSwgMyk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIC8qIOS4i+ODnuODvOOCuOODs+OBr+ODluODreODg+OCr+WGheOBruOCv+OCpOODl+OBruimgee0oOOBq+WvvuOBl+OBpuaMh+WumuOBmeOCiyAo56m655S75YOP5a++562WKSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDtcblxuICAgICAgICAmW2RhdGEtYmdlLWVtcHR5PScxJ10ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJltjbGFzcyo9J2JndC1zcC1ncmlkJ10ge1xuICAgICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAvKiAz5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOacgOWIneOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDIsIDMpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgIC8qIDPliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So5pyA5Yid44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCAzKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuJWNvbHVtbjQtbGF5b3V0IHtcbiAgLyogNOWIl+ODluODreODg+OCryAqL1xuICAuYmd0LWdyaWQge1xuICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So44Kz44Oz44OG44OKICovXG4gICAgd2lkdGg6ICRzcGFuMztcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuXG4gICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAvKiDkuIvjg57jg7zjgrjjg7Pjga/jg5bjg63jg4Pjgq/lhoXjga7jgr/jgqTjg5fjga7opoHntKDjgavlr77jgZfjgabmjIflrprjgZnjgosgKOepuueUu+WDj+WvvuetlikgKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG11bHRpQ29sdW1uR3JpZE1hcmdpbkJvdHRvbVdoZW5DbGVhcmVkRmxvYXQ7XG5cbiAgICAgICAgJltkYXRhLWJnZS1lbXB0eT0nMSddIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICZbY2xhc3MqPSdiZ3Qtc3AtZ3JpZCddIHtcbiAgICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDMsIDQpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMSwgNCk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMiwgNCk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA0KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCA0KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDMsIDQpO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lY29sdW1uNS1sYXlvdXQge1xuICAvKiA15YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogNeWIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJGRpdmlkZTU7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgLyog5LiL44Oe44O844K444Oz44Gv44OW44Ot44OD44Kv5YaF44Gu44K/44Kk44OX44Gu6KaB57Sg44Gr5a++44GX44Gm5oyH5a6a44GZ44KLICjnqbrnlLvlg4/lr77nrZYpICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtdWx0aUNvbHVtbkdyaWRNYXJnaW5Cb3R0b21XaGVuQ2xlYXJlZEZsb2F0O1xuXG4gICAgICAgICZbZGF0YS1iZ2UtZW1wdHk9JzEnXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmW2NsYXNzKj0nYmd0LXNwLWdyaWQnXSB7XG4gICAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiA0LCA1KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDUpO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDMsIDUpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMiwgNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMiwgNSk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCg0KSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAzLCA1KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCA1KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDUpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDQsIDUpO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBCdXJnZXJFZGl0b3IgU3R5bGVTaGVldCBTdHlsZVxuICpcbiAqIGJjLWZyb250IOODhuODvOODnuWBtOOBp+OCs+ODs+ODkeOCpOODq+OBl+OBn+mam+OBr+OAgWJnZV9zdHlsZS5jc3Mg44KSXG4gKiBCY1RoZW1lU2FtcGxlIOODhuODvOODnuWBtOOBq+OCs+ODlOODvOOBmeOCi+W/heimgeOBjOOBguOCi1xuICovXG5cbi5iZ3QtYm94X19jYXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogM3B4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuXG4uYmd0LWJ0biB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZzogMTJweCAxMHB4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtaW4td2lkdGg6IDI4MHB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgJGJ0bkdsb3dDb2xvciwgMCAwIDEwcHggMCAjZmZmO1xuICB9XG59XG5cbi5iZ3QtYnRuLS1saW5rIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPSdsaW5rJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogIzMzMztcbiAgJGJDb2xvcjogI2NjYztcbiAgJGJnQ29sb3I6ICNmZmY7XG4gICRiZ0NvbG9ySG92ZXI6ICNlOWU5ZTk7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJGJDb2xvcjtcbiAgYmFja2dyb3VuZDogJGJnQ29sb3I7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRiZ0NvbG9ySG92ZXI7XG4gIH1cbn1cblxuLmJndC1idG4tLWVtIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPSdlbSddIC5iZ3QtYnRuIC8qIOaWsOOCu+ODrOOCr+OCvyAqL1xue1xuICAkY29sb3I6ICNmZmY7XG4gICRiQ29sb3I6ICMzMzM7XG4gICRiZ0NvbG9yOiAjMzMzO1xuICAkYmdDb2xvckhvdmVyOiAjNTU1O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkYkNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmdDb2xvcjtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGJnQ29sb3JIb3ZlcjtcbiAgfVxufVxuXG4uYmd0LWJ0bi0tZXh0ZXJuYWwgLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9J2V4dGVybmFsJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogIzMzMztcbiAgJGJDb2xvcjogI2NjYztcbiAgJGJnQ29sb3I6ICNmZmY7XG4gICRiZ0NvbG9ySG92ZXI6ICNlOWU5ZTk7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJGJDb2xvcjtcbiAgYmFja2dyb3VuZDogJGJnQ29sb3I7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRiZ0NvbG9ySG92ZXI7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgYmdlLWljb247XG4gICAgY29udGVudDogJ1xcZjA4ZSc7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4uYmd0LWJ0bi0tYmFjayAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1idXR0b24ta2luZD0nYmFjayddIC5iZ3QtYnRuIC8qIOaWsOOCu+ODrOOCr+OCvyAqL1xue1xuICAkY29sb3I6ICMzMzM7XG4gICRiQ29sb3I6ICNkZGQ7XG4gICRiZ0NvbG9yOiAjZGRkO1xuICAkYmdDb2xvckhvdmVyOiAjZTllOWU5O1xuICBjb2xvcjogJGNvbG9yO1xuICBib3JkZXItY29sb3I6ICRiQ29sb3I7XG4gIGJhY2tncm91bmQ6ICRiZ0NvbG9yO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmdDb2xvckhvdmVyO1xuICB9XG5cbiAgc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGJnZS1pY29uO1xuICAgIGNvbnRlbnQ6ICdcXGYwNTMnO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbn1cblxuLmJndC1ociB7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG5bZGF0YS1iZ3QtaHIta2luZD0nZGFzaGVkJ10gLmJndC1ociB7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcbn1cblxuLmJndC1oci0tYm9sZCAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1oci1raW5kPSdib2xkJ10gLmJndC1ociAvKiDmlrDjgrvjg6zjgq/jgr8gKi9cbntcbiAgaGVpZ2h0OiA1cHg7XG59XG5cbi5iZ3QtaHItLW5hcnJvdyAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1oci1raW5kPSduYXJyb3cnXSAuYmd0LWhyIC8qIOaWsOOCu+ODrOOCr+OCvyAqL1xue1xuICBoZWlnaHQ6IDFweDtcbn1cblxuLmJndC1oci0tc2hvcnQgLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtaHIta2luZD0nc2hvcnQnXSAuYmd0LWhyIC8qIOaWsOOCu+ODrOOCr+OCvyAqL1xue1xuICB3aWR0aDogNjAlO1xuICBoZWlnaHQ6IDFweDtcbn1cblxuLmJndC1kb3dubG9hZC1maWxlX19saW5rIHtcbiAgY29sb3I6ICMzMzM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMS4wOGVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjdlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICRidG5HbG93Q29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuXG4uYmd0LWxpbmtfX3NpemUge1xuICBjb2xvcjogIzgwODA4MDtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLmJndC1nb29nbGUtbWFwcy1saW5rIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggIzk5OTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGJnZS1pY29uO1xuICAgICAgY29udGVudDogJ1xcZjA4ZSc7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG59XG5cbltkYXRhLWJndD0nZ2FsbGVyeSddIHtcbiAgJHRodW1iLXNpemU6IDYwcHg7XG5cbiAgLmJndC1nYWxsZXJ5IHtcbiAgICBwYWRkaW5nLXRvcDogNTQlO1xuXG4gICAgJjpob3ZlciAmLWN0cmwge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmX19pbWcge1xuICAgICAgaW1nIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2FwdGlvbiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgIHBhZGRpbmc6IDAuN2VtIDFlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLWN0cmwge1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLWluO1xuXG4gICAgICAmX19wcmV2LFxuICAgICAgJl9fbmV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBtYXJnaW46IC0yMHB4IDAgMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAjZmZmO1xuICAgICAgICAgIGJvcmRlci13aWR0aDogNXB4IDVweCAwIDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJl9fcHJldiB7XG4gICAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICAgICAgfVxuXG4gICAgICAmX19uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBbZGF0YS1nYWxsZXJ5LW1hcmtlcj0ndGh1bWJzJ10ge1xuICAgICsgLmJndC1nYWxsZXJ5LW1hcmtlciB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICAgIHdpZHRoOiAkdGh1bWItc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkdGh1bWItc2l6ZTtcblx0XHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgW2RhdGEtZ2FsbGVyeS1tYXJrZXI9J2RvdCddIHtcbiAgICArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgbGkge1xuICAgICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuXG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIOODh+ODkOOCpOOCueS+neWtmOaxjueUqOOCr+ODqeOCuSAqL1xuLnBjLW9ubHkge1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNwLW9ubHkge1xuICBkaXNwbGF5OiBub25lO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuIl19 */ \ No newline at end of file From 0a6f7d6b68aa79d72f60aec8aabbfd30ee975591 Mon Sep 17 00:00:00 2001 From: ryuring Date: Fri, 30 Aug 2024 08:29:29 +0900 Subject: [PATCH 13/94] =?UTF-8?q?=E3=82=A4=E3=83=B3=E3=82=B9=E3=83=88?= =?UTF-8?q?=E3=83=BC=E3=83=A9=E3=83=BC=E3=81=8C=E5=A4=B1=E6=95=97=E3=81=99?= =?UTF-8?q?=E3=82=8B=E5=95=8F=E9=A1=8C=E3=82=92=E8=A7=A3=E6=B1=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Migration モジュールがアップデートした事よりエラーとなっていた --- plugins/baser-core/src/Database/Migration/BcMigration.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/baser-core/src/Database/Migration/BcMigration.php b/plugins/baser-core/src/Database/Migration/BcMigration.php index 8cb47da5e7..14a6a57d5e 100644 --- a/plugins/baser-core/src/Database/Migration/BcMigration.php +++ b/plugins/baser-core/src/Database/Migration/BcMigration.php @@ -37,7 +37,11 @@ class BcMigration extends AbstractMigration */ public function table(string $tableName, array $options = []): Table { - $connection = $this->input->getOption('connection')?? 'default'; + if($this->input->hasParameterOption('--connection')) { + $connection = $this->input->getParameterOption('--connection'); + } else { + $connection = 'default'; + } $prefix = ConnectionManager::get($connection)->config()['prefix']; return parent::table($prefix . $tableName); } From 084479f2d6ba12f04ba20f78e6cd814038307f2a Mon Sep 17 00:00:00 2001 From: ryuring Date: Fri, 30 Aug 2024 08:32:17 +0900 Subject: [PATCH 14/94] =?UTF-8?q?=E3=83=A9=E3=82=A4=E3=83=96=E3=83=A9?= =?UTF-8?q?=E3=83=AA=E3=81=AE=E3=82=A4=E3=83=B3=E3=82=B9=E3=83=88=E3=83=BC?= =?UTF-8?q?=E3=83=A9=E3=83=BC=E3=81=AEcomposer=E3=82=B3=E3=83=9E=E3=83=B3?= =?UTF-8?q?=E3=83=89=E3=82=92update=E3=81=8B=E3=82=89install=E3=81=AB?= =?UTF-8?q?=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ライブラリが最新化することにより問題が発生することがあるため --- composer_installer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer_installer.php b/composer_installer.php index 60a11b468d..af9cd02d35 100644 --- a/composer_installer.php +++ b/composer_installer.php @@ -81,7 +81,7 @@ function command($phpPath) exec($command, $out, $code); if ($code !== 0) throw new Exception('composer のアップデートに失敗しました。(' . $command . ')'); - $command = "cd " . ROOT_DIR . "; export HOME={$composerDir} ; yes | {$phpPath} {$composerDir}composer.phar update --ignore-platform-req=ext-xdebug"; + $command = "cd " . ROOT_DIR . "; export HOME={$composerDir} ; yes | {$phpPath} {$composerDir}composer.phar install --ignore-platform-req=ext-xdebug"; exec($command, $out, $code); if ($code !== 0) throw new Exception('ライブラリのインストールに失敗しました。
コマンド実行をお試しください
' . $command); From a346e8577b32dd990e376f63ee69d44a98cdab15 Mon Sep 17 00:00:00 2001 From: ryuring Date: Fri, 30 Aug 2024 09:01:04 +0900 Subject: [PATCH 15/94] =?UTF-8?q?=E3=83=A9=E3=82=A4=E3=83=96=E3=83=A9?= =?UTF-8?q?=E3=83=AA=E3=81=AE=E3=82=A4=E3=83=B3=E3=82=B9=E3=83=88=E3=83=BC?= =?UTF-8?q?=E3=83=A9=E3=83=BC=E3=81=AEcomposer=E3=82=B3=E3=83=9E=E3=83=B3?= =?UTF-8?q?=E3=83=89=E3=82=92=20insltall=20=E3=81=8B=E3=82=89=20update=20?= =?UTF-8?q?=E3=81=AB=E6=88=BB=E3=81=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lock ファイルが更新されていないので install に失敗することがわかったため --- composer_installer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer_installer.php b/composer_installer.php index af9cd02d35..60a11b468d 100644 --- a/composer_installer.php +++ b/composer_installer.php @@ -81,7 +81,7 @@ function command($phpPath) exec($command, $out, $code); if ($code !== 0) throw new Exception('composer のアップデートに失敗しました。(' . $command . ')'); - $command = "cd " . ROOT_DIR . "; export HOME={$composerDir} ; yes | {$phpPath} {$composerDir}composer.phar install --ignore-platform-req=ext-xdebug"; + $command = "cd " . ROOT_DIR . "; export HOME={$composerDir} ; yes | {$phpPath} {$composerDir}composer.phar update --ignore-platform-req=ext-xdebug"; exec($command, $out, $code); if ($code !== 0) throw new Exception('ライブラリのインストールに失敗しました。
コマンド実行をお試しください
' . $command); From c48cbdcf10fd99ab826fbfbcd0d413e5220389b0 Mon Sep 17 00:00:00 2001 From: ryuring Date: Sun, 1 Sep 2024 15:30:07 +0900 Subject: [PATCH 16/94] =?UTF-8?q?PHP=E3=81=AE=E5=BF=85=E8=A6=81=E3=83=90?= =?UTF-8?q?=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B3=E3=82=928.1=E3=81=AB?= =?UTF-8?q?=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/bc-installer/config/setting.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bc-installer/config/setting.php b/plugins/bc-installer/config/setting.php index e28e275927..12405d5902 100644 --- a/plugins/bc-installer/config/setting.php +++ b/plugins/bc-installer/config/setting.php @@ -4,7 +4,7 @@ * システム要件 */ 'BcRequire' => [ - 'phpVersion' => "8.0.0", + 'phpVersion' => "8.1.0", 'phpMemory' => "128", 'MySQLVersion' => "5.0.0", 'winSQLiteVersion' => "3.7.16", From f1869e408c0e66137b1c634cdf3cff389abb8cf5 Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Sun, 1 Sep 2024 13:31:38 +0700 Subject: [PATCH 17/94] InstallationsService_checkEnv (#3720) Co-authored-by: thangnn --- .../src/Service/InstallationsService.php | 1 + .../Service/InstallationsServiceTest.php | 43 +++++++++++++++++-- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/plugins/bc-installer/src/Service/InstallationsService.php b/plugins/bc-installer/src/Service/InstallationsService.php index 88c8dede53..31c191990c 100644 --- a/plugins/bc-installer/src/Service/InstallationsService.php +++ b/plugins/bc-installer/src/Service/InstallationsService.php @@ -81,6 +81,7 @@ public function __construct() * @return array * @checked * @noTodo + * @unitTest */ public function checkEnv(): array { diff --git a/plugins/bc-installer/tests/TestCase/Service/InstallationsServiceTest.php b/plugins/bc-installer/tests/TestCase/Service/InstallationsServiceTest.php index b91769cd16..40d368c533 100644 --- a/plugins/bc-installer/tests/TestCase/Service/InstallationsServiceTest.php +++ b/plugins/bc-installer/tests/TestCase/Service/InstallationsServiceTest.php @@ -59,14 +59,49 @@ public function test__construct() /** * 環境チェック + * test checkEnv * - * @return array */ public function testCheckEnv() { - $this->markTestIncomplete('このテストは未実装です。BcManagerComponentから移植中です。'); - $result = $this->BcManager->checkEnv(); - $this->assertNotEmpty($result, '環境情報を取得できません'); + Configure::write([ + 'BcRequire' => [ + 'phpVersion' => "8.0.0", + 'phpMemory' => "128", + ] + ] + ); + $result = $this->Installations->checkEnv(); + $this->assertEquals('/var/www/html/config',$result['configDir']); + $this->assertEquals('/var/www/html/webroot/files',$result['filesDir']); + $this->assertEquals('/var/www/html/plugins',$result['pluginDir']); + $this->assertEquals('/var/www/html/tmp/',$result['tmpDir']); + $this->assertEquals('/var/www/html/db',$result['dbDir']); + $this->assertEquals('8.0.0',$result['requirePhpVersion']); + $this->assertEquals('128',$result['requirePhpMemory']); + $this->assertEquals('UTF-8',$result['encoding']); + $this->assertEquals('8.1.5',$result['phpVersion']); + $this->assertEquals('-1',$result['phpMemory']); + $this->assertTrue($result['safeModeOff']); + $this->assertTrue($result['configDirWritable']); + $this->assertTrue($result['pluginDirWritable']); + $this->assertTrue($result['filesDirWritable']); + $this->assertTrue($result['tmpDirWritable']); + $this->assertTrue($result['dbDirWritable']); + $this->assertEquals('8.1.5',$result['phpActualVersion']); + $this->assertTrue($result['phpGd']); + $this->assertTrue($result['phpPdo']); + $this->assertTrue($result['phpXml']); + $this->assertTrue($result['phpZip']); + $this->assertEquals('-1',$result['apacheRewrite']); + $this->assertTrue($result['encodingOk']); + $this->assertTrue($result['gdOk']); + $this->assertTrue($result['pdoOk']); + $this->assertTrue($result['xmlOk']); + $this->assertTrue($result['zipOk']); + $this->assertTrue($result['phpVersionOk']); + $this->assertTrue($result['phpMemoryOk']); + $this->assertTrue($result['blRequirementsMet']); } /** From ae64adf86f77dbb55a1d4b830406c06141d09758 Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Sun, 1 Sep 2024 15:33:47 +0900 Subject: [PATCH 18/94] =?UTF-8?q?BcUploaderViewEventListener::afterLayout(?= =?UTF-8?q?)=20=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88=E3=83=86=E3=82=B9?= =?UTF-8?q?=E3=83=88=20(#3724)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng --- .../src/Event/BcUploaderViewEventListener.php | 1 + .../Event/UploaderViewEventListenerTest.php | 33 ++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/plugins/bc-uploader/src/Event/BcUploaderViewEventListener.php b/plugins/bc-uploader/src/Event/BcUploaderViewEventListener.php index 970ad85ee0..aaa57a4af3 100644 --- a/plugins/bc-uploader/src/Event/BcUploaderViewEventListener.php +++ b/plugins/bc-uploader/src/Event/BcUploaderViewEventListener.php @@ -43,6 +43,7 @@ class BcUploaderViewEventListener extends BcViewEventListener * @param Event $event * @checked * @noTodo + * @unitTest */ public function afterLayout(Event $event) { diff --git a/plugins/bc-uploader/tests/TestCase/Event/UploaderViewEventListenerTest.php b/plugins/bc-uploader/tests/TestCase/Event/UploaderViewEventListenerTest.php index 2f0565d73e..3bd0e9f52e 100644 --- a/plugins/bc-uploader/tests/TestCase/Event/UploaderViewEventListenerTest.php +++ b/plugins/bc-uploader/tests/TestCase/Event/UploaderViewEventListenerTest.php @@ -10,8 +10,12 @@ */ namespace BcUploader\Test\TestCase\Event; +use BaserCore\Test\Scenario\InitAppScenario; use BaserCore\TestSuite\BcTestCase; +use BcBlog\View\BlogAdminAppView; use BcUploader\Event\BcUploaderViewEventListener; +use Cake\Event\Event; +use CakephpFixtureFactories\Scenario\ScenarioAwareTrait; /** * Class UploaderViewEventListenerTest @@ -21,12 +25,15 @@ class UploaderViewEventListenerTest extends BcTestCase { + use ScenarioAwareTrait; + /** * set up */ public function setUp(): void { parent::setUp(); + $this->UploaderViewEventListener = new BcUploaderViewEventListener(); } /** @@ -47,7 +54,31 @@ public function testPagesBeforeRender() */ public function testAfterLayout() { - $this->markTestIncomplete('このテストは、まだ実装されていません。'); + $this->loadFixtureScenario(InitAppScenario::class); + + //BcUploaderViewがある場合、 + $request = $this->loginAdmin($this->getRequest("/baser/admin/bc-blog/blog_posts/add/1")); + $BcAdminAppView = new BlogAdminAppView($request); + $BcAdminAppView->loadHelper('BaserCore.BcCkeditor'); + $BcAdminAppView->assign('content', '{"ckeditorField":"editor_content"'); + $event = new Event('View.afterLayout', $BcAdminAppView); + + $this->UploaderViewEventListener->afterLayout($event); + + $content = $BcAdminAppView->fetch('content'); + //JSを読み込むできるか確認すること + $this->assertTextContains('画像を選択するか、URLを直接入力して下さい。', $content); + + //BcUploaderViewがない場合、 + $BcAdminAppView = new BlogAdminAppView($this->getRequest("/")); + $BcAdminAppView->assign('content', '{"ckeditorField":"editor_content"'); + $event = new Event('View.afterLayout', $BcAdminAppView); + + $this->UploaderViewEventListener->afterLayout($event); + + $content = $BcAdminAppView->fetch('content'); + //JSを読み込むできないか確認すること + $this->assertEquals('{"ckeditorField":"editor_content"', $content); } /** From 80752460baf5afd360bcbdc2225ef0270473be05 Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Sun, 1 Sep 2024 13:34:16 +0700 Subject: [PATCH 19/94] Add unitTest_MailMessagesController_initialize (#3725) Co-authored-by: thangnn --- .../src/Controller/Admin/MailMessagesController.php | 1 + .../Controller/Admin/MailMessagesControllerTest.php | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/plugins/bc-mail/src/Controller/Admin/MailMessagesController.php b/plugins/bc-mail/src/Controller/Admin/MailMessagesController.php index 9cee3a2b31..3f0abc12b8 100644 --- a/plugins/bc-mail/src/Controller/Admin/MailMessagesController.php +++ b/plugins/bc-mail/src/Controller/Admin/MailMessagesController.php @@ -38,6 +38,7 @@ class MailMessagesController extends MailAdminAppController * @return void * @checked * @noTodo + * @unitTest */ public function initialize(): void { diff --git a/plugins/bc-mail/tests/TestCase/Controller/Admin/MailMessagesControllerTest.php b/plugins/bc-mail/tests/TestCase/Controller/Admin/MailMessagesControllerTest.php index 43acff169b..54f996b53f 100644 --- a/plugins/bc-mail/tests/TestCase/Controller/Admin/MailMessagesControllerTest.php +++ b/plugins/bc-mail/tests/TestCase/Controller/Admin/MailMessagesControllerTest.php @@ -12,6 +12,7 @@ namespace BcMail\Test\TestCase\Controller\Admin; use BaserCore\TestSuite\BcTestCase; +use BcMail\Controller\Admin\MailMessagesController; class MailMessagesControllerTest extends BcTestCase { @@ -24,6 +25,7 @@ class MailMessagesControllerTest extends BcTestCase public function setUp(): void { parent::setUp(); + $this->MailMessagesController = new MailMessagesController($this->getRequest()); } /** @@ -36,6 +38,16 @@ public function tearDown(): void parent::tearDown(); } + /** + * initialize + */ + + public function testInitialize() + { + $this->assertNotEmpty($this->MailMessagesController->BcAdminContents); + + } + /** * beforeFilter */ From 6cde256be1bd3d102e188b8c937fb3cdead9b144 Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Sun, 1 Sep 2024 15:36:07 +0900 Subject: [PATCH 20/94] =?UTF-8?q?UploaderFilesController::view=5Flimited?= =?UTF-8?q?=5Ffile()=20=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88=E3=83=86?= =?UTF-8?q?=E3=82=B9=E3=83=88=20(#3728)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * UploaderFilesController::view_limited_file() ユニットテスト * コメントを修正 --------- Co-authored-by: Đỗ Văn Hùng --- .../Controller/UploaderFilesControllerTest.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/plugins/bc-uploader/tests/TestCase/Controller/UploaderFilesControllerTest.php b/plugins/bc-uploader/tests/TestCase/Controller/UploaderFilesControllerTest.php index 035a9405ba..c1714d1d4d 100644 --- a/plugins/bc-uploader/tests/TestCase/Controller/UploaderFilesControllerTest.php +++ b/plugins/bc-uploader/tests/TestCase/Controller/UploaderFilesControllerTest.php @@ -13,6 +13,7 @@ use BaserCore\Test\Factory\SiteFactory; use BaserCore\TestSuite\BcTestCase; +use BaserCore\Utility\BcFile; use BcUploader\Test\Factory\UploaderFileFactory; use CakephpFixtureFactories\Scenario\ScenarioAwareTrait; use Cake\TestSuite\IntegrationTestTrait; @@ -56,9 +57,21 @@ public function test_view_limited_file() { SiteFactory::make()->main()->persist(); UploaderFileFactory::make(['name' => '2_2_test.jpg', 'publish_end' => '2000-01-27 12:00:00'])->persist(); + UploaderFileFactory::make(['name' => '2_3_test.jpg', 'publish_begin' => '2000-01-27 12:00:00'])->persist(); + $file = new BcFile(WWW_ROOT . 'files' . DS . 'uploads' . DS . 'limited' . DS . '2_3_test.jpg'); + $file->create(); - //ログインしていない、かつ 未開日状態 場合:404を返す + //ログインしていない、かつ 未公開状態 場合:404を返す $this->get("/files/uploads/2_2_test.jpg"); $this->assertResponseCode(404); + + //ログインしていない、かつ 公開状態 場合: + $this->get("/files/uploads/2_3_test.jpg"); + $this->assertResponseCode(200); + $this->assertEquals(["image/jpeg"], $this->_response->getHeader("Content-type")); + $this->assertNotEmpty($this->_response->getBody()); + + //不要ファイルを削除 + $file->delete(); } } From 321e92b794ef206ca292829c88a6730b09a2a6b3 Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Sun, 1 Sep 2024 15:37:57 +0900 Subject: [PATCH 21/94] =?UTF-8?q?BcUploaderViewEventListener::=5F=5FgetCke?= =?UTF-8?q?ditorUploaderScript()=E3=80=80=E3=81=AE=E3=83=A6=E3=83=8B?= =?UTF-8?q?=E3=83=83=E3=83=88=E3=83=86=E3=82=B9=E3=83=88=20(#3729)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng Co-authored-by: ryuring --- .../src/Event/BcUploaderViewEventListener.php | 1 + .../TestCase/Event/UploaderViewEventListenerTest.php | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins/bc-uploader/src/Event/BcUploaderViewEventListener.php b/plugins/bc-uploader/src/Event/BcUploaderViewEventListener.php index aaa57a4af3..91172031cf 100644 --- a/plugins/bc-uploader/src/Event/BcUploaderViewEventListener.php +++ b/plugins/bc-uploader/src/Event/BcUploaderViewEventListener.php @@ -137,6 +137,7 @@ private function setUploader(BcHtmlHelper $bcHtmlHelper, string $content, string * @return string * @checked * @noTodo + * @unitTest */ private function __getCkeditorUploaderScript(BcHtmlHelper $bcHtmlHelper, string $id) { diff --git a/plugins/bc-uploader/tests/TestCase/Event/UploaderViewEventListenerTest.php b/plugins/bc-uploader/tests/TestCase/Event/UploaderViewEventListenerTest.php index 3bd0e9f52e..5399a0dca2 100644 --- a/plugins/bc-uploader/tests/TestCase/Event/UploaderViewEventListenerTest.php +++ b/plugins/bc-uploader/tests/TestCase/Event/UploaderViewEventListenerTest.php @@ -24,6 +24,7 @@ */ class UploaderViewEventListenerTest extends BcTestCase { + use ScenarioAwareTrait; use ScenarioAwareTrait; @@ -86,7 +87,14 @@ public function testAfterLayout() */ public function test__getCkeditorUploaderScript() { - $this->markTestIncomplete('このテストは、まだ実装されていません。'); + //準備 + $this->loadFixtureScenario(InitAppScenario::class); + $request = $this->loginAdmin($this->getRequest("/baser/admin/bc-blog/blog_posts/add/1")); + $BcAdminAppView = new BlogAdminAppView($request); + //対象メソッドをコール + $rs = $this->execPrivateMethod($this->UploaderViewEventListener, '__getCkeditorUploaderScript', [$BcAdminAppView->helpers()->get('BcHtml'), 1]); + //戻り値を確認 + $this->assertMatchesRegularExpression('/.*CKEDITOR.config.contentsCss instanceof Array.*editor_1.+?/s', $rs); } /** From 579b6ce0a25636acdaab13aeed1ed6fd3ea7467d Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Sun, 1 Sep 2024 13:38:40 +0700 Subject: [PATCH 22/94] Add unitTest_MailMessageTable_createFullTableName (#3731) Co-authored-by: thangnn --- .../bc-mail/src/Model/Table/MailMessagesTable.php | 3 +++ .../TestCase/Model/Table/MailMessagesTableTest.php | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/plugins/bc-mail/src/Model/Table/MailMessagesTable.php b/plugins/bc-mail/src/Model/Table/MailMessagesTable.php index cb6e3f212e..219dd6aaa7 100755 --- a/plugins/bc-mail/src/Model/Table/MailMessagesTable.php +++ b/plugins/bc-mail/src/Model/Table/MailMessagesTable.php @@ -551,6 +551,9 @@ public function convertDatasToMail($data, $options) * * @param $mailContentId * @return string + * @checked + * @noTodo + * @unitTest */ public function createFullTableName($mailContentId) { diff --git a/plugins/bc-mail/tests/TestCase/Model/Table/MailMessagesTableTest.php b/plugins/bc-mail/tests/TestCase/Model/Table/MailMessagesTableTest.php index 50f57fd215..be4399d592 100644 --- a/plugins/bc-mail/tests/TestCase/Model/Table/MailMessagesTableTest.php +++ b/plugins/bc-mail/tests/TestCase/Model/Table/MailMessagesTableTest.php @@ -495,4 +495,18 @@ public function testValidGroupComplete() $this->execPrivateMethod($this->MailMessage, '_validGroupComplete', [$mailMessage]); $this->assertCount(1, $mailMessage->getErrors()['_not_complate']); } + + + /** + * test createFullTableName + */ + public function test_createFullTableName() + { + $this->MailMessage->tablePrefix = 'prefix_'; + $mailContentId = 5; + + $result = $this->MailMessage->createFullTableName($mailContentId); + $expected = 'prefix_mail_message_5'; + $this->assertEquals($expected, $result); + } } From 19334ae0de4c539b8122497499cf685c04d2213a Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Sun, 1 Sep 2024 15:40:47 +0900 Subject: [PATCH 23/94] =?UTF-8?q?PluginsService::isAvailableCoreUpdates?= =?UTF-8?q?=E3=80=80=E3=81=AE=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88=E3=83=86?= =?UTF-8?q?=E3=82=B9=E3=83=88=20(#3736)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng --- .../baser-core/src/Service/PluginsService.php | 1 + .../TestCase/Service/PluginsServiceTest.php | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/plugins/baser-core/src/Service/PluginsService.php b/plugins/baser-core/src/Service/PluginsService.php index 0705d2c4d1..3bfba79c7e 100644 --- a/plugins/baser-core/src/Service/PluginsService.php +++ b/plugins/baser-core/src/Service/PluginsService.php @@ -865,6 +865,7 @@ public function getAvailableCoreVersion() * @return array|mixed * @checked * @noTodo + * @unitTest */ public function isAvailableCoreUpdates() { diff --git a/plugins/baser-core/tests/TestCase/Service/PluginsServiceTest.php b/plugins/baser-core/tests/TestCase/Service/PluginsServiceTest.php index c37886c7ed..c9fd67a7d6 100644 --- a/plugins/baser-core/tests/TestCase/Service/PluginsServiceTest.php +++ b/plugins/baser-core/tests/TestCase/Service/PluginsServiceTest.php @@ -632,4 +632,35 @@ public function testRollbackCore() (new BcFolder(ROOT . DS . 'vendor' . DS . 'baserproject'))->delete(); } + /** + * test isAvailableCoreUpdates + */ + public function testIsAvailableCoreUpdates() + { + $versionPath = Plugin::path('BaserCore') . 'VERSION.txt'; + $versionBakPath = Plugin::path('BaserCore') . 'VERSION.bak.txt'; + $rssPath = WWW_ROOT . 'baser-core.rss'; + + // バックアップを取得する + copy($versionPath, $versionBakPath); + // オートアップデートを有効化 + SiteConfigFactory::make(['name' => 'use_update_notice', 'value' => true])->persist(); + // BcApp.coreReleaseUrl を書き換える + Configure::write('BcApp.coreReleaseUrl', $rssPath); + // バージョンを書き換える + $file = new BcFile($versionPath); + $file->write('5.0.0'); + // RSSを生成 + $this->createReleaseRss(['5.0.2', '5.0.1', '5.0.0']); + // キャッシュを削除 + Cache::delete('coreReleaseInfo', '_bc_update_'); + + // 実行 + $rs = $this->Plugins->isAvailableCoreUpdates(); + $this->assertEquals(['5.0.2', '5.0.1'], $rs); + + // 初期化 + rename($versionBakPath, $versionPath); + unlink($rssPath); + } } From 641f1970f9d27b2b84717374fab28032e35a47ee Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Sun, 1 Sep 2024 15:44:21 +0900 Subject: [PATCH 24/94] =?UTF-8?q?BcComposer::checkComposer=E3=80=80?= =?UTF-8?q?=E3=81=AE=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88=E3=83=86=E3=82=B9?= =?UTF-8?q?=E3=83=88=20(#3737)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng --- plugins/baser-core/src/Utility/BcComposer.php | 1 + .../tests/TestCase/Utility/BcComposerTest.php | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/plugins/baser-core/src/Utility/BcComposer.php b/plugins/baser-core/src/Utility/BcComposer.php index 80b4166101..6ea969a6e0 100644 --- a/plugins/baser-core/src/Utility/BcComposer.php +++ b/plugins/baser-core/src/Utility/BcComposer.php @@ -79,6 +79,7 @@ public static function setup(string $php = '', $dir = '') * @throws Exception * @checked * @noTodo + * @unitTest */ public static function checkComposer() { diff --git a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php index 793d0e8c93..94ddc79d10 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php @@ -75,6 +75,31 @@ public function test_installComposer() $this->assertFileExists(BcComposer::$composerDir . 'composer.phar'); } + /** + * test checkComposer + */ + public function testCheckComposer() + { + BcComposer::$composerDir = ''; + + BcComposer::setup(); + BcComposer::checkComposer(); + //実行問題なし場合、composer.pharが生成された + $this->assertFileExists(BcComposer::$composerDir . 'composer.phar'); + } + + /** + * test checkComposer エラーを発生した場合 + */ + public function testCheckComposerError() + { + BcComposer::$composerDir = ''; + + $this->expectException(\Exception::class); + $this->expectExceptionMessage('composer がインストールできません。All settings correct for using Composer'); + BcComposer::checkComposer(); + } + /** * test setVersion */ From 4966aa93d5e38292513cdebc0758084af8e86f1e Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Sun, 1 Sep 2024 13:46:39 +0700 Subject: [PATCH 25/94] Add unitTest_PluginsAdminService_isRequireUpdate (#3741) Co-authored-by: thangnn --- .../src/Service/Admin/PluginsAdminService.php | 1 + .../Service/Admin/PluginsAdminServiceTest.php | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/plugins/baser-core/src/Service/Admin/PluginsAdminService.php b/plugins/baser-core/src/Service/Admin/PluginsAdminService.php index 67361c5c3f..044abf6491 100644 --- a/plugins/baser-core/src/Service/Admin/PluginsAdminService.php +++ b/plugins/baser-core/src/Service/Admin/PluginsAdminService.php @@ -144,6 +144,7 @@ public function whichPhp() * @return bool * @checked * @noTodo + * @unitTest */ public function isRequireUpdate(string $programVersion, ?string $dbVersion, ?string $availableVersion) { diff --git a/plugins/baser-core/tests/TestCase/Service/Admin/PluginsAdminServiceTest.php b/plugins/baser-core/tests/TestCase/Service/Admin/PluginsAdminServiceTest.php index a480ce581c..b791e625f4 100644 --- a/plugins/baser-core/tests/TestCase/Service/Admin/PluginsAdminServiceTest.php +++ b/plugins/baser-core/tests/TestCase/Service/Admin/PluginsAdminServiceTest.php @@ -112,4 +112,32 @@ public function test_getUpdateLog() } } + /** + * test isRequireUpdate + * @param string $programVersion + * @param string|null $dbVersion + * @param string|null $availableVersion + * @param bool $expected + * @dataProvider isRequireUpdateDataProvider + */ + public function test_isRequireUpdate(string $programVersion, ?string $dbVersion, ?string $availableVersion, bool $expected) + { + $result = $this->PluginsAdmin->isRequireUpdate($programVersion, $dbVersion, $availableVersion); + $this->assertEquals($expected, $result); + } + + public static function isRequireUpdateDataProvider() + { + return [ + ['1.0.0', '1.0.0', '1.1.0', true], + ['1.0.0', '1.0.0', '0.9.0', false], + ['1.0.0', '1.0.0', '1.0.0', false], + ['1.1.0', '1.0.0', '1.1.0', false], + ['1.0.0', '1.0.0', null, false], + ['invalid_version', '1.0.0', '1.1.0', false], + ['1.0.0', 'invalid_version', '1.1.0', false], + ['1.0.0', '1.0.0', 'invalid_version', false], + ]; + } + } From 2489cee42db71f3ba14a65877789c74a9d50e09a Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Sun, 1 Sep 2024 13:47:09 +0700 Subject: [PATCH 26/94] Add unitTest_BcInstallerPlugin_services (#3742) Co-authored-by: thangnn --- plugins/bc-installer/src/BcInstallerPlugin.php | 1 + .../bc-installer/tests/TestCase/BcInstallerPluginTest.php | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/bc-installer/src/BcInstallerPlugin.php b/plugins/bc-installer/src/BcInstallerPlugin.php index 354897dbca..0e6d1f8cb4 100644 --- a/plugins/bc-installer/src/BcInstallerPlugin.php +++ b/plugins/bc-installer/src/BcInstallerPlugin.php @@ -34,6 +34,7 @@ class BcInstallerPlugin extends BcPlugin * @param ContainerInterface $container * @noTodo * @checked + * @unitTest */ public function services(ContainerInterface $container): void { diff --git a/plugins/bc-installer/tests/TestCase/BcInstallerPluginTest.php b/plugins/bc-installer/tests/TestCase/BcInstallerPluginTest.php index 670c5b654c..50714a0455 100644 --- a/plugins/bc-installer/tests/TestCase/BcInstallerPluginTest.php +++ b/plugins/bc-installer/tests/TestCase/BcInstallerPluginTest.php @@ -6,7 +6,10 @@ use BcInstaller\BcInstallerPlugin; use BcInstaller\Command\InstallCheckCommand; use BcInstaller\Command\InstallCommand; +use BcInstaller\Service\Admin\InstallationsAdminServiceInterface; +use BcInstaller\Service\InstallationsServiceInterface; use Cake\Console\CommandCollection; +use Cake\Core\Container; class BcInstallerPluginTest extends BcTestCase { @@ -26,7 +29,10 @@ public function tearDown(): void */ public function test_services() { - $this->markTestIncomplete('Not implemented yet.'); + $container = new Container(); + $this->BcInstallerPlugin->services($container); + $this->assertTrue($container->has(InstallationsServiceInterface::class)); + $this->assertTrue($container->has(InstallationsAdminServiceInterface::class)); } /** From 7244ef9b8db4276b1cc0c4ada6639be376c565b8 Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Sun, 1 Sep 2024 15:47:37 +0900 Subject: [PATCH 27/94] =?UTF-8?q?BcComposer::checkEnv=E3=80=80=E3=81=AE?= =?UTF-8?q?=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=20(#3744)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng --- plugins/baser-core/src/Utility/BcComposer.php | 1 + .../baser-core/tests/TestCase/Utility/BcComposerTest.php | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/plugins/baser-core/src/Utility/BcComposer.php b/plugins/baser-core/src/Utility/BcComposer.php index 6ea969a6e0..47a48962f3 100644 --- a/plugins/baser-core/src/Utility/BcComposer.php +++ b/plugins/baser-core/src/Utility/BcComposer.php @@ -98,6 +98,7 @@ public static function checkComposer() * @throws Exception * @checked * @noTodo + * @unitTest */ public static function checkEnv() { diff --git a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php index 94ddc79d10..7152ebfbe6 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php @@ -55,6 +55,14 @@ public function testSetup() $this->assertEquals('/usr/local/bin/php', BcComposer::$php); } + /** + * test checkEnv + */ + public function testCheckEnv() + { + $this->assertNull(BcComposer::checkEnv()); + } + /** * installComposer */ From c6fb25358de44e64b9654016cfa02c4221bf8ddf Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Sun, 1 Sep 2024 15:52:35 +0900 Subject: [PATCH 28/94] =?UTF-8?q?BcComposer::update=E3=80=80=E3=81=AE?= =?UTF-8?q?=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=20(#3746)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng --- plugins/baser-core/src/Utility/BcComposer.php | 1 + .../tests/TestCase/Utility/BcComposerTest.php | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/plugins/baser-core/src/Utility/BcComposer.php b/plugins/baser-core/src/Utility/BcComposer.php index 47a48962f3..d4f347821c 100644 --- a/plugins/baser-core/src/Utility/BcComposer.php +++ b/plugins/baser-core/src/Utility/BcComposer.php @@ -163,6 +163,7 @@ public static function require(string $package, string $version) * @return array * @checked * @noTodo + * @unitTest */ public static function update() { diff --git a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php index 7152ebfbe6..ab9b141ab6 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php @@ -170,6 +170,43 @@ public function test_require() BcComposer::update(); } + /** + * test update + */ + public function testUpdate() + { + $orgPath = ROOT . DS . 'composer.json'; + $backupPath = ROOT . DS . 'composer.json.bak'; + $orgLockPath = ROOT . DS . 'composer.lock'; + $backupLockPath = ROOT . DS . 'composer.lock.bak'; + + // バックアップ作成 + copy($orgPath, $backupPath); + copy($orgLockPath, $backupLockPath); + + // replace を削除 + // baserCMS5.0.0が、CakePHP5.0.10 に依存するため、一旦、CakePHP5.0.10 に戻す + $file = new BcFile($orgPath); + $data = $file->read(); + $regex = '/("replace": {.+?},)/s'; + $data = str_replace('"cakephp/cakephp": "5.0.*"', '"cakephp/cakephp": "5.0.10"', $data); + $data = preg_replace($regex, '', $data); + $file->write($data); + BcComposer::setup('php'); + + $rs = BcComposer::update(); + //戻り値を確認 + $this->assertEquals(0, $rs['code']); + $this->assertEquals('A script named install would override a Composer command and has been skipped', $rs['out'][0]); + + // バックアップ復元 + rename($backupPath, $orgPath); + rename($backupLockPath, $orgLockPath); + $folder = new BcFolder(ROOT . DS . 'vendor' . DS . 'baserproject'); + $folder->delete(); + BcComposer::update(); + } + /** * test clearCache */ From 809e2af51d8016ed3161444786785cdb18bbad6d Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Sun, 1 Sep 2024 13:53:27 +0700 Subject: [PATCH 29/94] Add unitTest_BcComposer_createCommand (#3747) Co-authored-by: thangnn --- plugins/baser-core/src/Utility/BcComposer.php | 1 + .../tests/TestCase/Utility/BcComposerTest.php | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/plugins/baser-core/src/Utility/BcComposer.php b/plugins/baser-core/src/Utility/BcComposer.php index d4f347821c..f1d934f9d8 100644 --- a/plugins/baser-core/src/Utility/BcComposer.php +++ b/plugins/baser-core/src/Utility/BcComposer.php @@ -228,6 +228,7 @@ public static function execCommand(string $command) * @return string * @checked * @noTodo + * @unitTest */ public static function createCommand(string $command) { diff --git a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php index ab9b141ab6..c45f3ab791 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php @@ -240,4 +240,39 @@ public function testSetupComposerForDistribution() rename(ROOT . DS . 'composer.json.bak', ROOT . DS . 'composer.json'); } + /** + * test createCommand + * @param $inputCommand + * @param $expectedCommand + * @dataProvider createCommandDataProvider + */ + public function testCreateCommand($inputCommand, $expectedCommand) + { + BcComposer::$cd = 'cd /var/www/html/;'; + BcComposer::$export = 'export HOME=/var/www/html/composer/;'; + BcComposer::$php = 'php'; + BcComposer::$composerDir = '/var/www/html/composer/'; + + $result = BcComposer::createCommand($inputCommand); + $this->assertEquals($expectedCommand, $result); + } + + public static function createCommandDataProvider() + { + return [ + [ + 'self-update', + "cd /var/www/html/; export HOME=/var/www/html/composer/; echo y | php /var/www/html/composer/composer.phar self-update 2>&1" + ], + [ + 'install', + "cd /var/www/html/; export HOME=/var/www/html/composer/; echo y | php /var/www/html/composer/composer.phar install 2>&1" + ], + [ + 'require vendor/package', + "cd /var/www/html/; export HOME=/var/www/html/composer/; echo y | php /var/www/html/composer/composer.phar require vendor/package 2>&1" + ], + ]; + } + } From 60d5d2a9a131b8c7005d5dab2872190e52010d98 Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Sun, 1 Sep 2024 13:55:34 +0700 Subject: [PATCH 30/94] Add unitTest_CreateReleaseCommand_createZip (#3748) Co-authored-by: thangnn --- .../src/Command/CreateReleaseCommand.php | 1 + .../Command/CreateReleaseCommandTest.php | 45 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 plugins/baser-core/tests/TestCase/Command/CreateReleaseCommandTest.php diff --git a/plugins/baser-core/src/Command/CreateReleaseCommand.php b/plugins/baser-core/src/Command/CreateReleaseCommand.php index 3b6e8804f9..1e15705cfe 100644 --- a/plugins/baser-core/src/Command/CreateReleaseCommand.php +++ b/plugins/baser-core/src/Command/CreateReleaseCommand.php @@ -128,6 +128,7 @@ public function deletePlugins(string $packagePath) * @param string $packagePath * @checked * @noTodo + * @unitTest */ public function createZip(string $packagePath) { diff --git a/plugins/baser-core/tests/TestCase/Command/CreateReleaseCommandTest.php b/plugins/baser-core/tests/TestCase/Command/CreateReleaseCommandTest.php new file mode 100644 index 0000000000..9032701614 --- /dev/null +++ b/plugins/baser-core/tests/TestCase/Command/CreateReleaseCommandTest.php @@ -0,0 +1,45 @@ +CreateReleaseCommand = new CreateReleaseCommand(); + } + + public function tearDown(): void + { + parent::tearDown(); + } + + /** + * Test createZip + * + */ + public function test_createZip() + { + $this->packagePath = '/var/www/html/plugins/bc-widget-area/'; + $this->zipFile = TMP . 'basercms.zip'; + + //create TMP folder if not exist + if (!is_dir(TMP)) { + mkdir(TMP, 0777, true); + } + $this->CreateReleaseCommand->createZip($this->packagePath); + + $this->assertFileExists($this->zipFile); + + //delete the zip file + if (file_exists($this->zipFile)) { + unlink($this->zipFile); + } + } +} From 231746cdad4008b36e9d4732ed7811c816ede15c Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Sun, 1 Sep 2024 15:58:37 +0900 Subject: [PATCH 31/94] =?UTF-8?q?BcComposer::install=E3=80=80=E3=81=AE?= =?UTF-8?q?=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=20(#3749)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng --- plugins/baser-core/src/Utility/BcComposer.php | 3 ++- .../tests/TestCase/Utility/BcComposerTest.php | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/baser-core/src/Utility/BcComposer.php b/plugins/baser-core/src/Utility/BcComposer.php index f1d934f9d8..7a48c3d7fc 100644 --- a/plugins/baser-core/src/Utility/BcComposer.php +++ b/plugins/baser-core/src/Utility/BcComposer.php @@ -176,10 +176,11 @@ public static function update() * @return array * @checked * @noTodo + * @unitTest */ public static function install() { - return self::execCommand('install --with-all-dependencies --ignore-platform-req=ext-xdebug'); + return self::execCommand('install --ignore-platform-req=ext-xdebug'); } /** diff --git a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php index c45f3ab791..e3b5d6ce61 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php @@ -220,6 +220,19 @@ public function testClearCache() $this->assertFileDoesNotExist(ROOT . DS . 'composer' . DS . '.composer' . DS . 'cache' . DS . '.htaccess'); } + /** + * test install + */ + public function testInstall() + { + BcComposer::setup('php'); + + $rs = BcComposer::install(); + //戻り値を確認 + $this->assertEquals(0, $rs['code']); + $this->assertEquals('A script named install would override a Composer command and has been skipped', $rs['out'][0]); + } + /** * test setupComposerForDistribution */ From 49b55bb6ce09a86cc35f8e0ba01714892f461d20 Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Sun, 1 Sep 2024 16:11:57 +0900 Subject: [PATCH 32/94] =?UTF-8?q?AppTable::find=E3=80=80=E3=81=AE=E3=83=A6?= =?UTF-8?q?=E3=83=8B=E3=83=83=E3=83=88=E3=83=86=E3=82=B9=E3=83=88=20(#3757?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng --- plugins/baser-core/src/Model/Table/AppTable.php | 3 +++ .../tests/TestCase/Model/Table/AppTableTest.php | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/plugins/baser-core/src/Model/Table/AppTable.php b/plugins/baser-core/src/Model/Table/AppTable.php index 0972577255..7dc84d2876 100755 --- a/plugins/baser-core/src/Model/Table/AppTable.php +++ b/plugins/baser-core/src/Model/Table/AppTable.php @@ -117,6 +117,7 @@ public function belongsToMany(string $associated, array $options = []): BelongsT * @return \Cake\ORM\Query The query builder * @checked * @noTodo + * @unitTest */ public function find(string $type = 'all', mixed ...$args): Query { @@ -315,6 +316,7 @@ public function sortup($id, $conditions) * @return boolean * @checked * @noTodo + * @unitTest */ public function sortdown($id, $conditions) { @@ -332,6 +334,7 @@ public function sortdown($id, $conditions) * @return boolean * @checked * @noTodo + * @unitTest */ public function changeSort($id, $offset, $options = []) { diff --git a/plugins/baser-core/tests/TestCase/Model/Table/AppTableTest.php b/plugins/baser-core/tests/TestCase/Model/Table/AppTableTest.php index 405e4f649f..e2a67d416b 100644 --- a/plugins/baser-core/tests/TestCase/Model/Table/AppTableTest.php +++ b/plugins/baser-core/tests/TestCase/Model/Table/AppTableTest.php @@ -13,6 +13,7 @@ use BaserCore\Model\Table\AppTable; use BaserCore\Test\Factory\ContentFolderFactory; +use BaserCore\Test\Factory\PluginFactory; use BaserCore\Test\Scenario\PermissionGroupsScenario; use BaserCore\Test\Scenario\PluginsScenario; use BaserCore\TestSuite\BcTestCase; @@ -271,6 +272,22 @@ public function testAfterFind() $this->assertEquals(1, $contentFolders->find()->all()->count()); } + /** + * test find() + */ + public function testFind() + { + PluginFactory::make(['name' => 'plugin1'])->persist(); + PluginFactory::make(['name' => 'plugin2'])->persist(); + + $this->App = $this->getTableLocator()->get('BaserCore.Plugins'); + //fill all + $this->assertEquals(2, $this->App->find()->all()->count()); + + //limit = 1 + $this->assertEquals(1, $this->App->find('all', ['limit' => 1])->all()->count()); + } + /** * testSortdown * @return void From c7ca4ef3190e8a63299f08d549baeca502cb0060 Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Sun, 1 Sep 2024 14:12:55 +0700 Subject: [PATCH 33/94] Add unitTest_BcContentsHelper_isFolder (#3758) Co-authored-by: thangnn --- .../src/View/Helper/BcContentsHelper.php | 1 + .../View/Helper/BcContentsHelperTest.php | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/plugins/baser-core/src/View/Helper/BcContentsHelper.php b/plugins/baser-core/src/View/Helper/BcContentsHelper.php index d391aed79e..ed591fc408 100644 --- a/plugins/baser-core/src/View/Helper/BcContentsHelper.php +++ b/plugins/baser-core/src/View/Helper/BcContentsHelper.php @@ -572,6 +572,7 @@ public function isParentId($id, $parentId) * @return bool * @checked * @noTodo + * @unitTest */ public function isFolder() { diff --git a/plugins/baser-core/tests/TestCase/View/Helper/BcContentsHelperTest.php b/plugins/baser-core/tests/TestCase/View/Helper/BcContentsHelperTest.php index 67347cedd4..9a96d3ceee 100644 --- a/plugins/baser-core/tests/TestCase/View/Helper/BcContentsHelperTest.php +++ b/plugins/baser-core/tests/TestCase/View/Helper/BcContentsHelperTest.php @@ -850,4 +850,26 @@ public function test_getSiteRoot() $this->assertNull($siteRoot); } + /** + * test isFolder + */ + public function test_isFolder() + { + //isAdminSystem true + $this->getRequest('baser/admin'); + $rs = $this->BcContents->isFolder(); + $this->assertFalse($rs); + + //contentFolder not exist + $content = ContentFactory::make(['type' => '',])->getEntity(); + $this->BcContents->getView()->setRequest($this->getRequest()->withAttribute('currentContent', $content)); + $rs = $this->BcContents->isFolder(); + $this->assertFalse($rs); + + //contentFolder exist + $content['type'] = 'ContentFolder'; + $this->BcContents->getView()->setRequest($this->getRequest()->withAttribute('currentContent', $content)); + $rs = $this->BcContents->isFolder(); + $this->assertTrue($rs); + } } From 2647e064e7bad61904985c1cb7cc96db9b80150f Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Sun, 1 Sep 2024 14:13:17 +0700 Subject: [PATCH 34/94] Add unitTest_MailHelper_isMail (#3759) Co-authored-by: thangnn --- plugins/bc-mail/src/View/Helper/MailHelper.php | 1 + .../TestCase/View/Helper/MailHelperTest.php | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/plugins/bc-mail/src/View/Helper/MailHelper.php b/plugins/bc-mail/src/View/Helper/MailHelper.php index dae641d7ce..3a65c94d86 100755 --- a/plugins/bc-mail/src/View/Helper/MailHelper.php +++ b/plugins/bc-mail/src/View/Helper/MailHelper.php @@ -303,6 +303,7 @@ public function beforeRender(Event $event, string $viewFile) * @return bool * @checked * @noTodo + * @unitTest */ public function isMail(): bool { diff --git a/plugins/bc-mail/tests/TestCase/View/Helper/MailHelperTest.php b/plugins/bc-mail/tests/TestCase/View/Helper/MailHelperTest.php index 6504238e43..ec49fa33f5 100644 --- a/plugins/bc-mail/tests/TestCase/View/Helper/MailHelperTest.php +++ b/plugins/bc-mail/tests/TestCase/View/Helper/MailHelperTest.php @@ -9,6 +9,7 @@ * @license https://basercms.net/license/index.html */ namespace BcMail\Test\TestCase\View\Helper; +use BaserCore\Test\Factory\ContentFactory; use BaserCore\TestSuite\BcTestCase; use BcMail\Model\Entity\MailContent; use BcMail\View\Helper\MailHelper; @@ -228,4 +229,20 @@ public function test_getDescription() $rs = $this->MailHelper->getDescription(); $this->assertEquals('test description', $rs); } + + /** + * test isMail + */ + public function test_isMail() + { + //no content + $result = $this->MailHelper->isMail(); + $this->assertFalse($result); + + //with content + $content = ContentFactory::make(['plugin' => 'BcMail'])->getEntity(); + $this->MailHelper->getView()->setRequest($this->getRequest()->withAttribute('currentContent', $content)); + $result = $this->MailHelper->isMail(); + $this->assertTrue($result); + } } From 998145cd70c9432d7a299be8575c495d05bc107b Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Sun, 1 Sep 2024 14:14:13 +0700 Subject: [PATCH 35/94] Add unitTest_BcCsvHelper_addModelData (#3760) Co-authored-by: thangnn --- plugins/baser-core/src/View/Helper/BcCsvHelper.php | 2 ++ .../baser-core/tests/TestCase/View/Helper/BcCsvHelperTest.php | 4 +--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/baser-core/src/View/Helper/BcCsvHelper.php b/plugins/baser-core/src/View/Helper/BcCsvHelper.php index b1ac28771f..e6574487f5 100755 --- a/plugins/baser-core/src/View/Helper/BcCsvHelper.php +++ b/plugins/baser-core/src/View/Helper/BcCsvHelper.php @@ -94,6 +94,7 @@ public function getCsvTmpDataFp() * @return bool * @checked * @noTodo + * @unitTest */ public function addModelData($modelName, $data) { @@ -120,6 +121,7 @@ public function addModelData($modelName, $data) * @return $csv * @checked * @noTodo + * @unitTest */ public function addModelDatas($modelName, $datas) { diff --git a/plugins/baser-core/tests/TestCase/View/Helper/BcCsvHelperTest.php b/plugins/baser-core/tests/TestCase/View/Helper/BcCsvHelperTest.php index f5f4792752..4cd4680425 100644 --- a/plugins/baser-core/tests/TestCase/View/Helper/BcCsvHelperTest.php +++ b/plugins/baser-core/tests/TestCase/View/Helper/BcCsvHelperTest.php @@ -53,9 +53,8 @@ public function tearDown(): void * @param string $expectedBody csvBodyの期待値 * @dataProvider addModelDataDataProvider */ - public function testAddModelData($modelName, $data, $expectedHead, $expectedBody) + public function test_addModelData($modelName, $data, $expectedHead, $expectedBody) { - $this->markTestIncomplete('このテストは、まだ実装されていません。'); $this->BcCsv->addModelData($modelName, $data); $this->assertEquals($expectedHead, $this->BcCsv->csvHead); $body = ''; @@ -128,7 +127,6 @@ public static function addModelDataDataProvider() */ public function testAddModelDatas($modelName, $datas, $expectedHead, $expectedBody) { - $this->markTestIncomplete('このテストは、まだ実装されていません。'); $datas = [$datas]; $this->BcCsv->addModelDatas($modelName, $datas); $this->assertEquals($expectedHead, $this->BcCsv->csvHead); From 7f48e449dd1d961508e30d57265680fa0733c55b Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Sun, 1 Sep 2024 16:15:19 +0900 Subject: [PATCH 36/94] =?UTF-8?q?BcGmaps::=5Fconstruct=E3=80=80=E3=81=AE?= =?UTF-8?q?=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=20(#3761)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng --- plugins/baser-core/src/Utility/BcGmaps.php | 1 + .../tests/TestCase/Utility/BcGmapsTest.php | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/plugins/baser-core/src/Utility/BcGmaps.php b/plugins/baser-core/src/Utility/BcGmaps.php index 803ce157d4..4a1b8ccb82 100644 --- a/plugins/baser-core/src/Utility/BcGmaps.php +++ b/plugins/baser-core/src/Utility/BcGmaps.php @@ -59,6 +59,7 @@ class BcGmaps * @return void * @checked * @noTodo + * @unitTest */ public function __construct($apiKey) { diff --git a/plugins/baser-core/tests/TestCase/Utility/BcGmapsTest.php b/plugins/baser-core/tests/TestCase/Utility/BcGmapsTest.php index 7c13eafefd..416ea6cb94 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcGmapsTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcGmapsTest.php @@ -9,6 +9,8 @@ * @license https://basercms.net/license/index.html */ namespace BaserCore\Test\TestCase\Utility; +use A\B; +use BaserCore\Error\BcException; use BaserCore\TestSuite\BcTestCase; use BaserCore\Utility\BcGmaps; @@ -25,6 +27,7 @@ class BcGmapsTest extends BcTestCase public function setUp(): void { parent::setUp(); + $this->BcGmaps = new BcGmaps('api-key'); } /** @@ -37,6 +40,19 @@ public function tearDown(): void parent::tearDown(); } + /** + * test __construct + */ + public function test__construct() + { + $_gmapsApiUrl = $this->getPrivateProperty($this->BcGmaps, '_gmapsApiUrl'); + $this->assertEquals('https://maps.googleapis.com/maps/api/geocode/xml?key=api-key', $_gmapsApiUrl); + + $this->expectException(BcException::class); + $this->expectExceptionMessage('システム基本設定にて、Google Maps API キーを入力してください。'); + new BcGmaps(false); + } + /** * getInfoLocation * 2018/07/09 ryuring TravisCI環境にて、タイミングにより、データを取得できず処理に失敗するので一旦コメントアウト From 4a5861b00736c2eb276a1703516280ceb6526578 Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Sun, 1 Sep 2024 16:17:25 +0900 Subject: [PATCH 37/94] =?UTF-8?q?BcGmaps::getLocation()=E3=80=80=E3=81=AE?= =?UTF-8?q?=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=20(#3762)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng Co-authored-by: ryuring --- plugins/baser-core/src/Utility/BcGmaps.php | 1 + .../tests/TestCase/Utility/BcGmapsTest.php | 26 ++++++++----------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/plugins/baser-core/src/Utility/BcGmaps.php b/plugins/baser-core/src/Utility/BcGmaps.php index 4a1b8ccb82..8facdfc2dd 100644 --- a/plugins/baser-core/src/Utility/BcGmaps.php +++ b/plugins/baser-core/src/Utility/BcGmaps.php @@ -76,6 +76,7 @@ public function __construct($apiKey) * @return array|null * @checked * @noTodo + * @unitTest */ public function getLocation($address) { diff --git a/plugins/baser-core/tests/TestCase/Utility/BcGmapsTest.php b/plugins/baser-core/tests/TestCase/Utility/BcGmapsTest.php index 416ea6cb94..37aa5d450e 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcGmapsTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcGmapsTest.php @@ -13,6 +13,7 @@ use BaserCore\Error\BcException; use BaserCore\TestSuite\BcTestCase; use BaserCore\Utility\BcGmaps; +use Cake\Cache\Cache; /** * Class BcGmapsTest @@ -54,23 +55,18 @@ public function test__construct() } /** - * getInfoLocation - * 2018/07/09 ryuring TravisCI環境にて、タイミングにより、データを取得できず処理に失敗するので一旦コメントアウト + * test getLocation */ - public function testGetInfoLocation() + public function testGetLocation() { - $this->markTestIncomplete('このテストは、まだ実装されていません。'); -// $result = $this->BcGmaps->getInfoLocation('日本'); -// $this->assertNotEmpty($result, 'getInfoLocationで情報を取得できません'); -// -// $lat = round($result['latitude'], 1); -// $lng = round($result['longitude'], 1); -// -// $this->assertEquals(36.2, $lat, '位置情報を正しく取得できません'); -// $this->assertEquals(138.3, $lng, '位置情報を正しく取得できません'); -// -// $result = $this->BcGmaps->getInfoLocation(''); -// $this->assertNull($result, 'getInfoLocationに空のアドレスに値が返ってきます'); + Cache::write('5pel5pys', '33.0661504,126.551622,5z', '_bc_gmaps_'); + $result = $this->BcGmaps->getLocation('日本'); + $this->assertEquals('33.0661504,126.551622,5z', $result); + + $result = $this->BcGmaps->getLocation(''); + $this->assertNull($result, 'getLocationに空のアドレスに値が返ってきます'); + + Cache::delete('5pel5pys', '_bc_gmaps_'); } } From 62eb8c659a5575850b3b149bff834352506c3bae Mon Sep 17 00:00:00 2001 From: ryuring Date: Sun, 1 Sep 2024 17:23:12 +0900 Subject: [PATCH 38/94] =?UTF-8?q?baser-core=20=E3=81=AE=E4=BB=96=E3=81=AE?= =?UTF-8?q?=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4=E3=83=B3=E3=81=B8=E3=81=AE?= =?UTF-8?q?=E4=BE=9D=E5=AD=98=E9=96=A2=E4=BF=82=E3=82=92=205.1.x-dev=20?= =?UTF-8?q?=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit アップデートテストを実施する場合に、baserCMS関連のパッケージのみ開発版を利用できるようにするため --- plugins/baser-core/composer.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/plugins/baser-core/composer.json b/plugins/baser-core/composer.json index 014f768966..cc22d31d9d 100644 --- a/plugins/baser-core/composer.json +++ b/plugins/baser-core/composer.json @@ -15,20 +15,20 @@ "firebase/php-jwt": "6.1.0", "mobiledetect/mobiledetectlib": "^3.74", "ext-json": "*", - "baserproject/bc-admin-third": "5.1.x", - "baserproject/bc-blog": "5.1.x", - "baserproject/bc-content-link": "5.1.x", - "baserproject/bc-custom-content": "5.1.x", - "baserproject/bc-editor-template": "5.1.x", - "baserproject/bc-favorite": "5.1.x", - "baserproject/bc-front": "5.1.x", - "baserproject/bc-installer": "5.1.x", - "baserproject/bc-mail": "5.1.x", - "baserproject/bc-search-index": "5.1.x", - "baserproject/bc-theme-config": "5.1.x", - "baserproject/bc-theme-file": "5.1.x", - "baserproject/bc-uploader": "5.1.x", - "baserproject/bc-widget-area": "5.1.x", + "baserproject/bc-admin-third": "5.1.x-dev", + "baserproject/bc-blog": "5.1.x-dev", + "baserproject/bc-content-link": "5.1.x-dev", + "baserproject/bc-custom-content": "5.1.x-dev", + "baserproject/bc-editor-template": "5.1.x-dev", + "baserproject/bc-favorite": "5.1.x-dev", + "baserproject/bc-front": "5.1.x-dev", + "baserproject/bc-installer": "5.1.x-dev", + "baserproject/bc-mail": "5.1.x-dev", + "baserproject/bc-search-index": "5.1.x-dev", + "baserproject/bc-theme-config": "5.1.x-dev", + "baserproject/bc-theme-file": "5.1.x-dev", + "baserproject/bc-uploader": "5.1.x-dev", + "baserproject/bc-widget-area": "5.1.x-dev", "ext-mbstring": "*", "ext-zip": "*", "ext-gd": "*" From c58e1461a654b825d537e7a6f4e16d96768a3628 Mon Sep 17 00:00:00 2001 From: ryuring Date: Sun, 1 Sep 2024 19:24:50 +0900 Subject: [PATCH 39/94] =?UTF-8?q?=E3=80=8C=E5=88=A9=E7=94=A8=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E3=81=AA=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B3?= =?UTF-8?q?=E3=81=AB=E9=96=A2=E3=82=8F=E3=82=89=E3=81=9A=E3=80=81composer.?= =?UTF-8?q?json=20=E3=81=AE=E5=86=85=E5=AE=B9=E3=81=A7=E3=83=80=E3=82=A6?= =?UTF-8?q?=E3=83=B3=E3=83=AD=E3=83=BC=E3=83=89=E3=81=99=E3=82=8B=E3=80=8D?= =?UTF-8?q?=E6=A9=9F=E8=83=BD=E3=82=92=E3=80=8C=E6=9C=80=E6=96=B0=E3=81=AE?= =?UTF-8?q?=E9=96=8B=E7=99=BA=E7=89=88=E3=82=92=E3=83=80=E3=82=A6=E3=83=B3?= =?UTF-8?q?=E3=83=AD=E3=83=BC=E3=83=89=E3=81=99=E3=82=8B=E3=80=8D=E6=A9=9F?= =?UTF-8?q?=E8=83=BD=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit composer の利用方法が間違っていたため そもそもアップデートのテスト用の機能だったため --- .../src/Command/ComposerCommand.php | 12 +++-- plugins/baser-core/src/Utility/BcComposer.php | 47 +++++++++++++++++++ .../element/Plugins/update_download_core.php | 4 +- 3 files changed, 58 insertions(+), 5 deletions(-) diff --git a/plugins/baser-core/src/Command/ComposerCommand.php b/plugins/baser-core/src/Command/ComposerCommand.php index 7aead59a85..5fe2637907 100644 --- a/plugins/baser-core/src/Command/ComposerCommand.php +++ b/plugins/baser-core/src/Command/ComposerCommand.php @@ -12,6 +12,7 @@ namespace BaserCore\Command; use BaserCore\Utility\BcComposer; +use BaserCore\Utility\BcFile; use Cake\Command\Command; use Cake\Console\Arguments; use Cake\Console\ConsoleIo; @@ -79,12 +80,17 @@ public function execute(Arguments $args, ConsoleIo $io) BcComposer::clearCache(); + $version = $args->getArgument('version'); if($args->getOption('force')) { - $result = BcComposer::update(); - } else { - $result = BcComposer::require('baser-core', $args->getArgument('version')); + if (!preg_match('/-dev$/', $version)) { + $version = preg_replace('/^(\d+\.\d+\.)(\d+)$/', '$1x-dev', $version); + } + BcComposer::changeMinimumStabilityToDev(); + BcComposer::deleteReplace(); } + $result = BcComposer::require('baser-core', $version); + if($result['code'] === 0) { $io->out(__d('baser_core', 'Composer によるアップデートが完了しました。')); } else { diff --git a/plugins/baser-core/src/Utility/BcComposer.php b/plugins/baser-core/src/Utility/BcComposer.php index 7a48c3d7fc..7e470e0d59 100644 --- a/plugins/baser-core/src/Utility/BcComposer.php +++ b/plugins/baser-core/src/Utility/BcComposer.php @@ -37,6 +37,13 @@ class BcComposer */ public static $composerDir; + /** + * 現在のディレクトリ + * + * @var string + */ + public static $currentDir; + /** * export コマンド * @@ -62,6 +69,7 @@ class BcComposer public static function setup(string $php = '', $dir = '') { self::checkEnv(); + self::$currentDir = $dir; self::$cd = ($dir)? "cd " . $dir . ';': "cd " . ROOT . DS . ';'; self::$composerDir = ROOT . DS . 'composer' . DS; self::$export = "export HOME=" . self::$composerDir . ";"; @@ -258,4 +266,43 @@ public static function setupComposerForDistribution(string $packagePath) $file->write($data); } + + /** + * changeMinimumStabilityToDev + * + * @return void + * @checked + * @noTodo + */ + public static function changeMinimumStabilityToDev() + { + $file = new BcFile(self::$currentDir . DS . 'composer.json'); + $json = $file->read(); + + if(strpos($json, '"minimum-stability"') !== false) { + $json = preg_replace('/"minimum-stability"\s*:\s*".+?"/', '"minimum-stability": "dev"', $json); + } else { + $json = preg_replace('/"require"\s*:\s*{/', '"minimum-stability": "dev",' . "\n" . ' "require": {', $json); + } + if(strpos($json, '"prefer-stable"') !== false) { + $json = preg_replace('/"prefer-stable"\s*:\s*[a-zA-Z]+/', '"prefer-stable": true', $json); + } else { + $json = preg_replace('/"require"\s*:\s*{/', '"prefer-stable": true,' . "\n" . ' "require": {', $json); + } + + $file->write($json); + } + + /** + * replace を削除する + * @return void + */ + public static function deleteReplace() + { + $file = new BcFile(self::$currentDir . DS . 'composer.json'); + $json = $file->read(); + $json = preg_replace('/"replace"\s*:\s*?{[^}]+?},/', '', $json); + $file->write($json); + } + } diff --git a/plugins/bc-admin-third/templates/Admin/element/Plugins/update_download_core.php b/plugins/bc-admin-third/templates/Admin/element/Plugins/update_download_core.php index d5cab1c6b2..d659f7827f 100644 --- a/plugins/bc-admin-third/templates/Admin/element/Plugins/update_download_core.php +++ b/plugins/bc-admin-third/templates/Admin/element/Plugins/update_download_core.php @@ -61,7 +61,7 @@

BcAdminForm->control('force', [ 'type' => 'checkbox', - 'label' => __d('baser_core', '利用可能なバージョンに関わらず、composer.json の内容でダウンロードする') + 'label' => __d('baser_core', '最新の開発版をダウンロードする') ]) ?>

@@ -78,7 +78,7 @@ ]) ?>
- BcAdminForm->submit(__d('baser_core', '最新版をダウンロード'), [ + BcAdminForm->submit(__d('baser_core', 'ダウンロード'), [ 'class' => 'bca-btn bca-actions__item', 'data-bca-btn-size' => 'lg', 'data-bca-btn-width' => 'lg', From 4e0ac0e886380e608e77eb1e90a21c1d48ace181 Mon Sep 17 00:00:00 2001 From: ryuring Date: Sun, 1 Sep 2024 20:49:23 +0900 Subject: [PATCH 40/94] =?UTF-8?q?=E3=83=AA=E3=83=AA=E3=83=BC=E3=82=B9?= =?UTF-8?q?=E3=82=B3=E3=83=9E=E3=83=B3=E3=83=89=E3=82=92=E6=94=B9=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - バージョンを指定する仕様に変更(bin/cake create release 5.1.1) - 生成するzipファイルにバージョン番号が入るようにした - インストール時に composer update ではなく、composer install コマンドでインストールできるように lock ファイルを更新するようにした --- composer_installer.php | 2 +- plugins/baser-core/config/setting.php | 6 ---- .../src/Command/CreateReleaseCommand.php | 25 ++++++++++++---- plugins/baser-core/src/Utility/BcComposer.php | 30 +++++++++---------- .../TestCase/Command/ComposerCommandTest.php | 6 ++-- .../Admin/PluginsControllerTest.php | 3 +- .../TestCase/Service/PluginsServiceTest.php | 6 ++-- .../tests/TestCase/Utility/BcComposerTest.php | 22 +++++++++++--- 8 files changed, 63 insertions(+), 37 deletions(-) diff --git a/composer_installer.php b/composer_installer.php index 60a11b468d..af9cd02d35 100644 --- a/composer_installer.php +++ b/composer_installer.php @@ -81,7 +81,7 @@ function command($phpPath) exec($command, $out, $code); if ($code !== 0) throw new Exception('composer のアップデートに失敗しました。(' . $command . ')'); - $command = "cd " . ROOT_DIR . "; export HOME={$composerDir} ; yes | {$phpPath} {$composerDir}composer.phar update --ignore-platform-req=ext-xdebug"; + $command = "cd " . ROOT_DIR . "; export HOME={$composerDir} ; yes | {$phpPath} {$composerDir}composer.phar install --ignore-platform-req=ext-xdebug"; exec($command, $out, $code); if ($code !== 0) throw new Exception('ライブラリのインストールに失敗しました。
コマンド実行をお試しください
' . $command); diff --git a/plugins/baser-core/config/setting.php b/plugins/baser-core/config/setting.php index ff74aed8af..7487ccf4f1 100644 --- a/plugins/baser-core/config/setting.php +++ b/plugins/baser-core/config/setting.php @@ -291,12 +291,6 @@ */ 'coreReleaseUrl' => 'https://packagist.org/feeds/package.baserproject/baser-core.rss', - /** - * インストール時に composer.json にセットするバージョン - * @see \BaserCore\Utility\BcComposer::setupComposerForDistribution() - */ - 'setupVersion' => '5.1.*', - /** * リリースパッケージに不要なファイル * @see \BaserCore\Command\CreateReleaseCommand::deleteExcludeFiles() diff --git a/plugins/baser-core/src/Command/CreateReleaseCommand.php b/plugins/baser-core/src/Command/CreateReleaseCommand.php index 1e15705cfe..e1911afcb2 100644 --- a/plugins/baser-core/src/Command/CreateReleaseCommand.php +++ b/plugins/baser-core/src/Command/CreateReleaseCommand.php @@ -39,6 +39,10 @@ class CreateReleaseCommand extends Command */ protected function buildOptionParser(\Cake\Console\ConsoleOptionParser $parser): \Cake\Console\ConsoleOptionParser { + $parser->addArgument('version', [ + 'help' => __d('baser_core', 'リリースバージョン'), + 'required' => true + ]); $parser->addArgument('branch', [ 'help' => __d('baser_core', 'クローン対象ブランチ'), 'default' => 'master', @@ -62,6 +66,7 @@ public function execute(Arguments $args, ConsoleIo $io) if(is_dir($packagePath)) { (new BcFolder($packagePath))->delete(); } + $version = $args->getArgument('version'); $io->out(__d('baser_core', 'リリースパッケージを作成します。', TMP)); $io->out(); @@ -69,8 +74,18 @@ public function execute(Arguments $args, ConsoleIo $io) $io->out(__d('baser_core', '- {0} にパッケージをクローンします。', TMP)); $this->clonePackage($packagePath, $args->getArgument('branch')); - $io->out(__d('baser_core', '- composer.json をセットアップします。')); - BcComposer::setupComposerForDistribution($packagePath); + $io->out(__d('baser_core', '- composer.json / composer.lock をセットアップします。')); + BcComposer::setup('', $packagePath); + $result = BcComposer::setupComposerForDistribution($version, true); + if($result['code'] === 0) { + $io->out(__d('baser_core', 'Composer による lock ファイルの更新に失敗アップデートが完了しました。')); + } else { + $message = __d('baser_core', 'Composer による lock ファイルの更新に失敗しました。ログを確認してください。'); + $this->log($message); + $this->log(implode("\n", $result['out'])); + $io->error($message); + $this->abort(); + } $io->out(__d('baser_core', '- プラグインを初期化します。')); $this->deletePlugins($packagePath); @@ -79,7 +94,7 @@ public function execute(Arguments $args, ConsoleIo $io) $this->deleteExcludeFiles($packagePath); $io->out(__d('baser_core', '- Zip ファイルを作成します。')); - $this->createZip($packagePath); + $this->createZip($packagePath, $version); $io->out(__d('baser_core', '- クリーニング処理を実行します。')); (new BcFolder($packagePath))->delete(); @@ -130,10 +145,10 @@ public function deletePlugins(string $packagePath) * @noTodo * @unitTest */ - public function createZip(string $packagePath) + public function createZip(string $packagePath, string $version) { $zip = new ZipArchiver(); - $zipFile = TMP . 'basercms.zip'; + $zipFile = TMP . 'basercms-' . $version . '.zip'; if(file_exists($zipFile)) { unlink($zipFile); } diff --git a/plugins/baser-core/src/Utility/BcComposer.php b/plugins/baser-core/src/Utility/BcComposer.php index 7e470e0d59..be9b1710fd 100644 --- a/plugins/baser-core/src/Utility/BcComposer.php +++ b/plugins/baser-core/src/Utility/BcComposer.php @@ -69,6 +69,9 @@ class BcComposer public static function setup(string $php = '', $dir = '') { self::checkEnv(); + if(!preg_match('/\/$/', $dir)) { + $dir .= '/'; + } self::$currentDir = $dir; self::$cd = ($dir)? "cd " . $dir . ';': "cd " . ROOT . DS . ';'; self::$composerDir = ROOT . DS . 'composer' . DS; @@ -246,27 +249,22 @@ public static function createCommand(string $command) /** * 配布用に composer.json をセットアップする - * @param string $packagePath - * @return void + * @param string $version + * @return array * @noTodo * @checked * @unitTest */ - public static function setupComposerForDistribution(string $packagePath) + public static function setupComposerForDistribution(string $version) { - $composer = $packagePath . 'composer.json'; - $file = new BcFile($composer); - $data = $file->read(); - $regex = '/^(.+?) "replace": {.+?},\n(.+?)/s'; - $data = preg_replace($regex, "$1$2", $data); - $regex = '/^(.+?"cakephp\/cakephp": ".+?",)(.+?)$/s'; - $setupVersion = Configure::read('BcApp.setupVersion'); - $replace = "$1\n \"baserproject/baser-core\": \"{$setupVersion}\",$2"; - $data = preg_replace($regex, $replace, $data); - $file->write($data); + self::deleteReplace(); + $result = self::require('baser-core', $version); + (new BcFolder(self::$currentDir . 'vendor'))->delete(); + mkdir(self::$currentDir . 'vendor'); + (new BcFile(self::$currentDir . 'vendor' . DS . '.gitkeep'))->create(); + return $result; } - /** * changeMinimumStabilityToDev * @@ -276,7 +274,7 @@ public static function setupComposerForDistribution(string $packagePath) */ public static function changeMinimumStabilityToDev() { - $file = new BcFile(self::$currentDir . DS . 'composer.json'); + $file = new BcFile(self::$currentDir . 'composer.json'); $json = $file->read(); if(strpos($json, '"minimum-stability"') !== false) { @@ -299,7 +297,7 @@ public static function changeMinimumStabilityToDev() */ public static function deleteReplace() { - $file = new BcFile(self::$currentDir . DS . 'composer.json'); + $file = new BcFile(self::$currentDir . 'composer.json'); $json = $file->read(); $json = preg_replace('/"replace"\s*:\s*?{[^}]+?},/', '', $json); $file->write($json); diff --git a/plugins/baser-core/tests/TestCase/Command/ComposerCommandTest.php b/plugins/baser-core/tests/TestCase/Command/ComposerCommandTest.php index 4e4fad2e58..c1a471b2f7 100644 --- a/plugins/baser-core/tests/TestCase/Command/ComposerCommandTest.php +++ b/plugins/baser-core/tests/TestCase/Command/ComposerCommandTest.php @@ -73,7 +73,8 @@ public function testExecute() $this->assertErrorContains('Composer によるアップデートが失敗しました。update ログを確認してください。'); // composer実行(composer.json を配布用にセットアップ) - BcComposer::setupComposerForDistribution(ROOT . DS); + BcComposer::setup('', ROOT . DS); + BcComposer::setupComposerForDistribution('5.0.15'); $this->exec('composer 5.0.15'); $this->assertExitCode(Command::CODE_SUCCESS); $this->assertOutputContains('Composer によるアップデートが完了しました。'); @@ -104,7 +105,8 @@ public function testExecuteOnUpdateTmp() copy(ROOT . DS . 'composer.json', TMP . 'update' . DS . 'composer.json'); copy(ROOT . DS . 'composer.lock', TMP . 'update' . DS . 'composer.lock'); // composer.json を配布用にセットアップ - BcComposer::setupComposerForDistribution(TMP . 'update' . DS); + BcComposer::setup('', TMP . 'update' . DS); + BcComposer::setupComposerForDistribution('5.0.15'); // composer 実行 $this->exec('composer 5.0.15 --dir ' . TMP . 'update'); // バージョンを確認 diff --git a/plugins/baser-core/tests/TestCase/Controller/Admin/PluginsControllerTest.php b/plugins/baser-core/tests/TestCase/Controller/Admin/PluginsControllerTest.php index 382b8f7ba0..baa4b07bcf 100644 --- a/plugins/baser-core/tests/TestCase/Controller/Admin/PluginsControllerTest.php +++ b/plugins/baser-core/tests/TestCase/Controller/Admin/PluginsControllerTest.php @@ -369,7 +369,8 @@ public function test_get_core_update() copy(ROOT . DS . 'composer.lock', ROOT . DS . 'composer.bak.lock'); // composer.json を配布用に更新 - BcComposer::setupComposerForDistribution(ROOT . DS); + BcComposer::setup('', ROOT . DS); + BcComposer::setupComposerForDistribution('5.0.15'); $this->post('/baser/admin/baser-core/plugins/get_core_update', [ 'targetVersion' => '5.0.15', diff --git a/plugins/baser-core/tests/TestCase/Service/PluginsServiceTest.php b/plugins/baser-core/tests/TestCase/Service/PluginsServiceTest.php index c9fd67a7d6..1cc3f8a0ba 100644 --- a/plugins/baser-core/tests/TestCase/Service/PluginsServiceTest.php +++ b/plugins/baser-core/tests/TestCase/Service/PluginsServiceTest.php @@ -573,7 +573,8 @@ public function testGetCoreUpdateAndUpdateCoreFiles() copy(ROOT . DS . 'composer.lock', ROOT . DS . 'composer.bak.lock'); // composer.json を配布用に更新 - BcComposer::setupComposerForDistribution(ROOT . DS); + BcComposer::setup('', ROOT . DS); + BcComposer::setupComposerForDistribution('5.0.15'); // getCoreUpdate 実行 $this->Plugins->getCoreUpdate('5.0.15', 'php'); @@ -615,7 +616,8 @@ public function testRollbackCore() // composer.json をバックアップ copy(ROOT . DS . 'composer.json', ROOT . DS . 'composer.bak.json'); // composer.json を配布用に更新 - BcComposer::setupComposerForDistribution(ROOT . DS); + BcComposer::setup('', ROOT . DS); + BcComposer::setupComposerForDistribution('5.1.1'); // ロールバック $this->Plugins->rollbackCore('5.0.15', 'php'); diff --git a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php index e3b5d6ce61..06cf352932 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php @@ -239,18 +239,32 @@ public function testInstall() public function testSetupComposerForDistribution() { // composer.json をバックアップ - $composer = ROOT . DS . 'composer.json'; - copy($composer, ROOT . DS . 'composer.json.bak'); + $composer = TMP_TESTS . 'composer.json'; + copy(ROOT . DS . 'composer.json', $composer); // 実行 - BcComposer::setupComposerForDistribution(ROOT . DS); + BcComposer::setup('', TMP_TESTS); + + // 5.1.0 のテストの場合、5.1.1 との依存関係の問題があるためライブラリを調整 + // このままでは、今後のリリースのタイミングでまた依存関係が変わる可能性があるため + // 特定のバージョンの composer.json を別途用意しておいた方が良さそう + // >>> + BcComposer::require('josegonzalez/dotenv', '^3.2'); + sleep(1); + BcComposer::require('mobiledetect/mobiledetectlib', '^4.8.03'); + // <<< + + BcComposer::setupComposerForDistribution('5.1.0'); $file = new BcFile($composer); $data = $file->read(); $this->assertNotFalse(strpos($data, '"baserproject/baser-core": ')); $this->assertFalse(strpos($data, '"replace": {')); + $this->assertFileExists(TMP_TESTS . 'composer.lock'); // バックアップをリストア - rename(ROOT . DS . 'composer.json.bak', ROOT . DS . 'composer.json'); + unlink($composer); + unlink(TMP_TESTS . 'composer.lock'); + (new BcFolder(TMP_TESTS . 'vendor'))->delete(); } /** From a75fa141e4bb59571dd4f3c49f21ffdf27778560 Mon Sep 17 00:00:00 2001 From: ryuring Date: Sun, 1 Sep 2024 21:08:58 +0900 Subject: [PATCH 41/94] =?UTF-8?q?=E3=83=AA=E3=83=AA=E3=83=BC=E3=82=B9?= =?UTF-8?q?=E3=82=B3=E3=83=9E=E3=83=B3=E3=83=89=E3=81=AE=E5=BC=95=E6=95=B0?= =?UTF-8?q?=E3=82=92=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/baser-core/src/Command/CreateReleaseCommand.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/plugins/baser-core/src/Command/CreateReleaseCommand.php b/plugins/baser-core/src/Command/CreateReleaseCommand.php index e1911afcb2..4c5378d311 100644 --- a/plugins/baser-core/src/Command/CreateReleaseCommand.php +++ b/plugins/baser-core/src/Command/CreateReleaseCommand.php @@ -43,10 +43,9 @@ protected function buildOptionParser(\Cake\Console\ConsoleOptionParser $parser): 'help' => __d('baser_core', 'リリースバージョン'), 'required' => true ]); - $parser->addArgument('branch', [ + $parser->addOption('branch', [ 'help' => __d('baser_core', 'クローン対象ブランチ'), - 'default' => 'master', - 'required' => false + 'default' => 'master' ]); return $parser; } @@ -72,11 +71,11 @@ public function execute(Arguments $args, ConsoleIo $io) $io->out(); $io->out(__d('baser_core', '- {0} にパッケージをクローンします。', TMP)); - $this->clonePackage($packagePath, $args->getArgument('branch')); + $this->clonePackage($packagePath, $args->getOption('branch')); $io->out(__d('baser_core', '- composer.json / composer.lock をセットアップします。')); BcComposer::setup('', $packagePath); - $result = BcComposer::setupComposerForDistribution($version, true); + $result = BcComposer::setupComposerForDistribution($version); if($result['code'] === 0) { $io->out(__d('baser_core', 'Composer による lock ファイルの更新に失敗アップデートが完了しました。')); } else { From 71904fc0989b1b0a871786c34f3e18deb80de809 Mon Sep 17 00:00:00 2001 From: ryuring Date: Mon, 2 Sep 2024 08:17:12 +0900 Subject: [PATCH 42/94] =?UTF-8?q?=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88?= =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=81=AE=E5=A4=B1=E6=95=97=E3=82=92?= =?UTF-8?q?=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/baser-core/src/Utility/BcComposer.php | 3 ++- .../tests/TestCase/Command/CreateReleaseCommandTest.php | 4 ++-- plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/baser-core/src/Utility/BcComposer.php b/plugins/baser-core/src/Utility/BcComposer.php index be9b1710fd..9df07559f9 100644 --- a/plugins/baser-core/src/Utility/BcComposer.php +++ b/plugins/baser-core/src/Utility/BcComposer.php @@ -69,11 +69,12 @@ class BcComposer public static function setup(string $php = '', $dir = '') { self::checkEnv(); + $dir = ($dir)? : ROOT . DS; if(!preg_match('/\/$/', $dir)) { $dir .= '/'; } self::$currentDir = $dir; - self::$cd = ($dir)? "cd " . $dir . ';': "cd " . ROOT . DS . ';'; + self::$cd = "cd " . $dir . ';'; self::$composerDir = ROOT . DS . 'composer' . DS; self::$export = "export HOME=" . self::$composerDir . ";"; self::$php = ($php)?: 'php'; diff --git a/plugins/baser-core/tests/TestCase/Command/CreateReleaseCommandTest.php b/plugins/baser-core/tests/TestCase/Command/CreateReleaseCommandTest.php index 9032701614..c3444b863f 100644 --- a/plugins/baser-core/tests/TestCase/Command/CreateReleaseCommandTest.php +++ b/plugins/baser-core/tests/TestCase/Command/CreateReleaseCommandTest.php @@ -27,13 +27,13 @@ public function tearDown(): void public function test_createZip() { $this->packagePath = '/var/www/html/plugins/bc-widget-area/'; - $this->zipFile = TMP . 'basercms.zip'; + $this->zipFile = TMP . 'basercms-5.1.0.zip'; //create TMP folder if not exist if (!is_dir(TMP)) { mkdir(TMP, 0777, true); } - $this->CreateReleaseCommand->createZip($this->packagePath); + $this->CreateReleaseCommand->createZip($this->packagePath, '5.1.0'); $this->assertFileExists($this->zipFile); diff --git a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php index 06cf352932..d95e7eead2 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php @@ -51,7 +51,7 @@ public function testSetup() // 環境を変更 BcComposer::setup('/usr/local/bin/php', '/var/www/html/tmp/update'); - $this->assertEquals('cd /var/www/html/tmp/update;', BcComposer::$cd); + $this->assertEquals('cd /var/www/html/tmp/update/;', BcComposer::$cd); $this->assertEquals('/usr/local/bin/php', BcComposer::$php); } From b615ab6d04d8e59a07573097921470e74d7e0e0e Mon Sep 17 00:00:00 2001 From: ryuring Date: Mon, 2 Sep 2024 14:42:50 +0900 Subject: [PATCH 43/94] =?UTF-8?q?AppTable::find()=20=E3=82=92=E5=89=8A?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - beforeFindが重複実装だった - afterFindは、位置的にfindの後ではなかった --- .../baser-core/src/Model/Table/AppTable.php | 36 --------------- .../TestCase/Model/Table/AppTableTest.php | 44 ------------------- 2 files changed, 80 deletions(-) diff --git a/plugins/baser-core/src/Model/Table/AppTable.php b/plugins/baser-core/src/Model/Table/AppTable.php index 7dc84d2876..feebf67d9b 100755 --- a/plugins/baser-core/src/Model/Table/AppTable.php +++ b/plugins/baser-core/src/Model/Table/AppTable.php @@ -109,42 +109,6 @@ public function belongsToMany(string $associated, array $options = []): BelongsT return parent::belongsToMany($associated, $options); } - /** - * findの前後にイベントを追加する - * - * @param string $type the type of query to perform - * @param array $options An array that will be passed to Query::applyOptions() - * @return \Cake\ORM\Query The query builder - * @checked - * @noTodo - * @unitTest - */ - public function find(string $type = 'all', mixed ...$args): Query - { - // EVENT beforeFind - $event = $this->dispatchLayerEvent('beforeFind', [ - 'type' => $type, - 'options' => $args // 後方互換のため options として渡す - ]); - if ($event !== false) { - $args = ($event->getResult() === null || $event->getResult() === true) ? $event->getData('options') : $event->getResult(); - } - - $result = parent::find($type, ...$args); - - // EVENT afterFind - $event = $this->dispatchLayerEvent('afterFind', [ - 'type' => $type, - 'options' => $args, - 'result' => $result - ]); - if ($event !== false) { - $result = ($event->getResult() === null || $event->getResult() === true) ? $event->getData('result') : $event->getResult(); - } - - return $result; - } - /** * テーブル名にプレフィックスを追加する * diff --git a/plugins/baser-core/tests/TestCase/Model/Table/AppTableTest.php b/plugins/baser-core/tests/TestCase/Model/Table/AppTableTest.php index e2a67d416b..b95038b1f8 100644 --- a/plugins/baser-core/tests/TestCase/Model/Table/AppTableTest.php +++ b/plugins/baser-core/tests/TestCase/Model/Table/AppTableTest.php @@ -244,50 +244,6 @@ public static function replaceTextDataProvider() ]; } - /** - * test beforeFind - * @return void - */ - public function testBeforeFind() - { - ContentFolderFactory::make(2)->persist(); - $this->entryEventToMock(self::EVENT_LAYER_MODEL, 'BaserCore.ContentFolders.beforeFind', function(Event $event) { - $event->setData('options', ['limit' => 1]); - }); - $contentFolders = $this->getTableLocator()->get('BaserCore.ContentFolders'); - $this->assertEquals(1, $contentFolders->find()->all()->count()); - } - - /** - * test afterFind - * @return void - */ - public function testAfterFind() - { - ContentFolderFactory::make(2)->persist(); - $this->entryEventToMock(self::EVENT_LAYER_MODEL, 'BaserCore.ContentFolders.afterFind', function(Event $event) { - $event->setData('result', $event->getData('result')->limit(1)); - }); - $contentFolders = $this->getTableLocator()->get('BaserCore.ContentFolders'); - $this->assertEquals(1, $contentFolders->find()->all()->count()); - } - - /** - * test find() - */ - public function testFind() - { - PluginFactory::make(['name' => 'plugin1'])->persist(); - PluginFactory::make(['name' => 'plugin2'])->persist(); - - $this->App = $this->getTableLocator()->get('BaserCore.Plugins'); - //fill all - $this->assertEquals(2, $this->App->find()->all()->count()); - - //limit = 1 - $this->assertEquals(1, $this->App->find('all', ['limit' => 1])->all()->count()); - } - /** * testSortdown * @return void From f2b0eb245e9ebc760a5cc42debc6d755095ffbb9 Mon Sep 17 00:00:00 2001 From: ryoma_kawase <137789417+RyoK513@users.noreply.github.com> Date: Tue, 3 Sep 2024 00:23:27 +0900 Subject: [PATCH 44/94] =?UTF-8?q?fix=20#3767=20docer-compose.yml=E3=81=AE?= =?UTF-8?q?=E4=B8=8D=E8=A6=81=E3=81=AAversion=E6=8C=87=E5=AE=9A=E3=82=92?= =?UTF-8?q?=E5=89=8A=E9=99=A4=20(#3768)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/docker-compose.yml.default | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker/docker-compose.yml.default b/docker/docker-compose.yml.default index 6ee8877153..2dca4ffdc6 100644 --- a/docker/docker-compose.yml.default +++ b/docker/docker-compose.yml.default @@ -1,5 +1,3 @@ -version: '3' - # volumes: # db-volume: # windowsの場合はコメントを外す From 594036254823081091c03b0d7b27ee31e773d536 Mon Sep 17 00:00:00 2001 From: ryuring Date: Tue, 3 Sep 2024 11:44:23 +0900 Subject: [PATCH 45/94] =?UTF-8?q?=E3=83=90=E3=83=BC=E3=82=AC=E3=83=BC?= =?UTF-8?q?=E3=82=A8=E3=83=87=E3=82=A3=E3=82=BF=E3=81=AE=E3=82=B9=E3=83=A9?= =?UTF-8?q?=E3=82=A4=E3=83=89=E3=82=B7=E3=83=A7=E3=83=BC=E3=81=AE=E3=82=B3?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=83=AD=E3=83=BC=E3=83=AB=E3=83=9C=E3=82=BF?= =?UTF-8?q?=E3=83=B3=E3=81=8C=E8=A1=A8=E7=A4=BA=E3=81=95=E3=82=8C=E3=81=AA?= =?UTF-8?q?=E3=81=84=E5=95=8F=E9=A1=8C=E3=82=92=E6=94=B9=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/BcThemeSample/webroot/css/bge_style.css | 6 ++++-- plugins/bc-front/src/css/common/_bge.scss | 1 - plugins/bc-front/webroot/css/bge_style.css | 3 +-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/BcThemeSample/webroot/css/bge_style.css b/plugins/BcThemeSample/webroot/css/bge_style.css index 141201bea2..8579969a24 100755 --- a/plugins/BcThemeSample/webroot/css/bge_style.css +++ b/plugins/BcThemeSample/webroot/css/bge_style.css @@ -734,6 +734,9 @@ * ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- **/ /** * BurgerEditor StyleSheet Style + * + * bc-front テーマ側でコンパイルした際は、bge_style.css を + * BcThemeSample テーマ側にコピーする必要がある */ .bgt-box__caption { text-align: left; @@ -941,7 +944,6 @@ } [data-bgt=gallery] .bgt-gallery-ctrl { top: 50%; - opacity: 0; transition: opacity 200ms ease-in; } [data-bgt=gallery] .bgt-gallery-ctrl__prev, [data-bgt=gallery] .bgt-gallery-ctrl__next { @@ -1022,4 +1024,4 @@ display: block; } } -/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9iZ2Vfc3R5bGUuY3NzIiwiY3NzL2JnZV9zdHlsZS5zY3NzIiwiY3NzL2NvbW1vbi9fZWRpdG9yLnNjc3MiLCJjc3MvY29tbW9uL19iZ2Vfc2V0dGluZy5zY3NzIiwiY3NzL2NvbW1vbi9fYmdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQ2hCOzs7Ozs7OztFQUFBO0FBVUE7OztFQUFBO0FDWEE7O0VBQUE7QUFNQTtFQUNFLGFBQUE7QUZZRjtBRVRBO2lEQUFBO0FBR0E7OztFQUdFLCtGQUFBO0VBQ0EsV0FBQTtBRldGO0FFVEU7OztFQUNFLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FGYUo7QUVWRTs7O0VBQ0Usd0xBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtBRmNKO0FFYkk7OztFQUNFLGFBQUE7QUZpQk47QUViRTs7O0VBQ0UscUJBQUE7RUFDQSx1QkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0FGaUJKO0FFZkk7OztFQUNFLGFBQUE7QUZtQk47QUVmRTs7O0VBQ0UsOEJBQUE7RUFDQSxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7QUZtQko7QUVqQkk7OztFQUNFLGFBQUE7QUZxQk47QUVqQkU7OztFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0FGcUJKO0FFbkJJOzs7RUFDRSxhQUFBO0FGdUJOO0FFbkJFOzs7RUFDRSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtBRnVCSjtBRXJCSTs7O0VBQ0UsYUFBQTtBRnlCTjtBRXJCRTs7O0VBQ0UsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0FGeUJKO0FFdEJFOzs7RUFDRSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsMEJBQUE7QUYwQko7QUV2QkU7OztFQUNFLG1CQUFBO0VBQ0Esa0JBQUE7RUFDQSw2QkFBQTtBRjJCSjtBRXhCRTs7O0VBQ0Usa0JBQUE7QUY0Qko7QUV6QkU7OztFQUNFLFdBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLHdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBRjZCSjtBRTNCSTs7O0VBQ0UsYUFBQTtBRitCTjtBRTNCRTs7O0VBQ0UscUJBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0FGK0JKO0FFN0JJOzs7RUFDRSxhQUFBO0FGaUNOO0FFOUJJOzs7RUFDRSwyQkFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSx1QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxzQkFBQTtBRmtDTjtBRWhDTTs7O0VBQ0UsT0FBQTtBRm9DUjtBRWpDTTs7O0VBQ0UsY0FBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0FGcUNSO0FFakNJOzs7RUFDRSxtQkFBQTtBRnFDTjtBRW5DTTs7O0VBQ0UsYUFBQTtBRnVDUjtBRWxDRTs7O0VBQ0UseUJBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0FGc0NKO0FFcENJOzs7RUFDRSxZQUFBO0FGd0NOO0FFckNJOzs7RUFDRSxxQ0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtFQUNBLGdCQUFBO0FGeUNOO0FFckNFOzs7RUFDRSxhQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0FGeUNKO0FFdENFOzs7RUFDRSx5QkFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxXQUFBO0VBQ0EsOEJBQUE7RUFDQSwrQkFBQTtFQUNBLGdDQUFBO0VBQ0EscUJBQUE7QUYwQ0o7QUV4Q0k7RUFWRjs7O0lBV0ksV0FBQTtJQUNBLGNBQUE7RUY2Q0o7QUFDRjtBRTNDSTs7O0VBQ0UsYUFBQTtBRitDTjtBRTVDSTs7O0VBQ0UsaUJBQUE7RUFDQSxnQkFBQTtBRmdETjtBRTlDTTtFQUpGOzs7SUFLSSxjQUFBO0VGbUROO0FBQ0Y7QUU5Q007RUFGRjs7Ozs7O0lBR0ksY0FBQTtFRnNETjtBQUNGO0FFbkRJOzs7RUFDRSw2QkFBQTtBRnVETjtBRXRETTtFQUZGOzs7SUFHSSxjQUFBO0lBQ0EsZ0JBQUE7RUYyRE47QUFDRjtBRXpETTs7O0VBQ0UsZ0JBQUE7QUY2RFI7QUUxRE07Ozs7OztFQUVFLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSw4QkFBQTtBRmdFUjtBRTlEUTtFQU5GOzs7Ozs7SUFPSSxXQUFBO0lBQ0EsY0FBQTtFRnNFUjtBQUNGO0FFbkVNOzs7RUFDRSxpQkFBQTtFQUNBLHdMQUFBO0VBQ0EsbUJBQUE7QUZ1RVI7QUV0RVE7RUFKRjs7O0lBS0ksbUJBQUE7RUYyRVI7QUFDRjtBRXhFTTs7O0VBQ0UsbUJBQUE7QUY0RVI7QUUxRVE7OztFQUNFLFNBQUE7RUFDQSxVQUFBO0FGOEVWO0FFeEVFOzs7RUFDRSxTQUFBO0FGNEVKO0FFekVFOzs7RUFDRSxTQUFBO0VBQ0EsWUFBQTtBRjZFSjtBRTFFRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQUNFLGFBQUE7QUYwR0o7QUV2R0U7OztFQUNFLFdBQUE7QUYyR0o7QUV4R0U7Ozs7O0VBQ0UscUJBQUE7QUY4R0o7QUUxR0k7Ozs7O0VBQ0UsY0FBQTtBRmdITjtBRTdHSTs7O0VBQ0UscUJBQUE7QUZpSE47QUU3R0U7Ozs7O0VBQ0UsZ0JBQUE7QUZtSEo7QUUvR0k7Ozs7O0VBQ0UsV0FBQTtBRnFITjtBRWpIRTs7Ozs7RUFDRSxTQUFBO0VBQ0Esb0JBQUE7QUZ1SEo7QUVwSEU7OztFQUNFLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0VBQ0EsbUJBQUE7QUZ3SEo7QUVySEU7OztFQUNFLGdCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0VBQ0EscUJBQUE7QUZ5SEo7QUV0SEU7OztFQUNFLFdBQUE7QUYwSEo7QUV2SEU7OztFQUNFLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBO0FGMkhKO0FFeEhFOzs7RUFDRSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxzQkFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0FGNEhKO0FFMUhJOzs7RUFDRSxhQUFBO0FGOEhOO0FFM0hJOzs7RUFDRSxZQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsY0FBQTtBRitITjtBRTVISTs7O0VBQ0UsWUFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLGFBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLGNBQUE7QUZnSU47QUUxSEE7aURBQUE7QUFPRTs7OztFQUNFLGVBQUE7QUYySEo7QUV4SEU7Ozs7Ozs7Ozs7Ozs7RUFDRSx3TEFBQTtBRnNJSjtBRW5JRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQU9FLGVBQUE7RUFDQSxpQkFBQTtFQUNBLHNCQUFBO0VBQ0EsMEJBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBO0FGMEpKO0FFdEpJOzs7O0VBQ0Usc0JBQUE7QUYySk47QUV4Skk7Ozs7Ozs7RUFDRSxnQkFBQTtFQUNBLGlCQUFBO0FGZ0tOO0FFN0pJOzs7Ozs7Ozs7O0VBQ0UsZUFBQTtFQUNBLHdMQUFBO0FGd0tOO0FFcktJOzs7Ozs7Ozs7Ozs7Ozs7O0VBTUUsY0FBQTtBRmlMTjtBRS9LTTs7Ozs7Ozs7Ozs7Ozs7OztFQUNFLFdBQUE7QUZnTVI7QUU1TEk7Ozs7Ozs7RUFFRSwrQkFBQTtFQUNBLGFBQUE7QUZtTU47QUUvTEU7Ozs7RUFDRSxVQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0FGb01KO0FFbE1JOzs7Ozs7O0VBRUUsK0JBQUE7RUFDQSxhQUFBO0FGeU1OO0FFcE1JOzs7Ozs7Ozs7Ozs7Ozs7O0VBTUUsZ0JBQUE7QUZnTk47QUU1TUU7Ozs7RUFDRSxjQUFBO0VBQ0EsYUFBQTtFQUNBLGlCQUFBO0FGaU5KO0FFL01JOzs7Ozs7O0VBRUUsK0JBQUE7RUFDQSxhQUFBO0FGc05OO0FFbE5FOzs7O0VBQ0Usa0JBQUE7QUZ1Tko7QUd6c0JBOztFQUFBO0FBb0JBOzs7Ozs7K0ZBQUE7QUFPQTtFQUNFLHdCQUFBO0VBQ0Esb0RBQUE7RUFDQSxpWEFBQTtFQUtBLG1CQUFBO0VBQ0Esa0JBQUE7QUh1ckJGO0FHOW9CQTs7OzsrRkFBQTtBQzdFQTs7RUFBQTtBQUlBO0VBQ0UsZ0JBQUE7RUFDQSxtQkFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0FKaXVCRjtBSTl0QkE7RUFDRSxnQkFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtBSml1QkY7QUkvdEJFO0VBRUUsK0NBQUE7QUpndUJKO0FJNXRCQTs7RUFRRSxXQUpRO0VBS1Isa0JBSlM7RUFLVCxnQkFKVTtBSjZ0Qlo7QUl2dEJFOzs7O0VBR0UsbUJBUmE7QUprdUJqQjtBSXR0QkE7O0VBUUUsaUJBQUE7RUFDQSxXQUxRO0VBTVIsa0JBTFM7RUFNVCxnQkFMVTtBSnd0Qlo7QUlqdEJFOzs7O0VBR0UsZ0JBVGE7QUo2dEJqQjtBSWh0QkE7O0VBUUUsV0FKUTtFQUtSLGtCQUpTO0VBS1QsZ0JBSlU7QUppdEJaO0FJM3NCRTs7OztFQUdFLG1CQVJhO0FKc3RCakI7QUkzc0JFOztFRHRCQSwrQkFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VBQ0EsY0FBQTtFQUNBLG1DQUFBO0VBQ0Esa0NBQUE7RUNlRSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0VBQ0Esc0JBQUE7QUp1dEJKO0FJbnRCQTs7RUFRRSxXQUpRO0VBS1Isa0JBSlM7RUFLVCxnQkFKVTtBSm90Qlo7QUk5c0JFOzs7O0VBR0UsbUJBUmE7QUp5dEJqQjtBSTlzQkU7O0VBQ0UscUJBQUE7RUFDQSxzQkFBQTtBSml0Qko7QUk5c0JFOztFRHREQSwrQkFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VBQ0EsY0FBQTtFQUNBLG1DQUFBO0VBQ0Esa0NBQUE7RUMrQ0UsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxxQkFBQTtFQUNBLHNCQUFBO0FKMHRCSjtBSXR0QkE7RUFDRSxjQUFBO0FKeXRCRjtBSXR0QkE7RUFDRSxTQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VBQ0Esc0NBQUE7QUp5dEJGO0FJdHRCQTs7RUFJRSxXQUFBO0FKdXRCRjtBSXB0QkE7O0VBSUUsV0FBQTtBSnF0QkY7QUlsdEJBOztFQUlFLFVBQUE7RUFDQSxXQUFBO0FKbXRCRjtBSWh0QkE7RUFDRSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtFQUNBLHNCQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtFQUNBLHNCQUFBO0VBQ0EsY0FBQTtFQUNBLHFCQUFBO0FKbXRCRjtBSWp0QkU7RUFDRSxzQkFBQTtBSm10Qko7QUlodEJFO0VBRUUsK0JBQUE7RUFDQSxhQUFBO0FKaXRCSjtBSTdzQkE7RUFDRSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxtQkFBQTtBSmd0QkY7QUk1c0JFO0VBREY7SUFFSSxnQkFBQTtJQUNBLFlBQUE7SUFDQSxxQkFBQTtJQUNBLFdBQUE7SUFDQSxzQkFBQTtJQUNBLGtCQUFBO0lBQ0Esa0JBQUE7RUpndEJGO0VJOXNCRTtJQUNFLHFCQUFBO0lBQ0Esc0JBQUE7RUpndEJKO0VJN3NCRTtJRC9JRiwrQkFBQTtJQUNBLFdBQUE7SUFDQSxrQkFBQTtJQUNBLG1CQUFBO0lBQ0Esb0JBQUE7SUFDQSxvQkFBQTtJQUNBLG9CQUFBO0lBQ0EsY0FBQTtJQUNBLG1DQUFBO0lBQ0Esa0NBQUE7SUN3SUksZ0JBQUE7SUFDQSxjQUFBO0lBQ0Esc0JBQUE7RUp3dEJKO0FBQ0Y7QUlqdEJFO0VBQ0UsZ0JBQUE7QUpvdEJKO0FJbHRCSTtFQUNFLFVBQUE7QUpvdEJOO0FJaHRCTTtFQUNFLGlCQUFBO0FKa3RCUjtBSTlzQkk7RUFDRSxXQUFBO0VBQ0EsOEJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0FKZ3RCTjtBSTdzQkk7RUFDRSxRQUFBO0VBQ0EsVUFBQTtFQUNBLGlDQUFBO0FKK3NCTjtBSTdzQk07RUFFRSxjQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTtFQUNBLFlBQUE7RUFDQSwrQkFBQTtBSjhzQlI7QUk1c0JRO0VBQ0UsWUFBQTtBSjhzQlY7QUkzc0JRO0VBQ0UsYUFBQTtBSjZzQlY7QUkxc0JRO0VBQ0UsY0FBQTtFQUNBLGdCQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7QUo0c0JWO0FJenNCUTtFQUNFLFdBQUE7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0FKMnNCVjtBSXZzQk07RUFDRSxVQUFBO0VBQ0EsMEJBQUE7QUp5c0JSO0FJdHNCTTtFQUNFLFdBQUE7RUFDQSx3QkFBQTtBSndzQlI7QUlsc0JJO0VBQ0UsZ0JBQUE7QUpvc0JOO0FJbHNCTTtFQUNFLGFBQUE7RUFDQSxXQWhGTztFQWlGUCxZQWpGTztBSnF4QmY7QUluc0JJO0VBQ0MsYUFBQTtBSnFzQkw7QUk5ckJJO0VBQ0UsZ0JBQUE7QUpnc0JOO0FJOXJCTTtFQUNFLGFBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLHNCQUFBO0VBQ0EsbUJBQUE7QUpnc0JSO0FJOXJCUTtFQUNFLHNCQUFBO0FKZ3NCVjtBSXhyQkEsZ0JBQUE7QUFDQTtFQUNFLGNBQUE7QUoyckJGO0FJenJCRTtFQUhGO0lBSUksYUFBQTtFSjRyQkY7QUFDRjtBSXpyQkE7RUFDRSxhQUFBO0FKNHJCRjtBSTFyQkU7RUFIRjtJQUlJLGNBQUE7RUo2ckJGO0FBQ0YiLCJmaWxlIjoiY3NzL2JnZV9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIGJhc2VyQ01TIDogIEJhc2VkIFdlYnNpdGUgRGV2ZWxvcG1lbnQgUHJvamVjdCA8aHR0cHM6Ly9iYXNlcmNtcy5uZXQ+XG4gKiBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uIDxodHRwczovL2Jhc2VyZm91bmRhdGlvbi5vcmcvPlxuICpcbiAqIEBjb3B5cmlnaHQgICAgIENvcHlyaWdodCAoYykgTlBPIGJhc2VyIGZvdW5kYXRpb25cbiAqIEBsaW5rICAgICAgICAgIGh0dHBzOi8vYmFzZXJjbXMubmV0IGJhc2VyQ01TIFByb2plY3RcbiAqIEBzaW5jZSAgICAgICAgIDUuMC4wXG4gKiBAbGljZW5zZSAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldC9saWNlbnNlL2luZGV4Lmh0bWwgTUlUIExpY2Vuc2VcbiAqL1xuLyoqXG4gKiDjg5Djg7zjgqzjg7zjgqjjg4fjgqPjgr/jg7zjgrnjgr/jgqTjg6tcbiAqIOeuoeeQhueUu+mdouOBp+OCguWRvOOBs+WHuuOBleOCjOOCi1xuICovXG4vKipcbiAqIOOCqOODh+OCo+OCv+ODvOeUqENTU1xuICovXG4uY2tlX2VkaXRhYmxlIHtcbiAgcGFkZGluZzogMTVweDtcbn1cblxuLyogRWRpdG9yIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJzLW1haW4tY29udGVudHMsXG4uYmdlLWNvbnRlbnRzLFxuLmNrZV9lZGl0YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgVmVyZGFuYSwgXCLmuLjjgrTjgrfjg4Pjgq9cIiwgWXVHb3RoaWMsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvTlwiLCBNZWlyeW8sIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDEsXG4uYmdlLWNvbnRlbnRzIGgxLFxuLmNrZV9lZGl0YWJsZSBoMSB7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoMixcbi5iZ2UtY29udGVudHMgaDIsXG4uY2tlX2VkaXRhYmxlIGgyIHtcbiAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDIuMmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAwLjZlbSAwO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgaDI6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGgyOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoMjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoMyxcbi5iZ2UtY29udGVudHMgaDMsXG4uY2tlX2VkaXRhYmxlIGgzIHtcbiAgbWFyZ2luOiA1NnB4IDAgMjBweCAwO1xuICBwYWRkaW5nOiAxM3B4IDI4cHggMTJweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBsaW5lLWhlaWdodDogNDguM3B4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJzLW1haW4tY29udGVudHMgaDM6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGgzOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoMzpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNCxcbi5iZ2UtY29udGVudHMgaDQsXG4uY2tlX2VkaXRhYmxlIGg0IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4ICNDQ0MgZG90dGVkO1xuICBmb250LXNpemU6IDIycHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDUwcHggMCAxN3B4IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGg0OmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyBoNDpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgaDQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDUsXG4uYmdlLWNvbnRlbnRzIGg1LFxuLmNrZV9lZGl0YWJsZSBoNSB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJzLW1haW4tY29udGVudHMgaDU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGg1OmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoNTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNixcbi5iZ2UtY29udGVudHMgaDYsXG4uY2tlX2VkaXRhYmxlIGg2IHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW46IDFlbSAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAuM2VtIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNjpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgaDY6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGg2OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHN0cm9uZyxcbi5iZ2UtY29udGVudHMgc3Ryb25nLFxuLmNrZV9lZGl0YWJsZSBzdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1LFxuLmJnZS1jb250ZW50cyB1LFxuLmNrZV9lZGl0YWJsZSB1IHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHMsXG4uYmdlLWNvbnRlbnRzIHMsXG4uY2tlX2VkaXRhYmxlIHMge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuLmJzLW1haW4tY29udGVudHMgZW0sXG4uYmdlLWNvbnRlbnRzIGVtLFxuLmNrZV9lZGl0YWJsZSBlbSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5icy1tYWluLWNvbnRlbnRzIGhyLFxuLmJnZS1jb250ZW50cyBocixcbi5ja2VfZWRpdGFibGUgaHIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGNvbG9yOiAjZGRkO1xuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiA1MHB4IGF1dG87XG59XG4uYnMtbWFpbi1jb250ZW50cyBocjpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgaHI6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGhyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsLFxuLmJnZS1jb250ZW50cyB1bCxcbi5ja2VfZWRpdGFibGUgdWwge1xuICBtYXJnaW46IDIwcHggMCAzNnB4IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1cmVtO1xufVxuLmJzLW1haW4tY29udGVudHMgdWw6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIHVsOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSB1bDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCBsaSxcbi5iZ2UtY29udGVudHMgdWwgbGksXG4uY2tlX2VkaXRhYmxlIHVsIGxpIHtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMCAwIDI1cHg7XG4gIG1hcmdpbjogMC41ZW0gMCAwLjVlbSAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCBsaSBhLFxuLmJnZS1jb250ZW50cyB1bCBsaSBhLFxuLmNrZV9lZGl0YWJsZSB1bCBsaSBhIHtcbiAgem9vbTogMTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsIGxpOmJlZm9yZSxcbi5iZ2UtY29udGVudHMgdWwgbGk6YmVmb3JlLFxuLmNrZV9lZGl0YWJsZSB1bCBsaTpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDlweDtcbiAgbGVmdDogMXB4O1xuICB3aWR0aDogNnB4O1xuICBoZWlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZDogIzE4MTgxODtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLmJzLW1haW4tY29udGVudHMgdWwgdWwsXG4uYmdlLWNvbnRlbnRzIHVsIHVsLFxuLmNrZV9lZGl0YWJsZSB1bCB1bCB7XG4gIG1hcmdpbjogMCAwIDAgMS44ZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCB1bDpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgdWwgdWw6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIHVsIHVsOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIG9sLFxuLmJnZS1jb250ZW50cyBvbCxcbi5ja2VfZWRpdGFibGUgb2wge1xuICBtYXJnaW46IDIwcHggMCAzNnB4IDEuOGVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNXJlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIG9sIG9sLFxuLmJnZS1jb250ZW50cyBvbCBvbCxcbi5ja2VfZWRpdGFibGUgb2wgb2wge1xuICBtYXJnaW46IDIwcHg7XG59XG4uYnMtbWFpbi1jb250ZW50cyBvbCBsaSxcbi5iZ2UtY29udGVudHMgb2wgbGksXG4uY2tlX2VkaXRhYmxlIG9sIGxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsLWxlYWRpbmctemVybztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDAgMCAwO1xuICBtYXJnaW46IDAuNWVtIDAgMC41ZW0gMDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHAsXG4uYmdlLWNvbnRlbnRzIHAsXG4uY2tlX2VkaXRhYmxlIHAge1xuICBtYXJnaW46IDFlbSAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDIuMztcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlLFxuLmJnZS1jb250ZW50cyB0YWJsZSxcbi5ja2VfZWRpdGFibGUgdGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMWUxZTE7XG4gIG1hcmdpbjogMjBweCAwIDIwcHggMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLmJzLW1haW4tY29udGVudHMgdGFibGU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIHRhYmxlOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSB0YWJsZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuLmJnZS1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSBjYXB0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIGNhcHRpb24sXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgY2FwdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRib2R5LFxuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0Zm9vdCxcbiAgLmJnZS1jb250ZW50cyB0YWJsZSB0Ym9keSxcbiAgLmJnZS1jb250ZW50cyB0YWJsZSB0Zm9vdCxcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB0Ym9keSxcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB0Zm9vdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0cixcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2UxZTFlMTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIHRyLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0cjpudGgtY2hpbGQob2RkKSB0ZCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgdGQsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHRkIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0ZCxcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMjZweCAyNHB4O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMWUxZTE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0aCxcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGQsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0aCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRoIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIH1cbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRkLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0ZCxcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGQge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQgdWwsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRkIHVsLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSB0ciB0ZCB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGZpZWxkc2V0LFxuLmJnZS1jb250ZW50cyBmaWVsZHNldCxcbi5ja2VfZWRpdGFibGUgZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbWcsXG4uYmdlLWNvbnRlbnRzIGltZyxcbi5ja2VfZWRpdGFibGUgaW1nIHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IGF1dG87XG59XG4uYnMtbWFpbi1jb250ZW50cyBhZGRyZXNzLCAuYnMtbWFpbi1jb250ZW50cyBidXR0b24sIC5icy1tYWluLWNvbnRlbnRzIGNhcHRpb24sIC5icy1tYWluLWNvbnRlbnRzIGNpdGUsIC5icy1tYWluLWNvbnRlbnRzIGNvZGUsIC5icy1tYWluLWNvbnRlbnRzIGRmbiwgLmJzLW1haW4tY29udGVudHMgZW0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0LCAuYnMtbWFpbi1jb250ZW50cyBvcHRncm91cCwgLmJzLW1haW4tY29udGVudHMgb3B0aW9uLCAuYnMtbWFpbi1jb250ZW50cyBzZWxlY3QsIC5icy1tYWluLWNvbnRlbnRzIHN0cm9uZywgLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsIC5icy1tYWluLWNvbnRlbnRzIHRoLCAuYnMtbWFpbi1jb250ZW50cyB2YXIsXG4uYmdlLWNvbnRlbnRzIGFkZHJlc3MsXG4uYmdlLWNvbnRlbnRzIGJ1dHRvbixcbi5iZ2UtY29udGVudHMgY2FwdGlvbixcbi5iZ2UtY29udGVudHMgY2l0ZSxcbi5iZ2UtY29udGVudHMgY29kZSxcbi5iZ2UtY29udGVudHMgZGZuLFxuLmJnZS1jb250ZW50cyBlbSxcbi5iZ2UtY29udGVudHMgaW5wdXQsXG4uYmdlLWNvbnRlbnRzIG9wdGdyb3VwLFxuLmJnZS1jb250ZW50cyBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIHNlbGVjdCxcbi5iZ2UtY29udGVudHMgc3Ryb25nLFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgdGgsXG4uYmdlLWNvbnRlbnRzIHZhcixcbi5ja2VfZWRpdGFibGUgYWRkcmVzcyxcbi5ja2VfZWRpdGFibGUgYnV0dG9uLFxuLmNrZV9lZGl0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSBjaXRlLFxuLmNrZV9lZGl0YWJsZSBjb2RlLFxuLmNrZV9lZGl0YWJsZSBkZm4sXG4uY2tlX2VkaXRhYmxlIGVtLFxuLmNrZV9lZGl0YWJsZSBpbnB1dCxcbi5ja2VfZWRpdGFibGUgb3B0Z3JvdXAsXG4uY2tlX2VkaXRhYmxlIG9wdGlvbixcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBzdHJvbmcsXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmNrZV9lZGl0YWJsZSB0aCxcbi5ja2VfZWRpdGFibGUgdmFyIHtcbiAgZm9udDogaW5oZXJpdDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNtYWxsLFxuLmJnZS1jb250ZW50cyBzbWFsbCxcbi5ja2VfZWRpdGFibGUgc21hbGwge1xuICBjb2xvcjogIzY2Njtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGRlbCwgLmJzLW1haW4tY29udGVudHMgaW5zLFxuLmJnZS1jb250ZW50cyBkZWwsXG4uYmdlLWNvbnRlbnRzIGlucyxcbi5ja2VfZWRpdGFibGUgZGVsLFxuLmNrZV9lZGl0YWJsZSBpbnMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBhOmxpbmssIC5icy1tYWluLWNvbnRlbnRzIGE6dmlzaXRlZCxcbi5iZ2UtY29udGVudHMgYTpsaW5rLFxuLmJnZS1jb250ZW50cyBhOnZpc2l0ZWQsXG4uY2tlX2VkaXRhYmxlIGE6bGluayxcbi5ja2VfZWRpdGFibGUgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICMyYjdiYjk7XG59XG4uYnMtbWFpbi1jb250ZW50cyBhOmhvdmVyLFxuLmJnZS1jb250ZW50cyBhOmhvdmVyLFxuLmNrZV9lZGl0YWJsZSBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgY2FwdGlvbiwgLmJzLW1haW4tY29udGVudHMgdGgsXG4uYmdlLWNvbnRlbnRzIGNhcHRpb24sXG4uYmdlLWNvbnRlbnRzIHRoLFxuLmNrZV9lZGl0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSB0aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyBxOmJlZm9yZSwgLmJzLW1haW4tY29udGVudHMgcTphZnRlcixcbi5iZ2UtY29udGVudHMgcTpiZWZvcmUsXG4uYmdlLWNvbnRlbnRzIHE6YWZ0ZXIsXG4uY2tlX2VkaXRhYmxlIHE6YmVmb3JlLFxuLmNrZV9lZGl0YWJsZSBxOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGFiYnIsIC5icy1tYWluLWNvbnRlbnRzIGFjcm9ueW0sXG4uYmdlLWNvbnRlbnRzIGFiYnIsXG4uYmdlLWNvbnRlbnRzIGFjcm9ueW0sXG4uY2tlX2VkaXRhYmxlIGFiYnIsXG4uY2tlX2VkaXRhYmxlIGFjcm9ueW0ge1xuICBib3JkZXI6IDA7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xufVxuLmJzLW1haW4tY29udGVudHMgc3ViLFxuLmJnZS1jb250ZW50cyBzdWIsXG4uY2tlX2VkaXRhYmxlIHN1YiB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xufVxuLmJzLW1haW4tY29udGVudHMgc3VwLFxuLmJnZS1jb250ZW50cyBzdXAsXG4uY2tlX2VkaXRhYmxlIHN1cCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG59XG4uYnMtbWFpbi1jb250ZW50cyBsZWdlbmQsXG4uYmdlLWNvbnRlbnRzIGxlZ2VuZCxcbi5ja2VfZWRpdGFibGUgbGVnZW5kIHtcbiAgY29sb3I6ICMwMDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBwcmUsXG4uYmdlLWNvbnRlbnRzIHByZSxcbi5ja2VfZWRpdGFibGUgcHJlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YzRjNGMztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgYm9yZGVyOiAxcHggc29saWQgI0UyRTJFMjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGJsb2NrcXVvdGUsXG4uYmdlLWNvbnRlbnRzIGJsb2NrcXVvdGUsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMWVtIDA7XG4gIHBhZGRpbmc6IDFweCAyLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDJweCBzb2xpZCAjY2NjO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgYmxvY2txdW90ZTo6YmVmb3JlLFxuLmJnZS1jb250ZW50cyBibG9ja3F1b3RlOjpiZWZvcmUsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi4oCcXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogc2VyaWY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjNlbTtcbiAgbGVmdDogMC4yNWVtO1xuICB6LWluZGV4OiAwO1xuICBjb2xvcjogI2NjYztcbiAgZm9udC1zaXplOiAzZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyBibG9ja3F1b3RlOjphZnRlcixcbi5iZ2UtY29udGVudHMgYmxvY2txdW90ZTo6YWZ0ZXIsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6OmFmdGVyIHtcbiAgY29udGVudDogXCLigJ1cIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBzZXJpZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0wLjNlbTtcbiAgcmlnaHQ6IDAuMjVlbTtcbiAgei1pbmRleDogMDtcbiAgY29sb3I6ICNjY2M7XG4gIGZvbnQtc2l6ZTogM2VtO1xufVxuXG4vKiBGb3JtIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJzLW1haW4tY29udGVudHMgZm9ybSxcbi5iZ2UtY29udGVudHMgZm9ybSxcbi5ja2VfZWRpdGFibGUgZm9ybSxcbi5icy1zdWItY29udGVudHMgZm9ybSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0LCAuYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYSwgLmJzLW1haW4tY29udGVudHMgc2VsZWN0LCAuYnMtbWFpbi1jb250ZW50cyBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIGlucHV0LFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgc2VsZWN0LFxuLmJnZS1jb250ZW50cyBvcHRpb24sXG4uY2tlX2VkaXRhYmxlIGlucHV0LFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYSxcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBvcHRpb24sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0LFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYSxcbi5icy1zdWItY29udGVudHMgc2VsZWN0LFxuLmJzLXN1Yi1jb250ZW50cyBvcHRpb24ge1xuICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsXG4uYnMtbWFpbi1jb250ZW50cyBzZWxlY3QsXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYmdlLWNvbnRlbnRzIHRleHRhcmVhLFxuLmJnZS1jb250ZW50cyBzZWxlY3QsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRleHRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZWxdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPW51bWJlcl0sXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3QsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYnMtc3ViLWNvbnRlbnRzIHRleHRhcmVhLFxuLmJzLXN1Yi1jb250ZW50cyBzZWxlY3Qge1xuICBtYXJnaW46IDNweCAycHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cmFkaW9dLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1yYWRpb10sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXJhZGlvXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cmFkaW9dLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1zdWJtaXRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXJlc2V0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1idXR0b25dLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXN1Ym1pdF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cmVzZXRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWJ1dHRvbl0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9c3VibWl0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1yZXNldF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9YnV0dG9uXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1zdWJtaXRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXJlc2V0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1idXR0b25dIHtcbiAgbWFyZ2luOiAzcHggMnB4O1xuICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRleHRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZWxdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XTo6cGxhY2Vob2xkZXIsIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1wYXNzd29yZF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRlbF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGV4dF06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9bnVtYmVyXTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjY2NjO1xufVxuLmJzLW1haW4tY29udGVudHMgaW5wdXQ6YWN0aXZlLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dDpmb2N1cyxcbi5iZ2UtY29udGVudHMgaW5wdXQ6YWN0aXZlLFxuLmJnZS1jb250ZW50cyBpbnB1dDpmb2N1cyxcbi5ja2VfZWRpdGFibGUgaW5wdXQ6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSBpbnB1dDpmb2N1cyxcbi5icy1zdWItY29udGVudHMgaW5wdXQ6YWN0aXZlLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWEsXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYSB7XG4gIHdpZHRoOiA5NSU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nOiAzcHggM3B4O1xufVxuLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLCAuYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyxcbi5ja2VfZWRpdGFibGUgdGV4dGFyZWE6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYTpmb2N1cyxcbi5icy1zdWItY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZXh0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1lbWFpbF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNlbGVjdCxcbi5iZ2UtY29udGVudHMgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBzZWxlY3QsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBoZWlnaHQ6IDIuNmVtO1xuICBwYWRkaW5nOiAxMHB4IDhweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNlbGVjdDphY3RpdmUsIC5icy1tYWluLWNvbnRlbnRzIHNlbGVjdDpmb2N1cyxcbi5iZ2UtY29udGVudHMgc2VsZWN0OmFjdGl2ZSxcbi5iZ2UtY29udGVudHMgc2VsZWN0OmZvY3VzLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3Q6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3Q6Zm9jdXMsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdDphY3RpdmUsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBvcHRncm91cCBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIG9wdGdyb3VwIG9wdGlvbixcbi5ja2VfZWRpdGFibGUgb3B0Z3JvdXAgb3B0aW9uLFxuLmJzLXN1Yi1jb250ZW50cyBvcHRncm91cCBvcHRpb24ge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG5cbi8qKlxuICog5aSJ5pWwXG4gKi9cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44OV44Kp44Oz44OI44Gu5a6a576pXG4gKiBGb250IEF3ZXNvbWUgNC42LjMgYnkgQGRhdmVnYW5keSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZVxuICogTGljZW5zZSAtIGh0dHA6Ly9mb250YXdlc29tZS5pby9saWNlbnNlIChGb250OiBTSUwgT0ZMIDEuMSwgQ1NTOiBNSVQgTGljZW5zZSlcbiAqXG4gKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/dj00LjYuM1wiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD8jaWVmaXgmdj00LjYuM1wiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmMj92PTQuNi4zXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LndvZmY/dj00LjYuM1wiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnR0Zj92PTQuNi4zXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnN2Zz92PTQuNi4zI2ZvbnRhd2Vzb21lcmVndWxhclwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44Oe44Or44OB44Kr44Op44Og44OW44Ot44OD44Kv44Gu44Os44Kk44Ki44Km44OIXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG4vKipcbiAqIEJ1cmdlckVkaXRvciBTdHlsZVNoZWV0IFN0eWxlXG4gKi9cbi5iZ3QtYm94X19jYXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogM3B4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuXG4uYmd0LWJ0biB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZzogMTJweCAxMHB4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtaW4td2lkdGg6IDI4MHB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG4uYmd0LWJ0bjphY3RpdmUsIC5iZ3QtYnRuOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggMCAjMDU3MGM3LCAwIDAgMTBweCAwICNmZmY7XG59XG5cbi5iZ3QtYnRuLS1saW5rLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJvcmRlci1jb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5iZ3QtYnRuLS1saW5rOmhvdmVyLCAuYmd0LWJ0bi0tbGluazphY3RpdmUsIC5iZ3QtYnRuLS1saW5rOmZvY3VzLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuOmhvdmVyLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuOmFjdGl2ZSxcbltkYXRhLWJndC1idXR0b24ta2luZD1saW5rXSAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNlOWU5ZTk7XG59XG5cbi5iZ3QtYnRuLS1lbSxcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG4ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZDogIzMzMztcbn1cbi5iZ3QtYnRuLS1lbTpob3ZlciwgLmJndC1idG4tLWVtOmFjdGl2ZSwgLmJndC1idG4tLWVtOmZvY3VzLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWVtXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG46YWN0aXZlLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWVtXSAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICM1NTU7XG59XG5cbi5iZ3QtYnRuLS1leHRlcm5hbCxcbltkYXRhLWJndC1idXR0b24ta2luZD1leHRlcm5hbF0gLmJndC1idG4ge1xuICBjb2xvcjogIzMzMztcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmJndC1idG4tLWV4dGVybmFsOmhvdmVyLCAuYmd0LWJ0bi0tZXh0ZXJuYWw6YWN0aXZlLCAuYmd0LWJ0bi0tZXh0ZXJuYWw6Zm9jdXMsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOmhvdmVyLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWV4dGVybmFsXSAuYmd0LWJ0bjphY3RpdmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogI2U5ZTllOTtcbn1cbi5iZ3QtYnRuLS1leHRlcm5hbDo6YWZ0ZXIsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOjphZnRlciB7XG4gIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZSwgc2VyaWY7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgY29udGVudDogXCJcXGYwOGVcIjtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiAjOTk5O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYmd0LWJ0bi0tYmFjayxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0biB7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG4gIGJhY2tncm91bmQ6ICNkZGQ7XG59XG4uYmd0LWJ0bi0tYmFjazpob3ZlciwgLmJndC1idG4tLWJhY2s6YWN0aXZlLCAuYmd0LWJ0bi0tYmFjazpmb2N1cyxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjphY3RpdmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG46Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjZTllOWU5O1xufVxuLmJndC1idG4tLWJhY2sgc3BhbixcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0biBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmJndC1idG4tLWJhY2s6OmJlZm9yZSxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjo6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lLCBzZXJpZjtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBjb250ZW50OiBcIlxcZjA1M1wiO1xuICBmb250LXNpemU6IDFlbTtcbiAgbWFyZ2luLXRvcDogLTJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYmd0LWhyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbltkYXRhLWJndC1oci1raW5kPWRhc2hlZF0gLmJndC1ociB7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcbn1cblxuLmJndC1oci0tYm9sZCxcbltkYXRhLWJndC1oci1raW5kPWJvbGRdIC5iZ3QtaHIge1xuICBoZWlnaHQ6IDVweDtcbn1cblxuLmJndC1oci0tbmFycm93LFxuW2RhdGEtYmd0LWhyLWtpbmQ9bmFycm93XSAuYmd0LWhyIHtcbiAgaGVpZ2h0OiAxcHg7XG59XG5cbi5iZ3QtaHItLXNob3J0LFxuW2RhdGEtYmd0LWhyLWtpbmQ9c2hvcnRdIC5iZ3QtaHIge1xuICB3aWR0aDogNjAlO1xuICBoZWlnaHQ6IDFweDtcbn1cblxuLmJndC1kb3dubG9hZC1maWxlX19saW5rIHtcbiAgY29sb3I6ICMzMzM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMS4wOGVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjdlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5iZ3QtZG93bmxvYWQtZmlsZV9fbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4uYmd0LWRvd25sb2FkLWZpbGVfX2xpbms6YWN0aXZlLCAuYmd0LWRvd25sb2FkLWZpbGVfX2xpbms6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDFweCAjMDU3MGM3O1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uYmd0LWxpbmtfX3NpemUge1xuICBjb2xvcjogIzgwODA4MDtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJndC1nb29nbGUtbWFwcy1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggIzk5OTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5iZ3QtZ29vZ2xlLW1hcHMtbGluayBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuYmd0LWdvb2dsZS1tYXBzLWxpbms6OmFmdGVyIHtcbiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWUsIHNlcmlmO1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgY29udGVudDogXCJcXGYwOGVcIjtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnkge1xuICBwYWRkaW5nLXRvcDogNTQlO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeTpob3ZlciBbZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmwge1xuICBvcGFjaXR5OiAxO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeV9faW1nIGltZyB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeV9fY2FwdGlvbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIHBhZGRpbmc6IDAuN2VtIDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsIHtcbiAgdG9wOiA1MCU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbjtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldiwgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogLTIwcHggMCAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXY6aG92ZXIsIFtkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dDpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldjpmb2N1cywgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldiBzcGFuLCBbZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX25leHQgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19wcmV2OjphZnRlciwgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXI6IHNvbGlkICNmZmY7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwIDA7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXYge1xuICBsZWZ0OiAyMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dCB7XG4gIHJpZ2h0OiAyMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9dGh1bWJzXSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPXRodW1ic10gKyAuYmd0LWdhbGxlcnktbWFya2VyIGxpIHtcbiAgbWFyZ2luOiAwIDVweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogNjBweDtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSBbZGF0YS1nYWxsZXJ5LW1hcmtlcj10aHVtYnNdICsgLmJndC1nYWxsZXJ5LW1hcmtlciBsaTo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSBbZGF0YS1nYWxsZXJ5LW1hcmtlcj1kb3RdICsgLmJndC1nYWxsZXJ5LW1hcmtlciB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9ZG90XSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIgbGkge1xuICBtYXJnaW46IDAgMnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPWRvdF0gKyAuYmd0LWdhbGxlcnktbWFya2VyIGxpLmN1cnJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuXG4vKiDjg4fjg5DjgqTjgrnkvp3lrZjmsY7nlKjjgq/jg6njgrkgKi9cbi5wYy1vbmx5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAucGMtb25seSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc3Atb25seSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc3Atb25seSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn0iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIGJhc2VyQ01TIDogIEJhc2VkIFdlYnNpdGUgRGV2ZWxvcG1lbnQgUHJvamVjdCA8aHR0cHM6Ly9iYXNlcmNtcy5uZXQ+XG4gKiBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uIDxodHRwczovL2Jhc2VyZm91bmRhdGlvbi5vcmcvPlxuICpcbiAqIEBjb3B5cmlnaHQgICAgIENvcHlyaWdodCAoYykgTlBPIGJhc2VyIGZvdW5kYXRpb25cbiAqIEBsaW5rICAgICAgICAgIGh0dHBzOi8vYmFzZXJjbXMubmV0IGJhc2VyQ01TIFByb2plY3RcbiAqIEBzaW5jZSAgICAgICAgIDUuMC4wXG4gKiBAbGljZW5zZSAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldC9saWNlbnNlL2luZGV4Lmh0bWwgTUlUIExpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIOODkOODvOOCrOODvOOCqOODh+OCo+OCv+ODvOOCueOCv+OCpOODq1xuICog566h55CG55S76Z2i44Gn44KC5ZG844Gz5Ye644GV44KM44KLXG4gKi9cblxuQGltcG9ydCBcImNvbW1vbi9lZGl0b3JcIjtcbkBpbXBvcnQgXCJjb21tb24vYmdlX3NldHRpbmdcIjtcbkBpbXBvcnQgXCJjb21tb24vYmdlXCI7XG5cbiIsIi8qKlxuICog44Ko44OH44Kj44K/44O855SoQ1NTXG4gKi9cblxuJGJyZWFrUG9pbnQ6IDc2OHB4O1xuXG4uY2tlX2VkaXRhYmxlIHtcbiAgcGFkZGluZzogMTVweDtcbn1cblxuLyogRWRpdG9yIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYnMtbWFpbi1jb250ZW50cyxcbi5iZ2UtY29udGVudHMsXG4uY2tlX2VkaXRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBWZXJkYW5hLCBcIua4uOOCtOOCt+ODg+OCr1wiLCBZdUdvdGhpYywgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9OXCIsIE1laXJ5bywgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMwMDA7XG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1zaXplOiAyLjJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbjogMC42ZW0gMDtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbjogNTZweCAwIDIwcHggMDtcbiAgICBwYWRkaW5nOiAxM3B4IDI4cHggMTJweDtcbiAgICBmb250LXNpemU6IDIxcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQ4LjNweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIGg0IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggI0NDQyBkb3R0ZWQ7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXJnaW46IDUwcHggMCAxN3B4IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIHBhZGRpbmc6IDAuM2VtIDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICBoNiB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgdSB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICBzIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgfVxuXG4gIGVtIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICBociB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgY29sb3I6ICNkZGQ7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDUwcHggYXV0bztcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICB1bCB7XG4gICAgbWFyZ2luOiAyMHB4IDAgMzZweCAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNXJlbTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAyNXB4O1xuICAgICAgbWFyZ2luOiAwLjVlbSAwIDAuNWVtIDA7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcblxuICAgICAgYSB7XG4gICAgICAgIHpvb206IDE7XG4gICAgICB9XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogOXB4O1xuICAgICAgICBsZWZ0OiAxcHg7XG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTgxODE4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbWFyZ2luOiAwIDAgMCAxLjhlbTtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb2wge1xuICAgIG1hcmdpbjogMjBweCAwIDM2cHggMS44ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBsZXR0ZXItc3BhY2luZzogLjA1cmVtO1xuXG4gICAgb2wge1xuICAgICAgbWFyZ2luOiAyMHB4O1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbC1sZWFkaW5nLXplcm87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAwO1xuICAgICAgbWFyZ2luOiAwLjVlbSAwIDAuNWVtIDA7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyLjM7XG4gIH1cblxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTFlMWUxO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTFlMWUxO1xuICAgIG1hcmdpbjogMjBweCAwIDIwcHggMDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBjYXB0aW9uIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGJvZHksXG4gICAgdGZvb3Qge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdHIge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQob2RkKSB0ZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICB9XG5cbiAgICAgIHRoLFxuICAgICAgdGQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nOiAyNnB4IDI0cHg7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGQge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBpbWcge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cblxuICBhZGRyZXNzLCBidXR0b24sIGNhcHRpb24sIGNpdGUsIGNvZGUsIGRmbiwgZW0sIGlucHV0LCBvcHRncm91cCwgb3B0aW9uLCBzZWxlY3QsIHN0cm9uZywgdGV4dGFyZWEsIHRoLCB2YXIge1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gIH1cblxuICBzbWFsbCB7XG4gICAgY29sb3I6ICM2NjY7XG4gIH1cblxuICBkZWwsIGlucyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgYSB7XG4gICAgJjpsaW5rLCAmOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMyYjdiYjk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgY2FwdGlvbiwgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICBxIHtcbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cblxuICBhYmJyLCBhY3JvbnltIHtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIH1cblxuICBzdWIge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdWI7XG4gIH1cblxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cblxuICBwcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGM0YzRjM7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRTJFMkUyO1xuICB9XG5cbiAgYmxvY2txdW90ZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgcGFkZGluZzogMXB4IDIuNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNjY2M7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAn4oCcJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6IHNlcmlmO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwLjNlbTtcbiAgICAgIGxlZnQ6IDAuMjVlbTtcbiAgICAgIHotaW5kZXg6IDA7XG4gICAgICBjb2xvcjogI2NjYztcbiAgICAgIGZvbnQtc2l6ZTogM2VtO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICfigJ0nO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LWZhbWlseTogc2VyaWY7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0wLjNlbTtcbiAgICAgIHJpZ2h0OiAwLjI1ZW07XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgY29sb3I6ICNjY2M7XG4gICAgICBmb250LXNpemU6IDNlbTtcbiAgICB9XG4gIH1cblxufVxuXG4vKiBGb3JtIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYnMtbWFpbi1jb250ZW50cyxcbi5iZ2UtY29udGVudHMsXG4uY2tlX2VkaXRhYmxlLFxuLmJzLXN1Yi1jb250ZW50cyB7XG4gIGZvcm0ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxuXG4gIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBvcHRpb24ge1xuICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4gIGlucHV0W3R5cGU9dGV4dF0sXG4gIGlucHV0W3R5cGU9ZW1haWxdLFxuICBpbnB1dFt0eXBlPXRlbF0sXG4gIGlucHV0W3R5cGU9bnVtYmVyXSxcbiAgdGV4dGFyZWEsXG4gIHNlbGVjdCB7XG4gICAgbWFyZ2luOiAzcHggMnB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB9XG5cbiAgaW5wdXQge1xuICAgICZbdHlwZT1jaGVja2JveF0ge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmW3R5cGU9cmFkaW9dLCAmW3R5cGU9Y2hlY2tib3hdIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG5cbiAgICAmW3R5cGU9c3VibWl0XSwgJlt0eXBlPXJlc2V0XSwgJlt0eXBlPWJ1dHRvbl0ge1xuICAgICAgbWFyZ2luOiAzcHggMnB4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG4gICAgfVxuXG4gICAgJlt0eXBlPXBhc3N3b3JkXSxcbiAgICAmW3R5cGU9dGV4dF0sXG4gICAgJlt0eXBlPWVtYWlsXSxcbiAgICAmW3R5cGU9dGVsXSxcbiAgICAmW3R5cGU9bnVtYmVyXVxuICAgIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgcGFkZGluZzogM3B4IDNweDtcblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQge1xuICAgICZbdHlwZT1wYXNzd29yZF0sXG4gICAgJlt0eXBlPXRleHRdLFxuICAgICZbdHlwZT1lbWFpbF0sXG4gICAgJlt0eXBlPXRlbF0sXG4gICAgJlt0eXBlPW51bWJlcl1cbiAgICB7XG4gICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgaGVpZ2h0OiAyLjZlbTtcbiAgICBwYWRkaW5nOiAxMHB4IDhweDtcblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgb3B0Z3JvdXAgb3B0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIH1cbn1cbiIsIi8qKlxuICog5aSJ5pWwXG4gKi9cbkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuLy8gUldE44Gu44OW44Os44O844Kv44Od44Kk44Oz44OIXG4kYnJlYWtQb2ludDogNzY4cHg7XG5cbi8vIOOCq+ODqeODoOmWk+OBruODnuODvOOCuOODs1xuJG11bHRpQ29sdW1uR3JpZE1hcmdpbjogMjBweDtcblxuLy8gUldE44Gn44Kr44Op44Og44GM6JC944Gh44Gf5pmC44Gu5LiL44Oe44O844K444OzXG4kbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDogMjBweDtcblxuLy8g44Oc44K/44Oz44Gu44OV44Kp44O844Kr44K55pmC44Gu44Kr44Op44O8XG4kYnRuR2xvd0NvbG9yOiAjMDU3MGM3O1xuXG4vLyDjg4jjg6rjg6DnlLvlg4/jg5bjg63jg4Pjgq/jga7nuKbmqKrmr5RcbiR0cmltSW1hZ2VBc3BlY3RSYXRpbzogMTsgLy8gNDoz44Gu5aC05ZCI44GvMy80XG5cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44OV44Kp44Oz44OI44Gu5a6a576pXG4gKiBGb250IEF3ZXNvbWUgNC42LjMgYnkgQGRhdmVnYW5keSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZVxuICogTGljZW5zZSAtIGh0dHA6Ly9mb250YXdlc29tZS5pby9saWNlbnNlIChGb250OiBTSUwgT0ZMIDEuMSwgQ1NTOiBNSVQgTGljZW5zZSlcbiAqXG4gKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gIHNyYzogdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD92PTQuNi4zJyk7XG4gIHNyYzogdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD8jaWVmaXgmdj00LjYuMycpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LndvZmYyP3Y9NC42LjMnKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9NC42LjMnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnR0Zj92PTQuNi4zJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJy4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQuc3ZnP3Y9NC42LjMjZm9udGF3ZXNvbWVyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG4vLyDjgrDjg6rjg4Pjg4njgrfjgrnjg4bjg6Bcbi8vXG4vLyDnt6jpm4bpnZ7mjqjlpahcbi8vXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG4kc3BhbjE6IDguMzMzMyU7XG4kc3BhbjI6IDE2LjY2NjYlO1xuJHNwYW4zOiAyNSU7XG4kc3BhbjQ6IDMzLjMzMzMlO1xuJHNwYW41OiA0MS42NjY2JTtcbiRzcGFuNjogNTAlO1xuJHNwYW43OiA1OC4zMzMzJTtcbiRzcGFuODogNjYuNjY2NiU7XG4kc3Bhbjk6IDc1JTtcbiRzcGFuMTA6IDgzLjMzMzMlO1xuJHNwYW4xMTogOTEuNjY2NiU7XG4kc3BhbjEyOiAxMDAlO1xuJGRpdmlkZTU6IDIwJTsgLy8gMTLjgrDjg6rjg4Pjg4njgrfjgrnjg4bjg6Djgafjga/lho3nj77jgafjgY3jgarjgYQ15YiG5YmyXG5cbi8vIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC9cbi8vXG4vLyDjg5/jg4Pjgq/jgrnjgqTjg7Ncbi8vXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG5AbWl4aW4gYmdlLWljb24ge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWUsIHNlcmlmO1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44Oe44Or44OB44Kr44Op44Og44OW44Ot44OD44Kv44Gu44Os44Kk44Ki44Km44OIXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG5cbiVjb2x1bW4yLWxheW91dCB7XG4gIC8qIDLliJfjg5bjg63jg4Pjgq8gKi9cbiAgLmJndC1ncmlkIHtcbiAgICAvKiAy5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOOCs+ODs+ODhuODiiAqL1xuICAgIHdpZHRoOiAkc3BhbjY7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgLyog5LiL44Oe44O844K444Oz44Gv44OW44Ot44OD44Kv5YaF44Gu44K/44Kk44OX44Gu6KaB57Sg44Gr5a++44GX44Gm5oyH5a6a44GZ44KLICjnqbrnlLvlg4/lr77nrZYpICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtdWx0aUNvbHVtbkdyaWRNYXJnaW5Cb3R0b21XaGVuQ2xlYXJlZEZsb2F0O1xuXG4gICAgICAgICZbZGF0YS1iZ2UtZW1wdHk9JzEnXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmW2NsYXNzKj0nYmd0LXNwLWdyaWQnXSB7XG4gICAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIC8qIDLliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So5pyA5Yid44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luLCAyKTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAvKiAy5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOacgOW+jOOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luLCAyKTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lY29sdW1uMy1sYXlvdXQge1xuICAvKiAz5YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogM+WIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJHNwYW40O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDMpO1xuICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCAzKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgLyog5LiL44Oe44O844K444Oz44Gv44OW44Ot44OD44Kv5YaF44Gu44K/44Kk44OX44Gu6KaB57Sg44Gr5a++44GX44Gm5oyH5a6a44GZ44KLICjnqbrnlLvlg4/lr77nrZYpICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtdWx0aUNvbHVtbkdyaWRNYXJnaW5Cb3R0b21XaGVuQ2xlYXJlZEZsb2F0O1xuXG4gICAgICAgICZbZGF0YS1iZ2UtZW1wdHk9JzEnXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmW2NsYXNzKj0nYmd0LXNwLWdyaWQnXSB7XG4gICAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIC8qIDPliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So5pyA5Yid44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMiwgMyk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgLyogM+WIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjmnIDliJ3jga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDIsIDMpO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lY29sdW1uNC1sYXlvdXQge1xuICAvKiA05YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogNOWIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJHNwYW4zO1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZmxvYXQ6IG5vbmU7XG5cbiAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIC8qIOS4i+ODnuODvOOCuOODs+OBr+ODluODreODg+OCr+WGheOBruOCv+OCpOODl+OBruimgee0oOOBq+WvvuOBl+OBpuaMh+WumuOBmeOCiyAo56m655S75YOP5a++562WKSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDtcblxuICAgICAgICAmW2RhdGEtYmdlLWVtcHR5PScxJ10ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJltjbGFzcyo9J2JndC1zcC1ncmlkJ10ge1xuICAgICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNCk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCA0KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA0KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDIsIDQpO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDQpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNCk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiVjb2x1bW41LWxheW91dCB7XG4gIC8qIDXliJfjg5bjg63jg4Pjgq8gKi9cbiAgLmJndC1ncmlkIHtcbiAgICAvKiA15YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOOCs+ODs+ODhuODiiAqL1xuICAgIHdpZHRoOiAkZGl2aWRlNTtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuXG4gICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAvKiDkuIvjg57jg7zjgrjjg7Pjga/jg5bjg63jg4Pjgq/lhoXjga7jgr/jgqTjg5fjga7opoHntKDjgavlr77jgZfjgabmjIflrprjgZnjgosgKOepuueUu+WDj+WvvuetlikgKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG11bHRpQ29sdW1uR3JpZE1hcmdpbkJvdHRvbVdoZW5DbGVhcmVkRmxvYXQ7XG5cbiAgICAgICAgJltkYXRhLWJnZS1lbXB0eT0nMSddIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICZbY2xhc3MqPSdiZ3Qtc3AtZ3JpZCddIHtcbiAgICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDQsIDUpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMSwgNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNSk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA1KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA1KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDMsIDUpO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDUpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNSkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogNCwgNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEJ1cmdlckVkaXRvciBTdHlsZVNoZWV0IFN0eWxlXG4gKi9cblxuLmJndC1ib3hfX2NhcHRpb24ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAzcHg7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG5cbi5iZ3QtYnRuIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG1pbi13aWR0aDogMjgwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggMCAkYnRuR2xvd0NvbG9yLCAwIDAgMTBweCAwICNmZmY7XG4gIH1cbn1cblxuLmJndC1idG4tLWxpbmsgLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9J2xpbmsnXSAuYmd0LWJ0biAvKiDmlrDjgrvjg6zjgq/jgr8gKi9cbntcbiAgJGNvbG9yOiAjMzMzO1xuICAkYkNvbG9yOiAjY2NjO1xuICAkYmdDb2xvcjogI2ZmZjtcbiAgJGJnQ29sb3JIb3ZlcjogI2U5ZTllOTtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkYkNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmdDb2xvcjtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGJnQ29sb3JIb3ZlcjtcbiAgfVxufVxuXG4uYmd0LWJ0bi0tZW0gLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9J2VtJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogI2ZmZjtcbiAgJGJDb2xvcjogIzMzMztcbiAgJGJnQ29sb3I6ICMzMzM7XG4gICRiZ0NvbG9ySG92ZXI6ICM1NTU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJGNvbG9yO1xuICBib3JkZXItY29sb3I6ICRiQ29sb3I7XG4gIGJhY2tncm91bmQ6ICRiZ0NvbG9yO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmdDb2xvckhvdmVyO1xuICB9XG59XG5cbi5iZ3QtYnRuLS1leHRlcm5hbCAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1idXR0b24ta2luZD0nZXh0ZXJuYWwnXSAuYmd0LWJ0biAvKiDmlrDjgrvjg6zjgq/jgr8gKi9cbntcbiAgJGNvbG9yOiAjMzMzO1xuICAkYkNvbG9yOiAjY2NjO1xuICAkYmdDb2xvcjogI2ZmZjtcbiAgJGJnQ29sb3JIb3ZlcjogI2U5ZTllOTtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkYkNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmdDb2xvcjtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGJnQ29sb3JIb3ZlcjtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBiZ2UtaWNvbjtcbiAgICBjb250ZW50OiAnXFxmMDhlJztcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBjb2xvcjogIzk5OTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbi5iZ3QtYnRuLS1iYWNrIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPSdiYWNrJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogIzMzMztcbiAgJGJDb2xvcjogI2RkZDtcbiAgJGJnQ29sb3I6ICNkZGQ7XG4gICRiZ0NvbG9ySG92ZXI6ICNlOWU5ZTk7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJGJDb2xvcjtcbiAgYmFja2dyb3VuZDogJGJnQ29sb3I7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRiZ0NvbG9ySG92ZXI7XG4gIH1cblxuICBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgYmdlLWljb247XG4gICAgY29udGVudDogJ1xcZjA1Myc7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4uYmd0LWhyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbltkYXRhLWJndC1oci1raW5kPSdkYXNoZWQnXSAuYmd0LWhyIHtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDJweCBkYXNoZWQgY3VycmVudENvbG9yO1xufVxuXG4uYmd0LWhyLS1ib2xkIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWhyLWtpbmQ9J2JvbGQnXSAuYmd0LWhyIC8qIOaWsOOCu+ODrOOCr+OCvyAqL1xue1xuICBoZWlnaHQ6IDVweDtcbn1cblxuLmJndC1oci0tbmFycm93IC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWhyLWtpbmQ9J25hcnJvdyddIC5iZ3QtaHIgLyog5paw44K744Os44Kv44K/ICovXG57XG4gIGhlaWdodDogMXB4O1xufVxuXG4uYmd0LWhyLS1zaG9ydCAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1oci1raW5kPSdzaG9ydCddIC5iZ3QtaHIgLyog5paw44K744Os44Kv44K/ICovXG57XG4gIHdpZHRoOiA2MCU7XG4gIGhlaWdodDogMXB4O1xufVxuXG4uYmd0LWRvd25sb2FkLWZpbGVfX2xpbmsge1xuICBjb2xvcjogIzMzMztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxLjA4ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuN2VtIDFlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggJGJ0bkdsb3dDb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG5cbi5iZ3QtbGlua19fc2l6ZSB7XG4gIGNvbG9yOiAjODA4MDgwO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4uYmd0LWdvb2dsZS1tYXBzLWxpbmsge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcGFkZGluZzogMWVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzMzMztcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjOTk5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgYmdlLWljb247XG4gICAgICBjb250ZW50OiAnXFxmMDhlJztcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuW2RhdGEtYmd0PSdnYWxsZXJ5J10ge1xuICAkdGh1bWItc2l6ZTogNjBweDtcblxuICAuYmd0LWdhbGxlcnkge1xuICAgIHBhZGRpbmctdG9wOiA1NCU7XG5cbiAgICAmOmhvdmVyICYtY3RybCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZfX2ltZyB7XG4gICAgICBpbWcge1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jYXB0aW9uIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgcGFkZGluZzogMC43ZW0gMWVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICYtY3RybCB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW47XG5cbiAgICAgICZfX3ByZXYsXG4gICAgICAmX19uZXh0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogLTIwcHggMCAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkICNmZmY7XG4gICAgICAgICAgYm9yZGVyLXdpZHRoOiA1cHggNXB4IDAgMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmX19wcmV2IHtcbiAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG4gICAgICB9XG5cbiAgICAgICZfX25leHQge1xuICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIFtkYXRhLWdhbGxlcnktbWFya2VyPSd0aHVtYnMnXSB7XG4gICAgKyAuYmd0LWdhbGxlcnktbWFya2VyIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwIDVweDtcbiAgICAgICAgd2lkdGg6ICR0aHVtYi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICR0aHVtYi1zaXplO1xuXHRcdFx0XHQmOjpiZWZvcmUge1xuXHRcdFx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRcdH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBbZGF0YS1nYWxsZXJ5LW1hcmtlcj0nZG90J10ge1xuICAgICsgLmJndC1nYWxsZXJ5LW1hcmtlciB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbjogMCAycHg7XG4gICAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM5OTk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMCU7XG5cbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyog44OH44OQ44Kk44K55L6d5a2Y5rGO55So44Kv44Op44K5ICovXG4ucGMtb25seSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc3Atb25seSB7XG4gIGRpc3BsYXk6IG5vbmU7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4iXX0= */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9iZ2Vfc3R5bGUuY3NzIiwiY3NzL2JnZV9zdHlsZS5zY3NzIiwiY3NzL2NvbW1vbi9fZWRpdG9yLnNjc3MiLCJjc3MvY29tbW9uL19iZ2Vfc2V0dGluZy5zY3NzIiwiY3NzL2NvbW1vbi9fYmdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQ2hCOzs7Ozs7OztFQUFBO0FBVUE7OztFQUFBO0FDWEE7O0VBQUE7QUFNQTtFQUNFLGFBQUE7QUZZRjtBRVRBO2lEQUFBO0FBR0E7OztFQUdFLCtGQUFBO0VBQ0EsV0FBQTtBRldGO0FFVEU7OztFQUNFLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FGYUo7QUVWRTs7O0VBQ0Usd0xBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtBRmNKO0FFYkk7OztFQUNFLGFBQUE7QUZpQk47QUViRTs7O0VBQ0UscUJBQUE7RUFDQSx1QkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0FGaUJKO0FFZkk7OztFQUNFLGFBQUE7QUZtQk47QUVmRTs7O0VBQ0UsOEJBQUE7RUFDQSxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7QUZtQko7QUVqQkk7OztFQUNFLGFBQUE7QUZxQk47QUVqQkU7OztFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0FGcUJKO0FFbkJJOzs7RUFDRSxhQUFBO0FGdUJOO0FFbkJFOzs7RUFDRSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxn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QUpnc0JSO0FJOXJCUTtFQUNFLHNCQUFBO0FKZ3NCVjtBSXhyQkEsZ0JBQUE7QUFDQTtFQUNFLGNBQUE7QUoyckJGO0FJenJCRTtFQUhGO0lBSUksYUFBQTtFSjRyQkY7QUFDRjtBSXpyQkE7RUFDRSxhQUFBO0FKNHJCRjtBSTFyQkU7RUFIRjtJQUlJLGNBQUE7RUo2ckJGO0FBQ0YiLCJmaWxlIjoiY3NzL2JnZV9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIGJhc2VyQ01TIDogIEJhc2VkIFdlYnNpdGUgRGV2ZWxvcG1lbnQgUHJvamVjdCA8aHR0cHM6Ly9iYXNlcmNtcy5uZXQ+XG4gKiBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uIDxodHRwczovL2Jhc2VyZm91bmRhdGlvbi5vcmcvPlxuICpcbiAqIEBjb3B5cmlnaHQgICAgIENvcHlyaWdodCAoYykgTlBPIGJhc2VyIGZvdW5kYXRpb25cbiAqIEBsaW5rICAgICAgICAgIGh0dHBzOi8vYmFzZXJjbXMubmV0IGJhc2VyQ01TIFByb2plY3RcbiAqIEBzaW5jZSAgICAgICAgIDUuMC4wXG4gKiBAbGljZW5zZSAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldC9saWNlbnNlL2luZGV4Lmh0bWwgTUlUIExpY2Vuc2VcbiAqL1xuLyoqXG4gKiDjg5Djg7zjgqzjg7zjgqjjg4fjgqPjgr/jg7zjgrnjgr/jgqTjg6tcbiAqIOeuoeeQhueUu+mdouOBp+OCguWRvOOBs+WHuuOBleOCjOOCi1xuICovXG4vKipcbiAqIOOCqOODh+OCo+OCv+ODvOeUqENTU1xuICovXG4uY2tlX2VkaXRhYmxlIHtcbiAgcGFkZGluZzogMTVweDtcbn1cblxuLyogRWRpdG9yIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJzLW1haW4tY29udGVudHMsXG4uYmdlLWNvbnRlbnRzLFxuLmNrZV9lZGl0YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgVmVyZGFuYSwgXCLmuLjjgrTjgrfjg4Pjgq9cIiwgWXVHb3RoaWMsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvTlwiLCBNZWlyeW8sIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDEsXG4uYmdlLWNvbnRlbnRzIGgxLFxuLmNrZV9lZGl0YWJsZSBoMSB7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoMixcbi5iZ2UtY29udGVudHMgaDIsXG4uY2tlX2VkaXRhYmxlIGgyIHtcbiAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDIuMmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAwLjZlbSAwO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgaDI6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGgyOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoMjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoMyxcbi5iZ2UtY29udGVudHMgaDMsXG4uY2tlX2VkaXRhYmxlIGgzIHtcbiAgbWFyZ2luOiA1NnB4IDAgMjBweCAwO1xuICBwYWRkaW5nOiAxM3B4IDI4cHggMTJweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBsaW5lLWhlaWdodDogNDguM3B4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJzLW1haW4tY29udGVudHMgaDM6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGgzOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoMzpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNCxcbi5iZ2UtY29udGVudHMgaDQsXG4uY2tlX2VkaXRhYmxlIGg0IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4ICNDQ0MgZG90dGVkO1xuICBmb250LXNpemU6IDIycHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDUwcHggMCAxN3B4IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGg0OmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyBoNDpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgaDQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDUsXG4uYmdlLWNvbnRlbnRzIGg1LFxuLmNrZV9lZGl0YWJsZSBoNSB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJzLW1haW4tY29udGVudHMgaDU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGg1OmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoNTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNixcbi5iZ2UtY29udGVudHMgaDYsXG4uY2tlX2VkaXRhYmxlIGg2IHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW46IDFlbSAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAuM2VtIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNjpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgaDY6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGg2OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHN0cm9uZyxcbi5iZ2UtY29udGVudHMgc3Ryb25nLFxuLmNrZV9lZGl0YWJsZSBzdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1LFxuLmJnZS1jb250ZW50cyB1LFxuLmNrZV9lZGl0YWJsZSB1IHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHMsXG4uYmdlLWNvbnRlbnRzIHMsXG4uY2tlX2VkaXRhYmxlIHMge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuLmJzLW1haW4tY29udGVudHMgZW0sXG4uYmdlLWNvbnRlbnRzIGVtLFxuLmNrZV9lZGl0YWJsZSBlbSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5icy1tYWluLWNvbnRlbnRzIGhyLFxuLmJnZS1jb250ZW50cyBocixcbi5ja2VfZWRpdGFibGUgaHIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGNvbG9yOiAjZGRkO1xuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiA1MHB4IGF1dG87XG59XG4uYnMtbWFpbi1jb250ZW50cyBocjpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgaHI6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGhyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsLFxuLmJnZS1jb250ZW50cyB1bCxcbi5ja2VfZWRpdGFibGUgdWwge1xuICBtYXJnaW46IDIwcHggMCAzNnB4IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1cmVtO1xufVxuLmJzLW1haW4tY29udGVudHMgdWw6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIHVsOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSB1bDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCBsaSxcbi5iZ2UtY29udGVudHMgdWwgbGksXG4uY2tlX2VkaXRhYmxlIHVsIGxpIHtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMCAwIDI1cHg7XG4gIG1hcmdpbjogMC41ZW0gMCAwLjVlbSAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCBsaSBhLFxuLmJnZS1jb250ZW50cyB1bCBsaSBhLFxuLmNrZV9lZGl0YWJsZSB1bCBsaSBhIHtcbiAgem9vbTogMTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsIGxpOmJlZm9yZSxcbi5iZ2UtY29udGVudHMgdWwgbGk6YmVmb3JlLFxuLmNrZV9lZGl0YWJsZSB1bCBsaTpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDlweDtcbiAgbGVmdDogMXB4O1xuICB3aWR0aDogNnB4O1xuICBoZWlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZDogIzE4MTgxODtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLmJzLW1haW4tY29udGVudHMgdWwgdWwsXG4uYmdlLWNvbnRlbnRzIHVsIHVsLFxuLmNrZV9lZGl0YWJsZSB1bCB1bCB7XG4gIG1hcmdpbjogMCAwIDAgMS44ZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCB1bDpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgdWwgdWw6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIHVsIHVsOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIG9sLFxuLmJnZS1jb250ZW50cyBvbCxcbi5ja2VfZWRpdGFibGUgb2wge1xuICBtYXJnaW46IDIwcHggMCAzNnB4IDEuOGVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNXJlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIG9sIG9sLFxuLmJnZS1jb250ZW50cyBvbCBvbCxcbi5ja2VfZWRpdGFibGUgb2wgb2wge1xuICBtYXJnaW46IDIwcHg7XG59XG4uYnMtbWFpbi1jb250ZW50cyBvbCBsaSxcbi5iZ2UtY29udGVudHMgb2wgbGksXG4uY2tlX2VkaXRhYmxlIG9sIGxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsLWxlYWRpbmctemVybztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDAgMCAwO1xuICBtYXJnaW46IDAuNWVtIDAgMC41ZW0gMDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHAsXG4uYmdlLWNvbnRlbnRzIHAsXG4uY2tlX2VkaXRhYmxlIHAge1xuICBtYXJnaW46IDFlbSAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDIuMztcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlLFxuLmJnZS1jb250ZW50cyB0YWJsZSxcbi5ja2VfZWRpdGFibGUgdGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMWUxZTE7XG4gIG1hcmdpbjogMjBweCAwIDIwcHggMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLmJzLW1haW4tY29udGVudHMgdGFibGU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIHRhYmxlOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSB0YWJsZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuLmJnZS1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSBjYXB0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIGNhcHRpb24sXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgY2FwdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRib2R5LFxuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0Zm9vdCxcbiAgLmJnZS1jb250ZW50cyB0YWJsZSB0Ym9keSxcbiAgLmJnZS1jb250ZW50cyB0YWJsZSB0Zm9vdCxcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB0Ym9keSxcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB0Zm9vdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0cixcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2UxZTFlMTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIHRyLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0cjpudGgtY2hpbGQob2RkKSB0ZCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgdGQsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHRkIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0ZCxcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMjZweCAyNHB4O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMWUxZTE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0aCxcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGQsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0aCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRoIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIH1cbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRkLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0ZCxcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGQge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQgdWwsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRkIHVsLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSB0ciB0ZCB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGZpZWxkc2V0LFxuLmJnZS1jb250ZW50cyBmaWVsZHNldCxcbi5ja2VfZWRpdGFibGUgZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbWcsXG4uYmdlLWNvbnRlbnRzIGltZyxcbi5ja2VfZWRpdGFibGUgaW1nIHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IGF1dG87XG59XG4uYnMtbWFpbi1jb250ZW50cyBhZGRyZXNzLCAuYnMtbWFpbi1jb250ZW50cyBidXR0b24sIC5icy1tYWluLWNvbnRlbnRzIGNhcHRpb24sIC5icy1tYWluLWNvbnRlbnRzIGNpdGUsIC5icy1tYWluLWNvbnRlbnRzIGNvZGUsIC5icy1tYWluLWNvbnRlbnRzIGRmbiwgLmJzLW1haW4tY29udGVudHMgZW0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0LCAuYnMtbWFpbi1jb250ZW50cyBvcHRncm91cCwgLmJzLW1haW4tY29udGVudHMgb3B0aW9uLCAuYnMtbWFpbi1jb250ZW50cyBzZWxlY3QsIC5icy1tYWluLWNvbnRlbnRzIHN0cm9uZywgLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsIC5icy1tYWluLWNvbnRlbnRzIHRoLCAuYnMtbWFpbi1jb250ZW50cyB2YXIsXG4uYmdlLWNvbnRlbnRzIGFkZHJlc3MsXG4uYmdlLWNvbnRlbnRzIGJ1dHRvbixcbi5iZ2UtY29udGVudHMgY2FwdGlvbixcbi5iZ2UtY29udGVudHMgY2l0ZSxcbi5iZ2UtY29udGVudHMgY29kZSxcbi5iZ2UtY29udGVudHMgZGZuLFxuLmJnZS1jb250ZW50cyBlbSxcbi5iZ2UtY29udGVudHMgaW5wdXQsXG4uYmdlLWNvbnRlbnRzIG9wdGdyb3VwLFxuLmJnZS1jb250ZW50cyBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIHNlbGVjdCxcbi5iZ2UtY29udGVudHMgc3Ryb25nLFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgdGgsXG4uYmdlLWNvbnRlbnRzIHZhcixcbi5ja2VfZWRpdGFibGUgYWRkcmVzcyxcbi5ja2VfZWRpdGFibGUgYnV0dG9uLFxuLmNrZV9lZGl0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSBjaXRlLFxuLmNrZV9lZGl0YWJsZSBjb2RlLFxuLmNrZV9lZGl0YWJsZSBkZm4sXG4uY2tlX2VkaXRhYmxlIGVtLFxuLmNrZV9lZGl0YWJsZSBpbnB1dCxcbi5ja2VfZWRpdGFibGUgb3B0Z3JvdXAsXG4uY2tlX2VkaXRhYmxlIG9wdGlvbixcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBzdHJvbmcsXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmNrZV9lZGl0YWJsZSB0aCxcbi5ja2VfZWRpdGFibGUgdmFyIHtcbiAgZm9udDogaW5oZXJpdDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNtYWxsLFxuLmJnZS1jb250ZW50cyBzbWFsbCxcbi5ja2VfZWRpdGFibGUgc21hbGwge1xuICBjb2xvcjogIzY2Njtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGRlbCwgLmJzLW1haW4tY29udGVudHMgaW5zLFxuLmJnZS1jb250ZW50cyBkZWwsXG4uYmdlLWNvbnRlbnRzIGlucyxcbi5ja2VfZWRpdGFibGUgZGVsLFxuLmNrZV9lZGl0YWJsZSBpbnMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBhOmxpbmssIC5icy1tYWluLWNvbnRlbnRzIGE6dmlzaXRlZCxcbi5iZ2UtY29udGVudHMgYTpsaW5rLFxuLmJnZS1jb250ZW50cyBhOnZpc2l0ZWQsXG4uY2tlX2VkaXRhYmxlIGE6bGluayxcbi5ja2VfZWRpdGFibGUgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICMyYjdiYjk7XG59XG4uYnMtbWFpbi1jb250ZW50cyBhOmhvdmVyLFxuLmJnZS1jb250ZW50cyBhOmhvdmVyLFxuLmNrZV9lZGl0YWJsZSBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgY2FwdGlvbiwgLmJzLW1haW4tY29udGVudHMgdGgsXG4uYmdlLWNvbnRlbnRzIGNhcHRpb24sXG4uYmdlLWNvbnRlbnRzIHRoLFxuLmNrZV9lZGl0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSB0aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyBxOmJlZm9yZSwgLmJzLW1haW4tY29udGVudHMgcTphZnRlcixcbi5iZ2UtY29udGVudHMgcTpiZWZvcmUsXG4uYmdlLWNvbnRlbnRzIHE6YWZ0ZXIsXG4uY2tlX2VkaXRhYmxlIHE6YmVmb3JlLFxuLmNrZV9lZGl0YWJsZSBxOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGFiYnIsIC5icy1tYWluLWNvbnRlbnRzIGFjcm9ueW0sXG4uYmdlLWNvbnRlbnRzIGFiYnIsXG4uYmdlLWNvbnRlbnRzIGFjcm9ueW0sXG4uY2tlX2VkaXRhYmxlIGFiYnIsXG4uY2tlX2VkaXRhYmxlIGFjcm9ueW0ge1xuICBib3JkZXI6IDA7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xufVxuLmJzLW1haW4tY29udGVudHMgc3ViLFxuLmJnZS1jb250ZW50cyBzdWIsXG4uY2tlX2VkaXRhYmxlIHN1YiB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xufVxuLmJzLW1haW4tY29udGVudHMgc3VwLFxuLmJnZS1jb250ZW50cyBzdXAsXG4uY2tlX2VkaXRhYmxlIHN1cCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG59XG4uYnMtbWFpbi1jb250ZW50cyBsZWdlbmQsXG4uYmdlLWNvbnRlbnRzIGxlZ2VuZCxcbi5ja2VfZWRpdGFibGUgbGVnZW5kIHtcbiAgY29sb3I6ICMwMDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBwcmUsXG4uYmdlLWNvbnRlbnRzIHByZSxcbi5ja2VfZWRpdGFibGUgcHJlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YzRjNGMztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgYm9yZGVyOiAxcHggc29saWQgI0UyRTJFMjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGJsb2NrcXVvdGUsXG4uYmdlLWNvbnRlbnRzIGJsb2NrcXVvdGUsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMWVtIDA7XG4gIHBhZGRpbmc6IDFweCAyLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDJweCBzb2xpZCAjY2NjO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgYmxvY2txdW90ZTo6YmVmb3JlLFxuLmJnZS1jb250ZW50cyBibG9ja3F1b3RlOjpiZWZvcmUsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi4oCcXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogc2VyaWY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjNlbTtcbiAgbGVmdDogMC4yNWVtO1xuICB6LWluZGV4OiAwO1xuICBjb2xvcjogI2NjYztcbiAgZm9udC1zaXplOiAzZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyBibG9ja3F1b3RlOjphZnRlcixcbi5iZ2UtY29udGVudHMgYmxvY2txdW90ZTo6YWZ0ZXIsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6OmFmdGVyIHtcbiAgY29udGVudDogXCLigJ1cIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBzZXJpZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0wLjNlbTtcbiAgcmlnaHQ6IDAuMjVlbTtcbiAgei1pbmRleDogMDtcbiAgY29sb3I6ICNjY2M7XG4gIGZvbnQtc2l6ZTogM2VtO1xufVxuXG4vKiBGb3JtIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJzLW1haW4tY29udGVudHMgZm9ybSxcbi5iZ2UtY29udGVudHMgZm9ybSxcbi5ja2VfZWRpdGFibGUgZm9ybSxcbi5icy1zdWItY29udGVudHMgZm9ybSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0LCAuYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYSwgLmJzLW1haW4tY29udGVudHMgc2VsZWN0LCAuYnMtbWFpbi1jb250ZW50cyBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIGlucHV0LFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgc2VsZWN0LFxuLmJnZS1jb250ZW50cyBvcHRpb24sXG4uY2tlX2VkaXRhYmxlIGlucHV0LFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYSxcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBvcHRpb24sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0LFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYSxcbi5icy1zdWItY29udGVudHMgc2VsZWN0LFxuLmJzLXN1Yi1jb250ZW50cyBvcHRpb24ge1xuICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsXG4uYnMtbWFpbi1jb250ZW50cyBzZWxlY3QsXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYmdlLWNvbnRlbnRzIHRleHRhcmVhLFxuLmJnZS1jb250ZW50cyBzZWxlY3QsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRleHRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZWxdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPW51bWJlcl0sXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3QsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYnMtc3ViLWNvbnRlbnRzIHRleHRhcmVhLFxuLmJzLXN1Yi1jb250ZW50cyBzZWxlY3Qge1xuICBtYXJnaW46IDNweCAycHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cmFkaW9dLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1yYWRpb10sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXJhZGlvXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cmFkaW9dLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1zdWJtaXRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXJlc2V0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1idXR0b25dLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXN1Ym1pdF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cmVzZXRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWJ1dHRvbl0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9c3VibWl0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1yZXNldF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9YnV0dG9uXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1zdWJtaXRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXJlc2V0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1idXR0b25dIHtcbiAgbWFyZ2luOiAzcHggMnB4O1xuICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRleHRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZWxdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XTo6cGxhY2Vob2xkZXIsIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1wYXNzd29yZF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRlbF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGV4dF06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9bnVtYmVyXTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjY2NjO1xufVxuLmJzLW1haW4tY29udGVudHMgaW5wdXQ6YWN0aXZlLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dDpmb2N1cyxcbi5iZ2UtY29udGVudHMgaW5wdXQ6YWN0aXZlLFxuLmJnZS1jb250ZW50cyBpbnB1dDpmb2N1cyxcbi5ja2VfZWRpdGFibGUgaW5wdXQ6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSBpbnB1dDpmb2N1cyxcbi5icy1zdWItY29udGVudHMgaW5wdXQ6YWN0aXZlLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWEsXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYSB7XG4gIHdpZHRoOiA5NSU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nOiAzcHggM3B4O1xufVxuLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLCAuYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyxcbi5ja2VfZWRpdGFibGUgdGV4dGFyZWE6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYTpmb2N1cyxcbi5icy1zdWItY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZXh0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1lbWFpbF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNlbGVjdCxcbi5iZ2UtY29udGVudHMgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBzZWxlY3QsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBoZWlnaHQ6IDIuNmVtO1xuICBwYWRkaW5nOiAxMHB4IDhweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNlbGVjdDphY3RpdmUsIC5icy1tYWluLWNvbnRlbnRzIHNlbGVjdDpmb2N1cyxcbi5iZ2UtY29udGVudHMgc2VsZWN0OmFjdGl2ZSxcbi5iZ2UtY29udGVudHMgc2VsZWN0OmZvY3VzLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3Q6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3Q6Zm9jdXMsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdDphY3RpdmUsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBvcHRncm91cCBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIG9wdGdyb3VwIG9wdGlvbixcbi5ja2VfZWRpdGFibGUgb3B0Z3JvdXAgb3B0aW9uLFxuLmJzLXN1Yi1jb250ZW50cyBvcHRncm91cCBvcHRpb24ge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG5cbi8qKlxuICog5aSJ5pWwXG4gKi9cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44OV44Kp44Oz44OI44Gu5a6a576pXG4gKiBGb250IEF3ZXNvbWUgNC42LjMgYnkgQGRhdmVnYW5keSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZVxuICogTGljZW5zZSAtIGh0dHA6Ly9mb250YXdlc29tZS5pby9saWNlbnNlIChGb250OiBTSUwgT0ZMIDEuMSwgQ1NTOiBNSVQgTGljZW5zZSlcbiAqXG4gKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/dj00LjYuM1wiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD8jaWVmaXgmdj00LjYuM1wiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmMj92PTQuNi4zXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LndvZmY/dj00LjYuM1wiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnR0Zj92PTQuNi4zXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnN2Zz92PTQuNi4zI2ZvbnRhd2Vzb21lcmVndWxhclwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44Oe44Or44OB44Kr44Op44Og44OW44Ot44OD44Kv44Gu44Os44Kk44Ki44Km44OIXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG4vKipcbiAqIEJ1cmdlckVkaXRvciBTdHlsZVNoZWV0IFN0eWxlXG4gKlxuICogYmMtZnJvbnQg44OG44O844Oe5YG044Gn44Kz44Oz44OR44Kk44Or44GX44Gf6Zqb44Gv44CBYmdlX3N0eWxlLmNzcyDjgpJcbiAqIEJjVGhlbWVTYW1wbGUg44OG44O844Oe5YG044Gr44Kz44OU44O844GZ44KL5b+F6KaB44GM44GC44KLXG4gKi9cbi5iZ3QtYm94X19jYXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogM3B4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuXG4uYmd0LWJ0biB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZzogMTJweCAxMHB4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtaW4td2lkdGg6IDI4MHB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG4uYmd0LWJ0bjphY3RpdmUsIC5iZ3QtYnRuOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggMCAjMDU3MGM3LCAwIDAgMTBweCAwICNmZmY7XG59XG5cbi5iZ3QtYnRuLS1saW5rLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJvcmRlci1jb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5iZ3QtYnRuLS1saW5rOmhvdmVyLCAuYmd0LWJ0bi0tbGluazphY3RpdmUsIC5iZ3QtYnRuLS1saW5rOmZvY3VzLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuOmhvdmVyLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuOmFjdGl2ZSxcbltkYXRhLWJndC1idXR0b24ta2luZD1saW5rXSAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNlOWU5ZTk7XG59XG5cbi5iZ3QtYnRuLS1lbSxcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG4ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZDogIzMzMztcbn1cbi5iZ3QtYnRuLS1lbTpob3ZlciwgLmJndC1idG4tLWVtOmFjdGl2ZSwgLmJndC1idG4tLWVtOmZvY3VzLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWVtXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG46YWN0aXZlLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWVtXSAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICM1NTU7XG59XG5cbi5iZ3QtYnRuLS1leHRlcm5hbCxcbltkYXRhLWJndC1idXR0b24ta2luZD1leHRlcm5hbF0gLmJndC1idG4ge1xuICBjb2xvcjogIzMzMztcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmJndC1idG4tLWV4dGVybmFsOmhvdmVyLCAuYmd0LWJ0bi0tZXh0ZXJuYWw6YWN0aXZlLCAuYmd0LWJ0bi0tZXh0ZXJuYWw6Zm9jdXMsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOmhvdmVyLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWV4dGVybmFsXSAuYmd0LWJ0bjphY3RpdmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogI2U5ZTllOTtcbn1cbi5iZ3QtYnRuLS1leHRlcm5hbDo6YWZ0ZXIsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOjphZnRlciB7XG4gIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZSwgc2VyaWY7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgY29udGVudDogXCJcXGYwOGVcIjtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiAjOTk5O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYmd0LWJ0bi0tYmFjayxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0biB7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG4gIGJhY2tncm91bmQ6ICNkZGQ7XG59XG4uYmd0LWJ0bi0tYmFjazpob3ZlciwgLmJndC1idG4tLWJhY2s6YWN0aXZlLCAuYmd0LWJ0bi0tYmFjazpmb2N1cyxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjphY3RpdmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG46Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjZTllOWU5O1xufVxuLmJndC1idG4tLWJhY2sgc3BhbixcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0biBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmJndC1idG4tLWJhY2s6OmJlZm9yZSxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjo6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lLCBzZXJpZjtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBjb250ZW50OiBcIlxcZjA1M1wiO1xuICBmb250LXNpemU6IDFlbTtcbiAgbWFyZ2luLXRvcDogLTJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYmd0LWhyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbltkYXRhLWJndC1oci1raW5kPWRhc2hlZF0gLmJndC1ociB7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcbn1cblxuLmJndC1oci0tYm9sZCxcbltkYXRhLWJndC1oci1raW5kPWJvbGRdIC5iZ3QtaHIge1xuICBoZWlnaHQ6IDVweDtcbn1cblxuLmJndC1oci0tbmFycm93LFxuW2RhdGEtYmd0LWhyLWtpbmQ9bmFycm93XSAuYmd0LWhyIHtcbiAgaGVpZ2h0OiAxcHg7XG59XG5cbi5iZ3QtaHItLXNob3J0LFxuW2RhdGEtYmd0LWhyLWtpbmQ9c2hvcnRdIC5iZ3QtaHIge1xuICB3aWR0aDogNjAlO1xuICBoZWlnaHQ6IDFweDtcbn1cblxuLmJndC1kb3dubG9hZC1maWxlX19saW5rIHtcbiAgY29sb3I6ICMzMzM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMS4wOGVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjdlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5iZ3QtZG93bmxvYWQtZmlsZV9fbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4uYmd0LWRvd25sb2FkLWZpbGVfX2xpbms6YWN0aXZlLCAuYmd0LWRvd25sb2FkLWZpbGVfX2xpbms6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDFweCAjMDU3MGM3O1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uYmd0LWxpbmtfX3NpemUge1xuICBjb2xvcjogIzgwODA4MDtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJndC1nb29nbGUtbWFwcy1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggIzk5OTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5iZ3QtZ29vZ2xlLW1hcHMtbGluayBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuYmd0LWdvb2dsZS1tYXBzLWxpbms6OmFmdGVyIHtcbiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWUsIHNlcmlmO1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgY29udGVudDogXCJcXGYwOGVcIjtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnkge1xuICBwYWRkaW5nLXRvcDogNTQlO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeTpob3ZlciBbZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmwge1xuICBvcGFjaXR5OiAxO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeV9faW1nIGltZyB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeV9fY2FwdGlvbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIHBhZGRpbmc6IDAuN2VtIDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbjtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldiwgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogLTIwcHggMCAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXY6aG92ZXIsIFtkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dDpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldjpmb2N1cywgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldiBzcGFuLCBbZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX25leHQgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19wcmV2OjphZnRlciwgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXI6IHNvbGlkICNmZmY7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwIDA7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXYge1xuICBsZWZ0OiAyMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dCB7XG4gIHJpZ2h0OiAyMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9dGh1bWJzXSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPXRodW1ic10gKyAuYmd0LWdhbGxlcnktbWFya2VyIGxpIHtcbiAgbWFyZ2luOiAwIDVweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogNjBweDtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSBbZGF0YS1nYWxsZXJ5LW1hcmtlcj10aHVtYnNdICsgLmJndC1nYWxsZXJ5LW1hcmtlciBsaTo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSBbZGF0YS1nYWxsZXJ5LW1hcmtlcj1kb3RdICsgLmJndC1nYWxsZXJ5LW1hcmtlciB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9ZG90XSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIgbGkge1xuICBtYXJnaW46IDAgMnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPWRvdF0gKyAuYmd0LWdhbGxlcnktbWFya2VyIGxpLmN1cnJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuXG4vKiDjg4fjg5DjgqTjgrnkvp3lrZjmsY7nlKjjgq/jg6njgrkgKi9cbi5wYy1vbmx5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAucGMtb25seSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc3Atb25seSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc3Atb25seSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn0iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIGJhc2VyQ01TIDogIEJhc2VkIFdlYnNpdGUgRGV2ZWxvcG1lbnQgUHJvamVjdCA8aHR0cHM6Ly9iYXNlcmNtcy5uZXQ+XG4gKiBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uIDxodHRwczovL2Jhc2VyZm91bmRhdGlvbi5vcmcvPlxuICpcbiAqIEBjb3B5cmlnaHQgICAgIENvcHlyaWdodCAoYykgTlBPIGJhc2VyIGZvdW5kYXRpb25cbiAqIEBsaW5rICAgICAgICAgIGh0dHBzOi8vYmFzZXJjbXMubmV0IGJhc2VyQ01TIFByb2plY3RcbiAqIEBzaW5jZSAgICAgICAgIDUuMC4wXG4gKiBAbGljZW5zZSAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldC9saWNlbnNlL2luZGV4Lmh0bWwgTUlUIExpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIOODkOODvOOCrOODvOOCqOODh+OCo+OCv+ODvOOCueOCv+OCpOODq1xuICog566h55CG55S76Z2i44Gn44KC5ZG844Gz5Ye644GV44KM44KLXG4gKi9cblxuQGltcG9ydCBcImNvbW1vbi9lZGl0b3JcIjtcbkBpbXBvcnQgXCJjb21tb24vYmdlX3NldHRpbmdcIjtcbkBpbXBvcnQgXCJjb21tb24vYmdlXCI7XG5cbiIsIi8qKlxuICog44Ko44OH44Kj44K/44O855SoQ1NTXG4gKi9cblxuJGJyZWFrUG9pbnQ6IDc2OHB4O1xuXG4uY2tlX2VkaXRhYmxlIHtcbiAgcGFkZGluZzogMTVweDtcbn1cblxuLyogRWRpdG9yIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYnMtbWFpbi1jb250ZW50cyxcbi5iZ2UtY29udGVudHMsXG4uY2tlX2VkaXRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBWZXJkYW5hLCBcIua4uOOCtOOCt+ODg+OCr1wiLCBZdUdvdGhpYywgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9OXCIsIE1laXJ5bywgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMwMDA7XG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1zaXplOiAyLjJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbjogMC42ZW0gMDtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbjogNTZweCAwIDIwcHggMDtcbiAgICBwYWRkaW5nOiAxM3B4IDI4cHggMTJweDtcbiAgICBmb250LXNpemU6IDIxcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQ4LjNweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIGg0IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggI0NDQyBkb3R0ZWQ7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXJnaW46IDUwcHggMCAxN3B4IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIHBhZGRpbmc6IDAuM2VtIDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICBoNiB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgdSB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICBzIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgfVxuXG4gIGVtIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICBociB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgY29sb3I6ICNkZGQ7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDUwcHggYXV0bztcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICB1bCB7XG4gICAgbWFyZ2luOiAyMHB4IDAgMzZweCAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNXJlbTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAyNXB4O1xuICAgICAgbWFyZ2luOiAwLjVlbSAwIDAuNWVtIDA7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcblxuICAgICAgYSB7XG4gICAgICAgIHpvb206IDE7XG4gICAgICB9XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogOXB4O1xuICAgICAgICBsZWZ0OiAxcHg7XG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTgxODE4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbWFyZ2luOiAwIDAgMCAxLjhlbTtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb2wge1xuICAgIG1hcmdpbjogMjBweCAwIDM2cHggMS44ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBsZXR0ZXItc3BhY2luZzogLjA1cmVtO1xuXG4gICAgb2wge1xuICAgICAgbWFyZ2luOiAyMHB4O1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbC1sZWFkaW5nLXplcm87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAwO1xuICAgICAgbWFyZ2luOiAwLjVlbSAwIDAuNWVtIDA7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyLjM7XG4gIH1cblxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTFlMWUxO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTFlMWUxO1xuICAgIG1hcmdpbjogMjBweCAwIDIwcHggMDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBjYXB0aW9uIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGJvZHksXG4gICAgdGZvb3Qge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdHIge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQob2RkKSB0ZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICB9XG5cbiAgICAgIHRoLFxuICAgICAgdGQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nOiAyNnB4IDI0cHg7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGQge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBpbWcge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cblxuICBhZGRyZXNzLCBidXR0b24sIGNhcHRpb24sIGNpdGUsIGNvZGUsIGRmbiwgZW0sIGlucHV0LCBvcHRncm91cCwgb3B0aW9uLCBzZWxlY3QsIHN0cm9uZywgdGV4dGFyZWEsIHRoLCB2YXIge1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gIH1cblxuICBzbWFsbCB7XG4gICAgY29sb3I6ICM2NjY7XG4gIH1cblxuICBkZWwsIGlucyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgYSB7XG4gICAgJjpsaW5rLCAmOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMyYjdiYjk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgY2FwdGlvbiwgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICBxIHtcbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cblxuICBhYmJyLCBhY3JvbnltIHtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIH1cblxuICBzdWIge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdWI7XG4gIH1cblxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cblxuICBwcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGM0YzRjM7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRTJFMkUyO1xuICB9XG5cbiAgYmxvY2txdW90ZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgcGFkZGluZzogMXB4IDIuNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNjY2M7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAn4oCcJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6IHNlcmlmO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwLjNlbTtcbiAgICAgIGxlZnQ6IDAuMjVlbTtcbiAgICAgIHotaW5kZXg6IDA7XG4gICAgICBjb2xvcjogI2NjYztcbiAgICAgIGZvbnQtc2l6ZTogM2VtO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICfigJ0nO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LWZhbWlseTogc2VyaWY7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0wLjNlbTtcbiAgICAgIHJpZ2h0OiAwLjI1ZW07XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgY29sb3I6ICNjY2M7XG4gICAgICBmb250LXNpemU6IDNlbTtcbiAgICB9XG4gIH1cblxufVxuXG4vKiBGb3JtIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYnMtbWFpbi1jb250ZW50cyxcbi5iZ2UtY29udGVudHMsXG4uY2tlX2VkaXRhYmxlLFxuLmJzLXN1Yi1jb250ZW50cyB7XG4gIGZvcm0ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxuXG4gIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBvcHRpb24ge1xuICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4gIGlucHV0W3R5cGU9dGV4dF0sXG4gIGlucHV0W3R5cGU9ZW1haWxdLFxuICBpbnB1dFt0eXBlPXRlbF0sXG4gIGlucHV0W3R5cGU9bnVtYmVyXSxcbiAgdGV4dGFyZWEsXG4gIHNlbGVjdCB7XG4gICAgbWFyZ2luOiAzcHggMnB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB9XG5cbiAgaW5wdXQge1xuICAgICZbdHlwZT1jaGVja2JveF0ge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmW3R5cGU9cmFkaW9dLCAmW3R5cGU9Y2hlY2tib3hdIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG5cbiAgICAmW3R5cGU9c3VibWl0XSwgJlt0eXBlPXJlc2V0XSwgJlt0eXBlPWJ1dHRvbl0ge1xuICAgICAgbWFyZ2luOiAzcHggMnB4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG4gICAgfVxuXG4gICAgJlt0eXBlPXBhc3N3b3JkXSxcbiAgICAmW3R5cGU9dGV4dF0sXG4gICAgJlt0eXBlPWVtYWlsXSxcbiAgICAmW3R5cGU9dGVsXSxcbiAgICAmW3R5cGU9bnVtYmVyXVxuICAgIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgcGFkZGluZzogM3B4IDNweDtcblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQge1xuICAgICZbdHlwZT1wYXNzd29yZF0sXG4gICAgJlt0eXBlPXRleHRdLFxuICAgICZbdHlwZT1lbWFpbF0sXG4gICAgJlt0eXBlPXRlbF0sXG4gICAgJlt0eXBlPW51bWJlcl1cbiAgICB7XG4gICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgaGVpZ2h0OiAyLjZlbTtcbiAgICBwYWRkaW5nOiAxMHB4IDhweDtcblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgb3B0Z3JvdXAgb3B0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIH1cbn1cbiIsIi8qKlxuICog5aSJ5pWwXG4gKi9cbkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuLy8gUldE44Gu44OW44Os44O844Kv44Od44Kk44Oz44OIXG4kYnJlYWtQb2ludDogNzY4cHg7XG5cbi8vIOOCq+ODqeODoOmWk+OBruODnuODvOOCuOODs1xuJG11bHRpQ29sdW1uR3JpZE1hcmdpbjogMjBweDtcblxuLy8gUldE44Gn44Kr44Op44Og44GM6JC944Gh44Gf5pmC44Gu5LiL44Oe44O844K444OzXG4kbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDogMjBweDtcblxuLy8g44Oc44K/44Oz44Gu44OV44Kp44O844Kr44K55pmC44Gu44Kr44Op44O8XG4kYnRuR2xvd0NvbG9yOiAjMDU3MGM3O1xuXG4vLyDjg4jjg6rjg6DnlLvlg4/jg5bjg63jg4Pjgq/jga7nuKbmqKrmr5RcbiR0cmltSW1hZ2VBc3BlY3RSYXRpbzogMTsgLy8gNDoz44Gu5aC05ZCI44GvMy80XG5cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44OV44Kp44Oz44OI44Gu5a6a576pXG4gKiBGb250IEF3ZXNvbWUgNC42LjMgYnkgQGRhdmVnYW5keSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZVxuICogTGljZW5zZSAtIGh0dHA6Ly9mb250YXdlc29tZS5pby9saWNlbnNlIChGb250OiBTSUwgT0ZMIDEuMSwgQ1NTOiBNSVQgTGljZW5zZSlcbiAqXG4gKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gIHNyYzogdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD92PTQuNi4zJyk7XG4gIHNyYzogdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD8jaWVmaXgmdj00LjYuMycpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LndvZmYyP3Y9NC42LjMnKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9NC42LjMnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnR0Zj92PTQuNi4zJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJy4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQuc3ZnP3Y9NC42LjMjZm9udGF3ZXNvbWVyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG4vLyDjgrDjg6rjg4Pjg4njgrfjgrnjg4bjg6Bcbi8vXG4vLyDnt6jpm4bpnZ7mjqjlpahcbi8vXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG4kc3BhbjE6IDguMzMzMyU7XG4kc3BhbjI6IDE2LjY2NjYlO1xuJHNwYW4zOiAyNSU7XG4kc3BhbjQ6IDMzLjMzMzMlO1xuJHNwYW41OiA0MS42NjY2JTtcbiRzcGFuNjogNTAlO1xuJHNwYW43OiA1OC4zMzMzJTtcbiRzcGFuODogNjYuNjY2NiU7XG4kc3Bhbjk6IDc1JTtcbiRzcGFuMTA6IDgzLjMzMzMlO1xuJHNwYW4xMTogOTEuNjY2NiU7XG4kc3BhbjEyOiAxMDAlO1xuJGRpdmlkZTU6IDIwJTsgLy8gMTLjgrDjg6rjg4Pjg4njgrfjgrnjg4bjg6Djgafjga/lho3nj77jgafjgY3jgarjgYQ15YiG5YmyXG5cbi8vIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC9cbi8vXG4vLyDjg5/jg4Pjgq/jgrnjgqTjg7Ncbi8vXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG5AbWl4aW4gYmdlLWljb24ge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWUsIHNlcmlmO1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44Oe44Or44OB44Kr44Op44Og44OW44Ot44OD44Kv44Gu44Os44Kk44Ki44Km44OIXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG5cbiVjb2x1bW4yLWxheW91dCB7XG4gIC8qIDLliJfjg5bjg63jg4Pjgq8gKi9cbiAgLmJndC1ncmlkIHtcbiAgICAvKiAy5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOOCs+ODs+ODhuODiiAqL1xuICAgIHdpZHRoOiAkc3BhbjY7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgLyog5LiL44Oe44O844K444Oz44Gv44OW44Ot44OD44Kv5YaF44Gu44K/44Kk44OX44Gu6KaB57Sg44Gr5a++44GX44Gm5oyH5a6a44GZ44KLICjnqbrnlLvlg4/lr77nrZYpICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtdWx0aUNvbHVtbkdyaWRNYXJnaW5Cb3R0b21XaGVuQ2xlYXJlZEZsb2F0O1xuXG4gICAgICAgICZbZGF0YS1iZ2UtZW1wdHk9JzEnXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmW2NsYXNzKj0nYmd0LXNwLWdyaWQnXSB7XG4gICAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIC8qIDLliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So5pyA5Yid44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luLCAyKTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAvKiAy5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOacgOW+jOOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luLCAyKTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lY29sdW1uMy1sYXlvdXQge1xuICAvKiAz5YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogM+WIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJHNwYW40O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDMpO1xuICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCAzKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgLyog5LiL44Oe44O844K444Oz44Gv44OW44Ot44OD44Kv5YaF44Gu44K/44Kk44OX44Gu6KaB57Sg44Gr5a++44GX44Gm5oyH5a6a44GZ44KLICjnqbrnlLvlg4/lr77nrZYpICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtdWx0aUNvbHVtbkdyaWRNYXJnaW5Cb3R0b21XaGVuQ2xlYXJlZEZsb2F0O1xuXG4gICAgICAgICZbZGF0YS1iZ2UtZW1wdHk9JzEnXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmW2NsYXNzKj0nYmd0LXNwLWdyaWQnXSB7XG4gICAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIC8qIDPliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So5pyA5Yid44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMiwgMyk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgLyogM+WIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjmnIDliJ3jga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDIsIDMpO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lY29sdW1uNC1sYXlvdXQge1xuICAvKiA05YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogNOWIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJHNwYW4zO1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZmxvYXQ6IG5vbmU7XG5cbiAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIC8qIOS4i+ODnuODvOOCuOODs+OBr+ODluODreODg+OCr+WGheOBruOCv+OCpOODl+OBruimgee0oOOBq+WvvuOBl+OBpuaMh+WumuOBmeOCiyAo56m655S75YOP5a++562WKSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDtcblxuICAgICAgICAmW2RhdGEtYmdlLWVtcHR5PScxJ10ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJltjbGFzcyo9J2JndC1zcC1ncmlkJ10ge1xuICAgICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNCk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCA0KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA0KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDIsIDQpO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDQpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNCk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiVjb2x1bW41LWxheW91dCB7XG4gIC8qIDXliJfjg5bjg63jg4Pjgq8gKi9cbiAgLmJndC1ncmlkIHtcbiAgICAvKiA15YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOOCs+ODs+ODhuODiiAqL1xuICAgIHdpZHRoOiAkZGl2aWRlNTtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuXG4gICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAvKiDkuIvjg57jg7zjgrjjg7Pjga/jg5bjg63jg4Pjgq/lhoXjga7jgr/jgqTjg5fjga7opoHntKDjgavlr77jgZfjgabmjIflrprjgZnjgosgKOepuueUu+WDj+WvvuetlikgKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG11bHRpQ29sdW1uR3JpZE1hcmdpbkJvdHRvbVdoZW5DbGVhcmVkRmxvYXQ7XG5cbiAgICAgICAgJltkYXRhLWJnZS1lbXB0eT0nMSddIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICZbY2xhc3MqPSdiZ3Qtc3AtZ3JpZCddIHtcbiAgICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDQsIDUpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMSwgNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNSk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA1KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA1KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDMsIDUpO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDUpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNSkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogNCwgNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEJ1cmdlckVkaXRvciBTdHlsZVNoZWV0IFN0eWxlXG4gKlxuICogYmMtZnJvbnQg44OG44O844Oe5YG044Gn44Kz44Oz44OR44Kk44Or44GX44Gf6Zqb44Gv44CBYmdlX3N0eWxlLmNzcyDjgpJcbiAqIEJjVGhlbWVTYW1wbGUg44OG44O844Oe5YG044Gr44Kz44OU44O844GZ44KL5b+F6KaB44GM44GC44KLXG4gKi9cblxuLmJndC1ib3hfX2NhcHRpb24ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAzcHg7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG5cbi5iZ3QtYnRuIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG1pbi13aWR0aDogMjgwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggMCAkYnRuR2xvd0NvbG9yLCAwIDAgMTBweCAwICNmZmY7XG4gIH1cbn1cblxuLmJndC1idG4tLWxpbmsgLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9J2xpbmsnXSAuYmd0LWJ0biAvKiDmlrDjgrvjg6zjgq/jgr8gKi9cbntcbiAgJGNvbG9yOiAjMzMzO1xuICAkYkNvbG9yOiAjY2NjO1xuICAkYmdDb2xvcjogI2ZmZjtcbiAgJGJnQ29sb3JIb3ZlcjogI2U5ZTllOTtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkYkNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmdDb2xvcjtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGJnQ29sb3JIb3ZlcjtcbiAgfVxufVxuXG4uYmd0LWJ0bi0tZW0gLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9J2VtJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogI2ZmZjtcbiAgJGJDb2xvcjogIzMzMztcbiAgJGJnQ29sb3I6ICMzMzM7XG4gICRiZ0NvbG9ySG92ZXI6ICM1NTU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJGNvbG9yO1xuICBib3JkZXItY29sb3I6ICRiQ29sb3I7XG4gIGJhY2tncm91bmQ6ICRiZ0NvbG9yO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmdDb2xvckhvdmVyO1xuICB9XG59XG5cbi5iZ3QtYnRuLS1leHRlcm5hbCAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1idXR0b24ta2luZD0nZXh0ZXJuYWwnXSAuYmd0LWJ0biAvKiDmlrDjgrvjg6zjgq/jgr8gKi9cbntcbiAgJGNvbG9yOiAjMzMzO1xuICAkYkNvbG9yOiAjY2NjO1xuICAkYmdDb2xvcjogI2ZmZjtcbiAgJGJnQ29sb3JIb3ZlcjogI2U5ZTllOTtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkYkNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmdDb2xvcjtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGJnQ29sb3JIb3ZlcjtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBiZ2UtaWNvbjtcbiAgICBjb250ZW50OiAnXFxmMDhlJztcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBjb2xvcjogIzk5OTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbi5iZ3QtYnRuLS1iYWNrIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPSdiYWNrJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogIzMzMztcbiAgJGJDb2xvcjogI2RkZDtcbiAgJGJnQ29sb3I6ICNkZGQ7XG4gICRiZ0NvbG9ySG92ZXI6ICNlOWU5ZTk7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJGJDb2xvcjtcbiAgYmFja2dyb3VuZDogJGJnQ29sb3I7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRiZ0NvbG9ySG92ZXI7XG4gIH1cblxuICBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgYmdlLWljb247XG4gICAgY29udGVudDogJ1xcZjA1Myc7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4uYmd0LWhyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbltkYXRhLWJndC1oci1raW5kPSdkYXNoZWQnXSAuYmd0LWhyIHtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDJweCBkYXNoZWQgY3VycmVudENvbG9yO1xufVxuXG4uYmd0LWhyLS1ib2xkIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWhyLWtpbmQ9J2JvbGQnXSAuYmd0LWhyIC8qIOaWsOOCu+ODrOOCr+OCvyAqL1xue1xuICBoZWlnaHQ6IDVweDtcbn1cblxuLmJndC1oci0tbmFycm93IC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWhyLWtpbmQ9J25hcnJvdyddIC5iZ3QtaHIgLyog5paw44K744Os44Kv44K/ICovXG57XG4gIGhlaWdodDogMXB4O1xufVxuXG4uYmd0LWhyLS1zaG9ydCAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1oci1raW5kPSdzaG9ydCddIC5iZ3QtaHIgLyog5paw44K744Os44Kv44K/ICovXG57XG4gIHdpZHRoOiA2MCU7XG4gIGhlaWdodDogMXB4O1xufVxuXG4uYmd0LWRvd25sb2FkLWZpbGVfX2xpbmsge1xuICBjb2xvcjogIzMzMztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxLjA4ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuN2VtIDFlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggJGJ0bkdsb3dDb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG5cbi5iZ3QtbGlua19fc2l6ZSB7XG4gIGNvbG9yOiAjODA4MDgwO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4uYmd0LWdvb2dsZS1tYXBzLWxpbmsge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcGFkZGluZzogMWVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzMzMztcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjOTk5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgYmdlLWljb247XG4gICAgICBjb250ZW50OiAnXFxmMDhlJztcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuW2RhdGEtYmd0PSdnYWxsZXJ5J10ge1xuICAkdGh1bWItc2l6ZTogNjBweDtcblxuICAuYmd0LWdhbGxlcnkge1xuICAgIHBhZGRpbmctdG9wOiA1NCU7XG5cbiAgICAmOmhvdmVyICYtY3RybCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZfX2ltZyB7XG4gICAgICBpbWcge1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jYXB0aW9uIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgcGFkZGluZzogMC43ZW0gMWVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICYtY3RybCB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbjtcblxuICAgICAgJl9fcHJldixcbiAgICAgICZfX25leHQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAtMjBweCAwIDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIGJvcmRlcjogc29saWQgI2ZmZjtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDVweCA1cHggMCAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICZfX3ByZXYge1xuICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgICAgIH1cblxuICAgICAgJl9fbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgW2RhdGEtZ2FsbGVyeS1tYXJrZXI9J3RodW1icyddIHtcbiAgICArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgbGkge1xuICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICB3aWR0aDogJHRodW1iLXNpemU7XG4gICAgICAgIGhlaWdodDogJHRodW1iLXNpemU7XG5cdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0fVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIFtkYXRhLWdhbGxlcnktbWFya2VyPSdkb3QnXSB7XG4gICAgKyAuYmd0LWdhbGxlcnktbWFya2VyIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcblxuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiDjg4fjg5DjgqTjgrnkvp3lrZjmsY7nlKjjgq/jg6njgrkgKi9cbi5wYy1vbmx5IHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5zcC1vbmx5IHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbiJdfQ== */ diff --git a/plugins/bc-front/src/css/common/_bge.scss b/plugins/bc-front/src/css/common/_bge.scss index e2d69ee580..a94b041402 100755 --- a/plugins/bc-front/src/css/common/_bge.scss +++ b/plugins/bc-front/src/css/common/_bge.scss @@ -243,7 +243,6 @@ &-ctrl { top: 50%; - opacity: 0; transition: opacity 200ms ease-in; &__prev, diff --git a/plugins/bc-front/webroot/css/bge_style.css b/plugins/bc-front/webroot/css/bge_style.css index 6f22b19c3d..2f0d4cf519 100755 --- a/plugins/bc-front/webroot/css/bge_style.css +++ b/plugins/bc-front/webroot/css/bge_style.css @@ -944,7 +944,6 @@ } [data-bgt=gallery] .bgt-gallery-ctrl { top: 50%; - opacity: 0; transition: opacity 200ms ease-in; } [data-bgt=gallery] .bgt-gallery-ctrl__prev, [data-bgt=gallery] .bgt-gallery-ctrl__next { @@ -1025,4 +1024,4 @@ display: block; } } -/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9iZ2Vfc3R5bGUuY3NzIiwiY3NzL2JnZV9zdHlsZS5zY3NzIiwiY3NzL2NvbW1vbi9fZWRpdG9yLnNjc3MiLCJjc3MvY29tbW9uL19iZ2Vfc2V0dGluZy5zY3NzIiwiY3NzL2NvbW1vbi9fYmdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQ2hCOzs7Ozs7OztFQUFBO0FBVUE7OztFQUFBO0FDWEE7O0VBQUE7QUFNQTtFQUNFLGFBQUE7QUZZRjtBRVRBO2lEQUFBO0FBR0E7OztFQUdFLCtGQUFBO0VBQ0EsV0FBQTtBRldGO0FFVEU7OztFQUNFLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FGYUo7QUVWRTs7O0VBQ0Usd0xBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtBRmNKO0FFYkk7OztFQUNFLGFBQUE7QUZpQk47QUViRTs7O0VBQ0UscUJBQUE7RUFDQSx1QkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0FGaUJKO0FFZkk7OztFQUNFLGFBQUE7QUZtQk47QUVmRTs7O0VBQ0UsOEJBQUE7RUFDQSxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7QUZtQko7QUVqQkk7OztFQUNFLGFBQUE7QUZxQk47QUVqQkU7OztFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0FGcUJKO0FFbkJJOzs7RUFDRSxhQUFBO0FGdUJOO0FFbkJFOzs7RUFDRSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxn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QUNBLG1CQUFBO0FKZ3NCUjtBSTlyQlE7RUFDRSxzQkFBQTtBSmdzQlY7QUl4ckJBLGdCQUFBO0FBQ0E7RUFDRSxjQUFBO0FKMnJCRjtBSXpyQkU7RUFIRjtJQUlJLGFBQUE7RUo0ckJGO0FBQ0Y7QUl6ckJBO0VBQ0UsYUFBQTtBSjRyQkY7QUkxckJFO0VBSEY7SUFJSSxjQUFBO0VKNnJCRjtBQUNGIiwiZmlsZSI6ImNzcy9iZ2Vfc3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBiYXNlckNNUyA6ICBCYXNlZCBXZWJzaXRlIERldmVsb3BtZW50IFByb2plY3QgPGh0dHBzOi8vYmFzZXJjbXMubmV0PlxuICogQ29weXJpZ2h0IChjKSBOUE8gYmFzZXIgZm91bmRhdGlvbiA8aHR0cHM6Ly9iYXNlcmZvdW5kYXRpb24ub3JnLz5cbiAqXG4gKiBAY29weXJpZ2h0ICAgICBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uXG4gKiBAbGluayAgICAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldCBiYXNlckNNUyBQcm9qZWN0XG4gKiBAc2luY2UgICAgICAgICA1LjAuMFxuICogQGxpY2Vuc2UgICAgICAgaHR0cHM6Ly9iYXNlcmNtcy5uZXQvbGljZW5zZS9pbmRleC5odG1sIE1JVCBMaWNlbnNlXG4gKi9cbi8qKlxuICog44OQ44O844Ks44O844Ko44OH44Kj44K/44O844K544K/44Kk44OrXG4gKiDnrqHnkIbnlLvpnaLjgafjgoLlkbzjgbPlh7rjgZXjgozjgotcbiAqL1xuLyoqXG4gKiDjgqjjg4fjgqPjgr/jg7znlKhDU1NcbiAqL1xuLmNrZV9lZGl0YWJsZSB7XG4gIHBhZGRpbmc6IDE1cHg7XG59XG5cbi8qIEVkaXRvciBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5icy1tYWluLWNvbnRlbnRzLFxuLmJnZS1jb250ZW50cyxcbi5ja2VfZWRpdGFibGUge1xuICBmb250LWZhbWlseTogQXJpYWwsIFZlcmRhbmEsIFwi5ri444K044K344OD44KvXCIsIFl1R290aGljLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb05cIiwgTWVpcnlvLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogIzAwMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGgxLFxuLmJnZS1jb250ZW50cyBoMSxcbi5ja2VfZWRpdGFibGUgaDEge1xuICBmb250LXNpemU6IDQwcHg7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmJzLW1haW4tY29udGVudHMgaDIsXG4uYmdlLWNvbnRlbnRzIGgyLFxuLmNrZV9lZGl0YWJsZSBoMiB7XG4gIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZm9udC1zaXplOiAyLjJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIG1hcmdpbjogMC42ZW0gMDtcbiAgcGFkZGluZzogMC4zZW0gMDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGgyOmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyBoMjpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgaDI6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDMsXG4uYmdlLWNvbnRlbnRzIGgzLFxuLmNrZV9lZGl0YWJsZSBoMyB7XG4gIG1hcmdpbjogNTZweCAwIDIwcHggMDtcbiAgcGFkZGluZzogMTNweCAyOHB4IDEycHg7XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgbGluZS1oZWlnaHQ6IDQ4LjNweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGgzOmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyBoMzpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgaDM6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDQsXG4uYmdlLWNvbnRlbnRzIGg0LFxuLmNrZV9lZGl0YWJsZSBoNCB7XG4gIGJvcmRlci1ib3R0b206IDFweCAjQ0NDIGRvdHRlZDtcbiAgZm9udC1zaXplOiAyMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgbWFyZ2luOiA1MHB4IDAgMTdweCAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNDpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgaDQ6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGg0OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGg1LFxuLmJnZS1jb250ZW50cyBoNSxcbi5ja2VfZWRpdGFibGUgaDUge1xuICBmb250LXNpemU6IDEuMmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgcGFkZGluZzogMC4zZW0gMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGg1OmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyBoNTpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgaDU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDYsXG4uYmdlLWNvbnRlbnRzIGg2LFxuLmNrZV9lZGl0YWJsZSBoNiB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJzLW1haW4tY29udGVudHMgaDY6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGg2OmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoNjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBzdHJvbmcsXG4uYmdlLWNvbnRlbnRzIHN0cm9uZyxcbi5ja2VfZWRpdGFibGUgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgdSxcbi5iZ2UtY29udGVudHMgdSxcbi5ja2VfZWRpdGFibGUgdSB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBzLFxuLmJnZS1jb250ZW50cyBzLFxuLmNrZV9lZGl0YWJsZSBzIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGVtLFxuLmJnZS1jb250ZW50cyBlbSxcbi5ja2VfZWRpdGFibGUgZW0ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4uYnMtbWFpbi1jb250ZW50cyBocixcbi5iZ2UtY29udGVudHMgaHIsXG4uY2tlX2VkaXRhYmxlIGhyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMXB4O1xuICBjb2xvcjogI2RkZDtcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogNTBweCBhdXRvO1xufVxuLmJzLW1haW4tY29udGVudHMgaHI6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGhyOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBocjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCxcbi5iZ2UtY29udGVudHMgdWwsXG4uY2tlX2VkaXRhYmxlIHVsIHtcbiAgbWFyZ2luOiAyMHB4IDAgMzZweCAwO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNXJlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsOmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyB1bDpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgdWw6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgdWwgbGksXG4uYmdlLWNvbnRlbnRzIHVsIGxpLFxuLmNrZV9lZGl0YWJsZSB1bCBsaSB7XG4gIGxpc3Qtc3R5bGUtcG9zaXRpb246IGluc2lkZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDAgMCAyNXB4O1xuICBtYXJnaW46IDAuNWVtIDAgMC41ZW0gMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuLmJzLW1haW4tY29udGVudHMgdWwgbGkgYSxcbi5iZ2UtY29udGVudHMgdWwgbGkgYSxcbi5ja2VfZWRpdGFibGUgdWwgbGkgYSB7XG4gIHpvb206IDE7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCBsaTpiZWZvcmUsXG4uYmdlLWNvbnRlbnRzIHVsIGxpOmJlZm9yZSxcbi5ja2VfZWRpdGFibGUgdWwgbGk6YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA5cHg7XG4gIGxlZnQ6IDFweDtcbiAgd2lkdGg6IDZweDtcbiAgaGVpZ2h0OiA2cHg7XG4gIGJhY2tncm91bmQ6ICMxODE4MTg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsIHVsLFxuLmJnZS1jb250ZW50cyB1bCB1bCxcbi5ja2VfZWRpdGFibGUgdWwgdWwge1xuICBtYXJnaW46IDAgMCAwIDEuOGVtO1xufVxuLmJzLW1haW4tY29udGVudHMgdWwgdWw6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIHVsIHVsOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSB1bCB1bDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBvbCxcbi5iZ2UtY29udGVudHMgb2wsXG4uY2tlX2VkaXRhYmxlIG9sIHtcbiAgbWFyZ2luOiAyMHB4IDAgMzZweCAxLjhlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVyZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyBvbCBvbCxcbi5iZ2UtY29udGVudHMgb2wgb2wsXG4uY2tlX2VkaXRhYmxlIG9sIG9sIHtcbiAgbWFyZ2luOiAyMHB4O1xufVxuLmJzLW1haW4tY29udGVudHMgb2wgbGksXG4uYmdlLWNvbnRlbnRzIG9sIGxpLFxuLmNrZV9lZGl0YWJsZSBvbCBsaSB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbC1sZWFkaW5nLXplcm87XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMCAwIDAgMDtcbiAgbWFyZ2luOiAwLjVlbSAwIDAuNWVtIDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG4uYnMtbWFpbi1jb250ZW50cyBwLFxuLmJnZS1jb250ZW50cyBwLFxuLmNrZV9lZGl0YWJsZSBwIHtcbiAgbWFyZ2luOiAxZW0gMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVyZW07XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyLjM7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSxcbi5iZ2UtY29udGVudHMgdGFibGUsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMWUxZTE7XG4gIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNlMWUxZTE7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTFlMWUxO1xuICBtYXJnaW46IDIwcHggMCAyMHB4IDA7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSxcbiAgLmJnZS1jb250ZW50cyB0YWJsZSxcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlOmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyB0YWJsZTpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgdGFibGU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgdGFibGUgY2FwdGlvbixcbi5iZ2UtY29udGVudHMgdGFibGUgY2FwdGlvbixcbi5ja2VfZWRpdGFibGUgdGFibGUgY2FwdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgY2FwdGlvbixcbiAgLmJnZS1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIGNhcHRpb24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0Ym9keSxcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdGZvb3QsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdGJvZHksXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdGZvb3QsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdGJvZHksXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdGZvb3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0cixcbi5iZ2UtY29udGVudHMgdGFibGUgdHIsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0cixcbiAgLmJnZS1jb250ZW50cyB0YWJsZSB0cixcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB0ciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogLTFweDtcbiAgfVxufVxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgdGQsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHRkLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSB0cjpudGgtY2hpbGQob2RkKSB0ZCB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0aCxcbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRkLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0aCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHIgdGQsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRoLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSB0ciB0ZCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDI2cHggMjRweDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjZTFlMWUxO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRkLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRkLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRoLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRkIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGgsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSB0ciB0aCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbiAgYmFja2dyb3VuZDogI2YzZjNmMztcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRoIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0ZCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHIgdGQsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRkIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRkIHVsLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0ZCB1bCxcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGQgdWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBmaWVsZHNldCxcbi5iZ2UtY29udGVudHMgZmllbGRzZXQsXG4uY2tlX2VkaXRhYmxlIGZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaW1nLFxuLmJnZS1jb250ZW50cyBpbWcsXG4uY2tlX2VkaXRhYmxlIGltZyB7XG4gIGJvcmRlcjogMDtcbiAgbWFyZ2luOiBhdXRvO1xufVxuLmJzLW1haW4tY29udGVudHMgYWRkcmVzcywgLmJzLW1haW4tY29udGVudHMgYnV0dG9uLCAuYnMtbWFpbi1jb250ZW50cyBjYXB0aW9uLCAuYnMtbWFpbi1jb250ZW50cyBjaXRlLCAuYnMtbWFpbi1jb250ZW50cyBjb2RlLCAuYnMtbWFpbi1jb250ZW50cyBkZm4sIC5icy1tYWluLWNvbnRlbnRzIGVtLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dCwgLmJzLW1haW4tY29udGVudHMgb3B0Z3JvdXAsIC5icy1tYWluLWNvbnRlbnRzIG9wdGlvbiwgLmJzLW1haW4tY29udGVudHMgc2VsZWN0LCAuYnMtbWFpbi1jb250ZW50cyBzdHJvbmcsIC5icy1tYWluLWNvbnRlbnRzIHRleHRhcmVhLCAuYnMtbWFpbi1jb250ZW50cyB0aCwgLmJzLW1haW4tY29udGVudHMgdmFyLFxuLmJnZS1jb250ZW50cyBhZGRyZXNzLFxuLmJnZS1jb250ZW50cyBidXR0b24sXG4uYmdlLWNvbnRlbnRzIGNhcHRpb24sXG4uYmdlLWNvbnRlbnRzIGNpdGUsXG4uYmdlLWNvbnRlbnRzIGNvZGUsXG4uYmdlLWNvbnRlbnRzIGRmbixcbi5iZ2UtY29udGVudHMgZW0sXG4uYmdlLWNvbnRlbnRzIGlucHV0LFxuLmJnZS1jb250ZW50cyBvcHRncm91cCxcbi5iZ2UtY29udGVudHMgb3B0aW9uLFxuLmJnZS1jb250ZW50cyBzZWxlY3QsXG4uYmdlLWNvbnRlbnRzIHN0cm9uZyxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWEsXG4uYmdlLWNvbnRlbnRzIHRoLFxuLmJnZS1jb250ZW50cyB2YXIsXG4uY2tlX2VkaXRhYmxlIGFkZHJlc3MsXG4uY2tlX2VkaXRhYmxlIGJ1dHRvbixcbi5ja2VfZWRpdGFibGUgY2FwdGlvbixcbi5ja2VfZWRpdGFibGUgY2l0ZSxcbi5ja2VfZWRpdGFibGUgY29kZSxcbi5ja2VfZWRpdGFibGUgZGZuLFxuLmNrZV9lZGl0YWJsZSBlbSxcbi5ja2VfZWRpdGFibGUgaW5wdXQsXG4uY2tlX2VkaXRhYmxlIG9wdGdyb3VwLFxuLmNrZV9lZGl0YWJsZSBvcHRpb24sXG4uY2tlX2VkaXRhYmxlIHNlbGVjdCxcbi5ja2VfZWRpdGFibGUgc3Ryb25nLFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYSxcbi5ja2VfZWRpdGFibGUgdGgsXG4uY2tlX2VkaXRhYmxlIHZhciB7XG4gIGZvbnQ6IGluaGVyaXQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyBzbWFsbCxcbi5iZ2UtY29udGVudHMgc21hbGwsXG4uY2tlX2VkaXRhYmxlIHNtYWxsIHtcbiAgY29sb3I6ICM2NjY7XG59XG4uYnMtbWFpbi1jb250ZW50cyBkZWwsIC5icy1tYWluLWNvbnRlbnRzIGlucyxcbi5iZ2UtY29udGVudHMgZGVsLFxuLmJnZS1jb250ZW50cyBpbnMsXG4uY2tlX2VkaXRhYmxlIGRlbCxcbi5ja2VfZWRpdGFibGUgaW5zIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgYTpsaW5rLCAuYnMtbWFpbi1jb250ZW50cyBhOnZpc2l0ZWQsXG4uYmdlLWNvbnRlbnRzIGE6bGluayxcbi5iZ2UtY29udGVudHMgYTp2aXNpdGVkLFxuLmNrZV9lZGl0YWJsZSBhOmxpbmssXG4uY2tlX2VkaXRhYmxlIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjMmI3YmI5O1xufVxuLmJzLW1haW4tY29udGVudHMgYTpob3Zlcixcbi5iZ2UtY29udGVudHMgYTpob3Zlcixcbi5ja2VfZWRpdGFibGUgYTpob3ZlciB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGNhcHRpb24sIC5icy1tYWluLWNvbnRlbnRzIHRoLFxuLmJnZS1jb250ZW50cyBjYXB0aW9uLFxuLmJnZS1jb250ZW50cyB0aCxcbi5ja2VfZWRpdGFibGUgY2FwdGlvbixcbi5ja2VfZWRpdGFibGUgdGgge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLmJzLW1haW4tY29udGVudHMgcTpiZWZvcmUsIC5icy1tYWluLWNvbnRlbnRzIHE6YWZ0ZXIsXG4uYmdlLWNvbnRlbnRzIHE6YmVmb3JlLFxuLmJnZS1jb250ZW50cyBxOmFmdGVyLFxuLmNrZV9lZGl0YWJsZSBxOmJlZm9yZSxcbi5ja2VfZWRpdGFibGUgcTphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG59XG4uYnMtbWFpbi1jb250ZW50cyBhYmJyLCAuYnMtbWFpbi1jb250ZW50cyBhY3JvbnltLFxuLmJnZS1jb250ZW50cyBhYmJyLFxuLmJnZS1jb250ZW50cyBhY3JvbnltLFxuLmNrZV9lZGl0YWJsZSBhYmJyLFxuLmNrZV9lZGl0YWJsZSBhY3JvbnltIHtcbiAgYm9yZGVyOiAwO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHN1Yixcbi5iZ2UtY29udGVudHMgc3ViLFxuLmNrZV9lZGl0YWJsZSBzdWIge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IHN1Yjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHN1cCxcbi5iZ2UtY29udGVudHMgc3VwLFxuLmNrZV9lZGl0YWJsZSBzdXAge1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IHN1cGVyO1xufVxuLmJzLW1haW4tY29udGVudHMgbGVnZW5kLFxuLmJnZS1jb250ZW50cyBsZWdlbmQsXG4uY2tlX2VkaXRhYmxlIGxlZ2VuZCB7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmJzLW1haW4tY29udGVudHMgcHJlLFxuLmJnZS1jb250ZW50cyBwcmUsXG4uY2tlX2VkaXRhYmxlIHByZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNGM0YzRjM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmc6IDEwcHggMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGJvcmRlcjogMXB4IHNvbGlkICNFMkUyRTI7XG59XG4uYnMtbWFpbi1jb250ZW50cyBibG9ja3F1b3RlLFxuLmJnZS1jb250ZW50cyBibG9ja3F1b3RlLFxuLmNrZV9lZGl0YWJsZSBibG9ja3F1b3RlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAxcHggMi41ZW07XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAycHggc29saWQgI2NjYztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY29sb3I6ICM4ODg7XG4gIGZvbnQtc2l6ZTogMC45ZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyBibG9ja3F1b3RlOmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyBibG9ja3F1b3RlOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBibG9ja3F1b3RlOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGJsb2NrcXVvdGU6OmJlZm9yZSxcbi5iZ2UtY29udGVudHMgYmxvY2txdW90ZTo6YmVmb3JlLFxuLmNrZV9lZGl0YWJsZSBibG9ja3F1b3RlOjpiZWZvcmUge1xuICBjb250ZW50OiBcIuKAnFwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IHNlcmlmO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMC4zZW07XG4gIGxlZnQ6IDAuMjVlbTtcbiAgei1pbmRleDogMDtcbiAgY29sb3I6ICNjY2M7XG4gIGZvbnQtc2l6ZTogM2VtO1xufVxuLmJzLW1haW4tY29udGVudHMgYmxvY2txdW90ZTo6YWZ0ZXIsXG4uYmdlLWNvbnRlbnRzIGJsb2NrcXVvdGU6OmFmdGVyLFxuLmNrZV9lZGl0YWJsZSBibG9ja3F1b3RlOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwi4oCdXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogc2VyaWY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAtMC4zZW07XG4gIHJpZ2h0OiAwLjI1ZW07XG4gIHotaW5kZXg6IDA7XG4gIGNvbG9yOiAjY2NjO1xuICBmb250LXNpemU6IDNlbTtcbn1cblxuLyogRm9ybSBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi5icy1tYWluLWNvbnRlbnRzIGZvcm0sXG4uYmdlLWNvbnRlbnRzIGZvcm0sXG4uY2tlX2VkaXRhYmxlIGZvcm0sXG4uYnMtc3ViLWNvbnRlbnRzIGZvcm0ge1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dCwgLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsIC5icy1tYWluLWNvbnRlbnRzIHNlbGVjdCwgLmJzLW1haW4tY29udGVudHMgb3B0aW9uLFxuLmJnZS1jb250ZW50cyBpbnB1dCxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWEsXG4uYmdlLWNvbnRlbnRzIHNlbGVjdCxcbi5iZ2UtY29udGVudHMgb3B0aW9uLFxuLmNrZV9lZGl0YWJsZSBpbnB1dCxcbi5ja2VfZWRpdGFibGUgdGV4dGFyZWEsXG4uY2tlX2VkaXRhYmxlIHNlbGVjdCxcbi5ja2VfZWRpdGFibGUgb3B0aW9uLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dCxcbi5icy1zdWItY29udGVudHMgdGV4dGFyZWEsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdCxcbi5icy1zdWItY29udGVudHMgb3B0aW9uIHtcbiAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGV4dF0sXG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9bnVtYmVyXSxcbi5icy1tYWluLWNvbnRlbnRzIHRleHRhcmVhLFxuLmJzLW1haW4tY29udGVudHMgc2VsZWN0LFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZXh0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1lbWFpbF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYSxcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYSxcbi5icy1zdWItY29udGVudHMgc2VsZWN0IHtcbiAgbWFyZ2luOiAzcHggMnB4O1xuICBwYWRkaW5nOiA4cHggMTBweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXJhZGlvXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cmFkaW9dLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1yYWRpb10sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXJhZGlvXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1jaGVja2JveF0ge1xuICBtYXJnaW4tbGVmdDogNXB4O1xuICBtYXJnaW4tcmlnaHQ6IDVweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9c3VibWl0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1yZXNldF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9YnV0dG9uXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1zdWJtaXRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXJlc2V0XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1idXR0b25dLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXN1Ym1pdF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9cmVzZXRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWJ1dHRvbl0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9c3VibWl0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1yZXNldF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9YnV0dG9uXSB7XG4gIG1hcmdpbjogM3B4IDJweDtcbiAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZXh0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1lbWFpbF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgZm9udC1zaXplOiAxZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6cGxhY2Vob2xkZXIsIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGV4dF06OnBsYWNlaG9sZGVyLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXTo6cGxhY2Vob2xkZXIsIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXTo6cGxhY2Vob2xkZXIsIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9bnVtYmVyXTo6cGxhY2Vob2xkZXIsXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XTo6cGxhY2Vob2xkZXIsXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZWxdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlcixcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1wYXNzd29yZF06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcixcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1lbWFpbF06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRlbF06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPW51bWJlcl06OnBsYWNlaG9sZGVyLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGV4dF06OnBsYWNlaG9sZGVyLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9bnVtYmVyXTo6cGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2NjYztcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0OmFjdGl2ZSwgLmJzLW1haW4tY29udGVudHMgaW5wdXQ6Zm9jdXMsXG4uYmdlLWNvbnRlbnRzIGlucHV0OmFjdGl2ZSxcbi5iZ2UtY29udGVudHMgaW5wdXQ6Zm9jdXMsXG4uY2tlX2VkaXRhYmxlIGlucHV0OmFjdGl2ZSxcbi5ja2VfZWRpdGFibGUgaW5wdXQ6Zm9jdXMsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0OmFjdGl2ZSxcbi5icy1zdWItY29udGVudHMgaW5wdXQ6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDFweCAjZmE5Njk2O1xuICBvdXRsaW5lOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsXG4uYmdlLWNvbnRlbnRzIHRleHRhcmVhLFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYSxcbi5icy1zdWItY29udGVudHMgdGV4dGFyZWEge1xuICB3aWR0aDogOTUlO1xuICBmb250LXNpemU6IDFlbTtcbiAgcGFkZGluZzogM3B4IDNweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRleHRhcmVhOmFjdGl2ZSwgLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWE6Zm9jdXMsXG4uYmdlLWNvbnRlbnRzIHRleHRhcmVhOmFjdGl2ZSxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWE6Zm9jdXMsXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhOmFjdGl2ZSxcbi5ja2VfZWRpdGFibGUgdGV4dGFyZWE6Zm9jdXMsXG4uYnMtc3ViLWNvbnRlbnRzIHRleHRhcmVhOmFjdGl2ZSxcbi5icy1zdWItY29udGVudHMgdGV4dGFyZWE6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDFweCAjZmE5Njk2O1xuICBvdXRsaW5lOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1wYXNzd29yZF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGV4dF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXRlbF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9bnVtYmVyXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9dGV4dF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRlbF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9bnVtYmVyXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGV4dF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9ZW1haWxdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRlbF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9bnVtYmVyXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGV4dF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXRlbF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9bnVtYmVyXSB7XG4gIGxpbmUtaGVpZ2h0OiAxZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyBzZWxlY3QsXG4uYmdlLWNvbnRlbnRzIHNlbGVjdCxcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmJzLXN1Yi1jb250ZW50cyBzZWxlY3Qge1xuICBmb250LXNpemU6IDFlbTtcbiAgaGVpZ2h0OiAyLjZlbTtcbiAgcGFkZGluZzogMTBweCA4cHg7XG59XG4uYnMtbWFpbi1jb250ZW50cyBzZWxlY3Q6YWN0aXZlLCAuYnMtbWFpbi1jb250ZW50cyBzZWxlY3Q6Zm9jdXMsXG4uYmdlLWNvbnRlbnRzIHNlbGVjdDphY3RpdmUsXG4uYmdlLWNvbnRlbnRzIHNlbGVjdDpmb2N1cyxcbi5ja2VfZWRpdGFibGUgc2VsZWN0OmFjdGl2ZSxcbi5ja2VfZWRpdGFibGUgc2VsZWN0OmZvY3VzLFxuLmJzLXN1Yi1jb250ZW50cyBzZWxlY3Q6YWN0aXZlLFxuLmJzLXN1Yi1jb250ZW50cyBzZWxlY3Q6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDFweCAjZmE5Njk2O1xuICBvdXRsaW5lOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgb3B0Z3JvdXAgb3B0aW9uLFxuLmJnZS1jb250ZW50cyBvcHRncm91cCBvcHRpb24sXG4uY2tlX2VkaXRhYmxlIG9wdGdyb3VwIG9wdGlvbixcbi5icy1zdWItY29udGVudHMgb3B0Z3JvdXAgb3B0aW9uIHtcbiAgcGFkZGluZy1sZWZ0OiAyMHB4O1xufVxuXG4vKipcbiAqIOWkieaVsFxuICovXG4vKiogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKlxuICpcbiAqIOODleOCqeODs+ODiOOBruWumue+qVxuICogRm9udCBBd2Vzb21lIDQuNi4zIGJ5IEBkYXZlZ2FuZHkgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8gLSBAZm9udGF3ZXNvbWVcbiAqIExpY2Vuc2UgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8vbGljZW5zZSAoRm9udDogU0lMIE9GTCAxLjEsIENTUzogTUlUIExpY2Vuc2UpXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuICBzcmM6IHVybChcIi4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQuZW90P3Y9NC42LjNcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/I2llZml4JnY9NC42LjNcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksIHVybChcIi4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQud29mZjI/dj00LjYuM1wiKSBmb3JtYXQoXCJ3b2ZmMlwiKSwgdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9NC42LjNcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC50dGY/dj00LjYuM1wiKSBmb3JtYXQoXCJ0cnVldHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5zdmc/dj00LjYuMyNmb250YXdlc29tZXJlZ3VsYXJcIikgZm9ybWF0KFwic3ZnXCIpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4vKiogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKlxuICpcbiAqIOODnuODq+ODgeOCq+ODqeODoOODluODreODg+OCr+OBruODrOOCpOOCouOCpuODiFxuICpcbiAqIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tICoqL1xuLyoqXG4gKiBCdXJnZXJFZGl0b3IgU3R5bGVTaGVldCBTdHlsZVxuICpcbiAqIGJjLWZyb250IOODhuODvOODnuWBtOOBp+OCs+ODs+ODkeOCpOODq+OBl+OBn+mam+OBr+OAgWJnZV9zdHlsZS5jc3Mg44KSXG4gKiBCY1RoZW1lU2FtcGxlIOODhuODvOODnuWBtOOBq+OCs+ODlOODvOOBmeOCi+W/heimgeOBjOOBguOCi1xuICovXG4uYmd0LWJveF9fY2FwdGlvbiB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHBhZGRpbmc6IDNweDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgZm9udC1zaXplOiAwLjhlbTtcbn1cblxuLmJndC1idG4ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHBhZGRpbmc6IDEycHggMTBweDtcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgbWluLXdpZHRoOiAyODBweDtcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xufVxuLmJndC1idG46YWN0aXZlLCAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgIzA1NzBjNywgMCAwIDEwcHggMCAjZmZmO1xufVxuXG4uYmd0LWJ0bi0tbGluayxcbltkYXRhLWJndC1idXR0b24ta2luZD1saW5rXSAuYmd0LWJ0biB7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXItY29sb3I6ICNjY2M7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG4uYmd0LWJ0bi0tbGluazpob3ZlciwgLmJndC1idG4tLWxpbms6YWN0aXZlLCAuYmd0LWJ0bi0tbGluazpmb2N1cyxcbltkYXRhLWJndC1idXR0b24ta2luZD1saW5rXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1saW5rXSAuYmd0LWJ0bjphY3RpdmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9bGlua10gLmJndC1idG46Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjZTllOWU5O1xufVxuXG4uYmd0LWJ0bi0tZW0sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZW1dIC5iZ3QtYnRuIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiAjZmZmO1xuICBib3JkZXItY29sb3I6ICMzMzM7XG4gIGJhY2tncm91bmQ6ICMzMzM7XG59XG4uYmd0LWJ0bi0tZW06aG92ZXIsIC5iZ3QtYnRuLS1lbTphY3RpdmUsIC5iZ3QtYnRuLS1lbTpmb2N1cyxcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG46aG92ZXIsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZW1dIC5iZ3QtYnRuOmFjdGl2ZSxcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG46Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjNTU1O1xufVxuXG4uYmd0LWJ0bi0tZXh0ZXJuYWwsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJvcmRlci1jb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5iZ3QtYnRuLS1leHRlcm5hbDpob3ZlciwgLmJndC1idG4tLWV4dGVybmFsOmFjdGl2ZSwgLmJndC1idG4tLWV4dGVybmFsOmZvY3VzLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWV4dGVybmFsXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1leHRlcm5hbF0gLmJndC1idG46YWN0aXZlLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWV4dGVybmFsXSAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNlOWU5ZTk7XG59XG4uYmd0LWJ0bi0tZXh0ZXJuYWw6OmFmdGVyLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWV4dGVybmFsXSAuYmd0LWJ0bjo6YWZ0ZXIge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWUsIHNlcmlmO1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gIGNvbnRlbnQ6IFwiXFxmMDhlXCI7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBjb2xvcjogIzk5OTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmJndC1idG4tLWJhY2ssXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG4ge1xuICBjb2xvcjogIzMzMztcbiAgYm9yZGVyLWNvbG9yOiAjZGRkO1xuICBiYWNrZ3JvdW5kOiAjZGRkO1xufVxuLmJndC1idG4tLWJhY2s6aG92ZXIsIC5iZ3QtYnRuLS1iYWNrOmFjdGl2ZSwgLmJndC1idG4tLWJhY2s6Zm9jdXMsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG46aG92ZXIsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG46YWN0aXZlLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWJhY2tdIC5iZ3QtYnRuOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogI2U5ZTllOTtcbn1cbi5iZ3QtYnRuLS1iYWNrIHNwYW4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG4gc3BhbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5iZ3QtYnRuLS1iYWNrOjpiZWZvcmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG46OmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZSwgc2VyaWY7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgY29udGVudDogXCJcXGYwNTNcIjtcbiAgZm9udC1zaXplOiAxZW07XG4gIG1hcmdpbi10b3A6IC0ycHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxuLmJndC1ociB7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG5bZGF0YS1iZ3QtaHIta2luZD1kYXNoZWRdIC5iZ3QtaHIge1xuICBoZWlnaHQ6IDA7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyLWJvdHRvbTogMnB4IGRhc2hlZCBjdXJyZW50Q29sb3I7XG59XG5cbi5iZ3QtaHItLWJvbGQsXG5bZGF0YS1iZ3QtaHIta2luZD1ib2xkXSAuYmd0LWhyIHtcbiAgaGVpZ2h0OiA1cHg7XG59XG5cbi5iZ3QtaHItLW5hcnJvdyxcbltkYXRhLWJndC1oci1raW5kPW5hcnJvd10gLmJndC1ociB7XG4gIGhlaWdodDogMXB4O1xufVxuXG4uYmd0LWhyLS1zaG9ydCxcbltkYXRhLWJndC1oci1raW5kPXNob3J0XSAuYmd0LWhyIHtcbiAgd2lkdGg6IDYwJTtcbiAgaGVpZ2h0OiAxcHg7XG59XG5cbi5iZ3QtZG93bmxvYWQtZmlsZV9fbGluayB7XG4gIGNvbG9yOiAjMzMzO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXNpemU6IDEuMDhlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMC43ZW0gMWVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYmd0LWRvd25sb2FkLWZpbGVfX2xpbms6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xufVxuLmJndC1kb3dubG9hZC1maWxlX19saW5rOmFjdGl2ZSwgLmJndC1kb3dubG9hZC1maWxlX19saW5rOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggIzA1NzBjNztcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmJndC1saW5rX19zaXplIHtcbiAgY29sb3I6ICM4MDgwODA7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5iZ3QtZ29vZ2xlLW1hcHMtbGluayB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBwYWRkaW5nOiAxZW07XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGJvcmRlcjogc29saWQgMXB4ICM5OTk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuICAuYmd0LWdvb2dsZS1tYXBzLWxpbmsgc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLmJndC1nb29nbGUtbWFwcy1saW5rOjphZnRlciB7XG4gICAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lLCBzZXJpZjtcbiAgICBzcGVhazogbm9uZTtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgIGNvbnRlbnQ6IFwiXFxmMDhlXCI7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5IHtcbiAgcGFkZGluZy10b3A6IDU0JTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnk6aG92ZXIgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsIHtcbiAgb3BhY2l0eTogMTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnlfX2ltZyBpbWcge1xuICBvYmplY3QtZml0OiBjb3Zlcjtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnlfX2NhcHRpb24ge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICBwYWRkaW5nOiAwLjdlbSAxZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybCB7XG4gIHRvcDogNTAlO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDIwMG1zIGVhc2UtaW47XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXYsIFtkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBtYXJnaW46IC0yMHB4IDAgMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19wcmV2OmhvdmVyLCBbZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX25leHQ6aG92ZXIge1xuICBvcGFjaXR5OiAwLjU7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXY6Zm9jdXMsIFtkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXYgc3BhbiwgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0IHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldjo6YWZ0ZXIsIFtkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dDo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyOiBzb2xpZCAjZmZmO1xuICBib3JkZXItd2lkdGg6IDVweCA1cHggMCAwO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19wcmV2IHtcbiAgbGVmdDogMjBweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZyk7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX25leHQge1xuICByaWdodDogMjBweDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPXRodW1ic10gKyAuYmd0LWdhbGxlcnktbWFya2VyIHtcbiAgbWFyZ2luLXRvcDogMTBweDtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSBbZGF0YS1nYWxsZXJ5LW1hcmtlcj10aHVtYnNdICsgLmJndC1nYWxsZXJ5LW1hcmtlciBsaSB7XG4gIG1hcmdpbjogMCA1cHg7XG4gIHdpZHRoOiA2MHB4O1xuICBoZWlnaHQ6IDYwcHg7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9dGh1bWJzXSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIgbGk6OmJlZm9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9ZG90XSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPWRvdF0gKyAuYmd0LWdhbGxlcnktbWFya2VyIGxpIHtcbiAgbWFyZ2luOiAwIDJweDtcbiAgd2lkdGg6IDEwcHg7XG4gIGhlaWdodDogMTBweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSBbZGF0YS1nYWxsZXJ5LW1hcmtlcj1kb3RdICsgLmJndC1nYWxsZXJ5LW1hcmtlciBsaS5jdXJyZW50IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cblxuLyog44OH44OQ44Kk44K55L6d5a2Y5rGO55So44Kv44Op44K5ICovXG4ucGMtb25seSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnBjLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNwLW9ubHkge1xuICBkaXNwbGF5OiBub25lO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLnNwLW9ubHkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59IiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLyoqXG4gKiBiYXNlckNNUyA6ICBCYXNlZCBXZWJzaXRlIERldmVsb3BtZW50IFByb2plY3QgPGh0dHBzOi8vYmFzZXJjbXMubmV0PlxuICogQ29weXJpZ2h0IChjKSBOUE8gYmFzZXIgZm91bmRhdGlvbiA8aHR0cHM6Ly9iYXNlcmZvdW5kYXRpb24ub3JnLz5cbiAqXG4gKiBAY29weXJpZ2h0ICAgICBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uXG4gKiBAbGluayAgICAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldCBiYXNlckNNUyBQcm9qZWN0XG4gKiBAc2luY2UgICAgICAgICA1LjAuMFxuICogQGxpY2Vuc2UgICAgICAgaHR0cHM6Ly9iYXNlcmNtcy5uZXQvbGljZW5zZS9pbmRleC5odG1sIE1JVCBMaWNlbnNlXG4gKi9cblxuLyoqXG4gKiDjg5Djg7zjgqzjg7zjgqjjg4fjgqPjgr/jg7zjgrnjgr/jgqTjg6tcbiAqIOeuoeeQhueUu+mdouOBp+OCguWRvOOBs+WHuuOBleOCjOOCi1xuICovXG5cbkBpbXBvcnQgXCJjb21tb24vZWRpdG9yXCI7XG5AaW1wb3J0IFwiY29tbW9uL2JnZV9zZXR0aW5nXCI7XG5AaW1wb3J0IFwiY29tbW9uL2JnZVwiO1xuXG4iLCIvKipcbiAqIOOCqOODh+OCo+OCv+ODvOeUqENTU1xuICovXG5cbiRicmVha1BvaW50OiA3NjhweDtcblxuLmNrZV9lZGl0YWJsZSB7XG4gIHBhZGRpbmc6IDE1cHg7XG59XG5cbi8qIEVkaXRvciBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmJzLW1haW4tY29udGVudHMsXG4uYmdlLWNvbnRlbnRzLFxuLmNrZV9lZGl0YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgVmVyZGFuYSwgXCLmuLjjgrTjgrfjg4Pjgq9cIiwgWXVHb3RoaWMsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvTlwiLCBNZWlyeW8sIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjMDAwO1xuXG4gIGgxIHtcbiAgICBmb250LXNpemU6IDQwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIGgyIHtcbiAgICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGZvbnQtc2l6ZTogMi4yZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDAuNmVtIDA7XG4gICAgcGFkZGluZzogMC4zZW0gMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIGgzIHtcbiAgICBtYXJnaW46IDU2cHggMCAyMHB4IDA7XG4gICAgcGFkZGluZzogMTNweCAyOHB4IDEycHg7XG4gICAgZm9udC1zaXplOiAyMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0OC4zcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICBoNCB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4ICNDQ0MgZG90dGVkO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgbWFyZ2luOiA1MHB4IDAgMTdweCAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIGg1IHtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgaDYge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMC4zZW0gMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIHUge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB9XG5cbiAgcyB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gIH1cblxuICBlbSB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xuICB9XG5cbiAgaHIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMXB4O1xuICAgIGNvbG9yOiAjZGRkO1xuICAgIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiA1MHB4IGF1dG87XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgdWwge1xuICAgIG1hcmdpbjogMjBweCAwIDM2cHggMDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDVyZW07XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZzogMCAwIDAgMjVweDtcbiAgICAgIG1hcmdpbjogMC41ZW0gMCAwLjVlbSAwO1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG5cbiAgICAgIGEge1xuICAgICAgICB6b29tOiAxO1xuICAgICAgfVxuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDlweDtcbiAgICAgICAgbGVmdDogMXB4O1xuICAgICAgICB3aWR0aDogNnB4O1xuICAgICAgICBoZWlnaHQ6IDZweDtcbiAgICAgICAgYmFja2dyb3VuZDogIzE4MTgxODtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHVsIHtcbiAgICAgIG1hcmdpbjogMCAwIDAgMS44ZW07XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9sIHtcbiAgICBtYXJnaW46IDIwcHggMCAzNnB4IDEuOGVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNXJlbTtcblxuICAgIG9sIHtcbiAgICAgIG1hcmdpbjogMjBweDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWwtbGVhZGluZy16ZXJvO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZzogMCAwIDAgMDtcbiAgICAgIG1hcmdpbjogMC41ZW0gMCAwLjVlbSAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICB9XG4gIH1cblxuICBwIHtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAuMDVyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBsaW5lLWhlaWdodDogMi4zO1xuICB9XG5cbiAgdGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMWUxZTE7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UxZTFlMTtcbiAgICBtYXJnaW46IDIwcHggMCAyMHB4IDA7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgY2FwdGlvbiB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRib2R5LFxuICAgIHRmb290IHtcbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRyIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTFlMWUxO1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKG9kZCkgdGQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgfVxuXG4gICAgICB0aCxcbiAgICAgIHRkIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgcGFkZGluZzogMjZweCAyNHB4O1xuICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMWUxZTE7XG5cbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbiAgICAgICAgYmFja2dyb3VuZDogI2YzZjNmMztcbiAgICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRkIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuICAgICAgICB1bCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG5cbiAgaW1nIHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiBhdXRvO1xuICB9XG5cbiAgYWRkcmVzcywgYnV0dG9uLCBjYXB0aW9uLCBjaXRlLCBjb2RlLCBkZm4sIGVtLCBpbnB1dCwgb3B0Z3JvdXAsIG9wdGlvbiwgc2VsZWN0LCBzdHJvbmcsIHRleHRhcmVhLCB0aCwgdmFyIHtcbiAgICBmb250OiBpbmhlcml0O1xuICB9XG5cbiAgc21hbGwge1xuICAgIGNvbG9yOiAjNjY2O1xuICB9XG5cbiAgZGVsLCBpbnMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuXG4gIGEge1xuICAgICY6bGluaywgJjp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjMmI3YmI5O1xuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGNhcHRpb24sIHRoIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB9XG5cbiAgcSB7XG4gICAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgfVxuICB9XG5cbiAgYWJiciwgYWNyb255bSB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB9XG5cbiAgc3ViIHtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xuICB9XG5cbiAgc3VwIHtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG4gIH1cblxuICBsZWdlbmQge1xuICAgIGNvbG9yOiAjMDAwO1xuICB9XG5cbiAgcHJlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjNGM0YzO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZzogMTBweCAyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyOiAxcHggc29saWQgI0UyRTJFMjtcbiAgfVxuXG4gIGJsb2NrcXVvdGUge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIHBhZGRpbmc6IDFweCAyLjVlbTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjY2NjO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY29sb3I6ICM4ODg7XG4gICAgZm9udC1zaXplOiAwLjllbTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogJ+KAnCc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZvbnQtZmFtaWx5OiBzZXJpZjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogMC4zZW07XG4gICAgICBsZWZ0OiAwLjI1ZW07XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgY29sb3I6ICNjY2M7XG4gICAgICBmb250LXNpemU6IDNlbTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiAn4oCdJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6IHNlcmlmO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMC4zZW07XG4gICAgICByaWdodDogMC4yNWVtO1xuICAgICAgei1pbmRleDogMDtcbiAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgZm9udC1zaXplOiAzZW07XG4gICAgfVxuICB9XG5cbn1cblxuLyogRm9ybSBQYXJ0c1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLmJzLW1haW4tY29udGVudHMsXG4uYmdlLWNvbnRlbnRzLFxuLmNrZV9lZGl0YWJsZSxcbi5icy1zdWItY29udGVudHMge1xuICBmb3JtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cblxuICBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgb3B0aW9uIHtcbiAgICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbiAgfVxuXG4gIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuICBpbnB1dFt0eXBlPXRleHRdLFxuICBpbnB1dFt0eXBlPWVtYWlsXSxcbiAgaW5wdXRbdHlwZT10ZWxdLFxuICBpbnB1dFt0eXBlPW51bWJlcl0sXG4gIHRleHRhcmVhLFxuICBzZWxlY3Qge1xuICAgIG1hcmdpbjogM3B4IDJweDtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgfVxuXG4gIGlucHV0IHtcbiAgICAmW3R5cGU9Y2hlY2tib3hdIHtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgJlt0eXBlPXJhZGlvXSwgJlt0eXBlPWNoZWNrYm94XSB7XG4gICAgICBtYXJnaW4tbGVmdDogNXB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgfVxuXG4gICAgJlt0eXBlPXN1Ym1pdF0sICZbdHlwZT1yZXNldF0sICZbdHlwZT1idXR0b25dIHtcbiAgICAgIG1hcmdpbjogM3B4IDJweDtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICAgIH1cblxuICAgICZbdHlwZT1wYXNzd29yZF0sXG4gICAgJlt0eXBlPXRleHRdLFxuICAgICZbdHlwZT1lbWFpbF0sXG4gICAgJlt0eXBlPXRlbF0sXG4gICAgJlt0eXBlPW51bWJlcl1cbiAgICB7XG4gICAgICBmb250LXNpemU6IDFlbTtcblxuICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogI2NjYztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIHRleHRhcmVhIHtcbiAgICB3aWR0aDogOTUlO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIHBhZGRpbmc6IDNweCAzcHg7XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0IHtcbiAgICAmW3R5cGU9cGFzc3dvcmRdLFxuICAgICZbdHlwZT10ZXh0XSxcbiAgICAmW3R5cGU9ZW1haWxdLFxuICAgICZbdHlwZT10ZWxdLFxuICAgICZbdHlwZT1udW1iZXJdXG4gICAge1xuICAgICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGhlaWdodDogMi42ZW07XG4gICAgcGFkZGluZzogMTBweCA4cHg7XG5cbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIG9wdGdyb3VwIG9wdGlvbiB7XG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuICB9XG59XG4iLCIvKipcbiAqIOWkieaVsFxuICovXG5AdXNlIFwic2FzczptYXRoXCI7XG5cbi8vIFJXROOBruODluODrOODvOOCr+ODneOCpOODs+ODiFxuJGJyZWFrUG9pbnQ6IDc2OHB4O1xuXG4vLyDjgqvjg6njg6DplpPjga7jg57jg7zjgrjjg7NcbiRtdWx0aUNvbHVtbkdyaWRNYXJnaW46IDIwcHg7XG5cbi8vIFJXROOBp+OCq+ODqeODoOOBjOiQveOBoeOBn+aZguOBruS4i+ODnuODvOOCuOODs1xuJG11bHRpQ29sdW1uR3JpZE1hcmdpbkJvdHRvbVdoZW5DbGVhcmVkRmxvYXQ6IDIwcHg7XG5cbi8vIOODnOOCv+ODs+OBruODleOCqeODvOOCq+OCueaZguOBruOCq+ODqeODvFxuJGJ0bkdsb3dDb2xvcjogIzA1NzBjNztcblxuLy8g44OI44Oq44Og55S75YOP44OW44Ot44OD44Kv44Gu57im5qiq5q+UXG4kdHJpbUltYWdlQXNwZWN0UmF0aW86IDE7IC8vIDQ6M+OBruWgtOWQiOOBrzMvNFxuXG4vKiogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKlxuICpcbiAqIOODleOCqeODs+ODiOOBruWumue+qVxuICogRm9udCBBd2Vzb21lIDQuNi4zIGJ5IEBkYXZlZ2FuZHkgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8gLSBAZm9udGF3ZXNvbWVcbiAqIExpY2Vuc2UgLSBodHRwOi8vZm9udGF3ZXNvbWUuaW8vbGljZW5zZSAoRm9udDogU0lMIE9GTCAxLjEsIENTUzogTUlUIExpY2Vuc2UpXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lO1xuICBzcmM6IHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/dj00LjYuMycpO1xuICBzcmM6IHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/I2llZml4JnY9NC42LjMnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmMj92PTQuNi4zJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJy4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQud29mZj92PTQuNi4zJykgZm9ybWF0KCd3b2ZmJyksXG4gIHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC50dGY/dj00LjYuMycpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcbiAgdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnN2Zz92PTQuNi4zI2ZvbnRhd2Vzb21lcmVndWxhcicpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuLy8gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gL1xuLy8g44Kw44Oq44OD44OJ44K344K544OG44OgXG4vL1xuLy8g57eo6ZuG6Z2e5o6o5aWoXG4vL1xuLy8gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gL1xuJHNwYW4xOiA4LjMzMzMlO1xuJHNwYW4yOiAxNi42NjY2JTtcbiRzcGFuMzogMjUlO1xuJHNwYW40OiAzMy4zMzMzJTtcbiRzcGFuNTogNDEuNjY2NiU7XG4kc3BhbjY6IDUwJTtcbiRzcGFuNzogNTguMzMzMyU7XG4kc3Bhbjg6IDY2LjY2NjYlO1xuJHNwYW45OiA3NSU7XG4kc3BhbjEwOiA4My4zMzMzJTtcbiRzcGFuMTE6IDkxLjY2NjYlO1xuJHNwYW4xMjogMTAwJTtcbiRkaXZpZGU1OiAyMCU7IC8vIDEy44Kw44Oq44OD44OJ44K344K544OG44Og44Gn44Gv5YaN54++44Gn44GN44Gq44GENeWIhuWJslxuXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG4vL1xuLy8g44Of44OD44Kv44K544Kk44OzXG4vL1xuLy8gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gL1xuQG1peGluIGJnZS1pY29uIHtcbiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lLCBzZXJpZjtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4vKiogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKlxuICpcbiAqIOODnuODq+ODgeOCq+ODqeODoOODluODreODg+OCr+OBruODrOOCpOOCouOCpuODiFxuICpcbiAqIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tICoqL1xuXG4lY29sdW1uMi1sYXlvdXQge1xuICAvKiAy5YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogMuWIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJHNwYW42O1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZmxvYXQ6IG5vbmU7XG5cbiAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIC8qIOS4i+ODnuODvOOCuOODs+OBr+ODluODreODg+OCr+WGheOBruOCv+OCpOODl+OBruimgee0oOOBq+WvvuOBl+OBpuaMh+WumuOBmeOCiyAo56m655S75YOP5a++562WKSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDtcblxuICAgICAgICAmW2RhdGEtYmdlLWVtcHR5PScxJ10ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJltjbGFzcyo9J2JndC1zcC1ncmlkJ10ge1xuICAgICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAvKiAy5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOacgOWIneOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiwgMik7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgLyogMuWIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjmnIDlvozjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiwgMik7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuJWNvbHVtbjMtbGF5b3V0IHtcbiAgLyogM+WIl+ODluODreODg+OCryAqL1xuICAuYmd0LWdyaWQge1xuICAgIC8qIDPliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So44Kz44Oz44OG44OKICovXG4gICAgd2lkdGg6ICRzcGFuNDtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCAzKTtcbiAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMSwgMyk7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIC8qIOS4i+ODnuODvOOCuOODs+OBr+ODluODreODg+OCr+WGheOBruOCv+OCpOODl+OBruimgee0oOOBq+WvvuOBl+OBpuaMh+WumuOBmeOCiyAo56m655S75YOP5a++562WKSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDtcblxuICAgICAgICAmW2RhdGEtYmdlLWVtcHR5PScxJ10ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJltjbGFzcyo9J2JndC1zcC1ncmlkJ10ge1xuICAgICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAvKiAz5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOacgOWIneOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDIsIDMpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgIC8qIDPliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So5pyA5Yid44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCAzKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuJWNvbHVtbjQtbGF5b3V0IHtcbiAgLyogNOWIl+ODluODreODg+OCryAqL1xuICAuYmd0LWdyaWQge1xuICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So44Kz44Oz44OG44OKICovXG4gICAgd2lkdGg6ICRzcGFuMztcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuXG4gICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAvKiDkuIvjg57jg7zjgrjjg7Pjga/jg5bjg63jg4Pjgq/lhoXjga7jgr/jgqTjg5fjga7opoHntKDjgavlr77jgZfjgabmjIflrprjgZnjgosgKOepuueUu+WDj+WvvuetlikgKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG11bHRpQ29sdW1uR3JpZE1hcmdpbkJvdHRvbVdoZW5DbGVhcmVkRmxvYXQ7XG5cbiAgICAgICAgJltkYXRhLWJnZS1lbXB0eT0nMSddIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICZbY2xhc3MqPSdiZ3Qtc3AtZ3JpZCddIHtcbiAgICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDMsIDQpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMSwgNCk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMiwgNCk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA0KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCA0KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDMsIDQpO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lY29sdW1uNS1sYXlvdXQge1xuICAvKiA15YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogNeWIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJGRpdmlkZTU7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgLyog5LiL44Oe44O844K444Oz44Gv44OW44Ot44OD44Kv5YaF44Gu44K/44Kk44OX44Gu6KaB57Sg44Gr5a++44GX44Gm5oyH5a6a44GZ44KLICjnqbrnlLvlg4/lr77nrZYpICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtdWx0aUNvbHVtbkdyaWRNYXJnaW5Cb3R0b21XaGVuQ2xlYXJlZEZsb2F0O1xuXG4gICAgICAgICZbZGF0YS1iZ2UtZW1wdHk9JzEnXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmW2NsYXNzKj0nYmd0LXNwLWdyaWQnXSB7XG4gICAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiA0LCA1KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDUpO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDMsIDUpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMiwgNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMiwgNSk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCg0KSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAzLCA1KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCA1KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDUpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDQsIDUpO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyoqXG4gKiBCdXJnZXJFZGl0b3IgU3R5bGVTaGVldCBTdHlsZVxuICpcbiAqIGJjLWZyb250IOODhuODvOODnuWBtOOBp+OCs+ODs+ODkeOCpOODq+OBl+OBn+mam+OBr+OAgWJnZV9zdHlsZS5jc3Mg44KSXG4gKiBCY1RoZW1lU2FtcGxlIOODhuODvOODnuWBtOOBq+OCs+ODlOODvOOBmeOCi+W/heimgeOBjOOBguOCi1xuICovXG5cbi5iZ3QtYm94X19jYXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogM3B4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuXG4uYmd0LWJ0biB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZzogMTJweCAxMHB4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtaW4td2lkdGg6IDI4MHB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgJGJ0bkdsb3dDb2xvciwgMCAwIDEwcHggMCAjZmZmO1xuICB9XG59XG5cbi5iZ3QtYnRuLS1saW5rIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPSdsaW5rJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogIzMzMztcbiAgJGJDb2xvcjogI2NjYztcbiAgJGJnQ29sb3I6ICNmZmY7XG4gICRiZ0NvbG9ySG92ZXI6ICNlOWU5ZTk7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJGJDb2xvcjtcbiAgYmFja2dyb3VuZDogJGJnQ29sb3I7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRiZ0NvbG9ySG92ZXI7XG4gIH1cbn1cblxuLmJndC1idG4tLWVtIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPSdlbSddIC5iZ3QtYnRuIC8qIOaWsOOCu+ODrOOCr+OCvyAqL1xue1xuICAkY29sb3I6ICNmZmY7XG4gICRiQ29sb3I6ICMzMzM7XG4gICRiZ0NvbG9yOiAjMzMzO1xuICAkYmdDb2xvckhvdmVyOiAjNTU1O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkYkNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmdDb2xvcjtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGJnQ29sb3JIb3ZlcjtcbiAgfVxufVxuXG4uYmd0LWJ0bi0tZXh0ZXJuYWwgLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9J2V4dGVybmFsJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogIzMzMztcbiAgJGJDb2xvcjogI2NjYztcbiAgJGJnQ29sb3I6ICNmZmY7XG4gICRiZ0NvbG9ySG92ZXI6ICNlOWU5ZTk7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJGJDb2xvcjtcbiAgYmFja2dyb3VuZDogJGJnQ29sb3I7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRiZ0NvbG9ySG92ZXI7XG4gIH1cblxuICAmOjphZnRlciB7XG4gICAgQGluY2x1ZGUgYmdlLWljb247XG4gICAgY29udGVudDogJ1xcZjA4ZSc7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgY29sb3I6ICM5OTk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4uYmd0LWJ0bi0tYmFjayAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1idXR0b24ta2luZD0nYmFjayddIC5iZ3QtYnRuIC8qIOaWsOOCu+ODrOOCr+OCvyAqL1xue1xuICAkY29sb3I6ICMzMzM7XG4gICRiQ29sb3I6ICNkZGQ7XG4gICRiZ0NvbG9yOiAjZGRkO1xuICAkYmdDb2xvckhvdmVyOiAjZTllOWU5O1xuICBjb2xvcjogJGNvbG9yO1xuICBib3JkZXItY29sb3I6ICRiQ29sb3I7XG4gIGJhY2tncm91bmQ6ICRiZ0NvbG9yO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmdDb2xvckhvdmVyO1xuICB9XG5cbiAgc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cblxuICAmOjpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGJnZS1pY29uO1xuICAgIGNvbnRlbnQ6ICdcXGYwNTMnO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbn1cblxuLmJndC1ociB7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG5bZGF0YS1iZ3QtaHIta2luZD0nZGFzaGVkJ10gLmJndC1ociB7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcbn1cblxuLmJndC1oci0tYm9sZCAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1oci1raW5kPSdib2xkJ10gLmJndC1ociAvKiDmlrDjgrvjg6zjgq/jgr8gKi9cbntcbiAgaGVpZ2h0OiA1cHg7XG59XG5cbi5iZ3QtaHItLW5hcnJvdyAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1oci1raW5kPSduYXJyb3cnXSAuYmd0LWhyIC8qIOaWsOOCu+ODrOOCr+OCvyAqL1xue1xuICBoZWlnaHQ6IDFweDtcbn1cblxuLmJndC1oci0tc2hvcnQgLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtaHIta2luZD0nc2hvcnQnXSAuYmd0LWhyIC8qIOaWsOOCu+ODrOOCr+OCvyAqL1xue1xuICB3aWR0aDogNjAlO1xuICBoZWlnaHQ6IDFweDtcbn1cblxuLmJndC1kb3dubG9hZC1maWxlX19saW5rIHtcbiAgY29sb3I6ICMzMzM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMS4wOGVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjdlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuICB9XG5cbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICRidG5HbG93Q29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuXG4uYmd0LWxpbmtfX3NpemUge1xuICBjb2xvcjogIzgwODA4MDtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuLmJndC1nb29nbGUtbWFwcy1saW5rIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggIzk5OTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIEBpbmNsdWRlIGJnZS1pY29uO1xuICAgICAgY29udGVudDogJ1xcZjA4ZSc7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuICB9XG59XG5cbltkYXRhLWJndD0nZ2FsbGVyeSddIHtcbiAgJHRodW1iLXNpemU6IDYwcHg7XG5cbiAgLmJndC1nYWxsZXJ5IHtcbiAgICBwYWRkaW5nLXRvcDogNTQlO1xuXG4gICAgJjpob3ZlciAmLWN0cmwge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmX19pbWcge1xuICAgICAgaW1nIHtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2FwdGlvbiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICAgIHBhZGRpbmc6IDAuN2VtIDFlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmLWN0cmwge1xuICAgICAgdG9wOiA1MCU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAyMDBtcyBlYXNlLWluO1xuXG4gICAgICAmX19wcmV2LFxuICAgICAgJl9fbmV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgICAgICBtYXJnaW46IC0yMHB4IDAgMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgYm9yZGVyOiBzb2xpZCAjZmZmO1xuICAgICAgICAgIGJvcmRlci13aWR0aDogNXB4IDVweCAwIDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJl9fcHJldiB7XG4gICAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpO1xuICAgICAgfVxuXG4gICAgICAmX19uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDIwcHg7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBbZGF0YS1nYWxsZXJ5LW1hcmtlcj0ndGh1bWJzJ10ge1xuICAgICsgLmJndC1nYWxsZXJ5LW1hcmtlciB7XG4gICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuXG4gICAgICBsaSB7XG4gICAgICAgIG1hcmdpbjogMCA1cHg7XG4gICAgICAgIHdpZHRoOiAkdGh1bWItc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkdGh1bWItc2l6ZTtcblx0XHRcdFx0Jjo6YmVmb3JlIHtcblx0XHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0XHR9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgW2RhdGEtZ2FsbGVyeS1tYXJrZXI9J2RvdCddIHtcbiAgICArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgbGkge1xuICAgICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgICB3aWR0aDogMTBweDtcbiAgICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xuXG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qIOODh+ODkOOCpOOCueS+neWtmOaxjueUqOOCr+ODqeOCuSAqL1xuLnBjLW9ubHkge1xuICBkaXNwbGF5OiBibG9jaztcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnNwLW9ubHkge1xuICBkaXNwbGF5OiBub25lO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cblxuIl19 */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNzcy9iZ2Vfc3R5bGUuY3NzIiwiY3NzL2JnZV9zdHlsZS5zY3NzIiwiY3NzL2NvbW1vbi9fZWRpdG9yLnNjc3MiLCJjc3MvY29tbW9uL19iZ2Vfc2V0dGluZy5zY3NzIiwiY3NzL2NvbW1vbi9fYmdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCO0FDQ2hCOzs7Ozs7OztFQUFBO0FBVUE7OztFQUFBO0FDWEE7O0VBQUE7QUFNQTtFQUNFLGFBQUE7QUZZRjtBRVRBO2lEQUFBO0FBR0E7OztFQUdFLCtGQUFBO0VBQ0EsV0FBQTtBRldGO0FFVEU7OztFQUNFLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FGYUo7QUVWRTs7O0VBQ0Usd0xBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTtBRmNKO0FFYkk7OztFQUNFLGFBQUE7QUZpQk47QUViRTs7O0VBQ0UscUJBQUE7RUFDQSx1QkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLGdCQUFBO0FGaUJKO0FFZkk7OztFQUNFLGFBQUE7QUZtQk47QUVmRTs7O0VBQ0UsOEJBQUE7RUFDQSxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7RUFDQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7QUZtQko7QUVqQkk7OztFQUNFLGFBQUE7QUZxQk47QUVqQkU7OztFQUNFLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0FGcUJKO0FFbkJJOzs7RUFDRSxhQUFBO0FGdUJOO0FFbkJFOzs7RUFDRSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7RUFDQSxn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QUpnc0JSO0FJOXJCUTtFQUNFLHNCQUFBO0FKZ3NCVjtBSXhyQkEsZ0JBQUE7QUFDQTtFQUNFLGNBQUE7QUoyckJGO0FJenJCRTtFQUhGO0lBSUksYUFBQTtFSjRyQkY7QUFDRjtBSXpyQkE7RUFDRSxhQUFBO0FKNHJCRjtBSTFyQkU7RUFIRjtJQUlJLGNBQUE7RUo2ckJGO0FBQ0YiLCJmaWxlIjoiY3NzL2JnZV9zdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIGJhc2VyQ01TIDogIEJhc2VkIFdlYnNpdGUgRGV2ZWxvcG1lbnQgUHJvamVjdCA8aHR0cHM6Ly9iYXNlcmNtcy5uZXQ+XG4gKiBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uIDxodHRwczovL2Jhc2VyZm91bmRhdGlvbi5vcmcvPlxuICpcbiAqIEBjb3B5cmlnaHQgICAgIENvcHlyaWdodCAoYykgTlBPIGJhc2VyIGZvdW5kYXRpb25cbiAqIEBsaW5rICAgICAgICAgIGh0dHBzOi8vYmFzZXJjbXMubmV0IGJhc2VyQ01TIFByb2plY3RcbiAqIEBzaW5jZSAgICAgICAgIDUuMC4wXG4gKiBAbGljZW5zZSAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldC9saWNlbnNlL2luZGV4Lmh0bWwgTUlUIExpY2Vuc2VcbiAqL1xuLyoqXG4gKiDjg5Djg7zjgqzjg7zjgqjjg4fjgqPjgr/jg7zjgrnjgr/jgqTjg6tcbiAqIOeuoeeQhueUu+mdouOBp+OCguWRvOOBs+WHuuOBleOCjOOCi1xuICovXG4vKipcbiAqIOOCqOODh+OCo+OCv+ODvOeUqENTU1xuICovXG4uY2tlX2VkaXRhYmxlIHtcbiAgcGFkZGluZzogMTVweDtcbn1cblxuLyogRWRpdG9yIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJzLW1haW4tY29udGVudHMsXG4uYmdlLWNvbnRlbnRzLFxuLmNrZV9lZGl0YWJsZSB7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgVmVyZGFuYSwgXCLmuLjjgrTjgrfjg4Pjgq9cIiwgWXVHb3RoaWMsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvTlwiLCBNZWlyeW8sIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjMDAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDEsXG4uYmdlLWNvbnRlbnRzIGgxLFxuLmNrZV9lZGl0YWJsZSBoMSB7XG4gIGZvbnQtc2l6ZTogNDBweDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoMixcbi5iZ2UtY29udGVudHMgaDIsXG4uY2tlX2VkaXRhYmxlIGgyIHtcbiAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBmb250LXNpemU6IDIuMmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgbWFyZ2luOiAwLjZlbSAwO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgaDI6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGgyOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoMjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoMyxcbi5iZ2UtY29udGVudHMgaDMsXG4uY2tlX2VkaXRhYmxlIGgzIHtcbiAgbWFyZ2luOiA1NnB4IDAgMjBweCAwO1xuICBwYWRkaW5nOiAxM3B4IDI4cHggMTJweDtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBsaW5lLWhlaWdodDogNDguM3B4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJzLW1haW4tY29udGVudHMgaDM6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGgzOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoMzpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNCxcbi5iZ2UtY29udGVudHMgaDQsXG4uY2tlX2VkaXRhYmxlIGg0IHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4ICNDQ0MgZG90dGVkO1xuICBmb250LXNpemU6IDIycHg7XG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDUwcHggMCAxN3B4IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGg0OmZpcnN0LWNoaWxkLFxuLmJnZS1jb250ZW50cyBoNDpmaXJzdC1jaGlsZCxcbi5ja2VfZWRpdGFibGUgaDQ6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgaDUsXG4uYmdlLWNvbnRlbnRzIGg1LFxuLmNrZV9lZGl0YWJsZSBoNSB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW46IDFlbSAwO1xuICBwYWRkaW5nOiAwLjNlbSAwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLmJzLW1haW4tY29udGVudHMgaDU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGg1OmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSBoNTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNixcbi5iZ2UtY29udGVudHMgaDYsXG4uY2tlX2VkaXRhYmxlIGg2IHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBsaW5lLWhlaWdodDogMS4yO1xuICBtYXJnaW46IDFlbSAwO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDAuM2VtIDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG4uYnMtbWFpbi1jb250ZW50cyBoNjpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgaDY6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGg2OmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHN0cm9uZyxcbi5iZ2UtY29udGVudHMgc3Ryb25nLFxuLmNrZV9lZGl0YWJsZSBzdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1LFxuLmJnZS1jb250ZW50cyB1LFxuLmNrZV9lZGl0YWJsZSB1IHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHMsXG4uYmdlLWNvbnRlbnRzIHMsXG4uY2tlX2VkaXRhYmxlIHMge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuLmJzLW1haW4tY29udGVudHMgZW0sXG4uYmdlLWNvbnRlbnRzIGVtLFxuLmNrZV9lZGl0YWJsZSBlbSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbi5icy1tYWluLWNvbnRlbnRzIGhyLFxuLmJnZS1jb250ZW50cyBocixcbi5ja2VfZWRpdGFibGUgaHIge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxcHg7XG4gIGNvbG9yOiAjZGRkO1xuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiA1MHB4IGF1dG87XG59XG4uYnMtbWFpbi1jb250ZW50cyBocjpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgaHI6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGhyOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsLFxuLmJnZS1jb250ZW50cyB1bCxcbi5ja2VfZWRpdGFibGUgdWwge1xuICBtYXJnaW46IDIwcHggMCAzNnB4IDA7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7XG4gIGxldHRlci1zcGFjaW5nOiAwLjA1cmVtO1xufVxuLmJzLW1haW4tY29udGVudHMgdWw6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIHVsOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSB1bDpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCBsaSxcbi5iZ2UtY29udGVudHMgdWwgbGksXG4uY2tlX2VkaXRhYmxlIHVsIGxpIHtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogaW5zaWRlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDAgMCAwIDI1cHg7XG4gIG1hcmdpbjogMC41ZW0gMCAwLjVlbSAwO1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCBsaSBhLFxuLmJnZS1jb250ZW50cyB1bCBsaSBhLFxuLmNrZV9lZGl0YWJsZSB1bCBsaSBhIHtcbiAgem9vbTogMTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHVsIGxpOmJlZm9yZSxcbi5iZ2UtY29udGVudHMgdWwgbGk6YmVmb3JlLFxuLmNrZV9lZGl0YWJsZSB1bCBsaTpiZWZvcmUge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDlweDtcbiAgbGVmdDogMXB4O1xuICB3aWR0aDogNnB4O1xuICBoZWlnaHQ6IDZweDtcbiAgYmFja2dyb3VuZDogIzE4MTgxODtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLmJzLW1haW4tY29udGVudHMgdWwgdWwsXG4uYmdlLWNvbnRlbnRzIHVsIHVsLFxuLmNrZV9lZGl0YWJsZSB1bCB1bCB7XG4gIG1hcmdpbjogMCAwIDAgMS44ZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyB1bCB1bDpmaXJzdC1jaGlsZCxcbi5iZ2UtY29udGVudHMgdWwgdWw6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIHVsIHVsOmZpcnN0LWNoaWxkIHtcbiAgbWFyZ2luLXRvcDogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIG9sLFxuLmJnZS1jb250ZW50cyBvbCxcbi5ja2VfZWRpdGFibGUgb2wge1xuICBtYXJnaW46IDIwcHggMCAzNnB4IDEuOGVtO1xuICBsaW5lLWhlaWdodDogMS42O1xuICBsZXR0ZXItc3BhY2luZzogMC4wNXJlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIG9sIG9sLFxuLmJnZS1jb250ZW50cyBvbCBvbCxcbi5ja2VfZWRpdGFibGUgb2wgb2wge1xuICBtYXJnaW46IDIwcHg7XG59XG4uYnMtbWFpbi1jb250ZW50cyBvbCBsaSxcbi5iZ2UtY29udGVudHMgb2wgbGksXG4uY2tlX2VkaXRhYmxlIG9sIGxpIHtcbiAgbGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsLWxlYWRpbmctemVybztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAwIDAgMCAwO1xuICBtYXJnaW46IDAuNWVtIDAgMC41ZW0gMDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHAsXG4uYmdlLWNvbnRlbnRzIHAsXG4uY2tlX2VkaXRhYmxlIHAge1xuICBtYXJnaW46IDFlbSAwO1xuICBsZXR0ZXItc3BhY2luZzogMC4wNXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgbGluZS1oZWlnaHQ6IDIuMztcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlLFxuLmJnZS1jb250ZW50cyB0YWJsZSxcbi5ja2VfZWRpdGFibGUgdGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMWUxZTE7XG4gIG1hcmdpbjogMjBweCAwIDIwcHggMDtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuLmJzLW1haW4tY29udGVudHMgdGFibGU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIHRhYmxlOmZpcnN0LWNoaWxkLFxuLmNrZV9lZGl0YWJsZSB0YWJsZTpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi10b3A6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuLmJnZS1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSBjYXB0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSBjYXB0aW9uLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIGNhcHRpb24sXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgY2FwdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRib2R5LFxuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0Zm9vdCxcbiAgLmJnZS1jb250ZW50cyB0YWJsZSB0Ym9keSxcbiAgLmJnZS1jb250ZW50cyB0YWJsZSB0Zm9vdCxcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB0Ym9keSxcbiAgLmNrZV9lZGl0YWJsZSB0YWJsZSB0Zm9vdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0cixcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2UxZTFlMTtcbn1cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gIC5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyLFxuICAuYmdlLWNvbnRlbnRzIHRhYmxlIHRyLFxuICAuY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tdG9wOiAtMXB4O1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0cjpudGgtY2hpbGQob2RkKSB0ZCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHI6bnRoLWNoaWxkKG9kZCkgdGQsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyOm50aC1jaGlsZChvZGQpIHRkIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRoLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0ZCxcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMjZweCAyNHB4O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlMWUxZTE7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0aCxcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGQsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGQge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4uYnMtbWFpbi1jb250ZW50cyB0YWJsZSB0ciB0aCxcbi5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4uY2tlX2VkaXRhYmxlIHRhYmxlIHRyIHRoIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5iZ2UtY29udGVudHMgdGFibGUgdHIgdGgsXG4gIC5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGgge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIH1cbn1cbi5icy1tYWluLWNvbnRlbnRzIHRhYmxlIHRyIHRkLFxuLmJnZS1jb250ZW50cyB0YWJsZSB0ciB0ZCxcbi5ja2VfZWRpdGFibGUgdGFibGUgdHIgdGQge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuLmJzLW1haW4tY29udGVudHMgdGFibGUgdHIgdGQgdWwsXG4uYmdlLWNvbnRlbnRzIHRhYmxlIHRyIHRkIHVsLFxuLmNrZV9lZGl0YWJsZSB0YWJsZSB0ciB0ZCB1bCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGZpZWxkc2V0LFxuLmJnZS1jb250ZW50cyBmaWVsZHNldCxcbi5ja2VfZWRpdGFibGUgZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbWcsXG4uYmdlLWNvbnRlbnRzIGltZyxcbi5ja2VfZWRpdGFibGUgaW1nIHtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IGF1dG87XG59XG4uYnMtbWFpbi1jb250ZW50cyBhZGRyZXNzLCAuYnMtbWFpbi1jb250ZW50cyBidXR0b24sIC5icy1tYWluLWNvbnRlbnRzIGNhcHRpb24sIC5icy1tYWluLWNvbnRlbnRzIGNpdGUsIC5icy1tYWluLWNvbnRlbnRzIGNvZGUsIC5icy1tYWluLWNvbnRlbnRzIGRmbiwgLmJzLW1haW4tY29udGVudHMgZW0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0LCAuYnMtbWFpbi1jb250ZW50cyBvcHRncm91cCwgLmJzLW1haW4tY29udGVudHMgb3B0aW9uLCAuYnMtbWFpbi1jb250ZW50cyBzZWxlY3QsIC5icy1tYWluLWNvbnRlbnRzIHN0cm9uZywgLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsIC5icy1tYWluLWNvbnRlbnRzIHRoLCAuYnMtbWFpbi1jb250ZW50cyB2YXIsXG4uYmdlLWNvbnRlbnRzIGFkZHJlc3MsXG4uYmdlLWNvbnRlbnRzIGJ1dHRvbixcbi5iZ2UtY29udGVudHMgY2FwdGlvbixcbi5iZ2UtY29udGVudHMgY2l0ZSxcbi5iZ2UtY29udGVudHMgY29kZSxcbi5iZ2UtY29udGVudHMgZGZuLFxuLmJnZS1jb250ZW50cyBlbSxcbi5iZ2UtY29udGVudHMgaW5wdXQsXG4uYmdlLWNvbnRlbnRzIG9wdGdyb3VwLFxuLmJnZS1jb250ZW50cyBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIHNlbGVjdCxcbi5iZ2UtY29udGVudHMgc3Ryb25nLFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgdGgsXG4uYmdlLWNvbnRlbnRzIHZhcixcbi5ja2VfZWRpdGFibGUgYWRkcmVzcyxcbi5ja2VfZWRpdGFibGUgYnV0dG9uLFxuLmNrZV9lZGl0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSBjaXRlLFxuLmNrZV9lZGl0YWJsZSBjb2RlLFxuLmNrZV9lZGl0YWJsZSBkZm4sXG4uY2tlX2VkaXRhYmxlIGVtLFxuLmNrZV9lZGl0YWJsZSBpbnB1dCxcbi5ja2VfZWRpdGFibGUgb3B0Z3JvdXAsXG4uY2tlX2VkaXRhYmxlIG9wdGlvbixcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBzdHJvbmcsXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmNrZV9lZGl0YWJsZSB0aCxcbi5ja2VfZWRpdGFibGUgdmFyIHtcbiAgZm9udDogaW5oZXJpdDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNtYWxsLFxuLmJnZS1jb250ZW50cyBzbWFsbCxcbi5ja2VfZWRpdGFibGUgc21hbGwge1xuICBjb2xvcjogIzY2Njtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGRlbCwgLmJzLW1haW4tY29udGVudHMgaW5zLFxuLmJnZS1jb250ZW50cyBkZWwsXG4uYmdlLWNvbnRlbnRzIGlucyxcbi5ja2VfZWRpdGFibGUgZGVsLFxuLmNrZV9lZGl0YWJsZSBpbnMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBhOmxpbmssIC5icy1tYWluLWNvbnRlbnRzIGE6dmlzaXRlZCxcbi5iZ2UtY29udGVudHMgYTpsaW5rLFxuLmJnZS1jb250ZW50cyBhOnZpc2l0ZWQsXG4uY2tlX2VkaXRhYmxlIGE6bGluayxcbi5ja2VfZWRpdGFibGUgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICMyYjdiYjk7XG59XG4uYnMtbWFpbi1jb250ZW50cyBhOmhvdmVyLFxuLmJnZS1jb250ZW50cyBhOmhvdmVyLFxuLmNrZV9lZGl0YWJsZSBhOmhvdmVyIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuLmJzLW1haW4tY29udGVudHMgY2FwdGlvbiwgLmJzLW1haW4tY29udGVudHMgdGgsXG4uYmdlLWNvbnRlbnRzIGNhcHRpb24sXG4uYmdlLWNvbnRlbnRzIHRoLFxuLmNrZV9lZGl0YWJsZSBjYXB0aW9uLFxuLmNrZV9lZGl0YWJsZSB0aCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG4uYnMtbWFpbi1jb250ZW50cyBxOmJlZm9yZSwgLmJzLW1haW4tY29udGVudHMgcTphZnRlcixcbi5iZ2UtY29udGVudHMgcTpiZWZvcmUsXG4uYmdlLWNvbnRlbnRzIHE6YWZ0ZXIsXG4uY2tlX2VkaXRhYmxlIHE6YmVmb3JlLFxuLmNrZV9lZGl0YWJsZSBxOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGFiYnIsIC5icy1tYWluLWNvbnRlbnRzIGFjcm9ueW0sXG4uYmdlLWNvbnRlbnRzIGFiYnIsXG4uYmdlLWNvbnRlbnRzIGFjcm9ueW0sXG4uY2tlX2VkaXRhYmxlIGFiYnIsXG4uY2tlX2VkaXRhYmxlIGFjcm9ueW0ge1xuICBib3JkZXI6IDA7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xufVxuLmJzLW1haW4tY29udGVudHMgc3ViLFxuLmJnZS1jb250ZW50cyBzdWIsXG4uY2tlX2VkaXRhYmxlIHN1YiB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogc3ViO1xufVxuLmJzLW1haW4tY29udGVudHMgc3VwLFxuLmJnZS1jb250ZW50cyBzdXAsXG4uY2tlX2VkaXRhYmxlIHN1cCB7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG59XG4uYnMtbWFpbi1jb250ZW50cyBsZWdlbmQsXG4uYmdlLWNvbnRlbnRzIGxlZ2VuZCxcbi5ja2VfZWRpdGFibGUgbGVnZW5kIHtcbiAgY29sb3I6ICMwMDA7XG59XG4uYnMtbWFpbi1jb250ZW50cyBwcmUsXG4uYmdlLWNvbnRlbnRzIHByZSxcbi5ja2VfZWRpdGFibGUgcHJlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0YzRjNGMztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZzogMTBweCAyMHB4O1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICBvdmVyZmxvdzogYXV0bztcbiAgYm9yZGVyOiAxcHggc29saWQgI0UyRTJFMjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGJsb2NrcXVvdGUsXG4uYmdlLWNvbnRlbnRzIGJsb2NrcXVvdGUsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMWVtIDA7XG4gIHBhZGRpbmc6IDFweCAyLjVlbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IDJweCBzb2xpZCAjY2NjO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjb2xvcjogIzg4ODtcbiAgZm9udC1zaXplOiAwLjllbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQsXG4uYmdlLWNvbnRlbnRzIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6Zmlyc3QtY2hpbGQge1xuICBtYXJnaW4tdG9wOiAwO1xufVxuLmJzLW1haW4tY29udGVudHMgYmxvY2txdW90ZTo6YmVmb3JlLFxuLmJnZS1jb250ZW50cyBibG9ja3F1b3RlOjpiZWZvcmUsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwi4oCcXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogc2VyaWY7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwLjNlbTtcbiAgbGVmdDogMC4yNWVtO1xuICB6LWluZGV4OiAwO1xuICBjb2xvcjogI2NjYztcbiAgZm9udC1zaXplOiAzZW07XG59XG4uYnMtbWFpbi1jb250ZW50cyBibG9ja3F1b3RlOjphZnRlcixcbi5iZ2UtY29udGVudHMgYmxvY2txdW90ZTo6YWZ0ZXIsXG4uY2tlX2VkaXRhYmxlIGJsb2NrcXVvdGU6OmFmdGVyIHtcbiAgY29udGVudDogXCLigJ1cIjtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiBzZXJpZjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IC0wLjNlbTtcbiAgcmlnaHQ6IDAuMjVlbTtcbiAgei1pbmRleDogMDtcbiAgY29sb3I6ICNjY2M7XG4gIGZvbnQtc2l6ZTogM2VtO1xufVxuXG4vKiBGb3JtIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLmJzLW1haW4tY29udGVudHMgZm9ybSxcbi5iZ2UtY29udGVudHMgZm9ybSxcbi5ja2VfZWRpdGFibGUgZm9ybSxcbi5icy1zdWItY29udGVudHMgZm9ybSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0LCAuYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYSwgLmJzLW1haW4tY29udGVudHMgc2VsZWN0LCAuYnMtbWFpbi1jb250ZW50cyBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIGlucHV0LFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgc2VsZWN0LFxuLmJnZS1jb250ZW50cyBvcHRpb24sXG4uY2tlX2VkaXRhYmxlIGlucHV0LFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYSxcbi5ja2VfZWRpdGFibGUgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBvcHRpb24sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0LFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYSxcbi5icy1zdWItY29udGVudHMgc2VsZWN0LFxuLmJzLXN1Yi1jb250ZW50cyBvcHRpb24ge1xuICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWEsXG4uYnMtbWFpbi1jb250ZW50cyBzZWxlY3QsXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYmdlLWNvbnRlbnRzIHRleHRhcmVhLFxuLmJnZS1jb250ZW50cyBzZWxlY3QsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRleHRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZWxdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPW51bWJlcl0sXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3QsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYnMtc3ViLWNvbnRlbnRzIHRleHRhcmVhLFxuLmJzLXN1Yi1jb250ZW50cyBzZWxlY3Qge1xuICBtYXJnaW46IDNweCAycHg7XG4gIHBhZGRpbmc6IDhweCAxMHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cmFkaW9dLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1yYWRpb10sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9Y2hlY2tib3hdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXJhZGlvXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1jaGVja2JveF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cmFkaW9dLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWNoZWNrYm94XSB7XG4gIG1hcmdpbi1sZWZ0OiA1cHg7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1zdWJtaXRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXJlc2V0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1idXR0b25dLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXN1Ym1pdF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cmVzZXRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWJ1dHRvbl0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9c3VibWl0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1yZXNldF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9YnV0dG9uXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1zdWJtaXRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXJlc2V0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1idXR0b25dIHtcbiAgbWFyZ2luOiAzcHggMnB4O1xuICBmb250LWZhbWlseTogXCJTRiBQcm8gSlBcIiwgXCJTRiBQcm8gVGV4dFwiLCBcIlNGIFBybyBJY29uc1wiLCBcIkhpcmFnaW5vIEtha3UgR290aGljIFByb1wiLCBcIuODkuODqeOCruODjuinkuOCtCBQcm8gVzNcIiwgXCLjg6HjgqTjg6rjgqpcIiwgXCJNZWlyeW9cIiwgXCLvvK3vvLMg77yw44K044K344OD44KvXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJBcmlhbFwiLCBcInNhbnMtc2VyaWZcIjtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXRleHRdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZWxdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPW51bWJlcl0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPWVtYWlsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl0ge1xuICBmb250LXNpemU6IDFlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XTo6cGxhY2Vob2xkZXIsIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZWxdOjpwbGFjZWhvbGRlciwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1wYXNzd29yZF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRleHRdOjpwbGFjZWhvbGRlcixcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXRlbF06OnBsYWNlaG9sZGVyLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPW51bWJlcl06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGV4dF06OnBsYWNlaG9sZGVyLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPWVtYWlsXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXTo6cGxhY2Vob2xkZXIsXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9bnVtYmVyXTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9cGFzc3dvcmRdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XTo6cGxhY2Vob2xkZXIsXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9ZW1haWxdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZWxdOjpwbGFjZWhvbGRlcixcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdOjpwbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjY2NjO1xufVxuLmJzLW1haW4tY29udGVudHMgaW5wdXQ6YWN0aXZlLCAuYnMtbWFpbi1jb250ZW50cyBpbnB1dDpmb2N1cyxcbi5iZ2UtY29udGVudHMgaW5wdXQ6YWN0aXZlLFxuLmJnZS1jb250ZW50cyBpbnB1dDpmb2N1cyxcbi5ja2VfZWRpdGFibGUgaW5wdXQ6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSBpbnB1dDpmb2N1cyxcbi5icy1zdWItY29udGVudHMgaW5wdXQ6YWN0aXZlLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYSxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWEsXG4uY2tlX2VkaXRhYmxlIHRleHRhcmVhLFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYSB7XG4gIHdpZHRoOiA5NSU7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBwYWRkaW5nOiAzcHggM3B4O1xufVxuLmJzLW1haW4tY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLCAuYnMtbWFpbi1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyxcbi5iZ2UtY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLFxuLmJnZS1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyxcbi5ja2VfZWRpdGFibGUgdGV4dGFyZWE6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSB0ZXh0YXJlYTpmb2N1cyxcbi5icy1zdWItY29udGVudHMgdGV4dGFyZWE6YWN0aXZlLFxuLmJzLXN1Yi1jb250ZW50cyB0ZXh0YXJlYTpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sIC5icy1tYWluLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSwgLmJzLW1haW4tY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJnZS1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYmdlLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5iZ2UtY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmNrZV9lZGl0YWJsZSBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT10ZXh0XSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1lbWFpbF0sXG4uY2tlX2VkaXRhYmxlIGlucHV0W3R5cGU9dGVsXSxcbi5ja2VfZWRpdGFibGUgaW5wdXRbdHlwZT1udW1iZXJdLFxuLmJzLXN1Yi1jb250ZW50cyBpbnB1dFt0eXBlPXBhc3N3b3JkXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT10ZXh0XSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1lbWFpbF0sXG4uYnMtc3ViLWNvbnRlbnRzIGlucHV0W3R5cGU9dGVsXSxcbi5icy1zdWItY29udGVudHMgaW5wdXRbdHlwZT1udW1iZXJdIHtcbiAgbGluZS1oZWlnaHQ6IDFlbTtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNlbGVjdCxcbi5iZ2UtY29udGVudHMgc2VsZWN0LFxuLmNrZV9lZGl0YWJsZSBzZWxlY3QsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBoZWlnaHQ6IDIuNmVtO1xuICBwYWRkaW5nOiAxMHB4IDhweDtcbn1cbi5icy1tYWluLWNvbnRlbnRzIHNlbGVjdDphY3RpdmUsIC5icy1tYWluLWNvbnRlbnRzIHNlbGVjdDpmb2N1cyxcbi5iZ2UtY29udGVudHMgc2VsZWN0OmFjdGl2ZSxcbi5iZ2UtY29udGVudHMgc2VsZWN0OmZvY3VzLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3Q6YWN0aXZlLFxuLmNrZV9lZGl0YWJsZSBzZWxlY3Q6Zm9jdXMsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdDphY3RpdmUsXG4uYnMtc3ViLWNvbnRlbnRzIHNlbGVjdDpmb2N1cyB7XG4gIGJveC1zaGFkb3c6IDAgMCA1cHggMXB4ICNmYTk2OTY7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uYnMtbWFpbi1jb250ZW50cyBvcHRncm91cCBvcHRpb24sXG4uYmdlLWNvbnRlbnRzIG9wdGdyb3VwIG9wdGlvbixcbi5ja2VfZWRpdGFibGUgb3B0Z3JvdXAgb3B0aW9uLFxuLmJzLXN1Yi1jb250ZW50cyBvcHRncm91cCBvcHRpb24ge1xuICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG59XG5cbi8qKlxuICog5aSJ5pWwXG4gKi9cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44OV44Kp44Oz44OI44Gu5a6a576pXG4gKiBGb250IEF3ZXNvbWUgNC42LjMgYnkgQGRhdmVnYW5keSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZVxuICogTGljZW5zZSAtIGh0dHA6Ly9mb250YXdlc29tZS5pby9saWNlbnNlIChGb250OiBTSUwgT0ZMIDEuMSwgQ1NTOiBNSVQgTGljZW5zZSlcbiAqXG4gKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC5lb3Q/dj00LjYuM1wiKTtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD8jaWVmaXgmdj00LjYuM1wiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmMj92PTQuNi4zXCIpIGZvcm1hdChcIndvZmYyXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LndvZmY/dj00LjYuM1wiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnR0Zj92PTQuNi4zXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLCB1cmwoXCIuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnN2Zz92PTQuNi4zI2ZvbnRhd2Vzb21lcmVndWxhclwiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44Oe44Or44OB44Kr44Op44Og44OW44Ot44OD44Kv44Gu44Os44Kk44Ki44Km44OIXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG4vKipcbiAqIEJ1cmdlckVkaXRvciBTdHlsZVNoZWV0IFN0eWxlXG4gKlxuICogYmMtZnJvbnQg44OG44O844Oe5YG044Gn44Kz44Oz44OR44Kk44Or44GX44Gf6Zqb44Gv44CBYmdlX3N0eWxlLmNzcyDjgpJcbiAqIEJjVGhlbWVTYW1wbGUg44OG44O844Oe5YG044Gr44Kz44OU44O844GZ44KL5b+F6KaB44GM44GC44KLXG4gKi9cbi5iZ3QtYm94X19jYXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcGFkZGluZzogM3B4O1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBmb250LXNpemU6IDAuOGVtO1xufVxuXG4uYmd0LWJ0biB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgcGFkZGluZzogMTJweCAxMHB4O1xuICBib3JkZXItd2lkdGg6IDFweDtcbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtaW4td2lkdGg6IDI4MHB4O1xuICBib3JkZXItcmFkaXVzOiAycHg7XG59XG4uYmd0LWJ0bjphY3RpdmUsIC5iZ3QtYnRuOmZvY3VzIHtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggMCAjMDU3MGM3LCAwIDAgMTBweCAwICNmZmY7XG59XG5cbi5iZ3QtYnRuLS1saW5rLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuIHtcbiAgY29sb3I6ICMzMzM7XG4gIGJvcmRlci1jb2xvcjogI2NjYztcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbi5iZ3QtYnRuLS1saW5rOmhvdmVyLCAuYmd0LWJ0bi0tbGluazphY3RpdmUsIC5iZ3QtYnRuLS1saW5rOmZvY3VzLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuOmhvdmVyLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWxpbmtdIC5iZ3QtYnRuOmFjdGl2ZSxcbltkYXRhLWJndC1idXR0b24ta2luZD1saW5rXSAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICNlOWU5ZTk7XG59XG5cbi5iZ3QtYnRuLS1lbSxcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG4ge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6ICNmZmY7XG4gIGJvcmRlci1jb2xvcjogIzMzMztcbiAgYmFja2dyb3VuZDogIzMzMztcbn1cbi5iZ3QtYnRuLS1lbTpob3ZlciwgLmJndC1idG4tLWVtOmFjdGl2ZSwgLmJndC1idG4tLWVtOmZvY3VzLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWVtXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1lbV0gLmJndC1idG46YWN0aXZlLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWVtXSAuYmd0LWJ0bjpmb2N1cyB7XG4gIGJhY2tncm91bmQ6ICM1NTU7XG59XG5cbi5iZ3QtYnRuLS1leHRlcm5hbCxcbltkYXRhLWJndC1idXR0b24ta2luZD1leHRlcm5hbF0gLmJndC1idG4ge1xuICBjb2xvcjogIzMzMztcbiAgYm9yZGVyLWNvbG9yOiAjY2NjO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuLmJndC1idG4tLWV4dGVybmFsOmhvdmVyLCAuYmd0LWJ0bi0tZXh0ZXJuYWw6YWN0aXZlLCAuYmd0LWJ0bi0tZXh0ZXJuYWw6Zm9jdXMsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOmhvdmVyLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPWV4dGVybmFsXSAuYmd0LWJ0bjphY3RpdmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOmZvY3VzIHtcbiAgYmFja2dyb3VuZDogI2U5ZTllOTtcbn1cbi5iZ3QtYnRuLS1leHRlcm5hbDo6YWZ0ZXIsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9ZXh0ZXJuYWxdIC5iZ3QtYnRuOjphZnRlciB7XG4gIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZSwgc2VyaWY7XG4gIHNwZWFrOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgdGV4dC1yZW5kZXJpbmc6IGF1dG87XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgY29udGVudDogXCJcXGYwOGVcIjtcbiAgZm9udC1zaXplOiAxZW07XG4gIGNvbG9yOiAjOTk5O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYmd0LWJ0bi0tYmFjayxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0biB7XG4gIGNvbG9yOiAjMzMzO1xuICBib3JkZXItY29sb3I6ICNkZGQ7XG4gIGJhY2tncm91bmQ6ICNkZGQ7XG59XG4uYmd0LWJ0bi0tYmFjazpob3ZlciwgLmJndC1idG4tLWJhY2s6YWN0aXZlLCAuYmd0LWJ0bi0tYmFjazpmb2N1cyxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjpob3ZlcixcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjphY3RpdmUsXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9YmFja10gLmJndC1idG46Zm9jdXMge1xuICBiYWNrZ3JvdW5kOiAjZTllOWU5O1xufVxuLmJndC1idG4tLWJhY2sgc3BhbixcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0biBzcGFuIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuLmJndC1idG4tLWJhY2s6OmJlZm9yZSxcbltkYXRhLWJndC1idXR0b24ta2luZD1iYWNrXSAuYmd0LWJ0bjo6YmVmb3JlIHtcbiAgZm9udC1mYW1pbHk6IEZvbnRBd2Vzb21lLCBzZXJpZjtcbiAgc3BlYWs6IG5vbmU7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICB0ZXh0LXJlbmRlcmluZzogYXV0bztcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICBjb250ZW50OiBcIlxcZjA1M1wiO1xuICBmb250LXNpemU6IDFlbTtcbiAgbWFyZ2luLXRvcDogLTJweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG4uYmd0LWhyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbltkYXRhLWJndC1oci1raW5kPWRhc2hlZF0gLmJndC1ociB7XG4gIGhlaWdodDogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXItYm90dG9tOiAycHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcbn1cblxuLmJndC1oci0tYm9sZCxcbltkYXRhLWJndC1oci1raW5kPWJvbGRdIC5iZ3QtaHIge1xuICBoZWlnaHQ6IDVweDtcbn1cblxuLmJndC1oci0tbmFycm93LFxuW2RhdGEtYmd0LWhyLWtpbmQ9bmFycm93XSAuYmd0LWhyIHtcbiAgaGVpZ2h0OiAxcHg7XG59XG5cbi5iZ3QtaHItLXNob3J0LFxuW2RhdGEtYmd0LWhyLWtpbmQ9c2hvcnRdIC5iZ3QtaHIge1xuICB3aWR0aDogNjAlO1xuICBoZWlnaHQ6IDFweDtcbn1cblxuLmJndC1kb3dubG9hZC1maWxlX19saW5rIHtcbiAgY29sb3I6ICMzMzM7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGZvbnQtc2l6ZTogMS4wOGVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjdlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbi5iZ3QtZG93bmxvYWQtZmlsZV9fbGluazpob3ZlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG59XG4uYmd0LWRvd25sb2FkLWZpbGVfX2xpbms6YWN0aXZlLCAuYmd0LWRvd25sb2FkLWZpbGVfX2xpbms6Zm9jdXMge1xuICBib3gtc2hhZG93OiAwIDAgNXB4IDFweCAjMDU3MGM3O1xuICBvdXRsaW5lOiBub25lO1xufVxuXG4uYmd0LWxpbmtfX3NpemUge1xuICBjb2xvcjogIzgwODA4MDtcbiAgZm9udC1zaXplOiAwLjhlbTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbn1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmJndC1nb29nbGUtbWFwcy1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmc6IDFlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggIzk5OTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG4gIC5iZ3QtZ29vZ2xlLW1hcHMtbGluayBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuICAuYmd0LWdvb2dsZS1tYXBzLWxpbms6OmFmdGVyIHtcbiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWUsIHNlcmlmO1xuICAgIHNwZWFrOiBub25lO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgY29udGVudDogXCJcXGYwOGVcIjtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnkge1xuICBwYWRkaW5nLXRvcDogNTQlO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeTpob3ZlciBbZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmwge1xuICBvcGFjaXR5OiAxO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeV9faW1nIGltZyB7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeV9fY2FwdGlvbiB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gIHBhZGRpbmc6IDAuN2VtIDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsIHtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbjtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldiwgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIG1hcmdpbjogLTIwcHggMCAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXY6aG92ZXIsIFtkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dDpob3ZlciB7XG4gIG9wYWNpdHk6IDAuNTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldjpmb2N1cywgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fcHJldiBzcGFuLCBbZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX25leHQgc3BhbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aWR0aDogMDtcbiAgaGVpZ2h0OiAwO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19wcmV2OjphZnRlciwgW2RhdGEtYmd0PWdhbGxlcnldIC5iZ3QtZ2FsbGVyeS1jdHJsX19uZXh0OjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXI6IHNvbGlkICNmZmY7XG4gIGJvcmRlci13aWR0aDogNXB4IDVweCAwIDA7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gLmJndC1nYWxsZXJ5LWN0cmxfX3ByZXYge1xuICBsZWZ0OiAyMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSAuYmd0LWdhbGxlcnktY3RybF9fbmV4dCB7XG4gIHJpZ2h0OiAyMHB4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9dGh1bWJzXSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPXRodW1ic10gKyAuYmd0LWdhbGxlcnktbWFya2VyIGxpIHtcbiAgbWFyZ2luOiAwIDVweDtcbiAgd2lkdGg6IDYwcHg7XG4gIGhlaWdodDogNjBweDtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSBbZGF0YS1nYWxsZXJ5LW1hcmtlcj10aHVtYnNdICsgLmJndC1nYWxsZXJ5LW1hcmtlciBsaTo6YmVmb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbltkYXRhLWJndD1nYWxsZXJ5XSBbZGF0YS1nYWxsZXJ5LW1hcmtlcj1kb3RdICsgLmJndC1nYWxsZXJ5LW1hcmtlciB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG59XG5bZGF0YS1iZ3Q9Z2FsbGVyeV0gW2RhdGEtZ2FsbGVyeS1tYXJrZXI9ZG90XSArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIgbGkge1xuICBtYXJnaW46IDAgMnB4O1xuICB3aWR0aDogMTBweDtcbiAgaGVpZ2h0OiAxMHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTk5O1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuW2RhdGEtYmd0PWdhbGxlcnldIFtkYXRhLWdhbGxlcnktbWFya2VyPWRvdF0gKyAuYmd0LWdhbGxlcnktbWFya2VyIGxpLmN1cnJlbnQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xufVxuXG4vKiDjg4fjg5DjgqTjgrnkvp3lrZjmsY7nlKjjgq/jg6njgrkgKi9cbi5wYy1vbmx5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAucGMtb25seSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uc3Atb25seSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xuICAuc3Atb25seSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbn0iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIGJhc2VyQ01TIDogIEJhc2VkIFdlYnNpdGUgRGV2ZWxvcG1lbnQgUHJvamVjdCA8aHR0cHM6Ly9iYXNlcmNtcy5uZXQ+XG4gKiBDb3B5cmlnaHQgKGMpIE5QTyBiYXNlciBmb3VuZGF0aW9uIDxodHRwczovL2Jhc2VyZm91bmRhdGlvbi5vcmcvPlxuICpcbiAqIEBjb3B5cmlnaHQgICAgIENvcHlyaWdodCAoYykgTlBPIGJhc2VyIGZvdW5kYXRpb25cbiAqIEBsaW5rICAgICAgICAgIGh0dHBzOi8vYmFzZXJjbXMubmV0IGJhc2VyQ01TIFByb2plY3RcbiAqIEBzaW5jZSAgICAgICAgIDUuMC4wXG4gKiBAbGljZW5zZSAgICAgICBodHRwczovL2Jhc2VyY21zLm5ldC9saWNlbnNlL2luZGV4Lmh0bWwgTUlUIExpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIOODkOODvOOCrOODvOOCqOODh+OCo+OCv+ODvOOCueOCv+OCpOODq1xuICog566h55CG55S76Z2i44Gn44KC5ZG844Gz5Ye644GV44KM44KLXG4gKi9cblxuQGltcG9ydCBcImNvbW1vbi9lZGl0b3JcIjtcbkBpbXBvcnQgXCJjb21tb24vYmdlX3NldHRpbmdcIjtcbkBpbXBvcnQgXCJjb21tb24vYmdlXCI7XG5cbiIsIi8qKlxuICog44Ko44OH44Kj44K/44O855SoQ1NTXG4gKi9cblxuJGJyZWFrUG9pbnQ6IDc2OHB4O1xuXG4uY2tlX2VkaXRhYmxlIHtcbiAgcGFkZGluZzogMTVweDtcbn1cblxuLyogRWRpdG9yIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYnMtbWFpbi1jb250ZW50cyxcbi5iZ2UtY29udGVudHMsXG4uY2tlX2VkaXRhYmxlIHtcbiAgZm9udC1mYW1pbHk6IEFyaWFsLCBWZXJkYW5hLCBcIua4uOOCtOOCt+ODg+OCr1wiLCBZdUdvdGhpYywgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9OXCIsIE1laXJ5bywgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMwMDA7XG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogNDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgaDIge1xuICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZm9udC1zaXplOiAyLjJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIG1hcmdpbjogMC42ZW0gMDtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgaDMge1xuICAgIG1hcmdpbjogNTZweCAwIDIwcHggMDtcbiAgICBwYWRkaW5nOiAxM3B4IDI4cHggMTJweDtcbiAgICBmb250LXNpemU6IDIxcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDQ4LjNweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cbiAgfVxuXG4gIGg0IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggI0NDQyBkb3R0ZWQ7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBtYXJnaW46IDUwcHggMCAxN3B4IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgaDUge1xuICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIHBhZGRpbmc6IDAuM2VtIDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICBoNiB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBtYXJnaW46IDFlbSAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjNlbSAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuICB9XG5cbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgdSB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIH1cblxuICBzIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgfVxuXG4gIGVtIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICBociB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgY29sb3I6ICNkZGQ7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDUwcHggYXV0bztcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG4gIH1cblxuICB1bCB7XG4gICAgbWFyZ2luOiAyMHB4IDAgMzZweCAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNXJlbTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAyNXB4O1xuICAgICAgbWFyZ2luOiAwLjVlbSAwIDAuNWVtIDA7XG4gICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcblxuICAgICAgYSB7XG4gICAgICAgIHpvb206IDE7XG4gICAgICB9XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogOXB4O1xuICAgICAgICBsZWZ0OiAxcHg7XG4gICAgICAgIHdpZHRoOiA2cHg7XG4gICAgICAgIGhlaWdodDogNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTgxODE4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdWwge1xuICAgICAgbWFyZ2luOiAwIDAgMCAxLjhlbTtcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb2wge1xuICAgIG1hcmdpbjogMjBweCAwIDM2cHggMS44ZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBsZXR0ZXItc3BhY2luZzogLjA1cmVtO1xuXG4gICAgb2wge1xuICAgICAgbWFyZ2luOiAyMHB4O1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbC1sZWFkaW5nLXplcm87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nOiAwIDAgMCAwO1xuICAgICAgbWFyZ2luOiAwLjVlbSAwIDAuNWVtIDA7XG4gICAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IC4wNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyLjM7XG4gIH1cblxuICB0YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZTFlMWUxO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTFlMWUxO1xuICAgIG1hcmdpbjogMjBweCAwIDIwcHggMDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICBjYXB0aW9uIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGJvZHksXG4gICAgdGZvb3Qge1xuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdHIge1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQob2RkKSB0ZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICB9XG5cbiAgICAgIHRoLFxuICAgICAgdGQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nOiAyNnB4IDI0cHg7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgI2UxZTFlMTtcblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjNmM2YzO1xuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGQge1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgICAgIHVsIHtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gIH1cblxuICBpbWcge1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IGF1dG87XG4gIH1cblxuICBhZGRyZXNzLCBidXR0b24sIGNhcHRpb24sIGNpdGUsIGNvZGUsIGRmbiwgZW0sIGlucHV0LCBvcHRncm91cCwgb3B0aW9uLCBzZWxlY3QsIHN0cm9uZywgdGV4dGFyZWEsIHRoLCB2YXIge1xuICAgIGZvbnQ6IGluaGVyaXQ7XG4gIH1cblxuICBzbWFsbCB7XG4gICAgY29sb3I6ICM2NjY7XG4gIH1cblxuICBkZWwsIGlucyB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgYSB7XG4gICAgJjpsaW5rLCAmOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMyYjdiYjk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgY2FwdGlvbiwgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICBxIHtcbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICB9XG4gIH1cblxuICBhYmJyLCBhY3JvbnltIHtcbiAgICBib3JkZXI6IDA7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIH1cblxuICBzdWIge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdWI7XG4gIH1cblxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHZlcnRpY2FsLWFsaWduOiBzdXBlcjtcbiAgfVxuXG4gIGxlZ2VuZCB7XG4gICAgY29sb3I6ICMwMDA7XG4gIH1cblxuICBwcmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNGM0YzRjM7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nOiAxMHB4IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjRTJFMkUyO1xuICB9XG5cbiAgYmxvY2txdW90ZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgcGFkZGluZzogMXB4IDIuNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNjY2M7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6IDAuOWVtO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAn4oCcJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6IHNlcmlmO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwLjNlbTtcbiAgICAgIGxlZnQ6IDAuMjVlbTtcbiAgICAgIHotaW5kZXg6IDA7XG4gICAgICBjb2xvcjogI2NjYztcbiAgICAgIGZvbnQtc2l6ZTogM2VtO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICfigJ0nO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LWZhbWlseTogc2VyaWY7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0wLjNlbTtcbiAgICAgIHJpZ2h0OiAwLjI1ZW07XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgY29sb3I6ICNjY2M7XG4gICAgICBmb250LXNpemU6IDNlbTtcbiAgICB9XG4gIH1cblxufVxuXG4vKiBGb3JtIFBhcnRzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4uYnMtbWFpbi1jb250ZW50cyxcbi5iZ2UtY29udGVudHMsXG4uY2tlX2VkaXRhYmxlLFxuLmJzLXN1Yi1jb250ZW50cyB7XG4gIGZvcm0ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxuXG4gIGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBvcHRpb24ge1xuICAgIGZvbnQtZmFtaWx5OiBcIlNGIFBybyBKUFwiLCBcIlNGIFBybyBUZXh0XCIsIFwiU0YgUHJvIEljb25zXCIsIFwiSGlyYWdpbm8gS2FrdSBHb3RoaWMgUHJvXCIsIFwi44OS44Op44Ku44OO6KeS44K0IFBybyBXM1wiLCBcIuODoeOCpOODquOCqlwiLCBcIk1laXJ5b1wiLCBcIu+8re+8syDvvLDjgrTjgrfjg4Pjgq9cIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIkhlbHZldGljYVwiLCBcIkFyaWFsXCIsIFwic2Fucy1zZXJpZlwiO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1wYXNzd29yZF0sXG4gIGlucHV0W3R5cGU9dGV4dF0sXG4gIGlucHV0W3R5cGU9ZW1haWxdLFxuICBpbnB1dFt0eXBlPXRlbF0sXG4gIGlucHV0W3R5cGU9bnVtYmVyXSxcbiAgdGV4dGFyZWEsXG4gIHNlbGVjdCB7XG4gICAgbWFyZ2luOiAzcHggMnB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICB9XG5cbiAgaW5wdXQge1xuICAgICZbdHlwZT1jaGVja2JveF0ge1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmW3R5cGU9cmFkaW9dLCAmW3R5cGU9Y2hlY2tib3hdIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICB9XG5cbiAgICAmW3R5cGU9c3VibWl0XSwgJlt0eXBlPXJlc2V0XSwgJlt0eXBlPWJ1dHRvbl0ge1xuICAgICAgbWFyZ2luOiAzcHggMnB4O1xuICAgICAgZm9udC1mYW1pbHk6IFwiU0YgUHJvIEpQXCIsIFwiU0YgUHJvIFRleHRcIiwgXCJTRiBQcm8gSWNvbnNcIiwgXCJIaXJhZ2lubyBLYWt1IEdvdGhpYyBQcm9cIiwgXCLjg5Ljg6njgq7jg47op5LjgrQgUHJvIFczXCIsIFwi44Oh44Kk44Oq44KqXCIsIFwiTWVpcnlvXCIsIFwi77yt77yzIO+8sOOCtOOCt+ODg+OCr1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiQXJpYWxcIiwgXCJzYW5zLXNlcmlmXCI7XG4gICAgfVxuXG4gICAgJlt0eXBlPXBhc3N3b3JkXSxcbiAgICAmW3R5cGU9dGV4dF0sXG4gICAgJlt0eXBlPWVtYWlsXSxcbiAgICAmW3R5cGU9dGVsXSxcbiAgICAmW3R5cGU9bnVtYmVyXVxuICAgIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuXG4gICAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgdGV4dGFyZWEge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgcGFkZGluZzogM3B4IDNweDtcblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgaW5wdXQge1xuICAgICZbdHlwZT1wYXNzd29yZF0sXG4gICAgJlt0eXBlPXRleHRdLFxuICAgICZbdHlwZT1lbWFpbF0sXG4gICAgJlt0eXBlPXRlbF0sXG4gICAgJlt0eXBlPW51bWJlcl1cbiAgICB7XG4gICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgaGVpZ2h0OiAyLjZlbTtcbiAgICBwYWRkaW5nOiAxMHB4IDhweDtcblxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMge1xuICAgICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggI2ZhOTY5NjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgb3B0Z3JvdXAgb3B0aW9uIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gIH1cbn1cbiIsIi8qKlxuICog5aSJ5pWwXG4gKi9cbkB1c2UgXCJzYXNzOm1hdGhcIjtcblxuLy8gUldE44Gu44OW44Os44O844Kv44Od44Kk44Oz44OIXG4kYnJlYWtQb2ludDogNzY4cHg7XG5cbi8vIOOCq+ODqeODoOmWk+OBruODnuODvOOCuOODs1xuJG11bHRpQ29sdW1uR3JpZE1hcmdpbjogMjBweDtcblxuLy8gUldE44Gn44Kr44Op44Og44GM6JC944Gh44Gf5pmC44Gu5LiL44Oe44O844K444OzXG4kbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDogMjBweDtcblxuLy8g44Oc44K/44Oz44Gu44OV44Kp44O844Kr44K55pmC44Gu44Kr44Op44O8XG4kYnRuR2xvd0NvbG9yOiAjMDU3MGM3O1xuXG4vLyDjg4jjg6rjg6DnlLvlg4/jg5bjg63jg4Pjgq/jga7nuKbmqKrmr5RcbiR0cmltSW1hZ2VBc3BlY3RSYXRpbzogMTsgLy8gNDoz44Gu5aC05ZCI44GvMy80XG5cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44OV44Kp44Oz44OI44Gu5a6a576pXG4gKiBGb250IEF3ZXNvbWUgNC42LjMgYnkgQGRhdmVnYW5keSAtIGh0dHA6Ly9mb250YXdlc29tZS5pbyAtIEBmb250YXdlc29tZVxuICogTGljZW5zZSAtIGh0dHA6Ly9mb250YXdlc29tZS5pby9saWNlbnNlIChGb250OiBTSUwgT0ZMIDEuMSwgQ1NTOiBNSVQgTGljZW5zZSlcbiAqXG4gKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqKi9cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7XG4gIHNyYzogdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD92PTQuNi4zJyk7XG4gIHNyYzogdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LmVvdD8jaWVmaXgmdj00LjYuMycpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LndvZmYyP3Y9NC42LjMnKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvZm9udGF3ZXNvbWUtd2ViZm9udC53b2ZmP3Y9NC42LjMnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcuLi9mb250cy9mb250YXdlc29tZS13ZWJmb250LnR0Zj92PTQuNi4zJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJy4uL2ZvbnRzL2ZvbnRhd2Vzb21lLXdlYmZvbnQuc3ZnP3Y9NC42LjMjZm9udGF3ZXNvbWVyZWd1bGFyJykgZm9ybWF0KCdzdmcnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG4vLyDjgrDjg6rjg4Pjg4njgrfjgrnjg4bjg6Bcbi8vXG4vLyDnt6jpm4bpnZ7mjqjlpahcbi8vXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG4kc3BhbjE6IDguMzMzMyU7XG4kc3BhbjI6IDE2LjY2NjYlO1xuJHNwYW4zOiAyNSU7XG4kc3BhbjQ6IDMzLjMzMzMlO1xuJHNwYW41OiA0MS42NjY2JTtcbiRzcGFuNjogNTAlO1xuJHNwYW43OiA1OC4zMzMzJTtcbiRzcGFuODogNjYuNjY2NiU7XG4kc3Bhbjk6IDc1JTtcbiRzcGFuMTA6IDgzLjMzMzMlO1xuJHNwYW4xMTogOTEuNjY2NiU7XG4kc3BhbjEyOiAxMDAlO1xuJGRpdmlkZTU6IDIwJTsgLy8gMTLjgrDjg6rjg4Pjg4njgrfjgrnjg4bjg6Djgafjga/lho3nj77jgafjgY3jgarjgYQ15YiG5YmyXG5cbi8vIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC0tLS0tIC9cbi8vXG4vLyDjg5/jg4Pjgq/jgrnjgqTjg7Ncbi8vXG4vLyAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAvXG5AbWl4aW4gYmdlLWljb24ge1xuICBmb250LWZhbWlseTogRm9udEF3ZXNvbWUsIHNlcmlmO1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHRleHQtcmVuZGVyaW5nOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi8qKiAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAtLS0tLSAqXG4gKlxuICog44Oe44Or44OB44Kr44Op44Og44OW44Ot44OD44Kv44Gu44Os44Kk44Ki44Km44OIXG4gKlxuICogLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gKiovXG5cbiVjb2x1bW4yLWxheW91dCB7XG4gIC8qIDLliJfjg5bjg63jg4Pjgq8gKi9cbiAgLmJndC1ncmlkIHtcbiAgICAvKiAy5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOOCs+ODs+ODhuODiiAqL1xuICAgIHdpZHRoOiAkc3BhbjY7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBmbG9hdDogbm9uZTtcblxuICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgLyog5LiL44Oe44O844K444Oz44Gv44OW44Ot44OD44Kv5YaF44Gu44K/44Kk44OX44Gu6KaB57Sg44Gr5a++44GX44Gm5oyH5a6a44GZ44KLICjnqbrnlLvlg4/lr77nrZYpICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtdWx0aUNvbHVtbkdyaWRNYXJnaW5Cb3R0b21XaGVuQ2xlYXJlZEZsb2F0O1xuXG4gICAgICAgICZbZGF0YS1iZ2UtZW1wdHk9JzEnXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmW2NsYXNzKj0nYmd0LXNwLWdyaWQnXSB7XG4gICAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIC8qIDLliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So5pyA5Yid44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luLCAyKTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAvKiAy5YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOacgOW+jOOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luLCAyKTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lY29sdW1uMy1sYXlvdXQge1xuICAvKiAz5YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogM+WIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJHNwYW40O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDMpO1xuICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCAzKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgLyog5LiL44Oe44O844K444Oz44Gv44OW44Ot44OD44Kv5YaF44Gu44K/44Kk44OX44Gu6KaB57Sg44Gr5a++44GX44Gm5oyH5a6a44GZ44KLICjnqbrnlLvlg4/lr77nrZYpICovXG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRtdWx0aUNvbHVtbkdyaWRNYXJnaW5Cb3R0b21XaGVuQ2xlYXJlZEZsb2F0O1xuXG4gICAgICAgICZbZGF0YS1iZ2UtZW1wdHk9JzEnXSB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAmW2NsYXNzKj0nYmd0LXNwLWdyaWQnXSB7XG4gICAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIC8qIDPliJfjg5bjg63jg4Pjgq/lhoUg44Os44Kk44Ki44Km44OI55So5pyA5Yid44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMiwgMyk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgLyogM+WIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjmnIDliJ3jga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDIsIDMpO1xuICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4lY29sdW1uNC1sYXlvdXQge1xuICAvKiA05YiX44OW44Ot44OD44KvICovXG4gIC5iZ3QtZ3JpZCB7XG4gICAgLyogNOWIl+ODluODreODg+OCr+WGhSDjg6zjgqTjgqLjgqbjg4jnlKjjgrPjg7Pjg4bjg4ogKi9cbiAgICB3aWR0aDogJHNwYW4zO1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZmxvYXQ6IG5vbmU7XG5cbiAgICAgIFtkYXRhLWJndF0gPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIC8qIOS4i+ODnuODvOOCuOODs+OBr+ODluODreODg+OCr+WGheOBruOCv+OCpOODl+OBruimgee0oOOBq+WvvuOBl+OBpuaMh+WumuOBmeOCiyAo56m655S75YOP5a++562WKSAqL1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkbXVsdGlDb2x1bW5HcmlkTWFyZ2luQm90dG9tV2hlbkNsZWFyZWRGbG9hdDtcblxuICAgICAgICAmW2RhdGEtYmdlLWVtcHR5PScxJ10ge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpsYXN0LWNoaWxkLFxuICAgICAgJltjbGFzcyo9J2JndC1zcC1ncmlkJ10ge1xuICAgICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNCk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAxLCA0KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA0KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDIsIDQpO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDQpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNCkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNCk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiVjb2x1bW41LWxheW91dCB7XG4gIC8qIDXliJfjg5bjg63jg4Pjgq8gKi9cbiAgLmJndC1ncmlkIHtcbiAgICAvKiA15YiX44OW44Ot44OD44Kv5YaFIOODrOOCpOOCouOCpuODiOeUqOOCs+ODs+ODhuODiiAqL1xuICAgIHdpZHRoOiAkZGl2aWRlNTtcbiAgICBmbG9hdDogbGVmdDtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGZsb2F0OiBub25lO1xuXG4gICAgICBbZGF0YS1iZ3RdID4gOmxhc3QtY2hpbGQge1xuICAgICAgICAvKiDkuIvjg57jg7zjgrjjg7Pjga/jg5bjg63jg4Pjgq/lhoXjga7jgr/jgqTjg5fjga7opoHntKDjgavlr77jgZfjgabmjIflrprjgZnjgosgKOepuueUu+WDj+WvvuetlikgKi9cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJG11bHRpQ29sdW1uR3JpZE1hcmdpbkJvdHRvbVdoZW5DbGVhcmVkRmxvYXQ7XG5cbiAgICAgICAgJltkYXRhLWJnZS1lbXB0eT0nMSddIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bGFzdC1jaGlsZCxcbiAgICAgICZbY2xhc3MqPSdiZ3Qtc3AtZ3JpZCddIHtcbiAgICAgICAgW2RhdGEtYmd0XSA+IDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDQsIDUpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMSwgNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogMywgNSk7XG5cbiAgICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRicmVha1BvaW50KSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAvKiA05YiX44OW44Ot44OD44Kv5YaF44Gu44Kz44Oz44OG44OKICovXG4gICAgICBwYWRkaW5nLWxlZnQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA1KTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IG1hdGguZGl2KCRtdWx0aUNvbHVtbkdyaWRNYXJnaW4gKiAyLCA1KTtcblxuICAgICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDQpIHtcbiAgICAgIC8qIDTliJfjg5bjg63jg4Pjgq/lhoXjga7jgrPjg7Pjg4bjg4ogKi9cbiAgICAgIHBhZGRpbmctbGVmdDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDMsIDUpO1xuICAgICAgcGFkZGluZy1yaWdodDogbWF0aC5kaXYoJG11bHRpQ29sdW1uR3JpZE1hcmdpbiAqIDEsIDUpO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNSkge1xuICAgICAgLyogNOWIl+ODluODreODg+OCr+WGheOBruOCs+ODs+ODhuODiiAqL1xuICAgICAgcGFkZGluZy1sZWZ0OiBtYXRoLmRpdigkbXVsdGlDb2x1bW5HcmlkTWFyZ2luICogNCwgNSk7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIEJ1cmdlckVkaXRvciBTdHlsZVNoZWV0IFN0eWxlXG4gKlxuICogYmMtZnJvbnQg44OG44O844Oe5YG044Gn44Kz44Oz44OR44Kk44Or44GX44Gf6Zqb44Gv44CBYmdlX3N0eWxlLmNzcyDjgpJcbiAqIEJjVGhlbWVTYW1wbGUg44OG44O844Oe5YG044Gr44Kz44OU44O844GZ44KL5b+F6KaB44GM44GC44KLXG4gKi9cblxuLmJndC1ib3hfX2NhcHRpb24ge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwYWRkaW5nOiAzcHg7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMC44ZW07XG59XG5cbi5iZ3QtYnRuIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBwYWRkaW5nOiAxMnB4IDEwcHg7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIG1pbi13aWR0aDogMjgwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDEwcHggMCAkYnRuR2xvd0NvbG9yLCAwIDAgMTBweCAwICNmZmY7XG4gIH1cbn1cblxuLmJndC1idG4tLWxpbmsgLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9J2xpbmsnXSAuYmd0LWJ0biAvKiDmlrDjgrvjg6zjgq/jgr8gKi9cbntcbiAgJGNvbG9yOiAjMzMzO1xuICAkYkNvbG9yOiAjY2NjO1xuICAkYmdDb2xvcjogI2ZmZjtcbiAgJGJnQ29sb3JIb3ZlcjogI2U5ZTllOTtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkYkNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmdDb2xvcjtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGJnQ29sb3JIb3ZlcjtcbiAgfVxufVxuXG4uYmd0LWJ0bi0tZW0gLyog5pen44K744Os44Kv44K/ICovXG4sXG5bZGF0YS1iZ3QtYnV0dG9uLWtpbmQ9J2VtJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogI2ZmZjtcbiAgJGJDb2xvcjogIzMzMztcbiAgJGJnQ29sb3I6ICMzMzM7XG4gICRiZ0NvbG9ySG92ZXI6ICM1NTU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBjb2xvcjogJGNvbG9yO1xuICBib3JkZXItY29sb3I6ICRiQ29sb3I7XG4gIGJhY2tncm91bmQ6ICRiZ0NvbG9yO1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmdDb2xvckhvdmVyO1xuICB9XG59XG5cbi5iZ3QtYnRuLS1leHRlcm5hbCAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1idXR0b24ta2luZD0nZXh0ZXJuYWwnXSAuYmd0LWJ0biAvKiDmlrDjgrvjg6zjgq/jgr8gKi9cbntcbiAgJGNvbG9yOiAjMzMzO1xuICAkYkNvbG9yOiAjY2NjO1xuICAkYmdDb2xvcjogI2ZmZjtcbiAgJGJnQ29sb3JIb3ZlcjogI2U5ZTllOTtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkYkNvbG9yO1xuICBiYWNrZ3JvdW5kOiAkYmdDb2xvcjtcblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGJnQ29sb3JIb3ZlcjtcbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBAaW5jbHVkZSBiZ2UtaWNvbjtcbiAgICBjb250ZW50OiAnXFxmMDhlJztcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBjb2xvcjogIzk5OTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB9XG59XG5cbi5iZ3QtYnRuLS1iYWNrIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWJ1dHRvbi1raW5kPSdiYWNrJ10gLmJndC1idG4gLyog5paw44K744Os44Kv44K/ICovXG57XG4gICRjb2xvcjogIzMzMztcbiAgJGJDb2xvcjogI2RkZDtcbiAgJGJnQ29sb3I6ICNkZGQ7XG4gICRiZ0NvbG9ySG92ZXI6ICNlOWU5ZTk7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGJvcmRlci1jb2xvcjogJGJDb2xvcjtcbiAgYmFja2dyb3VuZDogJGJnQ29sb3I7XG5cbiAgJjpob3ZlcixcbiAgJjphY3RpdmUsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRiZ0NvbG9ySG92ZXI7XG4gIH1cblxuICBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxuXG4gICY6OmJlZm9yZSB7XG4gICAgQGluY2x1ZGUgYmdlLWljb247XG4gICAgY29udGVudDogJ1xcZjA1Myc7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgfVxufVxuXG4uYmd0LWhyIHtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbltkYXRhLWJndC1oci1raW5kPSdkYXNoZWQnXSAuYmd0LWhyIHtcbiAgaGVpZ2h0OiAwO1xuICBib3JkZXI6IG5vbmU7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlci1ib3R0b206IDJweCBkYXNoZWQgY3VycmVudENvbG9yO1xufVxuXG4uYmd0LWhyLS1ib2xkIC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWhyLWtpbmQ9J2JvbGQnXSAuYmd0LWhyIC8qIOaWsOOCu+ODrOOCr+OCvyAqL1xue1xuICBoZWlnaHQ6IDVweDtcbn1cblxuLmJndC1oci0tbmFycm93IC8qIOaXp+OCu+ODrOOCr+OCvyAqL1xuLFxuW2RhdGEtYmd0LWhyLWtpbmQ9J25hcnJvdyddIC5iZ3QtaHIgLyog5paw44K744Os44Kv44K/ICovXG57XG4gIGhlaWdodDogMXB4O1xufVxuXG4uYmd0LWhyLS1zaG9ydCAvKiDml6fjgrvjg6zjgq/jgr8gKi9cbixcbltkYXRhLWJndC1oci1raW5kPSdzaG9ydCddIC5iZ3QtaHIgLyog5paw44K744Os44Kv44K/ICovXG57XG4gIHdpZHRoOiA2MCU7XG4gIGhlaWdodDogMXB4O1xufVxuXG4uYmd0LWRvd25sb2FkLWZpbGVfX2xpbmsge1xuICBjb2xvcjogIzMzMztcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC1zaXplOiAxLjA4ZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDAuN2VtIDFlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIH1cblxuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDVweCAxcHggJGJ0bkdsb3dDb2xvcjtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG5cbi5iZ3QtbGlua19fc2l6ZSB7XG4gIGNvbG9yOiAjODA4MDgwO1xuICBmb250LXNpemU6IDAuOGVtO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4uYmd0LWdvb2dsZS1tYXBzLWxpbmsge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcGFkZGluZzogMWVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogIzMzMztcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjOTk5O1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBzcGFuIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgfVxuXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgQGluY2x1ZGUgYmdlLWljb247XG4gICAgICBjb250ZW50OiAnXFxmMDhlJztcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG4gIH1cbn1cblxuW2RhdGEtYmd0PSdnYWxsZXJ5J10ge1xuICAkdGh1bWItc2l6ZTogNjBweDtcblxuICAuYmd0LWdhbGxlcnkge1xuICAgIHBhZGRpbmctdG9wOiA1NCU7XG5cbiAgICAmOmhvdmVyICYtY3RybCB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZfX2ltZyB7XG4gICAgICBpbWcge1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jYXB0aW9uIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgICAgcGFkZGluZzogMC43ZW0gMWVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICYtY3RybCB7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMjAwbXMgZWFzZS1pbjtcblxuICAgICAgJl9fcHJldixcbiAgICAgICZfX25leHQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAtMjBweCAwIDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIGJvcmRlcjogc29saWQgI2ZmZjtcbiAgICAgICAgICBib3JkZXItd2lkdGg6IDVweCA1cHggMCAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICZfX3ByZXYge1xuICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKTtcbiAgICAgIH1cblxuICAgICAgJl9fbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgW2RhdGEtZ2FsbGVyeS1tYXJrZXI9J3RodW1icyddIHtcbiAgICArIC5iZ3QtZ2FsbGVyeS1tYXJrZXIge1xuICAgICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICAgbGkge1xuICAgICAgICBtYXJnaW46IDAgNXB4O1xuICAgICAgICB3aWR0aDogJHRodW1iLXNpemU7XG4gICAgICAgIGhlaWdodDogJHRodW1iLXNpemU7XG5cdFx0XHRcdCY6OmJlZm9yZSB7XG5cdFx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdFx0fVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIFtkYXRhLWdhbGxlcnktbWFya2VyPSdkb3QnXSB7XG4gICAgKyAuYmd0LWdhbGxlcnktbWFya2VyIHtcbiAgICAgIG1hcmdpbi10b3A6IDEwcHg7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwIDJweDtcbiAgICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzk5OTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwJTtcblxuICAgICAgICAmLmN1cnJlbnQge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiDjg4fjg5DjgqTjgrnkvp3lrZjmsY7nlKjjgq/jg6njgrkgKi9cbi5wYy1vbmx5IHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogJGJyZWFrUG9pbnQpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5zcC1vbmx5IHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkYnJlYWtQb2ludCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbiJdfQ== */ \ No newline at end of file From 8b4d493af16cc64aa8069dde26c0904aa7dcab84 Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Wed, 4 Sep 2024 10:21:25 +0700 Subject: [PATCH 46/94] unitTest_BcZip_create (#3766) Co-authored-by: thangnn --- plugins/baser-core/src/Utility/BcZip.php | 3 + .../tests/TestCase/Utility/BcZipTest.php | 61 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 plugins/baser-core/tests/TestCase/Utility/BcZipTest.php diff --git a/plugins/baser-core/src/Utility/BcZip.php b/plugins/baser-core/src/Utility/BcZip.php index 6cd95a37ed..191538f4bf 100644 --- a/plugins/baser-core/src/Utility/BcZip.php +++ b/plugins/baser-core/src/Utility/BcZip.php @@ -91,6 +91,7 @@ public function extract($source, $target) * @return bool * @checked * @noTodo + * @unitTest */ protected function _extractByPhpLib($source, $target) { @@ -143,6 +144,7 @@ protected function _extractByCommand($source, $target) * @return string * @checked * @noTodo + * @unitTest */ protected function _escapePath($path) { @@ -161,6 +163,7 @@ protected function _escapePath($path) * @return void * @checked * @noTodo + * @unitTest */ public function create($sorce, $dist) { diff --git a/plugins/baser-core/tests/TestCase/Utility/BcZipTest.php b/plugins/baser-core/tests/TestCase/Utility/BcZipTest.php new file mode 100644 index 0000000000..46c5d0b66e --- /dev/null +++ b/plugins/baser-core/tests/TestCase/Utility/BcZipTest.php @@ -0,0 +1,61 @@ +BcZip = new BcZip(); + } + + public function tearDown(): void + { + parent::tearDown(); + } + + /** + * test create + */ + public function testCreate() + { + // create zip file + $zipSrcPath = TMP . 'zip' . DS; + mkdir($zipSrcPath); + + file_put_contents($zipSrcPath . '/test.txt', 'Test content'); + $zipFile = sys_get_temp_dir() . '/test.zip'; + + $this->BcZip->create($zipSrcPath, $zipFile); + $this->assertFileExists($zipFile); + + // check zip file + $za = new \ZipArchive(); + $za->open($zipFile); + $this->assertTrue($za->locateName('test.txt') !== false); + $za->close(); + + // clean up + unlink($zipFile); + unlink($zipSrcPath . '/test.txt'); + rmdir($zipSrcPath); + } + + /** + * test _extractByPhpLib + */ + public function testExtractByPhpLib() + { + $this->markTestIncomplete('このテストは、まだ実装されていません。'); + } + + + public function test_escapePath() + { + $this->markTestIncomplete('このテストは、まだ実装されていません。'); + } +} From 4920dff2e1a0f857972c2627f5965cecbf9946e7 Mon Sep 17 00:00:00 2001 From: HungDV2022 <110375578+HungDV2022@users.noreply.github.com> Date: Wed, 4 Sep 2024 12:53:17 +0900 Subject: [PATCH 47/94] =?UTF-8?q?BcComposer::selfUpdate=E3=80=80=E3=81=AE?= =?UTF-8?q?=E3=83=A6=E3=83=8B=E3=83=83=E3=83=88=E3=83=86=E3=82=B9=E3=83=88?= =?UTF-8?q?=20(#3750)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Đỗ Văn Hùng --- plugins/baser-core/src/Utility/BcComposer.php | 1 + .../tests/TestCase/Utility/BcComposerTest.php | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/plugins/baser-core/src/Utility/BcComposer.php b/plugins/baser-core/src/Utility/BcComposer.php index 9df07559f9..36cfa67084 100644 --- a/plugins/baser-core/src/Utility/BcComposer.php +++ b/plugins/baser-core/src/Utility/BcComposer.php @@ -201,6 +201,7 @@ public static function install() * @return array * @checked * @noTodo + * @unitTest */ public static function selfUpdate() { diff --git a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php index d95e7eead2..65d692d5fa 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php @@ -233,6 +233,19 @@ public function testInstall() $this->assertEquals('A script named install would override a Composer command and has been skipped', $rs['out'][0]); } + /** + * test selfUpdate + */ + public function testSelfUpdate() + { + BcComposer::setup(); + $rs = BcComposer::selfUpdate(); + + $this->assertEquals(0, $rs['code']); + $this->assertEquals("A script named install would override a Composer command and has been skipped", $rs['out'][0]); + $this->assertStringContainsString("You are already using the latest available Composer version", $rs['out'][1]); + } + /** * test setupComposerForDistribution */ From 2864ca177a254c86ac5c987e12cbebb52f90f8ec Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Thu, 5 Sep 2024 07:58:04 +0700 Subject: [PATCH 48/94] unitTest_PluginsAdminService_getViewVarsForAdd (#3752) Co-authored-by: thangnn --- .../baser-core/src/Service/Admin/PluginsAdminService.php | 1 + .../TestCase/Service/Admin/PluginsAdminServiceTest.php | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/plugins/baser-core/src/Service/Admin/PluginsAdminService.php b/plugins/baser-core/src/Service/Admin/PluginsAdminService.php index 044abf6491..4cedbe29c0 100644 --- a/plugins/baser-core/src/Service/Admin/PluginsAdminService.php +++ b/plugins/baser-core/src/Service/Admin/PluginsAdminService.php @@ -192,6 +192,7 @@ public function getUpdateLog() * @return array * @checked * @noTodo + * @unitTest */ public function getViewVarsForAdd() { diff --git a/plugins/baser-core/tests/TestCase/Service/Admin/PluginsAdminServiceTest.php b/plugins/baser-core/tests/TestCase/Service/Admin/PluginsAdminServiceTest.php index b791e625f4..cc77f54d8b 100644 --- a/plugins/baser-core/tests/TestCase/Service/Admin/PluginsAdminServiceTest.php +++ b/plugins/baser-core/tests/TestCase/Service/Admin/PluginsAdminServiceTest.php @@ -140,4 +140,13 @@ public static function isRequireUpdateDataProvider() ]; } + /** + * test getViewVarsForAdd + */ + public function test_getViewVarsForAdd() + { + $vars = $this->PluginsAdmin->getViewVarsForAdd(); + $this->assertTrue(isset($vars['isPluginsDirWritable'])); + } + } From ebcb23f5b71ff56c94779887491b567b832be720 Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Thu, 5 Sep 2024 08:12:53 +0700 Subject: [PATCH 49/94] Add unitTest_BcZip_zipSub (#3772) Co-authored-by: thangnn --- plugins/baser-core/src/Utility/BcZip.php | 1 + .../tests/TestCase/Utility/BcZipTest.php | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/plugins/baser-core/src/Utility/BcZip.php b/plugins/baser-core/src/Utility/BcZip.php index 191538f4bf..f02819693e 100644 --- a/plugins/baser-core/src/Utility/BcZip.php +++ b/plugins/baser-core/src/Utility/BcZip.php @@ -182,6 +182,7 @@ public function create($sorce, $dist) * @return void * @checked * @noTodo + * @unitTest */ private function zipSub($za, $path, $parentPath = '') { diff --git a/plugins/baser-core/tests/TestCase/Utility/BcZipTest.php b/plugins/baser-core/tests/TestCase/Utility/BcZipTest.php index 46c5d0b66e..3954ed4122 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcZipTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcZipTest.php @@ -3,7 +3,9 @@ namespace BaserCore\Test\TestCase\Utility; use BaserCore\TestSuite\BcTestCase; +use BaserCore\Utility\BcFolder; use BaserCore\Utility\BcZip; +use ZipArchive; class BcZipTest extends BcTestCase { @@ -58,4 +60,49 @@ public function test_escapePath() { $this->markTestIncomplete('このテストは、まだ実装されていません。'); } + + /** + * test zipSub + */ + public function testZipSub() + { + //create zip file + $tempDir = TMP . 'zip_test_' . uniqid(); + $subDir = $tempDir . DS . 'subdir'; + $zipFile = TMP . 'test_archive.zip'; + + mkdir($tempDir, 0755, true); + mkdir($subDir, 0755, true); + + file_put_contents($tempDir . DS . 'file1.txt', 'Content of file 1'); + file_put_contents($subDir . DS . 'file2.txt', 'Content of file 2'); + + $this->BcZip->create($tempDir, $zipFile); + + //check zip file + $this->assertFileExists($zipFile); + + //check content of zip file + $zip = new ZipArchive(); + $this->assertTrue($zip->open($zipFile)); + + // 3 files: file1.txt, subdir/file2.txt, subdir + $this->assertEquals(3, $zip->numFiles); + + $this->assertTrue($zip->locateName('file1.txt') !== false); + $this->assertTrue($zip->locateName('subdir/file2.txt') !== false); + + $fileContent1 = $zip->getFromName('file1.txt'); + $fileContent2 = $zip->getFromName('subdir/file2.txt'); + + $this->assertEquals('Content of file 1', $fileContent1); + $this->assertEquals('Content of file 2', $fileContent2); + + $zip->close(); + + //clean up + unlink($zipFile); + $folder = new BcFolder($tempDir); + $folder->delete(); + } } From f8a5178e602c1aa63bb29ba34dbecb96db0c1b66 Mon Sep 17 00:00:00 2001 From: ryuring Date: Thu, 5 Sep 2024 11:50:18 +0900 Subject: [PATCH 50/94] =?UTF-8?q?=E3=82=B7=E3=83=A7=E3=83=BC=E3=83=88?= =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E3=81=AE=E3=83=98=E3=83=AB=E3=83=91?= =?UTF-8?q?=E3=83=BC=E3=81=AE=E8=AA=AD=E3=81=BF=E8=BE=BC=E3=81=BF=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E3=82=92=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Viewにロードされたヘルパーが読み込めてなかったため --- plugins/baser-core/src/Event/BcShortCodeEventListener.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/baser-core/src/Event/BcShortCodeEventListener.php b/plugins/baser-core/src/Event/BcShortCodeEventListener.php index a6a7a68e25..8654faa7ca 100644 --- a/plugins/baser-core/src/Event/BcShortCodeEventListener.php +++ b/plugins/baser-core/src/Event/BcShortCodeEventListener.php @@ -94,7 +94,7 @@ protected function _execShortCode(View $view) } } - if (isset($view->{$func[0]})) { + if ($view->helpers()->{$func[0]}) { $Helper = $view->{$func[0]}; } else { $className = $plugin . "\\" . "View\\Helper\\" . $func[0] . 'Helper'; From 3108e7a6b1e7b7208ba393b6bf2d72237c35cb64 Mon Sep 17 00:00:00 2001 From: ryuring Date: Thu, 5 Sep 2024 16:51:01 +0900 Subject: [PATCH 51/94] =?UTF-8?q?phpunit=20=E3=81=AE=E3=83=90=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=83=A7=E3=83=B3=E3=82=9210.1.0=E3=81=A7=E5=9B=BA?= =?UTF-8?q?=E5=AE=9A=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 77a12925f9..d2007bf792 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "cakephp/cakephp-codesniffer": "^5.0", "cakephp/debug_kit": "^5.0.0", "josegonzalez/dotenv": "^4.0", - "phpunit/phpunit": "^10.1.0", + "phpunit/phpunit": "10.1.0", "symplify/monorepo-builder": "^11.2", "vierge-noire/cakephp-fixture-factories": "^3.0", "vierge-noire/cakephp-test-suite-light": "^3.0" From 8e815dd61d481f90b4a9eb3339237add7066a6ca Mon Sep 17 00:00:00 2001 From: ryuring Date: Thu, 5 Sep 2024 16:58:31 +0900 Subject: [PATCH 52/94] =?UTF-8?q?phpunit=20=E3=82=92=2010.5.31=20=E3=81=A7?= =?UTF-8?q?=E5=9B=BA=E5=AE=9A=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composer.json | 2 +- composer.lock | 278 +++++++++++++++++++++++++------------------------- 2 files changed, 141 insertions(+), 139 deletions(-) diff --git a/composer.json b/composer.json index d2007bf792..755d835e1f 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,7 @@ "cakephp/cakephp-codesniffer": "^5.0", "cakephp/debug_kit": "^5.0.0", "josegonzalez/dotenv": "^4.0", - "phpunit/phpunit": "10.1.0", + "phpunit/phpunit": "10.5.31", "symplify/monorepo-builder": "^11.2", "vierge-noire/cakephp-fixture-factories": "^3.0", "vierge-noire/cakephp-test-suite-light": "^3.0" diff --git a/composer.lock b/composer.lock index ddb52d2c54..af06821817 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a45283d9748e1f55514e4c9377f4947f", + "content-hash": "334c429953fa4a60336caedf9c401d74", "packages": [ { "name": "cakephp/authentication", @@ -254,16 +254,16 @@ }, { "name": "cakephp/migrations", - "version": "4.3.2", + "version": "4.4.0", "source": { "type": "git", "url": "https://github.com/cakephp/migrations.git", - "reference": "ff26043d1b01321d59f44143167c898f19bcd536" + "reference": "6047ee0033bb0f4c5f7a3afceb2e8d85d319c9f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/migrations/zipball/ff26043d1b01321d59f44143167c898f19bcd536", - "reference": "ff26043d1b01321d59f44143167c898f19bcd536", + "url": "https://api.github.com/repos/cakephp/migrations/zipball/6047ee0033bb0f4c5f7a3afceb2e8d85d319c9f0", + "reference": "6047ee0033bb0f4c5f7a3afceb2e8d85d319c9f0", "shasum": "" }, "require": { @@ -273,10 +273,10 @@ "robmorgan/phinx": "^0.16.0" }, "require-dev": { - "cakephp/bake": "^3.0", - "cakephp/cakephp": "^5.0.3", + "cakephp/bake": "dev-3.next", + "cakephp/cakephp": "dev-5.next as 5.1.0", "cakephp/cakephp-codesniffer": "^5.0", - "phpunit/phpunit": "^10.1.0" + "phpunit/phpunit": "^10.5.5 || ^11.1.3" }, "suggest": { "cakephp/bake": "If you want to generate migrations.", @@ -310,7 +310,7 @@ "issues": "https://github.com/cakephp/migrations/issues", "source": "https://github.com/cakephp/migrations" }, - "time": "2024-07-30T14:41:32+00:00" + "time": "2024-08-21T20:03:33+00:00" }, { "name": "cakephp/plugin-installer", @@ -1418,16 +1418,16 @@ }, { "name": "psr/log", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + "reference": "79dff0b268932c640297f5208d6298f71855c03e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "url": "https://api.github.com/repos/php-fig/log/zipball/79dff0b268932c640297f5208d6298f71855c03e", + "reference": "79dff0b268932c640297f5208d6298f71855c03e", "shasum": "" }, "require": { @@ -1462,9 +1462,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.1" }, - "time": "2021-07-14T16:46:02+00:00" + "time": "2024-08-21T13:31:24+00:00" }, { "name": "psr/simple-cache", @@ -1681,16 +1681,16 @@ }, { "name": "symfony/console", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc" + "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/504974cbe43d05f83b201d6498c206f16fc0cdbc", - "reference": "504974cbe43d05f83b201d6498c206f16fc0cdbc", + "url": "https://api.github.com/repos/symfony/console/zipball/42686880adaacdad1835ee8fc2a9ec5b7bd63998", + "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998", "shasum": "" }, "require": { @@ -1755,7 +1755,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.10" + "source": "https://github.com/symfony/console/tree/v6.4.11" }, "funding": [ { @@ -1771,7 +1771,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:30:32+00:00" + "time": "2024-08-15T22:48:29+00:00" }, { "name": "symfony/deprecation-contracts", @@ -2309,16 +2309,16 @@ }, { "name": "symfony/string", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "ccf9b30251719567bfd46494138327522b9a9446" + "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/ccf9b30251719567bfd46494138327522b9a9446", - "reference": "ccf9b30251719567bfd46494138327522b9a9446", + "url": "https://api.github.com/repos/symfony/string/zipball/5bc3eb632cf9c8dbfd6529d89be9950d1518883b", + "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b", "shasum": "" }, "require": { @@ -2375,7 +2375,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.10" + "source": "https://github.com/symfony/string/tree/v6.4.11" }, "funding": [ { @@ -2391,7 +2391,7 @@ "type": "tidelift" } ], - "time": "2024-07-22T10:21:14+00:00" + "time": "2024-08-12T09:55:28+00:00" } ], "packages-dev": [ @@ -2501,26 +2501,26 @@ }, { "name": "cakephp/cakephp-codesniffer", - "version": "5.1.1", + "version": "5.1.3", "source": { "type": "git", "url": "https://github.com/cakephp/cakephp-codesniffer.git", - "reference": "3227936e698774025a16fb808c28f92688672306" + "reference": "04860c9746810d22d02d014deeb57bc80bf57804" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/cakephp-codesniffer/zipball/3227936e698774025a16fb808c28f92688672306", - "reference": "3227936e698774025a16fb808c28f92688672306", + "url": "https://api.github.com/repos/cakephp/cakephp-codesniffer/zipball/04860c9746810d22d02d014deeb57bc80bf57804", + "reference": "04860c9746810d22d02d014deeb57bc80bf57804", "shasum": "" }, "require": { "php": ">=8.1.0", "phpstan/phpdoc-parser": "^1.4.5", - "slevomat/coding-standard": "^8.4", - "squizlabs/php_codesniffer": "^3.7.1" + "slevomat/coding-standard": "^8.15", + "squizlabs/php_codesniffer": "^3.9" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^9.3.4" }, "type": "phpcodesniffer-standard", "autoload": { @@ -2550,7 +2550,7 @@ "issues": "https://github.com/cakephp/cakephp-codesniffer/issues", "source": "https://github.com/cakephp/cakephp-codesniffer" }, - "time": "2023-04-09T13:00:25+00:00" + "time": "2024-08-13T10:21:08+00:00" }, { "name": "cakephp/debug_kit", @@ -2754,48 +2754,48 @@ }, { "name": "composer/composer", - "version": "2.7.7", + "version": "2.7.9", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "291942978f39435cf904d33739f98d7d4eca7b23" + "reference": "e30ccdd665828ae66eb1be78f056e39e1d5f55ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/291942978f39435cf904d33739f98d7d4eca7b23", - "reference": "291942978f39435cf904d33739f98d7d4eca7b23", + "url": "https://api.github.com/repos/composer/composer/zipball/e30ccdd665828ae66eb1be78f056e39e1d5f55ab", + "reference": "e30ccdd665828ae66eb1be78f056e39e1d5f55ab", "shasum": "" }, "require": { - "composer/ca-bundle": "^1.0", + "composer/ca-bundle": "^1.5", "composer/class-map-generator": "^1.3.3", "composer/metadata-minifier": "^1.0", - "composer/pcre": "^2.1 || ^3.1", + "composer/pcre": "^2.2 || ^3.2", "composer/semver": "^3.3", "composer/spdx-licenses": "^1.5.7", "composer/xdebug-handler": "^2.0.2 || ^3.0.3", - "justinrainbow/json-schema": "^5.2.11", + "justinrainbow/json-schema": "^5.3", "php": "^7.2.5 || ^8.0", "psr/log": "^1.0 || ^2.0 || ^3.0", - "react/promise": "^2.8 || ^3", + "react/promise": "^3.2", "seld/jsonlint": "^1.4", "seld/phar-utils": "^1.2", "seld/signal-handler": "^2.0", - "symfony/console": "^5.4.11 || ^6.0.11 || ^7", - "symfony/filesystem": "^5.4 || ^6.0 || ^7", - "symfony/finder": "^5.4 || ^6.0 || ^7", + "symfony/console": "^5.4.35 || ^6.3.12 || ^7.0.3", + "symfony/filesystem": "^5.4.35 || ^6.3.12 || ^7.0.3", + "symfony/finder": "^5.4.35 || ^6.3.12 || ^7.0.3", "symfony/polyfill-php73": "^1.24", "symfony/polyfill-php80": "^1.24", "symfony/polyfill-php81": "^1.24", - "symfony/process": "^5.4 || ^6.0 || ^7" + "symfony/process": "^5.4.35 || ^6.3.12 || ^7.0.3" }, "require-dev": { - "phpstan/phpstan": "^1.11.0", + "phpstan/phpstan": "^1.11.8", "phpstan/phpstan-deprecation-rules": "^1.2.0", "phpstan/phpstan-phpunit": "^1.4.0", "phpstan/phpstan-strict-rules": "^1.6.0", "phpstan/phpstan-symfony": "^1.4.0", - "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1" + "symfony/phpunit-bridge": "^6.4.3 || ^7.0.1" }, "suggest": { "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", @@ -2848,7 +2848,7 @@ "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", "security": "https://github.com/composer/composer/security/policy", - "source": "https://github.com/composer/composer/tree/2.7.7" + "source": "https://github.com/composer/composer/tree/2.7.9" }, "funding": [ { @@ -2864,7 +2864,7 @@ "type": "tidelift" } ], - "time": "2024-06-10T20:11:12+00:00" + "time": "2024-09-04T12:43:28+00:00" }, { "name": "composer/metadata-minifier", @@ -2937,26 +2937,26 @@ }, { "name": "composer/pcre", - "version": "3.2.0", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "ea4ab6f9580a4fd221e0418f2c357cdd39102a90" + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/ea4ab6f9580a4fd221e0418f2c357cdd39102a90", - "reference": "ea4ab6f9580a4fd221e0418f2c357cdd39102a90", + "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4", "shasum": "" }, "require": { "php": "^7.4 || ^8.0" }, "conflict": { - "phpstan/phpstan": "<1.11.8" + "phpstan/phpstan": "<1.11.10" }, "require-dev": { - "phpstan/phpstan": "^1.11.8", + "phpstan/phpstan": "^1.11.10", "phpstan/phpstan-strict-rules": "^1.1", "phpunit/phpunit": "^8 || ^9" }, @@ -2996,7 +2996,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.2.0" + "source": "https://github.com/composer/pcre/tree/3.3.1" }, "funding": [ { @@ -3012,7 +3012,7 @@ "type": "tidelift" } ], - "time": "2024-07-25T09:36:02+00:00" + "time": "2024-08-27T18:44:43+00:00" }, { "name": "composer/semver", @@ -3321,16 +3321,16 @@ }, { "name": "doctrine/sql-formatter", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/sql-formatter.git", - "reference": "d1ac84aef745c69ea034929eb6d65a6908b675cc" + "reference": "7f83911cc5eba870de7ebb11283972483f7e2891" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/d1ac84aef745c69ea034929eb6d65a6908b675cc", - "reference": "d1ac84aef745c69ea034929eb6d65a6908b675cc", + "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/7f83911cc5eba870de7ebb11283972483f7e2891", + "reference": "7f83911cc5eba870de7ebb11283972483f7e2891", "shasum": "" }, "require": { @@ -3370,9 +3370,9 @@ ], "support": { "issues": "https://github.com/doctrine/sql-formatter/issues", - "source": "https://github.com/doctrine/sql-formatter/tree/1.4.0" + "source": "https://github.com/doctrine/sql-formatter/tree/1.4.1" }, - "time": "2024-05-08T08:12:09+00:00" + "time": "2024-08-05T20:32:22+00:00" }, { "name": "fakerphp/faker", @@ -3439,27 +3439,29 @@ }, { "name": "jasny/twig-extensions", - "version": "v1.3.0", + "version": "v1.3.1", "source": { "type": "git", "url": "https://github.com/jasny/twig-extensions.git", - "reference": "a694eb02f6fc14ff8e2fceb8b80882c0c926102b" + "reference": "8a5ca5f49317bf421a519556ad2e876820d41e01" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jasny/twig-extensions/zipball/a694eb02f6fc14ff8e2fceb8b80882c0c926102b", - "reference": "a694eb02f6fc14ff8e2fceb8b80882c0c926102b", + "url": "https://api.github.com/repos/jasny/twig-extensions/zipball/8a5ca5f49317bf421a519556ad2e876820d41e01", + "reference": "8a5ca5f49317bf421a519556ad2e876820d41e01", "shasum": "" }, "require": { - "php": ">=7.0.0", - "twig/twig": "^2.0 | ^3.0" + "php": ">=7.4.0", + "twig/twig": "^2.7 | ^3.0" }, "require-dev": { "ext-intl": "*", + "ext-json": "*", "ext-pcre": "*", - "jasny/php-code-quality": "^2.5", - "php": ">=7.2.0" + "phpstan/phpstan": "^1.12.0", + "phpunit/phpunit": "^9.6", + "squizlabs/php_codesniffer": "^3.10" }, "suggest": { "ext-intl": "Required for the use of the LocalDate Twig extension", @@ -3499,7 +3501,7 @@ "issues": "https://github.com/jasny/twig-extensions/issues", "source": "https://github.com/jasny/twig-extensions" }, - "time": "2019-12-10T16:04:23+00:00" + "time": "2024-09-03T09:04:53+00:00" }, { "name": "josegonzalez/dotenv", @@ -3921,16 +3923,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "1.29.1", + "version": "1.30.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4" + "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/5ceb0e384997db59f38774bf79c2a6134252c08f", + "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f", "shasum": "" }, "require": { @@ -3962,38 +3964,38 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.0" }, - "time": "2024-05-31T08:52:43+00:00" + "time": "2024-08-29T09:54:52+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "10.1.15", + "version": "10.1.16", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae" + "reference": "7e308268858ed6baedc8704a304727d20bc07c77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", - "reference": "5da8b1728acd1e6ffdf2ff32ffbdfd04307f26ae", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77", + "reference": "7e308268858ed6baedc8704a304727d20bc07c77", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.18 || ^5.0", + "nikic/php-parser": "^4.19.1 || ^5.1.0", "php": ">=8.1", - "phpunit/php-file-iterator": "^4.0", - "phpunit/php-text-template": "^3.0", - "sebastian/code-unit-reverse-lookup": "^3.0", - "sebastian/complexity": "^3.0", - "sebastian/environment": "^6.0", - "sebastian/lines-of-code": "^2.0", - "sebastian/version": "^4.0", - "theseer/tokenizer": "^1.2.0" + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-text-template": "^3.0.1", + "sebastian/code-unit-reverse-lookup": "^3.0.0", + "sebastian/complexity": "^3.2.0", + "sebastian/environment": "^6.1.0", + "sebastian/lines-of-code": "^2.0.2", + "sebastian/version": "^4.0.1", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { "phpunit/phpunit": "^10.1" @@ -4005,7 +4007,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "10.1-dev" + "dev-main": "10.1.x-dev" } }, "autoload": { @@ -4034,7 +4036,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.15" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16" }, "funding": [ { @@ -4042,7 +4044,7 @@ "type": "github" } ], - "time": "2024-06-29T08:25:15+00:00" + "time": "2024-08-22T04:31:57+00:00" }, { "name": "phpunit/php-file-iterator", @@ -4289,16 +4291,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.29", + "version": "10.5.31", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "8e9e80872b4e8064401788ee8a32d40b4455318f" + "reference": "43e7c3e6a484e538453f89dfa6a6f308c32792da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e9e80872b4e8064401788ee8a32d40b4455318f", - "reference": "8e9e80872b4e8064401788ee8a32d40b4455318f", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/43e7c3e6a484e538453f89dfa6a6f308c32792da", + "reference": "43e7c3e6a484e538453f89dfa6a6f308c32792da", "shasum": "" }, "require": { @@ -4312,14 +4314,14 @@ "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.1", - "phpunit/php-code-coverage": "^10.1.15", + "phpunit/php-code-coverage": "^10.1.16", "phpunit/php-file-iterator": "^4.1.0", "phpunit/php-invoker": "^4.0.0", "phpunit/php-text-template": "^3.0.1", "phpunit/php-timer": "^6.0.0", "sebastian/cli-parser": "^2.0.1", "sebastian/code-unit": "^2.0.0", - "sebastian/comparator": "^5.0.1", + "sebastian/comparator": "^5.0.2", "sebastian/diff": "^5.1.1", "sebastian/environment": "^6.1.0", "sebastian/exporter": "^5.1.2", @@ -4370,7 +4372,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.29" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.31" }, "funding": [ { @@ -4386,7 +4388,7 @@ "type": "tidelift" } ], - "time": "2024-07-30T11:08:00+00:00" + "time": "2024-09-03T11:57:55+00:00" }, { "name": "react/promise", @@ -4631,16 +4633,16 @@ }, { "name": "sebastian/comparator", - "version": "5.0.1", + "version": "5.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2db5010a484d53ebf536087a70b4a5423c102372" + "reference": "2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372", - "reference": "2db5010a484d53ebf536087a70b4a5423c102372", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53", + "reference": "2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53", "shasum": "" }, "require": { @@ -4651,7 +4653,7 @@ "sebastian/exporter": "^5.0" }, "require-dev": { - "phpunit/phpunit": "^10.3" + "phpunit/phpunit": "^10.4" }, "type": "library", "extra": { @@ -4696,7 +4698,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", "security": "https://github.com/sebastianbergmann/comparator/security/policy", - "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1" + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.2" }, "funding": [ { @@ -4704,7 +4706,7 @@ "type": "github" } ], - "time": "2023-08-14T13:18:12+00:00" + "time": "2024-08-12T06:03:08+00:00" }, { "name": "sebastian/complexity", @@ -5697,16 +5699,16 @@ }, { "name": "symfony/finder", - "version": "v6.4.10", + "version": "v6.4.11", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "af29198d87112bebdd397bd7735fbd115997824c" + "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/af29198d87112bebdd397bd7735fbd115997824c", - "reference": "af29198d87112bebdd397bd7735fbd115997824c", + "url": "https://api.github.com/repos/symfony/finder/zipball/d7eb6daf8cd7e9ac4976e9576b32042ef7253453", + "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453", "shasum": "" }, "require": { @@ -5741,7 +5743,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v6.4.10" + "source": "https://github.com/symfony/finder/tree/v6.4.11" }, "funding": [ { @@ -5757,7 +5759,7 @@ "type": "tidelift" } ], - "time": "2024-07-24T07:06:38+00:00" + "time": "2024-08-13T14:27:37+00:00" }, { "name": "symfony/polyfill-php73", @@ -6054,16 +6056,16 @@ }, { "name": "symplify/monorepo-builder", - "version": "11.2.20", + "version": "11.2.22", "source": { "type": "git", "url": "https://github.com/symplify/monorepo-builder.git", - "reference": "444efe08701776cb1a03b9f3600e715697519aa6" + "reference": "c913a8524ee276c8c21a09012c137f6913b5dcad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symplify/monorepo-builder/zipball/444efe08701776cb1a03b9f3600e715697519aa6", - "reference": "444efe08701776cb1a03b9f3600e715697519aa6", + "url": "https://api.github.com/repos/symplify/monorepo-builder/zipball/c913a8524ee276c8c21a09012c137f6913b5dcad", + "reference": "c913a8524ee276c8c21a09012c137f6913b5dcad", "shasum": "" }, "require": { @@ -6090,7 +6092,7 @@ "description": "Prefixed version of Not only Composer tools to build a Monorepo.", "support": { "issues": "https://github.com/symplify/monorepo-builder/issues", - "source": "https://github.com/symplify/monorepo-builder/tree/11.2.20" + "source": "https://github.com/symplify/monorepo-builder/tree/11.2.22" }, "funding": [ { @@ -6102,7 +6104,7 @@ "type": "github" } ], - "time": "2023-11-17T08:30:16+00:00" + "time": "2024-08-23T03:19:18+00:00" }, { "name": "theseer/tokenizer", @@ -6156,20 +6158,20 @@ }, { "name": "twig/markdown-extra", - "version": "v3.10.0", + "version": "v3.12.0", "source": { "type": "git", "url": "https://github.com/twigphp/markdown-extra.git", - "reference": "e4bf2419df819dcf9dc7a0b25dd8cd1092cbd86d" + "reference": "2a94d7902a58147474840c89cbfcd16e68c70499" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/e4bf2419df819dcf9dc7a0b25dd8cd1092cbd86d", - "reference": "e4bf2419df819dcf9dc7a0b25dd8cd1092cbd86d", + "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/2a94d7902a58147474840c89cbfcd16e68c70499", + "reference": "2a94d7902a58147474840c89cbfcd16e68c70499", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/deprecation-contracts": "^2.5|^3", "twig/twig": "^3.0" }, @@ -6212,7 +6214,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/markdown-extra/tree/v3.10.0" + "source": "https://github.com/twigphp/markdown-extra/tree/v3.12.0" }, "funding": [ { @@ -6224,28 +6226,28 @@ "type": "tidelift" } ], - "time": "2024-05-11T07:35:57+00:00" + "time": "2024-08-10T10:32:24+00:00" }, { "name": "twig/twig", - "version": "v3.10.3", + "version": "v3.12.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "67f29781ffafa520b0bbfbd8384674b42db04572" + "reference": "4d19472d4ac1838e0b1f0e029ce1fa4040eb34ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/67f29781ffafa520b0bbfbd8384674b42db04572", - "reference": "67f29781ffafa520b0bbfbd8384674b42db04572", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/4d19472d4ac1838e0b1f0e029ce1fa4040eb34ea", + "reference": "4d19472d4ac1838e0b1f0e029ce1fa4040eb34ea", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php80": "^1.22" + "symfony/polyfill-php81": "^1.29" }, "require-dev": { "psr/container": "^1.0|^2.0", @@ -6291,7 +6293,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.10.3" + "source": "https://github.com/twigphp/Twig/tree/v3.12.0" }, "funding": [ { @@ -6303,7 +6305,7 @@ "type": "tidelift" } ], - "time": "2024-05-16T10:04:27+00:00" + "time": "2024-08-29T09:51:12+00:00" }, { "name": "vierge-noire/cakephp-fixture-factories", From 8b0cf28e169eb3f2a44133028087004de022b06a Mon Sep 17 00:00:00 2001 From: ryuring Date: Thu, 5 Sep 2024 17:05:06 +0900 Subject: [PATCH 53/94] =?UTF-8?q?basercms-5.1.1=20=E3=82=92=E3=83=AA?= =?UTF-8?q?=E3=83=AA=E3=83=BC=E3=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composer.json | 56 ++++++++++++++++---------------- plugins/baser-core/VERSION.txt | 13 ++++++-- plugins/baser-core/composer.json | 2 +- 3 files changed, 40 insertions(+), 31 deletions(-) diff --git a/composer.json b/composer.json index 755d835e1f..fdf3aa6441 100644 --- a/composer.json +++ b/composer.json @@ -1,9 +1,9 @@ { "name": "baserproject/basercms", "description": "baserCMS plugin for CakePHP", - "homepage": "https://basercms.net", - "type": "project", "license": "MIT", + "type": "project", + "homepage": "https://basercms.net", "require": { "php": ">=8.1", "ext-gd": "*", @@ -31,6 +31,26 @@ "vierge-noire/cakephp-fixture-factories": "^3.0", "vierge-noire/cakephp-test-suite-light": "^3.0" }, + "replace": { + "baserproject/baser-core": "5.1.0", + "baserproject/bc-admin-third": "5.1.0", + "baserproject/bc-blog": "5.1.0", + "baserproject/bc-column": "5.1.0", + "baserproject/bc-content-link": "5.1.0", + "baserproject/bc-custom-content": "5.1.0", + "baserproject/bc-editor-template": "5.1.0", + "baserproject/bc-favorite": "5.1.0", + "baserproject/bc-front": "5.1.0", + "baserproject/bc-installer": "5.1.0", + "baserproject/bc-mail": "5.1.0", + "baserproject/bc-plugin-sample": "5.1.0", + "baserproject/bc-search-index": "5.1.0", + "baserproject/bc-theme-config": "5.1.0", + "baserproject/bc-theme-file": "5.1.0", + "baserproject/bc-theme-sample": "5.1.0", + "baserproject/bc-uploader": "5.1.0", + "baserproject/bc-widget-area": "5.1.0" + }, "suggest": { "markstory/asset_compress": "An asset compression plugin which provides file concatenation and a flexible filter system for preprocessing and minification.", "dereuromark/cakephp-ide-helper": "After baking your code, this keeps your annotations in sync with the code evolving from there on for maximum IDE and PHPStan/Psalm compatibility.", @@ -78,25 +98,12 @@ "BcWidgetArea\\Test\\": "plugins/bc-widget-area/tests/" } }, - "replace": { - "baserproject/baser-core": "5.1.0", - "baserproject/bc-admin-third": "5.1.0", - "baserproject/bc-blog": "5.1.0", - "baserproject/bc-column": "5.1.0", - "baserproject/bc-content-link": "5.1.0", - "baserproject/bc-custom-content": "5.1.0", - "baserproject/bc-editor-template": "5.1.0", - "baserproject/bc-favorite": "5.1.0", - "baserproject/bc-front": "5.1.0", - "baserproject/bc-installer": "5.1.0", - "baserproject/bc-mail": "5.1.0", - "baserproject/bc-plugin-sample": "5.1.0", - "baserproject/bc-search-index": "5.1.0", - "baserproject/bc-theme-config": "5.1.0", - "baserproject/bc-theme-file": "5.1.0", - "baserproject/bc-theme-sample": "5.1.0", - "baserproject/bc-uploader": "5.1.0", - "baserproject/bc-widget-area": "5.1.0" + "config": { + "sort-packages": true, + "allow-plugins": { + "cakephp/plugin-installer": true, + "dealerdirect/phpcodesniffer-composer-installer": true + } }, "scripts": { "post-install-cmd": "App\\Console\\Installer::postInstall", @@ -119,12 +126,5 @@ "Composer\\Config::disableProcessTimeout", "vendor/bin/phpunit --colors=always" ] - }, - "config": { - "sort-packages": true, - "allow-plugins": { - "cakephp/plugin-installer": true, - "dealerdirect/phpcodesniffer-composer-installer": true - } } } diff --git a/plugins/baser-core/VERSION.txt b/plugins/baser-core/VERSION.txt index 35d9bf0638..1fa49949e9 100644 --- a/plugins/baser-core/VERSION.txt +++ b/plugins/baser-core/VERSION.txt @@ -14,8 +14,15 @@ CHG: 変更内容 / BUG: バグフィックス / NEW: 機能追加 -[2024-08-22] basercms-5.1.1 +[2024-09-05] basercms-5.1.1 - NEW [BC] PHP8.3に対応 +- CHG: [BC] AppTable::find() を削除 + - beforeFindが重複実装だった + - afterFindは、位置的にfindの後ではなかった +- CHG: [BC] PHPの必要バージョンを8.1に変更 +- CHG: [BC] ライブラリのインストーラーのcomposerコマンドをupdateからinstallに変更 + ライブラリが最新化することにより問題が発生することがあるため +- CHG: [BC] ダンロードパッケージからDockerの設定ファイルを削除しないようにした - CHG [BC] ダウンロードパッケージからDockerの設定ファイルを削除しないように変更 - CHG [BC] BcThemeSample / BcPluginSample / BcColumn を packagist に公開 - CHG [BC] インストーラーを調整 @@ -25,7 +32,9 @@ CHG: 変更内容 / BUG: バグフィックス / NEW: 機能追加 - docker-compose → docker compose - BUG [BC] 初期データ読み込み時にCSVファイルの"0"がnullとして読み込まれてしまう事象を修正 - BUG [BC] composer で読み込むライブラリを CakePHPの必要要件に合わせて調整 -- BUG [BG] BlogHelperの一部関数が5.1系に対応していない問題を改善 +- BUG [BG] BlogHelperの一部関数が5.1系に対応していない問題を改善 +- BUG: [BC] ショートコードのヘルパーの読み込み方法を調整 + - Viewにロードされたヘルパーが読み込めてなかったため - BUG [CC] カスタムコンテンツ設定編集のオプションの項目:更新日に漢字やひらがな等を入力し保存するとエラーになるがエラーメッセージが出ない箇所がある問題を改善 [2024-07-18] basercms-5.1.0 diff --git a/plugins/baser-core/composer.json b/plugins/baser-core/composer.json index cc22d31d9d..7d9afd3715 100644 --- a/plugins/baser-core/composer.json +++ b/plugins/baser-core/composer.json @@ -38,7 +38,7 @@ "cakephp/cakephp-codesniffer": "^5.0", "cakephp/debug_kit": "^5.0.0", "josegonzalez/dotenv": "^4.0", - "phpunit/phpunit": "^10.1.0", + "phpunit/phpunit": "10.5.31", "symplify/monorepo-builder": "^11.2", "vierge-noire/cakephp-fixture-factories": "^3.0", "vierge-noire/cakephp-test-suite-light": "^3.0", From 0982c36ecded8e79384eddfbabf4a76152ba13e0 Mon Sep 17 00:00:00 2001 From: ryuring Date: Thu, 5 Sep 2024 17:49:51 +0900 Subject: [PATCH 54/94] =?UTF-8?q?5.1.1=E7=94=A8=E3=81=AB=20composer.json?= =?UTF-8?q?=20=E3=82=92=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/baser-core/composer.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/plugins/baser-core/composer.json b/plugins/baser-core/composer.json index 7d9afd3715..ebf0a6305e 100644 --- a/plugins/baser-core/composer.json +++ b/plugins/baser-core/composer.json @@ -15,20 +15,20 @@ "firebase/php-jwt": "6.1.0", "mobiledetect/mobiledetectlib": "^3.74", "ext-json": "*", - "baserproject/bc-admin-third": "5.1.x-dev", - "baserproject/bc-blog": "5.1.x-dev", - "baserproject/bc-content-link": "5.1.x-dev", - "baserproject/bc-custom-content": "5.1.x-dev", - "baserproject/bc-editor-template": "5.1.x-dev", - "baserproject/bc-favorite": "5.1.x-dev", - "baserproject/bc-front": "5.1.x-dev", - "baserproject/bc-installer": "5.1.x-dev", - "baserproject/bc-mail": "5.1.x-dev", - "baserproject/bc-search-index": "5.1.x-dev", - "baserproject/bc-theme-config": "5.1.x-dev", - "baserproject/bc-theme-file": "5.1.x-dev", - "baserproject/bc-uploader": "5.1.x-dev", - "baserproject/bc-widget-area": "5.1.x-dev", + "baserproject/bc-admin-third": "5.1.1", + "baserproject/bc-blog": "5.1.1", + "baserproject/bc-content-link": "5.1.1", + "baserproject/bc-custom-content": "5.1.1", + "baserproject/bc-editor-template": "5.1.1", + "baserproject/bc-favorite": "5.1.1", + "baserproject/bc-front": "5.1.1", + "baserproject/bc-installer": "5.1.1", + "baserproject/bc-mail": "5.1.1", + "baserproject/bc-search-index": "5.1.1", + "baserproject/bc-theme-config": "5.1.1", + "baserproject/bc-theme-file": "5.1.1", + "baserproject/bc-uploader": "5.1.1", + "baserproject/bc-widget-area": "5.1.1", "ext-mbstring": "*", "ext-zip": "*", "ext-gd": "*" From a2a00a6a89fa316c65820a01bc06244cf3abd0d7 Mon Sep 17 00:00:00 2001 From: ryuring Date: Thu, 5 Sep 2024 17:50:37 +0900 Subject: [PATCH 55/94] prepare release --- composer.json | 68 +++++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/composer.json b/composer.json index fdf3aa6441..92dbb3dc6e 100644 --- a/composer.json +++ b/composer.json @@ -1,9 +1,9 @@ { "name": "baserproject/basercms", "description": "baserCMS plugin for CakePHP", + "homepage": "https://basercms.net", "license": "MIT", "type": "project", - "homepage": "https://basercms.net", "require": { "php": ">=8.1", "ext-gd": "*", @@ -31,32 +31,6 @@ "vierge-noire/cakephp-fixture-factories": "^3.0", "vierge-noire/cakephp-test-suite-light": "^3.0" }, - "replace": { - "baserproject/baser-core": "5.1.0", - "baserproject/bc-admin-third": "5.1.0", - "baserproject/bc-blog": "5.1.0", - "baserproject/bc-column": "5.1.0", - "baserproject/bc-content-link": "5.1.0", - "baserproject/bc-custom-content": "5.1.0", - "baserproject/bc-editor-template": "5.1.0", - "baserproject/bc-favorite": "5.1.0", - "baserproject/bc-front": "5.1.0", - "baserproject/bc-installer": "5.1.0", - "baserproject/bc-mail": "5.1.0", - "baserproject/bc-plugin-sample": "5.1.0", - "baserproject/bc-search-index": "5.1.0", - "baserproject/bc-theme-config": "5.1.0", - "baserproject/bc-theme-file": "5.1.0", - "baserproject/bc-theme-sample": "5.1.0", - "baserproject/bc-uploader": "5.1.0", - "baserproject/bc-widget-area": "5.1.0" - }, - "suggest": { - "markstory/asset_compress": "An asset compression plugin which provides file concatenation and a flexible filter system for preprocessing and minification.", - "dereuromark/cakephp-ide-helper": "After baking your code, this keeps your annotations in sync with the code evolving from there on for maximum IDE and PHPStan/Psalm compatibility.", - "phpstan/phpstan": "PHPStan focuses on finding errors in your code without actually running it. It catches whole classes of bugs even before you write tests for the code.", - "cakephp/repl": "Console tools for a REPL interface for CakePHP applications." - }, "autoload": { "psr-4": { "App\\": "src/", @@ -98,13 +72,6 @@ "BcWidgetArea\\Test\\": "plugins/bc-widget-area/tests/" } }, - "config": { - "sort-packages": true, - "allow-plugins": { - "cakephp/plugin-installer": true, - "dealerdirect/phpcodesniffer-composer-installer": true - } - }, "scripts": { "post-install-cmd": "App\\Console\\Installer::postInstall", "post-update-cmd": "App\\Console\\Installer::postInstall", @@ -126,5 +93,38 @@ "Composer\\Config::disableProcessTimeout", "vendor/bin/phpunit --colors=always" ] + }, + "suggest": { + "markstory/asset_compress": "An asset compression plugin which provides file concatenation and a flexible filter system for preprocessing and minification.", + "dereuromark/cakephp-ide-helper": "After baking your code, this keeps your annotations in sync with the code evolving from there on for maximum IDE and PHPStan/Psalm compatibility.", + "phpstan/phpstan": "PHPStan focuses on finding errors in your code without actually running it. It catches whole classes of bugs even before you write tests for the code.", + "cakephp/repl": "Console tools for a REPL interface for CakePHP applications." + }, + "config": { + "sort-packages": true, + "allow-plugins": { + "cakephp/plugin-installer": true, + "dealerdirect/phpcodesniffer-composer-installer": true + } + }, + "replace": { + "baserproject/baser-core": "5.1.1", + "baserproject/bc-admin-third": "5.1.1", + "baserproject/bc-blog": "5.1.1", + "baserproject/bc-column": "5.1.1", + "baserproject/bc-content-link": "5.1.1", + "baserproject/bc-custom-content": "5.1.1", + "baserproject/bc-editor-template": "5.1.1", + "baserproject/bc-favorite": "5.1.1", + "baserproject/bc-front": "5.1.1", + "baserproject/bc-installer": "5.1.1", + "baserproject/bc-mail": "5.1.1", + "baserproject/bc-plugin-sample": "5.1.1", + "baserproject/bc-search-index": "5.1.1", + "baserproject/bc-theme-config": "5.1.1", + "baserproject/bc-theme-file": "5.1.1", + "baserproject/bc-theme-sample": "5.1.1", + "baserproject/bc-uploader": "5.1.1", + "baserproject/bc-widget-area": "5.1.1" } } From 95b9304fdcbb2ea633969ee94722500ff083c067 Mon Sep 17 00:00:00 2001 From: ryuring Date: Fri, 6 Sep 2024 07:50:35 +0900 Subject: [PATCH 56/94] =?UTF-8?q?BcComposerTest::testSetupComposerForDistr?= =?UTF-8?q?ibution()=20=E3=82=92=E4=B8=80=E6=97=A6=E3=82=B3=E3=83=A1?= =?UTF-8?q?=E3=83=B3=E3=83=88=E3=82=A2=E3=82=A6=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php index 65d692d5fa..afd71269ea 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php @@ -249,7 +249,7 @@ public function testSelfUpdate() /** * test setupComposerForDistribution */ - public function testSetupComposerForDistribution() +/* public function testSetupComposerForDistribution() { // composer.json をバックアップ $composer = TMP_TESTS . 'composer.json'; @@ -278,7 +278,7 @@ public function testSetupComposerForDistribution() unlink($composer); unlink(TMP_TESTS . 'composer.lock'); (new BcFolder(TMP_TESTS . 'vendor'))->delete(); - } + }*/ /** * test createCommand From 199f27ba78c59b3ac1d7396adbd7f830e3163bd2 Mon Sep 17 00:00:00 2001 From: ryuring Date: Fri, 6 Sep 2024 07:52:05 +0900 Subject: [PATCH 57/94] =?UTF-8?q?=E3=83=86=E3=82=B9=E3=83=88=E3=83=90?= =?UTF-8?q?=E3=83=83=E3=82=B8=E3=81=AE=E5=8F=82=E7=85=A7=E5=85=88=E3=82=92?= =?UTF-8?q?=E6=AD=A3=E3=81=97=E3=81=8F=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d7f69e5612..f72d019657 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Software License - Build Status + Build Status

From 143bf81fc04b9462b2c75ed2d32e828d5e2c6e3a Mon Sep 17 00:00:00 2001 From: ryuring Date: Fri, 6 Sep 2024 07:54:41 +0900 Subject: [PATCH 58/94] =?UTF-8?q?=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7?= =?UTF-8?q?=E3=83=B3=E3=82=925.1.2=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/baser-core/VERSION.txt | 2 +- plugins/baser-core/composer.json | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/plugins/baser-core/VERSION.txt b/plugins/baser-core/VERSION.txt index 1fa49949e9..4b5a004dd5 100644 --- a/plugins/baser-core/VERSION.txt +++ b/plugins/baser-core/VERSION.txt @@ -1,4 +1,4 @@ -5.1.1 +5.1.2 /////////////////////////////////////////////////////////////////////////////////////////////////////////// // +---------------------------------------------------------------------------------------------------+ // diff --git a/plugins/baser-core/composer.json b/plugins/baser-core/composer.json index ebf0a6305e..7d9afd3715 100644 --- a/plugins/baser-core/composer.json +++ b/plugins/baser-core/composer.json @@ -15,20 +15,20 @@ "firebase/php-jwt": "6.1.0", "mobiledetect/mobiledetectlib": "^3.74", "ext-json": "*", - "baserproject/bc-admin-third": "5.1.1", - "baserproject/bc-blog": "5.1.1", - "baserproject/bc-content-link": "5.1.1", - "baserproject/bc-custom-content": "5.1.1", - "baserproject/bc-editor-template": "5.1.1", - "baserproject/bc-favorite": "5.1.1", - "baserproject/bc-front": "5.1.1", - "baserproject/bc-installer": "5.1.1", - "baserproject/bc-mail": "5.1.1", - "baserproject/bc-search-index": "5.1.1", - "baserproject/bc-theme-config": "5.1.1", - "baserproject/bc-theme-file": "5.1.1", - "baserproject/bc-uploader": "5.1.1", - "baserproject/bc-widget-area": "5.1.1", + "baserproject/bc-admin-third": "5.1.x-dev", + "baserproject/bc-blog": "5.1.x-dev", + "baserproject/bc-content-link": "5.1.x-dev", + "baserproject/bc-custom-content": "5.1.x-dev", + "baserproject/bc-editor-template": "5.1.x-dev", + "baserproject/bc-favorite": "5.1.x-dev", + "baserproject/bc-front": "5.1.x-dev", + "baserproject/bc-installer": "5.1.x-dev", + "baserproject/bc-mail": "5.1.x-dev", + "baserproject/bc-search-index": "5.1.x-dev", + "baserproject/bc-theme-config": "5.1.x-dev", + "baserproject/bc-theme-file": "5.1.x-dev", + "baserproject/bc-uploader": "5.1.x-dev", + "baserproject/bc-widget-area": "5.1.x-dev", "ext-mbstring": "*", "ext-zip": "*", "ext-gd": "*" From d66f405d356ea66bf4562941df3a3d2c4cf4d802 Mon Sep 17 00:00:00 2001 From: thangnnmd <150879641+thangnnmd@users.noreply.github.com> Date: Fri, 6 Sep 2024 10:41:46 +0700 Subject: [PATCH 59/94] Add unitTest_BcLang_parseLang (#3776) --- plugins/baser-core/src/Utility/BcLang.php | 3 +- .../tests/TestCase/Utility/BcLangTest.php | 58 +++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 plugins/baser-core/tests/TestCase/Utility/BcLangTest.php diff --git a/plugins/baser-core/src/Utility/BcLang.php b/plugins/baser-core/src/Utility/BcLang.php index 842018982f..12ee0fd491 100644 --- a/plugins/baser-core/src/Utility/BcLang.php +++ b/plugins/baser-core/src/Utility/BcLang.php @@ -99,6 +99,7 @@ public function isMatchDecisionKey() * @return array|string * @checked * @noTodo + * @unitTest */ static public function parseLang($acceptLanguage) { @@ -121,5 +122,5 @@ static public function parseLang($acceptLanguage) } return $langs[0]; } - + } diff --git a/plugins/baser-core/tests/TestCase/Utility/BcLangTest.php b/plugins/baser-core/tests/TestCase/Utility/BcLangTest.php new file mode 100644 index 0000000000..d09e64aaf4 --- /dev/null +++ b/plugins/baser-core/tests/TestCase/Utility/BcLangTest.php @@ -0,0 +1,58 @@ +markTestIncomplete('このテストは、まだ実装されていません。'); + } + + public function testGetDefaultConfig() + { + $this->markTestIncomplete('このテストは、まだ実装されていません。'); + } + + public function testGetPattern() + { + $this->markTestIncomplete('このテストは、まだ実装されていません。'); + } + + /** + * Test parseLang + * @dataProvider parseLangDataProvider + */ + public function testParseLang($acceptLanguage, $expected) + { + $result = BcLang::parseLang($acceptLanguage); + $this->assertEquals($expected, $result); + } + + public static function parseLangDataProvider() + { + return [ + [null, 'ja'], + ['', 'ja'], + ['en-US', 'en'], + ['fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5', 'fr'], + ['en-US,en;q=0.9', 'en'], + ['zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7', 'zh'], + ['en-US,en;q=0.8,es-ES;q=0.5,es;q=0.3', 'en'], + ['123,456', '123'], + ]; + } +} From b5084db3420e0582df5348653c1dbdac1de48933 Mon Sep 17 00:00:00 2001 From: ryuring Date: Fri, 6 Sep 2024 18:41:12 +0900 Subject: [PATCH 60/94] =?UTF-8?q?phpDocumentor=E3=81=8C=E5=8B=95=E4=BD=9C?= =?UTF-8?q?=E3=81=97=E3=81=AA=E3=81=84=E5=95=8F=E9=A1=8C=E3=82=92=E6=94=B9?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/php_documentor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/php_documentor.yml b/.github/workflows/php_documentor.yml index 0e0a55d02e..68cca8c718 100644 --- a/.github/workflows/php_documentor.yml +++ b/.github/workflows/php_documentor.yml @@ -31,7 +31,7 @@ jobs: cp docker-compose.yml.default docker-compose.yml sed -i -e "s/basercms:php8.1/basercms:php${{ matrix.php-version }}/g" docker-compose.yml sed -i -e "s/XDEBUG_MODE: \"debug\"/XDEBUG_MODE: \"off\"/g" docker-compose.yml - docker-compose up -d + docker compose up -d - name: PhpDocumentor run: | From e8fefd486d4daf886b88f8a695144c93c0902b76 Mon Sep 17 00:00:00 2001 From: ryuring Date: Fri, 6 Sep 2024 19:14:25 +0900 Subject: [PATCH 61/94] =?UTF-8?q?create=20release=20=E3=81=8C=E6=AD=A3?= =?UTF-8?q?=E5=B8=B8=E3=81=AB=E5=8B=95=E4=BD=9C=E3=81=97=E3=81=AA=E3=81=84?= =?UTF-8?q?=E5=95=8F=E9=A1=8C=E3=82=92=E6=94=B9=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/baser-core/src/Utility/BcComposer.php | 6 +- .../tests/TestCase/Utility/BcComposerTest.php | 55 +- .../Utility/assets/composer-5.1.1.json | 130 + .../Utility/assets/composer-5.1.1.lock | 6446 +++++++++++++++++ 4 files changed, 6617 insertions(+), 20 deletions(-) create mode 100644 plugins/baser-core/tests/TestCase/Utility/assets/composer-5.1.1.json create mode 100644 plugins/baser-core/tests/TestCase/Utility/assets/composer-5.1.1.lock diff --git a/plugins/baser-core/src/Utility/BcComposer.php b/plugins/baser-core/src/Utility/BcComposer.php index 36cfa67084..b90f878dfe 100644 --- a/plugins/baser-core/src/Utility/BcComposer.php +++ b/plugins/baser-core/src/Utility/BcComposer.php @@ -301,7 +301,11 @@ public static function deleteReplace() { $file = new BcFile(self::$currentDir . 'composer.json'); $json = $file->read(); - $json = preg_replace('/"replace"\s*:\s*?{[^}]+?},/', '', $json); + $data = json_decode($json, true); + if(isset($data['replace'])) { + unset($data['replace']); + } + $json = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES); $file->write($json); } diff --git a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php index afd71269ea..eae8dd1d15 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php @@ -249,36 +249,32 @@ public function testSelfUpdate() /** * test setupComposerForDistribution */ -/* public function testSetupComposerForDistribution() + public function testSetupComposerForDistribution() { // composer.json をバックアップ - $composer = TMP_TESTS . 'composer.json'; - copy(ROOT . DS . 'composer.json', $composer); + $srcComposerJsonPath = __DIR__ . DS . 'assets' . DS . 'composer-5.1.1.json'; + $srcComposerLockPath = __DIR__ . DS . 'assets' . DS . 'composer-5.1.1.lock'; + $composerJson = TMP_TESTS . 'composer.json'; + $composerLock = TMP_TESTS . 'composer.lock'; + copy($srcComposerJsonPath, $composerJson); + copy($srcComposerLockPath, $composerLock); // 実行 BcComposer::setup('', TMP_TESTS); - - // 5.1.0 のテストの場合、5.1.1 との依存関係の問題があるためライブラリを調整 - // このままでは、今後のリリースのタイミングでまた依存関係が変わる可能性があるため - // 特定のバージョンの composer.json を別途用意しておいた方が良さそう - // >>> - BcComposer::require('josegonzalez/dotenv', '^3.2'); - sleep(1); - BcComposer::require('mobiledetect/mobiledetectlib', '^4.8.03'); - // <<< - - BcComposer::setupComposerForDistribution('5.1.0'); - $file = new BcFile($composer); + BcComposer::setupComposerForDistribution('5.1.1'); + $file = new BcFile($composerJson); $data = $file->read(); $this->assertNotFalse(strpos($data, '"baserproject/baser-core": ')); $this->assertFalse(strpos($data, '"replace": {')); - $this->assertFileExists(TMP_TESTS . 'composer.lock'); + $file = new BcFile($composerLock); + $data = $file->read(); + $this->assertNotFalse(strpos($data, '"baserproject/baser-core"')); // バックアップをリストア - unlink($composer); - unlink(TMP_TESTS . 'composer.lock'); + unlink($composerJson); + unlink($composerLock); (new BcFolder(TMP_TESTS . 'vendor'))->delete(); - }*/ + } /** * test createCommand @@ -315,4 +311,25 @@ public static function createCommandDataProvider() ]; } + /** + * test deleteReplace + * @return void + */ + public function testDeleteReplace() + { + $orgPath = ROOT . DS . 'composer.json'; + $backupPath = ROOT . DS . 'composer.json.bak'; + + // バックアップ作成 + copy($orgPath, $backupPath); + + BcComposer::deleteReplace(); + $file = new BcFile($orgPath); + $data = $file->read(); + $this->assertFalse(strpos($data, '"replace": {')); + + // バックアップ復元 + rename($backupPath, $orgPath); + } + } diff --git a/plugins/baser-core/tests/TestCase/Utility/assets/composer-5.1.1.json b/plugins/baser-core/tests/TestCase/Utility/assets/composer-5.1.1.json new file mode 100644 index 0000000000..92dbb3dc6e --- /dev/null +++ b/plugins/baser-core/tests/TestCase/Utility/assets/composer-5.1.1.json @@ -0,0 +1,130 @@ +{ + "name": "baserproject/basercms", + "description": "baserCMS plugin for CakePHP", + "homepage": "https://basercms.net", + "license": "MIT", + "type": "project", + "require": { + "php": ">=8.1", + "ext-gd": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-pdo": "*", + "ext-sqlite3": "*", + "ext-zip": "*", + "cakephp/authentication": "^3.0", + "cakephp/cakephp": "5.0.*", + "cakephp/migrations": "^4.0.0", + "cakephp/plugin-installer": "^2.0", + "doctrine/annotations": "^1.12", + "firebase/php-jwt": "6.1.0", + "mobiledetect/mobiledetectlib": "^3.74" + }, + "require-dev": { + "ext-xdebug": "*", + "cakephp/bake": "^3.0.0", + "cakephp/cakephp-codesniffer": "^5.0", + "cakephp/debug_kit": "^5.0.0", + "josegonzalez/dotenv": "^4.0", + "phpunit/phpunit": "10.5.31", + "symplify/monorepo-builder": "^11.2", + "vierge-noire/cakephp-fixture-factories": "^3.0", + "vierge-noire/cakephp-test-suite-light": "^3.0" + }, + "autoload": { + "psr-4": { + "App\\": "src/", + "BaserCore\\": "plugins/baser-core/src", + "BcAdminThird\\": "plugins/bc-admin-third/src", + "BcBlog\\": "plugins/bc-blog/src/", + "BcColumn\\": "plugins/BcColumn/src/", + "BcContentLink\\": "plugins/bc-content-link/src/", + "BcCustomContent\\": "plugins/bc-custom-content/src/", + "BcEditorTemplate\\": "plugins/bc-editor-template/src/", + "BcFavorite\\": "plugins/bc-favorite/src/", + "BcFront\\": "plugins/bc-front/src/", + "BcInstaller\\": "plugins/bc-installer/src/", + "BcMail\\": "plugins/bc-mail/src/", + "BcPluginSample\\": "plugins/BcPluginSample/src/", + "BcSearchIndex\\": "plugins/bc-search-index/src/", + "BcThemeConfig\\": "plugins/bc-theme-config/src/", + "BcThemeFile\\": "plugins/bc-theme-file/src/", + "BcThemeSample\\": "plugins/BcThemeSample/src/", + "BcUploader\\": "plugins/bc-uploader/src/", + "BcWidgetArea\\": "plugins/bc-widget-area/src/", + "Cake\\Routing\\": "plugins/baser-core/src/Routing" + } + }, + "autoload-dev": { + "psr-4": { + "BaserCore\\Test\\": "plugins/baser-core/tests/", + "BcBlog\\Test\\": "plugins/bc-blog/tests/", + "BcContentLink\\Test\\": "plugins/bc-content-link/tests/", + "BcCustomContent\\Test\\": "plugins/bc-custom-content/tests/", + "BcEditorTemplate\\Test\\": "plugins/bc-editor-template/tests/", + "BcFavorite\\Test\\": "plugins/bc-favorite/tests/", + "BcInstaller\\Test\\": "plugins/bc-installer/tests/", + "BcMail\\Test\\": "plugins/bc-mail/tests/", + "BcSearchIndex\\Test\\": "plugins/bc-search-index/tests/", + "BcThemeConfig\\Test\\": "plugins/bc-theme-config/tests/", + "BcThemeFile\\Test\\": "plugins/bc-theme-file/tests/", + "BcUploader\\Test\\": "plugins/bc-uploader/tests/", + "BcWidgetArea\\Test\\": "plugins/bc-widget-area/tests/" + } + }, + "scripts": { + "post-install-cmd": "App\\Console\\Installer::postInstall", + "post-update-cmd": "App\\Console\\Installer::postInstall", + "post-create-project-cmd": "App\\Console\\Installer::postInstall", + "check": [ + "@test", + "@cs-check" + ], + "cs-check": "phpcs --colors -p src/ tests/", + "cs-fix": "phpcbf --colors -p src/ tests/", + "stan": "phpstan analyse", + "install": [ + "composer install --no-plugins", + "bin/cake setup install", + "bin/cake install https://localhost foo@example.com baserCMS1234 basercms --host bc-db --username root --password root" + ], + "test": [ + "bin/cake setup test", + "Composer\\Config::disableProcessTimeout", + "vendor/bin/phpunit --colors=always" + ] + }, + "suggest": { + "markstory/asset_compress": "An asset compression plugin which provides file concatenation and a flexible filter system for preprocessing and minification.", + "dereuromark/cakephp-ide-helper": "After baking your code, this keeps your annotations in sync with the code evolving from there on for maximum IDE and PHPStan/Psalm compatibility.", + "phpstan/phpstan": "PHPStan focuses on finding errors in your code without actually running it. It catches whole classes of bugs even before you write tests for the code.", + "cakephp/repl": "Console tools for a REPL interface for CakePHP applications." + }, + "config": { + "sort-packages": true, + "allow-plugins": { + "cakephp/plugin-installer": true, + "dealerdirect/phpcodesniffer-composer-installer": true + } + }, + "replace": { + "baserproject/baser-core": "5.1.1", + "baserproject/bc-admin-third": "5.1.1", + "baserproject/bc-blog": "5.1.1", + "baserproject/bc-column": "5.1.1", + "baserproject/bc-content-link": "5.1.1", + "baserproject/bc-custom-content": "5.1.1", + "baserproject/bc-editor-template": "5.1.1", + "baserproject/bc-favorite": "5.1.1", + "baserproject/bc-front": "5.1.1", + "baserproject/bc-installer": "5.1.1", + "baserproject/bc-mail": "5.1.1", + "baserproject/bc-plugin-sample": "5.1.1", + "baserproject/bc-search-index": "5.1.1", + "baserproject/bc-theme-config": "5.1.1", + "baserproject/bc-theme-file": "5.1.1", + "baserproject/bc-theme-sample": "5.1.1", + "baserproject/bc-uploader": "5.1.1", + "baserproject/bc-widget-area": "5.1.1" + } +} diff --git a/plugins/baser-core/tests/TestCase/Utility/assets/composer-5.1.1.lock b/plugins/baser-core/tests/TestCase/Utility/assets/composer-5.1.1.lock new file mode 100644 index 0000000000..af06821817 --- /dev/null +++ b/plugins/baser-core/tests/TestCase/Utility/assets/composer-5.1.1.lock @@ -0,0 +1,6446 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "334c429953fa4a60336caedf9c401d74", + "packages": [ + { + "name": "cakephp/authentication", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/cakephp/authentication.git", + "reference": "0fb4ef1a3ee243d46080ce55e4f1c8491c39289e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/authentication/zipball/0fb4ef1a3ee243d46080ce55e4f1c8491c39289e", + "reference": "0fb4ef1a3ee243d46080ce55e4f1c8491c39289e", + "shasum": "" + }, + "require": { + "cakephp/http": "^5.0", + "laminas/laminas-diactoros": "^3.0", + "psr/http-client": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "psr/http-server-handler": "^1.0", + "psr/http-server-middleware": "^1.0" + }, + "require-dev": { + "cakephp/cakephp": "^5.0", + "cakephp/cakephp-codesniffer": "^5.0", + "firebase/php-jwt": "^6.2", + "phpunit/phpunit": "^10.1.0" + }, + "suggest": { + "cakephp/cakephp": "Install full core to use \"CookieAuthenticator\".", + "cakephp/orm": "To use \"OrmResolver\" (Not needed separately if using full CakePHP framework).", + "cakephp/utility": "Provides CakePHP security methods. Required for the JWT adapter and Legacy password hasher.", + "ext-ldap": "Make sure this php extension is installed and enabled on your system if you want to use the built-in LDAP adapter for \"LdapIdentifier\".", + "firebase/php-jwt": "If you want to use the JWT adapter add this dependency" + }, + "type": "cakephp-plugin", + "autoload": { + "psr-4": { + "Authentication\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/authentication/graphs/contributors" + } + ], + "description": "Authentication plugin for CakePHP", + "homepage": "https://cakephp.org", + "keywords": [ + "Authentication", + "auth", + "cakephp", + "middleware" + ], + "support": { + "docs": "https://book.cakephp.org/authentication/3/en/", + "forum": "https://discourse.cakephp.org/", + "issues": "https://github.com/cakephp/authentication/issues", + "source": "https://github.com/cakephp/authentication" + }, + "time": "2024-07-28T23:56:56+00:00" + }, + { + "name": "cakephp/cakephp", + "version": "5.0.10", + "source": { + "type": "git", + "url": "https://github.com/cakephp/cakephp.git", + "reference": "f0b88ba6cc42e319fd012a32e96af7b3826fefdc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/cakephp/zipball/f0b88ba6cc42e319fd012a32e96af7b3826fefdc", + "reference": "f0b88ba6cc42e319fd012a32e96af7b3826fefdc", + "shasum": "" + }, + "require": { + "cakephp/chronos": "^3.0.2", + "composer/ca-bundle": "^1.2", + "ext-intl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "laminas/laminas-diactoros": "^3.0", + "laminas/laminas-httphandlerrunner": "^2.6", + "league/container": "^4.2", + "php": ">=8.1", + "psr/container": "^1.1 || ^2.0", + "psr/http-client": "^1.0.2", + "psr/http-factory": "^1.0.2", + "psr/http-message": "^1.1 || ^2.0", + "psr/http-server-handler": "^1.0.2", + "psr/http-server-middleware": "^1.0.2", + "psr/log": "^3.0", + "psr/simple-cache": "^2.0 || ^3.0" + }, + "provide": { + "psr/container-implementation": "^2.0", + "psr/http-client-implementation": "^1.0", + "psr/http-factory-implementation": "^1.0", + "psr/http-server-handler-implementation": "^1.0", + "psr/http-server-middleware-implementation": "^1.0", + "psr/log-implementation": "^3.0", + "psr/simple-cache-implementation": "^3.0" + }, + "replace": { + "cakephp/cache": "self.version", + "cakephp/collection": "self.version", + "cakephp/console": "self.version", + "cakephp/core": "self.version", + "cakephp/database": "self.version", + "cakephp/datasource": "self.version", + "cakephp/event": "self.version", + "cakephp/form": "self.version", + "cakephp/http": "self.version", + "cakephp/i18n": "self.version", + "cakephp/log": "self.version", + "cakephp/orm": "self.version", + "cakephp/utility": "self.version", + "cakephp/validation": "self.version" + }, + "require-dev": { + "cakephp/cakephp-codesniffer": "^5.0", + "http-interop/http-factory-tests": "^2.0", + "mikey179/vfsstream": "^1.6.10", + "mockery/mockery": "^1.6", + "paragonie/csp-builder": "^2.3 || ^3.0", + "phpstan/extension-installer": "^1.3", + "phpstan/phpstan": "1.11.*", + "phpunit/phpunit": "^10.1.0 <=10.5.3", + "symplify/phpstan-rules": "^12.4" + }, + "suggest": { + "ext-curl": "To enable more efficient network calls in Http\\Client.", + "ext-openssl": "To use Security::encrypt() or have secure CSRF token generation.", + "lib-ICU": "To use locale-aware features in the I18n and Database packages", + "paragonie/csp-builder": "CSP builder, to use the CSP Middleware" + }, + "type": "library", + "autoload": { + "files": [ + "src/Core/functions.php", + "src/Error/functions.php", + "src/Collection/functions.php", + "src/I18n/functions.php", + "src/ORM/bootstrap.php", + "src/Routing/functions.php", + "src/Utility/bootstrap.php" + ], + "psr-4": { + "Cake\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/cakephp/graphs/contributors" + } + ], + "description": "The CakePHP framework", + "homepage": "https://cakephp.org", + "keywords": [ + "conventions over configuration", + "dry", + "form", + "framework", + "mvc", + "orm", + "psr-7", + "rapid-development", + "validation" + ], + "support": { + "forum": "https://discourse.cakephp.org/", + "issues": "https://github.com/cakephp/cakephp/issues", + "source": "https://github.com/cakephp/cakephp" + }, + "time": "2024-07-28T16:58:12+00:00" + }, + { + "name": "cakephp/chronos", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/cakephp/chronos.git", + "reference": "786d69e1ee4b735765cbdb5521b9603e9b98d650" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/chronos/zipball/786d69e1ee4b735765cbdb5521b9603e9b98d650", + "reference": "786d69e1ee4b735765cbdb5521b9603e9b98d650", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/clock": "^1.0" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "require-dev": { + "cakephp/cakephp-codesniffer": "^5.0", + "phpunit/phpunit": "^10.1.0 || ^11.1.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cake\\Chronos\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "http://nesbot.com" + }, + { + "name": "The CakePHP Team", + "homepage": "https://cakephp.org" + } + ], + "description": "A simple API extension for DateTime.", + "homepage": "https://cakephp.org", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "issues": "https://github.com/cakephp/chronos/issues", + "source": "https://github.com/cakephp/chronos" + }, + "time": "2024-07-18T03:18:04+00:00" + }, + { + "name": "cakephp/migrations", + "version": "4.4.0", + "source": { + "type": "git", + "url": "https://github.com/cakephp/migrations.git", + "reference": "6047ee0033bb0f4c5f7a3afceb2e8d85d319c9f0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/migrations/zipball/6047ee0033bb0f4c5f7a3afceb2e8d85d319c9f0", + "reference": "6047ee0033bb0f4c5f7a3afceb2e8d85d319c9f0", + "shasum": "" + }, + "require": { + "cakephp/cache": "^5.0", + "cakephp/orm": "^5.0", + "php": ">=8.1", + "robmorgan/phinx": "^0.16.0" + }, + "require-dev": { + "cakephp/bake": "dev-3.next", + "cakephp/cakephp": "dev-5.next as 5.1.0", + "cakephp/cakephp-codesniffer": "^5.0", + "phpunit/phpunit": "^10.5.5 || ^11.1.3" + }, + "suggest": { + "cakephp/bake": "If you want to generate migrations.", + "dereuromark/cakephp-ide-helper": "If you want to have IDE suggest/autocomplete when creating migrations." + }, + "type": "cakephp-plugin", + "autoload": { + "psr-4": { + "Migrations\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/migrations/graphs/contributors" + } + ], + "description": "Database Migration plugin for CakePHP based on Phinx", + "homepage": "https://github.com/cakephp/migrations", + "keywords": [ + "cakephp", + "migrations" + ], + "support": { + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/migrations/issues", + "source": "https://github.com/cakephp/migrations" + }, + "time": "2024-08-21T20:03:33+00:00" + }, + { + "name": "cakephp/plugin-installer", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/cakephp/plugin-installer.git", + "reference": "5420701fd47d82fe81805ebee34fbbcef34c52ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/plugin-installer/zipball/5420701fd47d82fe81805ebee34fbbcef34c52ba", + "reference": "5420701fd47d82fe81805ebee34fbbcef34c52ba", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.0", + "php": ">=8.1" + }, + "require-dev": { + "cakephp/cakephp-codesniffer": "^5.0", + "composer/composer": "^2.0", + "phpunit/phpunit": "^10.1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Cake\\Composer\\Plugin" + }, + "autoload": { + "psr-4": { + "Cake\\Composer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "CakePHP Community", + "homepage": "https://cakephp.org" + } + ], + "description": "A composer installer for CakePHP 3.0+ plugins.", + "support": { + "issues": "https://github.com/cakephp/plugin-installer/issues", + "source": "https://github.com/cakephp/plugin-installer/tree/2.0.1" + }, + "time": "2023-09-10T10:02:44+00:00" + }, + { + "name": "composer/ca-bundle", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "063d9aa8696582f5a41dffbbaf3c81024f0a604a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/063d9aa8696582f5a41dffbbaf3c81024f0a604a", + "reference": "063d9aa8696582f5a41dffbbaf3c81024f0a604a", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.10", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/phpunit-bridge": "^4.2 || ^5", + "symfony/process": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/ca-bundle/issues", + "source": "https://github.com/composer/ca-bundle/tree/1.5.1" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-07-08T15:28:20+00:00" + }, + { + "name": "doctrine/annotations", + "version": "1.14.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/annotations.git", + "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", + "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1 || ^2", + "ext-tokenizer": "*", + "php": "^7.1 || ^8.0", + "psr/cache": "^1 || ^2 || ^3" + }, + "require-dev": { + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "symfony/cache": "^4.4 || ^5.4 || ^6", + "vimeo/psalm": "^4.10" + }, + "suggest": { + "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "Docblock Annotations Parser", + "homepage": "https://www.doctrine-project.org/projects/annotations.html", + "keywords": [ + "annotations", + "docblock", + "parser" + ], + "support": { + "issues": "https://github.com/doctrine/annotations/issues", + "source": "https://github.com/doctrine/annotations/tree/1.14.3" + }, + "time": "2023-02-01T09:20:38+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.3" + }, + "time": "2024-01-30T19:34:25+00:00" + }, + { + "name": "doctrine/lexer", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6", + "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^12", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^4.11 || ^5.21" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/2.1.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2024-02-05T11:35:39+00:00" + }, + { + "name": "firebase/php-jwt", + "version": "v6.1.0", + "source": { + "type": "git", + "url": "https://github.com/firebase/php-jwt.git", + "reference": "fbb2967a3a68b07e37678c00c0cf51165051495f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/fbb2967a3a68b07e37678c00c0cf51165051495f", + "reference": "fbb2967a3a68b07e37678c00c0cf51165051495f", + "shasum": "" + }, + "require": { + "php": "^7.1||^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.5||9.5" + }, + "suggest": { + "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present" + }, + "type": "library", + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "keywords": [ + "jwt", + "php" + ], + "support": { + "issues": "https://github.com/firebase/php-jwt/issues", + "source": "https://github.com/firebase/php-jwt/tree/v6.1.0" + }, + "time": "2022-03-23T18:26:04+00:00" + }, + { + "name": "laminas/laminas-diactoros", + "version": "3.3.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-diactoros.git", + "reference": "74cfb9a7522ffd2a161d1ebe10db2fc2abb9df45" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/74cfb9a7522ffd2a161d1ebe10db2fc2abb9df45", + "reference": "74cfb9a7522ffd2a161d1ebe10db2fc2abb9df45", + "shasum": "" + }, + "require": { + "php": "~8.1.0 || ~8.2.0 || ~8.3.0", + "psr/http-factory": "^1.0.2", + "psr/http-message": "^1.1 || ^2.0" + }, + "provide": { + "psr/http-factory-implementation": "^1.1 || ^2.0", + "psr/http-message-implementation": "^1.1 || ^2.0" + }, + "require-dev": { + "ext-curl": "*", + "ext-dom": "*", + "ext-gd": "*", + "ext-libxml": "*", + "http-interop/http-factory-tests": "^0.9.0", + "laminas/laminas-coding-standard": "~2.5.0", + "php-http/psr7-integration-tests": "^1.3", + "phpunit/phpunit": "^9.6.16", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.22.1" + }, + "type": "library", + "extra": { + "laminas": { + "config-provider": "Laminas\\Diactoros\\ConfigProvider", + "module": "Laminas\\Diactoros" + } + }, + "autoload": { + "files": [ + "src/functions/create_uploaded_file.php", + "src/functions/marshal_headers_from_sapi.php", + "src/functions/marshal_method_from_sapi.php", + "src/functions/marshal_protocol_version_from_sapi.php", + "src/functions/normalize_server.php", + "src/functions/normalize_uploaded_files.php", + "src/functions/parse_cookie_header.php" + ], + "psr-4": { + "Laminas\\Diactoros\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "PSR HTTP Message implementations", + "homepage": "https://laminas.dev", + "keywords": [ + "http", + "laminas", + "psr", + "psr-17", + "psr-7" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-diactoros/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-diactoros/issues", + "rss": "https://github.com/laminas/laminas-diactoros/releases.atom", + "source": "https://github.com/laminas/laminas-diactoros" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2024-02-16T16:06:16+00:00" + }, + { + "name": "laminas/laminas-httphandlerrunner", + "version": "2.10.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-httphandlerrunner.git", + "reference": "35a0ba92e940a2f9533754f5a56187fa321f7693" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-httphandlerrunner/zipball/35a0ba92e940a2f9533754f5a56187fa321f7693", + "reference": "35a0ba92e940a2f9533754f5a56187fa321f7693", + "shasum": "" + }, + "require": { + "php": "~8.1.0 || ~8.2.0 || ~8.3.0", + "psr/http-message": "^1.0 || ^2.0", + "psr/http-message-implementation": "^1.0 || ^2.0", + "psr/http-server-handler": "^1.0" + }, + "require-dev": { + "laminas/laminas-coding-standard": "~2.5.0", + "laminas/laminas-diactoros": "^3.3.0", + "phpunit/phpunit": "^10.5.5", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.18" + }, + "type": "library", + "extra": { + "laminas": { + "config-provider": "Laminas\\HttpHandlerRunner\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Laminas\\HttpHandlerRunner\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Execute PSR-15 RequestHandlerInterface instances and emit responses they generate.", + "homepage": "https://laminas.dev", + "keywords": [ + "components", + "laminas", + "mezzio", + "psr-15", + "psr-7" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-httphandlerrunner/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-httphandlerrunner/issues", + "rss": "https://github.com/laminas/laminas-httphandlerrunner/releases.atom", + "source": "https://github.com/laminas/laminas-httphandlerrunner" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2024-01-04T10:50:34+00:00" + }, + { + "name": "league/container", + "version": "4.2.2", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/container.git", + "reference": "ff346319ca1ff0e78277dc2311a42107cc1aab88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/container/zipball/ff346319ca1ff0e78277dc2311a42107cc1aab88", + "reference": "ff346319ca1ff0e78277dc2311a42107cc1aab88", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "psr/container": "^1.1 || ^2.0" + }, + "provide": { + "psr/container-implementation": "^1.0" + }, + "replace": { + "orno/di": "~2.0" + }, + "require-dev": { + "nette/php-generator": "^3.4", + "nikic/php-parser": "^4.10", + "phpstan/phpstan": "^0.12.47", + "phpunit/phpunit": "^8.5.17", + "roave/security-advisories": "dev-latest", + "scrutinizer/ocular": "^1.8", + "squizlabs/php_codesniffer": "^3.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev", + "dev-4.x": "4.x-dev", + "dev-3.x": "3.x-dev", + "dev-2.x": "2.x-dev", + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Container\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Phil Bennett", + "email": "mail@philbennett.co.uk", + "role": "Developer" + } + ], + "description": "A fast and intuitive dependency injection container.", + "homepage": "https://github.com/thephpleague/container", + "keywords": [ + "container", + "dependency", + "di", + "injection", + "league", + "provider", + "service" + ], + "support": { + "issues": "https://github.com/thephpleague/container/issues", + "source": "https://github.com/thephpleague/container/tree/4.2.2" + }, + "funding": [ + { + "url": "https://github.com/philipobenito", + "type": "github" + } + ], + "time": "2024-03-13T13:12:53+00:00" + }, + { + "name": "mobiledetect/mobiledetectlib", + "version": "3.74.3", + "source": { + "type": "git", + "url": "https://github.com/serbanghita/Mobile-Detect.git", + "reference": "39582ab62f86b40e4edb698159f895929a29c346" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/39582ab62f86b40e4edb698159f895929a29c346", + "reference": "39582ab62f86b40e4edb698159f895929a29c346", + "shasum": "" + }, + "require": { + "php": ">=7.4" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.14", + "phpunit/phpunit": "^9.6", + "squizlabs/php_codesniffer": "^3.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Detection\\": "src/" + }, + "classmap": [ + "src/MobileDetect.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Serban Ghita", + "email": "serbanghita@gmail.com", + "homepage": "https://mobiledetect.net", + "role": "Developer" + } + ], + "description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.", + "homepage": "https://github.com/serbanghita/Mobile-Detect", + "keywords": [ + "detect mobile devices", + "mobile", + "mobile detect", + "mobile detector", + "php mobile detect" + ], + "support": { + "issues": "https://github.com/serbanghita/Mobile-Detect/issues", + "source": "https://github.com/serbanghita/Mobile-Detect/tree/3.74.3" + }, + "funding": [ + { + "url": "https://github.com/serbanghita", + "type": "github" + } + ], + "time": "2023-10-27T16:28:04+00:00" + }, + { + "name": "psr/cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" + }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/http-server-handler", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-handler.git", + "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/84c4fb66179be4caaf8e97bd239203245302e7d4", + "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side request handler", + "keywords": [ + "handler", + "http", + "http-interop", + "psr", + "psr-15", + "psr-7", + "request", + "response", + "server" + ], + "support": { + "source": "https://github.com/php-fig/http-server-handler/tree/1.0.2" + }, + "time": "2023-04-10T20:06:20+00:00" + }, + { + "name": "psr/http-server-middleware", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-server-middleware.git", + "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/c1481f747daaa6a0782775cd6a8c26a1bf4a3829", + "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "psr/http-message": "^1.0 || ^2.0", + "psr/http-server-handler": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP server-side middleware", + "keywords": [ + "http", + "http-interop", + "middleware", + "psr", + "psr-15", + "psr-7", + "request", + "response" + ], + "support": { + "issues": "https://github.com/php-fig/http-server-middleware/issues", + "source": "https://github.com/php-fig/http-server-middleware/tree/1.0.2" + }, + "time": "2023-04-11T06:14:47+00:00" + }, + { + "name": "psr/log", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "79dff0b268932c640297f5208d6298f71855c03e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/79dff0b268932c640297f5208d6298f71855c03e", + "reference": "79dff0b268932c640297f5208d6298f71855c03e", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.1" + }, + "time": "2024-08-21T13:31:24+00:00" + }, + { + "name": "psr/simple-cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" + }, + "time": "2021-10-29T13:26:27+00:00" + }, + { + "name": "robmorgan/phinx", + "version": "0.16.2", + "source": { + "type": "git", + "url": "https://github.com/cakephp/phinx.git", + "reference": "577908073d3f355ceb47ca9fc6bd978cb1526c70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/phinx/zipball/577908073d3f355ceb47ca9fc6bd978cb1526c70", + "reference": "577908073d3f355ceb47ca9fc6bd978cb1526c70", + "shasum": "" + }, + "require": { + "cakephp/database": "^5.0.2", + "composer-runtime-api": "^2.0", + "php-64bit": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/config": "^3.4|^4.0|^5.0|^6.0|^7.0", + "symfony/console": "^6.0|^7.0" + }, + "require-dev": { + "cakephp/cakephp": "^5.0.2", + "cakephp/cakephp-codesniffer": "^5.0", + "ext-json": "*", + "ext-pdo": "*", + "phpunit/phpunit": "^9.5.19", + "symfony/yaml": "^3.4|^4.0|^5.0|^6.0|^7.0" + }, + "suggest": { + "ext-json": "Install if using JSON configuration format", + "ext-pdo": "PDO extension is needed", + "symfony/yaml": "Install if using YAML configuration format" + }, + "bin": [ + "bin/phinx" + ], + "type": "library", + "autoload": { + "psr-4": { + "Phinx\\": "src/Phinx/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Rob Morgan", + "email": "robbym@gmail.com", + "homepage": "https://robmorgan.id.au", + "role": "Lead Developer" + }, + { + "name": "Woody Gilk", + "email": "woody.gilk@gmail.com", + "homepage": "https://shadowhand.me", + "role": "Developer" + }, + { + "name": "Richard Quadling", + "email": "rquadling@gmail.com", + "role": "Developer" + }, + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/phinx/graphs/contributors", + "role": "Developer" + } + ], + "description": "Phinx makes it ridiculously easy to manage the database migrations for your PHP app.", + "homepage": "https://phinx.org", + "keywords": [ + "database", + "database migrations", + "db", + "migrations", + "phinx" + ], + "support": { + "issues": "https://github.com/cakephp/phinx/issues", + "source": "https://github.com/cakephp/phinx/tree/0.16.2" + }, + "time": "2024-07-17T21:40:58+00:00" + }, + { + "name": "symfony/config", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "12e7e52515ce37191b193cf3365903c4f3951e35" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/12e7e52515ce37191b193cf3365903c4f3951e35", + "reference": "12e7e52515ce37191b193cf3365903c4f3951e35", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/filesystem": "^5.4|^6.0|^7.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/finder": "<5.4", + "symfony/service-contracts": "<2.5" + }, + "require-dev": { + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/finder": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symfony/console", + "version": "v6.4.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/42686880adaacdad1835ee8fc2a9ec5b7bd63998", + "reference": "42686880adaacdad1835ee8fc2a9ec5b7bd63998", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0|^7.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.4.11" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-08-15T22:48:29+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v6.4.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "b51ef8059159330b74a4d52f68e671033c0fe463" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b51ef8059159330b74a4d52f68e671033c0fe463", + "reference": "b51ef8059159330b74a4d52f68e671033c0fe463", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { + "symfony/process": "^5.4|^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v6.4.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-28T09:49:33+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "0424dff1c58f028c451efff2045f5d92410bd540" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", + "reference": "0424dff1c58f028c451efff2045f5d92410bd540", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T15:07:36+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a", + "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T15:07:36+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb", + "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T15:07:36+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-19T12:30:46+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/string", + "version": "v6.4.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/5bc3eb632cf9c8dbfd6529d89be9950d1518883b", + "reference": "5bc3eb632cf9c8dbfd6529d89be9950d1518883b", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0|^7.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/intl": "^6.2|^7.0", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.4.11" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-08-12T09:55:28+00:00" + } + ], + "packages-dev": [ + { + "name": "brick/varexporter", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/brick/varexporter.git", + "reference": "2fd038f7c9d12d468130c6e1b3ce06e4160a7dbb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/varexporter/zipball/2fd038f7c9d12d468130c6e1b3ce06e4160a7dbb", + "reference": "2fd038f7c9d12d468130c6e1b3ce06e4160a7dbb", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.0", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^8.5 || ^9.0", + "vimeo/psalm": "5.15.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\VarExporter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A powerful alternative to var_export(), which can export closures and objects without __set_state()", + "keywords": [ + "var_export" + ], + "support": { + "issues": "https://github.com/brick/varexporter/issues", + "source": "https://github.com/brick/varexporter/tree/0.4.0" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + } + ], + "time": "2023-09-01T21:10:07+00:00" + }, + { + "name": "cakephp/bake", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/cakephp/bake.git", + "reference": "2a30ba221859176dbe583783da7299bde95c8956" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/bake/zipball/2a30ba221859176dbe583783da7299bde95c8956", + "reference": "2a30ba221859176dbe583783da7299bde95c8956", + "shasum": "" + }, + "require": { + "brick/varexporter": "^0.4.0", + "cakephp/cakephp": "^5.0.3", + "cakephp/twig-view": "^2.0.0", + "nikic/php-parser": "^4.13.2 || ^5.0.0", + "php": ">=8.1" + }, + "require-dev": { + "cakephp/cakephp-codesniffer": "^5.0.0", + "cakephp/debug_kit": "^5.0.0", + "phpunit/phpunit": "^10.1.0" + }, + "type": "cakephp-plugin", + "autoload": { + "psr-4": { + "Bake\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/bake/graphs/contributors" + } + ], + "description": "Bake plugin for CakePHP", + "homepage": "https://github.com/cakephp/bake", + "keywords": [ + "bake", + "cakephp" + ], + "support": { + "forum": "https://stackoverflow.com/tags/cakephp", + "issues": "https://github.com/cakephp/bake/issues", + "source": "https://github.com/cakephp/bake" + }, + "time": "2024-03-11T17:36:39+00:00" + }, + { + "name": "cakephp/cakephp-codesniffer", + "version": "5.1.3", + "source": { + "type": "git", + "url": "https://github.com/cakephp/cakephp-codesniffer.git", + "reference": "04860c9746810d22d02d014deeb57bc80bf57804" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/cakephp-codesniffer/zipball/04860c9746810d22d02d014deeb57bc80bf57804", + "reference": "04860c9746810d22d02d014deeb57bc80bf57804", + "shasum": "" + }, + "require": { + "php": ">=8.1.0", + "phpstan/phpdoc-parser": "^1.4.5", + "slevomat/coding-standard": "^8.15", + "squizlabs/php_codesniffer": "^3.9" + }, + "require-dev": { + "phpunit/phpunit": "^9.3.4" + }, + "type": "phpcodesniffer-standard", + "autoload": { + "psr-4": { + "CakePHP\\": "CakePHP/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/cakephp-codesniffer/graphs/contributors" + } + ], + "description": "CakePHP CodeSniffer Standards", + "homepage": "https://cakephp.org", + "keywords": [ + "codesniffer", + "framework" + ], + "support": { + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/cakephp-codesniffer/issues", + "source": "https://github.com/cakephp/cakephp-codesniffer" + }, + "time": "2024-08-13T10:21:08+00:00" + }, + { + "name": "cakephp/debug_kit", + "version": "5.0.6", + "source": { + "type": "git", + "url": "https://github.com/cakephp/debug_kit.git", + "reference": "e3af2116c9a94a15d4cdf00835bb496d6f94f709" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/debug_kit/zipball/e3af2116c9a94a15d4cdf00835bb496d6f94f709", + "reference": "e3af2116c9a94a15d4cdf00835bb496d6f94f709", + "shasum": "" + }, + "require": { + "cakephp/cakephp": "^5.0", + "composer/composer": "^2.0", + "doctrine/sql-formatter": "^1.1.3", + "php": ">=8.1" + }, + "require-dev": { + "cakephp/authorization": "^3.0", + "cakephp/cakephp-codesniffer": "^5.0", + "phpunit/phpunit": "^10.1.0 <=10.5.3" + }, + "suggest": { + "ext-pdo_sqlite": "DebugKit needs to store panel data in a database. SQLite is simple and easy to use." + }, + "type": "cakephp-plugin", + "autoload": { + "psr-4": { + "DebugKit\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Story", + "homepage": "https://mark-story.com", + "role": "Author" + }, + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/debug_kit/graphs/contributors" + } + ], + "description": "CakePHP Debug Kit", + "homepage": "https://github.com/cakephp/debug_kit", + "keywords": [ + "cakephp", + "debug", + "dev", + "kit" + ], + "support": { + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/debug_kit/issues", + "source": "https://github.com/cakephp/debug_kit" + }, + "time": "2024-03-04T15:03:18+00:00" + }, + { + "name": "cakephp/twig-view", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/cakephp/twig-view.git", + "reference": "2bda8f75e97d821b20bda521c4306240241c401b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cakephp/twig-view/zipball/2bda8f75e97d821b20bda521c4306240241c401b", + "reference": "2bda8f75e97d821b20bda521c4306240241c401b", + "shasum": "" + }, + "require": { + "cakephp/cakephp": "^5.0.0", + "jasny/twig-extensions": "^1.3", + "twig/markdown-extra": "^3.0", + "twig/twig": "^3.10.3" + }, + "conflict": { + "wyrihaximus/twig-view": "*" + }, + "require-dev": { + "cakephp/cakephp-codesniffer": "^5.0", + "cakephp/debug_kit": "^5.0", + "cakephp/plugin-installer": "^1.3", + "michelf/php-markdown": "^1.9", + "mikey179/vfsstream": "^1.6.10", + "phpunit/phpunit": "^10.1.0" + }, + "type": "cakephp-plugin", + "autoload": { + "psr-4": { + "Cake\\TwigView\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "CakePHP Community", + "homepage": "https://github.com/cakephp/cakephp/graphs/contributors" + } + ], + "description": "Twig powered View for CakePHP", + "keywords": [ + "cakephp", + "template", + "twig", + "view" + ], + "support": { + "forum": "https://stackoverflow.com/tags/cakephp", + "irc": "irc://irc.freenode.org/cakephp", + "issues": "https://github.com/cakephp/twig-view/issues", + "source": "https://github.com/cakephp/twig-view" + }, + "time": "2024-07-02T20:42:26+00:00" + }, + { + "name": "composer/class-map-generator", + "version": "1.3.4", + "source": { + "type": "git", + "url": "https://github.com/composer/class-map-generator.git", + "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", + "reference": "b1b3fd0b4eaf3ddf3ee230bc340bf3fff454a1a3", + "shasum": "" + }, + "require": { + "composer/pcre": "^2.1 || ^3.1", + "php": "^7.2 || ^8.0", + "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7" + }, + "require-dev": { + "phpstan/phpstan": "^1.6", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/filesystem": "^5.4 || ^6", + "symfony/phpunit-bridge": "^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\ClassMapGenerator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Utilities to scan PHP code and generate class maps.", + "keywords": [ + "classmap" + ], + "support": { + "issues": "https://github.com/composer/class-map-generator/issues", + "source": "https://github.com/composer/class-map-generator/tree/1.3.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-06-12T14:13:04+00:00" + }, + { + "name": "composer/composer", + "version": "2.7.9", + "source": { + "type": "git", + "url": "https://github.com/composer/composer.git", + "reference": "e30ccdd665828ae66eb1be78f056e39e1d5f55ab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/composer/zipball/e30ccdd665828ae66eb1be78f056e39e1d5f55ab", + "reference": "e30ccdd665828ae66eb1be78f056e39e1d5f55ab", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.5", + "composer/class-map-generator": "^1.3.3", + "composer/metadata-minifier": "^1.0", + "composer/pcre": "^2.2 || ^3.2", + "composer/semver": "^3.3", + "composer/spdx-licenses": "^1.5.7", + "composer/xdebug-handler": "^2.0.2 || ^3.0.3", + "justinrainbow/json-schema": "^5.3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "react/promise": "^3.2", + "seld/jsonlint": "^1.4", + "seld/phar-utils": "^1.2", + "seld/signal-handler": "^2.0", + "symfony/console": "^5.4.35 || ^6.3.12 || ^7.0.3", + "symfony/filesystem": "^5.4.35 || ^6.3.12 || ^7.0.3", + "symfony/finder": "^5.4.35 || ^6.3.12 || ^7.0.3", + "symfony/polyfill-php73": "^1.24", + "symfony/polyfill-php80": "^1.24", + "symfony/polyfill-php81": "^1.24", + "symfony/process": "^5.4.35 || ^6.3.12 || ^7.0.3" + }, + "require-dev": { + "phpstan/phpstan": "^1.11.8", + "phpstan/phpstan-deprecation-rules": "^1.2.0", + "phpstan/phpstan-phpunit": "^1.4.0", + "phpstan/phpstan-strict-rules": "^1.6.0", + "phpstan/phpstan-symfony": "^1.4.0", + "symfony/phpunit-bridge": "^6.4.3 || ^7.0.1" + }, + "suggest": { + "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", + "ext-zip": "Enabling the zip extension allows you to unzip archives", + "ext-zlib": "Allow gzip compression of HTTP requests" + }, + "bin": [ + "bin/composer" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.7-dev" + }, + "phpstan": { + "includes": [ + "phpstan/rules.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Composer\\": "src/Composer/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "https://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", + "homepage": "https://getcomposer.org/", + "keywords": [ + "autoload", + "dependency", + "package" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/composer/issues", + "security": "https://github.com/composer/composer/security/policy", + "source": "https://github.com/composer/composer/tree/2.7.9" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-09-04T12:43:28+00:00" + }, + { + "name": "composer/metadata-minifier", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/composer/metadata-minifier.git", + "reference": "c549d23829536f0d0e984aaabbf02af91f443207" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/metadata-minifier/zipball/c549d23829536f0d0e984aaabbf02af91f443207", + "reference": "c549d23829536f0d0e984aaabbf02af91f443207", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "composer/composer": "^2", + "phpstan/phpstan": "^0.12.55", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\MetadataMinifier\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Small utility library that handles metadata minification and expansion.", + "keywords": [ + "composer", + "compression" + ], + "support": { + "issues": "https://github.com/composer/metadata-minifier/issues", + "source": "https://github.com/composer/metadata-minifier/tree/1.0.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2021-04-07T13:37:33+00:00" + }, + { + "name": "composer/pcre", + "version": "3.3.1", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<1.11.10" + }, + "require-dev": { + "phpstan/phpstan": "^1.11.10", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8 || ^9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.3.1" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-08-27T18:44:43+00:00" + }, + { + "name": "composer/semver", + "version": "3.4.2", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/c51258e759afdb17f1fd1fe83bc12baaef6309d6", + "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.2" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-07-12T11:35:52+00:00" + }, + { + "name": "composer/spdx-licenses", + "version": "1.5.8", + "source": { + "type": "git", + "url": "https://github.com/composer/spdx-licenses.git", + "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a", + "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.55", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Spdx\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "SPDX licenses list and validation library.", + "keywords": [ + "license", + "spdx", + "validator" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/spdx-licenses/issues", + "source": "https://github.com/composer/spdx-licenses/tree/1.5.8" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2023-11-20T07:44:33+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "3.0.5", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", + "shasum": "" + }, + "require": { + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" + }, + "require-dev": { + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2024-05-06T16:37:16+00:00" + }, + { + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/composer-installer.git", + "reference": "4be43904336affa5c2f70744a348312336afd0da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da", + "reference": "4be43904336affa5c2f70744a348312336afd0da", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": ">=5.4", + "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0" + }, + "require-dev": { + "composer/composer": "*", + "ext-json": "*", + "ext-zip": "*", + "php-parallel-lint/php-parallel-lint": "^1.3.1", + "phpcompatibility/php-compatibility": "^9.0", + "yoast/phpunit-polyfills": "^1.0" + }, + "type": "composer-plugin", + "extra": { + "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" + }, + "autoload": { + "psr-4": { + "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", + "keywords": [ + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcbf", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/composer-installer/issues", + "source": "https://github.com/PHPCSStandards/composer-installer" + }, + "time": "2023-01-05T11:28:13+00:00" + }, + { + "name": "doctrine/sql-formatter", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/sql-formatter.git", + "reference": "7f83911cc5eba870de7ebb11283972483f7e2891" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/7f83911cc5eba870de7ebb11283972483f7e2891", + "reference": "7f83911cc5eba870de7ebb11283972483f7e2891", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", + "vimeo/psalm": "^5.24" + }, + "bin": [ + "bin/sql-formatter" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\SqlFormatter\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jeremy Dorn", + "email": "jeremy@jeremydorn.com", + "homepage": "https://jeremydorn.com/" + } + ], + "description": "a PHP SQL highlighting library", + "homepage": "https://github.com/doctrine/sql-formatter/", + "keywords": [ + "highlight", + "sql" + ], + "support": { + "issues": "https://github.com/doctrine/sql-formatter/issues", + "source": "https://github.com/doctrine/sql-formatter/tree/1.4.1" + }, + "time": "2024-08-05T20:32:22+00:00" + }, + { + "name": "fakerphp/faker", + "version": "v1.23.1", + "source": { + "type": "git", + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b", + "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", + "ext-intl": "*", + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" + }, + "suggest": { + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", + "ext-curl": "Required by Faker\\Provider\\Image to download images.", + "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", + "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", + "ext-mbstring": "Required for multibyte Unicode string functionality." + }, + "type": "library", + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1" + }, + "time": "2024-01-02T13:46:09+00:00" + }, + { + "name": "jasny/twig-extensions", + "version": "v1.3.1", + "source": { + "type": "git", + "url": "https://github.com/jasny/twig-extensions.git", + "reference": "8a5ca5f49317bf421a519556ad2e876820d41e01" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jasny/twig-extensions/zipball/8a5ca5f49317bf421a519556ad2e876820d41e01", + "reference": "8a5ca5f49317bf421a519556ad2e876820d41e01", + "shasum": "" + }, + "require": { + "php": ">=7.4.0", + "twig/twig": "^2.7 | ^3.0" + }, + "require-dev": { + "ext-intl": "*", + "ext-json": "*", + "ext-pcre": "*", + "phpstan/phpstan": "^1.12.0", + "phpunit/phpunit": "^9.6", + "squizlabs/php_codesniffer": "^3.10" + }, + "suggest": { + "ext-intl": "Required for the use of the LocalDate Twig extension", + "ext-pcre": "Required for the use of the PCRE Twig extension" + }, + "type": "library", + "autoload": { + "psr-4": { + "Jasny\\Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Arnold Daniels", + "email": "arnold@jasny.net", + "homepage": "http://www.jasny.net" + } + ], + "description": "A set of useful Twig filters", + "homepage": "http://github.com/jasny/twig-extensions#README", + "keywords": [ + "PCRE", + "array", + "date", + "datetime", + "preg", + "regex", + "templating", + "text", + "time" + ], + "support": { + "issues": "https://github.com/jasny/twig-extensions/issues", + "source": "https://github.com/jasny/twig-extensions" + }, + "time": "2024-09-03T09:04:53+00:00" + }, + { + "name": "josegonzalez/dotenv", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/josegonzalez/php-dotenv.git", + "reference": "e97dbd3db53508dcd536e73ec787a7f11458d41d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/josegonzalez/php-dotenv/zipball/e97dbd3db53508dcd536e73ec787a7f11458d41d", + "reference": "e97dbd3db53508dcd536e73ec787a7f11458d41d", + "shasum": "" + }, + "require": { + "m1/env": "2.*", + "php": ">=5.5.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "~2.0", + "php-mock/php-mock-phpunit": "~1.1||~2.0", + "squizlabs/php_codesniffer": "~2.9||~3.7" + }, + "type": "library", + "autoload": { + "psr-0": { + "josegonzalez\\Dotenv": [ + "src", + "tests" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jose Diaz-Gonzalez", + "email": "dotenv@josegonzalez.com", + "homepage": "http://josediazgonzalez.com", + "role": "Maintainer" + } + ], + "description": "dotenv file parsing for PHP", + "homepage": "https://github.com/josegonzalez/php-dotenv", + "keywords": [ + "configuration", + "dotenv", + "php" + ], + "support": { + "issues": "https://github.com/josegonzalez/php-dotenv/issues", + "source": "https://github.com/josegonzalez/php-dotenv/tree/4.0.0" + }, + "time": "2023-05-29T22:49:26+00:00" + }, + { + "name": "justinrainbow/json-schema", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/jsonrainbow/json-schema.git", + "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", + "reference": "feb2ca6dd1cebdaf1ed60a4c8de2e53ce11c4fd8", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" + }, + "bin": [ + "bin/validate-json" + ], + "type": "library", + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], + "support": { + "issues": "https://github.com/jsonrainbow/json-schema/issues", + "source": "https://github.com/jsonrainbow/json-schema/tree/5.3.0" + }, + "time": "2024-07-06T21:00:26+00:00" + }, + { + "name": "m1/env", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/m1/Env.git", + "reference": "5c296e3e13450a207e12b343f3af1d7ab569f6f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/m1/Env/zipball/5c296e3e13450a207e12b343f3af1d7ab569f6f3", + "reference": "5c296e3e13450a207e12b343f3af1d7ab569f6f3", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*", + "scrutinizer/ocular": "~1.1", + "squizlabs/php_codesniffer": "^2.3" + }, + "suggest": { + "josegonzalez/dotenv": "For loading of .env", + "m1/vars": "For loading of configs" + }, + "type": "library", + "autoload": { + "psr-4": { + "M1\\Env\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Miles Croxford", + "email": "hello@milescroxford.com", + "homepage": "http://milescroxford.com", + "role": "Developer" + } + ], + "description": "Env is a lightweight library bringing .env file parser compatibility to PHP. In short - it enables you to read .env files with PHP.", + "homepage": "https://github.com/m1/Env", + "keywords": [ + ".env", + "config", + "dotenv", + "env", + "loader", + "m1", + "parser", + "support" + ], + "support": { + "issues": "https://github.com/m1/Env/issues", + "source": "https://github.com/m1/Env/tree/2.2.0" + }, + "time": "2020-02-19T09:02:13+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.12.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2024-06-12T14:39:25+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.19.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b", + "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.1" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1" + }, + "time": "2024-03-17T08:10:35+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "54750ef60c58e43759730615a392c31c80e23176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.30.0", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/5ceb0e384997db59f38774bf79c2a6134252c08f", + "reference": "5ceb0e384997db59f38774bf79c2a6134252c08f", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.30.0" + }, + "time": "2024-08-29T09:54:52+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "10.1.16", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "7e308268858ed6baedc8704a304727d20bc07c77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7e308268858ed6baedc8704a304727d20bc07c77", + "reference": "7e308268858ed6baedc8704a304727d20bc07c77", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.19.1 || ^5.1.0", + "php": ">=8.1", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-text-template": "^3.0.1", + "sebastian/code-unit-reverse-lookup": "^3.0.0", + "sebastian/complexity": "^3.2.0", + "sebastian/environment": "^6.1.0", + "sebastian/lines-of-code": "^2.0.2", + "sebastian/version": "^4.0.1", + "theseer/tokenizer": "^1.2.3" + }, + "require-dev": { + "phpunit/phpunit": "^10.1" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "10.1.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.16" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-08-22T04:31:57+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "4.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c", + "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-31T06:24:48+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:56:09+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-31T14:07:24+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "6.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:57:52+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "10.5.31", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "43e7c3e6a484e538453f89dfa6a6f308c32792da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/43e7c3e6a484e538453f89dfa6a6f308c32792da", + "reference": "43e7c3e6a484e538453f89dfa6a6f308c32792da", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.12.0", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", + "php": ">=8.1", + "phpunit/php-code-coverage": "^10.1.16", + "phpunit/php-file-iterator": "^4.1.0", + "phpunit/php-invoker": "^4.0.0", + "phpunit/php-text-template": "^3.0.1", + "phpunit/php-timer": "^6.0.0", + "sebastian/cli-parser": "^2.0.1", + "sebastian/code-unit": "^2.0.0", + "sebastian/comparator": "^5.0.2", + "sebastian/diff": "^5.1.1", + "sebastian/environment": "^6.1.0", + "sebastian/exporter": "^5.1.2", + "sebastian/global-state": "^6.0.2", + "sebastian/object-enumerator": "^5.0.0", + "sebastian/recursion-context": "^5.0.0", + "sebastian/type": "^4.0.0", + "sebastian/version": "^4.0.1" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "10.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.31" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2024-09-03T11:57:55+00:00" + }, + { + "name": "react/promise", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise.git", + "reference": "8a164643313c71354582dc850b42b33fa12a4b63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63", + "reference": "8a164643313c71354582dc850b42b33fa12a4b63", + "shasum": "" + }, + "require": { + "php": ">=7.1.0" + }, + "require-dev": { + "phpstan/phpstan": "1.10.39 || 1.4.10", + "phpunit/phpunit": "^9.6 || ^7.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "A lightweight implementation of CommonJS Promises/A for PHP", + "keywords": [ + "promise", + "promises" + ], + "support": { + "issues": "https://github.com/reactphp/promise/issues", + "source": "https://github.com/reactphp/promise/tree/v3.2.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-05-24T10:39:05+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T07:12:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503", + "reference": "a81fee9eef0b7a76af11d121767abc44c104e503", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:58:43+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:59:15+00:00" + }, + { + "name": "sebastian/comparator", + "version": "5.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53", + "reference": "2d3e04c3b4c1e84a5e7382221ad8883c8fbc4f53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/diff": "^5.0", + "sebastian/exporter": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-08-12T06:03:08+00:00" + }, + { + "name": "sebastian/complexity", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "68ff824baeae169ec9f2137158ee529584553799" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799", + "reference": "68ff824baeae169ec9f2137158ee529584553799", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-21T08:37:17+00:00" + }, + { + "name": "sebastian/diff", + "version": "5.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0", + "symfony/process": "^6.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T07:15:17+00:00" + }, + { + "name": "sebastian/environment", + "version": "6.1.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984", + "reference": "8074dbcd93529b357029f5cc5058fd3e43666984", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "https://github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-23T08:47:14+00:00" + }, + { + "name": "sebastian/exporter", + "version": "5.1.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "955288482d97c19a372d3f31006ab3f37da47adf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf", + "reference": "955288482d97c19a372d3f31006ab3f37da47adf", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=8.1", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T07:17:12+00:00" + }, + { + "name": "sebastian/global-state", + "version": "6.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T07:19:19+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0", + "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-21T08:38:20+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906", + "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "sebastian/object-reflector": "^3.0", + "sebastian/recursion-context": "^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:08:32+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957", + "reference": "24ed13d98130f0e7122df55d06c5c4942a577957", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:06:18+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "5.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712", + "reference": "05909fb5bc7df4c52992396d0116aed689f93712", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:05:40+00:00" + }, + { + "name": "sebastian/type", + "version": "4.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf", + "reference": "462699a16464c3944eefc02ebdd77882bd3925bf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "phpunit/phpunit": "^10.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/4.0.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T07:10:45+00:00" + }, + { + "name": "sebastian/version", + "version": "4.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/4.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-07T11:34:05+00:00" + }, + { + "name": "seld/jsonlint", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/1748aaf847fc731cfad7725aec413ee46f0cc3a2", + "reference": "1748aaf847fc731cfad7725aec413ee46f0cc3a2", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.11", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" + }, + "bin": [ + "bin/jsonlint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], + "support": { + "issues": "https://github.com/Seldaek/jsonlint/issues", + "source": "https://github.com/Seldaek/jsonlint/tree/1.11.0" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "type": "tidelift" + } + ], + "time": "2024-07-11T14:55:45+00:00" + }, + { + "name": "seld/phar-utils", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", + "reference": "ea2f4014f163c1be4c601b9b7bd6af81ba8d701c", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\PharUtils\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "PHAR file format utilities, for when PHP phars you up", + "keywords": [ + "phar" + ], + "support": { + "issues": "https://github.com/Seldaek/phar-utils/issues", + "source": "https://github.com/Seldaek/phar-utils/tree/1.2.1" + }, + "time": "2022-08-31T10:31:18+00:00" + }, + { + "name": "seld/signal-handler", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/signal-handler.git", + "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98", + "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "require-dev": { + "phpstan/phpstan": "^1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^7.5.20 || ^8.5.23", + "psr/log": "^1 || ^2 || ^3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\Signal\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development", + "keywords": [ + "posix", + "sigint", + "signal", + "sigterm", + "unix" + ], + "support": { + "issues": "https://github.com/Seldaek/signal-handler/issues", + "source": "https://github.com/Seldaek/signal-handler/tree/2.0.2" + }, + "time": "2023-09-03T09:24:00+00:00" + }, + { + "name": "slevomat/coding-standard", + "version": "8.15.0", + "source": { + "type": "git", + "url": "https://github.com/slevomat/coding-standard.git", + "reference": "7d1d957421618a3803b593ec31ace470177d7817" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/7d1d957421618a3803b593ec31ace470177d7817", + "reference": "7d1d957421618a3803b593ec31ace470177d7817", + "shasum": "" + }, + "require": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7 || ^1.0", + "php": "^7.2 || ^8.0", + "phpstan/phpdoc-parser": "^1.23.1", + "squizlabs/php_codesniffer": "^3.9.0" + }, + "require-dev": { + "phing/phing": "2.17.4", + "php-parallel-lint/php-parallel-lint": "1.3.2", + "phpstan/phpstan": "1.10.60", + "phpstan/phpstan-deprecation-rules": "1.1.4", + "phpstan/phpstan-phpunit": "1.3.16", + "phpstan/phpstan-strict-rules": "1.5.2", + "phpunit/phpunit": "8.5.21|9.6.8|10.5.11" + }, + "type": "phpcodesniffer-standard", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "autoload": { + "psr-4": { + "SlevomatCodingStandard\\": "SlevomatCodingStandard/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", + "keywords": [ + "dev", + "phpcs" + ], + "support": { + "issues": "https://github.com/slevomat/coding-standard/issues", + "source": "https://github.com/slevomat/coding-standard/tree/8.15.0" + }, + "funding": [ + { + "url": "https://github.com/kukulich", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/slevomat/coding-standard", + "type": "tidelift" + } + ], + "time": "2024-03-09T15:20:58+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.10.2", + "source": { + "type": "git", + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/86e5f5dd9a840c46810ebe5ff1885581c42a3017", + "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" + }, + "bin": [ + "bin/phpcbf", + "bin/phpcs" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards", + "static analysis" + ], + "support": { + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + } + ], + "time": "2024-07-21T23:26:44+00:00" + }, + { + "name": "symfony/finder", + "version": "v6.4.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/d7eb6daf8cd7e9ac4976e9576b32042ef7253453", + "reference": "d7eb6daf8cd7e9ac4976e9576b32042ef7253453", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v6.4.11" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-08-13T14:27:37+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/ec444d3f3f6505bb28d11afa41e75faadebc10a1", + "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.30.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T15:07:36+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T15:07:36+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.30.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af", + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-19T12:30:46+00:00" + }, + { + "name": "symfony/process", + "version": "v6.4.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/8d92dd79149f29e89ee0f480254db595f6a6a2c5", + "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v6.4.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-05-31T14:49:08+00:00" + }, + { + "name": "symplify/monorepo-builder", + "version": "11.2.22", + "source": { + "type": "git", + "url": "https://github.com/symplify/monorepo-builder.git", + "reference": "c913a8524ee276c8c21a09012c137f6913b5dcad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symplify/monorepo-builder/zipball/c913a8524ee276c8c21a09012c137f6913b5dcad", + "reference": "c913a8524ee276c8c21a09012c137f6913b5dcad", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "bin": [ + "bin/monorepo-builder" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "10.3-dev" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Prefixed version of Not only Composer tools to build a Monorepo.", + "support": { + "issues": "https://github.com/symplify/monorepo-builder/issues", + "source": "https://github.com/symplify/monorepo-builder/tree/11.2.22" + }, + "funding": [ + { + "url": "https://www.paypal.me/rectorphp", + "type": "custom" + }, + { + "url": "https://github.com/tomasvotruba", + "type": "github" + } + ], + "time": "2024-08-23T03:19:18+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:36:25+00:00" + }, + { + "name": "twig/markdown-extra", + "version": "v3.12.0", + "source": { + "type": "git", + "url": "https://github.com/twigphp/markdown-extra.git", + "reference": "2a94d7902a58147474840c89cbfcd16e68c70499" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/markdown-extra/zipball/2a94d7902a58147474840c89cbfcd16e68c70499", + "reference": "2a94d7902a58147474840c89cbfcd16e68c70499", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/deprecation-contracts": "^2.5|^3", + "twig/twig": "^3.0" + }, + "require-dev": { + "erusev/parsedown": "^1.7", + "league/commonmark": "^1.0|^2.0", + "league/html-to-markdown": "^4.8|^5.0", + "michelf/php-markdown": "^1.8|^2.0", + "symfony/phpunit-bridge": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Twig\\Extra\\Markdown\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + } + ], + "description": "A Twig extension for Markdown", + "homepage": "https://twig.symfony.com", + "keywords": [ + "html", + "markdown", + "twig" + ], + "support": { + "source": "https://github.com/twigphp/markdown-extra/tree/v3.12.0" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2024-08-10T10:32:24+00:00" + }, + { + "name": "twig/twig", + "version": "v3.12.0", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "4d19472d4ac1838e0b1f0e029ce1fa4040eb34ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/4d19472d4ac1838e0b1f0e029ce1fa4040eb34ea", + "reference": "4d19472d4ac1838e0b1f0e029ce1fa4040eb34ea", + "shasum": "" + }, + "require": { + "php": ">=8.0.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php81": "^1.29" + }, + "require-dev": { + "psr/container": "^1.0|^2.0", + "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" + }, + "type": "library", + "autoload": { + "files": [ + "src/Resources/core.php", + "src/Resources/debug.php", + "src/Resources/escaper.php", + "src/Resources/string_loader.php" + ], + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "support": { + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v3.12.0" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2024-08-29T09:51:12+00:00" + }, + { + "name": "vierge-noire/cakephp-fixture-factories", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/vierge-noire/cakephp-fixture-factories.git", + "reference": "5d3bfe54e74d60ed04f24fa9770c0264f41beefb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vierge-noire/cakephp-fixture-factories/zipball/5d3bfe54e74d60ed04f24fa9770c0264f41beefb", + "reference": "5d3bfe54e74d60ed04f24fa9770c0264f41beefb", + "shasum": "" + }, + "require": { + "cakephp/orm": "^5.0", + "fakerphp/faker": "^1.23", + "php": ">=8.1", + "vierge-noire/cakephp-test-suite-light": "^3.0" + }, + "require-dev": { + "cakephp/bake": "^3.0.0", + "cakephp/cakephp-codesniffer": "^5.1", + "cakephp/migrations": "^4.0.0", + "josegonzalez/dotenv": "^4.0.0", + "phpstan/phpstan": "^1.0", + "phpunit/phpunit": "^10.1", + "vimeo/psalm": "^5.0" + }, + "type": "cakephp-plugin", + "autoload": { + "psr-4": { + "CakephpFixtureFactories\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Masson", + "email": "nicolas@b-projects.tech" + }, + { + "name": "Juan Pablo Ramìrez", + "email": "pabloelcolombiano@gmail.com" + } + ], + "description": "CakePHP Dynamic Fixtures", + "keywords": [ + "cakephp", + "dynamic", + "fixtures", + "tests" + ], + "support": { + "issues": "https://github.com/vierge-noire/cakephp-fixture-factories/issues", + "source": "https://github.com/vierge-noire/cakephp-fixture-factories/tree/v3.0.2" + }, + "time": "2024-02-08T15:27:18+00:00" + }, + { + "name": "vierge-noire/cakephp-test-suite-light", + "version": "v3.0", + "source": { + "type": "git", + "url": "https://github.com/vierge-noire/cakephp-test-suite-light.git", + "reference": "079ee3c420bcda768906c879df8ed49d2cbef5b7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vierge-noire/cakephp-test-suite-light/zipball/079ee3c420bcda768906c879df8ed49d2cbef5b7", + "reference": "079ee3c420bcda768906c879df8ed49d2cbef5b7", + "shasum": "" + }, + "require": { + "cakephp/cakephp": "^5.0", + "ext-pdo": "*", + "php": ">=8.1" + }, + "require-dev": { + "cakephp/migrations": "4.x-dev", + "josegonzalez/dotenv": "^4.0.0", + "phpunit/phpunit": "^10.1" + }, + "type": "cakephp-plugin", + "autoload": { + "psr-4": { + "CakephpTestSuiteLight\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Masson", + "email": "nicolas@b-projects.tech" + }, + { + "name": "Juan Pablo Ramìrez", + "email": "pabloelcolombiano@gmail.com" + } + ], + "description": "A test suite for CakePHP application based on Sql queries", + "keywords": [ + "cakephp", + "test" + ], + "support": { + "issues": "https://github.com/vierge-noire/cakephp-test-suite-light/issues", + "source": "https://github.com/vierge-noire/cakephp-test-suite-light/tree/v3.0" + }, + "time": "2023-10-09T18:13:40+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=8.1", + "ext-gd": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-pdo": "*", + "ext-sqlite3": "*", + "ext-zip": "*" + }, + "platform-dev": { + "ext-xdebug": "*" + }, + "plugin-api-version": "2.3.0" +} From 0373aef2a982649143bc62f2be8939841ccef17e Mon Sep 17 00:00:00 2001 From: ryuring Date: Sat, 7 Sep 2024 18:00:17 +0900 Subject: [PATCH 62/94] =?UTF-8?q?BcComposerTest=E3=82=92=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php index eae8dd1d15..bc9208cf92 100644 --- a/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php +++ b/plugins/baser-core/tests/TestCase/Utility/BcComposerTest.php @@ -204,7 +204,7 @@ public function testUpdate() rename($backupLockPath, $orgLockPath); $folder = new BcFolder(ROOT . DS . 'vendor' . DS . 'baserproject'); $folder->delete(); - BcComposer::update(); + BcComposer::install(); } /** @@ -322,7 +322,7 @@ public function testDeleteReplace() // バックアップ作成 copy($orgPath, $backupPath); - + BcComposer::setup(); BcComposer::deleteReplace(); $file = new BcFile($orgPath); $data = $file->read(); From 975163c6df012f20785425c49b9e4ae99c17944a Mon Sep 17 00:00:00 2001 From: ryuring Date: Sat, 7 Sep 2024 18:26:58 +0900 Subject: [PATCH 63/94] =?UTF-8?q?=E3=82=B3=E3=83=B3=E3=83=86=E3=83=B3?= =?UTF-8?q?=E3=83=84=E4=B8=80=E8=A6=A7=E3=81=AB=E3=81=A6=E8=A4=87=E6=95=B0?= =?UTF-8?q?=E3=83=A6=E3=83=BC=E3=82=B6=E3=83=BC=E3=81=A7=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E3=82=92=E8=A1=8C=E3=81=86=E3=81=A8=E3=83=84=E3=83=AA=E3=83=BC?= =?UTF-8?q?=E6=A7=8B=E9=80=A0=E3=81=8C=E5=A3=8A=E3=82=8C=E3=81=A6=E3=81=97?= =?UTF-8?q?=E3=81=BE=E3=81=86=E5=95=8F=E9=A1=8C=E3=82=92=E6=94=B9=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baser-core/src/Controller/Api/Admin/ContentsController.php | 1 + plugins/baser-core/src/Model/Table/ContentsTable.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/baser-core/src/Controller/Api/Admin/ContentsController.php b/plugins/baser-core/src/Controller/Api/Admin/ContentsController.php index a25600d0c1..73e32bacbe 100644 --- a/plugins/baser-core/src/Controller/Api/Admin/ContentsController.php +++ b/plugins/baser-core/src/Controller/Api/Admin/ContentsController.php @@ -513,6 +513,7 @@ public function move(ContentsServiceInterface $service) } } else { $message = __d('baser_core', 'コンテンツ一覧を表示後、他のログインユーザーがコンテンツの並び順を更新しました。
一度リロードしてから並び替えてください。'); + $this->setResponse($this->response->withStatus(400)); } $this->set([ diff --git a/plugins/baser-core/src/Model/Table/ContentsTable.php b/plugins/baser-core/src/Model/Table/ContentsTable.php index 3dbf6a77d9..70e5a81db5 100644 --- a/plugins/baser-core/src/Model/Table/ContentsTable.php +++ b/plugins/baser-core/src/Model/Table/ContentsTable.php @@ -468,7 +468,7 @@ public function getUniqueName($name, $parentId, $contentId = null) public function beforeSave(EventInterface $event, EntityInterface $entity, ArrayObject $options) { if (!empty($entity->id)) { - $this->beforeSaveParentId = $entity->parent_id; + $this->beforeSaveParentId = $this->get($entity->id)->parent_id; } if (!empty($entity->name)) { $entity->name = $this->urlEncode(mb_substr(rawurldecode($entity->name), 0, 230, 'UTF-8')); From ab350707d5252d4c14b32494b2d53f87be0f23d8 Mon Sep 17 00:00:00 2001 From: ryuring Date: Sat, 7 Sep 2024 18:39:56 +0900 Subject: [PATCH 64/94] =?UTF-8?q?=E3=80=90=E3=83=A1=E3=83=BC=E3=83=AB?= =?UTF-8?q?=E3=80=91=E3=83=A1=E3=83=BC=E3=83=AB=E3=83=95=E3=82=A9=E3=83=BC?= =?UTF-8?q?=E3=83=A0=E3=81=AB=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=83=95?= =?UTF-8?q?=E3=82=A3=E3=83=BC=E3=83=AB=E3=83=89=E3=81=8C=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E3=81=99=E3=82=8B=E5=A0=B4=E5=90=88=E3=80=81=E5=85=A5=E5=8A=9B?= =?UTF-8?q?=E7=94=BB=E9=9D=A2=E3=81=8B=E3=82=89=E7=A2=BA=E8=AA=8D=E7=94=BB?= =?UTF-8?q?=E9=9D=A2=E3=81=AB=E9=80=B2=E3=82=81=E3=81=AA=E3=81=84=E5=95=8F?= =?UTF-8?q?=E9=A1=8C=E3=82=92=E6=94=B9=E5=96=84=20fix=20#3777?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/bc-mail/src/Service/Front/MailFrontService.php | 3 ++- plugins/bc-mail/src/Service/MailMessagesService.php | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/bc-mail/src/Service/Front/MailFrontService.php b/plugins/bc-mail/src/Service/Front/MailFrontService.php index 681bee26e3..d06f23dea6 100644 --- a/plugins/bc-mail/src/Service/Front/MailFrontService.php +++ b/plugins/bc-mail/src/Service/Front/MailFrontService.php @@ -37,6 +37,7 @@ use BaserCore\Annotation\UnitTest; use BaserCore\Annotation\NoTodo; use BaserCore\Annotation\Checked; +use Laminas\Diactoros\UploadedFile; /** * MailFrontService @@ -425,7 +426,7 @@ private function _checkDirectoryRraversal(int $mailContentId, array $postData) } foreach($mailFields as $mailField) { if ($mailField->type !== 'file') continue; - $tmp_name = Hash::get($postData, $mailField->field_name . '.tmp_name'); + $tmp_name = Hash::get($_FILES, $mailField->field_name . '.tmp_name'); if ($tmp_name && !is_uploaded_file($tmp_name)) { return false; } diff --git a/plugins/bc-mail/src/Service/MailMessagesService.php b/plugins/bc-mail/src/Service/MailMessagesService.php index 760a2cba08..5fb8a1b6fa 100644 --- a/plugins/bc-mail/src/Service/MailMessagesService.php +++ b/plugins/bc-mail/src/Service/MailMessagesService.php @@ -479,11 +479,11 @@ public function autoConvert(int $mailContentId, array $data): array $value = mb_convert_kana($value, 'AK'); } // サニタイズ - if (!is_array($value)) { + if (!is_array($value) && !is_object($value)) { $value = str_replace('