local v0 = string.gsub(string.gsub(string.gsub(game:GetService("ContentProvider").BaseUrl, ".*://", ""), "/.*", ""), "^www%.", "");
local v7 = {
    new = function(v1, v2)
        assert(type(v1) == "string", "UrlBase.new: `name` should be a string");
        if v2 == nil then
            v2 = {};
        end;
        if not (type(v2) ~= "number") or type(v2) == "string" then
            v2 = {
                version = v2
            };
        end;
        assert(type(v2) == "table", "UrlBase.new: `params` should be a table");
        local l_proto_0 = v2.proto;
        local l_version_0 = v2.version;
        local l_path_0 = v2.path;
        if l_proto_0 == nil then
            l_proto_0 = v2.secure == false and "http" or "https";
        end;
        local l_l_proto_0_0 = l_proto_0;
        if #l_proto_0 > 0 then
            l_l_proto_0_0 = l_l_proto_0_0 .. "://";
        end;
        l_l_proto_0_0 = l_l_proto_0_0 .. v1;
        if #v1 > 0 then
            l_l_proto_0_0 = l_l_proto_0_0 .. ".";
        end;
        l_l_proto_0_0 = l_l_proto_0_0 .. v0;
        if l_version_0 ~= nil and #tostring(l_version_0) > 0 then
            l_l_proto_0_0 = l_l_proto_0_0 .. "/v" .. tostring(l_version_0);
        end;
        if l_path_0 ~= nil and #l_path_0 > 0 then
            l_l_proto_0_0 = l_l_proto_0_0 .. "/" .. l_path_0;
        end;
        return l_l_proto_0_0;
    end
};
local v8 = string.sub(v0, -6) == "qq.com";
v7.API = v7.new("api");
v7.APIS = v7.new("apis");
v7.APIS_RBXCDN = "https://apis.rbxcdn.com";
v7.AUTH = v7.new("auth");
v7.CHAT = v7.new("chat");
v7.CREATE = v7.new("create");
v7.FRIENDS = v7.new("friends", 1);
v7.ASSETGAME = v7.new("assetgame");
v7.GAMES = v7.new("games", 1);
v7.NOTIFICATION = v7.new("notification", 2);
v7.NOTIFICATIONS = v7.new("notifications", 2);
v7.PRESENCE = v7.new("presence", 1);
v7.REALTIME = v7.new("realtime");
v7.WEB = v7.new("web");
v7.WWW = v7.new("www");
v7.ADS = v7.new("ads", 1);
v7.ADCONFIGURATION = v7.new("adconfiguration", 2);
v7.FOLLOWINGS = v7.new("followings", 1);
v7.PREMIUM = v7.new("premiumfeatures", 1);
v7.BLOG = "https://blog.roblox.com";
v7.CORP = not v8 and "https://corp.roblox.com" or "https://roblox.qq.com";
v7.USERMODERATION = v7.new("usermoderation", 1);
v7.ACCOUNTINFORMATION = v7.new("accountinformation", 1);
v7.ACCOUNTSETTINGS = v7.new("accountsettings");
v7.BADGES = v7.new("badges", 1);
v7.INVENTORY = v7.new("inventory", 1);
v7.CATALOG = v7.new("catalog", 1);
v7.AVATAR = v7.new("avatar", 1);
v7.MOBILENAV = "roblox://navigation";
v7.APPSFLYER = "https://ro.blox.com";
return v7;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.Cryo);
local v2 = require(l_Parent_0.StringUtilities);
local l_StringTrim_0 = v2.StringTrim;
local l_StringSplit_0 = v2.StringSplit;
local v5 = require(script.Parent.encodeURIComponent);
local v6 = require(script.Parent.UrlBase);
local v7 = require(script.Parent.UrlPatterns.GameUrlPatterns);
local v8 = require(script.Parent.UrlPatterns.UserUrlPatterns);
local v9 = require(script.Parent.UrlPatterns.StaticUrlPatterns);
local v10 = require(script.Parent.UrlPatterns.CatalogUrlPatterns);
local v11 = require(script.Parent.UrlPatterns.EconomyUrlPatterns);
local v12 = require(script.Parent.UrlPatterns.ShareLinksUrlPatterns);
local v13 = require(script.Parent.UrlPatterns.UserModerationPatterns);
local v14 = require(script.Parent.UrlPatterns.AccountInformationPatterns);
local v15 = require(script.Parent.UrlPatterns.VirtualEventsUrlPatterns);
local v16 = require(script.Parent.UrlPatterns.PlatformAuthPatterns);
local v17 = {};
local function v23(v18, v19, v20)
    return (v1.List.filter(v1.List.map(l_StringSplit_0(v18, v19, v20), function(v21)
        return l_StringTrim_0(v21);
    end), function(v22)
        return #v22 > 0;
    end));
end;
local function v29(v24)
    local v25 = type(v24);
    if v25 == "string" then
        return true;
    elseif v25 == "number" then
        return true;
    elseif v25 == "table" then
        for _, v27 in ipairs(v24) do
            local v28 = type(v27);
            if v28 ~= "string" and v28 ~= "number" then
                return false;
            end;
        end;
        return true;
    else
        return false;
    end;
end;
local function _(v30)
    if string.sub(v30, 1, 1) == "{" then
        assert(string.sub(v30, -1, -1) == "}", "invalid pattern: placeholder items should end with `}`");
    end;
