From 6b57c78e4449cfc94e7e31be922820f067524813 Mon Sep 17 00:00:00 2001 From: "smarcet@gmail.com" Date: Wed, 23 Mar 2022 21:32:27 -0500 Subject: [PATCH 1/2] Added multi account select login Signed-off-by: smarcet@gmail.com Change-Id: I4d5cfdac606c8910fb18c7c3d6c4f98f700e6c83 --- .gitignore | 2 + app/Http/Controllers/UserController.php | 121 ++++++++++++---- app/Http/Middleware/Authenticate.php | 8 +- app/Http/Utils/CookieConstants.php | 23 +++ app/Http/Utils/SessionConstants.php | 37 +++++ app/Mail/UserEmailVerificationRequest.php | 2 +- app/Providers/EventServiceProvider.php | 25 ++++ .../OAuth2MementoSessionSerializerService.php | 10 +- app/Services/OAuth2/PrincipalService.php | 24 ++-- .../OAuth2/SecurityContextService.php | 15 +- .../OpenIdMementoSessionSerializerService.php | 10 +- app/Strategies/OAuth2LoginStrategy.php | 15 +- .../OpenIdAuthenticationStrategy.php | 6 +- app/Strategies/OpenIdConsentStrategy.php | 6 +- app/libs/Auth/AuthService.php | 136 ++++++++++++++++-- app/libs/Auth/CustomAuthProvider.php | 3 +- app/libs/Auth/Models/User.php | 1 + app/libs/Utils/Services/IAuthService.php | 26 ++++ public/assets/css/select_account.css | 34 +++++ public/assets/select_account.js | 109 ++++++++++++++ resources/js/base_actions.js | 28 +++- resources/js/select_account/actions.js | 8 ++ resources/js/select_account/select_account.js | 120 ++++++++++++++++ .../select_account/select_account.module.scss | 48 +++++++ resources/views/auth/login.blade.php | 10 +- resources/views/auth/select_account.blade.php | 37 +++++ routes/web.php | 5 +- webpack.common.js | 1 + 28 files changed, 773 insertions(+), 97 deletions(-) create mode 100644 app/Http/Utils/CookieConstants.php create mode 100644 app/Http/Utils/SessionConstants.php create mode 100644 public/assets/css/select_account.css create mode 100644 public/assets/select_account.js create mode 100644 resources/js/select_account/actions.js create mode 100644 resources/js/select_account/select_account.js create mode 100644 resources/js/select_account/select_account.module.scss create mode 100644 resources/views/auth/select_account.blade.php diff --git a/.gitignore b/.gitignore index 6b42decf..cc783d32 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,5 @@ model.sql /public/assets/dist/ /public/assets/login.js /public/assets/css/login.css +/public/assets/select_account.js +/public/assets/css/select.css \ No newline at end of file diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 3b365472..626ffc83 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -15,10 +15,16 @@ use App\Http\Controllers\OpenId\DiscoveryController; use App\Http\Controllers\OpenId\OpenIdController; use App\Http\Controllers\Traits\JsonResponses; +use App\Http\Utils\CookieConstants; use App\Http\Utils\CountryList; +use App\Http\Utils\SessionConstants; +use App\libs\Auth\SocialLoginProviders; use Auth\Exceptions\AuthenticationException; use Auth\Exceptions\UnverifiedEmailMemberException; use Exception; +use Illuminate\Http\Request as LaravelRequest; +use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Cookie; use Illuminate\Support\Facades\Request; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Redirect; @@ -141,20 +147,20 @@ final class UserController extends OpenIdController */ public function __construct ( - IMementoOpenIdSerializerService $openid_memento_service, - IMementoOAuth2SerializerService $oauth2_memento_service, - IAuthService $auth_service, - IServerConfigurationService $server_configuration_service, - ITrustedSitesService $trusted_sites_service, - DiscoveryController $discovery, - IUserService $user_service, - IUserActionService $user_action_service, - IClientRepository $client_repository, - IApiScopeRepository $scope_repository, - ITokenService $token_service, - IResourceServerService $resource_server_service, + IMementoOpenIdSerializerService $openid_memento_service, + IMementoOAuth2SerializerService $oauth2_memento_service, + IAuthService $auth_service, + IServerConfigurationService $server_configuration_service, + ITrustedSitesService $trusted_sites_service, + DiscoveryController $discovery, + IUserService $user_service, + IUserActionService $user_action_service, + IClientRepository $client_repository, + IApiScopeRepository $scope_repository, + ITokenService $token_service, + IResourceServerService $resource_server_service, IUtilsServerConfigurationService $utils_configuration_service, - ISecurityContextService $security_context_service + ISecurityContextService $security_context_service ) { @@ -223,8 +229,38 @@ public function __construct }); } - public function getLogin() + public function getSelectAccount(LaravelRequest $request) { + $formerAccounts = $this->auth_service->getFormerAccounts(); + + if (count($formerAccounts) > 0) { + if (Auth::guest()) { + if(count($formerAccounts) > 1) { + return View::make("auth.select_account", [ + 'accounts' => $formerAccounts + ]); + } + return redirect()->action("UserController@getLogin",['login_hint' => $formerAccounts[array_key_first($formerAccounts)]['username']]); + } + return redirect()->action("UserController@getProfile"); + } + + return redirect()->action("UserController@getLogin"); + } + + public function getLogin(LaravelRequest $request) + { + if ($request->has(OAuth2Protocol::OAuth2Protocol_LoginHint)) { + $loginHint = trim($request->get(OAuth2Protocol::OAuth2Protocol_LoginHint)); + if (!empty($loginHint)) + $this->auth_service->saveSelectedAccount($loginHint); + return redirect()->action("UserController@getLogin"); + } + + if ($this->auth_service->hasRegisteredMoreThanFormerAccounts(0) && !$this->auth_service->hasSelectedAccount()) { + return redirect()->action("UserController@getSelectAccount"); + } + return $this->login_strategy->getLogin(); } @@ -269,6 +305,28 @@ public function getAccount() } } + public function removeFormerAccount(){ + try { + + $username = Request::input("username", ""); + if (empty($username)) { + throw new ValidationException("empty username."); + } + + $this->auth_service->removeFormerAccount(trim($username)); + return $this->deleted(); + + } catch (ValidationException $ex) { + Log::warning($ex); + return $this->error412($ex->getMessages()); + } catch (EntityNotFoundException $ex) { + Log::warning($ex); + return $this->error404(); + } catch (Exception $ex) { + Log::error($ex); + return $this->error500($ex); + } + } /** * @return \Illuminate\Http\JsonResponse|mixed */ @@ -342,12 +400,11 @@ public function emitOTP() public function postLogin() { $max_login_attempts_2_show_captcha = $this->server_configuration_service->getConfigValue("MaxFailed.LoginAttempts.2ShowCaptcha"); - $login_attempts = 0; - $username = ''; + $login_attempts = 0; + $username = ''; $user = null; - try - { + try { $data = Request::all(); @@ -376,13 +433,14 @@ public function postLogin() $username = $data['username']; $password = $data['password']; - $flow = $data['flow']; + $flow = $data['flow']; $remember = Request::input("remember"); $remember = !is_null($remember); $connection = $data['connection'] ?? null; try { if ($flow == "password" && $this->auth_service->login($username, $password, $remember)) { + $this->auth_service->clearSelectedAccount(); return $this->login_strategy->postLogin(); } @@ -414,6 +472,7 @@ public function postLogin() $otpClaim = OAuth2OTP::fromParams($username, $connection, $password); $this->auth_service->loginWithOTP($otpClaim, $client); + $this->auth_service->clearSelectedAccount(); return $this->login_strategy->postLogin(); } } catch (AuthenticationException $ex) { @@ -431,7 +490,7 @@ public function postLogin() 'login_attempts' => $login_attempts, 'error_message' => $ex->getMessage(), 'user_fullname' => !is_null($user) ? $user->getFullName() : "", - 'user_pic' => !is_null($user) ? $user->getPic(): "", + 'user_pic' => !is_null($user) ? $user->getPic() : "", 'user_verified' => true, 'username' => $username, 'flow' => $flow @@ -442,13 +501,13 @@ public function postLogin() } // validator errors - $response_data = [ + $response_data = [ 'max_login_attempts_2_show_captcha' => $max_login_attempts_2_show_captcha, - 'login_attempts' => $login_attempts, - 'validator' => $validator, + 'login_attempts' => $login_attempts, + 'validator' => $validator, ]; - if(!is_null($user)){ + if (!is_null($user)) { $response_data['user_fullname'] = $user->getFullName(); $response_data['user_pic'] = $user->getPic(); $response_data['user_verified'] = true; @@ -463,14 +522,14 @@ public function postLogin() $user = $this->auth_service->getUserByUsername($username); - $response_data = [ + $response_data = [ 'max_login_attempts_2_show_captcha' => $max_login_attempts_2_show_captcha, - 'login_attempts' => $login_attempts, - 'username' => $username, - 'error_message' => $ex1->getMessage() + 'login_attempts' => $login_attempts, + 'username' => $username, + 'error_message' => $ex1->getMessage() ]; - if(!is_null($user)){ + if (!is_null($user)) { $response_data['user_fullname'] = $user->getFullName(); $response_data['user_pic'] = $user->getPic(); $response_data['user_verified'] = true; @@ -567,9 +626,9 @@ public function getIdentity($identifier) return $this->discovery->user($identifier); } - $redirect = Session::get('backurl'); + $redirect = Session::get(SessionConstants::BackUrl); if (!empty($redirect)) { - Session::forget('backurl'); + Session::forget(SessionConstants::BackUrl); Session::save(); return Redirect::to($redirect); } diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index 38d77ba0..f52e1f96 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -11,6 +11,8 @@ * See the License for the specific language governing permissions and * limitations under the License. **/ + +use App\Http\Utils\SessionConstants; use Closure; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Session; @@ -33,13 +35,13 @@ class Authenticate public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->guest()) { - Session::put('backurl', URL::full()); + Session::put(SessionConstants::BackUrl, URL::full()); Session::save(); return Redirect::action('UserController@getLogin'); } - $redirect = Session::get('backurl'); + $redirect = Session::get(SessionConstants::BackUrl); if (!empty($redirect)) { - Session::forget('backurl'); + Session::forget(SessionConstants::BackUrl); Session::save(); return Redirect::to($redirect); } diff --git a/app/Http/Utils/CookieConstants.php b/app/Http/Utils/CookieConstants.php new file mode 100644 index 00000000..d640aa5b --- /dev/null +++ b/app/Http/Utils/CookieConstants.php @@ -0,0 +1,23 @@ +verification_link = $verification_link; $this->user_email = $user->getEmail(); $this->user_fullname = $user->getFullName(); - $this->bio_link = URL::action("UserController@getLogin"); + $this->bio_link = URL::action("UserController@getLogin", ['login_hint' => $this->user_email ]); } /** diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index a8759927..a51c9656 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -17,11 +17,15 @@ use App\Events\UserPasswordResetRequestCreated; use App\Events\UserPasswordResetSuccessful; use App\Events\UserSpamStateUpdated; +use App\Http\Utils\CookieConstants; +use App\Http\Utils\SessionConstants; use App\Jobs\PublishUserCreated; use App\libs\Auth\Repositories\IUserPasswordResetRequestRepository; use App\Mail\UserLockedEmail; use App\Mail\UserPasswordResetMail; use Auth\User; +use Illuminate\Auth\Events\Login; +use Illuminate\Auth\Events\Logout; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; use App\Mail\UserEmailVerificationSuccess; use App\Services\Auth\IUserService; @@ -29,12 +33,16 @@ use Illuminate\Support\Facades\App; use App\Events\UserCreated; use App\Events\UserEmailVerified; +use Illuminate\Support\Facades\Cookie; use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Config; use Models\OAuth2\Client; +use MongoDB\Driver\Session; use OAuth2\Repositories\IClientRepository; +use Utils\Services\IAuthService; + /** * Class EventServiceProvider * @package App\Providers @@ -147,5 +155,22 @@ public function boot() return true; }); + Event::listen( + Login::class, + function(Login $event){ + $user = $event->user; + $authService = App::make(IAuthService::class); + $authService->addFormerAccount($user); + Log::debug(sprintf("Login from user %s (%s).", $user->getAuthIdentifierName(), $user->getAuthIdentifier())); + } + ); + + Event::listen( + Logout::class, + function(Logout $event){ + $user = $event->user; + Log::debug(sprintf("Logout from user %s (%s).", $user->getAuthIdentifierName(), $user->getAuthIdentifier())); + } + ); } } diff --git a/app/Services/OAuth2/OAuth2MementoSessionSerializerService.php b/app/Services/OAuth2/OAuth2MementoSessionSerializerService.php index 665fd006..72f5e5ab 100644 --- a/app/Services/OAuth2/OAuth2MementoSessionSerializerService.php +++ b/app/Services/OAuth2/OAuth2MementoSessionSerializerService.php @@ -11,6 +11,8 @@ * See the License for the specific language governing permissions and * limitations under the License. **/ + +use App\Http\Utils\SessionConstants; use OAuth2\Requests\OAuth2RequestMemento; use OAuth2\Services\IMementoOAuth2SerializerService; use Illuminate\Support\Facades\Session; @@ -28,7 +30,7 @@ final class OAuth2MementoSessionSerializerService implements IMementoOAuth2Seria public function serialize(OAuth2RequestMemento $memento) { $state = base64_encode(json_encode($memento->getState())); - Session::put('oauth2.request.state', $state); + Session::put(SessionConstants::OAuth2RequestState, $state); Session::save(); } @@ -37,7 +39,7 @@ public function serialize(OAuth2RequestMemento $memento) */ public function load() { - $state = Session::get('oauth2.request.state', null); + $state = Session::get(SessionConstants::OAuth2RequestState, null); if(is_null($state)) return null; $state = json_decode( base64_decode($state), true); @@ -50,7 +52,7 @@ public function load() */ public function forget() { - Session::remove('oauth2.request.state'); + Session::remove(SessionConstants::OAuth2RequestState); Session::save(); } @@ -59,6 +61,6 @@ public function forget() */ public function exists() { - return Session::has('oauth2.request.state'); + return Session::has(SessionConstants::OAuth2RequestState); } } \ No newline at end of file diff --git a/app/Services/OAuth2/PrincipalService.php b/app/Services/OAuth2/PrincipalService.php index 0c487646..e0b1e31f 100644 --- a/app/Services/OAuth2/PrincipalService.php +++ b/app/Services/OAuth2/PrincipalService.php @@ -19,7 +19,7 @@ use OAuth2\Models\IPrincipal; use OAuth2\Models\Principal; use OAuth2\Services\IPrincipalService; - +use App\Http\Utils\SessionConstants; /** * Class PrincipalService * @package Services\OAuth2 @@ -27,19 +27,15 @@ final class PrincipalService implements IPrincipalService { - const UserIdParam = 'openstackid.oauth2.principal.user_id'; - const AuthTimeParam = 'openstackid.oauth2.principal.auth_time'; - const OPBrowserState = 'openstackid.oauth2.principal.opbs'; - /** * @return IPrincipal */ public function get() { $principal = new Principal; - $user_id = Session::get(self::UserIdParam); - $auth_time = Session::get(self::AuthTimeParam); - $op_browser_state = Session::get(self::OPBrowserState); + $user_id = Session::get(SessionConstants::UserIdParam); + $auth_time = Session::get(SessionConstants::AuthTimeParam); + $op_browser_state = Session::get(SessionConstants::OPBrowserState); Log::debug(sprintf("PrincipalService::get - user_id %s auth_time %s op_browser_state %s", $user_id, $auth_time, $op_browser_state)); @@ -100,8 +96,8 @@ private function calculateBrowserState(): string public function register($user_id, $auth_time) { Log::debug(sprintf("PrincipalService::register user_id %s auth_time %s", $user_id, $auth_time)); - Session::put(self::UserIdParam, $user_id); - Session::put(self::AuthTimeParam, $auth_time); + Session::put(SessionConstants::UserIdParam, $user_id); + Session::put(SessionConstants::AuthTimeParam, $auth_time); // Maintain a `op_browser_state` cookie along with the `sessionid` cookie that // represents the End-User's login state at the OP. If the user is not logged $op_browser_state = $this->calculateBrowserState(); @@ -118,7 +114,7 @@ public function register($user_id, $auth_time) $sameSite = 'none' ); Log::debug(sprintf("PrincipalService::register op_browser_state %s", $op_browser_state)); - Session::put(self::OPBrowserState, $op_browser_state); + Session::put(SessionConstants::OPBrowserState, $op_browser_state); Session::save(); } @@ -128,9 +124,9 @@ public function register($user_id, $auth_time) public function clear() { Log::debug("PrincipalService::clear"); - Session::remove(self::UserIdParam); - Session::remove(self::AuthTimeParam); - Session::remove(self::OPBrowserState); + Session::remove(SessionConstants::UserIdParam); + Session::remove(SessionConstants::AuthTimeParam); + Session::remove(SessionConstants::OPBrowserState); Session::save(); Cookie::queue ( diff --git a/app/Services/OAuth2/SecurityContextService.php b/app/Services/OAuth2/SecurityContextService.php index 2171edfb..9dbbc88b 100644 --- a/app/Services/OAuth2/SecurityContextService.php +++ b/app/Services/OAuth2/SecurityContextService.php @@ -14,6 +14,7 @@ use OAuth2\Models\SecurityContext; use OAuth2\Services\ISecurityContextService; use Illuminate\Support\Facades\Session; +use App\Http\Utils\SessionConstants; /** * Class SecurityContextService * @package Services\OAuth2 @@ -21,8 +22,6 @@ final class SecurityContextService implements ISecurityContextService { - const RequestedUserIdParam = 'openstackid.oauth2.security_context.requested_user_id'; - const RequestedAuthTime = 'openstackid.oauth2.security_context.requested_auth_time'; /** * @return SecurityContext */ @@ -34,8 +33,8 @@ public function get() ( array ( - Session::get(self::RequestedUserIdParam), - Session::get(self::RequestedAuthTime), + Session::get(SessionConstants::RequestedUserIdParam), + Session::get(SessionConstants::RequestedAuthTime), ) ); @@ -48,8 +47,8 @@ public function get() */ public function save(SecurityContext $security_context) { - Session::put(self::RequestedUserIdParam, $security_context->getRequestedUserId()); - Session::put(self::RequestedAuthTime, $security_context->isAuthTimeRequired()); + Session::put(SessionConstants::RequestedUserIdParam, $security_context->getRequestedUserId()); + Session::put(SessionConstants::RequestedAuthTime, $security_context->isAuthTimeRequired()); Session::save(); return $this; } @@ -59,8 +58,8 @@ public function save(SecurityContext $security_context) */ public function clear() { - Session::remove(self::RequestedUserIdParam); - Session::remove(self::RequestedAuthTime); + Session::remove(SessionConstants::RequestedUserIdParam); + Session::remove(SessionConstants::RequestedAuthTime); Session::save(); return $this; } diff --git a/app/Services/OpenId/OpenIdMementoSessionSerializerService.php b/app/Services/OpenId/OpenIdMementoSessionSerializerService.php index d4298d21..8b1c899c 100644 --- a/app/Services/OpenId/OpenIdMementoSessionSerializerService.php +++ b/app/Services/OpenId/OpenIdMementoSessionSerializerService.php @@ -11,6 +11,8 @@ * See the License for the specific language governing permissions and * limitations under the License. **/ + +use App\Http\Utils\SessionConstants; use OpenId\Requests\OpenIdMessageMemento; use OpenId\Services\IMementoOpenIdSerializerService; use Illuminate\Support\Facades\Session; @@ -30,7 +32,7 @@ public function serialize(OpenIdMessageMemento $memento) { $state = base64_encode(json_encode($memento->getState())); Log::debug(sprintf("OpenIdMementoSessionSerializerService::serialize %s", $state)); - Session::put('openid.request.state', $state); + Session::put(SessionConstants::OpenIdRequestState, $state); Session::save(); } @@ -41,7 +43,7 @@ public function load() { Log::debug(sprintf("OpenIdMementoSessionSerializerService::load")); - $state = Session::get('openid.request.state', null); + $state = Session::get(SessionConstants::OpenIdRequestState, null); if(is_null($state)) { Log::warning(sprintf("OpenIdMementoSessionSerializerService::load openid.request.state is null")); @@ -59,7 +61,7 @@ public function load() public function forget() { Log::debug(sprintf("OpenIdMementoSessionSerializerService::forget")); - Session::remove('openid.request.state'); + Session::remove(SessionConstants::OpenIdRequestState); Session::save(); } @@ -69,6 +71,6 @@ public function forget() public function exists() { Log::debug(sprintf("OpenIdMementoSessionSerializerService::exists")); - return Session::has('openid.request.state'); + return Session::has(SessionConstants::OpenIdRequestState); } } \ No newline at end of file diff --git a/app/Strategies/OAuth2LoginStrategy.php b/app/Strategies/OAuth2LoginStrategy.php index 990adf31..5b99120c 100644 --- a/app/Strategies/OAuth2LoginStrategy.php +++ b/app/Strategies/OAuth2LoginStrategy.php @@ -11,6 +11,8 @@ * See the License for the specific language governing permissions and * limitations under the License. **/ + +use App\Http\Utils\SessionConstants; use Illuminate\Support\Facades\Auth; use OAuth2\Factories\OAuth2AuthorizationRequestFactory; use OAuth2\OAuth2Message; @@ -63,16 +65,9 @@ public function getLogin() if (!Auth::guest()) return Redirect::action("UserController@getProfile"); - $requested_user_id = $this->security_context_service->get()->getRequestedUserId(); - if (!is_null($requested_user_id)) { - $userHint = $this->auth_service->getUserById($requested_user_id); - if(!is_null($userHint)) { - Session::put('username', $userHint->getEmail()); - Session::put('user_fullname', $userHint->getFullName()); - Session::put('user_pic', $userHint->getPic()); - Session::put('user_verified', true); - Session::save(); - } + $loginHint = $this->security_context_service->get()->getRequestedUserId(); + if (!empty($loginHint)) { + $this->auth_service->saveSelectedAccount($loginHint); } $auth_request = OAuth2AuthorizationRequestFactory::getInstance()->build( diff --git a/app/Strategies/OpenIdAuthenticationStrategy.php b/app/Strategies/OpenIdAuthenticationStrategy.php index 5e09cb48..17ff0076 100644 --- a/app/Strategies/OpenIdAuthenticationStrategy.php +++ b/app/Strategies/OpenIdAuthenticationStrategy.php @@ -11,6 +11,8 @@ * See the License for the specific language governing permissions and * limitations under the License. **/ + +use App\Http\Utils\SessionConstants; use Illuminate\Http\RedirectResponse; use OpenId\Handlers\IOpenIdAuthenticationStrategy; use OpenId\Requests\Contexts\RequestContext; @@ -31,7 +33,7 @@ final class OpenIdAuthenticationStrategy implements IOpenIdAuthenticationStrateg */ public function doLogin(OpenIdAuthenticationRequest $request, RequestContext $context) { - Session::put('openid.auth.context', $context); + Session::put(SessionConstants::OpenIdAuthContext, $context); Session::save(); return Redirect::action('UserController@getLogin'); } @@ -43,7 +45,7 @@ public function doLogin(OpenIdAuthenticationRequest $request, RequestContext $co */ public function doConsent(OpenIdAuthenticationRequest $request, RequestContext $context) { - Session::put('openid.auth.context', $context); + Session::put(SessionConstants::OpenIdAuthContext, $context); Session::save(); return Redirect::action('UserController@getConsent'); } diff --git a/app/Strategies/OpenIdConsentStrategy.php b/app/Strategies/OpenIdConsentStrategy.php index 86ff9943..15fb2cb3 100644 --- a/app/Strategies/OpenIdConsentStrategy.php +++ b/app/Strategies/OpenIdConsentStrategy.php @@ -11,6 +11,8 @@ * See the License for the specific language governing permissions and * limitations under the License. **/ + +use App\Http\Utils\SessionConstants; use Illuminate\Support\Facades\Auth; use OpenId\Exceptions\InvalidOpenIdMessageException; use OpenId\Exceptions\InvalidRequestContextException; @@ -82,7 +84,7 @@ public function getConsent() */ private function getViewData() { - $context = Session::get('openid.auth.context'); + $context = Session::get(SessionConstants::OpenIdAuthContext); if (is_null($context)) throw new InvalidRequestContextException(); @@ -110,7 +112,7 @@ public function postConsent($trust_action) throw new InvalidOpenIdMessageException(); $this->user_action_service->addUserAction($this->auth_service->getCurrentUser()->getId(), IPHelper::getUserIp(), IUserActionService::ConsentAction, $msg->getParam(OpenIdProtocol::OpenIDProtocol_Realm)); $this->auth_service->setUserAuthorizationResponse($trust_action[0]); - Session::remove('openid.auth.context'); + Session::remove(SessionConstants::OpenIdAuthContext); Session::save(); return Redirect::action('OpenId\OpenIdProviderController@endpoint'); } diff --git a/app/libs/Auth/AuthService.php b/app/libs/Auth/AuthService.php index 08672715..6930894c 100644 --- a/app/libs/Auth/AuthService.php +++ b/app/libs/Auth/AuthService.php @@ -12,6 +12,8 @@ * limitations under the License. **/ +use App\Http\Utils\CookieConstants; +use App\Http\Utils\SessionConstants; use App\libs\OAuth2\Exceptions\ReloadSessionException; use App\libs\OAuth2\Repositories\IOAuth2OTPRepository; use App\Services\AbstractService; @@ -118,6 +120,10 @@ public function getCurrentUser(): ?User return Auth::user(); } + private function clearAccountData():void{ + + } + /** * @param string $username * @param string $password @@ -141,6 +147,7 @@ public function login(string $username, string $password, bool $remember_me): bo $this->getCurrentUser()->getId(), time() ); + Session::regenerate(); return true; } @@ -246,7 +253,7 @@ public function loginWithOTP(OAuth2OTP $otpClaim, ?Client $client = null): ?OAut } } Auth::login($user, false); - + Session::regenerate(); return $otp; }); } @@ -255,6 +262,7 @@ public function logout() { $this->invalidateSession(); Auth::logout(); + Session::regenerate(); $this->principal_service->clear(); // put in past Cookie::queue @@ -288,15 +296,15 @@ public function getUserAuthorizationResponse() public function clearUserAuthorizationResponse() { - if (Session::has("openid.authorization.response")) { - Session::remove("openid.authorization.response"); + if (Session::has(SessionConstants::OpenIdAuthzResponse)) { + Session::remove(SessionConstants::OpenIdAuthzResponse); Session::save(); } } public function setUserAuthorizationResponse($auth_response) { - Session::put("openid.authorization.response", $auth_response); + Session::put(SessionConstants::OpenIdAuthzResponse, $auth_response); Session::save(); } @@ -331,8 +339,8 @@ public function getUserById(int $id): ?User public function getUserAuthenticationResponse() { - if (Session::has("openstackid.authentication.response")) { - $value = Session::get("openstackid.authentication.response"); + if (Session::has(SessionConstants::OpenIdAuthResponse)) { + $value = Session::get(SessionConstants::OpenIdAuthResponse); return $value; } return IAuthService::AuthenticationResponse_None; @@ -340,14 +348,14 @@ public function getUserAuthenticationResponse() public function setUserAuthenticationResponse($auth_response) { - Session::put("openstackid.authentication.response", $auth_response); + Session::put(SessionConstants::OpenIdAuthResponse, $auth_response); Session::save(); } public function clearUserAuthenticationResponse() { - if (Session::has("openstackid.authentication.response")) { - Session::remove("openstackid.authentication.response"); + if (Session::has(SessionConstants::OpenIdAuthResponse)) { + Session::remove(SessionConstants::OpenIdAuthResponse); Session::save(); } } @@ -531,4 +539,114 @@ public function invalidateSession(): void $this->cache_service->addSingleValue($session_id . "invalid", $session_id); } + /** + * @param int $n + * @return bool + */ + public function hasRegisteredMoreThanFormerAccounts(int $n = 0):bool + { + $formerAccounts = []; + if(Cookie::has(CookieConstants::CookieAccounts)){ + $res = Cookie::get(CookieConstants::CookieAccounts); + if(!empty($res)) + $formerAccounts = json_decode($res, true); + return (count($formerAccounts) > $n); + } + return false; + } + + public function saveSelectedAccount(string $loginHint): void + { + $userHint = $this->getUserByUsername($loginHint); + if(!is_null($userHint)) { + Session::put(SessionConstants::UserName, $userHint->getEmail()); + Session::put(SessionConstants::UserFullName, $userHint->getFullName()); + Session::put(SessionConstants::UserPic, $userHint->getPic()); + Session::put(SessionConstants::UserVerified, true); + Session::save(); + } + } + + public function hasSelectedAccount(): bool + { + return + Session::has(SessionConstants::UserName) && + Session::has(SessionConstants::UserFullName) && + Session::has(SessionConstants::UserPic) && + Session::has(SessionConstants::UserVerified); + } + + public function clearSelectedAccount(): void + { + Session::remove(SessionConstants::UserName); + Session::remove(SessionConstants::UserFullName); + Session::remove(SessionConstants::UserPic); + Session::remove(SessionConstants::UserVerified); + } + + public function getFormerAccounts(): array + { + $formerAccounts = []; + if(Cookie::has(CookieConstants::CookieAccounts)){ + $res = Cookie::get(CookieConstants::CookieAccounts); + if(!empty($res)) + $formerAccounts = json_decode($res, true); + } + return $formerAccounts; + } + + public function removeFormerAccount(string $loginHint): void + { + $formerAccounts = []; + if(Cookie::has(CookieConstants::CookieAccounts)){ + $res = Cookie::get(CookieConstants::CookieAccounts); + if(!empty($res)) + $formerAccounts = json_decode($res, true); + } + if(isset($formerAccounts[$loginHint])){ + unset($formerAccounts[$loginHint]); + } + Cookie::queue + ( + CookieConstants::CookieAccounts, + json_encode($formerAccounts), + time() + (20 * 365 * 24 * 60 * 60), + $path = Config::get("session.path"), + $domain = Config::get("session.domain"), + $secure = true, + $httpOnly = true, + $raw = false, + $sameSite = 'none' + ); + + } + + /** + * @param User $user + */ + public function addFormerAccount(User $user):void{ + $formerAccounts = []; + if(Cookie::has(CookieConstants::CookieAccounts)){ + $res = Cookie::get(CookieConstants::CookieAccounts); + if(!empty($res)) + $formerAccounts = json_decode($res, true); + } + $formerAccounts[$user->getEmail()] = [ + SessionConstants::UserName => $user->getEmail(), + SessionConstants::UserFullName => $user->getFullName(), + SessionConstants::UserPic => $user->getPic(), + ]; + Cookie::queue + ( + CookieConstants::CookieAccounts, + json_encode($formerAccounts), + time() + (20 * 365 * 24 * 60 * 60), + $path = Config::get("session.path"), + $domain = Config::get("session.domain"), + $secure = true, + $httpOnly = true, + $raw = false, + $sameSite = 'none' + ); + } } \ No newline at end of file diff --git a/app/libs/Auth/CustomAuthProvider.php b/app/libs/Auth/CustomAuthProvider.php index 95d64c3d..15019ed3 100644 --- a/app/libs/Auth/CustomAuthProvider.php +++ b/app/libs/Auth/CustomAuthProvider.php @@ -17,6 +17,7 @@ use Illuminate\Contracts\Auth\Authenticatable; use Illuminate\Contracts\Auth\UserProvider; use Illuminate\Support\Facades\Log; +use Illuminate\Support\Facades\Session; use OpenId\Services\IUserService; use Utils\Db\ITransactionService; use Utils\Services\ICheckPointService; @@ -172,10 +173,8 @@ public function retrieveByCredentials(array $credentials) Log::warning($ex); $user = null; } - return $user; }); - } /** diff --git a/app/libs/Auth/Models/User.php b/app/libs/Auth/Models/User.php index b88ffe2a..8808fb5b 100644 --- a/app/libs/Auth/Models/User.php +++ b/app/libs/Auth/Models/User.php @@ -488,6 +488,7 @@ public function getAuthPassword() */ public function getIdentifier(): ?string { + if(empty($this->identifier)) return 'tba'; return $this->identifier; } diff --git a/app/libs/Utils/Services/IAuthService.php b/app/libs/Utils/Services/IAuthService.php index eac987b7..71859999 100644 --- a/app/libs/Utils/Services/IAuthService.php +++ b/app/libs/Utils/Services/IAuthService.php @@ -151,4 +151,30 @@ public function generateJTI(string $client_id, int $id_token_lifetime):string; public function invalidateSession(); + /** + * @param int $n + * @return bool + */ + public function hasRegisteredMoreThanFormerAccounts(int $n = 0):bool; + + /** + * @param string $loginHint + */ + public function saveSelectedAccount(string $loginHint):void; + + public function hasSelectedAccount():bool; + + public function clearSelectedAccount():void; + + public function getFormerAccounts():array; + + /** + * @param string $loginHint + */ + public function removeFormerAccount(string $loginHint):void; + + /** + * @param User $user + */ + public function addFormerAccount(User $user):void; } \ No newline at end of file diff --git a/public/assets/css/select_account.css b/public/assets/css/select_account.css new file mode 100644 index 00000000..4fe2da2c --- /dev/null +++ b/public/assets/css/select_account.css @@ -0,0 +1,34 @@ +.main_container___3z2Sq { + margin-top: 5%; + margin-bottom: 10%; + max-width: 544px !important; } + +.login_container___2IDqB { + border: solid 1px #e3e3e3; + color: #3fa2f7; + background-color: white; } + +.inner_container___2QnpL { + display: flex; + margin-top: 64px; + padding-bottom: 20%; + flex-direction: column; } + .inner_container___2QnpL h1.app_logo_container___U-bNC { + text-align: center; } + .inner_container___2QnpL .app_logo___329-- { + max-width: 40%; + margin-bottom: 15%; } + .inner_container___2QnpL .continue_btn___1rd8E { + float: right; + margin-top: 30%; } + .inner_container___2QnpL .recaptcha___1tFLz { + width: 100%; + margin-top: 10px; + margin-bottom: 10px; } + .inner_container___2QnpL .separator___2pSEN { + color: #3fa2f7; + width: 100%; + border: 1px solid; + margin-bottom: 5%; + margin-top: 5%; } + diff --git a/public/assets/select_account.js b/public/assets/select_account.js new file mode 100644 index 00000000..02333e69 --- /dev/null +++ b/public/assets/select_account.js @@ -0,0 +1,109 @@ +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/assets/",n(n.s=1361)}({0:function(e,t,n){"use strict";e.exports=n(233)},1:function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;t1&&"boolean"!=typeof t)throw new i('"allowMissing" argument must be a boolean');var n=E(e),o=n.length>0?n[0]:"",a=O("%"+o+"%",t),l=a.name,u=a.value,c=!1,f=a.alias;f&&(o=f[0],v(n,b([0,1],f)));for(var p=1,d=!0;p=n.length){var k=s(u,m);u=(d=!!k)&&"get"in k&&!("originalValue"in k.get)?k.get:u[m]}else d=y(u,m),u=u[m];d&&!c&&(h[l]=u)}}return u}},111:function(e,t,n){"use strict";var r=n(248);e.exports=Function.prototype.bind||r},112:function(e,t,n){"use strict";var r=String.prototype.replace,o=/%20/g,i="RFC1738",a="RFC3986";e.exports={default:a,formatters:{RFC1738:function(e){return r.call(e,o,"+")},RFC3986:function(e){return String(e)}},RFC1738:i,RFC3986:a}},12:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(193);function o(e){if("string"!=typeof e)throw new Error(Object(r.a)(7));return e.charAt(0).toUpperCase()+e.slice(1)}},127:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(0);function o(e){var t=r.useState(e),n=t[0],o=t[1],i=e||n;return r.useEffect((function(){null==n&&o("mui-".concat(Math.round(1e5*Math.random())))}),[n]),i}},128:function(e,t,n){e.exports=function(){"use strict";var e={title:"",titleText:"",text:"",html:"",type:null,toast:!1,customClass:"",target:"body",backdrop:!0,animation:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,showConfirmButton:!0,showCancelButton:!1,preConfirm:null,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:"#3085d6",confirmButtonClass:null,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:"#aaa",cancelButtonClass:null,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusCancel:!1,showCloseButton:!1,closeButtonAriaLabel:"Close this dialog",showLoaderOnConfirm:!1,imageUrl:null,imageWidth:null,imageHeight:null,imageAlt:"",imageClass:null,timer:null,width:500,padding:20,background:"#fff",input:null,inputPlaceholder:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputClass:null,inputAttributes:{},inputValidator:null,grow:!1,position:"center",progressSteps:[],currentProgressStep:null,progressStepsDistance:"40px",onBeforeOpen:null,onOpen:null,onClose:null,useRejections:!1,expectRejections:!1},t=["useRejections","expectRejections"],n=function(e){var t={};for(var n in e)t[e[n]]="swal2-"+e[n];return t},r=n(["container","shown","iosfix","popup","modal","no-backdrop","toast","toast-shown","overlay","fade","show","hide","noanimation","close","title","content","contentwrapper","buttonswrapper","confirm","cancel","icon","image","input","has-input","file","range","select","radio","checkbox","textarea","inputerror","validationerror","progresssteps","activeprogressstep","progresscircle","progressline","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen"]),o=n(["success","warning","info","question","error"]),i=function(e,t){(e=String(e).replace(/[^0-9a-f]/gi,"")).length<6&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),t=t||0;for(var n="#",r=0;r<3;r++){var o=parseInt(e.substr(2*r,2),16);n+=("00"+(o=Math.round(Math.min(Math.max(0,o+o*t),255)).toString(16))).substr(o.length)}return n},a=function(e){console.warn("SweetAlert2: "+e)},s=function(e){console.error("SweetAlert2: "+e)},l=[],u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c=Object.assign||function(e){for(var t=1;t"),t.backdrop||V([document.documentElement,document.body],r["no-backdrop"]),t.text||t.html){if("object"===u(t.html))if(g.innerHTML="",0 in t.html)for(var k=0;k in t.html;k++)g.appendChild(t.html[k].cloneNode(!0));else g.appendChild(t.html.cloneNode(!0));else t.html?g.innerHTML=t.html:t.text&&(g.textContent=t.text);Y(g)}else X(g);if(t.position in r&&V(h,r[t.position]),t.grow&&"string"==typeof t.grow){var E="grow-"+t.grow;E in r&&V(h,r[E])}t.showCloseButton?(x.setAttribute("aria-label",t.closeButtonAriaLabel),Y(x)):X(x),n.className=r.popup,t.toast?(V([document.documentElement,document.body],r["toast-shown"]),V(n,r.toast)):V(n,r.modal),t.customClass&&V(n,t.customClass);var P=R(),N=parseInt(null===t.currentProgressStep?w.getQueueStep():t.currentProgressStep,10);t.progressSteps.length?(Y(P),G(P),N>=t.progressSteps.length&&a("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),t.progressSteps.forEach((function(e,n){var o=document.createElement("li");if(V(o,r.progresscircle),o.innerHTML=e,n===N&&V(o,r.activeprogressstep),P.appendChild(o),n!==t.progressSteps.length-1){var i=document.createElement("li");V(i,r.progressline),i.style.width=t.progressStepsDistance,P.appendChild(i)}}))):X(P);for(var D=_(),F=0;Fwindow.innerHeight&&(x.previousBodyPadding=document.body.style.paddingRight,document.body.style.paddingRight=te()+"px")},v=function(){if(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream&&!H(document.body,r.iosfix)){var e=document.body.scrollTop;document.body.style.top=-1*e+"px",V(document.body,r.iosfix)}},w=function e(){for(var t=arguments.length,n=Array(t),o=0;o\n
    \n
    \n \n
    \n
    ?
    \n
    !
    \n
    i
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n

    \n
    \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n \n
    \n
    \n \n \n
    \n \n \n').replace(/(^|\n)\s*/g,""),O=function(){return document.body.querySelector("."+r.container)},T=function(){return O()?O().querySelector("."+r.popup):null},_=function(){return T().querySelectorAll("."+r.icon)},P=function(e){return O()?O().querySelector("."+e):null},C=function(){return P(r.title)},j=function(){return P(r.content)},A=function(){return P(r.image)},R=function(){return P(r.progresssteps)},N=function(){return P(r.validationerror)},z=function(){return P(r.confirm)},I=function(){return P(r.cancel)},M=function(){return P(r.buttonswrapper)},L=function(){return P(r.close)},D=function(){var e=Array.prototype.slice.call(T().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort((function(e,t){return(e=parseInt(e.getAttribute("tabindex")))>(t=parseInt(t.getAttribute("tabindex")))?1:e0&&void 0!==arguments[0]?arguments[0]:"";if(k())return!1;var t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}("html.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown),\nbody.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) {\n overflow-y: hidden; }\n\nbody.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column; }\n body.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast .swal2-icon {\n margin: 0 0 15px; }\n body.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast .swal2-buttonswrapper {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n -ms-flex-item-align: stretch;\n align-self: stretch;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end; }\n body.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast .swal2-loading {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center; }\n body.swal2-toast-shown.swal2-has-input > .swal2-container > .swal2-toast .swal2-input {\n height: 32px;\n font-size: 14px;\n margin: 5px auto; }\n\nbody.swal2-toast-shown > .swal2-container {\n position: fixed;\n background-color: transparent; }\n body.swal2-toast-shown > .swal2-container.swal2-shown {\n background-color: transparent; }\n body.swal2-toast-shown > .swal2-container.swal2-top {\n top: 0;\n left: 50%;\n bottom: auto;\n right: auto;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%); }\n body.swal2-toast-shown > .swal2-container.swal2-top-end, body.swal2-toast-shown > .swal2-container.swal2-top-right {\n top: 0;\n left: auto;\n bottom: auto;\n right: 0; }\n body.swal2-toast-shown > .swal2-container.swal2-top-start, body.swal2-toast-shown > .swal2-container.swal2-top-left {\n top: 0;\n left: 0;\n bottom: auto;\n right: auto; }\n body.swal2-toast-shown > .swal2-container.swal2-center-start, body.swal2-toast-shown > .swal2-container.swal2-center-left {\n top: 50%;\n left: 0;\n bottom: auto;\n right: auto;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%); }\n body.swal2-toast-shown > .swal2-container.swal2-center {\n top: 50%;\n left: 50%;\n bottom: auto;\n right: auto;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%); }\n body.swal2-toast-shown > .swal2-container.swal2-center-end, body.swal2-toast-shown > .swal2-container.swal2-center-right {\n top: 50%;\n left: auto;\n bottom: auto;\n right: 0;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%); }\n body.swal2-toast-shown > .swal2-container.swal2-bottom-start, body.swal2-toast-shown > .swal2-container.swal2-bottom-left {\n top: auto;\n left: 0;\n bottom: 0;\n right: auto; }\n body.swal2-toast-shown > .swal2-container.swal2-bottom {\n top: auto;\n left: 50%;\n bottom: 0;\n right: auto;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%); }\n body.swal2-toast-shown > .swal2-container.swal2-bottom-end, body.swal2-toast-shown > .swal2-container.swal2-bottom-right {\n top: auto;\n left: auto;\n bottom: 0;\n right: 0; }\n\nbody.swal2-iosfix {\n position: fixed;\n left: 0;\n right: 0; }\n\nbody.swal2-no-backdrop > .swal2-shown {\n top: auto;\n bottom: auto;\n left: auto;\n right: auto;\n background-color: transparent; }\n body.swal2-no-backdrop > .swal2-shown > .swal2-modal {\n -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }\n body.swal2-no-backdrop > .swal2-shown.swal2-top {\n top: 0;\n left: 50%;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%); }\n body.swal2-no-backdrop > .swal2-shown.swal2-top-start, body.swal2-no-backdrop > .swal2-shown.swal2-top-left {\n top: 0;\n left: 0; }\n body.swal2-no-backdrop > .swal2-shown.swal2-top-end, body.swal2-no-backdrop > .swal2-shown.swal2-top-right {\n top: 0;\n right: 0; }\n body.swal2-no-backdrop > .swal2-shown.swal2-center {\n top: 50%;\n left: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%); }\n body.swal2-no-backdrop > .swal2-shown.swal2-center-start, body.swal2-no-backdrop > .swal2-shown.swal2-center-left {\n top: 50%;\n left: 0;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%); }\n body.swal2-no-backdrop > .swal2-shown.swal2-center-end, body.swal2-no-backdrop > .swal2-shown.swal2-center-right {\n top: 50%;\n right: 0;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%); }\n body.swal2-no-backdrop > .swal2-shown.swal2-bottom {\n bottom: 0;\n left: 50%;\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%); }\n body.swal2-no-backdrop > .swal2-shown.swal2-bottom-start, body.swal2-no-backdrop > .swal2-shown.swal2-bottom-left {\n bottom: 0;\n left: 0; }\n body.swal2-no-backdrop > .swal2-shown.swal2-bottom-end, body.swal2-no-backdrop > .swal2-shown.swal2-bottom-right {\n bottom: 0;\n right: 0; }\n\n.swal2-container {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n position: fixed;\n padding: 10px;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: transparent;\n z-index: 1060; }\n .swal2-container.swal2-top {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start; }\n .swal2-container.swal2-top-start, .swal2-container.swal2-top-left {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n .swal2-container.swal2-top-end, .swal2-container.swal2-top-right {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end; }\n .swal2-container.swal2-center {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .swal2-container.swal2-center-start, .swal2-container.swal2-center-left {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n .swal2-container.swal2-center-end, .swal2-container.swal2-center-right {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end; }\n .swal2-container.swal2-bottom {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end; }\n .swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start; }\n .swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end; }\n .swal2-container.swal2-grow-fullscreen > .swal2-modal {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n -ms-flex-item-align: stretch;\n align-self: stretch;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center; }\n .swal2-container.swal2-grow-row > .swal2-modal {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n -ms-flex-line-pack: center;\n align-content: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center; }\n .swal2-container.swal2-grow-column {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column; }\n .swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n .swal2-container.swal2-grow-column.swal2-top-start, .swal2-container.swal2-grow-column.swal2-center-start, .swal2-container.swal2-grow-column.swal2-bottom-start, .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start; }\n .swal2-container.swal2-grow-column.swal2-top-end, .swal2-container.swal2-grow-column.swal2-center-end, .swal2-container.swal2-grow-column.swal2-bottom-end, .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right {\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end; }\n .swal2-container.swal2-grow-column > .swal2-modal {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n -ms-flex-line-pack: center;\n align-content: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center; }\n .swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right) > .swal2-modal {\n margin: auto; }\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .swal2-container .swal2-modal {\n margin: 0 !important; } }\n .swal2-container.swal2-fade {\n -webkit-transition: background-color .1s;\n transition: background-color .1s; }\n .swal2-container.swal2-shown {\n background-color: rgba(0, 0, 0, 0.4); }\n\n.swal2-popup {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n background-color: #fff;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n border-radius: 5px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n text-align: center;\n overflow-x: hidden;\n overflow-y: auto;\n display: none;\n position: relative;\n max-width: 100%; }\n .swal2-popup.swal2-toast {\n width: 300px;\n padding: 0 15px;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n overflow-y: hidden;\n -webkit-box-shadow: 0 0 10px #d9d9d9;\n box-shadow: 0 0 10px #d9d9d9; }\n .swal2-popup.swal2-toast .swal2-title {\n max-width: 300px;\n font-size: 16px;\n text-align: left; }\n .swal2-popup.swal2-toast .swal2-content {\n font-size: 14px;\n text-align: left; }\n .swal2-popup.swal2-toast .swal2-icon {\n width: 32px;\n min-width: 32px;\n height: 32px;\n margin: 0 15px 0 0; }\n .swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring {\n width: 32px;\n height: 32px; }\n .swal2-popup.swal2-toast .swal2-icon.swal2-info, .swal2-popup.swal2-toast .swal2-icon.swal2-warning, .swal2-popup.swal2-toast .swal2-icon.swal2-question {\n font-size: 26px;\n line-height: 32px; }\n .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n top: 14px;\n width: 22px; }\n .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n left: 5px; }\n .swal2-popup.swal2-toast .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n right: 5px; }\n .swal2-popup.swal2-toast .swal2-buttonswrapper {\n margin: 0 0 0 5px; }\n .swal2-popup.swal2-toast .swal2-styled {\n margin: 0 0 0 5px;\n padding: 5px 10px; }\n .swal2-popup.swal2-toast .swal2-styled:focus {\n -webkit-box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(50, 100, 150, 0.4);\n box-shadow: 0 0 0 1px #fff, 0 0 0 2px rgba(50, 100, 150, 0.4); }\n .swal2-popup.swal2-toast .swal2-validationerror {\n width: 100%;\n margin: 5px -20px; }\n .swal2-popup.swal2-toast .swal2-success {\n border-color: #a5dc86; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'] {\n border-radius: 50%;\n position: absolute;\n width: 32px;\n height: 64px;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg); }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n border-radius: 64px 0 0 64px;\n top: -4px;\n left: -15px;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n -webkit-transform-origin: 32px 32px;\n transform-origin: 32px 32px; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n border-radius: 0 64px 64px 0;\n top: -5px;\n left: 14px;\n -webkit-transform-origin: 0 32px;\n transform-origin: 0 32px; }\n .swal2-popup.swal2-toast .swal2-success .swal2-success-ring {\n width: 32px;\n height: 32px; }\n .swal2-popup.swal2-toast .swal2-success .swal2-success-fix {\n width: 7px;\n height: 90px;\n left: 28px;\n top: 8px; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'] {\n height: 5px; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='tip'] {\n width: 12px;\n left: 3px;\n top: 18px; }\n .swal2-popup.swal2-toast .swal2-success [class^='swal2-success-line'][class$='long'] {\n width: 22px;\n right: 3px;\n top: 15px; }\n .swal2-popup.swal2-toast .swal2-animate-success-line-tip {\n -webkit-animation: animate-toast-success-tip .75s;\n animation: animate-toast-success-tip .75s; }\n .swal2-popup.swal2-toast .swal2-animate-success-line-long {\n -webkit-animation: animate-toast-success-long .75s;\n animation: animate-toast-success-long .75s; }\n .swal2-popup:focus {\n outline: none; }\n .swal2-popup.swal2-loading {\n overflow-y: hidden; }\n .swal2-popup .swal2-title {\n color: #595959;\n font-size: 30px;\n text-align: center;\n font-weight: 600;\n text-transform: none;\n position: relative;\n margin: 0 0 .4em;\n padding: 0;\n display: block;\n word-wrap: break-word; }\n .swal2-popup .swal2-buttonswrapper {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-top: 15px; }\n .swal2-popup .swal2-buttonswrapper:not(.swal2-loading) .swal2-styled[disabled] {\n opacity: .4;\n cursor: no-drop; }\n .swal2-popup .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-confirm {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n border: 4px solid transparent;\n border-color: transparent;\n width: 40px;\n height: 40px;\n padding: 0;\n margin: 7.5px;\n vertical-align: top;\n background-color: transparent !important;\n color: transparent;\n cursor: default;\n border-radius: 100%;\n -webkit-animation: rotate-loading 1.5s linear 0s infinite normal;\n animation: rotate-loading 1.5s linear 0s infinite normal;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .swal2-popup .swal2-buttonswrapper.swal2-loading .swal2-styled.swal2-cancel {\n margin-left: 30px;\n margin-right: 30px; }\n .swal2-popup .swal2-buttonswrapper.swal2-loading :not(.swal2-styled).swal2-confirm::after {\n display: inline-block;\n content: '';\n margin-left: 5px;\n vertical-align: -1px;\n height: 15px;\n width: 15px;\n border: 3px solid #999999;\n -webkit-box-shadow: 1px 1px 1px #fff;\n box-shadow: 1px 1px 1px #fff;\n border-right-color: transparent;\n border-radius: 50%;\n -webkit-animation: rotate-loading 1.5s linear 0s infinite normal;\n animation: rotate-loading 1.5s linear 0s infinite normal; }\n .swal2-popup .swal2-styled {\n border: 0;\n border-radius: 3px;\n -webkit-box-shadow: none;\n box-shadow: none;\n color: #fff;\n cursor: pointer;\n font-size: 17px;\n font-weight: 500;\n margin: 15px 5px 0;\n padding: 10px 32px; }\n .swal2-popup .swal2-styled:focus {\n outline: none;\n -webkit-box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(50, 100, 150, 0.4);\n box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(50, 100, 150, 0.4); }\n .swal2-popup .swal2-image {\n margin: 20px auto;\n max-width: 100%; }\n .swal2-popup .swal2-close {\n background: transparent;\n border: 0;\n margin: 0;\n padding: 0;\n width: 38px;\n height: 40px;\n font-size: 36px;\n line-height: 40px;\n font-family: serif;\n position: absolute;\n top: 5px;\n right: 8px;\n cursor: pointer;\n color: #cccccc;\n -webkit-transition: color .1s ease;\n transition: color .1s ease; }\n .swal2-popup .swal2-close:hover {\n color: #d55; }\n .swal2-popup > .swal2-input,\n .swal2-popup > .swal2-file,\n .swal2-popup > .swal2-textarea,\n .swal2-popup > .swal2-select,\n .swal2-popup > .swal2-radio,\n .swal2-popup > .swal2-checkbox {\n display: none; }\n .swal2-popup .swal2-content {\n font-size: 18px;\n text-align: center;\n font-weight: 300;\n position: relative;\n float: none;\n margin: 0;\n padding: 0;\n line-height: normal;\n color: #545454;\n word-wrap: break-word; }\n .swal2-popup .swal2-input,\n .swal2-popup .swal2-file,\n .swal2-popup .swal2-textarea,\n .swal2-popup .swal2-select,\n .swal2-popup .swal2-radio,\n .swal2-popup .swal2-checkbox {\n margin: 20px auto; }\n .swal2-popup .swal2-input,\n .swal2-popup .swal2-file,\n .swal2-popup .swal2-textarea {\n width: 100%;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n font-size: 18px;\n border-radius: 3px;\n border: 1px solid #d9d9d9;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06);\n -webkit-transition: border-color .3s, -webkit-box-shadow .3s;\n transition: border-color .3s, -webkit-box-shadow .3s;\n transition: border-color .3s, box-shadow .3s;\n transition: border-color .3s, box-shadow .3s, -webkit-box-shadow .3s; }\n .swal2-popup .swal2-input.swal2-inputerror,\n .swal2-popup .swal2-file.swal2-inputerror,\n .swal2-popup .swal2-textarea.swal2-inputerror {\n border-color: #f27474 !important;\n -webkit-box-shadow: 0 0 2px #f27474 !important;\n box-shadow: 0 0 2px #f27474 !important; }\n .swal2-popup .swal2-input:focus,\n .swal2-popup .swal2-file:focus,\n .swal2-popup .swal2-textarea:focus {\n outline: none;\n border: 1px solid #b4dbed;\n -webkit-box-shadow: 0 0 3px #c4e6f5;\n box-shadow: 0 0 3px #c4e6f5; }\n .swal2-popup .swal2-input::-webkit-input-placeholder,\n .swal2-popup .swal2-file::-webkit-input-placeholder,\n .swal2-popup .swal2-textarea::-webkit-input-placeholder {\n color: #cccccc; }\n .swal2-popup .swal2-input:-ms-input-placeholder,\n .swal2-popup .swal2-file:-ms-input-placeholder,\n .swal2-popup .swal2-textarea:-ms-input-placeholder {\n color: #cccccc; }\n .swal2-popup .swal2-input::-ms-input-placeholder,\n .swal2-popup .swal2-file::-ms-input-placeholder,\n .swal2-popup .swal2-textarea::-ms-input-placeholder {\n color: #cccccc; }\n .swal2-popup .swal2-input::placeholder,\n .swal2-popup .swal2-file::placeholder,\n .swal2-popup .swal2-textarea::placeholder {\n color: #cccccc; }\n .swal2-popup .swal2-range input {\n float: left;\n width: 80%; }\n .swal2-popup .swal2-range output {\n float: right;\n width: 20%;\n font-size: 20px;\n font-weight: 600;\n text-align: center; }\n .swal2-popup .swal2-range input,\n .swal2-popup .swal2-range output {\n height: 43px;\n line-height: 43px;\n vertical-align: middle;\n margin: 20px auto;\n padding: 0; }\n .swal2-popup .swal2-input {\n height: 43px;\n padding: 0 12px; }\n .swal2-popup .swal2-input[type='number'] {\n max-width: 150px; }\n .swal2-popup .swal2-file {\n font-size: 20px; }\n .swal2-popup .swal2-textarea {\n height: 108px;\n padding: 12px; }\n .swal2-popup .swal2-select {\n color: #545454;\n font-size: inherit;\n padding: 5px 10px;\n min-width: 40%;\n max-width: 100%; }\n .swal2-popup .swal2-radio {\n border: 0; }\n .swal2-popup .swal2-radio label:not(:first-child) {\n margin-left: 20px; }\n .swal2-popup .swal2-radio input,\n .swal2-popup .swal2-radio span {\n vertical-align: middle; }\n .swal2-popup .swal2-radio input {\n margin: 0 3px 0 0; }\n .swal2-popup .swal2-checkbox {\n color: #545454; }\n .swal2-popup .swal2-checkbox input,\n .swal2-popup .swal2-checkbox span {\n vertical-align: middle; }\n .swal2-popup .swal2-validationerror {\n background-color: #f0f0f0;\n margin: 0 -20px;\n overflow: hidden;\n padding: 10px;\n color: gray;\n font-size: 16px;\n font-weight: 300;\n display: none; }\n .swal2-popup .swal2-validationerror::before {\n content: '!';\n display: inline-block;\n width: 24px;\n height: 24px;\n border-radius: 50%;\n background-color: #ea7d7d;\n color: #fff;\n line-height: 24px;\n text-align: center;\n margin-right: 10px; }\n\n@supports (-ms-accelerator: true) {\n .swal2-range input {\n width: 100% !important; }\n .swal2-range output {\n display: none; } }\n\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n .swal2-range input {\n width: 100% !important; }\n .swal2-range output {\n display: none; } }\n\n.swal2-icon {\n width: 80px;\n height: 80px;\n border: 4px solid transparent;\n border-radius: 50%;\n margin: 20px auto 30px;\n padding: 0;\n position: relative;\n -webkit-box-sizing: content-box;\n box-sizing: content-box;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none; }\n .swal2-icon.swal2-error {\n border-color: #f27474; }\n .swal2-icon.swal2-error .swal2-x-mark {\n position: relative;\n display: block; }\n .swal2-icon.swal2-error [class^='swal2-x-mark-line'] {\n position: absolute;\n height: 5px;\n width: 47px;\n background-color: #f27474;\n display: block;\n top: 37px;\n border-radius: 2px; }\n .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='left'] {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n left: 17px; }\n .swal2-icon.swal2-error [class^='swal2-x-mark-line'][class$='right'] {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n right: 16px; }\n .swal2-icon.swal2-warning {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n color: #f8bb86;\n border-color: #facea8;\n font-size: 60px;\n line-height: 80px;\n text-align: center; }\n .swal2-icon.swal2-info {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n color: #3fc3ee;\n border-color: #9de0f6;\n font-size: 60px;\n line-height: 80px;\n text-align: center; }\n .swal2-icon.swal2-question {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n color: #87adbd;\n border-color: #c9dae1;\n font-size: 60px;\n line-height: 80px;\n text-align: center; }\n .swal2-icon.swal2-success {\n border-color: #a5dc86; }\n .swal2-icon.swal2-success [class^='swal2-success-circular-line'] {\n border-radius: 50%;\n position: absolute;\n width: 60px;\n height: 120px;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg); }\n .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='left'] {\n border-radius: 120px 0 0 120px;\n top: -7px;\n left: -33px;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n -webkit-transform-origin: 60px 60px;\n transform-origin: 60px 60px; }\n .swal2-icon.swal2-success [class^='swal2-success-circular-line'][class$='right'] {\n border-radius: 0 120px 120px 0;\n top: -11px;\n left: 30px;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg);\n -webkit-transform-origin: 0 60px;\n transform-origin: 0 60px; }\n .swal2-icon.swal2-success .swal2-success-ring {\n width: 80px;\n height: 80px;\n border: 4px solid rgba(165, 220, 134, 0.2);\n border-radius: 50%;\n -webkit-box-sizing: content-box;\n box-sizing: content-box;\n position: absolute;\n left: -4px;\n top: -4px;\n z-index: 2; }\n .swal2-icon.swal2-success .swal2-success-fix {\n width: 7px;\n height: 90px;\n position: absolute;\n left: 28px;\n top: 8px;\n z-index: 1;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n .swal2-icon.swal2-success [class^='swal2-success-line'] {\n height: 5px;\n background-color: #a5dc86;\n display: block;\n border-radius: 2px;\n position: absolute;\n z-index: 2; }\n .swal2-icon.swal2-success [class^='swal2-success-line'][class$='tip'] {\n width: 25px;\n left: 14px;\n top: 46px;\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg); }\n .swal2-icon.swal2-success [class^='swal2-success-line'][class$='long'] {\n width: 47px;\n right: 8px;\n top: 38px;\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n\n.swal2-progresssteps {\n font-weight: 600;\n margin: 0 0 20px;\n padding: 0; }\n .swal2-progresssteps li {\n display: inline-block;\n position: relative; }\n .swal2-progresssteps .swal2-progresscircle {\n background: #3085d6;\n border-radius: 2em;\n color: #fff;\n height: 2em;\n line-height: 2em;\n text-align: center;\n width: 2em;\n z-index: 20; }\n .swal2-progresssteps .swal2-progresscircle:first-child {\n margin-left: 0; }\n .swal2-progresssteps .swal2-progresscircle:last-child {\n margin-right: 0; }\n .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep {\n background: #3085d6; }\n .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progresscircle {\n background: #add8e6; }\n .swal2-progresssteps .swal2-progresscircle.swal2-activeprogressstep ~ .swal2-progressline {\n background: #add8e6; }\n .swal2-progresssteps .swal2-progressline {\n background: #3085d6;\n height: .4em;\n margin: 0 -1px;\n z-index: 10; }\n\n[class^='swal2'] {\n -webkit-tap-highlight-color: transparent; }\n\n@-webkit-keyframes showSweetToast {\n 0% {\n -webkit-transform: translateY(-10px) rotateZ(2deg);\n transform: translateY(-10px) rotateZ(2deg);\n opacity: 0; }\n 33% {\n -webkit-transform: translateY(0) rotateZ(-2deg);\n transform: translateY(0) rotateZ(-2deg);\n opacity: .5; }\n 66% {\n -webkit-transform: translateY(5px) rotateZ(2deg);\n transform: translateY(5px) rotateZ(2deg);\n opacity: .7; }\n 100% {\n -webkit-transform: translateY(0) rotateZ(0);\n transform: translateY(0) rotateZ(0);\n opacity: 1; } }\n\n@keyframes showSweetToast {\n 0% {\n -webkit-transform: translateY(-10px) rotateZ(2deg);\n transform: translateY(-10px) rotateZ(2deg);\n opacity: 0; }\n 33% {\n -webkit-transform: translateY(0) rotateZ(-2deg);\n transform: translateY(0) rotateZ(-2deg);\n opacity: .5; }\n 66% {\n -webkit-transform: translateY(5px) rotateZ(2deg);\n transform: translateY(5px) rotateZ(2deg);\n opacity: .7; }\n 100% {\n -webkit-transform: translateY(0) rotateZ(0);\n transform: translateY(0) rotateZ(0);\n opacity: 1; } }\n\n@-webkit-keyframes hideSweetToast {\n 0% {\n opacity: 1; }\n 33% {\n opacity: .5; }\n 100% {\n -webkit-transform: rotateZ(1deg);\n transform: rotateZ(1deg);\n opacity: 0; } }\n\n@keyframes hideSweetToast {\n 0% {\n opacity: 1; }\n 33% {\n opacity: .5; }\n 100% {\n -webkit-transform: rotateZ(1deg);\n transform: rotateZ(1deg);\n opacity: 0; } }\n\n@-webkit-keyframes showSweetAlert {\n 0% {\n -webkit-transform: scale(0.7);\n transform: scale(0.7); }\n 45% {\n -webkit-transform: scale(1.05);\n transform: scale(1.05); }\n 80% {\n -webkit-transform: scale(0.95);\n transform: scale(0.95); }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1); } }\n\n@keyframes showSweetAlert {\n 0% {\n -webkit-transform: scale(0.7);\n transform: scale(0.7); }\n 45% {\n -webkit-transform: scale(1.05);\n transform: scale(1.05); }\n 80% {\n -webkit-transform: scale(0.95);\n transform: scale(0.95); }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1); } }\n\n@-webkit-keyframes hideSweetAlert {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; }\n 100% {\n -webkit-transform: scale(0.5);\n transform: scale(0.5);\n opacity: 0; } }\n\n@keyframes hideSweetAlert {\n 0% {\n -webkit-transform: scale(1);\n transform: scale(1);\n opacity: 1; }\n 100% {\n -webkit-transform: scale(0.5);\n transform: scale(0.5);\n opacity: 0; } }\n\n.swal2-show {\n -webkit-animation: showSweetAlert .3s;\n animation: showSweetAlert .3s; }\n .swal2-show.swal2-toast {\n -webkit-animation: showSweetToast .5s;\n animation: showSweetToast .5s; }\n .swal2-show.swal2-noanimation {\n -webkit-animation: none;\n animation: none; }\n\n.swal2-hide {\n -webkit-animation: hideSweetAlert .15s forwards;\n animation: hideSweetAlert .15s forwards; }\n .swal2-hide.swal2-toast {\n -webkit-animation: hideSweetToast .2s forwards;\n animation: hideSweetToast .2s forwards; }\n .swal2-hide.swal2-noanimation {\n -webkit-animation: none;\n animation: none; }\n\n[dir='rtl'] .swal2-close {\n left: 8px;\n right: auto; }\n\n@-webkit-keyframes animate-success-tip {\n 0% {\n width: 0;\n left: 1px;\n top: 19px; }\n 54% {\n width: 0;\n left: 1px;\n top: 19px; }\n 70% {\n width: 50px;\n left: -8px;\n top: 37px; }\n 84% {\n width: 17px;\n left: 21px;\n top: 48px; }\n 100% {\n width: 25px;\n left: 14px;\n top: 45px; } }\n\n@keyframes animate-success-tip {\n 0% {\n width: 0;\n left: 1px;\n top: 19px; }\n 54% {\n width: 0;\n left: 1px;\n top: 19px; }\n 70% {\n width: 50px;\n left: -8px;\n top: 37px; }\n 84% {\n width: 17px;\n left: 21px;\n top: 48px; }\n 100% {\n width: 25px;\n left: 14px;\n top: 45px; } }\n\n@-webkit-keyframes animate-success-long {\n 0% {\n width: 0;\n right: 46px;\n top: 54px; }\n 65% {\n width: 0;\n right: 46px;\n top: 54px; }\n 84% {\n width: 55px;\n right: 0;\n top: 35px; }\n 100% {\n width: 47px;\n right: 8px;\n top: 38px; } }\n\n@keyframes animate-success-long {\n 0% {\n width: 0;\n right: 46px;\n top: 54px; }\n 65% {\n width: 0;\n right: 46px;\n top: 54px; }\n 84% {\n width: 55px;\n right: 0;\n top: 35px; }\n 100% {\n width: 47px;\n right: 8px;\n top: 38px; } }\n\n@-webkit-keyframes animate-toast-success-tip {\n 0% {\n width: 0;\n left: 1px;\n top: 9px; }\n 54% {\n width: 0;\n left: 1px;\n top: 9px; }\n 70% {\n width: 24px;\n left: -4px;\n top: 17px; }\n 84% {\n width: 8px;\n left: 10px;\n top: 20px; }\n 100% {\n width: 12px;\n left: 3px;\n top: 18px; } }\n\n@keyframes animate-toast-success-tip {\n 0% {\n width: 0;\n left: 1px;\n top: 9px; }\n 54% {\n width: 0;\n left: 1px;\n top: 9px; }\n 70% {\n width: 24px;\n left: -4px;\n top: 17px; }\n 84% {\n width: 8px;\n left: 10px;\n top: 20px; }\n 100% {\n width: 12px;\n left: 3px;\n top: 18px; } }\n\n@-webkit-keyframes animate-toast-success-long {\n 0% {\n width: 0;\n right: 22px;\n top: 26px; }\n 65% {\n width: 0;\n right: 22px;\n top: 26px; }\n 84% {\n width: 26px;\n right: 0;\n top: 15px; }\n 100% {\n width: 22px;\n right: 3px;\n top: 15px; } }\n\n@keyframes animate-toast-success-long {\n 0% {\n width: 0;\n right: 22px;\n top: 26px; }\n 65% {\n width: 0;\n right: 22px;\n top: 26px; }\n 84% {\n width: 26px;\n right: 0;\n top: 15px; }\n 100% {\n width: 22px;\n right: 3px;\n top: 15px; } }\n\n@-webkit-keyframes rotatePlaceholder {\n 0% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n 5% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n 12% {\n -webkit-transform: rotate(-405deg);\n transform: rotate(-405deg); }\n 100% {\n -webkit-transform: rotate(-405deg);\n transform: rotate(-405deg); } }\n\n@keyframes rotatePlaceholder {\n 0% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n 5% {\n -webkit-transform: rotate(-45deg);\n transform: rotate(-45deg); }\n 12% {\n -webkit-transform: rotate(-405deg);\n transform: rotate(-405deg); }\n 100% {\n -webkit-transform: rotate(-405deg);\n transform: rotate(-405deg); } }\n\n.swal2-animate-success-line-tip {\n -webkit-animation: animate-success-tip .75s;\n animation: animate-success-tip .75s; }\n\n.swal2-animate-success-line-long {\n -webkit-animation: animate-success-long .75s;\n animation: animate-success-long .75s; }\n\n.swal2-success.swal2-animate-success-icon .swal2-success-circular-line-right {\n -webkit-animation: rotatePlaceholder 4.25s ease-in;\n animation: rotatePlaceholder 4.25s ease-in; }\n\n@-webkit-keyframes animate-error-icon {\n 0% {\n -webkit-transform: rotateX(100deg);\n transform: rotateX(100deg);\n opacity: 0; }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n opacity: 1; } }\n\n@keyframes animate-error-icon {\n 0% {\n -webkit-transform: rotateX(100deg);\n transform: rotateX(100deg);\n opacity: 0; }\n 100% {\n -webkit-transform: rotateX(0deg);\n transform: rotateX(0deg);\n opacity: 1; } }\n\n.swal2-animate-error-icon {\n -webkit-animation: animate-error-icon .5s;\n animation: animate-error-icon .5s; }\n\n@-webkit-keyframes animate-x-mark {\n 0% {\n -webkit-transform: scale(0.4);\n transform: scale(0.4);\n margin-top: 26px;\n opacity: 0; }\n 50% {\n -webkit-transform: scale(0.4);\n transform: scale(0.4);\n margin-top: 26px;\n opacity: 0; }\n 80% {\n -webkit-transform: scale(1.15);\n transform: scale(1.15);\n margin-top: -6px; }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n margin-top: 0;\n opacity: 1; } }\n\n@keyframes animate-x-mark {\n 0% {\n -webkit-transform: scale(0.4);\n transform: scale(0.4);\n margin-top: 26px;\n opacity: 0; }\n 50% {\n -webkit-transform: scale(0.4);\n transform: scale(0.4);\n margin-top: 26px;\n opacity: 0; }\n 80% {\n -webkit-transform: scale(1.15);\n transform: scale(1.15);\n margin-top: -6px; }\n 100% {\n -webkit-transform: scale(1);\n transform: scale(1);\n margin-top: 0;\n opacity: 1; } }\n\n.swal2-animate-x-mark {\n -webkit-animation: animate-x-mark .5s;\n animation: animate-x-mark .5s; }\n\n@-webkit-keyframes rotate-loading {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes rotate-loading {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n"),w}(),"undefined"!=typeof window&&window.Sweetalert2&&(window.sweetAlert=window.swal=window.Sweetalert2)},129:function(e,t,n){"use strict";var r=n(236),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?a:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=a;var u=Object.defineProperty,c=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,d=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=d(n);o&&o!==h&&e(t,o,r)}var a=c(n);f&&(a=a.concat(f(n)));for(var s=l(t),m=l(n),g=0;g<+~=|^:(),"'`\s])/g,k="undefined"!=typeof CSS&&CSS.escape,S=function(e){return k?k(e):e.replace(x,"\\$1")},E=function(){function e(e,t,n){this.type="style",this.isProcessed=!1;var r=n.sheet,o=n.Renderer;this.key=e,this.options=n,this.style=t,r?this.renderer=r.renderer:o&&(this.renderer=new o)}return e.prototype.prop=function(e,t,n){if(void 0===t)return this.style[e];var r=!!n&&n.force;if(!r&&this.style[e]===t)return this;var o=t;n&&!1===n.process||(o=this.options.jss.plugins.onChangeValue(t,e,this));var i=null==o||!1===o,a=e in this.style;if(i&&!a&&!r)return this;var s=i&&a;if(s?delete this.style[e]:this.style[e]=o,this.renderable&&this.renderer)return s?this.renderer.removeProperty(this.renderable,e):this.renderer.setProperty(this.renderable,e,o),this;var l=this.options.sheet;return l&&l.attached,this},e}(),O=function(e){function t(t,n,r){var o;o=e.call(this,t,n,r)||this;var i=r.selector,a=r.scoped,s=r.sheet,l=r.generateId;return i?o.selectorText=i:!1!==a&&(o.id=l(Object(f.a)(Object(f.a)(o)),s),o.selectorText="."+S(o.id)),o}Object(c.a)(t,e);var n=t.prototype;return n.applyTo=function(e){var t=this.renderer;if(t){var n=this.toJSON();for(var r in n)t.setProperty(e,r,n[r])}return this},n.toJSON=function(){var e={};for(var t in this.style){var n=this.style[t];"object"!=typeof n?e[t]=n:Array.isArray(n)&&(e[t]=y(n))}return e},n.toString=function(e){var t=this.options.sheet,n=!!t&&t.options.link?Object(o.a)({},e,{allowEmpty:!0}):e;return w(this.selectorText,this.style,n)},Object(u.a)(t,[{key:"selector",set:function(e){if(e!==this.selectorText){this.selectorText=e;var t=this.renderer,n=this.renderable;if(n&&t)t.setSelector(n,e)||t.replaceRule(n,this)}},get:function(){return this.selectorText}}]),t}(E),T={onCreateRule:function(e,t,n){return"@"===e[0]||n.parent&&"keyframes"===n.parent.type?null:new O(e,t,n)}},_={indent:1,children:!0},P=/@([\w-]+)/,C=function(){function e(e,t,n){this.type="conditional",this.isProcessed=!1,this.key=e;var r=e.match(P);for(var i in this.at=r?r[1]:"unknown",this.query=n.name||"@"+this.at,this.options=n,this.rules=new Z(Object(o.a)({},n,{parent:this})),t)this.rules.add(i,t[i]);this.rules.process()}var t=e.prototype;return t.getRule=function(e){return this.rules.get(e)},t.indexOf=function(e){return this.rules.indexOf(e)},t.addRule=function(e,t,n){var r=this.rules.add(e,t,n);return r?(this.options.jss.plugins.onProcessRule(r),r):null},t.replaceRule=function(e,t,n){var r=this.rules.replace(e,t,n);return r&&this.options.jss.plugins.onProcessRule(r),r},t.toString=function(e){void 0===e&&(e=_);var t=b(e).linebreak;if(null==e.indent&&(e.indent=_.indent),null==e.children&&(e.children=_.children),!1===e.children)return this.query+" {}";var n=this.rules.toString(e);return n?this.query+" {"+t+n+t+"}":""},e}(),j=/@media|@supports\s+/,A={onCreateRule:function(e,t,n){return j.test(e)?new C(e,t,n):null}},R={indent:1,children:!0},N=/@keyframes\s+([\w-]+)/,z=function(){function e(e,t,n){this.type="keyframes",this.at="@keyframes",this.isProcessed=!1;var r=e.match(N);r&&r[1]?this.name=r[1]:this.name="noname",this.key=this.type+"-"+this.name,this.options=n;var i=n.scoped,a=n.sheet,s=n.generateId;for(var l in this.id=!1===i?this.name:S(s(this,a)),this.rules=new Z(Object(o.a)({},n,{parent:this})),t)this.rules.add(l,t[l],Object(o.a)({},n,{parent:this}));this.rules.process()}return e.prototype.toString=function(e){void 0===e&&(e=R);var t=b(e).linebreak;if(null==e.indent&&(e.indent=R.indent),null==e.children&&(e.children=R.children),!1===e.children)return this.at+" "+this.id+" {}";var n=this.rules.toString(e);return n&&(n=""+t+n+t),this.at+" "+this.id+" {"+n+"}"},e}(),I=/@keyframes\s+/,M=/\$([\w-]+)/g,L=function(e,t){return"string"==typeof e?e.replace(M,(function(e,n){return n in t?t[n]:e})):e},D=function(e,t,n){var r=e[t],o=L(r,n);o!==r&&(e[t]=o)},F={onCreateRule:function(e,t,n){return"string"==typeof e&&I.test(e)?new z(e,t,n):null},onProcessStyle:function(e,t,n){return"style"===t.type&&n?("animation-name"in e&&D(e,"animation-name",n.keyframes),"animation"in e&&D(e,"animation",n.keyframes),e):e},onChangeValue:function(e,t,n){var r=n.options.sheet;if(!r)return e;switch(t){case"animation":case"animation-name":return L(e,r.keyframes);default:return e}}},U=function(e){function t(){return e.apply(this,arguments)||this}return Object(c.a)(t,e),t.prototype.toString=function(e){var t=this.options.sheet,n=!!t&&t.options.link?Object(o.a)({},e,{allowEmpty:!0}):e;return w(this.key,this.style,n)},t}(E),B={onCreateRule:function(e,t,n){return n.parent&&"keyframes"===n.parent.type?new U(e,t,n):null}},H=function(){function e(e,t,n){this.type="font-face",this.at="@font-face",this.isProcessed=!1,this.key=e,this.style=t,this.options=n}return e.prototype.toString=function(e){var t=b(e).linebreak;if(Array.isArray(this.style)){for(var n="",r=0;r=this.index)t.push(e);else for(var r=0;rn)return void t.splice(r,0,e)},t.reset=function(){this.registry=[]},t.remove=function(e){var t=this.registry.indexOf(e);this.registry.splice(t,1)},t.toString=function(e){for(var t=void 0===e?{}:e,n=t.attached,r=Object(p.a)(t,["attached"]),o=b(r).linebreak,i="",a=0;a0){var n=function(e,t){for(var n=0;nt.index&&r.options.insertionPoint===t.insertionPoint)return r}return null}(t,e);if(n&&n.renderer)return{parent:n.renderer.element.parentNode,node:n.renderer.element};if((n=function(e,t){for(var n=e.length-1;n>=0;n--){var r=e[n];if(r.attached&&r.options.insertionPoint===t.insertionPoint)return r}return null}(t,e))&&n.renderer)return{parent:n.renderer.element.parentNode,node:n.renderer.element.nextSibling}}var r=e.insertionPoint;if(r&&"string"==typeof r){var o=function(e){for(var t=fe(),n=0;nn?n:t},ge=function(){function e(e){this.getPropertyValue=se,this.setProperty=le,this.removeProperty=ue,this.setSelector=ce,this.hasInsertedRules=!1,this.cssRules=[],e&&te.add(e),this.sheet=e;var t=this.sheet?this.sheet.options:{},n=t.media,r=t.meta,o=t.element;this.element=o||function(){var e=document.createElement("style");return e.textContent="\n",e}(),this.element.setAttribute("data-jss",""),n&&this.element.setAttribute("media",n),r&&this.element.setAttribute("data-meta",r);var i=de();i&&this.element.setAttribute("nonce",i)}var t=e.prototype;return t.attach=function(){if(!this.element.parentNode&&this.sheet){!function(e,t){var n=t.insertionPoint,r=pe(t);if(!1!==r&&r.parent)r.parent.insertBefore(e,r.node);else if(n&&"number"==typeof n.nodeType){var o=n,i=o.parentNode;i&&i.insertBefore(e,o.nextSibling)}else fe().appendChild(e)}(this.element,this.sheet.options);var e=Boolean(this.sheet&&this.sheet.deployed);this.hasInsertedRules&&e&&(this.hasInsertedRules=!1,this.deploy())}},t.detach=function(){if(this.sheet){var e=this.element.parentNode;e&&e.removeChild(this.element),this.sheet.options.link&&(this.cssRules=[],this.element.textContent="\n")}},t.deploy=function(){var e=this.sheet;e&&(e.options.link?this.insertRules(e.rules):this.element.textContent="\n"+e.toString()+"\n")},t.insertRules=function(e,t){for(var n=0;n-1){var o=It[e];if(!Array.isArray(o))return ut+vt(o)in t&&ct+o;if(!r)return!1;for(var i=0;it?1:-1:e.length-t.length};return{onProcessStyle:function(t,n){if("style"!==n.type)return t;for(var r={},o=Object.keys(t).sort(e),i=0;i0&&void 0!==arguments[0]?arguments[0]:{},t=e.disableGlobal,n=void 0!==t&&t,r=e.productionPrefix,o=void 0===r?"jss":r,i=e.seed,a=void 0===i?"":i,s=""===a?"":"".concat(a,"-"),l=0,u=function(){return l+=1};return function(e,t){var r=t.options.name;if(r&&0===r.indexOf("Mui")&&!t.options.link&&!n){if(-1!==Oe.indexOf(e.key))return"Mui-".concat(e.key);var i="".concat(s).concat(r,"-").concat(e.key);return t.options.theme[Ee.a]&&""===a?"".concat(i,"-").concat(u()):i}return"".concat(s).concat(o).concat(u())}}(),jss:en,sheetsCache:null,sheetsManager:new Map,sheetsRegistry:null},nn=a.a.createContext(tn);var rn=-1e9;function on(){return rn+=1}n(58);var an=n(636);function sn(e){var t="function"==typeof e;return{create:function(n,r){var i;try{i=t?e(n):e}catch(e){throw e}if(!r||!n.overrides||!n.overrides[r])return i;var a=n.overrides[r],s=Object(o.a)({},i);return Object.keys(a).forEach((function(e){s[e]=Object(an.a)(s[e],a[e])})),s},options:{}}}var ln={};function un(e,t,n){var r=e.state;if(e.stylesOptions.disableGeneration)return t||{};r.cacheClasses||(r.cacheClasses={value:null,lastProp:null,lastJSS:{}});var o=!1;return r.classes!==r.cacheClasses.lastJSS&&(r.cacheClasses.lastJSS=r.classes,o=!0),t!==r.cacheClasses.lastProp&&(r.cacheClasses.lastProp=t,o=!0),o&&(r.cacheClasses.value=Object(xe.a)({baseClasses:r.cacheClasses.lastJSS,newClasses:t,Component:n})),r.cacheClasses.value}function cn(e,t){var n=e.state,r=e.theme,i=e.stylesOptions,a=e.stylesCreator,s=e.name;if(!i.disableGeneration){var l=ke.get(i.sheetsManager,a,r);l||(l={refs:0,staticSheet:null,dynamicStyles:null},ke.set(i.sheetsManager,a,r,l));var u=Object(o.a)({},a.options,i,{theme:r,flip:"boolean"==typeof i.flip?i.flip:"rtl"===r.direction});u.generateId=u.serverGenerateClassName||u.generateClassName;var c=i.sheetsRegistry;if(0===l.refs){var f;i.sheetsCache&&(f=ke.get(i.sheetsCache,a,r));var p=a.create(r,s);f||((f=i.jss.createStyleSheet(p,Object(o.a)({link:!1},u))).attach(),i.sheetsCache&&ke.set(i.sheetsCache,a,r,f)),c&&c.add(f),l.staticSheet=f,l.dynamicStyles=function e(t){var n=null;for(var r in t){var o=t[r],i=typeof o;if("function"===i)n||(n={}),n[r]=o;else if("object"===i&&null!==o&&!Array.isArray(o)){var a=e(o);a&&(n||(n={}),n[r]=a)}}return n}(p)}if(l.dynamicStyles){var d=i.jss.createStyleSheet(l.dynamicStyles,Object(o.a)({link:!0},u));d.update(t),d.attach(),n.dynamicSheet=d,n.classes=Object(xe.a)({baseClasses:l.staticSheet.classes,newClasses:d.classes}),c&&c.add(d)}else n.classes=l.staticSheet.classes;l.refs+=1}}function fn(e,t){var n=e.state;n.dynamicSheet&&n.dynamicSheet.update(t)}function pn(e){var t=e.state,n=e.theme,r=e.stylesOptions,o=e.stylesCreator;if(!r.disableGeneration){var i=ke.get(r.sheetsManager,o,n);i.refs-=1;var a=r.sheetsRegistry;0===i.refs&&(ke.delete(r.sheetsManager,o,n),r.jss.removeStyleSheet(i.staticSheet),a&&a.remove(i.staticSheet)),t.dynamicSheet&&(r.jss.removeStyleSheet(t.dynamicSheet),a&&a.remove(t.dynamicSheet))}}function dn(e,t){var n,r=a.a.useRef([]),o=a.a.useMemo((function(){return{}}),t);r.current!==o&&(r.current=o,n=e()),a.a.useEffect((function(){return function(){n&&n()}}),[o])}function hn(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.name,i=t.classNamePrefix,s=t.Component,l=t.defaultTheme,u=void 0===l?ln:l,c=Object(r.a)(t,["name","classNamePrefix","Component","defaultTheme"]),f=sn(e),p=n||i||"makeStyles";f.options={index:on(),name:n,meta:p,classNamePrefix:p};var d=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object(Se.a)()||u,r=Object(o.a)({},a.a.useContext(nn),c),i=a.a.useRef(),l=a.a.useRef();dn((function(){var o={name:n,state:{},stylesCreator:f,stylesOptions:r,theme:t};return cn(o,e),l.current=!1,i.current=o,function(){pn(o)}}),[t,f]),a.a.useEffect((function(){l.current&&fn(i.current,e),l.current=!0}));var p=un(i.current,e.classes,s);return p};return d}},1361:function(e,t,n){"use strict";n.r(t);var r=n(153),o=n.n(r),i=n(0),a=n.n(i),s=n(20),l=n.n(s),u=n(1364),c=n(191),f=n(645),p=n(642),d=n(611),h=n.n(d),m=n(644),g=n(643),y=n(640),b=n(1),v=n(5),w=(n(8),n(6)),x=n(7),k=n(367),S=n(71),E=n(15),O=n(60),T="undefined"==typeof window?i.useEffect:i.useLayoutEffect,_=i.forwardRef((function(e,t){var n=e.alignItems,r=void 0===n?"center":n,o=e.autoFocus,a=void 0!==o&&o,l=e.button,u=void 0!==l&&l,c=e.children,f=e.classes,p=e.className,d=e.component,h=e.ContainerComponent,m=void 0===h?"li":h,g=e.ContainerProps,y=(g=void 0===g?{}:g).className,x=Object(v.a)(g,["className"]),_=e.dense,P=void 0!==_&&_,C=e.disabled,j=void 0!==C&&C,A=e.disableGutters,R=void 0!==A&&A,N=e.divider,z=void 0!==N&&N,I=e.focusVisibleClassName,M=e.selected,L=void 0!==M&&M,D=Object(v.a)(e,["alignItems","autoFocus","button","children","classes","className","component","ContainerComponent","ContainerProps","dense","disabled","disableGutters","divider","focusVisibleClassName","selected"]),F=i.useContext(O.a),U={dense:P||F.dense||!1,alignItems:r},B=i.useRef(null);T((function(){a&&B.current&&B.current.focus()}),[a]);var H=i.Children.toArray(c),q=H.length&&Object(S.a)(H[H.length-1],["ListItemSecondaryAction"]),W=i.useCallback((function(e){B.current=s.findDOMNode(e)}),[]),V=Object(E.a)(W,t),Q=Object(b.a)({className:Object(w.a)(f.root,p,U.dense&&f.dense,!R&&f.gutters,z&&f.divider,j&&f.disabled,u&&f.button,"center"!==r&&f.alignItemsFlexStart,q&&f.secondaryAction,L&&f.selected),disabled:j},D),$=d||"li";return u&&(Q.component=d||"div",Q.focusVisibleClassName=Object(w.a)(f.focusVisible,I),$=k.a),q?($=Q.component||d?$:"div","li"===m&&("li"===$?$="div":"li"===Q.component&&(Q.component="div")),i.createElement(O.a.Provider,{value:U},i.createElement(m,Object(b.a)({className:Object(w.a)(f.container,y),ref:V},x),i.createElement($,Q,H),H.pop()))):i.createElement(O.a.Provider,{value:U},i.createElement($,Object(b.a)({ref:V},Q),H))})),P=Object(x.a)((function(e){return{root:{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,"&$focusVisible":{backgroundColor:e.palette.action.selected},"&$selected, &$selected:hover":{backgroundColor:e.palette.action.selected},"&$disabled":{opacity:.5}},container:{position:"relative"},focusVisible:{},dense:{paddingTop:4,paddingBottom:4},alignItemsFlexStart:{alignItems:"flex-start"},disabled:{},divider:{borderBottom:"1px solid ".concat(e.palette.divider),backgroundClip:"padding-box"},gutters:{paddingLeft:16,paddingRight:16},button:{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:e.palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}},secondaryAction:{paddingRight:48},selected:{}}}),{name:"MuiListItem"})(_),C=n(16),j=i.forwardRef((function(e,t){var n=e.absolute,r=void 0!==n&&n,o=e.classes,a=e.className,s=e.component,l=void 0===s?"hr":s,u=e.flexItem,c=void 0!==u&&u,f=e.light,p=void 0!==f&&f,d=e.orientation,h=void 0===d?"horizontal":d,m=e.role,g=void 0===m?"hr"!==l?"separator":void 0:m,y=e.variant,x=void 0===y?"fullWidth":y,k=Object(v.a)(e,["absolute","classes","className","component","flexItem","light","orientation","role","variant"]);return i.createElement(l,Object(b.a)({className:Object(w.a)(o.root,a,"fullWidth"!==x&&o[x],r&&o.absolute,c&&o.flexItem,p&&o.light,"vertical"===h&&o.vertical),role:g,ref:t},k))})),A=Object(x.a)((function(e){return{root:{height:1,margin:0,border:"none",flexShrink:0,backgroundColor:e.palette.divider},absolute:{position:"absolute",bottom:0,left:0,width:"100%"},inset:{marginLeft:72},light:{backgroundColor:Object(C.c)(e.palette.divider,.08)},middle:{marginLeft:e.spacing(2),marginRight:e.spacing(2)},vertical:{height:"100%",width:1},flexItem:{alignSelf:"stretch",height:"auto"}}}),{name:"MuiDivider"})(j),R=n(641),N=i.forwardRef((function(e,t){var n=e.children,r=e.classes,o=e.className,a=e.disableTypography,s=void 0!==a&&a,l=e.inset,u=void 0!==l&&l,c=e.primary,f=e.primaryTypographyProps,p=e.secondary,d=e.secondaryTypographyProps,h=Object(v.a)(e,["children","classes","className","disableTypography","inset","primary","primaryTypographyProps","secondary","secondaryTypographyProps"]),m=i.useContext(O.a).dense,g=null!=c?c:n;null==g||g.type===R.a||s||(g=i.createElement(R.a,Object(b.a)({variant:m?"body2":"body1",className:r.primary,component:"span",display:"block"},f),g));var y=p;return null==y||y.type===R.a||s||(y=i.createElement(R.a,Object(b.a)({variant:"body2",className:r.secondary,color:"textSecondary",display:"block"},d),y)),i.createElement("div",Object(b.a)({className:Object(w.a)(r.root,o,m&&r.dense,u&&r.inset,g&&y&&r.multiline),ref:t},h),g,y)})),z=Object(x.a)({root:{flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4},multiline:{marginTop:6,marginBottom:6},dense:{},inset:{paddingLeft:56},primary:{},secondary:{}},{name:"MuiListItemText"})(N),I=i.forwardRef((function(e,t){var n=e.classes,r=e.className,o=Object(v.a)(e,["classes","className"]),a=i.useContext(O.a);return i.createElement("div",Object(b.a)({className:Object(w.a)(n.root,r,"flex-start"===a.alignItems&&n.alignItemsFlexStart),ref:t},o))})),M=Object(x.a)({root:{minWidth:56,flexShrink:0},alignItemsFlexStart:{marginTop:8}},{name:"MuiListItemAvatar"})(I),L=i.forwardRef((function(e,t){var n=e.classes,r=e.className,o=Object(v.a)(e,["classes","className"]);return i.createElement("div",Object(b.a)({className:Object(w.a)(n.root,r),ref:t},o))}));L.muiName="ListItemSecondaryAction";var D=Object(x.a)({root:{position:"absolute",right:16,top:"50%",transform:"translateY(-50%)"}},{name:"MuiListItemSecondaryAction"})(L),F=n(52),U=n(28),B=n(636),H=n(12),q=n(1362),W=n(610),V=n(192),Q=n(639),$=n(59),Y=n(37);function X(e){return"function"==typeof e?e():e}var G="undefined"!=typeof window?i.useLayoutEffect:i.useEffect,K={},Z=i.forwardRef((function(e,t){var n=e.anchorEl,r=e.children,o=e.container,a=e.disablePortal,s=void 0!==a&&a,l=e.keepMounted,u=void 0!==l&&l,c=e.modifiers,f=e.open,p=e.placement,d=void 0===p?"bottom":p,h=e.popperOptions,m=void 0===h?K:h,g=e.popperRef,y=e.style,w=e.transition,x=void 0!==w&&w,k=Object(v.a)(e,["anchorEl","children","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition"]),S=i.useRef(null),O=Object(E.a)(S,t),T=i.useRef(null),_=Object(E.a)(T,g),P=i.useRef(_);G((function(){P.current=_}),[_]),i.useImperativeHandle(g,(function(){return T.current}),[]);var C=i.useState(!0),j=C[0],A=C[1],R=function(e,t){if("ltr"===(t&&t.direction||"ltr"))return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}(d,Object(V.a)()),N=i.useState(R),z=N[0],I=N[1];i.useEffect((function(){T.current&&T.current.update()}));var M=i.useCallback((function(){if(S.current&&n&&f){T.current&&(T.current.destroy(),P.current(null));var e=function(e){I(e.placement)},t=(X(n),new W.a(X(n),S.current,Object(b.a)({placement:R},m,{modifiers:Object(b.a)({},s?{}:{preventOverflow:{boundariesElement:"window"}},c,m.modifiers),onCreate:Object($.a)(e,m.onCreate),onUpdate:Object($.a)(e,m.onUpdate)})));P.current(t)}}),[n,s,c,f,R,m]),L=i.useCallback((function(e){Object(Y.a)(O,e),M()}),[O,M]),D=function(){T.current&&(T.current.destroy(),P.current(null))};if(i.useEffect((function(){return function(){D()}}),[]),i.useEffect((function(){f||x||D()}),[f,x]),!u&&!f&&(!x||j))return null;var F={placement:z};return x&&(F.TransitionProps={in:f,onEnter:function(){A(!1)},onExited:function(){A(!0),D()}}),i.createElement(Q.a,{disablePortal:s,container:o},i.createElement("div",Object(b.a)({ref:L,role:"tooltip"},k,{style:Object(b.a)({position:"fixed",top:0,left:0,display:f||!u||x?null:"none"},y)}),"function"==typeof r?r(F):r))})),J=n(127),ee=n(57),te=n(70),ne=n(73);function re(e){return Math.round(1e5*e)/1e5}var oe=!1,ie=null;var ae=i.forwardRef((function(e,t){var n=e.arrow,r=void 0!==n&&n,o=e.children,a=e.classes,l=e.disableFocusListener,u=void 0!==l&&l,c=e.disableHoverListener,f=void 0!==c&&c,p=e.disableTouchListener,d=void 0!==p&&p,h=e.enterDelay,m=void 0===h?100:h,g=e.enterNextDelay,y=void 0===g?0:g,x=e.enterTouchDelay,k=void 0===x?700:x,S=e.id,O=e.interactive,T=void 0!==O&&O,_=e.leaveDelay,P=void 0===_?0:_,C=e.leaveTouchDelay,j=void 0===C?1500:C,A=e.onClose,R=e.onOpen,N=e.open,z=e.placement,I=void 0===z?"bottom":z,M=e.PopperComponent,L=void 0===M?Z:M,D=e.PopperProps,U=e.title,W=e.TransitionComponent,V=void 0===W?q.a:W,Q=e.TransitionProps,$=Object(v.a)(e,["arrow","children","classes","disableFocusListener","disableHoverListener","disableTouchListener","enterDelay","enterNextDelay","enterTouchDelay","id","interactive","leaveDelay","leaveTouchDelay","onClose","onOpen","open","placement","PopperComponent","PopperProps","title","TransitionComponent","TransitionProps"]),X=Object(ne.a)(),G=i.useState(),K=G[0],re=G[1],ae=i.useState(null),se=ae[0],le=ae[1],ue=i.useRef(!1),ce=i.useRef(),fe=i.useRef(),pe=i.useRef(),de=i.useRef(),he=Object(te.a)({controlled:N,default:!1,name:"Tooltip",state:"open"}),me=Object(F.a)(he,2),ge=me[0],ye=me[1],be=ge,ve=Object(J.a)(S);i.useEffect((function(){return function(){clearTimeout(ce.current),clearTimeout(fe.current),clearTimeout(pe.current),clearTimeout(de.current)}}),[]);var we=function(e){clearTimeout(ie),oe=!0,ye(!0),R&&R(e)},xe=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return function(t){var n=o.props;"mouseover"===t.type&&n.onMouseOver&&e&&n.onMouseOver(t),ue.current&&"touchstart"!==t.type||(K&&K.removeAttribute("title"),clearTimeout(fe.current),clearTimeout(pe.current),m||oe&&y?(t.persist(),fe.current=setTimeout((function(){we(t)}),oe?y:m)):we(t))}},ke=Object(ee.a)(),Se=ke.isFocusVisible,Ee=ke.onBlurVisible,Oe=ke.ref,Te=i.useState(!1),_e=Te[0],Pe=Te[1],Ce=function(){_e&&(Pe(!1),Ee())},je=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return function(t){K||re(t.currentTarget),Se(t)&&(Pe(!0),xe()(t));var n=o.props;n.onFocus&&e&&n.onFocus(t)}},Ae=function(e){clearTimeout(ie),ie=setTimeout((function(){oe=!1}),800+P),ye(!1),A&&A(e),clearTimeout(ce.current),ce.current=setTimeout((function(){ue.current=!1}),X.transitions.duration.shortest)},Re=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return function(t){var n=o.props;"blur"===t.type&&(n.onBlur&&e&&n.onBlur(t),Ce()),"mouseleave"===t.type&&n.onMouseLeave&&t.currentTarget===K&&n.onMouseLeave(t),clearTimeout(fe.current),clearTimeout(pe.current),t.persist(),pe.current=setTimeout((function(){Ae(t)}),P)}},Ne=function(e){ue.current=!0;var t=o.props;t.onTouchStart&&t.onTouchStart(e)},ze=Object(E.a)(re,t),Ie=Object(E.a)(Oe,ze),Me=i.useCallback((function(e){Object(Y.a)(Ie,s.findDOMNode(e))}),[Ie]),Le=Object(E.a)(o.ref,Me);""===U&&(be=!1);var De=!be&&!f,Fe=Object(b.a)({"aria-describedby":be?ve:null,title:De&&"string"==typeof U?U:null},$,o.props,{className:Object(w.a)($.className,o.props.className),onTouchStart:Ne,ref:Le}),Ue={};d||(Fe.onTouchStart=function(e){Ne(e),clearTimeout(pe.current),clearTimeout(ce.current),clearTimeout(de.current),e.persist(),de.current=setTimeout((function(){xe()(e)}),k)},Fe.onTouchEnd=function(e){o.props.onTouchEnd&&o.props.onTouchEnd(e),clearTimeout(de.current),clearTimeout(pe.current),e.persist(),pe.current=setTimeout((function(){Ae(e)}),j)}),f||(Fe.onMouseOver=xe(),Fe.onMouseLeave=Re(),T&&(Ue.onMouseOver=xe(!1),Ue.onMouseLeave=Re(!1))),u||(Fe.onFocus=je(),Fe.onBlur=Re(),T&&(Ue.onFocus=je(!1),Ue.onBlur=Re(!1)));var Be=i.useMemo((function(){return Object(B.a)({popperOptions:{modifiers:{arrow:{enabled:Boolean(se),element:se}}}},D)}),[se,D]);return i.createElement(i.Fragment,null,i.cloneElement(o,Fe),i.createElement(L,Object(b.a)({className:Object(w.a)(a.popper,T&&a.popperInteractive,r&&a.popperArrow),placement:I,anchorEl:K,open:!!K&&be,id:Fe["aria-describedby"],transition:!0},Ue,Be),(function(e){var t=e.placement,n=e.TransitionProps;return i.createElement(V,Object(b.a)({timeout:X.transitions.duration.shorter},n,Q),i.createElement("div",{className:Object(w.a)(a.tooltip,a["tooltipPlacement".concat(Object(H.a)(t.split("-")[0]))],ue.current&&a.touch,r&&a.tooltipArrow)},U,r?i.createElement("span",{className:a.arrow,ref:le}):null))})))})),se=Object(x.a)((function(e){return{popper:{zIndex:e.zIndex.tooltip,pointerEvents:"none"},popperInteractive:{pointerEvents:"auto"},popperArrow:{'&[x-placement*="bottom"] $arrow':{top:0,left:0,marginTop:"-0.71em",marginLeft:4,marginRight:4,"&::before":{transformOrigin:"0 100%"}},'&[x-placement*="top"] $arrow':{bottom:0,left:0,marginBottom:"-0.71em",marginLeft:4,marginRight:4,"&::before":{transformOrigin:"100% 0"}},'&[x-placement*="right"] $arrow':{left:0,marginLeft:"-0.71em",height:"1em",width:"0.71em",marginTop:4,marginBottom:4,"&::before":{transformOrigin:"100% 100%"}},'&[x-placement*="left"] $arrow':{right:0,marginRight:"-0.71em",height:"1em",width:"0.71em",marginTop:4,marginBottom:4,"&::before":{transformOrigin:"0 0"}}},tooltip:{backgroundColor:Object(C.c)(e.palette.grey[700],.9),borderRadius:e.shape.borderRadius,color:e.palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(10),lineHeight:"".concat(re(1.4),"em"),maxWidth:300,wordWrap:"break-word",fontWeight:e.typography.fontWeightMedium},tooltipArrow:{position:"relative",margin:"0"},arrow:{overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:Object(C.c)(e.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}},touch:{padding:"8px 16px",fontSize:e.typography.pxToRem(14),lineHeight:"".concat(re(16/14),"em"),fontWeight:e.typography.fontWeightRegular},tooltipPlacementLeft:Object(U.a)({transformOrigin:"right center",margin:"0 24px "},e.breakpoints.up("sm"),{margin:"0 14px"}),tooltipPlacementRight:Object(U.a)({transformOrigin:"left center",margin:"0 24px"},e.breakpoints.up("sm"),{margin:"0 14px"}),tooltipPlacementTop:Object(U.a)({transformOrigin:"center bottom",margin:"24px 0"},e.breakpoints.up("sm"),{margin:"14px 0"}),tooltipPlacementBottom:Object(U.a)({transformOrigin:"center top",margin:"24px 0"},e.breakpoints.up("sm"),{margin:"14px 0"})}}),{name:"MuiTooltip",flip:!1})(ae),le=n(152);var ue=n(128),ce=n.n(ue);const fe=Object(c.a)({palette:{primary:{main:"#3fa2f7"}},overrides:{MuiButton:{containedPrimary:{color:"white"}}}}),pe=e=>{const{accounts:t}=e,n=t=>{((e,t)=>{const n={username:e};return Object(le.a)(window.REMOVE_FORMER_ACCOUNT_ENDPOINT)(n,{"X-CSRF-TOKEN":t})})(t.username,e.token).then(e=>{let{response:t}=e},e=>{let{response:t,status:n,message:r}=e;ce()("Oops...","Something went wrong!","error")})};return a.a.createElement(g.a,{component:"main",maxWidth:"xs",className:o.a.main_container},a.a.createElement(m.a,null),a.a.createElement(g.a,{className:o.a.login_container},a.a.createElement("div",{className:o.a.inner_container},a.a.createElement(R.a,{component:"h1",className:o.a.app_logo_container},a.a.createElement("a",{href:window.location.href},a.a.createElement("img",{className:o.a.app_logo,alt:e.appName,src:e.appLogo}))),a.a.createElement(R.a,{component:"h1",variant:"h5",style:{textAlign:"center"}},"Select an Account"),a.a.createElement(y.a,{style:{width:"100%",backgroundColor:"background.paper"}},t.map(e=>a.a.createElement(a.a.Fragment,null,a.a.createElement(P,{title:`Proceed with ${e.full_name} ...`,button:!0,onClick:t=>{var n;n=e,window.location="/auth/login?login_hint="+encodeURIComponent(n.username)},alignItems:"flex-start",disablePadding:!0,key:e.username},a.a.createElement(M,null,a.a.createElement(u.a,{alt:e.full_name,src:e.pic})),a.a.createElement(z,{primary:e.full_name,secondary:a.a.createElement(a.a.Fragment,null,a.a.createElement(R.a,{style:{display:"inline"},component:"span",variant:"body2",color:"text.primary"},e.username))}),a.a.createElement(D,null,a.a.createElement(se,{title:"remove","aria-label":"remove"},a.a.createElement(p.a,{edge:"end","aria-label":"remove",onClick:t=>{n(e)}},a.a.createElement(h.a,null))))),a.a.createElement(A,{variant:"inset",component:"li"})))))))};l.a.render(a.a.createElement(f.a,{theme:fe},a.a.createElement(pe,config)),document.querySelector("#root"))},1362:function(e,t,n){"use strict";var r=n(1),o=n(52),i=n(5),a=n(0),s=n.n(a),l=(n(8),n(47)),u=n(53),c=n(20),f=n.n(c),p=!1,d=n(61),h=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var o,i=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?i?(o="exited",r.appearStatus="entering"):o="entered":o=t.unmountOnExit||t.mountOnEnter?"unmounted":"exited",r.state={status:o},r.nextCallback=null,r}Object(u.a)(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&"unmounted"===t.status?{status:"exited"}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?"entering"!==n&&"entered"!==n&&(t="entering"):"entering"!==n&&"entered"!==n||(t="exiting")}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!=typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){void 0===e&&(e=!1),null!==t?(this.cancelNextCallback(),"entering"===t?this.performEnter(e):this.performExit()):this.props.unmountOnExit&&"exited"===this.state.status&&this.setState({status:"unmounted"})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[f.a.findDOMNode(this),r],i=o[0],a=o[1],s=this.getTimeouts(),l=r?s.appear:s.enter;!e&&!n||p?this.safeSetState({status:"entered"},(function(){t.props.onEntered(i)})):(this.props.onEnter(i,a),this.safeSetState({status:"entering"},(function(){t.props.onEntering(i,a),t.onTransitionEnd(l,(function(){t.safeSetState({status:"entered"},(function(){t.props.onEntered(i,a)}))}))})))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:f.a.findDOMNode(this);t&&!p?(this.props.onExit(r),this.safeSetState({status:"exiting"},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:"exited"},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:"exited"},(function(){e.props.onExited(r)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:f.a.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],i=o[0],a=o[1];this.props.addEndListener(i,a)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if("unmounted"===e)return null;var t=this.props,n=t.children,r=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,Object(l.a)(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return s.a.createElement(d.a.Provider,{value:null},"function"==typeof n?n(e,r):s.a.cloneElement(s.a.Children.only(n),r))},t}(s.a.Component);function m(){}h.contextType=d.a,h.propTypes={},h.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:m,onEntering:m,onEntered:m,onExit:m,onExiting:m,onExited:m},h.UNMOUNTED="unmounted",h.EXITED="exited",h.ENTERING="entering",h.ENTERED="entered",h.EXITING="exiting";var g=h,y=n(73);function b(e,t){var n=e.timeout,r=e.style,o=void 0===r?{}:r;return{duration:o.transitionDuration||"number"==typeof n?n:n[t.mode]||0,delay:o.transitionDelay}}var v=n(15);function w(e){return"scale(".concat(e,", ").concat(Math.pow(e,2),")")}var x={entering:{opacity:1,transform:w(1)},entered:{opacity:1,transform:"none"}},k=a.forwardRef((function(e,t){var n=e.children,s=e.disableStrictModeCompat,l=void 0!==s&&s,u=e.in,c=e.onEnter,f=e.onEntered,p=e.onEntering,d=e.onExit,h=e.onExited,m=e.onExiting,k=e.style,S=e.timeout,E=void 0===S?"auto":S,O=e.TransitionComponent,T=void 0===O?g:O,_=Object(i.a)(e,["children","disableStrictModeCompat","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"]),P=a.useRef(),C=a.useRef(),j=Object(y.a)(),A=j.unstable_strictMode&&!l,R=a.useRef(null),N=Object(v.a)(n.ref,t),z=Object(v.a)(A?R:void 0,N),I=function(e){return function(t,n){if(e){var r=A?[R.current,t]:[t,n],i=Object(o.a)(r,2),a=i[0],s=i[1];void 0===s?e(a):e(a,s)}}},M=I(p),L=I((function(e,t){!function(e){e.scrollTop}(e);var n,r=b({style:k,timeout:E},{mode:"enter"}),o=r.duration,i=r.delay;"auto"===E?(n=j.transitions.getAutoHeightDuration(e.clientHeight),C.current=n):n=o,e.style.transition=[j.transitions.create("opacity",{duration:n,delay:i}),j.transitions.create("transform",{duration:.666*n,delay:i})].join(","),c&&c(e,t)})),D=I(f),F=I(m),U=I((function(e){var t,n=b({style:k,timeout:E},{mode:"exit"}),r=n.duration,o=n.delay;"auto"===E?(t=j.transitions.getAutoHeightDuration(e.clientHeight),C.current=t):t=r,e.style.transition=[j.transitions.create("opacity",{duration:t,delay:o}),j.transitions.create("transform",{duration:.666*t,delay:o||.333*t})].join(","),e.style.opacity="0",e.style.transform=w(.75),d&&d(e)})),B=I(h);return a.useEffect((function(){return function(){clearTimeout(P.current)}}),[]),a.createElement(T,Object(r.a)({appear:!0,in:u,nodeRef:A?R:void 0,onEnter:L,onEntered:D,onEntering:M,onExit:U,onExited:B,onExiting:F,addEndListener:function(e,t){var n=A?e:t;"auto"===E&&(P.current=setTimeout(n,C.current||0))},timeout:"auto"===E?null:E},_),(function(e,t){return a.cloneElement(n,Object(r.a)({style:Object(r.a)({opacity:0,transform:w(.75),visibility:"exited"!==e||u?void 0:"hidden"},x[e],k,n.props.style),ref:z},t))}))}));k.muiSupportAuto=!0;t.a=k},1364:function(e,t,n){"use strict";var r=n(1),o=n(5),i=n(0),a=(n(8),n(6)),s=n(7),l=n(41),u=Object(l.a)(i.createElement("path",{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"}),"Person");var c=i.forwardRef((function(e,t){var n=e.alt,s=e.children,l=e.classes,c=e.className,f=e.component,p=void 0===f?"div":f,d=e.imgProps,h=e.sizes,m=e.src,g=e.srcSet,y=e.variant,b=void 0===y?"circle":y,v=Object(o.a)(e,["alt","children","classes","className","component","imgProps","sizes","src","srcSet","variant"]),w=null,x=function(e){var t=e.src,n=e.srcSet,r=i.useState(!1),o=r[0],a=r[1];return i.useEffect((function(){if(t||n){a(!1);var e=!0,r=new Image;return r.src=t,r.srcSet=n,r.onload=function(){e&&a("loaded")},r.onerror=function(){e&&a("error")},function(){e=!1}}}),[t,n]),o}({src:m,srcSet:g}),k=m||g,S=k&&"error"!==x;return w=S?i.createElement("img",Object(r.a)({alt:n,src:m,srcSet:g,sizes:h,className:l.img},d)):null!=s?s:k&&n?n[0]:i.createElement(u,{className:l.fallback}),i.createElement(p,Object(r.a)({className:Object(a.a)(l.root,l.system,l[b],c,!S&&l.colorDefault),ref:t},v),w)}));t.a=Object(s.a)((function(e){return{root:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:40,height:40,fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(20),lineHeight:1,borderRadius:"50%",overflow:"hidden",userSelect:"none"},colorDefault:{color:e.palette.background.default,backgroundColor:"light"===e.palette.type?e.palette.grey[400]:e.palette.grey[600]},circle:{},circular:{},rounded:{borderRadius:e.shape.borderRadius},square:{borderRadius:0},img:{width:"100%",height:"100%",textAlign:"center",objectFit:"cover",color:"transparent",textIndent:1e4},fallback:{width:"75%",height:"75%"}}}),{name:"MuiAvatar"})(c)},15:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(0),o=n(37);function i(e,t){return r.useMemo((function(){return null==e&&null==t?null:function(n){Object(o.a)(e,n),Object(o.a)(t,n)}}),[e,t])}},152:function(e,t,n){"use strict";n.d(t,"b",(function(){return h})),n.d(t,"c",(function(){return m})),n.d(t,"a",(function(){return g}));var r=n(186),o=n.n(r),i=n(97),a=n.n(i);let s=o.a;const l=e=>t=>({type:e,payload:t}),u=(l("RESET_LOADING"),l("START_LOADING"),l("STOP_LOADING"),{}),c=e=>{u[e]&&(u[e].xhr.abort(),console.log("aborted request "+e),delete u[e])},f=(e,t)=>{u[e]=t},p=e=>{delete u[e]},d=e=>0===Object.keys(e).length&&e.constructor===Object,h=e=>t=>{let n=a()(e);d(t)||(n=n.query(t));let r=n.toString();c(r);let o=s.get(n.toString());return f(r,o),o.timeout({response:6e4,deadline:6e4}).then(e=>{let t=e.body;return p(r),Promise.resolve({response:t})}).catch(e=>(p(r),Promise.reject(e)))},m=e=>(t,n={})=>{let r=a()(e);d(t)||(r=r.query(t));let o=r.toString();c(o);let i=s.post(r.toString());return f(o,i),i.set(n).send(t).timeout({response:6e4,deadline:6e4}).then(e=>{let t=e.body;return p(o),Promise.resolve({response:t})}).catch(e=>(p(o),Promise.reject(e)))},g=e=>(t,n={})=>{let r=a()(e);d(t)||(r=r.query(t));let o=r.toString();c(o);let i=s.delete(r.toString());return f(o,i),i.set(n).send(t).timeout({response:6e4,deadline:6e4}).then(e=>{let t=e.body;return p(o),Promise.resolve({response:t})}).catch(e=>(p(o),Promise.reject(e)))}},153:function(e,t,n){e.exports={main_container:"main_container___3z2Sq",login_container:"login_container___2IDqB",inner_container:"inner_container___2QnpL",app_logo_container:"app_logo_container___U-bNC",app_logo:"app_logo___329--",continue_btn:"continue_btn___1rd8E",recaptcha:"recaptcha___1tFLz",separator:"separator___2pSEN"}},156:function(e,t,n){"use strict";var r=n(112),o=Object.prototype.hasOwnProperty,i=Array.isArray,a=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),s=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},r=0;r1;){var t=e.pop(),n=t.obj[t.prop];if(i(n)){for(var r=[],o=0;o=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122||i===r.RFC1738&&(40===c||41===c)?l+=s.charAt(u):c<128?l+=a[c]:c<2048?l+=a[192|c>>6]+a[128|63&c]:c<55296||c>=57344?l+=a[224|c>>12]+a[128|c>>6&63]+a[128|63&c]:(u+=1,c=65536+((1023&c)<<10|1023&s.charCodeAt(u)),l+=a[240|c>>18]+a[128|c>>12&63]+a[128|c>>6&63]+a[128|63&c])}return l},isBuffer:function(e){return!(!e||"object"!=typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(i(e)){for(var n=[],r=0;r= 0x80 (not a basic code point)","invalid-input":"Invalid input"},d=Math.floor,h=String.fromCharCode;function m(e){throw new RangeError(p[e])}function g(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function y(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+g((e=e.replace(f,".")).split("."),t).join(".")}function b(e){for(var t,n,r=[],o=0,i=e.length;o=55296&&t<=56319&&o65535&&(t+=h((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=h(e)})).join("")}function w(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function x(e,t,n){var r=0;for(e=n?d(e/700):e>>1,e+=d(e/t);e>455;r+=36)e=d(e/35);return d(r+36*e/(e+38))}function k(e){var t,n,r,o,i,a,s,u,c,f,p,h=[],g=e.length,y=0,b=128,w=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r=128&&m("not-basic"),h.push(e.charCodeAt(r));for(o=n>0?n+1:0;o=g&&m("invalid-input"),((u=(p=e.charCodeAt(o++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||u>d((l-y)/a))&&m("overflow"),y+=u*a,!(u<(c=s<=w?1:s>=w+26?26:s-w));s+=36)a>d(l/(f=36-c))&&m("overflow"),a*=f;w=x(y-i,t=h.length+1,0==i),d(y/t)>l-b&&m("overflow"),b+=d(y/t),y%=t,h.splice(y++,0,b)}return v(h)}function S(e){var t,n,r,o,i,a,s,u,c,f,p,g,y,v,k,S=[];for(g=(e=b(e)).length,t=128,n=0,i=72,a=0;a=t&&pd((l-n)/(y=r+1))&&m("overflow"),n+=(s-t)*y,t=s,a=0;al&&m("overflow"),p==t){for(u=n,c=36;!(u<(f=c<=i?1:c>=i+26?26:c-i));c+=36)k=u-f,v=36-f,S.push(h(w(f+k%v,0))),u=d(k/v);S.push(h(w(u,0))),i=x(n,y,r==o),n=0,++r}++n,++t}return S.join("")}s={version:"1.3.2",ucs2:{decode:b,encode:v},decode:k,encode:S,toASCII:function(e){return y(e,(function(e){return c.test(e)?"xn--"+S(e):e}))},toUnicode:function(e){return y(e,(function(e){return u.test(e)?k(e.slice(4).toLowerCase()):e}))}},void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o)}()}).call(this,n(45)(e),n(27))},159:function(e,t,n){var r,o; +/*! + * URI.js - Mutating URLs + * IPv6 Support + * + * Version: 1.19.6 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */!function(i,a){"use strict";e.exports?e.exports=a():void 0===(o="function"==typeof(r=a)?r.call(t,n,t,e):r)||(e.exports=o)}(0,(function(e){"use strict";var t=e&&e.IPv6;return{best:function(e){var t,n,r=e.toLowerCase().split(":"),o=r.length,i=8;for(""===r[0]&&""===r[1]&&""===r[2]?(r.shift(),r.shift()):""===r[0]&&""===r[1]?r.shift():""===r[o-1]&&""===r[o-2]&&r.pop(),-1!==r[(o=r.length)-1].indexOf(".")&&(i=7),t=0;t1);s++)n.splice(0,1);r[a]=n.join("")}var l=-1,u=0,c=0,f=-1,p=!1;for(a=0;au&&(l=f,u=c)):"0"===r[a]&&(p=!0,f=a,c=1);c>u&&(l=f,u=c),u>1&&r.splice(l,u,""),o=r.length;var d="";for(""===r[0]&&(d=":"),a=0;a1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Math.min(Math.max(t,e),n)}function i(e){if(e.type)return e;if("#"===e.charAt(0))return i(function(e){e=e.substr(1);var t=new RegExp(".{1,".concat(e.length>=6?2:1,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map((function(e){return e+e}))),n?"rgb".concat(4===n.length?"a":"","(").concat(n.map((function(e,t){return t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3})).join(", "),")"):""}(e));var t=e.indexOf("("),n=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla"].indexOf(n))throw new Error(Object(r.a)(3,e));var o=e.substring(t+1,e.length-1).split(",");return{type:n,values:o=o.map((function(e){return parseFloat(e)}))}}function a(e){var t=e.type,n=e.values;return-1!==t.indexOf("rgb")?n=n.map((function(e,t){return t<3?parseInt(e,10):e})):-1!==t.indexOf("hsl")&&(n[1]="".concat(n[1],"%"),n[2]="".concat(n[2],"%")),"".concat(t,"(").concat(n.join(", "),")")}function s(e,t){var n=l(e),r=l(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function l(e){var t="hsl"===(e=i(e)).type?i(function(e){var t=(e=i(e)).values,n=t[0],r=t[1]/100,o=t[2]/100,s=r*Math.min(o,1-o),l=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e+n/30)%12;return o-s*Math.max(Math.min(t-3,9-t,1),-1)},u="rgb",c=[Math.round(255*l(0)),Math.round(255*l(8)),Math.round(255*l(4))];return"hsla"===e.type&&(u+="a",c.push(t[3])),a({type:u,values:c})}(e)).values:e.values;return t=t.map((function(e){return(e/=255)<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)})),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function u(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.15;return l(e)>.5?f(e,t):p(e,t)}function c(e,t){return e=i(e),t=o(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),e.values[3]=t,a(e)}function f(e,t){if(e=i(e),t=o(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]*=1-t;return a(e)}function p(e,t){if(e=i(e),t=o(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;return a(e)}},160:function(e,t,n){var r,o; +/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.6 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */!function(i,a){"use strict";e.exports?e.exports=a():void 0===(o="function"==typeof(r=a)?r.call(t,n,t,e):r)||(e.exports=o)}(0,(function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return!1;var r=e.lastIndexOf(".",t-1);if(r<=0||r>=t-1)return!1;var o=n.list[e.slice(t+1)];return!!o&&o.indexOf(" "+e.slice(r+1,t)+" ")>=0},is:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return!1;if(e.lastIndexOf(".",t-1)>=0)return!1;var r=n.list[e.slice(t+1)];return!!r&&r.indexOf(" "+e.slice(0,t)+" ")>=0},get:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return null;var r=e.lastIndexOf(".",t-1);if(r<=0||r>=t-1)return null;var o=n.list[e.slice(t+1)];return o?o.indexOf(" "+e.slice(r+1,t)+" ")<0?null:e.slice(r+1):null},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n}))},161:function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.default=e.exports,e.exports.__esModule=!0},162:function(e,t,n){var r=n(260).default;function o(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(o=function(e){return e?n:t})(e)}e.exports=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var n=o(t);if(n&&n.has(e))return n.get(e);var i={},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!==s&&Object.prototype.hasOwnProperty.call(e,s)){var l=a?Object.getOwnPropertyDescriptor(e,s):null;l&&(l.get||l.set)?Object.defineProperty(i,s,l):i[s]=e[s]}return i.default=e,n&&n.set(e,i),i},e.exports.default=e.exports,e.exports.__esModule=!0},163:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.createSvgIcon}});var r=n(364)},186:function(e,t,n){"use strict";function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o;"undefined"!=typeof window?o=window:"undefined"==typeof self?(console.warn("Using browser-only version of superagent in non-browser environment"),o=void 0):o=self;var i=n(241),a=n(242),s=n(243),l=n(255),u=n(157),c=n(256),f=n(258);function p(){}e.exports=function(e,n){return"function"==typeof n?new t.Request("GET",e).end(n):1===arguments.length?new t.Request("GET",e):new t.Request(e,n)};var d=t=e.exports;t.Request=w,d.getXHR=function(){if(o.XMLHttpRequest&&(!o.location||"file:"!==o.location.protocol||!o.ActiveXObject))return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}throw new Error("Browser-only version of superagent could not find XHR")};var h="".trim?function(e){return e.trim()}:function(e){return e.replace(/(^\s*|\s*$)/g,"")};function m(e){if(!u(e))return e;var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&g(t,n,e[n]);return t.join("&")}function g(e,t,n){if(void 0!==n)if(null!==n)if(Array.isArray(n))n.forEach((function(n){g(e,t,n)}));else if(u(n))for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&g(e,"".concat(t,"[").concat(r,"]"),n[r]);else e.push(encodeURI(t)+"="+encodeURIComponent(n));else e.push(encodeURI(t))}function y(e){for(var t,n,r={},o=e.split("&"),i=0,a=o.length;i0||e instanceof Object)?t(e):null)},v.prototype.toError=function(){var e=this.req,t=e.method,n=e.url,r="cannot ".concat(t," ").concat(n," (").concat(this.status,")"),o=new Error(r);return o.status=this.status,o.method=t,o.url=n,o},d.Response=v,i(w.prototype),l(w.prototype),w.prototype.type=function(e){return this.set("Content-Type",d.types[e]||e),this},w.prototype.accept=function(e){return this.set("Accept",d.types[e]||e),this},w.prototype.auth=function(e,t,n){1===arguments.length&&(t=""),"object"===r(t)&&null!==t&&(n=t,t=""),n||(n={type:"function"==typeof btoa?"basic":"auto"});var o=function(e){if("function"==typeof btoa)return btoa(e);throw new Error("Cannot use basic auth, btoa is not a function")};return this._auth(e,t,n,o)},w.prototype.query=function(e){return"string"!=typeof e&&(e=m(e)),e&&this._query.push(e),this},w.prototype.attach=function(e,t,n){if(t){if(this._data)throw new Error("superagent can't mix .send() and .attach()");this._getFormData().append(e,t,n||t.name)}return this},w.prototype._getFormData=function(){return this._formData||(this._formData=new o.FormData),this._formData},w.prototype.callback=function(e,t){if(this._shouldRetry(e,t))return this._retry();var n=this._callback;this.clearTimeout(),e&&(this._maxRetries&&(e.retries=this._retries-1),this.emit("error",e)),n(e,t)},w.prototype.crossDomainError=function(){var e=new Error("Request has been terminated\nPossible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.");e.crossDomain=!0,e.status=this.status,e.method=this.method,e.url=this.url,this.callback(e)},w.prototype.agent=function(){return console.warn("This is not supported in browser version of superagent"),this},w.prototype.ca=w.prototype.agent,w.prototype.buffer=w.prototype.ca,w.prototype.write=function(){throw new Error("Streaming is not supported in browser version of superagent")},w.prototype.pipe=w.prototype.write,w.prototype._isHost=function(e){return e&&"object"===r(e)&&!Array.isArray(e)&&"[object Object]"!==Object.prototype.toString.call(e)},w.prototype.end=function(e){this._endCalled&&console.warn("Warning: .end() was called twice. This is not supported in superagent"),this._endCalled=!0,this._callback=e||p,this._finalizeQueryString(),this._end()},w.prototype._setUploadTimeout=function(){var e=this;this._uploadTimeout&&!this._uploadTimeoutTimer&&(this._uploadTimeoutTimer=setTimeout((function(){e._timeoutError("Upload timeout of ",e._uploadTimeout,"ETIMEDOUT")}),this._uploadTimeout))},w.prototype._end=function(){if(this._aborted)return this.callback(new Error("The request has been aborted even before .end() was called"));var e=this;this.xhr=d.getXHR();var t=this.xhr,n=this._formData||this._data;this._setTimeouts(),t.onreadystatechange=function(){var n=t.readyState;if(n>=2&&e._responseTimeoutTimer&&clearTimeout(e._responseTimeoutTimer),4===n){var r;try{r=t.status}catch(e){r=0}if(!r){if(e.timedout||e._aborted)return;return e.crossDomainError()}e.emit("end")}};var r=function(t,n){n.total>0&&(n.percent=n.loaded/n.total*100,100===n.percent&&clearTimeout(e._uploadTimeoutTimer)),n.direction=t,e.emit("progress",n)};if(this.hasListeners("progress"))try{t.addEventListener("progress",r.bind(null,"download")),t.upload&&t.upload.addEventListener("progress",r.bind(null,"upload"))}catch(e){}t.upload&&this._setUploadTimeout();try{this.username&&this.password?t.open(this.method,this.url,!0,this.username,this.password):t.open(this.method,this.url,!0)}catch(e){return this.callback(e)}if(this._withCredentials&&(t.withCredentials=!0),!this._formData&&"GET"!==this.method&&"HEAD"!==this.method&&"string"!=typeof n&&!this._isHost(n)){var o=this._header["content-type"],i=this._serializer||d.serialize[o?o.split(";")[0]:""];!i&&b(o)&&(i=d.serialize["application/json"]),i&&(n=i(n))}for(var a in this.header)null!==this.header[a]&&Object.prototype.hasOwnProperty.call(this.header,a)&&t.setRequestHeader(a,this.header[a]);this._responseType&&(t.responseType=this._responseType),this.emit("request",this),t.send(void 0===n?null:n)},d.agent=function(){return new f},["GET","POST","OPTIONS","PATCH","PUT","DELETE"].forEach((function(e){f.prototype[e.toLowerCase()]=function(t,n){var r=new d.Request(e,t);return this._setDefaults(r),n&&r.end(n),r}})),f.prototype.del=f.prototype.delete,d.get=function(e,t,n){var r=d("GET",e);return"function"==typeof t&&(n=t,t=null),t&&r.query(t),n&&r.end(n),r},d.head=function(e,t,n){var r=d("HEAD",e);return"function"==typeof t&&(n=t,t=null),t&&r.query(t),n&&r.end(n),r},d.options=function(e,t,n){var r=d("OPTIONS",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},d.del=x,d.delete=x,d.patch=function(e,t,n){var r=d("PATCH",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},d.post=function(e,t,n){var r=d("POST",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r},d.put=function(e,t,n){var r=d("PUT",e);return"function"==typeof t&&(n=t,t=null),t&&r.send(t),n&&r.end(n),r}},187:function(e,t,n){"use strict";function r(e,t){return(r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}n.d(t,"a",(function(){return r}))},188:function(e,t,n){"use strict";function r(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,"a",(function(){return r}))},189:function(e,t,n){"use strict";function r(e){if(Array.isArray(e))return e}n.d(t,"a",(function(){return r}))},190:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,"a",(function(){return r}))},191:function(e,t,n){"use strict";var r=n(28),o=n(5),i=n(636),a=n(1),s=["xs","sm","md","lg","xl"];function l(e){var t=e.values,n=void 0===t?{xs:0,sm:600,md:960,lg:1280,xl:1920}:t,r=e.unit,i=void 0===r?"px":r,l=e.step,u=void 0===l?5:l,c=Object(o.a)(e,["values","unit","step"]);function f(e){var t="number"==typeof n[e]?n[e]:e;return"@media (min-width:".concat(t).concat(i,")")}function p(e,t){var r=s.indexOf(t);return r===s.length-1?f(e):"@media (min-width:".concat("number"==typeof n[e]?n[e]:e).concat(i,") and ")+"(max-width:".concat((-1!==r&&"number"==typeof n[s[r+1]]?n[s[r+1]]:t)-u/100).concat(i,")")}return Object(a.a)({keys:s,values:n,up:f,down:function(e){var t=s.indexOf(e)+1,r=n[s[t]];return t===s.length?f("xs"):"@media (max-width:".concat(("number"==typeof r&&t>0?r:e)-u/100).concat(i,")")},between:p,only:function(e){return p(e,e)},width:function(e){return n[e]}},c)}function u(e,t,n){var o;return Object(a.a)({gutters:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object(a.a)({paddingLeft:t(2),paddingRight:t(2)},n,Object(r.a)({},e.up("sm"),Object(a.a)({paddingLeft:t(3),paddingRight:t(3)},n[e.up("sm")])))},toolbar:(o={minHeight:56},Object(r.a)(o,"".concat(e.up("xs")," and (orientation: landscape)"),{minHeight:48}),Object(r.a)(o,e.up("sm"),{minHeight:64}),o)},n)}var c=n(193),f={black:"#000",white:"#fff"},p={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#d5d5d5",A200:"#aaaaaa",A400:"#303030",A700:"#616161"},d={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe"},h={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162"},m={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},g={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},y={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},b={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},v=n(16),w={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",hint:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:f.white,default:p[50]},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},x={text:{primary:f.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",hint:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:p[800],default:"#303030"},action:{active:f.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function k(e,t,n,r){var o=r.light||r,i=r.dark||1.5*r;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=Object(v.e)(e.main,o):"dark"===t&&(e.dark=Object(v.a)(e.main,i)))}function S(e){var t=e.primary,n=void 0===t?{light:d[300],main:d[500],dark:d[700]}:t,r=e.secondary,s=void 0===r?{light:h.A200,main:h.A400,dark:h.A700}:r,l=e.error,u=void 0===l?{light:m[300],main:m[500],dark:m[700]}:l,S=e.warning,E=void 0===S?{light:g[300],main:g[500],dark:g[700]}:S,O=e.info,T=void 0===O?{light:y[300],main:y[500],dark:y[700]}:O,_=e.success,P=void 0===_?{light:b[300],main:b[500],dark:b[700]}:_,C=e.type,j=void 0===C?"light":C,A=e.contrastThreshold,R=void 0===A?3:A,N=e.tonalOffset,z=void 0===N?.2:N,I=Object(o.a)(e,["primary","secondary","error","warning","info","success","type","contrastThreshold","tonalOffset"]);function M(e){return Object(v.d)(e,x.text.primary)>=R?x.text.primary:w.text.primary}var L=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:300,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:700;if(!(e=Object(a.a)({},e)).main&&e[t]&&(e.main=e[t]),!e.main)throw new Error(Object(c.a)(4,t));if("string"!=typeof e.main)throw new Error(Object(c.a)(5,JSON.stringify(e.main)));return k(e,"light",n,z),k(e,"dark",r,z),e.contrastText||(e.contrastText=M(e.main)),e},D={dark:x,light:w};return Object(i.a)(Object(a.a)({common:f,type:j,primary:L(n),secondary:L(s,"A400","A200","A700"),error:L(u),warning:L(E),info:L(T),success:L(P),grey:p,contrastThreshold:R,getContrastText:M,augmentColor:L,tonalOffset:z},D[j]),I)}function E(e){return Math.round(1e5*e)/1e5}var O={textTransform:"uppercase"};function T(e,t){var n="function"==typeof t?t(e):t,r=n.fontFamily,s=void 0===r?'"Roboto", "Helvetica", "Arial", sans-serif':r,l=n.fontSize,u=void 0===l?14:l,c=n.fontWeightLight,f=void 0===c?300:c,p=n.fontWeightRegular,d=void 0===p?400:p,h=n.fontWeightMedium,m=void 0===h?500:h,g=n.fontWeightBold,y=void 0===g?700:g,b=n.htmlFontSize,v=void 0===b?16:b,w=n.allVariants,x=n.pxToRem,k=Object(o.a)(n,["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"]);var S=u/14,T=x||function(e){return"".concat(e/v*S,"rem")},_=function(e,t,n,r,o){return Object(a.a)({fontFamily:s,fontWeight:e,fontSize:T(t),lineHeight:n},'"Roboto", "Helvetica", "Arial", sans-serif'===s?{letterSpacing:"".concat(E(r/t),"em")}:{},o,w)},P={h1:_(f,96,1.167,-1.5),h2:_(f,60,1.2,-.5),h3:_(d,48,1.167,0),h4:_(d,34,1.235,.25),h5:_(d,24,1.334,0),h6:_(m,20,1.6,.15),subtitle1:_(d,16,1.75,.15),subtitle2:_(m,14,1.57,.1),body1:_(d,16,1.5,.15),body2:_(d,14,1.43,.15),button:_(m,14,1.75,.4,O),caption:_(d,12,1.66,.4),overline:_(d,12,2.66,1,O)};return Object(i.a)(Object(a.a)({htmlFontSize:v,pxToRem:T,round:E,fontFamily:s,fontSize:u,fontWeightLight:f,fontWeightRegular:d,fontWeightMedium:m,fontWeightBold:y},P),k,{clone:!1})}function _(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(.2,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(.14,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(.12,")")].join(",")}var P=["none",_(0,2,1,-1,0,1,1,0,0,1,3,0),_(0,3,1,-2,0,2,2,0,0,1,5,0),_(0,3,3,-2,0,3,4,0,0,1,8,0),_(0,2,4,-1,0,4,5,0,0,1,10,0),_(0,3,5,-1,0,5,8,0,0,1,14,0),_(0,3,5,-1,0,6,10,0,0,1,18,0),_(0,4,5,-2,0,7,10,1,0,2,16,1),_(0,5,5,-3,0,8,10,1,0,3,14,2),_(0,5,6,-3,0,9,12,1,0,3,16,2),_(0,6,6,-3,0,10,14,1,0,4,18,3),_(0,6,7,-4,0,11,15,1,0,4,20,3),_(0,7,8,-4,0,12,17,2,0,5,22,4),_(0,7,8,-4,0,13,19,2,0,5,24,4),_(0,7,9,-4,0,14,21,2,0,5,26,4),_(0,8,9,-5,0,15,22,2,0,6,28,5),_(0,8,10,-5,0,16,24,2,0,6,30,5),_(0,8,11,-5,0,17,26,2,0,6,32,5),_(0,9,11,-5,0,18,28,2,0,7,34,6),_(0,9,12,-6,0,19,29,2,0,7,36,6),_(0,10,13,-6,0,20,31,3,0,8,38,7),_(0,10,13,-6,0,21,33,3,0,8,40,7),_(0,10,14,-6,0,22,35,3,0,8,42,7),_(0,11,14,-7,0,23,36,3,0,9,44,8),_(0,11,15,-7,0,24,38,3,0,9,46,8)],C={borderRadius:4},j=n(52),A=(n(51),n(58));n(8);var R=function(e,t){return t?Object(i.a)(e,t,{clone:!1}):e},N={xs:0,sm:600,md:960,lg:1280,xl:1920},z={keys:["xs","sm","md","lg","xl"],up:function(e){return"@media (min-width:".concat(N[e],"px)")}};var I,M,L={m:"margin",p:"padding"},D={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},F={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},U=(I=function(e){if(e.length>2){if(!F[e])return[e];e=F[e]}var t=e.split(""),n=Object(j.a)(t,2),r=n[0],o=n[1],i=L[r],a=D[o]||"";return Array.isArray(a)?a.map((function(e){return i+e})):[i+a]},M={},function(e){return void 0===M[e]&&(M[e]=I(e)),M[e]}),B=["m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY"];function H(e){var t=e.spacing||8;return"number"==typeof t?function(e){return t*e}:Array.isArray(t)?function(e){return t[e]}:"function"==typeof t?t:function(){}}function q(e,t){return function(n){return e.reduce((function(e,r){return e[r]=function(e,t){if("string"==typeof t||null==t)return t;var n=e(Math.abs(t));return t>=0?n:"number"==typeof n?-n:"-".concat(n)}(t,n),e}),{})}}function W(e){var t=H(e.theme);return Object.keys(e).map((function(n){if(-1===B.indexOf(n))return null;var r=q(U(n),t),o=e[n];return function(e,t,n){if(Array.isArray(t)){var r=e.theme.breakpoints||z;return t.reduce((function(e,o,i){return e[r.up(r.keys[i])]=n(t[i]),e}),{})}if("object"===Object(A.a)(t)){var o=e.theme.breakpoints||z;return Object.keys(t).reduce((function(e,r){return e[o.up(r)]=n(t[r]),e}),{})}return n(t)}(e,o,r)})).reduce(R,{})}W.propTypes={},W.filterProps=B;function V(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:8;if(e.mui)return e;var t=H({spacing:e}),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:["all"],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.duration,r=void 0===n?$.standard:n,i=t.easing,a=void 0===i?Q.easeInOut:i,s=t.delay,l=void 0===s?0:s;Object(o.a)(t,["duration","easing","delay"]);return(Array.isArray(e)?e:[e]).map((function(e){return"".concat(e," ").concat("string"==typeof r?r:Y(r)," ").concat(a," ").concat("string"==typeof l?l:Y(l))})).join(",")},getAutoHeightDuration:function(e){if(!e)return 0;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}},G=n(130);t.a=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.breakpoints,n=void 0===t?{}:t,r=e.mixins,a=void 0===r?{}:r,s=e.palette,c=void 0===s?{}:s,f=e.spacing,p=e.typography,d=void 0===p?{}:p,h=Object(o.a)(e,["breakpoints","mixins","palette","spacing","typography"]),m=S(c),g=l(n),y=V(f),b=Object(i.a)({breakpoints:g,direction:"ltr",mixins:u(g,y,a),overrides:{},palette:m,props:{},shadows:P,typography:T(m,d),spacing:y,shape:C,transitions:X,zIndex:G.a},h),v=arguments.length,w=new Array(v>1?v-1:0),x=1;xj.length&&j.push(e)}function N(e,t,n){return null==e?0:function e(t,n,r,o){var s=typeof t;"undefined"!==s&&"boolean"!==s||(t=null);var l=!1;if(null===t)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case i:case a:l=!0}}if(l)return r(o,t,""===n?"."+z(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var u=0;u