From fad8a342fe901cd0135f67a1854881073aa4e928 Mon Sep 17 00:00:00 2001 From: chevereto Date: Mon, 20 Oct 2025 15:54:04 +0000 Subject: [PATCH] Automatic push 4.3.7 --- .package/4.3.6.txt | 6 - .package/4.3.7.txt | 16 + app/composer.lock | 550 +- app/legacy/commands/metrics.php | 53 + app/legacy/entrypoints/cli.php | 1 + app/legacy/install/installer.php | 1 + app/legacy/load/app.php | 2 +- app/legacy/routes/account.php | 3 +- app/legacy/routes/json.php | 9 +- app/legacy/routes/search.php | 13 +- app/legacy/routes/settings.php | 3 +- app/legacy/routes/user-albums.php | 4 +- app/legacy/routes/user.php | 2 +- app/src/Legacy/Classes/Album.php | 22 +- app/src/Legacy/Classes/Image.php | 17 +- app/src/Legacy/Classes/Listing.php | 2 +- app/src/Legacy/Classes/Search.php | 121 +- app/src/Legacy/G/functions.php | 2 +- app/src/Legacy/functions.php | 48 +- .../themes/Peafowl/lib/chevereto-all.js | 13 +- .../themes/Peafowl/lib/chevereto-all.min.js | 2 +- .../legacy/themes/Peafowl/lib/js/chevereto.js | 13 +- .../themes/Peafowl/lib/js/re-chevereto.js | 7065 ----------------- .../Peafowl/snippets/form_storage_edit.php | 5 +- .../Peafowl/views/account/email-changed.php | 19 +- .../Peafowl/views/account/email-needed.php | 2 +- .../Peafowl/views/account/password-forgot.php | 2 +- .../Peafowl/views/account/password-reset.php | 2 +- .../views/account/resend-activation.php | 2 +- .../legacy/themes/Peafowl/views/dashboard.php | 2 +- content/legacy/themes/Peafowl/views/login.php | 2 +- .../themes/Peafowl/views/password-gate.php | 2 +- .../legacy/themes/Peafowl/views/settings.php | 2 +- .../legacy/themes/Peafowl/views/signup.php | 2 +- .../legacy/themes/Peafowl/views/upload.php | 2 +- 35 files changed, 627 insertions(+), 7385 deletions(-) delete mode 100644 .package/4.3.6.txt create mode 100644 .package/4.3.7.txt create mode 100644 app/legacy/commands/metrics.php delete mode 100644 content/legacy/themes/Peafowl/lib/js/re-chevereto.js diff --git a/.package/4.3.6.txt b/.package/4.3.6.txt deleted file mode 100644 index 255c821..0000000 --- a/.package/4.3.6.txt +++ /dev/null @@ -1,6 +0,0 @@ -Chevereto 4.3.6 (2025-06-28) - -- Fixed bug affecting upgrades from 4.1.* -- Resolved issue with release notes display -- Updated README for the free edition -- Corrected typos in custom_hooks sample files diff --git a/.package/4.3.7.txt b/.package/4.3.7.txt new file mode 100644 index 0000000..f17a201 --- /dev/null +++ b/.package/4.3.7.txt @@ -0,0 +1,16 @@ +Chevereto 4.3.7 (2025-10-20) + +- Added metrics command to CLI +- Fixed id encode bug +- Fixed "Confirmation required at %s" bug +- Fixed "email-changed" view bug +- Fixed uploader duplicate file handling +- Fixed Google Cloud storage bug +- Fixed Site storage form bug +- Fixed page editing bug with broken HTML +- Fixed album parent editing bug +- Fixed advanced search tab navigation bug +- Fixed YouTube profile links bug +- Fixed album cover image removal bug +- Fixed album cover image move bug +- Fixed advanced search "exact query phrase" bug diff --git a/app/composer.lock b/app/composer.lock index c4f6214..b50a2b3 100644 --- a/app/composer.lock +++ b/app/composer.lock @@ -8,16 +8,16 @@ "packages": [ { "name": "amphp/amp", - "version": "v2.6.4", + "version": "v2.6.5", "source": { "type": "git", "url": "https://github.com/amphp/amp.git", - "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d" + "reference": "d7dda98dae26e56f3f6fcfbf1c1f819c9a993207" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/amphp/amp/zipball/ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", - "reference": "ded3d9be08f526089eb7ee8d9f16a9768f9dec2d", + "url": "https://api.github.com/repos/amphp/amp/zipball/d7dda98dae26e56f3f6fcfbf1c1f819c9a993207", + "reference": "d7dda98dae26e56f3f6fcfbf1c1f819c9a993207", "shasum": "" }, "require": { @@ -33,11 +33,6 @@ "vimeo/psalm": "^3.12" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, "autoload": { "files": [ "lib/functions.php", @@ -85,7 +80,7 @@ "support": { "irc": "irc://irc.freenode.org/amphp", "issues": "https://github.com/amphp/amp/issues", - "source": "https://github.com/amphp/amp/tree/v2.6.4" + "source": "https://github.com/amphp/amp/tree/v2.6.5" }, "funding": [ { @@ -93,7 +88,7 @@ "type": "github" } ], - "time": "2024-03-21T18:52:26+00:00" + "time": "2025-09-03T19:41:28+00:00" }, { "name": "amphp/byte-stream", @@ -555,16 +550,16 @@ }, { "name": "chevere/action", - "version": "1.1.0", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/chevere/action.git", - "reference": "3a1972b791cb55f792432e8c83f3eea2c6d18e67" + "reference": "cd14e965c34e163657cd7ecd0a8cbfed4e63cb84" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/chevere/action/zipball/3a1972b791cb55f792432e8c83f3eea2c6d18e67", - "reference": "3a1972b791cb55f792432e8c83f3eea2c6d18e67", + "url": "https://api.github.com/repos/chevere/action/zipball/cd14e965c34e163657cd7ecd0a8cbfed4e63cb84", + "reference": "cd14e965c34e163657cd7ecd0a8cbfed4e63cb84", "shasum": "" }, "require": { @@ -602,9 +597,9 @@ "homepage": "https://chevere.org", "support": { "issues": "https://github.com/chevere/action/issues", - "source": "https://github.com/chevere/action/tree/1.1.0" + "source": "https://github.com/chevere/action/tree/1.1.2" }, - "time": "2025-02-14T12:25:41+00:00" + "time": "2025-08-29T18:40:56+00:00" }, { "name": "chevere/cache", @@ -709,21 +704,21 @@ }, { "name": "chevere/filesystem", - "version": "1.0.2", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/chevere/filesystem.git", - "reference": "9b3daed0e3e01bd49b8f436fdd04249a7c4a0868" + "reference": "ca8db7c9a567a847a0c78d0d661dba7949a97f97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/chevere/filesystem/zipball/9b3daed0e3e01bd49b8f436fdd04249a7c4a0868", - "reference": "9b3daed0e3e01bd49b8f436fdd04249a7c4a0868", + "url": "https://api.github.com/repos/chevere/filesystem/zipball/ca8db7c9a567a847a0c78d0d661dba7949a97f97", + "reference": "ca8db7c9a567a847a0c78d0d661dba7949a97f97", "shasum": "" }, "require": { "chevere/message": "^1.0.0", - "chevere/parameter": "^1.0.7", + "chevere/parameter": "^1.1|^1.2", "chevere/var-support": "^1.0.1", "php": "^8.1" }, @@ -756,9 +751,9 @@ "homepage": "https://chevere.org", "support": { "issues": "https://github.com/chevere/filesystem/issues", - "source": "https://github.com/chevere/filesystem/tree/1.0.2" + "source": "https://github.com/chevere/filesystem/tree/1.0.3" }, - "time": "2025-01-31T19:46:48+00:00" + "time": "2025-09-12T21:21:30+00:00" }, { "name": "chevere/http", @@ -871,16 +866,16 @@ }, { "name": "chevere/parameter", - "version": "1.1.2", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/chevere/parameter.git", - "reference": "acb25103a989cc3648655c0700b69c3bb7bd3365" + "reference": "f91e8baaa85918d8cc4e6f4174ea6594e86afdfd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/chevere/parameter/zipball/acb25103a989cc3648655c0700b69c3bb7bd3365", - "reference": "acb25103a989cc3648655c0700b69c3bb7bd3365", + "url": "https://api.github.com/repos/chevere/parameter/zipball/f91e8baaa85918d8cc4e6f4174ea6594e86afdfd", + "reference": "f91e8baaa85918d8cc4e6f4174ea6594e86afdfd", "shasum": "" }, "require": { @@ -924,9 +919,9 @@ "homepage": "https://chevere.org", "support": { "issues": "https://github.com/chevere/parameter/issues", - "source": "https://github.com/chevere/parameter/tree/1.1.2" + "source": "https://github.com/chevere/parameter/tree/1.2.0" }, - "time": "2025-06-19T22:39:05+00:00" + "time": "2025-09-12T19:25:02+00:00" }, { "name": "chevere/regex", @@ -1192,22 +1187,22 @@ }, { "name": "chevere/throwable-handler", - "version": "1.0.6", + "version": "1.0.7", "source": { "type": "git", "url": "https://github.com/chevere/throwable-handler.git", - "reference": "4840ae4a11ca38e4d73f653cd08ebd9ab68705f3" + "reference": "352e59ac8998d0249a4dc6665ab6cbd465bce6bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/chevere/throwable-handler/zipball/4840ae4a11ca38e4d73f653cd08ebd9ab68705f3", - "reference": "4840ae4a11ca38e4d73f653cd08ebd9ab68705f3", + "url": "https://api.github.com/repos/chevere/throwable-handler/zipball/352e59ac8998d0249a4dc6665ab6cbd465bce6bd", + "reference": "352e59ac8998d0249a4dc6665ab6cbd465bce6bd", "shasum": "" }, "require": { "chevere/message": "^1.0.0", - "chevere/trace": "^2.0.1", - "chevere/var-dump": "^2.0.3", + "chevere/trace": "^2.0.2", + "chevere/var-dump": "^2.0.6", "php": "^8.1" }, "require-dev": { @@ -1239,26 +1234,26 @@ "homepage": "https://chevere.org", "support": { "issues": "https://github.com/chevere/throwable-handler/issues", - "source": "https://github.com/chevere/throwable-handler/tree/1.0.6" + "source": "https://github.com/chevere/throwable-handler/tree/1.0.7" }, - "time": "2025-04-07T13:05:58+00:00" + "time": "2025-09-12T21:25:18+00:00" }, { "name": "chevere/trace", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/chevere/trace.git", - "reference": "56e8ec7bfbb242ca5f986f5c72bffc14c7ec20ec" + "reference": "ad042cd0321adf052540b095532824ee57793425" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/chevere/trace/zipball/56e8ec7bfbb242ca5f986f5c72bffc14c7ec20ec", - "reference": "56e8ec7bfbb242ca5f986f5c72bffc14c7ec20ec", + "url": "https://api.github.com/repos/chevere/trace/zipball/ad042cd0321adf052540b095532824ee57793425", + "reference": "ad042cd0321adf052540b095532824ee57793425", "shasum": "" }, "require": { - "chevere/var-dump": "^2.0.0", + "chevere/var-dump": "^2.0.6", "php": "^8.1" }, "require-dev": { @@ -1287,9 +1282,9 @@ "homepage": "https://chevere.org", "support": { "issues": "https://github.com/chevere/trace/issues", - "source": "https://github.com/chevere/trace/tree/2.0.1" + "source": "https://github.com/chevere/trace/tree/2.0.2" }, - "time": "2024-11-21T13:31:14+00:00" + "time": "2025-09-12T20:28:04+00:00" }, { "name": "chevere/var-dump", @@ -1297,18 +1292,18 @@ "source": { "type": "git", "url": "https://github.com/chevere/var-dump.git", - "reference": "dcd658418f92cf1e36cf942171371711cbe917c3" + "reference": "93f98bfdb8ac47c0c6afee474e9caba937a27306" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/chevere/var-dump/zipball/dcd658418f92cf1e36cf942171371711cbe917c3", - "reference": "dcd658418f92cf1e36cf942171371711cbe917c3", + "url": "https://api.github.com/repos/chevere/var-dump/zipball/93f98bfdb8ac47c0c6afee474e9caba937a27306", + "reference": "93f98bfdb8ac47c0c6afee474e9caba937a27306", "shasum": "" }, "require": { "chevere/message": "^1.0.0", - "chevere/parameter": "^1.1.0", - "chevere/writer": "^1.0.1", + "chevere/parameter": "^1.0|^1.1|^1.2", + "chevere/writer": "^1.0.3", "kevinlebrun/colors.php": "^1.0", "php": "^8.1" }, @@ -1347,9 +1342,9 @@ ], "support": { "issues": "https://github.com/chevere/var-dump/issues", - "source": "https://github.com/chevere/var-dump/tree/2.0.4" + "source": "https://github.com/chevere/var-dump/tree/2.0.6" }, - "time": "2025-02-14T12:22:11+00:00" + "time": "2025-09-12T19:41:38+00:00" }, { "name": "chevere/var-support", @@ -1657,16 +1652,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.5.7", + "version": "1.5.8", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "d665d22c417056996c59019579f1967dfe5c1e82" + "reference": "719026bb30813accb68271fee7e39552a58e9f65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/d665d22c417056996c59019579f1967dfe5c1e82", - "reference": "d665d22c417056996c59019579f1967dfe5c1e82", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/719026bb30813accb68271fee7e39552a58e9f65", + "reference": "719026bb30813accb68271fee7e39552a58e9f65", "shasum": "" }, "require": { @@ -1713,7 +1708,7 @@ "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.7" + "source": "https://github.com/composer/ca-bundle/tree/1.5.8" }, "funding": [ { @@ -1723,13 +1718,9 @@ { "url": "https://github.com/composer", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" } ], - "time": "2025-05-26T15:08:54+00:00" + "time": "2025-08-20T18:49:47+00:00" }, { "name": "evenement/evenement", @@ -1954,16 +1945,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.7.1", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16" + "reference": "21dc724a0583619cd1652f673303492272778051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16", - "reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", + "reference": "21dc724a0583619cd1652f673303492272778051", "shasum": "" }, "require": { @@ -1979,7 +1970,7 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "http-interop/http-factory-tests": "0.9.0", - "phpunit/phpunit": "^8.5.39 || ^9.6.20" + "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -2050,7 +2041,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.7.1" + "source": "https://github.com/guzzle/psr7/tree/2.8.0" }, "funding": [ { @@ -2066,7 +2057,7 @@ "type": "tidelift" } ], - "time": "2025-03-27T12:30:47+00:00" + "time": "2025-08-23T21:21:41+00:00" }, { "name": "intervention/image", @@ -2498,16 +2489,16 @@ }, { "name": "mlocati/ip-lib", - "version": "1.20.0", + "version": "1.22.0", "source": { "type": "git", "url": "https://github.com/mlocati/ip-lib.git", - "reference": "fd45fc3bf08ed6c7e665e2e70562082ac954afd4" + "reference": "4e40ffd3bf9989db19403d89c4d8be44b87b8a91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mlocati/ip-lib/zipball/fd45fc3bf08ed6c7e665e2e70562082ac954afd4", - "reference": "fd45fc3bf08ed6c7e665e2e70562082ac954afd4", + "url": "https://api.github.com/repos/mlocati/ip-lib/zipball/4e40ffd3bf9989db19403d89c4d8be44b87b8a91", + "reference": "4e40ffd3bf9989db19403d89c4d8be44b87b8a91", "shasum": "" }, "require": { @@ -2553,7 +2544,7 @@ ], "support": { "issues": "https://github.com/mlocati/ip-lib/issues", - "source": "https://github.com/mlocati/ip-lib/tree/1.20.0" + "source": "https://github.com/mlocati/ip-lib/tree/1.22.0" }, "funding": [ { @@ -2565,7 +2556,7 @@ "type": "other" } ], - "time": "2025-02-04T17:30:58+00:00" + "time": "2025-10-15T12:35:09+00:00" }, { "name": "mobiledetect/mobiledetectlib", @@ -2862,24 +2853,26 @@ }, { "name": "paragonie/constant_time_encoding", - "version": "v3.0.0", + "version": "v3.1.3", "source": { "type": "git", "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "df1e7fde177501eee2037dd159cf04f5f301a512" + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/df1e7fde177501eee2037dd159cf04f5f301a512", - "reference": "df1e7fde177501eee2037dd159cf04f5f301a512", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", + "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77", "shasum": "" }, "require": { "php": "^8" }, "require-dev": { - "phpunit/phpunit": "^9", - "vimeo/psalm": "^4|^5" + "infection/infection": "^0", + "nikic/php-fuzzer": "^0", + "phpunit/phpunit": "^9|^10|^11", + "vimeo/psalm": "^4|^5|^6" }, "type": "library", "autoload": { @@ -2925,7 +2918,7 @@ "issues": "https://github.com/paragonie/constant_time_encoding/issues", "source": "https://github.com/paragonie/constant_time_encoding" }, - "time": "2024-05-08T12:36:18+00:00" + "time": "2025-09-24T15:06:41+00:00" }, { "name": "paragonie/random_compat", @@ -3068,16 +3061,16 @@ }, { "name": "phpmailer/phpmailer", - "version": "v6.10.0", + "version": "v6.12.0", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "bf74d75a1fde6beaa34a0ddae2ec5fce0f72a144" + "reference": "d1ac35d784bf9f5e61b424901d5a014967f15b12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/bf74d75a1fde6beaa34a0ddae2ec5fce0f72a144", - "reference": "bf74d75a1fde6beaa34a0ddae2ec5fce0f72a144", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/d1ac35d784bf9f5e61b424901d5a014967f15b12", + "reference": "d1ac35d784bf9f5e61b424901d5a014967f15b12", "shasum": "" }, "require": { @@ -3137,7 +3130,7 @@ "description": "PHPMailer is a full-featured email creation and transfer class for PHP", "support": { "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.10.0" + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.12.0" }, "funding": [ { @@ -3145,7 +3138,7 @@ "type": "github" } ], - "time": "2025-04-24T15:19:31+00:00" + "time": "2025-10-15T16:49:08+00:00" }, { "name": "phpseclib/bcmath_compat", @@ -3211,16 +3204,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "3.0.45", + "version": "3.0.47", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "bd81b90d5963c6b9d87de50357585375223f4dd8" + "reference": "9d6ca36a6c2dd434765b1071b2644a1c683b385d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/bd81b90d5963c6b9d87de50357585375223f4dd8", - "reference": "bd81b90d5963c6b9d87de50357585375223f4dd8", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/9d6ca36a6c2dd434765b1071b2644a1c683b385d", + "reference": "9d6ca36a6c2dd434765b1071b2644a1c683b385d", "shasum": "" }, "require": { @@ -3301,7 +3294,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.45" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.47" }, "funding": [ { @@ -3317,7 +3310,7 @@ "type": "tidelift" } ], - "time": "2025-06-22T22:54:43+00:00" + "time": "2025-10-06T01:07:24+00:00" }, { "name": "pragmarx/google2fa", @@ -3373,21 +3366,21 @@ }, { "name": "pragmarx/google2fa-qrcode", - "version": "v3.0.0", + "version": "v3.0.1", "source": { "type": "git", "url": "https://github.com/antonioribeiro/google2fa-qrcode.git", - "reference": "ce4d8a729b6c93741c607cfb2217acfffb5bf76b" + "reference": "c23ebcc3a50de0d1566016a6dd1486e183bb78e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/antonioribeiro/google2fa-qrcode/zipball/ce4d8a729b6c93741c607cfb2217acfffb5bf76b", - "reference": "ce4d8a729b6c93741c607cfb2217acfffb5bf76b", + "url": "https://api.github.com/repos/antonioribeiro/google2fa-qrcode/zipball/c23ebcc3a50de0d1566016a6dd1486e183bb78e1", + "reference": "c23ebcc3a50de0d1566016a6dd1486e183bb78e1", "shasum": "" }, "require": { "php": ">=7.1", - "pragmarx/google2fa": ">=4.0" + "pragmarx/google2fa": "^4.0|^5.0|^6.0|^7.0|^8.0" }, "require-dev": { "bacon/bacon-qr-code": "^2.0", @@ -3434,9 +3427,9 @@ ], "support": { "issues": "https://github.com/antonioribeiro/google2fa-qrcode/issues", - "source": "https://github.com/antonioribeiro/google2fa-qrcode/tree/v3.0.0" + "source": "https://github.com/antonioribeiro/google2fa-qrcode/tree/v3.0.1" }, - "time": "2021-08-15T12:53:48+00:00" + "time": "2025-09-19T23:02:26+00:00" }, { "name": "psr/cache", @@ -4064,20 +4057,20 @@ }, { "name": "ramsey/uuid", - "version": "4.9.0", + "version": "4.9.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0" + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/4e0e23cc785f0724a0e838279a9eb03f28b092a0", - "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -4136,9 +4129,9 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.9.0" + "source": "https://github.com/ramsey/uuid/tree/4.9.1" }, - "time": "2025-06-25T14:20:11+00:00" + "time": "2025-09-04T20:59:21+00:00" }, { "name": "react/cache", @@ -4453,23 +4446,23 @@ }, { "name": "react/promise", - "version": "v3.2.0", + "version": "v3.3.0", "source": { "type": "git", "url": "https://github.com/reactphp/promise.git", - "reference": "8a164643313c71354582dc850b42b33fa12a4b63" + "reference": "23444f53a813a3296c1368bb104793ce8d88f04a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63", - "reference": "8a164643313c71354582dc850b42b33fa12a4b63", + "url": "https://api.github.com/repos/reactphp/promise/zipball/23444f53a813a3296c1368bb104793ce8d88f04a", + "reference": "23444f53a813a3296c1368bb104793ce8d88f04a", "shasum": "" }, "require": { "php": ">=7.1.0" }, "require-dev": { - "phpstan/phpstan": "1.10.39 || 1.4.10", + "phpstan/phpstan": "1.12.28 || 1.4.10", "phpunit/phpunit": "^9.6 || ^7.5" }, "type": "library", @@ -4514,7 +4507,7 @@ ], "support": { "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v3.2.0" + "source": "https://github.com/reactphp/promise/tree/v3.3.0" }, "funding": [ { @@ -4522,7 +4515,7 @@ "type": "open_collective" } ], - "time": "2024-05-24T10:39:05+00:00" + "time": "2025-08-19T18:57:03+00:00" }, { "name": "react/socket", @@ -5093,16 +5086,16 @@ }, { "name": "symfony/console", - "version": "v6.4.23", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "9056771b8eca08d026cd3280deeec3cfd99c4d93" + "reference": "492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/9056771b8eca08d026cd3280deeec3cfd99c4d93", - "reference": "9056771b8eca08d026cd3280deeec3cfd99c4d93", + "url": "https://api.github.com/repos/symfony/console/zipball/492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f", + "reference": "492de6dfd93910d7d7a729c5a04ddcd2b9e99c4f", "shasum": "" }, "require": { @@ -5167,7 +5160,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.23" + "source": "https://github.com/symfony/console/tree/v6.4.26" }, "funding": [ { @@ -5178,12 +5171,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-06-27T19:37:22+00:00" + "time": "2025-09-26T12:13:46+00:00" }, { "name": "symfony/deprecation-contracts", @@ -5254,7 +5251,7 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -5313,7 +5310,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" }, "funding": [ { @@ -5324,6 +5321,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5333,16 +5334,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", - "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", + "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", "shasum": "" }, "require": { @@ -5391,7 +5392,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" }, "funding": [ { @@ -5402,16 +5403,20 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-06-27T09:58:17+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -5472,7 +5477,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" }, "funding": [ { @@ -5483,6 +5488,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5492,7 +5501,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -5553,7 +5562,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" }, "funding": [ { @@ -5564,6 +5573,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5573,7 +5586,7 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -5629,7 +5642,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.33.0" }, "funding": [ { @@ -5640,6 +5653,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5649,7 +5666,7 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.32.0", + "version": "v1.33.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", @@ -5709,7 +5726,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.33.0" }, "funding": [ { @@ -5720,6 +5737,10 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" @@ -5729,16 +5750,16 @@ }, { "name": "symfony/process", - "version": "v6.4.20", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "e2a61c16af36c9a07e5c9906498b73e091949a20" + "reference": "48bad913268c8cafabbf7034b39c8bb24fbc5ab8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/e2a61c16af36c9a07e5c9906498b73e091949a20", - "reference": "e2a61c16af36c9a07e5c9906498b73e091949a20", + "url": "https://api.github.com/repos/symfony/process/zipball/48bad913268c8cafabbf7034b39c8bb24fbc5ab8", + "reference": "48bad913268c8cafabbf7034b39c8bb24fbc5ab8", "shasum": "" }, "require": { @@ -5770,7 +5791,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.20" + "source": "https://github.com/symfony/process/tree/v6.4.26" }, "funding": [ { @@ -5781,12 +5802,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-03-10T17:11:00+00:00" + "time": "2025-09-11T09:57:09+00:00" }, { "name": "symfony/service-contracts", @@ -5873,16 +5898,16 @@ }, { "name": "symfony/string", - "version": "v6.4.21", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "73e2c6966a5aef1d4892873ed5322245295370c6" + "reference": "5621f039a71a11c87c106c1c598bdcd04a19aeea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/73e2c6966a5aef1d4892873ed5322245295370c6", - "reference": "73e2c6966a5aef1d4892873ed5322245295370c6", + "url": "https://api.github.com/repos/symfony/string/zipball/5621f039a71a11c87c106c1c598bdcd04a19aeea", + "reference": "5621f039a71a11c87c106c1c598bdcd04a19aeea", "shasum": "" }, "require": { @@ -5896,7 +5921,6 @@ "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", @@ -5939,7 +5963,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.21" + "source": "https://github.com/symfony/string/tree/v6.4.26" }, "funding": [ { @@ -5950,25 +5974,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-18T15:23:29+00:00" + "time": "2025-09-11T14:32:46+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.23", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "d55b1834cdbfcc31bc2cd7e095ba5ed9a88f6600" + "reference": "cfae1497a2f1eaad78dbc0590311c599c7178d4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d55b1834cdbfcc31bc2cd7e095ba5ed9a88f6600", - "reference": "d55b1834cdbfcc31bc2cd7e095ba5ed9a88f6600", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cfae1497a2f1eaad78dbc0590311c599c7178d4a", + "reference": "cfae1497a2f1eaad78dbc0590311c599c7178d4a", "shasum": "" }, "require": { @@ -5980,7 +6008,6 @@ "symfony/console": "<5.4" }, "require-dev": { - "ext-iconv": "*", "symfony/console": "^5.4|^6.0|^7.0", "symfony/error-handler": "^6.3|^7.0", "symfony/http-kernel": "^5.4|^6.0|^7.0", @@ -6024,7 +6051,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.23" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.26" }, "funding": [ { @@ -6035,25 +6062,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-06-27T15:05:27+00:00" + "time": "2025-09-25T15:37:27+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.22", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "f28cf841f5654955c9f88ceaf4b9dc29571988a9" + "reference": "466fcac5fa2e871f83d31173f80e9c2684743bfc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f28cf841f5654955c9f88ceaf4b9dc29571988a9", - "reference": "f28cf841f5654955c9f88ceaf4b9dc29571988a9", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/466fcac5fa2e871f83d31173f80e9c2684743bfc", + "reference": "466fcac5fa2e871f83d31173f80e9c2684743bfc", "shasum": "" }, "require": { @@ -6101,7 +6132,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.22" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.26" }, "funding": [ { @@ -6112,25 +6143,29 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-05-14T13:00:13+00:00" + "time": "2025-09-11T09:57:09+00:00" }, { "name": "symfony/yaml", - "version": "v6.4.23", + "version": "v6.4.26", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "93e29e0deb5f1b2e360adfb389a20d25eb81a27b" + "reference": "0fc8b966fd0dcaab544ae59bfc3a433f048c17b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/93e29e0deb5f1b2e360adfb389a20d25eb81a27b", - "reference": "93e29e0deb5f1b2e360adfb389a20d25eb81a27b", + "url": "https://api.github.com/repos/symfony/yaml/zipball/0fc8b966fd0dcaab544ae59bfc3a433f048c17b0", + "reference": "0fc8b966fd0dcaab544ae59bfc3a433f048c17b0", "shasum": "" }, "require": { @@ -6173,7 +6208,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.23" + "source": "https://github.com/symfony/yaml/tree/v6.4.26" }, "funding": [ { @@ -6184,12 +6219,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-06-03T06:46:12+00:00" + "time": "2025-09-26T15:07:38+00:00" }, { "name": "thecodingmachine/safe", @@ -6332,25 +6371,25 @@ }, { "name": "xrdebug/php", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/xrdebug/php.git", - "reference": "83827b79ac9e3ff8a46702c54969d9012e47f472" + "reference": "9df68ba66668b0072abb91859d27407d6772f0fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/xrdebug/php/zipball/83827b79ac9e3ff8a46702c54969d9012e47f472", - "reference": "83827b79ac9e3ff8a46702c54969d9012e47f472", + "url": "https://api.github.com/repos/xrdebug/php/zipball/9df68ba66668b0072abb91859d27407d6772f0fd", + "reference": "9df68ba66668b0072abb91859d27407d6772f0fd", "shasum": "" }, "require": { - "chevere/filesystem": "^1.0.0", + "chevere/filesystem": "^1.0.3", "chevere/message": "^1.0.0", "chevere/standard": "^1.0.1", - "chevere/throwable-handler": "^1.0.2", - "chevere/trace": "^2.0.0", - "chevere/var-dump": "^2.0.1", + "chevere/throwable-handler": "^1.0.7", + "chevere/trace": "^2.0.2", + "chevere/var-dump": "^2.0.6", "ext-curl": "*", "ext-json": "*", "php": "^8.1", @@ -6393,9 +6432,9 @@ ], "support": { "issues": "https://github.com/xrdebug/php/issues", - "source": "https://github.com/xrdebug/php/tree/3.0.0" + "source": "https://github.com/xrdebug/php/tree/3.0.1" }, - "time": "2024-12-25T17:49:34+00:00" + "time": "2025-09-12T21:27:45+00:00" }, { "name": "xrdebug/xrdebug", @@ -6539,16 +6578,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.13.1", + "version": "1.13.4", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c" + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/1720ddd719e16cf0db4eb1c6eca108031636d46c", - "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a", + "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a", "shasum": "" }, "require": { @@ -6587,7 +6626,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4" }, "funding": [ { @@ -6595,7 +6634,7 @@ "type": "tidelift" } ], - "time": "2025-04-29T12:36:36+00:00" + "time": "2025-08-01T08:46:24+00:00" }, { "name": "phar-io/manifest", @@ -6717,16 +6756,11 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.27", - "source": { - "type": "git", - "url": "https://github.com/phpstan/phpstan.git", - "reference": "3a6e423c076ab39dfedc307e2ac627ef579db162" - }, + "version": "1.12.32", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/3a6e423c076ab39dfedc307e2ac627ef579db162", - "reference": "3a6e423c076ab39dfedc307e2ac627ef579db162", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/2770dcdf5078d0b0d53f94317e06affe88419aa8", + "reference": "2770dcdf5078d0b0d53f94317e06affe88419aa8", "shasum": "" }, "require": { @@ -6771,7 +6805,7 @@ "type": "github" } ], - "time": "2025-05-21T20:51:45+00:00" + "time": "2025-09-30T10:16:31+00:00" }, { "name": "phpunit/php-code-coverage", @@ -7094,16 +7128,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.6.23", + "version": "9.6.29", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "43d2cb18d0675c38bd44982a5d1d88f6d53d8d95" + "reference": "9ecfec57835a5581bc888ea7e13b51eb55ab9dd3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/43d2cb18d0675c38bd44982a5d1d88f6d53d8d95", - "reference": "43d2cb18d0675c38bd44982a5d1d88f6d53d8d95", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9ecfec57835a5581bc888ea7e13b51eb55ab9dd3", + "reference": "9ecfec57835a5581bc888ea7e13b51eb55ab9dd3", "shasum": "" }, "require": { @@ -7114,7 +7148,7 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.13.1", + "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=7.3", @@ -7125,11 +7159,11 @@ "phpunit/php-timer": "^5.0.3", "sebastian/cli-parser": "^1.0.2", "sebastian/code-unit": "^1.0.8", - "sebastian/comparator": "^4.0.8", + "sebastian/comparator": "^4.0.9", "sebastian/diff": "^4.0.6", "sebastian/environment": "^5.1.5", - "sebastian/exporter": "^4.0.6", - "sebastian/global-state": "^5.0.7", + "sebastian/exporter": "^4.0.8", + "sebastian/global-state": "^5.0.8", "sebastian/object-enumerator": "^4.0.4", "sebastian/resource-operations": "^3.0.4", "sebastian/type": "^3.2.1", @@ -7177,7 +7211,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.23" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.29" }, "funding": [ { @@ -7201,7 +7235,7 @@ "type": "tidelift" } ], - "time": "2025-05-02T06:40:34+00:00" + "time": "2025-09-24T06:29:11+00:00" }, { "name": "sebastian/cli-parser", @@ -7372,16 +7406,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.8", + "version": "4.0.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + "reference": "67a2df3a62639eab2cc5906065e9805d4fd5dfc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/67a2df3a62639eab2cc5906065e9805d4fd5dfc5", + "reference": "67a2df3a62639eab2cc5906065e9805d4fd5dfc5", "shasum": "" }, "require": { @@ -7434,15 +7468,27 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.9" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator", + "type": "tidelift" } ], - "time": "2022-09-14T12:41:17+00:00" + "time": "2025-08-10T06:51:50+00:00" }, { "name": "sebastian/complexity", @@ -7632,16 +7678,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.6", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/14c6ba52f95a36c3d27c835d65efc7123c446e8c", + "reference": "14c6ba52f95a36c3d27c835d65efc7123c446e8c", "shasum": "" }, "require": { @@ -7697,28 +7743,40 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.8" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" } ], - "time": "2024-03-02T06:33:00+00:00" + "time": "2025-09-24T06:03:27+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.7", + "version": "5.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b6781316bdcd28260904e7cc18ec983d0d2ef4f6", + "reference": "b6781316bdcd28260904e7cc18ec983d0d2ef4f6", "shasum": "" }, "require": { @@ -7761,15 +7819,27 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.8" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" } ], - "time": "2024-03-02T06:35:11+00:00" + "time": "2025-08-10T07:10:35+00:00" }, { "name": "sebastian/lines-of-code", @@ -7942,16 +8012,16 @@ }, { "name": "sebastian/recursion-context", - "version": "4.0.5", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + "reference": "539c6691e0623af6dc6f9c20384c120f963465a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/539c6691e0623af6dc6f9c20384c120f963465a0", + "reference": "539c6691e0623af6dc6f9c20384c120f963465a0", "shasum": "" }, "require": { @@ -7993,15 +8063,27 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.6" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context", + "type": "tidelift" } ], - "time": "2023-02-03T06:07:39+00:00" + "time": "2025-08-10T06:57:39+00:00" }, { "name": "sebastian/resource-operations", @@ -8168,16 +8250,16 @@ }, { "name": "symplify/easy-coding-standard", - "version": "12.5.20", + "version": "12.6.0", "source": { "type": "git", "url": "https://github.com/easy-coding-standard/easy-coding-standard.git", - "reference": "bb44b0fc70dd2148d8a6362bc66a35e23dc31bc4" + "reference": "781e6124dc7e14768ae999a8f5309566bbe62004" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/easy-coding-standard/easy-coding-standard/zipball/bb44b0fc70dd2148d8a6362bc66a35e23dc31bc4", - "reference": "bb44b0fc70dd2148d8a6362bc66a35e23dc31bc4", + "url": "https://api.github.com/repos/easy-coding-standard/easy-coding-standard/zipball/781e6124dc7e14768ae999a8f5309566bbe62004", + "reference": "781e6124dc7e14768ae999a8f5309566bbe62004", "shasum": "" }, "require": { @@ -8213,7 +8295,7 @@ ], "support": { "issues": "https://github.com/easy-coding-standard/easy-coding-standard/issues", - "source": "https://github.com/easy-coding-standard/easy-coding-standard/tree/12.5.20" + "source": "https://github.com/easy-coding-standard/easy-coding-standard/tree/12.6.0" }, "funding": [ { @@ -8225,7 +8307,7 @@ "type": "github" } ], - "time": "2025-05-30T11:42:07+00:00" + "time": "2025-09-10T14:21:58+00:00" }, { "name": "theseer/tokenizer", diff --git a/app/legacy/commands/metrics.php b/app/legacy/commands/metrics.php new file mode 100644 index 0000000..f6ce0c6 --- /dev/null +++ b/app/legacy/commands/metrics.php @@ -0,0 +1,53 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +use Chevereto\Legacy\Classes\DB; +use Chevereto\Legacy\Classes\Stat; +use function Chevereto\Legacy\getCounts; + +$opts = getopt('C:f:') ?: []; +$format = $opts['f'] ?? ''; +$totals = Stat::getTotals(); +$table = DB::getTable('users'); +$fetch = DB::queryFetch( + << $totals['users'], + 'admins' => $fetch['admins'], + 'managers' => $fetch['managers'], + 'pages' => $counts['pages'], + 'storages' => $counts['storages'], + 'files' => $totals['images'], + 'albums' => $totals['albums'], + 'tags' => $totals['tags'], + 'categories' => $counts['categories'], + 'storage_used' => $totals['disk_used'], + 'cron_time' => $totals['cron_time'], + 'file_views' => $totals['image_views'], + 'file_likes' => $totals['image_likes'], + 'album_views' => $totals['album_views'], + 'album_likes' => $totals['album_likes'], +]; +if ($format === 'json') { + echo json_encode($metrics, JSON_PRETTY_PRINT) . PHP_EOL; +} else { + foreach ($metrics as $key => $value) { + echo "{$key}: {$value}\n"; + } +} +exit(0); diff --git a/app/legacy/entrypoints/cli.php b/app/legacy/entrypoints/cli.php index e3844e3..039cb7b 100644 --- a/app/legacy/entrypoints/cli.php +++ b/app/legacy/entrypoints/cli.php @@ -41,6 +41,7 @@ $options = [ 'setting-update', 'update', 'version', + 'metrics', ]; if (! in_array($access, $options, true)) { echo 'Invalid command' . PHP_EOL; diff --git a/app/legacy/install/installer.php b/app/legacy/install/installer.php index 9ae6277..71d68b7 100644 --- a/app/legacy/install/installer.php +++ b/app/legacy/install/installer.php @@ -654,6 +654,7 @@ $settings_updates = [ '4.3.4' => null, '4.3.5' => null, '4.3.6' => null, + '4.3.7' => null, ]; /** diff --git a/app/legacy/load/app.php b/app/legacy/load/app.php index ef97634..46ad671 100644 --- a/app/legacy/load/app.php +++ b/app/legacy/load/app.php @@ -9,5 +9,5 @@ * file that was distributed with this source code. */ -const APP_VERSION = '4.3.6'; +const APP_VERSION = '4.3.7'; const APP_VERSION_AKA = 'entrador'; diff --git a/app/legacy/routes/account.php b/app/legacy/routes/account.php index c47cf30..575b036 100644 --- a/app/legacy/routes/account.php +++ b/app/legacy/routes/account.php @@ -29,7 +29,6 @@ use function Chevereto\Legacy\G\redirect; use function Chevereto\Legacy\generate_hashed_token; use function Chevereto\Legacy\get_email_body_str; use function Chevereto\Legacy\getSetting; -use function Chevereto\Legacy\getSettings; use function Chevereto\Legacy\hashed_token_info; use function Chevereto\Legacy\must_use_captcha; use function Chevereto\Legacy\send_mail; @@ -504,7 +503,7 @@ return function (Handler $handler) { 'user' => $logged_user, 'link' => $activation_link, ]; - $mail['subject'] = _s('Confirmation required at %s', getSettings('website_name')); + $mail['subject'] = _s('Confirmation required at %s', getSetting('website_name')); $mail['message'] = get_email_body_str('mails/account-confirm'); if (send_mail($POST['email'], $mail['subject'], $mail['message'])) { $is_process_done = true; diff --git a/app/legacy/routes/json.php b/app/legacy/routes/json.php index c7100e3..3fdf5d0 100644 --- a/app/legacy/routes/json.php +++ b/app/legacy/routes/json.php @@ -671,11 +671,14 @@ return function (Handler $handler) { ) { $editing[$type === 'album' ? 'privacy' : 'album_privacy'] = getSetting('website_content_privacy_mode'); } - if (count($editing) === 0) { - throw new Exception('Invalid edit request', 403); - } if (isset($editing['album_id']) && $editing['album_id'] !== '') { $editing['album_id'] = decodeID($editing['album_id']); + if ($editing['album_id'] === 0) { + unset($editing['album_id']); + } + } + if (count($editing) === 0) { + throw new Exception('Invalid edit request', 403); } switch ($type) { case 'image': diff --git a/app/legacy/routes/search.php b/app/legacy/routes/search.php index 3a285b9..488df34 100644 --- a/app/legacy/routes/search.php +++ b/app/legacy/routes/search.php @@ -90,10 +90,17 @@ return function (Handler $handler) { $tabs = Listing::getTabs([ 'listing' => 'search', 'basename' => 'search', - 'params' => [ - 'q' => $safe_html_search['q'], + 'params' => array_filter([ + 'q' => request()['q'] ?? null, + 'as_q' => request()['as_q'] ?? null, + 'as_epq' => request()['as_epq'] ?? null, + 'as_oq' => request()['as_oq'] ?? null, + 'as_eq' => request()['as_eq'] ?? null, + 'as_cat' => request()['as_cat'] ?? null, + 'as_stor' => request()['as_stor'] ?? null, + 'as_ip' => request()['as_ip'] ?? null, 'page' => '1', - ], + ]), 'params_remove_keys' => ['sort'], ], $getParams); foreach ($tabs as &$v) { diff --git a/app/legacy/routes/settings.php b/app/legacy/routes/settings.php index 054886d..c118d24 100644 --- a/app/legacy/routes/settings.php +++ b/app/legacy/routes/settings.php @@ -35,7 +35,6 @@ use function Chevereto\Legacy\generate_hashed_token; use function Chevereto\Legacy\get_available_languages; use function Chevereto\Legacy\getIpButtonsArray; use function Chevereto\Legacy\getSetting; -use function Chevereto\Legacy\getSettings; use function Chevereto\Legacy\send_mail; use function Chevereto\Vars\env; use function Chevereto\Vars\post; @@ -347,7 +346,7 @@ return function (Handler $handler) { require_once PATH_PUBLIC_LEGACY_THEME . 'mails/account-change-email.php'; $mail_body = ob_get_contents(); ob_end_clean(); - $mail['subject'] = _s('Confirmation required at %s', getSettings('website_name')); + $mail['subject'] = _s('Confirmation required at %s', getSetting('website_name')); $mail['message'] = $mail_body; send_mail($POST['email'], $mail['subject'], $mail['message']); unset($POST['email']); diff --git a/app/legacy/routes/user-albums.php b/app/legacy/routes/user-albums.php index 54f1ec9..60cc5f1 100644 --- a/app/legacy/routes/user-albums.php +++ b/app/legacy/routes/user-albums.php @@ -13,7 +13,7 @@ use Chevereto\Legacy\Classes\DB; use Chevereto\Legacy\Classes\Login; use Chevereto\Legacy\Classes\User; use Chevereto\Legacy\G\Handler; -use function Chevereto\Legacy\getSettings; +use function Chevereto\Legacy\getSetting; use function Chevereto\Legacy\json_output; use function Chevereto\Vars\env; use function Chevereto\Vars\get; @@ -74,7 +74,7 @@ return function (Handler $handler) { return; } if (! (bool) env()['CHEVERETO_ENABLE_USERS'] - && $user['id'] !== getSettings('website_mode_personal_uid') + && $user['id'] !== getSetting('website_mode_personal_uid') ) { json_output(404); diff --git a/app/legacy/routes/user.php b/app/legacy/routes/user.php index 70c04d5..e00bf10 100644 --- a/app/legacy/routes/user.php +++ b/app/legacy/routes/user.php @@ -330,7 +330,7 @@ return function (Handler $handler) { foreach ($tabs as $k => $v) { $params = [ 'list' => $v['type'], - 'q' => $safe_html_user['search']['q'], + 'q' => $user['search']['q'], 'sort' => 'date_desc', 'page' => '1', ]; diff --git a/app/src/Legacy/Classes/Album.php b/app/src/Legacy/Classes/Album.php index 9ec291f..666672e 100644 --- a/app/src/Legacy/Classes/Album.php +++ b/app/src/Legacy/Classes/Album.php @@ -337,6 +337,9 @@ class Album public static function assertCanBecomeParent(int $id, int ...$children): void { + if ($id === 0) { + throw new LogicException('Invalid parent album', 600); + } if ($children === []) { return; } @@ -473,6 +476,7 @@ class Album $db->exec(); $album = self::getSingle((int) $album_id); if (! isset($album['cover_id']) && is_int($album_id)) { + xr('populate album cover', $album_id); self::populateCover($album_id); } @@ -507,9 +511,17 @@ class Album public static function populateCover(int $id) { $db = DB::getInstance(); - $db->query('UPDATE `' . DB::getTable('albums') . '` - SET album_cover_id = (SELECT image_id FROM `' . DB::getTable('images') . '` WHERE image_album_id = album_id AND image_is_approved = 1 ORDER BY image_id DESC LIMIT 1) - WHERE album_id = :album_id;'); + $table_albums = DB::getTable('albums'); + $table_images = DB::getTable('images'); + $db->query(<<bind(':album_id', $id); $db->exec(); } @@ -666,7 +678,9 @@ class Album $album['name'] = User::getStreamName($user['username']); } if (! isset($album['id'])) { - $album['url'] = $user !== [] ? User::getUrl($user['username']) : null; + $album['url'] = $user !== [] + ? User::getUrl($user['username']) + : null; $album['url_short'] = $album['url']; } else { $album['url'] = self::getUrl($album['id_encoded'], getSetting('seo_album_urls') ? $album['name'] : ''); diff --git a/app/src/Legacy/Classes/Image.php b/app/src/Legacy/Classes/Image.php index af25a9a..80fac67 100644 --- a/app/src/Legacy/Classes/Image.php +++ b/app/src/Legacy/Classes/Image.php @@ -1586,8 +1586,19 @@ class Image if ($return && $old_album !== $values['album_id']) { if ($old_album != null) { // Update the old album Album::updateImageCount((int) $old_album, 1, '-'); + DB::update( + 'albums', + [ + 'cover_id' => null, + ], + [ + 'id' => $old_album, + 'cover_id' => $id, + ] + ); } Album::updateImageCount((int) $values['album_id'], 1); + Album::populateCover((int) $values['album_id']); } } if ($user_id) { @@ -1718,9 +1729,6 @@ class Image if (isset($image['album']['id']) && $image['album']['id'] > 0) { Album::updateImageCount((int) $image['album']['id'], 1, '-'); } - if (isset($image['album']['cover_id']) && $image['album']['cover_id'] === $image['id']) { - Album::populateCover((int) $image['album']['id']); - } Stat::track([ 'action' => 'delete', 'table' => 'images', @@ -1786,6 +1794,9 @@ class Image 'id' => $id, ]); if ($result) { + if (isset($image['album']['cover_id']) && $image['album']['cover_id'] === $image['id']) { + Album::populateCover((int) $image['album']['id']); + } DB::delete('images_hash', [ 'image_id' => $id, ]); diff --git a/app/src/Legacy/Classes/Listing.php b/app/src/Legacy/Classes/Listing.php index 36eee31..5aca0d8 100644 --- a/app/src/Legacy/Classes/Listing.php +++ b/app/src/Legacy/Classes/Listing.php @@ -1461,7 +1461,7 @@ class Listing } if (isset($args['params']) && is_array($args['params']) - && array_key_exists('q', $args['params']) + && array_intersect_key(array_flip(Search::OPERATORS), $args['params']) && $args['listing'] === 'search' ) { $args['params_hidden']['list'] = $content; diff --git a/app/src/Legacy/Classes/Search.php b/app/src/Legacy/Classes/Search.php index ab542c4..ff29fd1 100644 --- a/app/src/Legacy/Classes/Search.php +++ b/app/src/Legacy/Classes/Search.php @@ -16,6 +16,17 @@ use function Chevereto\Legacy\G\str_replace_first; class Search { + public const OPERATORS = [ + 'q', + 'as_q', + 'as_epq', + 'as_oq', + 'as_eq', + 'as_cat', + 'as_stor', + 'as_ip', + ]; + public array $display; public static array $excluded = ['storage', 'ip']; @@ -58,9 +69,15 @@ class Search $this->q = str_replace('@', '', $this->q); foreach ($as_handle as $k => $v) { if (isset($this->request[$k]) && $this->request[$k] !== '') { - $this->q .= ' ' - . (isset($v) ? ($v . ':') : '') - . $this->request[$k]; + if ($k === 'as_epq') { + $this->q .= ' "' + . $this->request[$k] + . '"'; + } else { + $this->q .= ' ' + . (isset($v) ? ($v . ':') : '') + . $this->request[$k]; + } } } $this->q = trim( @@ -70,6 +87,13 @@ class Search $this->q ?? '' // @phpstan-ignore-line ) ); + $exact_phrase = null; + if (($this->request['as_epq'] ?? '') !== '') { + $exact_phrase = $this->request['as_epq']; + if (preg_match('/^"(.*?)"$/', $exact_phrase, $matches)) { + $exact_phrase = $matches[1]; + } + } $search_op = $this->handleSearchOperators($this->q, $this->requester['is_content_manager'] ?? false); $this->q = ''; foreach ($search_op as $operator) { @@ -148,6 +172,14 @@ class Search case 'albums': case 'users': if ($op[0] === 'ip') { + $search_op_wheres[] = match ($this->type) { + 'albums' => << << ':ip', 'value' => str_replace_first('ip:', '', $this->q), @@ -157,7 +189,7 @@ class Search break; } } - if ($q_match !== '') { + if ($q_match !== '' && $exact_phrase === null) { $q_value = $q_match; if ($this->DBEngine === 'InnoDB') { $q_value = trim($q_value, '><'); @@ -177,7 +209,20 @@ class Search $wheres = ''; switch ($this->type) { case 'images': - if ($q_match !== '') { + if ($exact_phrase !== null) { + $this->binds[] = [ + 'param' => ':phrase', + 'value' => '%' . $exact_phrase . '%', + ]; + $wheres = <<binds[] = [ + 'param' => ':phrase', + 'value' => '%' . $exact_phrase . '%', + ]; + $wheres = <<binds[] = [ + 'param' => ':phrase', + 'value' => '%' . $exact_phrase . '%', + ]; $wheres = << << << <<requester['is_content_manager'] ?? false) { $pos = strpos($this->q, '@'); if ($pos !== false) { @@ -250,6 +314,9 @@ class Search break; } + if ($search_op_wheres !== []) { + $wheres .= ($wheres === '' ? 'WHERE ' : ' AND ') . implode(' AND ', $search_op_wheres); + } $this->wheres = $wheres ?? ''; $this->display = [ 'type' => $this->type, diff --git a/app/src/Legacy/G/functions.php b/app/src/Legacy/G/functions.php index a2295a6..82ccb0b 100644 --- a/app/src/Legacy/G/functions.php +++ b/app/src/Legacy/G/functions.php @@ -2939,7 +2939,7 @@ function redirect(string $to = '', int $status = 302): void if (! is_url_web($to)) { $to = get_base_url($to, true); } - $to = preg_replace('|[^a-z0-9-~+_.?#=&;,/:%!]|i', '', $to); + $to = preg_replace('|[^a-z0-9-~+_.?#=&;,/:%!@]|i', '', $to); if (PHP_SAPI === 'cli') { echo sprintf("> Redirection to {$to} (%s)", (string) $status) . "\n"; if (! defined('PHPUNIT_CHEVERETO_TESTSUITE')) { diff --git a/app/src/Legacy/functions.php b/app/src/Legacy/functions.php index 0c0b264..2597eb0 100644 --- a/app/src/Legacy/functions.php +++ b/app/src/Legacy/functions.php @@ -612,6 +612,9 @@ function cheveretoID(string|int $in, string $action = 'encode'): string|int } if ($id_padding > 0) { $out = $out / $id_padding; + if (! is_int($out)) { + $out = 0; + } } $out = (int) sprintf('%s', $out); } else { @@ -1638,6 +1641,41 @@ function strip_tags_content(string $text, string $tags = '') return strip_tags($return); } +/** + * Get the count of rows in a table. + */ +function getCount(string $table): int +{ + return getCounts($table)[$table]; +} + +/** + * Get the counts of rows in multiple tables. + * + * @return array Associative array with table names as keys and their counts as values. + */ +function getCounts(string ...$table): array +{ + $items = []; + foreach ($table as $subject) { + $table = DB::getTable($subject); + $items[] = match ($subject) { + 'storage' => << << $maxLimit) { throw new OverflowException( message( diff --git a/content/legacy/themes/Peafowl/lib/chevereto-all.js b/content/legacy/themes/Peafowl/lib/chevereto-all.js index a732a43..54541bd 100644 --- a/content/legacy/themes/Peafowl/lib/chevereto-all.js +++ b/content/legacy/themes/Peafowl/lib/chevereto-all.js @@ -10911,7 +10911,7 @@ CHV.fn.uploader = { var i = 0; } if (!(i in files)) { - if (i === files.length - 1) { + if (i === Math.max(0, files.length - 1)) { PF.fn.loading.destroy("fullscreen"); } return; @@ -12923,19 +12923,26 @@ CHV.fn.storage = { prepareForm: function(api_id, trigger) { var combo = "[data-combo-value~=" + api_id + "]"; var trigger = typeof trigger !== "undefined" ? trigger : false; - $(":input", "[data-combo-value]:hidden").each(function() { + $(":input", "[data-combo-value]").each(function() { if($(this).attr("disabled") && !$(this).is("[data-hide-disabled]")) { return; } + const name = $(this).attr("data-name") + ? $(this).attr("data-name") + : $(this).attr("name"); $(this).prop("disabled", true); $(this).attr("data-hide-disabled", 1); + $(this).attr("data-name", name); + $(this).removeAttr("name"); }); $(":input", combo).each(function() { if(!$(this).is("[data-hide-disabled]")) { return; } + const name = $(this).attr("data-name"); $(this).prop("disabled", false); $(this).removeAttr("data-hide-disabled"); + $(this).attr("name", name); }); if(trigger) { setTimeout(function() { @@ -16636,7 +16643,7 @@ async function hashFile(file) { const { create64 } = await xxhash(); const hasher = create64(); const start = performance.now(); - console.log('hashing file...'); + console.log('hashing file...', file.name); const reader = file.stream().getReader(); while (true) { const { done, value } = await reader.read(); diff --git a/content/legacy/themes/Peafowl/lib/chevereto-all.min.js b/content/legacy/themes/Peafowl/lib/chevereto-all.min.js index 9298da2..8d677c4 100644 --- a/content/legacy/themes/Peafowl/lib/chevereto-all.min.js +++ b/content/legacy/themes/Peafowl/lib/chevereto-all.min.js @@ -1 +1 @@ -var BrowserDetect={init:function(){this.browser=this.searchString(this.dataBrowser),this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion),this.shortversion=this.browser+this.version,this.OS=this.searchString(this.dataOS)},searchString:function(e){for(var t=0;t{"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(e.document)return t(e);throw new Error("jQuery requires a window with a document")}:t(e)})("undefined"!=typeof window?window:this,function(_,D){function O(e,t){return t.toUpperCase()}var u=[],p=_.document,d=u.slice,z=u.concat,N=u.push,M=u.indexOf,L={},R=L.toString,m=L.hasOwnProperty,g={},e="1.12.4",$=function(e,t){return new $.fn.init(e,t)},q=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,W=/^-ms-/,B=/-([\da-z])/gi;function U(e){var t=!!e&&"length"in e&&e.length,i=$.type(e);return"function"!==i&&!$.isWindow(e)&&("array"===i||0===t||"number"==typeof t&&0{function u(e,t,i){var n="0x"+t-65536;return n!=n||i?t:n<0?String.fromCharCode(65536+n):String.fromCharCode(n>>10|55296,1023&n|56320)}function O(){$()}var e,p,w,s,z,m,N,M,_,l,c,$,x,t,P,g,n,o,v,C="sizzle"+ +new Date,b=D.document,F=0,L=0,R=ce(),q=ce(),y=ce(),W=function(e,t){return e===t&&(c=!0),0},B={}.hasOwnProperty,i=[],U=i.pop,X=i.push,j=i.push,Y=i.slice,k=function(e,t){for(var i=0,n=e.length;i+~]|"+a+")"+a+"*"),te=new RegExp("="+a+"*([^\\]'\"]*?)"+a+"*\\]","g"),ie=new RegExp(K),ne=new RegExp("^"+r+"$"),h={ID:new RegExp("^#("+r+")"),CLASS:new RegExp("^\\.("+r+")"),TAG:new RegExp("^("+r+"|[*])"),ATTR:new RegExp("^"+J),PSEUDO:new RegExp("^"+K),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+a+"*(even|odd|(([+-]|)(\\d*)n|)"+a+"*(?:([+-]|)"+a+"*(\\d+)|))"+a+"*\\)|)","i"),bool:new RegExp("^(?:"+Q+")$","i"),needsContext:new RegExp("^"+a+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+a+"*((?:-\\d)?\\d*)"+a+"*\\)|)(?=[^-]|$)","i")},oe=/^(?:input|select|textarea|button)$/i,se=/^h\d$/i,d=/^[^{]+\{\s*\[native \w/,ae=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,re=/[+~]/,le=/'|\\/g,f=new RegExp("\\\\([\\da-f]{1,6}"+a+"?|("+a+")|.)","ig");try{j.apply(i=Y.call(b.childNodes),b.childNodes),i[b.childNodes.length].nodeType}catch(e){j={apply:i.length?function(e,t){X.apply(e,Y.call(t))}:function(e,t){for(var i=e.length,n=0;e[i++]=t[n++];);e.length=i-1}}}function T(e,t,i,n){var o,s,a,r,l,c,d,u,h=t&&t.ownerDocument,f=t?t.nodeType:9;if(i=i||[],"string"!=typeof e||!e||1!==f&&9!==f&&11!==f)return i;if(!n&&((t?t.ownerDocument||t:b)!==x&&$(t),t=t||x,P)){if(11!==f&&(c=ae.exec(e)))if(o=c[1]){if(9===f){if(!(a=t.getElementById(o)))return i;if(a.id===o)return i.push(a),i}else if(h&&(a=h.getElementById(o))&&v(t,a)&&a.id===o)return i.push(a),i}else{if(c[2])return j.apply(i,t.getElementsByTagName(e)),i;if((o=c[3])&&p.getElementsByClassName&&t.getElementsByClassName)return j.apply(i,t.getElementsByClassName(o)),i}if(p.qsa&&!y[e+" "]&&(!g||!g.test(e))){if(1!==f)h=t,u=e;else if("object"!==t.nodeName.toLowerCase()){for((r=t.getAttribute("id"))?r=r.replace(le,"\\$&"):t.setAttribute("id",r=C),s=(d=m(e)).length,l=ne.test(r)?"#"+r:"[id='"+r+"']";s--;)d[s]=l+" "+I(d[s]);u=d.join(","),h=re.test(e)&&he(t.parentNode)||t}if(u)try{return j.apply(i,h.querySelectorAll(u)),i}catch(e){}finally{r===C&&t.removeAttribute("id")}}}return M(e.replace(H,"$1"),t,i,n)}function ce(){var i=[];function n(e,t){return i.push(e+" ")>w.cacheLength&&delete n[i.shift()],n[e+" "]=t}return n}function S(e){return e[C]=!0,e}function E(e){var t=x.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function de(e,t){for(var i=e.split("|"),n=i.length;n--;)w.attrHandle[i[n]]=t}function ue(e,t){var i=t&&e,n=i&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||1<<31)-(~e.sourceIndex||1<<31);if(n)return n;if(i)for(;i=i.nextSibling;)if(i===t)return-1;return e?1:-1}function V(a){return S(function(s){return s=+s,S(function(e,t){for(var i,n=a([],e.length,s),o=n.length;o--;)e[i=n[o]]&&(e[i]=!(t[i]=e[i]))})})}function he(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=T.support={},z=T.isXML=function(e){e=e&&(e.ownerDocument||e).documentElement;return!!e&&"HTML"!==e.nodeName},$=T.setDocument=function(e){var e=e?e.ownerDocument||e:b;return e!==x&&9===e.nodeType&&e.documentElement&&(t=(x=e).documentElement,P=!z(x),(e=x.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",O,!1):e.attachEvent&&e.attachEvent("onunload",O)),p.attributes=E(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=E(function(e){return e.appendChild(x.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=d.test(x.getElementsByClassName),p.getById=E(function(e){return t.appendChild(e).id=C,!x.getElementsByName||!x.getElementsByName(C).length}),p.getById?(w.find.ID=function(e,t){if(void 0!==t.getElementById&&P)return(t=t.getElementById(e))?[t]:[]},w.filter.ID=function(e){var t=e.replace(f,u);return function(e){return e.getAttribute("id")===t}}):(delete w.find.ID,w.filter.ID=function(e){var t=e.replace(f,u);return function(e){e=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}}),w.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var i,n=[],o=0,s=t.getElementsByTagName(e);if("*"!==e)return s;for(;i=s[o++];)1===i.nodeType&&n.push(i);return n},w.find.CLASS=p.getElementsByClassName&&function(e,t){return void 0!==t.getElementsByClassName&&P?t.getElementsByClassName(e):void 0},n=[],g=[],(p.qsa=d.test(x.querySelectorAll))&&(E(function(e){t.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&g.push("[*^$]="+a+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||g.push("\\["+a+"*(?:value|"+Q+")"),e.querySelectorAll("[id~="+C+"-]").length||g.push("~="),e.querySelectorAll(":checked").length||g.push(":checked"),e.querySelectorAll("a#"+C+"+*").length||g.push(".#.+[+~]")}),E(function(e){var t=x.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&g.push("name"+a+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(p.matchesSelector=d.test(o=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.msMatchesSelector))&&E(function(e){p.disconnectedMatch=o.call(e,"div"),o.call(e,"[s!='']:x"),n.push("!=",K)}),g=g.length&&new RegExp(g.join("|")),n=n.length&&new RegExp(n.join("|")),e=d.test(t.compareDocumentPosition),v=e||d.test(t.contains)?function(e,t){var i=9===e.nodeType?e.documentElement:e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(i.contains?i.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},W=e?function(e,t){var i;return e===t?(c=!0,0):(i=!e.compareDocumentPosition-!t.compareDocumentPosition)||(1&(i=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===i?e===x||e.ownerDocument===b&&v(b,e)?-1:t===x||t.ownerDocument===b&&v(b,t)?1:l?k(l,e)-k(l,t):0:4&i?-1:1)}:function(e,t){if(e===t)return c=!0,0;var i,n=0,o=e.parentNode,s=t.parentNode,a=[e],r=[t];if(!o||!s)return e===x?-1:t===x?1:o?-1:s?1:l?k(l,e)-k(l,t):0;if(o===s)return ue(e,t);for(i=e;i=i.parentNode;)a.unshift(i);for(i=t;i=i.parentNode;)r.unshift(i);for(;a[n]===r[n];)n++;return n?ue(a[n],r[n]):a[n]===b?-1:r[n]===b?1:0}),x},T.matches=function(e,t){return T(e,null,null,t)},T.matchesSelector=function(e,t){if((e.ownerDocument||e)!==x&&$(e),t=t.replace(te,"='$1']"),p.matchesSelector&&P&&!y[t+" "]&&(!n||!n.test(t))&&(!g||!g.test(t)))try{var i=o.call(e,t);if(i||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return i}catch(e){}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(f,u),e[3]=(e[3]||e[4]||e[5]||"").replace(f,u),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||T.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&T.error(e[0]),e},PSEUDO:function(e){var t,i=!e[6]&&e[2];return h.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":i&&ie.test(i)&&(t=(t=m(i,!0))&&i.indexOf(")",i.length-t)-i.length)&&(e[0]=e[0].slice(0,t),e[2]=i.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(f,u).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=R[e+" "];return t||(t=new RegExp("(^|"+a+")"+e+"("+a+"|$)"))&&R(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,i,n){return function(e){e=T.attr(e,t);return null==e?"!="===i:!i||(e+="","="===i?e===n:"!="===i?e!==n:"^="===i?n&&0===e.indexOf(n):"*="===i?n&&-1function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t})(e);for(e in{submit:!0,reset:!0})w.pseudos[e]=(i=>function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===i})(e);function fe(){}function I(e){for(var t=0,i=e.length,n="";t{for(var n=0,o=t.length;n(?:<\/\1>|)$/,J=/^.[^:#\[\.,]*$/;function K(e,i,n){if($.isFunction(i))return $.grep(e,function(e,t){return!!i.call(e,t,e)!==n});if(i.nodeType)return $.grep(e,function(e){return e===i!==n});if("string"==typeof i){if(J.test(i))return $.filter(i,e,n);i=$.filter(i,e)}return $.grep(e,function(e){return-1<$.inArray(e,i)!==n})}$.filter=function(e,t,i){var n=t[0];return i&&(e=":not("+e+")"),1===t.length&&1===n.nodeType?$.find.matchesSelector(n,e)?[n]:[]:$.find.matches(e,$.grep(t,function(e){return 1===e.nodeType}))},$.fn.extend({find:function(e){var t,i=[],n=this,o=n.length;if("string"!=typeof e)return this.pushStack($(e).filter(function(){for(t=0;t)[^>]*|#([\w-]*))$/,ee=(($.fn.init=function(e,t,i){if(e){if(i=i||G,"string"!=typeof e)return e.nodeType?(this.context=this[0]=e,this.length=1,this):$.isFunction(e)?void 0!==i.ready?i.ready(e):e($):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),$.makeArray(e,this));if(!(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&3<=e.length?[null,e,null]:Z.exec(e))||!n[1]&&t)return(!t||t.jquery?t||i:this.constructor(t)).find(e);if(n[1]){if(t=t instanceof $?t[0]:t,$.merge(this,$.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:p,!0)),Q.test(n[1])&&$.isPlainObject(t))for(var n in t)$.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n])}else{if((i=p.getElementById(n[2]))&&i.parentNode){if(i.id!==n[2])return G.find(e);this.length=1,this[0]=i}this.context=p,this.selector=e}}return this}).prototype=$.fn,G=$(p),/^(?:parents|prev(?:Until|All))/),te={children:!0,contents:!0,next:!0,prev:!0};function ie(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}$.fn.extend({has:function(e){var t,i=$(e,this),n=i.length;return this.filter(function(){for(t=0;t
a",g.leadingWhitespace=3===j.firstChild.nodeType,g.tbody=!j.getElementsByTagName("tbody").length,g.htmlSerialize=!!j.getElementsByTagName("link").length,g.html5Clone="<:nav>"!==p.createElement("nav").cloneNode(!0).outerHTML,V.type="checkbox",V.checked=!0,F.appendChild(V),g.appendChecked=V.checked,j.innerHTML="",g.noCloneChecked=!!j.cloneNode(!0).lastChild.defaultValue,F.appendChild(j),(V=p.createElement("input")).setAttribute("type","radio"),V.setAttribute("checked","checked"),V.setAttribute("name","t"),j.appendChild(V),g.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,g.noCloneEvent=!!j.addEventListener,j[$.expando]=1,g.attributes=!j.getAttribute($.expando);var b={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:g.htmlSerialize?[0,"",""]:[1,"X
","
"]};function y(e,t){var i,n,o=0,s=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!s)for(s=[],i=e.childNodes||e;null!=(n=i[o]);o++)!t||$.nodeName(n,t)?s.push(n):$.merge(s,y(n,t));return void 0===t||t&&$.nodeName(e,t)?$.merge([e],s):s}function _e(e,t){for(var i,n=0;null!=(i=e[n]);n++)$._data(i,"globalEval",!t||$._data(t[n],"globalEval"))}b.optgroup=b.option,b.tbody=b.tfoot=b.colgroup=b.caption=b.thead,b.th=b.td;var $e=/<|&#?\w+;/,xe=/"!==u[1]||xe.test(a)?0:l:l.firstChild)&&a.childNodes.length;s--;)$.nodeName(d=a.childNodes[s],"tbody")&&!d.childNodes.length&&a.removeChild(d);for($.merge(p,l.childNodes),l.textContent="";l.firstChild;)l.removeChild(l.firstChild);l=f.lastChild}else p.push(t.createTextNode(a));for(l&&f.removeChild(l),g.appendChecked||$.grep(y(p,"input"),Pe),m=0;a=p[m++];)if(n&&-1<$.inArray(a,n))o&&o.push(a);else if(r=$.contains(a.ownerDocument,a),l=y(f.appendChild(a),"script"),r&&_e(l),i)for(s=0;a=l[s++];)ve.test(a.type||"")&&i.push(a);return l=null,f}var Fe,je,ke=p.createElement("div");for(Fe in{submit:!0,change:!0,focusin:!0})je="on"+Fe,(g[Fe]=je in _)||(ke.setAttribute(je,"t"),g[Fe]=!1===ke.attributes[je].expando);var He=/^(?:input|select|textarea)$/i,Te=/^key/,Se=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^(?:focusinfocus|focusoutblur)$/,Ve=/^([^.]*)(?:\.(.+)|)/;function Ie(){return!0}function l(){return!1}function Ae(){try{return p.activeElement}catch(e){}}function De(e,t,i,n,o,s){var a,r;if("object"==typeof t){for(r in"string"!=typeof i&&(n=n||i,i=void 0),t)De(e,r,i,n,t[r],s);return e}if(null==n&&null==o?(o=i,n=i=void 0):null==o&&("string"==typeof i?(o=n,n=void 0):(o=n,n=i,i=void 0)),!1===o)o=l;else if(!o)return e;return 1===s&&(a=o,(o=function(e){return $().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=$.guid++)),e.each(function(){$.event.add(this,t,o,n,i)})}$.event={global:{},add:function(e,t,i,n,o){var s,a,r,l,c,d,u,h,f,p=$._data(e);if(p)for(i.handler&&(i=(r=i).handler,o=r.selector),i.guid||(i.guid=$.guid++),s=(s=p.events)||(p.events={}),(c=p.handle)||((c=p.handle=function(e){return void 0===$||e&&$.event.triggered===e.type?void 0:$.event.dispatch.apply(c.elem,arguments)}).elem=e),a=(t=(t||"").match(x)||[""]).length;a--;)u=f=(h=Ve.exec(t[a])||[])[1],h=(h[2]||"").split(".").sort(),u&&(l=$.event.special[u]||{},u=(o?l.delegateType:l.bindType)||u,l=$.event.special[u]||{},f=$.extend({type:u,origType:f,data:n,handler:i,guid:i.guid,selector:o,needsContext:o&&$.expr.match.needsContext.test(o),namespace:h.join(".")},r),(d=s[u])||((d=s[u]=[]).delegateCount=0,l.setup&&!1!==l.setup.call(e,n,h,c))||(e.addEventListener?e.addEventListener(u,c,!1):e.attachEvent&&e.attachEvent("on"+u,c)),l.add&&(l.add.call(e,f),f.handler.guid||(f.handler.guid=i.guid)),o?d.splice(d.delegateCount++,0,f):d.push(f),$.event.global[u]=!0)},remove:function(e,t,i,n,o){var s,a,r,l,c,d,u,h,f,p,m,g=$.hasData(e)&&$._data(e);if(g&&(d=g.events)){for(c=(t=(t||"").match(x)||[""]).length;c--;)if(f=m=(r=Ve.exec(t[c])||[])[1],p=(r[2]||"").split(".").sort(),f){for(u=$.event.special[f]||{},h=d[f=(n?u.delegateType:u.bindType)||f]||[],r=r[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=s=h.length;s--;)a=h[s],!o&&m!==a.origType||i&&i.guid!==a.guid||r&&!r.test(a.namespace)||n&&n!==a.selector&&("**"!==n||!a.selector)||(h.splice(s,1),a.selector&&h.delegateCount--,u.remove&&u.remove.call(e,a));l&&!h.length&&(u.teardown&&!1!==u.teardown.call(e,p,g.handle)||$.removeEvent(e,f,g.handle),delete d[f])}else for(f in d)$.event.remove(e,f+t[c],i,n,!0);$.isEmptyObject(d)&&(delete g.handle,$._removeData(e,"events"))}},trigger:function(e,t,i,n){var o,s,a,r,l,c,d=[i||p],u=m.call(e,"type")?e.type:e,h=m.call(e,"namespace")?e.namespace.split("."):[],f=l=i=i||p;if(3!==i.nodeType&&8!==i.nodeType&&!Ee.test(u+$.event.triggered)&&(-1]","i"),Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,Me=/\s*$/g,We=we(p).appendChild(p.createElement("div"));function Be(e,t){return $.nodeName(e,"table")&&$.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ue(e){return e.type=(null!==$.find.attr(e,"type"))+"/"+e.type,e}function Xe(e){var t=Re.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Ye(e,t){if(1===t.nodeType&&$.hasData(e)){var i,n,o,e=$._data(e),s=$._data(t,e),a=e.events;if(a)for(i in delete s.handle,s.events={},a)for(n=0,o=a[i].length;n")},clone:function(e,t,i){var n,o,s,a,r,l,c,d,u=$.contains(e.ownerDocument,e);if(g.html5Clone||$.isXMLDoc(e)||!ze.test("<"+e.nodeName+">")?s=e.cloneNode(!0):(We.innerHTML=e.outerHTML,We.removeChild(s=We.firstChild)),!(g.noCloneEvent&&g.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||$.isXMLDoc(e)))for(n=y(s),r=y(e),a=0;null!=(o=r[a]);++a)if(n[a]){h=void 0;f=void 0;l=void 0;c=void 0;d=void 0;var h=o;var f=n[a];if(1===f.nodeType){if(l=f.nodeName.toLowerCase(),!g.noCloneEvent&&f[$.expando]){for(c in(d=$._data(f)).events)$.removeEvent(f,c,d.handle);f.removeAttribute($.expando)}"script"===l&&f.text!==h.text?(Ue(f).text=h.text,Xe(f)):"object"===l?(f.parentNode&&(f.outerHTML=h.outerHTML),g.html5Clone&&h.innerHTML&&!$.trim(f.innerHTML)&&(f.innerHTML=h.innerHTML)):"input"===l&&me.test(h.type)?(f.defaultChecked=f.checked=h.checked,f.value!==h.value&&(f.value=h.value)):"option"===l?f.defaultSelected=f.selected=h.defaultSelected:"input"!==l&&"textarea"!==l||(f.defaultValue=h.defaultValue)}}if(t)if(i)for(r=r||y(e),n=n||y(s),a=0;null!=(o=r[a]);a++)Ye(o,n[a]);else Ye(e,s);return 0<(n=y(s,"script")).length&&_e(n,!u&&y(e,"script")),n=r=o=null,s},cleanData:function(e,t){for(var i,n,o,s,a=0,r=$.expando,l=$.cache,c=g.attributes,d=$.event.special;null!=(i=e[a]);a++)if((t||v(i))&&(s=(o=i[r])&&l[o])){if(s.events)for(n in s.events)d[n]?$.event.remove(i,n):$.removeEvent(i,n,s.handle);l[o]&&(delete l[o],c||void 0===i.removeAttribute?i[r]=void 0:i.removeAttribute(r),u.push(o))}}}),$.fn.extend({domManip:w,detach:function(e){return Qe(this,e,!0)},remove:function(e){return Qe(this,e)},text:function(e){return h(this,function(e){return void 0===e?$.text(this):this.empty().append((this[0]&&this[0].ownerDocument||p).createTextNode(e))},null,e,arguments.length)},append:function(){return w(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Be(this,e).appendChild(e)})},prepend:function(){return w(this,arguments,function(e){var t;1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(t=Be(this,e)).insertBefore(e,t.firstChild)})},before:function(){return w(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return w(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&$.cleanData(y(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&$.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return $.clone(this,e,t)})},html:function(e){return h(this,function(e){var t=this[0]||{},i=0,n=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Oe,""):void 0;if("string"==typeof e&&!Me.test(e)&&(g.htmlSerialize||!ze.test(e))&&(g.leadingWhitespace||!be.test(e))&&!b[(ge.exec(e)||["",""])[1].toLowerCase()]){e=$.htmlPrefilter(e);try{for(;i")).appendTo(t.documentElement))[0].contentWindow||Je[0].contentDocument).document).write(),t.close(),i=Ge(e,t),Je.detach()),Ke[e]=i),i}function et(e,t,i,n){var o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];for(o in i=i.apply(e,n||[]),t)e.style[o]=s[o];return i}var i,tt,it,nt,ot,st,at,s,rt=/^margin/,lt=new RegExp("^("+e+")(?!px)[a-z%]+$","i"),ct=p.documentElement;function a(){var e,t=p.documentElement;t.appendChild(at),s.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i=it=st=!1,tt=ot=!0,_.getComputedStyle&&(e=_.getComputedStyle(s),i="1%"!==(e||{}).top,st="2px"===(e||{}).marginLeft,it="4px"===(e||{width:"4px"}).width,s.style.marginRight="50%",tt="4px"===(e||{marginRight:"4px"}).marginRight,(e=s.appendChild(p.createElement("div"))).style.cssText=s.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",e.style.marginRight=e.style.width="0",s.style.width="1px",ot=!parseFloat((_.getComputedStyle(e)||{}).marginRight),s.removeChild(e)),s.style.display="none",(nt=0===s.getClientRects().length)&&(s.style.display="",s.innerHTML="
t
",s.childNodes[0].style.borderCollapse="separate",(e=s.getElementsByTagName("td"))[0].style.cssText="margin:0;border:0;padding:0;display:none",nt=0===e[0].offsetHeight)&&(e[0].style.display="",e[1].style.display="none",nt=0===e[0].offsetHeight),t.removeChild(at)}at=p.createElement("div"),(s=p.createElement("div")).style&&(s.style.cssText="float:left;opacity:.5",g.opacity="0.5"===s.style.opacity,g.cssFloat=!!s.style.cssFloat,s.style.backgroundClip="content-box",s.cloneNode(!0).style.backgroundClip="",g.clearCloneStyle="content-box"===s.style.backgroundClip,(at=p.createElement("div")).style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",s.innerHTML="",at.appendChild(s),g.boxSizing=""===s.style.boxSizing||""===s.style.MozBoxSizing||""===s.style.WebkitBoxSizing,$.extend(g,{reliableHiddenOffsets:function(){return null==i&&a(),nt},boxSizingReliable:function(){return null==i&&a(),it},pixelMarginRight:function(){return null==i&&a(),tt},pixelPosition:function(){return null==i&&a(),i},reliableMarginRight:function(){return null==i&&a(),ot},reliableMarginLeft:function(){return null==i&&a(),st}}));var c,f,dt=/^(top|right|bottom|left)$/;function ut(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}_.getComputedStyle?(c=function(e){var t=e.ownerDocument.defaultView;return(t=t&&t.opener?t:_).getComputedStyle(e)},f=function(e,t,i){var n,o,s=e.style;return""!==(o=(i=i||c(e))?i.getPropertyValue(t)||i[t]:void 0)&&void 0!==o||$.contains(e.ownerDocument,e)||(o=$.style(e,t)),i&&!g.pixelMarginRight()&<.test(o)&&rt.test(t)&&(e=s.width,t=s.minWidth,n=s.maxWidth,s.minWidth=s.maxWidth=s.width=o,o=i.width,s.width=e,s.minWidth=t,s.maxWidth=n),void 0===o?o:o+""}):ct.currentStyle&&(c=function(e){return e.currentStyle},f=function(e,t,i){var n,o,s,a=e.style;return null==(i=(i=i||c(e))?i[t]:void 0)&&a&&a[t]&&(i=a[t]),lt.test(i)&&!dt.test(t)&&(n=a.left,(s=(o=e.runtimeStyle)&&o.left)&&(o.left=e.currentStyle.left),a.left="fontSize"===t?"1em":i,i=a.pixelLeft+"px",a.left=n,s)&&(o.left=s),void 0===i?i:i+""||"auto"});var ht=/alpha\([^)]*\)/i,ft=/opacity\s*=\s*([^)]*)/i,pt=/^(none|table(?!-c[ea]).+)/,mt=new RegExp("^("+e+")(.*)$","i"),gt={position:"absolute",visibility:"hidden",display:"block"},vt={letterSpacing:"0",fontWeight:"400"},bt=["Webkit","O","Moz","ms"],yt=p.createElement("div").style;function wt(e){if(e in yt)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),i=bt.length;i--;)if((e=bt[i]+t)in yt)return e}function _t(e,t){for(var i,n,o,s=[],a=0,r=e.length;a
a",A=V.getElementsByTagName("a")[0],F.setAttribute("type","checkbox"),V.appendChild(F),(A=V.getElementsByTagName("a")[0]).style.cssText="top:1px",g.getSetAttribute="t"!==V.className,g.style=/top/.test(A.getAttribute("style")),g.hrefNormalized="/a"===A.getAttribute("href"),g.checkOn=!!F.value,g.optSelected=e.selected,g.enctype=!!p.createElement("form").enctype,j.disabled=!0,g.optDisabled=!e.disabled,(F=p.createElement("input")).setAttribute("value",""),g.input=""===F.getAttribute("value"),F.value="t",F.setAttribute("type","radio"),g.radioValue="t"===F.value;var St=/\r/g,Et=/[\x20\t\r\n\f]+/g;$.fn.extend({val:function(t){var i,e,n,o=this[0];return arguments.length?(n=$.isFunction(t),this.each(function(e){1===this.nodeType&&(null==(e=n?t.call(this,e,$(this).val()):t)?e="":"number"==typeof e?e+="":$.isArray(e)&&(e=$.map(e,function(e){return null==e?"":e+""})),(i=$.valHooks[this.type]||$.valHooks[this.nodeName.toLowerCase()])&&"set"in i&&void 0!==i.set(this,e,"value")||(this.value=e))})):o?(i=$.valHooks[o.type]||$.valHooks[o.nodeName.toLowerCase()])&&"get"in i&&void 0!==(e=i.get(o,"value"))?e:"string"==typeof(e=o.value)?e.replace(St,""):null==e?"":e:void 0}}),$.extend({valHooks:{option:{get:function(e){var t=$.find.attr(e,"value");return null!=t?t:$.trim($.text(e)).replace(Et," ")}},select:{get:function(e){for(var t,i=e.options,n=e.selectedIndex,o="select-one"===e.type||n<0,s=o?null:[],a=o?n+1:i.length,r=n<0?a:o?n:0;r{for(var n,o,s,a,r=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===o&&(o=e.mimeType||t.getResponseHeader("Content-Type"));if(o)for(a in r)if(r[a]&&r[a].test(o)){l.unshift(a);break}if(l[0]in i)s=l[0];else{for(a in i){if(!l[0]||e.converters[a+" "+l[0]]){s=a;break}n=n||a}s=s||n}return s?(s!==l[0]&&l.unshift(s),i[s]):void 0})(f,w,i)),a=((e,t,i,n)=>{var o,s,a,r,l,c={},d=e.dataTypes.slice();if(d[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(s=d.shift();s;)if(e.responseFields[s]&&(i[e.responseFields[s]]=t),!l&&n&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=s,s=d.shift())if("*"===s)s=l;else if("*"!==l&&l!==s){if(!(a=c[l+" "+s]||c["* "+s]))for(o in c)if(r=o.split(" "),r[1]===s&&(a=c[l+" "+r[0]]||c["* "+r[0]])){!0===a?a=c[o]:!0!==c[o]&&(s=r[0],d.unshift(r[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+l+" to "+s}}}return{state:"success",data:t}})(f,a,w,n),n?(f.ifModified&&((i=w.getResponseHeader("Last-Modified"))&&($.lastModified[l]=i),i=w.getResponseHeader("etag"))&&($.etag[l]=i),204===e||"HEAD"===f.type?r="nocontent":304===e?r="notmodified":(r=a.state,o=a.data,n=!(s=a.error))):(s=r,!e&&r||(r="error",e<0&&(e=0))),w.status=e,w.statusText=(t||r)+"",n?g.resolveWith(p,[o,r,w]):g.rejectWith(p,[w,r,s]),w.statusCode(b),b=void 0,u&&m.trigger(n?"ajaxSuccess":"ajaxError",[w,f,n?o:s]),v.fireWith(p,[w,r]),u)&&(m.trigger("ajaxComplete",[w,f]),--$.active||$.event.trigger("ajaxStop"))}},getJSON:function(e,t,i){return $.get(e,t,i,"json")},getScript:function(e,t){return $.get(e,void 0,t,"script")}}),$.each(["get","post"],function(e,o){$[o]=function(e,t,i,n){return $.isFunction(t)&&(n=n||i,i=t,t=void 0),$.ajax($.extend({url:e,type:o,dataType:n,data:t,success:i},$.isPlainObject(e)&&e))}}),$._evalUrl=function(e){return $.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},$.fn.extend({wrapAll:function(t){var e;return $.isFunction(t)?this.each(function(e){$(this).wrapAll(t.call(this,e))}):(this[0]&&(e=$(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)),this)},wrapInner:function(i){return $.isFunction(i)?this.each(function(e){$(this).wrapInner(i.call(this,e))}):this.each(function(){var e=$(this),t=e.contents();t.length?t.wrapAll(i):e.append(i)})},wrap:function(t){var i=$.isFunction(t);return this.each(function(e){$(this).wrapAll(i?t.call(this,e):t)})},unwrap:function(){return this.parent().each(function(){$.nodeName(this,"body")||$(this).replaceWith(this.childNodes)}).end()}}),$.expr.filters.hidden=function(e){return g.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:ti(e)},$.expr.filters.visible=function(e){return!$.expr.filters.hidden(e)};var ii=/%20/g,ni=/\[\]$/,oi=/\r?\n/g,si=/^(?:submit|button|image|reset|file)$/i,ai=/^(?:input|select|textarea|keygen)/i;$.param=function(e,t){function i(e,t){t=$.isFunction(t)?t():null==t?"":t,o[o.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)}var n,o=[];if(void 0===t&&(t=$.ajaxSettings&&$.ajaxSettings.traditional),$.isArray(e)||e.jquery&&!$.isPlainObject(e))$.each(e,function(){i(this.name,this.value)});else for(n in e)!function i(n,e,o,s){if($.isArray(e))$.each(e,function(e,t){o||ni.test(n)?s(n,t):i(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,o,s)});else if(o||"object"!==$.type(e))s(n,e);else for(var t in e)i(n+"["+t+"]",e[t],o,s)}(n,e[n],t,i);return o.join("&").replace(ii,"+")},$.fn.extend({serialize:function(){return $.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=$.prop(this,"elements");return e?$.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!$(this).is(":disabled")&&ai.test(this.nodeName)&&!si.test(e)&&(this.checked||!me.test(e))}).map(function(e,t){var i=$(this).val();return null==i?null:$.isArray(i)?$.map(i,function(e){return{name:t.name,value:e.replace(oi,"\r\n")}}):{name:t.name,value:i.replace(oi,"\r\n")}}).get()}}),$.ajaxSettings.xhr=void 0!==_.ActiveXObject?function(){return this.isLocal?di():8").append($.parseHTML(e)).find(n):e)}).always(i&&function(e,t){a.each(function(){i.apply(this,s||[e.responseText,t,e])})}),this)},$.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){$.fn[t]=function(e){return this.on(t,e)}}),$.expr.filters.animated=function(t){return $.grep($.timers,function(e){return t===e.elem}).length},$.offset={setOffset:function(e,t,i){var n,o,s,a,r=$.css(e,"position"),l=$(e),c={};"static"===r&&(e.style.position="relative"),s=l.offset(),n=$.css(e,"top"),a=$.css(e,"left"),r=("absolute"===r||"fixed"===r)&&-1<$.inArray("auto",[n,a])?(o=(r=l.position()).top,r.left):(o=parseFloat(n)||0,parseFloat(a)||0),null!=(t=$.isFunction(t)?t.call(e,i,$.extend({},s)):t).top&&(c.top=t.top-s.top+o),null!=t.left&&(c.left=t.left-s.left+r),"using"in t?t.using.call(e,c):l.css(c)}},$.fn.extend({offset:function(t){var e,i,n,o;return arguments.length?void 0===t?this:this.each(function(e){$.offset.setOffset(this,t,e)}):(i={top:0,left:0},(o=(n=this[0])&&n.ownerDocument)?(e=o.documentElement,$.contains(e,n)?(void 0!==n.getBoundingClientRect&&(i=n.getBoundingClientRect()),n=pi(o),{top:i.top+(n.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(n.pageXOffset||e.scrollLeft)-(e.clientLeft||0)}):i):void 0)},position:function(){var e,t,i,n;if(this[0])return i={top:0,left:0},n=this[0],"fixed"===$.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),(i=$.nodeName(e[0],"html")?i:e.offset()).top+=$.css(e[0],"borderTopWidth",!0),i.left+=$.css(e[0],"borderLeftWidth",!0)),{top:t.top-i.top-$.css(n,"marginTop",!0),left:t.left-i.left-$.css(n,"marginLeft",!0)}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&!$.nodeName(e,"html")&&"static"===$.css(e,"position");)e=e.offsetParent;return e||ct})}}),$.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,o){var s=/Y/.test(o);$.fn[t]=function(e){return h(this,function(e,t,i){var n=pi(e);return void 0===i?n?o in n?n[o]:n.document.documentElement[t]:e[t]:void(n?n.scrollTo(s?$(n).scrollLeft():i,s?i:$(n).scrollTop()):e[t]=i)},t,e,arguments.length,null)}}),$.each(["top","left"],function(e,i){$.cssHooks[i]=ut(g.pixelPosition,function(e,t){return t?(t=f(e,i),lt.test(t)?$(e).position()[i]+"px":t):void 0})}),$.each({Height:"height",Width:"width"},function(s,a){$.each({padding:"inner"+s,content:a,"":"outer"+s},function(n,e){$.fn[e]=function(e,t){var i=arguments.length&&(n||"boolean"!=typeof e),o=n||(!0===e||!0===t?"margin":"border");return h(this,function(e,t,i){var n;return $.isWindow(e)?e.document.documentElement["client"+s]:9===e.nodeType?(n=e.documentElement,Math.max(e.body["scroll"+s],n["scroll"+s],e.body["offset"+s],n["offset"+s],n["client"+s])):void 0===i?$.css(e,t,o):$.style(e,t,i,o)},a,i?e:void 0,i,null)}})}),$.fn.extend({bind:function(e,t,i){return this.on(e,null,t,i)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,i,n){return this.on(t,e,i,n)},undelegate:function(e,t,i){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",i)}}),$.fn.size=function(){return this.length},$.fn.andSelf=$.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return $});var mi=_.jQuery,gi=_.$;return $.noConflict=function(e){return _.$===$&&(_.$=gi),e&&_.jQuery===$&&(_.jQuery=mi),$},D||(_.jQuery=_.$=$),$}),(r=>{function n(e,t){var i,n,o,s=e.nodeName.toLowerCase();return"area"===s?(n=(i=e.parentNode).name,!(!e.href||!n||"map"!==i.nodeName.toLowerCase()||!(o=r("img[usemap=#"+n+"]")[0]))&&a(o)):(/input|select|textarea|button|object/.test(s)?!e.disabled:"a"===s&&e.href||t)&&a(e)}function a(e){return r.expr.filters.visible(e)&&!r(e).parents().addBack().filter(function(){return"hidden"===r.css(this,"visibility")}).length}var t,e,i=0,o=/^ui-id-\d+$/;r.ui=r.ui||{},r.extend(r.ui,{version:"1.10.3",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),r.fn.extend({focus:(e=r.fn.focus,function(t,i){return"number"==typeof t?this.each(function(){var e=this;setTimeout(function(){r(e).focus(),i&&i.call(e)},t)}):e.apply(this,arguments)}),scrollParent:function(){var e=(r.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(r.css(this,"position"))&&/(auto|scroll)/.test(r.css(this,"overflow")+r.css(this,"overflow-y")+r.css(this,"overflow-x"))}):this.parents().filter(function(){return/(auto|scroll)/.test(r.css(this,"overflow")+r.css(this,"overflow-y")+r.css(this,"overflow-x"))})).eq(0);return/fixed/.test(this.css("position"))||!e.length?r(document):e},zIndex:function(e){if(void 0!==e)return this.css("zIndex",e);if(this.length)for(var t,i=r(this[0]);i.length&&i[0]!==document;){if(("absolute"===(t=i.css("position"))||"relative"===t||"fixed"===t)&&(t=parseInt(i.css("zIndex"),10),!isNaN(t))&&0!==t)return t;i=i.parent()}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++i)})},removeUniqueId:function(){return this.each(function(){o.test(this.id)&&r(this).removeAttr("id")})}}),r.extend(r.expr[":"],{data:r.expr.createPseudo?r.expr.createPseudo(function(t){return function(e){return!!r.data(e,t)}}):function(e,t,i){return!!r.data(e,i[3])},focusable:function(e){return n(e,!isNaN(r.attr(e,"tabindex")))},tabbable:function(e){var t=r.attr(e,"tabindex"),i=isNaN(t);return(i||0<=t)&&n(e,!i)}}),r("").outerWidth(1).jquery||r.each(["Width","Height"],function(e,i){function n(e,t,i,n){return r.each(o,function(){t-=parseFloat(r.css(e,"padding"+this))||0,i&&(t-=parseFloat(r.css(e,"border"+this+"Width"))||0),n&&(t-=parseFloat(r.css(e,"margin"+this))||0)}),t}var o="Width"===i?["Left","Right"]:["Top","Bottom"],s=i.toLowerCase(),a={innerWidth:r.fn.innerWidth,innerHeight:r.fn.innerHeight,outerWidth:r.fn.outerWidth,outerHeight:r.fn.outerHeight};r.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){r(this).css(s,n(this,e)+"px")})},r.fn["outer"+i]=function(e,t){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){r(this).css(s,n(this,e,!0,t)+"px")})}}),r.fn.addBack||(r.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),r("").data("a-b","a").removeData("a-b").data("a-b")&&(r.fn.removeData=(t=r.fn.removeData,function(e){return arguments.length?t.call(this,r.camelCase(e)):t.call(this)})),r.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),r.support.selectstart="onselectstart"in document.createElement("div"),r.fn.extend({disableSelection:function(){return this.bind((r.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),r.extend(r.ui,{plugin:{add:function(e,t,i){var n,o=r.ui[e].prototype;for(n in i)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([t,i[n]])},call:function(e,t,i){var n,o=e.plugins[t];if(o&&e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType)for(n=0;o.length>n;n++)e.options[o[n][0]]&&o[n][1].apply(e.element,i)}},hasScroll:function(e,t){var i;return"hidden"!==r(e).css("overflow")&&(i=!1,0{var i=0,r=Array.prototype.slice,n=c.cleanData;c.cleanData=function(e){for(var t,i=0;null!=(t=e[i]);i++)try{c(t).triggerHandler("remove")}catch(e){}n(e)},c.widget=function(e,i,t){var n,o,s,a,r={},l=e.split(".")[0];e=e.split(".")[1],n=l+"-"+e,t||(t=i,i=c.Widget),c.expr[":"][n.toLowerCase()]=function(e){return!!c.data(e,n)},c[l]=c[l]||{},o=c[l][e],s=c[l][e]=function(e,t){return this._createWidget?(arguments.length&&this._createWidget(e,t),d):new s(e,t)},c.extend(s,o,{version:t.version,_proto:c.extend({},t),_childConstructors:[]}),(a=new i).options=c.widget.extend({},a.options),c.each(t,function(t,n){return c.isFunction(n)?r[t]=function(){var e,t=this._super,i=this._superApply;return this._super=o,this._superApply=s,e=n.apply(this,arguments),this._super=t,this._superApply=i,e}:r[t]=n,d;function o(){return i.prototype[t].apply(this,arguments)}function s(e){return i.prototype[t].apply(this,e)}}),s.prototype=c.widget.extend(a,{widgetEventPrefix:o?a.widgetEventPrefix:e},r,{constructor:s,namespace:l,widgetName:e,widgetFullName:n}),o?(c.each(o._childConstructors,function(e,t){var i=t.prototype;c.widget(i.namespace+"."+i.widgetName,s,t._proto)}),delete o._childConstructors):i._childConstructors.push(s),c.widget.bridge(e,s)},c.widget.extend=function(e){for(var t,i,n=r.call(arguments,1),o=0,s=n.length;o",options:{disabled:!1,create:null},_createWidget:function(e,t){t=c(t||this.defaultElement||this)[0],this.element=c(t),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=c.widget.extend({},this.options,this._getCreateOptions(),e),this.bindings=c(),this.hoverable=c(),this.focusable=c(),t!==this&&(c.data(t,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===t&&this.destroy()}}),this.document=c(t.style?t.ownerDocument:t.document||t),this.window=c(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:c.noop,_getCreateEventData:c.noop,_create:c.noop,_init:c.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(c.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:c.noop,widget:function(){return this.element},option:function(e,t){var i,n,o,s=e;if(0===arguments.length)return c.widget.extend({},this.options);if("string"==typeof e)if(s={},e=(i=e.split(".")).shift(),i.length){for(n=s[e]=c.widget.extend({},this.options[e]),o=0;i.length-1>o;o++)n[i[o]]=n[i[o]]||{},n=n[i[o]];if(e=i.pop(),t===d)return n[e]===d?null:n[e];n[e]=t}else{if(t===d)return this.options[e]===d?null:this.options[e];s[e]=t}return this._setOptions(s),this},_setOptions:function(e){for(var t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!t).attr("aria-disabled",t),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(o,s,e){var a,r=this;"boolean"!=typeof o&&(e=s,s=o,o=!1),e?(s=a=c(s),this.bindings=this.bindings.add(s)):(e=s,s=this.element,a=this.widget()),c.each(e,function(e,t){function i(){return o||!0!==r.options.disabled&&!c(this).hasClass("ui-state-disabled")?("string"==typeof t?r[t]:t).apply(r,arguments):d}"string"!=typeof t&&(i.guid=t.guid=t.guid||i.guid||c.guid++);var e=e.match(/^(\w+)\s*(.*)$/),n=e[1]+r.eventNamespace,e=e[2];e?a.delegate(e,n,i):s.bind(n,i)})},_off:function(e,t){t=(t||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){var i=this;return setTimeout(function(){return("string"==typeof e?i[e]:e).apply(i,arguments)},t||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){c(e.currentTarget).addClass("ui-state-hover")},mouseleave:function(e){c(e.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){c(e.currentTarget).addClass("ui-state-focus")},focusout:function(e){c(e.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(e,t,i){var n,o,s=this.options[e];if(i=i||{},(t=c.Event(t)).type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),t.target=this.element[0],o=t.originalEvent)for(n in o)n in t||(t[n]=o[n]);return this.element.trigger(t,i),!(c.isFunction(s)&&!1===s.apply(this.element[0],[t].concat(i))||t.isDefaultPrevented())}},c.each({show:"fadeIn",hide:"fadeOut"},function(s,a){c.Widget.prototype["_"+s]=function(t,e,i){var n=(e="string"==typeof e?{effect:e}:e)?!0!==e&&"number"!=typeof e&&e.effect||a:s,o=!c.isEmptyObject(e="number"==typeof(e=e||{})?{duration:e}:e);e.complete=i,e.delay&&t.delay(e.delay),o&&c.effects&&c.effects.effect[n]?t[s](e):n!==s&&t[n]?t[n](e.duration,e.easing,i):t.queue(function(e){c(this)[s](),i&&i.call(t[0]),e()})}})})(jQuery),(o=>{var s=!1;o(document).mouseup(function(){s=!1}),o.widget("ui.mouse",{version:"1.10.3",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(e){return!0===o.data(e.target,t.widgetName+".preventClickEvent")?(o.removeData(e.target,t.widgetName+".preventClickEvent"),e.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&o(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){var t,i,n;if(!s)return this._mouseStarted&&this._mouseUp(e),i=1===(this._mouseDownEvent=e).which,n=!("string"!=typeof(t=this).options.cancel||!e.target.nodeName)&&o(e.target).closest(this.options.cancel).length,i&&!n&&this._mouseCapture(e)&&(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){t.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=!1!==this._mouseStart(e),!this._mouseStarted)?e.preventDefault():(!0===o.data(e.target,this.widgetName+".preventClickEvent")&&o.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return t._mouseMove(e)},this._mouseUpDelegate=function(e){return t._mouseUp(e)},o(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),s=!0)),!0},_mouseMove:function(e){return o.ui.ie&&(!document.documentMode||document.documentMode<9)&&!e.button?this._mouseUp(e):this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,e),this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){return o(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&o.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})})(jQuery),($=>{function x(e,t,i){return[parseFloat(e[0])*(l.test(e[0])?t/100:1),parseFloat(e[1])*(l.test(e[1])?i/100:1)]}function P(e,t){return parseInt($.css(e,t),10)||0}$.ui=$.ui||{};var n,C=Math.max,F=Math.abs,j=Math.round,o=/left|center|right/,s=/top|center|bottom/,a=/[\+\-]\d+(\.[\d]+)?%?/,r=/^\w+/,l=/%$/,i=$.fn.position;$.position={scrollbarWidth:function(){var e,t,i;return void 0!==n?n:(i=(t=$("
")).children()[0],$("body").append(t),e=i.offsetWidth,t.css("overflow","scroll"),e===(i=i.offsetWidth)&&(i=t[0].clientWidth),t.remove(),n=e-i)},getScrollInfo:function(e){var t=e.isWindow?"":e.element.css("overflow-x"),i=e.isWindow?"":e.element.css("overflow-y"),t="scroll"===t||"auto"===t&&e.widthF(t+i)&&(s.horizontal="center"),pF(n+o)&&(s.vertical="middle"),s.important=C(F(t),F(i))>C(F(n),F(o))?"horizontal":"vertical",u.using.call(this,e,s)}),a.offset($.extend(c,{using:e}))})},$.ui.position={fit:{left:function(e,t){var i,n=t.within,o=n.isWindow?n.scrollLeft:n.offset.left,n=n.width,s=e.left-t.collisionPosition.marginLeft,a=o-s,r=s+t.collisionWidth-n-o;no)&&(e.left+=r+l+c):0F(n))&&(e.left+=r+l+c)},top:function(e,t){var i=t.within,n=i.offset.top+i.scrollTop,o=i.height,i=i.isWindow?i.scrollTop:i.offset.top,s=e.top-t.collisionPosition.marginTop,a=s-i,s=s+t.collisionHeight-o-i,r="top"===t.my[1]?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,l="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,c=-2*t.offset[1];a<0?(o=e.top+r+l+c+t.collisionHeight-o-n,ao)&&(e.top+=r+l+c)):0F(n))&&(e.top+=r+l+c)}},flipfit:{left:function(){$.ui.position.flip.left.apply(this,arguments),$.ui.position.fit.left.apply(this,arguments)},top:function(){$.ui.position.flip.top.apply(this,arguments),$.ui.position.fit.top.apply(this,arguments)}}};var e,t=document.getElementsByTagName("body")[0],c=document.createElement("div"),d=document.createElement(t?"div":"body"),u={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(e in t&&$.extend(u,{position:"absolute",left:"-1000px",top:"-1000px"}),u)d.style[e]=u[e];d.appendChild(c),(t=t||document.documentElement).insertBefore(d,t.firstChild),c.style.cssText="position: absolute; left: 10.7432222px;",c=$(c).offset().left,$.support.offsetFractions=10{y.widget("ui.draggable",y.ui.mouse,{version:"1.10.3",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"!==this.options.helper||/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},_destroy:function(){this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy()},_mouseCapture:function(e){var t=this.options;return!(this.helper||t.disabled||0").css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(y(this).offset()).appendTo("body")}),0))},_mouseStart:function(e){var t=this.options;return this.helper=this._createHelper(e),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),y.ui.ddmanager&&(y.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offsetParent=this.helper.offsetParent(),this.offsetParentCssPosition=this.offsetParent.css("position"),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.offset.scroll=!1,y.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,t.cursorAt&&this._adjustOffsetFromHelper(t.cursorAt),this._setContainment(),!1===this._trigger("start",e)?(this._clear(),!1):(this._cacheHelperProportions(),y.ui.ddmanager&&!t.dropBehaviour&&y.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),y.ui.ddmanager&&y.ui.ddmanager.dragStart(this,e),!0)},_mouseDrag:function(e,t){if("fixed"===this.offsetParentCssPosition&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),!t){t=this._uiHash();if(!1===this._trigger("drag",e,t))return this._mouseUp({}),!1;this.position=t.position}return this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),y.ui.ddmanager&&y.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var t=this,i=!1;return y.ui.ddmanager&&!this.options.dropBehaviour&&(i=y.ui.ddmanager.drop(this,e)),this.dropped&&(i=this.dropped,this.dropped=!1),("original"!==this.options.helper||y.contains(this.element[0].ownerDocument,this.element[0]))&&("invalid"===this.options.revert&&!i||"valid"===this.options.revert&&i||!0===this.options.revert||y.isFunction(this.options.revert)&&this.options.revert.call(this.element,i)?y(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){!1!==t._trigger("stop",e)&&t._clear()}):!1!==this._trigger("stop",e)&&this._clear()),!1},_mouseUp:function(e){return y("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),y.ui.ddmanager&&y.ui.ddmanager.dragStop(this,e),y.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(e){return!this.options.handle||!!y(e.target).closest(this.element.find(this.options.handle)).length},_createHelper:function(e){var t=this.options,e=y.isFunction(t.helper)?y(t.helper.apply(this.element[0],[e])):"clone"===t.helper?this.element.clone().removeAttr("id"):this.element;return e.parents("body").length||e.appendTo("parent"===t.appendTo?this.element[0].parentNode:t.appendTo),e[0]===this.element[0]||/(fixed|absolute)/.test(e.css("position"))||e.css("position","absolute"),e},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),"left"in(e=y.isArray(e)?{left:+e[0],top:+e[1]||0}:e)&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&y.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),{top:(e=this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&y.ui.ie?{top:0,left:0}:e).top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){var e;return"relative"===this.cssPosition?{top:(e=this.element.position()).top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}:{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,t,i=this.options;return i.containment?"window"===i.containment?void(this.containment=[y(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,y(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,y(window).scrollLeft()+y(window).width()-this.helperProportions.width-this.margins.left,y(window).scrollTop()+(y(window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):"document"===i.containment?void(this.containment=[0,0,y(document).width()-this.helperProportions.width-this.margins.left,(y(document).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]):i.containment.constructor===Array?void(this.containment=i.containment):("parent"===i.containment&&(i.containment=this.helper[0].parentNode),void((t=(i=y(i.containment))[0])&&(e="hidden"!==i.css("overflow"),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=i))):void(this.containment=null)},_convertPositionTo:function(e,t){t=t||this.position;var e="absolute"===e?1:-1,i="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&y.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent;return this.offset.scroll||(this.offset.scroll={top:i.scrollTop(),left:i.scrollLeft()}),{top:t.top+this.offset.relative.top*e+this.offset.parent.top*e-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():this.offset.scroll.top)*e,left:t.left+this.offset.relative.left*e+this.offset.parent.left*e-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():this.offset.scroll.left)*e}},_generatePosition:function(e){var t,i=this.options,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&y.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=e.pageX,s=e.pageY;return this.offset.scroll||(this.offset.scroll={top:n.scrollTop(),left:n.scrollLeft()}),this.originalPosition&&(this.containment&&(t=this.relative_container?(n=this.relative_container.offset(),[this.containment[0]+n.left,this.containment[1]+n.top,this.containment[2]+n.left,this.containment[3]+n.top]):this.containment,e.pageX-this.offset.click.leftt[2]&&(o=t[2]+this.offset.click.left),e.pageY-this.offset.click.top>t[3])&&(s=t[3]+this.offset.click.top),i.grid)&&(n=i.grid[1]?this.originalPageY+Math.round((s-this.originalPageY)/i.grid[1])*i.grid[1]:this.originalPageY,s=!t||n-this.offset.click.top>=t[1]||n-this.offset.click.top>t[3]?n:n-this.offset.click.top>=t[1]?n-i.grid[1]:n+i.grid[1],e=i.grid[0]?this.originalPageX+Math.round((o-this.originalPageX)/i.grid[0])*i.grid[0]:this.originalPageX,o=!t||e-this.offset.click.left>=t[0]||e-this.offset.click.left>t[2]?e:e-this.offset.click.left>=t[0]?e-i.grid[0]:e+i.grid[0]),{top:s-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():this.offset.scroll.top),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(e,t,i){return i=i||this._uiHash(),y.ui.plugin.call(this,e,[t,i]),"drag"===e&&(this.positionAbs=this._convertPositionTo("absolute")),y.Widget.prototype._trigger.call(this,e,t,i)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),y.ui.plugin.add("draggable","connectToSortable",{start:function(t,e){var i=y(this).data("ui-draggable"),n=i.options,o=y.extend({},e,{item:i.element});i.sortables=[],y(n.connectToSortable).each(function(){var e=y.data(this,"ui-sortable");e&&!e.options.disabled&&(i.sortables.push({instance:e,shouldRevert:e.options.revert}),e.refreshPositions(),e._trigger("activate",t,o))})},stop:function(e,t){var i=y(this).data("ui-draggable"),n=y.extend({},t,{item:i.element});y.each(i.sortables,function(){this.instance.isOver?(this.instance.isOver=0,i.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=this.shouldRevert),this.instance._mouseStop(e),this.instance.options.helper=this.instance.options._helper,"original"===i.options.helper&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",e,n))})},drag:function(i,n){var o=y(this).data("ui-draggable"),s=this;y.each(o.sortables,function(){var e=!1,t=this;this.instance.positionAbs=o.positionAbs,this.instance.helperProportions=o.helperProportions,this.instance.offset.click=o.offset.click,this.instance._intersectsWith(this.instance.containerCache)&&(e=!0,y.each(o.sortables,function(){return this.instance.positionAbs=o.positionAbs,this.instance.helperProportions=o.helperProportions,this.instance.offset.click=o.offset.click,e=this!==t&&this.instance._intersectsWith(this.instance.containerCache)&&y.contains(t.instance.element[0],this.instance.element[0])?!1:e})),e?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=y(s).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return n.helper[0]},i.target=this.instance.currentItem[0],this.instance._mouseCapture(i,!0),this.instance._mouseStart(i,!0,!0),this.instance.offset.click.top=o.offset.click.top,this.instance.offset.click.left=o.offset.click.left,this.instance.offset.parent.left-=o.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=o.offset.parent.top-this.instance.offset.parent.top,o._trigger("toSortable",i),o.dropped=this.instance.element,o.currentItem=o.element,this.instance.fromOutside=o),this.instance.currentItem&&this.instance._mouseDrag(i)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",i,this.instance._uiHash(this.instance)),this.instance._mouseStop(i,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),o._trigger("fromSortable",i),o.dropped=!1)})}}),y.ui.plugin.add("draggable","cursor",{start:function(){var e=y("body"),t=y(this).data("ui-draggable").options;e.css("cursor")&&(t._cursor=e.css("cursor")),e.css("cursor",t.cursor)},stop:function(){var e=y(this).data("ui-draggable").options;e._cursor&&y("body").css("cursor",e._cursor)}}),y.ui.plugin.add("draggable","opacity",{start:function(e,t){var t=y(t.helper),i=y(this).data("ui-draggable").options;t.css("opacity")&&(i._opacity=t.css("opacity")),t.css("opacity",i.opacity)},stop:function(e,t){var i=y(this).data("ui-draggable").options;i._opacity&&y(t.helper).css("opacity",i._opacity)}}),y.ui.plugin.add("draggable","scroll",{start:function(){var e=y(this).data("ui-draggable");e.scrollParent[0]!==document&&"HTML"!==e.scrollParent[0].tagName&&(e.overflowOffset=e.scrollParent.offset())},drag:function(e){var t=y(this).data("ui-draggable"),i=t.options,n=!1;t.scrollParent[0]!==document&&"HTML"!==t.scrollParent[0].tagName?(i.axis&&"x"===i.axis||(t.overflowOffset.top+t.scrollParent[0].offsetHeight-e.pageY=Math.abs(l-v),n=f>=Math.abs(c-g),o=f>=Math.abs(a-m),s=f>=Math.abs(r-p),i&&(t.position.top=u._convertPositionTo("relative",{top:l-u.helperProportions.height,left:0}).top-u.margins.top),n&&(t.position.top=u._convertPositionTo("relative",{top:c,left:0}).top-u.margins.top),o&&(t.position.left=u._convertPositionTo("relative",{top:0,left:a-u.helperProportions.width}).left-u.margins.left),s)&&(t.position.left=u._convertPositionTo("relative",{top:0,left:r}).left-u.margins.left),d=i||n||o||s,"outer"!==h.snapMode&&(i=f>=Math.abs(l-g),n=f>=Math.abs(c-v),o=f>=Math.abs(a-p),s=f>=Math.abs(r-m),i&&(t.position.top=u._convertPositionTo("relative",{top:l,left:0}).top-u.margins.top),n&&(t.position.top=u._convertPositionTo("relative",{top:c-u.helperProportions.height,left:0}).top-u.margins.top),o&&(t.position.left=u._convertPositionTo("relative",{top:0,left:a}).left-u.margins.left),s)&&(t.position.left=u._convertPositionTo("relative",{top:0,left:r-u.helperProportions.width}).left-u.margins.left),!u.snapElements[b].snapping&&(i||n||o||s||d)&&u.options.snap.snap&&u.options.snap.snap.call(u.element,e,y.extend(u._uiHash(),{snapItem:u.snapElements[b].item})),u.snapElements[b].snapping=i||n||o||s||d)}}),y.ui.plugin.add("draggable","stack",{start:function(){var t,e=this.data("ui-draggable").options,e=y.makeArray(y(e.stack)).sort(function(e,t){return(parseInt(y(e).css("zIndex"),10)||0)-(parseInt(y(t).css("zIndex"),10)||0)});e.length&&(t=parseInt(y(e[0]).css("zIndex"),10)||0,y(e).each(function(e){y(this).css("zIndex",t+e)}),this.css("zIndex",t+e.length))}}),y.ui.plugin.add("draggable","zIndex",{start:function(e,t){var t=y(t.helper),i=y(this).data("ui-draggable").options;t.css("zIndex")&&(i._zIndex=t.css("zIndex")),t.css("zIndex",i.zIndex)},stop:function(e,t){var i=y(this).data("ui-draggable").options;i._zIndex&&y(t.helper).css("zIndex",i._zIndex)}})})(jQuery),(r=>{function h(e,t,i){return te;e++)t[e]===this&&t.splice(e,1);this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(e,t){"accept"===e&&(this.accept=r.isFunction(t)?t:function(e){return e.is(t)}),r.Widget.prototype._setOption.apply(this,arguments)},_activate:function(e){var t=r.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),t&&this._trigger("activate",e,this.ui(t))},_deactivate:function(e){var t=r.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),t&&this._trigger("deactivate",e,this.ui(t))},_over:function(e){var t=r.ui.ddmanager.current;t&&(t.currentItem||t.element)[0]!==this.element[0]&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",e,this.ui(t)))},_out:function(e){var t=r.ui.ddmanager.current;t&&(t.currentItem||t.element)[0]!==this.element[0]&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",e,this.ui(t)))},_drop:function(e,t){var i=t||r.ui.ddmanager.current,n=!1;return!(!i||(i.currentItem||i.element)[0]===this.element[0]||(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var e=r.data(this,"ui-droppable");return e.options.greedy&&!e.options.disabled&&e.options.scope===i.options.scope&&e.accept.call(e.element[0],i.currentItem||i.element)&&r.ui.intersect(i,r.extend(e,{offset:e.element.offset()}),e.options.tolerance)?!(n=!0):void 0}),n)||!this.accept.call(this.element[0],i.currentItem||i.element))&&(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",e,this.ui(i)),this.element)},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),r.ui.intersect=function(e,t,i){if(!t.offset)return!1;var n,o=(e.positionAbs||e.position.absolute).left,s=o+e.helperProportions.width,a=(e.positionAbs||e.position.absolute).top,r=a+e.helperProportions.height,l=t.offset.left,c=l+t.proportions.width,d=t.offset.top,u=d+t.proportions.height;switch(i){case"fit":return l<=o&&s<=c&&d<=a&&r<=u;case"intersect":return o+e.helperProportions.width/2>l&&c>s-e.helperProportions.width/2&&a+e.helperProportions.height/2>d&&u>r-e.helperProportions.height/2;case"pointer":return n=(e.positionAbs||e.position.absolute).left+(e.clickOffset||e.offset.click).left,h((e.positionAbs||e.position.absolute).top+(e.clickOffset||e.offset.click).top,d,t.proportions.height)&&h(n,l,t.proportions.width);case"touch":return(d<=a&&a<=u||d<=r&&r<=u||ai;i++)if(!(o[i].options.disabled||e&&!o[i].accept.call(o[i].element[0],e.currentItem||e.element))){for(n=0;a.length>n;n++)if(a[n]===o[i].element[0]){o[i].proportions.height=0;continue e}o[i].visible="none"!==o[i].element.css("display"),o[i].visible&&("mousedown"===s&&o[i]._activate.call(o[i],t),o[i].offset=o[i].element.offset(),o[i].proportions={width:o[i].element[0].offsetWidth,height:o[i].element[0].offsetHeight})}},drop:function(e,t){var i=!1;return r.each((r.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&r.ui.intersect(e,this,this.options.tolerance)&&(i=this._drop.call(this,t)||i),!this.options.disabled)&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,t))}),i},dragStart:function(e,t){e.element.parentsUntil("body").bind("scroll.droppable",function(){e.options.refreshPositions||r.ui.ddmanager.prepareOffsets(e,t)})},drag:function(o,s){o.options.refreshPositions&&r.ui.ddmanager.prepareOffsets(o,s),r.each(r.ui.ddmanager.droppables[o.options.scope]||[],function(){var e,t,i,n;this.options.disabled||this.greedyChild||!this.visible||(n=!(n=r.ui.intersect(o,this,this.options.tolerance))&&this.isover?"isout":n&&!this.isover?"isover":null)&&(this.options.greedy&&(t=this.options.scope,(i=this.element.parents(":data(ui-droppable)").filter(function(){return r.data(this,"ui-droppable").options.scope===t})).length)&&((e=r.data(i[0],"ui-droppable")).greedyChild="isover"===n),e&&"isover"===n&&(e.isover=!1,e.isout=!0,e._out.call(e,s)),this[n]=!0,this["isout"===n?"isover":"isout"]=!1,this["isover"===n?"_over":"_out"].call(this,s),e)&&"isout"===n&&(e.isout=!1,e.isover=!0,e._over.call(e,s))})},dragStop:function(e,t){e.element.parentsUntil("body").unbind("scroll.droppable"),e.options.refreshPositions||r.ui.ddmanager.prepareOffsets(e,t)}}})(jQuery),(m=>{function r(e){return parseInt(e,10)||0}function d(e){return!isNaN(parseInt(e,10))}m.widget("ui.resizable",m.ui.mouse,{version:"1.10.3",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_create:function(){var e,t,i,n,o=this,s=this.options;if(this.element.addClass("ui-resizable"),m.extend(this,{_aspectRatio:!!s.aspectRatio,aspectRatio:s.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:s.helper||s.ghost||s.animate?s.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(m("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.data("ui-resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=s.handles||(m(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),e=this.handles.split(","),this.handles={},t=0;e.length>t;t++)i=m.trim(e[t]),(n=m("
")).css({zIndex:s.zIndex}),"se"===i&&n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[i]=".ui-resizable-"+i,this.element.append(n);this._renderAxis=function(e){var t,i,n;for(t in e=e||this.element,this.handles)this.handles[t].constructor===String&&(this.handles[t]=m(this.handles[t],this.element).show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(n=m(this.handles[t],this.element),n=/sw|ne|nw|se|n|s/.test(t)?n.outerHeight():n.outerWidth(),i=["padding",/ne|nw|n/.test(t)?"Top":/se|sw|s/.test(t)?"Bottom":/^e$/.test(t)?"Right":"Left"].join(""),e.css(i,n),this._proportionallyResize()),m(this.handles[t]).length},this._renderAxis(this.element),this._handles=m(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=n&&n[1]?n[1]:"se")}),s.autoHide&&(this._handles.hide(),m(this.element).addClass("ui-resizable-autohide").mouseenter(function(){s.disabled||(m(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){s.disabled||o.resizing||(m(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();function e(e){m(e).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}var t;return this.elementIsWrapper&&(e(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),e(this.originalElement),this},_mouseCapture:function(e){var t,i,n=!1;for(t in this.handles)i=m(this.handles[t])[0],i!==e.target&&!m.contains(i,e.target)||(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var t,i=this.options,n=this.element.position(),o=this.element;return this.resizing=!0,/absolute/.test(o.css("position"))?o.css({position:"absolute",top:o.css("top"),left:o.css("left")}):o.is(".ui-draggable")&&o.css({position:"absolute",top:n.top,left:n.left}),this._renderProxy(),n=r(this.helper.css("left")),t=r(this.helper.css("top")),i.containment&&(n+=m(i.containment).scrollLeft()||0,t+=m(i.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:n,top:t},this.size=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.originalSize=this._helper?{width:o.outerWidth(),height:o.outerHeight()}:{width:o.width(),height:o.height()},this.originalPosition={left:n,top:t},this.sizeDiff={width:o.outerWidth()-o.width(),height:o.outerHeight()-o.height()},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof i.aspectRatio?i.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=m(".ui-resizable-"+this.axis).css("cursor"),m("body").css("cursor","auto"===n?this.axis+"-resize":n),o.addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var t=this.helper,i={},n=this.originalMousePosition,o=this.axis,s=this.position.top,a=this.position.left,r=this.size.width,l=this.size.height,c=e.pageX-n.left||0,o=this._change[o];return o&&(o=o.apply(this,[e,c,e.pageY-n.top||0]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(o=this._updateRatio(o,e)),o=this._respectSize(o,e),this._updateCache(o),this._propagate("resize",e),this.position.top!==s&&(i.top=this.position.top+"px"),this.position.left!==a&&(i.left=this.position.left+"px"),this.size.width!==r&&(i.width=this.size.width+"px"),this.size.height!==l&&(i.height=this.size.height+"px"),t.css(i),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),m.isEmptyObject(i)||this._trigger("resize",e,this.ui())),!1},_mouseStop:function(e){this.resizing=!1;var t,i,n,o=this.options,s=this;return this._helper&&(i=(t=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&m.ui.hasScroll(i[0],"left")?0:s.sizeDiff.height,t=t?0:s.sizeDiff.width,t={width:s.helper.width()-t,height:s.helper.height()-i},i=parseInt(s.element.css("left"),10)+(s.position.left-s.originalPosition.left)||null,n=parseInt(s.element.css("top"),10)+(s.position.top-s.originalPosition.top)||null,o.animate||this.element.css(m.extend(t,{top:n,left:i})),s.helper.height(s.size.height),s.helper.width(s.size.width),this._helper)&&!o.animate&&this._proportionallyResize(),m("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t,i,n,o=this.options,o={minWidth:d(o.minWidth)?o.minWidth:0,maxWidth:d(o.maxWidth)?o.maxWidth:1/0,minHeight:d(o.minHeight)?o.minHeight:0,maxHeight:d(o.maxHeight)?o.maxHeight:1/0};(this._aspectRatio||e)&&(e=o.minHeight*this.aspectRatio,i=o.minWidth/this.aspectRatio,t=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,o.minWidthe.width,a=d(e.height)&&t.minHeight&&t.minHeight>e.height,r=this.originalPosition.left+this.originalSize.width,l=this.position.top+this.size.height,c=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return s&&(e.width=t.minWidth),a&&(e.height=t.minHeight),n&&(e.width=t.maxWidth),o&&(e.height=t.maxHeight),s&&c&&(e.left=r-t.minWidth),n&&c&&(e.left=r-t.maxWidth),a&&i&&(e.top=l-t.minHeight),o&&i&&(e.top=l-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var e,t,i,n,o=this.helper||this.element,s=0;this._proportionallyResizeElements.length>s;s++){if(n=this._proportionallyResizeElements[s],!this.borderDif)for(this.borderDif=[],t=[n.css("borderTopWidth"),n.css("borderRightWidth"),n.css("borderBottomWidth"),n.css("borderLeftWidth")],i=[n.css("paddingTop"),n.css("paddingRight"),n.css("paddingBottom"),n.css("paddingLeft")],e=0;e"),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++t.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var i=this.originalSize;return{left:this.originalPosition.left+t,width:i.width-t}},n:function(e,t,i){var n=this.originalSize;return{top:this.originalPosition.top+i,height:n.height-i}},s:function(e,t,i){return{height:this.originalSize.height+i}},se:function(e,t,i){return m.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,t,i]))},sw:function(e,t,i){return m.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,t,i]))},ne:function(e,t,i){return m.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,t,i]))},nw:function(e,t,i){return m.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,t,i]))}},_propagate:function(e,t){m.ui.plugin.call(this,e,[t,this.ui()]),"resize"!==e&&this._trigger(e,t,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),m.ui.plugin.add("resizable","animate",{stop:function(t){var i=m(this).data("ui-resizable"),e=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),s=o&&m.ui.hasScroll(n[0],"left")?0:i.sizeDiff.height,o=o?0:i.sizeDiff.width,o={width:i.size.width-o,height:i.size.height-s},s=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,a=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(m.extend(o,a&&s?{top:a,left:s}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var e={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&m(n[0]).css({width:e.width,height:e.height}),i._updateCache(e),i._propagate("resize",t)}})}}),m.ui.plugin.add("resizable","containment",{start:function(){var i,n,e,t,o=m(this).data("ui-resizable"),s=o.options,a=o.element,s=s.containment,a=s instanceof m?s.get(0):/parent/.test(s)?a.parent().get(0):s;a&&(o.containerElement=m(a),/document/.test(s)||s===document?(o.containerOffset={left:0,top:0},o.containerPosition={left:0,top:0},o.parentData={element:m(document),left:0,top:0,width:m(document).width(),height:m(document).height()||document.body.parentNode.scrollHeight}):(i=m(a),n=[],m(["Top","Right","Left","Bottom"]).each(function(e,t){n[e]=r(i.css("padding"+t))}),o.containerOffset=i.offset(),o.containerPosition=i.position(),o.containerSize={height:i.innerHeight()-n[3],width:i.innerWidth()-n[1]},s=o.containerOffset,t=o.containerSize.height,e=o.containerSize.width,e=m.ui.hasScroll(a,"left")?a.scrollWidth:e,t=m.ui.hasScroll(a)?a.scrollHeight:t,o.parentData={element:a,left:s.left,top:s.top,width:e,height:t}))},resize:function(e){var t=m(this).data("ui-resizable"),i=t.options,n=t.containerOffset,o=t.position,e=t._aspectRatio||e.shiftKey,s={top:0,left:0},a=t.containerElement;a[0]!==document&&/static/.test(a.css("position"))&&(s=n),o.left<(t._helper?n.left:0)&&(t.size.width=t.size.width+(t._helper?t.position.left-n.left:t.position.left-s.left),e&&(t.size.height=t.size.width/t.aspectRatio),t.position.left=i.helper?n.left:0),o.top<(t._helper?n.top:0)&&(t.size.height=t.size.height+(t._helper?t.position.top-n.top:t.position.top),e&&(t.size.width=t.size.height*t.aspectRatio),t.position.top=t._helper?n.top:0),t.offset.left=t.parentData.left+t.position.left,t.offset.top=t.parentData.top+t.position.top,a=Math.abs(t.offset.left-s.left+t.sizeDiff.width),i=Math.abs((t._helper?t.offset.top-s.top:t.offset.top-n.top)+t.sizeDiff.height),o=t.containerElement.get(0)===t.element.parent().get(0),s=/relative|absolute/.test(t.containerElement.css("position")),o&&s&&(a-=t.parentData.left),a+t.size.width>=t.parentData.width&&(t.size.width=t.parentData.width-a,e)&&(t.size.height=t.size.width/t.aspectRatio),i+t.size.height>=t.parentData.height&&(t.size.height=t.parentData.height-i,e)&&(t.size.width=t.size.height*t.aspectRatio)},stop:function(){var e=m(this).data("ui-resizable"),t=e.options,i=e.containerOffset,n=e.containerPosition,o=e.containerElement,s=m(e.helper),a=s.offset(),r=s.outerWidth()-e.sizeDiff.width,s=s.outerHeight()-e.sizeDiff.height;e._helper&&!t.animate&&/relative/.test(o.css("position"))&&m(this).css({left:a.left-n.left-i.left,width:r,height:s}),e._helper&&!t.animate&&/static/.test(o.css("position"))&&m(this).css({left:a.left-n.left-i.left,width:r,height:s})}}),m.ui.plugin.add("resizable","alsoResize",{start:function(){function t(e){m(e).each(function(){var e=m(this);e.data("ui-resizable-alsoresize",{width:parseInt(e.width(),10),height:parseInt(e.height(),10),left:parseInt(e.css("left"),10),top:parseInt(e.css("top"),10)})})}var e=m(this).data("ui-resizable").options;"object"!=typeof e.alsoResize||e.alsoResize.parentNode?t(e.alsoResize):e.alsoResize.length?(e.alsoResize=e.alsoResize[0],t(e.alsoResize)):m.each(e.alsoResize,function(e){t(e)})},resize:function(e,s){function i(e,i){m(e).each(function(){var e=m(this),n=m(this).data("ui-resizable-alsoresize"),o={},t=i&&i.length?i:e.parents(s.originalElement[0]).length?["width","height"]:["width","height","top","left"];m.each(t,function(e,t){var i=(n[t]||0)+(r[t]||0);i&&0<=i&&(o[t]=i||null)}),e.css(o)})}var t=m(this).data("ui-resizable"),n=t.options,o=t.originalSize,a=t.originalPosition,r={height:t.size.height-o.height||0,width:t.size.width-o.width||0,top:t.position.top-a.top||0,left:t.position.left-a.left||0};"object"!=typeof n.alsoResize||n.alsoResize.nodeType?i(n.alsoResize):m.each(n.alsoResize,function(e,t){i(e,t)})},stop:function(){m(this).removeData("resizable-alsoresize")}}),m.ui.plugin.add("resizable","ghost",{start:function(){var e=m(this).data("ui-resizable"),t=e.options,i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof t.ghost?t.ghost:""),e.ghost.appendTo(e.helper)},resize:function(){var e=m(this).data("ui-resizable");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=m(this).data("ui-resizable");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),m.ui.plugin.add("resizable","grid",{resize:function(){var e=m(this).data("ui-resizable"),t=e.options,i=e.size,n=e.originalSize,o=e.originalPosition,s=e.axis,a="number"==typeof t.grid?[t.grid,t.grid]:t.grid,r=a[0]||1,l=a[1]||1,c=Math.round((i.width-n.width)/r)*r,i=Math.round((i.height-n.height)/l)*l,d=n.width+c,n=n.height+i,u=t.maxWidth&&d>t.maxWidth,h=t.maxHeight&&n>t.maxHeight,f=t.minWidth&&t.minWidth>d,p=t.minHeight&&t.minHeight>n;t.grid=a,f&&(d+=r),p&&(n+=l),u&&(d-=r),h&&(n-=l),/^(se|s|e)$/.test(s)?(e.size.width=d,e.size.height=n):/^(ne)$/.test(s)?(e.size.width=d,e.size.height=n,e.position.top=o.top-i):(/^(sw)$/.test(s)?(e.size.width=d,e.size.height=n):(e.size.width=d,e.size.height=n,e.position.top=o.top-i),e.position.left=o.left-c)}})})(jQuery),(c=>{c.widget("ui.selectable",c.ui.mouse,{version:"1.10.3",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e,t=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){(e=c(t.options.filter,t.element[0])).addClass("ui-selectee"),e.each(function(){var e=c(this),t=e.offset();c.data(this,"selectable-item",{element:this,$element:e,left:t.left,top:t.top,right:t.left+e.outerWidth(),bottom:t.top+e.outerHeight(),startselected:!1,selected:e.hasClass("ui-selected"),selecting:e.hasClass("ui-selecting"),unselecting:e.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=e.addClass("ui-selectee"),this._mouseInit(),this.helper=c("
")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(i){var n=this,e=this.options;this.opos=[i.pageX,i.pageY],this.options.disabled||(this.selectees=c(e.filter,this.element[0]),this._trigger("start",i),c(e.appendTo).append(this.helper),this.helper.css({left:i.pageX,top:i.pageY,width:0,height:0}),e.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var e=c.data(this,"selectable-item");e.startselected=!0,i.metaKey||i.ctrlKey||(e.$element.removeClass("ui-selected"),e.selected=!1,e.$element.addClass("ui-unselecting"),e.unselecting=!0,n._trigger("unselecting",i,{unselecting:e.element}))}),c(i.target).parents().addBack().each(function(){var e,t=c.data(this,"selectable-item");return t?(e=!i.metaKey&&!i.ctrlKey||!t.$element.hasClass("ui-selected"),t.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),t.unselecting=!e,t.selecting=e,(t.selected=e)?n._trigger("selecting",i,{selecting:t.element}):n._trigger("unselecting",i,{unselecting:t.element}),!1):void 0}))},_mouseDrag:function(i){var e,n,o,s,a,r,l;if(this.dragged=!0,!this.options.disabled)return o=(n=this).options,s=this.opos[0],a=this.opos[1],(r=i.pageX)r||s>e.right||e.top>l||a>e.bottom):"fit"===o.tolerance&&(t=e.left>s&&r>e.right&&e.top>a&&l>e.bottom),t?(e.selected&&(e.$element.removeClass("ui-selected"),e.selected=!1),e.unselecting&&(e.$element.removeClass("ui-unselecting"),e.unselecting=!1),e.selecting||(e.$element.addClass("ui-selecting"),e.selecting=!0,n._trigger("selecting",i,{selecting:e.element}))):(e.selecting&&((i.metaKey||i.ctrlKey)&&e.startselected?(e.$element.removeClass("ui-selecting"),e.selecting=!1,e.$element.addClass("ui-selected"),e.selected=!0):(e.$element.removeClass("ui-selecting"),e.selecting=!1,e.startselected&&(e.$element.addClass("ui-unselecting"),e.unselecting=!0),n._trigger("unselecting",i,{unselecting:e.element}))),!e.selected||i.metaKey||i.ctrlKey||e.startselected||(e.$element.removeClass("ui-selected"),e.selected=!1,e.$element.addClass("ui-unselecting"),e.unselecting=!0,n._trigger("unselecting",i,{unselecting:e.element}))))}),!1},_mouseStop:function(t){var i=this;return this.dragged=!1,c(".ui-unselecting",this.element[0]).each(function(){var e=c.data(this,"selectable-item");e.$element.removeClass("ui-unselecting"),e.unselecting=!1,e.startselected=!1,i._trigger("unselected",t,{unselected:e.element})}),c(".ui-selecting",this.element[0]).each(function(){var e=c.data(this,"selectable-item");e.$element.removeClass("ui-selecting").addClass("ui-selected"),e.selecting=!1,e.selected=!0,e.startselected=!0,i._trigger("selected",t,{selected:e.element})}),this._trigger("stop",t),this.helper.remove(),!1}})})(jQuery),(f=>{function p(e,t,i){return t *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=!!this.items.length&&("x"===e.axis||m(this.items[0].item)),this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var e=this.items.length-1;0<=e;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_setOption:function(e,t){"disabled"===e?(this.options[e]=t,this.widget().toggleClass("ui-sortable-disabled",!!t)):f.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(e,t){var i=null,n=!1,o=this;return!(this.reverting||this.options.disabled||"static"===this.options.type||(this._refreshItems(e),f(e.target).parents().each(function(){return f.data(this,o.widgetName+"-item")===o?(i=f(this),!1):void 0}),!(i=f.data(e.target,o.widgetName+"-item")===o?f(e.target):i))||(this.options.handle&&!t&&(f(this.options.handle,i).find("*").addBack().each(function(){this===e.target&&(n=!0)}),!n)||(this.currentItem=i,this._removeCurrentsFromItems(),0)))},_mouseStart:function(e,t,i){var n,o,s=this.options;if((this.currentContainer=this).refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},f.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,s.cursorAt&&this._adjustOffsetFromHelper(s.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),s.containment&&this._setContainment(),s.cursor&&"auto"!==s.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",s.cursor),this.storedStylesheet=f("").appendTo(o)),s.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",s.opacity)),s.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",s.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!i)for(n=this.containers.length-1;0<=n;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return f.ui.ddmanager&&(f.ui.ddmanager.current=this),f.ui.ddmanager&&!s.dropBehaviour&&f.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var t,i,n,o,s=this.options,a=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageYe[this.floating?"width":"height"]?c&&d:t+this.helperProportions.width/2>s&&a>i-this.helperProportions.width/2&&n+this.helperProportions.height/2>r&&l>o-this.helperProportions.height/2},_intersectsWithPointer:function(e){var t="x"===this.options.axis||p(this.positionAbs.top+this.offset.click.top,e.top,e.height),e="y"===this.options.axis||p(this.positionAbs.left+this.offset.click.left,e.left,e.width),t=t&&e,e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection();return!!t&&(this.floating?i&&"right"===i||"down"===e?2:1:e&&("down"===e?2:1))},_intersectsWithSides:function(e){var t=p(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),e=p(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),i=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&e||"left"===n&&!e:i&&("down"===i&&t||"up"===i&&!t)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!=e&&(0t;t++)if(i[t]===e.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var t,i,n,o,s,a,r,l,c=this.items,d=[[f.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):f(this.options.items,this.element),this]],u=this._connectWith();if(u&&this.ready)for(t=u.length-1;0<=t;t--)for(i=(n=f(u[t])).length-1;0<=i;i--)(o=f.data(n[i],this.widgetFullName))&&o!==this&&!o.options.disabled&&(d.push([f.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):f(o.options.items,o.element),o]),this.containers.push(o));for(t=d.length-1;0<=t;t--)for(s=d[t][1],l=(a=d[t][i=0]).length;i",i.document[0]).addClass(n||i.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===e?i.currentItem.children().each(function(){f(" ",i.document[0]).attr("colspan",f(this).attr("colspan")||1).appendTo(t)}):"img"===e&&t.attr("src",i.currentItem.attr("src")),n||t.css("visibility","hidden"),t},update:function(e,t){n&&!o.forcePlaceholderSize||(t.height()||t.height(i.currentItem.innerHeight()-parseInt(i.currentItem.css("paddingTop")||0,10)-parseInt(i.currentItem.css("paddingBottom")||0,10)),t.width())||t.width(i.currentItem.innerWidth()-parseInt(i.currentItem.css("paddingLeft")||0,10)-parseInt(i.currentItem.css("paddingRight")||0,10))}}),i.placeholder=f(o.placeholder.element.call(i.element,i.currentItem)),i.currentItem.after(i.placeholder),o.placeholder.update(i,i.placeholder)},_contactContainers:function(e){for(var t,i,n,o,s,a,r,l,c,d=null,u=null,h=this.containers.length-1;0<=h;h--)if(!f.contains(this.currentItem[0],this.containers[h].element[0]))if(this._intersectsWith(this.containers[h].containerCache)){if(d&&f.contains(this.containers[h].element[0],d.element[0]))continue;d=this.containers[h],u=h}else this.containers[h].containerCache.over&&(this.containers[h]._trigger("out",e,this._uiHash(this)),this.containers[h].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[u].containerCache.over||(this.containers[u]._trigger("over",e,this._uiHash(this)),this.containers[u].containerCache.over=1);else{for(i=1e4,n=null,s=(c=d.floating||m(this.currentItem))?"width":"height",a=this.positionAbs[o=c?"left":"top"]+this.offset.click[o],t=this.items.length-1;0<=t;t--)f.contains(this.containers[u].element[0],this.items[t].item[0])&&this.items[t].item[0]!==this.currentItem[0]&&(!c||p(this.positionAbs.top+this.offset.click.top,this.items[t].top,this.items[t].height))&&(r=this.items[t].item.offset()[o],l=!1,Math.abs(r-a)>Math.abs(r+this.items[t][s]-a)&&(l=!0,r+=this.items[t][s]),i>Math.abs(r-a))&&(i=Math.abs(r-a),n=this.items[t],this.direction=l?"up":"down");(n||this.options.dropOnEmpty)&&this.currentContainer!==this.containers[u]&&(n?this._rearrange(e,n,null,!0):this._rearrange(e,null,this.containers[u].element,!0),this._trigger("change",e,this._uiHash()),this.containers[u]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[u],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[u]._trigger("over",e,this._uiHash(this)),this.containers[u].containerCache.over=1)}},_createHelper:function(e){var t=this.options,e=f.isFunction(t.helper)?f(t.helper.apply(this.element[0],[e,this.currentItem])):"clone"===t.helper?this.currentItem.clone():this.currentItem;return e.parents("body").length||f("parent"!==t.appendTo?t.appendTo:this.currentItem[0].parentNode)[0].appendChild(e[0]),e[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),e[0].style.width&&!t.forceHelperSize||e.width(this.currentItem.width()),e[0].style.height&&!t.forceHelperSize||e.height(this.currentItem.height()),e},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),"left"in(e=f.isArray(e)?{left:+e[0],top:+e[1]||0}:e)&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&f.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),{top:(e=this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&f.ui.ie?{top:0,left:0}:e).top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){var e;return"relative"===this.cssPosition?{top:(e=this.currentItem.position()).top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}:{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,t,i=this.options;"parent"===i.containment&&(i.containment=this.helper[0].parentNode),"document"!==i.containment&&"window"!==i.containment||(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,f("document"===i.containment?document:window).width()-this.helperProportions.width-this.margins.left,(f("document"===i.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(i.containment)||(e=f(i.containment)[0],i=f(i.containment).offset(),t="hidden"!==f(e).css("overflow"),this.containment=[i.left+(parseInt(f(e).css("borderLeftWidth"),10)||0)+(parseInt(f(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(f(e).css("borderTopWidth"),10)||0)+(parseInt(f(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(t?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(f(e).css("borderLeftWidth"),10)||0)-(parseInt(f(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(t?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(f(e).css("borderTopWidth"),10)||0)-(parseInt(f(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,t){t=t||this.position;var e="absolute"===e?1:-1,i="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&f.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,n=/(html|body)/i.test(i[0].tagName);return{top:t.top+this.offset.relative.top*e+this.offset.parent.top*e-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():n?0:i.scrollTop())*e,left:t.left+this.offset.relative.left*e+this.offset.parent.left*e-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():n?0:i.scrollLeft())*e}},_generatePosition:function(e){var t=this.options,i=e.pageX,n=e.pageY,o="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&f.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,s=/(html|body)/i.test(o[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.leftthis.containment[2]&&(i=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3])&&(n=this.containment[3]+this.offset.click.top),t.grid)&&(e=this.originalPageY+Math.round((n-this.originalPageY)/t.grid[1])*t.grid[1],n=!this.containment||e-this.offset.click.top>=this.containment[1]&&e-this.offset.click.top<=this.containment[3]?e:e-this.offset.click.top>=this.containment[1]?e-t.grid[1]:e+t.grid[1],e=this.originalPageX+Math.round((i-this.originalPageX)/t.grid[0])*t.grid[0],i=!this.containment||e-this.offset.click.left>=this.containment[0]&&e-this.offset.click.left<=this.containment[2]?e:e-this.offset.click.left>=this.containment[0]?e-t.grid[0]:e+t.grid[0]),{top:n-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():s?0:o.scrollTop()),left:i-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():s?0:o.scrollLeft())}},_rearrange:function(e,t,i,n){i?i[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var o=this.counter;this._delay(function(){o===this.counter&&this.refreshPositions(!n)})},_clear:function(e,t){this.reverting=!1;var i,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)"auto"!==this._storedCSS[i]&&"static"!==this._storedCSS[i]||(this._storedCSS[i]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&n.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||n.push(function(e){this._trigger("update",e,this._uiHash())}),this===this.currentContainer||t||(n.push(function(e){this._trigger("remove",e,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer))),i=this.containers.length-1;0<=i;i--)t||n.push(function(t){return function(e){t._trigger("deactivate",e,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over&&(n.push(function(t){return function(e){t._trigger("out",e,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!t){for(this._trigger("beforeStop",e,this._uiHash()),i=0;i{var n=0;s.widget("ui.autocomplete",{version:"1.10.3",defaultElement:"",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var i,n,o,e=this.element[0].nodeName.toLowerCase(),t="textarea"===e,e="input"===e;this.isMultiLine=t||!e&&this.element.prop("isContentEditable"),this.valueMethod=this.element[t||e?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(e){if(this.element.prop("readOnly"))n=o=i=!0;else{n=o=i=!1;var t=s.ui.keyCode;switch(e.keyCode){case t.PAGE_UP:i=!0,this._move("previousPage",e);break;case t.PAGE_DOWN:i=!0,this._move("nextPage",e);break;case t.UP:i=!0,this._keyEvent("previous",e);break;case t.DOWN:i=!0,this._keyEvent("next",e);break;case t.ENTER:case t.NUMPAD_ENTER:this.menu.active&&(i=!0,e.preventDefault(),this.menu.select(e));break;case t.TAB:this.menu.active&&this.menu.select(e);break;case t.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(e),e.preventDefault());break;default:n=!0,this._searchTimeout(e)}}},keypress:function(e){if(i)i=!1,this.isMultiLine&&!this.menu.element.is(":visible")||e.preventDefault();else if(!n){var t=s.ui.keyCode;switch(e.keyCode){case t.PAGE_UP:this._move("previousPage",e);break;case t.PAGE_DOWN:this._move("nextPage",e);break;case t.UP:this._keyEvent("previous",e);break;case t.DOWN:this._keyEvent("next",e)}}},input:function(e){return o?(o=!1,void e.preventDefault()):void this._searchTimeout(e)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?void delete this.cancelBlur:(clearTimeout(this.searching),this.close(e),void this._change(e))}}),this._initSource(),this.menu=s("