@mtgame/core 0.0.54 → 0.0.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/mtgame-core.umd.js +11 -0
- package/bundles/mtgame-core.umd.js.map +1 -1
- package/bundles/mtgame-core.umd.min.js +1 -1
- package/bundles/mtgame-core.umd.min.js.map +1 -1
- package/esm2015/models/hockey-statistic.js +8 -1
- package/esm5/models/hockey-statistic.js +12 -1
- package/fesm2015/mtgame-core.js +7 -0
- package/fesm2015/mtgame-core.js.map +1 -1
- package/fesm5/mtgame-core.js +11 -0
- package/fesm5/mtgame-core.js.map +1 -1
- package/models/hockey-statistic.d.ts +2 -0
- package/mtgame-core.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@mtgame/core/localization/hockey-penalty-types.ts","ng://@mtgame/core/models/util.ts","ng://@mtgame/core/models/file.ts","ng://@mtgame/core/models/sport.ts","ng://@mtgame/core/models/basketball-profile.ts","ng://@mtgame/core/models/user-profile.ts","ng://@mtgame/core/models/city.ts","ng://@mtgame/core/models/volleyball-profile.ts","ng://@mtgame/core/models/hockey-profile.ts","ng://@mtgame/core/models/football-profile.ts","ng://@mtgame/core/models/user.ts","ng://@mtgame/core/models/tournament-season.ts","ng://@mtgame/core/models/team.ts","ng://@mtgame/core/models/organization.ts","ng://@mtgame/core/models/league.ts","ng://@mtgame/core/models/tournament.ts","ng://@mtgame/core/models/volleyball-game-config.ts","ng://@mtgame/core/models/basketball-game-config.ts","ng://@mtgame/core/models/game.ts","ng://@mtgame/core/models/league-court.ts","ng://@mtgame/core/models/media-item.ts","ng://@mtgame/core/models/hockey-game-config.ts","ng://@mtgame/core/models/football-game-config.ts","ng://@mtgame/core/models/team-user.ts","ng://@mtgame/core/models/tournament-group.ts","ng://@mtgame/core/models/tournament-team.ts","ng://@mtgame/core/models/tournament-disqualification.ts","ng://@mtgame/core/models/tournament-team-user.ts","ng://@mtgame/core/models/game-user.ts","ng://@mtgame/core/utils/data.ts","ng://@mtgame/core/models/basketball-game-log.ts","ng://@mtgame/core/storage/store.ts","ng://@mtgame/core/services/base.service.ts","ng://@mtgame/core/services/config.service.ts","ng://@mtgame/core/models/base-statistic.ts","ng://@mtgame/core/models/basketball-statistic.ts","ng://@mtgame/core/models/basketball-game-team-statistic.ts","ng://@mtgame/core/models/basketball-game-statistic.ts","ng://@mtgame/core/models/hockey-game-log.ts","ng://@mtgame/core/api/basketball-game-api.ts","ng://@mtgame/core/models/feedback.ts","ng://@mtgame/core/api/feedback-api.ts","ng://@mtgame/core/api/file-api.ts","ng://@mtgame/core/models/football-game-log.ts","ng://@mtgame/core/models/hockey-game-statistic.ts","ng://@mtgame/core/models/hockey-statistic.ts","ng://@mtgame/core/models/hockey-game-team-statistic.ts","ng://@mtgame/core/api/hockey-game-api.ts","ng://@mtgame/core/models/league-news.ts","ng://@mtgame/core/models/football-game-statistic.ts","ng://@mtgame/core/models/football-statistic.ts","ng://@mtgame/core/models/football-game-team-statistic.ts","ng://@mtgame/core/api/football-game-api.ts","ng://@mtgame/core/models/tournament-event.ts","ng://@mtgame/core/models/league-banner.ts","ng://@mtgame/core/models/league-partner.ts","ng://@mtgame/core/models/poll.ts","ng://@mtgame/core/api/league-api.ts","ng://@mtgame/core/api/league-news-api.ts","ng://@mtgame/core/api/media-api.ts","ng://@mtgame/core/models/game-invite.ts","ng://@mtgame/core/models/team-invite.ts","ng://@mtgame/core/models/team-event-type.ts","ng://@mtgame/core/models/team-event-invite.ts","ng://@mtgame/core/localization/team-event-type.ts","ng://@mtgame/core/models/team-event.ts","ng://@mtgame/core/models/notification.ts","ng://@mtgame/core/models/tournament-team-user-invite.ts","ng://@mtgame/core/models/tournament-invite.ts","ng://@mtgame/core/models/notification-settings.ts","ng://@mtgame/core/models/team-permission.ts","ng://@mtgame/core/api/notification-base-api.ts","ng://@mtgame/core/api/notification-api.ts","ng://@mtgame/core/api/org-notification-api.ts","ng://@mtgame/core/api/reference-api.ts","ng://@mtgame/core/models/team-invite-external.ts","ng://@mtgame/core/models/volleyball-statistic.ts","ng://@mtgame/core/models/tournament-stage.ts","ng://@mtgame/core/models/team-access.ts","ng://@mtgame/core/api/team-api.ts","ng://@mtgame/core/api/team-event-api.ts","ng://@mtgame/core/models/tournament-news.ts","ng://@mtgame/core/models/game-timeline-stages.ts","ng://@mtgame/core/models/playoff.ts","ng://@mtgame/core/utils/array.ts","ng://@mtgame/core/models/league-user.ts","ng://@mtgame/core/models/tournament-stage-team.ts","ng://@mtgame/core/models/user-permission.ts","ng://@mtgame/core/api/tournament-api.ts","ng://@mtgame/core/models/tournament-join-team.ts","ng://@mtgame/core/api/tournament-join-api.ts","ng://@mtgame/core/api/tournament-season-api.ts","ng://@mtgame/core/api/tournament-stage-api.ts","ng://@mtgame/core/models/user-access.ts","ng://@mtgame/core/models/volleyball-game-log.ts","ng://@mtgame/core/api/user-api.ts","ng://@mtgame/core/models/volleyball-game-team-statistic.ts","ng://@mtgame/core/models/volleyball-game-statistic.ts","ng://@mtgame/core/api/volleyball-game-api.ts","ng://@mtgame/core/localization/basketball-game-log-types.ts","ng://@mtgame/core/localization/hockey-game-log-types.ts","ng://@mtgame/core/localization/football-game-log-types.ts","ng://@mtgame/core/localization/overtime-types.ts","ng://@mtgame/core/localization/team-user-role.ts","ng://@mtgame/core/localization/user-profile.ts","ng://@mtgame/core/localization/volleyball-game-log-types.ts","ng://@mtgame/core/models/league-playlist.ts","ng://@mtgame/core/services/centrifugo.service.ts","ng://@mtgame/core/storage/storage-engine.ts","ng://@mtgame/core/storage/local-storage-engine.ts","ng://@mtgame/core/utils/cookie.ts","ng://@mtgame/core/utils/favicon.ts","ng://@mtgame/core/http-cookie.interceptor.ts","ng://@mtgame/core/utils/component-destroyed.ts","ng://@mtgame/core/utils/validators.ts","ng://@mtgame/core/utils/enum.ts","ng://@mtgame/core/utils/errors.ts","ng://@mtgame/core/utils/device.ts","ng://@mtgame/core/utils/form.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","__values","o","m","__read","ar","error","__spread","concat","HockeyPenaltyTypes","id","code","title","BaseModel","data","_b","keys","_c","toFront","dto","toBack","enumField","enumClass","isNaN","penaltyTypeField","find","item","listField","modelClass","isArray","DateField","_super","date","Date","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","toISOString","slice","DateTimeField","ModelInstance","config","mappingFields","relation","path","modelType","map","instance","backField","frontField","extractValue","undefined","FileEngine","ToFrontHook","descriptor","args","_i","parseMethod","ToBackHook","keyParts","split","keyParts_1","keyParts_1_1","k","SportTypes","File","file","name","mime_type","size","engine","GameBasketballPosition","WorkHand","Sport","isBasketball","basketball","parentId","isClassicBasketball","classic_basketball","isStreetball","streetball","isVolleyball","volleyball","isClassicVolleyball","classic_volleyball","isBeachVolleyball","beach_volleyball","isHockey","hockey","isIceHockey","ice_hockey","isBallHockey","ball_hockey","isFootball","football","isClassicFootball","classic_football","isMiniFootball","mini_football","sport","parent_id","sub_sports","UserProfile","user_id","height","weight","City","GameVolleyballPosition","VolleyballWorkHand","BasketballProfile","position","work_hand","workHand","GameHockeyPosition","HockeyWorkHand","VolleyballProfile","GameFootballPosition","FootballWorkFoot","HockeyProfile","UserGender","FootballProfile","work_foot","workFoot","TournamentSeasonStatuses","User","user","lastName","firstName","filter","join","substr","birthDate","diff","getTime","Math","floor","last_name","first_name","middle_name","email","phone","birth_date","photo","profile","basketball_profile","volleyball_profile","hockey_profile","football_profile","wizards","city","gender","is_active","basketballProfile","volleyballProfile","hockeyProfile","footballProfile","Team","getEmptyLogoClass","classList","team","logo","owner","users_count","won_games_count","games_count","score_sum","closest_game_datetime","closestGameDatetime","Organization","owner_id","League","socialLinks","link","contact_email","contact_phone","alias","description","social_links","links","organization","tournaments_count","cover","about","TournamentTypes","TournamentStatuses","TournamentGender","BasketballStatisticTypes","VolleyballStatisticTypes","GameTimeTypes","OvertimeTypes","TournamentSeason","preview_image","status","start_date","closed_date","previewImage","startDate","closedDate","VolleyballGameTypes","TournamentSettings","age_from","age_to","max_team_players","max_game_players","type","tours_count","periods_count","period_time","overtime_type","overtime_time","overtime_score","game_type","timeout_count","timeout_time","substitute_count","game_up_to_score","volleyball_score_in_set","volleyball_score_in_last_set","manage_team_application","recruitment_is_open","transfer_is_open","basketball_statistic_type","volleyball_statistic_type","shot_clock_enabled","game_time_type","with_result_table","basketballStatisticType","volleyballStatisticType","gameTimeType","overtimeType","TournamentTeamWinner","team_id","tournament_id","points","Tournament","location","price","regulation_files","settings","league","teams_count","team_winner","team_second","team_third","season","regulationFile","teamWinner","teamSecond","teamThird","BasketballGameConfig","overtime_timeout_count","statistic_type","statisticType","GameStatuses","GameResultTypes","VolleyballGameConfig","gameType","best_of_three","getSetMaxScore","set","setsCount","scoreInLastSet","scoreInSet","score_in_set","score_in_last_set","LeagueCourt","address","league_id","MediaItem","Boolean","videoUrl","original_photo","list_photo","detail_photo","game","tournament","game_id","video_url","video_preview","is_live","originalPhoto","listPhoto","detailPhoto","videoPreview","HockeyGameConfig","FootballGameConfig","TeamUserRole","Game","_this","scoreByPeriod","period","teamScore","competitorTeamScore","closed","competitorTeam","teamId","competitorTeamId","tournament_team_id","competitor_team","competitor_tournament_team_id","competitor_team_id","competitor_team_name","datetime","team_score","competitor_team_score","result_type","playoff_number","tournament_tour","basketball_game_config","volleyball_game_config","hockey_game_config","football_game_config","score_by_period","playoff_stage","tournament_stage_id","tournament_playoff_id","tournament_court","media_count","media_live_count","media","resultType","basketballGameConfig","volleyballGameConfig","hockeyGameConfig","footballGameConfig","tournamentCourt","TeamUser","teamPlayer","role","number","TournamentGroup","TournamentTeam","gamesCount","wonGamesCount","group","final_standing","draw_games_count","last_games_count","last_games_won","missed_sum","score_points_sum","missed_points_sum","games","notifications_count","win_normal_time_games_count","lose_normal_time_games_count","win_overtime_games_count","lose_overtime_games_count","TournamentDisqualification","tournament_team_user_id","date_from","date_to","matches_count","dateFrom","dateTo","TournamentTeamUser","middleName","tournament_team","team_user","disqualified","disqualification","has_changes","rating","tournamentTeam","teamUser","GameUser","tournament_team_user","updated_at","tournamentTeamUser","updatedAt","updateItemInArray","force","checkFunction","isFunction","updateItemsInArray","items","forEach","addItemInArray","atEnd","addItemsInArray","reverse","deleteItemFromArray","functionToCheck","toString","BasketballGameLogTypes","Store","get","getSubject","pipe","save","appendItem","appendItems","prependItem","prependItems","updateItem","updateItems","deleteItem","dispose","complete","clearStorageData","clear","getEngine","BehaviorSubject","BaseService","store","Injectable","providedIn","ConfigService","configData","initialize","_a","Optional","Inject","BasketballStatistic","personalFouls","technicalFouls","unsportsmanlikeFouls","month","win_lose","two_points_made","three_points_made","free_throws_made","one_points_made","two_point_attempts","three_point_attempts","free_throw_attempts","one_point_attempts","two_point_percent","three_point_percent","free_throw_percent","one_point_percent","assists","blocks","rebounds","offensive_rebounds","defensive_rebounds","steals","turnovers","personal_fouls","technical_fouls","unsportsmanlike_fouls","newbie","BaseStatistic","BasketballGameTeamStatistic","BasketballGameStatistic","gameUserId","game_user_id","HockeyGameLogTypes","HockeyAdvantageTypes","BasketballGameLog","active","isPointsType","two_point_made","three_point_made","free_throw_made","one_point_made","indexOf","logType","isReboundType","rebound","offensive_rebound","defensive_rebound","isFoulType","personal_foul","technical_foul","unsportsmanlike_foul","getScore","compare","model","time","minutes","seconds","unique_id","log_type","is_highlight","BasketballGameApi","httpClient","configService","getById","gameId","toPromise","getUsers","getTeamStatistic","getUserStatistic","getLogs","downloadProtocol","fileType","responseType","downloadFibaProtocol","HttpClient","Feedback","theme","message","files","captcha","FeedbackApi","sendFeedback","post","response","sendLeagueFeedback","leagueId","FileApi","upload","fileData","filename","formData","FormData","append","createZipArchive","files_1","files_1_1","FootballGameLogTypes","HockeyGameLog","_penalizedGameUserId","isScoreType","goal","shootout_goal","isPenaltyType","minor_penalty","major_penalty","misconduct_penalty","game_misconduct_penalty","penalty_shot","match_penalty","isAfter","log","advantage","advantage_num","is_goalie","penalty_type","penalized_game_user_id","mutual_penalty","penaltyType","HockeyGameStatistic","evShotsOnGoal","ppShotsOnGoal","shShotsOnGoal","evShotsBlocked","ppShotsBlocked","shShotsBlocked","evShotMisses","ppShotMisses","shShotMisses","ppShots","evShots","shShots","ppGoals","shGoals","evGoals","ppAssists","evAssists","shAssists","faceOffWins","faceOffLosses","shootoutAttempts","shootoutGoals","saves","goalsAgainst","shotsAgainst","round","gameTime","pp_shot_misses","pp_shots_on_goal","pp_shots_blocked","ev_shot_misses","ev_shots_on_goal","ev_shots_blocked","sh_shot_misses","sh_shots_on_goal","sh_shots_blocked","pp_goals","ev_goals","sh_goals","pp_assists","ev_assists","sh_assists","shootout_attempts","shootout_goals","block_shots","face_off_losses","face_off_wins","goals_against","safety_rate","penalty_minutes","game_time","plus_minus","HockeyStatistic","pp_shots","ev_shots","sh_shots","pp_goals_percent","ev_goals_percent","sh_goals_percent","goals","shot_misses","shots_on_goal","shots_blocked","shots","goals_percent","shots_against","saves_percent","face_offs","face_off_percent","HockeyGameTeamStatistic","HockeyGameApi","format","params","HttpParams","downloadApplication","LeagueNewsType","FootballGameLog","penalty_goal","small_penalty_goal","FootballGameStatistic","shotMisses","shotsOnGoal","shotsBlocked","penaltyGoals","smallPenaltyGoals","totalGoals","penaltyAttempts","smallPenaltyAttempts","penaltySaves","penaltyGoalsAgainst","smallPenaltySaves","smallPenaltyGoalsAgainst","penaltyShotsAgainst","smallPenaltyShotsAgainst","corners","free_kicks","penalty_goals","penalty_attempts","penalty_goals_against","penalty_saves","small_penalty_goals","small_penalty_attempts","small_penalty_goals_against","small_penalty_saves","fouls","yellow_cards","red_cards","perfect_passes","losses","outs","FootballStatistic","shots_on_goal_percent","total_goals","penalty_goals_percent","penalty_shots_against","penalty_saves_percent","small_penalty_goals_percent","small_penalty_shots_against","small_penalty_saves_percent","total_saves","total_goals_against","FootballGameTeamStatistic","FootballGameApi","TournamentEventTypes","LeagueNews","preview_text","detail_text","picture","mobile_picture","is_main","tournaments","video_link","tag","mobilePicture","BannerLocation","TournamentEvent","news","event","LeaguePartner","sort","PollStatuses","LeagueBanner","LeagueApi","getByAlias","getByDomain","domain","getTournaments","getEvents","page","filters","search","tournamentTour","observe","total","headers","getTournamentSeasons","getGames","tournamentStageId","playoffStage","statuses","tournamentCourtId","getSeasons","notClosed","getPartners","getBanners","getCourts","LeagueNewsApi","getLeagueNewsList","text","getMainLeagueNews","getMainLeagueNewsList","getNewsById","newsId","getTournamentNewsList","tournamentId","MediaApi","getMedia","mediaId","getTournamentGameMedia","playoffId","getLeagueGameMedia","getLeagueMedia","mediaType","getGameMediaById","getGameMedia","createZip","mediaIds","downloadMedia","GameInviteStatus","PollVariant","uuid","PollAnswer","answer_uuid","poll_id","Poll","variantsWithAnswers","_variants","_answers","calculateAnswersPercentage","variants","answersByVariant","reduce","acc","answerUuid","variant","percent","a","author","answers","multiple_answer","anonymous","created_at","createdAt","TeamInvite","user_accept","team_accept","updateAt","TeamEventTypes","GameInvite","TeamEventInviteStatuses","TeamEventTypeLocalization","training","other","TeamEvent","eventType","eventCustomName","event_type","event_custom_name","NotificationType","NotificationServiceEnum","TeamEventInvite","team_event_id","team_user_id","TournamentTeamUserInvite","tournament_team_invite_id","accepted","TournamentInvite","teamAccept","organizationAccept","organization_accept","user_invites_count","user_invites","userInvites","NotificationAllowTypes","Notification","initiator","team_invite","poll","game_invite","team_event","team_event_invite","tournament_invite","viewed","protected","service","teamInvite","gameInvite","teamEvent","teamEventInvite","tournamentInvite","TeamPermissionTypes","NotificationSettings","popup","sound","browser","NotificationBaseApi","getCount","apiUrl","getList","markViewed","notificationId","markAllViewed","getNotificationSettings","updateNotificationSettings","NotificationApi","OrgNotificationApi","ReferenceApi","getCities","getSports","TeamInviteExternal","VolleyballStatistic","serve_hits","serve_faults","serve_aces","serve_percent","ace_percent","stuff_blocks","block_faults","block_rebounds","block_percent","attack_spikes","attack_faults","attack_shots","attack_percent","receives","receive_faults","excellent_receives","receive_percent","serve_receives","serve_receive_faults","excellent_serve_receives","serve_receive_percent","faults","TournamentStageStatuses","TeamPermission","players","statistic","polls","events","TeamAccess","can_edit","can_view_users","can_manage_permission","can_change_owner","can_delete","can_manage_invites","can_view_invites","can_manage_polls","can_view_polls","can_answer_poll","can_manage_games","can_view_games","can_view_statistic","can_promote_users","can_edit_users","can_delete_users","can_view_events","can_manage_events","can_view_tournaments","can_manage_tournaments","TeamApi","query","sportId","getTeamAccess","update","values","patch","delete","getPermission","updatePermission","permission","updateUserRole","teamUserId","updateUserNumber","gameNumber","deleteUser","changeOwner","getInvites","sendInvite","acceptInvite","invite","declineInvite","resendInvite","getInvitesExternal","sendInviteExternal","deleteInviteExternal","resendInviteExternal","getPolls","archive","createPoll","getUsersStatistic","getVolleyballStatistic","joinTeam","leaveTeam","createGame","getTeamEvents","createTeamEvent","getTournamentTeams","getTournamentInvites","getTournamentGames","acceptTournamentInvite","inviteId","declineTournamentInvite","registerLazyUser","userData","getLazyUser","updateLazyUser","deleteLazyUser","resendLazyUserEmail","TeamEventApi","getTeamEvent","teamEventId","updateTeamEvent","deleteTeamEvent","getTeamEventInvites","createTeamEventInvite","acceptTeamEventInvite","declineTeamEventInvite","TournamentNews","GameTimelineStageItem","stage_id","playoff_stages_count","GameTimelineStages","current_tour","current_playoff_stage","stages","PlayoffTypes","TournamentStage","generateArray","LeagueUserRoles","LeagueUserPermissions","PlayoffSettings","rounds","final_rounds","third_place_rounds","Playoff","teamsCount","getPlayoffStages","stagesCount","stage","pow","is_official","TournamentStageTeam","received_points","LeagueUser","_role","permissions","UserPermissionTypes","TournamentApi","getNews","getTournamentStages","getPlayoff","getPlayoffGames","getGamesStages","getTeams","getStageTeams","getTeamById","tournamentTeamId","getUserById","userId","getUserGames","tournamentUserId","getBasketballStatistic","per_game","getHockeyStatistic","getFootballStatistic","getTournamentTeamUsers","myPermission","TournamentJoinData","validUsersCount","invalidUsersCount","hasAccess","inviteSent","alreadyInTournament","valid_users_count","invalid_users_count","has_access","invite_sent","already_in_tournament","TournamentJoinTeam","join_data","joinData","TournamentJoinApi","getTeamsForJoin","getTeamUsers","joinTournament","invites","TournamentSeasonApi","seasonId","TournamentStageApi","getGroups","stageId","getPlayoffs","UserAccess","edit","personal_data","teams","VolleyballGameLogType","UserPermission","personalData","UserApi","getCurrentUser","getAccess","updateUser","updateUserPhoto","changePassword","oldPassword","password","passwordConfirm","payload","old_password","password_confirm","changeEmail","changeEmailConfirm","token","getUserProfile","getBasketballProfile","getVolleyballProfile","updateUserProfile","userProfile","updateUserBasketballProfile","updateUserVolleyballProfile","getUserPermissions","updateUserPermission","getStatistics","getStreetballStatistics","getGameInvites","acceptGameInvite","declineGameInvite","searchUsers","setWizardShowed","wizard","put","VolleyballGameTeamStatistic","VolleyballGameStatistic","attackSpikes","attackShots","stuffBlocks","blockRebounds","excellentReceives","SCORE_LOG_TYPES","serve_ace","stuff_block","attack_spike","point","FAULT_LOG_TYPES","serve_fault","attack_fault","block_fault","receive_fault","fault","serve_receive_fault","VolleyballGameLog","rally","includes","isFaultType","isServe","serve_hit","isAttack","attack_shot","isReceive","receive","excellent_receive","isServeReceive","serve_receive","excellent_serve_receive","isBlock","block_rebound","isEnterExit","enter_game","exit_game","timeout","isComboType","VolleyballGameApi","BasketballGameLogTypeLocalization","_a$1","remove_game","two_point_attempt","three_point_attempt","free_throw_attempt","one_point_attempt","assist","block","steal","turnover","HockeyGameLogTypeLocalization","_a$2","shot_miss","shot_on_goal","shot_blocked","shootout_attempt","block_shot","face_off_lose","face_off_win","penalty_start","penalty_end","FootballGameLogTypeLocalization","_a$3","penalty_attempt","small_penalty_attempt","corner","free_kick","penalty_save","small_penalty_save","foul","yellow_card","red_card","perfect_pass","loss","out","OvertimeTypeLocalization","_a$4","to_score_diff","to_score_total","without_overtime","to_first_goal","to_first_goal_and_bullitts","bullitts","penalties","time_and_penalties","TeamUserRoleLocalization","_a$5","moderator","member","admin","GameBasketballPositionLocalization","_a$6","point_guard","shooting_guard","small_forward","power_forward","center","GameBasketballPositionShortLocalization","WorkHandLocalization","left","right","GameVolleyballPositionLocalization","_d","setter","libero","middle_player","receiver_attacker","dioganal","GameVolleyballPositionShortLocalization","_e","GameVolleyballPositionShortRuLocalization","_f","VolleyballWorkHandLocalization","_g","GameHockeyPositionLocalization","_h","goaltender","defensemen","forward","GameFootballPositionLocalization","_j","goalkeeper","midfielder","FootballWorkFootLocalization","_k","both","VolleyballGameLogTypeLocalization","_a$7","LeaguePlaylist","key_code","CentrifugoService","channels$","subscriptions","connectedSubject","listen","channel","Subject","subscription","connect","subscribe","connected","addEngineSubscription","setTimeout","unsubscribe","initializeEngineSubject","ReplaySubject","initializeEngine","url","timestamp","transports","centrifuge","on","publish","Observable","observer","res","disconnect","Centrifuge","resolveMessage","bind","StorageEngineField","defaultValue","StorageEngine","fields","addField","field","setItem","getItem","removeItem","Error","LocalStorageEngine","localStorage","JSON","stringify","parse","getCookie","parts","document","cookie","shift","getIconsData","folder","rel","sizes","href","color","HttpCookieInterceptor","injector","platformId","isBrowser","isPlatformBrowser","intercept","req","handle","clone","withCredentials","csrf","setHeaders","X-CSRFToken","Injector","PLATFORM_ID","cmpType","def","ɵcmp","ɵdir","original","onDestroy","__componentDestroyed$","leagueAlias","data_1","data_1_1","createElement","e_2","setAttribute","head","appendChild","component","maxFileSize","control","array","chunks","chunkLength","ceil","production","captureException","console","prefixes","window","DocumentTouch","q","matchMedia","matches","markFormGroupTouched","formGroup","controls","markAsTouched","markAsDirty","FormGroup","minLength","minLengthArray","valid","test","invalidDate","authService","selfCheck","ignore","subject","of","delay","switchMap","checkEmail","emailTaken","replace","invalidPhone","invalidUrl"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export const HockeyPenaltyTypes = [\n {id: 1, code: 'ÐÐÐ ÐС', title: 'ÐгÑеÑÑÐ¾Ñ Ð² дÑаке'},\n {id: 2, code: 'ÐТ-Ð-ÐÐÐ', title: 'ÐÑака в Ð³Ð¾Ð»Ð¾Ð²Ñ Ð¸Ð»Ð¸ ÑеÑ'},\n {id: 3, code: 'ÐТ-ÐÐ ', title: 'ÐÑака вÑаÑаÑÑ'},\n {id: 4, code: 'ÐТ-СÐ', title: 'ÐÑака Ñзади'},\n {id: 5, code: 'ÐÐÐÐ', title: 'ÐлокиÑовка'},\n {id: 6, code: 'ÐÐ -ÐÐ', title: 'ÐÑоÑок клÑÑки'},\n {id: 7, code: 'ÐÐ-ШÐ', title: 'ÐÑбÑÐ¾Ñ ÑайбÑ'},\n {id: 8, code: 'ÐРУÐ', title: 'ÐÑÑбоÑÑÑ'},\n {id: 9, code: 'ÐÐСЦ', title: 'ÐиÑÑиплинаÑнÑй ÑÑÑаÑ'},\n {id: 10, code: 'ÐÐС-ÐÐ', title: 'ÐиÑÑиплинаÑнÑй до конÑа маÑÑа'},\n {id: 11, code: 'ÐÐ ÐÐÐ', title: 'ÐÑака'},\n {id: 12, code: 'ÐÐЧÐÐ', title: 'ÐаÑинÑик дÑаки'},\n {id: 13, code: 'ÐÐ-ÐÐ', title: 'ÐадеÑжка игÑÑ'},\n {id: 14, code: 'ÐÐ-ÐÐ-СÐ', title: 'ÐадеÑжка клÑÑки ÑопеÑника'},\n {id: 15, code: 'ÐÐ-ÐÐ', title: 'ÐадеÑжка клÑÑкой'},\n {id: 16, code: 'ÐÐ-СÐ', title: 'ÐадеÑжка ÑопеÑника'},\n {id: 17, code: 'ÐÐ-ШÐ', title: 'ÐадеÑжка ÑÐ°Ð¹Ð±Ñ ÑÑками'},\n {id: 18, code: 'СÐ-ÐÐ', title: 'ÐгÑа Ñо Ñломанной клÑÑкой'},\n {id: 19, code: 'ÐÐ-ÐÐ', title: 'ÐгÑа вÑÑоко поднÑÑой клÑÑкой'},\n {id: 20, code: 'ÐÐ-УÐ', title: 'ÐолÑÑий ÑдаÑ'},\n {id: 21, code: 'СÐ-ШТ', title: 'ÐалÑй ÑкамееÑнÑй ÑÑÑаÑ'},\n {id: 22, code: 'ÐШ', title: 'ÐаÑÑ-ÑÑÑаÑ'},\n {id: 23, code: 'ÐÐ-ÐТ', title: 'ÐепÑавилÑÐ½Ð°Ñ Ð°Ñака'},\n {id: 24, code: 'ЧС-СТ', title: 'ÐаÑÑÑение ÑиÑленного ÑоÑÑава'},\n {id: 25, code: 'ÐС-ÐÐ', title: 'ÐеÑÑандаÑÑÐ½Ð°Ñ ÐºÐ»ÑÑка'},\n {id: 26, code: 'ÐÐÐ -ÐÐ', title: 'ÐпаÑное ÑнаÑÑжение'},\n {id: 27, code: 'ÐС-ÐÐ', title: 'ÐÑкоÑбление ÑÑдей и неÑпоÑÑивное поведение'},\n {id: 28, code: 'ÐТ-ÐÐ', title: 'ÐÑказ наÑаÑÑ Ð¸Ð³ÑÑ'},\n {id: 29, code: 'ÐТСЧ', title: 'ÐÑÑеÑение'},\n {id: 30, code: 'ÐÐÐÐÐÐ', title: 'Ðлевок'},\n {id: 31, code: 'ÐÐÐÐ', title: 'Ðодножка'},\n {id: 32, code: 'ÐÐÐС', title: 'ÐодÑеÑка'},\n {id: 33, code: 'ÐÐ -ÐÐ', title: 'ÐÑедÑпÑеждение инÑекÑий'},\n {id: 34, code: 'ÐÐ-СÐ', title: 'Ðокидание Ñкамейки во вÑÐµÐ¼Ñ ÐºÐ¾Ð½ÑликÑа'},\n {id: 35, code: 'СÐ-ÐÐ ', title: 'Сдвиг воÑоÑ'},\n {id: 36, code: 'СÐÐ', title: 'СимÑлÑÑиÑ'},\n {id: 37, code: 'ТÐ-ÐÐ ', title: 'ТолÑок на боÑÑ'},\n {id: 38, code: 'ТÐ-ÐÐ', title: 'ТолÑок клÑÑкой'},\n {id: 39, code: 'УÐ-ÐÐÐ', title: 'Ð£Ð´Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ð¹'},\n {id: 40, code: 'УÐ-ÐÐ', title: 'Ð£Ð´Ð°Ñ ÐºÐ»ÑÑкой'},\n {id: 41, code: 'УÐ-Ð-ÐÐ', title: 'Ð£Ð´Ð°Ñ ÐºÐ¾Ð½Ñом клÑÑки'},\n {id: 42, code: 'УÐ-ÐÐÐ', title: 'Ð£Ð´Ð°Ñ ÐºÐ¾Ð»ÐµÐ½Ð¾Ð¼'},\n {id: 43, code: 'УÐ-ÐÐÐ', title: 'Ð£Ð´Ð°Ñ Ð»Ð¾ÐºÑем'},\n {id: 44, code: 'УÐ-ÐÐ', title: 'Ð£Ð´Ð°Ñ Ð½Ð¾Ð³Ð¾Ð¹'},\n {id: 45, code: 'УÐУС', title: 'УкÑÑ'},\n {id: 46, code: 'ÐÐ-ÐÐ ', title: 'ФизиÑеÑкий конÑÐ°ÐºÑ Ñо зÑиÑелем'},\n {id: 47, code: 'ШТ-ÐÐ ', title: 'ШÑÑÐ°Ñ Ð²ÑаÑаÑÑ'}\n];\n","import { HockeyPenaltyTypes } from '../localization/hockey-penalty-types';\n\nexport const MODEL_MAPPING_FIELDS_KEY = '_mapping_fields_';\nexport const MODEL_RELATION_KEY = '_relation_';\nexport const MODEL_TO_FRONT_KEY = '_to_front_';\nexport const MODEL_TO_BACK_KEY = '_to_back_';\n\ntype ParserInterface = (dto: any, path?: GraphPathInterface) => any;\n\ninterface ModelTypeInterface {\n new(data?: any);\n}\n\nexport interface ModelInterface {\n toFront(dto: any): any;\n toBack(dto: any): any;\n}\n\nexport abstract class BaseModel {\n constructor(data?: {[key: string]: any}) {\n if (data) {\n for (const key of Object.keys(data)) {\n this[key] = data[key];\n }\n }\n }\n\n static toFront(dto: any): any {\n return undefined;\n }\n\n static toBack(dto: any): any {\n return undefined;\n }\n}\n\ninterface GraphPathInterface {\n [key: string]: any;\n}\n\nexport function enumField(enumClass) {\n return {\n toFront: (value) => {\n if (isNaN(+value)) {\n return enumClass[value];\n } else {\n return value;\n }\n },\n toBack: (value) => {\n if (isNaN(+value)) {\n return value;\n } else {\n return enumClass[value];\n }\n }\n };\n}\n\nexport function penaltyTypeField() {\n return {\n toFront: (data) => {\n if (!data) {\n return null;\n }\n if (typeof data === 'object') {\n return data;\n }\n return HockeyPenaltyTypes.find(item => item.id === data);\n },\n toBack: (data) => {\n if (!data) {\n return null;\n }\n if (typeof data === 'object') {\n return data.id;\n }\n return data;\n }\n };\n}\n\nexport function listField(modelClass) {\n return {\n toFront: (value) => {\n if (!Array.isArray(value)) {\n return [];\n }\n return modelClass.toFront(value);\n },\n toBack: (value) => {\n if (!Array.isArray(value)) {\n return [];\n }\n return modelClass.toBack(value);\n }\n };\n}\n\nexport class DateField extends BaseModel {\n static toFront(date: any): any {\n if (date) {\n return new Date(date);\n } else {\n return undefined;\n }\n }\n static toBack(date: Date): any {\n if (date) {\n const dateUtc = new Date(Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds())\n );\n return dateUtc.toISOString().slice(0, 10);\n } else {\n return undefined;\n }\n }\n}\n\nexport class DateTimeField extends BaseModel {\n static toFront(date: any): any {\n if (date) {\n return new Date(date);\n } else {\n return undefined;\n }\n }\n static toBack(date: Date): any {\n if (date) {\n const dateUtc = new Date(Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds())\n );\n return date.toISOString();\n } else {\n return undefined;\n }\n }\n}\n\nexport function ModelInstance(\n config: {\n mappingFields?: { [key: string]: string },\n relation?: { [key: string]: BaseModel }\n }\n) {\n return (target: ModelTypeInterface) => {\n if (config) {\n if (config.mappingFields) {\n target[MODEL_MAPPING_FIELDS_KEY] = config.mappingFields;\n }\n if (config.relation) {\n target[MODEL_RELATION_KEY] = config.relation;\n }\n target[MODEL_TO_FRONT_KEY] = (dto: any, path: GraphPathInterface) => {\n return toFront(target, dto, path);\n };\n target[MODEL_TO_BACK_KEY] = (dto: any, path: GraphPathInterface) => {\n return toBack(target, dto, path);\n };\n }\n };\n}\n\nexport const ToFrontHook = (target: ModelTypeInterface, key: string | symbol, descriptor: TypedPropertyDescriptor<Function>) => {\n return {\n value: (...args: any[]) => {\n const parseMethod = target[MODEL_TO_FRONT_KEY] as ParserInterface;\n if (parseMethod) {\n return parseMethod(args[0], (args.length > 1 ? args[1] : undefined));\n }\n return undefined;\n }\n };\n};\n\nexport const ToBackHook = (target: ModelTypeInterface, key: string | symbol, descriptor: TypedPropertyDescriptor<Function>) => {\n return {\n value: (...args: any[]) => {\n const parseMethod = target[MODEL_TO_BACK_KEY] as ParserInterface;\n if (parseMethod) {\n return parseMethod(args[0]);\n }\n return undefined;\n }\n };\n};\n\nfunction extractValue(key, data) {\n if (!data) {\n return undefined;\n }\n\n const keyParts = key.split('.');\n if (keyParts.length === 1) {\n if (key in data) {\n return data[key];\n } else {\n return undefined;\n }\n }\n\n for (const k of keyParts) {\n if (data && k in data) {\n data = data[k];\n } else {\n return undefined;\n }\n }\n\n return data;\n}\n\nfunction toFront(modelType: ModelTypeInterface, data: any, path?: GraphPathInterface): any {\n // Check if recursion is required\n if (Array.isArray(data)) {\n return data.map(item => {\n return toFront(modelType, item);\n });\n }\n\n const instance = new modelType();\n\n // Mapping fields\n const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY] as string[];\n const relation = modelType[MODEL_RELATION_KEY] as { [key: string]: ModelInterface };\n if (mappingFields) {\n for (const backField of Object.keys(mappingFields)) {\n const frontField = mappingFields[backField];\n const value = extractValue(backField, data);\n if (relation && relation.hasOwnProperty(frontField)) {\n instance[frontField] = relation[frontField].toFront(value);\n } else {\n instance[frontField] = value;\n }\n }\n }\n\n return instance;\n}\n\nfunction toBack(modelType: ModelTypeInterface, instance: any, path?: GraphPathInterface): any {\n if (!instance) {\n return instance;\n }\n\n // Check if recursion is required\n if (Array.isArray(instance)) {\n return instance.map(item => {\n return toBack(modelType, item);\n });\n }\n\n const data = {};\n const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY] as string[];\n const relation = modelType[MODEL_RELATION_KEY] as { [key: string]: ModelInterface };\n if (mappingFields) {\n for (const backField of Object.keys(mappingFields)) {\n const frontField = mappingFields[backField];\n if (relation && relation.hasOwnProperty(frontField) && instance[frontField] !== undefined) {\n data[backField] = relation[frontField].toBack(instance[frontField]);\n } else {\n data[backField] = instance[frontField];\n }\n }\n }\n\n return data;\n}\n","import { ModelInstance, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum FileEngine {\n django = 1,\n s3\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n path: 'path',\n mime_type: 'mimeType',\n size: 'size',\n engine: 'engine',\n },\n relation: {\n engine: enumField(FileEngine)\n }\n})\nexport class File {\n id: number;\n name: string;\n path: string;\n mimeType: string;\n size: string;\n engine: FileEngine;\n\n @ToFrontHook\n static toFront(data: any): File {\n return null;\n }\n\n @ToBackHook\n static toBack(file: File): any {\n return null;\n }\n}\n","import {ModelInstance, ToFrontHook, ToBackHook, BaseModel} from './util';\n\nexport enum SportTypes {\n basketball = 1,\n volleyball = 2,\n classic_basketball = 3,\n streetball = 4,\n classic_volleyball = 5,\n beach_volleyball = 6,\n hockey = 7,\n ice_hockey = 8,\n ball_hockey = 9,\n football = 10,\n classic_football = 11,\n mini_football = 12\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n parent_id: 'parentId',\n sub_sports: 'subSports'\n }\n})\nexport class Sport extends BaseModel {\n id: number;\n name: string;\n parentId: number;\n subSports: Sport[];\n\n isBasketball() {\n return this.id === SportTypes.basketball || this.parentId === SportTypes.basketball;\n }\n\n isClassicBasketball() {\n return this.id === SportTypes.classic_basketball;\n }\n\n isStreetball() {\n return this.id === SportTypes.streetball;\n }\n\n isVolleyball() {\n return this.id === SportTypes.volleyball || this.parentId === SportTypes.volleyball;\n }\n\n isClassicVolleyball() {\n return this.id === SportTypes.classic_volleyball;\n }\n\n isBeachVolleyball() {\n return this.id === SportTypes.beach_volleyball;\n }\n\n isHockey(): boolean {\n return this.id === SportTypes.hockey || this.parentId === SportTypes.hockey;\n }\n\n isIceHockey(): boolean {\n return this.id === SportTypes.ice_hockey;\n }\n\n isBallHockey(): boolean {\n return this.id === SportTypes.ball_hockey;\n }\n\n isFootball() {\n return this.id === SportTypes.football || this.parentId === SportTypes.football;\n }\n\n isClassicFootball() {\n return this.id === SportTypes.classic_football;\n }\n\n isMiniFootball() {\n return this.id === SportTypes.mini_football;\n }\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(sport: Sport): any {\n return null;\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameBasketballPosition {\n point_guard = 1,\n shooting_guard,\n small_forward,\n power_forward,\n center\n}\n\nexport enum WorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameBasketballPosition),\n workHand: enumField(WorkHand)\n }\n})\nexport class BasketballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameBasketballPosition;\n workHand: WorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n height: 'height',\n weight: 'weight'\n }\n})\nexport class UserProfile {\n id: number;\n userId: number;\n height: number;\n weight: number;\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name'\n }\n})\nexport class City extends BaseModel {\n id: number;\n name: string;\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameVolleyballPosition {\n setter = 1,\n libero,\n middle_player,\n receiver_attacker,\n dioganal\n}\n\nexport enum VolleyballWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameVolleyballPosition),\n workHand: enumField(VolleyballWorkHand)\n }\n})\nexport class VolleyballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameVolleyballPosition;\n workHand: VolleyballWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameHockeyPosition {\n defensemen = 1,\n forward,\n goaltender\n}\n\nexport enum HockeyWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameHockeyPosition),\n workHand: enumField(HockeyWorkHand)\n }\n})\nexport class HockeyProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameHockeyPosition;\n workHand: HockeyWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameFootballPosition {\n defensemen = 1,\n midfielder,\n forward,\n goalkeeper\n}\n\nexport enum FootballWorkFoot {\n left = 1,\n right,\n both\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_foot: 'workFoot'\n },\n relation: {\n position: enumField(GameFootballPosition),\n workFoot: enumField(FootballWorkFoot)\n }\n})\nexport class FootballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameFootballPosition;\n workFoot: FootballWorkFoot;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, DateField, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { UserProfile } from './user-profile';\nimport { File } from './file';\nimport { City } from './city';\nimport { BasketballProfile } from './basketball-profile';\nimport { VolleyballProfile } from './volleyball-profile';\nimport { HockeyProfile } from './hockey-profile';\nimport { FootballProfile } from './football-profile';\n\nexport enum UserGender {\n male = 1,\n female\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n last_name: 'lastName',\n first_name: 'firstName',\n middle_name: 'middleName',\n email: 'email',\n phone: 'phone',\n birth_date: 'birthDate',\n photo: 'photo',\n profile: 'profile',\n basketball_profile: 'basketballProfile',\n volleyball_profile: 'volleyballProfile',\n hockey_profile: 'hockeyProfile',\n football_profile: 'footballProfile',\n wizards: 'wizards',\n city: 'city',\n gender: 'gender',\n is_active: 'isActive',\n },\n relation: {\n birthDate: DateField,\n photo: File,\n profile: UserProfile,\n basketballProfile: BasketballProfile,\n volleyballProfile: VolleyballProfile,\n hockeyProfile: HockeyProfile,\n footballProfile: FootballProfile,\n city: City,\n gender: enumField(UserGender)\n }\n})\nexport class User extends BaseModel {\n id: number;\n lastName: string;\n firstName: string;\n middleName: string;\n email: string;\n phone: string;\n birthDate: Date;\n profile: UserProfile;\n basketballProfile: BasketballProfile;\n volleyballProfile: VolleyballProfile;\n hockeyProfile: HockeyProfile;\n footballProfile: FootballProfile;\n photo: File;\n wizards: string[];\n city: City;\n gender: UserGender;\n isActive: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(user: User): any {\n return null;\n }\n\n get fullName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n get age(): number {\n if (!this.birthDate) {\n return null;\n }\n const diff = (new Date()).getTime() - this.birthDate.getTime();\n return Math.floor(diff / (365 * 86400 * 1000));\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField, DateField } from './util';\nimport { File } from './file';\n\nexport enum TournamentSeasonStatuses {\n open,\n in_progress,\n closed,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n alias: 'alias',\n logo: 'logo',\n cover: 'cover',\n preview_image: 'previewImage',\n status: 'status',\n start_date: 'startDate',\n closed_date: 'closedDate',\n },\n relation: {\n logo: File,\n cover: File,\n previewImage: File,\n status: enumField(TournamentSeasonStatuses),\n startDate: DateField,\n closedDate: DateField,\n }\n})\nexport class TournamentSeason extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n previewImage: File;\n status: TournamentSeasonStatuses;\n startDate: Date;\n closedDate: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateField } from './util';\nimport { File } from './file';\nimport { Sport } from './sport';\nimport { User } from './user';\nimport { City } from './city';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n sport: 'sport',\n logo: 'logo',\n owner: 'owner',\n city: 'city',\n users_count: 'usersCount',\n won_games_count: 'wonGamesCount',\n games_count: 'gamesCount',\n score_sum: 'scoreSum',\n closest_game_datetime: 'closestGameDatetime',\n },\n relation: {\n sport: Sport,\n logo: File,\n owner: User,\n city: City,\n closestGameDatetime: DateField,\n }\n})\nexport class Team extends BaseModel {\n id: number;\n name: string;\n sport: Sport;\n logo: File;\n owner: User;\n city: City;\n usersCount: number;\n wonGamesCount: number;\n gamesCount: number;\n scoreSum: number;\n closestGameDatetime: Date;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n return classList.join(' ');\n }\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(team: Team): any {\n return null;\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\nimport { User } from './user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n owner_id: 'ownerId',\n owner: 'owner',\n },\n relation: {\n owner: User,\n }\n})\nexport class Organization extends BaseModel {\n id: number;\n ownerId: number;\n owner: User;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Organization } from './organization';\nimport { File } from './file';\nimport { Sport } from './sport';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n logo: 'logo',\n contact_email: 'contactEmail',\n contact_phone: 'contactPhone',\n name: 'name',\n alias: 'alias',\n sport: 'sport',\n description: 'description',\n social_links: 'socialLinks',\n links: 'links',\n organization: 'organization',\n tournaments_count: 'tournamentsCount',\n closest_game_datetime: 'closestGameDatetime',\n cover: 'cover',\n about: 'about',\n },\n relation: {\n organization: Organization,\n logo: File,\n cover: File,\n sport: Sport\n }\n})\nexport class League extends BaseModel {\n id: number;\n logo: File;\n contactEmail: string;\n contactPhone: string;\n name: string;\n alias: string;\n sport: Sport;\n description: string;\n socialLinks: string[];\n links: string[];\n organization: Organization;\n tournamentsCount: number;\n closestGameDatetime: string;\n cover: File;\n about: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get vkLink(): string {\n return this.socialLinks.find(link => link.substr(0, 15) === 'https://vk.com/');\n }\n\n get fbLink(): string {\n return this.socialLinks.find(link => link.substr(0, 25) === 'https://www.facebook.com/');\n }\n\n get instaLink(): string {\n return this.socialLinks.find(link => link.substr(0, 25) === 'https://www.instagram.com');\n }\n}\n","import { BaseModel, enumField, ModelInstance, DateTimeField, ToBackHook, ToFrontHook } from './util';\nimport { City } from './city';\nimport { File } from './file';\nimport { League } from './league';\nimport { Sport } from './sport';\nimport { Team } from './team';\nimport { TournamentSeason } from './tournament-season';\n\nexport enum TournamentTypes {\n group = 'group',\n elimination = 'elimination',\n fiba = 'fiba'\n}\n\nexport enum TournamentStatuses {\n open,\n in_progress,\n closed,\n}\n\nexport enum TournamentGender {\n male= 1,\n female,\n all\n}\n\nexport enum BasketballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum VolleyballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum GameTimeTypes {\n clean = 1,\n dirty,\n}\n\nexport enum OvertimeTypes {\n to_score_total = 1,\n to_score_diff,\n time,\n without_overtime,\n to_first_goal,\n to_first_goal_and_bullitts,\n bullitts,\n penalties,\n time_and_penalties\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n gender: 'gender',\n age_from: 'ageFrom',\n age_to: 'ageTo',\n max_team_players: 'maxTeamPlayers',\n max_game_players: 'maxGamePlayers',\n type: 'type',\n tours_count: 'toursCount',\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_score: 'overtimeScore',\n game_type: 'gameType',\n timeout_count: 'timeoutCount',\n timeout_time: 'timeoutTime',\n substitute_count: 'substituteCount',\n game_up_to_score: 'gameUpToScore',\n volleyball_score_in_set: 'volleyballScoreInSet',\n volleyball_score_in_last_set: 'volleyballScoreInLastSet',\n manage_team_application: 'manageTeamApplication',\n recruitment_is_open: 'recruitmentIsOpen',\n transfer_is_open: 'transferIsOpen',\n basketball_statistic_type: 'basketballStatisticType',\n volleyball_statistic_type: 'volleyballStatisticType',\n shot_clock_enabled: 'shotClockEnabled',\n game_time_type: 'gameTimeType',\n with_result_table: 'withResultTable'\n },\n relation: {\n type: enumField(TournamentTypes),\n gender: enumField(TournamentGender),\n basketballStatisticType: enumField(BasketballStatisticTypes),\n volleyballStatisticType: enumField(VolleyballStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n overtimeType: enumField(OvertimeTypes),\n }\n})\nexport class TournamentSettings extends BaseModel {\n id: number;\n gender: TournamentGender;\n ageFrom: number;\n ageTo: number;\n maxTeamPlayers: number;\n maxGamePlayers: number;\n type: TournamentTypes;\n toursCount: number;\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n gameType: string;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n gameUpToScore: number;\n volleyballScoreInSet: number;\n volleyballScoreInLastSet: number;\n manageTeamApplication: boolean;\n recruitmentIsOpen: boolean;\n transferIsOpen: boolean;\n basketballStatisticType: BasketballStatisticTypes;\n volleyballStatisticType: VolleyballStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n withResultTable: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n tournament_id: 'tournamentId',\n team: 'team',\n points: 'points',\n },\n relation: {\n team: Team,\n }\n})\nexport class TournamentTeamWinner extends BaseModel {\n id: number;\n teamId: number;\n tournamentId: number;\n team: Team;\n points: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n alias: 'alias',\n logo: 'logo',\n cover: 'cover',\n preview_image: 'previewImage',\n city: 'city',\n sport: 'sport',\n location: 'location',\n description: 'description',\n date: 'date',\n price: 'price',\n regulation_files: 'regulationFiles',\n settings: 'settings',\n league: 'league',\n teams_count: 'teamsCount',\n closest_game_datetime: 'closestGameDatetime',\n status: 'status',\n team_winner: 'teamWinner',\n team_second: 'teamSecond',\n team_third: 'teamThird',\n season: 'season',\n },\n relation: {\n logo: File,\n cover: File,\n previewImage: File,\n city: City,\n sport: Sport,\n regulationFile: File,\n settings: TournamentSettings,\n date: DateTimeField,\n league: League,\n status: enumField(TournamentStatuses),\n teamWinner: TournamentTeamWinner,\n teamSecond: TournamentTeamWinner,\n teamThird: TournamentTeamWinner,\n season: TournamentSeason,\n }\n})\nexport class Tournament extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n previewImage: File;\n city: City;\n sport: Sport;\n location: string;\n description: string;\n date: Date;\n price: number;\n regulationFiles: File[];\n settings: TournamentSettings;\n league: League;\n teamsCount: number;\n closestGameDatetime: string;\n status: TournamentStatuses;\n teamWinner: TournamentTeamWinner;\n teamSecond: TournamentTeamWinner;\n teamThird: TournamentTeamWinner;\n season: TournamentSeason;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n return classList.join(' ');\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { VolleyballStatisticTypes } from './tournament';\n\nexport enum VolleyballGameTypes {\n best_of_five = 1,\n best_of_three\n}\n\n@ModelInstance({\n mappingFields: {\n game_type: 'gameType',\n timeout_count: 'timeoutCount',\n timeout_time: 'timeoutTime',\n substitute_count: 'substituteCount',\n score_in_set: 'scoreInSet',\n score_in_last_set: 'scoreInLastSet',\n statistic_type: 'statisticType'\n },\n relation: {\n gameType: enumField(VolleyballGameTypes),\n statisticType: enumField(VolleyballStatisticTypes),\n }\n})\nexport class VolleyballGameConfig extends BaseModel {\n gameType: VolleyballGameTypes;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n scoreInSet: number;\n scoreInLastSet: number;\n statisticType: VolleyballStatisticTypes;\n\n get setsCount(): number {\n return this.gameType === VolleyballGameTypes.best_of_three ? 3 : 5;\n }\n\n getSetMaxScore(set: number) {\n return set === this.setsCount ? this.scoreInLastSet : this.scoreInSet;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { BasketballStatisticTypes, GameTimeTypes, OvertimeTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n game_up_to_score: 'gameUpToScore',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_score: 'overtimeScore',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n statistic_type: 'statisticType',\n shot_clock_enabled: 'shotClockEnabled',\n game_time_type: 'gameTimeType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n statisticType: enumField(BasketballStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class BasketballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n gameUpToScore: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n statisticType: BasketballStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField, listField } from './util';\nimport { Team } from './team';\nimport { BasketballGameConfig } from './basketball-game-config';\nimport { VolleyballGameConfig } from './volleyball-game-config';\nimport { LeagueCourt } from './league-court';\nimport { MediaItem } from './media-item';\nimport { HockeyGameConfig } from './hockey-game-config';\nimport { Tournament } from './tournament';\nimport { FootballGameConfig } from './football-game-config';\n\nexport enum GameStatuses {\n open = 1,\n in_progress,\n closed,\n archived,\n draft\n}\n\nexport enum GameResultTypes {\n team_won = 1,\n competitor_team_won,\n team_technical_defeat,\n competitor_team_technical_defeat\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n status: 'status',\n team: 'team',\n tournament_team_id: 'tournamentTeamId',\n team_id: 'teamId',\n competitor_team: 'competitorTeam',\n competitor_tournament_team_id: 'competitorTournamentTeamId',\n competitor_team_id: 'competitorTeamId',\n competitor_team_name: 'competitorTeamName',\n datetime: 'datetime',\n location: 'location',\n team_score: 'teamScore',\n competitor_team_score: 'competitorTeamScore',\n result_type: 'resultType',\n playoff_number: 'playoffNumber',\n tournament_id: 'tournamentId',\n tournament_tour: 'tournamentTour',\n basketball_game_config: 'basketballGameConfig',\n volleyball_game_config: 'volleyballGameConfig',\n hockey_game_config: 'hockeyGameConfig',\n football_game_config: 'footballGameConfig',\n score_by_period: 'scoreByPeriod',\n playoff_stage: 'playoffStage',\n tournament_stage_id: 'tournamentStageId',\n tournament_playoff_id: 'tournamentPlayoffId',\n tournament_court: 'tournamentCourt',\n media_count: 'mediaCount',\n media_live_count: 'mediaLiveCount',\n media: 'media',\n tournament: 'tournament',\n },\n relation: {\n status: enumField(GameStatuses),\n team: Team,\n competitorTeam: Team,\n datetime: DateTimeField,\n resultType: enumField(GameResultTypes),\n basketballGameConfig: BasketballGameConfig,\n volleyballGameConfig: VolleyballGameConfig,\n hockeyGameConfig: HockeyGameConfig,\n footballGameConfig: FootballGameConfig,\n tournamentCourt: LeagueCourt,\n media: listField(MediaItem),\n tournament: Tournament,\n }\n})\nexport class Game extends BaseModel {\n id: number;\n status: GameStatuses;\n team: Team;\n teamId: number;\n tournamentTeamId: number;\n competitorTeam: Team;\n competitorTeamId: number;\n competitorTournamentTeamId: number;\n competitorTeamName: string;\n datetime: Date;\n location: string;\n teamScore: number;\n competitorTeamScore: number;\n archive: boolean;\n playoffNumber: string;\n tournamentId: number;\n tournamentTour: number;\n basketballGameConfig: BasketballGameConfig;\n volleyballGameConfig: VolleyballGameConfig;\n hockeyGameConfig: HockeyGameConfig;\n footballGameConfig: FootballGameConfig;\n scoreByPeriod: any;\n playoffStage: string;\n tournamentStageId: number;\n tournamentPlayoffId: number;\n tournamentCourt: LeagueCourt;\n mediaCount: number;\n mediaLiveCount: number;\n media: MediaItem[];\n tournament: Tournament;\n\n get scoreByPeriodList(): {period: number, teamScore: number, competitorTeamScore: number}[] {\n if (!this.scoreByPeriod) {\n return [];\n }\n return Object.keys(this.scoreByPeriod).map(period => ({\n period: +period,\n teamScore: this.scoreByPeriod[period][0],\n competitorTeamScore: this.scoreByPeriod[period][1]\n }));\n }\n\n get isClosed(): boolean {\n return this.status === GameStatuses.closed;\n }\n\n get isTeamWon() {\n return this.teamScore > this.competitorTeamScore;\n }\n\n get isCompetitorTeamWon() {\n return this.competitorTeamScore > this.teamScore;\n }\n\n get teamWinnerId() {\n if (this.status !== GameStatuses.closed) {\n return null;\n }\n if (this.teamScore === this.competitorTeamScore) {\n return null;\n }\n if (this.team.id) {\n return this.teamScore > this.competitorTeamScore ? this.team.id : this.competitorTeam.id;\n } else {\n return this.teamScore > this.competitorTeamScore ? this.teamId : this.competitorTeamId;\n }\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n address: 'address',\n league_id: 'leagueId'\n }\n})\nexport class LeagueCourt extends BaseModel {\n id: number;\n name: string;\n address: string;\n leagueId: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n original_photo: 'originalPhoto',\n list_photo: 'listPhoto',\n detail_photo: 'detailPhoto',\n game: 'game',\n tournament: 'tournament',\n game_id: 'gameId',\n tournament_id: 'tournament_id',\n video_url: 'videoUrl',\n video_preview: 'videoPreview',\n is_live: 'isLive',\n },\n relation: {\n originalPhoto: File,\n listPhoto: File,\n detailPhoto: File,\n videoPreview: File\n }\n})\nexport class MediaItem extends BaseModel {\n id: number;\n originalPhoto: File;\n listPhoto: File;\n detailPhoto: File;\n gameId: number;\n tournamentId: number;\n videoUrl: string;\n videoPreview: File;\n isLive: boolean;\n\n get isVideo(): boolean {\n return Boolean(this.videoUrl);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class HockeyGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class FootballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\nexport enum TeamUserRole {\n member = 1,\n moderator,\n admin,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n user: 'user',\n role: 'role',\n number: 'number',\n team: 'team',\n },\n relation: {\n user: User,\n team: Team,\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamUser extends BaseModel {\n id: number;\n teamId: number;\n user: User;\n team: Team;\n number: number;\n role: TeamUserRole;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(teamPlayer: TeamUser): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentTeam } from './tournament-team';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n tournament_stage_id: 'tournamentStageId'\n }\n})\nexport class TournamentGroup extends BaseModel {\n id: number;\n name: string;\n tournamentStageId: number;\n teams: TournamentTeam[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Team } from './team';\nimport { TournamentGroup } from './tournament-group';\nimport { Game } from './game';\nimport { Tournament } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n tournament_id: 'tournamentId',\n tournament: 'tournament',\n team: 'team',\n group: 'group',\n final_standing: 'finalStanding',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n draw_games_count: 'drawGamesCount',\n last_games_count: 'lastGamesCount',\n last_games_won: 'lastGamesWon',\n score_sum: 'scoreSum',\n missed_sum: 'missedSum',\n score_points_sum: 'scorePointsSum',\n missed_points_sum: 'missedPointsSum',\n points: 'points',\n users_count: 'usersCount',\n games: 'games',\n notifications_count: 'notificationsCount',\n win_normal_time_games_count: 'winNormalTimeGamesCount',\n lose_normal_time_games_count: 'loseNormalTimeGamesCount',\n win_overtime_games_count: 'winOvertimeGamesCount',\n lose_overtime_games_count: 'loseOvertimeGamesCount',\n },\n relation: {\n tournament: Tournament,\n team: Team,\n group: TournamentGroup,\n games: Game,\n }\n})\nexport class TournamentTeam extends BaseModel {\n id: number;\n teamId: number;\n tournamentId: number;\n tournament: Tournament;\n team: Team;\n group: TournamentGroup;\n finalStanding: number;\n gamesCount: number;\n wonGamesCount: number;\n drawGamesCount: number;\n lastGamesCount: number;\n lastGamesWon: number;\n scoreSum: number;\n missedSum: number;\n scorePointsSum: number;\n missedPointsSum: number;\n points: number;\n usersCount: number;\n games: Game[];\n notificationsCount: number;\n winNormalTimeGamesCount: number;\n loseNormalTimeGamesCount: number;\n winOvertimeGamesCount: number;\n loseOvertimeGamesCount: number;\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team_user_id: 'tournamentTeamUserId',\n date_from: 'dateFrom',\n date_to: 'dateTo',\n matches_count: 'matchesCount',\n },\n relation: {\n dateFrom: DateField,\n dateTo: DateField,\n }\n})\nexport class TournamentDisqualification extends BaseModel {\n id: number;\n tournamentTeamUserId: number;\n dateFrom: Date;\n dateTo: Date;\n matchesCount: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TeamUser } from './team-user';\nimport { File } from './file';\nimport { TournamentDisqualification } from './tournament-disqualification';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team: 'tournamentTeam',\n team_user: 'teamUser',\n disqualified: 'disqualified',\n first_name: 'firstName',\n last_name: 'lastName',\n middle_name: 'middleName',\n photo: 'photo',\n disqualification: 'disqualification',\n has_changes: 'hasChanges',\n rating: 'rating'\n },\n relation: {\n tournamentTeam: TournamentTeam,\n teamUser: TeamUser,\n photo: File,\n disqualification: TournamentDisqualification,\n }\n})\nexport class TournamentTeamUser extends BaseModel {\n id: number;\n tournamentTeam: TournamentTeam;\n teamUser: TeamUser;\n disqualified: boolean;\n firstName: string;\n lastName: string;\n middleName: string;\n photo: File; disqualification: TournamentDisqualification;\n hasChanges: boolean;\n rating: number;\n\n get fullName(): string {\n return [this.lastName, this.firstName, this.middleName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { TeamUser } from './team-user';\nimport { TournamentTeamUser } from './tournament-team-user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game_id: 'gameId',\n team_user: 'teamUser',\n tournament_team_user: 'tournamentTeamUser',\n updated_at: 'updatedAt'\n },\n relation: {\n teamUser: TeamUser,\n tournamentTeamUser: TournamentTeamUser,\n updatedAt: DateTimeField,\n }\n})\nexport class GameUser extends BaseModel {\n id: number;\n gameId: number;\n teamUser: TeamUser;\n tournamentTeamUser: TournamentTeamUser;\n updatedAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","export function updateItemInArray(data: any[], item: any, force = false, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return data;\n }\n return data.map(v => {\n if (checkFunction && isFunction(checkFunction)) {\n if (!checkFunction(v)) {\n return v;\n }\n } else if (v.id !== item.id) {\n return v;\n }\n if (v.updatedAt && item.updatedAt && !force) {\n return v.updatedAt > item.updatedAt ? v : item;\n }\n return item;\n });\n}\n\nexport function updateItemsInArray(data: any[], items: any[], force: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n items.forEach(item => {\n data = updateItemInArray(data, item, force, checkFunction);\n });\n return data;\n}\n\nexport function patchItemInArray(data: any[], item: any, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return data;\n }\n return data.map(v => {\n if (checkFunction && isFunction(checkFunction)) {\n if (!checkFunction(v)) {\n return v;\n }\n } else if (v.id !== item.id) {\n return v;\n }\n return Object.assign(v, item);\n });\n}\n\nexport function addItemInArray(data: any[], item: any, atEnd: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return [item];\n }\n if (data.find(i => isFunction(checkFunction) ? checkFunction(i) : i.id === item.id)) {\n return data;\n }\n\n return atEnd\n ? [...data, item]\n : [item, ...data];\n}\n\nexport function addItemsInArray(data: any[], items: any[], atEnd: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n (!atEnd\n ? Object.assign([], items).reverse()\n : items\n ).forEach(item => {\n data = addItemInArray(data, item, atEnd, checkFunction);\n });\n return data;\n}\n\nexport function deleteItemFromArray(data: any[], item: any): any[] {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isFunction(item)) {\n return data.filter(i => !item(i));\n } else {\n return data.filter(v => v.id !== item.id);\n }\n}\n\nfunction isFunction(functionToCheck) {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum BasketballGameLogTypes {\n enter_game = 1,\n exit_game,\n remove_game,\n two_point_made,\n three_point_made,\n free_throw_made,\n two_point_attempt,\n three_point_attempt,\n free_throw_attempt,\n assist,\n block,\n rebound,\n offensive_rebound,\n defensive_rebound,\n steal,\n turnover,\n personal_foul,\n technical_foul,\n unsportsmanlike_foul,\n one_point_attempt,\n one_point_made,\n timeout,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(BasketballGameLogTypes),\n }\n})\nexport class BasketballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: BasketballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n combined: BasketballGameLog;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n\n isPointsType() {\n return [\n BasketballGameLogTypes.two_point_made,\n BasketballGameLogTypes.three_point_made,\n BasketballGameLogTypes.free_throw_made,\n BasketballGameLogTypes.one_point_made,\n ].indexOf(this.logType) > -1;\n }\n\n isReboundType() {\n return [\n BasketballGameLogTypes.rebound,\n BasketballGameLogTypes.offensive_rebound,\n BasketballGameLogTypes.defensive_rebound\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType() {\n return [\n BasketballGameLogTypes.personal_foul,\n BasketballGameLogTypes.technical_foul,\n BasketballGameLogTypes.unsportsmanlike_foul\n ].indexOf(this.logType) > -1;\n }\n\n getScore() {\n const scoreMapping = {\n [BasketballGameLogTypes.one_point_made]: 1,\n [BasketballGameLogTypes.free_throw_made]: 1,\n [BasketballGameLogTypes.two_point_made]: 2,\n [BasketballGameLogTypes.three_point_made]: 3\n };\n return scoreMapping[this.logType];\n }\n\n compare(model: BasketballGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { addItemInArray, addItemsInArray, deleteItemFromArray, updateItemInArray, updateItemsInArray } from '../utils/data';\nimport { StorageEngine } from './storage-engine';\n\nexport class Store {\n private data: {[key: string]: BehaviorSubject<any>} = {};\n\n constructor(private engine?: StorageEngine) {\n }\n\n get(key: string): Observable<any> {\n return this.getSubject(key).pipe(filter(item => item !== undefined));\n }\n\n value(key: string): any {\n return this.getSubject(key).value;\n }\n\n save(key: string, value: any): void {\n this.getSubject(key).next(value);\n if (this.engine) {\n this.engine.save(key, value);\n }\n }\n\n appendItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, true, checkFunction));\n }\n\n appendItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, true));\n }\n\n prependItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n prependItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n updateItem(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n updateItems(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemsInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n deleteItem(key: string, value: any): void {\n this.save(key, deleteItemFromArray(this.value(key) || [], value));\n }\n\n dispose(): void {\n for (const key of Object.keys(this.data)) {\n this.data[key].complete();\n delete this.data[key];\n }\n }\n\n clearStorageData(): void {\n if (this.engine) {\n this.engine.clear();\n }\n }\n\n getEngine(): StorageEngine {\n return this.engine;\n }\n\n private getSubject(key: string): BehaviorSubject<any> {\n if (!this.data[key]) {\n this.data[key] = new BehaviorSubject<any>(this.engine ? this.engine.get(key) : undefined);\n }\n return this.data[key];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '../storage/store';\n\n@Injectable({providedIn: 'root'})\nexport class BaseService {\n protected store = new Store();\n\n dispose(): void {\n this.store.dispose();\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { BaseService } from './base.service';\n\nconst CONFIG_STORE_KEY = 'config';\n\nexport const CONFIG_DATA = 'mtg-core-config-data';\n\n@Injectable({providedIn: 'root'})\nexport class ConfigService extends BaseService {\n constructor(\n @Optional() @Inject(CONFIG_DATA) private configData: any\n ) {\n super();\n if (configData) {\n this.initialize(configData);\n }\n }\n\n get config$() {\n return this.store.get(CONFIG_STORE_KEY);\n }\n\n get config() {\n return this.store.value(CONFIG_STORE_KEY) || {};\n }\n\n initialize(data: any): void {\n this.store.save(CONFIG_STORE_KEY, data);\n }\n\n set(key: string, value: any): void {\n this.store.save(CONFIG_STORE_KEY, {\n ...this.config,\n [key]: value\n });\n }\n\n get(key: string): any {\n return this.store.value(CONFIG_STORE_KEY) && this.store.value(CONFIG_STORE_KEY)[key];\n }\n}\n","import { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\n\nexport class BaseStatistic {\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: boolean;\n gamesCount: number;\n wonGamesCount: number;\n newbie: boolean;\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic } from './base-statistic';\n\n@ModelInstance({\n mappingFields: {\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n points: 'points',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n free_throws_made: 'freeThrowsMade',\n one_points_made: 'onePointsMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n two_point_percent: 'twoPointPercent',\n three_point_percent: 'threePointPercent',\n free_throw_percent: 'freeThrowPercent',\n one_point_percent: 'onePointPercent',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n technical_fouls: 'technicalFouls',\n unsportsmanlike_fouls: 'unsportsmanlikeFouls',\n newbie: 'newbie',\n },\n relation: {\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class BasketballStatistic extends BaseStatistic {\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: boolean;\n gamesCount: number;\n wonGamesCount: number;\n points: number;\n twoPointsMade: number;\n threePointsMade: number;\n freeThrowsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n twoPointPercent: number;\n threePointPercent: number;\n freeThrowPercent: number;\n onePointPercent: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n newbie: boolean;\n\n get totalFouls() {\n return this.personalFouls + this.technicalFouls + this.unsportsmanlikeFouls;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { BasketballStatistic } from './basketball-statistic';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: BasketballStatistic,\n competitorTeam: BasketballStatistic\n }\n})\nexport class BasketballGameTeamStatistic extends BaseModel {\n team: BasketballStatistic;\n competitorTeam: BasketballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n points: 'points',\n free_throws_made: 'freeThrowsMade',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n one_points_made: 'onePointsMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n technical_fouls: 'technicalFouls',\n unsportsmanlike_fouls: 'unsportsmanlikeFouls',\n updated_at: 'updatedAt',\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class BasketballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n freeThrowsMade: number;\n twoPointsMade: number;\n threePointsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get totalFouls(): number {\n return (this.personalFouls || 0) + (this.technicalFouls || 0) + (this.unsportsmanlikeFouls || 0);\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField, penaltyTypeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum HockeyGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n shootout_attempt,\n shootout_goal,\n assist,\n block_shot ,\n minor_penalty ,\n major_penalty ,\n misconduct_penalty ,\n game_misconduct_penalty ,\n match_penalty ,\n penalty_shot ,\n face_off_lose ,\n face_off_win ,\n save ,\n timeout,\n penalty_start,\n penalty_end,\n}\n\nexport enum HockeyAdvantageTypes {\n power_play = 1,\n shorthanded,\n even_strength\n}\n\nexport interface PenaltyType {\n id: number;\n code: string;\n title: string;\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n advantage: 'advantage',\n advantage_num: 'advantageNum',\n is_goalie: 'isGoalie',\n penalty_type: 'penaltyType',\n penalized_game_user_id: 'penalizedGameUserId',\n mutual_penalty: 'mutualPenalty',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(HockeyGameLogTypes),\n advantage: enumField(HockeyAdvantageTypes),\n penaltyType: penaltyTypeField()\n }\n})\nexport class HockeyGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: HockeyGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n advantage: HockeyAdvantageTypes;\n advantageNum: number;\n isGoalie: boolean;\n penaltyType: PenaltyType;\n _penalizedGameUserId: number;\n mutualPenalty: boolean;\n\n get penalizedGameUserId(): number {\n if (this._penalizedGameUserId) {\n return this._penalizedGameUserId;\n }\n return this.gameUserId;\n }\n\n set penalizedGameUserId(value: number) {\n this._penalizedGameUserId = value;\n }\n\n compare(model: HockeyGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [HockeyGameLogTypes.goal, HockeyGameLogTypes.shootout_goal].indexOf(this.logType) > -1;\n }\n\n isPenaltyType(): boolean {\n return [\n HockeyGameLogTypes.minor_penalty, HockeyGameLogTypes.major_penalty,\n HockeyGameLogTypes.misconduct_penalty, HockeyGameLogTypes.game_misconduct_penalty,\n HockeyGameLogTypes.penalty_shot, HockeyGameLogTypes.match_penalty\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: HockeyGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { GameUser } from '../models/game-user';\nimport { ConfigService } from '../services/config.service';\nimport { BasketballGameTeamStatistic } from '../models/basketball-game-team-statistic';\nimport { BasketballGameStatistic } from '../models/basketball-game-statistic';\nimport { BasketballGameLog } from '../models/basketball-game-log';\n\n@Injectable({providedIn: 'root'})\nexport class BasketballGameApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getUsers(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<BasketballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/team_statistic/`).pipe(\n map(result => BasketballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<BasketballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/user_statistic/`).pipe(\n map(result => BasketballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<BasketballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/logs/`).pipe(\n map(result => BasketballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, fileType: 'xlsx' | 'pdf'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n\n async downloadFibaProtocol(gameId: number, fileType: 'xlsx' | 'pdf'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol_fiba/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n theme: 'theme',\n message: 'message',\n files: 'files',\n email: 'email',\n captcha: 'captcha',\n },\n relation: {\n files: File\n }\n})\nexport class Feedback {\n id: number;\n theme: string;\n message: string;\n email: string;\n captcha: string;\n files: File[];\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(value: any): any {\n return null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Feedback } from '../models/feedback';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class FeedbackApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async sendFeedback(data: any): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/feedback/`, Feedback.toBack(data))\n .pipe(map(response => Feedback.toFront(response)))\n .toPromise();\n }\n\n async sendLeagueFeedback(leagueId: number, data: any): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/feedback/`, Feedback.toBack(data))\n .pipe(map(response => Feedback.toFront(response)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { File } from '../models/file';\n\n@Injectable({providedIn: 'root'})\nexport class FileApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async upload(fileData: any, filename?: string): Promise<File> {\n const formData = new FormData();\n formData.append('file', fileData, filename);\n\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/`, formData)\n .pipe(map(data => File.toFront(data)))\n .toPromise();\n }\n\n async createZipArchive(files: {file: any, filename: string}[]): Promise<any> {\n const formData = new FormData();\n for (const file of files) {\n formData.append('files', file.file, file.filename);\n }\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/zip_archive/`, formData, {responseType: 'blob'})\n .toPromise();\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField, penaltyTypeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum FootballGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n penalty_attempt,\n penalty_goal,\n penalty_save,\n small_penalty_attempt,\n small_penalty_goal,\n small_penalty_save,\n assist,\n block_shot,\n corner,\n free_kick,\n foul,\n save,\n yellow_card,\n red_card,\n perfect_pass,\n loss,\n steal,\n out,\n timeout,\n}\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n is_goalie: 'isGoalie',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(FootballGameLogTypes)\n }\n})\nexport class FootballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: FootballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n isGoalie: boolean;\n\n compare(model: FootballGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [FootballGameLogTypes.goal, FootballGameLogTypes.penalty_goal, FootballGameLogTypes.small_penalty_goal].indexOf(this.logType) > -1;\n }\n\n isAfter(log: FootballGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_goals: 'ppGoals',\n ev_goals: 'evGoals',\n sh_goals: 'shGoals',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n saves: 'saves',\n goals_against: 'goalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus'\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class HockeyGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n saves: number;\n goalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shotsOnGoal(): number {\n return (this.evShotsOnGoal || 0) + (this.ppShotsOnGoal || 0) + (this.shShotsOnGoal || 0);\n }\n\n get shotsBlocked(): number {\n return (this.evShotsBlocked || 0) + (this.ppShotsBlocked || 0) + (this.shShotsBlocked || 0);\n }\n\n get shotMisses(): number {\n return (this.evShotMisses || 0) + (this.ppShotMisses || 0) + (this.shShotMisses || 0);\n }\n\n get ppShots(): number {\n return (this.ppShotMisses || 0) + (this.ppShotsOnGoal || 0) + (this.ppShotsBlocked || 0);\n }\n\n get evShots(): number {\n return (this.evShotMisses || 0) + (this.evShotsOnGoal || 0) + (this.evShotsBlocked || 0);\n }\n\n get shShots(): number {\n return (this.shShotMisses || 0) + (this.shShotsOnGoal || 0) + (this.shShotsBlocked || 0);\n }\n\n get shots(): number {\n return this.ppShots + this.evShots + this.shShots;\n }\n\n get goals(): number {\n return (this.ppGoals || 0) + (this.shGoals || 0) + (this.evGoals || 0);\n }\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.evAssists || 0) + (this.shAssists || 0);\n }\n\n get faceOffs(): number {\n return (this.faceOffWins || 0) + (this.faceOffLosses || 0);\n }\n\n get shootOuts(): number {\n return (this.shootoutAttempts || 0) + (this.shootoutGoals || 0);\n }\n\n get shotsAgainst(): number {\n return (this.saves || 0) + (this.goalsAgainst || 0);\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic } from './base-statistic';\n\n@ModelInstance({\n mappingFields: {\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n points: 'points',\n pp_shots: 'ppShots',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shots: 'evShots',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shots: 'shShots',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_goals_percent: 'ppGoalsPercent',\n pp_goals: 'ppGoals',\n ev_goals_percent: 'evGoalsPercent',\n ev_goals: 'evGoals',\n sh_goals_percent: 'shGoalsPercent',\n goals: 'goals',\n sh_goals: 'shGoals',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n shots: 'shots',\n goals_percent: 'goalsPercent',\n shots_against: 'shotsAgainst',\n saves_percent: 'savesPercent',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n face_offs: 'faceOffs',\n face_off_percent: 'faceOffPercent',\n saves: 'saves',\n goals_against: 'goalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n newbie: 'newbie',\n },\n relation: {\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class HockeyStatistic extends BaseStatistic {\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: boolean;\n gamesCount: number;\n wonGamesCount: number;\n points: number;\n ppShots: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShots: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShots: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoalsPercent: number;\n ppGoals: number;\n evGoalsPercent: number;\n evGoals: number;\n shGoalsPercent: number;\n shGoals: number;\n goals: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shots: number;\n goalsPercent: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n faceOffs: number;\n faceOffPercent: number;\n savesPercent: number;\n saves: number;\n shotsAgainst: number;\n goalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n newbie: boolean;\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0);\n }\n\n get userMinutes(): string {\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { HockeyStatistic } from './hockey-statistic';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: HockeyStatistic,\n competitorTeam: HockeyStatistic\n }\n})\nexport class HockeyGameTeamStatistic extends BaseModel {\n team: HockeyStatistic;\n competitorTeam: HockeyStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { GameUser } from '../models/game-user';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyGameLog } from '../models/hockey-game-log';\nimport { HockeyGameStatistic } from '../models/hockey-game-statistic';\nimport { HockeyGameTeamStatistic } from '../models/hockey-game-team-statistic';\n\n@Injectable({providedIn: 'root'})\nexport class HockeyGameApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getUsers(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<HockeyGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/team_statistic/`).pipe(\n map(result => HockeyGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<HockeyGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/user_statistic/`).pipe(\n map(result => HockeyGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<HockeyGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/logs/`).pipe(\n map(result => HockeyGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf'|'xlsx'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf'|'xlsx', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField, DateTimeField, enumField } from './util';\nimport { File } from './file';\nimport { Tournament } from './tournament';\n\nexport enum LeagueNewsType {\n text = 1,\n video\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n datetime: 'datetime',\n preview_text: 'previewText',\n detail_text: 'detailText',\n picture: 'picture',\n cover: 'cover',\n mobile_picture: 'mobilePicture',\n is_main: 'isMain',\n tournaments: 'tournaments',\n type: 'type',\n video_link: 'videoLink',\n tag: 'tag',\n },\n relation: {\n datetime: DateTimeField,\n picture: File,\n cover: File,\n mobilePicture: File,\n tournaments: listField(Tournament),\n type: enumField(LeagueNewsType),\n }\n})\nexport class LeagueNews extends BaseModel {\n id: number;\n title: string;\n datetime: Date;\n previewText: string;\n detailText: string;\n picture: File;\n cover: File;\n mobilePicture: File;\n isMain: boolean;\n tournaments: Tournament[];\n type: LeagueNewsType;\n videoLink: string;\n tag: string;\n\n @ToFrontHook\n static toFront(data: any): any {\n return undefined;\n }\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n goals: 'goals',\n assists: 'assists',\n corners: 'corners',\n free_kicks: 'freeKicks',\n penalty_goals: 'penaltyGoals',\n penalty_attempts: 'penaltyAttempts',\n penalty_goals_against: 'penaltyGoalsAgainst',\n penalty_saves: 'penaltySaves',\n small_penalty_goals: 'smallPenaltyGoals',\n small_penalty_attempts: 'smallPenaltyAttempts',\n small_penalty_goals_against: 'smallPenaltyGoalsAgainst',\n small_penalty_saves: 'smallPenaltySaves',\n saves: 'saves',\n goals_against: 'goalsAgainst',\n safety_rate: 'safetyRate',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n fouls: 'fouls',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n perfect_passes: 'perfectPasses',\n losses: 'losses',\n steals: 'steals',\n outs: 'outs',\n block_shots: 'blockShots'\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class FootballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsAgainst: number;\n penaltySaves: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltySaves: number;\n saves: number;\n goalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shots(): number {\n return (this.shotMisses || 0) + (this.shotsOnGoal || 0) + (this.shotsBlocked || 0);\n }\n\n\n get totalGoals(): number {\n return (this.goals || 0) + (this.penaltyGoals || 0) + (this.smallPenaltyGoals || 0);\n }\n\n get goalsPercent(): number {\n if (!this.shots || !this.totalGoals) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.shots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get penalties(): number {\n return (this.penaltyGoals || 0) + (this.penaltyAttempts || 0);\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penaltyAttempts || !this.penaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.penaltyGoals / this.penaltyAttempts) / 10;\n }\n\n get smallPenalties(): number {\n return (this.smallPenaltyGoals || 0) + (this.smallPenaltyAttempts || 0);\n }\n\n get smallPenaltyGoalsPercent(): number {\n if (!this.smallPenaltyAttempts || !this.smallPenaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltyGoals / this.smallPenaltyAttempts) / 10;\n }\n\n get shotsAgainst(): number {\n return (this.saves || 0) + (this.goalsAgainst || 0);\n }\n\n get penaltyShotsAgainst(): number {\n return (this.penaltySaves || 0) + (this.penaltyGoalsAgainst || 0);\n }\n\n get smallPenaltyShotsAgainst(): number {\n return (this.smallPenaltySaves || 0) + (this.smallPenaltyGoalsAgainst || 0);\n }\n\n get totalGoalsAgainst(): number {\n return (this.goalsAgainst || 0) + (this.penaltyGoalsAgainst || 0) + (this.smallPenaltyGoalsAgainst || 0);\n }\n\n\n get totalSaves(): number {\n return (this.saves || 0) + (this.penaltySaves || 0) + (this.smallPenaltySaves || 0);\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get penaltySavesPercent(): number {\n if (!this.penaltyShotsAgainst || !this.penaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.penaltySaves / this.penaltyShotsAgainst) / 10;\n }\n\n get smallPenaltySavesPercent(): number {\n if (!this.smallPenaltyShotsAgainst || !this.smallPenaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltySaves / this.smallPenaltyShotsAgainst) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic } from './base-statistic';\n\n@ModelInstance({\n mappingFields: {\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n shots_on_goal_percent: 'shotsOnGoalPercent',\n shots: 'shots',\n goals: 'goals',\n goals_percent: 'goalsPercent',\n total_goals: 'totalGoals',\n assists: 'assists',\n penalty_goals: 'penaltyGoals',\n penalty_attempts: 'penaltyAttempts',\n penalty_goals_percent: 'penaltyGoalsPercent',\n penalty_saves: 'penaltySaves',\n penalty_goals_against: 'penaltyGoalsAgainst',\n penalty_shots_against: 'penaltyShotsAgainst',\n penalty_saves_percent: 'penaltySavesPercent',\n small_penalty_goals: 'smallPenaltyGoals',\n small_penalty_attempts: 'smallPenaltyAttempts',\n small_penalty_goals_percent: 'smallPenaltyGoalsPercent',\n small_penalty_saves: 'smallPenaltySaves',\n small_penalty_goals_against: 'smallPenaltyGoalsAgainst',\n small_penalty_shots_against: 'smallPenaltyShotsAgainst',\n small_penalty_saves_percent: 'smallPenaltySavesPercent',\n saves: 'saves',\n saves_percent: 'savesPercent',\n total_saves: 'totalSaves',\n goals_against: 'goalsAgainst',\n total_goals_against: 'totalGoalsAgainst',\n shots_against: 'shotsAgainst',\n safety_rate: 'safetyRate',\n fouls: 'fouls',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n perfect_passes: 'perfectPasses',\n losses: 'losses',\n steals: 'steals',\n outs: 'outs',\n block_shots: 'blockShots',\n corners: 'corners',\n free_kicks: 'freeKicks',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n newbie: 'newbie'\n },\n relation: {\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class FootballStatistic extends BaseStatistic {\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: boolean;\n gamesCount: number;\n wonGamesCount: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shotsOnGoalPercent: number;\n shots: number;\n goals: number;\n totalGoals: number;\n goalsPercent: number;\n assists: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsPercent: number;\n penaltySaves: number;\n penaltyGoalsAgainst: number;\n penaltyShotsAgainst: number;\n penaltySavesPercent: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsPercent: number;\n smallPenaltySaves: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltyShotsAgainst: number;\n smallPenaltySavesPercent: number;\n saves: number;\n savesPercent: number;\n totalSaves: number;\n goalsAgainst: number;\n totalGoalsAgainst: number;\n shotsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n newbie: boolean;\n\n get userMinutes(): string {\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { FootballStatistic } from './football-statistic';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: FootballStatistic,\n competitorTeam: FootballStatistic\n }\n})\nexport class FootballGameTeamStatistic extends BaseModel {\n team: FootballStatistic;\n competitorTeam: FootballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { GameUser } from '../models/game-user';\nimport { ConfigService } from '../services/config.service';\nimport { FootballGameLog } from '../models/football-game-log';\nimport { FootballGameStatistic } from '../models/football-game-statistic';\nimport { FootballGameTeamStatistic } from '../models/football-game-team-statistic';\n\n@Injectable({providedIn: 'root'})\nexport class FootballGameApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getUsers(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<FootballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/team_statistic/`).pipe(\n map(result => FootballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<FootballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/user_statistic/`).pipe(\n map(result => FootballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<FootballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/logs/`).pipe(\n map(result => FootballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf'|'xlsx'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf'|'xlsx', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField, enumField, listField } from './util';\nimport { Game } from './game';\nimport { Tournament } from './tournament';\nimport { League } from './league';\nimport { LeagueNews } from './league-news';\n\nexport enum TournamentEventTypes {\n game_closed = 1,\n media_added,\n news\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game: 'game',\n news: 'news',\n league: 'league',\n tournaments: 'tournaments',\n event: 'event',\n datetime: 'datetime'\n },\n relation: {\n game: Game,\n news: LeagueNews,\n league: League,\n tournaments: listField(Tournament),\n datetime: DateField,\n event: enumField(TournamentEventTypes)\n }\n})\nexport class TournamentEvent extends BaseModel {\n id: number;\n game: Game;\n news: LeagueNews;\n tournaments: Tournament[];\n event: TournamentEventTypes;\n datetime: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import {ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField} from './util';\nimport {File} from './file';\n\nexport enum BannerLocation {\n slider = 'slider',\n central = 'central',\n media = 'media',\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n link: 'link',\n sort: 'sort',\n location: 'location',\n },\n relation: {\n picture: File,\n location: enumField(BannerLocation),\n }\n})\nexport class LeagueBanner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n location: BannerLocation;\n\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n link: 'link',\n sort: 'sort',\n },\n relation: {\n picture: File\n }\n})\nexport class LeaguePartner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { User } from './user';\n\nexport enum PollStatuses {\n open = 1,\n closed,\n archived,\n}\n\n@ModelInstance({\n mappingFields: {\n uuid: 'uuid',\n name: 'name'\n }\n})\nexport class PollVariant extends BaseModel {\n uuid: string;\n name: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n answer_uuid: 'answerUuid',\n user: 'user',\n poll_id: 'pollId',\n },\n relation: {\n user: User\n }\n})\nexport class PollAnswer extends BaseModel {\n id: number;\n answerUuid: string;\n user: User;\n pollId: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n active: 'active',\n status: 'status',\n team_id: 'teamId',\n name: 'name',\n description: 'description',\n variants: 'variants',\n author: 'author',\n answers: 'answers',\n multiple_answer: 'multipleAnswer',\n anonymous: 'anonymous',\n created_at: 'createdAt'\n },\n relation: {\n status: enumField(PollStatuses),\n variants: PollVariant,\n author: User,\n answers: PollAnswer,\n createdAt: DateTimeField,\n }\n})\nexport class Poll extends BaseModel {\n id: number;\n active: boolean;\n teamId: number;\n status: PollStatuses;\n name: string;\n description: string;\n _variants: PollVariant[];\n author: User;\n _answers: PollAnswer[];\n multipleAnswer: boolean;\n anonymous: boolean;\n createdAt: Date;\n variantsWithAnswers: {variant: PollVariant, percent: number}[] = [];\n\n set variants(value: PollVariant[]) {\n this._variants = value || [];\n if (this._answers) {\n this.calculateAnswersPercentage();\n }\n }\n get variants(): PollVariant[] {\n return this._variants;\n }\n\n set answers(value: PollAnswer[]) {\n this._answers = value || [];\n if (this._variants) {\n this.calculateAnswersPercentage();\n }\n }\n get answers(): PollAnswer[] {\n return this._answers;\n }\n\n calculateAnswersPercentage() {\n if (!this._answers.length) {\n return;\n }\n\n const variants = this._variants.map(v => v.uuid);\n const answersByVariant = this._answers.reduce((acc, item) => {\n if (variants.indexOf(item.answerUuid) < 0) {\n return acc;\n }\n if (!acc[item.answerUuid]) {\n acc[item.answerUuid] = 0;\n }\n acc[item.answerUuid]++;\n return acc;\n }, {});\n this.variantsWithAnswers = this._variants.map(item => ({\n variant: item,\n percent: answersByVariant[item.uuid] ? Math.round(100 * answersByVariant[item.uuid] / this._answers.length) : 0\n }))\n .sort((a, b) => a.percent > b.percent ? -1 : 1);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { League } from '../models/league';\nimport { map } from 'rxjs/operators';\nimport { Tournament } from '../models/tournament';\nimport { ConfigService } from '../services/config.service';\nimport { TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { GameMediaFilters } from './media-api';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { Game, GameStatuses } from '../models/game';\nimport { LeaguePartner } from '../models/league-partner';\nimport { LeagueCourt } from '../models/league-court';\nimport { BannerLocation, LeagueBanner } from '../models/league-banner';\n\n@Injectable({providedIn: 'root'})\nexport class LeagueApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getByAlias(alias: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${alias}/`).pipe(\n map(result => League.toFront(result))\n ).toPromise();\n }\n\n async getByDomain(domain: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/by_domain/${domain}/`).pipe(\n map(result => League.toFront(result))\n ).toPromise();\n }\n\n async getTournaments(leagueId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/`).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getEvents(leagueId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/events/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getTournamentSeasons(leagueId: number): Promise<TournamentSeason[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`).pipe(\n map(result => TournamentSeason.toFront(result))\n ).toPromise();\n }\n\n async getGames(leagueId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n if (filters.tournamentCourtId) {\n params = params.set('tournament_court_id', filters.tournamentCourtId.toString());\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/games/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getSeasons(leagueId: number, notClosed?: boolean): Promise<TournamentSeason[]> {\n const params = new HttpParams().set('not_closed', notClosed ? '1' : '');\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`, {params})\n .pipe(map(result => TournamentSeason.toFront(result)))\n .toPromise();\n }\n\n async getPartners(leagueId: number): Promise<LeaguePartner[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/partners/`).pipe(\n map(result => LeaguePartner.toFront(result))\n ).toPromise();\n }\n\n async getBanners(leagueId: number, location?: BannerLocation): Promise<LeagueBanner[]> {\n const params = location ? new HttpParams().set('location', location) : new HttpParams();\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/banners/`, {params}).pipe(\n map(result => LeagueBanner.toFront(result))\n ).toPromise();\n }\n\n async getCourts(leagueId: number): Promise<LeagueCourt[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/courts/`).pipe(\n map(result => LeagueCourt.toFront(result))\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { LeagueNews, LeagueNewsType } from '../models/league-news';\nimport { map } from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class LeagueNewsApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getLeagueNewsList(leagueId: number, page: number, size: number, type: LeagueNewsType = LeagueNewsType.text): Promise<PaginatedResponse<LeagueNews[]>> {\n const params = new HttpParams().set('page', page.toString())\n .set('size', size.toString())\n .set('type', LeagueNewsType[type]);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/`, {params, observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: LeagueNews.toFront(response.body)\n })))\n .toPromise();\n }\n\n async getMainLeagueNews(leagueId: number): Promise<LeagueNews> {\n return this.httpClient.get<any[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => response && response.length > 0 ? LeagueNews.toFront(response[0]) : null))\n .toPromise();\n }\n\n async getMainLeagueNewsList(leagueId: number): Promise<LeagueNews[]> {\n return this.httpClient.get<any[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => LeagueNews.toFront(response)))\n .toPromise();\n }\n\n async getNewsById(newsId: number): Promise<LeagueNews> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_news/${newsId}/`)\n .pipe(map(response => LeagueNews.toFront(response)))\n .toPromise();\n }\n\n async getTournamentNewsList(tournamentId: number): Promise<PaginatedResponse<LeagueNews[]>> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`, {observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: LeagueNews.toFront(response.body)\n })))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { MediaItem } from '../models/media-item';\nimport { Game, GameStatuses } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\n\nexport interface GameMediaFilters {\n tournamentStageId?: number;\n tournamentTour?: number;\n teamId?: number;\n playoffStage?: number;\n playoffId?: number;\n status?: GameStatuses;\n}\n\nexport interface MediaFilters {\n mediaType?: 'photo' | 'video' | 'live_video';\n sort?: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class MediaApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getMedia(mediaId: number): Promise<MediaItem> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/`).pipe(\n map(result => MediaItem.toFront(result))\n ).toPromise();\n }\n\n async getTournamentGameMedia(tournamentId: number, page: number, size: number, filters?: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters) {\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.playoffId) {\n params = params.set('playoff_id', filters.playoffId.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n }\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/game_media/`, {observe: 'response', params}).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getLeagueGameMedia(leagueId: number, page: number, size: number, filters?: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters) {\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.playoffId) {\n params = params.set('playoff_id', filters.playoffId.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n }\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/game_media/`, {observe: 'response', params}).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getLeagueMedia(leagueId: number, page: number, size: number, filters: MediaFilters = {}): Promise<PaginatedResponse<MediaItem[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters.mediaType) {\n params = params.set('media_type', filters.mediaType);\n }\n if (filters.sort) {\n params = params.set('sort', filters.sort);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/media/`, {params, observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: MediaItem.toFront(response.body)\n }))).toPromise();\n }\n\n async getGameMediaById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/game_media/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getGameMedia(gameId: number): Promise<MediaItem[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/media/`).pipe(\n map(result => MediaItem.toFront(result))\n ).toPromise();\n }\n\n async createZip(mediaIds: number[]): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/media/zip/`, mediaIds, { responseType: 'blob' })\n .toPromise();\n }\n\n async downloadMedia(mediaId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/download/`,{responseType: 'blob'})\n .toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { TeamUser } from './team-user';\nimport { Game } from './game';\n\nexport enum GameInviteStatus {\n accepted = 1,\n declined,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_user: 'teamUser',\n game_id: 'gameId',\n game: 'game',\n status: 'status',\n },\n relation: {\n game: Game,\n teamUser: TeamUser,\n status: enumField(GameInviteStatus),\n }\n})\nexport class GameInvite extends BaseModel {\n id: number;\n teamUser: TeamUser;\n gameId: number;\n game: Game;\n status: GameInviteStatus;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n user: 'user',\n team: 'team',\n team_id: 'teamId',\n user_accept: 'userAccept',\n team_accept: 'teamAccept',\n users_count: 'usersCount',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n score_sum: 'scoreSum',\n created_at: 'createdAt',\n updated_at: 'updatedAt',\n },\n relation: {\n user: User,\n team: Team,\n createdAt: DateTimeField,\n updateAt: DateTimeField,\n }\n})\nexport class TeamInvite extends BaseModel {\n id: number;\n userId: number;\n user: User;\n teamId: number;\n team: Team;\n userAccept: boolean;\n teamAccept: boolean;\n usersCount: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n createdAt: Date;\n updatedAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","export enum TeamEventTypes {\n training = 1,\n other = 2,\n}\n","import { enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum TeamEventInviteStatuses {\n accepted = 1,\n declined = 2\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_event_id: 'teamEventId',\n team_user_id: 'teamUserId',\n status: 'status',\n },\n relation: {\n status: enumField(TeamEventInviteStatuses)\n }\n})\nexport class TeamEventInvite {\n id: number;\n teamEventId: number;\n teamUserId: number;\n status: TeamEventInviteStatuses;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { TeamEventTypes } from '../models/team-event-type';\n\nexport const TeamEventTypeLocalization = {\n [TeamEventTypes.training]: 'ТÑениÑовка',\n [TeamEventTypes.other]: 'ÐÑÑгое'\n};\n","import { BaseModel, enumField, ModelInstance, DateTimeField, ToBackHook, ToFrontHook } from './util';\nimport { Team } from './team';\nimport { TeamEventTypeLocalization } from '../localization/team-event-type';\nimport { TeamEventTypes } from './team-event-type';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n team: 'team',\n event_type: 'eventType',\n event_custom_name: 'eventCustomName',\n description: 'description',\n datetime: 'datetime',\n location: 'location',\n },\n relation: {\n eventType: enumField(TeamEventTypes),\n team: Team,\n datetime: DateTimeField,\n }\n})\nexport class TeamEvent extends BaseModel {\n id: number;\n teamId: number;\n team: Team;\n eventType: TeamEventTypes;\n eventCustomName: string;\n description: string;\n datetime: Date;\n location: string;\n\n get name(): string {\n if (this.eventType === TeamEventTypes.other) {\n return this.eventCustomName;\n }\n return TeamEventTypeLocalization[this.eventType];\n }\n\n get isClosed(): boolean {\n return this.datetime.getTime() < new Date().getTime();\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { Team } from './team';\nimport { Poll } from './poll';\nimport { Game } from './game';\nimport { TeamInvite } from './team-invite';\nimport { TeamUser } from './team-user';\nimport { GameInvite } from './game-invite';\nimport { TeamEvent } from './team-event';\nimport { TeamEventInvite } from './team-event-invite';\nimport { Tournament } from './tournament';\nimport { TournamentInvite } from './tournament-invite';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\n\nexport enum NotificationType {\n team_updated = 1,\n team_invited,\n team_join_request,\n team_join_declined_by_team,\n team_join_declined_by_user,\n team_join_canceled_by_team,\n team_join_canceled_by_user,\n team_joined_for_user,\n team_joined_for_team,\n team_user_role_changed_for_user,\n team_user_role_changed_for_team,\n team_user_number_changed,\n team_user_deleted_for_user,\n team_user_deleted_for_team,\n team_user_left,\n\n game_updated,\n game_invited,\n game_invite_accepted,\n game_invite_declined,\n game_remind,\n game_won,\n game_losing,\n game_tech_defeat,\n game_tech_victory,\n\n poll_created,\n poll_closed,\n\n team_event_invited,\n team_event_accepted,\n team_event_declined,\n team_event_remind,\n\n tournament_invited,\n tournament_joined,\n tournament_join_declined,\n tournament_join_canceled,\n tournament_user_invited,\n tournament_user_accepted_for_team,\n tournament_user_accepted_for_user,\n tournament_user_added,\n tournament_user_declined_for_team,\n tournament_user_declined_for_user,\n tournament_user_invite_deleted,\n tournament_user_deleted,\n tournament_user_disqualified_for_team,\n tournament_user_disqualified_for_user,\n tournament_user_disqualification_updated_for_team,\n tournament_user_disqualification_updated_for_user,\n tournament_team_deleted,\n\n org_tournament_invite_created,\n org_tournament_invite_declined,\n org_tournament_invite_deleted,\n org_tournament_invite_changed,\n org_tournament_user_deleted,\n org_tournament_user_invited,\n org_tournament_user_has_changes,\n org_tournament_team_leave,\n}\n\nexport enum NotificationServiceEnum {\n public = 1,\n org\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n event_type: 'event',\n data: 'data',\n initiator: 'initiator',\n team: 'team',\n team_invite: 'teamInvite',\n team_user: 'teamUser',\n poll: 'poll',\n game: 'game',\n game_invite: 'gameInvite',\n team_event: 'teamEvent',\n team_event_invite: 'teamEventInvite',\n tournament: 'tournament',\n tournament_invite: 'tournamentInvite',\n tournament_team: 'tournamentTeam',\n viewed: 'viewed',\n protected: 'protected',\n service: 'service',\n created_at: 'createdAt',\n },\n relation: {\n event: enumField(NotificationType),\n initiator: User,\n team: Team,\n teamInvite: TeamInvite,\n teamUser: TeamUser,\n poll: Poll,\n game: Game,\n gameInvite: GameInvite,\n teamEvent: TeamEvent,\n teamEventInvite: TeamEventInvite,\n tournament: Tournament,\n tournamentInvite: TournamentInvite,\n tournamentTeam: TournamentTeam,\n service: enumField(NotificationServiceEnum),\n createdAt: DateTimeField,\n }\n})\nexport class Notification extends BaseModel {\n id: number;\n event: NotificationType;\n data: any;\n initiator: User;\n team: Team;\n teamInvite: TeamInvite;\n teamUser: TeamUser;\n poll: Poll;\n game: Game;\n gameInvite: GameInvite;\n teamEvent: TeamEvent;\n teamEventInvite: TeamEventInvite;\n tournament: Tournament;\n tournamentInvite: TournamentInvite;\n tournamentTeam: TournamentTeam;\n viewed: boolean;\n protected: boolean;\n service: NotificationServiceEnum;\n createdAt: Date;\n\n get important(): boolean {\n return true;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\nimport { TeamUser } from './team-user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team_invite_id: 'tournamentTeamInviteId',\n tournament_team_id: 'tournamentTeamId',\n team_user: 'teamUser',\n accepted: 'accepted'\n },\n relation: {\n teamUser: TeamUser\n }\n})\nexport class TournamentTeamUserInvite extends BaseModel {\n id: number;\n tournamentTeamInviteId: number;\n tournamentTeamId: number;\n teamUser: TeamUser;\n accepted: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Team } from './team';\nimport { Tournament } from './tournament';\nimport { TournamentTeamUserInvite } from './tournament-team-user-invite';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team: 'team',\n tournament: 'tournament',\n team_accept: 'teamAccept',\n organization_accept: 'organizationAccept',\n user_invites_count: 'userInvitesCount',\n user_invites: 'userInvites',\n notifications_count: 'notificationsCount',\n },\n relation: {\n team: Team,\n tournament: Tournament,\n userInvites: TournamentTeamUserInvite,\n }\n})\nexport class TournamentInvite extends BaseModel {\n id: number;\n team: Team;\n tournament: Tournament;\n teamAccept: boolean;\n organizationAccept: boolean;\n userInvitesCount: number;\n userInvites: TournamentTeamUserInvite[];\n notificationsCount: number;\n\n get isOpen(): boolean {\n return (this.teamAccept === null || this.organizationAccept === null) && this.teamAccept !== false && this.organizationAccept !== false;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum NotificationAllowTypes {\n all = 1,\n important,\n none\n}\n\n@ModelInstance({\n mappingFields: {\n user_id: 'userId',\n popup: 'popup',\n sound: 'sound',\n browser: 'browser',\n email: 'email'\n },\n relation: {\n sound: enumField(NotificationAllowTypes),\n browser: enumField(NotificationAllowTypes),\n }\n})\nexport class NotificationSettings extends BaseModel {\n userId: number;\n popup: boolean;\n sound: NotificationAllowTypes;\n browser: NotificationAllowTypes;\n email: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook, enumField } from './util';\n\nexport enum TeamPermissionTypes {\n for_all = 1,\n for_users,\n for_team\n}\n\n@ModelInstance({\n mappingFields: {\n players: 'players',\n games: 'games',\n statistic: 'statistic',\n polls: 'polls',\n events: 'events'\n },\n relation: {\n players: enumField(TeamPermissionTypes),\n games: enumField(TeamPermissionTypes),\n statistic: enumField(TeamPermissionTypes),\n polls: enumField(TeamPermissionTypes),\n events: enumField(TeamPermissionTypes)\n }\n})\nexport class TeamPermission extends BaseModel {\n players: TeamPermissionTypes;\n games: TeamPermissionTypes;\n statistic: TeamPermissionTypes;\n polls: TeamPermissionTypes;\n events: TeamPermissionTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Notification } from '../models/notification';\nimport { NotificationSettings } from '../models/notification-settings';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\n\nexport interface NotificationFilters {\n protected?: boolean;\n not_viewed?: boolean;\n important?: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class NotificationBaseApi {\n protected apiUrl: string;\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCount(): Promise<number> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/count/`)\n .pipe(map(data => +data))\n .toPromise();\n }\n\n async getList(page: number, size: number, filters: NotificationFilters = {}): Promise<PaginatedResponse<Notification[]>> {\n let params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString());\n for (const key of Object.keys(filters)) {\n params = params.set(key, filters[key]);\n }\n\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/`, {params, observe: 'response'})\n .pipe(\n map(response => {\n const data: Notification[] = Notification.toFront(response.body);\n return {\n total: +response.headers.get('x-page-count'),\n data\n };\n }),\n ).toPromise();\n }\n\n async markViewed(notificationId: number, viewed: boolean): Promise<Notification> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/${notificationId}/viewed/`, {viewed})\n .pipe(map(data => Notification.toFront(data)))\n .toPromise();\n }\n\n async markAllViewed(): Promise<Notification[]> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/viewed/`, {})\n .pipe(map(data => Notification.toFront(data)))\n .toPromise();\n }\n\n async getNotificationSettings(): Promise<NotificationSettings> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`)\n .pipe(map(data => NotificationSettings.toFront(data)))\n .toPromise();\n }\n\n async updateNotificationSettings(data: NotificationSettings): Promise<NotificationSettings> {\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`,\n NotificationSettings.toBack(data)\n )\n .pipe(map(result => NotificationSettings.toFront(result)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class NotificationApi extends NotificationBaseApi {\n protected apiUrl = '/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class OrgNotificationApi extends NotificationBaseApi {\n protected apiUrl = '/org/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\nimport { City } from '../models/city';\nimport { Sport } from '../models/sport';\n\n@Injectable({providedIn: 'root'})\nexport class ReferenceApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCities(): Promise<City[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/reference/cities/`)\n .pipe(\n map(data => City.toFront(data))\n ).toPromise();\n }\n\n async getSports(): Promise<Sport[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/sport/`)\n .pipe(\n map(data => Sport.toFront(data))\n ).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n email: 'email',\n first_name: 'firstName',\n last_name: 'lastName',\n },\n})\nexport class TeamInviteExternal extends BaseModel {\n id: number;\n teamId: number;\n email: string;\n firstName: string;\n lastName: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField } from './util';\nimport { Team } from './team';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { TeamUser } from './team-user';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\nimport { BaseStatistic } from './base-statistic';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n team_user: 'teamUser',\n tournament_team_user: 'tournamentTeamUser',\n tournament_team: 'tournamentTeam',\n user: 'user',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n serve_hits: 'serveHits',\n serve_faults: 'serveFaults',\n serve_aces: 'serveAces',\n serve_percent: 'servePercent',\n ace_percent: 'acePercent',\n stuff_blocks: 'stuffBlocks',\n block_faults: 'blockFaults',\n block_rebounds: 'blockRebounds',\n block_percent: 'blockPercent',\n attack_spikes: 'attackSpikes',\n attack_faults: 'attackFaults',\n attack_shots: 'attackShots',\n attack_percent: 'attackPercent',\n receives: 'receives',\n receive_faults: 'receiveFaults',\n excellent_receives: 'excellentReceives',\n receive_percent: 'receivePercent',\n serve_receives: 'serveReceives',\n serve_receive_faults: 'serveReceiveFaults',\n excellent_serve_receives: 'excellentServeReceives',\n serve_receive_percent: 'serveReceivePercent',\n points: 'points',\n faults: 'faults',\n newbie: 'newbie',\n },\n relation: {\n team: Team,\n teamUser: TeamUser,\n tournamentTeamUser: TournamentTeamUser,\n tournamentTeam: TournamentTeam,\n user: User,\n month: DateField,\n }\n})\nexport class VolleyballStatistic extends BaseStatistic {\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n servePercent: number;\n acePercent: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n blockPercent: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n attackPercent: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n receivePercent: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n serveReceivePercent: number;\n points: number;\n faults: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, DateField } from './util';\n\nexport enum TournamentStageStatuses {\n open,\n in_progress,\n closed\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n date: 'date',\n tournament_id: 'tournamentId',\n status: 'status',\n },\n relation: {\n date: DateField,\n status: enumField(TournamentStageStatuses)\n }\n})\nexport class TournamentStage extends BaseModel {\n id: number;\n name: string;\n date: Date;\n tournamentId: number;\n status: TournamentStageStatuses;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { TeamUserRole } from './team-user';\n\n@ModelInstance({\n mappingFields: {\n can_edit: 'canEdit',\n can_view_users: 'canViewUsers',\n can_manage_permission: 'canManagePermission',\n can_change_owner: 'canChangeOwner',\n can_delete: 'canDelete',\n can_manage_invites: 'canManageInvites',\n can_view_invites: 'canViewInvites',\n can_manage_polls: 'canManagePolls',\n can_view_polls: 'canViewPolls',\n can_answer_poll: 'canAnswerPoll',\n can_manage_games: 'canManageGames',\n can_view_games: 'canViewGames',\n can_view_statistic: 'canViewStatistic',\n can_promote_users: 'canPromoteUsers',\n can_edit_users: 'canEditUsers',\n can_delete_users: 'canDeleteUsers',\n can_view_events: 'canViewEvents',\n can_manage_events: 'canManageEvents',\n can_view_tournaments: 'canViewTournaments',\n can_manage_tournaments: 'canManageTournaments',\n role: 'role'\n },\n relation: {\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamAccess extends BaseModel {\n canEdit: boolean;\n canViewUsers: boolean;\n canManagePermission: boolean;\n canChangeOwner: boolean;\n canDelete: boolean;\n canManageInvites: boolean;\n canViewInvites: boolean;\n canManagePolls: boolean;\n canViewPolls: boolean;\n canAnswerPoll: boolean;\n canManageGames: boolean;\n canViewGames: boolean;\n canViewStatistic: boolean;\n canPromoteUsers: boolean;\n canEditUsers: boolean;\n canDeleteUsers: boolean;\n canViewEvents: boolean;\n canManageEvents: boolean;\n canViewTournaments: boolean;\n canManageTournaments: boolean;\n role: TeamUserRole;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser, TeamUserRole } from '../models/team-user';\nimport { User } from '../models/user';\nimport { TeamInvite } from '../models/team-invite';\nimport { TeamInviteExternal } from '../models/team-invite-external';\nimport { Poll } from '../models/poll';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { TeamEvent } from '../models/team-event';\nimport { Tournament } from '../models/tournament';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { TeamPermission } from '../models/team-permission';\nimport { TeamAccess } from '../models/team-access';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async search(query: string, sportId?: number): Promise<Team[]> {\n let params = (new HttpParams()).set('search', query);\n if (sportId) {\n params = params.set('sport', sportId.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/`, {params})\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async create(team: Team): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/`, Team.toBack(team))\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getById(teamId: number): Promise<Team> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`)\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getTeamAccess(teamId: number): Promise<TeamAccess> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/access/`)\n .pipe(map(data => TeamAccess.toFront(data)))\n .toPromise();\n }\n\n async update(teamId: number, values: any): Promise<Team> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`, Team.toBack(values))\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async delete(team: Team): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${team.id}/`)\n .toPromise();\n }\n\n async getPermission(teamId: number): Promise<TeamPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`)\n .pipe(map(data => TeamPermission.toFront(data)))\n .toPromise();\n }\n\n async updatePermission(teamId: number, permission: TeamPermission): Promise<TeamPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`, TeamPermission.toBack(permission))\n .pipe(map(data => TeamPermission.toFront(data)))\n .toPromise();\n }\n\n async getUsers(teamId: number, tournamentId?: number): Promise<TeamUser[]> {\n let params = new HttpParams();\n if (tournamentId) {\n params = params.set('tournament_id', tournamentId.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`, {params})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateUserRole(teamId: number, teamUserId: number, role: TeamUserRole): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/role/`, {role: TeamUserRole[role]})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateUserNumber(teamId: number, teamUserId: number, gameNumber: number): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/number/`, {number: gameNumber.toString()})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async deleteUser(teamUser: TeamUser): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${teamUser.teamId}/users/${teamUser.id}/`)\n .toPromise();\n }\n\n async changeOwner(teamId: number, user: User): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/owner/`, {id: user.id})\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getInvites(teamId: number): Promise<TeamInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`)\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async sendInvite(teamId: number, user: User): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`, {user})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/accept/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async declineInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/decline/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async resendInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/resend/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async getInvitesExternal(teamId: number): Promise<TeamInviteExternal[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`)\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async sendInviteExternal(teamId: number, invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`, TeamInviteExternal.toBack(invite))\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async deleteInviteExternal(invite: TeamInviteExternal): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/`)\n .toPromise();\n }\n\n async resendInviteExternal(invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/resend/`, {})\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async getPolls(teamId: number, archive: boolean = false): Promise<Poll[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => Poll.toFront(data)))\n .toPromise();\n }\n\n async createPoll(teamId: number, poll: Poll): Promise<Poll> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/`, Poll.toBack(poll))\n .pipe(map(data => Poll.toFront(data)))\n .toPromise();\n }\n\n async getUsersStatistic(teamId: number): Promise<BasketballStatistic[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballStatistic(teamId: number): Promise<VolleyballStatistic[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/volleyball_statistics/`)\n .pipe(map(data => VolleyballStatistic.toFront(data)))\n .toPromise();\n }\n\n async joinTeam(teamId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/join/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async leaveTeam(teamId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/leave/`, {})\n .toPromise();\n }\n\n async getGames(teamId: number, archive = false): Promise<Game[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async createGame(teamId: number, game: Game): Promise<Game> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/`, Game.toBack(game))\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async getTeamEvents(teamId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async createTeamEvent(teamId: number, teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`, TeamEvent.toBack(teamEvent))\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async getTournaments(teamId: number): Promise<Tournament[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/`)\n .pipe(map(data => Tournament.toFront(data)))\n .toPromise();\n }\n\n async getTournamentTeams(teamId: number): Promise<TournamentTeam[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_teams/`)\n .pipe(map(data => TournamentTeam.toFront(data)))\n .toPromise();\n }\n\n async getTournamentInvites(teamId: number): Promise<TournamentInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_invites/`)\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async getTournamentGames(teamId: number, tournamentId: number, page: number, size?: number): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/${tournamentId}/games/`, {params, observe: 'response'})\n .pipe(map((response: HttpResponse<any>) => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n }))\n .toPromise();\n }\n\n async acceptTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/accept/`, {})\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async declineTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/decline/`, {})\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async registerLazyUser(teamId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/lazy_user/`, {user: User.toBack(userData)})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async getLazyUser(teamUserId: number): Promise<TeamUser> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateLazyUser(teamUserId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`, {user: User.toBack(userData)})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async deleteLazyUser(teamUserId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .toPromise();\n }\n\n async resendLazyUserEmail(teamUserId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/resend_email/`, {})\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { TeamEvent } from '../models/team-event';\nimport { TeamEventInvite } from '../models/team-event-invite';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamEventApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getTeamEvent(teamEventId: number): Promise<TeamEvent> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async updateTeamEvent(teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEvent.id}/`, TeamEvent.toBack(teamEvent))\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async deleteTeamEvent(teamEventId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .toPromise();\n }\n\n async getTeamEventInvites(teamEventId: number): Promise<TeamEventInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`)\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async createTeamEventInvite(teamEventId: number, teamUserId: number): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`, {team_user_id: teamUserId})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/accept/`, {})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async declineTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/decline/`, {})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { File } from './file';\nimport { User } from './user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n text: 'text',\n author: 'author',\n created_at: 'createdAt',\n },\n relation: {\n picture: File,\n author: User,\n createdAt: DateTimeField,\n }\n})\nexport class TournamentNews extends BaseModel {\n id: number;\n title: string;\n picture: File;\n text: string;\n author: User;\n createdAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\n\n@ModelInstance({\n mappingFields: {\n stage_id: 'stageId',\n tours_count: 'toursCount',\n playoff_stages_count: 'playoffStagesCount',\n }\n})\nexport class GameTimelineStageItem {\n stageId: number;\n toursCount: number;\n playoffStagesCount: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n tours_count: 'toursCount',\n playoff_stages_count: 'playoffStagesCount',\n current_tour: 'currentTour',\n current_playoff_stage: 'currentPlayoffStage',\n stages: 'stages',\n tournament_stage_id: 'tournamentStageId',\n },\n relation: {\n stages: listField(GameTimelineStageItem)\n }\n})\nexport class GameTimelineStages extends BaseModel {\n toursCount: number;\n playoffStagesCount: number;\n currentTour: number;\n currentPlayoffStage: number;\n stages: GameTimelineStageItem[];\n tournamentStageId: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { generateArray } from '../utils/array';\n\nexport enum PlayoffTypes {\n double_elimination = 'double_elimination',\n elimination = 'elimination'\n}\n\n@ModelInstance({\n mappingFields: {\n rounds: 'rounds',\n final_rounds: 'finalRounds',\n third_place_rounds: 'thirdPlaceRounds',\n teams_count: 'teamsCount',\n type: 'type',\n },\n relation: {\n type: enumField(PlayoffTypes)\n }\n})\nexport class PlayoffSettings extends BaseModel {\n rounds: number;\n finalRounds: number;\n thirdPlaceRounds: number;\n teamsCount: number;\n type: PlayoffTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n settings: 'settings',\n tournament_id: 'tournamentId',\n tournament_stage_id: 'tournamentStageId',\n is_official: 'isOfficial'\n },\n relation: {\n settings: PlayoffSettings\n }\n})\nexport class Playoff extends BaseModel {\n id: number;\n name: string;\n settings: PlayoffSettings;\n tournamentId: number;\n tournamentStageId: number;\n isOfficial: boolean;\n private stages: {title: string, value: number}[] = [];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get stagesCount(): number {\n return Math.log(this.settings.teamsCount) / Math.log(2);\n }\n\n getPlayoffStages() {\n if (this.stages.length === 0 && this.settings.teamsCount) {\n const stagesCount = Math.log(this.settings.teamsCount) / Math.log(2);\n this.stages = generateArray(stagesCount).map(stage => {\n const playoffStage = this.settings.teamsCount / 2 ** stage;\n let title = '';\n if (playoffStage === 1) {\n title = 'Финал';\n } else {\n title = `1 / ${playoffStage}`;\n }\n return {\n value: stage,\n title\n };\n });\n }\n return this.stages;\n }\n}\n","export function generateArray(length: number): number[] {\n if (length <= 0) {\n return [];\n }\n return Array.apply(null, Array(length)).map((_, i) => i + 1);\n}\n\nexport function getArrayChunks(array: any[], length: number): any[][] {\n const chunks = [];\n const chunkLength = Math.ceil(array.length / length);\n if (chunkLength === 0) {\n return [array];\n }\n for (let i = 0; i < chunkLength; i++) {\n chunks.push(array.slice(i * length, (i + 1) * length));\n }\n return chunks;\n}\n","import { User } from './user';\nimport { BaseModel, enumField, listField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n\nexport enum LeagueUserRoles {\n admin = 1,\n moderator,\n game_manager\n}\n\nexport enum LeagueUserPermissions {\n settings = 1,\n users,\n teams,\n media,\n news,\n game_export,\n schedule,\n game_management\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user: 'user',\n role: 'role',\n permissions: 'permissions'\n },\n relation: {\n user: User,\n permissions: listField(enumField(LeagueUserPermissions))\n }\n})\nexport class LeagueUser extends BaseModel {\n id: number;\n user: User;\n _role: LeagueUserRoles;\n permissions: LeagueUserPermissions[];\n\n set role(value: LeagueUserRoles|string) {\n this._role = LeagueUserRoles[value];\n }\n\n get role(): LeagueUserRoles|string {\n return this._role;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TournamentGroup } from './tournament-group';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team: 'tournamentTeam',\n group: 'group',\n tournament_stage_id: 'tournamentStageId',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n score_sum: 'scoreSum',\n missed_sum: 'missedSum',\n last_games_count: 'lastGamesCount',\n last_games_won: 'lastGamesWon',\n points: 'points',\n final_standing: 'finalStanding',\n received_points: 'receivedPoints',\n },\n relation: {\n tournamentTeam: TournamentTeam,\n group: TournamentGroup\n }\n})\nexport class TournamentStageTeam extends BaseModel {\n id: number;\n tournamentTeam: TournamentTeam;\n group: TournamentGroup;\n tournamentStageId: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n missedSum: number;\n lastGamesCount: number;\n lastGamesWon: number;\n points: number;\n finalStanding: number;\n receivedPoints: number;\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum UserPermissionTypes {\n denied = 1,\n for_all,\n for_users,\n for_team\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n personal_data: 'personalData',\n games: 'games',\n teams: 'teams',\n statistic: 'statistic'\n },\n relation: {\n personalData: enumField(UserPermissionTypes),\n games: enumField(UserPermissionTypes),\n teams: enumField(UserPermissionTypes),\n statistic: enumField(UserPermissionTypes)\n }\n})\nexport class UserPermission extends BaseModel {\n id: number;\n personalData: UserPermissionTypes;\n games: UserPermissionTypes;\n teams: UserPermissionTypes;\n statistic: UserPermissionTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Tournament } from '../models/tournament';\nimport { map } from 'rxjs/operators';\nimport { TournamentNews } from '../models/tournament-news';\nimport { Game, GameStatuses } from '../models/game';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { Playoff } from '../models/playoff';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyStatistic } from '../models/hockey-statistic';\nimport { FootballStatistic } from '../models/football-statistic';\nimport { LeagueUserPermissions } from '../models/league-user';\n\nexport interface TournamentGamesFilters {\n tournamentStageId?: number;\n tournamentTour?: number;\n teamId?: number;\n playoffStage?: number;\n playoffId?: number;\n status?: GameStatuses;\n statuses?: GameStatuses[];\n tournamentCourtId?: number;\n}\n\nexport type StatisticGroupByTypes = 'team' | 'user' | 'team_user' | 'tournament_team' | 'tournament_team_user' | 'month' | 'win_loses';\n\nexport interface StatisticFilters {\n tournament_id?: number;\n tournament_season_id?: number;\n tournament_team_id?: number;\n tournament_team_user_id?: number;\n team_id?: number;\n team_user_id?: number;\n user_id?: number;\n tournament_stage_id?: number;\n tournament_tour?: number;\n playoff_stage?: number;\n playoff_id?: number;\n date_from?: string;\n date_to?: string;\n per_game?: boolean;\n group_by: StatisticGroupByTypes;\n}\n\nexport interface TournamentEventsListFilter {\n event?: TournamentEventTypes;\n search?: string;\n tournamentTour?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(tournamentId: number): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/`)\n .pipe(map(result => Tournament.toFront(result)))\n .toPromise();\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/${alias}/`)\n .pipe(map(result => Tournament.toFront(result)))\n .toPromise();\n }\n\n async getNews(tournamentId: number): Promise<TournamentNews[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`)\n .pipe(map(result => TournamentNews.toFront(result)))\n .toPromise();\n }\n\n async getEvents(tournamentId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/events/`, {params, observe: 'response'})\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n })))\n .toPromise();\n }\n\n async getTournamentStages(tournamentId: number): Promise<TournamentStage[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stages/`).pipe(\n map(data => TournamentStage.toFront(data))\n ).toPromise();\n }\n\n async getPlayoff(tournamentId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/playoff/`).pipe(\n map(result => Playoff.toFront(result))\n ).toPromise();\n }\n\n async getPlayoffGames(playoffId: number): Promise<Game[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_playoff/${playoffId}/games/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getGamesStages(tournamentId: number): Promise<GameTimelineStages> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_stages/`)\n .pipe(map(data => GameTimelineStages.toFront(data)))\n .toPromise();\n }\n\n async getGames(tournamentId: number, page: number, size: number, filters: TournamentGamesFilters = {}): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n if (filters.tournamentCourtId) {\n params = params.set('tournament_court_id', filters.tournamentCourtId.toString());\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games/`, {params, observe: 'response'})\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))).toPromise();\n }\n\n async getTeams(tournamentId: number): Promise<TournamentTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams/`)\n .pipe(map(result => TournamentTeam.toFront(result)))\n .toPromise();\n }\n\n async getStageTeams(tournamentId: number): Promise<TournamentStageTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stage_teams/`)\n .pipe(map(result => TournamentStageTeam.toFront(result)))\n .toPromise();\n }\n\n async getTeamById(tournamentTeamId: number): Promise<TournamentTeam> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/`)\n .pipe(map(result => TournamentTeam.toFront(result)))\n .toPromise();\n }\n\n async getUserById(userId: number): Promise<TournamentTeamUser> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${userId}/`)\n .pipe(map(result => TournamentTeamUser.toFront(result)))\n .toPromise();\n }\n\n async getUserGames(tournamentUserId: number): Promise<Game[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${tournamentUserId}/games/`)\n .pipe(map(result => Game.toFront(result)))\n .toPromise();\n }\n\n async getBasketballStatistic(filters?: StatisticFilters): Promise<BasketballStatistic[]> {\n let params = new HttpParams();\n if (filters) {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n }\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/basketball_statistic/`, {params}).pipe(\n map(result => BasketballStatistic.toFront(result))\n ).toPromise();\n }\n\n async getVolleyballStatistic(filters?: StatisticFilters): Promise<VolleyballStatistic[]> {\n let params = new HttpParams();\n if (filters) {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n }\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/volleyball_statistic/`, {params}).pipe(\n map(result => VolleyballStatistic.toFront(result))\n ).toPromise();\n }\n\n async getHockeyStatistic(filters?: StatisticFilters): Promise<HockeyStatistic[]> {\n let params = new HttpParams();\n if (filters) {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n }\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/hockey_statistic/`, {params}).pipe(\n map(result => HockeyStatistic.toFront(result))\n ).toPromise();\n }\n\n async getFootballStatistic(filters?: StatisticFilters): Promise<FootballStatistic[]> {\n let params = new HttpParams();\n if (filters) {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n }\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/football_statistic/`, {params}).pipe(\n map(result => FootballStatistic.toFront(result))\n ).toPromise();\n }\n\n async getTournamentTeamUsers(tournamentTeamId: number): Promise<TournamentTeamUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/users/`).pipe(\n map(result => TournamentTeamUser.toFront(result))\n ).toPromise();\n }\n\n async myPermission(tournamentId: number): Promise<LeagueUserPermissions[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/permission/`).pipe(\n map((data: any) => (data.permissions || []).map(item => LeagueUserPermissions[item]))\n ).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Team } from './team';\n\n@ModelInstance({\n mappingFields: {\n valid_users_count: 'validUsersCount',\n invalid_users_count: 'invalidUsersCount',\n has_access: 'hasAccess',\n invite_sent: 'inviteSent',\n already_in_tournament: 'alreadyInTournament'\n }\n})\nexport class TournamentJoinData extends BaseModel {\n validUsersCount: number;\n invalidUsersCount: number;\n hasAccess: boolean;\n inviteSent: boolean;\n alreadyInTournament: boolean;\n\n get usersCount(): number {\n return this.validUsersCount + this.invalidUsersCount;\n }\n\n get valid() {\n return this.hasAccess && !this.inviteSent && !this.alreadyInTournament;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n join_data: 'joinData'\n },\n relation: {\n team: Team,\n joinData: TournamentJoinData\n }\n})\nexport class TournamentJoinTeam extends BaseModel {\n team: Team;\n joinData: TournamentJoinData;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TournamentJoinTeam } from '../models/tournament-join-team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser } from '../models/team-user';\nimport { TournamentTeamUserInvite } from '../models/tournament-team-user-invite';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentJoinApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getTeamsForJoin(tournamentId: number): Promise<TournamentJoinTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams_for_join/`).pipe(\n map(response => TournamentJoinTeam.toFront(response))\n ).toPromise();\n }\n\n async getTeamUsers(teamId: number): Promise<TeamUser[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`)\n .pipe(\n map(data => TeamUser.toFront(data))\n ).toPromise();\n }\n\n async joinTournament(tournamentId: number, teamId: number, invites: TournamentTeamUserInvite[]): Promise<TournamentInvite> {\n const body = {\n team: {id: teamId},\n user_invites: TournamentTeamUserInvite.toBack(invites)\n };\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join/`, body)\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { Game, GameStatuses } from '../models/game';\nimport { Tournament } from '../models/tournament';\nimport { TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { GameMediaFilters } from './media-api';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentSeasonApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<TournamentSeason> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/${alias}/`).pipe(\n map(result => TournamentSeason.toFront(result))\n ).toPromise();\n }\n\n async getTournaments(seasonId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/tournaments/`).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getGames(seasonId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n if (filters.tournamentCourtId) {\n params = params.set('tournament_court_id', filters.tournamentCourtId.toString());\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getEvents(seasonId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/events/`,\n {params, observe: 'response'}\n )\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n })))\n .toPromise();\n }\n\n async getGameMedia(seasonId: number, page: number, size: number, filters: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters) {\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.playoffId) {\n params = params.set('playoff_id', filters.playoffId.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n }\n\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/game_media/`,\n {observe: 'response', params})\n .pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getTeams(seasonId: number): Promise<TournamentTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/teams/`).pipe(\n map(result => TournamentTeam.toFront(result))\n ).toPromise();\n }\n\n async getGamesStages(seasonId: number): Promise<GameTimelineStages> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games_stages/`)\n .pipe(map(data => GameTimelineStages.toFront(data)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { map } from 'rxjs/operators';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { Playoff } from '../models/playoff';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentStageApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(id: number): Promise<TournamentStage> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${id}/`)\n .pipe(map(result => TournamentStage.toFront(result)))\n .toPromise();\n }\n\n async getGroups(stageId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/groups/`)\n .pipe(map(result => TournamentGroup.toFront(result)))\n .toPromise();\n }\n\n async getPlayoffs(stageId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/playoff/`)\n .pipe(map(result => Playoff.toFront(result)))\n .toPromise();\n }\n\n async getTeams(stageId: number): Promise<TournamentStageTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/teams/`)\n .pipe(map(result => TournamentStageTeam.toFront(result)))\n .toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n edit: 'edit',\n personal_data: 'personalData',\n teams: 'teams',\n statistic: 'statistic',\n games: 'games'\n }\n})\nexport class UserAccess extends BaseModel {\n edit: boolean;\n personalData: boolean;\n teams: boolean;\n statistic: boolean;\n games: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\n\nexport enum VolleyballGameLogType {\n enter_game = 1,\n exit_game,\n remove_game,\n serve_hit,\n serve_fault,\n serve_ace,\n stuff_block,\n block_fault,\n block_rebound,\n attack_spike,\n attack_fault,\n attack_shot,\n receive,\n receive_fault,\n excellent_receive,\n point,\n fault,\n serve_receive,\n serve_receive_fault,\n excellent_serve_receive,\n timeout,\n yellow_card,\n}\n\nexport const SCORE_LOG_TYPES = [\n VolleyballGameLogType.serve_ace, VolleyballGameLogType.stuff_block,\n VolleyballGameLogType.attack_spike, VolleyballGameLogType.point\n];\nexport const FAULT_LOG_TYPES = [\n VolleyballGameLogType.serve_fault, VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.block_fault, VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.fault, VolleyballGameLogType.serve_receive_fault\n];\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n log_type: 'logType',\n set: 'set',\n rally: 'rally',\n position: 'position',\n team_id: 'teamId',\n datetime: 'datetime',\n },\n relation: {\n logType: enumField(VolleyballGameLogType),\n datetime: DateTimeField\n }\n})\nexport class VolleyballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n active = true;\n gameId: number;\n gameUserId: number;\n logType: VolleyballGameLogType;\n set: number;\n rally: number;\n position: number;\n teamId: number;\n datetime: Date;\n gameUser: GameUser;\n\n compare(model: VolleyballGameLog): number {\n if (this.rally === model.rally && this.set === model.set) {\n if (this.datetime && model.datetime) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n } else {\n return this.id < model.id ? 1 : -1;\n }\n }\n if (this.set === model.set) {\n return this.rally < model.rally ? 1 : -1;\n }\n return this.set < model.set ? 1 : -1;\n }\n\n isScoreType() {\n return SCORE_LOG_TYPES.includes(this.logType);\n }\n\n isFaultType() {\n return FAULT_LOG_TYPES.includes(this.logType);\n }\n\n isServe() {\n return [\n VolleyballGameLogType.serve_hit,\n VolleyballGameLogType.serve_ace,\n VolleyballGameLogType.serve_fault\n ].includes(this.logType);\n }\n\n isAttack() {\n return [\n VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.attack_spike,\n VolleyballGameLogType.attack_shot\n ].includes(this.logType);\n }\n\n isReceive() {\n return [\n VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.receive,\n VolleyballGameLogType.excellent_receive\n ].includes(this.logType);\n }\n\n isServeReceive() {\n return [\n VolleyballGameLogType.serve_receive_fault,\n VolleyballGameLogType.serve_receive,\n VolleyballGameLogType.excellent_serve_receive\n ].includes(this.logType);\n }\n\n isBlock() {\n return [\n VolleyballGameLogType.block_fault,\n VolleyballGameLogType.block_rebound,\n VolleyballGameLogType.stuff_block\n ].includes(this.logType);\n }\n\n isEnterExit() {\n return [\n VolleyballGameLogType.enter_game,\n VolleyballGameLogType.exit_game,\n VolleyballGameLogType.timeout\n ].includes(this.logType);\n }\n\n isComboType() {\n return ![\n VolleyballGameLogType.receive,\n VolleyballGameLogType.serve_receive\n ].includes(this.logType);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { User } from '../models/user';\nimport { File } from '../models/file';\nimport { map } from 'rxjs/operators';\nimport { UserProfile } from '../models/user-profile';\nimport { BasketballProfile } from '../models/basketball-profile';\nimport { VolleyballProfile } from '../models/volleyball-profile';\nimport { Team } from '../models/team';\nimport { TeamInvite } from '../models/team-invite';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { GameInvite } from '../models/game-invite';\nimport { TeamEvent } from '../models/team-event';\nimport { UserAccess } from '../models/user-access';\nimport { UserPermission } from '../models/user-permission';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class UserApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCurrentUser(): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/`)\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getUserById(userId: number): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`)\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getAccess(userId?: number): Promise<UserAccess> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/access/`)\n .pipe(map(data => UserAccess.toFront(data)))\n .toPromise();\n }\n\n async updateUser(userId: number, data: any): Promise<User> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`, User.toBack(data))\n .pipe(map(result => User.toFront(result)))\n .toPromise();\n }\n\n async updateUserPhoto(file: any, filename?: string): Promise<File> {\n const formData = new FormData();\n formData.append('file', file, filename);\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/photo/`, formData)\n .pipe(map(data => File.toFront(data)))\n .toPromise();\n }\n\n async changePassword(userId: number, oldPassword: string, password: string, passwordConfirm: string): Promise<any> {\n const payload = {\n old_password: oldPassword,\n password,\n password_confirm: passwordConfirm\n };\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_password/`, payload)\n .toPromise();\n }\n\n async changeEmail(userId: number, email: string, password: string): Promise<any> {\n const payload = {email, password};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email/`, payload)\n .toPromise();\n }\n\n async changeEmailConfirm(userId, email: string, password: string, token: number): Promise<any> {\n const payload = {email, password, token};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email_confirm/`, payload)\n .toPromise();\n }\n\n async getUserProfile(userId: number): Promise<UserProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/profile/`)\n .pipe(map(data => UserProfile.toFront(data)))\n .toPromise();\n }\n\n async getBasketballProfile(userId: number): Promise<BasketballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/basketball_profile/`)\n .pipe(map(data => BasketballProfile.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballProfile(userId: number): Promise<VolleyballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_profile/`)\n .pipe(map(data => VolleyballProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserProfile(userProfile: UserProfile): Promise<UserProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userProfile.userId}/profile/`, UserProfile.toBack(userProfile))\n .pipe(map(data => UserProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserBasketballProfile(basketballProfile: BasketballProfile): Promise<BasketballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${basketballProfile.userId}/basketball_profile/`, BasketballProfile.toBack(basketballProfile))\n .pipe(map(data => BasketballProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserVolleyballProfile(volleyballProfile: VolleyballProfile): Promise<VolleyballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${volleyballProfile.userId}/volleyball_profile/`, VolleyballProfile.toBack(volleyballProfile))\n .pipe(map(data => VolleyballProfile.toFront(data)))\n .toPromise();\n }\n\n async getUserPermissions(userId?: number): Promise<UserPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/permission/`)\n .pipe(map(data => UserPermission.toFront(data)))\n .toPromise();\n }\n\n async updateUserPermission(data: any): Promise<UserPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/current/permission/`, UserPermission.toBack(data))\n .pipe(map(result => UserPermission.toFront(result)))\n .toPromise();\n }\n\n async getTeams(userId: number): Promise<Team[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/teams/`)\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getInvites(): Promise<TeamInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/`)\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/accept/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async declineInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/decline/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async getStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getStreetballStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/streetball_statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballStatistic(userId: number): Promise<VolleyballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_statistics/`)\n .pipe(map(data => VolleyballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getGames(userId: number): Promise<Game[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/games/`)\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async getGameInvites(): Promise<GameInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/`)\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/accept/`, {})\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async declineGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/decline/`, {})\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async searchUsers(query: string): Promise<User[]> {\n const params = (new HttpParams()).set('search', query);\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/`, {params})\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async setWizardShowed(wizard: string): Promise<User> {\n return this.httpClient\n .put(`${this.configService.get('apiUrl')}/api/v1/user/current/wizards/`, {wizard})\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getTeamEvents(userId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/team_events/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook, BaseModel } from './util';\nimport { VolleyballStatistic } from './volleyball-statistic';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam',\n },\n relation: {\n team: VolleyballStatistic,\n competitorTeam: VolleyballStatistic,\n }\n})\nexport class VolleyballGameTeamStatistic extends BaseModel {\n team: VolleyballStatistic;\n competitorTeam: VolleyballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n serve_hits: 'serveHits',\n serve_faults: 'serveFaults',\n serve_aces: 'serveAces',\n stuff_blocks: 'stuffBlocks',\n block_faults: 'blockFaults',\n block_rebounds: 'blockRebounds',\n attack_spikes: 'attackSpikes',\n attack_faults: 'attackFaults',\n attack_shots: 'attackShots',\n receives: 'receives',\n receive_faults: 'receiveFaults',\n excellent_receives: 'excellentReceives',\n serve_receives: 'serveReceives',\n serve_receive_faults: 'serveReceiveFaults',\n excellent_serve_receives: 'excellentServeReceives',\n points: 'points',\n faults: 'faults',\n yellow_cards: 'yellowCards',\n }\n})\nexport class VolleyballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n points: number;\n faults: number;\n yellowCards: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get attacks(): number {\n return this.attackSpikes + this.attackShots;\n }\n\n get blocks(): number {\n return this.stuffBlocks + this.blockRebounds;\n }\n\n get totalReceives(): number {\n return this.receives + this.excellentReceives;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Game } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { GameUser } from '../models/game-user';\nimport { VolleyballGameTeamStatistic } from '../models/volleyball-game-team-statistic';\nimport { VolleyballGameStatistic } from '../models/volleyball-game-statistic';\nimport { VolleyballGameLog } from '../models/volleyball-game-log';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class VolleyballGameApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getUsers(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<VolleyballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/team_statistic/`).pipe(\n map(result => VolleyballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<VolleyballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/user_statistic/`).pipe(\n map(result => VolleyballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<VolleyballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/logs/`).pipe(\n map(result => VolleyballGameLog.toFront(result))\n ).toPromise();\n }\n}\n","import { BasketballGameLogTypes } from '../models/basketball-game-log';\n\nexport const BasketballGameLogTypeLocalization = {\n [BasketballGameLogTypes.enter_game]: 'ÐÑÑ
од на плоÑадкÑ',\n [BasketballGameLogTypes.exit_game]: 'УÑел Ñ Ð¿Ð»Ð¾Ñадки',\n [BasketballGameLogTypes.remove_game]: 'Удаление Ñ Ð¿Ð»Ð¾Ñадки',\n [BasketballGameLogTypes.two_point_attempt]: 'ÐÑоÑок 2 оÑка',\n [BasketballGameLogTypes.three_point_attempt]: 'ÐÑоÑок 3 оÑка',\n [BasketballGameLogTypes.free_throw_attempt]: 'ШÑÑаÑной бÑоÑок',\n [BasketballGameLogTypes.one_point_attempt]: 'ÐÑоÑок 1 оÑко',\n [BasketballGameLogTypes.two_point_made]: '2 оÑка',\n [BasketballGameLogTypes.three_point_made]: '3 оÑка',\n [BasketballGameLogTypes.free_throw_made]: '1 оÑко, ÑÑÑаÑной',\n [BasketballGameLogTypes.one_point_made]: '1 оÑко',\n [BasketballGameLogTypes.assist]: 'ÐеÑедаÑа',\n [BasketballGameLogTypes.block]: 'ÐлокÑоÑ',\n [BasketballGameLogTypes.rebound]: 'ÐодбоÑ',\n [BasketballGameLogTypes.offensive_rebound]: 'ÐÐ¾Ð´Ð±Ð¾Ñ Ð² нападении',\n [BasketballGameLogTypes.defensive_rebound]: 'ÐÐ¾Ð´Ð±Ð¾Ñ Ð² заÑиÑе',\n [BasketballGameLogTypes.steal]: 'ÐеÑеÑ
ваÑ',\n [BasketballGameLogTypes.turnover]: 'ÐоÑеÑÑ',\n [BasketballGameLogTypes.personal_foul]: 'Фол',\n [BasketballGameLogTypes.technical_foul]: 'ТеÑ
ниÑеÑкий Ñол',\n [BasketballGameLogTypes.unsportsmanlike_foul]: 'ÐеÑпоÑÑинÑй Ñол',\n [BasketballGameLogTypes.timeout]: 'ТаймаÑÑ',\n};\n","import { HockeyGameLogTypes } from '../models/hockey-game-log';\n\nexport const HockeyGameLogTypeLocalization = {\n [HockeyGameLogTypes.enter_game]: 'ÐÑÑ
од на плоÑадкÑ',\n [HockeyGameLogTypes.exit_game]: 'УÑел Ñ Ð¿Ð»Ð¾Ñадки',\n [HockeyGameLogTypes.shot_miss]: 'ÐÑоÑок мимо',\n [HockeyGameLogTypes.shot_on_goal]: 'ÐÑоÑок по воÑоÑам',\n [HockeyGameLogTypes.shot_blocked]: 'ÐаблокиÑованнÑй бÑоÑок',\n [HockeyGameLogTypes.goal]: 'Ðол',\n [HockeyGameLogTypes.shootout_attempt]: 'ÐÑÐ»Ð¸Ñ Ð¿ÑомаÑ
',\n [HockeyGameLogTypes.shootout_goal]: 'ÐÑÐ»Ð¸Ñ Ð³Ð¾Ð»',\n [HockeyGameLogTypes.assist]: 'ÐеÑедаÑа',\n [HockeyGameLogTypes.block_shot]: 'ÐлокиÑовка бÑоÑка',\n [HockeyGameLogTypes.minor_penalty]: 'ÐалÑй ÑÑÑаÑ',\n [HockeyGameLogTypes.major_penalty]: 'ÐолÑÑой ÑÑÑаÑ',\n [HockeyGameLogTypes.misconduct_penalty]: 'ÐиÑÑиплинаÑнÑй ÑÑÑаÑ',\n [HockeyGameLogTypes.game_misconduct_penalty]: 'ÐиÑÑиплинаÑнÑй ÑÑÑÐ°Ñ Ð´Ð¾ конÑа игÑÑ',\n [HockeyGameLogTypes.match_penalty]: 'ÐаÑÑ-ÑÑÑаÑ',\n [HockeyGameLogTypes.penalty_shot]: 'ШÑÑаÑной бÑоÑок',\n [HockeyGameLogTypes.face_off_lose]: 'ÐÑоигÑÑÑ Ð² вбÑаÑÑвании',\n [HockeyGameLogTypes.face_off_win]: 'Ðобеда в вбÑаÑÑвании',\n [HockeyGameLogTypes.save]: 'ÐÑÑажен бÑоÑок',\n [HockeyGameLogTypes.timeout]: 'ТаймаÑÑ',\n [HockeyGameLogTypes.penalty_start]: 'ÐаÑало ÑÑÑаÑного вÑемени',\n [HockeyGameLogTypes.penalty_end]: 'ÐÐ¾Ð½ÐµÑ ÑÑÑаÑного вÑемени'\n};\n","import { FootballGameLogTypes } from '../models/football-game-log';\n\nexport const FootballGameLogTypeLocalization = {\n [FootballGameLogTypes.enter_game]: 'ÐÑÑ
од на поле',\n [FootballGameLogTypes.exit_game]: 'УÑел Ñ Ð¿Ð¾Ð»Ñ',\n [FootballGameLogTypes.shot_miss]: 'Ð£Ð´Ð°Ñ Ð¼Ð¸Ð¼Ð¾',\n [FootballGameLogTypes.shot_on_goal]: 'Ð£Ð´Ð°Ñ Ð² ÑÑвоÑ',\n [FootballGameLogTypes.shot_blocked]: 'ÐаблокиÑованнÑй ÑдаÑ',\n [FootballGameLogTypes.goal]: 'Ðол',\n [FootballGameLogTypes.assist]: 'ÐеÑедаÑа',\n [FootballGameLogTypes.penalty_attempt]: 'ÐеналÑÑи пÑомаÑ
',\n [FootballGameLogTypes.penalty_goal]: 'ÐеналÑÑи гол',\n [FootballGameLogTypes.small_penalty_attempt]: '10-меÑÑовÑй пÑомаÑ
',\n [FootballGameLogTypes.small_penalty_goal]: '10-меÑÑовÑй гол',\n [FootballGameLogTypes.block_shot]: 'ÐлокиÑовка ÑдаÑа',\n [FootballGameLogTypes.corner]: 'Угловой',\n [FootballGameLogTypes.free_kick]: 'ШÑÑаÑной ÑдаÑ',\n [FootballGameLogTypes.save]: 'ÐÑÑажен ÑдаÑ',\n [FootballGameLogTypes.penalty_save]: 'ÐÑÑажен пеналÑÑи',\n [FootballGameLogTypes.small_penalty_save]: 'ÐÑÑажен 10 меÑÑовÑй',\n [FootballGameLogTypes.foul]: 'Фол',\n [FootballGameLogTypes.yellow_card]: 'ÐелÑÐ°Ñ ÐºÐ°ÑÑоÑка',\n [FootballGameLogTypes.red_card]: 'ÐÑаÑÐ½Ð°Ñ ÐºÐ°ÑÑоÑка',\n [FootballGameLogTypes.perfect_pass]: 'ÐаÑ',\n [FootballGameLogTypes.loss]: 'ÐоÑеÑÑ',\n [FootballGameLogTypes.steal]: 'ÐеÑеÑ
ваÑ',\n [FootballGameLogTypes.out]: 'ÐÑÑ',\n [FootballGameLogTypes.timeout]: 'ТаймаÑÑ'\n};\n","import { OvertimeTypes } from '../models/tournament';\n\nexport const OvertimeTypeLocalization = {\n [OvertimeTypes.to_score_diff]: 'Ðо ÑазниÑÑ Ð² N мÑÑей',\n [OvertimeTypes.to_score_total]: 'Ðо N оÑков',\n [OvertimeTypes.time]: 'Ðо вÑемени',\n [OvertimeTypes.without_overtime]: 'Ðез овеÑÑайма',\n [OvertimeTypes.to_first_goal]: 'Ðа N минÑÑ Ð´Ð¾ пеÑвой ÑайбÑ',\n [OvertimeTypes.to_first_goal_and_bullitts]: 'Ðа N минÑÑ Ð´Ð¾ пеÑвой ÑÐ°Ð¹Ð±Ñ + бÑллиÑÑ',\n [OvertimeTypes.bullitts]: 'ÐÑллиÑÑ',\n [OvertimeTypes.penalties]: 'ÐеналÑÑи',\n [OvertimeTypes.time_and_penalties]: 'ÐополниÑелÑное вÑÐµÐ¼Ñ + пеналÑÑи'\n};\n","import { TeamUserRole } from '../models/team-user';\n\nexport const TeamUserRoleLocalization = {\n [TeamUserRole.moderator]: 'ÐодеÑаÑоÑ',\n [TeamUserRole.member]: 'ÐолÑзоваÑелÑ',\n [TeamUserRole.admin]: 'ÐладелеÑ',\n};\n","import { GameBasketballPosition, WorkHand } from '../models/basketball-profile';\nimport { GameVolleyballPosition, VolleyballWorkHand } from '../models/volleyball-profile';\nimport { GameHockeyPosition } from '../models/hockey-profile';\nimport { FootballWorkFoot, GameFootballPosition } from '../models/football-profile';\n\nexport const GameBasketballPositionLocalization = {\n [GameBasketballPosition.point_guard]: 'РазÑгÑÑваÑÑий заÑиÑник',\n [GameBasketballPosition.shooting_guard]: 'ÐÑакÑÑÑий заÑиÑник',\n [GameBasketballPosition.small_forward]: 'Ðегкий ÑоÑваÑд',\n [GameBasketballPosition.power_forward]: 'ÐоÑнÑй ÑоÑваÑд',\n [GameBasketballPosition.center]: 'ЦенÑÑовой',\n};\n\nexport const GameBasketballPositionShortLocalization = {\n [GameBasketballPosition.point_guard]: 'PG',\n [GameBasketballPosition.shooting_guard]: 'SG',\n [GameBasketballPosition.small_forward]: 'SF',\n [GameBasketballPosition.power_forward]: 'PF',\n [GameBasketballPosition.center]: 'C',\n};\n\nexport const WorkHandLocalization = {\n [WorkHand.left]: 'ÐеваÑ',\n [WorkHand.right]: 'ÐÑаваÑ'\n};\n\nexport const GameVolleyballPositionLocalization = {\n [GameVolleyballPosition.setter]: 'СвÑзÑÑÑий',\n [GameVolleyballPosition.libero]: 'ÐибеÑо',\n [GameVolleyballPosition.middle_player]: 'ЦенÑÑалÑнÑй блокиÑÑÑÑий',\n [GameVolleyballPosition.receiver_attacker]: 'ÐоигÑовÑик',\n [GameVolleyballPosition.dioganal]: 'ÐиагоналÑнÑй',\n};\n\nexport const GameVolleyballPositionShortLocalization = {\n [GameVolleyballPosition.setter]: 'S',\n [GameVolleyballPosition.libero]: 'L',\n [GameVolleyballPosition.middle_player]: 'MP',\n [GameVolleyballPosition.receiver_attacker]: 'RA',\n [GameVolleyballPosition.dioganal]: 'D',\n};\n\nexport const GameVolleyballPositionShortRuLocalization = {\n [GameVolleyballPosition.setter]: 'ÑвÑз.',\n [GameVolleyballPosition.libero]: 'либеÑо',\n [GameVolleyballPosition.middle_player]: 'блок.',\n [GameVolleyballPosition.receiver_attacker]: 'доигÑ.',\n [GameVolleyballPosition.dioganal]: 'диаг.',\n};\n\nexport const VolleyballWorkHandLocalization = {\n [VolleyballWorkHand.left]: 'ÐеваÑ',\n [VolleyballWorkHand.right]: 'ÐÑаваÑ'\n};\n\nexport const GameHockeyPositionLocalization = {\n [GameHockeyPosition.goaltender]: 'ÐÑаÑаÑÑ',\n [GameHockeyPosition.defensemen]: 'ÐаÑиÑник',\n [GameHockeyPosition.forward]: 'ÐападаÑÑий'\n};\n\nexport const GameFootballPositionLocalization = {\n [GameFootballPosition.goalkeeper]: 'ÐÑаÑаÑÑ',\n [GameFootballPosition.defensemen]: 'ÐаÑиÑник',\n [GameFootballPosition.midfielder]: 'ÐолÑзаÑиÑник',\n [GameFootballPosition.forward]: 'ÐападаÑÑий'\n};\n\nexport const FootballWorkFootLocalization = {\n [FootballWorkFoot.left]: 'ÐеваÑ',\n [FootballWorkFoot.right]: 'ÐÑаваÑ',\n [FootballWorkFoot.both]: 'Ðбе'\n};\n","import { VolleyballGameLogType } from '../models/volleyball-game-log';\n\nexport const VolleyballGameLogTypeLocalization = {\n [VolleyballGameLogType.enter_game]: 'ÐÑÑ
од на плоÑадкÑ',\n [VolleyballGameLogType.exit_game]: 'УÑ
од Ñ Ð¿Ð»Ð¾Ñадки',\n [VolleyballGameLogType.remove_game]: 'Удаление Ñ Ð¿Ð»Ð¾Ñадки',\n [VolleyballGameLogType.serve_ace]: 'ÐйÑ',\n [VolleyballGameLogType.serve_hit]: 'ÐодаÑа',\n [VolleyballGameLogType.serve_fault]: 'ÐÑибка на подаÑе',\n [VolleyballGameLogType.attack_spike]: 'РезÑлÑÑаÑÐ¸Ð²Ð½Ð°Ñ Ð°Ñака',\n [VolleyballGameLogType.attack_shot]: 'УÑпеÑÐ½Ð°Ñ Ð°Ñака',\n [VolleyballGameLogType.attack_fault]: 'ÐÑибка аÑаки',\n [VolleyballGameLogType.stuff_block]: 'РезÑлÑÑаÑивнÑй блок',\n [VolleyballGameLogType.block_rebound]: 'УÑпеÑнÑй блок',\n [VolleyballGameLogType.block_fault]: 'ÐÑибка на блоке',\n [VolleyballGameLogType.excellent_receive]: 'ÐÑлиÑнÑй пÑием',\n [VolleyballGameLogType.receive]: 'ÐÑием',\n [VolleyballGameLogType.receive_fault]: 'ÐÑибка на пÑиеме',\n [VolleyballGameLogType.serve_receive]: 'ÐÑием подаÑи',\n [VolleyballGameLogType.excellent_serve_receive]: 'ÐÑлиÑнÑй пÑием подаÑи',\n [VolleyballGameLogType.serve_receive_fault]: 'ÐÑибка пÑиема подаÑи',\n [VolleyballGameLogType.point]: 'ÐÑко',\n [VolleyballGameLogType.fault]: 'ÐÑибка',\n [VolleyballGameLogType.timeout]: 'ТаймаÑÑ',\n [VolleyballGameLogType.yellow_card]: 'ÐÑедÑпÑеждение',\n};\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n files: 'files',\n key_code: 'keyCode',\n },\n relation: {\n files: listField(File)\n }\n})\nexport class LeaguePlaylist extends BaseModel {\n id: number;\n name: string;\n files: File[];\n keyCode: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { Subject } from 'rxjs/internal/Subject';\nimport { ReplaySubject } from 'rxjs/internal/ReplaySubject';\n\nimport * as Centrifuge from 'centrifuge';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ConfigService } from './config.service';\n\ninterface CentrifugoConfig {\n user: string;\n timestamp: string;\n token: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class CentrifugoService {\n private channels$: { [key: string]: Subject<any> } = {};\n private subscriptions: { [key: string]: any } = {};\n private centrifuge;\n private initializeEngineSubject: ReplaySubject<boolean>;\n private connectedSubject = new BehaviorSubject<boolean>(false);\n\n get connected$(): Observable<boolean> {\n return this.connectedSubject;\n }\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) { }\n\n listen(channel): Observable<any> {\n if (channel in this.channels$) {\n return this.channels$[channel];\n }\n\n this.channels$[channel] = new Subject<any>();\n const subscription = this.connect().subscribe(connected => {\n this.subscriptions[channel] = this.addEngineSubscription(channel);\n setTimeout(() => {\n subscription.unsubscribe();\n });\n });\n\n return this.channels$[channel];\n }\n\n unsubscribe(channel): void {\n if (this.subscriptions[channel]) {\n this.subscriptions[channel].unsubscribe();\n delete this.subscriptions[channel];\n }\n if (this.channels$[channel]) {\n this.channels$[channel].complete();\n delete this.channels$[channel];\n }\n }\n\n connect(): Observable<boolean> {\n if (!this.initializeEngineSubject) {\n this.initializeEngineSubject = new ReplaySubject(1);\n\n this.httpClient.get<CentrifugoConfig>(`${this.configService.get('apiUrl')}/api/v1/centrifugo/`)\n .subscribe(config => {\n this.initializeEngine({\n url: this.configService.get('centrifugoUrl'),\n user: config.user,\n timestamp: config.timestamp,\n token: config.token,\n transports: ['websocket']\n });\n this.centrifuge.connect();\n this.centrifuge.on('connect', () => {\n this.initializeEngineSubject.next(true);\n this.connectedSubject.next(true);\n });\n this.centrifuge.on('disconnect', () => {\n this.connectedSubject.next(false);\n });\n });\n }\n\n return this.initializeEngineSubject;\n }\n\n publish(channel: string, message: any): Observable<any> {\n return new Observable<any>(observer => {\n this.connect().subscribe(() => {\n if (!this.subscriptions[channel]) {\n this.subscriptions[channel] = this.addEngineSubscription(channel);\n }\n this.subscriptions[channel].publish(message).then(res => {\n observer.next(res);\n observer.complete();\n }, error => {\n throw error;\n });\n });\n });\n }\n\n disconnect(): void {\n this.centrifuge.disconnect();\n this.initializeEngineSubject = undefined;\n this.channels$ = {};\n this.subscriptions = {};\n }\n\n private initializeEngine(config: {\n url: string,\n user: string,\n timestamp: string,\n token: string,\n transports: string[]\n }): void {\n this.centrifuge = new Centrifuge(config);\n }\n\n private addEngineSubscription(channel: string): Observable<any> {\n return this.centrifuge.subscribe(channel, this.resolveMessage.bind(this));\n }\n\n private resolveMessage(response: any): void {\n const channel = response.channel;\n if (!this.channels$[channel]) {\n return;\n }\n\n this.channels$[channel].next(response.data);\n }\n}\n","import { ModelInterface } from '../models/util';\n\nexport class StorageEngineField {\n defaultValue: any;\n\n constructor(defaultValue?: any, protected modelClass?: ModelInterface) {\n this.defaultValue = defaultValue;\n }\n\n toFront(value: any): any {\n if (this.modelClass) {\n return this.modelClass.toFront(value);\n }\n return value;\n }\n\n toBack(value: any): any {\n if (this.modelClass) {\n return this.modelClass.toBack(value);\n }\n return value;\n }\n}\n\nexport abstract class StorageEngine {\n constructor(protected name: string, protected fields: {[key: string]: StorageEngineField}) {\n }\n\n addField(key: string, field: StorageEngineField): void {\n this.fields[key] = field;\n }\n\n save(key: string, value: any): void {\n if (!this.fields[key]) {\n return;\n }\n this.setItem(`${this.name}_${key}`, this.fields[key].toBack(value));\n }\n\n get(key: string): any {\n if (!this.fields[key]) {\n return;\n }\n let value = this.getItem(`${this.name}_${key}`);\n if (value === null) {\n value = this.fields[key].defaultValue;\n }\n if (value === null || value === undefined) {\n return value;\n }\n return this.fields[key].toFront(value);\n }\n\n clear(): void {\n for (const field of Object.keys(this.fields)) {\n this.removeItem(field);\n }\n }\n\n protected getItem(key: string): any {\n throw new Error(`Function getItem for store engine ${typeof this} not implemented`);\n }\n\n protected setItem(key: string, value: any): any {\n throw new Error(`Function setItem for store engine ${typeof this} not implemented`);\n }\n\n protected removeItem(key: string): void {\n throw new Error(`Function deleteItem for store engine ${typeof this} not implemented`);\n }\n}\n","import { StorageEngine } from './storage-engine';\n\nexport class LocalStorageEngine extends StorageEngine {\n protected setItem(key: string, value: any) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n protected getItem(key: string): any {\n try {\n return JSON.parse(localStorage.getItem(key));\n } catch (e) {\n return;\n }\n }\n\n protected removeItem(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","export function getCookie(name: string): string {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n return parts.pop().split(';').shift();\n }\n return null;\n}\n","export interface LinkFavicon {\n rel: string;\n sizes?: string;\n href: string;\n type?: string;\n color?: string;\n}\n\nexport function getIconsData(folder: string): LinkFavicon[] {\n return [\n {rel: 'apple-touch-icon', sizes: '180x180', href: `/assets/favicon/${folder}apple-touch-icon.png`},\n {rel: 'icon', type: 'image/png', sizes: '32x32', href: `/assets/favicon/${folder}favicon-32x32.png`},\n {rel: 'icon', type: 'image/png', sizes: '16x16', href: `/assets/favicon/${folder}favicon-16x16.png`},\n {rel: 'shortcut icon', href: `/assets/favicon/${folder}favicon.ico`},\n {rel: 'manifest', href: `/assets/favicon/${folder}site.webmanifest`},\n {rel: 'mask-icon', href: `/assets/favicon/${folder}safari-pinned-tab.svg`, color: '#ff0000'}\n ];\n}\n\nexport function changeFavicons(document: Document, leagueAlias: string): void {\n let folder = '';\n if (leagueAlias === 'ablmoscow') {\n folder = 'abl/';\n }\n const data = getIconsData(folder);\n for (const item of data) {\n const link = document.createElement('link');\n for (const key of Object.keys(item)) {\n link.setAttribute(key, item[key]);\n }\n document.head.appendChild(link);\n }\n}\n","import { Inject, Injectable, Injector, PLATFORM_ID } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { getCookie } from './utils/cookie';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable()\nexport class HttpCookieInterceptor implements HttpInterceptor {\n private isBrowser = isPlatformBrowser(this.platformId);\n\n constructor(\n private injector: Injector,\n @Inject(PLATFORM_ID) private platformId: string,\n ) {\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (!this.isBrowser) {\n return next.handle(req);\n }\n req = req.clone({withCredentials: true});\n const csrf = getCookie('csrftoken');\n if (csrf) {\n req = req.clone({\n setHeaders: {'X-CSRFToken': csrf}\n });\n }\n return next.handle(req);\n }\n}\n","import {\n ɵComponentType as ComponentType,\n ɵDirectiveType as DirectiveType,\n ɵComponentDef as ComponentDef,\n ɵDirectiveDef as DirectiveDef\n} from '@angular/core';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Subject } from 'rxjs/internal/Subject';\n\nexport interface OnDestroyLike {\n ngOnDestroy(): void;\n [key: string]: any;\n}\n\nexport function componentDestroyed(component: OnDestroyLike): Observable<void> {\n if ((component.constructor as any).__componentDestroyed$) {\n return (component.constructor as any).__componentDestroyed$;\n }\n throw new Error('Use @UntilDestroy decorator in class');\n}\n\nexport function UntilDestroy(cmpType: any) {\n const def = getDef(cmpType as any);\n const original = (def as any).onDestroy;\n cmpType.__componentDestroyed$ = new Subject<void>();\n (def as any).onDestroy = function() {\n cmpType.__componentDestroyed$.next();\n cmpType.__componentDestroyed$.complete();\n original.apply(this);\n };\n}\n\nfunction getDef<T>(\n type: DirectiveType<T> | ComponentType<T>\n): DirectiveDef<T> | ComponentDef<T> {\n return (type as ComponentType<T>).ɵcmp || (type as DirectiveType<T>).ɵdir;\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\nimport { debounceTime, delay, map, switchMap } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\nexport interface CheckEmailServiceInterface {\n checkEmail(value: string, selfCheck: boolean): Observable<boolean>;\n}\n\nexport const minLengthArrayValidator = (minLength: number) => {\n return (c: AbstractControl) => {\n return c.value.length < minLength\n ? {minLengthArray: {valid: false}}\n : null;\n };\n};\n\nexport const validatePhone = (control: AbstractControl) => {\n if (!control.value) {\n return null;\n }\n const value = `${control.value}`.replace(/\\D/gi, '');\n return value.length === 11 ? null : {invalidPhone: {valid: false}};\n};\n\nexport const validateDate = (control: AbstractControl) => {\n const re = /\\d{2}\\.\\d{2}\\.\\d{4}/gi;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidDate: {valid: false}};\n};\n\nexport const validateEmail = (authService: CheckEmailServiceInterface, selfCheck = true, ignore = []) => {\n const subject = of(null).pipe(\n delay(500)\n );\n return (control: AbstractControl) => {\n if (ignore.indexOf(control.value) > -1) {\n return of(null);\n }\n return subject.pipe(\n switchMap(() => authService.checkEmail(control.value, selfCheck).pipe(\n map(valid => valid ? null : {emailTaken: true})\n ))\n );\n };\n};\n\nexport const validateUrl = (control: AbstractControl) => {\n const re = /^(?:http(s)?:\\/\\/)[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$/;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidUrl: true};\n};\n\nexport function fileSizeValidator(maxFileSize: number): ValidatorFn {\n return (control: AbstractControl): {[key: string]: any} | null => {\n if (!control.value) {\n return null;\n }\n };\n}\n","export function getEnumOptions(enumClass): number[] {\n return Object.keys(enumClass)\n .map(v => enumClass[v])\n .filter(v => isNaN(+v) === false)\n .map(v => +v);\n}\n\n","import { captureException } from '@sentry/browser';\n\nexport function handleError(error, force = false, production = true) {\n if (!(error && (error.status === 0 || error.status === 404)) || (force && error.status !== 0)) {\n captureException(error);\n }\n\n if (!production) {\n console.error(error);\n }\n}\n","export function isTouchDevice() {\n const prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\n const mq = (q) => {\n return window.matchMedia(q).matches;\n };\n\n if (('ontouchstart' in window) || (window as any).DocumentTouch && document instanceof (window as any).DocumentTouch) {\n return true;\n }\n\n // include the 'heartz' as a way to have a non matching MQ to help terminate the join\n // https://git.io/vznFH\n const query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\n return mq(query);\n}\n","import { FormGroup } from '@angular/forms';\n\nexport function markFormGroupTouched(formGroup: FormGroup) {\n (Object as any).values(formGroup.controls).forEach(control => {\n control.markAsTouched();\n control.markAsDirty();\n\n if (control instanceof FormGroup) {\n markFormGroupTouched(control);\n } else if (control.controls) {\n control.controls.forEach(c => {\n if (c instanceof FormGroup) {\n markFormGroupTouched(c);\n } else {\n c.markAsTouched();\n c.markAsDirty();\n }\n });\n }\n });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://@mtgame/core/localization/hockey-penalty-types.ts","ng://@mtgame/core/models/util.ts","ng://@mtgame/core/models/file.ts","ng://@mtgame/core/models/sport.ts","ng://@mtgame/core/models/basketball-profile.ts","ng://@mtgame/core/models/user-profile.ts","ng://@mtgame/core/models/city.ts","ng://@mtgame/core/models/volleyball-profile.ts","ng://@mtgame/core/models/hockey-profile.ts","ng://@mtgame/core/models/football-profile.ts","ng://@mtgame/core/models/user.ts","ng://@mtgame/core/models/tournament-season.ts","ng://@mtgame/core/models/team.ts","ng://@mtgame/core/models/organization.ts","ng://@mtgame/core/models/league.ts","ng://@mtgame/core/models/tournament.ts","ng://@mtgame/core/models/volleyball-game-config.ts","ng://@mtgame/core/models/basketball-game-config.ts","ng://@mtgame/core/models/game.ts","ng://@mtgame/core/models/league-court.ts","ng://@mtgame/core/models/media-item.ts","ng://@mtgame/core/models/hockey-game-config.ts","ng://@mtgame/core/models/football-game-config.ts","ng://@mtgame/core/models/team-user.ts","ng://@mtgame/core/models/tournament-group.ts","ng://@mtgame/core/models/tournament-team.ts","ng://@mtgame/core/models/tournament-disqualification.ts","ng://@mtgame/core/models/tournament-team-user.ts","ng://@mtgame/core/models/game-user.ts","ng://@mtgame/core/utils/data.ts","ng://@mtgame/core/models/basketball-game-log.ts","ng://@mtgame/core/storage/store.ts","ng://@mtgame/core/services/base.service.ts","ng://@mtgame/core/services/config.service.ts","ng://@mtgame/core/models/base-statistic.ts","ng://@mtgame/core/models/basketball-statistic.ts","ng://@mtgame/core/models/basketball-game-team-statistic.ts","ng://@mtgame/core/models/basketball-game-statistic.ts","ng://@mtgame/core/models/hockey-game-log.ts","ng://@mtgame/core/api/basketball-game-api.ts","ng://@mtgame/core/models/feedback.ts","ng://@mtgame/core/api/feedback-api.ts","ng://@mtgame/core/api/file-api.ts","ng://@mtgame/core/models/football-game-log.ts","ng://@mtgame/core/models/hockey-game-statistic.ts","ng://@mtgame/core/models/hockey-statistic.ts","ng://@mtgame/core/models/hockey-game-team-statistic.ts","ng://@mtgame/core/api/hockey-game-api.ts","ng://@mtgame/core/models/league-news.ts","ng://@mtgame/core/models/football-game-statistic.ts","ng://@mtgame/core/models/football-statistic.ts","ng://@mtgame/core/models/football-game-team-statistic.ts","ng://@mtgame/core/api/football-game-api.ts","ng://@mtgame/core/models/tournament-event.ts","ng://@mtgame/core/models/league-banner.ts","ng://@mtgame/core/models/league-partner.ts","ng://@mtgame/core/models/poll.ts","ng://@mtgame/core/api/league-api.ts","ng://@mtgame/core/api/league-news-api.ts","ng://@mtgame/core/api/media-api.ts","ng://@mtgame/core/models/game-invite.ts","ng://@mtgame/core/models/team-invite.ts","ng://@mtgame/core/models/team-event-type.ts","ng://@mtgame/core/models/team-event-invite.ts","ng://@mtgame/core/localization/team-event-type.ts","ng://@mtgame/core/models/team-event.ts","ng://@mtgame/core/models/notification.ts","ng://@mtgame/core/models/tournament-team-user-invite.ts","ng://@mtgame/core/models/tournament-invite.ts","ng://@mtgame/core/models/notification-settings.ts","ng://@mtgame/core/models/team-permission.ts","ng://@mtgame/core/api/notification-base-api.ts","ng://@mtgame/core/api/notification-api.ts","ng://@mtgame/core/api/org-notification-api.ts","ng://@mtgame/core/api/reference-api.ts","ng://@mtgame/core/models/team-invite-external.ts","ng://@mtgame/core/models/volleyball-statistic.ts","ng://@mtgame/core/models/tournament-stage.ts","ng://@mtgame/core/models/team-access.ts","ng://@mtgame/core/api/team-api.ts","ng://@mtgame/core/api/team-event-api.ts","ng://@mtgame/core/models/tournament-news.ts","ng://@mtgame/core/models/game-timeline-stages.ts","ng://@mtgame/core/models/playoff.ts","ng://@mtgame/core/utils/array.ts","ng://@mtgame/core/models/league-user.ts","ng://@mtgame/core/models/tournament-stage-team.ts","ng://@mtgame/core/models/user-permission.ts","ng://@mtgame/core/api/tournament-api.ts","ng://@mtgame/core/models/tournament-join-team.ts","ng://@mtgame/core/api/tournament-join-api.ts","ng://@mtgame/core/api/tournament-season-api.ts","ng://@mtgame/core/api/tournament-stage-api.ts","ng://@mtgame/core/models/user-access.ts","ng://@mtgame/core/models/volleyball-game-log.ts","ng://@mtgame/core/api/user-api.ts","ng://@mtgame/core/models/volleyball-game-team-statistic.ts","ng://@mtgame/core/models/volleyball-game-statistic.ts","ng://@mtgame/core/api/volleyball-game-api.ts","ng://@mtgame/core/localization/basketball-game-log-types.ts","ng://@mtgame/core/localization/hockey-game-log-types.ts","ng://@mtgame/core/localization/football-game-log-types.ts","ng://@mtgame/core/localization/overtime-types.ts","ng://@mtgame/core/localization/team-user-role.ts","ng://@mtgame/core/localization/user-profile.ts","ng://@mtgame/core/localization/volleyball-game-log-types.ts","ng://@mtgame/core/models/league-playlist.ts","ng://@mtgame/core/services/centrifugo.service.ts","ng://@mtgame/core/storage/storage-engine.ts","ng://@mtgame/core/storage/local-storage-engine.ts","ng://@mtgame/core/utils/cookie.ts","ng://@mtgame/core/utils/favicon.ts","ng://@mtgame/core/http-cookie.interceptor.ts","ng://@mtgame/core/utils/component-destroyed.ts","ng://@mtgame/core/utils/validators.ts","ng://@mtgame/core/utils/enum.ts","ng://@mtgame/core/utils/errors.ts","ng://@mtgame/core/utils/device.ts","ng://@mtgame/core/utils/form.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","v","op","TypeError","pop","push","__values","o","m","__read","ar","error","__spread","concat","HockeyPenaltyTypes","id","code","title","BaseModel","data","_b","keys","_c","toFront","dto","toBack","enumField","enumClass","isNaN","penaltyTypeField","find","item","listField","modelClass","isArray","DateField","_super","date","Date","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","toISOString","slice","DateTimeField","ModelInstance","config","mappingFields","relation","path","modelType","map","instance","backField","frontField","extractValue","undefined","FileEngine","ToFrontHook","descriptor","args","_i","parseMethod","ToBackHook","keyParts","split","keyParts_1","keyParts_1_1","k","SportTypes","File","file","name","mime_type","size","engine","GameBasketballPosition","WorkHand","Sport","isBasketball","basketball","parentId","isClassicBasketball","classic_basketball","isStreetball","streetball","isVolleyball","volleyball","isClassicVolleyball","classic_volleyball","isBeachVolleyball","beach_volleyball","isHockey","hockey","isIceHockey","ice_hockey","isBallHockey","ball_hockey","isFootball","football","isClassicFootball","classic_football","isMiniFootball","mini_football","sport","parent_id","sub_sports","UserProfile","user_id","height","weight","City","GameVolleyballPosition","VolleyballWorkHand","BasketballProfile","position","work_hand","workHand","GameHockeyPosition","HockeyWorkHand","VolleyballProfile","GameFootballPosition","FootballWorkFoot","HockeyProfile","UserGender","FootballProfile","work_foot","workFoot","TournamentSeasonStatuses","User","user","lastName","firstName","filter","join","substr","birthDate","diff","getTime","Math","floor","last_name","first_name","middle_name","email","phone","birth_date","photo","profile","basketball_profile","volleyball_profile","hockey_profile","football_profile","wizards","city","gender","is_active","basketballProfile","volleyballProfile","hockeyProfile","footballProfile","Team","getEmptyLogoClass","classList","team","logo","owner","users_count","won_games_count","games_count","score_sum","closest_game_datetime","closestGameDatetime","Organization","owner_id","League","socialLinks","link","contact_email","contact_phone","alias","description","social_links","links","organization","tournaments_count","cover","about","TournamentTypes","TournamentStatuses","TournamentGender","BasketballStatisticTypes","VolleyballStatisticTypes","GameTimeTypes","OvertimeTypes","TournamentSeason","preview_image","status","start_date","closed_date","previewImage","startDate","closedDate","VolleyballGameTypes","TournamentSettings","age_from","age_to","max_team_players","max_game_players","type","tours_count","periods_count","period_time","overtime_type","overtime_time","overtime_score","game_type","timeout_count","timeout_time","substitute_count","game_up_to_score","volleyball_score_in_set","volleyball_score_in_last_set","manage_team_application","recruitment_is_open","transfer_is_open","basketball_statistic_type","volleyball_statistic_type","shot_clock_enabled","game_time_type","with_result_table","basketballStatisticType","volleyballStatisticType","gameTimeType","overtimeType","TournamentTeamWinner","team_id","tournament_id","points","Tournament","location","price","regulation_files","settings","league","teams_count","team_winner","team_second","team_third","season","regulationFile","teamWinner","teamSecond","teamThird","BasketballGameConfig","overtime_timeout_count","statistic_type","statisticType","GameStatuses","GameResultTypes","VolleyballGameConfig","gameType","best_of_three","getSetMaxScore","set","setsCount","scoreInLastSet","scoreInSet","score_in_set","score_in_last_set","LeagueCourt","address","league_id","MediaItem","Boolean","videoUrl","original_photo","list_photo","detail_photo","game","tournament","game_id","video_url","video_preview","is_live","originalPhoto","listPhoto","detailPhoto","videoPreview","HockeyGameConfig","FootballGameConfig","TeamUserRole","Game","_this","scoreByPeriod","period","teamScore","competitorTeamScore","closed","competitorTeam","teamId","competitorTeamId","tournament_team_id","competitor_team","competitor_tournament_team_id","competitor_team_id","competitor_team_name","datetime","team_score","competitor_team_score","result_type","playoff_number","tournament_tour","basketball_game_config","volleyball_game_config","hockey_game_config","football_game_config","score_by_period","playoff_stage","tournament_stage_id","tournament_playoff_id","tournament_court","media_count","media_live_count","media","resultType","basketballGameConfig","volleyballGameConfig","hockeyGameConfig","footballGameConfig","tournamentCourt","TeamUser","teamPlayer","role","number","TournamentGroup","TournamentTeam","gamesCount","wonGamesCount","group","final_standing","draw_games_count","last_games_count","last_games_won","missed_sum","score_points_sum","missed_points_sum","games","notifications_count","win_normal_time_games_count","lose_normal_time_games_count","win_overtime_games_count","lose_overtime_games_count","TournamentDisqualification","tournament_team_user_id","date_from","date_to","matches_count","dateFrom","dateTo","TournamentTeamUser","middleName","tournament_team","team_user","disqualified","disqualification","has_changes","rating","tournamentTeam","teamUser","GameUser","tournament_team_user","updated_at","tournamentTeamUser","updatedAt","updateItemInArray","force","checkFunction","isFunction","updateItemsInArray","items","forEach","addItemInArray","atEnd","addItemsInArray","reverse","deleteItemFromArray","functionToCheck","toString","BasketballGameLogTypes","Store","get","getSubject","pipe","save","appendItem","appendItems","prependItem","prependItems","updateItem","updateItems","deleteItem","dispose","complete","clearStorageData","clear","getEngine","BehaviorSubject","BaseService","store","Injectable","providedIn","ConfigService","configData","initialize","_a","Optional","Inject","BasketballStatistic","personalFouls","technicalFouls","unsportsmanlikeFouls","month","win_lose","two_points_made","three_points_made","free_throws_made","one_points_made","two_point_attempts","three_point_attempts","free_throw_attempts","one_point_attempts","two_point_percent","three_point_percent","free_throw_percent","one_point_percent","assists","blocks","rebounds","offensive_rebounds","defensive_rebounds","steals","turnovers","personal_fouls","technical_fouls","unsportsmanlike_fouls","newbie","BaseStatistic","BasketballGameTeamStatistic","BasketballGameStatistic","gameUserId","game_user_id","HockeyGameLogTypes","HockeyAdvantageTypes","BasketballGameLog","active","isPointsType","two_point_made","three_point_made","free_throw_made","one_point_made","indexOf","logType","isReboundType","rebound","offensive_rebound","defensive_rebound","isFoulType","personal_foul","technical_foul","unsportsmanlike_foul","getScore","compare","model","time","minutes","seconds","unique_id","log_type","is_highlight","BasketballGameApi","httpClient","configService","getById","gameId","toPromise","getUsers","getTeamStatistic","getUserStatistic","getLogs","downloadProtocol","fileType","responseType","downloadFibaProtocol","HttpClient","Feedback","theme","message","files","captcha","FeedbackApi","sendFeedback","post","response","sendLeagueFeedback","leagueId","FileApi","upload","fileData","filename","formData","FormData","append","createZipArchive","files_1","files_1_1","FootballGameLogTypes","HockeyGameLog","_penalizedGameUserId","isScoreType","goal","shootout_goal","isPenaltyType","minor_penalty","major_penalty","misconduct_penalty","game_misconduct_penalty","penalty_shot","match_penalty","isAfter","log","advantage","advantage_num","is_goalie","penalty_type","penalized_game_user_id","mutual_penalty","penaltyType","HockeyGameStatistic","evShotsOnGoal","ppShotsOnGoal","shShotsOnGoal","evShotsBlocked","ppShotsBlocked","shShotsBlocked","evShotMisses","ppShotMisses","shShotMisses","ppShots","evShots","shShots","ppGoals","shGoals","evGoals","ppAssists","evAssists","shAssists","faceOffWins","faceOffLosses","shootoutAttempts","shootoutGoals","saves","goalsAgainst","shotsAgainst","round","gameTime","pp_shot_misses","pp_shots_on_goal","pp_shots_blocked","ev_shot_misses","ev_shots_on_goal","ev_shots_blocked","sh_shot_misses","sh_shots_on_goal","sh_shots_blocked","pp_goals","ev_goals","sh_goals","pp_assists","ev_assists","sh_assists","shootout_attempts","shootout_goals","block_shots","face_off_losses","face_off_wins","goals_against","safety_rate","penalty_minutes","game_time","plus_minus","HockeyStatistic","lose_games_count","pp_shots","ev_shots","sh_shots","pp_goals_percent","ev_goals_percent","sh_goals_percent","goals","shot_misses","shots_on_goal","shots_blocked","shots","goals_percent","shots_against","saves_percent","face_offs","face_off_percent","HockeyGameTeamStatistic","HockeyGameApi","format","params","HttpParams","downloadApplication","LeagueNewsType","FootballGameLog","penalty_goal","small_penalty_goal","FootballGameStatistic","shotMisses","shotsOnGoal","shotsBlocked","penaltyGoals","smallPenaltyGoals","totalGoals","penaltyAttempts","smallPenaltyAttempts","penaltySaves","penaltyGoalsAgainst","smallPenaltySaves","smallPenaltyGoalsAgainst","penaltyShotsAgainst","smallPenaltyShotsAgainst","corners","free_kicks","penalty_goals","penalty_attempts","penalty_goals_against","penalty_saves","small_penalty_goals","small_penalty_attempts","small_penalty_goals_against","small_penalty_saves","fouls","yellow_cards","red_cards","perfect_passes","losses","outs","FootballStatistic","shots_on_goal_percent","total_goals","penalty_goals_percent","penalty_shots_against","penalty_saves_percent","small_penalty_goals_percent","small_penalty_shots_against","small_penalty_saves_percent","total_saves","total_goals_against","FootballGameTeamStatistic","FootballGameApi","TournamentEventTypes","LeagueNews","preview_text","detail_text","picture","mobile_picture","is_main","tournaments","video_link","tag","mobilePicture","BannerLocation","TournamentEvent","news","event","LeaguePartner","sort","PollStatuses","LeagueBanner","LeagueApi","getByAlias","getByDomain","domain","getTournaments","getEvents","page","filters","search","tournamentTour","observe","total","headers","getTournamentSeasons","getGames","tournamentStageId","playoffStage","statuses","tournamentCourtId","getSeasons","notClosed","getPartners","getBanners","getCourts","LeagueNewsApi","getLeagueNewsList","text","getMainLeagueNews","getMainLeagueNewsList","getNewsById","newsId","getTournamentNewsList","tournamentId","MediaApi","getMedia","mediaId","getTournamentGameMedia","playoffId","getLeagueGameMedia","getLeagueMedia","mediaType","getGameMediaById","getGameMedia","createZip","mediaIds","downloadMedia","GameInviteStatus","PollVariant","uuid","PollAnswer","answer_uuid","poll_id","Poll","variantsWithAnswers","_variants","_answers","calculateAnswersPercentage","variants","answersByVariant","reduce","acc","answerUuid","variant","percent","a","author","answers","multiple_answer","anonymous","created_at","createdAt","TeamInvite","user_accept","team_accept","updateAt","TeamEventTypes","GameInvite","TeamEventInviteStatuses","TeamEventTypeLocalization","training","other","TeamEvent","eventType","eventCustomName","event_type","event_custom_name","NotificationType","NotificationServiceEnum","TeamEventInvite","team_event_id","team_user_id","TournamentTeamUserInvite","tournament_team_invite_id","accepted","TournamentInvite","teamAccept","organizationAccept","organization_accept","user_invites_count","user_invites","userInvites","NotificationAllowTypes","Notification","initiator","team_invite","poll","game_invite","team_event","team_event_invite","tournament_invite","viewed","protected","service","teamInvite","gameInvite","teamEvent","teamEventInvite","tournamentInvite","TeamPermissionTypes","NotificationSettings","popup","sound","browser","NotificationBaseApi","getCount","apiUrl","getList","markViewed","notificationId","markAllViewed","getNotificationSettings","updateNotificationSettings","NotificationApi","OrgNotificationApi","ReferenceApi","getCities","getSports","TeamInviteExternal","VolleyballStatistic","serve_hits","serve_faults","serve_aces","serve_percent","ace_percent","stuff_blocks","block_faults","block_rebounds","block_percent","attack_spikes","attack_faults","attack_shots","attack_percent","receives","receive_faults","excellent_receives","receive_percent","serve_receives","serve_receive_faults","excellent_serve_receives","serve_receive_percent","faults","TournamentStageStatuses","TeamPermission","players","statistic","polls","events","TeamAccess","can_edit","can_view_users","can_manage_permission","can_change_owner","can_delete","can_manage_invites","can_view_invites","can_manage_polls","can_view_polls","can_answer_poll","can_manage_games","can_view_games","can_view_statistic","can_promote_users","can_edit_users","can_delete_users","can_view_events","can_manage_events","can_view_tournaments","can_manage_tournaments","TeamApi","query","sportId","getTeamAccess","update","values","patch","delete","getPermission","updatePermission","permission","updateUserRole","teamUserId","updateUserNumber","gameNumber","deleteUser","changeOwner","getInvites","sendInvite","acceptInvite","invite","declineInvite","resendInvite","getInvitesExternal","sendInviteExternal","deleteInviteExternal","resendInviteExternal","getPolls","archive","createPoll","getUsersStatistic","getVolleyballStatistic","joinTeam","leaveTeam","createGame","getTeamEvents","createTeamEvent","getTournamentTeams","getTournamentInvites","getTournamentGames","acceptTournamentInvite","inviteId","declineTournamentInvite","registerLazyUser","userData","getLazyUser","updateLazyUser","deleteLazyUser","resendLazyUserEmail","TeamEventApi","getTeamEvent","teamEventId","updateTeamEvent","deleteTeamEvent","getTeamEventInvites","createTeamEventInvite","acceptTeamEventInvite","declineTeamEventInvite","TournamentNews","GameTimelineStageItem","stage_id","playoff_stages_count","GameTimelineStages","current_tour","current_playoff_stage","stages","PlayoffTypes","TournamentStage","generateArray","LeagueUserRoles","LeagueUserPermissions","PlayoffSettings","rounds","final_rounds","third_place_rounds","Playoff","teamsCount","getPlayoffStages","stagesCount","stage","pow","is_official","TournamentStageTeam","received_points","LeagueUser","_role","permissions","UserPermissionTypes","TournamentApi","getNews","getTournamentStages","getPlayoff","getPlayoffGames","getGamesStages","getTeams","getStageTeams","getTeamById","tournamentTeamId","getUserById","userId","getUserGames","tournamentUserId","getBasketballStatistic","per_game","getHockeyStatistic","getFootballStatistic","getTournamentTeamUsers","myPermission","TournamentJoinData","validUsersCount","invalidUsersCount","hasAccess","inviteSent","alreadyInTournament","valid_users_count","invalid_users_count","has_access","invite_sent","already_in_tournament","TournamentJoinTeam","join_data","joinData","TournamentJoinApi","getTeamsForJoin","getTeamUsers","joinTournament","invites","TournamentSeasonApi","seasonId","TournamentStageApi","getGroups","stageId","getPlayoffs","UserAccess","edit","personal_data","teams","VolleyballGameLogType","UserPermission","personalData","UserApi","getCurrentUser","getAccess","updateUser","updateUserPhoto","changePassword","oldPassword","password","passwordConfirm","payload","old_password","password_confirm","changeEmail","changeEmailConfirm","token","getUserProfile","getBasketballProfile","getVolleyballProfile","updateUserProfile","userProfile","updateUserBasketballProfile","updateUserVolleyballProfile","getUserPermissions","updateUserPermission","getStatistics","getStreetballStatistics","getGameInvites","acceptGameInvite","declineGameInvite","searchUsers","setWizardShowed","wizard","put","VolleyballGameTeamStatistic","VolleyballGameStatistic","attackSpikes","attackShots","stuffBlocks","blockRebounds","excellentReceives","SCORE_LOG_TYPES","serve_ace","stuff_block","attack_spike","point","FAULT_LOG_TYPES","serve_fault","attack_fault","block_fault","receive_fault","fault","serve_receive_fault","VolleyballGameLog","rally","includes","isFaultType","isServe","serve_hit","isAttack","attack_shot","isReceive","receive","excellent_receive","isServeReceive","serve_receive","excellent_serve_receive","isBlock","block_rebound","isEnterExit","enter_game","exit_game","timeout","isComboType","VolleyballGameApi","BasketballGameLogTypeLocalization","_a$1","remove_game","two_point_attempt","three_point_attempt","free_throw_attempt","one_point_attempt","assist","block","steal","turnover","HockeyGameLogTypeLocalization","_a$2","shot_miss","shot_on_goal","shot_blocked","shootout_attempt","block_shot","face_off_lose","face_off_win","penalty_start","penalty_end","FootballGameLogTypeLocalization","_a$3","penalty_attempt","small_penalty_attempt","corner","free_kick","penalty_save","small_penalty_save","foul","yellow_card","red_card","perfect_pass","loss","out","OvertimeTypeLocalization","_a$4","to_score_diff","to_score_total","without_overtime","to_first_goal","to_first_goal_and_bullitts","bullitts","penalties","time_and_penalties","TeamUserRoleLocalization","_a$5","moderator","member","admin","GameBasketballPositionLocalization","_a$6","point_guard","shooting_guard","small_forward","power_forward","center","GameBasketballPositionShortLocalization","WorkHandLocalization","left","right","GameVolleyballPositionLocalization","_d","setter","libero","middle_player","receiver_attacker","dioganal","GameVolleyballPositionShortLocalization","_e","GameVolleyballPositionShortRuLocalization","_f","VolleyballWorkHandLocalization","_g","GameHockeyPositionLocalization","_h","goaltender","defensemen","forward","GameFootballPositionLocalization","_j","goalkeeper","midfielder","FootballWorkFootLocalization","_k","both","VolleyballGameLogTypeLocalization","_a$7","LeaguePlaylist","key_code","CentrifugoService","channels$","subscriptions","connectedSubject","listen","channel","Subject","subscription","connect","subscribe","connected","addEngineSubscription","setTimeout","unsubscribe","initializeEngineSubject","ReplaySubject","initializeEngine","url","timestamp","transports","centrifuge","on","publish","Observable","observer","res","disconnect","Centrifuge","resolveMessage","bind","StorageEngineField","defaultValue","StorageEngine","fields","addField","field","setItem","getItem","removeItem","Error","LocalStorageEngine","localStorage","JSON","stringify","parse","getCookie","parts","document","cookie","shift","getIconsData","folder","rel","sizes","href","color","HttpCookieInterceptor","injector","platformId","isBrowser","isPlatformBrowser","intercept","req","handle","clone","withCredentials","csrf","setHeaders","X-CSRFToken","Injector","PLATFORM_ID","cmpType","def","ɵcmp","ɵdir","original","onDestroy","__componentDestroyed$","leagueAlias","data_1","data_1_1","createElement","e_2","setAttribute","head","appendChild","component","maxFileSize","control","array","chunks","chunkLength","ceil","production","captureException","console","prefixes","window","DocumentTouch","q","matchMedia","matches","markFormGroupTouched","formGroup","controls","markAsTouched","markAsDirty","FormGroup","minLength","minLengthArray","valid","test","invalidDate","authService","selfCheck","ignore","subject","of","delay","switchMap","checkEmail","emailTaken","replace","invalidPhone","invalidUrl"],"mappings":";;;;;;;;;;;;;;oFAgBA,IAAIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOA,EAAEM,eAAeD,KAAIN,EAAEM,GAAKL,EAAEK,MACpDN,EAAGC,IAGrB,SAASO,EAAUR,EAAGC,GAEzB,SAASQ,IAAOC,KAAKC,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEY,UAAkB,OAANX,EAAaC,OAAOW,OAAOZ,IAAMQ,EAAGG,UAAYX,EAAEW,UAAW,IAAIH,GAG5E,IAAIK,EAAW,WAQlB,OAPAA,EAAWZ,OAAOa,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAIZ,KADTW,EAAIG,UAAUF,GACOhB,OAAOU,UAAUL,eAAee,KAAKL,EAAGX,KAAIU,EAAEV,GAAKW,EAAEX,IAE9E,OAAOU,IAEKO,MAAMb,KAAMU,YAezB,SAASI,EAAWC,EAAYC,EAAQC,EAAKC,GAChD,IAA2H5B,EAAvH6B,EAAIT,UAAUC,OAAQS,EAAID,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAO1B,OAAO6B,yBAAyBL,EAAQC,GAAOC,EACrH,GAAuB,iBAAZI,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASR,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIV,EAAIO,EAAWJ,OAAS,EAAGH,GAAK,EAAGA,KAASlB,EAAIyB,EAAWP,MAAIY,GAAKD,EAAI,EAAI7B,EAAE8B,GAAKD,EAAI,EAAI7B,EAAE0B,EAAQC,EAAKG,GAAK9B,EAAE0B,EAAQC,KAASG,GAChJ,OAAOD,EAAI,GAAKC,GAAK5B,OAAOgC,eAAeR,EAAQC,EAAKG,GAAIA,EAGzD,SAASK,EAAQC,EAAYC,GAChC,OAAO,SAAUX,EAAQC,GAAOU,EAAUX,EAAQC,EAAKS,IAOpD,SAASE,EAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUC,GAAS,IAAMC,EAAKN,EAAUO,KAAKF,IAAW,MAAOG,GAAKL,EAAOK,IACpF,SAASC,EAASJ,GAAS,IAAMC,EAAKN,EAAiB,MAAEK,IAAW,MAAOG,GAAKL,EAAOK,IACvF,SAASF,EAAKI,GAJlB,IAAeL,EAIaK,EAAOC,KAAOT,EAAQQ,EAAOL,QAJ1CA,EAIyDK,EAAOL,MAJhDA,aAAiBN,EAAIM,EAAQ,IAAIN,GAAE,SAAUG,GAAWA,EAAQG,OAITO,KAAKR,EAAWK,GAClGH,GAAMN,EAAYA,EAAUnB,MAAMgB,EAASC,GAAc,KAAKS,WAI/D,SAASM,EAAYhB,EAASiB,GACjC,IAAsGC,EAAGC,EAAG1C,EAAG2C,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAP9C,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAO+C,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEV,KAAMgB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BT,EAAES,OAAOC,UAAY,WAAa,OAAO3D,OAAUiD,EACvJ,SAASM,EAAK9C,GAAK,OAAO,SAAUmD,GAAK,OACzC,SAAcC,GACV,GAAId,EAAG,MAAM,IAAIe,UAAU,mCAC3B,KAAOZ,GAAG,IACN,GAAIH,EAAI,EAAGC,IAAM1C,EAAY,EAARuD,EAAG,GAASb,EAAU,OAAIa,EAAG,GAAKb,EAAS,SAAO1C,EAAI0C,EAAU,SAAM1C,EAAEM,KAAKoC,GAAI,GAAKA,EAAET,SAAWjC,EAAIA,EAAEM,KAAKoC,EAAGa,EAAG,KAAKlB,KAAM,OAAOrC,EAE3J,OADI0C,EAAI,EAAG1C,IAAGuD,EAAK,CAAS,EAARA,EAAG,GAAQvD,EAAE+B,QACzBwB,EAAG,IACP,KAAK,EAAG,KAAK,EAAGvD,EAAIuD,EAAI,MACxB,KAAK,EAAc,OAAXX,EAAEC,QAAgB,CAAEd,MAAOwB,EAAG,GAAIlB,MAAM,GAChD,KAAK,EAAGO,EAAEC,QAASH,EAAIa,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKX,EAAEI,IAAIS,MAAOb,EAAEG,KAAKU,MAAO,SACxC,QACI,KAAMzD,EAAI4C,EAAEG,MAAM/C,EAAIA,EAAEK,OAAS,GAAKL,EAAEA,EAAEK,OAAS,KAAkB,IAAVkD,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEX,EAAI,EAAG,SACjG,GAAc,IAAVW,EAAG,MAAcvD,GAAMuD,EAAG,GAAKvD,EAAE,IAAMuD,EAAG,GAAKvD,EAAE,IAAM,CAAE4C,EAAEC,MAAQU,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYX,EAAEC,MAAQ7C,EAAE,GAAI,CAAE4C,EAAEC,MAAQ7C,EAAE,GAAIA,EAAIuD,EAAI,MAC7D,GAAIvD,GAAK4C,EAAEC,MAAQ7C,EAAE,GAAI,CAAE4C,EAAEC,MAAQ7C,EAAE,GAAI4C,EAAEI,IAAIU,KAAKH,GAAK,MACvDvD,EAAE,IAAI4C,EAAEI,IAAIS,MAChBb,EAAEG,KAAKU,MAAO,SAEtBF,EAAKf,EAAKlC,KAAKiB,EAASqB,GAC1B,MAAOV,GAAKqB,EAAK,CAAC,EAAGrB,GAAIQ,EAAI,EAAI,QAAWD,EAAIzC,EAAI,EACtD,GAAY,EAARuD,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAExB,MAAOwB,EAAG,GAAKA,EAAG,QAAK,EAAQlB,MAAM,GArB9BL,CAAK,CAAC7B,EAAGmD,MAkCtD,SAASK,EAASC,GACrB,IAAI3D,EAAsB,mBAAXmD,QAAyBA,OAAOC,SAAUQ,EAAI5D,GAAK2D,EAAE3D,GAAIC,EAAI,EAC5E,GAAI2D,EAAG,OAAOA,EAAEvD,KAAKsD,GACrB,GAAIA,GAAyB,iBAAbA,EAAEvD,OAAqB,MAAO,CAC1C4B,KAAM,WAEF,OADI2B,GAAK1D,GAAK0D,EAAEvD,SAAQuD,OAAI,GACrB,CAAE7B,MAAO6B,GAAKA,EAAE1D,KAAMmC,MAAOuB,KAG5C,MAAM,IAAIJ,UAAUvD,EAAI,0BAA4B,mCAGjD,SAAS6D,EAAOF,EAAGzD,GACtB,IAAI0D,EAAsB,mBAAXT,QAAyBQ,EAAER,OAAOC,UACjD,IAAKQ,EAAG,OAAOD,EACf,IAAmB9C,EAAYoB,EAA3BhC,EAAI2D,EAAEvD,KAAKsD,GAAOG,EAAK,GAC3B,IACI,WAAc,IAAN5D,GAAgBA,KAAM,MAAQW,EAAIZ,EAAE+B,QAAQI,MAAM0B,EAAGL,KAAK5C,EAAEiB,OAExE,MAAOiC,GAAS9B,EAAI,CAAE8B,MAAOA,GACjC,QACQ,IACQlD,IAAMA,EAAEuB,OAASwB,EAAI3D,EAAU,SAAI2D,EAAEvD,KAAKJ,GAE1D,QAAkB,GAAIgC,EAAG,MAAMA,EAAE8B,OAE7B,OAAOD,EAGJ,SAASE,IACZ,IAAK,IAAIF,EAAK,GAAI7D,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAC3C6D,EAAKA,EAAGG,OAAOJ,EAAO1D,UAAUF,KACpC,OAAO6D,MClJEI,EAAqB,CAChC,CAACC,GAAI,EAAGC,KAAM,QAASC,MAAO,oBAC9B,CAACF,GAAI,EAAGC,KAAM,WAAYC,MAAO,0BACjC,CAACF,GAAI,EAAGC,KAAM,QAASC,MAAO,iBAC9B,CAACF,GAAI,EAAGC,KAAM,QAASC,MAAO,eAC9B,CAACF,GAAI,EAAGC,KAAM,OAAQC,MAAO,cAC7B,CAACF,GAAI,EAAGC,KAAM,QAASC,MAAO,iBAC9B,CAACF,GAAI,EAAGC,KAAM,QAASC,MAAO,gBAC9B,CAACF,GAAI,EAAGC,KAAM,OAAQC,MAAO,YAC7B,CAACF,GAAI,EAAGC,KAAM,OAAQC,MAAO,wBAC7B,CAACF,GAAI,GAAIC,KAAM,SAAUC,MAAO,iCAChC,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,SAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,kBAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,iBAC/B,CAACF,GAAI,GAAIC,KAAM,WAAYC,MAAO,6BAClC,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,oBAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,sBAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,yBAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,6BAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,gCAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,gBAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,0BAC/B,CAACF,GAAI,GAAIC,KAAM,KAAMC,MAAO,cAC5B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,sBAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,gCAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,wBAC/B,CAACF,GAAI,GAAIC,KAAM,SAAUC,MAAO,sBAChC,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,8CAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,qBAC/B,CAACF,GAAI,GAAIC,KAAM,OAAQC,MAAO,aAC9B,CAACF,GAAI,GAAIC,KAAM,SAAUC,MAAO,UAChC,CAACF,GAAI,GAAIC,KAAM,OAAQC,MAAO,YAC9B,CAACF,GAAI,GAAIC,KAAM,OAAQC,MAAO,YAC9B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,2BAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,yCAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,eAC/B,CAACF,GAAI,GAAIC,KAAM,MAAOC,MAAO,aAC7B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,kBAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,kBAC/B,CAACF,GAAI,GAAIC,KAAM,SAAUC,MAAO,gBAChC,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,gBAC/B,CAACF,GAAI,GAAIC,KAAM,UAAWC,MAAO,sBACjC,CAACF,GAAI,GAAIC,KAAM,SAAUC,MAAO,gBAChC,CAACF,GAAI,GAAIC,KAAM,SAAUC,MAAO,eAChC,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,cAC/B,CAACF,GAAI,GAAIC,KAAM,OAAQC,MAAO,QAC9B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,kCAC/B,CAACF,GAAI,GAAIC,KAAM,QAASC,MAAO,+BC5B/B,SAAAC,EAAYC,WACV,GAAIA,MACF,IAAkB,IAAAC,EAAAd,EAAAzE,OAAOwF,KAAKF,IAAKG,EAAAF,EAAAxC,QAAA0C,EAAAtC,KAAAsC,EAAAF,EAAAxC,OAAE,CAAhC,IAAMtB,EAAGgE,EAAA5C,MACZrC,KAAKiB,GAAO6D,EAAK7D,sGAYzB,OAPS4D,EAAAK,QAAP,SAAeC,KAIRN,EAAAO,OAAP,SAAcD,KAGhBN,cAMgBQ,EAAUC,GACxB,MAAO,CACLJ,QAAS,SAAC7C,GACR,OAAIkD,OAAOlD,GACFiD,EAAUjD,GAEVA,GAGX+C,OAAQ,SAAC/C,GACP,OAAIkD,OAAOlD,GACFA,EAEAiD,EAAUjD,cAMTmD,IACd,MAAO,CACLN,QAAS,SAACJ,GACR,OAAKA,EAGe,iBAATA,EACFA,EAEFL,EAAmBgB,MAAK,SAAAC,GAAQ,OAAAA,EAAKhB,KAAOI,KAL1C,MAOXM,OAAQ,SAACN,GACP,OAAKA,EAGe,iBAATA,EACFA,EAAKJ,GAEPI,EALE,gBAUCa,EAAUC,GACxB,MAAO,CACLV,QAAS,SAAC7C,GACR,OAAK1C,MAAMkG,QAAQxD,GAGZuD,EAAWV,QAAQ7C,GAFjB,IAIX+C,OAAQ,SAAC/C,GACP,OAAK1C,MAAMkG,QAAQxD,GAGZuD,EAAWR,OAAO/C,GAFhB,uBAOf,SAAAyD,mDAuBA,OAvB+BhG,EAAAgG,EAAAC,GACtBD,EAAAZ,QAAP,SAAec,GACb,OAAIA,EACK,IAAIC,KAAKD,QAEhB,GAGGF,EAAAV,OAAP,SAAcY,GACZ,OAAIA,EACc,IAAIC,KAAKA,KAAKC,IAC5BF,EAAKG,cACLH,EAAKI,WACLJ,EAAKK,UACLL,EAAKM,WACLN,EAAKO,aACLP,EAAKQ,eAEQC,cAAcC,MAAM,EAAG,SAEtC,GAGNZ,GAvB+BjB,iBAyB/B,SAAA8B,mDAuBA,OAvBmC7G,EAAA6G,EAAAZ,GAC1BY,EAAAzB,QAAP,SAAec,GACb,OAAIA,EACK,IAAIC,KAAKD,QAEhB,GAGGW,EAAAvB,OAAP,SAAcY,GACZ,GAAIA,EAAM,CACQ,IAAIC,KAAKA,KAAKC,IAC5BF,EAAKG,cACLH,EAAKI,WACLJ,EAAKK,UACLL,EAAKM,WACLN,EAAKO,aACLP,EAAKQ,eAEP,OAAOR,EAAKS,gBAKlBE,GAvBmC9B,YAyBnB+B,EACdC,GAKA,OAAO,SAAC7F,GACF6F,IACEA,EAAOC,gBACT9F,EAA+B,iBAAI6F,EAAOC,eAExCD,EAAOE,WACT/F,EAAyB,WAAI6F,EAAOE,UAEtC/F,EAAyB,WAAI,SAACmE,EAAU6B,GACtC,OA0DR,SAAS9B,EAAQ+B,EAA+BnC,EAAWkC,WAEzD,GAAIrH,MAAMkG,QAAQf,GAChB,OAAOA,EAAKoC,KAAI,SAAAxB,GACd,OAAOR,EAAQ+B,EAAWvB,MAI9B,IAAMyB,EAAW,IAAIF,EAGfH,EAAgBG,EAAkC,iBAClDF,EAAWE,EAA4B,WAC7C,GAAIH,MACF,IAAwB,IAAA/B,EAAAd,EAAAzE,OAAOwF,KAAK8B,IAAc7B,EAAAF,EAAAxC,QAAA0C,EAAAtC,KAAAsC,EAAAF,EAAAxC,OAAE,CAA/C,IAAM6E,EAASnC,EAAA5C,MACZgF,EAAaP,EAAcM,GAC3B/E,EAAQiF,EAAaF,EAAWtC,GAClCiC,GAAYA,EAASlH,eAAewH,GACtCF,EAASE,GAAcN,EAASM,GAAYnC,QAAQ7C,GAEpD8E,EAASE,GAAchF,oGAK7B,OAAO8E,EAnFMjC,CAAQlE,EAAQmE,IAEzBnE,EAAwB,UAAI,SAACmE,EAAU6B,GACrC,OAmFR,SAAS5B,EAAO6B,EAA+BE,EAAeH,WAC5D,IAAKG,EACH,OAAOA,EAIT,GAAIxH,MAAMkG,QAAQsB,GAChB,OAAOA,EAASD,KAAI,SAAAxB,GAClB,OAAON,EAAO6B,EAAWvB,MAI7B,IAAMZ,EAAO,GACPgC,EAAgBG,EAAkC,iBAClDF,EAAWE,EAA4B,WAC7C,GAAIH,MACF,IAAwB,IAAA/B,EAAAd,EAAAzE,OAAOwF,KAAK8B,IAAc7B,EAAAF,EAAAxC,QAAA0C,EAAAtC,KAAAsC,EAAAF,EAAAxC,OAAE,CAA/C,IAAM6E,EAASnC,EAAA5C,MACZgF,EAAaP,EAAcM,GAC7BL,GAAYA,EAASlH,eAAewH,SAAwCE,IAAzBJ,EAASE,GAC9DvC,EAAKsC,GAAaL,EAASM,GAAYjC,OAAO+B,EAASE,IAEvDvC,EAAKsC,GAAaD,EAASE,qGAKjC,OAAOvC,EA7GMM,CAAOpE,EAAQmE,UCrKlBqC,ED2KCC,EAAc,SAACzG,EAA4BC,EAAsByG,GAC5E,MAAO,CACLrF,MAAO,eAAC,IAAAsF,EAAA,GAAAC,EAAA,EAAAA,EAAAlH,UAAAC,OAAAiH,IAAAD,EAAAC,GAAAlH,UAAAkH,GACN,IAAMC,EAAc7G,EAAyB,WAC7C,GAAI6G,EACF,OAAOA,EAAYF,EAAK,GAAKA,EAAKhH,OAAS,EAAIgH,EAAK,QAAKJ,MAOpDO,EAAa,SAAC9G,EAA4BC,EAAsByG,GAC3E,MAAO,CACLrF,MAAO,eAAC,IAAAsF,EAAA,GAAAC,EAAA,EAAAA,EAAAlH,UAAAC,OAAAiH,IAAAD,EAAAC,GAAAlH,UAAAkH,GACN,IAAMC,EAAc7G,EAAwB,UAC5C,GAAI6G,EACF,OAAOA,EAAYF,EAAK,OAOhC,SAASL,EAAarG,EAAK6D,WACzB,GAAKA,EAAL,CAIA,IAAMiD,EAAW9G,EAAI+G,MAAM,KAC3B,GAAwB,IAApBD,EAASpH,OACX,OAAIM,KAAO6D,EACFA,EAAK7D,QAEZ,MAIJ,IAAgB,IAAAgH,EAAAhE,EAAA8D,GAAQG,EAAAD,EAAA1F,QAAA2F,EAAAvF,KAAAuF,EAAAD,EAAA1F,OAAE,CAArB,IAAM4F,EAACD,EAAA7F,MACV,IAAIyC,KAAQqD,KAAKrD,GAGf,OAFAA,EAAOA,EAAKqD,qGAMhB,OAAOrD,ICzNG0C,EAAAA,EAAAA,aAAAA,EAAAA,WAAU,KACpBA,EAAA,OAAA,GAAA,SACAA,EAAAA,EAAA,GAAA,GAAA,SCFUY,eDkBZ,SAAAC,KAiBA,OARSA,EAAAnD,QAAP,SAAeJ,GACb,OAAO,MAIFuD,EAAAjD,OAAP,SAAckD,GACZ,OAAO,MANTxH,EAAA,CADC2G,qBAMD3G,EAAA,CADCgH,oBAbUO,EAAIvH,EAAA,CAbhB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ6D,KAAM,OACNvB,KAAM,OACNwB,UAAW,WACXC,KAAM,OACNC,OAAQ,UAEV3B,SAAU,CACR2B,OAAQrD,EAAUmC,EAAAA,gBAGTa,OClBDD,EAAAA,EAAAA,aAAAA,EAAAA,WAAU,KACpBA,EAAA,WAAA,GAAA,aACAA,EAAAA,EAAA,WAAA,GAAA,aACAA,EAAAA,EAAA,mBAAA,GAAA,qBACAA,EAAAA,EAAA,WAAA,GAAA,aACAA,EAAAA,EAAA,mBAAA,GAAA,qBACAA,EAAAA,EAAA,iBAAA,GAAA,mBACAA,EAAAA,EAAA,OAAA,GAAA,SACAA,EAAAA,EAAA,WAAA,GAAA,aACAA,EAAAA,EAAA,YAAA,GAAA,cACAA,EAAAA,EAAA,SAAA,IAAA,WACAA,EAAAA,EAAA,iBAAA,IAAA,mBACAA,EAAAA,EAAA,cAAA,IAAA,oBCZUO,EAQAC,gBDeZ,SAAAC,mDA+DA,OA/D2B/I,EAAA+I,EAAA9C,GAMzB8C,EAAA3I,UAAA4I,aAAA,WACE,OAAO9I,KAAK0E,KAAO0D,EAAAA,WAAWW,YAAc/I,KAAKgJ,WAAaZ,EAAAA,WAAWW,YAG3EF,EAAA3I,UAAA+I,oBAAA,WACE,OAAOjJ,KAAK0E,KAAO0D,EAAAA,WAAWc,oBAGhCL,EAAA3I,UAAAiJ,aAAA,WACE,OAAOnJ,KAAK0E,KAAO0D,EAAAA,WAAWgB,YAGhCP,EAAA3I,UAAAmJ,aAAA,WACE,OAAOrJ,KAAK0E,KAAO0D,EAAAA,WAAWkB,YAActJ,KAAKgJ,WAAaZ,EAAAA,WAAWkB,YAG3ET,EAAA3I,UAAAqJ,oBAAA,WACE,OAAOvJ,KAAK0E,KAAO0D,EAAAA,WAAWoB,oBAGhCX,EAAA3I,UAAAuJ,kBAAA,WACE,OAAOzJ,KAAK0E,KAAO0D,EAAAA,WAAWsB,kBAGhCb,EAAA3I,UAAAyJ,SAAA,WACE,OAAO3J,KAAK0E,KAAO0D,EAAAA,WAAWwB,QAAU5J,KAAKgJ,WAAaZ,EAAAA,WAAWwB,QAGvEf,EAAA3I,UAAA2J,YAAA,WACE,OAAO7J,KAAK0E,KAAO0D,EAAAA,WAAW0B,YAGhCjB,EAAA3I,UAAA6J,aAAA,WACE,OAAO/J,KAAK0E,KAAO0D,EAAAA,WAAW4B,aAGhCnB,EAAA3I,UAAA+J,WAAA,WACE,OAAOjK,KAAK0E,KAAO0D,EAAAA,WAAW8B,UAAYlK,KAAKgJ,WAAaZ,EAAAA,WAAW8B,UAGzErB,EAAA3I,UAAAiK,kBAAA,WACE,OAAOnK,KAAK0E,KAAO0D,EAAAA,WAAWgC,kBAGhCvB,EAAA3I,UAAAmK,eAAA,WACE,OAAOrK,KAAK0E,KAAO0D,EAAAA,WAAWkC,eAIzBzB,EAAA3D,QAAP,SAAeJ,GACb,OAAO,MAIF+D,EAAAzD,OAAP,SAAcmF,GACZ,OAAO,MANTzJ,EAAA,CADC2G,qBAMD3G,EAAA,CADCgH,oBA3DUe,EAAK/H,EAAA,CARjB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ6D,KAAM,OACNiC,UAAW,WACXC,WAAY,gBAGH5B,IAAchE,gBEf3B,SAAA6F,KAWA,OAJSA,EAAAxF,QAAP,SAAe7C,KAGRqI,EAAAtF,OAAP,SAAc/C,KAHdvB,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBATU4C,EAAW5J,EAAA,CARvB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJiG,QAAS,SACTC,OAAQ,SACRC,OAAQ,aAGCH,oBCFb,SAAAI,mDASA,OAT0BhL,EAAAgL,EAAA/E,GAKjB+E,EAAA5F,QAAP,SAAe7C,KAGRyI,EAAA1F,OAAP,SAAc/C,KAHdvB,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAPUgD,EAAIhK,EAAA,CANhB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ6D,KAAM,WAGGuC,IAAajG,IFNd8D,EAAAA,EAAAA,yBAAAA,EAAAA,uBAAsB,KAChCA,EAAA,YAAA,GAAA,cACAA,EAAAA,EAAA,eAAA,GAAA,iBACAA,EAAAA,EAAA,cAAA,GAAA,gBACAA,EAAAA,EAAA,cAAA,GAAA,gBACAA,EAAAA,EAAA,OAAA,GAAA,UAGUC,EAAAA,EAAAA,WAAAA,EAAAA,SAAQ,KAClBA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,MAAA,GAAA,YGVUmC,EAQAC,gBHiBZ,SAAAC,mDAaA,OAbuCnL,EAAAmL,EAAAlF,GAO9BkF,EAAA/F,QAAP,SAAe7C,KAIR4I,EAAA7F,OAAP,SAAc/C,KAJdvB,EAAA,CADC2G,qBAKD3G,EAAA,CADCgH,oBAVUmD,EAAiBnK,EAAA,CAZ7B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJiG,QAAS,SACTO,SAAU,WACVC,UAAW,YAEbpE,SAAU,CACRmE,SAAU7F,EAAUsD,EAAAA,wBACpByC,SAAU/F,EAAUuD,EAAAA,cAGXqC,IAA0BpG,IGzB3BkG,EAAAA,EAAAA,yBAAAA,EAAAA,uBAAsB,KAChCA,EAAA,OAAA,GAAA,SACAA,EAAAA,EAAA,OAAA,GAAA,SACAA,EAAAA,EAAA,cAAA,GAAA,gBACAA,EAAAA,EAAA,kBAAA,GAAA,oBACAA,EAAAA,EAAA,SAAA,GAAA,YAGUC,EAAAA,EAAAA,qBAAAA,EAAAA,mBAAkB,KAC5BA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,MAAA,GAAA,YCVUK,EAMAC,gBDmBZ,SAAAC,mDAaA,OAbuCzL,EAAAyL,EAAAxF,GAO9BwF,EAAArG,QAAP,SAAe7C,KAIRkJ,EAAAnG,OAAP,SAAc/C,KAJdvB,EAAA,CADC2G,qBAKD3G,EAAA,CADCgH,oBAVUyD,EAAiBzK,EAAA,CAZ7B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJiG,QAAS,SACTO,SAAU,WACVC,UAAW,YAEbpE,SAAU,CACRmE,SAAU7F,EAAU0F,EAAAA,wBACpBK,SAAU/F,EAAU2F,EAAAA,wBAGXO,IAA0B1G,ICzB3BwG,EAAAA,EAAAA,qBAAAA,EAAAA,mBAAkB,KAC5BA,EAAA,WAAA,GAAA,aACAA,EAAAA,EAAA,QAAA,GAAA,UACAA,EAAAA,EAAA,WAAA,GAAA,cAGUC,EAAAA,EAAAA,iBAAAA,EAAAA,eAAc,KACxBA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,MAAA,GAAA,YCRUE,EAOAC,gBDgBZ,SAAAC,mDAaA,OAbmC5L,EAAA4L,EAAA3F,GAO1B2F,EAAAxG,QAAP,SAAe7C,KAIRqJ,EAAAtG,OAAP,SAAc/C,KAJdvB,EAAA,CADC2G,qBAKD3G,EAAA,CADCgH,oBAVU4D,EAAa5K,EAAA,CAZzB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJiG,QAAS,SACTO,SAAU,WACVC,UAAW,YAEbpE,SAAU,CACRmE,SAAU7F,EAAUgG,EAAAA,oBACpBD,SAAU/F,EAAUiG,EAAAA,oBAGXI,IAAsB7G,ICvBvB2G,EAAAA,EAAAA,uBAAAA,EAAAA,qBAAoB,KAC9BA,EAAA,WAAA,GAAA,aACAA,EAAAA,EAAA,WAAA,GAAA,aACAA,EAAAA,EAAA,QAAA,GAAA,UACAA,EAAAA,EAAA,WAAA,GAAA,cAGUC,EAAAA,EAAAA,mBAAAA,EAAAA,iBAAgB,KAC1BA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,MAAA,GAAA,QACAA,EAAAA,EAAA,KAAA,GAAA,WCHUE,gBDkBZ,SAAAC,mDAaA,OAbqC9L,EAAA8L,EAAA7F,GAO5B6F,EAAA1G,QAAP,SAAe7C,KAIRuJ,EAAAxG,OAAP,SAAc/C,KAJdvB,EAAA,CADC2G,qBAKD3G,EAAA,CADCgH,oBAVU8D,EAAe9K,EAAA,CAZ3B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJiG,QAAS,SACTO,SAAU,WACVW,UAAW,YAEb9E,SAAU,CACRmE,SAAU7F,EAAUmG,EAAAA,sBACpBM,SAAUzG,EAAUoG,EAAAA,sBAGXG,IAAwB/G,IClBzB8G,EAAAA,EAAAA,aAAAA,EAAAA,WAAU,KACpBA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,OAAA,GAAA,aCRUI,gBD2CZ,SAAAC,mDAgDA,OAhD0BlM,EAAAkM,EAAAjG,GAoBjBiG,EAAA9G,QAAP,SAAeJ,GACb,OAAO,MAIFkH,EAAA5G,OAAP,SAAc6G,GACZ,OAAO,MAGTzM,OAAAgC,eAAIwK,EAAA9L,UAAA,WAAQ,KAAZ,WACE,MAAO,CAACF,KAAKkM,SAAUlM,KAAKmM,WAAWC,QAAO,SAAA7L,GAAK,OAAAA,KAAG8L,KAAK,sCAG7D7M,OAAAgC,eAAIwK,EAAA9L,UAAA,YAAS,KAAb,WACE,MAAO,CAACF,KAAKkM,SAAUlM,KAAKmM,WAAWC,QAAO,SAAA7L,GAAK,OAAAA,KAAG8L,KAAK,sCAG7D7M,OAAAgC,eAAIwK,EAAA9L,UAAA,WAAQ,KAAZ,WACE,MAAO,CAACF,KAAKkM,SAAUlM,KAAKmM,WAAWC,QAAO,SAAA7L,GAAK,OAAAA,KAAG2G,KAAI,SAAA3G,GAAK,OAAAA,EAAE+L,OAAO,EAAG,MAAID,KAAK,qCAGtF7M,OAAAgC,eAAIwK,EAAA9L,UAAA,MAAG,KAAP,WACE,IAAKF,KAAKuM,UACR,OAAO,KAET,IAAMC,GAAO,IAAKvG,MAAQwG,UAAYzM,KAAKuM,UAAUE,UACrD,OAAOC,KAAKC,MAAMH,EAAI,0CA1BxB1L,EAAA,CADC2G,qBAMD3G,EAAA,CADCgH,oBAxBUkE,EAAIlL,EAAA,CAhChB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJkI,UAAW,WACXC,WAAY,YACZC,YAAa,aACbC,MAAO,QACPC,MAAO,QACPC,WAAY,YACZC,MAAO,QACPC,QAAS,UACTC,mBAAoB,oBACpBC,mBAAoB,oBACpBC,eAAgB,gBAChBC,iBAAkB,kBAClBC,QAAS,UACTC,KAAM,OACNC,OAAQ,SACRC,UAAW,YAEb5G,SAAU,CACRwF,UAAWzG,EACXoH,MAAO7E,EACP8E,QAASzC,EACTkD,kBAAmB3C,EACnB4C,kBAAmBtC,EACnBuC,cAAepC,EACfqC,gBAAiBnC,EACjB6B,KAAM3C,EACN4C,OAAQrI,EAAUsG,EAAAA,gBAGTK,IAAanH,iBElB1B,SAAAmJ,mDAuCA,OAvC0BlO,EAAAkO,EAAAjI,GAaxBiI,EAAA9N,UAAA+N,kBAAA,WACE,IAAMC,EAAY,CAAC,cAanB,OAZIlO,KAAKuK,MAAMzB,gBACboF,EAAUlK,KAAK,yBAEbhE,KAAKuK,MAAMlB,gBACb6E,EAAUlK,KAAK,yBAEbhE,KAAKuK,MAAMZ,YACbuE,EAAUlK,KAAK,qBAEbhE,KAAKuK,MAAMN,cACbiE,EAAUlK,KAAK,uBAEVkK,EAAU7B,KAAK,MAIjB2B,EAAA9I,QAAP,SAAeJ,GACb,OAAO,MAIFkJ,EAAA5I,OAAP,SAAc+I,GACZ,OAAO,MANTrN,EAAA,CADC2G,qBAMD3G,EAAA,CADCgH,oBAnCUkG,EAAIlN,EAAA,CAtBhB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ6D,KAAM,OACNgC,MAAO,QACP6D,KAAM,OACNC,MAAO,QACPZ,KAAM,OACNa,YAAa,aACbC,gBAAiB,gBACjBC,YAAa,aACbC,UAAW,WACXC,sBAAuB,uBAEzB3H,SAAU,CACRwD,MAAO1B,EACPuF,KAAM/F,EACNgG,MAAOrC,EACPyB,KAAM3C,EACN6D,oBAAqB7I,MAGZkI,IAAanJ,kBCf1B,SAAA+J,mDAUA,OAVkC9O,EAAA8O,EAAA7I,GAMzB6I,EAAA1J,QAAP,SAAeJ,KAGR8J,EAAAxJ,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBARU8G,EAAY9N,EAAA,CAVxB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJmK,SAAU,UACVR,MAAO,SAETtH,SAAU,CACRsH,MAAOrC,MAGE4C,IAAqB/J,kBCiBlC,SAAAiK,mDAkCA,OAlC4BhP,EAAAgP,EAAA/I,GAkBnB+I,EAAA5J,QAAP,SAAeJ,KAGRgK,EAAA1J,OAAP,SAAcN,KAEdtF,OAAAgC,eAAIsN,EAAA5O,UAAA,SAAM,KAAV,WACE,OAAOF,KAAK+O,YAAYtJ,MAAK,SAAAuJ,GAAQ,MAAuB,oBAAvBA,EAAK1C,OAAO,EAAG,wCAGtD9M,OAAAgC,eAAIsN,EAAA5O,UAAA,SAAM,KAAV,WACE,OAAOF,KAAK+O,YAAYtJ,MAAK,SAAAuJ,GAAQ,MAAuB,8BAAvBA,EAAK1C,OAAO,EAAG,wCAGtD9M,OAAAgC,eAAIsN,EAAA5O,UAAA,YAAS,KAAb,WACE,OAAOF,KAAK+O,YAAYtJ,MAAK,SAAAuJ,GAAQ,MAAuB,8BAAvBA,EAAK1C,OAAO,EAAG,wCAdtDxL,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBApBUgH,EAAMhO,EAAA,CAzBlB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ0J,KAAM,OACNa,cAAe,eACfC,cAAe,eACf3G,KAAM,OACN4G,MAAO,QACP5E,MAAO,QACP6E,YAAa,cACbC,aAAc,cACdC,MAAO,QACPC,aAAc,eACdC,kBAAmB,mBACnBd,sBAAuB,sBACvBe,MAAO,QACPC,MAAO,SAET3I,SAAU,CACRwI,aAAcX,GACdR,KAAM/F,EACNoH,MAAOpH,EACPkC,MAAO1B,MAGEiG,IAAejK,IH3BhBkH,EAAAA,EAAAA,2BAAAA,EAAAA,yBAAwB,KAClCA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,YAAA,GAAA,cACAA,EAAAA,EAAA,OAAA,GAAA,aIEU4D,GAMAC,GAMAC,GAMAC,GAMAC,GAMAC,GAKAC,kBJbZ,SAAAC,mDAgBA,OAhBsCpQ,EAAAoQ,EAAAnK,GAY7BmK,EAAAhL,QAAP,SAAeJ,KAGRoL,EAAA9K,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAdUoI,EAAgBpP,EAAA,CArB5B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ6D,KAAM,OACN4G,MAAO,QACPf,KAAM,OACNqB,MAAO,QACPU,cAAe,eACfC,OAAQ,SACRC,WAAY,YACZC,YAAa,cAEfvJ,SAAU,CACRqH,KAAM/F,EACNoH,MAAOpH,EACPkI,aAAclI,EACd+H,OAAQ/K,EAAU0G,EAAAA,0BAClByE,UAAW1K,EACX2K,WAAY3K,MAGHoK,IAAyBrL,IItB1B8K,GAAAA,EAAAA,kBAAAA,EAAAA,gBAAe,KACzB,MAAA,QACAA,GAAA,YAAA,cACAA,GAAA,KAAA,QAGUC,GAAAA,EAAAA,qBAAAA,EAAAA,mBAAkB,KAC5BA,GAAA,KAAA,GAAA,OACAA,GAAAA,GAAA,YAAA,GAAA,cACAA,GAAAA,GAAA,OAAA,GAAA,UAGUC,GAAAA,EAAAA,mBAAAA,EAAAA,iBAAgB,KAC1BA,GAAA,KAAA,GAAA,OACAA,GAAAA,GAAA,OAAA,GAAA,SACAA,GAAAA,GAAA,IAAA,GAAA,OAGUC,GAAAA,EAAAA,2BAAAA,EAAAA,yBAAwB,KAClCA,GAAA,SAAA,GAAA,WACAA,GAAAA,GAAA,MAAA,GAAA,QACAA,GAAAA,GAAA,SAAA,GAAA,YAGUC,GAAAA,EAAAA,2BAAAA,EAAAA,yBAAwB,KAClCA,GAAA,SAAA,GAAA,WACAA,GAAAA,GAAA,MAAA,GAAA,QACAA,GAAAA,GAAA,SAAA,GAAA,YAGUC,GAAAA,EAAAA,gBAAAA,EAAAA,cAAa,KACvBA,GAAA,MAAA,GAAA,QACAA,GAAAA,GAAA,MAAA,GAAA,SAGUC,GAAAA,EAAAA,gBAAAA,EAAAA,cAAa,KACvBA,GAAA,eAAA,GAAA,iBACAA,GAAAA,GAAA,cAAA,GAAA,gBACAA,GAAAA,GAAA,KAAA,GAAA,OACAA,GAAAA,GAAA,iBAAA,GAAA,mBACAA,GAAAA,GAAA,cAAA,GAAA,gBACAA,GAAAA,GAAA,2BAAA,GAAA,6BACAA,GAAAA,GAAA,SAAA,GAAA,WACAA,GAAAA,GAAA,UAAA,GAAA,YACAA,GAAAA,GAAA,mBAAA,GAAA,yBCjDUS,kBD4FZ,SAAAC,mDAmCA,OAnCwC7Q,EAAA6Q,EAAA5K,GA+B/B4K,EAAAzL,QAAP,SAAeJ,KAGR6L,EAAAvL,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAjCU6I,EAAkB7P,EAAA,CAxC9B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJgJ,OAAQ,SACRkD,SAAU,UACVC,OAAQ,QACRC,iBAAkB,iBAClBC,iBAAkB,iBAClBC,KAAM,OACNC,YAAa,aACbC,cAAe,eACfC,YAAa,aACbC,cAAe,eACfC,cAAe,eACfC,eAAgB,gBAChBC,UAAW,WACXC,cAAe,eACfC,aAAc,cACdC,iBAAkB,kBAClBC,iBAAkB,gBAClBC,wBAAyB,uBACzBC,6BAA8B,2BAC9BC,wBAAyB,wBACzBC,oBAAqB,oBACrBC,iBAAkB,iBAClBC,0BAA2B,0BAC3BC,0BAA2B,0BAC3BC,mBAAoB,mBACpBC,eAAgB,eAChBC,kBAAmB,mBAErBtL,SAAU,CACRiK,KAAM3L,EAAUsK,EAAAA,iBAChBjC,OAAQrI,EAAUwK,EAAAA,kBAClByC,wBAAyBjN,EAAUyK,EAAAA,0BACnCyC,wBAAyBlN,EAAU0K,EAAAA,0BACnCyC,aAAcnN,EAAU2K,EAAAA,eACxByC,aAAcpN,EAAU4K,EAAAA,mBAGfU,IAA2B9L,kBAiDxC,SAAA6N,mDAYA,OAZ0C5S,EAAA4S,EAAA3M,GAQjC2M,EAAAxN,QAAP,SAAeJ,KAGR4N,EAAAtN,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAVU4K,EAAoB5R,EAAA,CAZhC8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJiO,QAAS,SACTC,cAAe,eACfzE,KAAM,OACN0E,OAAQ,UAEV9L,SAAU,CACRoH,KAAMH,MAGG0E,IAA6B7N,kBAwD1C,SAAAiO,mDA8CA,OA9CgChT,EAAAgT,EAAA/M,GAwB9B+M,EAAA5S,UAAA+N,kBAAA,WACE,IAAMC,EAAY,CAAC,cAanB,OAZIlO,KAAKuK,MAAMzB,gBACboF,EAAUlK,KAAK,yBAEbhE,KAAKuK,MAAMlB,gBACb6E,EAAUlK,KAAK,yBAEbhE,KAAKuK,MAAMZ,YACbuE,EAAUlK,KAAK,qBAEbhE,KAAKuK,MAAMN,cACbiE,EAAUlK,KAAK,uBAEVkK,EAAU7B,KAAK,MAIjByG,EAAA5N,QAAP,SAAeJ,KAGRgO,EAAA1N,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBA5CUgL,EAAUhS,EAAA,CA1CtB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ6D,KAAM,OACN4G,MAAO,QACPf,KAAM,OACNqB,MAAO,QACPU,cAAe,eACf1C,KAAM,OACNlD,MAAO,QACPwI,SAAU,WACV3D,YAAa,cACbpJ,KAAM,OACNgN,MAAO,QACPC,iBAAkB,kBAClBC,SAAU,WACVC,OAAQ,SACRC,YAAa,aACb1E,sBAAuB,sBACvB0B,OAAQ,SACRiD,YAAa,aACbC,YAAa,aACbC,WAAY,YACZC,OAAQ,UAEVzM,SAAU,CACRqH,KAAM/F,EACNoH,MAAOpH,EACPkI,aAAclI,EACdoF,KAAM3C,EACNP,MAAO1B,EACP4K,eAAgBpL,EAChB6K,SAAUvC,GACV3K,KAAMW,EACNwM,OAAQrE,GACRsB,OAAQ/K,EAAUuK,EAAAA,oBAClB8D,WAAYhB,GACZiB,WAAYjB,GACZkB,UAAWlB,GACXc,OAAQtD,OAGC4C,IAAmBjO,kBE/KhC,SAAAgP,mDAoBA,OApB0C/T,EAAA+T,EAAA9N,GAgBjC8N,EAAA3O,QAAP,SAAeJ,KAGR+O,EAAAzO,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAlBU+L,EAAoB/S,EAAA,CAtBhC8F,EAAc,CACbE,cAAe,CACboK,cAAe,eACfC,YAAa,aACbQ,iBAAkB,gBAClBP,cAAe,eACfC,cAAe,eACfC,eAAgB,gBAChBP,iBAAkB,iBAClBS,cAAe,eACfsC,uBAAwB,uBACxBrC,aAAc,cACdsC,eAAgB,gBAChB5B,mBAAoB,mBACpBC,eAAgB,gBAElBrL,SAAU,CACR0L,aAAcpN,EAAU4K,EAAAA,eACxB+D,cAAe3O,EAAUyK,EAAAA,0BACzB0C,aAAcnN,EAAU2K,EAAAA,mBAGf6D,IAA6BhP,IDtB9B6L,GAAAA,EAAAA,sBAAAA,EAAAA,oBAAmB,KAC7BA,GAAA,aAAA,GAAA,eACAA,GAAAA,GAAA,cAAA,GAAA,oBEKUuD,GAQAC,kBFKZ,SAAAC,mDAsBA,OAtB0CrU,EAAAqU,EAAApO,GASxCvG,OAAAgC,eAAI2S,EAAAjU,UAAA,YAAS,KAAb,WACE,OAAOF,KAAKoU,WAAa1D,EAAAA,oBAAoB2D,cAAgB,EAAI,mCAGnEF,EAAAjU,UAAAoU,eAAA,SAAeC,GACb,OAAOA,IAAQvU,KAAKwU,UAAYxU,KAAKyU,eAAiBzU,KAAK0U,YAItDP,EAAAjP,QAAP,SAAeJ,KAGRqP,EAAA/O,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBApBUqM,EAAoBrT,EAAA,CAfhC8F,EAAc,CACbE,cAAe,CACbyK,UAAW,WACXC,cAAe,eACfC,aAAc,cACdC,iBAAkB,kBAClBiD,aAAc,aACdC,kBAAmB,iBACnBb,eAAgB,iBAElBhN,SAAU,CACRqN,SAAU/O,EAAUqL,EAAAA,qBACpBsD,cAAe3O,EAAU0K,EAAAA,8BAGhBoE,IAA6BtP,kBGb1C,SAAAgQ,mDAWA,OAXiC/U,EAAA+U,EAAA9O,GAOxB8O,EAAA3P,QAAP,SAAeJ,KAGR+P,EAAAzP,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBATU+M,EAAW/T,EAAA,CARvB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ6D,KAAM,OACNuM,QAAS,UACTC,UAAW,eAGFF,IAAoBhQ,kBCcjC,SAAAmQ,mDAoBA,OApB+BlV,EAAAkV,EAAAjP,GAW7BvG,OAAAgC,eAAIwT,EAAA9U,UAAA,UAAO,KAAX,WACE,OAAO+U,QAAQjV,KAAKkV,2CAIfF,EAAA9P,QAAP,SAAeJ,KAGRkQ,EAAA5P,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAlBUkN,EAASlU,EAAA,CArBrB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJyQ,eAAgB,gBAChBC,WAAY,YACZC,aAAc,cACdC,KAAM,OACNC,WAAY,aACZC,QAAS,SACT5C,cAAe,gBACf6C,UAAW,WACXC,cAAe,eACfC,QAAS,UAEX5O,SAAU,CACR6O,cAAevN,EACfwN,UAAWxN,EACXyN,YAAazN,EACb0N,aAAc1N,MAGL2M,IAAkBnQ,kBCJ/B,SAAAmR,mDAgBA,OAhBsClW,EAAAkW,EAAAjQ,GAY7BiQ,EAAA9Q,QAAP,SAAeJ,KAGRkR,EAAA5Q,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAdUkO,EAAgBlV,EAAA,CAjB5B8F,EAAc,CACbE,cAAe,CACboK,cAAe,eACfC,YAAa,aACbC,cAAe,eACfC,cAAe,eACfN,iBAAkB,iBAClBS,cAAe,eACfsC,uBAAwB,uBACxBrC,aAAc,cACdW,eAAgB,gBAElBrL,SAAU,CACR0L,aAAcpN,EAAU4K,EAAAA,eACxBuC,aAAcnN,EAAU2K,EAAAA,mBAGfgG,IAAyBnR,kBCAtC,SAAAoR,mDAgBA,OAhBwCnW,EAAAmW,EAAAlQ,GAY/BkQ,EAAA/Q,QAAP,SAAeJ,KAGRmR,EAAA7Q,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAdUmO,EAAkBnV,EAAA,CAjB9B8F,EAAc,CACbE,cAAe,CACboK,cAAe,eACfC,YAAa,aACbC,cAAe,eACfC,cAAe,eACfN,iBAAkB,iBAClBS,cAAe,eACfsC,uBAAwB,uBACxBrC,aAAc,cACdW,eAAgB,gBAElBrL,SAAU,CACR0L,aAAcpN,EAAU4K,EAAAA,eACxBuC,aAAcnN,EAAU2K,EAAAA,mBAGfiG,IAA2BpR,IJV5BoP,GAAAA,EAAAA,eAAAA,EAAAA,aAAY,KACtBA,GAAA,KAAA,GAAA,OACAA,GAAAA,GAAA,YAAA,GAAA,cACAA,GAAAA,GAAA,OAAA,GAAA,SACAA,GAAAA,GAAA,SAAA,GAAA,WACAA,GAAAA,GAAA,MAAA,GAAA,SAGUC,GAAAA,EAAAA,kBAAAA,EAAAA,gBAAe,KACzBA,GAAA,SAAA,GAAA,WACAA,GAAAA,GAAA,oBAAA,GAAA,sBACAA,GAAAA,GAAA,sBAAA,GAAA,wBACAA,GAAAA,GAAA,iCAAA,GAAA,uCKlBUgC,kBLqEZ,SAAAC,mDA0EA,OA1E0BrW,EAAAqW,EAAApQ,GAgCxBvG,OAAAgC,eAAI2U,EAAAjW,UAAA,oBAAiB,KAArB,WAAA,IAAAkW,EAAApW,KACE,OAAKA,KAAKqW,cAGH7W,OAAOwF,KAAKhF,KAAKqW,eAAenP,KAAI,SAAAoP,GAAU,MAAA,CACnDA,QAASA,EACTC,UAAWH,EAAKC,cAAcC,GAAQ,GACtCE,oBAAqBJ,EAAKC,cAAcC,GAAQ,OALzC,oCASX9W,OAAAgC,eAAI2U,EAAAjW,UAAA,WAAQ,KAAZ,WACE,OAAOF,KAAKoQ,SAAW6D,EAAAA,aAAawC,wCAGtCjX,OAAAgC,eAAI2U,EAAAjW,UAAA,YAAS,KAAb,WACE,OAAOF,KAAKuW,UAAYvW,KAAKwW,qDAG/BhX,OAAAgC,eAAI2U,EAAAjW,UAAA,sBAAmB,KAAvB,WACE,OAAOF,KAAKwW,oBAAsBxW,KAAKuW,2CAGzC/W,OAAAgC,eAAI2U,EAAAjW,UAAA,eAAY,KAAhB,WACE,OAAIF,KAAKoQ,SAAW6D,EAAAA,aAAawC,QAG7BzW,KAAKuW,YAAcvW,KAAKwW,oBAFnB,KAKLxW,KAAKmO,KAAKzJ,GACL1E,KAAKuW,UAAYvW,KAAKwW,oBAAsBxW,KAAKmO,KAAKzJ,GAAK1E,KAAK0W,eAAehS,GAE/E1E,KAAKuW,UAAYvW,KAAKwW,oBAAsBxW,KAAK2W,OAAS3W,KAAK4W,kDAKnET,EAAAjR,QAAP,SAAeJ,KAGRqR,EAAA/Q,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAxEUqO,EAAIrV,EAAA,CAhDhB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ0L,OAAQ,SACRjC,KAAM,OACN0I,mBAAoB,mBACpBlE,QAAS,SACTmE,gBAAiB,iBACjBC,8BAA+B,6BAC/BC,mBAAoB,mBACpBC,qBAAsB,qBACtBC,SAAU,WACVnE,SAAU,WACVoE,WAAY,YACZC,sBAAuB,sBACvBC,YAAa,aACbC,eAAgB,gBAChB1E,cAAe,eACf2E,gBAAiB,iBACjBC,uBAAwB,uBACxBC,uBAAwB,uBACxBC,mBAAoB,mBACpBC,qBAAsB,qBACtBC,gBAAiB,gBACjBC,cAAe,eACfC,oBAAqB,oBACrBC,sBAAuB,sBACvBC,iBAAkB,kBAClBC,YAAa,aACbC,iBAAkB,iBAClBC,MAAO,QACP5C,WAAY,cAEdxO,SAAU,CACRqJ,OAAQ/K,EAAU4O,EAAAA,cAClB9F,KAAMH,EACN0I,eAAgB1I,EAChBkJ,SAAUvQ,EACVyR,WAAY/S,EAAU6O,EAAAA,iBACtBmE,qBAAsBxE,GACtByE,qBAAsBnE,GACtBoE,iBAAkBvC,GAClBwC,mBAAoBvC,GACpBwC,gBAAiB5D,GACjBsD,MAAOxS,EAAUqP,IACjBO,WAAYzC,OAGHqD,IAAatR,IKrEdqR,GAAAA,EAAAA,eAAAA,EAAAA,aAAY,KACtBA,GAAA,OAAA,GAAA,SACAA,GAAAA,GAAA,UAAA,GAAA,YACAA,GAAAA,GAAA,MAAA,GAAA,2BAkBF,SAAAwC,mDAaA,OAb8B5Y,EAAA4Y,EAAA3S,GASrB2S,EAAAxT,QAAP,SAAeJ,KAGR4T,EAAAtT,OAAP,SAAcuT,KAHd7X,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAXU4Q,EAAQ5X,EAAA,CAfpB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJiO,QAAS,SACT1G,KAAM,OACN2M,KAAM,OACNC,OAAQ,SACR1K,KAAM,QAERpH,SAAU,CACRkF,KAAMD,EACNmC,KAAMH,EACN4K,KAAMvT,EAAU6Q,EAAAA,kBAGPwC,IAAiB7T,kBCf9B,SAAAiU,mDAWA,OAXqChZ,EAAAgZ,EAAA/S,GAO5B+S,EAAA5T,QAAP,SAAeJ,KAGRgU,EAAA1T,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBATUgR,EAAehY,EAAA,CAP3B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ6D,KAAM,OACNuP,oBAAqB,wBAGZgB,IAAwBjU,kBC8BrC,SAAAkU,mDAsCA,OAtCoCjZ,EAAAiZ,EAAAhT,GA0BlCvG,OAAAgC,eAAIuX,EAAA7Y,UAAA,kBAAe,KAAnB,WACE,OAAKF,KAAKgZ,WAGHtM,KAAKC,MAAM,IAAO3M,KAAKiZ,cAAgBjZ,KAAKgZ,YAAc,GAFxD,mCAMJD,EAAA7T,QAAP,SAAeJ,KAGRiU,EAAA3T,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBApCUiR,EAAcjY,EAAA,CAlC1B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJiO,QAAS,SACTC,cAAe,eACf2C,WAAY,aACZpH,KAAM,OACN+K,MAAO,QACPC,eAAgB,gBAChB3K,YAAa,aACbD,gBAAiB,gBACjB6K,iBAAkB,iBAClBC,iBAAkB,iBAClBC,eAAgB,eAChB7K,UAAW,WACX8K,WAAY,YACZC,iBAAkB,iBAClBC,kBAAmB,kBACnB5G,OAAQ,SACRvE,YAAa,aACboL,MAAO,QACPC,oBAAqB,qBACrBC,4BAA6B,0BAC7BC,6BAA8B,2BAC9BC,yBAA0B,wBAC1BC,0BAA2B,0BAE7BhT,SAAU,CACRwO,WAAYzC,GACZ3E,KAAMH,EACNkL,MAAOJ,GACPY,MAAOvD,OAGE4C,IAAuBlU,kBCzBpC,SAAAmV,mDAYA,OAZgDla,EAAAka,EAAAjU,GAQvCiU,EAAA9U,QAAP,SAAeJ,KAGRkV,EAAA5U,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAVUkS,EAA0BlZ,EAAA,CAbtC8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJuV,wBAAyB,uBACzBC,UAAW,WACXC,QAAS,SACTC,cAAe,gBAEjBrT,SAAU,CACRsT,SAAUvU,EACVwU,OAAQxU,MAGCkU,IAAmCnV,kBCYhD,SAAA0V,mDA6BA,OA7BwCza,EAAAya,EAAAxU,GAYtCvG,OAAAgC,eAAI+Y,EAAAra,UAAA,WAAQ,KAAZ,WACE,MAAO,CAACF,KAAKkM,SAAUlM,KAAKmM,UAAWnM,KAAKwa,YAAYpO,QAAO,SAAA7L,GAAK,OAAAA,KAAG8L,KAAK,sCAG9E7M,OAAAgC,eAAI+Y,EAAAra,UAAA,YAAS,KAAb,WACE,MAAO,CAACF,KAAKkM,SAAUlM,KAAKmM,WAAWC,QAAO,SAAA7L,GAAK,OAAAA,KAAG8L,KAAK,sCAG7D7M,OAAAgC,eAAI+Y,EAAAra,UAAA,WAAQ,KAAZ,WACE,MAAO,CAACF,KAAKkM,SAAUlM,KAAKmM,WAAWC,QAAO,SAAA7L,GAAK,OAAAA,KAAG2G,KAAI,SAAA3G,GAAK,OAAAA,EAAE+L,OAAO,EAAG,MAAID,KAAK,qCAI/EkO,EAAArV,QAAP,SAAeJ,KAGRyV,EAAAnV,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBA3BUyS,EAAkBzZ,EAAA,CArB9B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ+V,gBAAiB,iBACjBC,UAAW,WACXC,aAAc,eACd9N,WAAY,YACZD,UAAW,WACXE,YAAa,aACbI,MAAO,QACP0N,iBAAkB,mBAClBC,YAAa,aACbC,OAAQ,UAEV/T,SAAU,CACRgU,eAAgBhC,GAChBiC,SAAUtC,GACVxL,MAAO7E,EACPuS,iBAAkBZ,OAGTO,IAA2B1V,kBCTxC,SAAAoW,mDAYA,OAZ8Bnb,EAAAmb,EAAAlV,GAQrBkV,EAAA/V,QAAP,SAAeJ,KAGRmW,EAAA7V,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAVUmT,EAAQna,EAAA,CAdpB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ8Q,QAAS,SACTkF,UAAW,WACXQ,qBAAsB,qBACtBC,WAAY,aAEdpU,SAAU,CACRiU,SAAUtC,GACV0C,mBAAoBb,GACpBc,UAAW1U,MAGFsU,IAAiBpW,YClBdyW,GAAkBxW,EAAaY,EAAW6V,EAAeC,GACvE,YADwD,IAAAD,IAAAA,GAAA,GACnD5b,MAAMkG,QAAQf,GAGZA,EAAKoC,KAAI,SAAAtD,GACd,GAAI4X,GAAiBC,GAAWD,IAC9B,IAAKA,EAAc5X,GACjB,OAAOA,OAEJ,GAAIA,EAAEc,KAAOgB,EAAKhB,GACvB,OAAOd,EAET,OAAIA,EAAEyX,WAAa3V,EAAK2V,YAAcE,GAC7B3X,EAAEyX,UAAY3V,EAAK2V,UAAYzX,EAEjC8B,KAbAZ,WAiBK4W,GAAmB5W,EAAa6W,EAAcJ,EAAwBC,GAIpF,YAJ4D,IAAAD,IAAAA,GAAA,GAC5DI,EAAMC,SAAQ,SAAAlW,GACZZ,EAAOwW,GAAkBxW,EAAMY,EAAM6V,EAAOC,MAEvC1W,WAmBO+W,GAAe/W,EAAaY,EAAWoW,EAAwBN,GAC7E,YADqD,IAAAM,IAAAA,GAAA,GAChDnc,MAAMkG,QAAQf,GAGfA,EAAKW,MAAK,SAAAjF,GAAK,OAAAib,GAAWD,GAAiBA,EAAchb,GAAKA,EAAEkE,KAAOgB,EAAKhB,MACvEI,EAGFgX,IACChX,EAAI,CAAEY,IAAInB,EAAA,CACbmB,GAASZ,GARL,CAACY,YAWIqW,GAAgBjX,EAAa6W,EAAcG,EAAwBN,GAOjF,YAPyD,IAAAM,IAAAA,GAAA,IACvDA,EAEEH,EADAnc,OAAOa,OAAO,GAAIsb,GAAOK,WAE3BJ,SAAQ,SAAAlW,GACRZ,EAAO+W,GAAe/W,EAAMY,EAAMoW,EAAON,MAEpC1W,WAGOmX,GAAoBnX,EAAaY,GAC/C,OAAK/F,MAAMkG,QAAQf,GAGf2W,GAAW/V,GACNZ,EAAKsH,QAAO,SAAA5L,GAAK,OAACkF,EAAKlF,MAEvBsE,EAAKsH,QAAO,SAAAxI,GAAK,OAAAA,EAAEc,KAAOgB,EAAKhB,MAL/B,GASX,SAAS+W,GAAWS,GAClB,OAAOA,GAAyD,sBAAtC,GAAGC,SAASvb,KAAKsb,OCzEjCE,iBCIV,SAAAC,EAAoB3T,GAAA1I,KAAA0I,OAAAA,EAFZ1I,KAAA8E,KAA8C,GAuExD,OAlEEuX,EAAAnc,UAAAoc,IAAA,SAAIrb,GACF,OAAOjB,KAAKuc,WAAWtb,GAAKub,KAAKpQ,EAAAA,QAAO,SAAA1G,GAAQ,YAAS6B,IAAT7B,OAGlD2W,EAAAnc,UAAAmC,MAAA,SAAMpB,GACJ,OAAOjB,KAAKuc,WAAWtb,GAAKoB,OAG9Bga,EAAAnc,UAAAuc,KAAA,SAAKxb,EAAaoB,GAChBrC,KAAKuc,WAAWtb,GAAKsB,KAAKF,GACtBrC,KAAK0I,QACP1I,KAAK0I,OAAO+T,KAAKxb,EAAKoB,IAI1Bga,EAAAnc,UAAAwc,WAAA,SAAWzb,EAAaoB,EAAYmZ,GAClCxb,KAAKyc,KAAKxb,EAAK4a,GAAe7b,KAAKqC,MAAMpB,IAAQ,GAAIoB,GAAO,EAAMmZ,KAGpEa,EAAAnc,UAAAyc,YAAA,SAAY1b,EAAaoB,EAAcmZ,GACrCxb,KAAKyc,KAAKxb,EAAK8a,GAAgB/b,KAAKqC,MAAMpB,IAAQ,GAAIoB,GAAO,KAG/Dga,EAAAnc,UAAA0c,YAAA,SAAY3b,EAAaoB,EAAYmZ,GACnCxb,KAAKyc,KAAKxb,EAAK4a,GAAe7b,KAAKqC,MAAMpB,IAAQ,GAAIoB,GAAO,EAAOmZ,KAGrEa,EAAAnc,UAAA2c,aAAA,SAAa5b,EAAaoB,EAAcmZ,GACtCxb,KAAKyc,KAAKxb,EAAK8a,GAAgB/b,KAAKqC,MAAMpB,IAAQ,GAAIoB,GAAO,EAAOmZ,KAGtEa,EAAAnc,UAAA4c,WAAA,SAAW7b,EAAaoB,EAAYkZ,EAAiBC,GACnDxb,KAAKyc,KAAKxb,EAAKqa,GAAkBtb,KAAKqC,MAAMpB,IAAQ,GAAIoB,EAAOkZ,EAAOC,KAGxEa,EAAAnc,UAAA6c,YAAA,SAAY9b,EAAaoB,EAAYkZ,EAAiBC,GACpDxb,KAAKyc,KAAKxb,EAAKya,GAAmB1b,KAAKqC,MAAMpB,IAAQ,GAAIoB,EAAOkZ,EAAOC,KAGzEa,EAAAnc,UAAA8c,WAAA,SAAW/b,EAAaoB,GACtBrC,KAAKyc,KAAKxb,EAAKgb,GAAoBjc,KAAKqC,MAAMpB,IAAQ,GAAIoB,KAG5Dga,EAAAnc,UAAA+c,QAAA,uBACE,IAAkB,IAAAlY,EAAAd,EAAAzE,OAAOwF,KAAKhF,KAAK8E,OAAKG,EAAAF,EAAAxC,QAAA0C,EAAAtC,KAAAsC,EAAAF,EAAAxC,OAAE,CAArC,IAAMtB,EAAGgE,EAAA5C,MACZrC,KAAK8E,KAAK7D,GAAKic,kBACRld,KAAK8E,KAAK7D,uGAIrBob,EAAAnc,UAAAid,iBAAA,WACMnd,KAAK0I,QACP1I,KAAK0I,OAAO0U,SAIhBf,EAAAnc,UAAAmd,UAAA,WACE,OAAOrd,KAAK0I,QAGN2T,EAAAnc,UAAAqc,WAAR,SAAmBtb,GAIjB,OAHKjB,KAAK8E,KAAK7D,KACbjB,KAAK8E,KAAK7D,GAAO,IAAIqc,EAAAA,gBAAqBtd,KAAK0I,OAAS1I,KAAK0I,OAAO4T,IAAIrb,QAAOsG,IAE1EvH,KAAK8E,KAAK7D,IAErBob,mBCzEA,SAAAkB,IACYvd,KAAAwd,MAAQ,IAAInB,UAEtBkB,EAAArd,UAAA+c,QAAA,WACEjd,KAAKwd,MAAMP,sGAJFM,EAAWzc,EAAA,CADvB2c,EAAAA,WAAW,CAACC,WAAY,UACZH,qBCKX,SAAAI,EAC2CC,GAD3C,IAAAxH,EAGErQ,EAAAnF,KAAAZ,OAAOA,YAFkCoW,EAAAwH,WAAAA,EAGrCA,GACFxH,EAAKyH,WAAWD,YANa9d,EAAA6d,EAAA5X,GAUjCvG,OAAAgC,eAAImc,EAAAzd,UAAA,UAAO,KAAX,WACE,OAAOF,KAAKwd,MAAMlB,IAhBG,2CAmBvB9c,OAAAgC,eAAImc,EAAAzd,UAAA,SAAM,KAAV,WACE,OAAOF,KAAKwd,MAAMnb,MApBG,WAoBwB,oCAG/Csb,EAAAzd,UAAA2d,WAAA,SAAW/Y,GACT9E,KAAKwd,MAAMf,KAxBU,SAwBa3X,IAGpC6Y,EAAAzd,UAAAqU,IAAA,SAAItT,EAAaoB,SACfrC,KAAKwd,MAAMf,KA5BU,SA4BWrc,EAAAA,EAAA,GAC3BJ,KAAK6G,UAAMiX,EAAA,IACb7c,GAAMoB,EAAKyb,MAIhBH,EAAAzd,UAAAoc,IAAA,SAAIrb,GACF,OAAOjB,KAAKwd,MAAMnb,MAnCG,WAmCwBrC,KAAKwd,MAAMnb,MAnCnC,UAmC2DpB,sEA5B/E8c,EAAAA,UAAQ,CAAA/M,KAAIgN,EAAAA,OAAMrW,KAAA,CALI,8JAGdgW,EAAa7c,EAAA,CADzB2c,EAAAA,WAAW,CAACC,WAAY,SAGpBjc,EAAA,EAAAsc,EAAAA,YAAYtc,EAAA,EAAAuc,EAAAA,OALU,0BAGdL,IAAsBJ,OCFnC,4BC+CA,SAAAU,mDA4CA,OA5CyCne,EAAAme,EAAAlY,GAmCvCvG,OAAAgC,eAAIyc,EAAA/d,UAAA,aAAU,KAAd,WACE,OAAOF,KAAKke,cAAgBle,KAAKme,eAAiBne,KAAKoe,sDAIlDH,EAAA/Y,QAAP,SAAeJ,KAGRmZ,EAAA7Y,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBA1CUmW,EAAmBnd,EAAA,CA7C/B8F,EAAc,CACbE,cAAe,CACboU,qBAAsB,qBACtB/M,KAAM,OACNuM,UAAW,WACXzO,KAAM,OACNwO,gBAAiB,iBACjB4D,MAAO,QACPC,SAAU,UACV9P,YAAa,aACbD,gBAAiB,gBACjBsE,OAAQ,SACR0L,gBAAiB,gBACjBC,kBAAmB,kBACnBC,iBAAkB,iBAClBC,gBAAiB,gBACjBC,mBAAoB,mBACpBC,qBAAsB,qBACtBC,oBAAqB,oBACrBC,mBAAoB,mBACpBC,kBAAmB,kBACnBC,oBAAqB,oBACrBC,mBAAoB,mBACpBC,kBAAmB,kBACnBC,QAAS,UACTC,OAAQ,SACRC,SAAU,WACVC,mBAAoB,oBACpBC,mBAAoB,oBACpBC,OAAQ,SACRC,UAAW,YACXC,eAAgB,gBAChBC,gBAAiB,iBACjBC,sBAAuB,uBACvBC,OAAQ,UAEV9Y,SAAU,CACRqU,mBAAoBb,GACpBpM,KAAMH,EACNgN,SAAUtC,GACVzM,KAAMD,EACN+O,eAAgBhC,GAChBsF,MAAOvY,MAGEmY,IAA4B6B,mBCxCzC,SAAAC,mDASA,OATiDjgB,EAAAigB,EAAAha,GAKxCga,EAAA7a,QAAP,SAAeJ,KAGRib,EAAA3a,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAPUiY,EAA2Bjf,EAAA,CAVvC8F,EAAc,CACbE,cAAe,CACbqH,KAAM,OACN2I,gBAAiB,kBAEnB/P,SAAU,CACRoH,KAAM8P,GACNvH,eAAgBuH,OAGP8B,IAAoClb,kBCkBjD,SAAAmb,mDAoCA,OApC6ClgB,EAAAkgB,EAAAja,GAuB3CvG,OAAAgC,eAAIwe,EAAA9f,UAAA,KAAE,KAAN,WACE,OAAOF,KAAKigB,4CAIPD,EAAA9a,QAAP,SAAeJ,KAGRkb,EAAA5a,OAAP,SAAcN,KAEdtF,OAAAgC,eAAIwe,EAAA9f,UAAA,aAAU,KAAd,WACE,OAAQF,KAAKke,eAAiB,IAAMle,KAAKme,gBAAkB,IAAMne,KAAKoe,sBAAwB,oCANhGtd,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBA9BUkY,EAAuBlf,EAAA,CA5BnC8F,EAAc,CACbE,cAAe,CACboZ,aAAc,aACdrN,OAAQ,SACR4L,iBAAkB,iBAClBF,gBAAiB,gBACjBC,kBAAmB,kBACnBE,gBAAiB,gBACjBC,mBAAoB,mBACpBC,qBAAsB,qBACtBC,oBAAqB,oBACrBC,mBAAoB,mBACpBK,QAAS,UACTC,OAAQ,SACRC,SAAU,WACVC,mBAAoB,oBACpBC,mBAAoB,oBACpBC,OAAQ,SACRC,UAAW,YACXC,eAAgB,gBAChBC,gBAAiB,iBACjBC,sBAAuB,uBACvBzE,WAAY,aAEdpU,SAAU,CACRsU,UAAW1U,MAGFqZ,IAAgCnb,IP3BjCuX,GAAAA,EAAAA,yBAAAA,EAAAA,uBAAsB,KAChCA,GAAA,WAAA,GAAA,aACAA,GAAAA,GAAA,UAAA,GAAA,YACAA,GAAAA,GAAA,YAAA,GAAA,cACAA,GAAAA,GAAA,eAAA,GAAA,iBACAA,GAAAA,GAAA,iBAAA,GAAA,mBACAA,GAAAA,GAAA,gBAAA,GAAA,kBACAA,GAAAA,GAAA,kBAAA,GAAA,oBACAA,GAAAA,GAAA,oBAAA,GAAA,sBACAA,GAAAA,GAAA,mBAAA,GAAA,qBACAA,GAAAA,GAAA,OAAA,IAAA,SACAA,GAAAA,GAAA,MAAA,IAAA,QACAA,GAAAA,GAAA,QAAA,IAAA,UACAA,GAAAA,GAAA,kBAAA,IAAA,oBACAA,GAAAA,GAAA,kBAAA,IAAA,oBACAA,GAAAA,GAAA,MAAA,IAAA,QACAA,GAAAA,GAAA,SAAA,IAAA,WACAA,GAAAA,GAAA,cAAA,IAAA,gBACAA,GAAAA,GAAA,eAAA,IAAA,iBACAA,GAAAA,GAAA,qBAAA,IAAA,uBACAA,GAAAA,GAAA,kBAAA,IAAA,oBACAA,GAAAA,GAAA,eAAA,IAAA,iBACAA,GAAAA,GAAA,QAAA,IAAA,cQtBU+D,GAyBAC,kBRmBZ,SAAAC,IAAA,IAAAjK,EAAA,OAAArQ,GAAAA,EAAAlF,MAAAb,KAAAU,YAAAV,YAWEoW,EAAAkK,QAAS,IA8DX,OAzEuCxgB,EAAAugB,EAAAta,GAiBrCsa,EAAAngB,UAAAqgB,aAAA,WACE,MAAO,CACLnE,EAAAA,uBAAuBoE,eACvBpE,EAAAA,uBAAuBqE,iBACvBrE,EAAAA,uBAAuBsE,gBACvBtE,EAAAA,uBAAuBuE,gBACvBC,QAAQ5gB,KAAK6gB,UAAY,GAG7BR,EAAAngB,UAAA4gB,cAAA,WACE,MAAO,CACL1E,EAAAA,uBAAuB2E,QACvB3E,EAAAA,uBAAuB4E,kBACvB5E,EAAAA,uBAAuB6E,mBACvBL,QAAQ5gB,KAAK6gB,UAAY,GAG7BR,EAAAngB,UAAAghB,WAAA,WACE,MAAO,CACL9E,EAAAA,uBAAuB+E,cACvB/E,EAAAA,uBAAuBgF,eACvBhF,EAAAA,uBAAuBiF,sBACvBT,QAAQ5gB,KAAK6gB,UAAY,GAG7BR,EAAAngB,UAAAohB,SAAA,iBAOE,QANkBxD,EAAA,IACf1B,EAAAA,uBAAuBuE,gBAAiB,EACzC7C,EAAC1B,EAAAA,uBAAuBsE,iBAAkB,EAC1C5C,EAAC1B,EAAAA,uBAAuBoE,gBAAiB,EACzC1C,EAAC1B,EAAAA,uBAAuBqE,kBAAmB,KAEzBzgB,KAAK6gB,UAG3BR,EAAAngB,UAAAqhB,QAAA,SAAQC,GACN,OAAIxhB,KAAKyhB,OAASD,EAAMC,MAAQzhB,KAAKsW,SAAWkL,EAAMlL,OAC7CtW,KAAKkX,SAASzK,UAAY+U,EAAMtK,SAASzK,UAAY,GAAK,EAE/DzM,KAAKsW,SAAWkL,EAAMlL,OACjBtW,KAAKyhB,KAAOD,EAAMC,KAAO,GAAK,EAEhCzhB,KAAKsW,OAASkL,EAAMlL,OAAS,GAAK,GAG3C9W,OAAAgC,eAAI6e,EAAAngB,UAAA,gBAAa,KAAjB,WACE,IAAMwhB,EAAUhV,KAAKC,MAAM3M,KAAKyhB,KAAO,IACjCE,EAAU3hB,KAAKyhB,KAAiB,GAAVC,EAC5B,OAAUA,EAAU,GAAK,IAAM,IAAKA,EAAO,KAAIC,EAAU,GAAK,IAAM,IAAKA,mCAIpEtB,EAAAnb,QAAP,SAAe7C,KAGRge,EAAAjb,OAAP,SAAc/C,KAHdvB,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAvEUuY,EAAiBvf,EAAA,CAnB7B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJkd,UAAW,WACXpM,QAAS,SACT0K,aAAc,aACdvN,QAAS,SACTkP,SAAU,UACV3K,SAAU,WACVuK,KAAM,OACNnL,OAAQ,SACRgK,OAAQ,SACRwB,aAAc,eAEhB/a,SAAU,CACRmQ,SAAUvQ,EACVka,QAASxb,EAAU+W,EAAAA,4BAGViE,IAA0Bxb,iBSpCrC,SAAAkd,EACUC,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAIJF,EAAA7hB,UAAAgiB,QAAN,SAAcC,sEACZ,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sCAAsC6F,EAAM,KAAK3F,KAC7GtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAyT,GAAKjR,QAAQxC,OAC3B0f,oBAGEL,EAAA7hB,UAAAmiB,SAAN,SAAeF,sEACb,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,2BAA2B6F,EAAM,WAAW3F,KACxGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAuY,GAAS/V,QAAQxC,OAC/B0f,oBAGEL,EAAA7hB,UAAAoiB,iBAAN,SAAuBH,sEACrB,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sCAAsC6F,EAAM,oBAAoB3F,KAC5HtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAqd,GAA4B7a,QAAQxC,OAClD0f,oBAGEL,EAAA7hB,UAAAqiB,iBAAN,SAAuBJ,sEACrB,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sCAAsC6F,EAAM,oBAAoB3F,KAC5HtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAsd,GAAwB9a,QAAQxC,OAC9C0f,oBAGEL,EAAA7hB,UAAAsiB,QAAN,SAAcL,sEACZ,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sCAAsC6F,EAAM,UAAU3F,KAClHtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA2d,GAAkBnb,QAAQxC,OACxC0f,oBAGEL,EAAA7hB,UAAAuiB,iBAAN,SAAuBN,EAAgBO,sEACrC,MAAA,CAAA,EAAO1iB,KAAKgiB,WAAW1F,IAClBtc,KAAKiiB,cAAc3F,IAAI,UAAS,sCAAsC6F,EAAM,6BAA6BO,EAC5G,CAACC,aAAc,SAEdP,oBAGCL,EAAA7hB,UAAA0iB,qBAAN,SAA2BT,EAAgBO,sEACzC,MAAA,CAAA,EAAO1iB,KAAKgiB,WAAW1F,IAClBtc,KAAKiiB,cAAc3F,IAAI,UAAS,sCAAsC6F,EAAM,kCAAkCO,EACjH,CAACC,aAAc,SAEdP,6DAhDiBS,EAAAA,kBACGlF,0IAHdoE,EAAiBjhB,EAAA,CAD7B2c,EAAAA,WAAW,CAACC,WAAY,UACZqE,oBCKb,SAAAe,KAiBA,OARSA,EAAA5d,QAAP,SAAeJ,GACb,OAAO,MAIFge,EAAA1d,OAAP,SAAc/C,GACZ,OAAO,MANTvB,EAAA,CADC2G,qBAMD3G,EAAA,CADCgH,oBAbUgb,EAAQhiB,EAAA,CAbpB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJqe,MAAO,QACPC,QAAS,UACTC,MAAO,QACPlW,MAAO,QACPmW,QAAS,WAEXnc,SAAU,CACRkc,MAAO5a,MAGEya,oBCRX,SAAAK,EACUnB,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAIJkB,EAAAjjB,UAAAkjB,aAAN,SAAmBte,sEACjB,MAAA,CAAA,EAAO9E,KAAKgiB,WAAWqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,oBAAqBwG,GAAS1d,OAAON,IACjG0X,KAAKtV,EAAAA,KAAI,SAAAoc,GAAY,OAAAR,GAAS5d,QAAQoe,OACtClB,oBAGCe,EAAAjjB,UAAAqjB,mBAAN,SAAyBC,EAAkB1e,sEACzC,MAAA,CAAA,EAAO9E,KAAKgiB,WAAWqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,aAAcV,GAAS1d,OAAON,IACpH0X,KAAKtV,EAAAA,KAAI,SAAAoc,GAAY,OAAAR,GAAS5d,QAAQoe,OACtClB,6DAdiBS,EAAAA,kBACGlF,0IAHdwF,EAAWriB,EAAA,CADvB2c,EAAAA,WAAW,CAACC,WAAY,UACZyF,oBCCX,SAAAM,EACUzB,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAGJwB,EAAAvjB,UAAAwjB,OAAN,SAAaC,EAAeC,4EAI1B,OAHMC,EAAW,IAAIC,UACZC,OAAO,OAAQJ,EAAUC,GAElC,CAAA,EAAO5jB,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAiBuH,GACzDrH,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAuD,EAAKnD,QAAQJ,OAC9Bsd,oBAGCqB,EAAAvjB,UAAA8jB,iBAAN,SAAuBf,sFACfY,EAAW,IAAIC,aACrB,IAAmBG,EAAAhgB,EAAAgf,GAAKiB,EAAAD,EAAA1hB,QAAA2hB,EAAAvhB,KAAAuhB,EAAAD,EAAA1hB,OAAb+F,EAAI4b,EAAA7hB,MACbwhB,EAASE,OAAO,QAASzb,EAAKA,KAAMA,EAAKsb,2GAE3C,MAAA,CAAA,EAAO5jB,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,4BAA6BuH,EAAU,CAAClB,aAAc,SAC9FP,6DArBiBS,EAAAA,kBACGlF,0IAHd8F,EAAO3iB,EAAA,CADnB2c,EAAAA,WAAW,CAACC,WAAY,UACZ+F,OJHDtD,GAAAA,EAAAA,qBAAAA,EAAAA,mBAAkB,KAC5BA,GAAA,WAAA,GAAA,aACAA,GAAAA,GAAA,UAAA,GAAA,YACAA,GAAAA,GAAA,UAAA,GAAA,YACAA,GAAAA,GAAA,aAAA,GAAA,eACAA,GAAAA,GAAA,aAAA,GAAA,eACAA,GAAAA,GAAA,KAAA,GAAA,OACAA,GAAAA,GAAA,iBAAA,GAAA,mBACAA,GAAAA,GAAA,cAAA,GAAA,gBACAA,GAAAA,GAAA,OAAA,GAAA,SACAA,GAAAA,GAAA,WAAA,IAAA,aACAA,GAAAA,GAAA,cAAA,IAAA,gBACAA,GAAAA,GAAA,cAAA,IAAA,gBACAA,GAAAA,GAAA,mBAAA,IAAA,qBACAA,GAAAA,GAAA,wBAAA,IAAA,0BACAA,GAAAA,GAAA,cAAA,IAAA,gBACAA,GAAAA,GAAA,aAAA,IAAA,eACAA,GAAAA,GAAA,cAAA,IAAA,gBACAA,GAAAA,GAAA,aAAA,IAAA,eACAA,GAAAA,GAAA,KAAA,IAAA,OACAA,GAAAA,GAAA,QAAA,IAAA,UACAA,GAAAA,GAAA,cAAA,IAAA,gBACAA,GAAAA,GAAA,YAAA,IAAA,eAGUC,GAAAA,EAAAA,uBAAAA,EAAAA,qBAAoB,KAC9BA,GAAA,WAAA,GAAA,aACAA,GAAAA,GAAA,YAAA,GAAA,cACAA,GAAAA,GAAA,cAAA,GAAA,oBK5BU+D,kBLgEZ,SAAAC,IAAA,IAAAhO,EAAA,OAAArQ,GAAAA,EAAAlF,MAAAb,KAAAU,YAAAV,YAWEoW,EAAAkK,QAAS,IAiEX,OA5EmCxgB,EAAAskB,EAAAre,GAsBjCvG,OAAAgC,eAAI4iB,EAAAlkB,UAAA,sBAAmB,KAAvB,WACE,OAAIF,KAAKqkB,qBACArkB,KAAKqkB,qBAEPrkB,KAAKigB,gBAGd,SAAwB5d,GACtBrC,KAAKqkB,qBAAuBhiB,mCAG9B+hB,EAAAlkB,UAAAqhB,QAAA,SAAQC,GACN,OAAIxhB,KAAKyhB,OAASD,EAAMC,MAAQzhB,KAAKsW,SAAWkL,EAAMlL,OAC7CtW,KAAKkX,SAASzK,UAAY+U,EAAMtK,SAASzK,UAAY,GAAK,EAE/DzM,KAAKsW,SAAWkL,EAAMlL,OACjBtW,KAAKyhB,KAAOD,EAAMC,KAAO,GAAK,EAEhCzhB,KAAKsW,OAASkL,EAAMlL,OAAS,GAAK,GAG3C9W,OAAAgC,eAAI4iB,EAAAlkB,UAAA,gBAAa,KAAjB,WACE,IAAMwhB,EAAUhV,KAAKC,MAAM3M,KAAKyhB,KAAO,IACjCE,EAAU3hB,KAAKyhB,KAAiB,GAAVC,EAC5B,OAAUA,EAAU,GAAK,IAAM,IAAKA,EAAO,KAAIC,EAAU,GAAK,IAAM,IAAKA,mCAG3EyC,EAAAlkB,UAAAokB,YAAA,WACE,MAAO,CAACnE,EAAAA,mBAAmBoE,KAAMpE,EAAAA,mBAAmBqE,eAAe5D,QAAQ5gB,KAAK6gB,UAAY,GAG9FuD,EAAAlkB,UAAAukB,cAAA,WACE,MAAO,CACLtE,EAAAA,mBAAmBuE,cAAevE,EAAAA,mBAAmBwE,cACrDxE,EAAAA,mBAAmByE,mBAAoBzE,EAAAA,mBAAmB0E,wBAC1D1E,EAAAA,mBAAmB2E,aAAc3E,EAAAA,mBAAmB4E,eACpDnE,QAAQ5gB,KAAK6gB,UAAY,GAG7BuD,EAAAlkB,UAAA8kB,QAAA,SAAQC,GACN,OAAIjlB,KAAKyhB,OAASwD,EAAIxD,MAAQzhB,KAAKsW,SAAW2O,EAAI3O,OACzCtW,KAAK0E,GAAKugB,EAAIvgB,GAEnB1E,KAAKsW,SAAW2O,EAAI3O,OACftW,KAAKyhB,KAAOwD,EAAIxD,KAElBzhB,KAAKsW,OAAS2O,EAAI3O,QAIpB8N,EAAAlf,QAAP,SAAe7C,KAGR+hB,EAAAhf,OAAP,SAAc/C,KAHdvB,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBA1EUsc,EAAatjB,EAAA,CA3BzB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJkd,UAAW,WACXpM,QAAS,SACT0K,aAAc,aACdvN,QAAS,SACTkP,SAAU,UACV3K,SAAU,WACVuK,KAAM,OACNnL,OAAQ,SACRgK,OAAQ,SACRwB,aAAc,cACdoD,UAAW,YACXC,cAAe,eACfC,UAAW,WACXC,aAAc,cACdC,uBAAwB,sBACxBC,eAAgB,iBAElBxe,SAAU,CACRmQ,SAAUvQ,EACVka,QAASxb,EAAU8a,EAAAA,oBACnB+E,UAAW7f,EAAU+a,EAAAA,sBACrBoF,YAAahgB,QAGJ4e,IAAsBvf,kBM7BnC,SAAA4gB,mDAmGA,OAnGyC3lB,EAAA2lB,EAAA1f,GA+BvCvG,OAAAgC,eAAIikB,EAAAvlB,UAAA,KAAE,KAAN,WACE,OAAOF,KAAKigB,4CAGdzgB,OAAAgC,eAAIikB,EAAAvlB,UAAA,cAAW,KAAf,WACE,OAAQF,KAAK0lB,eAAiB,IAAM1lB,KAAK2lB,eAAiB,IAAM3lB,KAAK4lB,eAAiB,oCAGxFpmB,OAAAgC,eAAIikB,EAAAvlB,UAAA,eAAY,KAAhB,WACE,OAAQF,KAAK6lB,gBAAkB,IAAM7lB,KAAK8lB,gBAAkB,IAAM9lB,KAAK+lB,gBAAkB,oCAG3FvmB,OAAAgC,eAAIikB,EAAAvlB,UAAA,aAAU,KAAd,WACE,OAAQF,KAAKgmB,cAAgB,IAAMhmB,KAAKimB,cAAgB,IAAMjmB,KAAKkmB,cAAgB,oCAGrF1mB,OAAAgC,eAAIikB,EAAAvlB,UAAA,UAAO,KAAX,WACE,OAAQF,KAAKimB,cAAgB,IAAMjmB,KAAK2lB,eAAiB,IAAM3lB,KAAK8lB,gBAAkB,oCAGxFtmB,OAAAgC,eAAIikB,EAAAvlB,UAAA,UAAO,KAAX,WACE,OAAQF,KAAKgmB,cAAgB,IAAMhmB,KAAK0lB,eAAiB,IAAM1lB,KAAK6lB,gBAAkB,oCAGxFrmB,OAAAgC,eAAIikB,EAAAvlB,UAAA,UAAO,KAAX,WACE,OAAQF,KAAKkmB,cAAgB,IAAMlmB,KAAK4lB,eAAiB,IAAM5lB,KAAK+lB,gBAAkB,oCAGxFvmB,OAAAgC,eAAIikB,EAAAvlB,UAAA,QAAK,KAAT,WACE,OAAOF,KAAKmmB,QAAUnmB,KAAKomB,QAAUpmB,KAAKqmB,yCAG5C7mB,OAAAgC,eAAIikB,EAAAvlB,UAAA,QAAK,KAAT,WACE,OAAQF,KAAKsmB,SAAW,IAAMtmB,KAAKumB,SAAW,IAAMvmB,KAAKwmB,SAAW,oCAGtEhnB,OAAAgC,eAAIikB,EAAAvlB,UAAA,UAAO,KAAX,WACE,OAAQF,KAAKymB,WAAa,IAAMzmB,KAAK0mB,WAAa,IAAM1mB,KAAK2mB,WAAa,oCAG5EnnB,OAAAgC,eAAIikB,EAAAvlB,UAAA,WAAQ,KAAZ,WACE,OAAQF,KAAK4mB,aAAe,IAAM5mB,KAAK6mB,eAAiB,oCAG1DrnB,OAAAgC,eAAIikB,EAAAvlB,UAAA,YAAS,KAAb,WACE,OAAQF,KAAK8mB,kBAAoB,IAAM9mB,KAAK+mB,eAAiB,oCAG/DvnB,OAAAgC,eAAIikB,EAAAvlB,UAAA,eAAY,KAAhB,WACE,OAAQF,KAAKgnB,OAAS,IAAMhnB,KAAKinB,cAAgB,oCAGnDznB,OAAAgC,eAAIikB,EAAAvlB,UAAA,eAAY,KAAhB,WACE,OAAKF,KAAKknB,cAAiBlnB,KAAKgnB,MAGzBta,KAAKya,MAAM,IAAOnnB,KAAKgnB,MAAQhnB,KAAKknB,cAAgB,GAFlD,mCAKX1nB,OAAAgC,eAAIikB,EAAAvlB,UAAA,cAAW,KAAf,WACE,OAAOwM,KAAKC,MAAM3M,KAAKonB,SAAW,qCAI7B3B,EAAAvgB,QAAP,SAAeJ,KAGR2gB,EAAArgB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAjGU2d,EAAmB3kB,EAAA,CApC/B8F,EAAc,CACbE,cAAe,CACboZ,aAAc,aACd/E,WAAY,YACZtI,OAAQ,SACRwU,eAAgB,eAChBC,iBAAkB,gBAClBC,iBAAkB,iBAClBC,eAAgB,eAChBC,iBAAkB,gBAClBC,iBAAkB,iBAClBC,eAAgB,eAChBC,iBAAkB,gBAClBC,iBAAkB,iBAClBC,SAAU,UACVC,SAAU,UACVC,SAAU,UACVC,WAAY,YACZC,WAAY,YACZC,WAAY,YACZC,kBAAmB,mBACnBC,eAAgB,gBAChBC,YAAa,aACbC,gBAAiB,gBACjBC,cAAe,cACfxB,MAAO,QACPyB,cAAe,eACfC,YAAa,aACbC,gBAAiB,iBACjBC,UAAW,WACXC,WAAY,aAEd9hB,SAAU,CACRsU,UAAW1U,MAGF8e,IAA4B5gB,kBCmCzC,SAAAikB,mDA8EA,OA9EqChpB,EAAAgpB,EAAA/iB,GAwDnCvG,OAAAgC,eAAIsnB,EAAA5oB,UAAA,UAAO,KAAX,WACE,OAAQF,KAAKymB,WAAa,IAAMzmB,KAAK2mB,WAAa,IAAM3mB,KAAK0mB,WAAa,oCAG5ElnB,OAAAgC,eAAIsnB,EAAA5oB,UAAA,cAAW,KAAf,WACE,IAAMwhB,EAAUhV,KAAKC,MAAM3M,KAAKonB,SAAW,IACrCzF,EAAUjV,KAAKC,MAAM3M,KAAKonB,SAAqB,GAAV1F,GAC3C,MAAO,IAAGA,EAAU,GAAK,EAAI,IAAKA,EAAO,KAAIC,EAAU,GAAK,EAAI,IAAKA,mCAGvEniB,OAAAgC,eAAIsnB,EAAA5oB,UAAA,kBAAe,KAAnB,WACE,OAAKF,KAAKgZ,WAGHtM,KAAKC,MAAM,IAAO3M,KAAKiZ,cAAgBjZ,KAAKgZ,YAAc,GAFxD,mCAMJ8P,EAAA5jB,QAAP,SAAeJ,KAGRgkB,EAAA1jB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBA5EUghB,EAAehoB,EAAA,CAlE3B8F,EAAc,CACbE,cAAe,CACboU,qBAAsB,qBACtB/M,KAAM,OACNuM,UAAW,WACXzO,KAAM,OACNwO,gBAAiB,iBACjB4D,MAAO,QACPC,SAAU,UACV9P,YAAa,aACbD,gBAAiB,gBACjBwa,iBAAkB,iBAClBlW,OAAQ,SACRmW,SAAU,UACV3B,eAAgB,eAChBC,iBAAkB,gBAClBC,iBAAkB,iBAClB0B,SAAU,UACVzB,eAAgB,eAChBC,iBAAkB,gBAClBC,iBAAkB,iBAClBwB,SAAU,UACVvB,eAAgB,eAChBC,iBAAkB,gBAClBC,iBAAkB,iBAClBsB,iBAAkB,iBAClBrB,SAAU,UACVsB,iBAAkB,iBAClBrB,SAAU,UACVsB,iBAAkB,iBAClBC,MAAO,QACPtB,SAAU,UACVuB,YAAa,aACbC,cAAe,cACfC,cAAe,eACfC,MAAO,QACPC,cAAe,eACfC,cAAe,eACfC,cAAe,eACf5B,WAAY,YACZC,WAAY,YACZC,WAAY,YACZC,kBAAmB,mBACnBC,eAAgB,gBAChBC,YAAa,aACbC,gBAAiB,gBACjBC,cAAe,cACfsB,UAAW,WACXC,iBAAkB,iBAClB/C,MAAO,QACPyB,cAAe,eACfC,YAAa,aACbC,gBAAiB,iBACjBC,UAAW,WACXC,WAAY,YACZhJ,OAAQ,UAEV9Y,SAAU,CACRqU,mBAAoBb,GACpBpM,KAAMH,EACNgN,SAAUtC,GACVzM,KAAMD,EACN+O,eAAgBhC,GAChBsF,MAAOvY,MAGEgjB,IAAwBhJ,mBC7DrC,SAAAkK,mDASA,OAT6ClqB,EAAAkqB,EAAAjkB,GAKpCikB,EAAA9kB,QAAP,SAAeJ,KAGRklB,EAAA5kB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAPUkiB,EAAuBlpB,EAAA,CAVnC8F,EAAc,CACbE,cAAe,CACbqH,KAAM,OACN2I,gBAAiB,kBAEnB/P,SAAU,CACRoH,KAAM2a,GACNpS,eAAgBoS,OAGPkB,IAAgCnlB,iBCD3C,SAAAolB,EACUjI,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAIJgI,EAAA/pB,UAAAgiB,QAAN,SAAcC,sEACZ,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kCAAkC6F,EAAM,KAAK3F,KACzGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAyT,GAAKjR,QAAQxC,OAC3B0f,oBAGE6H,EAAA/pB,UAAAmiB,SAAN,SAAeF,sEACb,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,2BAA2B6F,EAAM,WAAW3F,KACxGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAuY,GAAS/V,QAAQxC,OAC/B0f,oBAGE6H,EAAA/pB,UAAAoiB,iBAAN,SAAuBH,sEACrB,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kCAAkC6F,EAAM,oBAAoB3F,KACxHtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAsnB,GAAwB9kB,QAAQxC,OAC9C0f,oBAGE6H,EAAA/pB,UAAAqiB,iBAAN,SAAuBJ,sEACrB,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kCAAkC6F,EAAM,oBAAoB3F,KACxHtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA+iB,GAAoBvgB,QAAQxC,OAC1C0f,oBAGE6H,EAAA/pB,UAAAsiB,QAAN,SAAcL,sEACZ,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kCAAkC6F,EAAM,UAAU3F,KAC9GtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA0hB,GAAclf,QAAQxC,OACpC0f,oBAGE6H,EAAA/pB,UAAAuiB,iBAAN,SAAuBN,EAAgB+H,sEACrC,MAAA,CAAA,EAAOlqB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kCAAkC6F,EAAM,kBAAmB,CACvHgI,QAAQ,IAAIC,EAAAA,YAAa7V,IAAI,YAAa2V,GAC1CvH,aAAc,SACbP,oBAGC6H,EAAA/pB,UAAAmqB,oBAAN,SAA0BlI,EAAgB+H,EAAsBlZ,sEAC9D,MAAA,CAAA,EAAOhR,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kCAAkC6F,EAAM,0BAA2B,CAC/HgI,QAAQ,IAAIC,EAAAA,YAAa7V,IAAI,YAAa2V,GAAQ3V,IAAI,mBAAoBvD,GAC1E2R,aAAc,SACbP,6DA9CiBS,EAAAA,kBACGlF,0IAHdsM,EAAanpB,EAAA,CADzB2c,EAAAA,WAAW,CAACC,WAAY,UACZuM,OJPD9F,GAAAA,EAAAA,uBAAAA,EAAAA,qBAAoB,KAC9BA,GAAA,WAAA,GAAA,aACAA,GAAAA,GAAA,UAAA,GAAA,YACAA,GAAAA,GAAA,UAAA,GAAA,YACAA,GAAAA,GAAA,aAAA,GAAA,eACAA,GAAAA,GAAA,aAAA,GAAA,eACAA,GAAAA,GAAA,KAAA,GAAA,OACAA,GAAAA,GAAA,gBAAA,GAAA,kBACAA,GAAAA,GAAA,aAAA,GAAA,eACAA,GAAAA,GAAA,aAAA,GAAA,eACAA,GAAAA,GAAA,sBAAA,IAAA,wBACAA,GAAAA,GAAA,mBAAA,IAAA,qBACAA,GAAAA,GAAA,mBAAA,IAAA,qBACAA,GAAAA,GAAA,OAAA,IAAA,SACAA,GAAAA,GAAA,WAAA,IAAA,aACAA,GAAAA,GAAA,OAAA,IAAA,SACAA,GAAAA,GAAA,UAAA,IAAA,YACAA,GAAAA,GAAA,KAAA,IAAA,OACAA,GAAAA,GAAA,KAAA,IAAA,OACAA,GAAAA,GAAA,YAAA,IAAA,cACAA,GAAAA,GAAA,SAAA,IAAA,WACAA,GAAAA,GAAA,aAAA,IAAA,eACAA,GAAAA,GAAA,KAAA,IAAA,OACAA,GAAAA,GAAA,MAAA,IAAA,QACAA,GAAAA,GAAA,IAAA,IAAA,MACAA,GAAAA,GAAA,QAAA,IAAA,cKzBUmG,kBLiDZ,SAAAC,IAAA,IAAAnU,EAAA,OAAArQ,GAAAA,EAAAlF,MAAAb,KAAAU,YAAAV,YAWEoW,EAAAkK,QAAS,IAyCX,OApDqCxgB,EAAAyqB,EAAAxkB,GAiBnCwkB,EAAArqB,UAAAqhB,QAAA,SAAQC,GACN,OAAIxhB,KAAKyhB,OAASD,EAAMC,MAAQzhB,KAAKsW,SAAWkL,EAAMlL,OAC7CtW,KAAKkX,SAASzK,UAAY+U,EAAMtK,SAASzK,UAAY,GAAK,EAE/DzM,KAAKsW,SAAWkL,EAAMlL,OACjBtW,KAAKyhB,KAAOD,EAAMC,KAAO,GAAK,EAEhCzhB,KAAKsW,OAASkL,EAAMlL,OAAS,GAAK,GAG3C9W,OAAAgC,eAAI+oB,EAAArqB,UAAA,gBAAa,KAAjB,WACE,IAAMwhB,EAAUhV,KAAKC,MAAM3M,KAAKyhB,KAAO,IACjCE,EAAU3hB,KAAKyhB,KAAiB,GAAVC,EAC5B,OAAUA,EAAU,GAAK,IAAM,IAAKA,EAAO,KAAIC,EAAU,GAAK,IAAM,IAAKA,mCAG3E4I,EAAArqB,UAAAokB,YAAA,WACE,MAAO,CAACH,EAAAA,qBAAqBI,KAAMJ,EAAAA,qBAAqBqG,aAAcrG,EAAAA,qBAAqBsG,oBAAoB7J,QAAQ5gB,KAAK6gB,UAAY,GAG1I0J,EAAArqB,UAAA8kB,QAAA,SAAQC,GACN,OAAIjlB,KAAKyhB,OAASwD,EAAIxD,MAAQzhB,KAAKsW,SAAW2O,EAAI3O,OACzCtW,KAAK0E,GAAKugB,EAAIvgB,GAEnB1E,KAAKsW,SAAW2O,EAAI3O,OACftW,KAAKyhB,KAAOwD,EAAIxD,KAElBzhB,KAAKsW,OAAS2O,EAAI3O,QAIpBiU,EAAArlB,QAAP,SAAe7C,KAGRkoB,EAAAnlB,OAAP,SAAc/C,KAHdvB,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAlDUyiB,EAAezpB,EAAA,CApB3B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJkd,UAAW,WACXpM,QAAS,SACT0K,aAAc,aACdvN,QAAS,SACTkP,SAAU,UACV3K,SAAU,WACVuK,KAAM,OACNnL,OAAQ,SACRgK,OAAQ,SACRwB,aAAc,cACdsD,UAAW,YAEbre,SAAU,CACRmQ,SAAUvQ,EACVka,QAASxb,EAAU8e,EAAAA,0BAGVoG,IAAwB1lB,kBMZrC,SAAA6lB,mDAqIA,OArI2C5qB,EAAA4qB,EAAA3kB,GAiCzCvG,OAAAgC,eAAIkpB,EAAAxqB,UAAA,KAAE,KAAN,WACE,OAAOF,KAAKigB,4CAGdzgB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,QAAK,KAAT,WACE,OAAQF,KAAK2qB,YAAc,IAAM3qB,KAAK4qB,aAAe,IAAM5qB,KAAK6qB,cAAgB,oCAIlFrrB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,aAAU,KAAd,WACE,OAAQF,KAAKspB,OAAS,IAAMtpB,KAAK8qB,cAAgB,IAAM9qB,KAAK+qB,mBAAqB,oCAGnFvrB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,eAAY,KAAhB,WACE,OAAKF,KAAK0pB,OAAU1pB,KAAKgrB,WAGlBte,KAAKya,MAAM,IAAOnnB,KAAKgrB,WAAahrB,KAAK0pB,OAAS,GAFhD,mCAKXlqB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,qBAAkB,KAAtB,WACE,OAAKF,KAAK4qB,aAAgB5qB,KAAK0pB,MAGxBhd,KAAKya,MAAM,IAAOnnB,KAAK4qB,YAAc5qB,KAAK0pB,OAAS,GAFjD,mCAKXlqB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,YAAS,KAAb,WACE,OAAQF,KAAK8qB,cAAgB,IAAM9qB,KAAKirB,iBAAmB,oCAG7DzrB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,sBAAmB,KAAvB,WACE,OAAKF,KAAKirB,iBAAoBjrB,KAAK8qB,aAG5Bpe,KAAKya,MAAM,IAAOnnB,KAAK8qB,aAAe9qB,KAAKirB,iBAAmB,GAF5D,mCAKXzrB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,iBAAc,KAAlB,WACE,OAAQF,KAAK+qB,mBAAqB,IAAM/qB,KAAKkrB,sBAAwB,oCAGvE1rB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,2BAAwB,KAA5B,WACE,OAAKF,KAAKkrB,sBAAyBlrB,KAAK+qB,kBAGjCre,KAAKya,MAAM,IAAOnnB,KAAK+qB,kBAAoB/qB,KAAKkrB,sBAAwB,GAFtE,mCAKX1rB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,eAAY,KAAhB,WACE,OAAQF,KAAKgnB,OAAS,IAAMhnB,KAAKinB,cAAgB,oCAGnDznB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,sBAAmB,KAAvB,WACE,OAAQF,KAAKmrB,cAAgB,IAAMnrB,KAAKorB,qBAAuB,oCAGjE5rB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,2BAAwB,KAA5B,WACE,OAAQF,KAAKqrB,mBAAqB,IAAMrrB,KAAKsrB,0BAA4B,oCAG3E9rB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,oBAAiB,KAArB,WACE,OAAQF,KAAKinB,cAAgB,IAAMjnB,KAAKorB,qBAAuB,IAAMprB,KAAKsrB,0BAA4B,oCAIxG9rB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,aAAU,KAAd,WACE,OAAQF,KAAKgnB,OAAS,IAAMhnB,KAAKmrB,cAAgB,IAAMnrB,KAAKqrB,mBAAqB,oCAGnF7rB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,eAAY,KAAhB,WACE,OAAKF,KAAKknB,cAAiBlnB,KAAKgnB,MAGzBta,KAAKya,MAAM,IAAOnnB,KAAKgnB,MAAQhnB,KAAKknB,cAAgB,GAFlD,mCAKX1nB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,sBAAmB,KAAvB,WACE,OAAKF,KAAKurB,qBAAwBvrB,KAAKmrB,aAGhCze,KAAKya,MAAM,IAAOnnB,KAAKmrB,aAAenrB,KAAKurB,qBAAuB,GAFhE,mCAKX/rB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,2BAAwB,KAA5B,WACE,OAAKF,KAAKwrB,0BAA6BxrB,KAAKqrB,kBAGrC3e,KAAKya,MAAM,IAAOnnB,KAAKqrB,kBAAoBrrB,KAAKwrB,0BAA4B,GAF1E,mCAKXhsB,OAAAgC,eAAIkpB,EAAAxqB,UAAA,cAAW,KAAf,WACE,OAAOwM,KAAKC,MAAM3M,KAAKonB,SAAW,qCAI7BsD,EAAAxlB,QAAP,SAAeJ,KAGR4lB,EAAAtlB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAnIU4iB,EAAqB5pB,EAAA,CAtCjC8F,EAAc,CACbE,cAAe,CACboZ,aAAc,aACd/E,WAAY,YACZtI,OAAQ,SACR0W,YAAa,aACbC,cAAe,cACfC,cAAe,eACfH,MAAO,QACPnK,QAAS,UACTsM,QAAS,UACTC,WAAY,YACZC,cAAe,eACfC,iBAAkB,kBAClBC,sBAAuB,sBACvBC,cAAe,eACfC,oBAAqB,oBACrBC,uBAAwB,uBACxBC,4BAA6B,2BAC7BC,oBAAqB,oBACrBlF,MAAO,QACPyB,cAAe,eACfC,YAAa,aACbE,UAAW,WACXC,WAAY,YACZsD,MAAO,QACPC,aAAc,cACdC,UAAW,WACXC,eAAgB,gBAChBC,OAAQ,SACR/M,OAAQ,SACRgN,KAAM,OACNlE,YAAa,cAEfvhB,SAAU,CACRsU,UAAW1U,MAGF+jB,IAA8B7lB,kBCgC3C,SAAA4nB,mDAkEA,OAlEuC3sB,EAAA2sB,EAAA1mB,GAuDrCvG,OAAAgC,eAAIirB,EAAAvsB,UAAA,cAAW,KAAf,WACE,IAAMwhB,EAAUhV,KAAKC,MAAM3M,KAAKonB,SAAW,IACrCzF,EAAUjV,KAAKC,MAAM3M,KAAKonB,SAAqB,GAAV1F,GAC3C,MAAO,IAAGA,EAAU,GAAK,EAAI,IAAKA,EAAO,KAAIC,EAAU,GAAK,EAAI,IAAKA,mCAIhE8K,EAAAvnB,QAAP,SAAeJ,KAGR2nB,EAAArnB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAhEU2kB,EAAiB3rB,EAAA,CAjE7B8F,EAAc,CACbE,cAAe,CACboU,qBAAsB,qBACtB/M,KAAM,OACNuM,UAAW,WACXzO,KAAM,OACNwO,gBAAiB,iBACjB4D,MAAO,QACPC,SAAU,UACV9P,YAAa,aACbD,gBAAiB,gBACjBsE,OAAQ,SACR0W,YAAa,aACbC,cAAe,cACfC,cAAe,eACfiD,sBAAuB,qBACvBhD,MAAO,QACPJ,MAAO,QACPK,cAAe,eACfgD,YAAa,aACbxN,QAAS,UACTwM,cAAe,eACfC,iBAAkB,kBAClBgB,sBAAuB,sBACvBd,cAAe,eACfD,sBAAuB,sBACvBgB,sBAAuB,sBACvBC,sBAAuB,sBACvBf,oBAAqB,oBACrBC,uBAAwB,uBACxBe,4BAA6B,2BAC7Bb,oBAAqB,oBACrBD,4BAA6B,2BAC7Be,4BAA6B,2BAC7BC,4BAA6B,2BAC7BjG,MAAO,QACP6C,cAAe,eACfqD,YAAa,aACbzE,cAAe,eACf0E,oBAAqB,oBACrBvD,cAAe,eACflB,YAAa,aACbyD,MAAO,QACPC,aAAc,cACdC,UAAW,WACXC,eAAgB,gBAChBC,OAAQ,SACR/M,OAAQ,SACRgN,KAAM,OACNlE,YAAa,aACbmD,QAAS,UACTC,WAAY,YACZ9C,UAAW,WACXC,WAAY,YACZhJ,OAAQ,UAEV9Y,SAAU,CACRqU,mBAAoBb,GACpBpM,KAAMH,EACNgN,SAAUtC,GACVzM,KAAMD,EACN+O,eAAgBhC,GAChBsF,MAAOvY,MAGE2mB,IAA0B3M,mBC5DvC,SAAAsN,mDASA,OAT+CttB,EAAAstB,EAAArnB,GAKtCqnB,EAAAloB,QAAP,SAAeJ,KAGRsoB,EAAAhoB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAPUslB,EAAyBtsB,EAAA,CAVrC8F,EAAc,CACbE,cAAe,CACbqH,KAAM,OACN2I,gBAAiB,kBAEnB/P,SAAU,CACRoH,KAAMse,GACN/V,eAAgB+V,OAGPW,IAAkCvoB,iBCD7C,SAAAwoB,EACUrL,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAIJoL,EAAAntB,UAAAgiB,QAAN,SAAcC,sEACZ,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,oCAAoC6F,EAAM,KAAK3F,KAC3GtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAyT,GAAKjR,QAAQxC,OAC3B0f,oBAGEiL,EAAAntB,UAAAmiB,SAAN,SAAeF,sEACb,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,2BAA2B6F,EAAM,WAAW3F,KACxGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAuY,GAAS/V,QAAQxC,OAC/B0f,oBAGEiL,EAAAntB,UAAAoiB,iBAAN,SAAuBH,sEACrB,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,oCAAoC6F,EAAM,oBAAoB3F,KAC1HtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA0qB,GAA0BloB,QAAQxC,OAChD0f,oBAGEiL,EAAAntB,UAAAqiB,iBAAN,SAAuBJ,sEACrB,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,oCAAoC6F,EAAM,oBAAoB3F,KAC1HtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAgoB,GAAsBxlB,QAAQxC,OAC5C0f,oBAGEiL,EAAAntB,UAAAsiB,QAAN,SAAcL,sEACZ,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,oCAAoC6F,EAAM,UAAU3F,KAChHtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA6nB,GAAgBrlB,QAAQxC,OACtC0f,oBAGEiL,EAAAntB,UAAAuiB,iBAAN,SAAuBN,EAAgB+H,sEACrC,MAAA,CAAA,EAAOlqB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,oCAAoC6F,EAAM,kBAAmB,CACzHgI,QAAQ,IAAIC,EAAAA,YAAa7V,IAAI,YAAa2V,GAC1CvH,aAAc,SACbP,oBAGCiL,EAAAntB,UAAAmqB,oBAAN,SAA0BlI,EAAgB+H,EAAsBlZ,sEAC9D,MAAA,CAAA,EAAOhR,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,oCAAoC6F,EAAM,0BAA2B,CACjIgI,QAAQ,IAAIC,EAAAA,YAAa7V,IAAI,YAAa2V,GAAQ3V,IAAI,mBAAoBvD,GAC1E2R,aAAc,SACbP,6DA9CiBS,EAAAA,kBACGlF,0IAHd0P,EAAevsB,EAAA,CAD3B2c,EAAAA,WAAW,CAACC,WAAY,UACZ2P,OJPD/C,GAAAA,EAAAA,iBAAAA,EAAAA,eAAc,KACxBA,GAAA,KAAA,GAAA,OACAA,GAAAA,GAAA,MAAA,GAAA,YKAUgD,kBL4BZ,SAAAC,mDAsBA,OAtBgCztB,EAAAytB,EAAAxnB,GAgBvBwnB,EAAAroB,QAAP,SAAeJ,KAKRyoB,EAAAnoB,OAAP,SAAcN,KALdhE,EAAA,CADC2G,qBAMD3G,EAAA,CADCgH,oBApBUylB,EAAUzsB,EAAA,CAzBtB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJE,MAAO,QACPsS,SAAU,WACVsW,aAAc,cACdC,YAAa,aACbC,QAAS,UACTje,MAAO,QACPke,eAAgB,gBAChBC,QAAS,SACTC,YAAa,cACb7c,KAAM,OACN8c,WAAY,YACZC,IAAK,OAEPhnB,SAAU,CACRmQ,SAAUvQ,EACV+mB,QAASrlB,EACToH,MAAOpH,EACP2lB,cAAe3lB,EACfwlB,YAAaloB,EAAUmN,IACvB9B,KAAM3L,EAAUilB,EAAAA,oBAGPiD,IAAmB1oB,IK5BpByoB,GAAAA,EAAAA,uBAAAA,EAAAA,qBAAoB,KAC9BA,GAAA,YAAA,GAAA,cACAA,GAAAA,GAAA,YAAA,GAAA,cACAA,GAAAA,GAAA,KAAA,GAAA,WCNUW,kBD4BZ,SAAAC,mDAaA,OAbqCpuB,EAAAouB,EAAAnoB,GAS5BmoB,EAAAhpB,QAAP,SAAeJ,KAGRopB,EAAA9oB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAXUomB,EAAeptB,EAAA,CAnB3B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ4Q,KAAM,OACN6Y,KAAM,OACNhb,OAAQ,SACR0a,YAAa,cACbO,MAAO,QACPlX,SAAU,YAEZnQ,SAAU,CACRuO,KAAMa,GACNgY,KAAMZ,GACNpa,OAAQrE,GACR+e,YAAaloB,EAAUmN,IACvBoE,SAAUpR,EACVsoB,MAAO/oB,EAAUioB,EAAAA,0BAGRY,IAAwBrpB,kBEhBrC,SAAAwpB,mDAYA,OAZmCvuB,EAAAuuB,EAAAtoB,GAQ1BsoB,EAAAnpB,QAAP,SAAeJ,KAGRupB,EAAAjpB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAVUumB,EAAavtB,EAAA,CAZzB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJE,MAAO,QACP8oB,QAAS,UACT1e,KAAM,OACNsf,KAAM,QAERvnB,SAAU,CACR2mB,QAASrlB,MAGAgmB,IAAsBxpB,IDZvBopB,GAAAA,EAAAA,iBAAAA,EAAAA,eAAc,KACxB,OAAA,SACAA,GAAA,QAAA,UACAA,GAAA,MAAA,YEHUM,kBFoBZ,SAAAC,mDAgBA,OAhBkC1uB,EAAA0uB,EAAAzoB,GAUzByoB,EAAAtpB,QAAP,SAAeJ,KAIR0pB,EAAAppB,OAAP,SAAcN,KAJdhE,EAAA,CADC2G,qBAKD3G,EAAA,CADCgH,oBAbU0mB,EAAY1tB,EAAA,CAdxB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJE,MAAO,QACP8oB,QAAS,UACT1e,KAAM,OACNsf,KAAM,OACNvb,SAAU,YAEZhM,SAAU,CACR2mB,QAASrlB,EACT0K,SAAU1N,EAAU4oB,EAAAA,oBAGXO,IAAqB3pB,iBGLhC,SAAA4pB,EACUzM,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAIJwM,EAAAvuB,UAAAwuB,WAAN,SAAiBvf,sEACf,MAAA,CAAA,EAAOnP,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBnN,EAAK,KAAKqN,KACxFtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAoM,GAAO5J,QAAQxC,OAC7B0f,oBAGEqM,EAAAvuB,UAAAyuB,YAAN,SAAkBC,sEAChB,MAAA,CAAA,EAAO5uB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,4BAA4BsS,EAAM,KAAKpS,KACnGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAoM,GAAO5J,QAAQxC,OAC7B0f,oBAGEqM,EAAAvuB,UAAA2uB,eAAN,SAAqBrL,sEACnB,MAAA,CAAA,EAAOxjB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,iBAAiBhH,KACvGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAoQ,GAAW5N,QAAQxC,OACjC0f,oBAGEqM,EAAAvuB,UAAA4uB,UAAN,SAAgBtL,EAAkBuL,EAActmB,EAAcumB,4EAc5D,OAbI7E,GAAS,IAAIC,EAAAA,YAAa7V,IAAI,OAAQwa,EAAK5S,YAC5C5H,IAAI,OAAQ9L,EAAK0T,YAChB6S,IACEA,EAAQZ,QACVjE,EAASA,EAAO5V,IAAI,QAAS+Y,EAAAA,qBAAqB0B,EAAQZ,SAExDY,EAAQC,SACV9E,EAASA,EAAO5V,IAAI,SAAUya,EAAQC,SAEpCD,EAAQE,iBACV/E,EAASA,EAAO5V,IAAI,kBAAmBya,EAAQE,eAAe/S,cAGlE,CAAA,EAAOnc,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,WAAY,CAAC2G,OAAMA,EAAEgF,QAAS,aAAa3S,KACjItV,EAAAA,KAAI,SAAAxE,GAAU,MAAA,CACZ0sB,OAAQ1sB,EAAO2sB,QAAQ/S,IAAI,gBAC3BxX,KAAMopB,GAAgBhpB,QAAQxC,EAAOI,WAEvCsf,oBAGEqM,EAAAvuB,UAAAovB,qBAAN,SAA2B9L,sEACzB,MAAA,CAAA,EAAOxjB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,wBAAwBhH,KAC9GtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAwN,GAAiBhL,QAAQxC,OACvC0f,oBAGEqM,EAAAvuB,UAAAqvB,SAAN,SAAe/L,EAAkBuL,EAActmB,EAAcumB,8EA2B3D,OA1BI7E,GAAS,IAAIC,EAAAA,YAAa7V,IAAI,OAAQwa,EAAK5S,YAC3C1T,IACF0hB,EAASA,EAAO5V,IAAI,OAAQ9L,EAAK0T,aAE/B6S,EAAQQ,oBACVrF,EAASA,EAAO5V,IAAI,sBAAuBya,EAAQQ,kBAAkBrT,aAEnE6S,EAAQE,iBACV/E,EAASA,EAAO5V,IAAI,kBAAmBya,EAAQE,eAAe/S,aAE5D6S,EAAQS,eACVtF,EAASA,EAAO5V,IAAI,gBAAiBya,EAAQS,aAAatT,aAExD6S,EAAQrY,SACVwT,EAASA,EAAO5V,IAAI,UAAWya,EAAQrY,OAAOwF,aAE5C6S,EAAQ5e,SACV+Z,EAASA,EAAO5V,IAAI,SAAUN,EAAAA,aAAa+a,EAAQ5e,UAEjD4e,EAAQU,WACJA,EAAWV,EAAQU,SAASxoB,KAAI,SAAA1G,GAAK,OAAAyT,EAAAA,aAAazT,MACxD2pB,EAASA,EAAO5V,IAAI,WAAYmb,EAASrjB,KAAK,OAE5C2iB,EAAQW,oBACVxF,EAASA,EAAO5V,IAAI,sBAAuBya,EAAQW,kBAAkBxT,aAEvE,CAAA,EAAOnc,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,UAAW,CAAC2G,OAAMA,EAAEgF,QAAS,aAAa3S,KAChItV,EAAAA,KAAI,SAAAxE,GAAU,MAAA,CACZ0sB,OAAQ1sB,EAAO2sB,QAAQ/S,IAAI,gBAC3BxX,KAAMqR,GAAKjR,QAAQxC,EAAOI,WAE5Bsf,oBAGEqM,EAAAvuB,UAAA0vB,WAAN,SAAiBpM,EAAkBqM,4EAEjC,OADM1F,GAAS,IAAIC,EAAAA,YAAa7V,IAAI,aAAcsb,EAAY,IAAM,IACpE,CAAA,EAAO7vB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,uBAAwB,CAAC2G,OAAMA,IACpH3N,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAwN,GAAiBhL,QAAQxC,OAC5C0f,oBAGCqM,EAAAvuB,UAAA4vB,YAAN,SAAkBtM,sEAChB,MAAA,CAAA,EAAOxjB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,cAAchH,KACpGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA2rB,GAAcnpB,QAAQxC,OACpC0f,oBAGEqM,EAAAvuB,UAAA6vB,WAAN,SAAiBvM,EAAkBzQ,4EAGjC,OAFMoX,EAASpX,GAAW,IAAIqX,EAAAA,YAAa7V,IAAI,WAAYxB,GAAY,IAAIqX,EAAAA,WAE3E,CAAA,EAAOpqB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,YAAa,CAAC2G,OAAMA,IAAG3N,KAC7GtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA8rB,GAAatpB,QAAQxC,OACnC0f,oBAGEqM,EAAAvuB,UAAA8vB,UAAN,SAAgBxM,sEACd,MAAA,CAAA,EAAOxjB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,YAAYhH,KAClGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAmS,GAAY3P,QAAQxC,OAClC0f,6DA9GkBS,EAAAA,kBACGlF,0IAHd8Q,EAAS3tB,EAAA,CADrB2c,EAAAA,WAAW,CAACC,WAAY,UACZ+Q,oBCRX,SAAAwB,EACUjO,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAIJgO,EAAA/vB,UAAAgwB,kBAAN,SAAwB1M,EAAkBuL,EAActmB,EAAcuI,eAAA,IAAAA,IAAAA,EAAuBsZ,EAAAA,eAAe6F,wEAI1G,OAHMhG,GAAS,IAAIC,EAAAA,YAAa7V,IAAI,OAAQwa,EAAK5S,YAC9C5H,IAAI,OAAQ9L,EAAK0T,YACjB5H,IAAI,OAAQ+V,EAAAA,eAAetZ,IAC9B,CAAA,EAAOhR,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,SAAU,CAAC2G,OAAMA,EAAEgF,QAAS,aACjH3S,KAAKtV,EAAAA,KAAI,SAAAoc,GAAY,MAAA,CACpB8L,OAAQ9L,EAAS+L,QAAQ/S,IAAI,gBAC7BxX,KAAMyoB,GAAWroB,QAAQoe,EAASxgB,WAEnCsf,oBAGC6N,EAAA/vB,UAAAkwB,kBAAN,SAAwB5M,sEACtB,MAAA,CAAA,EAAOxjB,KAAKgiB,WAAW1F,IAActc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,uBAC5FhH,KAAKtV,EAAAA,KAAI,SAAAoc,GAAY,OAAAA,GAAYA,EAAS3iB,OAAS,EAAI4sB,GAAWroB,QAAQoe,EAAS,IAAM,SACzFlB,oBAGC6N,EAAA/vB,UAAAmwB,sBAAN,SAA4B7M,sEAC1B,MAAA,CAAA,EAAOxjB,KAAKgiB,WAAW1F,IAActc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,uBAC5FhH,KAAKtV,EAAAA,KAAI,SAAAoc,GAAY,OAAAiK,GAAWroB,QAAQoe,OACxClB,oBAGC6N,EAAA/vB,UAAAowB,YAAN,SAAkBC,sEAChB,MAAA,CAAA,EAAOvwB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,uBAAuBiU,EAAM,KACxF/T,KAAKtV,EAAAA,KAAI,SAAAoc,GAAY,OAAAiK,GAAWroB,QAAQoe,OACxClB,oBAGC6N,EAAA/vB,UAAAswB,sBAAN,SAA4BC,sEAC1B,MAAA,CAAA,EAAOzwB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,SAAU,CAACtB,QAAS,aACjH3S,KAAKtV,EAAAA,KAAI,SAAAoc,GAAY,MAAA,CACpB8L,OAAQ9L,EAAS+L,QAAQ/S,IAAI,gBAC7BxX,KAAMyoB,GAAWroB,QAAQoe,EAASxgB,WAEnCsf,6DAzCiBS,EAAAA,kBACGlF,0IAHdsS,EAAanvB,EAAA,CADzB2c,EAAAA,WAAW,CAACC,WAAY,UACZuS,oBCgBX,SAAAS,EACU1O,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAIJyO,EAAAxwB,UAAAywB,SAAN,SAAeC,sEACb,MAAA,CAAA,EAAO5wB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,iBAAiBsU,EAAO,KAAKpU,KACzFtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAsS,GAAU9P,QAAQxC,OAChC0f,oBAGEsO,EAAAxwB,UAAA2wB,uBAAN,SAA6BJ,EAAsB1B,EAActmB,EAAcumB,4EAuB7E,OAtBI7E,GAAS,IAAIC,EAAAA,YAAa7V,IAAI,OAAQwa,EAAK5S,YAAY5H,IAAI,OAAQ9L,EAAK0T,YACxE6S,IACEA,EAAQE,iBACV/E,EAASA,EAAO5V,IAAI,kBAAmBya,EAAQE,eAAe/S,aAE5D6S,EAAQrY,SACVwT,EAASA,EAAO5V,IAAI,UAAWya,EAAQrY,OAAOwF,aAE5C6S,EAAQQ,oBACVrF,EAASA,EAAO5V,IAAI,sBAAuBya,EAAQQ,kBAAkBrT,aAEnE6S,EAAQ8B,YACV3G,EAASA,EAAO5V,IAAI,aAAcya,EAAQ8B,UAAU3U,aAElD6S,EAAQS,eACVtF,EAASA,EAAO5V,IAAI,gBAAiBya,EAAQS,aAAatT,aAExD6S,EAAQ5e,SACV+Z,EAASA,EAAO5V,IAAI,SAAUN,EAAAA,aAAa+a,EAAQ5e,WAIvD,CAAA,EAAOpQ,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,eAAgB,CAACtB,QAAS,WAAYhF,OAAMA,IAAG3N,KAC7ItV,EAAAA,KAAI,SAAAoc,GACF,MAAO,CACL8L,OAAQ9L,EAAS+L,QAAQ/S,IAAI,gBAC7BxX,KAAMqR,GAAKjR,QAAQoe,EAASxgB,WAGhCsf,oBAGEsO,EAAAxwB,UAAA6wB,mBAAN,SAAyBvN,EAAkBuL,EAActmB,EAAcumB,4EAuBrE,OAtBI7E,GAAS,IAAIC,EAAAA,YAAa7V,IAAI,OAAQwa,EAAK5S,YAAY5H,IAAI,OAAQ9L,EAAK0T,YACxE6S,IACEA,EAAQE,iBACV/E,EAASA,EAAO5V,IAAI,kBAAmBya,EAAQE,eAAe/S,aAE5D6S,EAAQrY,SACVwT,EAASA,EAAO5V,IAAI,UAAWya,EAAQrY,OAAOwF,aAE5C6S,EAAQQ,oBACVrF,EAASA,EAAO5V,IAAI,sBAAuBya,EAAQQ,kBAAkBrT,aAEnE6S,EAAQ8B,YACV3G,EAASA,EAAO5V,IAAI,aAAcya,EAAQ8B,UAAU3U,aAElD6S,EAAQS,eACVtF,EAASA,EAAO5V,IAAI,gBAAiBya,EAAQS,aAAatT,aAExD6S,EAAQ5e,SACV+Z,EAASA,EAAO5V,IAAI,SAAUN,EAAAA,aAAa+a,EAAQ5e,WAIvD,CAAA,EAAOpQ,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,eAAgB,CAAC2L,QAAS,WAAYhF,OAAMA,IAAG3N,KACrItV,EAAAA,KAAI,SAAAoc,GACF,MAAO,CACL8L,OAAQ9L,EAAS+L,QAAQ/S,IAAI,gBAC7BxX,KAAMqR,GAAKjR,QAAQoe,EAASxgB,WAGhCsf,oBAGEsO,EAAAxwB,UAAA8wB,eAAN,SAAqBxN,EAAkBuL,EAActmB,EAAcumB,eAAA,IAAAA,IAAAA,EAAA,sEAQjE,OAPI7E,GAAS,IAAIC,EAAAA,YAAa7V,IAAI,OAAQwa,EAAK5S,YAAY5H,IAAI,OAAQ9L,EAAK0T,YACxE6S,EAAQiC,YACV9G,EAASA,EAAO5V,IAAI,aAAcya,EAAQiC,YAExCjC,EAAQV,OACVnE,EAASA,EAAO5V,IAAI,OAAQya,EAAQV,OAEtC,CAAA,EAAOtuB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,UAAW,CAAC2G,OAAMA,EAAEgF,QAAS,aAClH3S,KAAKtV,EAAAA,KAAI,SAAAoc,GAAY,MAAA,CACpB8L,OAAQ9L,EAAS+L,QAAQ/S,IAAI,gBAC7BxX,KAAMkQ,GAAU9P,QAAQoe,EAASxgB,WAC9Bsf,oBAGHsO,EAAAxwB,UAAAgxB,iBAAN,SAAuB/O,sEACrB,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsB6F,EAAM,KAAK3F,KAC7FtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAyT,GAAKjR,QAAQxC,OAC3B0f,oBAGEsO,EAAAxwB,UAAAixB,aAAN,SAAmBhP,sEACjB,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,2BAA2B6F,EAAM,WAAW3F,KACxGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAsS,GAAU9P,QAAQxC,OAChC0f,oBAGEsO,EAAAxwB,UAAAkxB,UAAN,SAAgBC,sEACd,MAAA,CAAA,EAAOrxB,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,qBAAsB+U,EAAU,CAAE1O,aAAc,SACxFP,oBAGCsO,EAAAxwB,UAAAoxB,cAAN,SAAoBV,sEAClB,MAAA,CAAA,EAAO5wB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,iBAAiBsU,EAAO,aAAa,CAACjO,aAAc,SAC/GP,6DAhHiBS,EAAAA,kBACGlF,0IAHd+S,EAAQ5vB,EAAA,CADpB2c,EAAAA,WAAW,CAACC,WAAY,UACZgT,OHpBDnC,GAAAA,EAAAA,eAAAA,EAAAA,aAAY,KACtBA,GAAA,KAAA,GAAA,OACAA,GAAAA,GAAA,OAAA,GAAA,SACAA,GAAAA,GAAA,SAAA,GAAA,eIFUgD,kBJWZ,SAAAC,mDASA,OATiC1xB,EAAA0xB,EAAAzrB,GAKxByrB,EAAAtsB,QAAP,SAAeJ,KAGR0sB,EAAApsB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAPU0pB,EAAW1wB,EAAA,CANvB8F,EAAc,CACbE,cAAe,CACb2qB,KAAM,OACNlpB,KAAM,WAGGipB,IAAoB3sB,kBAsBjC,SAAA6sB,mDAWA,OAXgC5xB,EAAA4xB,EAAA3rB,GAOvB2rB,EAAAxsB,QAAP,SAAeJ,KAGR4sB,EAAAtsB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBATU4pB,EAAU5wB,EAAA,CAXtB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJitB,YAAa,aACb1lB,KAAM,OACN2lB,QAAS,UAEX7qB,SAAU,CACRkF,KAAMD,MAGG0lB,IAAmB7sB,kBAoChC,SAAAgtB,IAAA,IAAAzb,EAAA,OAAArQ,GAAAA,EAAAlF,MAAAb,KAAAU,YAAAV,YAaEoW,EAAA0b,oBAAiE,KAkDnE,OA/D0BhyB,EAAA+xB,EAAA9rB,GAexBvG,OAAAgC,eAAIqwB,EAAA3xB,UAAA,WAAQ,KAMZ,WACE,OAAOF,KAAK+xB,eAPd,SAAa1vB,GACXrC,KAAK+xB,UAAY1vB,GAAS,GACtBrC,KAAKgyB,UACPhyB,KAAKiyB,8DAOTzyB,OAAAgC,eAAIqwB,EAAA3xB,UAAA,UAAO,KAMX,WACE,OAAOF,KAAKgyB,cAPd,SAAY3vB,GACVrC,KAAKgyB,SAAW3vB,GAAS,GACrBrC,KAAK+xB,WACP/xB,KAAKiyB,8DAOTJ,EAAA3xB,UAAA+xB,2BAAA,WAAA,IAAA7b,EAAApW,KACE,GAAKA,KAAKgyB,SAASrxB,OAAnB,CAIA,IAAMuxB,EAAWlyB,KAAK+xB,UAAU7qB,KAAI,SAAAtD,GAAK,OAAAA,EAAE6tB,QACrCU,EAAmBnyB,KAAKgyB,SAASI,QAAO,SAACC,EAAK3sB,GAClD,OAAIwsB,EAAStR,QAAQlb,EAAK4sB,YAAc,IAGnCD,EAAI3sB,EAAK4sB,cACZD,EAAI3sB,EAAK4sB,YAAc,GAEzBD,EAAI3sB,EAAK4sB,eALAD,IAOR,IACHryB,KAAK8xB,oBAAsB9xB,KAAK+xB,UAAU7qB,KAAI,SAAAxB,GAAQ,MAAA,CACpD6sB,QAAS7sB,EACT8sB,QAASL,EAAiBzsB,EAAK+rB,MAAQ/kB,KAAKya,MAAM,IAAMgL,EAAiBzsB,EAAK+rB,MAAQrb,EAAK4b,SAASrxB,QAAU,MAE7G2tB,MAAK,SAACmE,EAAGlzB,GAAM,OAAAkzB,EAAED,QAAUjzB,EAAEizB,SAAW,EAAI,OAI1CX,EAAA3sB,QAAP,SAAeJ,KAGR+sB,EAAAzsB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBA7DU+pB,EAAI/wB,EAAA,CAvBhB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ4b,OAAQ,SACRlQ,OAAQ,SACRuC,QAAS,SACTpK,KAAM,OACN6G,YAAa,cACb8iB,SAAU,WACVQ,OAAQ,SACRC,QAAS,UACTC,gBAAiB,iBACjBC,UAAW,YACXC,WAAY,aAEd/rB,SAAU,CACRqJ,OAAQ/K,EAAUkpB,EAAAA,cAClB2D,SAAUV,GACVkB,OAAQ1mB,EACR2mB,QAASjB,GACTqB,UAAWpsB,MAGFkrB,IAAahtB,kBK9C1B,SAAAmuB,mDAoBA,OApBgClzB,EAAAkzB,EAAAjtB,GAgBvBitB,EAAA9tB,QAAP,SAAeJ,KAGRkuB,EAAA5tB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAlBUkrB,EAAUlyB,EAAA,CAvBtB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJiG,QAAS,SACTsB,KAAM,OACNkC,KAAM,OACNwE,QAAS,SACTsgB,YAAa,aACbC,YAAa,aACb5kB,YAAa,aACbE,YAAa,aACbD,gBAAiB,gBACjBE,UAAW,WACXqkB,WAAY,YACZ3X,WAAY,aAEdpU,SAAU,CACRkF,KAAMD,EACNmC,KAAMH,EACN+kB,UAAWpsB,EACXwsB,SAAUxsB,MAGDqsB,IAAmBnuB,IDvBpB0sB,GAAAA,EAAAA,mBAAAA,EAAAA,iBAAgB,KAC1BA,GAAA,SAAA,GAAA,WACAA,GAAAA,GAAA,SAAA,GAAA,eENU6B,qBFuBZ,SAAAC,mDAYA,OAZgCvzB,EAAAuzB,EAAAttB,GAQvBstB,EAAAnuB,QAAP,SAAeJ,KAGRuuB,EAAAjuB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAVUurB,EAAUvyB,EAAA,CAdtB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJgW,UAAW,WACXlF,QAAS,SACTF,KAAM,OACNlF,OAAQ,UAEVrJ,SAAU,CACRuO,KAAMa,GACN6E,SAAUtC,GACVtI,OAAQ/K,EAAUksB,EAAAA,sBAGT8B,IAAmBxuB,IEvBpBuuB,GAAAA,EAAAA,iBAAAA,EAAAA,eAAc,KACxBA,GAAA,SAAA,GAAA,WACAA,GAAAA,GAAA,MAAA,GAAA,YCAUE,GCACC,KAAyBzV,GAAA,IACnCsV,EAAAA,eAAeI,UAAW,aAC3B1V,GAACsV,EAAAA,eAAeK,OAAQ,4BCkB1B,SAAAC,mDA0BA,OA1B+B5zB,EAAA4zB,EAAA3tB,GAU7BvG,OAAAgC,eAAIkyB,EAAAxzB,UAAA,OAAI,KAAR,WACE,OAAIF,KAAK2zB,YAAcP,EAAAA,eAAeK,MAC7BzzB,KAAK4zB,gBAEPL,GAA0BvzB,KAAK2zB,4CAGxCn0B,OAAAgC,eAAIkyB,EAAAxzB,UAAA,WAAQ,KAAZ,WACE,OAAOF,KAAKkX,SAASzK,WAAY,IAAIxG,MAAOwG,2CAIvCinB,EAAAxuB,QAAP,SAAeJ,KAGR4uB,EAAAtuB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAxBU4rB,EAAS5yB,EAAA,CAjBrB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJiO,QAAS,SACTxE,KAAM,OACN0lB,WAAY,YACZC,kBAAmB,kBACnB1kB,YAAa,cACb8H,SAAU,WACVnE,SAAU,YAEZhM,SAAU,CACR4sB,UAAWtuB,EAAU+tB,EAAAA,gBACrBjlB,KAAMH,EACNkJ,SAAUvQ,MAGD+sB,IAAkB7uB,IFpBnByuB,GAAAA,EAAAA,0BAAAA,EAAAA,wBAAuB,KACjCA,GAAA,SAAA,GAAA,WACAA,GAAAA,GAAA,SAAA,GAAA,eGUUS,GA+DAC,iBH3DZ,SAAAC,KAWA,OAJSA,EAAA/uB,QAAP,SAAeJ,KAGRmvB,EAAA7uB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBATUmsB,EAAenzB,EAAA,CAX3B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJwvB,cAAe,cACfC,aAAc,aACd/jB,OAAQ,UAEVrJ,SAAU,CACRqJ,OAAQ/K,EAAUiuB,EAAAA,6BAGTW,qBIHb,SAAAG,mDAYA,OAZ8Ct0B,EAAAs0B,EAAAruB,GAQrCquB,EAAAlvB,QAAP,SAAeJ,KAGRsvB,EAAAhvB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAVUssB,EAAwBtzB,EAAA,CAZpC8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ2vB,0BAA2B,yBAC3Bxd,mBAAoB,mBACpB6D,UAAW,WACX4Z,SAAU,YAEZvtB,SAAU,CACRiU,SAAUtC,OAGD0b,IAAiCvvB,kBCO9C,SAAA0vB,mDAmBA,OAnBsCz0B,EAAAy0B,EAAAxuB,GAUpCvG,OAAAgC,eAAI+yB,EAAAr0B,UAAA,SAAM,KAAV,WACE,OAA4B,OAApBF,KAAKw0B,YAAmD,OAA5Bx0B,KAAKy0B,sBAAoD,IAApBz0B,KAAKw0B,aAAoD,IAA5Bx0B,KAAKy0B,oDAItGF,EAAArvB,QAAP,SAAeJ,KAGRyvB,EAAAnvB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAjBUysB,EAAgBzzB,EAAA,CAjB5B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJyJ,KAAM,OACNoH,WAAY,aACZ2d,YAAa,aACbwB,oBAAqB,qBACrBC,mBAAoB,mBACpBC,aAAc,cACdjb,oBAAqB,sBAEvB5S,SAAU,CACRoH,KAAMH,EACNuH,WAAYzC,GACZ+hB,YAAaT,OAGJG,IAAyB1vB,IFR1BkvB,GAAAA,EAAAA,mBAAAA,EAAAA,iBAAgB,KAC1BA,GAAA,aAAA,GAAA,eACAA,GAAAA,GAAA,aAAA,GAAA,eACAA,GAAAA,GAAA,kBAAA,GAAA,oBACAA,GAAAA,GAAA,2BAAA,GAAA,6BACAA,GAAAA,GAAA,2BAAA,GAAA,6BACAA,GAAAA,GAAA,2BAAA,GAAA,6BACAA,GAAAA,GAAA,2BAAA,GAAA,6BACAA,GAAAA,GAAA,qBAAA,GAAA,uBACAA,GAAAA,GAAA,qBAAA,GAAA,uBACAA,GAAAA,GAAA,gCAAA,IAAA,kCACAA,GAAAA,GAAA,gCAAA,IAAA,kCACAA,GAAAA,GAAA,yBAAA,IAAA,2BACAA,GAAAA,GAAA,2BAAA,IAAA,6BACAA,GAAAA,GAAA,2BAAA,IAAA,6BACAA,GAAAA,GAAA,eAAA,IAAA,iBAEAA,GAAAA,GAAA,aAAA,IAAA,eACAA,GAAAA,GAAA,aAAA,IAAA,eACAA,GAAAA,GAAA,qBAAA,IAAA,uBACAA,GAAAA,GAAA,qBAAA,IAAA,uBACAA,GAAAA,GAAA,YAAA,IAAA,cACAA,GAAAA,GAAA,SAAA,IAAA,WACAA,GAAAA,GAAA,YAAA,IAAA,cACAA,GAAAA,GAAA,iBAAA,IAAA,mBACAA,GAAAA,GAAA,kBAAA,IAAA,oBAEAA,GAAAA,GAAA,aAAA,IAAA,eACAA,GAAAA,GAAA,YAAA,IAAA,cAEAA,GAAAA,GAAA,mBAAA,IAAA,qBACAA,GAAAA,GAAA,oBAAA,IAAA,sBACAA,GAAAA,GAAA,oBAAA,IAAA,sBACAA,GAAAA,GAAA,kBAAA,IAAA,oBAEAA,GAAAA,GAAA,mBAAA,IAAA,qBACAA,GAAAA,GAAA,kBAAA,IAAA,oBACAA,GAAAA,GAAA,yBAAA,IAAA,2BACAA,GAAAA,GAAA,yBAAA,IAAA,2BACAA,GAAAA,GAAA,wBAAA,IAAA,0BACAA,GAAAA,GAAA,kCAAA,IAAA,oCACAA,GAAAA,GAAA,kCAAA,IAAA,oCACAA,GAAAA,GAAA,sBAAA,IAAA,wBACAA,GAAAA,GAAA,kCAAA,IAAA,oCACAA,GAAAA,GAAA,kCAAA,IAAA,oCACAA,GAAAA,GAAA,+BAAA,IAAA,iCACAA,GAAAA,GAAA,wBAAA,IAAA,0BACAA,GAAAA,GAAA,sCAAA,IAAA,wCACAA,GAAAA,GAAA,sCAAA,IAAA,wCACAA,GAAAA,GAAA,kDAAA,IAAA,oDACAA,GAAAA,GAAA,kDAAA,IAAA,oDACAA,GAAAA,GAAA,wBAAA,IAAA,0BAEAA,GAAAA,GAAA,8BAAA,IAAA,gCACAA,GAAAA,GAAA,+BAAA,IAAA,iCACAA,GAAAA,GAAA,8BAAA,IAAA,gCACAA,GAAAA,GAAA,8BAAA,IAAA,gCACAA,GAAAA,GAAA,4BAAA,IAAA,8BACAA,GAAAA,GAAA,4BAAA,IAAA,8BACAA,GAAAA,GAAA,gCAAA,IAAA,kCACAA,GAAAA,GAAA,0BAAA,IAAA,6BAGUC,GAAAA,EAAAA,0BAAAA,EAAAA,wBAAuB,KACjCA,GAAA,OAAA,GAAA,SACAA,GAAAA,GAAA,IAAA,GAAA,UG7EUc,kBHwHZ,SAAAC,mDA8BA,OA9BkCj1B,EAAAi1B,EAAAhvB,GAqBhCvG,OAAAgC,eAAIuzB,EAAA70B,UAAA,YAAS,KAAb,WACE,OAAO,mCAIF60B,EAAA7vB,QAAP,SAAe7C,KAGR0yB,EAAA3vB,OAAP,SAAc/C,KAHdvB,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBA5BUitB,EAAYj0B,EAAA,CAxCxB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJmvB,WAAY,QACZ/uB,KAAM,OACNkwB,UAAW,YACX7mB,KAAM,OACN8mB,YAAa,aACbva,UAAW,WACXwa,KAAM,OACN5f,KAAM,OACN6f,YAAa,aACbC,WAAY,YACZC,kBAAmB,kBACnB9f,WAAY,aACZ+f,kBAAmB,mBACnB7a,gBAAiB,iBACjB8a,OAAQ,SACRC,UAAW,YACXC,QAAS,UACT3C,WAAY,aAEd/rB,SAAU,CACRqnB,MAAO/oB,EAAU0uB,EAAAA,kBACjBiB,UAAWhpB,EACXmC,KAAMH,EACN0nB,WAAY1C,GACZhY,SAAUtC,GACVwc,KAAMrD,GACNvc,KAAMa,GACNwf,WAAYtC,GACZuC,UAAWlC,GACXmC,gBAAiB5B,GACjB1e,WAAYzC,GACZgjB,iBAAkBvB,GAClBxZ,eAAgBhC,GAChB0c,QAASpwB,EAAU2uB,EAAAA,yBACnBjB,UAAWpsB,MAGFouB,IAAqBlwB,IGxHtBiwB,GAAAA,EAAAA,yBAAAA,EAAAA,uBAAsB,KAChCA,GAAA,IAAA,GAAA,MACAA,GAAAA,GAAA,UAAA,GAAA,YACAA,GAAAA,GAAA,KAAA,GAAA,WCHUiB,kBDmBZ,SAAAC,mDAYA,OAZ0Cl2B,EAAAk2B,EAAAjwB,GAQjCiwB,EAAA9wB,QAAP,SAAeJ,KAGRkxB,EAAA5wB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAVUkuB,EAAoBl1B,EAAA,CAbhC8F,EAAc,CACbE,cAAe,CACb6D,QAAS,SACTsrB,MAAO,QACPC,MAAO,QACPC,QAAS,UACTppB,MAAO,SAEThG,SAAU,CACRmvB,MAAO7wB,EAAUyvB,EAAAA,wBACjBqB,QAAS9wB,EAAUyvB,EAAAA,4BAGVkB,IAA6BnxB,iBEFxC,SAAAuxB,EACUpU,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAGJmU,EAAAl2B,UAAAm2B,SAAN,8EACE,MAAA,CAAA,EAAOr2B,KAAKgiB,WACT1F,IAAI,GAAGtc,KAAKiiB,cAAc3F,IAAI,UAAYtc,KAAKs2B,OAAM,wBACrD9Z,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAACA,MAClBsd,oBAGCgU,EAAAl2B,UAAAq2B,QAAN,SAAcxH,EAActmB,EAAcumB,eAAA,IAAAA,IAAAA,EAAA,gFACpC7E,GAAS,IAAIC,EAAAA,YACd7V,IAAI,OAAQwa,EAAK5S,YACjB5H,IAAI,OAAQ9L,EAAK0T,gBACpB,IAAkB2B,EAAA7Z,EAAAzE,OAAOwF,KAAKgqB,IAAQjqB,EAAA+Y,EAAAvb,QAAAwC,EAAApC,KAAAoC,EAAA+Y,EAAAvb,OAA3BtB,EAAG8D,EAAA1C,MACZ8nB,EAASA,EAAO5V,IAAItT,EAAK+tB,EAAQ/tB,qGAGnC,MAAA,CAAA,EAAOjB,KAAKgiB,WACT1F,IAAI,GAAGtc,KAAKiiB,cAAc3F,IAAI,UAAYtc,KAAKs2B,OAAM,iBAAkB,CAACnM,OAAMA,EAAEgF,QAAS,aACzF3S,KACCtV,EAAAA,KAAI,SAAAoc,GACF,IAAMxe,EAAuBiwB,GAAa7vB,QAAQoe,EAASxgB,MAC3D,MAAO,CACLssB,OAAQ9L,EAAS+L,QAAQ/S,IAAI,gBAC7BxX,KAAIA,OAGRsd,oBAGAgU,EAAAl2B,UAAAs2B,WAAN,SAAiBC,EAAwBlB,sEACvC,MAAA,CAAA,EAAOv1B,KAAKgiB,WACTqB,KAAK,GAAGrjB,KAAKiiB,cAAc3F,IAAI,UAAYtc,KAAKs2B,OAAM,iBAAiBG,EAAc,WAAY,CAAClB,OAAMA,IACxG/Y,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAiwB,GAAa7vB,QAAQJ,OACtCsd,oBAGCgU,EAAAl2B,UAAAw2B,cAAN,8EACE,MAAA,CAAA,EAAO12B,KAAKgiB,WACTqB,KAAK,GAAGrjB,KAAKiiB,cAAc3F,IAAI,UAAYtc,KAAKs2B,OAAM,wBAAyB,IAC/E9Z,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAiwB,GAAa7vB,QAAQJ,OACtCsd,oBAGCgU,EAAAl2B,UAAAy2B,wBAAN,8EACE,MAAA,CAAA,EAAO32B,KAAKgiB,WAAW1F,IAAI,GAAGtc,KAAKiiB,cAAc3F,IAAI,UAAYtc,KAAKs2B,OAAM,2BACzE9Z,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkxB,GAAqB9wB,QAAQJ,OAC9Csd,oBAGCgU,EAAAl2B,UAAA02B,2BAAN,SAAiC9xB,sEAC/B,MAAA,CAAA,EAAO9E,KAAKgiB,WAAWqB,KACrB,GAAGrjB,KAAKiiB,cAAc3F,IAAI,UAAYtc,KAAKs2B,OAAM,0BACjDN,GAAqB5wB,OAAON,IAE3B0X,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAszB,GAAqB9wB,QAAQxC,OAChD0f,6DA1DiBS,EAAAA,kBACGlF,0IALdyY,EAAmBt1B,EAAA,CAD/B2c,EAAAA,WAAW,CAACC,WAAY,UACZ0Y,qBCZb,SAAAS,IAAA,IAAAzgB,EAAA,OAAArQ,GAAAA,EAAAlF,MAAAb,KAAAU,YAAAV,YACYoW,EAAAkgB,OAAS,mBADgBx2B,EAAA+2B,EAAA9wB,uIAAxB8wB,EAAe/1B,EAAA,CAD3B2c,EAAAA,WAAW,CAACC,WAAY,UACZmZ,IAAwBT,mBCArC,SAAAU,IAAA,IAAA1gB,EAAA,OAAArQ,GAAAA,EAAAlF,MAAAb,KAAAU,YAAAV,YACYoW,EAAAkgB,OAAS,uBADmBx2B,EAAAg3B,EAAA/wB,uIAA3B+wB,EAAkBh2B,EAAA,CAD9B2c,EAAAA,WAAW,CAACC,WAAY,UACZoZ,IAA2BV,kBCKtC,SAAAW,EACU/U,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAGJ8U,EAAA72B,UAAA82B,UAAN,8EACE,MAAA,CAAA,EAAOh3B,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,6BACvCE,KACCtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAgG,EAAK5F,QAAQJ,OACzBsd,oBAGA2U,EAAA72B,UAAA+2B,UAAN,8EACE,MAAA,CAAA,EAAOj3B,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBACvCE,KACCtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA+D,EAAM3D,QAAQJ,OAC1Bsd,6DAjBgBS,EAAAA,kBACGlF,0IAHdoZ,EAAYj2B,EAAA,CADxB2c,EAAAA,WAAW,CAACC,WAAY,UACZqZ,qBCGb,SAAAG,mDAYA,OAZwCp3B,EAAAo3B,EAAAnxB,GAQ/BmxB,EAAAhyB,QAAP,SAAeJ,KAGRoyB,EAAA9xB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAVUovB,EAAkBp2B,EAAA,CAT9B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJiO,QAAS,SACT5F,MAAO,QACPF,WAAY,YACZD,UAAW,eAGFsqB,IAA2BryB,kBC0CxC,SAAAsyB,mDA8BA,OA9ByCr3B,EAAAq3B,EAAApxB,GA0BhCoxB,EAAAjyB,QAAP,SAAeJ,KAGRqyB,EAAA/xB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBA5BUqvB,EAAmBr2B,EAAA,CA7C/B8F,EAAc,CACbE,cAAe,CACbqH,KAAM,OACNuM,UAAW,WACXQ,qBAAsB,qBACtBT,gBAAiB,iBACjBxO,KAAM,OACNoS,MAAO,QACPC,SAAU,UACV9P,YAAa,aACbD,gBAAiB,gBACjB6oB,WAAY,YACZC,aAAc,cACdC,WAAY,YACZC,cAAe,eACfC,YAAa,aACbC,aAAc,cACdC,aAAc,cACdC,eAAgB,gBAChBC,cAAe,eACfC,cAAe,eACfC,cAAe,eACfC,aAAc,cACdC,eAAgB,gBAChBC,SAAU,WACVC,eAAgB,gBAChBC,mBAAoB,oBACpBC,gBAAiB,iBACjBC,eAAgB,gBAChBC,qBAAsB,qBACtBC,yBAA0B,yBAC1BC,sBAAuB,sBACvB3lB,OAAQ,SACR4lB,OAAQ,SACR5Y,OAAQ,UAEV9Y,SAAU,CACRoH,KAAMH,EACNgN,SAAUtC,GACV0C,mBAAoBb,GACpBQ,eAAgBhC,GAChB9M,KAAMD,EACNqS,MAAOvY,MAGEqxB,IAA4BrX,KNnD7BiW,GAAAA,EAAAA,sBAAAA,EAAAA,oBAAmB,KAC7BA,GAAA,QAAA,GAAA,UACAA,GAAAA,GAAA,UAAA,GAAA,YACAA,GAAAA,GAAA,SAAA,GAAA,eOHU2C,kBPsBZ,SAAAC,mDAYA,OAZoC74B,EAAA64B,EAAA5yB,GAQ3B4yB,EAAAzzB,QAAP,SAAeJ,KAGR6zB,EAAAvzB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAVU6wB,EAAc73B,EAAA,CAhB1B8F,EAAc,CACbE,cAAe,CACb8xB,QAAS,UACTlf,MAAO,QACPmf,UAAW,YACXC,MAAO,QACPC,OAAQ,UAEVhyB,SAAU,CACR6xB,QAASvzB,EAAU0wB,EAAAA,qBACnBrc,MAAOrU,EAAU0wB,EAAAA,qBACjB8C,UAAWxzB,EAAU0wB,EAAAA,qBACrB+C,MAAOzzB,EAAU0wB,EAAAA,qBACjBgD,OAAQ1zB,EAAU0wB,EAAAA,yBAGT4C,IAAuB9zB,kBQOpC,SAAAm0B,mDA4BA,OA5BgCl5B,EAAAk5B,EAAAjzB,GAwBvBizB,EAAA9zB,QAAP,SAAeJ,KAGRk0B,EAAA5zB,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBA1BUkxB,EAAUl4B,EAAA,CA5BtB8F,EAAc,CACbE,cAAe,CACbmyB,SAAU,UACVC,eAAgB,eAChBC,sBAAuB,sBACvBC,iBAAkB,iBAClBC,WAAY,YACZC,mBAAoB,mBACpBC,iBAAkB,iBAClBC,iBAAkB,iBAClBC,eAAgB,eAChBC,gBAAiB,gBACjBC,iBAAkB,iBAClBC,eAAgB,eAChBC,mBAAoB,mBACpBC,kBAAmB,kBACnBC,eAAgB,eAChBC,iBAAkB,iBAClBC,gBAAiB,gBACjBC,kBAAmB,kBACnBC,qBAAsB,qBACtBC,uBAAwB,uBACxBxhB,KAAM,QAER7R,SAAU,CACR6R,KAAMvT,EAAU6Q,EAAAA,kBAGP8iB,IAAmBn0B,iBCR9B,SAAAw1B,EACUrY,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAGJoY,EAAAn6B,UAAA+uB,OAAN,SAAaqL,EAAeC,4EAK1B,OAJIpQ,GAAS,IAAKC,EAAAA,YAAc7V,IAAI,SAAU+lB,GAC1CC,IACFpQ,EAASA,EAAO5V,IAAI,QAASgmB,EAAQpe,aAEvC,CAAA,EAAOnc,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAiB,CAAC6N,OAAMA,IAC/D3N,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkJ,EAAK9I,QAAQJ,OAC9Bsd,oBAGCiY,EAAAn6B,UAAAC,OAAN,SAAagO,sEACX,MAAA,CAAA,EAAOnO,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAiBtO,EAAK5I,OAAO+I,IACrEqO,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkJ,EAAK9I,QAAQJ,OAC9Bsd,oBAGCiY,EAAAn6B,UAAAgiB,QAAN,SAAcvL,sEACZ,MAAA,CAAA,EAAO3W,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,KAC7D6F,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkJ,EAAK9I,QAAQJ,OAC9Bsd,oBAGCiY,EAAAn6B,UAAAs6B,cAAN,SAAoB7jB,sEAClB,MAAA,CAAA,EAAO3W,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,YAC7D6F,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAk0B,GAAW9zB,QAAQJ,OACpCsd,oBAGCiY,EAAAn6B,UAAAu6B,OAAN,SAAa9jB,EAAgB+jB,sEAC3B,MAAA,CAAA,EAAO16B,KAAKgiB,WACT2Y,MAAS36B,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,IAAK3I,EAAK5I,OAAOs1B,IAChFle,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkJ,EAAK9I,QAAQJ,OAC9Bsd,oBAGCiY,EAAAn6B,UAAA06B,OAAN,SAAazsB,sEACX,MAAA,CAAA,EAAOnO,KAAKgiB,WACT4Y,OAAU56B,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBnO,EAAKzJ,GAAE,KACjE0d,oBAGCiY,EAAAn6B,UAAA26B,cAAN,SAAoBlkB,sEAClB,MAAA,CAAA,EAAO3W,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,gBAC7D6F,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA6zB,GAAezzB,QAAQJ,OACxCsd,oBAGCiY,EAAAn6B,UAAA46B,iBAAN,SAAuBnkB,EAAgBokB,sEACrC,MAAA,CAAA,EAAO/6B,KAAKgiB,WACT2Y,MAAS36B,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,eAAgBgiB,GAAevzB,OAAO21B,IACrGve,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA6zB,GAAezzB,QAAQJ,OACxCsd,oBAGCiY,EAAAn6B,UAAAmiB,SAAN,SAAe1L,EAAgB8Z,4EAK7B,OAJItG,EAAS,IAAIC,EAAAA,WACbqG,IACFtG,EAASA,EAAO5V,IAAI,gBAAiBkc,EAAatU,aAEpD,CAAA,EAAOnc,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,UAAW,CAACwT,OAAMA,IAC/E3N,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4T,GAASxT,QAAQJ,OAClCsd,oBAGCiY,EAAAn6B,UAAA86B,eAAN,SAAqBrkB,EAAgBskB,EAAoBriB,sEACvD,MAAA,CAAA,EAAO5Y,KAAKgiB,WACT2Y,MAAS36B,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,UAAUskB,EAAU,SAAU,CAACriB,KAAM1C,EAAAA,aAAa0C,KACjH4D,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4T,GAASxT,QAAQJ,OAClCsd,oBAGCiY,EAAAn6B,UAAAg7B,iBAAN,SAAuBvkB,EAAgBskB,EAAoBE,sEACzD,MAAA,CAAA,EAAOn7B,KAAKgiB,WACT2Y,MAAS36B,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,UAAUskB,EAAU,WAAY,CAACpiB,OAAQsiB,EAAWhf,aACnHK,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4T,GAASxT,QAAQJ,OAClCsd,oBAGCiY,EAAAn6B,UAAAk7B,WAAN,SAAiBpgB,sEACf,MAAA,CAAA,EAAOhb,KAAKgiB,WACT4Y,OAAU56B,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBtB,EAASrE,OAAM,UAAUqE,EAAStW,GAAE,KAC9F0d,oBAGCiY,EAAAn6B,UAAAm7B,YAAN,SAAkB1kB,EAAgB1K,sEAChC,MAAA,CAAA,EAAOjM,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,UAAW,CAACjS,GAAIuH,EAAKvH,KACnF8X,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkJ,EAAK9I,QAAQJ,OAC9Bsd,oBAGCiY,EAAAn6B,UAAAo7B,WAAN,SAAiB3kB,sEACf,MAAA,CAAA,EAAO3W,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,aAC7D6F,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkuB,GAAW9tB,QAAQJ,OACpCsd,oBAGCiY,EAAAn6B,UAAAq7B,WAAN,SAAiB5kB,EAAgB1K,sEAC/B,MAAA,CAAA,EAAOjM,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,YAAa,CAAC1K,KAAIA,IAChFuQ,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkuB,GAAW9tB,QAAQJ,OACpCsd,oBAGCiY,EAAAn6B,UAAAs7B,aAAN,SAAmBC,sEACjB,MAAA,CAAA,EAAOz7B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,uBAAuBmf,EAAO/2B,GAAE,WAAY,IACpF8X,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkuB,GAAW9tB,QAAQJ,OACpCsd,oBAGCiY,EAAAn6B,UAAAw7B,cAAN,SAAoBD,sEAClB,MAAA,CAAA,EAAOz7B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,uBAAuBmf,EAAO/2B,GAAE,YAAa,IACrF8X,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkuB,GAAW9tB,QAAQJ,OACpCsd,oBAGCiY,EAAAn6B,UAAAy7B,aAAN,SAAmBF,sEACjB,MAAA,CAAA,EAAOz7B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,uBAAuBmf,EAAO/2B,GAAE,WAAY,IACpF8X,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkuB,GAAW9tB,QAAQJ,OACpCsd,oBAGCiY,EAAAn6B,UAAA07B,mBAAN,SAAyBjlB,sEACvB,MAAA,CAAA,EAAO3W,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,sBAC7D6F,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAoyB,GAAmBhyB,QAAQJ,OAC5Csd,oBAGCiY,EAAAn6B,UAAA27B,mBAAN,SAAyBllB,EAAgB8kB,sEACvC,MAAA,CAAA,EAAOz7B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,qBAAsBugB,GAAmB9xB,OAAOq2B,IAC9Gjf,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAoyB,GAAmBhyB,QAAQJ,OAC5Csd,oBAGCiY,EAAAn6B,UAAA47B,qBAAN,SAA2BL,sEACzB,MAAA,CAAA,EAAOz7B,KAAKgiB,WACT4Y,OAAU56B,KAAKiiB,cAAc3F,IAAI,UAAS,4BAA4Bmf,EAAO/2B,GAAE,KAC/E0d,oBAGCiY,EAAAn6B,UAAA67B,qBAAN,SAA2BN,sEACzB,MAAA,CAAA,EAAOz7B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,4BAA4Bmf,EAAO/2B,GAAE,WAAY,IACzF8X,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAoyB,GAAmBhyB,QAAQJ,OAC5Csd,oBAGCiY,EAAAn6B,UAAA87B,SAAN,SAAerlB,EAAgBslB,eAAA,IAAAA,IAAAA,GAAA,+DAC7B,MAAA,CAAA,EAAOj8B,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,WAAUslB,EAAU,aAAe,KAChGzf,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA+sB,GAAK3sB,QAAQJ,OAC9Bsd,oBAGCiY,EAAAn6B,UAAAg8B,WAAN,SAAiBvlB,EAAgBue,sEAC/B,MAAA,CAAA,EAAOl1B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,UAAWkb,GAAKzsB,OAAO8vB,IACrF1Y,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA+sB,GAAK3sB,QAAQJ,OAC9Bsd,oBAGCiY,EAAAn6B,UAAAi8B,kBAAN,SAAwBxlB,sEACtB,MAAA,CAAA,EAAO3W,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,gBAC7D6F,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAmZ,GAAoB/Y,QAAQJ,OAC7Csd,oBAGCiY,EAAAn6B,UAAAk8B,uBAAN,SAA6BzlB,sEAC3B,MAAA,CAAA,EAAO3W,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,2BAC7D6F,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAqyB,GAAoBjyB,QAAQJ,OAC7Csd,oBAGCiY,EAAAn6B,UAAAm8B,SAAN,SAAe1lB,sEACb,MAAA,CAAA,EAAO3W,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,SAAU,IACxE6F,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkuB,GAAW9tB,QAAQJ,OACpCsd,oBAGCiY,EAAAn6B,UAAAo8B,UAAN,SAAgB3lB,sEACd,MAAA,CAAA,EAAO3W,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,UAAW,IACzEyL,oBAGCiY,EAAAn6B,UAAAqvB,SAAN,SAAe5Y,EAAgBslB,eAAA,IAAAA,IAAAA,GAAA,+DAC7B,MAAA,CAAA,EAAOj8B,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,WAAUslB,EAAU,aAAe,KAChGzf,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAqR,GAAKjR,QAAQJ,OAC9Bsd,oBAGCiY,EAAAn6B,UAAAq8B,WAAN,SAAiB5lB,EAAgBrB,sEAC/B,MAAA,CAAA,EAAOtV,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,UAAWR,GAAK/Q,OAAOkQ,IACrFkH,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAqR,GAAKjR,QAAQJ,OAC9Bsd,oBAGCiY,EAAAn6B,UAAAs8B,cAAN,SAAoB7lB,sEAClB,MAAA,CAAA,EAAO3W,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,YAC7D6F,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4uB,GAAUxuB,QAAQJ,OACnCsd,oBAGCiY,EAAAn6B,UAAAu8B,gBAAN,SAAsB9lB,EAAgBif,sEACpC,MAAA,CAAA,EAAO51B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,WAAY+c,GAAUtuB,OAAOwwB,IAC3FpZ,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4uB,GAAUxuB,QAAQJ,OACnCsd,oBAGCiY,EAAAn6B,UAAA2uB,eAAN,SAAqBlY,sEACnB,MAAA,CAAA,EAAO3W,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,iBAC7D6F,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAgO,GAAW5N,QAAQJ,OACpCsd,oBAGCiY,EAAAn6B,UAAAw8B,mBAAN,SAAyB/lB,sEACvB,MAAA,CAAA,EAAO3W,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,sBAC7D6F,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAiU,GAAe7T,QAAQJ,OACxCsd,oBAGCiY,EAAAn6B,UAAAy8B,qBAAN,SAA2BhmB,sEACzB,MAAA,CAAA,EAAO3W,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,wBAC7D6F,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAyvB,GAAiBrvB,QAAQJ,OAC1Csd,oBAGCiY,EAAAn6B,UAAA08B,mBAAN,SAAyBjmB,EAAgB8Z,EAAsB1B,EAActmB,4EAK3E,OAJI0hB,GAAS,IAAIC,EAAAA,YAAa7V,IAAI,OAAQwa,EAAK5S,YAC3C1T,IACF0hB,EAASA,EAAO5V,IAAI,OAAQ9L,EAAK0T,aAEnC,CAAA,EAAOnc,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,gBAAgB8Z,EAAY,UAAW,CAACtG,OAAMA,EAAEgF,QAAS,aACtH3S,KAAKtV,EAAAA,KAAI,SAACoc,GACT,MAAO,CACL8L,OAAQ9L,EAAS+L,QAAQ/S,IAAI,gBAC7BxX,KAAMqR,GAAKjR,QAAQoe,EAASxgB,WAG/Bsf,oBAGCiY,EAAAn6B,UAAA28B,uBAAN,SAA6BC,sEAC3B,MAAA,CAAA,EAAO98B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,6BAA6BwgB,EAAQ,WAAY,IACzFtgB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAyvB,GAAiBrvB,QAAQJ,OAC1Csd,oBAGCiY,EAAAn6B,UAAA68B,wBAAN,SAA8BD,sEAC5B,MAAA,CAAA,EAAO98B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,6BAA6BwgB,EAAQ,YAAa,IAC1FtgB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAyvB,GAAiBrvB,QAAQJ,OAC1Csd,oBAGCiY,EAAAn6B,UAAA88B,iBAAN,SAAuBrmB,EAAgBsmB,sEACrC,MAAA,CAAA,EAAOj9B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,cAAgB,CAAC1K,KAAMD,EAAK5G,OAAO63B,KACjGzgB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4T,GAASxT,QAAQJ,OAClCsd,oBAGCiY,EAAAn6B,UAAAg9B,YAAN,SAAkBjC,sEAChB,MAAA,CAAA,EAAOj7B,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,qBAAqB2e,EAAU,KACtEze,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4T,GAASxT,QAAQJ,OAClCsd,oBAGCiY,EAAAn6B,UAAAi9B,eAAN,SAAqBlC,EAAoBgC,sEACvC,MAAA,CAAA,EAAOj9B,KAAKgiB,WACT2Y,MAAS36B,KAAKiiB,cAAc3F,IAAI,UAAS,qBAAqB2e,EAAU,IAAK,CAAChvB,KAAMD,EAAK5G,OAAO63B,KAChGzgB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4T,GAASxT,QAAQJ,OAClCsd,oBAGCiY,EAAAn6B,UAAAk9B,eAAN,SAAqBnC,sEACnB,MAAA,CAAA,EAAOj7B,KAAKgiB,WACT4Y,OAAU56B,KAAKiiB,cAAc3F,IAAI,UAAS,qBAAqB2e,EAAU,KACzE7Y,oBAGCiY,EAAAn6B,UAAAm9B,oBAAN,SAA0BpC,sEACxB,MAAA,CAAA,EAAOj7B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,qBAAqB2e,EAAU,iBAAkB,IACzF7Y,6DAzTiBS,EAAAA,kBACGlF,0IAHd0c,EAAOv5B,EAAA,CADnB2c,EAAAA,WAAW,CAACC,WAAY,UACZ2c,oBCbX,SAAAiD,EACUtb,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAGJqb,EAAAp9B,UAAAq9B,aAAN,SAAmBC,sEACjB,MAAA,CAAA,EAAOx9B,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBkhB,EAAW,KACxEhhB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4uB,GAAUxuB,QAAQJ,OACnCsd,oBAGCkb,EAAAp9B,UAAAu9B,gBAAN,SAAsB7H,sEACpB,MAAA,CAAA,EAAO51B,KAAKgiB,WACT2Y,MAAS36B,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBsZ,EAAUlxB,GAAE,IAAKgvB,GAAUtuB,OAAOwwB,IACjGpZ,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4uB,GAAUxuB,QAAQJ,OACnCsd,oBAGCkb,EAAAp9B,UAAAw9B,gBAAN,SAAsBF,sEACpB,MAAA,CAAA,EAAOx9B,KAAKgiB,WACT4Y,OAAU56B,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBkhB,EAAW,KAC3Epb,oBAGCkb,EAAAp9B,UAAAy9B,oBAAN,SAA0BH,sEACxB,MAAA,CAAA,EAAOx9B,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBkhB,EAAW,aACxEhhB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAmvB,GAAgB/uB,QAAQJ,OACzCsd,oBAGCkb,EAAAp9B,UAAA09B,sBAAN,SAA4BJ,EAAqBvC,sEAC/C,MAAA,CAAA,EAAOj7B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBkhB,EAAW,YAAa,CAACrJ,aAAc8G,IACrGze,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAmvB,GAAgB/uB,QAAQJ,OACzCsd,oBAGCkb,EAAAp9B,UAAA29B,sBAAN,SAA4BhI,sEAC1B,MAAA,CAAA,EAAO71B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,6BAA6BuZ,EAAgBnxB,GAAE,WAAY,IACnG8X,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAmvB,GAAgB/uB,QAAQJ,OACzCsd,oBAGCkb,EAAAp9B,UAAA49B,uBAAN,SAA6BjI,sEAC3B,MAAA,CAAA,EAAO71B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,6BAA6BuZ,EAAgBnxB,GAAE,YAAa,IACpG8X,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAmvB,GAAgB/uB,QAAQJ,OACzCsd,6DAjDiBS,EAAAA,kBACGlF,0IAHd2f,EAAYx8B,EAAA,CADxB2c,EAAAA,WAAW,CAACC,WAAY,UACZ4f,qBCWb,SAAAS,mDAaA,OAboCj+B,EAAAi+B,EAAAh4B,GAS3Bg4B,EAAA74B,QAAP,SAAeJ,KAGRi5B,EAAA34B,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAXUi2B,EAAcj9B,EAAA,CAf1B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJE,MAAO,QACP8oB,QAAS,UACTyC,KAAM,OACNuC,OAAQ,SACRI,WAAY,aAEd/rB,SAAU,CACR2mB,QAASrlB,EACTqqB,OAAQ1mB,EACR+mB,UAAWpsB,MAGFo3B,IAAuBl5B,iBCVpC,SAAAm5B,KAUA,OAJSA,EAAA94B,QAAP,SAAeJ,KAGRk5B,EAAA54B,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBARUk2B,EAAqBl9B,EAAA,CAPjC8F,EAAc,CACbE,cAAe,CACbm3B,SAAU,UACVhtB,YAAa,aACbitB,qBAAsB,yBAGbF,qBAyBb,SAAAG,mDAaA,OAbwCr+B,EAAAq+B,EAAAp4B,GAS/Bo4B,EAAAj5B,QAAP,SAAeJ,KAGRq5B,EAAA/4B,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAXUq2B,EAAkBr9B,EAAA,CAb9B8F,EAAc,CACbE,cAAe,CACbmK,YAAa,aACbitB,qBAAsB,qBACtBE,aAAc,cACdC,sBAAuB,sBACvBC,OAAQ,SACRxmB,oBAAqB,qBAEvB/Q,SAAU,CACRu3B,OAAQ34B,EAAUq4B,QAGTG,IAA2Bt5B,ILhC5B6zB,GAAAA,EAAAA,0BAAAA,EAAAA,wBAAuB,KACjCA,GAAA,KAAA,GAAA,OACAA,GAAAA,GAAA,YAAA,GAAA,cACAA,GAAAA,GAAA,OAAA,GAAA,aMFU6F,kBNkBZ,SAAAC,mDAYA,OAZqC1+B,EAAA0+B,EAAAz4B,GAQ5By4B,EAAAt5B,QAAP,SAAeJ,KAGR05B,EAAAp5B,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAVU02B,EAAe19B,EAAA,CAb3B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ6D,KAAM,OACNvC,KAAM,OACN4M,cAAe,eACfxC,OAAQ,UAEVrJ,SAAU,CACRf,KAAMF,EACNsK,OAAQ/K,EAAUqzB,EAAAA,6BAGT8F,IAAwB35B,YOrBrB45B,GAAc99B,GAC5B,OAAIA,GAAU,EACL,GAEFhB,MAAMkB,MAAM,KAAMlB,MAAMgB,IAASuG,KAAI,SAAChE,EAAG1C,GAAM,OAAAA,EAAI,MDDhD+9B,GAAAA,EAAAA,eAAAA,EAAAA,aAAY,KACtB,mBAAA,qBACAA,GAAA,YAAA,kBEDUG,GAMAC,kBFUZ,SAAAC,mDAYA,OAZqC9+B,EAAA8+B,EAAA74B,GAQ5B64B,EAAA15B,QAAP,SAAeJ,KAGR85B,EAAAx5B,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAVU82B,EAAe99B,EAAA,CAZ3B8F,EAAc,CACbE,cAAe,CACb+3B,OAAQ,SACRC,aAAc,cACdC,mBAAoB,mBACpB3rB,YAAa,aACbpC,KAAM,QAERjK,SAAU,CACRiK,KAAM3L,EAAUk5B,EAAAA,kBAGPK,IAAwB/5B,kBA2BrC,SAAAm6B,IAAA,IAAA5oB,EAAA,OAAArQ,GAAAA,EAAAlF,MAAAb,KAAAU,YAAAV,YAOUoW,EAAAkoB,OAA2C,KA+BrD,OAtC6Bx+B,EAAAk/B,EAAAj5B,GAUpBi5B,EAAA95B,QAAP,SAAeJ,KAGRk6B,EAAA55B,OAAP,SAAcN,KAEdtF,OAAAgC,eAAIw9B,EAAA9+B,UAAA,cAAW,KAAf,WACE,OAAOwM,KAAKuY,IAAIjlB,KAAKkT,SAAS+rB,YAAcvyB,KAAKuY,IAAI,oCAGvD+Z,EAAA9+B,UAAAg/B,iBAAA,WAAA,IAAA9oB,EAAApW,KACE,GAA2B,IAAvBA,KAAKs+B,OAAO39B,QAAgBX,KAAKkT,SAAS+rB,WAAY,CACxD,IAAME,EAAczyB,KAAKuY,IAAIjlB,KAAKkT,SAAS+rB,YAAcvyB,KAAKuY,IAAI,GAClEjlB,KAAKs+B,OAASG,GAAcU,GAAaj4B,KAAI,SAAAk4B,GAC3C,IAAM3P,EAAerZ,EAAKlD,SAAS+rB,WAAavyB,KAAA2yB,IAAA,EAAKD,GAOrD,MAAO,CACL/8B,MAAO+8B,EACPx6B,MAPmB,IAAjB6qB,EACM,QAEA,OAAOA,MAQrB,OAAOzvB,KAAKs+B,QA1Bdx9B,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAZUk3B,EAAOl+B,EAAA,CAbnB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ6D,KAAM,OACN2K,SAAU,WACVN,cAAe,eACfkF,oBAAqB,oBACrBwnB,YAAa,cAEfv4B,SAAU,CACRmM,SAAU0rB,OAGDI,IAAgBn6B,kBGtB7B,SAAA06B,mDA2BA,OA3ByCz/B,EAAAy/B,EAAAx5B,GAevCvG,OAAAgC,eAAI+9B,EAAAr/B,UAAA,kBAAe,KAAnB,WACE,OAAKF,KAAKgZ,WAGHtM,KAAKC,MAAM,IAAO3M,KAAKiZ,cAAgBjZ,KAAKgZ,YAAc,GAFxD,mCAMJumB,EAAAr6B,QAAP,SAAeJ,KAGRy6B,EAAAn6B,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAzBUy3B,EAAmBz+B,EAAA,CArB/B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ+V,gBAAiB,iBACjBvB,MAAO,QACPpB,oBAAqB,oBACrBtJ,YAAa,aACbD,gBAAiB,gBACjBE,UAAW,WACX8K,WAAY,YACZF,iBAAkB,iBAClBC,eAAgB,eAChBzG,OAAQ,SACRsG,eAAgB,gBAChBqmB,gBAAiB,kBAEnBz4B,SAAU,CACRgU,eAAgBhC,GAChBG,MAAOJ,OAGEymB,IAA4B16B,IDrBzC,SAAY65B,GACVA,EAAAA,EAAA,MAAA,GAAA,QACAA,EAAAA,EAAA,UAAA,GAAA,YACAA,EAAAA,EAAA,aAAA,GAAA,eAHF,CAAYA,KAAAA,GAAe,KAM3B,SAAYC,GACVA,EAAAA,EAAA,SAAA,GAAA,WACAA,EAAAA,EAAA,MAAA,GAAA,QACAA,EAAAA,EAAA,MAAA,GAAA,QACAA,EAAAA,EAAA,MAAA,GAAA,QACAA,EAAAA,EAAA,KAAA,GAAA,OACAA,EAAAA,EAAA,YAAA,GAAA,cACAA,EAAAA,EAAA,SAAA,GAAA,WACAA,EAAAA,EAAA,gBAAA,GAAA,kBARF,CAAYA,KAAAA,GAAqB,MAuBjC,SAAA54B,GAAA,SAAA05B,mDAAgC3/B,EAAA2/B,EAAA15B,GAM9BvG,OAAAgC,eAAIi+B,EAAAv/B,UAAA,OAAI,KAIR,WACE,OAAOF,KAAK0/B,WALd,SAASr9B,GACPrC,KAAK0/B,MAAQhB,GAAgBr8B,oCAQxBo9B,EAAAv6B,QAAP,SAAeJ,KAGR26B,EAAAr6B,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAjBU23B,EAAU3+B,EAAA,CAZtB8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJuH,KAAM,OACN2M,KAAM,OACN+mB,YAAa,eAEf54B,SAAU,CACRkF,KAAMD,EACN2zB,YAAah6B,EAAUN,EAAUs5B,SAGxBc,GAAb,CAAgC56B,GAAhC,IE/BY+6B,iBC0DV,SAAAC,EACU7d,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAIJ4d,EAAA3/B,UAAAgiB,QAAN,SAAcuO,sEACZ,MAAA,CAAA,EAAOzwB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,KAC7FjU,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAoQ,GAAW5N,QAAQxC,OACtC0f,oBAGCyd,EAAA3/B,UAAAwuB,WAAN,SAAiBlL,EAAkBrU,sEACjC,MAAA,CAAA,EAAOnP,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,gBAAgBrU,EAAK,KAC1GqN,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAoQ,GAAW5N,QAAQxC,OACtC0f,oBAGCyd,EAAA3/B,UAAA4/B,QAAN,SAAcrP,sEACZ,MAAA,CAAA,EAAOzwB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,UAC7FjU,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAq7B,GAAe74B,QAAQxC,OAC1C0f,oBAGCyd,EAAA3/B,UAAA4uB,UAAN,SAAgB2B,EAAsB1B,EAActmB,EAAcumB,4EAchE,OAbI7E,GAAS,IAAIC,EAAAA,YAAa7V,IAAI,OAAQwa,EAAK5S,YAC5C5H,IAAI,OAAQ9L,EAAK0T,YAChB6S,IACEA,EAAQZ,QACVjE,EAASA,EAAO5V,IAAI,QAAS+Y,EAAAA,qBAAqB0B,EAAQZ,SAExDY,EAAQC,SACV9E,EAASA,EAAO5V,IAAI,SAAUya,EAAQC,SAEpCD,EAAQE,iBACV/E,EAASA,EAAO5V,IAAI,kBAAmBya,EAAQE,eAAe/S,cAGlE,CAAA,EAAOnc,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,WAAY,CAACtG,OAAMA,EAAEgF,QAAS,aAC3H3S,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,MAAA,CAClB0sB,OAAQ1sB,EAAO2sB,QAAQ/S,IAAI,gBAC3BxX,KAAMopB,GAAgBhpB,QAAQxC,EAAOI,WAEtCsf,oBAGCyd,EAAA3/B,UAAA6/B,oBAAN,SAA0BtP,sEACxB,MAAA,CAAA,EAAOzwB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,YAAYjU,KAC1GtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA05B,GAAgBt5B,QAAQJ,OACpCsd,oBAGEyd,EAAA3/B,UAAA8/B,WAAN,SAAiBvP,sEACf,MAAA,CAAA,EAAOzwB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,aAAajU,KAC3GtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAs8B,GAAQ95B,QAAQxC,OAC9B0f,oBAGEyd,EAAA3/B,UAAA+/B,gBAAN,SAAsBnP,sEACpB,MAAA,CAAA,EAAO9wB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,8BAA8BwU,EAAS,WAAWtU,KAC9GtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAyT,GAAKjR,QAAQxC,OAC3B0f,oBAGEyd,EAAA3/B,UAAAggC,eAAN,SAAqBzP,sEACnB,MAAA,CAAA,EAAOzwB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,kBAC7FjU,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAq5B,GAAmBj5B,QAAQJ,OAC5Csd,oBAGCyd,EAAA3/B,UAAAqvB,SAAN,SAAekB,EAAsB1B,EAActmB,EAAcumB,eAAA,IAAAA,IAAAA,EAAA,wEA2B/D,OA1BI7E,GAAS,IAAIC,EAAAA,YAAa7V,IAAI,OAAQwa,EAAK5S,YAC3C1T,IACF0hB,EAASA,EAAO5V,IAAI,OAAQ9L,EAAK0T,aAE/B6S,EAAQQ,oBACVrF,EAASA,EAAO5V,IAAI,sBAAuBya,EAAQQ,kBAAkBrT,aAEnE6S,EAAQE,iBACV/E,EAASA,EAAO5V,IAAI,kBAAmBya,EAAQE,eAAe/S,aAE5D6S,EAAQS,eACVtF,EAASA,EAAO5V,IAAI,gBAAiBya,EAAQS,aAAatT,aAExD6S,EAAQrY,SACVwT,EAASA,EAAO5V,IAAI,UAAWya,EAAQrY,OAAOwF,aAE5C6S,EAAQ5e,SACV+Z,EAASA,EAAO5V,IAAI,SAAUN,EAAAA,aAAa+a,EAAQ5e,UAEjD4e,EAAQU,WACJA,EAAWV,EAAQU,SAASxoB,KAAI,SAAA1G,GAAK,OAAAyT,EAAAA,aAAazT,MACxD2pB,EAASA,EAAO5V,IAAI,WAAYmb,EAASrjB,KAAK,OAE5C2iB,EAAQW,oBACVxF,EAASA,EAAO5V,IAAI,sBAAuBya,EAAQW,kBAAkBxT,aAEvE,CAAA,EAAOnc,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,UAAW,CAACtG,OAAMA,EAAEgF,QAAS,aAC1H3S,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,MAAA,CAClB0sB,OAAQ1sB,EAAO2sB,QAAQ/S,IAAI,gBAC3BxX,KAAMqR,GAAKjR,QAAQxC,EAAOI,WACvBsf,oBAGHyd,EAAA3/B,UAAAigC,SAAN,SAAe1P,sEACb,MAAA,CAAA,EAAOzwB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,WAC7FjU,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAqW,GAAe7T,QAAQxC,OAC1C0f,oBAGCyd,EAAA3/B,UAAAkgC,cAAN,SAAoB3P,sEAClB,MAAA,CAAA,EAAOzwB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,iBAC7FjU,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA68B,GAAoBr6B,QAAQxC,OAC/C0f,oBAGCyd,EAAA3/B,UAAAmgC,YAAN,SAAkBC,sEAChB,MAAA,CAAA,EAAOtgC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,2BAA2BgkB,EAAgB,KACtG9jB,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAqW,GAAe7T,QAAQxC,OAC1C0f,oBAGCyd,EAAA3/B,UAAAqgC,YAAN,SAAkBC,sEAChB,MAAA,CAAA,EAAOxgC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gCAAgCkkB,EAAM,KACjGhkB,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA6X,GAAmBrV,QAAQxC,OAC9C0f,oBAGCyd,EAAA3/B,UAAAugC,aAAN,SAAmBC,sEACjB,MAAA,CAAA,EAAO1gC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gCAAgCokB,EAAgB,WAC3GlkB,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAyT,GAAKjR,QAAQxC,OAChC0f,oBAGCyd,EAAA3/B,UAAAygC,uBAAN,SAA6B3R,sFAE3B,GADI7E,EAAS,IAAIC,EAAAA,WACb4E,EAAS,KACX,IAAkBlR,EAAA7Z,EAAAzE,OAAOwF,KAAKgqB,IAAQjqB,EAAA+Y,EAAAvb,QAAAwC,EAAApC,KAAAoC,EAAA+Y,EAAAvb,OAA3BtB,EAAG8D,EAAA1C,MACR2sB,EAAQ/tB,KACVkpB,EAASA,EAAO5V,IAAItT,EAAK+tB,EAAQ/tB,2GAIZsG,IAArBynB,EAAQ4R,WACVzW,EAASA,EAAO5V,IAAI,WAAYya,EAAQ4R,SAAW,IAAM,MAI7D,MAAA,CAAA,EAAO5gC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gCAAiC,CAAC6N,OAAMA,IAAG3N,KACvGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAub,GAAoB/Y,QAAQxC,OAC1C0f,oBAGEyd,EAAA3/B,UAAAk8B,uBAAN,SAA6BpN,sFAE3B,GADI7E,EAAS,IAAIC,EAAAA,WACb4E,EAAS,KACX,IAAkBlR,EAAA7Z,EAAAzE,OAAOwF,KAAKgqB,IAAQjqB,EAAA+Y,EAAAvb,QAAAwC,EAAApC,KAAAoC,EAAA+Y,EAAAvb,OAA3BtB,EAAG8D,EAAA1C,MACR2sB,EAAQ/tB,KACVkpB,EAASA,EAAO5V,IAAItT,EAAK+tB,EAAQ/tB,2GAIZsG,IAArBynB,EAAQ4R,WACVzW,EAASA,EAAO5V,IAAI,WAAYya,EAAQ4R,SAAW,IAAM,MAI7D,MAAA,CAAA,EAAO5gC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gCAAiC,CAAC6N,OAAMA,IAAG3N,KACvGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAy0B,GAAoBjyB,QAAQxC,OAC1C0f,oBAGEyd,EAAA3/B,UAAA2gC,mBAAN,SAAyB7R,sFAEvB,GADI7E,EAAS,IAAIC,EAAAA,WACb4E,EAAS,KACX,IAAkBlR,EAAA7Z,EAAAzE,OAAOwF,KAAKgqB,IAAQjqB,EAAA+Y,EAAAvb,QAAAwC,EAAApC,KAAAoC,EAAA+Y,EAAAvb,OAA3BtB,EAAG8D,EAAA1C,MACR2sB,EAAQ/tB,KACVkpB,EAASA,EAAO5V,IAAItT,EAAK+tB,EAAQ/tB,2GAIZsG,IAArBynB,EAAQ4R,WACVzW,EAASA,EAAO5V,IAAI,WAAYya,EAAQ4R,SAAW,IAAM,MAI7D,MAAA,CAAA,EAAO5gC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,4BAA6B,CAAC6N,OAAMA,IAAG3N,KACnGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAomB,GAAgB5jB,QAAQxC,OACtC0f,oBAGEyd,EAAA3/B,UAAA4gC,qBAAN,SAA2B9R,sFAEzB,GADI7E,EAAS,IAAIC,EAAAA,WACb4E,EAAS,KACX,IAAkBlR,EAAA7Z,EAAAzE,OAAOwF,KAAKgqB,IAAQjqB,EAAA+Y,EAAAvb,QAAAwC,EAAApC,KAAAoC,EAAA+Y,EAAAvb,OAA3BtB,EAAG8D,EAAA1C,MACR2sB,EAAQ/tB,KACVkpB,EAASA,EAAO5V,IAAItT,EAAK+tB,EAAQ/tB,2GAIZsG,IAArBynB,EAAQ4R,WACVzW,EAASA,EAAO5V,IAAI,WAAYya,EAAQ4R,SAAW,IAAM,MAI7D,MAAA,CAAA,EAAO5gC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,8BAA+B,CAAC6N,OAAMA,IAAG3N,KACrGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA+pB,GAAkBvnB,QAAQxC,OACxC0f,oBAGEyd,EAAA3/B,UAAA6gC,uBAAN,SAA6BT,sEAC3B,MAAA,CAAA,EAAOtgC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,2BAA2BgkB,EAAgB,WAAW9jB,KAClHtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA6X,GAAmBrV,QAAQxC,OACzC0f,oBAGEyd,EAAA3/B,UAAA8gC,aAAN,SAAmBvQ,sEACjB,MAAA,CAAA,EAAOzwB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,gBAAgBjU,KAC9GtV,EAAAA,KAAI,SAACpC,GAAc,OAACA,EAAK66B,aAAe,IAAIz4B,KAAI,SAAAxB,GAAQ,OAAAi5B,GAAsBj5B,UAC9E0c,6DA1NkBS,EAAAA,kBACGlF,0IAHdkiB,EAAa/+B,EAAA,CADzB2c,EAAAA,WAAW,CAACC,WAAY,UACZmiB,qBC/Cb,SAAAoB,mDAoBA,OApBwCnhC,EAAAmhC,EAAAl7B,GAOtCvG,OAAAgC,eAAIy/B,EAAA/gC,UAAA,aAAU,KAAd,WACE,OAAOF,KAAKkhC,gBAAkBlhC,KAAKmhC,mDAGrC3hC,OAAAgC,eAAIy/B,EAAA/gC,UAAA,QAAK,KAAT,WACE,OAAOF,KAAKohC,YAAcphC,KAAKqhC,aAAerhC,KAAKshC,qDAI9CL,EAAA/7B,QAAP,SAAeJ,KAGRm8B,EAAA77B,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAlBUm5B,EAAkBngC,EAAA,CAT9B8F,EAAc,CACbE,cAAe,CACby6B,kBAAmB,kBACnBC,oBAAqB,oBACrBC,WAAY,YACZC,YAAa,aACbC,sBAAuB,0BAGdV,IAA2Bp8B,kBAgCxC,SAAA+8B,mDASA,OATwC9hC,EAAA8hC,EAAA77B,GAK/B67B,EAAA18B,QAAP,SAAeJ,KAGR88B,EAAAx8B,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAPU85B,EAAkB9gC,EAAA,CAV9B8F,EAAc,CACbE,cAAe,CACbqH,KAAM,OACN0zB,UAAW,YAEb96B,SAAU,CACRoH,KAAMH,EACN8zB,SAAUb,OAGDW,IAA2B/8B,iBCjCtC,SAAAk9B,EACU/f,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAIJ8f,EAAA7hC,UAAA8hC,gBAAN,SAAsBvR,sEACpB,MAAA,CAAA,EAAOzwB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,oBAAoBjU,KAClHtV,EAAAA,KAAI,SAAAoc,GAAY,OAAAse,GAAmB18B,QAAQoe,OAC3ClB,oBAGE2f,EAAA7hC,UAAA+hC,aAAN,SAAmBtrB,sEACjB,MAAA,CAAA,EAAO3W,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB3F,EAAM,WAC7D6F,KACCtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4T,GAASxT,QAAQJ,OAC7Bsd,oBAGA2f,EAAA7hC,UAAAgiC,eAAN,SAAqBzR,EAAsB9Z,EAAgBwrB,4EAKzD,OAJMr/B,EAAO,CACXqL,KAAM,CAACzJ,GAAIiS,GACXie,aAAcR,GAAyBhvB,OAAO+8B,IAEhD,CAAA,EAAOniC,KAAKgiB,WAAWqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,sBAAsBmU,EAAY,SAAU3tB,GACxG0Z,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAyvB,GAAiBrvB,QAAQJ,OAC1Csd,6DA1BiBS,EAAAA,kBACGlF,0IAHdokB,EAAiBjhC,EAAA,CAD7B2c,EAAAA,WAAW,CAACC,WAAY,UACZqkB,oBCMX,SAAAK,EACUpgB,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAIJmgB,EAAAliC,UAAAwuB,WAAN,SAAiBlL,EAAkBrU,sEACjC,MAAA,CAAA,EAAOnP,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,kBAAkBkH,EAAQ,uBAAuBrU,EAAK,KAAKqN,KACvHtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAwN,GAAiBhL,QAAQxC,OACvC0f,oBAGEggB,EAAAliC,UAAA2uB,eAAN,SAAqBwT,sEACnB,MAAA,CAAA,EAAOriC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,6BAA6B+lB,EAAQ,iBAAiB7lB,KAClHtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAoQ,GAAW5N,QAAQxC,OACjC0f,oBAGEggB,EAAAliC,UAAAqvB,SAAN,SAAe8S,EAAkBtT,EAActmB,EAAcumB,8EA2B3D,OA1BI7E,GAAS,IAAIC,EAAAA,YAAa7V,IAAI,OAAQwa,EAAK5S,YAC3C1T,IACF0hB,EAASA,EAAO5V,IAAI,OAAQ9L,EAAK0T,aAE/B6S,EAAQQ,oBACVrF,EAASA,EAAO5V,IAAI,sBAAuBya,EAAQQ,kBAAkBrT,aAEnE6S,EAAQE,iBACV/E,EAASA,EAAO5V,IAAI,kBAAmBya,EAAQE,eAAe/S,aAE5D6S,EAAQS,eACVtF,EAASA,EAAO5V,IAAI,gBAAiBya,EAAQS,aAAatT,aAExD6S,EAAQrY,SACVwT,EAASA,EAAO5V,IAAI,UAAWya,EAAQrY,OAAOwF,aAE5C6S,EAAQ5e,SACV+Z,EAASA,EAAO5V,IAAI,SAAUN,EAAAA,aAAa+a,EAAQ5e,UAEjD4e,EAAQU,WACJA,EAAWV,EAAQU,SAASxoB,KAAI,SAAA1G,GAAK,OAAAyT,EAAAA,aAAazT,MACxD2pB,EAASA,EAAO5V,IAAI,WAAYmb,EAASrjB,KAAK,OAE5C2iB,EAAQW,oBACVxF,EAASA,EAAO5V,IAAI,sBAAuBya,EAAQW,kBAAkBxT,aAEvE,CAAA,EAAOnc,KAAKgiB,WAAW1F,IAClBtc,KAAKiiB,cAAc3F,IAAI,UAAS,6BAA6B+lB,EAAQ,UACxE,CAAClY,OAAMA,EAAEgF,QAAS,aAClB3S,KACAtV,EAAAA,KAAI,SAAAxE,GAAU,MAAA,CACZ0sB,OAAQ1sB,EAAO2sB,QAAQ/S,IAAI,gBAC3BxX,KAAMqR,GAAKjR,QAAQxC,EAAOI,WAE5Bsf,oBAGEggB,EAAAliC,UAAA4uB,UAAN,SAAgBuT,EAAkBtT,EAActmB,EAAcumB,4EAc5D,OAbI7E,GAAS,IAAIC,EAAAA,YAAa7V,IAAI,OAAQwa,EAAK5S,YAC5C5H,IAAI,OAAQ9L,EAAK0T,YAChB6S,IACEA,EAAQZ,QACVjE,EAASA,EAAO5V,IAAI,QAAS+Y,EAAAA,qBAAqB0B,EAAQZ,SAExDY,EAAQC,SACV9E,EAASA,EAAO5V,IAAI,SAAUya,EAAQC,SAEpCD,EAAQE,iBACV/E,EAASA,EAAO5V,IAAI,kBAAmBya,EAAQE,eAAe/S,cAGlE,CAAA,EAAOnc,KAAKgiB,WAAW1F,IAClBtc,KAAKiiB,cAAc3F,IAAI,UAAS,6BAA6B+lB,EAAQ,WACxE,CAAClY,OAAMA,EAAEgF,QAAS,aAEjB3S,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,MAAA,CAClB0sB,OAAQ1sB,EAAO2sB,QAAQ/S,IAAI,gBAC3BxX,KAAMopB,GAAgBhpB,QAAQxC,EAAOI,WAEtCsf,oBAGCggB,EAAAliC,UAAAixB,aAAN,SAAmBkR,EAAkBtT,EAActmB,EAAcumB,4EAuB/D,OAtBI7E,GAAS,IAAIC,EAAAA,YAAa7V,IAAI,OAAQwa,EAAK5S,YAAY5H,IAAI,OAAQ9L,EAAK0T,YACxE6S,IACEA,EAAQE,iBACV/E,EAASA,EAAO5V,IAAI,kBAAmBya,EAAQE,eAAe/S,aAE5D6S,EAAQrY,SACVwT,EAASA,EAAO5V,IAAI,UAAWya,EAAQrY,OAAOwF,aAE5C6S,EAAQQ,oBACVrF,EAASA,EAAO5V,IAAI,sBAAuBya,EAAQQ,kBAAkBrT,aAEnE6S,EAAQ8B,YACV3G,EAASA,EAAO5V,IAAI,aAAcya,EAAQ8B,UAAU3U,aAElD6S,EAAQS,eACVtF,EAASA,EAAO5V,IAAI,gBAAiBya,EAAQS,aAAatT,aAExD6S,EAAQ5e,SACV+Z,EAASA,EAAO5V,IAAI,SAAUN,EAAAA,aAAa+a,EAAQ5e,WAIvD,CAAA,EAAOpQ,KAAKgiB,WAAW1F,IAClBtc,KAAKiiB,cAAc3F,IAAI,UAAS,6BAA6B+lB,EAAQ,eACxE,CAAClT,QAAS,WAAYhF,OAAMA,IAC3B3N,KACCtV,EAAAA,KAAI,SAAAoc,GACF,MAAO,CACL8L,OAAQ9L,EAAS+L,QAAQ/S,IAAI,gBAC7BxX,KAAMqR,GAAKjR,QAAQoe,EAASxgB,WAGhCsf,oBAGAggB,EAAAliC,UAAAigC,SAAN,SAAekC,sEACb,MAAA,CAAA,EAAOriC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,6BAA6B+lB,EAAQ,WAAW7lB,KAC5GtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAqW,GAAe7T,QAAQxC,OACrC0f,oBAGEggB,EAAAliC,UAAAggC,eAAN,SAAqBmC,sEACnB,MAAA,CAAA,EAAOriC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,6BAA6B+lB,EAAQ,kBAChG7lB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAq5B,GAAmBj5B,QAAQJ,OAC5Csd,6DA7HiBS,EAAAA,kBACGlF,0IAHdykB,EAAmBthC,EAAA,CAD/B2c,EAAAA,WAAW,CAACC,WAAY,UACZ0kB,oBCJX,SAAAE,EACUtgB,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAIJqgB,EAAApiC,UAAAgiB,QAAN,SAAcxd,sEACZ,MAAA,CAAA,EAAO1E,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,4BAA4B5X,EAAE,KACzF8X,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA87B,GAAgBt5B,QAAQxC,OAC3C0f,oBAGCkgB,EAAApiC,UAAAqiC,UAAN,SAAgBC,sEACd,MAAA,CAAA,EAAOxiC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,4BAA4BkmB,EAAO,YAC9FhmB,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAoW,GAAgB5T,QAAQxC,OAC3C0f,oBAGCkgB,EAAApiC,UAAAuiC,YAAN,SAAkBD,sEAChB,MAAA,CAAA,EAAOxiC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,4BAA4BkmB,EAAO,aAC9FhmB,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAs8B,GAAQ95B,QAAQxC,OACnC0f,oBAGCkgB,EAAApiC,UAAAigC,SAAN,SAAeqC,sEACb,MAAA,CAAA,EAAOxiC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,4BAA4BkmB,EAAO,WAC9FhmB,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA68B,GAAoBr6B,QAAQxC,OAC/C0f,6DA1BiBS,EAAAA,kBACGlF,0IAHd2kB,EAAkBxhC,EAAA,CAD9B2c,EAAAA,WAAW,CAACC,WAAY,UACZ4kB,qBCCb,SAAAI,mDAYA,OAZgC5iC,EAAA4iC,EAAA38B,GAQvB28B,EAAAx9B,QAAP,SAAeJ,KAGR49B,EAAAt9B,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAVU46B,EAAU5hC,EAAA,CATtB8F,EAAc,CACbE,cAAe,CACb67B,KAAM,OACNC,cAAe,eACfC,MAAO,QACPhK,UAAW,YACXnf,MAAO,YAGEgpB,IAAmB79B,INTpB+6B,GAAAA,EAAAA,sBAAAA,EAAAA,oBAAmB,KAC7BA,GAAA,OAAA,GAAA,SACAA,GAAAA,GAAA,QAAA,GAAA,UACAA,GAAAA,GAAA,UAAA,GAAA,YACAA,GAAAA,GAAA,SAAA,GAAA,eOFUkD,kBPoBZ,SAAAC,mDAYA,OAZoCjjC,EAAAijC,EAAAh9B,GAQ3Bg9B,EAAA79B,QAAP,SAAeJ,KAGRi+B,EAAA39B,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAVUi7B,EAAcjiC,EAAA,CAf1B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJk+B,cAAe,eACflpB,MAAO,QACPmpB,MAAO,QACPhK,UAAW,aAEb9xB,SAAU,CACRi8B,aAAc39B,EAAUu6B,EAAAA,qBACxBlmB,MAAOrU,EAAUu6B,EAAAA,qBACjBiD,MAAOx9B,EAAUu6B,EAAAA,qBACjB/G,UAAWxzB,EAAUu6B,EAAAA,yBAGZmD,IAAuBl+B,iBQHlC,SAAAo+B,EACUjhB,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAGJghB,EAAA/iC,UAAAgjC,eAAN,8EACE,MAAA,CAAA,EAAOljC,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,yBACvCE,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkH,EAAK9G,QAAQJ,OAC9Bsd,oBAGC6gB,EAAA/iC,UAAAqgC,YAAN,SAAkBC,sEAChB,MAAA,CAAA,EAAOxgC,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBkkB,EAAM,KAC7DhkB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkH,EAAK9G,QAAQJ,OAC9Bsd,oBAGC6gB,EAAA/iC,UAAAijC,UAAN,SAAgB3C,sEACd,MAAA,CAAA,EAAOxgC,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,iBAAgBkkB,GAAU,WAAS,YAC9FhkB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA49B,GAAWx9B,QAAQJ,OACpCsd,oBAGC6gB,EAAA/iC,UAAAkjC,WAAN,SAAiB5C,EAAgB17B,sEAC/B,MAAA,CAAA,EAAO9E,KAAKgiB,WACT2Y,MAAS36B,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBkkB,EAAM,IAAKx0B,EAAK5G,OAAON,IAChF0X,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAsJ,EAAK9G,QAAQxC,OAChC0f,oBAGC6gB,EAAA/iC,UAAAmjC,gBAAN,SAAsB/6B,EAAWsb,4EAG/B,OAFMC,EAAW,IAAIC,UACZC,OAAO,OAAQzb,EAAMsb,GAC9B,CAAA,EAAO5jB,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,8BAA+BuH,GACvErH,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAuD,EAAKnD,QAAQJ,OAC9Bsd,oBAGC6gB,EAAA/iC,UAAAojC,eAAN,SAAqB9C,EAAgB+C,EAAqBC,EAAkBC,4EAM1E,OALMC,EAAU,CACdC,aAAcJ,EACdC,SAAQA,EACRI,iBAAkBH,GAEpB,CAAA,EAAOzjC,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBkkB,EAAM,oBAAqBkD,GACnFthB,oBAGC6gB,EAAA/iC,UAAA2jC,YAAN,SAAkBrD,EAAgBzzB,EAAey2B,4EAE/C,OADME,EAAU,CAAC32B,MAAKA,EAAEy2B,SAAQA,GAChC,CAAA,EAAOxjC,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBkkB,EAAM,iBAAkBkD,GAChFthB,oBAGC6gB,EAAA/iC,UAAA4jC,mBAAN,SAAyBtD,EAAQzzB,EAAey2B,EAAkBO,4EAEhE,OADML,EAAU,CAAC32B,MAAKA,EAAEy2B,SAAQA,EAAEO,MAAKA,GACvC,CAAA,EAAO/jC,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBkkB,EAAM,yBAA0BkD,GACxFthB,oBAGC6gB,EAAA/iC,UAAA8jC,eAAN,SAAqBxD,sEACnB,MAAA,CAAA,EAAOxgC,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBkkB,EAAM,aAC7DhkB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4F,EAAYxF,QAAQJ,OACrCsd,oBAGC6gB,EAAA/iC,UAAA+jC,qBAAN,SAA2BzD,sEACzB,MAAA,CAAA,EAAOxgC,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBkkB,EAAM,wBAC7DhkB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAmG,EAAkB/F,QAAQJ,OAC3Csd,oBAGC6gB,EAAA/iC,UAAAgkC,qBAAN,SAA2B1D,sEACzB,MAAA,CAAA,EAAOxgC,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBkkB,EAAM,wBAC7DhkB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAyG,EAAkBrG,QAAQJ,OAC3Csd,oBAGC6gB,EAAA/iC,UAAAikC,kBAAN,SAAwBC,sEACtB,MAAA,CAAA,EAAOpkC,KAAKgiB,WACT2Y,MAAS36B,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB8nB,EAAY5D,OAAM,YAAa91B,EAAYtF,OAAOg/B,IAC3G5nB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4F,EAAYxF,QAAQJ,OACrCsd,oBAGC6gB,EAAA/iC,UAAAmkC,4BAAN,SAAkCz2B,sEAChC,MAAA,CAAA,EAAO5N,KAAKgiB,WACT2Y,MAAS36B,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgB1O,EAAkB4yB,OAAM,uBAAwBv1B,EAAkB7F,OAAOwI,IAClI4O,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAmG,EAAkB/F,QAAQJ,OAC3Csd,oBAGC6gB,EAAA/iC,UAAAokC,4BAAN,SAAkCz2B,sEAChC,MAAA,CAAA,EAAO7N,KAAKgiB,WACT2Y,MAAS36B,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBzO,EAAkB2yB,OAAM,uBAAwBj1B,EAAkBnG,OAAOyI,IAClI2O,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAyG,EAAkBrG,QAAQJ,OAC3Csd,oBAGC6gB,EAAA/iC,UAAAqkC,mBAAN,SAAyB/D,sEACvB,MAAA,CAAA,EAAOxgC,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,iBAAgBkkB,GAAU,WAAS,gBAC1EhkB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAi+B,GAAe79B,QAAQJ,OACxCsd,oBAGC6gB,EAAA/iC,UAAAskC,qBAAN,SAA2B1/B,sEACzB,MAAA,CAAA,EAAO9E,KAAKgiB,WACT2Y,MAAS36B,KAAKiiB,cAAc3F,IAAI,UAAS,mCAAoCymB,GAAe39B,OAAON,IACnG0X,KAAKtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAqgC,GAAe79B,QAAQxC,OAC1C0f,oBAGC6gB,EAAA/iC,UAAAigC,SAAN,SAAeK,sEACb,MAAA,CAAA,EAAOxgC,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBkkB,EAAM,WAC7DhkB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkJ,EAAK9I,QAAQJ,OAC9Bsd,oBAGC6gB,EAAA/iC,UAAAo7B,WAAN,8EACE,MAAA,CAAA,EAAOt7B,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,iCACvCE,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkuB,GAAW9tB,QAAQJ,OACpCsd,oBAGC6gB,EAAA/iC,UAAAs7B,aAAN,SAAmBsB,sEACjB,MAAA,CAAA,EAAO98B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gCAAgCwgB,EAAQ,WAAY,IAC5FtgB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkuB,GAAW9tB,QAAQJ,OACpCsd,oBAGC6gB,EAAA/iC,UAAAw7B,cAAN,SAAoBoB,sEAClB,MAAA,CAAA,EAAO98B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,gCAAgCwgB,EAAQ,YAAa,IAC7FtgB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkuB,GAAW9tB,QAAQJ,OACpCsd,oBAGC6gB,EAAA/iC,UAAAukC,cAAN,SAAoBjE,sEAClB,MAAA,CAAA,EAAOxgC,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBkkB,EAAM,gBAC7DhkB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAmZ,GAAoB/Y,QAAQJ,OAC7Csd,oBAGC6gB,EAAA/iC,UAAAwkC,wBAAN,SAA8BlE,sEAC5B,MAAA,CAAA,EAAOxgC,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBkkB,EAAM,2BAC7DhkB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAmZ,GAAoB/Y,QAAQJ,OAC7Csd,oBAGC6gB,EAAA/iC,UAAAk8B,uBAAN,SAA6BoE,sEAC3B,MAAA,CAAA,EAAOxgC,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBkkB,EAAM,2BAC7DhkB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAqyB,GAAoBjyB,QAAQJ,OAC7Csd,oBAGC6gB,EAAA/iC,UAAAqvB,SAAN,SAAeiR,sEACb,MAAA,CAAA,EAAOxgC,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAgBkkB,EAAM,WAC7DhkB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAqR,GAAKjR,QAAQJ,OAC9Bsd,oBAGC6gB,EAAA/iC,UAAAykC,eAAN,8EACE,MAAA,CAAA,EAAO3kC,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sCACvCE,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAuuB,GAAWnuB,QAAQJ,OACpCsd,oBAGC6gB,EAAA/iC,UAAA0kC,iBAAN,SAAuB9H,sEACrB,MAAA,CAAA,EAAO98B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,qCAAqCwgB,EAAQ,WAAY,IACjGtgB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAuuB,GAAWnuB,QAAQJ,OACpCsd,oBAGC6gB,EAAA/iC,UAAA2kC,kBAAN,SAAwB/H,sEACtB,MAAA,CAAA,EAAO98B,KAAKgiB,WACTqB,KAAQrjB,KAAKiiB,cAAc3F,IAAI,UAAS,qCAAqCwgB,EAAQ,YAAa,IAClGtgB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAuuB,GAAWnuB,QAAQJ,OACpCsd,oBAGC6gB,EAAA/iC,UAAA4kC,YAAN,SAAkBxK,4EAEhB,OADMnQ,GAAS,IAAKC,EAAAA,YAAc7V,IAAI,SAAU+lB,GAChD,CAAA,EAAOt6B,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,gBAAiB,CAAC6N,OAAMA,IAC/D3N,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkH,EAAK9G,QAAQJ,OAC9Bsd,oBAGC6gB,EAAA/iC,UAAA6kC,gBAAN,SAAsBC,sEACpB,MAAA,CAAA,EAAOhlC,KAAKgiB,WACTijB,IAAOjlC,KAAKiiB,cAAc3F,IAAI,UAAS,gCAAiC,CAAC0oB,OAAMA,IAC/ExoB,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAAkH,EAAK9G,QAAQJ,OAC9Bsd,oBAGC6gB,EAAA/iC,UAAAs8B,cAAN,SAAoBgE,sEAClB,MAAA,CAAA,EAAOxgC,KAAKgiB,WACT1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,qCACvCE,KAAKtV,EAAAA,KAAI,SAAApC,GAAQ,OAAA4uB,GAAUxuB,QAAQJ,OACnCsd,6DAzNiBS,EAAAA,kBACGlF,0IAHdslB,EAAOniC,EAAA,CADnB2c,EAAAA,WAAW,CAACC,WAAY,UACZulB,qBCPb,SAAAiC,mDASA,OATiDplC,EAAAolC,EAAAn/B,GAKxCm/B,EAAAhgC,QAAP,SAAeJ,KAGRogC,EAAA9/B,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAPUo9B,EAA2BpkC,EAAA,CAVvC8F,EAAc,CACbE,cAAe,CACbqH,KAAM,OACN2I,gBAAiB,kBAEnB/P,SAAU,CACRoH,KAAMgpB,GACNzgB,eAAgBygB,OAGP+N,IAAoCrgC,kBCajD,SAAAsgC,mDA0CA,OA1C6CrlC,EAAAqlC,EAAAp/B,GAqB3CvG,OAAAgC,eAAI2jC,EAAAjlC,UAAA,KAAE,KAAN,WACE,OAAOF,KAAKigB,4CAGdzgB,OAAAgC,eAAI2jC,EAAAjlC,UAAA,UAAO,KAAX,WACE,OAAOF,KAAKolC,aAAeplC,KAAKqlC,6CAGlC7lC,OAAAgC,eAAI2jC,EAAAjlC,UAAA,SAAM,KAAV,WACE,OAAOF,KAAKslC,YAActlC,KAAKulC,+CAGjC/lC,OAAAgC,eAAI2jC,EAAAjlC,UAAA,gBAAa,KAAjB,WACE,OAAOF,KAAKi4B,SAAWj4B,KAAKwlC,mDAIvBL,EAAAjgC,QAAP,SAAeJ,KAGRqgC,EAAA//B,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBAxCUq9B,EAAuBrkC,EAAA,CAvBnC8F,EAAc,CACbE,cAAe,CACboZ,aAAc,aACdkX,WAAY,YACZC,aAAc,cACdC,WAAY,YACZG,aAAc,cACdC,aAAc,cACdC,eAAgB,gBAChBE,cAAe,eACfC,cAAe,eACfC,aAAc,cACdE,SAAU,WACVC,eAAgB,gBAChBC,mBAAoB,oBACpBE,eAAgB,gBAChBC,qBAAsB,qBACtBC,yBAA0B,yBAC1B1lB,OAAQ,SACR4lB,OAAQ,SACRrM,aAAc,kBAGL+Y,IAAgCtgC,IHtBjCi+B,GAAAA,EAAAA,wBAAAA,EAAAA,sBAAqB,KAC/BA,GAAA,WAAA,GAAA,aACAA,GAAAA,GAAA,UAAA,GAAA,YACAA,GAAAA,GAAA,YAAA,GAAA,cACAA,GAAAA,GAAA,UAAA,GAAA,YACAA,GAAAA,GAAA,YAAA,GAAA,cACAA,GAAAA,GAAA,UAAA,GAAA,YACAA,GAAAA,GAAA,YAAA,GAAA,cACAA,GAAAA,GAAA,YAAA,GAAA,cACAA,GAAAA,GAAA,cAAA,GAAA,gBACAA,GAAAA,GAAA,aAAA,IAAA,eACAA,GAAAA,GAAA,aAAA,IAAA,eACAA,GAAAA,GAAA,YAAA,IAAA,cACAA,GAAAA,GAAA,QAAA,IAAA,UACAA,GAAAA,GAAA,cAAA,IAAA,gBACAA,GAAAA,GAAA,kBAAA,IAAA,oBACAA,GAAAA,GAAA,MAAA,IAAA,QACAA,GAAAA,GAAA,MAAA,IAAA,QACAA,GAAAA,GAAA,cAAA,IAAA,gBACAA,GAAAA,GAAA,oBAAA,IAAA,sBACAA,GAAAA,GAAA,wBAAA,IAAA,0BACAA,GAAAA,GAAA,QAAA,IAAA,UACAA,GAAAA,GAAA,YAAA,IAAA,kEAGW2C,GAAkB,CAC7B3C,EAAAA,sBAAsB4C,UAAW5C,EAAAA,sBAAsB6C,YACvD7C,EAAAA,sBAAsB8C,aAAc9C,EAAAA,sBAAsB+C,OAE/CC,GAAkB,CAC7BhD,EAAAA,sBAAsBiD,YAAajD,EAAAA,sBAAsBkD,aACzDlD,EAAAA,sBAAsBmD,YAAanD,EAAAA,sBAAsBoD,cACzDpD,EAAAA,sBAAsBqD,MAAOrD,EAAAA,sBAAsBsD,oCAqBrD,SAAAC,IAAA,IAAAjwB,EAAA,OAAArQ,GAAAA,EAAAlF,MAAAb,KAAAU,YAAAV,YAGEoW,EAAAkK,QAAS,IA6FX,OAhGuCxgB,EAAAumC,EAAAtgC,GAcrCsgC,EAAAnmC,UAAAqhB,QAAA,SAAQC,GACN,OAAIxhB,KAAKsmC,QAAU9kB,EAAM8kB,OAAStmC,KAAKuU,MAAQiN,EAAMjN,IAC/CvU,KAAKkX,UAAYsK,EAAMtK,SAClBlX,KAAKkX,SAASzK,UAAY+U,EAAMtK,SAASzK,UAAY,GAAK,EAE1DzM,KAAK0E,GAAK8c,EAAM9c,GAAK,GAAK,EAGjC1E,KAAKuU,MAAQiN,EAAMjN,IACdvU,KAAKsmC,MAAQ9kB,EAAM8kB,MAAQ,GAAK,EAElCtmC,KAAKuU,IAAMiN,EAAMjN,IAAM,GAAK,GAGrC8xB,EAAAnmC,UAAAokB,YAAA,WACE,OAAOmhB,GAAgBc,SAASvmC,KAAK6gB,UAGvCwlB,EAAAnmC,UAAAsmC,YAAA,WACE,OAAOV,GAAgBS,SAASvmC,KAAK6gB,UAGvCwlB,EAAAnmC,UAAAumC,QAAA,WACE,MAAO,CACL3D,EAAAA,sBAAsB4D,UACtB5D,EAAAA,sBAAsB4C,UACtB5C,EAAAA,sBAAsBiD,aACtBQ,SAASvmC,KAAK6gB,UAGlBwlB,EAAAnmC,UAAAymC,SAAA,WACE,MAAO,CACL7D,EAAAA,sBAAsBkD,aACtBlD,EAAAA,sBAAsB8C,aACtB9C,EAAAA,sBAAsB8D,aACtBL,SAASvmC,KAAK6gB,UAGlBwlB,EAAAnmC,UAAA2mC,UAAA,WACE,MAAO,CACL/D,EAAAA,sBAAsBoD,cACtBpD,EAAAA,sBAAsBgE,QACtBhE,EAAAA,sBAAsBiE,mBACtBR,SAASvmC,KAAK6gB,UAGlBwlB,EAAAnmC,UAAA8mC,eAAA,WACE,MAAO,CACLlE,EAAAA,sBAAsBsD,oBACtBtD,EAAAA,sBAAsBmE,cACtBnE,EAAAA,sBAAsBoE,yBACtBX,SAASvmC,KAAK6gB,UAGlBwlB,EAAAnmC,UAAAinC,QAAA,WACE,MAAO,CACLrE,EAAAA,sBAAsBmD,YACtBnD,EAAAA,sBAAsBsE,cACtBtE,EAAAA,sBAAsB6C,aACtBY,SAASvmC,KAAK6gB,UAGlBwlB,EAAAnmC,UAAAmnC,YAAA,WACE,MAAO,CACLvE,EAAAA,sBAAsBwE,WACtBxE,EAAAA,sBAAsByE,UACtBzE,EAAAA,sBAAsB0E,SACtBjB,SAASvmC,KAAK6gB,UAGlBwlB,EAAAnmC,UAAAunC,YAAA,WACE,OAAQ,CACN3E,EAAAA,sBAAsBgE,QACtBhE,EAAAA,sBAAsBmE,eACtBV,SAASvmC,KAAK6gB,UAIXwlB,EAAAnhC,QAAP,SAAeJ,KAGRuhC,EAAAjhC,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBA9FUu+B,EAAiBvlC,EAAA,CAlB7B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJkd,UAAW,WACXpM,QAAS,SACT0K,aAAc,aACd2B,SAAU,UACVtN,IAAK,MACL+xB,MAAO,QACPp7B,SAAU,WACVyH,QAAS,SACTuE,SAAU,YAEZnQ,SAAU,CACR8Z,QAASxb,EAAUy9B,EAAAA,uBACnB5rB,SAAUvQ,MAGD0/B,IAA0BxhC,iBI7CrC,SAAA6iC,EACU1lB,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,SAIJylB,EAAAxnC,UAAAgiB,QAAN,SAAcC,sEACZ,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sCAAsC6F,EAAM,KAAK3F,KAC7GtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAyT,GAAKjR,QAAQxC,OAC3B0f,oBAGEslB,EAAAxnC,UAAAmiB,SAAN,SAAeF,sEACb,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,2BAA2B6F,EAAM,WAAW3F,KACxGtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAuY,GAAS/V,QAAQxC,OAC/B0f,oBAGEslB,EAAAxnC,UAAAoiB,iBAAN,SAAuBH,sEACrB,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sCAAsC6F,EAAM,oBAAoB3F,KAC5HtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAwiC,GAA4BhgC,QAAQxC,OAClD0f,oBAGEslB,EAAAxnC,UAAAqiB,iBAAN,SAAuBJ,sEACrB,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sCAAsC6F,EAAM,oBAAoB3F,KAC5HtV,EAAAA,KAAI,SAAAxE,GAAU,OAAAyiC,GAAwBjgC,QAAQxC,OAC9C0f,oBAGEslB,EAAAxnC,UAAAsiB,QAAN,SAAcL,sEACZ,MAAA,CAAA,EAAOniB,KAAKgiB,WAAW1F,IAAOtc,KAAKiiB,cAAc3F,IAAI,UAAS,sCAAsC6F,EAAM,UAAU3F,KAClHtV,EAAAA,KAAI,SAAAxE,GAAU,OAAA2jC,GAAkBnhC,QAAQxC,OACxC0f,6DAhCkBS,EAAAA,kBACGlF,0IAHd+pB,EAAiB5mC,EAAA,CAD7B2c,EAAAA,WAAW,CAACC,WAAY,UACZgqB,MCTAC,KAAiCC,GAAA,IAC3CxrB,EAAAA,uBAAuBkrB,YAAa,oBACrCxpB,GAAC1B,EAAAA,uBAAuBmrB,WAAY,kBACpCzpB,GAAC1B,EAAAA,uBAAuByrB,aAAc,sBACtC/pB,GAAC1B,EAAAA,uBAAuB0rB,mBAAoB,gBAC5ChqB,GAAC1B,EAAAA,uBAAuB2rB,qBAAsB,gBAC9CjqB,GAAC1B,EAAAA,uBAAuB4rB,oBAAqB,kBAC7ClqB,GAAC1B,EAAAA,uBAAuB6rB,mBAAoB,gBAC5CnqB,GAAC1B,EAAAA,uBAAuBoE,gBAAiB,SACzC1C,GAAC1B,EAAAA,uBAAuBqE,kBAAmB,SAC3C3C,GAAC1B,EAAAA,uBAAuBsE,iBAAkB,mBAC1C5C,GAAC1B,EAAAA,uBAAuBuE,gBAAiB,SACzC7C,GAAC1B,EAAAA,uBAAuB8rB,QAAS,WACjCpqB,GAAC1B,EAAAA,uBAAuB+rB,OAAQ,UAChCrqB,GAAC1B,EAAAA,uBAAuB2E,SAAU,SAClCjD,GAAC1B,EAAAA,uBAAuB4E,mBAAoB,qBAC5ClD,GAAC1B,EAAAA,uBAAuB6E,mBAAoB,kBAC5CnD,GAAC1B,EAAAA,uBAAuBgsB,OAAQ,WAChCtqB,GAAC1B,EAAAA,uBAAuBisB,UAAW,SACnCvqB,GAAC1B,EAAAA,uBAAuB+E,eAAgB,MACxCrD,GAAC1B,EAAAA,uBAAuBgF,gBAAiB,kBACzCtD,GAAC1B,EAAAA,uBAAuBiF,sBAAuB,kBAC/CvD,GAAC1B,EAAAA,uBAAuBorB,SAAU,cCtBvBc,KAA6BC,GAAA,IACvCpoB,EAAAA,mBAAmBmnB,YAAa,oBACjCxpB,GAACqC,EAAAA,mBAAmBonB,WAAY,kBAChCzpB,GAACqC,EAAAA,mBAAmBqoB,WAAY,cAChC1qB,GAACqC,EAAAA,mBAAmBsoB,cAAe,oBACnC3qB,GAACqC,EAAAA,mBAAmBuoB,cAAe,yBACnC5qB,GAACqC,EAAAA,mBAAmBoE,MAAO,MAC3BzG,GAACqC,EAAAA,mBAAmBwoB,kBAAmB,eACvC7qB,GAACqC,EAAAA,mBAAmBqE,eAAgB,YACpC1G,GAACqC,EAAAA,mBAAmB+nB,QAAS,WAC7BpqB,GAACqC,EAAAA,mBAAmByoB,YAAa,oBACjC9qB,GAACqC,EAAAA,mBAAmBuE,eAAgB,cACpC5G,GAACqC,EAAAA,mBAAmBwE,eAAgB,gBACpC7G,GAACqC,EAAAA,mBAAmByE,oBAAqB,uBACzC9G,GAACqC,EAAAA,mBAAmB0E,yBAA0B,qCAC9C/G,GAACqC,EAAAA,mBAAmB4E,eAAgB,aACpCjH,GAACqC,EAAAA,mBAAmB2E,cAAe,kBACnChH,GAACqC,EAAAA,mBAAmB0oB,eAAgB,yBACpC/qB,GAACqC,EAAAA,mBAAmB2oB,cAAe,uBACnChrB,GAACqC,EAAAA,mBAAmB1D,MAAO,iBAC3BqB,GAACqC,EAAAA,mBAAmBqnB,SAAU,UAC9B1pB,GAACqC,EAAAA,mBAAmB4oB,eAAgB,2BACpCjrB,GAACqC,EAAAA,mBAAmB6oB,aAAc,8BCtBvBC,KAA+BC,GAAA,IACzC/kB,EAAAA,qBAAqBmjB,YAAa,gBACnCxpB,GAACqG,EAAAA,qBAAqBojB,WAAY,cAClCzpB,GAACqG,EAAAA,qBAAqBqkB,WAAY,YAClC1qB,GAACqG,EAAAA,qBAAqBskB,cAAe,eACrC3qB,GAACqG,EAAAA,qBAAqBukB,cAAe,uBACrC5qB,GAACqG,EAAAA,qBAAqBI,MAAO,MAC7BzG,GAACqG,EAAAA,qBAAqB+jB,QAAS,WAC/BpqB,GAACqG,EAAAA,qBAAqBglB,iBAAkB,kBACxCrrB,GAACqG,EAAAA,qBAAqBqG,cAAe,eACrC1M,GAACqG,EAAAA,qBAAqBilB,uBAAwB,qBAC9CtrB,GAACqG,EAAAA,qBAAqBsG,oBAAqB,kBAC3C3M,GAACqG,EAAAA,qBAAqBykB,YAAa,mBACnC9qB,GAACqG,EAAAA,qBAAqBklB,QAAS,UAC/BvrB,GAACqG,EAAAA,qBAAqBmlB,WAAY,gBAClCxrB,GAACqG,EAAAA,qBAAqB1H,MAAO,eAC7BqB,GAACqG,EAAAA,qBAAqBolB,cAAe,mBACrCzrB,GAACqG,EAAAA,qBAAqBqlB,oBAAqB,sBAC3C1rB,GAACqG,EAAAA,qBAAqBslB,MAAO,MAC7B3rB,GAACqG,EAAAA,qBAAqBulB,aAAc,kBACpC5rB,GAACqG,EAAAA,qBAAqBwlB,UAAW,mBACjC7rB,GAACqG,EAAAA,qBAAqBylB,cAAe,MACrC9rB,GAACqG,EAAAA,qBAAqB0lB,MAAO,SAC7B/rB,GAACqG,EAAAA,qBAAqBikB,OAAQ,WAC9BtqB,GAACqG,EAAAA,qBAAqB2lB,KAAM,MAC5BhsB,GAACqG,EAAAA,qBAAqBqjB,SAAU,cCzBrBuC,KAAwBC,GAAA,IAClC/5B,EAAAA,cAAcg6B,eAAgB,uBAC/BnsB,GAAC7N,EAAAA,cAAci6B,gBAAiB,aAChCpsB,GAAC7N,EAAAA,cAAcwR,MAAO,aACtB3D,GAAC7N,EAAAA,cAAck6B,kBAAmB,gBAClCrsB,GAAC7N,EAAAA,cAAcm6B,eAAgB,6BAC/BtsB,GAAC7N,EAAAA,cAAco6B,4BAA6B,uCAC5CvsB,GAAC7N,EAAAA,cAAcq6B,UAAW,UAC1BxsB,GAAC7N,EAAAA,cAAcs6B,WAAY,WAC3BzsB,GAAC7N,EAAAA,cAAcu6B,oBAAqB,sCCTzBC,KAAwBC,GAAA,IAClCx0B,EAAAA,aAAay0B,WAAY,YAC1B7sB,GAAC5H,EAAAA,aAAa00B,QAAS,eACvB9sB,GAAC5H,EAAAA,aAAa20B,OAAQ,eCAXC,KAAkCC,GAAA,IAC5CpiC,EAAAA,uBAAuBqiC,aAAc,yBACtCltB,GAACnV,EAAAA,uBAAuBsiC,gBAAiB,qBACzCntB,GAACnV,EAAAA,uBAAuBuiC,eAAgB,iBACxCptB,GAACnV,EAAAA,uBAAuBwiC,eAAgB,iBACxCrtB,GAACnV,EAAAA,uBAAuByiC,QAAS,gBAGtBC,KAAuCtmC,GAAA,IACjD4D,EAAAA,uBAAuBqiC,aAAc,KACtCjmC,GAAC4D,EAAAA,uBAAuBsiC,gBAAiB,KACzClmC,GAAC4D,EAAAA,uBAAuBuiC,eAAgB,KACxCnmC,GAAC4D,EAAAA,uBAAuBwiC,eAAgB,KACxCpmC,GAAC4D,EAAAA,uBAAuByiC,QAAS,QAGtBE,KAAoBrmC,GAAA,IAC9B2D,EAAAA,SAAS2iC,MAAO,QACjBtmC,GAAC2D,EAAAA,SAAS4iC,OAAQ,aAGPC,KAAkCC,GAAA,IAC5C3gC,EAAAA,uBAAuB4gC,QAAS,YACjCD,GAAC3gC,EAAAA,uBAAuB6gC,QAAS,SACjCF,GAAC3gC,EAAAA,uBAAuB8gC,eAAgB,0BACxCH,GAAC3gC,EAAAA,uBAAuB+gC,mBAAoB,aAC5CJ,GAAC3gC,EAAAA,uBAAuBghC,UAAW,mBAGxBC,KAAuCC,GAAA,IACjDlhC,EAAAA,uBAAuB4gC,QAAS,IACjCM,GAAClhC,EAAAA,uBAAuB6gC,QAAS,IACjCK,GAAClhC,EAAAA,uBAAuB8gC,eAAgB,KACxCI,GAAClhC,EAAAA,uBAAuB+gC,mBAAoB,KAC5CG,GAAClhC,EAAAA,uBAAuBghC,UAAW,QAGxBG,KAAyCC,GAAA,IACnDphC,EAAAA,uBAAuB4gC,QAAS,QACjCQ,GAACphC,EAAAA,uBAAuB6gC,QAAS,SACjCO,GAACphC,EAAAA,uBAAuB8gC,eAAgB,QACxCM,GAACphC,EAAAA,uBAAuB+gC,mBAAoB,SAC5CK,GAACphC,EAAAA,uBAAuBghC,UAAW,YAGxBK,KAA8BC,GAAA,IACxCrhC,EAAAA,mBAAmBugC,MAAO,QAC3Bc,GAACrhC,EAAAA,mBAAmBwgC,OAAQ,aAGjBc,KAA8BC,GAAA,IACxClhC,EAAAA,mBAAmBmhC,YAAa,UACjCD,GAAClhC,EAAAA,mBAAmBohC,YAAa,WACjCF,GAAClhC,EAAAA,mBAAmBqhC,SAAU,iBAGnBC,KAAgCC,GAAA,IAC1CphC,EAAAA,qBAAqBqhC,YAAa,UACnCD,GAACphC,EAAAA,qBAAqBihC,YAAa,WACnCG,GAACphC,EAAAA,qBAAqBshC,YAAa,eACnCF,GAACphC,EAAAA,qBAAqBkhC,SAAU,iBAGrBK,KAA4BC,GAAA,IACtCvhC,EAAAA,iBAAiB8/B,MAAO,QACzByB,GAACvhC,EAAAA,iBAAiB+/B,OAAQ,SAC1BwB,GAACvhC,EAAAA,iBAAiBwhC,MAAO,UCrEdC,KAAiCC,GAAA,IAC3CrK,EAAAA,sBAAsBwE,YAAa,oBACpCxpB,GAACglB,EAAAA,sBAAsByE,WAAY,kBACnCzpB,GAACglB,EAAAA,sBAAsB+E,aAAc,sBACrC/pB,GAACglB,EAAAA,sBAAsB4C,WAAY,MACnC5nB,GAACglB,EAAAA,sBAAsB4D,WAAY,SACnC5oB,GAACglB,EAAAA,sBAAsBiD,aAAc,mBACrCjoB,GAACglB,EAAAA,sBAAsB8C,cAAe,uBACtC9nB,GAACglB,EAAAA,sBAAsB8D,aAAc,iBACrC9oB,GAACglB,EAAAA,sBAAsBkD,cAAe,eACtCloB,GAACglB,EAAAA,sBAAsB6C,aAAc,sBACrC7nB,GAACglB,EAAAA,sBAAsBsE,eAAgB,gBACvCtpB,GAACglB,EAAAA,sBAAsBmD,aAAc,kBACrCnoB,GAACglB,EAAAA,sBAAsBiE,mBAAoB,iBAC3CjpB,GAACglB,EAAAA,sBAAsBgE,SAAU,QACjChpB,GAACglB,EAAAA,sBAAsBoD,eAAgB,mBACvCpoB,GAACglB,EAAAA,sBAAsBmE,eAAgB,eACvCnpB,GAACglB,EAAAA,sBAAsBoE,yBAA0B,wBACjDppB,GAACglB,EAAAA,sBAAsBsD,qBAAsB,uBAC7CtoB,GAACglB,EAAAA,sBAAsB+C,OAAQ,OAC/B/nB,GAACglB,EAAAA,sBAAsBqD,OAAQ,SAC/BroB,GAACglB,EAAAA,sBAAsB0E,SAAU,UACjC1pB,GAACglB,EAAAA,sBAAsB4G,aAAc,oCCVvC,SAAA0D,mDAWA,OAXoCttC,EAAAstC,EAAArnC,GAO3BqnC,EAAAloC,QAAP,SAAeJ,KAGRsoC,EAAAhoC,OAAP,SAAcN,KAHdhE,EAAA,CADC2G,qBAID3G,EAAA,CADCgH,oBATUslC,EAActsC,EAAA,CAX1B8F,EAAc,CACbE,cAAe,CACbpC,GAAI,KACJ6D,KAAM,OACN0a,MAAO,QACPoqB,SAAU,WAEZtmC,SAAU,CACRkc,MAAOtd,EAAU0C,OAGR+kC,IAAuBvoC,iBCclC,SAAAyoC,EACUtrB,EACAC,GADAjiB,KAAAgiB,WAAAA,EACAhiB,KAAAiiB,cAAAA,EAZFjiB,KAAAutC,UAA6C,GAC7CvtC,KAAAwtC,cAAwC,GAGxCxtC,KAAAytC,iBAAmB,IAAInwB,EAAAA,iBAAyB,UAExD9d,OAAAgC,eAAI8rC,EAAAptC,UAAA,aAAU,KAAd,WACE,OAAOF,KAAKytC,kDAQdH,EAAAptC,UAAAwtC,OAAA,SAAOC,GAAP,IAAAv3B,EAAApW,KACE,GAAI2tC,KAAW3tC,KAAKutC,UAClB,OAAOvtC,KAAKutC,UAAUI,GAGxB3tC,KAAKutC,UAAUI,GAAW,IAAIC,EAAAA,QAC9B,IAAMC,EAAe7tC,KAAK8tC,UAAUC,WAAU,SAAAC,GAC5C53B,EAAKo3B,cAAcG,GAAWv3B,EAAK63B,sBAAsBN,GACzDO,YAAW,WACTL,EAAaM,oBAIjB,OAAOnuC,KAAKutC,UAAUI,IAGxBL,EAAAptC,UAAAiuC,YAAA,SAAYR,GACN3tC,KAAKwtC,cAAcG,KACrB3tC,KAAKwtC,cAAcG,GAASQ,qBACrBnuC,KAAKwtC,cAAcG,IAExB3tC,KAAKutC,UAAUI,KACjB3tC,KAAKutC,UAAUI,GAASzwB,kBACjBld,KAAKutC,UAAUI,KAI1BL,EAAAptC,UAAA4tC,QAAA,WAAA,IAAA13B,EAAApW,KAwBE,OAvBKA,KAAKouC,0BACRpuC,KAAKouC,wBAA0B,IAAIC,EAAAA,cAAc,GAEjDruC,KAAKgiB,WAAW1F,IAAyBtc,KAAKiiB,cAAc3F,IAAI,UAAS,uBACtEyxB,WAAU,SAAAlnC,GACTuP,EAAKk4B,iBAAiB,CACpBC,IAAKn4B,EAAK6L,cAAc3F,IAAI,iBAC5BrQ,KAAMpF,EAAOoF,KACbuiC,UAAW3nC,EAAO2nC,UAClBzK,MAAOl9B,EAAOk9B,MACd0K,WAAY,CAAC,eAEfr4B,EAAKs4B,WAAWZ,UAChB13B,EAAKs4B,WAAWC,GAAG,WAAW,WAC5Bv4B,EAAKg4B,wBAAwB7rC,MAAK,GAClC6T,EAAKq3B,iBAAiBlrC,MAAK,MAE7B6T,EAAKs4B,WAAWC,GAAG,cAAc,WAC/Bv4B,EAAKq3B,iBAAiBlrC,MAAK,UAK5BvC,KAAKouC,yBAGdd,EAAAptC,UAAA0uC,QAAA,SAAQjB,EAAiB3qB,GAAzB,IAAA5M,EAAApW,KACE,OAAO,IAAI6uC,EAAAA,YAAgB,SAAAC,GACzB14B,EAAK03B,UAAUC,WAAU,WAClB33B,EAAKo3B,cAAcG,KACtBv3B,EAAKo3B,cAAcG,GAAWv3B,EAAK63B,sBAAsBN,IAE3Dv3B,EAAKo3B,cAAcG,GAASiB,QAAQ5rB,GAASpgB,MAAK,SAAAmsC,GAChDD,EAASvsC,KAAKwsC,GACdD,EAAS5xB,cACR,SAAA5Y,GACD,MAAMA,YAMdgpC,EAAAptC,UAAA8uC,WAAA,WACEhvC,KAAK0uC,WAAWM,aAChBhvC,KAAKouC,6BAA0B7mC,EAC/BvH,KAAKutC,UAAY,GACjBvtC,KAAKwtC,cAAgB,IAGfF,EAAAptC,UAAAouC,iBAAR,SAAyBznC,GAOvB7G,KAAK0uC,WAAa,IAAIO,EAAWpoC,IAG3BymC,EAAAptC,UAAA+tC,sBAAR,SAA8BN,GAC5B,OAAO3tC,KAAK0uC,WAAWX,UAAUJ,EAAS3tC,KAAKkvC,eAAeC,KAAKnvC,QAG7DstC,EAAAptC,UAAAgvC,eAAR,SAAuB5rB,GACrB,IAAMqqB,EAAUrqB,EAASqqB,QACpB3tC,KAAKutC,UAAUI,IAIpB3tC,KAAKutC,UAAUI,GAASprC,KAAK+gB,EAASxe,gDArGlB+d,EAAAA,kBACGlF,0IAbd2vB,EAAiBxsC,EAAA,CAD7B2c,EAAAA,WAAW,CAACC,WAAY,UACZ4vB,oBCZX,SAAA8B,EAAYC,EAA8BzpC,GAAA5F,KAAA4F,WAAAA,EACxC5F,KAAKqvC,aAAeA,EAgBxB,OAbED,EAAAlvC,UAAAgF,QAAA,SAAQ7C,GACN,OAAIrC,KAAK4F,WACA5F,KAAK4F,WAAWV,QAAQ7C,GAE1BA,GAGT+sC,EAAAlvC,UAAAkF,OAAA,SAAO/C,GACL,OAAIrC,KAAK4F,WACA5F,KAAK4F,WAAWR,OAAO/C,GAEzBA,GAEX+sC,mBAGE,SAAAE,EAAsB/mC,EAAwBgnC,GAAxBvvC,KAAAuI,KAAAA,EAAwBvI,KAAAuvC,OAAAA,EA6ChD,OA1CED,EAAApvC,UAAAsvC,SAAA,SAASvuC,EAAawuC,GACpBzvC,KAAKuvC,OAAOtuC,GAAOwuC,GAGrBH,EAAApvC,UAAAuc,KAAA,SAAKxb,EAAaoB,GACXrC,KAAKuvC,OAAOtuC,IAGjBjB,KAAK0vC,QAAW1vC,KAAKuI,KAAI,IAAItH,EAAOjB,KAAKuvC,OAAOtuC,GAAKmE,OAAO/C,KAG9DitC,EAAApvC,UAAAoc,IAAA,SAAIrb,GACF,GAAKjB,KAAKuvC,OAAOtuC,GAAjB,CAGA,IAAIoB,EAAQrC,KAAK2vC,QAAW3vC,KAAKuI,KAAI,IAAItH,GAIzC,OAHc,OAAVoB,IACFA,EAAQrC,KAAKuvC,OAAOtuC,GAAKouC,cAEvBhtC,MAAAA,EACKA,EAEFrC,KAAKuvC,OAAOtuC,GAAKiE,QAAQ7C,KAGlCitC,EAAApvC,UAAAkd,MAAA,uBACE,IAAoB,IAAArY,EAAAd,EAAAzE,OAAOwF,KAAKhF,KAAKuvC,SAAOtqC,EAAAF,EAAAxC,QAAA0C,EAAAtC,KAAAsC,EAAAF,EAAAxC,OAAE,CAAzC,IAAMktC,EAAKxqC,EAAA5C,MACdrC,KAAK4vC,WAAWH,uGAIVH,EAAApvC,UAAAyvC,QAAV,SAAkB1uC,GAChB,MAAM,IAAI4uC,MAAM,4CAA4C7vC,KAAI,qBAGxDsvC,EAAApvC,UAAAwvC,QAAV,SAAkBzuC,EAAaoB,GAC7B,MAAM,IAAIwtC,MAAM,4CAA4C7vC,KAAI,qBAGxDsvC,EAAApvC,UAAA0vC,WAAV,SAAqB3uC,GACnB,MAAM,IAAI4uC,MAAM,+CAA+C7vC,KAAI,qBAEvEsvC,oBCpEA,SAAAQ,mDAgBA,OAhBwChwC,EAAAgwC,EAAA/pC,GAC5B+pC,EAAA5vC,UAAAwvC,QAAV,SAAkBzuC,EAAaoB,GAC7B0tC,aAAaL,QAAQzuC,EAAK+uC,KAAKC,UAAU5tC,KAGjCytC,EAAA5vC,UAAAyvC,QAAV,SAAkB1uC,GAChB,IACE,OAAO+uC,KAAKE,MAAMH,aAAaJ,QAAQ1uC,IACvC,MAAOuB,GACP,SAIMstC,EAAA5vC,UAAA0vC,WAAV,SAAqB3uC,GACnB8uC,aAAaH,WAAW3uC,IAE5B6uC,GAhBwCR,aCFxBa,GAAU5nC,GACxB,IACM6nC,GADQ,KAAKC,SAASC,QACRtoC,MAAM,KAAKO,EAAI,KACnC,OAAqB,IAAjB6nC,EAAMzvC,OACDyvC,EAAMrsC,MAAMiE,MAAM,KAAKuoC,QAEzB,cCEOC,GAAaC,GAC3B,MAAO,CACL,CAACC,IAAK,mBAAoBC,MAAO,UAAWC,KAAM,mBAAmBH,EAAM,wBAC3E,CAACC,IAAK,OAAQ1/B,KAAM,YAAa2/B,MAAO,QAASC,KAAM,mBAAmBH,EAAM,qBAChF,CAACC,IAAK,OAAQ1/B,KAAM,YAAa2/B,MAAO,QAASC,KAAM,mBAAmBH,EAAM,qBAChF,CAACC,IAAK,gBAAiBE,KAAM,mBAAmBH,EAAM,eACtD,CAACC,IAAK,WAAYE,KAAM,mBAAmBH,EAAM,oBACjD,CAACC,IAAK,YAAaE,KAAM,mBAAmBH,EAAM,wBAAyBI,MAAO,8BCLpF,SAAAC,EACUC,EACqBC,GADrBhxC,KAAA+wC,SAAAA,EACqB/wC,KAAAgxC,WAAAA,EAJvBhxC,KAAAixC,UAAYC,EAAAA,kBAAkBlxC,KAAKgxC,YAqB7C,OAbEF,EAAA5wC,UAAAixC,UAAA,SAAUC,EAAuB7uC,GAC/B,IAAKvC,KAAKixC,UACR,OAAO1uC,EAAK8uC,OAAOD,GAErBA,EAAMA,EAAIE,MAAM,CAACC,iBAAiB,IAClC,IAAMC,EAAOrB,GAAU,aAMvB,OALIqB,IACFJ,EAAMA,EAAIE,MAAM,CACdG,WAAY,CAACC,cAAeF,MAGzBjvC,EAAK8uC,OAAOD,6CAhBDO,EAAAA,yCACjB3zB,EAAAA,OAAMrW,KAAA,CAACiqC,EAAAA,kBALCd,EAAqBhwC,EAAA,CADjC2c,EAAAA,aAMIhc,EAAA,EAAAuc,EAAAA,OAAO4zB,EAAAA,eALCd,kS/EFc,4xEgFgBEe,GAC3B,IAWA7gC,EAXM8gC,GAWN9gC,EAXmB6gC,GAaeE,MAAS/gC,EAA0BghC,KAZ/DC,EAAYH,EAAYI,UAC9BL,EAAQM,sBAAwB,IAAIvE,EAAAA,QACnCkE,EAAYI,UAAY,WACvBL,EAAQM,sBAAsB5vC,OAC9BsvC,EAAQM,sBAAsBj1B,WAC9B+0B,EAASpxC,MAAMb,0ZFTYqwC,EAAoB+B,eAC7C3B,EAAS,GACO,cAAhB2B,IACF3B,EAAS,QAEX,IAAM3rC,EAAO0rC,GAAaC,OAC1B,IAAmB,IAAA4B,EAAApuC,EAAAa,GAAIwtC,EAAAD,EAAA9vC,QAAA+vC,EAAA3vC,KAAA2vC,EAAAD,EAAA9vC,OAAE,CAApB,IAAMmD,EAAI4sC,EAAAjwC,MACP2M,EAAOqhC,EAASkC,cAAc,YACpC,IAAkB,IAAAttC,GAAAutC,OAAA,EAAAvuC,EAAAzE,OAAOwF,KAAKU,KAAKgmC,EAAAzmC,EAAA1C,QAAAmpC,EAAA/oC,KAAA+oC,EAAAzmC,EAAA1C,OAAE,CAAhC,IAAMtB,EAAGyqC,EAAArpC,MACZ2M,EAAKyjC,aAAaxxC,EAAKyE,EAAKzE,sGAE9BovC,EAASqC,KAAKC,YAAY3jC,qIEhBK4jC,GACjC,GAAKA,EAAU3yC,YAAoBkyC,sBACjC,OAAQS,EAAU3yC,YAAoBkyC,sBAExC,MAAM,IAAItC,MAAM,6GCsCgBgD,GAChC,OAAO,SAACC,GACN,IAAKA,EAAQzwC,MACX,OAAO,oD9BpDkB0wC,EAAcpyC,GAC3C,IAAMqyC,EAAS,GACTC,EAAcvmC,KAAKwmC,KAAKH,EAAMpyC,OAASA,GAC7C,GAAoB,IAAhBsyC,EACF,MAAO,CAACF,GAEV,IAAK,IAAIvyC,EAAI,EAAGA,EAAIyyC,EAAazyC,IAC/BwyC,EAAOhvC,KAAK+uC,EAAMrsC,MAAMlG,EAAIG,GAASH,EAAI,GAAKG,IAEhD,OAAOqyC,4C+BhBsB1tC,GAC7B,OAAO9F,OAAOwF,KAAKM,GAChB4B,KAAI,SAAAtD,GAAK,OAAA0B,EAAU1B,MACnBwI,QAAO,SAAAxI,GAAK,OAAc,IAAd2B,OAAO3B,MACnBsD,KAAI,SAAAtD,GAAK,OAACA,+CCFaU,EAAOiX,EAAe43B,QAAf,IAAA53B,IAAAA,GAAA,QAAe,IAAA43B,IAAAA,GAAA,KAC1C7uC,GAA2B,IAAjBA,EAAM8L,QAAiC,MAAjB9L,EAAM8L,QAAqBmL,GAA0B,IAAjBjX,EAAM8L,SAC9EgjC,EAAAA,iBAAiB9uC,GAGd6uC,GACHE,QAAQ/uC,MAAMA,+BCPhB,IAAMgvC,EAAW,4BAA4BtrC,MAAM,KAKnD,GAAK,iBAAkBurC,QAAYA,OAAeC,eAAiBnD,oBAAqBkD,OAAeC,cACrG,OAAO,EAKT,IAVYC,EAUNnZ,EAAQ,CAAC,IAAKgZ,EAASjnC,KAAK,oBAAqB,SAAU,KAAKA,KAAK,IAC3E,OAXYonC,EAWFnZ,EAVDiZ,OAAOG,WAAWD,GAAGE,uDCDhBC,EAAqBC,GAClCr0C,OAAek7B,OAAOmZ,EAAUC,UAAUl4B,SAAQ,SAAAk3B,GACjDA,EAAQiB,gBACRjB,EAAQkB,cAEJlB,aAAmBmB,EAAAA,UACrBL,EAAqBd,GACZA,EAAQgB,UACjBhB,EAAQgB,SAASl4B,SAAQ,SAAAza,GACnBA,aAAa8yC,EAAAA,UACfL,EAAqBzyC,IAErBA,EAAE4yC,gBACF5yC,EAAE6yC,gDJP2B,SAACE,GACtC,OAAO,SAAC/yC,GACN,OAAOA,EAAEkB,MAAM1B,OAASuzC,EACpB,CAACC,eAAgB,CAACC,OAAO,IACzB,mCrFcyBtvC,EAAaY,EAAW8V,GACvD,OAAK7b,MAAMkG,QAAQf,GAGZA,EAAKoC,KAAI,SAAAtD,GACd,GAAI4X,GAAiBC,GAAWD,IAC9B,IAAKA,EAAc5X,GACjB,OAAOA,OAEJ,GAAIA,EAAEc,KAAOgB,EAAKhB,GACvB,OAAOd,EAET,OAAOpE,OAAOa,OAAOuD,EAAG8B,MAVjBZ,iEqFJiB,SAACguC,GAE3B,OAAKA,EAAQzwC,OADF,wBACcgyC,KAAKvB,EAAQzwC,OAC7B,KAEF,CAACiyC,YAAa,CAACF,OAAO,qBAGF,SAACG,EAAyCC,EAAkBC,QAAlB,IAAAD,IAAAA,GAAA,QAAkB,IAAAC,IAAAA,EAAA,IACvF,IAAMC,EAAUC,EAAAA,GAAG,MAAMn4B,KACvBo4B,EAAAA,MAAM,MAER,OAAO,SAAC9B,GACN,OAAI2B,EAAO7zB,QAAQkyB,EAAQzwC,QAAU,EAC5BsyC,EAAAA,GAAG,MAELD,EAAQl4B,KACbq4B,EAAAA,WAAU,WAAM,OAAAN,EAAYO,WAAWhC,EAAQzwC,MAAOmyC,GAAWh4B,KAC/DtV,EAAAA,KAAI,SAAAktC,GAAS,OAAAA,EAAQ,KAAO,CAACW,YAAY,6BA1BpB,SAACjC,GAC5B,OAAKA,EAAQzwC,MAIW,MADV,GAAGywC,EAAQzwC,OAAQ2yC,QAAQ,OAAQ,IACpCr0C,OAAgB,KAAO,CAACs0C,aAAc,CAACb,OAAO,IAHlD,oBA8BgB,SAACtB,GAE1B,OAAKA,EAAQzwC,OADF,gFACcgyC,KAAKvB,EAAQzwC,OAC7B,KAEF,CAAC6yC,YAAY","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export const HockeyPenaltyTypes = [\n {id: 1, code: 'ÐÐÐ ÐС', title: 'ÐгÑеÑÑÐ¾Ñ Ð² дÑаке'},\n {id: 2, code: 'ÐТ-Ð-ÐÐÐ', title: 'ÐÑака в Ð³Ð¾Ð»Ð¾Ð²Ñ Ð¸Ð»Ð¸ ÑеÑ'},\n {id: 3, code: 'ÐТ-ÐÐ ', title: 'ÐÑака вÑаÑаÑÑ'},\n {id: 4, code: 'ÐТ-СÐ', title: 'ÐÑака Ñзади'},\n {id: 5, code: 'ÐÐÐÐ', title: 'ÐлокиÑовка'},\n {id: 6, code: 'ÐÐ -ÐÐ', title: 'ÐÑоÑок клÑÑки'},\n {id: 7, code: 'ÐÐ-ШÐ', title: 'ÐÑбÑÐ¾Ñ ÑайбÑ'},\n {id: 8, code: 'ÐРУÐ', title: 'ÐÑÑбоÑÑÑ'},\n {id: 9, code: 'ÐÐСЦ', title: 'ÐиÑÑиплинаÑнÑй ÑÑÑаÑ'},\n {id: 10, code: 'ÐÐС-ÐÐ', title: 'ÐиÑÑиплинаÑнÑй до конÑа маÑÑа'},\n {id: 11, code: 'ÐÐ ÐÐÐ', title: 'ÐÑака'},\n {id: 12, code: 'ÐÐЧÐÐ', title: 'ÐаÑинÑик дÑаки'},\n {id: 13, code: 'ÐÐ-ÐÐ', title: 'ÐадеÑжка игÑÑ'},\n {id: 14, code: 'ÐÐ-ÐÐ-СÐ', title: 'ÐадеÑжка клÑÑки ÑопеÑника'},\n {id: 15, code: 'ÐÐ-ÐÐ', title: 'ÐадеÑжка клÑÑкой'},\n {id: 16, code: 'ÐÐ-СÐ', title: 'ÐадеÑжка ÑопеÑника'},\n {id: 17, code: 'ÐÐ-ШÐ', title: 'ÐадеÑжка ÑÐ°Ð¹Ð±Ñ ÑÑками'},\n {id: 18, code: 'СÐ-ÐÐ', title: 'ÐгÑа Ñо Ñломанной клÑÑкой'},\n {id: 19, code: 'ÐÐ-ÐÐ', title: 'ÐгÑа вÑÑоко поднÑÑой клÑÑкой'},\n {id: 20, code: 'ÐÐ-УÐ', title: 'ÐолÑÑий ÑдаÑ'},\n {id: 21, code: 'СÐ-ШТ', title: 'ÐалÑй ÑкамееÑнÑй ÑÑÑаÑ'},\n {id: 22, code: 'ÐШ', title: 'ÐаÑÑ-ÑÑÑаÑ'},\n {id: 23, code: 'ÐÐ-ÐТ', title: 'ÐепÑавилÑÐ½Ð°Ñ Ð°Ñака'},\n {id: 24, code: 'ЧС-СТ', title: 'ÐаÑÑÑение ÑиÑленного ÑоÑÑава'},\n {id: 25, code: 'ÐС-ÐÐ', title: 'ÐеÑÑандаÑÑÐ½Ð°Ñ ÐºÐ»ÑÑка'},\n {id: 26, code: 'ÐÐÐ -ÐÐ', title: 'ÐпаÑное ÑнаÑÑжение'},\n {id: 27, code: 'ÐС-ÐÐ', title: 'ÐÑкоÑбление ÑÑдей и неÑпоÑÑивное поведение'},\n {id: 28, code: 'ÐТ-ÐÐ', title: 'ÐÑказ наÑаÑÑ Ð¸Ð³ÑÑ'},\n {id: 29, code: 'ÐТСЧ', title: 'ÐÑÑеÑение'},\n {id: 30, code: 'ÐÐÐÐÐÐ', title: 'Ðлевок'},\n {id: 31, code: 'ÐÐÐÐ', title: 'Ðодножка'},\n {id: 32, code: 'ÐÐÐС', title: 'ÐодÑеÑка'},\n {id: 33, code: 'ÐÐ -ÐÐ', title: 'ÐÑедÑпÑеждение инÑекÑий'},\n {id: 34, code: 'ÐÐ-СÐ', title: 'Ðокидание Ñкамейки во вÑÐµÐ¼Ñ ÐºÐ¾Ð½ÑликÑа'},\n {id: 35, code: 'СÐ-ÐÐ ', title: 'Сдвиг воÑоÑ'},\n {id: 36, code: 'СÐÐ', title: 'СимÑлÑÑиÑ'},\n {id: 37, code: 'ТÐ-ÐÐ ', title: 'ТолÑок на боÑÑ'},\n {id: 38, code: 'ТÐ-ÐÐ', title: 'ТолÑок клÑÑкой'},\n {id: 39, code: 'УÐ-ÐÐÐ', title: 'Ð£Ð´Ð°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ð¹'},\n {id: 40, code: 'УÐ-ÐÐ', title: 'Ð£Ð´Ð°Ñ ÐºÐ»ÑÑкой'},\n {id: 41, code: 'УÐ-Ð-ÐÐ', title: 'Ð£Ð´Ð°Ñ ÐºÐ¾Ð½Ñом клÑÑки'},\n {id: 42, code: 'УÐ-ÐÐÐ', title: 'Ð£Ð´Ð°Ñ ÐºÐ¾Ð»ÐµÐ½Ð¾Ð¼'},\n {id: 43, code: 'УÐ-ÐÐÐ', title: 'Ð£Ð´Ð°Ñ Ð»Ð¾ÐºÑем'},\n {id: 44, code: 'УÐ-ÐÐ', title: 'Ð£Ð´Ð°Ñ Ð½Ð¾Ð³Ð¾Ð¹'},\n {id: 45, code: 'УÐУС', title: 'УкÑÑ'},\n {id: 46, code: 'ÐÐ-ÐÐ ', title: 'ФизиÑеÑкий конÑÐ°ÐºÑ Ñо зÑиÑелем'},\n {id: 47, code: 'ШТ-ÐÐ ', title: 'ШÑÑÐ°Ñ Ð²ÑаÑаÑÑ'}\n];\n","import { HockeyPenaltyTypes } from '../localization/hockey-penalty-types';\n\nexport const MODEL_MAPPING_FIELDS_KEY = '_mapping_fields_';\nexport const MODEL_RELATION_KEY = '_relation_';\nexport const MODEL_TO_FRONT_KEY = '_to_front_';\nexport const MODEL_TO_BACK_KEY = '_to_back_';\n\ntype ParserInterface = (dto: any, path?: GraphPathInterface) => any;\n\ninterface ModelTypeInterface {\n new(data?: any);\n}\n\nexport interface ModelInterface {\n toFront(dto: any): any;\n toBack(dto: any): any;\n}\n\nexport abstract class BaseModel {\n constructor(data?: {[key: string]: any}) {\n if (data) {\n for (const key of Object.keys(data)) {\n this[key] = data[key];\n }\n }\n }\n\n static toFront(dto: any): any {\n return undefined;\n }\n\n static toBack(dto: any): any {\n return undefined;\n }\n}\n\ninterface GraphPathInterface {\n [key: string]: any;\n}\n\nexport function enumField(enumClass) {\n return {\n toFront: (value) => {\n if (isNaN(+value)) {\n return enumClass[value];\n } else {\n return value;\n }\n },\n toBack: (value) => {\n if (isNaN(+value)) {\n return value;\n } else {\n return enumClass[value];\n }\n }\n };\n}\n\nexport function penaltyTypeField() {\n return {\n toFront: (data) => {\n if (!data) {\n return null;\n }\n if (typeof data === 'object') {\n return data;\n }\n return HockeyPenaltyTypes.find(item => item.id === data);\n },\n toBack: (data) => {\n if (!data) {\n return null;\n }\n if (typeof data === 'object') {\n return data.id;\n }\n return data;\n }\n };\n}\n\nexport function listField(modelClass) {\n return {\n toFront: (value) => {\n if (!Array.isArray(value)) {\n return [];\n }\n return modelClass.toFront(value);\n },\n toBack: (value) => {\n if (!Array.isArray(value)) {\n return [];\n }\n return modelClass.toBack(value);\n }\n };\n}\n\nexport class DateField extends BaseModel {\n static toFront(date: any): any {\n if (date) {\n return new Date(date);\n } else {\n return undefined;\n }\n }\n static toBack(date: Date): any {\n if (date) {\n const dateUtc = new Date(Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds())\n );\n return dateUtc.toISOString().slice(0, 10);\n } else {\n return undefined;\n }\n }\n}\n\nexport class DateTimeField extends BaseModel {\n static toFront(date: any): any {\n if (date) {\n return new Date(date);\n } else {\n return undefined;\n }\n }\n static toBack(date: Date): any {\n if (date) {\n const dateUtc = new Date(Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds())\n );\n return date.toISOString();\n } else {\n return undefined;\n }\n }\n}\n\nexport function ModelInstance(\n config: {\n mappingFields?: { [key: string]: string },\n relation?: { [key: string]: BaseModel }\n }\n) {\n return (target: ModelTypeInterface) => {\n if (config) {\n if (config.mappingFields) {\n target[MODEL_MAPPING_FIELDS_KEY] = config.mappingFields;\n }\n if (config.relation) {\n target[MODEL_RELATION_KEY] = config.relation;\n }\n target[MODEL_TO_FRONT_KEY] = (dto: any, path: GraphPathInterface) => {\n return toFront(target, dto, path);\n };\n target[MODEL_TO_BACK_KEY] = (dto: any, path: GraphPathInterface) => {\n return toBack(target, dto, path);\n };\n }\n };\n}\n\nexport const ToFrontHook = (target: ModelTypeInterface, key: string | symbol, descriptor: TypedPropertyDescriptor<Function>) => {\n return {\n value: (...args: any[]) => {\n const parseMethod = target[MODEL_TO_FRONT_KEY] as ParserInterface;\n if (parseMethod) {\n return parseMethod(args[0], (args.length > 1 ? args[1] : undefined));\n }\n return undefined;\n }\n };\n};\n\nexport const ToBackHook = (target: ModelTypeInterface, key: string | symbol, descriptor: TypedPropertyDescriptor<Function>) => {\n return {\n value: (...args: any[]) => {\n const parseMethod = target[MODEL_TO_BACK_KEY] as ParserInterface;\n if (parseMethod) {\n return parseMethod(args[0]);\n }\n return undefined;\n }\n };\n};\n\nfunction extractValue(key, data) {\n if (!data) {\n return undefined;\n }\n\n const keyParts = key.split('.');\n if (keyParts.length === 1) {\n if (key in data) {\n return data[key];\n } else {\n return undefined;\n }\n }\n\n for (const k of keyParts) {\n if (data && k in data) {\n data = data[k];\n } else {\n return undefined;\n }\n }\n\n return data;\n}\n\nfunction toFront(modelType: ModelTypeInterface, data: any, path?: GraphPathInterface): any {\n // Check if recursion is required\n if (Array.isArray(data)) {\n return data.map(item => {\n return toFront(modelType, item);\n });\n }\n\n const instance = new modelType();\n\n // Mapping fields\n const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY] as string[];\n const relation = modelType[MODEL_RELATION_KEY] as { [key: string]: ModelInterface };\n if (mappingFields) {\n for (const backField of Object.keys(mappingFields)) {\n const frontField = mappingFields[backField];\n const value = extractValue(backField, data);\n if (relation && relation.hasOwnProperty(frontField)) {\n instance[frontField] = relation[frontField].toFront(value);\n } else {\n instance[frontField] = value;\n }\n }\n }\n\n return instance;\n}\n\nfunction toBack(modelType: ModelTypeInterface, instance: any, path?: GraphPathInterface): any {\n if (!instance) {\n return instance;\n }\n\n // Check if recursion is required\n if (Array.isArray(instance)) {\n return instance.map(item => {\n return toBack(modelType, item);\n });\n }\n\n const data = {};\n const mappingFields = modelType[MODEL_MAPPING_FIELDS_KEY] as string[];\n const relation = modelType[MODEL_RELATION_KEY] as { [key: string]: ModelInterface };\n if (mappingFields) {\n for (const backField of Object.keys(mappingFields)) {\n const frontField = mappingFields[backField];\n if (relation && relation.hasOwnProperty(frontField) && instance[frontField] !== undefined) {\n data[backField] = relation[frontField].toBack(instance[frontField]);\n } else {\n data[backField] = instance[frontField];\n }\n }\n }\n\n return data;\n}\n","import { ModelInstance, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum FileEngine {\n django = 1,\n s3\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n path: 'path',\n mime_type: 'mimeType',\n size: 'size',\n engine: 'engine',\n },\n relation: {\n engine: enumField(FileEngine)\n }\n})\nexport class File {\n id: number;\n name: string;\n path: string;\n mimeType: string;\n size: string;\n engine: FileEngine;\n\n @ToFrontHook\n static toFront(data: any): File {\n return null;\n }\n\n @ToBackHook\n static toBack(file: File): any {\n return null;\n }\n}\n","import {ModelInstance, ToFrontHook, ToBackHook, BaseModel} from './util';\n\nexport enum SportTypes {\n basketball = 1,\n volleyball = 2,\n classic_basketball = 3,\n streetball = 4,\n classic_volleyball = 5,\n beach_volleyball = 6,\n hockey = 7,\n ice_hockey = 8,\n ball_hockey = 9,\n football = 10,\n classic_football = 11,\n mini_football = 12\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n parent_id: 'parentId',\n sub_sports: 'subSports'\n }\n})\nexport class Sport extends BaseModel {\n id: number;\n name: string;\n parentId: number;\n subSports: Sport[];\n\n isBasketball() {\n return this.id === SportTypes.basketball || this.parentId === SportTypes.basketball;\n }\n\n isClassicBasketball() {\n return this.id === SportTypes.classic_basketball;\n }\n\n isStreetball() {\n return this.id === SportTypes.streetball;\n }\n\n isVolleyball() {\n return this.id === SportTypes.volleyball || this.parentId === SportTypes.volleyball;\n }\n\n isClassicVolleyball() {\n return this.id === SportTypes.classic_volleyball;\n }\n\n isBeachVolleyball() {\n return this.id === SportTypes.beach_volleyball;\n }\n\n isHockey(): boolean {\n return this.id === SportTypes.hockey || this.parentId === SportTypes.hockey;\n }\n\n isIceHockey(): boolean {\n return this.id === SportTypes.ice_hockey;\n }\n\n isBallHockey(): boolean {\n return this.id === SportTypes.ball_hockey;\n }\n\n isFootball() {\n return this.id === SportTypes.football || this.parentId === SportTypes.football;\n }\n\n isClassicFootball() {\n return this.id === SportTypes.classic_football;\n }\n\n isMiniFootball() {\n return this.id === SportTypes.mini_football;\n }\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(sport: Sport): any {\n return null;\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameBasketballPosition {\n point_guard = 1,\n shooting_guard,\n small_forward,\n power_forward,\n center\n}\n\nexport enum WorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameBasketballPosition),\n workHand: enumField(WorkHand)\n }\n})\nexport class BasketballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameBasketballPosition;\n workHand: WorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n height: 'height',\n weight: 'weight'\n }\n})\nexport class UserProfile {\n id: number;\n userId: number;\n height: number;\n weight: number;\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name'\n }\n})\nexport class City extends BaseModel {\n id: number;\n name: string;\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameVolleyballPosition {\n setter = 1,\n libero,\n middle_player,\n receiver_attacker,\n dioganal\n}\n\nexport enum VolleyballWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameVolleyballPosition),\n workHand: enumField(VolleyballWorkHand)\n }\n})\nexport class VolleyballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameVolleyballPosition;\n workHand: VolleyballWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameHockeyPosition {\n defensemen = 1,\n forward,\n goaltender\n}\n\nexport enum HockeyWorkHand {\n left = 1,\n right\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_hand: 'workHand'\n },\n relation: {\n position: enumField(GameHockeyPosition),\n workHand: enumField(HockeyWorkHand)\n }\n})\nexport class HockeyProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameHockeyPosition;\n workHand: HockeyWorkHand;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum GameFootballPosition {\n defensemen = 1,\n midfielder,\n forward,\n goalkeeper\n}\n\nexport enum FootballWorkFoot {\n left = 1,\n right,\n both\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n position: 'position',\n work_foot: 'workFoot'\n },\n relation: {\n position: enumField(GameFootballPosition),\n workFoot: enumField(FootballWorkFoot)\n }\n})\nexport class FootballProfile extends BaseModel {\n id: number;\n userId: number;\n position: GameFootballPosition;\n workFoot: FootballWorkFoot;\n\n @ToFrontHook\n static toFront(value: any): any {\n }\n\n @ToBackHook\n static toBack(value: any): any {\n }\n}\n","import { BaseModel, DateField, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { UserProfile } from './user-profile';\nimport { File } from './file';\nimport { City } from './city';\nimport { BasketballProfile } from './basketball-profile';\nimport { VolleyballProfile } from './volleyball-profile';\nimport { HockeyProfile } from './hockey-profile';\nimport { FootballProfile } from './football-profile';\n\nexport enum UserGender {\n male = 1,\n female\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n last_name: 'lastName',\n first_name: 'firstName',\n middle_name: 'middleName',\n email: 'email',\n phone: 'phone',\n birth_date: 'birthDate',\n photo: 'photo',\n profile: 'profile',\n basketball_profile: 'basketballProfile',\n volleyball_profile: 'volleyballProfile',\n hockey_profile: 'hockeyProfile',\n football_profile: 'footballProfile',\n wizards: 'wizards',\n city: 'city',\n gender: 'gender',\n is_active: 'isActive',\n },\n relation: {\n birthDate: DateField,\n photo: File,\n profile: UserProfile,\n basketballProfile: BasketballProfile,\n volleyballProfile: VolleyballProfile,\n hockeyProfile: HockeyProfile,\n footballProfile: FootballProfile,\n city: City,\n gender: enumField(UserGender)\n }\n})\nexport class User extends BaseModel {\n id: number;\n lastName: string;\n firstName: string;\n middleName: string;\n email: string;\n phone: string;\n birthDate: Date;\n profile: UserProfile;\n basketballProfile: BasketballProfile;\n volleyballProfile: VolleyballProfile;\n hockeyProfile: HockeyProfile;\n footballProfile: FootballProfile;\n photo: File;\n wizards: string[];\n city: City;\n gender: UserGender;\n isActive: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(user: User): any {\n return null;\n }\n\n get fullName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n get age(): number {\n if (!this.birthDate) {\n return null;\n }\n const diff = (new Date()).getTime() - this.birthDate.getTime();\n return Math.floor(diff / (365 * 86400 * 1000));\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, enumField, DateField } from './util';\nimport { File } from './file';\n\nexport enum TournamentSeasonStatuses {\n open,\n in_progress,\n closed,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n alias: 'alias',\n logo: 'logo',\n cover: 'cover',\n preview_image: 'previewImage',\n status: 'status',\n start_date: 'startDate',\n closed_date: 'closedDate',\n },\n relation: {\n logo: File,\n cover: File,\n previewImage: File,\n status: enumField(TournamentSeasonStatuses),\n startDate: DateField,\n closedDate: DateField,\n }\n})\nexport class TournamentSeason extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n previewImage: File;\n status: TournamentSeasonStatuses;\n startDate: Date;\n closedDate: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateField } from './util';\nimport { File } from './file';\nimport { Sport } from './sport';\nimport { User } from './user';\nimport { City } from './city';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n sport: 'sport',\n logo: 'logo',\n owner: 'owner',\n city: 'city',\n users_count: 'usersCount',\n won_games_count: 'wonGamesCount',\n games_count: 'gamesCount',\n score_sum: 'scoreSum',\n closest_game_datetime: 'closestGameDatetime',\n },\n relation: {\n sport: Sport,\n logo: File,\n owner: User,\n city: City,\n closestGameDatetime: DateField,\n }\n})\nexport class Team extends BaseModel {\n id: number;\n name: string;\n sport: Sport;\n logo: File;\n owner: User;\n city: City;\n usersCount: number;\n wonGamesCount: number;\n gamesCount: number;\n scoreSum: number;\n closestGameDatetime: Date;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n return classList.join(' ');\n }\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(team: Team): any {\n return null;\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\nimport { User } from './user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n owner_id: 'ownerId',\n owner: 'owner',\n },\n relation: {\n owner: User,\n }\n})\nexport class Organization extends BaseModel {\n id: number;\n ownerId: number;\n owner: User;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Organization } from './organization';\nimport { File } from './file';\nimport { Sport } from './sport';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n logo: 'logo',\n contact_email: 'contactEmail',\n contact_phone: 'contactPhone',\n name: 'name',\n alias: 'alias',\n sport: 'sport',\n description: 'description',\n social_links: 'socialLinks',\n links: 'links',\n organization: 'organization',\n tournaments_count: 'tournamentsCount',\n closest_game_datetime: 'closestGameDatetime',\n cover: 'cover',\n about: 'about',\n },\n relation: {\n organization: Organization,\n logo: File,\n cover: File,\n sport: Sport\n }\n})\nexport class League extends BaseModel {\n id: number;\n logo: File;\n contactEmail: string;\n contactPhone: string;\n name: string;\n alias: string;\n sport: Sport;\n description: string;\n socialLinks: string[];\n links: string[];\n organization: Organization;\n tournamentsCount: number;\n closestGameDatetime: string;\n cover: File;\n about: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get vkLink(): string {\n return this.socialLinks.find(link => link.substr(0, 15) === 'https://vk.com/');\n }\n\n get fbLink(): string {\n return this.socialLinks.find(link => link.substr(0, 25) === 'https://www.facebook.com/');\n }\n\n get instaLink(): string {\n return this.socialLinks.find(link => link.substr(0, 25) === 'https://www.instagram.com');\n }\n}\n","import { BaseModel, enumField, ModelInstance, DateTimeField, ToBackHook, ToFrontHook } from './util';\nimport { City } from './city';\nimport { File } from './file';\nimport { League } from './league';\nimport { Sport } from './sport';\nimport { Team } from './team';\nimport { TournamentSeason } from './tournament-season';\n\nexport enum TournamentTypes {\n group = 'group',\n elimination = 'elimination',\n fiba = 'fiba'\n}\n\nexport enum TournamentStatuses {\n open,\n in_progress,\n closed,\n}\n\nexport enum TournamentGender {\n male= 1,\n female,\n all\n}\n\nexport enum BasketballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum VolleyballStatisticTypes {\n standard = 1,\n light,\n advanced\n}\n\nexport enum GameTimeTypes {\n clean = 1,\n dirty,\n}\n\nexport enum OvertimeTypes {\n to_score_total = 1,\n to_score_diff,\n time,\n without_overtime,\n to_first_goal,\n to_first_goal_and_bullitts,\n bullitts,\n penalties,\n time_and_penalties\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n gender: 'gender',\n age_from: 'ageFrom',\n age_to: 'ageTo',\n max_team_players: 'maxTeamPlayers',\n max_game_players: 'maxGamePlayers',\n type: 'type',\n tours_count: 'toursCount',\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_score: 'overtimeScore',\n game_type: 'gameType',\n timeout_count: 'timeoutCount',\n timeout_time: 'timeoutTime',\n substitute_count: 'substituteCount',\n game_up_to_score: 'gameUpToScore',\n volleyball_score_in_set: 'volleyballScoreInSet',\n volleyball_score_in_last_set: 'volleyballScoreInLastSet',\n manage_team_application: 'manageTeamApplication',\n recruitment_is_open: 'recruitmentIsOpen',\n transfer_is_open: 'transferIsOpen',\n basketball_statistic_type: 'basketballStatisticType',\n volleyball_statistic_type: 'volleyballStatisticType',\n shot_clock_enabled: 'shotClockEnabled',\n game_time_type: 'gameTimeType',\n with_result_table: 'withResultTable'\n },\n relation: {\n type: enumField(TournamentTypes),\n gender: enumField(TournamentGender),\n basketballStatisticType: enumField(BasketballStatisticTypes),\n volleyballStatisticType: enumField(VolleyballStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n overtimeType: enumField(OvertimeTypes),\n }\n})\nexport class TournamentSettings extends BaseModel {\n id: number;\n gender: TournamentGender;\n ageFrom: number;\n ageTo: number;\n maxTeamPlayers: number;\n maxGamePlayers: number;\n type: TournamentTypes;\n toursCount: number;\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n gameType: string;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n gameUpToScore: number;\n volleyballScoreInSet: number;\n volleyballScoreInLastSet: number;\n manageTeamApplication: boolean;\n recruitmentIsOpen: boolean;\n transferIsOpen: boolean;\n basketballStatisticType: BasketballStatisticTypes;\n volleyballStatisticType: VolleyballStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n withResultTable: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n tournament_id: 'tournamentId',\n team: 'team',\n points: 'points',\n },\n relation: {\n team: Team,\n }\n})\nexport class TournamentTeamWinner extends BaseModel {\n id: number;\n teamId: number;\n tournamentId: number;\n team: Team;\n points: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n alias: 'alias',\n logo: 'logo',\n cover: 'cover',\n preview_image: 'previewImage',\n city: 'city',\n sport: 'sport',\n location: 'location',\n description: 'description',\n date: 'date',\n price: 'price',\n regulation_files: 'regulationFiles',\n settings: 'settings',\n league: 'league',\n teams_count: 'teamsCount',\n closest_game_datetime: 'closestGameDatetime',\n status: 'status',\n team_winner: 'teamWinner',\n team_second: 'teamSecond',\n team_third: 'teamThird',\n season: 'season',\n },\n relation: {\n logo: File,\n cover: File,\n previewImage: File,\n city: City,\n sport: Sport,\n regulationFile: File,\n settings: TournamentSettings,\n date: DateTimeField,\n league: League,\n status: enumField(TournamentStatuses),\n teamWinner: TournamentTeamWinner,\n teamSecond: TournamentTeamWinner,\n teamThird: TournamentTeamWinner,\n season: TournamentSeason,\n }\n})\nexport class Tournament extends BaseModel {\n id: number;\n name: string;\n alias: string;\n logo: File;\n cover: File;\n previewImage: File;\n city: City;\n sport: Sport;\n location: string;\n description: string;\n date: Date;\n price: number;\n regulationFiles: File[];\n settings: TournamentSettings;\n league: League;\n teamsCount: number;\n closestGameDatetime: string;\n status: TournamentStatuses;\n teamWinner: TournamentTeamWinner;\n teamSecond: TournamentTeamWinner;\n teamThird: TournamentTeamWinner;\n season: TournamentSeason;\n\n getEmptyLogoClass(): string {\n const classList = ['empty-logo'];\n if (this.sport.isBasketball()) {\n classList.push('empty-logo-basketball');\n }\n if (this.sport.isVolleyball()) {\n classList.push('empty-logo-volleyball');\n }\n if (this.sport.isHockey()) {\n classList.push('empty-logo-hockey');\n }\n if (this.sport.isFootball()) {\n classList.push('empty-logo-football');\n }\n return classList.join(' ');\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { VolleyballStatisticTypes } from './tournament';\n\nexport enum VolleyballGameTypes {\n best_of_five = 1,\n best_of_three\n}\n\n@ModelInstance({\n mappingFields: {\n game_type: 'gameType',\n timeout_count: 'timeoutCount',\n timeout_time: 'timeoutTime',\n substitute_count: 'substituteCount',\n score_in_set: 'scoreInSet',\n score_in_last_set: 'scoreInLastSet',\n statistic_type: 'statisticType'\n },\n relation: {\n gameType: enumField(VolleyballGameTypes),\n statisticType: enumField(VolleyballStatisticTypes),\n }\n})\nexport class VolleyballGameConfig extends BaseModel {\n gameType: VolleyballGameTypes;\n timeoutCount: number;\n timeoutTime: number;\n substituteCount: number;\n scoreInSet: number;\n scoreInLastSet: number;\n statisticType: VolleyballStatisticTypes;\n\n get setsCount(): number {\n return this.gameType === VolleyballGameTypes.best_of_three ? 3 : 5;\n }\n\n getSetMaxScore(set: number) {\n return set === this.setsCount ? this.scoreInLastSet : this.scoreInSet;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { BasketballStatisticTypes, GameTimeTypes, OvertimeTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n game_up_to_score: 'gameUpToScore',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n overtime_score: 'overtimeScore',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n statistic_type: 'statisticType',\n shot_clock_enabled: 'shotClockEnabled',\n game_time_type: 'gameTimeType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n statisticType: enumField(BasketballStatisticTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class BasketballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n gameUpToScore: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n overtimeScore: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n statisticType: BasketballStatisticTypes;\n shotClockEnabled: boolean;\n gameTimeType: GameTimeTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField, listField } from './util';\nimport { Team } from './team';\nimport { BasketballGameConfig } from './basketball-game-config';\nimport { VolleyballGameConfig } from './volleyball-game-config';\nimport { LeagueCourt } from './league-court';\nimport { MediaItem } from './media-item';\nimport { HockeyGameConfig } from './hockey-game-config';\nimport { Tournament } from './tournament';\nimport { FootballGameConfig } from './football-game-config';\n\nexport enum GameStatuses {\n open = 1,\n in_progress,\n closed,\n archived,\n draft\n}\n\nexport enum GameResultTypes {\n team_won = 1,\n competitor_team_won,\n team_technical_defeat,\n competitor_team_technical_defeat\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n status: 'status',\n team: 'team',\n tournament_team_id: 'tournamentTeamId',\n team_id: 'teamId',\n competitor_team: 'competitorTeam',\n competitor_tournament_team_id: 'competitorTournamentTeamId',\n competitor_team_id: 'competitorTeamId',\n competitor_team_name: 'competitorTeamName',\n datetime: 'datetime',\n location: 'location',\n team_score: 'teamScore',\n competitor_team_score: 'competitorTeamScore',\n result_type: 'resultType',\n playoff_number: 'playoffNumber',\n tournament_id: 'tournamentId',\n tournament_tour: 'tournamentTour',\n basketball_game_config: 'basketballGameConfig',\n volleyball_game_config: 'volleyballGameConfig',\n hockey_game_config: 'hockeyGameConfig',\n football_game_config: 'footballGameConfig',\n score_by_period: 'scoreByPeriod',\n playoff_stage: 'playoffStage',\n tournament_stage_id: 'tournamentStageId',\n tournament_playoff_id: 'tournamentPlayoffId',\n tournament_court: 'tournamentCourt',\n media_count: 'mediaCount',\n media_live_count: 'mediaLiveCount',\n media: 'media',\n tournament: 'tournament',\n },\n relation: {\n status: enumField(GameStatuses),\n team: Team,\n competitorTeam: Team,\n datetime: DateTimeField,\n resultType: enumField(GameResultTypes),\n basketballGameConfig: BasketballGameConfig,\n volleyballGameConfig: VolleyballGameConfig,\n hockeyGameConfig: HockeyGameConfig,\n footballGameConfig: FootballGameConfig,\n tournamentCourt: LeagueCourt,\n media: listField(MediaItem),\n tournament: Tournament,\n }\n})\nexport class Game extends BaseModel {\n id: number;\n status: GameStatuses;\n team: Team;\n teamId: number;\n tournamentTeamId: number;\n competitorTeam: Team;\n competitorTeamId: number;\n competitorTournamentTeamId: number;\n competitorTeamName: string;\n datetime: Date;\n location: string;\n teamScore: number;\n competitorTeamScore: number;\n archive: boolean;\n playoffNumber: string;\n tournamentId: number;\n tournamentTour: number;\n basketballGameConfig: BasketballGameConfig;\n volleyballGameConfig: VolleyballGameConfig;\n hockeyGameConfig: HockeyGameConfig;\n footballGameConfig: FootballGameConfig;\n scoreByPeriod: any;\n playoffStage: string;\n tournamentStageId: number;\n tournamentPlayoffId: number;\n tournamentCourt: LeagueCourt;\n mediaCount: number;\n mediaLiveCount: number;\n media: MediaItem[];\n tournament: Tournament;\n\n get scoreByPeriodList(): {period: number, teamScore: number, competitorTeamScore: number}[] {\n if (!this.scoreByPeriod) {\n return [];\n }\n return Object.keys(this.scoreByPeriod).map(period => ({\n period: +period,\n teamScore: this.scoreByPeriod[period][0],\n competitorTeamScore: this.scoreByPeriod[period][1]\n }));\n }\n\n get isClosed(): boolean {\n return this.status === GameStatuses.closed;\n }\n\n get isTeamWon() {\n return this.teamScore > this.competitorTeamScore;\n }\n\n get isCompetitorTeamWon() {\n return this.competitorTeamScore > this.teamScore;\n }\n\n get teamWinnerId() {\n if (this.status !== GameStatuses.closed) {\n return null;\n }\n if (this.teamScore === this.competitorTeamScore) {\n return null;\n }\n if (this.team.id) {\n return this.teamScore > this.competitorTeamScore ? this.team.id : this.competitorTeam.id;\n } else {\n return this.teamScore > this.competitorTeamScore ? this.teamId : this.competitorTeamId;\n }\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n address: 'address',\n league_id: 'leagueId'\n }\n})\nexport class LeagueCourt extends BaseModel {\n id: number;\n name: string;\n address: string;\n leagueId: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n original_photo: 'originalPhoto',\n list_photo: 'listPhoto',\n detail_photo: 'detailPhoto',\n game: 'game',\n tournament: 'tournament',\n game_id: 'gameId',\n tournament_id: 'tournament_id',\n video_url: 'videoUrl',\n video_preview: 'videoPreview',\n is_live: 'isLive',\n },\n relation: {\n originalPhoto: File,\n listPhoto: File,\n detailPhoto: File,\n videoPreview: File\n }\n})\nexport class MediaItem extends BaseModel {\n id: number;\n originalPhoto: File;\n listPhoto: File;\n detailPhoto: File;\n gameId: number;\n tournamentId: number;\n videoUrl: string;\n videoPreview: File;\n isLive: boolean;\n\n get isVideo(): boolean {\n return Boolean(this.videoUrl);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class HockeyGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { GameTimeTypes, OvertimeTypes } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n periods_count: 'periodsCount',\n period_time: 'periodTime',\n overtime_type: 'overtimeType',\n overtime_time: 'overtimeTime',\n max_game_players: 'maxGamePlayers',\n timeout_count: 'timeoutCount',\n overtime_timeout_count: 'overtimeTimeoutCount',\n timeout_time: 'timeoutTime',\n game_time_type: 'gameTimeType',\n },\n relation: {\n overtimeType: enumField(OvertimeTypes),\n gameTimeType: enumField(GameTimeTypes),\n }\n})\nexport class FootballGameConfig extends BaseModel {\n periodsCount: number;\n periodTime: number;\n overtimeType: OvertimeTypes;\n overtimeTime: number;\n maxGamePlayers: number;\n timeoutCount: number;\n overtimeTimeoutCount: number;\n timeoutTime: number;\n gameTimeType: GameTimeTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n","import { BaseModel, enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\nexport enum TeamUserRole {\n member = 1,\n moderator,\n admin,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n user: 'user',\n role: 'role',\n number: 'number',\n team: 'team',\n },\n relation: {\n user: User,\n team: Team,\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamUser extends BaseModel {\n id: number;\n teamId: number;\n user: User;\n team: Team;\n number: number;\n role: TeamUserRole;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(teamPlayer: TeamUser): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentTeam } from './tournament-team';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n tournament_stage_id: 'tournamentStageId'\n }\n})\nexport class TournamentGroup extends BaseModel {\n id: number;\n name: string;\n tournamentStageId: number;\n teams: TournamentTeam[];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Team } from './team';\nimport { TournamentGroup } from './tournament-group';\nimport { Game } from './game';\nimport { Tournament } from './tournament';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n tournament_id: 'tournamentId',\n tournament: 'tournament',\n team: 'team',\n group: 'group',\n final_standing: 'finalStanding',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n draw_games_count: 'drawGamesCount',\n last_games_count: 'lastGamesCount',\n last_games_won: 'lastGamesWon',\n score_sum: 'scoreSum',\n missed_sum: 'missedSum',\n score_points_sum: 'scorePointsSum',\n missed_points_sum: 'missedPointsSum',\n points: 'points',\n users_count: 'usersCount',\n games: 'games',\n notifications_count: 'notificationsCount',\n win_normal_time_games_count: 'winNormalTimeGamesCount',\n lose_normal_time_games_count: 'loseNormalTimeGamesCount',\n win_overtime_games_count: 'winOvertimeGamesCount',\n lose_overtime_games_count: 'loseOvertimeGamesCount',\n },\n relation: {\n tournament: Tournament,\n team: Team,\n group: TournamentGroup,\n games: Game,\n }\n})\nexport class TournamentTeam extends BaseModel {\n id: number;\n teamId: number;\n tournamentId: number;\n tournament: Tournament;\n team: Team;\n group: TournamentGroup;\n finalStanding: number;\n gamesCount: number;\n wonGamesCount: number;\n drawGamesCount: number;\n lastGamesCount: number;\n lastGamesWon: number;\n scoreSum: number;\n missedSum: number;\n scorePointsSum: number;\n missedPointsSum: number;\n points: number;\n usersCount: number;\n games: Game[];\n notificationsCount: number;\n winNormalTimeGamesCount: number;\n loseNormalTimeGamesCount: number;\n winOvertimeGamesCount: number;\n loseOvertimeGamesCount: number;\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team_user_id: 'tournamentTeamUserId',\n date_from: 'dateFrom',\n date_to: 'dateTo',\n matches_count: 'matchesCount',\n },\n relation: {\n dateFrom: DateField,\n dateTo: DateField,\n }\n})\nexport class TournamentDisqualification extends BaseModel {\n id: number;\n tournamentTeamUserId: number;\n dateFrom: Date;\n dateTo: Date;\n matchesCount: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TeamUser } from './team-user';\nimport { File } from './file';\nimport { TournamentDisqualification } from './tournament-disqualification';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team: 'tournamentTeam',\n team_user: 'teamUser',\n disqualified: 'disqualified',\n first_name: 'firstName',\n last_name: 'lastName',\n middle_name: 'middleName',\n photo: 'photo',\n disqualification: 'disqualification',\n has_changes: 'hasChanges',\n rating: 'rating'\n },\n relation: {\n tournamentTeam: TournamentTeam,\n teamUser: TeamUser,\n photo: File,\n disqualification: TournamentDisqualification,\n }\n})\nexport class TournamentTeamUser extends BaseModel {\n id: number;\n tournamentTeam: TournamentTeam;\n teamUser: TeamUser;\n disqualified: boolean;\n firstName: string;\n lastName: string;\n middleName: string;\n photo: File; disqualification: TournamentDisqualification;\n hasChanges: boolean;\n rating: number;\n\n get fullName(): string {\n return [this.lastName, this.firstName, this.middleName].filter(s => s).join(' ');\n }\n\n get shortName(): string {\n return [this.lastName, this.firstName].filter(s => s).join(' ');\n }\n\n get initials(): string {\n return [this.lastName, this.firstName].filter(s => s).map(s => s.substr(0, 1)).join('');\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { TeamUser } from './team-user';\nimport { TournamentTeamUser } from './tournament-team-user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game_id: 'gameId',\n team_user: 'teamUser',\n tournament_team_user: 'tournamentTeamUser',\n updated_at: 'updatedAt'\n },\n relation: {\n teamUser: TeamUser,\n tournamentTeamUser: TournamentTeamUser,\n updatedAt: DateTimeField,\n }\n})\nexport class GameUser extends BaseModel {\n id: number;\n gameId: number;\n teamUser: TeamUser;\n tournamentTeamUser: TournamentTeamUser;\n updatedAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","export function updateItemInArray(data: any[], item: any, force = false, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return data;\n }\n return data.map(v => {\n if (checkFunction && isFunction(checkFunction)) {\n if (!checkFunction(v)) {\n return v;\n }\n } else if (v.id !== item.id) {\n return v;\n }\n if (v.updatedAt && item.updatedAt && !force) {\n return v.updatedAt > item.updatedAt ? v : item;\n }\n return item;\n });\n}\n\nexport function updateItemsInArray(data: any[], items: any[], force: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n items.forEach(item => {\n data = updateItemInArray(data, item, force, checkFunction);\n });\n return data;\n}\n\nexport function patchItemInArray(data: any[], item: any, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return data;\n }\n return data.map(v => {\n if (checkFunction && isFunction(checkFunction)) {\n if (!checkFunction(v)) {\n return v;\n }\n } else if (v.id !== item.id) {\n return v;\n }\n return Object.assign(v, item);\n });\n}\n\nexport function addItemInArray(data: any[], item: any, atEnd: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n if (!Array.isArray(data)) {\n return [item];\n }\n if (data.find(i => isFunction(checkFunction) ? checkFunction(i) : i.id === item.id)) {\n return data;\n }\n\n return atEnd\n ? [...data, item]\n : [item, ...data];\n}\n\nexport function addItemsInArray(data: any[], items: any[], atEnd: boolean = false, checkFunction?: (item: any) => boolean): any[] {\n (!atEnd\n ? Object.assign([], items).reverse()\n : items\n ).forEach(item => {\n data = addItemInArray(data, item, atEnd, checkFunction);\n });\n return data;\n}\n\nexport function deleteItemFromArray(data: any[], item: any): any[] {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isFunction(item)) {\n return data.filter(i => !item(i));\n } else {\n return data.filter(v => v.id !== item.id);\n }\n}\n\nfunction isFunction(functionToCheck) {\n return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum BasketballGameLogTypes {\n enter_game = 1,\n exit_game,\n remove_game,\n two_point_made,\n three_point_made,\n free_throw_made,\n two_point_attempt,\n three_point_attempt,\n free_throw_attempt,\n assist,\n block,\n rebound,\n offensive_rebound,\n defensive_rebound,\n steal,\n turnover,\n personal_foul,\n technical_foul,\n unsportsmanlike_foul,\n one_point_attempt,\n one_point_made,\n timeout,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(BasketballGameLogTypes),\n }\n})\nexport class BasketballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: BasketballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n combined: BasketballGameLog;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n\n isPointsType() {\n return [\n BasketballGameLogTypes.two_point_made,\n BasketballGameLogTypes.three_point_made,\n BasketballGameLogTypes.free_throw_made,\n BasketballGameLogTypes.one_point_made,\n ].indexOf(this.logType) > -1;\n }\n\n isReboundType() {\n return [\n BasketballGameLogTypes.rebound,\n BasketballGameLogTypes.offensive_rebound,\n BasketballGameLogTypes.defensive_rebound\n ].indexOf(this.logType) > -1;\n }\n\n isFoulType() {\n return [\n BasketballGameLogTypes.personal_foul,\n BasketballGameLogTypes.technical_foul,\n BasketballGameLogTypes.unsportsmanlike_foul\n ].indexOf(this.logType) > -1;\n }\n\n getScore() {\n const scoreMapping = {\n [BasketballGameLogTypes.one_point_made]: 1,\n [BasketballGameLogTypes.free_throw_made]: 1,\n [BasketballGameLogTypes.two_point_made]: 2,\n [BasketballGameLogTypes.three_point_made]: 3\n };\n return scoreMapping[this.logType];\n }\n\n compare(model: BasketballGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { addItemInArray, addItemsInArray, deleteItemFromArray, updateItemInArray, updateItemsInArray } from '../utils/data';\nimport { StorageEngine } from './storage-engine';\n\nexport class Store {\n private data: {[key: string]: BehaviorSubject<any>} = {};\n\n constructor(private engine?: StorageEngine) {\n }\n\n get(key: string): Observable<any> {\n return this.getSubject(key).pipe(filter(item => item !== undefined));\n }\n\n value(key: string): any {\n return this.getSubject(key).value;\n }\n\n save(key: string, value: any): void {\n this.getSubject(key).next(value);\n if (this.engine) {\n this.engine.save(key, value);\n }\n }\n\n appendItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, true, checkFunction));\n }\n\n appendItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, true));\n }\n\n prependItem(key: string, value: any, checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n prependItems(key: string, value: any[], checkFunction?: (item: any) => boolean): void {\n this.save(key, addItemsInArray(this.value(key) || [], value, false, checkFunction));\n }\n\n updateItem(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n updateItems(key: string, value: any, force?: boolean, checkFunction?: (item: any) => boolean): void {\n this.save(key, updateItemsInArray(this.value(key) || [], value, force, checkFunction));\n }\n\n deleteItem(key: string, value: any): void {\n this.save(key, deleteItemFromArray(this.value(key) || [], value));\n }\n\n dispose(): void {\n for (const key of Object.keys(this.data)) {\n this.data[key].complete();\n delete this.data[key];\n }\n }\n\n clearStorageData(): void {\n if (this.engine) {\n this.engine.clear();\n }\n }\n\n getEngine(): StorageEngine {\n return this.engine;\n }\n\n private getSubject(key: string): BehaviorSubject<any> {\n if (!this.data[key]) {\n this.data[key] = new BehaviorSubject<any>(this.engine ? this.engine.get(key) : undefined);\n }\n return this.data[key];\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '../storage/store';\n\n@Injectable({providedIn: 'root'})\nexport class BaseService {\n protected store = new Store();\n\n dispose(): void {\n this.store.dispose();\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { BaseService } from './base.service';\n\nconst CONFIG_STORE_KEY = 'config';\n\nexport const CONFIG_DATA = 'mtg-core-config-data';\n\n@Injectable({providedIn: 'root'})\nexport class ConfigService extends BaseService {\n constructor(\n @Optional() @Inject(CONFIG_DATA) private configData: any\n ) {\n super();\n if (configData) {\n this.initialize(configData);\n }\n }\n\n get config$() {\n return this.store.get(CONFIG_STORE_KEY);\n }\n\n get config() {\n return this.store.value(CONFIG_STORE_KEY) || {};\n }\n\n initialize(data: any): void {\n this.store.save(CONFIG_STORE_KEY, data);\n }\n\n set(key: string, value: any): void {\n this.store.save(CONFIG_STORE_KEY, {\n ...this.config,\n [key]: value\n });\n }\n\n get(key: string): any {\n return this.store.value(CONFIG_STORE_KEY) && this.store.value(CONFIG_STORE_KEY)[key];\n }\n}\n","import { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\n\nexport class BaseStatistic {\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: boolean;\n gamesCount: number;\n wonGamesCount: number;\n newbie: boolean;\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic } from './base-statistic';\n\n@ModelInstance({\n mappingFields: {\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n points: 'points',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n free_throws_made: 'freeThrowsMade',\n one_points_made: 'onePointsMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n two_point_percent: 'twoPointPercent',\n three_point_percent: 'threePointPercent',\n free_throw_percent: 'freeThrowPercent',\n one_point_percent: 'onePointPercent',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n technical_fouls: 'technicalFouls',\n unsportsmanlike_fouls: 'unsportsmanlikeFouls',\n newbie: 'newbie',\n },\n relation: {\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class BasketballStatistic extends BaseStatistic {\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: boolean;\n gamesCount: number;\n wonGamesCount: number;\n points: number;\n twoPointsMade: number;\n threePointsMade: number;\n freeThrowsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n twoPointPercent: number;\n threePointPercent: number;\n freeThrowPercent: number;\n onePointPercent: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n newbie: boolean;\n\n get totalFouls() {\n return this.personalFouls + this.technicalFouls + this.unsportsmanlikeFouls;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { BasketballStatistic } from './basketball-statistic';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: BasketballStatistic,\n competitorTeam: BasketballStatistic\n }\n})\nexport class BasketballGameTeamStatistic extends BaseModel {\n team: BasketballStatistic;\n competitorTeam: BasketballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n points: 'points',\n free_throws_made: 'freeThrowsMade',\n two_points_made: 'twoPointsMade',\n three_points_made: 'threePointsMade',\n one_points_made: 'onePointsMade',\n two_point_attempts: 'twoPointAttempts',\n three_point_attempts: 'threePointAttempts',\n free_throw_attempts: 'freeThrowAttempts',\n one_point_attempts: 'onePointAttempts',\n assists: 'assists',\n blocks: 'blocks',\n rebounds: 'rebounds',\n offensive_rebounds: 'offensiveRebounds',\n defensive_rebounds: 'defensiveRebounds',\n steals: 'steals',\n turnovers: 'turnovers',\n personal_fouls: 'personalFouls',\n technical_fouls: 'technicalFouls',\n unsportsmanlike_fouls: 'unsportsmanlikeFouls',\n updated_at: 'updatedAt',\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class BasketballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n freeThrowsMade: number;\n twoPointsMade: number;\n threePointsMade: number;\n onePointsMade: number;\n twoPointAttempts: number;\n threePointAttempts: number;\n freeThrowAttempts: number;\n onePointAttempts: number;\n assists: number;\n blocks: number;\n rebounds: number;\n offensiveRebounds: number;\n defensiveRebounds: number;\n steals: number;\n turnovers: number;\n personalFouls: number;\n technicalFouls: number;\n unsportsmanlikeFouls: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get totalFouls(): number {\n return (this.personalFouls || 0) + (this.technicalFouls || 0) + (this.unsportsmanlikeFouls || 0);\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField, penaltyTypeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum HockeyGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n shootout_attempt,\n shootout_goal,\n assist,\n block_shot ,\n minor_penalty ,\n major_penalty ,\n misconduct_penalty ,\n game_misconduct_penalty ,\n match_penalty ,\n penalty_shot ,\n face_off_lose ,\n face_off_win ,\n save ,\n timeout,\n penalty_start,\n penalty_end,\n}\n\nexport enum HockeyAdvantageTypes {\n power_play = 1,\n shorthanded,\n even_strength\n}\n\nexport interface PenaltyType {\n id: number;\n code: string;\n title: string;\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n advantage: 'advantage',\n advantage_num: 'advantageNum',\n is_goalie: 'isGoalie',\n penalty_type: 'penaltyType',\n penalized_game_user_id: 'penalizedGameUserId',\n mutual_penalty: 'mutualPenalty',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(HockeyGameLogTypes),\n advantage: enumField(HockeyAdvantageTypes),\n penaltyType: penaltyTypeField()\n }\n})\nexport class HockeyGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: HockeyGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n advantage: HockeyAdvantageTypes;\n advantageNum: number;\n isGoalie: boolean;\n penaltyType: PenaltyType;\n _penalizedGameUserId: number;\n mutualPenalty: boolean;\n\n get penalizedGameUserId(): number {\n if (this._penalizedGameUserId) {\n return this._penalizedGameUserId;\n }\n return this.gameUserId;\n }\n\n set penalizedGameUserId(value: number) {\n this._penalizedGameUserId = value;\n }\n\n compare(model: HockeyGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [HockeyGameLogTypes.goal, HockeyGameLogTypes.shootout_goal].indexOf(this.logType) > -1;\n }\n\n isPenaltyType(): boolean {\n return [\n HockeyGameLogTypes.minor_penalty, HockeyGameLogTypes.major_penalty,\n HockeyGameLogTypes.misconduct_penalty, HockeyGameLogTypes.game_misconduct_penalty,\n HockeyGameLogTypes.penalty_shot, HockeyGameLogTypes.match_penalty\n ].indexOf(this.logType) > -1;\n }\n\n isAfter(log: HockeyGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { GameUser } from '../models/game-user';\nimport { ConfigService } from '../services/config.service';\nimport { BasketballGameTeamStatistic } from '../models/basketball-game-team-statistic';\nimport { BasketballGameStatistic } from '../models/basketball-game-statistic';\nimport { BasketballGameLog } from '../models/basketball-game-log';\n\n@Injectable({providedIn: 'root'})\nexport class BasketballGameApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getUsers(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<BasketballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/team_statistic/`).pipe(\n map(result => BasketballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<BasketballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/user_statistic/`).pipe(\n map(result => BasketballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<BasketballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/logs/`).pipe(\n map(result => BasketballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, fileType: 'xlsx' | 'pdf'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n\n async downloadFibaProtocol(gameId: number, fileType: 'xlsx' | 'pdf'): Promise<any> {\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_basketball_game/${gameId}/game_protocol_fiba/?file_type=${fileType}`,\n {responseType: 'blob'}\n )\n .toPromise();\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n theme: 'theme',\n message: 'message',\n files: 'files',\n email: 'email',\n captcha: 'captcha',\n },\n relation: {\n files: File\n }\n})\nexport class Feedback {\n id: number;\n theme: string;\n message: string;\n email: string;\n captcha: string;\n files: File[];\n\n @ToFrontHook\n static toFront(data: any): any {\n return null;\n }\n\n @ToBackHook\n static toBack(value: any): any {\n return null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Feedback } from '../models/feedback';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class FeedbackApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async sendFeedback(data: any): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/feedback/`, Feedback.toBack(data))\n .pipe(map(response => Feedback.toFront(response)))\n .toPromise();\n }\n\n async sendLeagueFeedback(leagueId: number, data: any): Promise<Feedback> {\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/feedback/`, Feedback.toBack(data))\n .pipe(map(response => Feedback.toFront(response)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { File } from '../models/file';\n\n@Injectable({providedIn: 'root'})\nexport class FileApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async upload(fileData: any, filename?: string): Promise<File> {\n const formData = new FormData();\n formData.append('file', fileData, filename);\n\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/`, formData)\n .pipe(map(data => File.toFront(data)))\n .toPromise();\n }\n\n async createZipArchive(files: {file: any, filename: string}[]): Promise<any> {\n const formData = new FormData();\n for (const file of files) {\n formData.append('files', file.file, file.filename);\n }\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/file/zip_archive/`, formData, {responseType: 'blob'})\n .toPromise();\n }\n}\n","import { enumField, ModelInstance, ToFrontHook, ToBackHook, BaseModel, DateTimeField, penaltyTypeField } from './util';\nimport { GameUser } from './game-user';\nimport { GameLogBase } from './game-log-base';\n\nexport enum FootballGameLogTypes {\n enter_game = 1,\n exit_game,\n shot_miss,\n shot_on_goal,\n shot_blocked,\n goal,\n penalty_attempt,\n penalty_goal,\n penalty_save,\n small_penalty_attempt,\n small_penalty_goal,\n small_penalty_save,\n assist,\n block_shot,\n corner,\n free_kick,\n foul,\n save,\n yellow_card,\n red_card,\n perfect_pass,\n loss,\n steal,\n out,\n timeout,\n}\n\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n team_id: 'teamId',\n log_type: 'logType',\n datetime: 'datetime',\n time: 'time',\n period: 'period',\n active: 'active',\n is_highlight: 'isHighlight',\n is_goalie: 'isGoalie',\n },\n relation: {\n datetime: DateTimeField,\n logType: enumField(FootballGameLogTypes)\n }\n})\nexport class FootballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n gameId: number;\n gameUserId: number;\n gameUser: GameUser;\n teamId: number;\n logType: FootballGameLogTypes;\n datetime: Date;\n time: number;\n period: number;\n active = true;\n teamScore: number;\n competitorTeamScore: number;\n isHighlight: boolean;\n isGoalie: boolean;\n\n compare(model: FootballGameLog): number {\n if (this.time === model.time && this.period === model.period) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n }\n if (this.period === model.period) {\n return this.time < model.time ? 1 : -1;\n }\n return this.period < model.period ? 1 : -1;\n }\n\n get timeFormatted(): string {\n const minutes = Math.floor(this.time / 60);\n const seconds = this.time - minutes * 60;\n return `${minutes < 10 ? '0' : ''}${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;\n }\n\n isScoreType(): boolean {\n return [FootballGameLogTypes.goal, FootballGameLogTypes.penalty_goal, FootballGameLogTypes.small_penalty_goal].indexOf(this.logType) > -1;\n }\n\n isAfter(log: FootballGameLog): boolean {\n if (this.time === log.time && this.period === log.period) {\n return this.id > log.id;\n }\n if (this.period === log.period) {\n return this.time > log.time;\n }\n return this.period > log.period;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_goals: 'ppGoals',\n ev_goals: 'evGoals',\n sh_goals: 'shGoals',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n saves: 'saves',\n goals_against: 'goalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus'\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class HockeyGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoals: number;\n evGoals: number;\n shGoals: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n saves: number;\n goalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shotsOnGoal(): number {\n return (this.evShotsOnGoal || 0) + (this.ppShotsOnGoal || 0) + (this.shShotsOnGoal || 0);\n }\n\n get shotsBlocked(): number {\n return (this.evShotsBlocked || 0) + (this.ppShotsBlocked || 0) + (this.shShotsBlocked || 0);\n }\n\n get shotMisses(): number {\n return (this.evShotMisses || 0) + (this.ppShotMisses || 0) + (this.shShotMisses || 0);\n }\n\n get ppShots(): number {\n return (this.ppShotMisses || 0) + (this.ppShotsOnGoal || 0) + (this.ppShotsBlocked || 0);\n }\n\n get evShots(): number {\n return (this.evShotMisses || 0) + (this.evShotsOnGoal || 0) + (this.evShotsBlocked || 0);\n }\n\n get shShots(): number {\n return (this.shShotMisses || 0) + (this.shShotsOnGoal || 0) + (this.shShotsBlocked || 0);\n }\n\n get shots(): number {\n return this.ppShots + this.evShots + this.shShots;\n }\n\n get goals(): number {\n return (this.ppGoals || 0) + (this.shGoals || 0) + (this.evGoals || 0);\n }\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.evAssists || 0) + (this.shAssists || 0);\n }\n\n get faceOffs(): number {\n return (this.faceOffWins || 0) + (this.faceOffLosses || 0);\n }\n\n get shootOuts(): number {\n return (this.shootoutAttempts || 0) + (this.shootoutGoals || 0);\n }\n\n get shotsAgainst(): number {\n return (this.saves || 0) + (this.goalsAgainst || 0);\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic } from './base-statistic';\n\n@ModelInstance({\n mappingFields: {\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n lose_games_count: 'loseGamesCount',\n points: 'points',\n pp_shots: 'ppShots',\n pp_shot_misses: 'ppShotMisses',\n pp_shots_on_goal: 'ppShotsOnGoal',\n pp_shots_blocked: 'ppShotsBlocked',\n ev_shots: 'evShots',\n ev_shot_misses: 'evShotMisses',\n ev_shots_on_goal: 'evShotsOnGoal',\n ev_shots_blocked: 'evShotsBlocked',\n sh_shots: 'shShots',\n sh_shot_misses: 'shShotMisses',\n sh_shots_on_goal: 'shShotsOnGoal',\n sh_shots_blocked: 'shShotsBlocked',\n pp_goals_percent: 'ppGoalsPercent',\n pp_goals: 'ppGoals',\n ev_goals_percent: 'evGoalsPercent',\n ev_goals: 'evGoals',\n sh_goals_percent: 'shGoalsPercent',\n goals: 'goals',\n sh_goals: 'shGoals',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n shots: 'shots',\n goals_percent: 'goalsPercent',\n shots_against: 'shotsAgainst',\n saves_percent: 'savesPercent',\n pp_assists: 'ppAssists',\n ev_assists: 'evAssists',\n sh_assists: 'shAssists',\n shootout_attempts: 'shootoutAttempts',\n shootout_goals: 'shootoutGoals',\n block_shots: 'blockShots',\n face_off_losses: 'faceOffLosses',\n face_off_wins: 'faceOffWins',\n face_offs: 'faceOffs',\n face_off_percent: 'faceOffPercent',\n saves: 'saves',\n goals_against: 'goalsAgainst',\n safety_rate: 'safetyRate',\n penalty_minutes: 'penaltyMinutes',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n newbie: 'newbie',\n },\n relation: {\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class HockeyStatistic extends BaseStatistic {\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: boolean;\n gamesCount: number;\n wonGamesCount: number;\n loseGamesCount: number;\n points: number;\n ppShots: number;\n ppShotMisses: number;\n ppShotsOnGoal: number;\n ppShotsBlocked: number;\n evShots: number;\n evShotMisses: number;\n evShotsOnGoal: number;\n evShotsBlocked: number;\n shShots: number;\n shShotMisses: number;\n shShotsOnGoal: number;\n shShotsBlocked: number;\n ppGoalsPercent: number;\n ppGoals: number;\n evGoalsPercent: number;\n evGoals: number;\n shGoalsPercent: number;\n shGoals: number;\n goals: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shots: number;\n goalsPercent: number;\n ppAssists: number;\n evAssists: number;\n shAssists: number;\n shootoutAttempts: number;\n shootoutGoals: number;\n blockShots: number;\n faceOffLosses: number;\n faceOffWins: number;\n faceOffs: number;\n faceOffPercent: number;\n savesPercent: number;\n saves: number;\n shotsAgainst: number;\n goalsAgainst: number;\n safetyRate: number;\n penaltyMinutes: number;\n gameTime: number;\n plusMinus: number;\n newbie: boolean;\n\n get assists(): number {\n return (this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0);\n }\n\n get userMinutes(): string {\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { HockeyStatistic } from './hockey-statistic';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: HockeyStatistic,\n competitorTeam: HockeyStatistic\n }\n})\nexport class HockeyGameTeamStatistic extends BaseModel {\n team: HockeyStatistic;\n competitorTeam: HockeyStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { GameUser } from '../models/game-user';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyGameLog } from '../models/hockey-game-log';\nimport { HockeyGameStatistic } from '../models/hockey-game-statistic';\nimport { HockeyGameTeamStatistic } from '../models/hockey-game-team-statistic';\n\n@Injectable({providedIn: 'root'})\nexport class HockeyGameApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getUsers(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<HockeyGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/team_statistic/`).pipe(\n map(result => HockeyGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<HockeyGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/user_statistic/`).pipe(\n map(result => HockeyGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<HockeyGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/logs/`).pipe(\n map(result => HockeyGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf'|'xlsx'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf'|'xlsx', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_hockey_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField, DateTimeField, enumField } from './util';\nimport { File } from './file';\nimport { Tournament } from './tournament';\n\nexport enum LeagueNewsType {\n text = 1,\n video\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n datetime: 'datetime',\n preview_text: 'previewText',\n detail_text: 'detailText',\n picture: 'picture',\n cover: 'cover',\n mobile_picture: 'mobilePicture',\n is_main: 'isMain',\n tournaments: 'tournaments',\n type: 'type',\n video_link: 'videoLink',\n tag: 'tag',\n },\n relation: {\n datetime: DateTimeField,\n picture: File,\n cover: File,\n mobilePicture: File,\n tournaments: listField(Tournament),\n type: enumField(LeagueNewsType),\n }\n})\nexport class LeagueNews extends BaseModel {\n id: number;\n title: string;\n datetime: Date;\n previewText: string;\n detailText: string;\n picture: File;\n cover: File;\n mobilePicture: File;\n isMain: boolean;\n tournaments: Tournament[];\n type: LeagueNewsType;\n videoLink: string;\n tag: string;\n\n @ToFrontHook\n static toFront(data: any): any {\n return undefined;\n }\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n updated_at: 'updatedAt',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n goals: 'goals',\n assists: 'assists',\n corners: 'corners',\n free_kicks: 'freeKicks',\n penalty_goals: 'penaltyGoals',\n penalty_attempts: 'penaltyAttempts',\n penalty_goals_against: 'penaltyGoalsAgainst',\n penalty_saves: 'penaltySaves',\n small_penalty_goals: 'smallPenaltyGoals',\n small_penalty_attempts: 'smallPenaltyAttempts',\n small_penalty_goals_against: 'smallPenaltyGoalsAgainst',\n small_penalty_saves: 'smallPenaltySaves',\n saves: 'saves',\n goals_against: 'goalsAgainst',\n safety_rate: 'safetyRate',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n fouls: 'fouls',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n perfect_passes: 'perfectPasses',\n losses: 'losses',\n steals: 'steals',\n outs: 'outs',\n block_shots: 'blockShots'\n },\n relation: {\n updatedAt: DateTimeField,\n }\n})\nexport class FootballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n goals: number;\n assists: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsAgainst: number;\n penaltySaves: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltySaves: number;\n saves: number;\n goalsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n updatedAt: Date;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get shots(): number {\n return (this.shotMisses || 0) + (this.shotsOnGoal || 0) + (this.shotsBlocked || 0);\n }\n\n\n get totalGoals(): number {\n return (this.goals || 0) + (this.penaltyGoals || 0) + (this.smallPenaltyGoals || 0);\n }\n\n get goalsPercent(): number {\n if (!this.shots || !this.totalGoals) {\n return 0;\n }\n return Math.round(1000 * this.totalGoals / this.shots) / 10;\n }\n\n get shotsOnGoalPercent(): number {\n if (!this.shotsOnGoal || !this.shots) {\n return 0;\n }\n return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;\n }\n\n get penalties(): number {\n return (this.penaltyGoals || 0) + (this.penaltyAttempts || 0);\n }\n\n get penaltyGoalsPercent(): number {\n if (!this.penaltyAttempts || !this.penaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.penaltyGoals / this.penaltyAttempts) / 10;\n }\n\n get smallPenalties(): number {\n return (this.smallPenaltyGoals || 0) + (this.smallPenaltyAttempts || 0);\n }\n\n get smallPenaltyGoalsPercent(): number {\n if (!this.smallPenaltyAttempts || !this.smallPenaltyGoals) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltyGoals / this.smallPenaltyAttempts) / 10;\n }\n\n get shotsAgainst(): number {\n return (this.saves || 0) + (this.goalsAgainst || 0);\n }\n\n get penaltyShotsAgainst(): number {\n return (this.penaltySaves || 0) + (this.penaltyGoalsAgainst || 0);\n }\n\n get smallPenaltyShotsAgainst(): number {\n return (this.smallPenaltySaves || 0) + (this.smallPenaltyGoalsAgainst || 0);\n }\n\n get totalGoalsAgainst(): number {\n return (this.goalsAgainst || 0) + (this.penaltyGoalsAgainst || 0) + (this.smallPenaltyGoalsAgainst || 0);\n }\n\n\n get totalSaves(): number {\n return (this.saves || 0) + (this.penaltySaves || 0) + (this.smallPenaltySaves || 0);\n }\n\n get savesPercent(): number {\n if (!this.shotsAgainst || !this.saves) {\n return 0;\n }\n return Math.round(1000 * this.saves / this.shotsAgainst) / 10;\n }\n\n get penaltySavesPercent(): number {\n if (!this.penaltyShotsAgainst || !this.penaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.penaltySaves / this.penaltyShotsAgainst) / 10;\n }\n\n get smallPenaltySavesPercent(): number {\n if (!this.smallPenaltyShotsAgainst || !this.smallPenaltySaves) {\n return 0;\n }\n return Math.round(1000 * this.smallPenaltySaves / this.smallPenaltyShotsAgainst) / 10;\n }\n\n get gameMinutes(): number {\n return Math.floor(this.gameTime / 60);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateField } from './util';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { Team } from './team';\nimport { TeamUser } from './team-user';\nimport { User } from './user';\nimport { TournamentTeam } from './tournament-team';\nimport { BaseStatistic } from './base-statistic';\n\n@ModelInstance({\n mappingFields: {\n tournament_team_user: 'tournamentTeamUser',\n team: 'team',\n team_user: 'teamUser',\n user: 'user',\n tournament_team: 'tournamentTeam',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n points: 'points',\n shot_misses: 'shotMisses',\n shots_on_goal: 'shotsOnGoal',\n shots_blocked: 'shotsBlocked',\n shots_on_goal_percent: 'shotsOnGoalPercent',\n shots: 'shots',\n goals: 'goals',\n goals_percent: 'goalsPercent',\n total_goals: 'totalGoals',\n assists: 'assists',\n penalty_goals: 'penaltyGoals',\n penalty_attempts: 'penaltyAttempts',\n penalty_goals_percent: 'penaltyGoalsPercent',\n penalty_saves: 'penaltySaves',\n penalty_goals_against: 'penaltyGoalsAgainst',\n penalty_shots_against: 'penaltyShotsAgainst',\n penalty_saves_percent: 'penaltySavesPercent',\n small_penalty_goals: 'smallPenaltyGoals',\n small_penalty_attempts: 'smallPenaltyAttempts',\n small_penalty_goals_percent: 'smallPenaltyGoalsPercent',\n small_penalty_saves: 'smallPenaltySaves',\n small_penalty_goals_against: 'smallPenaltyGoalsAgainst',\n small_penalty_shots_against: 'smallPenaltyShotsAgainst',\n small_penalty_saves_percent: 'smallPenaltySavesPercent',\n saves: 'saves',\n saves_percent: 'savesPercent',\n total_saves: 'totalSaves',\n goals_against: 'goalsAgainst',\n total_goals_against: 'totalGoalsAgainst',\n shots_against: 'shotsAgainst',\n safety_rate: 'safetyRate',\n fouls: 'fouls',\n yellow_cards: 'yellowCards',\n red_cards: 'redCards',\n perfect_passes: 'perfectPasses',\n losses: 'losses',\n steals: 'steals',\n outs: 'outs',\n block_shots: 'blockShots',\n corners: 'corners',\n free_kicks: 'freeKicks',\n game_time: 'gameTime',\n plus_minus: 'plusMinus',\n newbie: 'newbie'\n },\n relation: {\n tournamentTeamUser: TournamentTeamUser,\n team: Team,\n teamUser: TeamUser,\n user: User,\n tournamentTeam: TournamentTeam,\n month: DateField\n }\n})\nexport class FootballStatistic extends BaseStatistic {\n tournamentTeamUser: TournamentTeamUser;\n team: Team;\n teamUser: TeamUser;\n user: User;\n tournamentTeam: TournamentTeam;\n month: Date;\n winLose: boolean;\n gamesCount: number;\n wonGamesCount: number;\n points: number;\n shotMisses: number;\n shotsOnGoal: number;\n shotsBlocked: number;\n shotsOnGoalPercent: number;\n shots: number;\n goals: number;\n totalGoals: number;\n goalsPercent: number;\n assists: number;\n penaltyGoals: number;\n penaltyAttempts: number;\n penaltyGoalsPercent: number;\n penaltySaves: number;\n penaltyGoalsAgainst: number;\n penaltyShotsAgainst: number;\n penaltySavesPercent: number;\n smallPenaltyGoals: number;\n smallPenaltyAttempts: number;\n smallPenaltyGoalsPercent: number;\n smallPenaltySaves: number;\n smallPenaltyGoalsAgainst: number;\n smallPenaltyShotsAgainst: number;\n smallPenaltySavesPercent: number;\n saves: number;\n savesPercent: number;\n totalSaves: number;\n goalsAgainst: number;\n totalGoalsAgainst: number;\n shotsAgainst: number;\n safetyRate: number;\n fouls: number;\n yellowCards: number;\n redCards: number;\n perfectPasses: number;\n losses: number;\n steals: number;\n outs: number;\n gameTime: number;\n plusMinus: number;\n blockShots: number;\n corners: number;\n freeKicks: number;\n newbie: boolean;\n\n get userMinutes(): string {\n const minutes = Math.floor(this.gameTime / 60);\n const seconds = Math.floor(this.gameTime - minutes * 60);\n return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook } from './util';\nimport { FootballStatistic } from './football-statistic';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam'\n },\n relation: {\n team: FootballStatistic,\n competitorTeam: FootballStatistic\n }\n})\nexport class FootballGameTeamStatistic extends BaseModel {\n team: FootballStatistic;\n competitorTeam: FootballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Game } from '../models/game';\nimport { GameUser } from '../models/game-user';\nimport { ConfigService } from '../services/config.service';\nimport { FootballGameLog } from '../models/football-game-log';\nimport { FootballGameStatistic } from '../models/football-game-statistic';\nimport { FootballGameTeamStatistic } from '../models/football-game-team-statistic';\n\n@Injectable({providedIn: 'root'})\nexport class FootballGameApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getUsers(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<FootballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/team_statistic/`).pipe(\n map(result => FootballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<FootballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/user_statistic/`).pipe(\n map(result => FootballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<FootballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/logs/`).pipe(\n map(result => FootballGameLog.toFront(result))\n ).toPromise();\n }\n\n async downloadProtocol(gameId: number, format: 'pdf'|'xlsx'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_protocol/`, {\n params: new HttpParams().set('file_type', format),\n responseType: 'blob'\n }).toPromise();\n }\n\n async downloadApplication(gameId: number, format: 'pdf'|'xlsx', type: 'game_user'|'tournament_user'): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_football_game/${gameId}/game_application_file/`, {\n params: new HttpParams().set('file_type', format).set('application_type', type),\n responseType: 'blob'\n }).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField, enumField, listField } from './util';\nimport { Game } from './game';\nimport { Tournament } from './tournament';\nimport { League } from './league';\nimport { LeagueNews } from './league-news';\n\nexport enum TournamentEventTypes {\n game_closed = 1,\n media_added,\n news\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n game: 'game',\n news: 'news',\n league: 'league',\n tournaments: 'tournaments',\n event: 'event',\n datetime: 'datetime'\n },\n relation: {\n game: Game,\n news: LeagueNews,\n league: League,\n tournaments: listField(Tournament),\n datetime: DateField,\n event: enumField(TournamentEventTypes)\n }\n})\nexport class TournamentEvent extends BaseModel {\n id: number;\n game: Game;\n news: LeagueNews;\n tournaments: Tournament[];\n event: TournamentEventTypes;\n datetime: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import {ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField} from './util';\nimport {File} from './file';\n\nexport enum BannerLocation {\n slider = 'slider',\n central = 'central',\n media = 'media',\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n link: 'link',\n sort: 'sort',\n location: 'location',\n },\n relation: {\n picture: File,\n location: enumField(BannerLocation),\n }\n})\nexport class LeagueBanner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n location: BannerLocation;\n\n\n @ToFrontHook\n static toFront(data: any): any {\n }\n\n @ToBackHook\n static toBack(data: any): any {\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n link: 'link',\n sort: 'sort',\n },\n relation: {\n picture: File\n }\n})\nexport class LeaguePartner extends BaseModel {\n id: number;\n title: string;\n picture: File;\n link: string;\n sort: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { User } from './user';\n\nexport enum PollStatuses {\n open = 1,\n closed,\n archived,\n}\n\n@ModelInstance({\n mappingFields: {\n uuid: 'uuid',\n name: 'name'\n }\n})\nexport class PollVariant extends BaseModel {\n uuid: string;\n name: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n answer_uuid: 'answerUuid',\n user: 'user',\n poll_id: 'pollId',\n },\n relation: {\n user: User\n }\n})\nexport class PollAnswer extends BaseModel {\n id: number;\n answerUuid: string;\n user: User;\n pollId: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n active: 'active',\n status: 'status',\n team_id: 'teamId',\n name: 'name',\n description: 'description',\n variants: 'variants',\n author: 'author',\n answers: 'answers',\n multiple_answer: 'multipleAnswer',\n anonymous: 'anonymous',\n created_at: 'createdAt'\n },\n relation: {\n status: enumField(PollStatuses),\n variants: PollVariant,\n author: User,\n answers: PollAnswer,\n createdAt: DateTimeField,\n }\n})\nexport class Poll extends BaseModel {\n id: number;\n active: boolean;\n teamId: number;\n status: PollStatuses;\n name: string;\n description: string;\n _variants: PollVariant[];\n author: User;\n _answers: PollAnswer[];\n multipleAnswer: boolean;\n anonymous: boolean;\n createdAt: Date;\n variantsWithAnswers: {variant: PollVariant, percent: number}[] = [];\n\n set variants(value: PollVariant[]) {\n this._variants = value || [];\n if (this._answers) {\n this.calculateAnswersPercentage();\n }\n }\n get variants(): PollVariant[] {\n return this._variants;\n }\n\n set answers(value: PollAnswer[]) {\n this._answers = value || [];\n if (this._variants) {\n this.calculateAnswersPercentage();\n }\n }\n get answers(): PollAnswer[] {\n return this._answers;\n }\n\n calculateAnswersPercentage() {\n if (!this._answers.length) {\n return;\n }\n\n const variants = this._variants.map(v => v.uuid);\n const answersByVariant = this._answers.reduce((acc, item) => {\n if (variants.indexOf(item.answerUuid) < 0) {\n return acc;\n }\n if (!acc[item.answerUuid]) {\n acc[item.answerUuid] = 0;\n }\n acc[item.answerUuid]++;\n return acc;\n }, {});\n this.variantsWithAnswers = this._variants.map(item => ({\n variant: item,\n percent: answersByVariant[item.uuid] ? Math.round(100 * answersByVariant[item.uuid] / this._answers.length) : 0\n }))\n .sort((a, b) => a.percent > b.percent ? -1 : 1);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { League } from '../models/league';\nimport { map } from 'rxjs/operators';\nimport { Tournament } from '../models/tournament';\nimport { ConfigService } from '../services/config.service';\nimport { TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { GameMediaFilters } from './media-api';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { Game, GameStatuses } from '../models/game';\nimport { LeaguePartner } from '../models/league-partner';\nimport { LeagueCourt } from '../models/league-court';\nimport { BannerLocation, LeagueBanner } from '../models/league-banner';\n\n@Injectable({providedIn: 'root'})\nexport class LeagueApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getByAlias(alias: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${alias}/`).pipe(\n map(result => League.toFront(result))\n ).toPromise();\n }\n\n async getByDomain(domain: string): Promise<League> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/by_domain/${domain}/`).pipe(\n map(result => League.toFront(result))\n ).toPromise();\n }\n\n async getTournaments(leagueId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/`).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getEvents(leagueId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/events/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getTournamentSeasons(leagueId: number): Promise<TournamentSeason[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`).pipe(\n map(result => TournamentSeason.toFront(result))\n ).toPromise();\n }\n\n async getGames(leagueId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n if (filters.tournamentCourtId) {\n params = params.set('tournament_court_id', filters.tournamentCourtId.toString());\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/games/`, {params, observe: 'response'}).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getSeasons(leagueId: number, notClosed?: boolean): Promise<TournamentSeason[]> {\n const params = new HttpParams().set('not_closed', notClosed ? '1' : '');\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/`, {params})\n .pipe(map(result => TournamentSeason.toFront(result)))\n .toPromise();\n }\n\n async getPartners(leagueId: number): Promise<LeaguePartner[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/partners/`).pipe(\n map(result => LeaguePartner.toFront(result))\n ).toPromise();\n }\n\n async getBanners(leagueId: number, location?: BannerLocation): Promise<LeagueBanner[]> {\n const params = location ? new HttpParams().set('location', location) : new HttpParams();\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/banners/`, {params}).pipe(\n map(result => LeagueBanner.toFront(result))\n ).toPromise();\n }\n\n async getCourts(leagueId: number): Promise<LeagueCourt[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/courts/`).pipe(\n map(result => LeagueCourt.toFront(result))\n ).toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ConfigService } from '../services/config.service';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { LeagueNews, LeagueNewsType } from '../models/league-news';\nimport { map } from 'rxjs/operators';\n\n@Injectable({providedIn: 'root'})\nexport class LeagueNewsApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService\n ) {\n }\n\n async getLeagueNewsList(leagueId: number, page: number, size: number, type: LeagueNewsType = LeagueNewsType.text): Promise<PaginatedResponse<LeagueNews[]>> {\n const params = new HttpParams().set('page', page.toString())\n .set('size', size.toString())\n .set('type', LeagueNewsType[type]);\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/`, {params, observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: LeagueNews.toFront(response.body)\n })))\n .toPromise();\n }\n\n async getMainLeagueNews(leagueId: number): Promise<LeagueNews> {\n return this.httpClient.get<any[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => response && response.length > 0 ? LeagueNews.toFront(response[0]) : null))\n .toPromise();\n }\n\n async getMainLeagueNewsList(leagueId: number): Promise<LeagueNews[]> {\n return this.httpClient.get<any[]>(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/news/?is_main=true`)\n .pipe(map(response => LeagueNews.toFront(response)))\n .toPromise();\n }\n\n async getNewsById(newsId: number): Promise<LeagueNews> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league_news/${newsId}/`)\n .pipe(map(response => LeagueNews.toFront(response)))\n .toPromise();\n }\n\n async getTournamentNewsList(tournamentId: number): Promise<PaginatedResponse<LeagueNews[]>> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`, {observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: LeagueNews.toFront(response.body)\n })))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { MediaItem } from '../models/media-item';\nimport { Game, GameStatuses } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\n\nexport interface GameMediaFilters {\n tournamentStageId?: number;\n tournamentTour?: number;\n teamId?: number;\n playoffStage?: number;\n playoffId?: number;\n status?: GameStatuses;\n}\n\nexport interface MediaFilters {\n mediaType?: 'photo' | 'video' | 'live_video';\n sort?: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class MediaApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getMedia(mediaId: number): Promise<MediaItem> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/`).pipe(\n map(result => MediaItem.toFront(result))\n ).toPromise();\n }\n\n async getTournamentGameMedia(tournamentId: number, page: number, size: number, filters?: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters) {\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.playoffId) {\n params = params.set('playoff_id', filters.playoffId.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n }\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/game_media/`, {observe: 'response', params}).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getLeagueGameMedia(leagueId: number, page: number, size: number, filters?: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters) {\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.playoffId) {\n params = params.set('playoff_id', filters.playoffId.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n }\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/game_media/`, {observe: 'response', params}).pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getLeagueMedia(leagueId: number, page: number, size: number, filters: MediaFilters = {}): Promise<PaginatedResponse<MediaItem[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters.mediaType) {\n params = params.set('media_type', filters.mediaType);\n }\n if (filters.sort) {\n params = params.set('sort', filters.sort);\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/media/`, {params, observe: 'response'})\n .pipe(map(response => ({\n total: +response.headers.get('X-Page-Count'),\n data: MediaItem.toFront(response.body)\n }))).toPromise();\n }\n\n async getGameMediaById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/game_media/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getGameMedia(gameId: number): Promise<MediaItem[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/media/`).pipe(\n map(result => MediaItem.toFront(result))\n ).toPromise();\n }\n\n async createZip(mediaIds: number[]): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/media/zip/`, mediaIds, { responseType: 'blob' })\n .toPromise();\n }\n\n async downloadMedia(mediaId: number): Promise<any> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/media/${mediaId}/download/`,{responseType: 'blob'})\n .toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { TeamUser } from './team-user';\nimport { Game } from './game';\n\nexport enum GameInviteStatus {\n accepted = 1,\n declined,\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_user: 'teamUser',\n game_id: 'gameId',\n game: 'game',\n status: 'status',\n },\n relation: {\n game: Game,\n teamUser: TeamUser,\n status: enumField(GameInviteStatus),\n }\n})\nexport class GameInvite extends BaseModel {\n id: number;\n teamUser: TeamUser;\n gameId: number;\n game: Game;\n status: GameInviteStatus;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { User } from './user';\nimport { Team } from './team';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user_id: 'userId',\n user: 'user',\n team: 'team',\n team_id: 'teamId',\n user_accept: 'userAccept',\n team_accept: 'teamAccept',\n users_count: 'usersCount',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n score_sum: 'scoreSum',\n created_at: 'createdAt',\n updated_at: 'updatedAt',\n },\n relation: {\n user: User,\n team: Team,\n createdAt: DateTimeField,\n updateAt: DateTimeField,\n }\n})\nexport class TeamInvite extends BaseModel {\n id: number;\n userId: number;\n user: User;\n teamId: number;\n team: Team;\n userAccept: boolean;\n teamAccept: boolean;\n usersCount: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n createdAt: Date;\n updatedAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","export enum TeamEventTypes {\n training = 1,\n other = 2,\n}\n","import { enumField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\nexport enum TeamEventInviteStatuses {\n accepted = 1,\n declined = 2\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_event_id: 'teamEventId',\n team_user_id: 'teamUserId',\n status: 'status',\n },\n relation: {\n status: enumField(TeamEventInviteStatuses)\n }\n})\nexport class TeamEventInvite {\n id: number;\n teamEventId: number;\n teamUserId: number;\n status: TeamEventInviteStatuses;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { TeamEventTypes } from '../models/team-event-type';\n\nexport const TeamEventTypeLocalization = {\n [TeamEventTypes.training]: 'ТÑениÑовка',\n [TeamEventTypes.other]: 'ÐÑÑгое'\n};\n","import { BaseModel, enumField, ModelInstance, DateTimeField, ToBackHook, ToFrontHook } from './util';\nimport { Team } from './team';\nimport { TeamEventTypeLocalization } from '../localization/team-event-type';\nimport { TeamEventTypes } from './team-event-type';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n team: 'team',\n event_type: 'eventType',\n event_custom_name: 'eventCustomName',\n description: 'description',\n datetime: 'datetime',\n location: 'location',\n },\n relation: {\n eventType: enumField(TeamEventTypes),\n team: Team,\n datetime: DateTimeField,\n }\n})\nexport class TeamEvent extends BaseModel {\n id: number;\n teamId: number;\n team: Team;\n eventType: TeamEventTypes;\n eventCustomName: string;\n description: string;\n datetime: Date;\n location: string;\n\n get name(): string {\n if (this.eventType === TeamEventTypes.other) {\n return this.eventCustomName;\n }\n return TeamEventTypeLocalization[this.eventType];\n }\n\n get isClosed(): boolean {\n return this.datetime.getTime() < new Date().getTime();\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateTimeField, enumField } from './util';\nimport { Team } from './team';\nimport { Poll } from './poll';\nimport { Game } from './game';\nimport { TeamInvite } from './team-invite';\nimport { TeamUser } from './team-user';\nimport { GameInvite } from './game-invite';\nimport { TeamEvent } from './team-event';\nimport { TeamEventInvite } from './team-event-invite';\nimport { Tournament } from './tournament';\nimport { TournamentInvite } from './tournament-invite';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\n\nexport enum NotificationType {\n team_updated = 1,\n team_invited,\n team_join_request,\n team_join_declined_by_team,\n team_join_declined_by_user,\n team_join_canceled_by_team,\n team_join_canceled_by_user,\n team_joined_for_user,\n team_joined_for_team,\n team_user_role_changed_for_user,\n team_user_role_changed_for_team,\n team_user_number_changed,\n team_user_deleted_for_user,\n team_user_deleted_for_team,\n team_user_left,\n\n game_updated,\n game_invited,\n game_invite_accepted,\n game_invite_declined,\n game_remind,\n game_won,\n game_losing,\n game_tech_defeat,\n game_tech_victory,\n\n poll_created,\n poll_closed,\n\n team_event_invited,\n team_event_accepted,\n team_event_declined,\n team_event_remind,\n\n tournament_invited,\n tournament_joined,\n tournament_join_declined,\n tournament_join_canceled,\n tournament_user_invited,\n tournament_user_accepted_for_team,\n tournament_user_accepted_for_user,\n tournament_user_added,\n tournament_user_declined_for_team,\n tournament_user_declined_for_user,\n tournament_user_invite_deleted,\n tournament_user_deleted,\n tournament_user_disqualified_for_team,\n tournament_user_disqualified_for_user,\n tournament_user_disqualification_updated_for_team,\n tournament_user_disqualification_updated_for_user,\n tournament_team_deleted,\n\n org_tournament_invite_created,\n org_tournament_invite_declined,\n org_tournament_invite_deleted,\n org_tournament_invite_changed,\n org_tournament_user_deleted,\n org_tournament_user_invited,\n org_tournament_user_has_changes,\n org_tournament_team_leave,\n}\n\nexport enum NotificationServiceEnum {\n public = 1,\n org\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n event_type: 'event',\n data: 'data',\n initiator: 'initiator',\n team: 'team',\n team_invite: 'teamInvite',\n team_user: 'teamUser',\n poll: 'poll',\n game: 'game',\n game_invite: 'gameInvite',\n team_event: 'teamEvent',\n team_event_invite: 'teamEventInvite',\n tournament: 'tournament',\n tournament_invite: 'tournamentInvite',\n tournament_team: 'tournamentTeam',\n viewed: 'viewed',\n protected: 'protected',\n service: 'service',\n created_at: 'createdAt',\n },\n relation: {\n event: enumField(NotificationType),\n initiator: User,\n team: Team,\n teamInvite: TeamInvite,\n teamUser: TeamUser,\n poll: Poll,\n game: Game,\n gameInvite: GameInvite,\n teamEvent: TeamEvent,\n teamEventInvite: TeamEventInvite,\n tournament: Tournament,\n tournamentInvite: TournamentInvite,\n tournamentTeam: TournamentTeam,\n service: enumField(NotificationServiceEnum),\n createdAt: DateTimeField,\n }\n})\nexport class Notification extends BaseModel {\n id: number;\n event: NotificationType;\n data: any;\n initiator: User;\n team: Team;\n teamInvite: TeamInvite;\n teamUser: TeamUser;\n poll: Poll;\n game: Game;\n gameInvite: GameInvite;\n teamEvent: TeamEvent;\n teamEventInvite: TeamEventInvite;\n tournament: Tournament;\n tournamentInvite: TournamentInvite;\n tournamentTeam: TournamentTeam;\n viewed: boolean;\n protected: boolean;\n service: NotificationServiceEnum;\n createdAt: Date;\n\n get important(): boolean {\n return true;\n }\n\n @ToFrontHook\n static toFront(value: any): any {}\n\n @ToBackHook\n static toBack(value: any): any {}\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook } from './util';\nimport { TeamUser } from './team-user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team_invite_id: 'tournamentTeamInviteId',\n tournament_team_id: 'tournamentTeamId',\n team_user: 'teamUser',\n accepted: 'accepted'\n },\n relation: {\n teamUser: TeamUser\n }\n})\nexport class TournamentTeamUserInvite extends BaseModel {\n id: number;\n tournamentTeamInviteId: number;\n tournamentTeamId: number;\n teamUser: TeamUser;\n accepted: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Team } from './team';\nimport { Tournament } from './tournament';\nimport { TournamentTeamUserInvite } from './tournament-team-user-invite';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team: 'team',\n tournament: 'tournament',\n team_accept: 'teamAccept',\n organization_accept: 'organizationAccept',\n user_invites_count: 'userInvitesCount',\n user_invites: 'userInvites',\n notifications_count: 'notificationsCount',\n },\n relation: {\n team: Team,\n tournament: Tournament,\n userInvites: TournamentTeamUserInvite,\n }\n})\nexport class TournamentInvite extends BaseModel {\n id: number;\n team: Team;\n tournament: Tournament;\n teamAccept: boolean;\n organizationAccept: boolean;\n userInvitesCount: number;\n userInvites: TournamentTeamUserInvite[];\n notificationsCount: number;\n\n get isOpen(): boolean {\n return (this.teamAccept === null || this.organizationAccept === null) && this.teamAccept !== false && this.organizationAccept !== false;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum NotificationAllowTypes {\n all = 1,\n important,\n none\n}\n\n@ModelInstance({\n mappingFields: {\n user_id: 'userId',\n popup: 'popup',\n sound: 'sound',\n browser: 'browser',\n email: 'email'\n },\n relation: {\n sound: enumField(NotificationAllowTypes),\n browser: enumField(NotificationAllowTypes),\n }\n})\nexport class NotificationSettings extends BaseModel {\n userId: number;\n popup: boolean;\n sound: NotificationAllowTypes;\n browser: NotificationAllowTypes;\n email: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToBackHook, ToFrontHook, enumField } from './util';\n\nexport enum TeamPermissionTypes {\n for_all = 1,\n for_users,\n for_team\n}\n\n@ModelInstance({\n mappingFields: {\n players: 'players',\n games: 'games',\n statistic: 'statistic',\n polls: 'polls',\n events: 'events'\n },\n relation: {\n players: enumField(TeamPermissionTypes),\n games: enumField(TeamPermissionTypes),\n statistic: enumField(TeamPermissionTypes),\n polls: enumField(TeamPermissionTypes),\n events: enumField(TeamPermissionTypes)\n }\n})\nexport class TeamPermission extends BaseModel {\n players: TeamPermissionTypes;\n games: TeamPermissionTypes;\n statistic: TeamPermissionTypes;\n polls: TeamPermissionTypes;\n events: TeamPermissionTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Notification } from '../models/notification';\nimport { NotificationSettings } from '../models/notification-settings';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { ConfigService } from '../services/config.service';\n\nexport interface NotificationFilters {\n protected?: boolean;\n not_viewed?: boolean;\n important?: boolean;\n}\n\n@Injectable({providedIn: 'root'})\nexport class NotificationBaseApi {\n protected apiUrl: string;\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCount(): Promise<number> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/count/`)\n .pipe(map(data => +data))\n .toPromise();\n }\n\n async getList(page: number, size: number, filters: NotificationFilters = {}): Promise<PaginatedResponse<Notification[]>> {\n let params = new HttpParams()\n .set('page', page.toString())\n .set('size', size.toString());\n for (const key of Object.keys(filters)) {\n params = params.set(key, filters[key]);\n }\n\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/`, {params, observe: 'response'})\n .pipe(\n map(response => {\n const data: Notification[] = Notification.toFront(response.body);\n return {\n total: +response.headers.get('x-page-count'),\n data\n };\n }),\n ).toPromise();\n }\n\n async markViewed(notificationId: number, viewed: boolean): Promise<Notification> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/${notificationId}/viewed/`, {viewed})\n .pipe(map(data => Notification.toFront(data)))\n .toPromise();\n }\n\n async markAllViewed(): Promise<Notification[]> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}${this.apiUrl}/notification/viewed/`, {})\n .pipe(map(data => Notification.toFront(data)))\n .toPromise();\n }\n\n async getNotificationSettings(): Promise<NotificationSettings> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`)\n .pipe(map(data => NotificationSettings.toFront(data)))\n .toPromise();\n }\n\n async updateNotificationSettings(data: NotificationSettings): Promise<NotificationSettings> {\n return this.httpClient.post(\n `${this.configService.get('apiUrl')}${this.apiUrl}/notification_settings/`,\n NotificationSettings.toBack(data)\n )\n .pipe(map(result => NotificationSettings.toFront(result)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class NotificationApi extends NotificationBaseApi {\n protected apiUrl = '/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { NotificationBaseApi } from './notification-base-api';\n\n@Injectable({providedIn: 'root'})\nexport class OrgNotificationApi extends NotificationBaseApi {\n protected apiUrl = '/org/api/v1';\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { ConfigService } from '../services/config.service';\nimport { City } from '../models/city';\nimport { Sport } from '../models/sport';\n\n@Injectable({providedIn: 'root'})\nexport class ReferenceApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCities(): Promise<City[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/reference/cities/`)\n .pipe(\n map(data => City.toFront(data))\n ).toPromise();\n }\n\n async getSports(): Promise<Sport[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/sport/`)\n .pipe(\n map(data => Sport.toFront(data))\n ).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n team_id: 'teamId',\n email: 'email',\n first_name: 'firstName',\n last_name: 'lastName',\n },\n})\nexport class TeamInviteExternal extends BaseModel {\n id: number;\n teamId: number;\n email: string;\n firstName: string;\n lastName: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, DateField } from './util';\nimport { Team } from './team';\nimport { TournamentTeamUser } from './tournament-team-user';\nimport { TeamUser } from './team-user';\nimport { TournamentTeam } from './tournament-team';\nimport { User } from './user';\nimport { BaseStatistic } from './base-statistic';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n team_user: 'teamUser',\n tournament_team_user: 'tournamentTeamUser',\n tournament_team: 'tournamentTeam',\n user: 'user',\n month: 'month',\n win_lose: 'winLose',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n serve_hits: 'serveHits',\n serve_faults: 'serveFaults',\n serve_aces: 'serveAces',\n serve_percent: 'servePercent',\n ace_percent: 'acePercent',\n stuff_blocks: 'stuffBlocks',\n block_faults: 'blockFaults',\n block_rebounds: 'blockRebounds',\n block_percent: 'blockPercent',\n attack_spikes: 'attackSpikes',\n attack_faults: 'attackFaults',\n attack_shots: 'attackShots',\n attack_percent: 'attackPercent',\n receives: 'receives',\n receive_faults: 'receiveFaults',\n excellent_receives: 'excellentReceives',\n receive_percent: 'receivePercent',\n serve_receives: 'serveReceives',\n serve_receive_faults: 'serveReceiveFaults',\n excellent_serve_receives: 'excellentServeReceives',\n serve_receive_percent: 'serveReceivePercent',\n points: 'points',\n faults: 'faults',\n newbie: 'newbie',\n },\n relation: {\n team: Team,\n teamUser: TeamUser,\n tournamentTeamUser: TournamentTeamUser,\n tournamentTeam: TournamentTeam,\n user: User,\n month: DateField,\n }\n})\nexport class VolleyballStatistic extends BaseStatistic {\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n servePercent: number;\n acePercent: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n blockPercent: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n attackPercent: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n receivePercent: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n serveReceivePercent: number;\n points: number;\n faults: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, DateField } from './util';\n\nexport enum TournamentStageStatuses {\n open,\n in_progress,\n closed\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n date: 'date',\n tournament_id: 'tournamentId',\n status: 'status',\n },\n relation: {\n date: DateField,\n status: enumField(TournamentStageStatuses)\n }\n})\nexport class TournamentStage extends BaseModel {\n id: number;\n name: string;\n date: Date;\n tournamentId: number;\n status: TournamentStageStatuses;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { TeamUserRole } from './team-user';\n\n@ModelInstance({\n mappingFields: {\n can_edit: 'canEdit',\n can_view_users: 'canViewUsers',\n can_manage_permission: 'canManagePermission',\n can_change_owner: 'canChangeOwner',\n can_delete: 'canDelete',\n can_manage_invites: 'canManageInvites',\n can_view_invites: 'canViewInvites',\n can_manage_polls: 'canManagePolls',\n can_view_polls: 'canViewPolls',\n can_answer_poll: 'canAnswerPoll',\n can_manage_games: 'canManageGames',\n can_view_games: 'canViewGames',\n can_view_statistic: 'canViewStatistic',\n can_promote_users: 'canPromoteUsers',\n can_edit_users: 'canEditUsers',\n can_delete_users: 'canDeleteUsers',\n can_view_events: 'canViewEvents',\n can_manage_events: 'canManageEvents',\n can_view_tournaments: 'canViewTournaments',\n can_manage_tournaments: 'canManageTournaments',\n role: 'role'\n },\n relation: {\n role: enumField(TeamUserRole)\n }\n})\nexport class TeamAccess extends BaseModel {\n canEdit: boolean;\n canViewUsers: boolean;\n canManagePermission: boolean;\n canChangeOwner: boolean;\n canDelete: boolean;\n canManageInvites: boolean;\n canViewInvites: boolean;\n canManagePolls: boolean;\n canViewPolls: boolean;\n canAnswerPoll: boolean;\n canManageGames: boolean;\n canViewGames: boolean;\n canViewStatistic: boolean;\n canPromoteUsers: boolean;\n canEditUsers: boolean;\n canDeleteUsers: boolean;\n canViewEvents: boolean;\n canManageEvents: boolean;\n canViewTournaments: boolean;\n canManageTournaments: boolean;\n role: TeamUserRole;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\nimport { Team } from '../models/team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser, TeamUserRole } from '../models/team-user';\nimport { User } from '../models/user';\nimport { TeamInvite } from '../models/team-invite';\nimport { TeamInviteExternal } from '../models/team-invite-external';\nimport { Poll } from '../models/poll';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { TeamEvent } from '../models/team-event';\nimport { Tournament } from '../models/tournament';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { TeamPermission } from '../models/team-permission';\nimport { TeamAccess } from '../models/team-access';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async search(query: string, sportId?: number): Promise<Team[]> {\n let params = (new HttpParams()).set('search', query);\n if (sportId) {\n params = params.set('sport', sportId.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/`, {params})\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async create(team: Team): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/`, Team.toBack(team))\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getById(teamId: number): Promise<Team> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`)\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getTeamAccess(teamId: number): Promise<TeamAccess> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/access/`)\n .pipe(map(data => TeamAccess.toFront(data)))\n .toPromise();\n }\n\n async update(teamId: number, values: any): Promise<Team> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/`, Team.toBack(values))\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async delete(team: Team): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${team.id}/`)\n .toPromise();\n }\n\n async getPermission(teamId: number): Promise<TeamPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`)\n .pipe(map(data => TeamPermission.toFront(data)))\n .toPromise();\n }\n\n async updatePermission(teamId: number, permission: TeamPermission): Promise<TeamPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/permission/`, TeamPermission.toBack(permission))\n .pipe(map(data => TeamPermission.toFront(data)))\n .toPromise();\n }\n\n async getUsers(teamId: number, tournamentId?: number): Promise<TeamUser[]> {\n let params = new HttpParams();\n if (tournamentId) {\n params = params.set('tournament_id', tournamentId.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`, {params})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateUserRole(teamId: number, teamUserId: number, role: TeamUserRole): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/role/`, {role: TeamUserRole[role]})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateUserNumber(teamId: number, teamUserId: number, gameNumber: number): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/${teamUserId}/number/`, {number: gameNumber.toString()})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async deleteUser(teamUser: TeamUser): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team/${teamUser.teamId}/users/${teamUser.id}/`)\n .toPromise();\n }\n\n async changeOwner(teamId: number, user: User): Promise<Team> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/owner/`, {id: user.id})\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getInvites(teamId: number): Promise<TeamInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`)\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async sendInvite(teamId: number, user: User): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites/`, {user})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/accept/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async declineInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/decline/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async resendInvite(invite: TeamInvite): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_invite/${invite.id}/resend/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async getInvitesExternal(teamId: number): Promise<TeamInviteExternal[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`)\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async sendInviteExternal(teamId: number, invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/invites_external/`, TeamInviteExternal.toBack(invite))\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async deleteInviteExternal(invite: TeamInviteExternal): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/`)\n .toPromise();\n }\n\n async resendInviteExternal(invite: TeamInviteExternal): Promise<TeamInviteExternal> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/invites_external/${invite.id}/resend/`, {})\n .pipe(map(data => TeamInviteExternal.toFront(data)))\n .toPromise();\n }\n\n async getPolls(teamId: number, archive: boolean = false): Promise<Poll[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => Poll.toFront(data)))\n .toPromise();\n }\n\n async createPoll(teamId: number, poll: Poll): Promise<Poll> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/polls/`, Poll.toBack(poll))\n .pipe(map(data => Poll.toFront(data)))\n .toPromise();\n }\n\n async getUsersStatistic(teamId: number): Promise<BasketballStatistic[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballStatistic(teamId: number): Promise<VolleyballStatistic[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/volleyball_statistics/`)\n .pipe(map(data => VolleyballStatistic.toFront(data)))\n .toPromise();\n }\n\n async joinTeam(teamId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/join/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async leaveTeam(teamId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/leave/`, {})\n .toPromise();\n }\n\n async getGames(teamId: number, archive = false): Promise<Game[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/${archive ? '?archive=1' : ''}`)\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async createGame(teamId: number, game: Game): Promise<Game> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/games/`, Game.toBack(game))\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async getTeamEvents(teamId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async createTeamEvent(teamId: number, teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/events/`, TeamEvent.toBack(teamEvent))\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async getTournaments(teamId: number): Promise<Tournament[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/`)\n .pipe(map(data => Tournament.toFront(data)))\n .toPromise();\n }\n\n async getTournamentTeams(teamId: number): Promise<TournamentTeam[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_teams/`)\n .pipe(map(data => TournamentTeam.toFront(data)))\n .toPromise();\n }\n\n async getTournamentInvites(teamId: number): Promise<TournamentInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournament_invites/`)\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async getTournamentGames(teamId: number, tournamentId: number, page: number, size?: number): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/tournaments/${tournamentId}/games/`, {params, observe: 'response'})\n .pipe(map((response: HttpResponse<any>) => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n }))\n .toPromise();\n }\n\n async acceptTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/accept/`, {})\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async declineTournamentInvite(inviteId: number): Promise<TournamentInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/tournament_invite/${inviteId}/decline/`, {})\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n\n async registerLazyUser(teamId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/lazy_user/`, {user: User.toBack(userData)})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async getLazyUser(teamUserId: number): Promise<TeamUser> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async updateLazyUser(teamUserId: number, userData: User): Promise<TeamUser> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`, {user: User.toBack(userData)})\n .pipe(map(data => TeamUser.toFront(data)))\n .toPromise();\n }\n\n async deleteLazyUser(teamUserId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/`)\n .toPromise();\n }\n\n async resendLazyUserEmail(teamUserId: number): Promise<any> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/lazy_user/${teamUserId}/resend_email/`, {})\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { TeamEvent } from '../models/team-event';\nimport { TeamEventInvite } from '../models/team-event-invite';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TeamEventApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getTeamEvent(teamEventId: number): Promise<TeamEvent> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async updateTeamEvent(teamEvent: TeamEvent): Promise<TeamEvent> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEvent.id}/`, TeamEvent.toBack(teamEvent))\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n\n async deleteTeamEvent(teamEventId: number): Promise<any> {\n return this.httpClient\n .delete(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/`)\n .toPromise();\n }\n\n async getTeamEventInvites(teamEventId: number): Promise<TeamEventInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`)\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async createTeamEventInvite(teamEventId: number, teamUserId: number): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event/${teamEventId}/invites/`, {team_user_id: teamUserId})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/accept/`, {})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n\n async declineTeamEventInvite(teamEventInvite: TeamEventInvite): Promise<TeamEventInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/team_event_invite/${teamEventInvite.id}/decline/`, {})\n .pipe(map(data => TeamEventInvite.toFront(data)))\n .toPromise();\n }\n}\n","import { BaseModel, ModelInstance, ToFrontHook, ToBackHook, DateTimeField } from './util';\nimport { File } from './file';\nimport { User } from './user';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n title: 'title',\n picture: 'picture',\n text: 'text',\n author: 'author',\n created_at: 'createdAt',\n },\n relation: {\n picture: File,\n author: User,\n createdAt: DateTimeField,\n }\n})\nexport class TournamentNews extends BaseModel {\n id: number;\n title: string;\n picture: File;\n text: string;\n author: User;\n createdAt: Date;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\n\n@ModelInstance({\n mappingFields: {\n stage_id: 'stageId',\n tours_count: 'toursCount',\n playoff_stages_count: 'playoffStagesCount',\n }\n})\nexport class GameTimelineStageItem {\n stageId: number;\n toursCount: number;\n playoffStagesCount: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n tours_count: 'toursCount',\n playoff_stages_count: 'playoffStagesCount',\n current_tour: 'currentTour',\n current_playoff_stage: 'currentPlayoffStage',\n stages: 'stages',\n tournament_stage_id: 'tournamentStageId',\n },\n relation: {\n stages: listField(GameTimelineStageItem)\n }\n})\nexport class GameTimelineStages extends BaseModel {\n toursCount: number;\n playoffStagesCount: number;\n currentTour: number;\n currentPlayoffStage: number;\n stages: GameTimelineStageItem[];\n tournamentStageId: number;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\nimport { generateArray } from '../utils/array';\n\nexport enum PlayoffTypes {\n double_elimination = 'double_elimination',\n elimination = 'elimination'\n}\n\n@ModelInstance({\n mappingFields: {\n rounds: 'rounds',\n final_rounds: 'finalRounds',\n third_place_rounds: 'thirdPlaceRounds',\n teams_count: 'teamsCount',\n type: 'type',\n },\n relation: {\n type: enumField(PlayoffTypes)\n }\n})\nexport class PlayoffSettings extends BaseModel {\n rounds: number;\n finalRounds: number;\n thirdPlaceRounds: number;\n teamsCount: number;\n type: PlayoffTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n settings: 'settings',\n tournament_id: 'tournamentId',\n tournament_stage_id: 'tournamentStageId',\n is_official: 'isOfficial'\n },\n relation: {\n settings: PlayoffSettings\n }\n})\nexport class Playoff extends BaseModel {\n id: number;\n name: string;\n settings: PlayoffSettings;\n tournamentId: number;\n tournamentStageId: number;\n isOfficial: boolean;\n private stages: {title: string, value: number}[] = [];\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n\n get stagesCount(): number {\n return Math.log(this.settings.teamsCount) / Math.log(2);\n }\n\n getPlayoffStages() {\n if (this.stages.length === 0 && this.settings.teamsCount) {\n const stagesCount = Math.log(this.settings.teamsCount) / Math.log(2);\n this.stages = generateArray(stagesCount).map(stage => {\n const playoffStage = this.settings.teamsCount / 2 ** stage;\n let title = '';\n if (playoffStage === 1) {\n title = 'Финал';\n } else {\n title = `1 / ${playoffStage}`;\n }\n return {\n value: stage,\n title\n };\n });\n }\n return this.stages;\n }\n}\n","export function generateArray(length: number): number[] {\n if (length <= 0) {\n return [];\n }\n return Array.apply(null, Array(length)).map((_, i) => i + 1);\n}\n\nexport function getArrayChunks(array: any[], length: number): any[][] {\n const chunks = [];\n const chunkLength = Math.ceil(array.length / length);\n if (chunkLength === 0) {\n return [array];\n }\n for (let i = 0; i < chunkLength; i++) {\n chunks.push(array.slice(i * length, (i + 1) * length));\n }\n return chunks;\n}\n","import { User } from './user';\nimport { BaseModel, enumField, listField, ModelInstance, ToBackHook, ToFrontHook } from './util';\n\n\nexport enum LeagueUserRoles {\n admin = 1,\n moderator,\n game_manager\n}\n\nexport enum LeagueUserPermissions {\n settings = 1,\n users,\n teams,\n media,\n news,\n game_export,\n schedule,\n game_management\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n user: 'user',\n role: 'role',\n permissions: 'permissions'\n },\n relation: {\n user: User,\n permissions: listField(enumField(LeagueUserPermissions))\n }\n})\nexport class LeagueUser extends BaseModel {\n id: number;\n user: User;\n _role: LeagueUserRoles;\n permissions: LeagueUserPermissions[];\n\n set role(value: LeagueUserRoles|string) {\n this._role = LeagueUserRoles[value];\n }\n\n get role(): LeagueUserRoles|string {\n return this._role;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { TournamentTeam } from './tournament-team';\nimport { TournamentGroup } from './tournament-group';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n tournament_team: 'tournamentTeam',\n group: 'group',\n tournament_stage_id: 'tournamentStageId',\n games_count: 'gamesCount',\n won_games_count: 'wonGamesCount',\n score_sum: 'scoreSum',\n missed_sum: 'missedSum',\n last_games_count: 'lastGamesCount',\n last_games_won: 'lastGamesWon',\n points: 'points',\n final_standing: 'finalStanding',\n received_points: 'receivedPoints',\n },\n relation: {\n tournamentTeam: TournamentTeam,\n group: TournamentGroup\n }\n})\nexport class TournamentStageTeam extends BaseModel {\n id: number;\n tournamentTeam: TournamentTeam;\n group: TournamentGroup;\n tournamentStageId: number;\n gamesCount: number;\n wonGamesCount: number;\n scoreSum: number;\n missedSum: number;\n lastGamesCount: number;\n lastGamesWon: number;\n points: number;\n finalStanding: number;\n receivedPoints: number;\n\n get gamesWonPercent(): number {\n if (!this.gamesCount) {\n return 0;\n }\n return Math.floor(1000 * this.wonGamesCount / this.gamesCount) / 10;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField } from './util';\n\nexport enum UserPermissionTypes {\n denied = 1,\n for_all,\n for_users,\n for_team\n}\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n personal_data: 'personalData',\n games: 'games',\n teams: 'teams',\n statistic: 'statistic'\n },\n relation: {\n personalData: enumField(UserPermissionTypes),\n games: enumField(UserPermissionTypes),\n teams: enumField(UserPermissionTypes),\n statistic: enumField(UserPermissionTypes)\n }\n})\nexport class UserPermission extends BaseModel {\n id: number;\n personalData: UserPermissionTypes;\n games: UserPermissionTypes;\n teams: UserPermissionTypes;\n statistic: UserPermissionTypes;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Tournament } from '../models/tournament';\nimport { map } from 'rxjs/operators';\nimport { TournamentNews } from '../models/tournament-news';\nimport { Game, GameStatuses } from '../models/game';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { Playoff } from '../models/playoff';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { TournamentTeamUser } from '../models/tournament-team-user';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { ConfigService } from '../services/config.service';\nimport { HockeyStatistic } from '../models/hockey-statistic';\nimport { FootballStatistic } from '../models/football-statistic';\nimport { LeagueUserPermissions } from '../models/league-user';\n\nexport interface TournamentGamesFilters {\n tournamentStageId?: number;\n tournamentTour?: number;\n teamId?: number;\n playoffStage?: number;\n playoffId?: number;\n status?: GameStatuses;\n statuses?: GameStatuses[];\n tournamentCourtId?: number;\n}\n\nexport type StatisticGroupByTypes = 'team' | 'user' | 'team_user' | 'tournament_team' | 'tournament_team_user' | 'month' | 'win_loses';\n\nexport interface StatisticFilters {\n tournament_id?: number;\n tournament_season_id?: number;\n tournament_team_id?: number;\n tournament_team_user_id?: number;\n team_id?: number;\n team_user_id?: number;\n user_id?: number;\n tournament_stage_id?: number;\n tournament_tour?: number;\n playoff_stage?: number;\n playoff_id?: number;\n date_from?: string;\n date_to?: string;\n per_game?: boolean;\n group_by: StatisticGroupByTypes;\n}\n\nexport interface TournamentEventsListFilter {\n event?: TournamentEventTypes;\n search?: string;\n tournamentTour?: number;\n}\n\n@Injectable({providedIn: 'root'})\nexport class TournamentApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(tournamentId: number): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/`)\n .pipe(map(result => Tournament.toFront(result)))\n .toPromise();\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<Tournament> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournaments/${alias}/`)\n .pipe(map(result => Tournament.toFront(result)))\n .toPromise();\n }\n\n async getNews(tournamentId: number): Promise<TournamentNews[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/news/`)\n .pipe(map(result => TournamentNews.toFront(result)))\n .toPromise();\n }\n\n async getEvents(tournamentId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/events/`, {params, observe: 'response'})\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n })))\n .toPromise();\n }\n\n async getTournamentStages(tournamentId: number): Promise<TournamentStage[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stages/`).pipe(\n map(data => TournamentStage.toFront(data))\n ).toPromise();\n }\n\n async getPlayoff(tournamentId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/playoff/`).pipe(\n map(result => Playoff.toFront(result))\n ).toPromise();\n }\n\n async getPlayoffGames(playoffId: number): Promise<Game[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_playoff/${playoffId}/games/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getGamesStages(tournamentId: number): Promise<GameTimelineStages> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games_stages/`)\n .pipe(map(data => GameTimelineStages.toFront(data)))\n .toPromise();\n }\n\n async getGames(tournamentId: number, page: number, size: number, filters: TournamentGamesFilters = {}): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n if (filters.tournamentCourtId) {\n params = params.set('tournament_court_id', filters.tournamentCourtId.toString());\n }\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/games/`, {params, observe: 'response'})\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))).toPromise();\n }\n\n async getTeams(tournamentId: number): Promise<TournamentTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams/`)\n .pipe(map(result => TournamentTeam.toFront(result)))\n .toPromise();\n }\n\n async getStageTeams(tournamentId: number): Promise<TournamentStageTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/stage_teams/`)\n .pipe(map(result => TournamentStageTeam.toFront(result)))\n .toPromise();\n }\n\n async getTeamById(tournamentTeamId: number): Promise<TournamentTeam> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/`)\n .pipe(map(result => TournamentTeam.toFront(result)))\n .toPromise();\n }\n\n async getUserById(userId: number): Promise<TournamentTeamUser> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${userId}/`)\n .pipe(map(result => TournamentTeamUser.toFront(result)))\n .toPromise();\n }\n\n async getUserGames(tournamentUserId: number): Promise<Game[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team_user/${tournamentUserId}/games/`)\n .pipe(map(result => Game.toFront(result)))\n .toPromise();\n }\n\n async getBasketballStatistic(filters?: StatisticFilters): Promise<BasketballStatistic[]> {\n let params = new HttpParams();\n if (filters) {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n }\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/basketball_statistic/`, {params}).pipe(\n map(result => BasketballStatistic.toFront(result))\n ).toPromise();\n }\n\n async getVolleyballStatistic(filters?: StatisticFilters): Promise<VolleyballStatistic[]> {\n let params = new HttpParams();\n if (filters) {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n }\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/volleyball_statistic/`, {params}).pipe(\n map(result => VolleyballStatistic.toFront(result))\n ).toPromise();\n }\n\n async getHockeyStatistic(filters?: StatisticFilters): Promise<HockeyStatistic[]> {\n let params = new HttpParams();\n if (filters) {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n }\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/hockey_statistic/`, {params}).pipe(\n map(result => HockeyStatistic.toFront(result))\n ).toPromise();\n }\n\n async getFootballStatistic(filters?: StatisticFilters): Promise<FootballStatistic[]> {\n let params = new HttpParams();\n if (filters) {\n for (const key of Object.keys(filters)) {\n if (filters[key]) {\n params = params.set(key, filters[key]);\n }\n }\n\n if (filters.per_game !== undefined) {\n params = params.set('per_game', filters.per_game ? '1' : '0');\n }\n }\n\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/football_statistic/`, {params}).pipe(\n map(result => FootballStatistic.toFront(result))\n ).toPromise();\n }\n\n async getTournamentTeamUsers(tournamentTeamId: number): Promise<TournamentTeamUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_team/${tournamentTeamId}/users/`).pipe(\n map(result => TournamentTeamUser.toFront(result))\n ).toPromise();\n }\n\n async myPermission(tournamentId: number): Promise<LeagueUserPermissions[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/permission/`).pipe(\n map((data: any) => (data.permissions || []).map(item => LeagueUserPermissions[item]))\n ).toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { Team } from './team';\n\n@ModelInstance({\n mappingFields: {\n valid_users_count: 'validUsersCount',\n invalid_users_count: 'invalidUsersCount',\n has_access: 'hasAccess',\n invite_sent: 'inviteSent',\n already_in_tournament: 'alreadyInTournament'\n }\n})\nexport class TournamentJoinData extends BaseModel {\n validUsersCount: number;\n invalidUsersCount: number;\n hasAccess: boolean;\n inviteSent: boolean;\n alreadyInTournament: boolean;\n\n get usersCount(): number {\n return this.validUsersCount + this.invalidUsersCount;\n }\n\n get valid() {\n return this.hasAccess && !this.inviteSent && !this.alreadyInTournament;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n join_data: 'joinData'\n },\n relation: {\n team: Team,\n joinData: TournamentJoinData\n }\n})\nexport class TournamentJoinTeam extends BaseModel {\n team: Team;\n joinData: TournamentJoinData;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TournamentJoinTeam } from '../models/tournament-join-team';\nimport { map } from 'rxjs/operators';\nimport { TeamUser } from '../models/team-user';\nimport { TournamentTeamUserInvite } from '../models/tournament-team-user-invite';\nimport { TournamentInvite } from '../models/tournament-invite';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentJoinApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getTeamsForJoin(tournamentId: number): Promise<TournamentJoinTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/teams_for_join/`).pipe(\n map(response => TournamentJoinTeam.toFront(response))\n ).toPromise();\n }\n\n async getTeamUsers(teamId: number): Promise<TeamUser[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/team/${teamId}/users/`)\n .pipe(\n map(data => TeamUser.toFront(data))\n ).toPromise();\n }\n\n async joinTournament(tournamentId: number, teamId: number, invites: TournamentTeamUserInvite[]): Promise<TournamentInvite> {\n const body = {\n team: {id: teamId},\n user_invites: TournamentTeamUserInvite.toBack(invites)\n };\n return this.httpClient.post(`${this.configService.get('apiUrl')}/api/v1/tournament/${tournamentId}/join/`, body)\n .pipe(map(data => TournamentInvite.toFront(data)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { TournamentSeason } from '../models/tournament-season';\nimport { ConfigService } from '../services/config.service';\nimport { map } from 'rxjs/operators';\nimport { Game, GameStatuses } from '../models/game';\nimport { Tournament } from '../models/tournament';\nimport { TournamentEventsListFilter, TournamentGamesFilters } from './tournament-api';\nimport { PaginatedResponse } from './paginated-response.interface';\nimport { TournamentEvent, TournamentEventTypes } from '../models/tournament-event';\nimport { GameMediaFilters } from './media-api';\nimport { TournamentTeam } from '../models/tournament-team';\nimport { GameTimelineStages } from '../models/game-timeline-stages';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentSeasonApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getByAlias(leagueId: number, alias: string): Promise<TournamentSeason> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/league/${leagueId}/tournament_seasons/${alias}/`).pipe(\n map(result => TournamentSeason.toFront(result))\n ).toPromise();\n }\n\n async getTournaments(seasonId: number): Promise<Tournament[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/tournaments/`).pipe(\n map(result => Tournament.toFront(result))\n ).toPromise();\n }\n\n async getGames(seasonId: number, page: number, size: number, filters: TournamentGamesFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString());\n if (size) {\n params = params.set('size', size.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n if (filters.statuses) {\n const statuses = filters.statuses.map(i => GameStatuses[i]);\n params = params.set('statuses', statuses.join(','));\n }\n if (filters.tournamentCourtId) {\n params = params.set('tournament_court_id', filters.tournamentCourtId.toString());\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games/`,\n {params, observe: 'response'}\n ).pipe(\n map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: Game.toFront(result.body)\n }))\n ).toPromise();\n }\n\n async getEvents(seasonId: number, page: number, size: number, filters?: TournamentEventsListFilter): Promise<PaginatedResponse<TournamentEvent[]>> {\n let params = new HttpParams().set('page', page.toString())\n .set('size', size.toString());\n if (filters) {\n if (filters.event) {\n params = params.set('event', TournamentEventTypes[filters.event]);\n }\n if (filters.search) {\n params = params.set('search', filters.search);\n }\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n }\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/events/`,\n {params, observe: 'response'}\n )\n .pipe(map(result => ({\n total: +result.headers.get('X-Page-Count'),\n data: TournamentEvent.toFront(result.body)\n })))\n .toPromise();\n }\n\n async getGameMedia(seasonId: number, page: number, size: number, filters: GameMediaFilters): Promise<PaginatedResponse<Game[]>> {\n let params = new HttpParams().set('page', page.toString()).set('size', size.toString());\n if (filters) {\n if (filters.tournamentTour) {\n params = params.set('tournament_tour', filters.tournamentTour.toString());\n }\n if (filters.teamId) {\n params = params.set('team_id', filters.teamId.toString());\n }\n if (filters.tournamentStageId) {\n params = params.set('tournament_stage_id', filters.tournamentStageId.toString());\n }\n if (filters.playoffId) {\n params = params.set('playoff_id', filters.playoffId.toString());\n }\n if (filters.playoffStage) {\n params = params.set('playoff_stage', filters.playoffStage.toString());\n }\n if (filters.status) {\n params = params.set('status', GameStatuses[filters.status]);\n }\n }\n\n return this.httpClient.get(\n `${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/game_media/`,\n {observe: 'response', params})\n .pipe(\n map(response => {\n return {\n total: +response.headers.get('X-Page-Count'),\n data: Game.toFront(response.body)\n };\n })\n ).toPromise();\n }\n\n async getTeams(seasonId: number): Promise<TournamentTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/teams/`).pipe(\n map(result => TournamentTeam.toFront(result))\n ).toPromise();\n }\n\n async getGamesStages(seasonId: number): Promise<GameTimelineStages> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_season/${seasonId}/games_stages/`)\n .pipe(map(data => GameTimelineStages.toFront(data)))\n .toPromise();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TournamentStage } from '../models/tournament-stage';\nimport { map } from 'rxjs/operators';\nimport { TournamentGroup } from '../models/tournament-group';\nimport { Playoff } from '../models/playoff';\nimport { TournamentStageTeam } from '../models/tournament-stage-team';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class TournamentStageApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(id: number): Promise<TournamentStage> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${id}/`)\n .pipe(map(result => TournamentStage.toFront(result)))\n .toPromise();\n }\n\n async getGroups(stageId: number): Promise<TournamentGroup[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/groups/`)\n .pipe(map(result => TournamentGroup.toFront(result)))\n .toPromise();\n }\n\n async getPlayoffs(stageId: number): Promise<Playoff[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/playoff/`)\n .pipe(map(result => Playoff.toFront(result)))\n .toPromise();\n }\n\n async getTeams(stageId: number): Promise<TournamentStageTeam[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_stage/${stageId}/teams/`)\n .pipe(map(result => TournamentStageTeam.toFront(result)))\n .toPromise();\n }\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\n\n@ModelInstance({\n mappingFields: {\n edit: 'edit',\n personal_data: 'personalData',\n teams: 'teams',\n statistic: 'statistic',\n games: 'games'\n }\n})\nexport class UserAccess extends BaseModel {\n edit: boolean;\n personalData: boolean;\n teams: boolean;\n statistic: boolean;\n games: boolean;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, enumField, DateTimeField } from './util';\nimport { GameLogBase } from './game-log-base';\nimport { GameUser } from './game-user';\n\nexport enum VolleyballGameLogType {\n enter_game = 1,\n exit_game,\n remove_game,\n serve_hit,\n serve_fault,\n serve_ace,\n stuff_block,\n block_fault,\n block_rebound,\n attack_spike,\n attack_fault,\n attack_shot,\n receive,\n receive_fault,\n excellent_receive,\n point,\n fault,\n serve_receive,\n serve_receive_fault,\n excellent_serve_receive,\n timeout,\n yellow_card,\n}\n\nexport const SCORE_LOG_TYPES = [\n VolleyballGameLogType.serve_ace, VolleyballGameLogType.stuff_block,\n VolleyballGameLogType.attack_spike, VolleyballGameLogType.point\n];\nexport const FAULT_LOG_TYPES = [\n VolleyballGameLogType.serve_fault, VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.block_fault, VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.fault, VolleyballGameLogType.serve_receive_fault\n];\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n unique_id: 'uniqueId',\n game_id: 'gameId',\n game_user_id: 'gameUserId',\n log_type: 'logType',\n set: 'set',\n rally: 'rally',\n position: 'position',\n team_id: 'teamId',\n datetime: 'datetime',\n },\n relation: {\n logType: enumField(VolleyballGameLogType),\n datetime: DateTimeField\n }\n})\nexport class VolleyballGameLog extends BaseModel implements GameLogBase {\n id: number;\n uniqueId: string;\n active = true;\n gameId: number;\n gameUserId: number;\n logType: VolleyballGameLogType;\n set: number;\n rally: number;\n position: number;\n teamId: number;\n datetime: Date;\n gameUser: GameUser;\n\n compare(model: VolleyballGameLog): number {\n if (this.rally === model.rally && this.set === model.set) {\n if (this.datetime && model.datetime) {\n return this.datetime.getTime() < model.datetime.getTime() ? 1 : -1;\n } else {\n return this.id < model.id ? 1 : -1;\n }\n }\n if (this.set === model.set) {\n return this.rally < model.rally ? 1 : -1;\n }\n return this.set < model.set ? 1 : -1;\n }\n\n isScoreType() {\n return SCORE_LOG_TYPES.includes(this.logType);\n }\n\n isFaultType() {\n return FAULT_LOG_TYPES.includes(this.logType);\n }\n\n isServe() {\n return [\n VolleyballGameLogType.serve_hit,\n VolleyballGameLogType.serve_ace,\n VolleyballGameLogType.serve_fault\n ].includes(this.logType);\n }\n\n isAttack() {\n return [\n VolleyballGameLogType.attack_fault,\n VolleyballGameLogType.attack_spike,\n VolleyballGameLogType.attack_shot\n ].includes(this.logType);\n }\n\n isReceive() {\n return [\n VolleyballGameLogType.receive_fault,\n VolleyballGameLogType.receive,\n VolleyballGameLogType.excellent_receive\n ].includes(this.logType);\n }\n\n isServeReceive() {\n return [\n VolleyballGameLogType.serve_receive_fault,\n VolleyballGameLogType.serve_receive,\n VolleyballGameLogType.excellent_serve_receive\n ].includes(this.logType);\n }\n\n isBlock() {\n return [\n VolleyballGameLogType.block_fault,\n VolleyballGameLogType.block_rebound,\n VolleyballGameLogType.stuff_block\n ].includes(this.logType);\n }\n\n isEnterExit() {\n return [\n VolleyballGameLogType.enter_game,\n VolleyballGameLogType.exit_game,\n VolleyballGameLogType.timeout\n ].includes(this.logType);\n }\n\n isComboType() {\n return ![\n VolleyballGameLogType.receive,\n VolleyballGameLogType.serve_receive\n ].includes(this.logType);\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { User } from '../models/user';\nimport { File } from '../models/file';\nimport { map } from 'rxjs/operators';\nimport { UserProfile } from '../models/user-profile';\nimport { BasketballProfile } from '../models/basketball-profile';\nimport { VolleyballProfile } from '../models/volleyball-profile';\nimport { Team } from '../models/team';\nimport { TeamInvite } from '../models/team-invite';\nimport { BasketballStatistic } from '../models/basketball-statistic';\nimport { VolleyballStatistic } from '../models/volleyball-statistic';\nimport { Game } from '../models/game';\nimport { GameInvite } from '../models/game-invite';\nimport { TeamEvent } from '../models/team-event';\nimport { UserAccess } from '../models/user-access';\nimport { UserPermission } from '../models/user-permission';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class UserApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {}\n\n async getCurrentUser(): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/`)\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getUserById(userId: number): Promise<User> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`)\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getAccess(userId?: number): Promise<UserAccess> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/access/`)\n .pipe(map(data => UserAccess.toFront(data)))\n .toPromise();\n }\n\n async updateUser(userId: number, data: any): Promise<User> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/`, User.toBack(data))\n .pipe(map(result => User.toFront(result)))\n .toPromise();\n }\n\n async updateUserPhoto(file: any, filename?: string): Promise<File> {\n const formData = new FormData();\n formData.append('file', file, filename);\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/photo/`, formData)\n .pipe(map(data => File.toFront(data)))\n .toPromise();\n }\n\n async changePassword(userId: number, oldPassword: string, password: string, passwordConfirm: string): Promise<any> {\n const payload = {\n old_password: oldPassword,\n password,\n password_confirm: passwordConfirm\n };\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_password/`, payload)\n .toPromise();\n }\n\n async changeEmail(userId: number, email: string, password: string): Promise<any> {\n const payload = {email, password};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email/`, payload)\n .toPromise();\n }\n\n async changeEmailConfirm(userId, email: string, password: string, token: number): Promise<any> {\n const payload = {email, password, token};\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/change_email_confirm/`, payload)\n .toPromise();\n }\n\n async getUserProfile(userId: number): Promise<UserProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/profile/`)\n .pipe(map(data => UserProfile.toFront(data)))\n .toPromise();\n }\n\n async getBasketballProfile(userId: number): Promise<BasketballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/basketball_profile/`)\n .pipe(map(data => BasketballProfile.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballProfile(userId: number): Promise<VolleyballProfile> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_profile/`)\n .pipe(map(data => VolleyballProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserProfile(userProfile: UserProfile): Promise<UserProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${userProfile.userId}/profile/`, UserProfile.toBack(userProfile))\n .pipe(map(data => UserProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserBasketballProfile(basketballProfile: BasketballProfile): Promise<BasketballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${basketballProfile.userId}/basketball_profile/`, BasketballProfile.toBack(basketballProfile))\n .pipe(map(data => BasketballProfile.toFront(data)))\n .toPromise();\n }\n\n async updateUserVolleyballProfile(volleyballProfile: VolleyballProfile): Promise<VolleyballProfile> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/${volleyballProfile.userId}/volleyball_profile/`, VolleyballProfile.toBack(volleyballProfile))\n .pipe(map(data => VolleyballProfile.toFront(data)))\n .toPromise();\n }\n\n async getUserPermissions(userId?: number): Promise<UserPermission> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId || 'current'}/permission/`)\n .pipe(map(data => UserPermission.toFront(data)))\n .toPromise();\n }\n\n async updateUserPermission(data: any): Promise<UserPermission> {\n return this.httpClient\n .patch(`${this.configService.get('apiUrl')}/api/v1/user/current/permission/`, UserPermission.toBack(data))\n .pipe(map(result => UserPermission.toFront(result)))\n .toPromise();\n }\n\n async getTeams(userId: number): Promise<Team[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/teams/`)\n .pipe(map(data => Team.toFront(data)))\n .toPromise();\n }\n\n async getInvites(): Promise<TeamInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/`)\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/accept/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async declineInvite(inviteId: number): Promise<TeamInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/invites/${inviteId}/decline/`, {})\n .pipe(map(data => TeamInvite.toFront(data)))\n .toPromise();\n }\n\n async getStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getStreetballStatistics(userId: number): Promise<BasketballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/streetball_statistics/`)\n .pipe(map(data => BasketballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getVolleyballStatistic(userId: number): Promise<VolleyballStatistic> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/volleyball_statistics/`)\n .pipe(map(data => VolleyballStatistic.toFront(data)))\n .toPromise();\n }\n\n async getGames(userId: number): Promise<Game[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/${userId}/games/`)\n .pipe(map(data => Game.toFront(data)))\n .toPromise();\n }\n\n async getGameInvites(): Promise<GameInvite[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/`)\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async acceptGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/accept/`, {})\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async declineGameInvite(inviteId: number): Promise<GameInvite> {\n return this.httpClient\n .post(`${this.configService.get('apiUrl')}/api/v1/user/current/game_invites/${inviteId}/decline/`, {})\n .pipe(map(data => GameInvite.toFront(data)))\n .toPromise();\n }\n\n async searchUsers(query: string): Promise<User[]> {\n const params = (new HttpParams()).set('search', query);\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/`, {params})\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async setWizardShowed(wizard: string): Promise<User> {\n return this.httpClient\n .put(`${this.configService.get('apiUrl')}/api/v1/user/current/wizards/`, {wizard})\n .pipe(map(data => User.toFront(data)))\n .toPromise();\n }\n\n async getTeamEvents(userId: number): Promise<TeamEvent[]> {\n return this.httpClient\n .get(`${this.configService.get('apiUrl')}/api/v1/user/current/team_events/`)\n .pipe(map(data => TeamEvent.toFront(data)))\n .toPromise();\n }\n}\n","import { ModelInstance, ToBackHook, ToFrontHook, BaseModel } from './util';\nimport { VolleyballStatistic } from './volleyball-statistic';\n\n@ModelInstance({\n mappingFields: {\n team: 'team',\n competitor_team: 'competitorTeam',\n },\n relation: {\n team: VolleyballStatistic,\n competitorTeam: VolleyballStatistic,\n }\n})\nexport class VolleyballGameTeamStatistic extends BaseModel {\n team: VolleyballStatistic;\n competitorTeam: VolleyballStatistic;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook } from './util';\nimport { GameStatisticBase } from './game-statistic-base';\n\n@ModelInstance({\n mappingFields: {\n game_user_id: 'gameUserId',\n serve_hits: 'serveHits',\n serve_faults: 'serveFaults',\n serve_aces: 'serveAces',\n stuff_blocks: 'stuffBlocks',\n block_faults: 'blockFaults',\n block_rebounds: 'blockRebounds',\n attack_spikes: 'attackSpikes',\n attack_faults: 'attackFaults',\n attack_shots: 'attackShots',\n receives: 'receives',\n receive_faults: 'receiveFaults',\n excellent_receives: 'excellentReceives',\n serve_receives: 'serveReceives',\n serve_receive_faults: 'serveReceiveFaults',\n excellent_serve_receives: 'excellentServeReceives',\n points: 'points',\n faults: 'faults',\n yellow_cards: 'yellowCards',\n }\n})\nexport class VolleyballGameStatistic extends BaseModel implements GameStatisticBase {\n gameUserId: number;\n serveHits: number;\n serveFaults: number;\n serveAces: number;\n stuffBlocks: number;\n blockFaults: number;\n blockRebounds: number;\n attackSpikes: number;\n attackFaults: number;\n attackShots: number;\n receives: number;\n receiveFaults: number;\n excellentReceives: number;\n serveReceives: number;\n serveReceiveFaults: number;\n excellentServeReceives: number;\n points: number;\n faults: number;\n yellowCards: number;\n\n get id(): number {\n return this.gameUserId;\n }\n\n get attacks(): number {\n return this.attackSpikes + this.attackShots;\n }\n\n get blocks(): number {\n return this.stuffBlocks + this.blockRebounds;\n }\n\n get totalReceives(): number {\n return this.receives + this.excellentReceives;\n }\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Game } from '../models/game';\nimport { map } from 'rxjs/operators';\nimport { GameUser } from '../models/game-user';\nimport { VolleyballGameTeamStatistic } from '../models/volleyball-game-team-statistic';\nimport { VolleyballGameStatistic } from '../models/volleyball-game-statistic';\nimport { VolleyballGameLog } from '../models/volleyball-game-log';\nimport { ConfigService } from '../services/config.service';\n\n@Injectable({providedIn: 'root'})\nexport class VolleyballGameApi {\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) {\n }\n\n async getById(gameId: number): Promise<Game> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/`).pipe(\n map(result => Game.toFront(result))\n ).toPromise();\n }\n\n async getUsers(gameId: number): Promise<GameUser[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_game/${gameId}/users/`).pipe(\n map(result => GameUser.toFront(result))\n ).toPromise();\n }\n\n async getTeamStatistic(gameId: number): Promise<VolleyballGameTeamStatistic> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/team_statistic/`).pipe(\n map(result => VolleyballGameTeamStatistic.toFront(result))\n ).toPromise();\n }\n\n async getUserStatistic(gameId: number): Promise<VolleyballGameStatistic[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/user_statistic/`).pipe(\n map(result => VolleyballGameStatistic.toFront(result))\n ).toPromise();\n }\n\n async getLogs(gameId: number): Promise<VolleyballGameLog[]> {\n return this.httpClient.get(`${this.configService.get('apiUrl')}/api/v1/tournament_volleyball_game/${gameId}/logs/`).pipe(\n map(result => VolleyballGameLog.toFront(result))\n ).toPromise();\n }\n}\n","import { BasketballGameLogTypes } from '../models/basketball-game-log';\n\nexport const BasketballGameLogTypeLocalization = {\n [BasketballGameLogTypes.enter_game]: 'ÐÑÑ
од на плоÑадкÑ',\n [BasketballGameLogTypes.exit_game]: 'УÑел Ñ Ð¿Ð»Ð¾Ñадки',\n [BasketballGameLogTypes.remove_game]: 'Удаление Ñ Ð¿Ð»Ð¾Ñадки',\n [BasketballGameLogTypes.two_point_attempt]: 'ÐÑоÑок 2 оÑка',\n [BasketballGameLogTypes.three_point_attempt]: 'ÐÑоÑок 3 оÑка',\n [BasketballGameLogTypes.free_throw_attempt]: 'ШÑÑаÑной бÑоÑок',\n [BasketballGameLogTypes.one_point_attempt]: 'ÐÑоÑок 1 оÑко',\n [BasketballGameLogTypes.two_point_made]: '2 оÑка',\n [BasketballGameLogTypes.three_point_made]: '3 оÑка',\n [BasketballGameLogTypes.free_throw_made]: '1 оÑко, ÑÑÑаÑной',\n [BasketballGameLogTypes.one_point_made]: '1 оÑко',\n [BasketballGameLogTypes.assist]: 'ÐеÑедаÑа',\n [BasketballGameLogTypes.block]: 'ÐлокÑоÑ',\n [BasketballGameLogTypes.rebound]: 'ÐодбоÑ',\n [BasketballGameLogTypes.offensive_rebound]: 'ÐÐ¾Ð´Ð±Ð¾Ñ Ð² нападении',\n [BasketballGameLogTypes.defensive_rebound]: 'ÐÐ¾Ð´Ð±Ð¾Ñ Ð² заÑиÑе',\n [BasketballGameLogTypes.steal]: 'ÐеÑеÑ
ваÑ',\n [BasketballGameLogTypes.turnover]: 'ÐоÑеÑÑ',\n [BasketballGameLogTypes.personal_foul]: 'Фол',\n [BasketballGameLogTypes.technical_foul]: 'ТеÑ
ниÑеÑкий Ñол',\n [BasketballGameLogTypes.unsportsmanlike_foul]: 'ÐеÑпоÑÑинÑй Ñол',\n [BasketballGameLogTypes.timeout]: 'ТаймаÑÑ',\n};\n","import { HockeyGameLogTypes } from '../models/hockey-game-log';\n\nexport const HockeyGameLogTypeLocalization = {\n [HockeyGameLogTypes.enter_game]: 'ÐÑÑ
од на плоÑадкÑ',\n [HockeyGameLogTypes.exit_game]: 'УÑел Ñ Ð¿Ð»Ð¾Ñадки',\n [HockeyGameLogTypes.shot_miss]: 'ÐÑоÑок мимо',\n [HockeyGameLogTypes.shot_on_goal]: 'ÐÑоÑок по воÑоÑам',\n [HockeyGameLogTypes.shot_blocked]: 'ÐаблокиÑованнÑй бÑоÑок',\n [HockeyGameLogTypes.goal]: 'Ðол',\n [HockeyGameLogTypes.shootout_attempt]: 'ÐÑÐ»Ð¸Ñ Ð¿ÑомаÑ
',\n [HockeyGameLogTypes.shootout_goal]: 'ÐÑÐ»Ð¸Ñ Ð³Ð¾Ð»',\n [HockeyGameLogTypes.assist]: 'ÐеÑедаÑа',\n [HockeyGameLogTypes.block_shot]: 'ÐлокиÑовка бÑоÑка',\n [HockeyGameLogTypes.minor_penalty]: 'ÐалÑй ÑÑÑаÑ',\n [HockeyGameLogTypes.major_penalty]: 'ÐолÑÑой ÑÑÑаÑ',\n [HockeyGameLogTypes.misconduct_penalty]: 'ÐиÑÑиплинаÑнÑй ÑÑÑаÑ',\n [HockeyGameLogTypes.game_misconduct_penalty]: 'ÐиÑÑиплинаÑнÑй ÑÑÑÐ°Ñ Ð´Ð¾ конÑа игÑÑ',\n [HockeyGameLogTypes.match_penalty]: 'ÐаÑÑ-ÑÑÑаÑ',\n [HockeyGameLogTypes.penalty_shot]: 'ШÑÑаÑной бÑоÑок',\n [HockeyGameLogTypes.face_off_lose]: 'ÐÑоигÑÑÑ Ð² вбÑаÑÑвании',\n [HockeyGameLogTypes.face_off_win]: 'Ðобеда в вбÑаÑÑвании',\n [HockeyGameLogTypes.save]: 'ÐÑÑажен бÑоÑок',\n [HockeyGameLogTypes.timeout]: 'ТаймаÑÑ',\n [HockeyGameLogTypes.penalty_start]: 'ÐаÑало ÑÑÑаÑного вÑемени',\n [HockeyGameLogTypes.penalty_end]: 'ÐÐ¾Ð½ÐµÑ ÑÑÑаÑного вÑемени'\n};\n","import { FootballGameLogTypes } from '../models/football-game-log';\n\nexport const FootballGameLogTypeLocalization = {\n [FootballGameLogTypes.enter_game]: 'ÐÑÑ
од на поле',\n [FootballGameLogTypes.exit_game]: 'УÑел Ñ Ð¿Ð¾Ð»Ñ',\n [FootballGameLogTypes.shot_miss]: 'Ð£Ð´Ð°Ñ Ð¼Ð¸Ð¼Ð¾',\n [FootballGameLogTypes.shot_on_goal]: 'Ð£Ð´Ð°Ñ Ð² ÑÑвоÑ',\n [FootballGameLogTypes.shot_blocked]: 'ÐаблокиÑованнÑй ÑдаÑ',\n [FootballGameLogTypes.goal]: 'Ðол',\n [FootballGameLogTypes.assist]: 'ÐеÑедаÑа',\n [FootballGameLogTypes.penalty_attempt]: 'ÐеналÑÑи пÑомаÑ
',\n [FootballGameLogTypes.penalty_goal]: 'ÐеналÑÑи гол',\n [FootballGameLogTypes.small_penalty_attempt]: '10-меÑÑовÑй пÑомаÑ
',\n [FootballGameLogTypes.small_penalty_goal]: '10-меÑÑовÑй гол',\n [FootballGameLogTypes.block_shot]: 'ÐлокиÑовка ÑдаÑа',\n [FootballGameLogTypes.corner]: 'Угловой',\n [FootballGameLogTypes.free_kick]: 'ШÑÑаÑной ÑдаÑ',\n [FootballGameLogTypes.save]: 'ÐÑÑажен ÑдаÑ',\n [FootballGameLogTypes.penalty_save]: 'ÐÑÑажен пеналÑÑи',\n [FootballGameLogTypes.small_penalty_save]: 'ÐÑÑажен 10 меÑÑовÑй',\n [FootballGameLogTypes.foul]: 'Фол',\n [FootballGameLogTypes.yellow_card]: 'ÐелÑÐ°Ñ ÐºÐ°ÑÑоÑка',\n [FootballGameLogTypes.red_card]: 'ÐÑаÑÐ½Ð°Ñ ÐºÐ°ÑÑоÑка',\n [FootballGameLogTypes.perfect_pass]: 'ÐаÑ',\n [FootballGameLogTypes.loss]: 'ÐоÑеÑÑ',\n [FootballGameLogTypes.steal]: 'ÐеÑеÑ
ваÑ',\n [FootballGameLogTypes.out]: 'ÐÑÑ',\n [FootballGameLogTypes.timeout]: 'ТаймаÑÑ'\n};\n","import { OvertimeTypes } from '../models/tournament';\n\nexport const OvertimeTypeLocalization = {\n [OvertimeTypes.to_score_diff]: 'Ðо ÑазниÑÑ Ð² N мÑÑей',\n [OvertimeTypes.to_score_total]: 'Ðо N оÑков',\n [OvertimeTypes.time]: 'Ðо вÑемени',\n [OvertimeTypes.without_overtime]: 'Ðез овеÑÑайма',\n [OvertimeTypes.to_first_goal]: 'Ðа N минÑÑ Ð´Ð¾ пеÑвой ÑайбÑ',\n [OvertimeTypes.to_first_goal_and_bullitts]: 'Ðа N минÑÑ Ð´Ð¾ пеÑвой ÑÐ°Ð¹Ð±Ñ + бÑллиÑÑ',\n [OvertimeTypes.bullitts]: 'ÐÑллиÑÑ',\n [OvertimeTypes.penalties]: 'ÐеналÑÑи',\n [OvertimeTypes.time_and_penalties]: 'ÐополниÑелÑное вÑÐµÐ¼Ñ + пеналÑÑи'\n};\n","import { TeamUserRole } from '../models/team-user';\n\nexport const TeamUserRoleLocalization = {\n [TeamUserRole.moderator]: 'ÐодеÑаÑоÑ',\n [TeamUserRole.member]: 'ÐолÑзоваÑелÑ',\n [TeamUserRole.admin]: 'ÐладелеÑ',\n};\n","import { GameBasketballPosition, WorkHand } from '../models/basketball-profile';\nimport { GameVolleyballPosition, VolleyballWorkHand } from '../models/volleyball-profile';\nimport { GameHockeyPosition } from '../models/hockey-profile';\nimport { FootballWorkFoot, GameFootballPosition } from '../models/football-profile';\n\nexport const GameBasketballPositionLocalization = {\n [GameBasketballPosition.point_guard]: 'РазÑгÑÑваÑÑий заÑиÑник',\n [GameBasketballPosition.shooting_guard]: 'ÐÑакÑÑÑий заÑиÑник',\n [GameBasketballPosition.small_forward]: 'Ðегкий ÑоÑваÑд',\n [GameBasketballPosition.power_forward]: 'ÐоÑнÑй ÑоÑваÑд',\n [GameBasketballPosition.center]: 'ЦенÑÑовой',\n};\n\nexport const GameBasketballPositionShortLocalization = {\n [GameBasketballPosition.point_guard]: 'PG',\n [GameBasketballPosition.shooting_guard]: 'SG',\n [GameBasketballPosition.small_forward]: 'SF',\n [GameBasketballPosition.power_forward]: 'PF',\n [GameBasketballPosition.center]: 'C',\n};\n\nexport const WorkHandLocalization = {\n [WorkHand.left]: 'ÐеваÑ',\n [WorkHand.right]: 'ÐÑаваÑ'\n};\n\nexport const GameVolleyballPositionLocalization = {\n [GameVolleyballPosition.setter]: 'СвÑзÑÑÑий',\n [GameVolleyballPosition.libero]: 'ÐибеÑо',\n [GameVolleyballPosition.middle_player]: 'ЦенÑÑалÑнÑй блокиÑÑÑÑий',\n [GameVolleyballPosition.receiver_attacker]: 'ÐоигÑовÑик',\n [GameVolleyballPosition.dioganal]: 'ÐиагоналÑнÑй',\n};\n\nexport const GameVolleyballPositionShortLocalization = {\n [GameVolleyballPosition.setter]: 'S',\n [GameVolleyballPosition.libero]: 'L',\n [GameVolleyballPosition.middle_player]: 'MP',\n [GameVolleyballPosition.receiver_attacker]: 'RA',\n [GameVolleyballPosition.dioganal]: 'D',\n};\n\nexport const GameVolleyballPositionShortRuLocalization = {\n [GameVolleyballPosition.setter]: 'ÑвÑз.',\n [GameVolleyballPosition.libero]: 'либеÑо',\n [GameVolleyballPosition.middle_player]: 'блок.',\n [GameVolleyballPosition.receiver_attacker]: 'доигÑ.',\n [GameVolleyballPosition.dioganal]: 'диаг.',\n};\n\nexport const VolleyballWorkHandLocalization = {\n [VolleyballWorkHand.left]: 'ÐеваÑ',\n [VolleyballWorkHand.right]: 'ÐÑаваÑ'\n};\n\nexport const GameHockeyPositionLocalization = {\n [GameHockeyPosition.goaltender]: 'ÐÑаÑаÑÑ',\n [GameHockeyPosition.defensemen]: 'ÐаÑиÑник',\n [GameHockeyPosition.forward]: 'ÐападаÑÑий'\n};\n\nexport const GameFootballPositionLocalization = {\n [GameFootballPosition.goalkeeper]: 'ÐÑаÑаÑÑ',\n [GameFootballPosition.defensemen]: 'ÐаÑиÑник',\n [GameFootballPosition.midfielder]: 'ÐолÑзаÑиÑник',\n [GameFootballPosition.forward]: 'ÐападаÑÑий'\n};\n\nexport const FootballWorkFootLocalization = {\n [FootballWorkFoot.left]: 'ÐеваÑ',\n [FootballWorkFoot.right]: 'ÐÑаваÑ',\n [FootballWorkFoot.both]: 'Ðбе'\n};\n","import { VolleyballGameLogType } from '../models/volleyball-game-log';\n\nexport const VolleyballGameLogTypeLocalization = {\n [VolleyballGameLogType.enter_game]: 'ÐÑÑ
од на плоÑадкÑ',\n [VolleyballGameLogType.exit_game]: 'УÑ
од Ñ Ð¿Ð»Ð¾Ñадки',\n [VolleyballGameLogType.remove_game]: 'Удаление Ñ Ð¿Ð»Ð¾Ñадки',\n [VolleyballGameLogType.serve_ace]: 'ÐйÑ',\n [VolleyballGameLogType.serve_hit]: 'ÐодаÑа',\n [VolleyballGameLogType.serve_fault]: 'ÐÑибка на подаÑе',\n [VolleyballGameLogType.attack_spike]: 'РезÑлÑÑаÑÐ¸Ð²Ð½Ð°Ñ Ð°Ñака',\n [VolleyballGameLogType.attack_shot]: 'УÑпеÑÐ½Ð°Ñ Ð°Ñака',\n [VolleyballGameLogType.attack_fault]: 'ÐÑибка аÑаки',\n [VolleyballGameLogType.stuff_block]: 'РезÑлÑÑаÑивнÑй блок',\n [VolleyballGameLogType.block_rebound]: 'УÑпеÑнÑй блок',\n [VolleyballGameLogType.block_fault]: 'ÐÑибка на блоке',\n [VolleyballGameLogType.excellent_receive]: 'ÐÑлиÑнÑй пÑием',\n [VolleyballGameLogType.receive]: 'ÐÑием',\n [VolleyballGameLogType.receive_fault]: 'ÐÑибка на пÑиеме',\n [VolleyballGameLogType.serve_receive]: 'ÐÑием подаÑи',\n [VolleyballGameLogType.excellent_serve_receive]: 'ÐÑлиÑнÑй пÑием подаÑи',\n [VolleyballGameLogType.serve_receive_fault]: 'ÐÑибка пÑиема подаÑи',\n [VolleyballGameLogType.point]: 'ÐÑко',\n [VolleyballGameLogType.fault]: 'ÐÑибка',\n [VolleyballGameLogType.timeout]: 'ТаймаÑÑ',\n [VolleyballGameLogType.yellow_card]: 'ÐÑедÑпÑеждение',\n};\n","import { ModelInstance, BaseModel, ToFrontHook, ToBackHook, listField } from './util';\nimport { File } from './file';\n\n@ModelInstance({\n mappingFields: {\n id: 'id',\n name: 'name',\n files: 'files',\n key_code: 'keyCode',\n },\n relation: {\n files: listField(File)\n }\n})\nexport class LeaguePlaylist extends BaseModel {\n id: number;\n name: string;\n files: File[];\n keyCode: string;\n\n @ToFrontHook\n static toFront(data: any): any {}\n\n @ToBackHook\n static toBack(data: any): any {}\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\n\nimport { Subject } from 'rxjs/internal/Subject';\nimport { ReplaySubject } from 'rxjs/internal/ReplaySubject';\n\nimport * as Centrifuge from 'centrifuge';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { ConfigService } from './config.service';\n\ninterface CentrifugoConfig {\n user: string;\n timestamp: string;\n token: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class CentrifugoService {\n private channels$: { [key: string]: Subject<any> } = {};\n private subscriptions: { [key: string]: any } = {};\n private centrifuge;\n private initializeEngineSubject: ReplaySubject<boolean>;\n private connectedSubject = new BehaviorSubject<boolean>(false);\n\n get connected$(): Observable<boolean> {\n return this.connectedSubject;\n }\n\n constructor(\n private httpClient: HttpClient,\n private configService: ConfigService,\n ) { }\n\n listen(channel): Observable<any> {\n if (channel in this.channels$) {\n return this.channels$[channel];\n }\n\n this.channels$[channel] = new Subject<any>();\n const subscription = this.connect().subscribe(connected => {\n this.subscriptions[channel] = this.addEngineSubscription(channel);\n setTimeout(() => {\n subscription.unsubscribe();\n });\n });\n\n return this.channels$[channel];\n }\n\n unsubscribe(channel): void {\n if (this.subscriptions[channel]) {\n this.subscriptions[channel].unsubscribe();\n delete this.subscriptions[channel];\n }\n if (this.channels$[channel]) {\n this.channels$[channel].complete();\n delete this.channels$[channel];\n }\n }\n\n connect(): Observable<boolean> {\n if (!this.initializeEngineSubject) {\n this.initializeEngineSubject = new ReplaySubject(1);\n\n this.httpClient.get<CentrifugoConfig>(`${this.configService.get('apiUrl')}/api/v1/centrifugo/`)\n .subscribe(config => {\n this.initializeEngine({\n url: this.configService.get('centrifugoUrl'),\n user: config.user,\n timestamp: config.timestamp,\n token: config.token,\n transports: ['websocket']\n });\n this.centrifuge.connect();\n this.centrifuge.on('connect', () => {\n this.initializeEngineSubject.next(true);\n this.connectedSubject.next(true);\n });\n this.centrifuge.on('disconnect', () => {\n this.connectedSubject.next(false);\n });\n });\n }\n\n return this.initializeEngineSubject;\n }\n\n publish(channel: string, message: any): Observable<any> {\n return new Observable<any>(observer => {\n this.connect().subscribe(() => {\n if (!this.subscriptions[channel]) {\n this.subscriptions[channel] = this.addEngineSubscription(channel);\n }\n this.subscriptions[channel].publish(message).then(res => {\n observer.next(res);\n observer.complete();\n }, error => {\n throw error;\n });\n });\n });\n }\n\n disconnect(): void {\n this.centrifuge.disconnect();\n this.initializeEngineSubject = undefined;\n this.channels$ = {};\n this.subscriptions = {};\n }\n\n private initializeEngine(config: {\n url: string,\n user: string,\n timestamp: string,\n token: string,\n transports: string[]\n }): void {\n this.centrifuge = new Centrifuge(config);\n }\n\n private addEngineSubscription(channel: string): Observable<any> {\n return this.centrifuge.subscribe(channel, this.resolveMessage.bind(this));\n }\n\n private resolveMessage(response: any): void {\n const channel = response.channel;\n if (!this.channels$[channel]) {\n return;\n }\n\n this.channels$[channel].next(response.data);\n }\n}\n","import { ModelInterface } from '../models/util';\n\nexport class StorageEngineField {\n defaultValue: any;\n\n constructor(defaultValue?: any, protected modelClass?: ModelInterface) {\n this.defaultValue = defaultValue;\n }\n\n toFront(value: any): any {\n if (this.modelClass) {\n return this.modelClass.toFront(value);\n }\n return value;\n }\n\n toBack(value: any): any {\n if (this.modelClass) {\n return this.modelClass.toBack(value);\n }\n return value;\n }\n}\n\nexport abstract class StorageEngine {\n constructor(protected name: string, protected fields: {[key: string]: StorageEngineField}) {\n }\n\n addField(key: string, field: StorageEngineField): void {\n this.fields[key] = field;\n }\n\n save(key: string, value: any): void {\n if (!this.fields[key]) {\n return;\n }\n this.setItem(`${this.name}_${key}`, this.fields[key].toBack(value));\n }\n\n get(key: string): any {\n if (!this.fields[key]) {\n return;\n }\n let value = this.getItem(`${this.name}_${key}`);\n if (value === null) {\n value = this.fields[key].defaultValue;\n }\n if (value === null || value === undefined) {\n return value;\n }\n return this.fields[key].toFront(value);\n }\n\n clear(): void {\n for (const field of Object.keys(this.fields)) {\n this.removeItem(field);\n }\n }\n\n protected getItem(key: string): any {\n throw new Error(`Function getItem for store engine ${typeof this} not implemented`);\n }\n\n protected setItem(key: string, value: any): any {\n throw new Error(`Function setItem for store engine ${typeof this} not implemented`);\n }\n\n protected removeItem(key: string): void {\n throw new Error(`Function deleteItem for store engine ${typeof this} not implemented`);\n }\n}\n","import { StorageEngine } from './storage-engine';\n\nexport class LocalStorageEngine extends StorageEngine {\n protected setItem(key: string, value: any) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n protected getItem(key: string): any {\n try {\n return JSON.parse(localStorage.getItem(key));\n } catch (e) {\n return;\n }\n }\n\n protected removeItem(key: string): void {\n localStorage.removeItem(key);\n }\n}\n","export function getCookie(name: string): string {\n const value = `; ${document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n return parts.pop().split(';').shift();\n }\n return null;\n}\n","export interface LinkFavicon {\n rel: string;\n sizes?: string;\n href: string;\n type?: string;\n color?: string;\n}\n\nexport function getIconsData(folder: string): LinkFavicon[] {\n return [\n {rel: 'apple-touch-icon', sizes: '180x180', href: `/assets/favicon/${folder}apple-touch-icon.png`},\n {rel: 'icon', type: 'image/png', sizes: '32x32', href: `/assets/favicon/${folder}favicon-32x32.png`},\n {rel: 'icon', type: 'image/png', sizes: '16x16', href: `/assets/favicon/${folder}favicon-16x16.png`},\n {rel: 'shortcut icon', href: `/assets/favicon/${folder}favicon.ico`},\n {rel: 'manifest', href: `/assets/favicon/${folder}site.webmanifest`},\n {rel: 'mask-icon', href: `/assets/favicon/${folder}safari-pinned-tab.svg`, color: '#ff0000'}\n ];\n}\n\nexport function changeFavicons(document: Document, leagueAlias: string): void {\n let folder = '';\n if (leagueAlias === 'ablmoscow') {\n folder = 'abl/';\n }\n const data = getIconsData(folder);\n for (const item of data) {\n const link = document.createElement('link');\n for (const key of Object.keys(item)) {\n link.setAttribute(key, item[key]);\n }\n document.head.appendChild(link);\n }\n}\n","import { Inject, Injectable, Injector, PLATFORM_ID } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { getCookie } from './utils/cookie';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable()\nexport class HttpCookieInterceptor implements HttpInterceptor {\n private isBrowser = isPlatformBrowser(this.platformId);\n\n constructor(\n private injector: Injector,\n @Inject(PLATFORM_ID) private platformId: string,\n ) {\n }\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n if (!this.isBrowser) {\n return next.handle(req);\n }\n req = req.clone({withCredentials: true});\n const csrf = getCookie('csrftoken');\n if (csrf) {\n req = req.clone({\n setHeaders: {'X-CSRFToken': csrf}\n });\n }\n return next.handle(req);\n }\n}\n","import {\n ɵComponentType as ComponentType,\n ɵDirectiveType as DirectiveType,\n ɵComponentDef as ComponentDef,\n ɵDirectiveDef as DirectiveDef\n} from '@angular/core';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { Subject } from 'rxjs/internal/Subject';\n\nexport interface OnDestroyLike {\n ngOnDestroy(): void;\n [key: string]: any;\n}\n\nexport function componentDestroyed(component: OnDestroyLike): Observable<void> {\n if ((component.constructor as any).__componentDestroyed$) {\n return (component.constructor as any).__componentDestroyed$;\n }\n throw new Error('Use @UntilDestroy decorator in class');\n}\n\nexport function UntilDestroy(cmpType: any) {\n const def = getDef(cmpType as any);\n const original = (def as any).onDestroy;\n cmpType.__componentDestroyed$ = new Subject<void>();\n (def as any).onDestroy = function() {\n cmpType.__componentDestroyed$.next();\n cmpType.__componentDestroyed$.complete();\n original.apply(this);\n };\n}\n\nfunction getDef<T>(\n type: DirectiveType<T> | ComponentType<T>\n): DirectiveDef<T> | ComponentDef<T> {\n return (type as ComponentType<T>).ɵcmp || (type as DirectiveType<T>).ɵdir;\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\nimport { debounceTime, delay, map, switchMap } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\nexport interface CheckEmailServiceInterface {\n checkEmail(value: string, selfCheck: boolean): Observable<boolean>;\n}\n\nexport const minLengthArrayValidator = (minLength: number) => {\n return (c: AbstractControl) => {\n return c.value.length < minLength\n ? {minLengthArray: {valid: false}}\n : null;\n };\n};\n\nexport const validatePhone = (control: AbstractControl) => {\n if (!control.value) {\n return null;\n }\n const value = `${control.value}`.replace(/\\D/gi, '');\n return value.length === 11 ? null : {invalidPhone: {valid: false}};\n};\n\nexport const validateDate = (control: AbstractControl) => {\n const re = /\\d{2}\\.\\d{2}\\.\\d{4}/gi;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidDate: {valid: false}};\n};\n\nexport const validateEmail = (authService: CheckEmailServiceInterface, selfCheck = true, ignore = []) => {\n const subject = of(null).pipe(\n delay(500)\n );\n return (control: AbstractControl) => {\n if (ignore.indexOf(control.value) > -1) {\n return of(null);\n }\n return subject.pipe(\n switchMap(() => authService.checkEmail(control.value, selfCheck).pipe(\n map(valid => valid ? null : {emailTaken: true})\n ))\n );\n };\n};\n\nexport const validateUrl = (control: AbstractControl) => {\n const re = /^(?:http(s)?:\\/\\/)[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$/;\n if (!control.value || re.test(control.value)) {\n return null;\n }\n return {invalidUrl: true};\n};\n\nexport function fileSizeValidator(maxFileSize: number): ValidatorFn {\n return (control: AbstractControl): {[key: string]: any} | null => {\n if (!control.value) {\n return null;\n }\n };\n}\n","export function getEnumOptions(enumClass): number[] {\n return Object.keys(enumClass)\n .map(v => enumClass[v])\n .filter(v => isNaN(+v) === false)\n .map(v => +v);\n}\n\n","import { captureException } from '@sentry/browser';\n\nexport function handleError(error, force = false, production = true) {\n if (!(error && (error.status === 0 || error.status === 404)) || (force && error.status !== 0)) {\n captureException(error);\n }\n\n if (!production) {\n console.error(error);\n }\n}\n","export function isTouchDevice() {\n const prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\n const mq = (q) => {\n return window.matchMedia(q).matches;\n };\n\n if (('ontouchstart' in window) || (window as any).DocumentTouch && document instanceof (window as any).DocumentTouch) {\n return true;\n }\n\n // include the 'heartz' as a way to have a non matching MQ to help terminate the join\n // https://git.io/vznFH\n const query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\n return mq(query);\n}\n","import { FormGroup } from '@angular/forms';\n\nexport function markFormGroupTouched(formGroup: FormGroup) {\n (Object as any).values(formGroup.controls).forEach(control => {\n control.markAsTouched();\n control.markAsDirty();\n\n if (control instanceof FormGroup) {\n markFormGroupTouched(control);\n } else if (control.controls) {\n control.controls.forEach(c => {\n if (c instanceof FormGroup) {\n markFormGroupTouched(c);\n } else {\n c.markAsTouched();\n c.markAsDirty();\n }\n });\n }\n });\n}\n"]}
|