/**** (c) Valve Corporation. Use is governed by the terms of the Steam Subscriber Agreement http://store.steampowered.com/subscriber_agreement/.
 ****/
(self.webpackChunkstore = self.webpackChunkstore || []).push([
  [4097],
  {
    17009: (e) => {
      e.exports = {
        "duration-app-launch": "800ms",
        AppPartnerEventsPage: "_3CJsgSK-y815Zeoe6bz6dh",
        AppPartnerEventsBanner: "_1HRiMtg_SGUiOa-NXDzZl7",
        AppBannerLinks: "D1bMmHTycpEqG4Sp3VVvH",
        ControlSection: "_2pA5CW91XQQDfo6yZEdPd-",
        NoGameLink: "_2GfPecEDgnR6mwX3ysETT_",
        AppPartnerEventsBody: "_1XLRr8eh1ip-E17C8Jzrmc",
        AppBannerGroup: "qexk-JocS7jjDM31IcGZn",
        NoEvents: "_2xyx9hjeMa2Faf2k3WjG3C",
        AppBannerCtn: "wavRtSPqcvhar0kUHlKoJ",
        AppBannerBackground: "_3RHFoIvdUHn0fp8G8M258k",
        ClanBanner: "_161DWg8AuVjniVd_UE888G",
        TallBanner: "KBixgrFRi1J3OB43f1p8X",
        WideBanner: "_1hl09rgUVOJUMhgC33L7eo",
        AppBannerTitle: "_1iqjH40fN4Diar-d-rLbR5",
        NewsHubSubTitle: "_3tf3bdmBO0Ji0rv8PH-ZXz",
        AppBannerLogoCtn: "_2EV_WNLGjRLNX824mfis9O",
        AppBannerLogo: "dGGTg8iH8Z_d_p6nPFFlM",
        HeaderButtonDark: "_1sDn2dLVB1pIeh5UP4EOVT",
        HeaderFollowButton: "_1tnk5F-ooFjGdvCzXLwtmf",
        HeaderWishlistButton: "_371yXVkVSnacHxz1fMmGpT",
        AppBannerLink: "_3YomsTzhdiLRcSZkF8JtB8",
        AppBannerRSSLink: "_1HeKH4JMsCDXmXP3XD7C6t",
        AppBannerLinkDD: "_1afFDl3n1RB22K4gFglar",
        AppBannerLinkDDButton: "S9cqDrgEIhtUE6pU3-2iQ",
        DDButtonArrow: "_3URBCM-OKlL3sg0hORPS01",
        AppBannerLinkDDContainer: "_2cjCliV2mnVX6dlRRce-fD",
        WishlistBtnShort: "_3WcW8PJCSEWwVA6qJ-RUOF",
        RssRow: "_2pyH3D6qw0sOXhrtoYqCVL",
        AppPartnerEventsContainer: "_3GCEyyVil-cCS-8hoI2Zo1",
        PartnerEvent: "_1KsYSVzmvIfRivBTcx-_GE",
        LibraryViewSubtitle: "_1rbgKYHeRvzrIyqHCzaLIr",
        EventDetailsBody: "_3NW5vEM9HgfQrgR4W-Xy_s",
        NoScrollArrows: "_39hJ8cxSdqeE3ZR01bJLab",
        ControlSectionWidth: "_3yfs7fc5WEv6F9tPG4yq4g",
        ControlSectionRightSide: "_2tSyrRxMCRWK6K09JErgI_",
        GameArt: "_2a5oSdTIcFV3c3ymUNsu6l",
        ScrollButton: "_1t_97P9KMsEBaPq9y-6OUl",
        Up: "_3vBD2B7lrr6iXm8dGe71lI",
        Down: "_3VePRhMGWFsbGaZjSNXJjV",
        CloseButton: "_1_vCR1dPfyJ7_yukwDqblf",
        AnimIn: "_240i58XQ0w78YFrd_p-9UY",
        transitionIn: "_2jG5NuuER4JaHKuO9nA4KF",
        ClickableBG: "_308EDBzQTS8OgAxwxfq2UB",
        DirectionState: "Bv96jkkYqxrnA7xfPskjD",
        EventTypeAndTimeRow: "_3bWTO29arCCJ6PBGRZ7fRy",
        WithReminder: "_1C5DvpeSKLvf8M8uAdi50W",
        TimeandPostedBy: "_2WwG2r8yZuu2EMJgFTQZp8",
        EventType: "Udzrpqr8534T5DvVZveNP",
        PostedBy: "_2VqeQaZVaUkkEWaiLkmqmT",
        ReminderContainer: "_3Vf2MkZ_LWIoNVv36RwJtO",
        ReadMoreCnt: "_1YmaiDiNhC33cL5DKj05KQ",
      };
    },
    14256: (e) => {
      e.exports = {
        Container: "mKmrOjr9bGjKAolgp9NoD",
        VoteContainer: "_3Kelh1-_v6xHfRjF68n7NB",
        DiscussContainer: "_16xC0mtOWoLbvSQbmo_ycv",
        ShareContainer: "_3ctGqQID5-8adtd7HlZ3YM",
        InnerContainer: "_9x4Z7eMgdwfAVMr16ZaJ0",
        DiscussionButton: "rHz7G5xZ3qXUYUcBW2bzX",
        DiscussIcon: "_1HBhpUbVmEXbTls8Dx-z98",
        linkField: "_3VmknRBpalymNnqAtRNJNX",
        ShareButtonContainer: "sKjWNkv_y_-TthHlUOo0R",
        LinkInputLabel: "_3ueQruKYDysu1Q9rNA62lb",
        LinkButton: "NrgD8TK-KmZ5WoWxGcOaD",
        ShareSteamBtn: "_1G3P8wlZ4seS-hs8-P9cwE",
        ClipboardText: "ytQqTkd5AxOMJlwopd6G-",
        LinkInput: "hgGF9tJhSgdN6iw-BPD5X",
        ShareIcon: "_3qVz2p-X14nAGX6EWNC87I",
        ClipboardIcon: "_3XZsWYaYpPd4DZvwdZqRLw",
        SteamIcon: "_3PXcvKt0U1PJ2DAM8I5lLx",
        share_controls_ctn: "_3F-Ryi3XDXB3d2vL---jof",
        ShareLanguagePicker: "ydWt5IK9ePS8udoXm9X8D",
        LanguageLabel: "_1AaiWRsZdYHvteubgV4AHk",
        ShareBtn: "_22m-GVWK4oToZYpcPXpkNk",
        VoteCount: "_3csl-MPe-hKuT8hQpOqEG5",
        DiscussionCount: "QQy4BCjcpjCfAvTKAqBq3",
        DiscussionButtonText: "_3P2XeK0HGdzGWS3fRQ4_vX",
        VoteDownIcon: "_3ZqxxB_poSsEYBW1s4t1OY",
        VoteDownSelectedIcon: "_1PTQ2mq0eTaG8ifW8juu81",
        VoteUpIcon: "_2akzufsslA5YAnC95zYx0K",
        VoteUpSelectedIcon: "_34YgMAbrVXVMMfXvsZAU9_",
        VoteUpStaticIcon: "Sf3urgalDvD2sZqNjEV9i",
        VoteButtonSelected: "_2OXBSB7B1AuT3O2sUF46T9",
      };
    },
    12247: (e) => {
      e.exports = {
        SteamAwardContainer: "_3n6v2rFCMX3yWMfZrlCn6g",
        InLibraryView: "pqLczqVU9TDbWz5pl3Dhl",
        SVGIcon_DialogCheck: "_3ccByQfkFeqPu_u0ZEuu2b",
        SteamAwardHeader: "_2jgrTr2L4JVpD3vsEejL4u",
        SteamAwardHeaderImage: "_lRFQTx2beRUJL_3ltFfr",
        SteamAwardMainCtn: "_1uGju6QeFG7khpqA7DOs0-",
        SteamAwardMainTitle: "_161Ybvvo7TQ80J6yOfcxC5",
        SteamAwardSubTitle: "Sxxelbb28sRAaDXPxgcHP",
        SteamAwardLearnMore: "VQlY6MEAqF6Wsflo-Q4Wz",
        BottomRight: "zr64QF0O74AQ9RMG-dGnw",
        SteamAwardHeaderText: "_2mrzKOE-ejrZezNROw3GcQ",
        LinkText: "_2x4pgJBF4vbwBJ4KH2VOHG",
        SteamAwardVoteWidget: "khWz0kU5EooSG60KYdU1K",
        SteamAwardVotePrompt: "H5jrPn7OY-0ToSesPTrI6",
        SteamAwardCategoryTitle: "JVE9ORqYtUCERl3y2i7_X",
        VotingTitle: "_32ZmvScTqfRjiW9XXgyqR2",
        SteamAwardCategoryDesc: "_1V-8WYatw7PvjVj9hsAptM",
        SteamAwardVoteButtonArea: "_1v9LHwNb9fLu4yXs5L0jjz",
        SteamAwardVoteButton: "cTcgISesI0T2M-9yed2AU",
        SteamAwardVoteButtonText: "_247y340DSkN1t7QC8tUkFx",
        SteamAwardVoteButtonSubmitted: "_1ouD4mct3_CdBoy_lzVyFJ",
        NominateCtn: "_1SKPLx2FBvP9iC-lJHTkKQ",
        SteamAwardNominateButton: "_1uxCjZZ940xsM0idye1IP-",
        Nominated: "_1No9r92B3LLgMOaSMSC9vE",
        SteamAwardNominationWidget: "_38gTf-DsRc7bVnxxQXxT3B",
        SteamAwardLinkToNominationPage: "_3p83sGhSP-hikRKwITXId-",
        SteamAwardVoteCheckBox: "_1G4MUqubjzDize874UIeYh",
        SteamAwardModalGameTitle: "_15lc0ft7pgAlFXYbgePb-8",
        ExpiredEventHeader: "_3O3XsKT-SiMNsMqyidMLvS",
        AwardCategoriesCtn: "_2u4z7OT5MqNj-6wojCGnsr",
        SteamAwardConflictModal: "_2Xqc9FL9PfCQl8Fo8d7I_L",
        ConflictBody: "_3WKl_XpHUMGcIm4cNhlc_W",
        NominationSwitchCtn: "r9nDOvHWyABfkiiurnMwl",
      };
    },
    90316: (e) => {
      e.exports = {
        "duration-app-launch": "800ms",
        EventDetailsPageContainer: "_2Ptras-ZC31rwdT6pD-t0a",
        EventBackgroundBlurCtn: "_32nPM5nI8cmMdkvRnsUcq",
        EventBackgroundBlur: "stsss-bTNuazY8FYtvTOX",
        DetailArtworkAgeAppropriate: "_1p_lsRZvAYiGSonqGbCnrp",
        DetailArtworkAgeNotAppropriate: "_3x5pK4kfX6SQEKh9iSj3H-",
        EventCoverImageBlr: "_3xNobHnL6L5HNoDQf8AHUo",
        EventBodyCtn: "_3o4SVY-lALGHvkOPxiClcu",
        EventBodyPosition: "_3lIxPlLiNjLik6YIM8DKpk",
        EventBody: "_3aht--c1L66YvvpY-Il67f",
        EventBroadcastCtn: "_1Ph1iFKAgY5MbG0BLSObbI",
        EventColumns: "_1PEIfuF8koQapWSDE4ixM8",
        EventCoverImageCtn: "FZiaqIAvLKRo2ye9j3cq0",
        NoTitleArtwork: "_3Y40JAThJ65ZCkZaMsdrGm",
        ScreenshotInsteadOfCover: "_2r6un4LwM4IZjQFRprhIL3",
        EventCoverImage: "_17G2yhjdc_ZmGlMv-L-S05",
        EventCoverImageBackground: "_2-IygC3-t05_RYwPl6Fkgt",
        InLibraryView: "_3_SEiDNs-lzwV7cTF6gcgt",
        InEditor: "_2YuATTfMo6qZqsst8azM2p",
        EventCoverImageFuzz: "_2EWL0Txuk_th1gh-UxYPPx",
        LibraryEventTitleContainer: "ZHAfj0MPg1zDLXRnCzSsx",
        CoverImageGradient: "_1_x4oDqLbWfiaDp5HQ2yA8",
        EventDetailTitleImg: "_1RA5eG1kXW89QB1SG3mq04",
        EventDetailTitleDesc: "_3Ej2uoApLQ756OReRtcQ2f",
        EventDetailsSticky: "_3IxVZE9uydjh3cA9kmtnk7",
        EventDetailUserType: "_3phfIcOe_STA7hSoFfIxlE",
        EventDetailGameCallToAction: "JOkXFrkqayZ-Pg2Fr46Ho",
        EventDetailTimeInfo: "_2KsEbGy9kiSDeQpcqEc9DG",
        EventDetailsDescription: "_2orfVuUro8BNFNNhRfGk4n",
        EventDetailsBody: "A_A2B6fTn_MPLlGCmsLtd",
        EventDetailsGame: "_1JqXpZvEA66lA79AoE1A4i",
        EventDetailsAvatar: "_2U_20VMsLlLdv66vI22zJg",
        GameActions: "bGROTLQdP5BDMIzo0cL9T",
        ActionButton: "_26-KZHJ9fTyRZHH2c2H6Y2",
        Ownership: "_2VkXpaIdUFw9YfZ7NOSuZO",
        EventDetailsType: "_2u9c-A3-fBObro9MTIQ1os",
        EventDetailTitle: "TqEPC9bhvVpZ1rb3Z8Mbd",
        EventDetailTitleContainer: "_3z2NYCkFizMu4fMvWTIBUG",
        EventDetailsSubTitle: "_20f2sKS2M7PlPSnPCinT26",
        EventDescriptionArea: "_3UMJE2bBtqZcj2w_S-n8o4",
        EventDescriptionRichField: "_1dV0eemBulIeNuwlrxbJA_",
        ToolBar: "zMpwi4v_VKAJy80GriVLg",
        LibraryEventBodyContainer: "_32mHvRSmD7AVK9OIOPlaFu",
        "lang_zh-cn": "_2oAxPvOHyVkOcOFbH-ROOn",
        lang_ko: "_36n2d0WrYP7qNfJaBDPBzE",
        lang_ja: "-TO1bNNGYVahD_n4sJP5r",
        "lang_zh-tw": "_3lwKp3Y9WtjxoKIhneSXGJ",
        AppSocialLinksCtn: "_2VjaiYX12Ock6pxXWbI5Nw",
        AppSocialLinks: "_19gZ072i_CWfdHE2Fgliuw",
        AppSocialLinkIcon: "_3rC0G--40zEN3SsHi7QLt0",
        AppSocialLinkWithText: "qGf3RTqBFpZQof8ldGRln",
        AppSocialText: "_2H7gH2Loz3mnTS1oeeP3Ut",
        StartDate: "_1Maw_Rw6sOKYC1KkOI1xM",
        EndDate: "vjGzCo2ZaJr6KcbuTta8L",
        MultiDateAndTime: "hrpa5B__OlJvPDvHQM_d-",
        RightSideTitles: "efy3k8RozzxfFidgbdfZZ",
        DisplayAdminPanel_Title: "_1lmj3YadvgLSNGiTrVsnnT",
        DateAndTime: "_3Sy57gZmUNuNdOI8qtPQVs",
        NoDateAndTime: "_3lh2YoTQ3RiHxrfuO3CVjL",
        AppSummaryCtn: "Wk21cv1qcYBOF2PSAOfb-",
        AppSummaryWidgetTitleCtn: "jJFfoBi2WDn1ym8KCLfLr",
        Title: "_2gsoDhNzhAXpECJk2aM94W",
        AppSummaryWidgetCtn: "_2jRJR7Vuvy9GStGxMc06AQ",
        DisplayAdminPanel: "XshNh8OHVlOoxz_Yj0fkc",
        Locked: "_1uXh_NDjzcbWYSUJnopy8Z",
        DisplayAdminPanel_ctn: "_1SQm1cGP42xfEdQhin6L40",
        DisplayAdminPanel_Spacer: "_6pX37H30C0s-x4mIFjxUX",
        AdminButton: "_1J0n9Gp8bS7Mha2SNQSwXP",
        EditorStatsCtn: "e2BAgiTc6P_7haFD_YWzs",
        VisibilityNote: "_1G3X_jfMgGX1nzeOAvPZNG",
        EditorStatsRow: "_2SecokIlleKz0K30ieApg5",
        SteamBlog: "_1rafn02Kz4HF1-3xfmuaR0",
        LunarNewYearHeader: "_1g4Yfobmkb5CVI2gzly8Bg",
        EnvelopeArea: "_39E2FZTJMQvhj8ofBhy8AR",
        TokenBalanceContainer: "_2tXIgZxKpkTb7xTUZ72Z9I",
        TokenBalance: "_3WhoViO5mx4twzeo0r0dFQ",
        EnvelopeContainer: "_1g0zsoC3W3W35C4mLJix2C",
        BackingRect: "_2V4xVhoSgN6ULgdqpHEpJ9",
        Envelope: "_2WNMeB-9H8LtPhtFfVmTj",
        GiftLabel: "d2D-Iy1puDsQ_MAyI2LCq",
        OpenState: "_3OVk1SNdESa9y13m8RkmGI",
        Opened: "_28wlXXBWOcvlhNyC800pqB",
        Unlocked: "_26x3oY6SpyqkUlv0Z85k2f",
        NeedLogin: "_2F_XalPrF1aJwmTjLxnhQT",
        BottomMessage: "_3M82Ie_ylqj38H82JslePb",
        VO: "_1-pFh2QlJBUeqmXrWcbTQQ",
        LunarNewYearOpenEnvelopeVideoDialog: "_1-SzihnWiO-8bBYWJ-TS-4",
        Container: "_1dcfd1Jxk-yCCdG0k1eyG-",
        Column: "_3o_dPHiTf_pT5uP0TuTE2V",
        VideoBox: "KAf3yvFJr1ynRXT8aqd3s",
        CoinText: "_14dU2UGt1PmbFzm_3MFVsw",
        Visible: "_2bKyVv-GvmJOHaKOyny5tE",
        LunarNewYearOpenEnvelopeVideo: "_2JgvPxvGXJvSckj2hqob0v",
        StoryHeader: "uJBQiPn1x-EafTRgDg6M4",
        StorySubHeader: "hl9GlxJvvzMyW_nSZzClV",
        StoryText: "_1vUbVy_chcUkci3kdPrSUf",
        StoryPicture: "_1ovBW-Uq5McD_BCBZTM_9a",
        CheckBackText: "_3FFfw7Avb_USRJcepkNLAO",
        DancingRat: "_3gJiVpOab5ooTJ9VkQZVJL",
        Links: "_2U9E5YNMewy5F336yikcMG",
        MarketLink: "_19WRlHb-r_EpFcgEtFL8iV",
        MarketLinkhover: "Q7KDk8kBk01MxhM_KZoqt",
        ReadMoreCnt: "_1L8MouFdSBwf8mcqLtAIPu",
        VerticalLocalDateAndTime: "_1mp7jCbQZOXCcY5CmAu7xm",
      };
    },
    66661: (e) => {
      e.exports = { ReferencedApps: "_1bfuawEqNMIto67VTkwdbE" };
    },
    15392: (e) => {
      e.exports = {
        Link: "-HlDBB290kjpl61uUmRed",
        Banner: "_2bT8irkKNnA5sxFG3MUXzH",
        Big: "sGy-bB7uqEt4Hoe7U5iA1",
        Mobile: "mhii5hgMCQvO2tXOUdWPQ",
      };
    },
    36148: (e, t, n) => {
      "use strict";
      n.d(t, {
        RE: () => Z,
        AD: () => J,
        YW: () => H,
        Fq: () => Q,
        _C: () => oe,
        Mn: () => me,
        PV: () => de,
        ed: () => te,
        jT: () => ne,
        np: () => se,
        Jo: () => K,
        cO: () => X,
        Vz: () => $,
        a8: () => ce,
        $d: () => re,
        ZB: () => le,
        CF: () => ue,
        lE: () => ae,
      });
      var r = n(2160),
        a = n(56545),
        i = n(37735),
        s = n(80613),
        o = n(89068);
      const l = s.Message;
      class c extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            c.prototype.voteid || o.Sg(c.M()),
            l.initialize(this, e, 0, -1, [5, 7], null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            c.sm_m ||
              (c.sm_m = {
                proto: c,
                fields: {
                  voteid: { n: 1, br: o.qM.readInt32, bw: o.gp.writeInt32 },
                  active: { n: 2, br: o.qM.readBool, bw: o.gp.writeBool },
                  start_time: {
                    n: 3,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                  end_time: { n: 4, br: o.qM.readUint32, bw: o.gp.writeUint32 },
                  app_discounts: { n: 5, c: m, r: !0, q: !0 },
                  grouped_vote_options: {
                    n: 6,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                  groups: { n: 7, c: d, r: !0, q: !0 },
                  internal_name: {
                    n: 8,
                    br: o.qM.readString,
                    bw: o.gp.writeString,
                  },
                  localization: { n: 9, c: u },
                  reveal_time: {
                    n: 10,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                  release_date_min: {
                    n: 11,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                  winner_appid: {
                    n: 12,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                  flag: { n: 13, br: o.qM.readEnum, bw: o.gp.writeEnum },
                  release_date_max: {
                    n: 14,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                  item_type: {
                    n: 15,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                },
              }),
            c.sm_m
          );
        }
        static MBF() {
          return c.sm_mbf || (c.sm_mbf = o.w0(c.M())), c.sm_mbf;
        }
        toObject(e = !1) {
          return c.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(c.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(c.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new c();
          return c.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(c.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return c.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(c.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return c.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CStore_VoteDefinition";
        }
      }
      class m extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            m.prototype.appid || o.Sg(m.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            m.sm_m ||
              (m.sm_m = {
                proto: m,
                fields: {
                  appid: { n: 1, br: o.qM.readUint32, bw: o.gp.writeUint32 },
                  discount: { n: 2, br: o.qM.readUint32, bw: o.gp.writeUint32 },
                },
              }),
            m.sm_m
          );
        }
        static MBF() {
          return m.sm_mbf || (m.sm_mbf = o.w0(m.M())), m.sm_mbf;
        }
        toObject(e = !1) {
          return m.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(m.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(m.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new m();
          return m.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(m.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return m.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(m.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return m.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CStore_VoteDefinition_AppDefinition";
        }
      }
      class d extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            d.prototype.groupid || o.Sg(d.M()),
            l.initialize(this, e, 0, -1, [3], null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            d.sm_m ||
              (d.sm_m = {
                proto: d,
                fields: {
                  groupid: { n: 1, br: o.qM.readUint32, bw: o.gp.writeUint32 },
                  group_name: {
                    n: 2,
                    br: o.qM.readString,
                    bw: o.gp.writeString,
                  },
                  app_discounts: { n: 3, c: m, r: !0, q: !0 },
                },
              }),
            d.sm_m
          );
        }
        static MBF() {
          return d.sm_mbf || (d.sm_mbf = o.w0(d.M())), d.sm_mbf;
        }
        toObject(e = !1) {
          return d.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(d.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(d.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new d();
          return d.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(d.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return d.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(d.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return d.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CStore_VoteDefinition_GroupDefinition";
        }
      }
      class u extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            u.prototype.title || o.Sg(u.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            u.sm_m ||
              (u.sm_m = {
                proto: u,
                fields: {
                  title: { n: 1, br: o.qM.readString, bw: o.gp.writeString },
                  title_linebreak: {
                    n: 2,
                    br: o.qM.readString,
                    bw: o.gp.writeString,
                  },
                  title_award: {
                    n: 3,
                    br: o.qM.readString,
                    bw: o.gp.writeString,
                  },
                  award_description: {
                    n: 4,
                    br: o.qM.readString,
                    bw: o.gp.writeString,
                  },
                },
              }),
            u.sm_m
          );
        }
        static MBF() {
          return u.sm_mbf || (u.sm_mbf = o.w0(u.M())), u.sm_mbf;
        }
        toObject(e = !1) {
          return u.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(u.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(u.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new u();
          return u.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(u.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return u.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(u.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return u.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CStore_VoteDefinition_Localization";
        }
      }
      class p extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            p.prototype.language || o.Sg(p.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            p.sm_m ||
              (p.sm_m = {
                proto: p,
                fields: {
                  language: { n: 1, br: o.qM.readString, bw: o.gp.writeString },
                  sale_appid: {
                    n: 2,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                },
              }),
            p.sm_m
          );
        }
        static MBF() {
          return p.sm_mbf || (p.sm_mbf = o.w0(p.M())), p.sm_mbf;
        }
        toObject(e = !1) {
          return p.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(p.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(p.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new p();
          return p.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(p.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return p.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(p.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return p.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CStore_GetVoteDefinitions_Request";
        }
      }
      class g extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            g.prototype.votes || o.Sg(g.M()),
            l.initialize(this, e, 0, -1, [1, 2], null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            g.sm_m ||
              (g.sm_m = {
                proto: g,
                fields: {
                  votes: { n: 1, c, r: !0, q: !0 },
                  labor_of_love_winners: {
                    n: 2,
                    r: !0,
                    q: !0,
                    br: o.qM.readUint32,
                    pbr: o.qM.readPackedUint32,
                    bw: o.gp.writeRepeatedUint32,
                  },
                },
              }),
            g.sm_m
          );
        }
        static MBF() {
          return g.sm_mbf || (g.sm_mbf = o.w0(g.M())), g.sm_mbf;
        }
        toObject(e = !1) {
          return g.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(g.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(g.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new g();
          return g.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(g.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return g.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(g.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return g.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CStore_GetVoteDefinitions_Response";
        }
      }
      class _ extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            _.prototype.voteid || o.Sg(_.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            _.sm_m ||
              (_.sm_m = {
                proto: _,
                fields: {
                  voteid: { n: 1, br: o.qM.readUint32, bw: o.gp.writeUint32 },
                  appid: { n: 2, br: o.qM.readUint32, bw: o.gp.writeUint32 },
                  communityitemid: {
                    n: 3,
                    br: o.qM.readUint64String,
                    bw: o.gp.writeUint64String,
                  },
                },
              }),
            _.sm_m
          );
        }
        static MBF() {
          return _.sm_mbf || (_.sm_mbf = o.w0(_.M())), _.sm_mbf;
        }
        toObject(e = !1) {
          return _.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(_.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(_.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new _();
          return _.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(_.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return _.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(_.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return _.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "SteamAwardsUserVote";
        }
      }
      class S extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            S.prototype.sale_appid || o.Sg(S.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            S.sm_m ||
              (S.sm_m = {
                proto: S,
                fields: {
                  sale_appid: {
                    n: 1,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                },
              }),
            S.sm_m
          );
        }
        static MBF() {
          return S.sm_mbf || (S.sm_mbf = o.w0(S.M())), S.sm_mbf;
        }
        toObject(e = !1) {
          return S.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(S.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(S.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new S();
          return S.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(S.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return S.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(S.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return S.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CStore_GetUserVotes_Request";
        }
      }
      class E extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            E.prototype.user_votes || o.Sg(E.M()),
            l.initialize(this, e, 0, -1, [1], null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            E.sm_m ||
              (E.sm_m = {
                proto: E,
                fields: { user_votes: { n: 1, c: _, r: !0, q: !0 } },
              }),
            E.sm_m
          );
        }
        static MBF() {
          return E.sm_mbf || (E.sm_mbf = o.w0(E.M())), E.sm_mbf;
        }
        toObject(e = !1) {
          return E.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(E.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(E.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new E();
          return E.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(E.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return E.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(E.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return E.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CStore_GetUserVotes_Response";
        }
      }
      class w extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            w.prototype.voteid || o.Sg(w.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            w.sm_m ||
              (w.sm_m = {
                proto: w,
                fields: {
                  voteid: { n: 1, br: o.qM.readInt32, bw: o.gp.writeInt32 },
                  appid: { n: 2, br: o.qM.readUint32, bw: o.gp.writeUint32 },
                  sale_appid: {
                    n: 3,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                },
              }),
            w.sm_m
          );
        }
        static MBF() {
          return w.sm_mbf || (w.sm_mbf = o.w0(w.M())), w.sm_mbf;
        }
        toObject(e = !1) {
          return w.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(w.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(w.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new w();
          return w.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(w.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return w.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(w.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return w.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CStore_SetVote_Request";
        }
      }
      class y extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            y.prototype.user_votes || o.Sg(y.M()),
            l.initialize(this, e, 0, -1, [1], null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            y.sm_m ||
              (y.sm_m = {
                proto: y,
                fields: { user_votes: { n: 1, c: _, r: !0, q: !0 } },
              }),
            y.sm_m
          );
        }
        static MBF() {
          return y.sm_mbf || (y.sm_mbf = o.w0(y.M())), y.sm_mbf;
        }
        toObject(e = !1) {
          return y.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(y.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(y.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new y();
          return y.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(y.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return y.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(y.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return y.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CStore_SetVote_Response";
        }
      }
      class h extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            h.prototype.category_id || o.Sg(h.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            h.sm_m ||
              (h.sm_m = {
                proto: h,
                fields: {
                  category_id: {
                    n: 1,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                  appid: { n: 2, br: o.qM.readUint32, bw: o.gp.writeUint32 },
                  last_updated: {
                    n: 3,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                },
              }),
            h.sm_m
          );
        }
        static MBF() {
          return h.sm_mbf || (h.sm_mbf = o.w0(h.M())), h.sm_mbf;
        }
        toObject(e = !1) {
          return h.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(h.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(h.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new h();
          return h.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(h.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return h.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(h.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return h.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CSteamAwardsNomination";
        }
      }
      class B extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(), l.initialize(this, e, 0, -1, void 0, null);
        }
        toObject(e = !1) {
          return B.toObject(e, this);
        }
        static toObject(e, t) {
          return e ? { $jspbMessageInstance: t } : {};
        }
        static fromObject(e) {
          return new B();
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new B();
          return B.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return e;
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return B.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {}
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return B.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CSteamAwards_GetUserNominations_Request";
        }
      }
      class M extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            M.prototype.nominations || o.Sg(M.M()),
            l.initialize(this, e, 0, -1, [1], null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            M.sm_m ||
              (M.sm_m = {
                proto: M,
                fields: { nominations: { n: 1, c: h, r: !0, q: !0 } },
              }),
            M.sm_m
          );
        }
        static MBF() {
          return M.sm_mbf || (M.sm_mbf = o.w0(M.M())), M.sm_mbf;
        }
        toObject(e = !1) {
          return M.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(M.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(M.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new M();
          return M.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(M.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return M.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(M.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return M.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CSteamAwards_GetUserNominations_Response";
        }
      }
      class A extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            A.prototype.steamid || o.Sg(A.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            A.sm_m ||
              (A.sm_m = {
                proto: A,
                fields: {
                  steamid: {
                    n: 1,
                    br: o.qM.readFixed64String,
                    bw: o.gp.writeFixed64String,
                  },
                  code: {
                    n: 2,
                    br: o.qM.readFixed64String,
                    bw: o.gp.writeFixed64String,
                  },
                },
              }),
            A.sm_m
          );
        }
        static MBF() {
          return A.sm_mbf || (A.sm_mbf = o.w0(A.M())), A.sm_mbf;
        }
        toObject(e = !1) {
          return A.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(A.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(A.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new A();
          return A.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(A.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return A.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(A.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return A.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CSteamAwards_GetOtherUserNominations_Request";
        }
      }
      class v extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            v.prototype.category_id || o.Sg(v.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            v.sm_m ||
              (v.sm_m = {
                proto: v,
                fields: {
                  category_id: {
                    n: 1,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                  nominated_id: {
                    n: 2,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                  source: { n: 3, br: o.qM.readEnum, bw: o.gp.writeEnum },
                },
              }),
            v.sm_m
          );
        }
        static MBF() {
          return v.sm_mbf || (v.sm_mbf = o.w0(v.M())), v.sm_mbf;
        }
        toObject(e = !1) {
          return v.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(v.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(v.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new v();
          return v.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(v.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return v.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(v.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return v.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CSteamAwards_Nominate_Request";
        }
      }
      class T extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            T.prototype.nominations || o.Sg(T.M()),
            l.initialize(this, e, 0, -1, [1], null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            T.sm_m ||
              (T.sm_m = {
                proto: T,
                fields: { nominations: { n: 1, c: h, r: !0, q: !0 } },
              }),
            T.sm_m
          );
        }
        static MBF() {
          return T.sm_mbf || (T.sm_mbf = o.w0(T.M())), T.sm_mbf;
        }
        toObject(e = !1) {
          return T.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(T.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(T.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new T();
          return T.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(T.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return T.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(T.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return T.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CSteamAwards_Nominate_Response";
        }
      }
      class D extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            D.prototype.category_id || o.Sg(D.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            D.sm_m ||
              (D.sm_m = {
                proto: D,
                fields: {
                  category_id: {
                    n: 1,
                    br: o.qM.readUint32,
                    bw: o.gp.writeUint32,
                  },
                },
              }),
            D.sm_m
          );
        }
        static MBF() {
          return D.sm_mbf || (D.sm_mbf = o.w0(D.M())), D.sm_mbf;
        }
        toObject(e = !1) {
          return D.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(D.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(D.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new D();
          return D.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(D.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return D.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(D.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return D.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CSteamAwards_GetNominationRecommendations_Request";
        }
      }
      class C extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            C.prototype.played_app || o.Sg(C.M()),
            l.initialize(this, e, 0, -1, [1, 2, 3], null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            C.sm_m ||
              (C.sm_m = {
                proto: C,
                fields: {
                  played_app: { n: 1, c: N, r: !0, q: !0 },
                  suggested_events: { n: 2, c: f, r: !0, q: !0 },
                  suggested_apps: { n: 3, c: I, r: !0, q: !0 },
                  debug_query: {
                    n: 4,
                    br: o.qM.readString,
                    bw: o.gp.writeString,
                  },
                },
              }),
            C.sm_m
          );
        }
        static MBF() {
          return C.sm_mbf || (C.sm_mbf = o.w0(C.M())), C.sm_mbf;
        }
        toObject(e = !1) {
          return C.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(C.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(C.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new C();
          return C.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(C.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return C.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(C.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return C.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CSteamAwards_GetNominationRecommendations_Response";
        }
      }
      class N extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            N.prototype.appid || o.Sg(N.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            N.sm_m ||
              (N.sm_m = {
                proto: N,
                fields: {
                  appid: { n: 1, br: o.qM.readUint32, bw: o.gp.writeUint32 },
                  playtime: { n: 2, br: o.qM.readInt32, bw: o.gp.writeInt32 },
                },
              }),
            N.sm_m
          );
        }
        static MBF() {
          return N.sm_mbf || (N.sm_mbf = o.w0(N.M())), N.sm_mbf;
        }
        toObject(e = !1) {
          return N.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(N.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(N.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new N();
          return N.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(N.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return N.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(N.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return N.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CSteamAwards_GetNominationRecommendations_Response_PlayedApps";
        }
      }
      class f extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            f.prototype.clanid || o.Sg(f.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            f.sm_m ||
              (f.sm_m = {
                proto: f,
                fields: {
                  clanid: { n: 1, br: o.qM.readUint32, bw: o.gp.writeUint32 },
                  event_gid: {
                    n: 2,
                    br: o.qM.readUint64String,
                    bw: o.gp.writeUint64String,
                  },
                  appid: { n: 3, br: o.qM.readUint32, bw: o.gp.writeUint32 },
                },
              }),
            f.sm_m
          );
        }
        static MBF() {
          return f.sm_mbf || (f.sm_mbf = o.w0(f.M())), f.sm_mbf;
        }
        toObject(e = !1) {
          return f.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(f.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(f.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new f();
          return f.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(f.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return f.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(f.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return f.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CSteamAwards_GetNominationRecommendations_Response_SuggestedEvent";
        }
      }
      class I extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            I.prototype.appid || o.Sg(I.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            I.sm_m ||
              (I.sm_m = {
                proto: I,
                fields: {
                  appid: { n: 1, br: o.qM.readUint32, bw: o.gp.writeUint32 },
                },
              }),
            I.sm_m
          );
        }
        static MBF() {
          return I.sm_mbf || (I.sm_mbf = o.w0(I.M())), I.sm_mbf;
        }
        toObject(e = !1) {
          return I.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(I.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(I.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new I();
          return I.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(I.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return I.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(I.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return I.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CSteamAwards_GetNominationRecommendations_Response_SuggestedApp";
        }
      }
      class b extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            b.prototype.generate_new || o.Sg(b.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            b.sm_m ||
              (b.sm_m = {
                proto: b,
                fields: {
                  generate_new: { n: 1, br: o.qM.readBool, bw: o.gp.writeBool },
                },
              }),
            b.sm_m
          );
        }
        static MBF() {
          return b.sm_mbf || (b.sm_mbf = o.w0(b.M())), b.sm_mbf;
        }
        toObject(e = !1) {
          return b.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(b.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(b.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new b();
          return b.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(b.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return b.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(b.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return b.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CSteamAwards_GetNominationShareLink_Request";
        }
      }
      class L extends l {
        static ImplementsStaticInterface() {}
        constructor(e = null) {
          super(),
            L.prototype.code || o.Sg(L.M()),
            l.initialize(this, e, 0, -1, void 0, null);
        }
        static sm_m;
        static sm_mbf;
        static M() {
          return (
            L.sm_m ||
              (L.sm_m = {
                proto: L,
                fields: {
                  code: {
                    n: 1,
                    br: o.qM.readFixed64String,
                    bw: o.gp.writeFixed64String,
                  },
                },
              }),
            L.sm_m
          );
        }
        static MBF() {
          return L.sm_mbf || (L.sm_mbf = o.w0(L.M())), L.sm_mbf;
        }
        toObject(e = !1) {
          return L.toObject(e, this);
        }
        static toObject(e, t) {
          return o.BT(L.M(), e, t);
        }
        static fromObject(e) {
          return o.Uq(L.M(), e);
        }
        static deserializeBinary(e) {
          let t = new s.BinaryReader(e),
            n = new L();
          return L.deserializeBinaryFromReader(n, t);
        }
        static deserializeBinaryFromReader(e, t) {
          return o.zj(L.MBF(), e, t);
        }
        serializeBinary() {
          var e = new s.BinaryWriter();
          return L.serializeBinaryToWriter(this, e), e.getResultBuffer();
        }
        static serializeBinaryToWriter(e, t) {
          o.i0(L.M(), e, t);
        }
        serializeBase64String() {
          var e = new s.BinaryWriter();
          return L.serializeBinaryToWriter(this, e), e.getResultBase64String();
        }
        getClassName() {
          return "CSteamAwards_GetNominationShareLink_Response";
        }
      }
      var z, R;
      !(function (e) {
        (e.GetVoteDefinitions = function (e, t) {
          return e.SendMsg(
            "StoreSales.GetVoteDefinitions#1",
            (0, a.I8)(p, t),
            g,
            { bConstMethod: !0, ePrivilege: 2, eWebAPIKeyRequirement: 1 },
          );
        }),
          (e.SetVote = function (e, t) {
            return e.SendMsg("StoreSales.SetVote#1", (0, a.I8)(w, t), y, {
              ePrivilege: 1,
            });
          }),
          (e.GetUserVotes = function (e, t) {
            return e.SendMsg("StoreSales.GetUserVotes#1", (0, a.I8)(S, t), E, {
              bConstMethod: !0,
              ePrivilege: 1,
            });
          });
      })(z || (z = {})),
        (function (e) {
          (e.GetUserNominations = function (e, t) {
            return e.SendMsg(
              "SteamAwards.GetUserNominations#1",
              (0, a.I8)(B, t),
              M,
              { bConstMethod: !0, ePrivilege: 1 },
            );
          }),
            (e.GetOtherUserNominations = function (e, t) {
              return e.SendMsg(
                "SteamAwards.GetOtherUserNominations#1",
                (0, a.I8)(A, t),
                M,
                { bConstMethod: !0, ePrivilege: 2 },
              );
            }),
            (e.Nominate = function (e, t) {
              return e.SendMsg("SteamAwards.Nominate#1", (0, a.I8)(v, t), T, {
                bConstMethod: !0,
                ePrivilege: 1,
              });
            }),
            (e.GetNominationRecommendations = function (e, t) {
              return e.SendMsg(
                "SteamAwards.GetNominationRecommendations#1",
                (0, a.I8)(D, t),
                C,
                { bConstMethod: !0, ePrivilege: 1 },
              );
            }),
            (e.GetNominationShareLink = function (e, t) {
              return e.SendMsg(
                "SteamAwards.GetNominationShareLink#1",
                (0, a.I8)(b, t),
                L,
                { ePrivilege: 1 },
              );
            });
        })(R || (R = {}));
      var O = n(20194),
        j = n(75233),
        k = n(51614),
        G = n(23809),
        U = n(30470),
        x = n(24484),
        F = n(30894),
        V = n(41735),
        W = n.n(V),
        P = n(90626),
        q = n(58222);
      const H = 3334340,
        Q = 2215130;
      let Y;
      function Z() {
        return (
          Y || (Y = (0, x.Fd)("steam_awards_config", "application_config")), Y
        );
      }
      const J = P.createContext(null);
      function K(e) {
        const t = (0, G.KV)();
        return (0, O.I)({
          queryKey: [`SteamAwardDefs_${e}`],
          queryFn: async () => {
            const n = a.w.Init(p);
            n.Body().set_sale_appid(e), n.Body().set_language(U.TS.LANGUAGE);
            return (await z.GetVoteDefinitions(t, n)).Body().toObject();
          },
          initialData: () => Z()?.definitions,
          enabled: e > 0,
        });
      }
      function X() {
        const e = (0, G.KV)();
        return (0, O.I)({
          queryKey: [`SteamAwardNominations_${U.iA.accountid}`],
          queryFn: async () => {
            const t = a.w.Init(B),
              n = await R.GetUserNominations(e, t);
            return n.Body().toObject()?.nominations;
          },
          initialData: () => Z()?.user_nominations?.nominations,
          enabled: U.iA.logged_in,
        });
      }
      function $(e) {
        const t = X();
        return t.isLoading
          ? { bLoadingNominationForCategory: !0 }
          : {
              currentNomination: t.data?.find((t) => t.category_id == e),
              bLoadingNominationForCategory: !1,
            };
      }
      function ee() {
        return [`SteamAwardBadgeProgress_${U.iA.accountid}`];
      }
      function te(e) {
        const t = (0, G.KV)();
        return (0, O.I)({
          queryKey: ee(),
          queryFn: async () => {
            const n = a.w.Init(i.jn);
            n.Body().set_badgeid(e), n.Body().set_steamid(U.iA.steamid);
            return (await i.xt.GetCommunityBadgeProgress(t, n))
              .Body()
              .toObject();
          },
          initialData: () => Z()?.badge_progress,
          enabled: U.iA.logged_in,
        });
      }
      function ne(e) {
        const t = (0, G.KV)();
        return (0, O.I)({
          queryKey: [`SteamAwardSuggestions_${e}`],
          queryFn: async () => {
            const n = a.w.Init(D);
            n.Body().set_category_id(e);
            return (await R.GetNominationRecommendations(t, n))
              .Body()
              .toObject();
          },
          staleTime: 1 / 0,
        });
      }
      function re(e, t, n, r) {
        const i = (0, G.KV)(),
          s = (0, j.jE)();
        return (0, k.n)({
          mutationFn: () =>
            (async function (e, t, n, r) {
              const i = a.w.Init(v);
              i.Body().set_category_id(n),
                i.Body().set_source(r),
                i.Body().set_nominated_id(t);
              const s = await R.Nominate(e, i);
              return (
                s.BSuccess() ||
                  console.warn(`Failed to nominate app: ${s.GetEResult()}`),
                [s.GetEResult(), s.Body().toObject()]
              );
            })(i, e, t, n),
          onSuccess: ([e, t]) => {
            1 == e
              ? (!(function (e, t) {
                  e.setQueryData(
                    [`SteamAwardNominations_${U.iA.accountid}`],
                    t,
                  );
                })(s, t.nominations),
                window.setTimeout(
                  () => s.invalidateQueries({ queryKey: ee() }),
                  1e3,
                ))
              : r && r(e);
          },
          onError: () => {
            r && r();
          },
        });
      }
      function ae(e, t, n) {
        return (0, O.I)({
          queryKey: [e, t.voteid, n],
          queryFn: () =>
            (async function (e, t, n) {
              let a = {
                cc: U.TS.COUNTRY,
                l: U.TS.LANGUAGE,
                realm: r.TU.k_ESteamRealmGlobal,
                origin: self.origin,
                f: "jsonfull",
                term: e.replace(" ", "+"),
                require_type: "game",
                is_released_somewhere: 1,
                excluded_tags: F.Fm.Get().GetExcludedTagsSortedByID(),
                excluded_content_descriptors:
                  F.Fm.Get().ExcludedContentDescriptor,
                excluded_apps: n,
              };
              t.release_date_max &&
                (a.release_date_max = new Date(
                  1e3 * t.release_date_max,
                ).toISOString()),
                t.release_date_min &&
                  (a.release_date_min = new Date(
                    1e3 * t.release_date_min,
                  ).toISOString()),
                1 == t.flag && (a.vrsupport = 1),
                2 == t.flag && (a.steam_deck_compat_categories = [0, 2, 3]);
              const i = `${U.TS.STORE_BASE_URL}search/suggest`;
              return (
                (await W().get(i, { params: a, withCredentials: !0 })).data ??
                []
              );
            })(e, t, n),
          staleTime: 1 / 0,
        });
      }
      async function ie(e, t) {
        const n = a.w.Init(b);
        n.Body().set_generate_new(t);
        const r = await R.GetNominationShareLink(e, n);
        return (
          r.BSuccess() ||
            console.warn(`Failed to GetNominationShareLink: ${r.GetEResult()}`),
          [r.GetEResult(), r.Body().toObject()]
        );
      }
      function se() {
        const e = (0, G.KV)();
        return (0, O.I)({
          queryKey: [`GetNominationShareLink_${U.iA.accountid}`],
          queryFn: async () => ie(e, !1),
          initialData: () => [1, Z()?.share_link],
          staleTime: 1 / 0,
          enabled: U.iA.logged_in,
        });
      }
      function oe() {
        const e = (0, G.KV)(),
          t = (0, j.jE)();
        return (0, k.n)({
          mutationFn: () => ie(e, !0),
          onSuccess: ([e, n]) => {
            1 == e &&
              t.setQueryData(
                [`GetNominationShareLink_${U.iA.accountid}`],
                [e, n],
              );
          },
        });
      }
      function le(e, t, n) {
        const r = (0, G.KV)(),
          i = (0, j.jE)();
        return (0, k.n)({
          mutationFn: () =>
            (async function (e, t, n, r) {
              const i = a.w.Init(w);
              i.Body().set_voteid(n),
                i.Body().set_appid(t),
                i.Body().set_sale_appid(r);
              const s = await z.SetVote(e, i);
              return (
                s.BSuccess() ||
                  console.warn(
                    `Failed to set vote for app (${t}): ${s.GetEResult()}`,
                  ),
                [s.GetEResult(), s.Body().toObject()]
              );
            })(r, e, t, n),
          onSuccess: ([e, t]) => {
            1 == e &&
              i.setQueryData(
                [`SteamAwardUserVotes_${U.iA.accountid}`],
                t.user_votes,
              );
          },
        });
      }
      function ce(e) {
        const t = (0, G.KV)();
        return (0, O.I)({
          queryKey: [`SteamAwardUserVotes_${U.iA.accountid}`],
          queryFn: () =>
            (async function (e, t) {
              const n = a.w.Init(S);
              n.Body().set_sale_appid(t);
              const r = await z.GetUserVotes(e, n);
              return (
                r.BSuccess() ||
                  console.warn(
                    `Failed to get votes for user: ${r.GetEResult()}`,
                  ),
                r.Body().toObject()?.user_votes
              );
            })(t, e),
          initialData: () => Z()?.user_votes,
          enabled: U.iA.logged_in,
        });
      }
      function me(e, t) {
        const n = ce(e);
        return (0, P.useMemo)(
          () => n.data?.find((e) => e.voteid == t)?.appid,
          [t, n.data],
        );
      }
      function de(e, t) {
        const n = (function (e) {
            const t = (0, G.KV)();
            return (0, O.I)({
              queryKey: [`SteamAwardItemDefs_${e}`],
              queryFn: async () => {
                const n = a.w.Init(q.RG);
                return (
                  n.Body().set_appid(e),
                  n.Body().set_language(U.TS.LANGUAGE),
                  (await q.uy.GetCommunityItemDefinitions(t, n))
                    .Body()
                    .toObject()
                );
              },
              staleTime: 1 / 0,
              initialData: () => Z()?.item_definitions,
            });
          })(e),
          r = K(e);
        if (!n.data || !r.data) return null;
        const i = r.data.votes.find((e) => e.voteid == t);
        return n.data.item_definitions?.find((e) => e.item_type == i.item_type);
      }
      function ue() {
        return P.useContext(J).yearStyles;
      }
    },
    41550: (e, t, n) => {
      "use strict";
      n.d(t, { AD: () => Y, vA: () => ee, He: () => J });
      var r = n(34629),
        a = n(14947),
        i = n(75844),
        s = n(90626),
        o = n(94607),
        l = n(22837),
        c = n(76217),
        m = n(71138),
        d = n(4796),
        u = n(44165),
        p = n(60746),
        g = n(68451),
        _ = n(41841),
        S = n(42011),
        E = n(48628),
        w = n(64940),
        y = n(90316),
        h = n.n(y),
        B = n(67417),
        M = n(95695),
        A = n.n(M),
        v = n(3088),
        T = n(12155),
        D = n(22797),
        C = n(51272),
        N = n(69381),
        f = n(44332),
        I = n(6144),
        b = n(52038),
        L = n(56011),
        z = n(61859),
        R = n(73745),
        O = n(61336),
        j = n(78327),
        k = n(17009),
        G = n.n(k),
        U = n(75113),
        x = n(43667),
        F = n(71746),
        V = n(75204),
        W = (n(17720), n(67165), n(55263));
      function P(e) {
        const { children: t } = e;
        return (0, j.Qn)() && !j.TS.IN_STEAMUI
          ? s.createElement(
              V.Qg,
              { className: M.GamepadOnlyScrollPanel },
              s.createElement(
                c.Z,
                {
                  focusable: !0,
                  noFocusRing: !0,
                  className: M.GamepadOnlyPanel,
                },
                t,
              ),
            )
          : s.createElement(s.Fragment, null, t);
      }
      var q = n(69409);
      const H = s.lazy(() =>
        Promise.all([
          n.e(8970),
          n.e(6597),
          n.e(4607),
          n.e(7937),
          n.e(7436),
          n.e(2797),
          n.e(7403),
          n.e(9214),
          n.e(4796),
          n.e(4095),
          n.e(432),
          n.e(9522),
          n.e(1266),
          n.e(7034),
          n.e(177),
          n.e(8396),
        ]).then(n.bind(n, 70834)),
      );
      function Q(e) {
        const [t, n] = (0, W.t7)(e.appid, { include_assets: !0 }),
          [r, a] = (0, d.TB)(e.clanID);
        let i = "";
        return (
          e.appid
            ? (i = t?.GetAssets()?.GetCommunityIconURL() || "")
            : e.clanID && (i = a ? a.avatar_full_url : ""),
          s.createElement(
            "div",
            {
              className: (0, b.A)(G().ScrollButton, G().GameArt, G().AnimIn),
              onClick: e.onAppIconClick,
            },
            Boolean(i) && s.createElement("img", { src: i }),
          )
        );
      }
      let Y = class extends s.Component {
        m_loader = null;
        m_refPage = s.createRef();
        m_refContent = s.createRef();
        m_refScroll = s.createRef();
        m_refScrollAnchor = s.createRef();
        m_scrollAnimation = null;
        m_nTouchStartClientY;
        m_nPreviousRenderCount = 0;
        m_nCurrentRenderCount = 0;
        constructor(e) {
          super(e),
            !this.props.bShowOnlyInitialEvent &&
              this.props.initialEvent &&
              ((this.m_loader = new $(this.props.partnerEventStore)),
              this.m_loader.InitAroundEvent(
                this.props.initialEvent,
                this.props.additionalParams,
              ));
        }
        FindCurrentlyViewedEventIndex() {
          if (!this.m_refContent.current || !this.m_refScroll.current)
            return -1;
          let e = this.m_refContent.current.children,
            t = this.GetScrollTopForComparison();
          for (let n = 0; n < e.length; n++) {
            let r = e[n],
              a = r.offsetTop,
              i = a + r.clientHeight;
            if (a <= t && i > t) return n;
          }
          return -1;
        }
        GetPaddingTop() {
          return this.props.showAppHeader ? 136 : 56;
        }
        GetScrollTopForComparison() {
          return Math.ceil(
            this.m_refScroll.current.scrollTop + this.GetPaddingTop() + 24,
          );
        }
        ScrollToEvent(e) {
          let t = this.m_refContent.current;
          if (!t) return;
          if (e < 0 || e >= t.children.length) return;
          if (this.m_scrollAnimation) return;
          let n = t.children[e].offsetTop - this.GetPaddingTop();
          this.ScrollToOffset(n);
        }
        ScrollToOffset(e) {
          let t = this.m_refScroll.current;
          if (!t) return;
          let n = {
            msDuration: 500,
            timing: "cubic-in-out",
            onComplete: this.OnScrollComplete,
          };
          (this.m_scrollAnimation = new N.JV(t, { scrollTop: e }, n)),
            this.m_scrollAnimation.Start();
        }
        ScrollToBottom() {
          this.m_refScroll.current &&
            this.ScrollToOffset(this.m_refScroll.current.scrollHeight);
        }
        ScrollToNextEvent() {
          let e = this.m_loader.GetEvents(),
            t = this.FindCurrentlyViewedEventIndex() + 1;
          t >= e.length
            ? this.ScrollToBottom()
            : (this.ScrollToEvent(t),
              t == e.length - 1 && this.m_loader.LoadMoreAtEnd());
        }
        ScrollToPrevEvent() {
          let e = this.FindCurrentlyViewedEventIndex(),
            t = e - 1;
          if (t < 0) return void this.ScrollToOffset(0);
          let n = this.m_refContent.current;
          if (n) {
            let r = n.children[e],
              a = r.offsetTop,
              i = a + r.clientHeight,
              s = this.GetScrollTopForComparison();
            (s -= 0.3 * (i - a)), a <= s && (t = e);
          }
          this.ScrollToEvent(t);
        }
        OnScrollComplete() {
          this.m_scrollAnimation = null;
        }
        Close() {
          this.props.closeModal && this.props.closeModal();
        }
        OnBackgroundClick(e) {
          e.currentTarget == e.target && this.Close();
        }
        OnKeyDown(e) {
          27 == e.keyCode && this.Close();
        }
        OnScroll(e) {
          if (this.props.bShowOnlyInitialEvent) return;
          let t = this.m_refScroll.current;
          if (!t) return;
          let n = t.clientHeight;
          t.scrollHeight - (t.scrollTop + n) <= n &&
            this.m_loader.LoadMoreAtEnd(),
            t.scrollTop <= n && this.m_loader.LoadMoreAtBeginning();
        }
        getSnapshotBeforeUpdate(e) {
          let t = this.m_nCurrentRenderCount != this.m_nPreviousRenderCount;
          if (((this.m_nPreviousRenderCount = this.m_nCurrentRenderCount), !t))
            return null;
          let n = this.m_refScroll.current;
          if (!n || !this.m_refScrollAnchor.current) return null;
          let r = this.m_refScrollAnchor.current.GetDOM();
          return r ? r.offsetTop - n.scrollTop : null;
        }
        OnTouchStart(e) {
          1 == e.touches.length &&
            (this.m_nTouchStartClientY = e.touches[0].clientY);
        }
        OnTouchMove(e) {
          if (!this.m_refScroll.current || 0 == e.touches.length) return;
          const t = this.m_nTouchStartClientY - e.touches[0].clientY;
          this.SuppressUnwantedScrollEventsBecauseSafariIsDumb(e, t);
        }
        OnWheel(e) {
          this.SuppressUnwantedScrollEventsBecauseSafariIsDumb(e, e.deltaY);
        }
        SuppressUnwantedScrollEventsBecauseSafariIsDumb(e, t) {
          const n = L.kD(e.target) && L.id(this.m_refScroll.current, e.target),
            r = t < 0 && this.m_refScroll.current.scrollTop < 1,
            a =
              this.m_refScroll.current.scrollHeight -
                this.m_refScroll.current.scrollTop <=
              this.m_refScroll.current.clientHeight;
          (!n || r || (t > 0 && a)) && e.cancelable && e.preventDefault();
        }
        SetGlobalHeaderHidden(e) {
          const t = document.getElementsByClassName("responsive_header");
          (0, f.w)(t.length <= 1, "Must have at most one responsive_header"),
            t.length >= 1 && (t[0].style.display = e ? "none" : null);
        }
        SetFooterPinnedToBottom(e) {
          const t = document.getElementById("footer");
          t && (t.style.position = e ? "absolute" : null);
        }
        componentDidMount() {
          const e = this.m_refScroll.current;
          e && !L.id(e, e.ownerDocument.activeElement) && e.focus();
          const t = this.m_refPage.current;
          t &&
            (t.addEventListener("touchstart", this.OnTouchStart),
            t.addEventListener("touchmove", this.OnTouchMove, { passive: !1 }),
            t.addEventListener("wheel", this.OnWheel, { passive: !1 })),
            this.props.showAppHeader && this.SetGlobalHeaderHidden(!0),
            this.SetFooterPinnedToBottom(!0);
        }
        componentDidUpdate(e, t, n) {
          if (null !== n) {
            let e = this.m_refScroll.current;
            e && !L.id(e, e.ownerDocument.activeElement) && e.focus();
            let t = this.m_refScrollAnchor.current
              ? this.m_refScrollAnchor.current.GetDOM()
              : null;
            t && (e.scrollTop = t.offsetTop - n);
          }
        }
        componentWillUnmount() {
          const e = this.m_refPage.current;
          e &&
            (e.removeEventListener("touchstart", this.OnTouchStart),
            e.removeEventListener("touchmove", this.OnTouchMove),
            e.removeEventListener("wheel", this.OnWheel)),
            this.props.showAppHeader && this.SetGlobalHeaderHidden(!1),
            this.SetFooterPinnedToBottom(!1);
        }
        render() {
          const { initialEvent: e, bShowOnlyInitialEvent: t } = this.props,
            n = !e,
            r = n ? [] : t ? [e] : this.m_loader.GetEvents(),
            a = [];
          let i = this.props.appid,
            o = this.props.clanSteamID?.GetAccountID();
          for (const e of r) {
            const t = e.GID == this.props.initialEvent.GID,
              n = t;
            a.push(
              s.createElement(J, {
                ref: t ? this.m_refScrollAnchor : null,
                key: e.GID,
                event: e,
                emoticonStore: this.props.emoticonStore,
                partnerEventStore: this.props.partnerEventStore,
                disableReadTracking: t,
                fnFilterImageURLsForKnownFailures:
                  this.props.fnFilterImageURLsForKnownFailures,
                fnImageFailureCallback: this.props.fnImageFailureCallback,
                bDisableBroadcastPlayer: !n,
                className: this.props.eventClassName,
              }),
            ),
              null == i && (i = e.appid),
              null == o && (o = e.clanSteamID.GetAccountID());
          }
          return (
            (this.m_nCurrentRenderCount = a.length),
            s.createElement(
              c.Z,
              {
                onCancelButton: this.props.closeModal,
                className: G().AppPartnerEventsPage,
                ref: this.m_refPage,
              },
              this.props.showAppHeader &&
                s.createElement(ee, { appId: i, clanId: o }),
              s.createElement(
                "div",
                {
                  className: (0, b.A)(
                    G().AppPartnerEventsBody,
                    G().EndlessScroll,
                  ),
                  ref: this.m_refScroll,
                  onScroll: this.OnScroll,
                  onClick: this.OnBackgroundClick,
                  tabIndex: -1,
                  onKeyDown: this.OnKeyDown,
                },
                n
                  ? s.createElement(
                      "div",
                      { className: G().NoEvents },
                      (0, z.we)("#EventDisplay_NoEventsToSee"),
                    )
                  : s.createElement(
                      s.Fragment,
                      null,
                      s.createElement(
                        "div",
                        {
                          className: (0, b.A)(
                            G().ControlSection,
                            !this.props.onAppIconClick && G().NoGameLink,
                            t && G().NoScrollArrows,
                          ),
                        },
                        s.createElement(
                          "div",
                          { className: G().ControlSectionWidth },
                          s.createElement(
                            "div",
                            { className: G().ControlSectionRightSide },
                            Boolean(this.props.closeModal) &&
                              s.createElement(
                                "div",
                                {
                                  className: (0, b.A)(
                                    G().CloseButton,
                                    G().AnimIn,
                                  ),
                                  onClick: this.Close,
                                },
                                s.createElement(T.sED, null),
                              ),
                            !t &&
                              s.createElement(
                                "div",
                                {
                                  className: (0, b.A)(
                                    G().ScrollButton,
                                    G().Up,
                                    G().AnimIn,
                                  ),
                                  onClick: this.ScrollToPrevEvent,
                                },
                                s.createElement(T.V5W, { angle: 0 }),
                              ),
                            !t &&
                              s.createElement(
                                "div",
                                {
                                  className: (0, b.A)(
                                    G().ScrollButton,
                                    G().Down,
                                    G().AnimIn,
                                  ),
                                  onClick: this.ScrollToNextEvent,
                                },
                                s.createElement(T.V5W, { angle: 180 }),
                              ),
                            this.props.onAppIconClick &&
                              s.createElement(Q, {
                                appid: i,
                                clanID: o,
                                onAppIconClick: this.props.onAppIconClick,
                              }),
                          ),
                        ),
                      ),
                      !t &&
                        s.createElement(Z, {
                          loader: this.m_loader,
                          location: "top",
                        }),
                      s.createElement(
                        "div",
                        {
                          ref: this.m_refContent,
                          className: (0, b.A)(
                            G().AppPartnerEventsContainer,
                            !this.props.onAppIconClick && G().NoGameLink,
                          ),
                        },
                        a,
                      ),
                      !t &&
                        s.createElement(Z, {
                          loader: this.m_loader,
                          location: "bottom",
                        }),
                      Boolean(t) &&
                        s.createElement(
                          U.tj,
                          { eventModel: e, route: U.PH.k_eStoreNewsHub },
                          (0, z.we)("#EventBrowse_MoreEventsBtn"),
                        ),
                    ),
              ),
            )
          );
        }
      };
      (0, r.Cg)([R.oI], Y.prototype, "ScrollToNextEvent", null),
        (0, r.Cg)([R.oI], Y.prototype, "ScrollToPrevEvent", null),
        (0, r.Cg)([R.oI], Y.prototype, "OnScrollComplete", null),
        (0, r.Cg)([R.oI], Y.prototype, "Close", null),
        (0, r.Cg)([R.oI], Y.prototype, "OnBackgroundClick", null),
        (0, r.Cg)([R.oI], Y.prototype, "OnKeyDown", null),
        (0, r.Cg)([R.oI], Y.prototype, "OnScroll", null),
        (0, r.Cg)([R.oI], Y.prototype, "OnTouchStart", null),
        (0, r.Cg)([R.oI], Y.prototype, "OnTouchMove", null),
        (0, r.Cg)([R.oI], Y.prototype, "OnWheel", null),
        (Y = (0, r.Cg)([i.PA], Y));
      const Z = (0, i.PA)((e) => {
          let t = e.loader.GetNewerState(),
            n = e.loader.GetOlderState();
          return t == X.Loading && n == X.Loading
            ? null
            : ("top" == e.location ? t : n) == X.Loading
              ? s.createElement(
                  "div",
                  { className: G().DirectionState },
                  s.createElement(D.t, {
                    position: "center",
                    string: (0, z.we)("#Loading"),
                  }),
                )
              : null;
        }),
        J = s.forwardRef(function (e, t) {
          const n = (0, j.Qn)(),
            [r, a] = (0, W.t7)(e.event.appid, { include_assets: !0 });
          return s.createElement(K, {
            ref: t,
            ...e,
            bInGamepadUI: n,
            storeItem: r,
          });
        });
      let K = class extends s.Component {
        m_refContent = s.createRef();
        m_sendReadInfo = new I.LU();
        m_bSentRead = !1;
        OnEnterVisible() {
          if (this.m_bSentRead || this.m_sendReadInfo.IsScheduled()) return;
          this.m_sendReadInfo.Schedule(750, () => {
            p.KN.Get().RecordEventRead(this.props.event, 4),
              (this.m_bSentRead = !0);
          });
        }
        OnLeaveVisible() {
          this.m_sendReadInfo.Cancel();
        }
        GetDOM() {
          return this.m_refContent.current;
        }
        render() {
          const {
              event: e,
              langOverride: t,
              partnerEventStore: n,
              emoticonStore: r,
              className: a,
              additionalTypeAndDateElement: i,
              fnFilterImageURLsForKnownFailures: c,
              fnImageFailureCallback: p,
              headerClassnames: _,
              isPreview: y,
              storeItem: M,
            } = this.props,
            T = t || (0, l.sf)(j.TS.LANGUAGE),
            D = e.GetDescriptionWithFallback(T) || "",
            N = _;
          let f = e.GetImageForSizeAsArrayWithFallback(
            "background",
            T,
            m.wI.background_main,
          );
          c && (f = c(f));
          const I = e.GetCategoryAsString(),
            L = e.type,
            R = e.BImageNeedScreenshotFallback("background", T);
          let k = "";
          if (e.appid) k = M?.GetName() || "";
          else if (e.clanSteamID) {
            const t = d.ac.GetClanInfoByClanAccountID(
              e.clanSteamID.GetAccountID(),
            );
            k = t ? t.group_name : "";
          }
          const V = u.HD.GetTimeNowWithOverride(),
            W = 28 !== L && V < e.GetStartTimeAndDateUnixSeconds() && !y;
          return s.createElement(
            P,
            null,
            s.createElement(
              "div",
              {
                ref: this.m_refContent,
                className: (0, b.A)(
                  a,
                  G().PartnerEvent,
                  h().InLibraryView,
                  "editor" == N ? h().InEditor : "",
                ),
              },
              12 != L &&
                !R &&
                s.createElement(v.c, {
                  className: (0, b.A)(h().EventCoverImageBackground),
                  rgSources: f,
                  onIncrementalError: (e, t, n) => p && p(t),
                }),
              f.length > 0 &&
                s.createElement(v.c, {
                  className: h().EventBackgroundBlur,
                  rgSources: f,
                  onIncrementalError: (e, t, n) => p && p(t),
                }),
              s.createElement(
                "div",
                { className: h().LibraryEventTitleContainer },
                s.createElement(
                  "div",
                  { className: h().EventDetailTitleContainer },
                  this.props.headerElement,
                  s.createElement(
                    "div",
                    {
                      className: (0, b.A)(
                        G().EventTypeAndTimeRow,
                        W && G().WithReminder,
                      ),
                    },
                    s.createElement(
                      "div",
                      { className: G().TimeandPostedBy },
                      s.createElement("span", { className: G().EventType }, I),
                      s.createElement(
                        "span",
                        { className: G().PostedBy },
                        " ",
                        (0, z.we)("#EventDisplay_PostedBy"),
                        k,
                        " ",
                      ),
                      s.createElement(B.OT, { event: e }),
                    ),
                    W &&
                      !y &&
                      s.createElement(
                        "div",
                        { className: G().ReminderContainer },
                        s.createElement(x.j, {
                          eventModel: e,
                          lang: T,
                          bExpandLeft: !0,
                        }),
                      ),
                    !y && i,
                  ),
                  !this.props.disableReadTracking &&
                    !y &&
                    s.createElement(o.Y, {
                      onEnter: this.OnEnterVisible,
                      onLeave: this.OnLeaveVisible,
                      bottomOffset: "300px",
                    }),
                  this.props.bInGamepadUI
                    ? s.createElement(
                        "div",
                        { className: h().EventDetailTitle },
                        e.GetNameWithFallback(T),
                      )
                    : s.createElement(
                        U.tj,
                        {
                          eventModel: e,
                          route: U.PH.k_eView,
                          className: h().EventDetailTitle,
                        },
                        e.GetNameWithFallback(T),
                      ),
                  e.BHasSubTitle(T) &&
                    s.createElement(
                      "div",
                      {
                        className: (0, b.A)(
                          h().EventDetailsSubTitle,
                          G().LibraryViewSubtitle,
                        ),
                      },
                      e.GetSubTitle(T),
                    ),
                  s.createElement("div", {
                    className: h().EventDetailUserType,
                  }),
                ),
              ),
              Boolean(
                e.BEventCanShowBroadcastWidget() &&
                  !this.props.bDisableBroadcastPlayer,
              ) &&
                s.createElement(
                  "div",
                  { className: h().EventBroadcastCtn },
                  s.createElement(
                    s.Suspense,
                    { fallback: null },
                    s.createElement(H, { event: this.props.event }),
                  ),
                ),
              e.BHasTag("steam_award_nomination_request") &&
                s.createElement(w.EventDisplaySteamAwardNomination, {
                  event: e,
                  lang: T,
                }),
              e.BHasTag("steam_award_vote_request") &&
                s.createElement(w.WinterSaleSteamAwardVoteWrapper, {
                  appID: e.appid,
                  bIsEventActionEnabled: e.BIsEventActionEnabled(),
                  voteCategories: e.GetSteamAwardNomineeCategories(),
                }),
              s.createElement(
                "div",
                { className: h().LibraryEventBodyContainer },
                s.createElement(
                  "div",
                  {
                    className: (0, b.A)(
                      h().EventDetailsBody,
                      G().EventDetailsBody,
                    ),
                    onContextMenu: j.TS.IN_CLIENT ? g.aE : void 0,
                  },
                  s.createElement(E.f, {
                    text: D,
                    partnerEventStore: n,
                    event: e,
                  }),
                  s.createElement("span", { className: A().Clear }),
                ),
                s.createElement(F._, { event: this.props.event }),
                Boolean(e.jsondata.read_more_link) &&
                  s.createElement(
                    "div",
                    { className: (0, b.A)(G().ReadMoreCnt) },
                    s.createElement(
                      C.uU,
                      {
                        className: (0, b.A)(A().Button),
                        href: e.jsondata.read_more_link,
                      },
                      (0, z.we)("#EventEmail_Button_ClickForMoreDetails"),
                    ),
                  ),
                Boolean(e.jsondata.bSaleEnabled && e.jsondata.sale_vanity_id) &&
                  s.createElement(
                    "div",
                    { className: (0, b.A)(G().ReadMoreCnt) },
                    s.createElement(q.m, { gidEvent: e.GID }),
                    s.createElement(
                      "a",
                      {
                        className: (0, b.A)(A().Button, "LinkButton"),
                        href: (0, O.k2)(e.GetSaleURL()),
                      },
                      (0, z.we)("#Event_Button_VisitSalePage"),
                    ),
                  ),
                s.createElement(B.lS, { appid: e.appid }),
              ),
              !Boolean(y) &&
                s.createElement(S.F, {
                  eventModel: e,
                  partnerEventStore: n,
                  emoticonStore: r,
                }),
            ),
          );
        }
      };
      var X;
      (0, r.Cg)([R.oI], K.prototype, "OnEnterVisible", null),
        (0, r.Cg)([R.oI], K.prototype, "OnLeaveVisible", null),
        (K = (0, r.Cg)([i.PA], K)),
        (function (e) {
          (e[(e.Idle = 1)] = "Idle"),
            (e[(e.Loading = 2)] = "Loading"),
            (e[(e.EndOfContent = 3)] = "EndOfContent");
        })(X || (X = {}));
      class $ {
        k_nMaxPerDirection = 3;
        m_nAppID = 0;
        m_clanSteamID;
        m_partnerEventStore;
        m_additionalParams;
        m_rgEvents = [];
        m_eOlderDirection = X.Idle;
        m_eNewerDirection = X.Idle;
        constructor(e) {
          (0, a.Gn)(this), (this.m_partnerEventStore = e);
        }
        GetEvents() {
          return this.m_rgEvents;
        }
        GetAppID() {
          return this.m_nAppID;
        }
        GetOlderState() {
          return this.m_eOlderDirection;
        }
        GetNewerState() {
          return this.m_eNewerDirection;
        }
        async InitAroundEvent(e, t) {
          const n = this.m_partnerEventStore;
          (this.m_nAppID = e.appid),
            (this.m_clanSteamID = e.clanSteamID),
            (this.m_rgEvents = []),
            (this.m_eOlderDirection = X.Loading),
            (this.m_eNewerDirection = X.Loading),
            (this.m_additionalParams = t),
            this.m_rgEvents.push(e);
          let r = null;
          try {
            r = await n.LoadAdjacentPartnerEventsByEvent(
              e,
              this.m_clanSteamID,
              this.m_nAppID,
              this.k_nMaxPerDirection,
              this.k_nMaxPerDirection,
              this.m_additionalParams,
            );
          } catch (e) {}
          (0, a.h5)(() => {
            if (!r || 0 == r.length)
              return (
                (this.m_eOlderDirection = X.EndOfContent),
                void (this.m_eNewerDirection = X.EndOfContent)
              );
            let t = r.findIndex((t) => t.GID == e.GID),
              n = t,
              a = t >= 0 ? r.length - t - 1 : 0;
            (this.m_eNewerDirection =
              n >= this.k_nMaxPerDirection ? X.Idle : X.EndOfContent),
              (this.m_eOlderDirection =
                a >= this.k_nMaxPerDirection ? X.Idle : X.EndOfContent),
              (this.m_rgEvents = r);
          });
        }
        async LoadMoreAtEnd() {
          if (this.m_eOlderDirection != X.Idle) return;
          if (0 == this.m_rgEvents.length) return;
          let e = this.m_rgEvents[this.m_rgEvents.length - 1];
          this.m_eOlderDirection = X.Loading;
          let t = null;
          try {
            const n = this.m_partnerEventStore;
            t = await n.LoadAdjacentPartnerEventsByEvent(
              e,
              this.m_clanSteamID,
              this.m_nAppID,
              0,
              this.k_nMaxPerDirection,
              this.m_additionalParams,
            );
          } catch (e) {}
          (0, a.h5)(() => {
            if (!t) return void (this.m_eOlderDirection = X.Idle);
            const e = new Set(this.m_rgEvents.map((e) => e.GID));
            for (let n of t)
              e.has(n.GID) || (this.m_rgEvents.push(n), e.add(n.GID));
            this.m_eOlderDirection =
              t.length >= this.k_nMaxPerDirection ? X.Idle : X.EndOfContent;
          });
        }
        async LoadMoreAtBeginning() {
          if (this.m_eNewerDirection != X.Idle) return;
          if (0 == this.m_rgEvents.length) return;
          let e = this.m_rgEvents[0];
          this.m_eNewerDirection = X.Loading;
          let t = null;
          try {
            const n = this.m_partnerEventStore;
            t = await n.LoadAdjacentPartnerEventsByEvent(
              e,
              this.m_clanSteamID,
              this.m_nAppID,
              this.k_nMaxPerDirection,
              0,
            );
          } catch (e) {}
          (0, a.h5)(() => {
            if (!t) return void (this.m_eNewerDirection = X.Idle);
            const e = new Set(this.m_rgEvents.map((e) => e.GID));
            for (let n of t.reverse())
              e.has(n.GID) || (this.m_rgEvents.unshift(n), e.add(n.GID));
            this.m_eNewerDirection =
              t.length >= this.k_nMaxPerDirection ? X.Idle : X.EndOfContent;
          });
        }
      }
      (0, r.Cg)([a.sH.shallow], $.prototype, "m_rgEvents", void 0),
        (0, r.Cg)([a.sH], $.prototype, "m_eOlderDirection", void 0),
        (0, r.Cg)([a.sH], $.prototype, "m_eNewerDirection", void 0);
      const ee = (0, i.PA)((e) =>
        s.createElement(
          "div",
          {
            className: (0, b.A)(
              G().AppPartnerEventsBanner,
              "AppPartnerEventsBanner",
            ),
          },
          s.createElement(_.W, { ...e }),
        ),
      );
    },
    41841: (e, t, n) => {
      "use strict";
      n.d(t, { W: () => I });
      var r = n(75844),
        a = n(90626),
        i = n(77516),
        s = n(17720),
        o = n(4796),
        l = n(30894),
        c = n(60746),
        m = n(82097),
        d = n(55263),
        u = n(33737),
        p = n(12155),
        g = n(4434),
        _ = n(52038),
        S = n(61859),
        E = n(61336),
        w = n(78327),
        y = n(51272),
        h = n(17009),
        B = n.n(h),
        M = n(75113),
        A = n(48838),
        v = n(26101),
        T = n(14326),
        D = n(37076);
      function C(e, t) {
        const [n, r] = (0, a.useState)({}),
          i = (0, g.m)("useEventHeaderData");
        return (
          (0, a.useEffect)(() => {
            if (e)
              m.A.Get()
                .QueueAppRequest(e, {
                  include_assets: !0,
                  include_screenshots: !0,
                })
                .then(() => {
                  const t = m.A.Get().GetApp(e);
                  t &&
                    !i?.token?.reason &&
                    r({
                      strCapsuleUrl: t.GetAssets().GetHeaderURL(),
                      strGroupTitle: t.GetName(),
                      id: e,
                      strStoreURL:
                        (w.TS.IN_CLIENT ? "steam://openurl/" : "") +
                        t.GetStorePageURL(),
                      strCommunityURL:
                        (w.TS.IN_CLIENT ? "steam://openurl/" : "") +
                        t.GetCommunityPageURL(),
                      strForumURL:
                        (w.TS.IN_CLIENT ? "steam://openurl/" : "") +
                        t.GetCommunityDiscussionForumsURL(),
                    });
                });
            else if (t) {
              const e = s.b.InitFromClanID(t);
              o.ac.LoadClanInfoForClanSteamID(e).then((n) => {
                i?.token?.reason ||
                  r({
                    strCapsuleUrl: n.avatar_full_url,
                    strGroupTitle: n.group_name,
                    id: t,
                    strStoreURL:
                      (w.TS.IN_CLIENT ? "steam://openurl/" : "") +
                      w.TS.STORE_BASE_URL +
                      "curator/" +
                      t +
                      "/",
                    strCommunityURL:
                      (w.TS.IN_CLIENT ? "steam://openurl/" : "") +
                      w.TS.COMMUNITY_BASE_URL +
                      "gid/" +
                      e.ConvertTo64BitString(),
                    strExtraBannerGroupStyle: B().ClanBanner,
                  });
              });
            }
          }, [e, i?.token?.reason, t]),
          n
        );
      }
      const N = {};
      function f(e) {
        const { appId: t, clanId: n, bShowRSSFeed: r } = e,
          { strStoreURL: i, strCommunityURL: o, strForumURL: m } = C(t, n),
          d = (0, w.Y2)(),
          g =
            w.TS.STORE_BASE_URL +
            "feeds/" +
            (0, M.LJ)() +
            (t ? "/app/" + t : "/group/" + n) +
            "/?cc=" +
            w.TS.COUNTRY +
            "&l=" +
            w.TS.LANGUAGE,
          _ = c.KN.Get().GetPartnerEventPermissions(s.b.InitFromClanID(n)),
          h = _ && (_.can_edit || _.support_user),
          A = l.Fm.Get().BOwnsApp(t),
          v = (0, a.useMemo)(() => {
            const e = [];
            return (
              w.TS.IN_CLIENT &&
                A &&
                e.push({
                  label: (0, S.we)("#EventDisplay_ViewInLibrary_ExtraShort"),
                  data: "steam://nav/games/details/" + t,
                }),
              e.push({
                label: (0, S.we)("#EventDisplay_ViewStorePage_ExtraShort"),
                data: (0, E.k2)(i),
              }),
              d ||
                (e.push({
                  label: (0, S.we)(
                    "#EventDisplay_ViewCommunityPage_ExtraShort",
                  ),
                  data: (0, E.k2)(o),
                }),
                m &&
                  e.push({
                    label: (0, S.we)("#EventDisplay_ViewForum_ExtraShort"),
                    data: (0, E.k2)(m),
                  }),
                r &&
                  e.push({
                    label: a.createElement(
                      "div",
                      { className: B().RssRow },
                      a.createElement(p.ZPc, null),
                      (0, S.we)("#EventDisplay_RSSFeed_ExtraShort"),
                    ),
                    data: g,
                  })),
              h &&
                e.push({
                  label: (0, S.we)("#EventDisplay_Admin_ExtraShort"),
                  data: (0, M.Hx)(t, s.b.InitFromClanID(n), "admin"),
                }),
              e
            );
          }, [A, i, d, h, o, m, r, g, t, n]);
        return a.createElement(u.m, {
          strDefaultLabel: (0, S.we)("#EventDisplay_LinksDropDown_ExtraShort"),
          strClassName: B().AppBannerLinkDD,
          strDropDownButtonClassName: B().AppBannerLinkDDButton,
          strDropDownMenuCtnClass: B().AppBannerLinkDDContainer,
          contextMenuPositionOptions: { bMatchWidth: !1 },
          arrowClassName: B().DDButtonArrow,
          rgOptions: v,
          onChange: (e, t, n) => (0, y.EP)(n, e.data),
        });
      }
      const I = (0, r.PA)((e) => {
        const { appId: t, clanId: n } = e,
          {
            strCapsuleUrl: r,
            strGroupTitle: s,
            id: o,
            strExtraBannerGroupStyle: c,
          } = C(t, n),
          [m] = (0, d.t7)(t, N),
          u = l.Fm.Get().BOwnsApp(t);
        let p = Boolean(t !== i.DU);
        const g = a.createElement("img", {
          className: B().AppBannerLogo,
          src: r,
        });
        return a.createElement(
          "div",
          { className: B().AppBannerCtn },
          a.createElement("div", {
            className: B().AppBannerBackground,
            style: { backgroundImage: `url(${r})` },
          }),
          a.createElement(
            "div",
            { className: (0, _.A)(B().AppBannerGroup, c) },
            p
              ? Boolean(t)
                ? a.createElement(
                    v.Qf,
                    {
                      item: { id: t, type: "game" },
                      className: B().AppBannerLogoCtn,
                      hoverProps: {
                        direction: "overlay",
                        style: { minWidth: "320px" },
                      },
                    },
                    g,
                  )
                : a.createElement(
                    D.u,
                    {
                      type: e.appId ? "app" : "clan",
                      id: o,
                      hoverClassName: B().AppBannerLogoCtn,
                    },
                    g,
                  )
              : a.createElement(
                  "div",
                  { className: B().AppBannerLogoCtn },
                  g,
                  " ",
                ),
            a.createElement(
              "div",
              { className: B().AppBannerTitle },
              s,
              a.createElement(
                "div",
                { className: B().NewsHubSubTitle },
                (0, S.we)("#EventDisplay_NewsHubSubtitle"),
              ),
            ),
            p &&
              a.createElement(
                "div",
                { className: B().AppBannerLinks },
                Boolean(!u) &&
                  a.createElement(
                    "div",
                    { className: B().HeaderWishlistButton },
                    a.createElement(T._, {
                      appid: t,
                      bIsFree: m?.BIsFree(),
                      bIsComingSoon: m?.BIsComingSoon(),
                      className: (0, _.A)(
                        B().ActionButton,
                        B().WishlistBtnShort,
                      ),
                    }),
                  ),
                a.createElement(
                  "div",
                  { className: B().HeaderFollowButton },
                  Boolean(t)
                    ? a.createElement(A.do, {
                        appid: t,
                        className: B().HeaderButtonDark,
                      })
                    : a.createElement(A.of, {
                        clanAccountID: n,
                        className: B().HeaderButtonDark,
                      }),
                ),
                a.createElement(f, { ...e }),
              ),
          ),
        );
      });
    },
    42011: (e, t, n) => {
      "use strict";
      n.d(t, { W: () => U, F: () => F });
      var r = n(34629),
        a = n(45699),
        i = n(76217),
        s = n(41735),
        o = n.n(s),
        l = n(75844),
        c = n(90626),
        m = n(4796),
        d = n(14947),
        u = n(68797),
        p = n(78327);
      class g {
        constructor() {
          (0, d.Gn)(this);
        }
        m_mapClanReposted = new Set();
        m_mapSourceEventGIDToPostedClans = new Map();
        static s_EventRepost;
        static Get() {
          return (
            g.s_EventRepost ||
              ((g.s_EventRepost = new g()), g.s_EventRepost.Initialize()),
            g.s_EventRepost
          );
        }
        static ValidateRepostData(e) {
          const t = e;
          return (
            !!(
              t &&
              t.repost_clan_account_ids &&
              Array.isArray(t.repost_clan_account_ids) &&
              t.repost_clan_account_ids.length > 0
            ) && "number" == typeof t.repost_clan_account_ids[0]
          );
        }
        Initialize() {
          if (document.getElementById("application_config")) {
            let e = (0, p.Tc)("repostcontrols", "application_config");
            g.ValidateRepostData(e) &&
              e.repost_clan_account_ids.forEach((e) =>
                this.m_mapClanReposted.add(e),
              );
          }
        }
        BCanRepostPartnerEvent() {
          return this.m_mapClanReposted.size > 0;
        }
        GetRepostClanAccountID() {
          return Array.from(this.m_mapClanReposted);
        }
        async LoadClansAlreadyRepostedTo(e, t, n) {
          if (this.m_mapSourceEventGIDToPostedClans.has(t))
            return this.m_mapSourceEventGIDToPostedClans.get(t);
          const r = p.TS.STORE_BASE_URL + "events/ajaxgetrepostedevent",
            a = {
              sessionid: p.TS.SESSIONID,
              source_clan_accountid: e.GetAccountID(),
              source_event_gid: t,
            };
          try {
            const e = await o().get(r, {
              params: a,
              withCredentials: !0,
              cancelToken: n?.token,
            });
            if (1 == e?.data?.success)
              return (
                this.m_mapSourceEventGIDToPostedClans.set(
                  t,
                  e.data.repost_clan_accountid || [],
                ),
                e.data.repost_clan_accountid
              );
            console.error(
              "GetRepostClanAccountID: failed " +
                e?.data?.success +
                " and msg: " +
                e?.data?.msg,
            );
          } catch (e) {
            const t = (0, u.H)(e);
            console.error(
              "GetRepostClanAccountID: fail repost with " + t.strErrorMsg,
              t,
            );
          }
          return new Array();
        }
        async RepostEvent(e, t, n, r, a) {
          const i = p.TS.STORE_BASE_URL + "events/ajaxrepostevent",
            s = new FormData();
          s.append("sessionid", p.TS.SESSIONID),
            s.append("source_clan_accountid", "" + e.GetAccountID()),
            s.append("source_event_gid", "" + t),
            s.append("repost_clan_accountid", "" + n.GetAccountID()),
            s.append("add", "" + r);
          try {
            let e = await o().post(i, s, {
              withCredentials: !0,
              cancelToken: a?.token,
            });
            if (1 == e?.data?.success && e.data.repost_gid) {
              this.m_mapSourceEventGIDToPostedClans.has(t) ||
                this.m_mapSourceEventGIDToPostedClans.set(t, []);
              const a = this.m_mapSourceEventGIDToPostedClans
                .get(t)
                .findIndex((e) => n.GetAccountID() == e);
              return (
                r && -1 == a
                  ? this.m_mapSourceEventGIDToPostedClans
                      .get(t)
                      .push(n.GetAccountID())
                  : r ||
                    -1 === a ||
                    this.m_mapSourceEventGIDToPostedClans.get(t).splice(a, 1),
                e.data.repost_gid
              );
            }
            console.error(
              "RepostEvent: failed " +
                e?.data?.success +
                " and msg: " +
                e?.data?.msg,
            );
          } catch (e) {
            const t = (0, u.H)(e);
            console.error("RepostEvent: fail repost with " + t.strErrorMsg, t);
          }
          return null;
        }
      }
      (0, r.Cg)([d.sH], g.prototype, "m_mapClanReposted", void 0);
      var _ = n(60746),
        S = n(95695),
        E = n.n(S),
        w = n(82477),
        y = n(99066),
        h = n(738),
        B = n(12155),
        M = n(52038),
        A = n(56011),
        v = n(61859),
        T = n(82227),
        D = n(19719),
        C = n(73745),
        N = n(61336),
        f = n(51706),
        I = n(14256),
        b = n.n(I),
        L = n(75113),
        z = n(86090),
        R = n(17720),
        O = n(33737),
        j = n(84811),
        k = n(22797);
      const G = (0, l.PA)((e) => {
        const { eventModel: t } = e,
          [n, r] = (0, c.useState)(!0),
          [a, i] = (0, c.useState)(new Set()),
          [s, l] = (0, c.useState)(new Set()),
          [d, u] = (0, c.useState)(new Set()),
          [p, _] = (0, c.useState)(null),
          [S, E] = (0, c.useState)(null),
          w = (0, c.useRef)(null);
        (0, c.useEffect)(() => {
          if (n) {
            (async () => {
              const e = o().CancelToken.source();
              w.current = e.cancel;
              const n = g
                .Get()
                .LoadClansAlreadyRepostedTo(t.clanSteamID, t.GID, e);
              n.then((e) => {
                const t = new Set();
                e.forEach((e) => t.add(e)), i(t);
              });
              let a = new Array();
              a.push(n),
                g
                  .Get()
                  .GetRepostClanAccountID()
                  .forEach((e) => {
                    const t = R.b.InitFromClanID(e);
                    a.push(m.ac.LoadClanInfoForClanSteamID(t));
                  }),
                await Promise.all(a),
                r(!1);
            })();
          }
          return () => w.current && w.current();
        }, [n, t.GID, t.clanSteamID]);
        const y = new Array();
        return (
          g
            .Get()
            .GetRepostClanAccountID()
            .forEach((e) => {
              const n = m.ac.GetClanInfoByClanAccountID(e);
              if (n && e != t.clanSteamID.GetAccountID()) {
                const t = a.has(e),
                  r = s.has(e) || (t && !d.has(e));
                y.push(
                  c.createElement(O.Yh, {
                    key: "checkbox" + e,
                    label: t
                      ? (0, v.we)("#EventRepost_Dialog_Existing", n.group_name)
                      : n.group_name,
                    checked: r,
                    disabled: null !== p,
                    onChange: (t) => {
                      a.has(e)
                        ? (t ? d.delete(e) : d.add(e), u(new Set(d)))
                        : (t ? s.add(e) : s.delete(e), l(new Set(s)));
                    },
                  }),
                );
              }
            }),
          c.createElement(
            j.tH,
            null,
            c.createElement(
              f.x_,
              { onEscKeypress: () => e.closeModal && e.closeModal() },
              c.createElement(
                O.UC,
                null,
                c.createElement(
                  O.Y9,
                  null,
                  (0, v.we)("#EventRepost_Dialog_Title"),
                ),
                c.createElement(
                  O.nB,
                  null,
                  c.createElement(
                    O.a3,
                    null,
                    (0, v.we)("#EventRepost_Dialog_Desc"),
                  ),
                  n
                    ? c.createElement(k.t, { string: (0, v.we)("#Loading") })
                    : c.createElement("div", null, y),
                  Boolean(s.size || d.size) &&
                    c.createElement(
                      "div",
                      null,
                      c.createElement(
                        "span",
                        null,
                        (0, v.we)("#EventRepost_Dialog_Action_Desc"),
                      ),
                      c.createElement(
                        "ul",
                        null,
                        Boolean(s.size) &&
                          c.createElement(
                            "li",
                            null,
                            (0, v.we)("#EventRepost_Dialog_Action_Add", s.size),
                          ),
                        Boolean(d.size) &&
                          c.createElement(
                            "li",
                            null,
                            (0, v.we)(
                              "#EventRepost_Dialog_Action_Remove",
                              d.size,
                            ),
                          ),
                      ),
                    ),
                  Boolean(p) && c.createElement("div", null, p),
                  Boolean(S) && c.createElement("div", null, S),
                ),
                c.createElement(
                  O.wi,
                  null,
                  c.createElement(O.CB, {
                    onCancel: () => e.closeModal && e.closeModal(),
                    strOKText: (0, v.we)("#EventRepost_Dialog_OK"),
                    bOKDisabled:
                      (0 == s.size && 0 == d.size) || null !== p || null !== S,
                    onOK: async () => {
                      w.current && w.current();
                      const e = o().CancelToken.source();
                      w.current = e.cancel;
                      const n = s.size + d.size;
                      let r = 1;
                      _((0, v.we)("#EventRepost_Dialog_Progress", r, n));
                      for (const a of Array.from(s)) {
                        const i = R.b.InitFromClanID(a);
                        if (
                          !(await g
                            .Get()
                            .RepostEvent(t.clanSteamID, t.GID, i, !0, e))
                        )
                          return void E(
                            (0, v.we)("#EventRepost_Dialog_ResultFail"),
                          );
                        _((0, v.we)("#EventRepost_Dialog_Progress", ++r, n));
                      }
                      for (const a of Array.from(d)) {
                        const i = R.b.InitFromClanID(a);
                        if (
                          !(await g
                            .Get()
                            .RepostEvent(t.clanSteamID, t.GID, i, !1, e))
                        )
                          return void E(
                            (0, v.we)("#EventRepost_Dialog_ResultFail"),
                          );
                        _((0, v.we)("#EventRepost_Dialog_Progress", ++r, n));
                      }
                      E((0, v.we)("#EventRepost_Dialog_ResultSuccess"));
                    },
                  }),
                ),
              ),
            ),
          )
        );
      });
      function U(e, t) {
        if (!t.BIsUserLoggedIn())
          return (
            p.TS.IN_CLIENT
              ? console.log(
                  "EventDiscussionWidget: In Client: Cannot use login widget. We expect to be already logged in.",
                )
              : (0, h.pg)(
                  c.createElement(f.o0, {
                    strTitle: (0, v.we)("#EventDisplay_Share_NotLoggedIn"),
                    strDescription: (0, v.we)(
                      "#EventDisplay_Share_NotLoggedIn_Description",
                    ),
                    strOKButtonText: (0, v.we)("#MobileLogin_SignIn"),
                    onOK: () => (0, w.vg)(),
                  }),
                  window,
                ),
            !1
          );
        return (
          !t.GetPartnerEventPermissions(e.clanSteamID).limited_user ||
          ((0, h.pg)(c.createElement(z.g, null), window), !1)
        );
      }
      function x(e) {
        let t;
        return !0 === e ? (t = "up") : !1 === e && (t = "down"), t;
      }
      const F = (e) => {
        const t = (0, p.Qn)();
        return c.createElement(V, { ...e, bInGamepadUI: t });
      };
      let V = class extends c.Component {
        m_cancelSignal = o().CancelToken.source();
        constructor(e) {
          super(e);
          const t = _.KN.Get().BHasMyVote(e.eventModel);
          let n;
          t && (n = x(_.KN.Get().GetPreviouslyLoadedVote(e.eventModel))),
            (this.state = { bLoadedVote: !!t, myVote: n });
        }
        async HandleRefreshMyVotingInformation() {
          const { eventModel: e, partnerEventStore: t } = this.props;
          _.KN.Get().BIsUserLoggedIn() &&
            (_.KN.Get()
              .LoadMyVote(e, this.m_cancelSignal)
              .then((e) => {
                let t = x(e);
                this.setState({ myVote: t, bLoadedVote: !0 });
              })
              .catch((e) => {
                let t = (0, u.H)(e);
                console.error("EventDiscussionWidget = " + t.strErrorMsg);
              }),
            m.ac.LoadClanInfoForClanSteamID(e.clanSteamID).catch((e) => {
              let t = (0, u.H)(e);
              console.error("EventDiscussionWidget = " + t.strErrorMsg);
            }));
        }
        componentDidMount() {
          this.state.bLoadedVote || this.HandleRefreshMyVotingInformation();
        }
        componentDidUpdate(e) {
          this.props.eventModel.GID != e.eventModel.GID &&
            this.HandleRefreshMyVotingInformation();
        }
        componentWillUnmount() {
          this.m_cancelSignal.cancel(
            "EventDiscussionWidget is being unmounted",
          );
        }
        OnVoteUp() {
          this.Vote("up");
        }
        OnVoteDown() {
          this.Vote("down");
        }
        Vote(e) {
          const { eventModel: t } = this.props;
          U(t, _.KN.Get()) &&
            this.state.myVote != e &&
            null != e &&
            this.state.bLoadedVote &&
            this.setState(
              { bVotingUp: "up" == e, bVotingDown: "down" == e },
              () => {
                _.KN.Get()
                  .Vote(t, "up" === e, this.m_cancelSignal)
                  .catch((t) => {
                    let n = (0, u.H)(t);
                    console.error(
                      "EventDiscussionWidget.OnVote" + e + " " + n.strErrorMsg,
                      n,
                    ),
                      this.setState({ bVotingDown: !1, bVotingUp: !1 });
                  }),
                  this.setState({ myVote: e, bVotingDown: !1, bVotingUp: !1 });
              },
            );
        }
        OnShareDialog(e) {
          const t = (0, L.cq)(this.props.eventModel);
          (0, h.pg)(
            c.createElement(y.Wt, {
              eventLink: t,
              fnGetSharePageUrl: (e) => (0, L.Bd)(this.props.eventModel, e),
              appid: this.props.eventModel.appid,
              emoticonStore: this.props.emoticonStore,
              partnerEventStore: this.props.partnerEventStore,
            }),
            (0, A.uX)(e),
            { strTitle: (0, v.we)("#Button_Share") },
          );
        }
        GotoDiscussion(e) {
          (0, h.pg)(
            c.createElement(f.KG, {
              strDescription: (0, v.we)(
                "#EventDisplay_Share_CommentMigrationInProcess",
              ),
            }),
            (0, A.uX)(e),
          );
        }
        OpenRepostDialogs(e) {
          (0, h.pg)(
            c.createElement(G, { eventModel: this.props.eventModel }),
            (0, A.uX)(e),
          );
        }
        render() {
          const { eventModel: e } = this.props,
            t = (0, D.OQ)(
              e.nVotesUp - e.nVotesDown,
              0,
              Number.MAX_SAFE_INTEGER,
            ),
            n = e.GetForumTopicURL(),
            r = (0, N.NT)(n),
            a = (0, p.Y2)(),
            s = e.BIsUnlistedEvent(),
            o = p.iA.logged_in && g.Get().BCanRepostPartnerEvent();
          return c.createElement(
            i.Z,
            { className: b().Container, "flow-children": "row", focusable: !1 },
            c.createElement(
              "div",
              { className: b().InnerContainer },
              c.createElement(
                "div",
                { className: b().VoteContainer },
                c.createElement(
                  "div",
                  { className: b().VoteCount },
                  c.createElement(B.bfp, { className: b().VoteUpStaticIcon }),
                  (0, T.Dq)(t),
                ),
                c.createElement(
                  i.Z,
                  {
                    focusable: !0,
                    className: (0, M.A)(
                      E().Button,
                      E().Icon,
                      b().DiscussionButton,
                      "up" == this.state.myVote ? b().VoteButtonSelected : "",
                    ),
                    onActivate: this.OnVoteUp,
                  },
                  c.createElement(B.bfp, {
                    className:
                      "up" == this.state.myVote
                        ? b().VoteUpSelectedIcon
                        : b().VoteUpIcon,
                  }),
                  c.createElement(
                    "span",
                    { className: b().DiscussionButtonText },
                    (0, v.we)("#Button_RateUp"),
                  ),
                ),
                c.createElement(
                  i.Z,
                  {
                    focusable: !0,
                    className: (0, M.A)(
                      E().Button,
                      E().Icon,
                      b().DiscussionButton,
                      "down" == this.state.myVote ? b().VoteButtonSelected : "",
                    ),
                    onActivate: this.OnVoteDown,
                  },
                  c.createElement(B.bfp, {
                    className:
                      "down" == this.state.myVote
                        ? b().VoteDownSelectedIcon
                        : b().VoteDownIcon,
                  }),
                ),
              ),
              Boolean(!a && !s) &&
                c.createElement(W, {
                  commentCount: e.nCommentCount,
                  discussionURL: r,
                  gotoDiscussion: this.GotoDiscussion,
                }),
              o &&
                c.createElement(
                  "div",
                  { className: b().VoteContainer },
                  c.createElement(
                    i.Z,
                    {
                      focusable: !0,
                      className: (0, M.A)(
                        E().Button,
                        E().Icon,
                        b().DiscussionButton,
                        "down" == this.state.myVote
                          ? b().VoteButtonSelected
                          : "",
                      ),
                      onActivate: this.OpenRepostDialogs,
                    },
                    (0, v.we)("#EventRepost_Dialog_Title"),
                  ),
                ),
            ),
            c.createElement(
              "div",
              { className: b().ShareContainer },
              !this.props.bInGamepadUI &&
                c.createElement(
                  i.Z,
                  {
                    focusable: !0,
                    className: (0, M.A)(
                      E().Button,
                      E().Icon,
                      b().DiscussionButton,
                    ),
                    onActivate: this.OnShareDialog,
                  },
                  c.createElement(B.SYj, { className: b().ShareIcon }),
                  c.createElement(
                    "span",
                    { className: b().DiscussionButtonText },
                    (0, v.we)("#Button_Share"),
                  ),
                ),
            ),
          );
        }
      };
      function W(e) {
        const { commentCount: t, discussionURL: n, gotoDiscussion: r } = e;
        return c.createElement(
          "div",
          { className: b().DiscussContainer },
          c.createElement(
            "div",
            { className: b().DiscussionCount },
            c.createElement(B.ROZ, null),
            (0, T.Dq)(t),
          ),
          n &&
            c.createElement(
              a.Ii,
              { href: (0, N.k2)(n) },
              c.createElement(
                "div",
                {
                  className: (0, M.A)(
                    E().Button,
                    E().Icon,
                    b().DiscussionButton,
                  ),
                },
                c.createElement(B.ROZ, null),
                c.createElement(
                  "span",
                  { className: b().DiscussionButtonText },
                  (0, v.we)("#Button_Discuss"),
                ),
              ),
            ),
          !n &&
            c.createElement(
              i.Z,
              {
                focusable: !0,
                onActivate: r,
                className: (0, M.A)(E().Button, E().Icon, b().DiscussionButton),
              },
              c.createElement(B.ROZ, null),
              c.createElement(
                "span",
                { className: b().DiscussionButtonText },
                (0, v.we)("#Button_Discuss"),
              ),
            ),
        );
      }
      (0, r.Cg)([C.oI], V.prototype, "OnVoteUp", null),
        (0, r.Cg)([C.oI], V.prototype, "OnVoteDown", null),
        (0, r.Cg)([C.oI], V.prototype, "OnShareDialog", null),
        (0, r.Cg)([C.oI], V.prototype, "GotoDiscussion", null),
        (0, r.Cg)([C.oI], V.prototype, "OpenRepostDialogs", null),
        (V = (0, r.Cg)([l.PA], V));
    },
    64940: (e, t, n) => {
      "use strict";
      n.r(t),
        n.d(t, {
          ConfirmOverwriteVoteOrNominationDialog: () => j,
          EventDisplaySteamAwardNomination: () => R,
          EventDisplaySteamAwardVote: () => k,
          UserEligibleToNominateOrVote: () => b,
          WinterSaleSteamAwardVoteWrapper: () => U,
          default: () => G,
        });
      var r = n(34629),
        a = n(41735),
        i = n.n(a),
        s = n(14947),
        o = n(65946),
        l = n(75844),
        c = n(90626),
        m = n(44165),
        d = n(36148),
        u = n(82097),
        p = n(55263),
        g = n(33737),
        _ = n(95695),
        S = n.n(_),
        E = n(4434),
        w = n(68797),
        y = n(52038),
        h = n(61859),
        B = n(73745),
        M = n(61336),
        A = n(78327),
        v = n(51706),
        T = n(738),
        D = n(22797),
        C = n(86090),
        N = n(12247),
        f = n.n(N),
        I = n(82477);
      function b(e) {
        return A.iA.logged_in
          ? !A.iA.is_limited ||
              ((0, T.pg)(
                c.createElement(C.g, {
                  strTokenOverride: e
                    ? "#SteamAward_Vote_LimitedAccount"
                    : "#SteamAward_Nominate_LimitedAccount",
                }),
                window,
              ),
              !1)
          : ((0, T.pg)(
              c.createElement(v.o0, {
                strTitle: (0, h.we)("#EventDisplay_Share_NotLoggedIn"),
                strDescription: (0, h.we)(
                  "#EventDisplay_Share_NotLoggedIn_Description",
                ),
                strOKButtonText: (0, h.we)("#MobileLogin_SignIn"),
                onOK: I.vg,
              }),
              window,
            ),
            !1);
      }
      async function L(e, t) {
        const n =
            A.TS.STORE_BASE_URL + "steamawards/ajaxgetsteamawardeventdetails",
          r = {
            rgCategories: e,
            t:
              ((a = m.HD.GetTimeNowWithOverride()),
              new Date(1e3 * a).toISOString().slice(0, 19).replace("T", " ")),
          };
        var a;
        try {
          const e = await i().get(n, {
            params: r,
            withCredentials: !1,
            cancelToken: t.token,
          });
          if (t.token.reason) return null;
          if (1 == e?.data?.success && e?.data?.event_details)
            return e.data.event_details;
        } catch (e) {
          const t = (0, w.H)(e);
          console.error(
            "Could not fetch award event details:" + t.strErrorMsg,
            t,
          );
        }
        return null;
      }
      const z = { include_assets: !0 };
      function R(e) {
        const { event: t, lang: n, previewMode: r } = e,
          [a] = (0, o.q3)(() => [t.GetSteamAwardCategory()]),
          i = (0, E.m)("EventDisplaySteamAwardNomination"),
          [s, l] = (0, c.useState)(null),
          { currentNomination: u, bLoadingNominationForCategory: p } = (0,
          d.Vz)(a);
        if (
          ((0, c.useEffect)(() => {
            L([a], i).then((e) => {
              l(e);
            });
          }, [i, a]),
          !s || !s.rgAwardCategoryDetails?.length || p)
        )
          return c.createElement(D.t, {
            className: f().SteamAwardContainer,
            size: "medium",
            position: "center",
            string: (0, h.we)("#Loading"),
          });
        const g = m.HD.GetTimeNowWithOverride();
        if (!r && !s.bIsAutumnSaleActive) return null;
        let _ = {};
        s.strBackgroundCSS?.length && (_.backgroundColor = s.strBackgroundCSS),
          s.strBackgroundImage?.length &&
            (_.backgroundImage = `url( ${s.strBackgroundImage} )`),
          s.strTextColor?.length && (_.color = s.strTextColor);
        const w = 1 == s.rgAwardCategoryDetails?.length,
          B =
            t.BIsEventActionEnabled() || g < t.GetStartTimeAndDateUnixSeconds(),
          v = new Date().getFullYear();
        return c.createElement(
          "div",
          {
            style: _,
            className: (0, y.A)(f().SteamAwardContainer, S().PartnerEventFont),
          },
          c.createElement(
            "div",
            { className: f().SteamAwardHeader },
            c.createElement("img", {
              className: f().SteamAwardHeaderImage,
              src: `${s.strTrophyImg}`,
            }),
            c.createElement(
              "div",
              { className: f().SteamAwardMainCtn },
              c.createElement(
                "div",
                { className: f().SteamAwardMainTitle },
                (0, h.we)("#SteamAwards_EventMainTitle"),
              ),
              c.createElement(
                "div",
                { className: f().SteamAwardSubTitle },
                B
                  ? (0, h.we)("#SteamAwards_EventCallToAction")
                  : (0, h.we)("#SteamAwards_EventVotingDateTeaser", v),
                B &&
                  c.createElement(
                    "a",
                    {
                      href: (0, M.NT)(
                        A.TS.STORE_BASE_URL + "steamawards/nominations/",
                      ),
                      className: f().SteamAwardLearnMore,
                    },
                    "(",
                    (0, h.we)("#EventDisplay_CallToAction_LearnMore"),
                    ")",
                  ),
              ),
              c.createElement(
                "div",
                { className: f().SteamAwardHeaderText },
                B
                  ? w
                    ? (0, h.we)(
                        "#SteamAwards_EventNominateGamePrompt_Long",
                        t.GetGameTitle(n),
                      )
                    : c.createElement(
                        "a",
                        {
                          className: f().LinkText,
                          href: (0, M.NT)(
                            A.TS.STORE_BASE_URL + "steamawards/nominations/",
                          ),
                        },
                        (0, h.we)(
                          "#SteamAwards_EventNominateGamePrompt_NoCategory",
                          t.GetGameTitle(n),
                        ),
                      )
                  : (0, h.we)("#SteamAwards_Event_NominationsClosed"),
              ),
            ),
          ),
          c.createElement(O, {
            event: t,
            nominationEventDetails: s,
            currentNomination: u,
          }),
        );
      }
      function O(e) {
        const { event: t, nominationEventDetails: n, currentNomination: r } = e,
          [a, i] = (0, o.q3)(() => [t.GetSteamAwardCategory(), t.appid]),
          s = r?.appid,
          l = (0, d.$d)(i, a, 0),
          u = Boolean(r?.appid == i && r?.category_id == a),
          p = (0, c.useCallback)(
            async (e) => {
              if (!e)
                return void console.log(
                  "EventDisplaySteamAwardNomination: ignore turning off the checkbox",
                );
              if (!b(!1))
                return void console.log(
                  "EventDisplaySteamAwardNomination: UserEligibleToNominateOrVote failed",
                );
              s && s != i
                ? (0, T.pg)(
                    c.createElement(j, {
                      strLocTokenInfix: "Nomination",
                      newAppID: i,
                      curNominatedAppID: s,
                      fnOnConfirm: l.mutate,
                    }),
                    window,
                  )
                : l.mutate();
            },
            [s, i, l],
          ),
          _ = m.HD.GetTimeNowWithOverride(),
          S = 1 == n.rgAwardCategoryDetails?.length,
          E =
            t.BIsEventActionEnabled() || _ < t.GetStartTimeAndDateUnixSeconds();
        return S && (E || u)
          ? c.createElement(
              "div",
              {
                className: (0, y.A)(
                  f().SteamAwardNominationWidget,
                  f().SteamAwardVoteWidget,
                ),
              },
              c.createElement(
                "div",
                { className: f().NominateCtn },
                c.createElement(
                  "div",
                  {
                    style: { background: n?.strNominateButtonBGColor },
                    className: (0, y.A)(
                      f().SteamAwardNominateButton,
                      u && f().Nominated,
                    ),
                  },
                  c.createElement(g.Yh, {
                    controlled: !0,
                    className: (0, y.A)(
                      f().SteamAwardVoteCheckBox,
                      u && f().Nominated,
                    ),
                    checked: u,
                    onChange: p,
                    disabled: u,
                    color: "#FFFFFF",
                    highlightColor: "white",
                    label: c.createElement(
                      c.Fragment,
                      null,
                      c.createElement(
                        "div",
                        { className: f().SteamAwardCategoryTitle },
                        u
                          ? (0, h.PP)(
                              "#SteamAwards_NominateWidget_CTA_PastTense",
                              n.rgAwardCategoryDetails[0]
                                .strSuggestedCategoryTitle,
                            )
                          : (0, h.PP)(
                              "#SteamAwards_NominateWidget_CTA",
                              n.rgAwardCategoryDetails[0]
                                .strSuggestedCategoryTitle,
                            ),
                      ),
                    ),
                  }),
                ),
                c.createElement(
                  "div",
                  { className: f().SteamAwardCategoryDesc },
                  n.rgAwardCategoryDetails[0].strSuggestedCategoryDesc,
                ),
              ),
              Boolean(E && a != n.eLaborOfLove) &&
                c.createElement(
                  "div",
                  { className: f().SteamAwardLinkToNominationPage },
                  c.createElement(
                    "a",
                    {
                      href: (0, M.NT)(
                        A.TS.STORE_BASE_URL + "steamawards/nominations/",
                      ),
                    },
                    (0, h.we)(
                      "#SteamAwards_EventNominationAlternativeLinkText",
                    ),
                  ),
                ),
            )
          : null;
      }
      function j(e) {
        const {
            curNominatedAppID: t,
            newAppID: n,
            strLocTokenInfix: r,
            fnOnConfirm: a,
            fnOnCancel: i,
            closeModal: s,
          } = e,
          [o] = (0, p.t7)(t, z),
          [l] = (0, p.t7)(n, z);
        return c.createElement(
          v.o0,
          {
            modalClassName: f().SteamAwardConflictModal,
            strTitle: (0, h.we)(`#SteamAward_${r}ConflictWarning_Title`),
            closeModal: s,
            onOK: a,
            onCancel: i,
          },
          c.createElement(
            "div",
            { className: f().ConflictBody },
            (0, h.PP)(
              `#SteamAward_${e.strLocTokenInfix}ConflictWarning_Explanation`,
              c.createElement(
                "span",
                { className: f().SteamAwardModalGameTitle },
                o?.GetName(),
              ),
              c.createElement(
                "span",
                { className: f().SteamAwardModalGameTitle },
                l?.GetName(),
              ),
            ),
            Boolean(!o || !l)
              ? c.createElement(D.t, {
                  size: "small",
                  position: "center",
                  string: (0, h.we)("#Loading"),
                })
              : c.createElement(
                  "div",
                  { className: f().NominationSwitchCtn },
                  c.createElement("img", {
                    src: o.GetAssets().GetSmallCapsuleURL(),
                  }),
                  "→",
                  c.createElement("img", {
                    src: l.GetAssets().GetSmallCapsuleURL(),
                  }),
                ),
          ),
        );
      }
      let k = class extends c.Component {
        constructor(e) {
          super(e), (0, s.Gn)(this);
        }
        state = { eCategoryLoaded: null, votedForAppID: null };
        m_strPreviousVotedForAppTitle = null;
        m_cancelSignal = i().CancelToken.source();
        componentDidMount() {
          this.FetchVoteState();
        }
        componentDidUpdate() {
          this.props.eVoteCategory != this.state.eCategoryLoaded &&
            this.FetchVoteState();
        }
        componentWillUnmount() {
          this.m_cancelSignal.cancel(
            "EventDisplaySteamAwardVote is being unmounted",
          );
        }
        async FetchVoteState() {
          const e = A.TS.STORE_BASE_URL + "steamawards/ajaxgetuservotes";
          if (A.iA.logged_in)
            try {
              const t = await i().get(e, {
                withCredentials: !0,
                cancelToken: this.m_cancelSignal.token,
              });
              if (this.m_cancelSignal.token.reason) return;
              1 == t?.data?.success &&
                t.data.votes &&
                this.UpdateVoteState(t.data.votes);
            } catch (e) {
              const t = (0, w.H)(e);
              console.error(
                "Could not fetch previous votes:" + t.strErrorMsg,
                t,
              );
            }
          else this.UpdateVoteState([]);
        }
        async UpdateVoteState(e) {
          const t = this.props.eVoteCategory,
            n = e[t];
          if (
            (this.setState({ eCategoryLoaded: t, votedForAppID: n }),
            n && n != this.props.appID)
          ) {
            if (
              (await u.A.Get().QueueAppRequest(n, {}),
              this.m_cancelSignal.token.reason)
            )
              return;
            this.props.eVoteCategory == t &&
              (this.m_strPreviousVotedForAppTitle = u.A.Get()
                .GetApp(n)
                ?.GetName());
          }
        }
        async OnVoteClick() {
          const e = this.props.eVoteCategory;
          if (e != this.state.eCategoryLoaded) return;
          if (!b(!0)) return;
          const t = this.props.appID;
          this.state.votedForAppID && this.state.votedForAppID != t
            ? this.HandleConflict(() => this.SaveVote(e, t))
            : this.SaveVote(e, t);
        }
        HandleConflict(e) {
          const t = u.A.Get().GetApp(this.props.appID);
          (0, T.pg)(
            c.createElement(j, {
              strLocTokenInfix: "Vote",
              newAppID: t?.GetAppID(),
              curNominatedAppID: this.state.votedForAppID,
              fnOnConfirm: e,
              fnOnCancel: () => {},
            }),
            window,
          );
        }
        async SaveVote(e, t) {
          if (
            (this.setState({ eCategoryLoaded: e, votedForAppID: t }),
            this.props.previewMode && 1 == A.TS.EUNIVERSE)
          )
            return;
          const n = A.TS.STORE_BASE_URL + "steamawards/ajaxvoteforgame",
            r = new URLSearchParams();
          r.append("sessionid", A.TS.SESSIONID),
            r.append("categoryid", e.toString()),
            r.append("appid", t.toString());
          try {
            const e = await i().post(n, r, {
              withCredentials: !0,
              cancelToken: this.m_cancelSignal.token,
            });
            if (this.m_cancelSignal.token.reason) return;
            (e && 200 == e.status && 1 == e.data.success) ||
              console.error("Vote request failed.", e && (0, w.H)(e));
          } catch (e) {
            const t = (0, w.H)(e);
            console.error("SaveVote failed: " + t.strErrorMsg, t);
          }
        }
        render() {
          const e = this.props.eVoteCategory,
            t =
              this.state.eCategoryLoaded == e &&
              this.state.votedForAppID == this.props.appID,
            n = this.props.bIsEventActionEnabled || this.props.previewMode || t;
          let r = {};
          return (
            this.props.strBackgroundColor.length &&
              (r.backgroundColor = this.props.strBackgroundColor),
            n
              ? c.createElement(
                  "div",
                  { style: r, className: (0, y.A)(f().SteamAwardVoteWidget) },
                  c.createElement(
                    "div",
                    { className: f().SteamAwardVoteButtonArea },
                    c.createElement(
                      "div",
                      {
                        className: (0, y.A)(
                          f().SteamAwardCategoryTitle,
                          f().VotingTitle,
                        ),
                      },
                      this.props.strCategoryTitle,
                    ),
                    !this.props.bRenderFromStorePage &&
                      c.createElement(
                        "div",
                        { className: f().SteamAwardCategoryDesc },
                        this.props.strCategoryDesc,
                      ),
                    t
                      ? c.createElement(
                          "button",
                          { className: f().SteamAwardVoteButtonSubmitted },
                          c.createElement(
                            "span",
                            { className: f().SteamAwardVoteButtonText },
                            (0, h.we)("#SteamAward_VoteButton_VotedText"),
                          ),
                        )
                      : c.createElement(
                          "button",
                          {
                            className: f().SteamAwardVoteButton,
                            onClick: this.OnVoteClick,
                          },
                          c.createElement(
                            "span",
                            { className: f().SteamAwardVoteButtonText },
                            (0, h.we)("#SteamAward_VoteButton_PromptText"),
                          ),
                        ),
                  ),
                )
              : null
          );
        }
      };
      (0, r.Cg)([s.sH], k.prototype, "m_strPreviousVotedForAppTitle", void 0),
        (0, r.Cg)([B.oI], k.prototype, "OnVoteClick", null),
        (0, r.Cg)([B.oI], k.prototype, "SaveVote", null),
        (k = (0, r.Cg)([l.PA], k));
      class G extends c.Component {
        m_voteCategories;
        constructor(e) {
          super(e);
          let t = (0, A.Tc)("steamwawards", "application_config");
          this.m_voteCategories = t?.votecategories;
        }
        render() {
          return this.m_voteCategories
            ? c.createElement(U, {
                appID: this.props.appID,
                bRenderFromStorePage: !0,
                bIsEventActionEnabled: !0,
                voteCategories: this.m_voteCategories,
              })
            : (console.error(
                `SteamAwardStorePageVoteWidget: Missing Steam Awards config for app ${this.props.appID}`,
              ),
              null);
        }
      }
      let U = class extends c.Component {
        m_cancelSignal = i().CancelToken.source();
        m_awardEventDetails = null;
        constructor(e) {
          super(e), (0, s.Gn)(this), (this.state = { bAppInfoLoaded: !1 });
        }
        componentDidMount() {
          u.A.Get()
            .QueueAppRequest(this.props.appID, {})
            .then(() => {
              u.A.Get().BHasApp(this.props.appID) &&
                this.setState({ bAppInfoLoaded: !0 });
            }),
            L(this.props.voteCategories, this.m_cancelSignal).then((e) => {
              this.m_awardEventDetails = e;
            });
        }
        componentWillUnmount() {
          this.m_cancelSignal.cancel(
            "WinterSaleSteamAwardVoteWrapper is being unmounted",
          );
        }
        GetNominatedAwardCategories() {
          let e = [];
          return (
            this.m_awardEventDetails.rgAwardCategoryDetails?.forEach((t) => {
              e.push(
                c.createElement(k, {
                  key: t.eSteamAwardCategoryID,
                  eVoteCategory: t.eSteamAwardCategoryID,
                  strCategoryDesc: t.strSuggestedCategoryDesc,
                  strCategoryTitle: t.strSuggestedCategoryTitle,
                  strBackgroundColor:
                    this.m_awardEventDetails.strNominateButtonBGColor,
                  ...this.props,
                }),
              );
            }),
            e
          );
        }
        render() {
          if (!this.state.bAppInfoLoaded || !this.props.voteCategories)
            return null;
          if (!this.m_awardEventDetails) return null;
          let e = {};
          return (
            this.m_awardEventDetails.strBackgroundCSS?.length &&
              (e.backgroundColor = this.m_awardEventDetails.strBackgroundCSS),
            this.m_awardEventDetails.strBackgroundImage?.length &&
              (e.backgroundImage = `url( ${this.m_awardEventDetails.strBackgroundImage} )`),
            this.m_awardEventDetails.strTextColor?.length &&
              (e.color = this.m_awardEventDetails.strTextColor),
            c.createElement(
              "div",
              {
                style: e,
                className: (0, y.A)(
                  f().SteamAwardContainer,
                  S().PartnerEventFont,
                ),
              },
              c.createElement(
                "div",
                { className: f().SteamAwardHeader },
                c.createElement("img", {
                  className: f().SteamAwardHeaderImage,
                  src: this.m_awardEventDetails.strTrophyImg,
                }),
                c.createElement(
                  "div",
                  { className: f().SteamAwardMainCtn },
                  c.createElement(
                    "div",
                    { className: f().SteamAwardMainTitle },
                    " ",
                    (0, h.we)("#SteamAwards_EventMainTitleCombined"),
                    " ",
                  ),
                  c.createElement(
                    "div",
                    { className: f().SteamAwardHeaderText },
                    this.props.bIsEventActionEnabled
                      ? c.createElement(
                          c.Fragment,
                          null,
                          (0, h.we)(
                            "#SteamAwards_EventVoteForGamePrompt",
                            u.A.Get().GetApp(this.props.appID)?.GetName(),
                          ),
                        )
                      : c.createElement(
                          "a",
                          {
                            href: (0, M.NT)(
                              A.TS.STORE_BASE_URL + "steamawards/",
                            ),
                            className: f().LinkText,
                          },
                          (0, h.we)("#SteamAwards_Event_VotesClosed"),
                        ),
                  ),
                  c.createElement(
                    "div",
                    { className: f().AwardCategoriesCtn },
                    this.GetNominatedAwardCategories(),
                  ),
                ),
              ),
              c.createElement(
                "div",
                { className: f().SteamAwardLinkToNominationPage },
                c.createElement(
                  "a",
                  { href: (0, M.NT)(A.TS.STORE_BASE_URL + "steamawards/") },
                  (0, h.we)("#EventDisplay_CallToAction_LearnMore"),
                ),
              ),
            )
          );
        }
      };
      (0, r.Cg)([s.sH], U.prototype, "m_awardEventDetails", void 0),
        (U = (0, r.Cg)([l.PA], U));
    },
    67417: (e, t, n) => {
      "use strict";
      n.d(t, { OT: () => T, j6: () => v, lS: () => w });
      var r = n(65946),
        a = n(90626),
        i = n(52038),
        s = n(95695),
        o = n.n(s),
        l = n(76684),
        c = n(61859),
        m = n(27543),
        d = n(78327),
        u = n(90316),
        p = n.n(u),
        g = n(61336),
        _ = n(32754),
        S = n(55263),
        E = n(12155);
      function w(e) {
        const { appid: t } = e;
        return a.createElement(
          "div",
          { className: p().AppSocialLinksCtn },
          a.createElement(y, { appid: t }),
        );
      }
      function y(e) {
        const { appid: t } = e,
          [n] = (0, S.t7)(t, { include_basic_info: !0, include_links: !0 });
        if (!n) return null;
        const r = n.GetLinks();
        return r && 0 != r.length && d.TS.IMG_URL
          ? a.createElement(
              a.Fragment,
              null,
              a.createElement(
                "div",
                {
                  className: (0, i.A)(
                    o().EventEditorTextTitle,
                    "EventEditorTextTitle",
                  ),
                },
                (0, c.we)("#EventDisplay_SocialTitle"),
              ),
              a.createElement(
                "div",
                { className: p().AppSocialLinks },
                r.map((e) =>
                  e.url
                    ? a.createElement(h, {
                        key: "app_social_link_" + t + "_" + e.link_type,
                        social: e,
                      })
                    : a.createElement(B, {
                        key:
                          "app_social_text_" +
                          t +
                          "_" +
                          e.link_type +
                          "_" +
                          e.text,
                        social: e,
                      }),
                ),
              ),
            )
          : null;
      }
      function h(e) {
        const { social: t } = e;
        return a.createElement(
          "a",
          {
            href: (0, g.NT)(t.url),
            target: d.TS.IN_CLIENT ? void 0 : "_blank",
            rel: "noopener noreferrer",
          },
          a.createElement(
            _.he,
            { toolTipContent: t.url },
            a.createElement(M, { social: t }),
          ),
        );
      }
      function B(e) {
        const { social: t } = e;
        return a.createElement(
          "div",
          { className: p().AppSocialLinkWithText },
          a.createElement(
            _.he,
            { toolTipContent: t.text },
            a.createElement(M, { social: t }),
          ),
          a.createElement("div", { className: p().AppSocialText }, t.text),
        );
      }
      function M(e) {
        const { social: t } = e;
        return a.createElement(A, {
          linkType: t.link_type,
          className: p().AppSocialLinkIcon,
        });
      }
      function A(e) {
        const { linkType: t, ...n } = e;
        switch (t) {
          case 1:
            return a.createElement(E.agV, { ...n });
          case 2:
            return a.createElement(E.ZnA, { ...n });
          case 3:
            return a.createElement(E.oy, { ...n });
          case 4:
            return a.createElement(E.ofN, { ...n });
          case 5:
            return a.createElement(E.Bki, { ...n });
          case 6:
          case 18:
            return a.createElement(E.$vK, { ...n });
          case 7:
            return a.createElement(E.OSJ, { ...n });
          case 8:
            return a.createElement(E.nm_, { ...n });
          case 9:
            return a.createElement(E.tIO, { ...n });
          case 10:
            return a.createElement(E.Vt2, { ...n });
          case 11:
            return a.createElement(E.Vgk, { ...n });
          case 12:
            return a.createElement(E.VSd, { ...n });
          case 13:
            return a.createElement(E.ccb, { ...n });
          case 14:
            return a.createElement(E.rNt, { ...n });
          case 15:
            return a.createElement(E.g$j, { ...n });
          case 16:
            return a.createElement(E.BQz, { ...n });
          case 17:
            return a.createElement(E.jdP, { ...n });
          case 19:
            return a.createElement(E.bKN, { ...n });
          case 20:
            return a.createElement(E.sDU, { ...n });
          case 21:
            return a.createElement(E.MbF, { ...n });
          case 22:
            return a.createElement(E.emH, { ...n });
          case 23:
          case 0:
            return "invalid social media type";
        }
      }
      function v(e) {
        const { event: t, nOverrideStartTime: n, nOverrideEndTime: i } = e,
          s = e.stylesmodule ? { ...p(), ...e.stylesmodule } : p(),
          [o, c, d] = (0, r.q3)(() => [
            n ||
              (t.bOldAnnouncement
                ? t.postTime
                : t.GetStartTimeAndDateUnixSeconds()),
            i || t.GetEndTimeAndDateUnixSeconds(),
            t.type,
          ]),
          u = !(0, m.JS)(d);
        return a.createElement(
          "div",
          { className: s.EventDetailTimeInfo },
          a.createElement(l.v9, {
            startDateAndTime: o,
            endDateAndTime: c,
            bHideEndTime: u,
            stylesmodule: s,
          }),
        );
      }
      function T(e) {
        const { event: t, dateRangeLayout: n = "horizontal" } = e,
          [i, s, o] = (0, r.q3)(() => [
            t.GetStartTimeAndDateUnixSeconds(),
            t.GetEndTimeAndDateUnixSeconds(),
            t.type,
          ]),
          c = {};
        return (
          "vertical" == n && (c.ShortDateRange = p().VerticalLocalDateAndTime),
          a.createElement(
            "div",
            { className: p().EventDetailTimeInfo },
            a.createElement(l.u1, {
              startDateAndTime: i,
              endDateAndTime: s,
              bHideEndTime: !(0, m.JS)(o),
              stylesmodule: c,
            }),
          )
        );
      }
    },
    71746: (e, t, n) => {
      "use strict";
      n.d(t, { _: () => m });
      var r = n(82097),
        a = n(65946),
        i = n(90626),
        s = n(48628),
        o = n(61859),
        l = n(66661),
        c = n.n(l);
      function m(e) {
        const { event: t } = e,
          n = (0, a.q3)(() => t.jsondata?.referenced_appids || []),
          [l, m] = i.useState(!1);
        if (
          (i.useEffect(() => {
            r.A.Get()
              .QueueMultipleAppRequests(n, {})
              .then(() => m(!0));
          }, [n]),
          !n.length || !l)
        )
          return null;
        const d = n
            .map((e) => r.A.Get().GetApp(e))
            .filter(Boolean)
            .map((e) => `[url="${e.GetStorePageURL()}"]${e.GetName()}[/url]`)
            .join((0, o.we)("#EventDisplay_ReferencedApps_Joiner")),
          u = (0, o.Yp)("#EventDisplay_ReferencedApps", n.length, d);
        return i.createElement(
          "div",
          { className: c().ReferencedApps },
          i.createElement(s.f, { text: u }),
        );
      }
    },
    69409: (e, t, n) => {
      "use strict";
      n.d(t, { m: () => u });
      var r = n(90626),
        a = n(22837),
        i = n(38390),
        s = n(27666),
        o = n(52038),
        l = n(61859),
        c = n(61336),
        m = n(78327),
        d = n(15392);
      function u(e) {
        const { gidEvent: t } = e,
          n = (0, i.RR)(t),
          [u, p] = (0, r.useMemo)(() => {
            if (
              n?.jsondata?.localized_sale_product_banner?.length > 0 &&
              n?.jsondata?.localized_sale_product_mobile_banner?.length > 0
            ) {
              const e = (0, a.sf)(m.TS.LANGUAGE),
                t = l.NT.GetWithFallback(
                  n.jsondata.localized_sale_product_banner,
                  e,
                ),
                r = l.NT.GetWithFallback(
                  n.jsondata.localized_sale_product_mobile_banner,
                  e,
                );
              if (t?.length > 0 && r?.length > 0) {
                const e = n.clanSteamID.GetAccountID();
                return [`${(0, s.mJ)()}${e}/${t}`, `${(0, s.mJ)()}${e}/${r}`];
              }
            }
            return [null, null];
          }, [n]);
        return u?.length > 0 && p?.length > 0
          ? r.createElement(
              "a",
              { href: (0, c.k2)(n.GetSaleURL()), className: d.Link },
              r.createElement("img", {
                src: u,
                className: (0, o.A)(d.Banner, d.Big),
              }),
              r.createElement("img", {
                src: p,
                className: (0, o.A)(d.Banner, d.Mobile),
              }),
            )
          : null;
      }
    },
    99066: (e, t, n) => {
      "use strict";
      n.d(t, { Wt: () => D });
      var r = n(34629),
        a = n(90626),
        i = n(22837),
        s = n(75113),
        o = n(95695),
        l = n.n(o),
        c = n(82477),
        m = n(52038),
        d = n(61859),
        u = n(73745),
        p = n(78327),
        g = n(96715);
      var _ = n(10886),
        S = n(19654),
        E = n(3209),
        w = n(51706),
        y = n(32754),
        h = n(51272),
        B = n(14256),
        M = n.n(B),
        A = n(1909),
        v = n(73067),
        T = n(33737);
      class D extends a.Component {
        state = { bShareOnSteamDialog: !1, bRequireLoginToShare: !1 };
        ShareOnSteamActivityFeed() {
          p.iA.logged_in
            ? this.setState({ bShareOnSteamDialog: !0 })
            : p.TS.IN_CLIENT
              ? console.log(
                  "ShareEventOnSocialMediaDialog: In Client: Cannot use login widget. We expect to be already logged in.",
                )
              : this.setState({ bRequireLoginToShare: !0 });
        }
        render() {
          const {
            eventLink: e,
            fnGetSharePageUrl: t,
            appid: n,
            closeModal: r,
            emoticonStore: i,
            partnerEventStore: s,
          } = this.props;
          return this.state.bRequireLoginToShare
            ? a.createElement(w.o0, {
                strTitle: (0, d.we)("#EventDisplay_Share_NotLoggedIn"),
                strDescription: (0, d.we)(
                  "#EventDisplay_Share_NotLoggedIn_Description",
                ),
                strOKButtonText: (0, d.we)("#MobileLogin_SignIn"),
                onCancel: this.props.closeModal,
                onOK: () => (0, c.vg)(),
              })
            : this.state.bShareOnSteamDialog
              ? a.createElement(v.J, {
                  eventLink: e,
                  appid: n,
                  emoticonStore: i,
                  partnerEventStore: s,
                  closeModal: r,
                })
              : a.createElement(
                  w.o0,
                  {
                    strDescription: "",
                    strTitle: (0, d.we)("#Button_Share"),
                    onCancel: this.props.closeModal,
                    onOK: this.props.closeModal,
                    bAlertDialog: !0,
                    modalClassName: "EventDisplay_Share_Dialog",
                  },
                  a.createElement(C, {
                    eventLink: e,
                    fnGetSharePageUrl: t,
                    fnShareOnSteamActivityFeed: this.ShareOnSteamActivityFeed,
                  }),
                );
        }
      }
      (0, r.Cg)([u.oI], D.prototype, "ShareOnSteamActivityFeed", null);
      const C = (e) => {
          const {
              eventLink: t,
              fnGetSharePageUrl: n,
              fnShareOnSteamActivityFeed: r,
            } = e,
            o = (0, p.Y2)(),
            [c, u] = (0, a.useState)((0, i.sf)(p.TS.LANGUAGE)),
            g = (0, a.useMemo)(() => {
              const e = new URL(t);
              return e.searchParams.set("l", (0, i.Lg)(c)), e.href;
            }, [c, t]);
          return a.createElement(
            "div",
            {
              className: (0, m.A)(
                l().FlexColumnContainer,
                M().share_controls_ctn,
              ),
            },
            !o &&
              a.createElement(
                a.Fragment,
                null,
                a.createElement(
                  "div",
                  { className: M().ShareLanguagePicker },
                  a.createElement(
                    T.JU,
                    { className: M().LanguageLabel },
                    (0, d.we)("#EventDisplay_Share_LanguageLabel"),
                  ),
                  a.createElement(
                    "div",
                    null,
                    a.createElement(A.Ng, {
                      selectedLang: c,
                      fnOnLanguageChanged: u,
                    }),
                  ),
                ),
                a.createElement(
                  "div",
                  {
                    className: (0, m.A)(
                      l().FlexRowContainer,
                      M().ShareButtonContainer,
                    ),
                    style: { flexWrap: "wrap" },
                  },
                  a.createElement(
                    y.he,
                    {
                      toolTipContent: (0, d.we)("#EventDisplay_Share_OnSteam"),
                    },
                    a.createElement(
                      "div",
                      {
                        onClick: r,
                        className: (0, m.A)(
                          l().Button,
                          M().ShareBtn,
                          M().ShareSteamBtn,
                        ),
                      },
                      a.createElement("img", {
                        className: M().SteamIcon,
                        src: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIxNDAwcHgiIGhlaWdodD0iMTQwOXB4IiB2aWV3Qm94PSIwIDAgMTQwMCAxNDA5IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxNDAwIDE0MDkiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNjk4LjE5NSwxMC4xMjVjLTM2NC4zNDcsMC02NjIuODM4LDI4MC45MzgtNjkxLjIwNiw2MzcuOTY5TDM3OC43NCw4MDEuNzk3CgljMzEuNTAyLTIxLjUzOSw2OS41NTUtMzQuMTMzLDExMC40OTUtMzQuMTMzYzMuNjY5LDAsNy4zMTUsMC4wOSwxMC45MzksMC4zMTNsMTY1LjMzLTIzOS42MzdjMC0xLjEzNy0wLjAyOS0yLjI1LTAuMDI5LTMuMzk1CgljMC0xNDQuMjI3LDExNy4zMzUtMjYxLjU3NCwyNjEuNTgyLTI2MS41NzRjMTQ0LjIzMywwLDI2MS41ODMsMTE3LjM0OCwyNjEuNTgzLDI2MS41NzRjMCwxNDQuMjQ2LTExNy4zNSwyNjEuNTk4LTI2MS41ODMsMjYxLjU5OAoJYy0xLjk5LDAtMy45NS0wLjA0Ny01LjkyNi0wLjA5TDY4NS4zNDEsOTU0LjY4OGMwLjExOSwzLjA3NCwwLjIzLDYuMTkxLDAuMjMsOS4yOTdjMCwxMDguMjczLTg4LjA3NiwxOTYuMzUyLTE5Ni4zMzYsMTk2LjM1MgoJYy05NS4wNDEsMC0xNzQuNDk0LTY3Ljg0OC0xOTIuNDk2LTE1Ny42NzZMMzAuODcyLDg5Mi43NTRjODIuMzIsMjkxLjEzNywzNDkuODA3LDUwNC41ODIsNjY3LjMyMyw1MDQuNTgyCgljMzgzLjA2MiwwLDY5My41OTgtMzEwLjU1MSw2OTMuNTk4LTY5My42MTNDMTM5MS43OTMsMzIwLjY2NCwxMDgxLjI1NywxMC4xMjUsNjk4LjE5NSwxMC4xMjUiLz4KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTQ0MS42NDgsMTA2Mi41NjNsLTg1LjIwMi0zNS4yMDNjMTUuMTA1LDMxLjQ0NSw0MS4yMyw1Ny43NjIsNzUuOTExLDcyLjIxNQoJYzc0Ljk2MSwzMS4yNSwxNjEuNDEtNC4zMzYsMTkyLjY2Ny03OS4zNTljMTUuMTEyLTM2LjMxMywxNS4yMjQtNzYuMzU1LDAuMjIzLTExMi43NDJjLTE0Ljk3OS0zNi4zOTEtNDMuMjUtNjQuNzczLTc5LjU3Mi03OS45MjIKCWMtMzYuMDQ3LTE1LjAwNC03NC42NTYtMTQuNDM4LTEwOC41ODctMS42MzdsODguMDA5LDM2LjM5MWM1NS4zMDQsMjMuMDUxLDgxLjQ0NCw4Ni41NTksNTguNDA4LDE0MS44NTUKCUM1NjAuNDc2LDEwNTkuNDU3LDQ5Ni45NDQsMTA4NS42MTMsNDQxLjY0OCwxMDYyLjU2MyIvPgo8cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNMTEwMS4zNTMsNTI0Ljk2MWMwLTk2LjExMy03OC4xODQtMTc0LjMxMy0xNzQuMjk1LTE3NC4zMTNjLTk2LjA5NiwwLTE3NC4yOTQsNzguMTk5LTE3NC4yOTQsMTc0LjMxMwoJYzAsOTYuMTAyLDc4LjE5OCwxNzQuMjc3LDE3NC4yOTQsMTc0LjI3N0MxMDIzLjE2OSw2OTkuMjM4LDExMDEuMzUzLDYyMS4wNjMsMTEwMS4zNTMsNTI0Ljk2MSBNNzk2LjQxNSw1MjQuNjU2CgljMC03Mi4zMjQsNTguNjM4LTEzMC45MTgsMTMwLjk0LTEzMC45MThjNzIuMzE2LDAsMTMwLjkyNSw1OC41OTQsMTMwLjkyNSwxMzAuOTE4YzAsNzIuMzE2LTU4LjYwOCwxMzAuOTE4LTEzMC45MjUsMTMwLjkxOAoJQzg1NS4wNTMsNjU1LjU3NCw3OTYuNDE1LDU5Ni45NzMsNzk2LjQxNSw1MjQuNjU2Ii8+Cjwvc3ZnPgo=",
                      }),
                      a.createElement(
                        "span",
                        { style: { whiteSpace: "nowrap" } },
                        (0, d.we)("#EventDisplay_Share_OnMyStatus"),
                      ),
                    ),
                  ),
                  a.createElement(
                    y.he,
                    {
                      toolTipContent: (0, d.we)(
                        "#EventDisplay_Share_OnFaceBook",
                      ),
                    },
                    a.createElement(
                      h.uU,
                      { href: n(s._.k_eFacebook), className: M().ShareBtn },
                      a.createElement("img", {
                        className: (0, m.A)(l().Button),
                        src: _.A,
                      }),
                    ),
                  ),
                  a.createElement(
                    y.he,
                    {
                      toolTipContent: (0, d.we)(
                        "#EventDisplay_Share_OnTwitter",
                      ),
                    },
                    a.createElement(
                      h.uU,
                      { href: n(s._.k_eTwitter), className: M().ShareBtn },
                      a.createElement("img", {
                        className: (0, m.A)(l().Button),
                        src: E.A,
                      }),
                    ),
                  ),
                  a.createElement(
                    y.he,
                    {
                      toolTipContent: (0, d.we)("#EventDisplay_Share_OnReddit"),
                    },
                    a.createElement(
                      h.uU,
                      { href: n(s._.k_eReddit), className: M().ShareBtn },
                      a.createElement("img", {
                        className: (0, m.A)(l().Button),
                        src: S.A,
                      }),
                    ),
                  ),
                ),
                a.createElement("div", { className: l().Divider }),
              ),
            a.createElement(N, { eventLink: g }),
          );
        },
        N = (e) => {
          const t = a.createRef(),
            [n, r] = a.useState(""),
            i = a.createRef();
          return a.createElement(
            "div",
            null,
            a.createElement(
              "div",
              {
                className: (0, m.A)(l().FlexRowContainer, M().linkField),
                onClick: (e) => {
                  t.current &&
                    t.current.ownerDocument.defaultView.navigator.clipboard
                      .writeText(t.current.value)
                      .then((e) => {
                        r((0, d.we)("#EventDisplay_Share_CopiedToClipboard"));
                      })
                      .catch((e) => {
                        r(
                          (0, d.we)(
                            "#EventDisplay_Share_FailedToCopyToClipboard",
                          ),
                        ),
                          console.error("Failed to copy link to clipboard:", e);
                      });
                },
              },
              a.createElement(
                "span",
                { className: M().LinkInputLabel },
                (0, d.we)(
                  e.labelOverride
                    ? e.labelOverride
                    : "#EventDisplay_Share_Link",
                ),
              ),
              a.createElement("textarea", {
                className: M().LinkInput,
                ref: t,
                value: e.eventLink,
                readOnly: !0,
              }),
              document.queryCommandSupported("copy") &&
                a.createElement(
                  "div",
                  {
                    className: (0, m.A)(l().Button, l().Icon, M().LinkButton),
                    title: (0, d.we)("#ToolTip_CopyLinkToClipboard"),
                  },
                  a.createElement(
                    y.he,
                    {
                      toolTipContent: (0, d.we)("#ToolTip_CopyLinkToClipboard"),
                    },
                    a.createElement("img", {
                      className: M().ClipboardIcon,
                      src: g.A,
                    }),
                  ),
                ),
            ),
            a.createElement("div", { ref: i, className: M().ClipboardText }, n),
          );
        };
    },
    96715: (e, t, n) => {
      "use strict";
      n.d(t, { A: () => r });
      const r =
        "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIxNDAwcHgiIGhlaWdodD0iMTQwOXB4IiB2aWV3Qm94PSIwIDE4MDEuNSAxNDAwIDE0MDkiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAxODAxLjUgMTQwMCAxNDA5IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHBhdGggaWQ9Imljb25tb25zdHItbGluay0xXzFfIiBmaWxsPSIjRkZGRkZGIiBkPSJNMzYyLjM1MywyMzEwLjU4OGMxNDguMjM1LTE0OC4yMzUsMzg3LjA2LTE0OC4yMzUsNTI3LjA2LDAKCWMxNi40NzEsMTYuNDcxLDMyLjk0MSw0MS4xNzcsNDkuNDExLDU3LjY0N0w4MDcuMDU5LDI1MDBjLTQxLjE3Ni04Mi4zNTMtMTMxLjc2NS0xMzEuNzY1LTIyMi4zNTMtMTE1LjI5NAoJYy00MS4xNzcsOC4yMzUtNzQuMTE4LDI0LjcwNi05OC44MjMsNDkuNDExbC0yNDcuMDU5LDI0Ny4wNmMtNzQuMTE4LDc0LjExNy03NC4xMTgsMTk3LjY0NiwwLDI4MAoJYzc0LjExOCw3NC4xMTcsMTk3LjY0Nyw3NC4xMTcsMjgwLDBsMCwwbDc0LjExOC03NC4xMThjNzQuMTE3LDI0LjcwNiwxNDguMjM1LDQxLjE3NywyMjIuMzUzLDMyLjk0MWwtMTcyLjk0LDE3Mi45NDEKCWMtMTQ4LjIzNSwxNDguMjM1LTM4Ny4wNiwxNDguMjM1LTUyNy4wNiwwcy0xNDguMjM1LTM4Ny4wNTksMC01MjcuMDU5QzEwNy4wNTksMjU1Ny42NDcsMzYyLjM1MywyMzEwLjU4OCwzNjIuMzUzLDIzMTAuNTg4egoJIE03NTcuNjQ2LDE5MDcuMDU5TDU5Mi45NDEsMjA4MGM3NC4xMTctOC4yMzUsMTQ4LjIzNSw4LjIzNSwyMTQuMTE3LDMyLjk0MWw3NC4xMTgtNzQuMTE4Yzc0LjExNy03NC4xMTcsMTk3LjY0Ni03NC4xMTcsMjgwLDAKCWM4Mi4zNTMsNzQuMTE4LDc0LjExNywxOTcuNjQ3LDAsMjgwbC0yNTUuMjk0LDI0Ny4wNmMtNzQuMTE4LDc0LjExNy0xOTcuNjQ3LDc0LjExNy0yODAsMAoJYy04LjIzNS0xNi40NzEtMjQuNzA2LTQxLjE3Ny0zMi45NDEtNjUuODgzbC0xMzEuNzY1LDEzMS43NjVjMTYuNDcxLDI0LjcwNiwzMi45NCw0MS4xNzcsNDkuNDExLDU3LjY0NwoJYzE0OC4yMzUsMTQ4LjIzNSwzODcuMDU5LDE0OC4yMzUsNTI3LjA2LDBsMCwwbDI0Ny4wNTktMjQ3LjA2YzE0OC4yMzUtMTQ4LjIzNSwxNDguMjM1LTM4Ny4wNTksMC01MjcuMDU5CglTOTA1Ljg4MywxNzY3LjA1OSw3NTcuNjQ2LDE5MDcuMDU5TDc1Ny42NDYsMTkwNy4wNTlMNzU3LjY0NiwxOTA3LjA1OXoiLz4KPC9zdmc+Cg==";
    },
    10886: (e, t, n) => {
      "use strict";
      n.d(t, { A: () => r });
      const r =
        "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAc9JREFUeNrsmz1Lw1AUhnP8qB+Qkk0pItbVxcX/IM6Cky7iFH+Jk79BwclBB3+AszgUwdVNBxFaCw1E7fW9cAep5pa0NiT3vgdeLjRJm/Ocm/NRiCilAp9tKvDcCIAACIAAsiyEzqAepCqqnvEhzHJSLGVQX7jvSKDPoYO8ADS9BUcAJNBiXgCudUjCJEgABPDLZip2v12obwIXur4DdBK+MeVrHaqJSB2KzKqT2izUgLZd2wH30CF8bFnTusgnlhdUsjmXAFxBe3Au9TEJ3hXpfNkA9M22T4v80TIBuIbzDz73ARe+9wG31pqo1DSWGNqBlgcO16oO4A3b/3XIOafQ8b9PSCWZBh8BYMMSfd3wvEPzrk6DH0OON8Z0vvLDkHAaJAACIICJJJeCy+Aa1Pnj8y+Uwa6lDOpA1S3fewSdjJJIi26EOnC0nTtKInpQalsALfn+CDQJgAA8BYDnP8IS+bwDmuNcXHQVWDURG7QUmf7ZEmV9nysZh7dcGIdbALBpAaD7h6dJDFRshQmAAAiAAAiAAAiAAAiAAAiAAAiAAAjgpyUO+ZmMAuDSIQCZvtj+E4zNuhtU98WJxDgfZ50gfHOUSZAACIAAPLZvAQYAZ32YkpymkAcAAAAASUVORK5CYII=";
    },
    19654: (e, t, n) => {
      "use strict";
      n.d(t, { A: () => r });
      const r =
        n.p +
        "images/applications/store/reddit_large.png?v=valveisgoodatcaching";
    },
    3209: (e, t, n) => {
      "use strict";
      n.d(t, { A: () => r });
      const r =
        "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABApJREFUeNrsm2tIFUEUx2evRl5ISnugZuULIwoVtIykIIkgowdmERERUh9CqQ/Rh+gFCX4oKCIjyi8VQtETsoLoARViJEokRYlako9Iy4JKfLX9hz2CwXrv7t6ZvbvcPfDjwr3uzJ7/npk5c3ZUVFVlkWw+FuHmCeAJ4AngCeAJ4AkQwRbtgnucBzJALPgNPoJ28FdI6zwTdCDp4DToUvWtF1SDHIPtFUz0m5GLp9noeAw4BYZV43YFxOm05QNF4DmosirADNABMm1wPgE0qdasHWSAKJALKkAr/TYIUq0KcIAa4Y0lS3Q+HjSroVk/+Knz/eFAfQe7sfpxDckU4bYqx2opKsb6UcwIMElnLPLhsECw8xskOc9F9RPFoIaGyX/9B8oDknSWybmgHhQJXOaOSlg634AP4AH4Dm6Bh6DVzDKYE0ThSoqSUJ5+lmqPVUx0D4EioDeIygdBA8gL4UmtsiGROhcoygIJ8AUMBGk8G7wC1SDRws1lSXb+OCjngW5FgFHw0kAnCthF6ekZkGLiBhMlOT4ENoNjoW6GrpvoNAbsBW3gLtgKpgS5ZkCSAD3gpojdYA34ZmGHuQ5cpWtrSZilJNJ46w/3TksxUBbfDS4K6m+ElqdO0A3mg2WSlsFsUQLwMX4DbHLRNr/eqLCBhkAm2EgC7ABPXCRAr9E/DFQQ8YM7FK61FAUJYKELBGgTIUA3fSaDPS6rdBkWIFgm+M6lpb4mUUXRey50fhA0ihLgLBh2mQANlAkKEaCTNhNusvuiEyE/7QmyXCJAhqhJcHy+vtZMo2G0RrP3afTNEB8KBeCpwwUwnbIrJo/I8KxwJzgCUh3mfD/lLH9kRAC3eLCIabW1FWA/bTudYufNOm82AuJAF02KzIFPPw38MHuhz2Qnlxw69iutOG9lDuDDoAVMd5Dzb0EuZYBMZgRw4zV2XuoadYjz/BV5qVXnrQjA7THY7pAU+STTqtKWTQnhpCjPCy6D9DA5/wIUMq3MFhYBxtJkXncvY9pJDrusAywBX0NtSBF0VthHe4Xl9FnK5J0/6qPoaxF146Imo9dUQFkj2flCUc6LFIDvwK7RBDlbYtjzCGsW2Wiop8TyafxvA1ESx3wdKGHa+0oWTgGmgsVgNVjPtBcbMo1PUCdo8yVl2dUTYBY4BOYw7VxeLGWAKbTbUmya6d8z7aVrnVyJ9Q8ORINy0KPab31gn4DDF4YItgz66SmU2RDun0AVuAB+2ZVQGM0DeNivBFtAMZgpcBvLi5j8LfQjJur4q+REiM/2eSRIPiU+aQZzhc+UL/DS9TOmFVtHWBhNVCY4mWmnypJo2IwdjBikp8xTVl5XHGIOM8X7t7kIN08ATwBPAE8ATwBPgAi2fwIMABJGc33swO3GAAAAAElFTkSuQmCC";
    },
  },
]);