end;
local function v36(v32, v33)
    assert(type(v32) == "table", "invalid pattern: elements should all be tables");
    if v33 then
        assert(type(v32.name) == "string", "invalid pattern: element name should be a string");
        assert(#v32.name > 0, "invalid pattern: element name should not be empty");
    end;
    local v34 = true;
    if type(v32.value) ~= "string" then
        v34 = type(v32.value) == "number";
    end;
    assert(v34, "invalid pattern: element value should be a string or number");
    if type(v32.value) == "string" then
        local l_value_0 = v32.value;
        if string.sub(l_value_0, 1, 1) == "{" then
            assert(string.sub(l_value_0, -1, -1) == "}", "invalid pattern: placeholder items should end with `}`");
        end;
    end;
    if v32.optional ~= nil then
        assert(type(v32.optional) == "boolean", "invalid pattern: element optional should be a boolean");
    end;
    if v32.default ~= nil then
        assert(v29(v32.default), "invalid pattern: element default should be a string, number, or a table of strings and numbers only");
    end;
    if v32.collect ~= nil then
        v34 = true;
        if v32.collect ~= "multi" then
            v34 = v32.collect == "csv";
        end;
        assert(v34, "invalid pattern: element optional should be one of `multi`, `csv`");
    end;
end;
local function v42(v37)
    assert(type(v37.base) == "string", "invalid pattern: base should be a string");
    assert(#v37.base > 0, "invalid pattern: base should not be empty");
    assert(type(v37.path) == "table", "invalid pattern: path should be a table");
    for _, v39 in ipairs(v37.path) do
        v36(v39, false);
    end;
    if v37.query ~= nil then
        assert(type(v37.query) == "table", "invalid pattern: query should be a table");
    end;
    if type(v37.query) == "table" then
        for _, v41 in ipairs(v37.query) do
            v36(v41, true);
        end;
    end;
    if v37.hash ~= nil then
        assert(type(v37.hash) == "string", "invalid pattern: hash should be a string");
    end;
end;
local function _(v43, v44)
    return (v1.List.map(v23(v43, not v44 and "/" or "&"), function(v45)
        local v46 = nil;
        local v47 = l_StringTrim_0(v45);
        local v48 = nil;
        local v49 = nil;
        local v50 = nil;
        if v44 then
            local v51 = l_StringSplit_0(v47, "=", 2);
            v46 = l_StringTrim_0(v51[1]);
            v47 = v51[2];
            if string.sub(v46, 1, 1) == "{" then
                v46 = l_StringSplit_0(l_StringTrim_0(v46, "{}"), "|", 2)[1];
                if v47 == nil then
                    v47 = v51[1];
                end;
                v46 = l_StringTrim_0(v46);
            end;
            v50 = "multi";
        end;
        if not (not (v47 ~= nil) or not string.find(v47, "^{.*}$")) then
            local v52 = l_StringSplit_0(l_StringTrim_0(v47, "{}"), "|", 2);
            v47 = l_StringTrim_0(v52[1]);
            if #v52 > 1 then
                v48 = true;
                if #v52[2] > 1 then
                    v49 = v52[2];
                end;
            end;
            v47 = "{" .. v47 .. "}";
        end;
        return {
            name = v46,
            value = v47,
            optional = v48,
            default = v49,
            collect = v50
        };
    end));
end;
local function v58(v54)
    local v55 = {};
    for v56, v57 in pairs(v54) do
        table.insert(v55, v56 .. "=" .. v57);
    end;
    return table.concat(v55, "&");
end;
local function v89(v59)
    local l_base_0 = v59.base;
    local l_path_0 = v59.path;
    local l_query_0 = v59.query;
    local l_hash_0 = v59.hash;
    if l_base_0 ~= nil and v6[string.upper(l_base_0)] ~= nil then
        l_base_0 = v6[string.upper(l_base_0)];
    end;
    if type(l_path_0) == "string" then
        local v64 = v23(l_path_0, "/");
        local l_map_0 = v1.List.map;
        local l_v64_0 = v64;
        local v67 = false;
        local l_v67_0 = v67 --[[ copy: 9 -> 10 ]];
        l_path_0 = l_map_0(l_v64_0, function(v69)
            local v70 = nil;
            local v71 = l_StringTrim_0(v69);
            local v72 = nil;
            local v73 = nil;
            local v74 = nil;
            if l_v67_0 then
                local v75 = l_StringSplit_0(v71, "=", 2);
                v70 = l_StringTrim_0(v75[1]);
                v71 = v75[2];
                if string.sub(v70, 1, 1) == "{" then
                    v70 = l_StringSplit_0(l_StringTrim_0(v70, "{}"), "|", 2)[1];
                    if v71 == nil then
                        v71 = v75[1];
                    end;
                    v70 = l_StringTrim_0(v70);
                end;
                v74 = "multi";
            end;
            if not (not (v71 ~= nil) or not string.find(v71, "^{.*}$")) then
                local v76 = l_StringSplit_0(l_StringTrim_0(v71, "{}"), "|", 2);
                v71 = l_StringTrim_0(v76[1]);
                if #v76 > 1 then
                    v72 = true;
                    if #v76[2] > 1 then
                        v73 = v76[2];
                    end;
                end;
                v71 = "{" .. v71 .. "}";
            end;
            return {
                name = v70,
                value = v71,
                optional = v72,
                default = v73,
                collect = v74
            };
        end);
    end;
    if type(l_query_0) == "table" and l_query_0[1] == nil then
        l_query_0 = v58(l_query_0);
    end;
    if type(l_query_0) == "string" then
        local v77 = v23(l_query_0, "&");
        local l_map_1 = v1.List.map;
        local l_v77_0 = v77;
        local v80 = true;
        l_query_0 = l_map_1(l_v77_0, function(v81)
            local v82 = nil;
            local v83 = l_StringTrim_0(v81);
            local v84 = nil;
            local v85 = nil;
            local v86 = nil;
            if v80 then
                local v87 = l_StringSplit_0(v83, "=", 2);
                v82 = l_StringTrim_0(v87[1]);
                v83 = v87[2];
                if string.sub(v82, 1, 1) == "{" then
                    v82 = l_StringSplit_0(l_StringTrim_0(v82, "{}"), "|", 2)[1];
                    if v83 == nil then
                        v83 = v87[1];
                    end;
                    v82 = l_StringTrim_0(v82);
                end;
                v86 = "multi";
            end;
            if not (not (v83 ~= nil) or not string.find(v83, "^{.*}$")) then
                local v88 = l_StringSplit_0(l_StringTrim_0(v83, "{}"), "|", 2);
                v83 = l_StringTrim_0(v88[1]);
                if #v88 > 1 then
                    v84 = true;
                    if #v88[2] > 1 then
                        v85 = v88[2];
                    end;
                end;
                v83 = "{" .. v83 .. "}";
            end;
            return {
                name = v82,
                value = v83,
                optional = v84,
                default = v85,
                collect = v86
            };
        end);
    end;
    return {
        base = l_base_0,
        path = l_path_0,
        query = l_query_0,
        hash = l_hash_0
    };
end;
local function v93(v90, v91)
    return table.concat(v1.List.filter(v90, function(v92)
        if not v91 then
            return #v92 > 0;
        else
            return #v23(v92, "=") > 1;
        end;
    end), not v91 and "/" or "&");
end;
local function v100(v94, v95, v96)
    if v95 == nil then
        v95 = {};
    end;
    local v97 = nil;
    if type(v94.value) == "string" and string.sub(v94.value, 1, 1) == "{" then
        v97 = v95[string.sub(v94.value, 2, -2)];
        if v97 == nil then
            v97 = v94.default;
        end;
        if not v94.optional then
            assert(v97 ~= nil, "UrlBuilder: missing parameter: `" .. v94.value .. "`");
        end;
        if v97 == nil then
            v97 = {};
        end;
        assert(v29(v97), "UrlBuilder: invalid parameter: `" .. v94.value .. "`, " .. "should be a string, number, or a table of strings and numbers only");
    else
        v97 = v94.value;
    end;
    if type(v97) ~= "table" then
        v97 = {
            v97
        };
    end;
    v97 = v1.List.map(v97, function(v98)
        return v5((tostring(v98)));
    end);
    if v96 then
        if v94.collect == "csv" then
            v97 = {
                table.concat(v97, "%2C")
            };
        end;
        v97 = v1.List.map(v97, function(v99)
            return v5(v94.name) .. "=" .. v99;
        end);
    end;
    return v93(v97, v96);
end;
local function v105(v101, v102, v103)
    return v93(v1.List.map(v101 or {}, function(v104)
        return v100(v104, v102, v103);
    end), v103);
end;
v17.new = function(v106)
    v106 = v89(v106);
    v42(v106);
    return function(v107, v108)
        local v109 = l_StringTrim_0(v106.base, "/", {
            right = true
        });
        local v110 = v105(v106.path, v107, false);
        if #v110 > 0 then
            v109 = v109 .. "/" .. v110;
        end;
        if string.match(v109, "[^/]/[^/]") == nil then
            v109 = v109 .. "/";
        end;
        local v111 = v105(v106.query, v107, true);
        if #v111 > 0 then
            v109 = v109 .. "?" .. v111;
        end;
        if v106.hash and #v106.hash > 0 then
            v109 = v109 .. "#" .. v106.hash;
        end;
        if not v108 then
            return v109;
        else
            if v109 ~= v108 then
                warn("UrlBuilder: unexpected output for pattern:");
                warn("UrlBuilder: expected `" .. v108 .. "`");
                warn("UrlBuilder: actual `" .. v109 .. "`");
            end;
            return v108;
        end;
    end;
end;
v17.fromString = function(v112)
    local v113 = l_StringSplit_0(v112, ":", 2);
    if #v113 < 2 then
        v113 = {
            "",
            v113[1]
        };
    end;
    local v114 = v113[1];
    v113 = l_StringSplit_0(v113[2], "%#", 2);
    local v115 = v113[2] or "";
    v113 = l_StringSplit_0(v113[1], "%?", 2);
    local v116 = v113[1] or "";
    local v117 = v113[2] or "";
    if string.sub(v116, 1, 2) == "//" then
        v113 = l_StringSplit_0(string.sub(v116, 3), "/", 2);
        v114 = v114 .. "://" .. v113[1];
        v116 = v113[2] or "/";
    end;
    return v17.new({
        base = l_StringTrim_0(v114),
        path = l_StringTrim_0(v116),
        query = l_StringTrim_0(v117),
        hash = v115
    });
end;
v17.addQueryString = function(v118, v119)
    local v120 = l_StringTrim_0(v118);
    local v121 = string.find(v120, "%?");
    if v121 == nil then
        v120 = v120 .. "?";
    elseif v121 < #v120 then
        v120 = v120 .. "&";
    end;
    return v17.fromString(v120 .. table.concat(v1.List.map(v1.Dictionary.keys(v119), function(v122)
        return "{" .. v122 .. "}";
    end), "&"))(v119);
end;
v17.game = v7(v17);
v17.user = v8(v17);
v17.catalog = v10(v17);
v17.static = v9(v17);
v17.usermoderation = v13(v17);
v17.accountinformation = v14(v17);
v17.sharelinks = v12(v17);
v17.economy = v11(v17);
v17.virtualevents = v15(v17);
v17.PlatformAuth = v16(v17);
return v17;


return function(v0)
    return {
        metadata = v0.fromString("accountinformation:metadata"),
        phone = v0.fromString("accountinformation:phone")
    };
end;


return function(v0)
    local v1 = {};
    v1.info = {
        webbundle = v0.fromString("www:bundles/{assetId}"),
        webasset = v0.fromString("www:catalog/{assetId}"),
        webpage = function(v2)
            if v2.assetType == "Bundle" then
                return v1.info.webbundle(v2);
            elseif v2.assetType == "Asset" then
                return v1.info.webasset(v2);
            else
                warn(string.format("%s - unknown assetType of %s", tostring(script.name), (tostring(v2.assetType))));
                return nil;
            end;
        end,
        appsflyer = function(v3)
            return v0.fromString("appsflyer:Ebh5?pid=share&is_retargeting=true&af_dp={mobileUrl}&af_web_dp={webUrl}")({
                mobileUrl = v0.fromString("mobilenav:item_details?itemId={assetId}&itemType={assetType}")(v3),
                webUrl = v1.info.webpage(v3)
            });
        end
    };
    return v1;
end;


return function(v0)
    return {
        paymentsGateway = {
            getUpsellProduct = v0.fromString("apis:payments-gateway/v1/products/get-upsell-product"),
            preparePayment = v0.fromString("apis:payments-gateway/v1/prepare-payment")
        },
        purchaseWarning = {
            getPurchaseWarning = function(v1, v2, v3)
                local v4 = "";
                if v1 ~= nil then
                    v4 = string.format("%s?mobileProductId=%s", "apis:purchase-warning/v1/purchase-warnings", v1);
                elseif v2 ~= nil then
                    v4 = string.format("%s?productId=%d", "apis:purchase-warning/v1/purchase-warnings", v2);
                else
                    warn(string.format("%s - Invalid parameters, needs mobileProductId or productId", (tostring(script.Name))));
                    return nil;
                end;
                if v3 then
                    v4 = string.format("%s&is13To17ScaryModalEnabled=True", v4);
                end;
                return v0.fromString(v4)();
            end,
            ackPurchaseWarning = v0.fromString("apis:purchase-warning/v1/purchase-warnings/acknowledge")
        }
    };
end;


local v0 = require(script.Parent.utils.AppsFlyerUtil);
return function(v1)
    local v2 = {};
    v2.info = {
        webpage = v1.fromString("www:games/{placeId}"),
        store = v1.fromString("www:games/store-section/{universeId}"),
        badges = v1.fromString("www:games/badges-section/{universeId}"),
        servers = v1.fromString("www:games/servers-section/{universeId}"),
        serversPreopenCreateVip = v1.fromString("www:games/servers-section-preopen-create-vip/{universeId}"),
        group = v1.fromString("www:groups/{creatorId}"),
        user = v1.fromString("www:users/{creatorId}/profile"),
        pass = v1.fromString("www:game-pass/{passId}"),
        creator = function(v3)
            if v3.creatorType == "Group" then
                return v2.info.group(v3);
            elseif v3.creatorType == "User" then
                return v2.info.user(v3);
            else
                warn(string.format("%s - unknown creatorType of %s", tostring(script.name), (tostring(v3.creatorType))));
                return nil;
            end;
        end,
        appsflyer = function(v4)
            local l_description_0 = v4.description;
            local l_image_0 = v4.image;
            local l_title_0 = v4.title;
            if (not l_description_0 or not l_image_0) or not l_title_0 then
                return v1.fromString("appsflyer:Ebh5?pid=share&is_retargeting=true&af_dp={mobileUrl}&af_web_dp={webUrl}")({
                    mobileUrl = v1.fromString("mobilenav:game_details?gameId={universeId}")(v4),
                    webUrl = v2.info.webpage(v4)
                });
            else
                return v1.fromString("appsflyer:Ebh5?pid=share&is_retargeting=true&af_og_title={title}&af_og_image={image}&af_og_description={description}&af_dp={mobileUrl}&af_web_dp={webUrl}")({
                    image = l_image_0,
                    title = l_title_0,
                    description = v0.sanitizeDescription(l_description_0),
                    mobileUrl = v1.fromString("mobilenav:game_details?gameId={universeId}")(v4),
                    webUrl = v2.info.webpage(v4)
                });
            end;
        end
    };
    v2.details = v1.fromString("games:games?{universeIds}");
    v2.playability = v1.fromString("games:games/multiget-playability-status?{universeIds}");
    v2.media = v1.fromString("games:games/{universeId}/media");
    v2.favorite = v1.fromString("games:games/{universeId}/favorites");
    v2.social = v1.fromString("games:games/{universeId}/social-links/list");
    v2.recommended = v1.fromString("games:games/recommendations/game/{universeId}?{paginationKey|}&{maxRows|6}");
    v2.thumbnail = v1.fromString("games:games/game-thumbnails?{height|150}&{width|150}&{imageTokens}");
    v2.vote = {
        all = v1.fromString("games:games/{universeId}/votes"),
        get = v1.fromString("games:games/{universeId}/votes/user"),
        set = v1.fromString("games:games/{universeId}/user-votes")
    };
    v2.follow = {
        get = v1.fromString("followings:users/{userId}/universes/{universeId}/status"),
        set = v1.fromString("followings:users/{userId}/universes/{universeId}")
    };
    v2.report = v1.fromString("www:abusereport/asset?id={placeId}");
    v2.place = v1.fromString("games:games/multiget-place-details?{placeIds}");
    return v2;
end;


return function(v0)
    return {
        account = function(v1)
            return v0.fromString("auth:v1/" .. v1 .. "/account");
        end,
        connect = function(v2)
            return v0.fromString("auth:v1/" .. v2 .. "/connect");
        end,
        disconnect = function(v3)
            return v0.fromString("auth:v1/" .. v3 .. "/disconnect");
        end,
        login = function(v4)
            return v0.fromString("auth:v1/" .. v4 .. "/login");
        end,
        signup = function(v5)
            return v0.fromString("auth:v1/" .. v5 .. "/signup");
        end
    };
end;


return function(v0)
    return {
        appsflyer = function(v1, v2)
            local v3 = {
                linkId = v1,
                linkType = v2
            };
            return v0.fromString("appsflyer:Ebh5?pid=share&is_retargeting=true&af_dp={mobileUrl}&af_web_dp={webUrl}")({
                mobileUrl = v0.fromString("mobilenav:share_links?code={linkId}&type={linkType}")(v3),
                webUrl = v0.fromString("www:share-links?code={linkId}&type={linkType}")(v3)
            });
        end,
        shortUrl = function(v4)
            return v0.fromString("www:share?code={linkId}&type={type}&stamp={stamp|}")(v4);
        end
    };
end;


return function(v0)
    return {
        moderationDetail = v0.fromString("usermoderation:not-approved"),
        reactivate = v0.fromString("usermoderation:not-approved/reactivate")
    };
end;


return function(v0)
    return {
        profile = v0.fromString("www:users/{userId}/profile?friendshipSourceType={sourceType|}"),
        group = v0.fromString("www:groups/{groupId}/{groupName|}#/about"),
        friends = v0.fromString("www:users/{userId}/friends"),
        inventory = v0.fromString("www:users/{userId}/inventory"),
        search = v0.fromString("www:search/users?{keyword}"),
        profileWithFriendshipSourceType = v0.fromString("www:users/{userId}/profile?friendshipSourceType={sourceType}"),
        followers = v0.fromString("www:users/{userId}/friends#/followers"),
        following = v0.fromString("www:users/{userId}/friends#/following"),
        report = function(v1)
            return v0.fromString("www:abusereport/embedded/chat?id={userId}&{actionName}&{conversationId}&{redirecturl}")({
                userId = v1.userId,
                conversationId = v1.conversationId,
                actionName = "chat",
                redirecturl = v0.fromString("www:home")()
            });
        end,
        appsflyer = function(v2)
            return v0.fromString("appsflyer:Ebh5?pid=share&is_retargeting=true&af_dp={mobileUrl}&af_web_dp={webUrl}")({
                mobileUrl = v0.fromString("mobilenav:profile?userId={userId}&friendshipSourceType={sourceType}")(v2),
                webUrl = v0.fromString("www:users/{userId}/profile?friendshipSourceType={sourceType}")(v2)
            });
        end
    };
end;


return function(v0)
    return {
        appsflyer = function(v1)
            return v0.fromString("appsflyer:Ebh5?pid=share&is_retargeting=true&af_dp={mobileUrl}&af_web_dp={webUrl}")({
                mobileUrl = v0.fromString("mobilenav:event_details?eventid={eventId}")(v1),
                webUrl = v0.fromString("www:events/{eventId}")(v1)
            });
        end
    };
end;


local v11 = {
    replaceNewlines = function(v0, v1)
        v1 = v1 or " ";
        return v0:gsub("\r\n", v1):gsub("\r", v1):gsub("\n", v1);
    end,
    truncateLength = function(v2, v3)
        v3 = v3 or 140;
        if v2:len() <= v3 then
            return v2;
        else
            local v4 = "";
            local v5 = ("..."):len();
            for v6, v7 in utf8.graphemes(v2) do
                local v8 = v2:sub(v6, v7);
                if not (v3 < (v4:len() + v8:len()) + v5) then
                    v4 = v4 .. v8;
                else
                    break;
                end;
            end;
            local v9, v10 = v4:gsub("%s+%S-$", "...", 1);
            if v10 > 0 then
                return v9;
            else
                return v4 .. "...";
            end;
        end;
    end
};
v11.sanitizeDescription = function(v12)
    return (v11.truncateLength((v11.replaceNewlines(v12))));
end;
return v11;


local function v1(v0)
    return string.format("%%%02X", v0:byte(1, 1));
end;
return function(v2)
    return v2:gsub("[%w_%-%%.%~%*%'%(%)]", v1);
end;


return {
    encodeURIComponent = require(script.encodeURIComponent),
    UrlBase = require(script.UrlBase),
    UrlBuilder = require(script.UrlBuilder)
};


local v0 = newproxy(true);
getmetatable(v0).__tostring = function()
    return "UsageGraphSentinel";
end;
return {
    UsageGraphKey = v0,
    getUsageGraph = function(v1)
        return table.clone(v1[v0]);
    end
};


local l_CoreScriptSyncService_0 = game:GetService("CoreScriptSyncService");
return function(v1, v2, v3)
    local l_game_0 = game;
    for _, v6 in string.split(v1, ".") do
        if not (l_game_0 == nil) then
            l_game_0 = l_game_0:FindFirstChild(v6);
        else
            break;
        end;
    end;
    if not (typeof(l_game_0) == "Instance" and l_game_0:IsA("ModuleScript")) then
        warn("path led to non-ModuleScript:", v1, l_game_0.ClassName);
        l_game_0 = nil;
    end;
    local v7 = nil;
    if l_game_0 then
        v7 = l_CoreScriptSyncService_0:GetScriptFilePath(l_game_0);
        if v2 then
            local v8, v9 = string.find(v7, v2, 1, true);
            if v8 then
                v7 = string.sub(v7, if not v3 then v9 + 1 else v8);
            end;
        end;
    end;
    return l_game_0, v7;
end;


return {
    isReactComponent = require(script.isReactComponent),
    trackMemberAccess = require(script.trackMemberAccess),
    getFileInfo = require(script.getFileInfo),
    getUsageGraph = require(script.UsageGraph).getUsageGraph
};


local v0 = require(script:FindFirstAncestor("UsageTracker").Parent.ReactIs);
return function(v1)
    local l_status_0, l_result_0 = pcall(v0.isValidElementType, v1);
    if not (not l_status_0 or not l_result_0) then
        if typeof(v1) == "function" then
            local v4, v5 = debug.info(v1, "a");
            local v6 = string.sub(debug.info(v1, "n"), 1, 3) == "use";
            if not ((not (v4 == 1) or v5) or v6) then
                return true;
            end;
        elseif typeof(v1) == "table" then
            return true;
        end;
    end;
    return false;
end;


return {
    displayName = "UsageTracker",
    testMatch = {
        "**/__tests__/**/*_test"
    }
};


local v0 = require(script:FindFirstAncestor("UsageTracker").Parent.Cryo);
local v1 = require(script.Parent.isReactComponent);
local v2 = require(script.Parent.UsageGraph);
return function(v3, v4, v5)
    local v6 = {};
    local v7 = {};
    local v8 = v5 or v1;
    local function v9(v10, v11)
        local v12 = {};
        local v13 = {};
        for v14, v15 in v11, nil, nil do
            if v14 ~= "__index" and typeof(v14) == "string" then
                local v16 = v10 .. "." .. v14;
                if not v8(v15) then
                    if not (typeof(v15) == "table") or v7[v15] then
                        v13[v14] = v15;
                    else
                        v13[v14] = v9(v16, v15);
                    end;
                else
                    v6[v16] = {};
                    v12[v14] = v15;
                end;
                v7[v15] = true;
            end;
        end;
        return (setmetatable(v13, {
            __index = function(_, v18)
                local v19 = v12[v18];
                if v19 then
                    local v20 = v10 .. "." .. v18;
                    local v21, v22 = debug.info(2, "sl");
                    v6[v20] = v0.List.join(v6[v20], {
                        {
                            dmPath = v21,
                            lineNumber = v22
                        }
                    });
                    return v19;
                else
                    return (rawget(v13, v18));
                end;
            end
        }));
    end;
    local v23 = v9(v3, v4);
    v23[v2.UsageGraphKey] = v6;
    return v23;
end;


local l_ContentProvider_0 = game:GetService("ContentProvider");
local _, _, v8 = (function()
    local l_BaseUrl_0 = l_ContentProvider_0.BaseUrl;
    if l_BaseUrl_0:sub(#l_BaseUrl_0) == "/" then
        l_BaseUrl_0 = l_BaseUrl_0:sub(1, #l_BaseUrl_0 - 1);
    end;
    local _, v3 = l_BaseUrl_0:find("://");
    assert(type(v3) == "number", "Expected schemeEnd to be a number");
    local v4, v5 = l_BaseUrl_0:find("%.", v3 + 1);
    assert(type(v4) == "number", "Expected prefixIndex to be a number");
    assert(type(v5) == "number", "Expected prefixEnd to be a number");
    return l_BaseUrl_0, l_BaseUrl_0:sub(v3 + 1, v4 - 1), (l_BaseUrl_0:sub(v5 + 1));
end)();
return function(v9)
    assert(type(v9) == "string", "siteName must be a string");
    return string.format("https://%s.%s", v9, v8);
end;


local v0 = require(script.Parent.Parent.LuauPolyfill);
local l_Array_0 = v0.Array;
local l_Object_0 = v0.Object;
local l_Error_0 = v0.Error;
local v4 = {};
local _ = nil;
local v6 = nil;
v6 = setmetatable({}, {
    __index = l_Error_0
});
v6.__index = v6;
v6.new = function(v7, v8)
    local v9 = setmetatable(l_Error_0.new(if v8 ~= nil then v8 else ""), v6);
    v9.errors = v7;
    v9.name = "AggregateError";
    l_Error_0.captureStackTrace(v9, v6.new);
    return v9;
end;
v4.AggregateError = setmetatable(v6, {
    __call = function(_, v11, v12)
        return v6.new(v11, v12);
    end
});
v4.isAggregateError = function(v13)
    local v14 = false;
    if l_Array_0.indexOf(l_Object_0.keys(v13), "errors") ~= -1 then
        v14 = l_Array_0.isArray(v13.errors);
    end;
    return v14;
end;
return v4;


local l_Parent_0 = script.Parent.Parent;
local _ = require(l_Parent_0.LuauPolyfill);
local v2 = {};
local _ = require(l_Parent_0.GraphQL);
v2.MapperKind = {
    TYPE = "MapperKind.TYPE",
    SCALAR_TYPE = "MapperKind.SCALAR_TYPE",
    ENUM_TYPE = "MapperKind.ENUM_TYPE",
    COMPOSITE_TYPE = "MapperKind.COMPOSITE_TYPE",
    OBJECT_TYPE = "MapperKind.OBJECT_TYPE",
    INPUT_OBJECT_TYPE = "MapperKind.INPUT_OBJECT_TYPE",
    ABSTRACT_TYPE = "MapperKind.ABSTRACT_TYPE",
    UNION_TYPE = "MapperKind.UNION_TYPE",
    INTERFACE_TYPE = "MapperKind.INTERFACE_TYPE",
    ROOT_OBJECT = "MapperKind.ROOT_OBJECT",
    QUERY = "MapperKind.QUERY",
    MUTATION = "MapperKind.MUTATION",
    SUBSCRIPTION = "MapperKind.SUBSCRIPTION",
    DIRECTIVE = "MapperKind.DIRECTIVE",
    FIELD = "MapperKind.FIELD",
    COMPOSITE_FIELD = "MapperKind.COMPOSITE_FIELD",
    OBJECT_FIELD = "MapperKind.OBJECT_FIELD",
    ROOT_FIELD = "MapperKind.ROOT_FIELD",
    QUERY_ROOT_FIELD = "MapperKind.QUERY_ROOT_FIELD",
    MUTATION_ROOT_FIELD = "MapperKind.MUTATION_ROOT_FIELD",
    SUBSCRIPTION_ROOT_FIELD = "MapperKind.SUBSCRIPTION_ROOT_FIELD",
    INTERFACE_FIELD = "MapperKind.INTERFACE_FIELD",
    INPUT_OBJECT_FIELD = "MapperKind.INPUT_OBJECT_FIELD",
    ARGUMENT = "MapperKind.ARGUMENT",
    ENUM_VALUE = "MapperKind.ENUM_VALUE"
};
return v2;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v4 = {};
local v5 = require(l_Parent_0.GraphQL);
local l_GraphQLSchema_0 = v5.GraphQLSchema;
local l_isNamedType_0 = v5.isNamedType;
local l_isDirective_0 = v5.isDirective;
local l_getObjectTypeFromTypeMap_0 = require(script.Parent.getObjectTypeFromTypeMap).getObjectTypeFromTypeMap;
local l_rewireTypes_0 = require(script.Parent.rewire).rewireTypes;
local l_Map_0 = v1.Map;
v4.addTypes = function(v12, v13)
    local v14 = v12:toConfig();
    local v15 = l_Map_0.new();
    for _, v17 in v14.types, nil, nil do
        v15:set(v17.name, v17);
    end;
    local v18 = {};
    for _, v20 in v14.directives, nil, nil do
        v18[tostring(v20.name)] = v20;
    end;
    for _, v22 in v13, nil, nil do
        if not l_Boolean_0.toJSBoolean(l_isNamedType_0(v22)) then
            if l_Boolean_0.toJSBoolean(l_isDirective_0(v22)) then
                v18[v22.name] = v22;
            end;
        else
            v15:set(v22.name, v22);
        end;
    end;
    local v23 = l_rewireTypes_0(v15, (l_Object_0.values(v18)));
    local l_typeMap_0 = v23.typeMap;
    return l_GraphQLSchema_0.new(l_Object_0.assign({}, v14, {
        query = l_getObjectTypeFromTypeMap_0(l_typeMap_0, v12:getQueryType()),
        mutation = l_getObjectTypeFromTypeMap_0(l_typeMap_0, v12:getMutationType()),
        subscription = l_getObjectTypeFromTypeMap_0(l_typeMap_0, v12:getSubscriptionType()),
        types = l_typeMap_0:values(),
        directives = v23.directives
    }));
end;
return v4;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Boolean_0 = v1.Boolean;
local l_Error_0 = v1.Error;
local v4 = {};
local v5 = require(l_Parent_0.GraphQL);
local l_isNonNullType_0 = v5.isNonNullType;
local l_Kind_0 = v5.Kind;
local l_isListType_0 = v5.isListType;
local l_inspect_0 = require(script.Parent.inspect).inspect;
local function v10(v11)
    if not l_Boolean_0.toJSBoolean(l_isNonNullType_0(v11)) then
        if not l_Boolean_0.toJSBoolean(l_isListType_0(v11)) then
            return {
                kind = l_Kind_0.NAMED_TYPE,
                name = {
                    kind = l_Kind_0.NAME,
                    value = v11.name
                }
            };
        else
            return {
                kind = l_Kind_0.LIST_TYPE,
                type = v10(v11.ofType)
            };
        end;
    else
        local v12 = v10(v11.ofType);
        if v12.kind == l_Kind_0.NON_NULL_TYPE then
            error(l_Error_0.new(("Invalid type node %s. Inner type of non-null type cannot be a non-null type."):format((tostring(l_inspect_0(v11))))));
        end;
        return {
            kind = l_Kind_0.NON_NULL_TYPE,
            type = v12
        };
    end;
end;
v4.astFromType = v10;
return v4;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local v4 = {};
local l_Kind_0 = require(l_Parent_0.GraphQL).Kind;
local l_Error_0 = v1.Error;
local l_Number_0 = v1.Number;
local l_Object_0 = v1.Object;
local v9 = require(l_Parent_0.LuauRegExp);
local v10 = nil;
local function _(v11)
    local l_status_0, l_result_0 = pcall(function()
        local v12 = tonumber(v11);
        if not (not l_Number_0.isNaN(v12) and v12 ~= math.huge) or v12 == -math.huge then
            return false;
        else
            return true;
        end;
    end);
    if l_status_0 then
        return l_result_0;
    else
        return false;
    end;
end;
local function v16(v17)
    if v17 == l_Object_0.None then
        return {
            kind = l_Kind_0.NULL
        };
    elseif v17 == nil then
        return nil;
    elseif not l_Boolean_0.toJSBoolean(l_Array_0.isArray(v17)) then
        if typeof(v17) == "table" then
            local v18 = {};
            for v19 in v17, nil, nil do
                local v20 = v16(v17[tostring(v19)]);
                if l_Boolean_0.toJSBoolean(v20) then
                    table.insert(v18, {
                        kind = l_Kind_0.OBJECT_FIELD,
                        name = {
                            kind = l_Kind_0.NAME,
                            value = v19
                        },
                        value = v20
                    });
                end;
            end;
            return {
                kind = l_Kind_0.OBJECT,
                fields = v18
            };
        elseif typeof(v17) == "boolean" then
            return {
                kind = l_Kind_0.BOOLEAN,
                value = v17
            };
        else
            local l_toJSBoolean_0 = l_Boolean_0.toJSBoolean;
            local v22 = false;
            if typeof(v17) == "number" then
                local l_status_1, l_result_1 = pcall(function()
                    local v23 = tonumber(v17);
                    if not (not l_Number_0.isNaN(v23) and v23 ~= math.huge) or v23 == -math.huge then
                        return false;
                    else
                        return true;
                    end;
                end);
                v22 = if l_status_1 then l_result_1 else false;
            end;
            if not l_toJSBoolean_0(v22) then
                if typeof(v17) == "string" then
                    return {
                        kind = l_Kind_0.STRING,
                        value = v17
                    };
                else
                    error(l_Error_0.new(("Cannot convert value to AST: %s."):format((tostring(v17)))));
                    return ;
                end;
            else
                l_toJSBoolean_0 = tostring(v17);
                if not l_Boolean_0.toJSBoolean(v10:test(l_toJSBoolean_0)) then
                    return {
                        kind = l_Kind_0.FLOAT,
                        value = l_toJSBoolean_0
                    };
                else
                    return {
                        kind = l_Kind_0.INT,
                        value = l_toJSBoolean_0
                    };
                end;
            end;
        end;
    else
        local v26 = {};
        for _, v28 in v17, nil, nil do
            local v29 = v16(v28);
            if v29 ~= nil then
                table.insert(v26, v29);
            end;
        end;
        return {
            kind = l_Kind_0.LIST,
            values = v26
        };
    end;
end;
v4.astFromValueUntyped = v16;
v10 = v9("^-?(?:0|[1-9][0-9]*)$");
return v4;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Map_0 = v1.Map;
local l_Object_0 = v1.Object;
local v6 = {};
local v7 = require(l_Parent_0.GraphQL);
local l_isObjectType_0 = v7.isObjectType;
local l_getNamedType_0 = v7.getNamedType;
local l_isUnionType_0 = v7.isUnionType;
local l_isNonNullType_0 = v7.isNonNullType;
local l_isScalarType_0 = v7.isScalarType;
local l_isListType_0 = v7.isListType;
local l_isInterfaceType_0 = v7.isInterfaceType;
local l_isEnumType_0 = v7.isEnumType;
local l_Kind_0 = v7.Kind;
local v17 = require(script.Parent.rootTypes);
local l_getDefinedRootType_0 = v17.getDefinedRootType;
local l_getRootTypeNames_0 = v17.getRootTypeNames;
local v20 = nil;
local v21 = nil;
local v22 = nil;
local v23 = nil;
local v24 = {};
local v25 = {};
local v26 = l_Map_0.new();
local function _(v27)
    table.insert(v25, v27);
end;
local function _()
    v25 = {};
end;
local function _()
    v26 = l_Map_0.new();
end;
v6.buildOperationNodeForField = function(v31)
    local l_schema_0 = v31.schema;
    local l_kind_0 = v31.kind;
    local l_field_0 = v31.field;
    local l_models_0 = v31.models;
    local v36 = if v31.ignore == nil then {} else v31.ignore;
    local l_depthLimit_0 = v31.depthLimit;
    local l_circularReferenceDepth_0 = v31.circularReferenceDepth;
    local l_argNames_0 = v31.argNames;
    local v40 = v31.selectedFields == nil and true or v31.selectedFields;
    v25 = {};
    v26 = l_Map_0.new();
    local v41 = v20({
        schema = l_schema_0,
        fieldName = l_field_0,
        kind = l_kind_0,
        models = if not l_Boolean_0.toJSBoolean(l_models_0) then {} else l_models_0,
        ignore = v36,
        depthLimit = if not l_Boolean_0.toJSBoolean(l_depthLimit_0) then math.huge else l_depthLimit_0,
        circularReferenceDepth = not not l_Boolean_0.toJSBoolean(l_circularReferenceDepth_0) and l_circularReferenceDepth_0 or 1,
        argNames = l_argNames_0,
        selectedFields = v40,
        rootTypeNames = l_getRootTypeNames_0(l_schema_0)
    });
    v41.variableDefinitions = l_Array_0.concat({}, v25);
    v25 = {};
    v26 = l_Map_0.new();
    return v41;
end;
v20 = function(v42)
    local l_schema_1 = v42.schema;
    local l_fieldName_0 = v42.fieldName;
    local l_kind_1 = v42.kind;
    local l_models_1 = v42.models;
    local l_ignore_0 = v42.ignore;
    local l_depthLimit_1 = v42.depthLimit;
    local l_circularReferenceDepth_1 = v42.circularReferenceDepth;
    local l_argNames_1 = v42.argNames;
    local l_selectedFields_0 = v42.selectedFields;
    local l_rootTypeNames_0 = v42.rootTypeNames;
    local v53 = l_getDefinedRootType_0(l_schema_1, l_kind_1);
    local v54 = v53:getFields():get(l_fieldName_0);
    local v55 = ("%s_%s"):format(tostring(l_fieldName_0), (tostring(l_kind_1)));
    if not (not v54 or not v54.args) then
        for _, v57 in v54.args, nil, nil do
            local l_name_0 = v57.name;
            if not (l_argNames_1 and not l_Array_0.includes(l_argNames_1, l_name_0)) then
                table.insert(v25, (v21(v57, l_name_0)));
            end;
        end;
    end;
    return {
        kind = l_Kind_0.OPERATION_DEFINITION,
        operation = l_kind_1,
        name = {
            kind = l_Kind_0.NAME,
            value = v55
        },
        variableDefinitions = {},
        selectionSet = {
            kind = l_Kind_0.SELECTION_SET,
            selections = {
                v23({
                    type = v53,
                    field = v54,
                    models = l_models_1,
                    firstCall = true,
                    path = {},
                    ancestors = {},
                    ignore = l_ignore_0,
                    depthLimit = l_depthLimit_1,
                    circularReferenceDepth = l_circularReferenceDepth_1,
                    schema = l_schema_1,
                    depth = 0,
                    argNames = l_argNames_1,
                    selectedFields = l_selectedFields_0,
                    rootTypeNames = l_rootTypeNames_0
                })
            }
        }
    };
end;
local function v59(v60)
    local l_parent_0 = v60.parent;
    local l_type_0 = v60.type;
    local l_models_2 = v60.models;
    local l_firstCall_0 = v60.firstCall;
    local l_path_0 = v60.path;
    local l_ancestors_0 = v60.ancestors;
    local l_ignore_1 = v60.ignore;
    local l_depthLimit_2 = v60.depthLimit;
    local l_circularReferenceDepth_2 = v60.circularReferenceDepth;
    local l_schema_2 = v60.schema;
    local l_depth_0 = v60.depth;
    local l_argNames_2 = v60.argNames;
    local l_selectedFields_1 = v60.selectedFields;
    local l_rootTypeNames_1 = v60.rootTypeNames;
    if typeof(l_selectedFields_1) == "boolean" and l_depthLimit_2 < l_depth_0 then
        return ;
    elseif not l_Boolean_0.toJSBoolean(l_isUnionType_0(l_type_0)) then
        if not l_Boolean_0.toJSBoolean(l_isInterfaceType_0(l_type_0)) then
            local l_toJSBoolean_0 = l_Boolean_0.toJSBoolean;
            local v76 = l_isObjectType_0(l_type_0);
            if not l_toJSBoolean_0(if not l_Boolean_0.toJSBoolean(v76) then v76 else not l_Boolean_0.toJSBoolean(l_rootTypeNames_1:has(l_type_0.name))) then
                return nil;
            else
                l_toJSBoolean_0 = l_Array_0.includes(l_ignore_1, l_type_0.name);
                local v77 = not not l_Boolean_0.toJSBoolean(l_toJSBoolean_0) and l_toJSBoolean_0 or l_Array_0.includes(l_ignore_1, ("%s.%s"):format(l_parent_0.name, (tostring(l_path_0[#l_path_0]))));
                v76 = l_Array_0.includes(l_models_2, l_type_0.name);
                local l_toJSBoolean_1 = l_Boolean_0.toJSBoolean;
                local v79 = not l_Boolean_0.toJSBoolean(l_firstCall_0) and v76;
                if not l_toJSBoolean_1(if not l_Boolean_0.toJSBoolean(v79) then v79 else not l_Boolean_0.toJSBoolean(v77)) then
                    l_toJSBoolean_1 = l_type_0:getFields();
                    return {
                        kind = l_Kind_0.SELECTION_SET,
                        selections = l_Array_0.filter(l_Array_0.map(l_Array_0.filter(l_toJSBoolean_1:keys(), function(v80)
                            return not v22(l_Array_0.concat({}, l_ancestors_0, {
                                l_getNamedType_0(l_toJSBoolean_1:get(v80).type)
                            }), {
                                depth = l_circularReferenceDepth_2
                            });
                        end), function(v81)
                            local v82 = not (typeof(l_selectedFields_1) == "table") or l_selectedFields_1[tostring(v81)];
                            if not l_Boolean_0.toJSBoolean(v82) then
                                return v24;
                            else
                                return v23({
                                    type = l_type_0,
                                    field = l_toJSBoolean_1:get(v81),
                                    models = l_models_2,
                                    path = l_Array_0.concat({}, l_path_0, {
                                        v81
                                    }),
                                    ancestors = l_ancestors_0,
                                    ignore = l_ignore_1,
                                    depthLimit = l_depthLimit_2,
                                    circularReferenceDepth = l_circularReferenceDepth_2,
                                    schema = l_schema_2,
                                    depth = l_depth_0,
                                    argNames = l_argNames_2,
                                    selectedFields = v82,
                                    rootTypeNames = l_rootTypeNames_1
                                });
                            end;
                        end), function(v83)
                            if not (v83 ~= nil) or v83 == v24 then
                                return false;
                            elseif l_Array_0.indexOf(l_Object_0.keys(v83), "selectionSet") ~= -1 then
                                return l_Boolean_0.toJSBoolean(if typeof(v83.selectionSet) == "table" and typeof(v83.selectionSet.selections) == "table" then #v83.selectionSet.selections else nil);
                            else
                                return true;
                            end;
                        end)
                    };
                else
                    return {
                        kind = l_Kind_0.SELECTION_SET,
                        selections = {
                            {
                                kind = l_Kind_0.FIELD,
                                name = {
                                    kind = l_Kind_0.NAME,
                                    value = "id"
                                }
                            }
                        }
                    };
                end;
            end;
        else
            return {
                kind = l_Kind_0.SELECTION_SET,
                selections = l_Array_0.filter(l_Array_0.map(l_Array_0.filter(l_Array_0.filter(l_schema_2:getTypeMap():values(), function(v84)
                    local v85 = l_isObjectType_0(v84);
                    if not l_Boolean_0.toJSBoolean(v85) then
                        return v85;
                    else
                        return (l_Array_0.includes(v84:getInterfaces(), l_type_0));
                    end;
                end), function(v86)
                    return not v22(l_Array_0.concat({}, l_ancestors_0, {
                        v86
                    }), {
                        depth = l_circularReferenceDepth_2
                    });
                end), function(v87)
                    return {
                        kind = l_Kind_0.INLINE_FRAGMENT,
                        typeCondition = {
                            kind = l_Kind_0.NAMED_TYPE,
                            name = {
                                kind = l_Kind_0.NAME,
                                value = v87.name
                            }
                        },
                        selectionSet = v59({
                            parent = l_type_0,
                            type = v87,
                            models = l_models_2,
                            path = l_path_0,
                            ancestors = l_ancestors_0,
                            ignore = l_ignore_1,
                            depthLimit = l_depthLimit_2,
                            circularReferenceDepth = l_circularReferenceDepth_2,
                            schema = l_schema_2,
                            depth = l_depth_0,
                            argNames = l_argNames_2,
                            selectedFields = l_selectedFields_1,
                            rootTypeNames = l_rootTypeNames_1
                        })
                    };
                end), function(v88)
                    if ((typeof(v88) == "table" and v88.selectionSet ~= v24) and typeof(v88.selectionSet) == "table") and typeof(v88.selectionSet.selections) == "table" then
                        return #v88.selectionSet.selections > 0;
                    else
                        return false;
                    end;
                end)
            };
        end;
    else
        return {
            kind = l_Kind_0.SELECTION_SET,
            selections = l_Array_0.filter(l_Array_0.map(l_Array_0.filter(l_type_0:getTypes(), function(v89)
                return not v22(l_Array_0.concat({}, l_ancestors_0, {
                    v89
                }), {
                    depth = l_circularReferenceDepth_2
                });
            end), function(v90)
                return {
                    kind = l_Kind_0.INLINE_FRAGMENT,
                    typeCondition = {
                        kind = l_Kind_0.NAMED_TYPE,
                        name = {
                            kind = l_Kind_0.NAME,
                            value = v90.name
                        }
                    },
                    selectionSet = v59({
                        parent = l_type_0,
                        type = v90,
                        models = l_models_2,
                        path = l_path_0,
                        ancestors = l_ancestors_0,
                        ignore = l_ignore_1,
                        depthLimit = l_depthLimit_2,
                        circularReferenceDepth = l_circularReferenceDepth_2,
                        schema = l_schema_2,
                        depth = l_depth_0,
                        argNames = l_argNames_2,
                        selectedFields = l_selectedFields_1,
                        rootTypeNames = l_rootTypeNames_1
                    })
                };
            end), function(v91)
                local v92 = false;
                if typeof(v91) == "table" then
                    v92 = false;
                    if v91.selectionSet ~= v24 then
                        v92 = false;
                        if typeof(v91.selectionSet) == "table" then
                            v92 = false;
                            if typeof(v91.selectionSet.selections) == "table" then
                                v92 = #v91.selectionSet.selections > 0;
                            end;
                        end;
                    end;
                end;
                return v92;
            end)
        };
    end;
end;
v21 = function(v93, v94)
    local function v95(v96)
        if not l_Boolean_0.toJSBoolean(l_isListType_0(v96)) then
            if not l_Boolean_0.toJSBoolean(l_isNonNullType_0(v96)) then
                return {
                    kind = l_Kind_0.NAMED_TYPE,
                    name = {
                        kind = l_Kind_0.NAME,
                        value = v96.name
                    }
                };
            else
                return {
                    kind = l_Kind_0.NON_NULL_TYPE,
                    type = v95(v96.ofType)
                };
            end;
        else
            return {
                kind = l_Kind_0.LIST_TYPE,
                type = v95(v96.ofType)
            };
        end;
    end;
    return {
        kind = l_Kind_0.VARIABLE_DEFINITION,
        variable = {
            kind = l_Kind_0.VARIABLE,
            name = {
                kind = l_Kind_0.NAME,
                value = not not l_Boolean_0.toJSBoolean(v94) and v94 or v93.name
            }
        },
        type = v95(v93.type)
    };
end;
local function v99(v97, v98)
    return l_Array_0.join(l_Array_0.concat({}, v98, {
        v97
    }), "_");
end;
v23 = function(v100)
    local l_type_1 = v100.type;
    local l_field_1 = v100.field;
    local l_models_3 = v100.models;
    local l_firstCall_1 = v100.firstCall;
    local l_path_1 = v100.path;
    local l_ancestors_1 = v100.ancestors;
    local l_ignore_2 = v100.ignore;
    local l_depthLimit_3 = v100.depthLimit;
    local l_circularReferenceDepth_3 = v100.circularReferenceDepth;
    local l_schema_3 = v100.schema;
    local l_depth_1 = v100.depth;
    local l_argNames_3 = v100.argNames;
    local l_selectedFields_2 = v100.selectedFields;
    local l_rootTypeNames_2 = v100.rootTypeNames;
    local v115 = l_getNamedType_0(l_field_1.type);
    local v116 = {};
    local v117 = false;
    if l_Boolean_0.toJSBoolean(l_field_1.args) and #l_field_1.args ~= 0 then
        v116 = l_Array_0.filter(l_Array_0.map(l_field_1.args, function(v118)
            local v119 = v99(v118.name, l_path_1);
            if not if not l_argNames_3 then l_Boolean_0.toJSBoolean(l_argNames_3) else not l_Array_0.includes(l_argNames_3, v119) then
                if not l_Boolean_0.toJSBoolean(l_firstCall_1) then
                    table.insert(v25, (v21(v118, v119)));
                end;
                return {
                    kind = l_Kind_0.ARGUMENT,
                    name = {
                        kind = l_Kind_0.NAME,
                        value = v118.name
                    },
                    value = {
                        kind = l_Kind_0.VARIABLE,
                        name = {
                            kind = l_Kind_0.NAME,
                            value = v99(v118.name, l_path_1)
                        }
                    }
                };
            else
                if l_Boolean_0.toJSBoolean(l_isNonNullType_0(v118.type)) then
                    v117 = true;
                end;
                return nil;
            end;
        end), l_Boolean_0.toJSBoolean);
    end;
    if not l_Boolean_0.toJSBoolean(v117) then
        local v120 = l_Array_0.concat({}, l_path_1, {
            l_field_1.name
        });
        local v121 = l_Array_0.join(v120, ".");
        local l_name_1 = l_field_1.name;
        local l_toJSBoolean_2 = l_Boolean_0.toJSBoolean;
        local v124 = v26:has(v121);
        if l_toJSBoolean_2(if not l_Boolean_0.toJSBoolean(v124) then v124 else v26:get(v121) ~= tostring(l_field_1.type)) then
            l_name_1 = l_name_1 .. tostring(l_field_1.type):gsub("", "NonNull");
        end;
        v26:set(v121, (tostring(l_field_1.type)));
        if l_Boolean_0.toJSBoolean(l_isScalarType_0(v115)) or l_Boolean_0.toJSBoolean(l_isEnumType_0(v115)) then
            l_toJSBoolean_2 = l_Object_0.assign;
            local v125 = {};
            v124 = {
                kind = l_Kind_0.FIELD,
                name = {
                    kind = l_Kind_0.NAME,
                    value = l_field_1.name
                }
            };
            local v126 = false;
            if l_name_1 ~= l_field_1.name then
                v126 = {
                    alias = {
                        kind = l_Kind_0.NAME,
                        value = l_name_1
                    }
                };
            end;
            return l_toJSBoolean_2(v125, v124, v126, {
                arguments = v116
            });
        else
            l_toJSBoolean_2 = v59({
                parent = l_type_1,
                type = v115,
                models = l_models_3,
                firstCall = l_firstCall_1,
                path = v120,
                ancestors = l_Array_0.concat({}, l_ancestors_1, {
                    l_type_1
                }),
                ignore = l_ignore_2,
                depthLimit = l_depthLimit_3,
                circularReferenceDepth = l_circularReferenceDepth_3,
                schema = l_schema_3,
                depth = l_depth_1 + 1,
                argNames = l_argNames_3,
                selectedFields = l_selectedFields_2,
                rootTypeNames = l_rootTypeNames_2
            });
            local v127 = if not l_Boolean_0.toJSBoolean(l_toJSBoolean_2) then nil else l_toJSBoolean_2;
            v124 = l_Object_0.assign;
            local v128 = {};
            local v129 = {
                kind = l_Kind_0.FIELD,
                name = {
                    kind = l_Kind_0.NAME,
                    value = l_field_1.name
                }
            };
            local v130 = false;
            if l_name_1 ~= l_field_1.name then
                v130 = {
                    alias = {
                        kind = l_Kind_0.NAME,
                        value = l_name_1
                    }
                };
            end;
            return v124(v128, v129, v130, {
                selectionSet = not not l_Boolean_0.toJSBoolean(v127) and v127 or v24,
                arguments = v116
            });
        end;
    else
        return nil;
    end;
end;
v22 = function(v131, v132)
    local v133 = if v132 ~= nil then v132 else {
        depth = 1
    };
    local v134 = v131[#v131];
    if not l_Boolean_0.toJSBoolean(l_isScalarType_0(v134)) then
        return v133.depth < #l_Array_0.filter(v131, function(v135)
            return v135.name == v134.name;
        end);
    else
        return false;
    end;
end;
return v6;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Map_0 = v1.Map;
local l_Set_0 = v1.Set;
local v6 = {};
local l_memoize5_0 = require(script.Parent.memoize).memoize5;
local v8 = require(l_Parent_0.GraphQL);
local l_Kind_0 = v8.Kind;
local l_getDirectiveValues_0 = v8.getDirectiveValues;
local l_GraphQLSkipDirective_0 = v8.GraphQLSkipDirective;
local l_GraphQLIncludeDirective_0 = v8.GraphQLIncludeDirective;
local l_isAbstractType_0 = v8.isAbstractType;
local l_typeFromAST_0 = v8.typeFromAST;
local v15 = nil;
local v16 = nil;
local v17 = nil;
local function v18(v19, v20, v21, v22, v23, v24, v25)
    for _, v27 in v23.selections, nil, nil do
        local l_kind_0 = v27.kind;
        if l_kind_0 == l_Kind_0.FIELD then
            if l_Boolean_0.toJSBoolean(v15(v21, v27)) then
                local v29 = v16(v27);
                local v30 = v24:get(v29);
                if v30 ~= nil then
                    table.insert(v30, v27);
                else
                    v24:set(v29, {
                        v27
                    });
                end;
            end;
        elseif l_kind_0 == l_Kind_0.INLINE_FRAGMENT then
            if not (not v15(v21, v27) or not v17(v19, v27, v22)) then
                v18(v19, v20, v21, v22, v27.selectionSet, v24, v25);
            end;
        elseif l_kind_0 == l_Kind_0.FRAGMENT_SPREAD then
            local l_value_0 = v27.name.value;
            if not (v25:has(l_value_0) or not v15(v21, v27)) then
                v25:add(l_value_0);
                local v32 = v20[tostring(l_value_0)];
                if not (not l_Boolean_0.toJSBoolean(v32) or not l_Boolean_0.toJSBoolean(v17(v19, v32, v22))) then
                    v18(v19, v20, v21, v22, v32.selectionSet, v24, v25);
                end;
            end;
        end;
    end;
    return v24;
end;
v6.collectFields = v18;
v15 = function(v33, v34)
    local v35 = l_getDirectiveValues_0(l_GraphQLSkipDirective_0, v34, v33);
    if if typeof(v35) == "table" then v35["if"] else nil == true then
        return false;
    else
        local v36 = l_getDirectiveValues_0(l_GraphQLIncludeDirective_0, v34, v33);
        if if typeof(v36) == "table" then v36["if"] else nil == false then
            return false;
        else
            return true;
        end;
    end;
end;
v17 = function(v37, v38, v39)
    local l_typeCondition_0 = v38.typeCondition;
    if l_Boolean_0.toJSBoolean(l_typeCondition_0) then
        local v41 = l_typeFromAST_0(v37, l_typeCondition_0);
        if v41 == v39 then
            return true;
        elseif not l_Boolean_0.toJSBoolean(l_isAbstractType_0(v41)) then
            return false;
        else
            return l_Array_0.includes(v37:getPossibleTypes(v41), v39);
        end;
    else
        return true;
    end;
end;
v16 = function(v42)
    if not v42.alias then
        return v42.name.value;
    else
        return v42.alias.value;
    end;
end;
v6.collectSubFields = l_memoize5_0(function(v43, v44, v45, v46, v47)
    local v48 = l_Map_0.new();
    local v49 = l_Set_0.new();
    for _, v51 in v47, nil, nil do
        if v51.selectionSet then
            v18(v43, v44, v45, v46, v51.selectionSet, v48, v49);
        end;
    end;
    return v48;
end);
return v6;


local l_Parent_0 = script.Parent.Parent;
local v1 = require(l_Parent_0.LuauPolyfill);
local l_Array_0 = v1.Array;
local l_Boolean_0 = v1.Boolean;
local l_Object_0 = v1.Object;
local v5 = {};
local _ = require(script.Parent.types);
local v7 = require(l_Parent_0.GraphQL);
local l_visit_0 = v7.visit;
local l_TokenKind_0 = v7.TokenKind;
local _ = require(l_Parent_0.GraphQL);
local v11 = nil;
local v12 = nil;
local v13 = nil;
local v14 = nil;
local v15 = nil;
local v16 = nil;
local v17 = nil;
local v18 = nil;
local l_String_0 = v1.String;
local v20 = {};
v5.resetComments = function()
    v20 = {};
end;
v5.collectComment = function(v21)
    local v22 = if typeof(v21.name) == "table" then v21.name.value else nil;
    if v22 == nil then
        return ;
    else
        v11(v21, v22);
        local l_kind_0 = v21.kind;
        if l_kind_0 == "EnumTypeDefinition" then
            if l_Boolean_0.toJSBoolean(v21.values) then
                for _, v25 in v21.values, nil, nil do
                    v11(v25, v22, v25.name.value);
                end;
                return ;
            end;
        elseif not (not (not (l_kind_0 ~= "ObjectTypeDefinition" and l_kind_0 ~= "InputObjectTypeDefinition") or l_kind_0 == "InterfaceTypeDefinition") or not l_Boolean_0.toJSBoolean(v21.fields)) then
            for _, v27 in v21.fields, nil, nil do
                v11(v27, v22, v27.name.value);
                local l_toJSBoolean_0 = l_Boolean_0.toJSBoolean;
                local v29 = v12(v27);
                if l_toJSBoolean_0(if not l_Boolean_0.toJSBoolean(v29) then v29 else v27.arguments) then
                    for _, v31 in v27.arguments, nil, nil do
                        v11(v31, v22, v27.name.value, v31.name.value);
                    end;
                end;
            end;
        end;
        return ;
    end;
end;
v11 = function(v32, v33, v34, v35)
    local v36 = v13(v32);
    if not (typeof(v36) == "string") or #v36 == 0 then
        return ;
    else
        local v37 = {
            v33
        };
        if l_Boolean_0.toJSBoolean(v34) then
            table.insert(v37, v34);
            if l_Boolean_0.toJSBoolean(v35) then
                table.insert(v37, v35);
            end;
        end;
        local v38 = l_Array_0.join(v37, ".");
        if not l_Boolean_0.toJSBoolean(v20[tostring(v38)]) then
            v20[tostring(v38)] = {};
        end;
        table.insert(v20[v38], v36);
        return ;
    end;
end;
v5.pushComment = v11;
local function v40(v39)
    return "\n# " .. v39:gsub("\n", "\n# ");
end;
v5.printComment = v40;
local function v44(v41, v42)
    if not l_Boolean_0.toJSBoolean(v41) then
        return "";
    else
        return (l_Array_0.join(l_Array_0.filter(v41, function(v43)
            return l_Boolean_0.toJSBoolean(v43);
        end), not not l_Boolean_0.toJSBoolean(v42) and v42 or ""));
    end;
end;
local function _(v45)
    local v47 = if typeof(v45) == "table" then l_Array_0.some(v45, function(v46)
        return l_String_0.includes(v46, "\n");
    end) else nil;
    if v47 ~= nil then
        return v47;
    else
        return false;
    end;
end;
local function _(v49)
    return function(v50, v51, v52, v53, v54, v55)
        local v56 = {};
        local v59 = l_Array_0.reduce(v54, function(v57, v58)
            if not ((not (v58 ~= l_Object_0.None) or not l_Array_0.includes({
                "fields",
                "arguments",
                "values"
            }, v58)) or not l_Boolean_0.toJSBoolean(v57.name)) then
                table.insert(v56, v57.name.value);
            end;
            if v57 == l_Object_0.None then
                return v58;
            else
                return v57[v58];
            end;
        end, v55[1] or l_Object_0.None);
        local v60 = l_Array_0.join(l_Array_0.filter(l_Array_0.concat({}, v56, {
            if typeof(if typeof(v59) == "table" then v59.name else nil) == "table" then (if typeof(v59) == "table" then v59.name else nil).value else nil
        }), l_Boolean_0.toJSBoolean), ".");
        local v61 = {};
        if not (not l_String_0.includes(v51.kind, "Definition") or not l_Boolean_0.toJSBoolean(v20[v60])) then
            v61 = l_Array_0.concat(v61, v20[v60]);
        end;
        return (v44(l_Array_0.concat({}, l_Array_0.map(v61, v40), {
            v51.description or "",
            (v49(v50, v51, v52, v53, v54, v55))
        }), "\n"));
    end;
end;
local function v64(v63)
    if not l_Boolean_0.toJSBoolean(v63) then
        return v63;
    else
        return ("  %s"):format((v63:gsub("\n", "\n  ")));
    end;
end;
local function _(v65)
    if v65 and #v65 ~= 0 then
        return (("{\n%s\n}"):format(v64((v44(v65, "\n")))));
    else
        return "";
    end;
end;
local function _(v67, v68, v69)
    if not l_Boolean_0.toJSBoolean(v68) then
        return "";
    else
        return v67 .. tostring(v68) .. (not not l_Boolean_0.toJSBoolean(v69) and v69 or "");
    end;
end;
local function v75(v71, v72)
    local v73 = if v72 ~= nil then v72 else false;
    local v74 = v71:gsub("\"", "\\\"\"\"");
    if (not (v71:sub(1, 1) ~= " ") or v71:sub(1, 1) == "\t") and l_String_0.indexOf(v71, "\n") == -1 then
        return ("\"\"\"%s\"\"\""):format((v74:gsub("\"$", "\"\n")));
    else
        return ("\"\"\"\n%s\n\"\"\""):format(if not l_Boolean_0.toJSBoolean(v73) then if l_Boolean_0.toJSBoolean(v74) then ("  %s"):format((v74:gsub("\n", "\n  "))) else v74 else v74);
    end;
end;
local v350 = {
    Name = {
        leave = function(_, v77)
            return v77.value;
        end
    },
    Variable = {
        leave = function(_, v79)
            return "$" .. tostring(v79.name);
        end
    },
    Document = {
        leave = function(_, v81)
            return (v44(v81.definitions, "\n\n"));
        end
    },
    OperationDefinition = {
        leave = function(_, v83)
            local v84 = v44(v83.variableDefinitions, ", ");
            return tostring((v44({
                v83.operation,
                v44({
                    v83.name,
                    not l_Boolean_0.toJSBoolean(v84) and "" or "(" .. tostring(v84) .. (not l_Boolean_0.toJSBoolean(")") and "" or ")")
                }),
                (v44(v83.directives, " "))
            }, " "))) .. " " .. tostring(v83.selectionSet);
        end
    },
    VariableDefinition = {
        leave = function(_, v86)
            local l_variable_0 = v86.variable;
            local l_type_0 = v86.type;
            local l_defaultValue_0 = v86.defaultValue;
            local l_directives_0 = v86.directives;
            local v91 = tostring(l_variable_0);
            local v92 = ": ";
            local v93 = tostring(l_type_0);
            local v94;
            if not l_Boolean_0.toJSBoolean(l_defaultValue_0) then
                v94 = "";
            else
                local v95 = " = ";
                local v96 = tostring(l_defaultValue_0);
                v94 = if not l_Boolean_0.toJSBoolean(nil) then v95 .. v96 .. "" else v95 .. v96 .. "";
            end;
            local v97 = tostring(v94);
            v94 = v44(l_directives_0, " ");
            local v98;
            if not l_Boolean_0.toJSBoolean(v94) then
                v98 = "";
            else
                local v99 = " ";
                local v100 = tostring(v94);
                v98 = if not l_Boolean_0.toJSBoolean(nil) then v99 .. v100 .. "" else v99 .. v100 .. "";
            end;
            return v91 .. v92 .. v93 .. v97 .. tostring(v98);
        end
    },
    SelectionSet = {
        leave = function(_, v102)
            local l_selections_0 = v102.selections;
            if l_selections_0 and #l_selections_0 ~= 0 then
                return (("{\n%s\n}"):format(v64((v44(l_selections_0, "\n")))));
            else
                return "";
            end;
        end
    },
    Field = {
        leave = function(_, v105)
            local l_alias_0 = v105.alias;
            local l_name_0 = v105.name;
            local l_arguments_0 = v105.arguments;
            local l_directives_1 = v105.directives;
            local l_selectionSet_0 = v105.selectionSet;
            local v111 = (not l_Boolean_0.toJSBoolean(l_alias_0) and "" or "" .. tostring(l_alias_0) .. (not l_Boolean_0.toJSBoolean(": ") and "" or ": ")) .. l_name_0;
            local l_v111_0 = v111;
            local v113 = v44(l_arguments_0, ", ");
            local v114 = l_v111_0 .. (not l_Boolean_0.toJSBoolean(v113) and "" or "(" .. tostring(v113) .. (not l_Boolean_0.toJSBoolean(")") and "" or ")"));
            if v114.length > 80 then
                l_v111_0 = v111;
                local v115 = v44(l_arguments_0, "\n");
                v113 = if not l_Boolean_0.toJSBoolean(v115) then v115 else ("  %s"):format((v115:gsub("\n", "\n  ")));
                v114 = l_v111_0 .. (not l_Boolean_0.toJSBoolean(v113) and "" or "(\n" .. tostring(v113) .. (not l_Boolean_0.toJSBoolean("\n)") and "" or "\n)"));
            end;
            return (v44({
                v114,
                v44(l_directives_1, " "),
                l_selectionSet_0
            }, " "));
        end
    },
    Argument = {
        leave = function(_, v117)
            return tostring(v117.name) .. ": " .. tostring(v117.value);
        end
    },
    FragmentSpread = {
        leave = function(_, v119)
            local l_name_1 = v119.name;
            local l_directives_2 = v119.directives;
            local v122 = "...";
            local v123 = tostring(l_name_1);
            local v124 = v44(l_directives_2, " ");
            local v125;
            if not l_Boolean_0.toJSBoolean(v124) then
                v125 = "";
            else
                local v126 = " ";
                local v127 = tostring(v124);
                v125 = if not l_Boolean_0.toJSBoolean(nil) then v126 .. v127 .. "" else v126 .. v127 .. "";
            end;
            return v122 .. v123 .. tostring(v125);
        end
    },
    InlineFragment = {
        leave = function(_, v129)
            local l_typeCondition_0 = v129.typeCondition;
            local l_directives_3 = v129.directives;
            local l_selectionSet_1 = v129.selectionSet;
            local l_v44_0 = v44;
            local v134 = {};
            local v135 = "...";
            local v136;
            if not l_Boolean_0.toJSBoolean(l_typeCondition_0) then
                v136 = "";
            else
                local v137 = "on ";
                local v138 = tostring(l_typeCondition_0);
                v136 = if not l_Boolean_0.toJSBoolean(nil) then v137 .. v138 .. "" else v137 .. v138 .. "";
            end;
            local v139 = v44(l_directives_3, " ");
            local l_l_selectionSet_1_0 = l_selectionSet_1;
            setlist { ['R006[1 to 4]'] = 'R007 to R010' };
            return (l_v44_0(v134, " "));
        end
    },
    FragmentDefinition = {
        leave = function(_, v142)
            local l_name_2 = v142.name;
            local l_typeCondition_1 = v142.typeCondition;
            local l_variableDefinitions_0 = v142.variableDefinitions;
            local l_directives_4 = v142.directives;
            local l_selectionSet_2 = v142.selectionSet;
            local v148 = "fragment %s%s ";
            local v149 = tostring(l_name_2);
            local v150 = v44(l_variableDefinitions_0, ", ");
            local v151 = v148:format(v149, not l_Boolean_0.toJSBoolean(v150) and "" or "(" .. tostring(v150) .. (not l_Boolean_0.toJSBoolean(")") and "" or ")"));
            v148 = "on %s %s";
            v149 = tostring(l_typeCondition_1);
            local v152 = v44(l_directives_4, " ");
            return v151 .. v148:format(v149, (tostring(not l_Boolean_0.toJSBoolean(v152) and "" or "" .. tostring(v152) .. (not l_Boolean_0.toJSBoolean(" ") and "" or " ")))) .. tostring(l_selectionSet_2);
        end
    },
    IntValue = {
        leave = function(_, v154)
            return v154.value;
        end
    },
    FloatValue = {
        leave = function(_, v156)
            return v156.value;
        end
    },
    StringValue = {
        leave = function(_, v158)
            local l_value_0 = v158.value;
            if not l_Boolean_0.toJSBoolean(v158.block) then
                return "'" .. l_value_0:gsub("'", "\\'") .. "'";
            else
                return v75(l_value_0);
            end;
        end
    },
    BooleanValue = {
        leave = function(_, v161)
            if not l_Boolean_0.toJSBoolean(v161.value) then
                return "false";
            else
                return "true";
            end;
        end
    },
    NullValue = {
        leave = function()
            return "null";
        end
    },
    EnumValue = {
        leave = function(_, v163)
            return v163.value;
        end
    },
    ListValue = {
        leave = function(_, v165)
            return "[" .. tostring((v44(v165.values, ", "))) .. "]";
        end
    },
    ObjectValue = {
        leave = function(_, v167)
            return "{" .. tostring((v44(v167.fields, ", "))) .. "}";
        end
    },
    ObjectField = {
        leave = function(_, v169)
            return tostring(v169.name) .. ": " .. tostring(v169.value);
        end
    },
    Directive = {
        leave = function(_, v171)
            local l_name_3 = v171.name;
            local l_arguments_1 = v171.arguments;
            local v174 = "@";
            local v175 = tostring(l_name_3);
            local v176 = v44(l_arguments_1, ", ");
            return v174 .. v175 .. tostring(not l_Boolean_0.toJSBoolean(v176) and "" or "(" .. tostring(v176) .. (not l_Boolean_0.toJSBoolean(")") and "" or ")"));
        end
    },
    NamedType = {
        leave = function(_, v178)
            return v178.name;
        end
    },
    ListType = {
        leave = function(_, v180)
            return "[" .. tostring(v180.type) .. "]";
        end
    },
    NonNullType = {
        leave = function(_, v182)
            return tostring(v182.type) .. "";
        end
    },
    SchemaDefinition = {
        leave = function(_, v184)
            local l_directives_5 = v184.directives;
            local l_operationTypes_0 = v184.operationTypes;
            return (v44({
                "schema",
                v44(l_directives_5, " "),
                if not not l_operationTypes_0 and #l_operationTypes_0 ~= 0 then ("{\n%s\n}"):format(v64((v44(l_operationTypes_0, "\n")))) else ""
            }, " "));
        end
    },
    OperationTypeDefinition = {
        leave = function(_, v188)
            return tostring(v188.operation) .. ": " .. tostring(v188.type);
        end
    },
    ScalarTypeDefinition = {
        leave = function(_, v190)
            return (v44({
                "scalar",
                v190.name,
                (v44(v190.directives, " "))
            }, " "));
        end
    },
    ObjectTypeDefinition = {
        leave = function(_, v192)
            local l_name_4 = v192.name;
            local l_interfaces_0 = v192.interfaces;
            local l_directives_6 = v192.directives;
            local l_fields_0 = v192.fields;
            local l_v44_1 = v44;
            local v198 = {};
            local v199 = "type";
            local l_l_name_4_0 = l_name_4;
            local v201 = v44(l_interfaces_0, " & ");
            local v202;
            if not l_Boolean_0.toJSBoolean(v201) then
                v202 = "";
            else
                local v203 = "implements ";
                local v204 = tostring(v201);
                v202 = if not l_Boolean_0.toJSBoolean(nil) then v203 .. v204 .. "" else v203 .. v204 .. "";
            end;
            v201 = v44(l_directives_6, " ");
            local v205 = if not not l_fields_0 and #l_fields_0 ~= 0 then ("{\n%s\n}"):format(v64((v44(l_fields_0, "\n")))) else "";
            setlist { ['R007[1 to 5]'] = 'R008 to R012' };
            return (l_v44_1(v198, " "));
        end
    },
    FieldDefinition = {
        leave = function(_, v207)
            local l_name_5 = v207.name;
            local l_arguments_2 = v207.arguments;
            local l_type_1 = v207.type;
            local l_directives_7 = v207.directives;
            local v212 = tostring(l_name_5);
            local v214 = if typeof(l_arguments_2) == "table" then l_Array_0.some(l_arguments_2, function(v213)
                return l_String_0.includes(v213, "\n");
            end) else nil;
            local v215;
            if not if v214 ~= nil then v214 else false then
                local v216 = v44(l_arguments_2, ", ");
                v215 = not l_Boolean_0.toJSBoolean(v216) and "" or "(" .. tostring(v216) .. (not l_Boolean_0.toJSBoolean(")") and "" or ")");
            else
                v214 = v44(l_arguments_2, "\n");
                local v217 = if not l_Boolean_0.toJSBoolean(v214) then v214 else ("  %s"):format((v214:gsub("\n", "\n  ")));
                v215 = not l_Boolean_0.toJSBoolean(v217) and "" or "(\n" .. tostring(v217) .. (not l_Boolean_0.toJSBoolean("\n)") and "" or "\n)");
            end;
            local v218 = ": ";
            local v219 = tostring(l_type_1);
            local v220 = v44(l_directives_7, " ");
            local v221;
            if not l_Boolean_0.toJSBoolean(v220) then
                v221 = "";
            else
                v214 = " ";
                local v222 = tostring(v220);
                v221 = if not l_Boolean_0.toJSBoolean(nil) then v214 .. v222 .. "" else v214 .. v222 .. "";
            end;
            return v212 .. v215 .. v218 .. v219 .. v221;
        end
    },
    InputValueDefinition = {
        leave = function(_, v224)
            local l_name_6 = v224.name;
            local l_type_2 = v224.type;
            local l_defaultValue_1 = v224.defaultValue;
            local l_directives_8 = v224.directives;
            local l_v44_2 = v44;
            local v230 = {};
            local v231 = tostring(l_name_6) .. ": " .. tostring(l_type_2);
            local v232;
            if not l_Boolean_0.toJSBoolean(l_defaultValue_1) then
                v232 = "";
            else
                local v233 = "= ";
                local v234 = tostring(l_defaultValue_1);
                v232 = if not l_Boolean_0.toJSBoolean(nil) then v233 .. v234 .. "" else v233 .. v234 .. "";
            end;
            local v235 = v44(l_directives_8, " ");
            setlist { ['R007[1 to 3]'] = 'R008 to R010' };
            return (l_v44_2(v230, " "));
        end
    },
    InterfaceTypeDefinition = {
        leave = function(_, v237)
            local l_name_7 = v237.name;
            local l_interfaces_1 = v237.interfaces;
            local l_directives_9 = v237.directives;
            local l_fields_1 = v237.fields;
            local l_v44_3 = v44;
            local v243 = {};
            local v244 = "interface";
            local l_l_name_7_0 = l_name_7;
            local v246 = v44(l_interfaces_1, " & ");
            local v247;
            if not l_Boolean_0.toJSBoolean(v246) then
                v247 = "";
            else
                local v248 = "implements ";
                local v249 = tostring(v246);
                v247 = if not l_Boolean_0.toJSBoolean(nil) then v248 .. v249 .. "" else v248 .. v249 .. "";
            end;
            v246 = v44(l_directives_9, " ");
            local v250 = if not not l_fields_1 and #l_fields_1 ~= 0 then ("{\n%s\n}"):format(v64((v44(l_fields_1, "\n")))) else "";
            setlist { ['R007[1 to 5]'] = 'R008 to R012' };
            return (l_v44_3(v243, " "));
        end
    },
    UnionTypeDefinition = {
        leave = function(_, v252)
            local l_name_8 = v252.name;
            local l_directives_10 = v252.directives;
            local l_types_0 = v252.types;
            local l_v44_4 = v44;
            local v257 = {};
            local v258 = "union";
            local l_l_name_8_0 = l_name_8;
            local v260 = v44(l_directives_10, " ");
            local v261 = v44(l_types_0, " | ");
            local v262;
            if not l_Boolean_0.toJSBoolean(v261) then
                v262 = "";
            else
                local v263 = "= ";
                local v264 = tostring(v261);
                v262 = if not l_Boolean_0.toJSBoolean(nil) then v263 .. v264 .. "" else v263 .. v264 .. "";
            end;
            setlist { ['R006[1 to 4]'] = 'R007 to R010' };
            return (l_v44_4(v257, " "));
        end
    },
    EnumTypeDefinition = {
        leave = function(_, v266)
            local l_name_9 = v266.name;
            local l_directives_11 = v266.directives;
            local l_values_0 = v266.values;
            return (v44({
                "enum",
                l_name_9,
                v44(l_directives_11, " "),
                if not not l_values_0 and #l_values_0 ~= 0 then ("{\n%s\n}"):format(v64((v44(l_values_0, "\n")))) else ""
            }, " "));
        end
    },
    EnumValueDefinition = {
        leave = function(_, v271)
            return (v44({
                v271.name,
                (v44(v271.directives, " "))
            }, " "));
        end
    },
    InputObjectTypeDefinition = {
        leave = function(_, v273)
            local l_name_10 = v273.name;
            local l_directives_12 = v273.directives;
            local l_fields_2 = v273.fields;
            return (v44({
                "input",
                l_name_10,
                v44(l_directives_12, " "),
                if not not l_fields_2 and #l_fields_2 ~= 0 then ("{\n%s\n}"):format(v64((v44(l_fields_2, "\n")))) else ""
            }, " "));
        end
    },
    DirectiveDefinition = {
        leave = function(_, v278)
            local l_name_11 = v278.name;
            local l_arguments_3 = v278.arguments;
            local l_repeatable_0 = v278.repeatable;
            local l_locations_0 = v278.locations;
            local v283 = "directive @";
            local v284 = tostring(l_name_11);
            local l_toJSBoolean_1 = l_Boolean_0.toJSBoolean;
            local v287 = if typeof(l_arguments_3) == "table" then l_Array_0.some(l_arguments_3, function(v286)
                return l_String_0.includes(v286, "\n");
            end) else nil;
            local v288;
            if not l_toJSBoolean_1(if v287 ~= nil then v287 else false) then
                l_toJSBoolean_1 = v44(l_arguments_3, ", ");
                v288 = not l_Boolean_0.toJSBoolean(l_toJSBoolean_1) and "" or "(" .. tostring(l_toJSBoolean_1) .. (not l_Boolean_0.toJSBoolean(")") and "" or ")");
            else
                local v289 = v44(l_arguments_3, "\n");
                l_toJSBoolean_1 = if not l_Boolean_0.toJSBoolean(v289) then v289 else ("  %s"):format((v289:gsub("\n", "\n  ")));
                v288 = not l_Boolean_0.toJSBoolean(l_toJSBoolean_1) and "" or "(\n" .. tostring(l_toJSBoolean_1) .. (not l_Boolean_0.toJSBoolean("\n)") and "" or "\n)");
            end;
            return v283 .. v284 .. tostring(v288) .. (not l_Boolean_0.toJSBoolean(l_repeatable_0) and "" or " repeatable") .. " on " .. tostring((v44(l_locations_0, " | ")));
        end
    },
    SchemaExtension = {
        leave = function(_, v291)
            local l_directives_13 = v291.directives;
            local l_operationTypes_1 = v291.operationTypes;
            return (v44({
                "extend schema",
                v44(l_directives_13, " "),
                if not not l_operationTypes_1 and #l_operationTypes_1 ~= 0 then ("{\n%s\n}"):format(v64((v44(l_operationTypes_1, "\n")))) else ""
            }, " "));
        end
    },
    ScalarTypeExtension = {
        leave = function(_, v295)
            return (v44({
                "extend scalar",
                v295.name,
                (v44(v295.directives, " "))
            }, " "));
        end
    },
    ObjectTypeExtension = {
        leave = function(_, v297)
            local l_name_12 = v297.name;
            local l_interfaces_2 = v297.interfaces;
            local l_directives_14 = v297.directives;
            local l_fields_3 = v297.fields;
            local l_v44_5 = v44;
            local v303 = {};
            local v304 = "extend type";
            local l_l_name_12_0 = l_name_12;
            local v306 = v44(l_interfaces_2, " & ");
            local v307;
            if not l_Boolean_0.toJSBoolean(v306) then
                v307 = "";
            else
                local v308 = "implements ";
                local v309 = tostring(v306);
                v307 = if not l_Boolean_0.toJSBoolean(nil) then v308 .. v309 .. "" else v308 .. v309 .. "";
            end;
            v306 = v44(l_directives_14, " ");
            local v310 = if not not l_fields_3 and #l_fields_3 ~= 0 then ("{\n%s\n}"):format(v64((v44(l_fields_3, "\n")))) else "";
            setlist { ['R007[1 to 5]'] = 'R008 to R012' };
            return (l_v44_5(v303, " "));
        end
    },
    InterfaceTypeExtension = {
        leave = function(_, v312)
            local l_name_13 = v312.name;
            local l_interfaces_3 = v312.interfaces;
            local l_directives_15 = v312.directives;
            local l_fields_4 = v312.fields;
            local l_v44_6 = v44;
            local v318 = {};
            local v319 = "extend interface";
            local l_l_name_13_0 = l_name_13;
            local v321 = v44(l_interfaces_3, " & ");
            local v322;
            if not l_Boolean_0.toJSBoolean(v321) then
                v322 = "";
            else
                local v323 = "implements ";
                local v324 = tostring(v321);
                v322 = if not l_Boolean_0.toJSBoolean(nil) then v323 .. v324 .. "" else v323 .. v324 .. "";
            end;
            v321 = v44(l_directives_15, " ");
            local v325 = if not not l_fields_4 and #l_fields_4 ~= 0 then ("{\n%s\n}"):format(v64((v44(l_fields_4, "\n")))) else "";
            setlist { ['R007[1 to 5]'] = 'R008 to R012' };
            return (l_v44_6(v318, " "));
        end
    },
    UnionTypeExtension = {
        leave = function(_, v327)
            local l_name_14 = v327.name;
            local l_directives_16 = v327.directives;
            local l_types_1 = v327.types;
            local l_v44_7 = v44;
            local v332 = {};
            local v333 = "extend union";
            local l_l_name_14_0 = l_name_14;
            local v335 = v44(l_directives_16, " ");
            local v336 = v44(l_types_1, " | ");
            local v337;
            if not l_Boolean_0.toJSBoolean(v336) then
                v337 = "";
            else
                local v338 = "= ";
                local v339 = tostring(v336);
                v337 = if not l_Boolean_0.toJSBoolean(nil) then v338 .. v339 .. "" else v338 .. v339 .. "";
            end;
            setlist { ['R006[1 to 4]'] = 'R007 to R010' };
            return (l_v44_7(v332, " "));
        end
    },
    EnumTypeExtension = {
        leave = function(_, v341)
            local l_name_15 = v341.name;
            local l_directives_17 = v341.directives;
            local l_values_1 = v341.values;
            return (v44({
                "extend enum",
                l_name_15,
                v44(l_directives_17, " "),
                if not not l_values_1 and #l_values_1 ~= 0 then ("{\n%s\n}"):format(v64((v44(l_values_1, "\n")))) else ""
            }, " "));
        end
    },
    InputObjectTypeExtension = {
        leave = function(_, v346)
            local l_name_16 = v346.name;
            local l_directives_18 = v346.directives;
            local l_fields_5 = v346.fields;
            return (v44({
                "extend input",
                l_name_16,
                v44(l_directives_18, " "),
                if not not l_fields_5 and #l_fields_5 ~= 0 then ("{\n%s\n}"):format(v64((v44(l_fields_5, "\n")))) else ""
            }, " "));
        end
    }
};
local v371 = l_Array_0.reduce(l_Object_0.keys(v350), function(v351, v352)
    local l_assign_0 = l_Object_0.assign;
    local v354 = {};
    local l_v351_0 = v351;
    local v356 = {};
    local v357 = {};
    local l_leave_0 = v350[v352].leave;
    v357.leave = function(v359, v360, v361, v362, v363, v364)
        local v365 = {};
        local v368 = l_Array_0.reduce(v363, function(v366, v367)
            if not ((not (v367 ~= l_Object_0.None) or not l_Array_0.includes({
                "fields",
                "arguments",
                "values"
            }, v367)) or not l_Boolean_0.toJSBoolean(v366.name)) then
                table.insert(v365, v366.name.value);
            end;
            if v366 == l_Object_0.None then
                return v367;
            else
                return v366[v367];
            end;
        end, v364[1] or l_Object_0.None);
        local v369 = l_Array_0.join(l_Array_0.filter(l_Array_0.concat({}, v365, {
            if typeof(if typeof(v368) == "table" then v368.name else nil) == "table" then (if typeof(v368) == "table" then v368.name else nil).value else nil
        }), l_Boolean_0.toJSBoolean), ".");
        local v370 = {};
        if not (not l_String_0.includes(v360.kind, "Definition") or not l_Boolean_0.toJSBoolean(v20[v369])) then
            v370 = l_Array_0.concat(v370, v20[v369]);
        end;
        return (v44(l_Array_0.concat({}, l_Array_0.map(v370, v40), {
            v360.description or "",
            (l_leave_0(v359, v360, v361, v362, v363, v364))
        }), "\n"));
    end;
    v356[v352] = v357;
    return (l_assign_0(v354, l_v351_0, v356));
end, {});
v5.printWithComments = function(v372)
    return (l_visit_0(v372, v371));
end;
v12 = function(v373)
    return v373.kind == "FieldDefinition";
end;
v5.getDescription = function(v374, v375)
    if v374.description ~= nil then
        return v374.description.value;
    elseif not l_Boolean_0.toJSBoolean(if typeof(v375) == "table" then v375.commentDescriptions else nil) then
        return nil;
    else
        return v13(v374);
    end;
end;
v13 = function(v376)
    local v377 = v14(v376);
    if v377 ~= nil then
        return v15(("\n%s"):format((tostring(v377))));
    else
        return nil;
    end;
end;
v5.getComment = v13;
v14 = function(v378)
    local l_loc_0 = v378.loc;
    if l_Boolean_0.toJSBoolean(l_loc_0) then
        local v380 = {};
        local l_prev_0 = l_loc_0.startToken.prev;
        while ((((l_prev_0 ~= nil and l_prev_0.kind == l_TokenKind_0.COMMENT) and l_prev_0.next ~= nil) and l_prev_0.prev ~= nil) and l_prev_0.line + 1 == l_prev_0.next.line) and l_prev_0.line ~= l_prev_0.prev.line do
            table.insert(v380, (tostring(l_prev_0.value)));
            l_prev_0 = l_prev_0.prev;
        end;
        if #v380 > 0 then
            return (l_Array_0.join(l_Array_0.reverse(v380), "\n"));
        else
            return nil;
        end;
    else
        return ;
    end;
end;
v5.getLeadingCommentBlock = v14;
v15 = function(v382)
    local v383 = l_String_0.split(v382, {
        "\r\n",
        "\n",
        "\r"
    });
    local v384 = v16(v383);
    if v384 ~= 0 then
        local v385 = 2;
        while v385 <= #v383 do
            v383[v385] = l_String_0.slice(v383[v385], v384 + 1);
            v385 = v385 + 1;
        end;
    end;
    while not (not (#v383 > 0) or not v17(v383[1])) do
        table.remove(v383, 1);
    end;
    while not (not (#v383 > 0) or not v17(v383[#v383])) do
        table.remove(v383);
    end;
    return l_Array_0.join(v383, "\n");
end;
v5.dedentBlockStringValue = v15;
v16 = function(v386)
    local v387 = nil;
    local v388 = 2;
    while v388 <= #v386 do
        local v389 = v386[v388];
        local v390 = v18(v389);
        if v390 == #v389 then
            v388 = v388 + 1;
        else
            if not (v387 ~= nil) or v390 < v387 then
                v387 = v390;
                if not (v387 ~= 0) then
                    break;
                end;
            end;
            v388 = v388 + 1;
        end;
    end;
    if v387 == nil then
        return 0;
    else
        return v387;
    end;
end;
v5.getBlockStringIndentation = v16;
v18 = function(v391)
    local v392 = 0;
    while v392 < #v391 and (not (v391:sub(v392 + 1, v392 + 1) ~= " ") or v391:sub(v392 + 1, v392 + 1) == "\t") do
        v392 = v392 + 1;
    end;
    return v392;
end;
v17 = function(v393)
    return v18(v393) == #v393;
end;
return v5;


local l_Parent_0 = script.Parent.Parent;
local _ = require(l_Parent_0.LuauPolyfill);
local v2 = {};
local v3 = require(l_Parent_0.GraphQL);
local l_GraphQLError_0 = v3.GraphQLError;
local l_versionInfo_0 = v3.versionInfo;
local _ = require(script.Parent.types);
local function v9(v7, v8)
    if l_versionInfo_0.major >= 17 then
        return l_GraphQLError_0.new(v7, v8);
    else
        return l_GraphQLError_0.new(v7, if typeof(v8) == "table" then v8.nodes else nil, if typeof(v8) == "table" then v8.source else nil, if typeof(v8) == "table" then v8.positions else nil, if typeof(v8) == "table" then v8.path else nil, if typeof(v8) == "table" then v8.originalError else nil, if typeof(v8) == "table" then v8.extensions else nil);
    end;
end;
v2.createGraphQLError = v9;
v2.relocatedError = function(v10, v11)
    return v9(v10.message, {
        nodes = v10.nodes,
        source = v10.source,
        positions = v10.positions,
        path = if v11 == nil then v10.path else v11,
        originalError = v10,
        extensions = v10.extensions
    });
end;
return v2;


local _ = require(script.Parent.Parent.LuauPolyfill);
local v1 = {};
local _ = require(script.Parent.Interfaces);
return v1;


local l_Parent_0 = script.Parent.Parent;
local l_Boolean_0 = require(l_Parent_0.LuauPolyfill).Boolean;
local v2 = {};
local l_mapSchema_0 = require(script.Parent.mapSchema).mapSchema;
local _ = require(l_Parent_0.GraphQL);
local _ = require(script.Parent.types);
local l_MapperKind_0 = require(script.Parent.Interfaces).MapperKind;
v2.extractExtensionsFromSchema = function(v7)
    local v8 = {
        schemaExtensions = not not l_Boolean_0.toJSBoolean(v7.extensions) and v7.extensions or {},
        types = {}
    };
    l_mapSchema_0(v7, {
        [tostring(l_MapperKind_0.OBJECT_TYPE)] = function(v9)
            v8.types[tostring(v9.name)] = {
                fields = {},
                type = "object",
                extensions = not not l_Boolean_0.toJSBoolean(v9.extensions) and v9.extensions or {}
            };
            return v9;
        end,
        [tostring(l_MapperKind_0.INTERFACE_TYPE)] = function(v10)
            v8.types[tostring(v10.name)] = {
                fields = {},
                type = "interface",
                extensions = if not l_Boolean_0.toJSBoolean(v10.extensions) then {} else v10.extensions
            };
            return v10;
        end,
        [tostring(l_MapperKind_0.FIELD)] = function(v11, v12, v13)
            v8.types[v13].fields[v12] = {
                arguments = {},
                extensions = if not l_Boolean_0.toJSBoolean(v11.extensions) then {} else v11.extensions
            };
            local l_args_0 = v11.args;
            if l_args_0 ~= nil then
                for _, v16 in l_args_0, nil, nil do
                    local v17 = table.unpack(v16);
                    v8.types[v13].fields[v12].arguments[tostring(v17)] = not not l_Boolean_0.toJSBoolean(l_args_0[tostring(v17)].extensions) and l_args_0[tostring(v17)].extensions or {};
                end;
            end;
            return v11;
        end,
        [tostring(l_MapperKind_0.ENUM_TYPE)] = function(v18)
            v8.types[tostring(v18.name)] = {
                values = {},
                type = "enum",
                extensions = not not l_Boolean_0.toJSBoolean(v18.extensions) and v18.extensions or {}
            };
            return v18;
        end,
        [tostring(l_MapperKind_0.ENUM_VALUE)] = function(v19, v20, _, v22)
            v8.types[v20].values[v22] = not not l_Boolean_0.toJSBoolean(v19.extensions) and v19.extensions or {};
            return v19;
        end,
        [tostring(l_MapperKind_0.SCALAR_TYPE)] = function(v23)
            v8.types[tostring(v23.name)] = {
                type = "scalar",
                extensions = not not l_Boolean_0.toJSBoolean(v23.extensions) and v23.extensions or {}
            };
            return v23;
        end,
        [tostring(l_MapperKind_0.UNION_TYPE)] = function(v24)
            v8.types[tostring(v24.name)] = {
                type = "union",
                extensions = not not l_Boolean_0.toJSBoolean(v24.extensions) and v24.extensions or {}
            };
            return v24;
        end,
        [tostring(l_MapperKind_0.INPUT_OBJECT_TYPE)] = function(v25)
            v8.types[tostring(v25.name)] = {
                fields = {},
                type = "input",
                extensions = not not l_Boolean_0.toJSBoolean(v25.extensions) and v25.extensions or {}
            };
            return v25;
        end,
        [tostring(l_MapperKind_0.INPUT_OBJECT_FIELD)] = function(v26, v27, v28)
            v8.types[v28].fields[v27] = {
                extensions = not not l_Boolean_0.toJSBoolean(v26.extensions) and v26.extensions or {}
            };
            return v26;
        end
    });
    return v8;
end;
return v2;