--## Version: 1.0.64 ## Author: Jassade
if GetLocale() == "zhCN" then
  CanOpenerLocal = "|cff33ff99[物品]|r一键开启";
elseif GetLocale() == "zhTW" then
  CanOpenerLocal = "|cff33ff99[物品]|r一键开启";
else
  CanOpenerLocal = "Can Opener";
end

local CanOpenerGlobal = {}
local shouldUpdateBags = false;

------------------------------------------------
-- Global Settings
------------------------------------------------
CanOpenerGlobal.IsRemixActive = false;

------------------------------------------------
-- Debug Methods
------------------------------------------------
local canOut;
local canOutTable;

canOut = function(msg, premsg)
	premsg = premsg or CanOpenerLocal;  --"[Can Opener]"
	if type(msg) == "table" then
		canOutTable(msg, nil, premsg);
	else
		--print("|cC0FFEE69" .. premsg .. "|r " .. msg);
		print(premsg .. msg);
	end
end
CanOpenerGlobal.CanOut = canOut;

canOutTable = function(table, indent, premsg)
	indent = indent or 0
	for key, value in pairs(table) do
		-- Format the indentation
		local formatting = string.rep("  ", indent) .. tostring(key) .. ": "

		-- If the value is a table, recursively call canOutTable
		if type(value) == "table" then
			canOut(formatting, premsg)
			canOutTable(value, indent + 1, premsg)
		else
			-- Otherwise, just print the value
			canOut(formatting .. tostring(value), premsg)
		end
	end
end

local colorName = {
	LIGHTBLUE = 1,
	LIGHTRED = 2,
	SPRINGGREEN = 3,
	GREENYELLOW = 4,
	BLUE = 5,
	PURPLE = 6,
	GREEN = 7,
	RED = 8,
	GOLD = 9,
	GOLD2 = 10,
	GREY = 11,
	WHITE = 12,
	SUBWHITE = 13,
	MAGENTA = 14,
	YELLOW = 15,
	ORANGEY = 16,
	CHOCOLATE = 17,
	CYAN = 18,
	IVORY = 19,
	LIGHTYELLOW = 20,
	SEXGREEN = 21,
	SEXTEAL = 22,
	SEXPINK = 23,
	SEXBLUE = 24,
	SEXHOTPINK = 25,
	CANOPENERBUMBER = 26
};
CanOpenerGlobal.ColorName = colorName;

local colors = {
	[colorName.LIGHTBLUE] = 'ff00ccff',
	[colorName.LIGHTRED] = 'ffff6060',
	[colorName.SPRINGGREEN] = 'ff00FF7F',
	[colorName.GREENYELLOW] = 'ffADFF2F',
	[colorName.BLUE] = 'ff0000ff',
	[colorName.PURPLE] = 'ffDA70D6',
	[colorName.GREEN] = 'ff00ff00',
	[colorName.RED] = 'ffff0000',
	[colorName.GOLD] = 'ffffcc00',
	[colorName.GOLD2] = 'ffFFC125',
	[colorName.GREY] = 'ff888888',
	[colorName.WHITE] = 'ffffffff',
	[colorName.SUBWHITE] = 'ffbbbbbb',
	[colorName.MAGENTA] = 'ffff00ff',
	[colorName.YELLOW] = 'ffffff00',
	[colorName.ORANGEY] = 'ffFF4500',
	[colorName.CHOCOLATE] = 'ffCD661D',
	[colorName.CYAN] = 'ff00ffff',
	[colorName.IVORY] = 'ff8B8B83',
	[colorName.LIGHTYELLOW] = 'ffFFFFE0',
	[colorName.SEXGREEN] = 'ff71C671',
	[colorName.SEXTEAL] = 'ff388E8E',
	[colorName.SEXPINK] = 'ffC67171',
	[colorName.SEXBLUE] = 'ff00E5EE',
	[colorName.SEXHOTPINK] = 'ffFF6EB4',
	[colorName.CANOPENERBUMBER] = 'c0ffee69'
};

local function colorizeText(text, color)
	return "|c" .. colors[color] .. text .. "|r";
end
CanOpenerGlobal.ColorizeText = colorizeText;

local function posOrNegColor(test, positiveText, negativeText)
    local color = test and CanOpenerGlobal.ColorName.SPRINGGREEN or CanOpenerGlobal.ColorName.LIGHTRED
    local text = test and positiveText or negativeText
    return colorizeText(text, color)
end
CanOpenerGlobal.PosOrNegColor = posOrNegColor;

------------------------------------------------
-- Saved Variable Management
------------------------------------------------
local function initSavedVariables()
	ShiGuangPerDB = {
		CanOpenerEnable = true,
		CanOpenerShowRousing = true,
		CanOpenershowRemixGems = true,
		CanOpenerRemixEpicGems = true,
		showLevelRestrictedItems = true,
		CanOpenerPosition = {"TOPRIGHT", "TOPRIGHT", -80, -260},
		excludedItems = { },
	};
end
local function UpdateSavedVars()
	-- Added Excluded Items
	if ShiGuangPerDB.excludedItems == nil then
		ShiGuangPerDB.excludedItems = {};
	end
end
local function resetSavedVariables()
	initSavedVariables();
	CanOpenerGlobal.Frame:Hide();
	CanOpenerGlobal.Frame:Show();
	CanOpenerGlobal.ForceButtonRefresh();
end
CanOpenerGlobal.ResetSavedVariables = resetSavedVariables;

------------------------------------------------
-- Event actions
------------------------------------------------
local function addon_Loaded()
		CanOpenerGlobal.Frame:UnregisterEvent("ADDON_LOADED");
		CanOpenerGlobal.SavedVars = ShiGuangPerDB or initSavedVariables();
		--if ShiGuangPerDB == nil then initSavedVariables(); end
		UpdateSavedVars();
        InitSettingsMenu();
end

local function bag_update(bagID)
	if (CanOpenerGlobal.BagIndicies.Backpack <= bagID and bagID <= CanOpenerGlobal.BagIndicies.ReagentBag) then
		shouldUpdateBags = true;
	end
end

local function bag_update_delayed()
	if not CanOpenerGlobal.LockDown then
		if shouldUpdateBags then
			shouldUpdateBags = false;
			CanOpenerGlobal.UpdateButtons();
		end
		CanOpenerGlobal.DrawButtons()
	end
end

local function player_entering_world(isInitialLogin, isReloadingUi)
	CanOpenerGlobal.Frame:Show();
end

local function player_leaving_world()
end

local function player_regen_disabled()
	CanOpenerGlobal.Frame:Hide();
	CanOpenerGlobal.LockDown = true;
end

local function player_regen_enabled()
	CanOpenerGlobal.LockDown = false;
	bag_update_delayed();
	CanOpenerGlobal.Frame:Show();
end

CanOpenerGlobal.Events = {
	["ADDON_LOADED"] = addon_Loaded,
	["BAG_UPDATE"] = bag_update,
	["BAG_UPDATE_DELAYED"] = bag_update_delayed,
	["PLAYER_ENTERING_WORLD"] = player_entering_world,
	["PLAYER_LEAVING_WORLD"] = player_leaving_world,
	["PLAYER_REGEN_DISABLED"] = player_regen_disabled,
	["PLAYER_REGEN_ENABLED"] = player_regen_enabled,
};

CanOpenerGlobal.ForceButtonRefresh = function()
	shouldUpdateBags = true;
	bag_update_delayed();
end
------------------------------------------------
-- Enums
------------------------------------------------
CanOpenerGlobal.BagIndicies = {
	["Backpack"] = 0,
	["Bag_1"] = 1,
	["Bag_2"] = 2,
	["Bag_3"] = 3,
	["Bag_4"] = 4,
	["ReagentBag"] = 5,
};


CanOpenerGlobal.openables = {
	[92788] = { name = "RideTicketBook" },
	[183701] = { name = "CleansingRiteMaterials" },
	[181372] = { name = "tributeoftheascended" },
	[181741] = { name = "tributeoftheparagon" },
	[180647] = { name = "AscendedSupplies" },
	[183702] = { name = "NaturesSplendor" },
	[181475] = { name = "bountyofthegrovewardens" },
	[181476] = { name = "tributeofthewildhunt" },
	[180649] = { name = "WildHuntSupplies" },
	[183703] = { name = "BonesmithsSatchel" },
	[181732] = { name = "tributeoftheambitious" },
	[181733] = { name = "tributeofthedutybound" },
	[180646] = { name = "SuppliesoftheUndyingArmy" },
	[184843] = { name = "SalvagedSupplies" },
	[183699] = { name = "ExquisiteIngredients" },
	[181556] = { name = "tributeofthecourt" },
	[181557] = { name = "favorofthecourt" },
	[180648] = { name = "CourtofHarvestersSupplies" },
	[184635] = { name = "AdventurersMiningCache" },
	[184641] = { name = "champions-mining-cache" },
	[184646] = { name = "heros-mining-cache" },
	[184630] = { name = "AdventurersTailoringCache" },
	[184639] = { name = "champions-tailoring-cache" },
	[184644] = { name = "heros-tailoring-cache" },
	[184631] = { name = "AdventurersEnchantingCache" },
	[184643] = { name = "champions-enchanting-cache" },
	[184648] = { name = "heros-enchanting-cache" },
	[184634] = { name = "AdventurersHerbalismCache" },
	[184647] = { name = "heros-herbalism-cache" },
	[184642] = { name = "champions-herbalism-cache" },
	[184636] = { name = "AdventurersSkinningCache" },
	[184640] = { name = "champions-skinning-cache" },
	[184645] = { name = "heros-skinning-cache" },
	[184632] = { name = "ChampionsFishCache" },
	[184638] = { name = "heros-fish-cache" },
	[184633] = { name = "ChampionsMeatCache" },
	[184637] = { name = "heros-meat-cache" },
	[180974] = { name = "novicessatchel" },
	[180981] = { name = "noviceslargesatchel" },
	[180985] = { name = "novicesstuffedsatchel" },
	[180989] = { name = "novicesoverflowingsatchel" },
	[180975] = { name = "journeymanssatchel" },
	[180980] = { name = "journeymanslargesatchel" },
	[180984] = { name = "journeymansstuffedsatchel" },
	[180988] = { name = "journeymansoverflowingsatchel" },
	[180976] = { name = "artisanssatchel" },
	[180979] = { name = "artisanslargesatchel" },
	[180983] = { name = "artisansstuffedsatchel" },
	[180977] = { name = "spirittenderssatchel" },
	[184395] = { name = "FallenAdventurersCache" },
	[171209] = { name = "BloodedSatchel" },
	[171210] = { name = "SatchelofNaturesBounty" },
	[171211] = { name = "VenthyrsCoinPurse" },
	[178128] = { name = "PouchofShinies" },
	[86623] = { name = "blingtron-4000-gift-package" },
	[113258] = { name = "blingtron-5000-gift-package" },
	[132892] = { name = "blingtron-6000-gift-package" },
	[168740] = { name = "blingtron-7000-gift-package" },
	[184869] = { name = "cacheofnathriantreasures" },
	[184868] = { name = "cacheofnathriantreasures" },
	[184522] = { name = "veiledsatchelofcooperation" },
	[45072] = { name = "brightlycoloredegg" },
	[116062] = { name = "GreaterDarkmoonPetSupplies" },
	[122535] = { name = "TravelersPetSupplies" },
	[118697] = { name = "BigBagofPetSupplies" },
	[91086] = { name = "DarkmoonPetSupplies" },
	[185972] = { name = "tormentorscache" },
	[187354] = { name = "AbandonedBrokerSatchel" },
	[185992] = { name = "WarChestoftheUndyingArmy" },
	[185991] = { name = "WarChestoftheWildHunt" },
	[185993] = { name = "AscendedWarChest" },
	[185990] = { name = "HarvestersWarChest" },
	[186196] = { name = "DeathsAdvanceWarChest" },
	[187543] = { name = "DeathsAdvanceWarChest2" },
	[187440] = { name = "FeatherStuffedHelm" },
	[185963] = { name = "DivinersRuneChit" },
	[187278] = { name = "TalonPiercedMawswornLockbox" },
	[187577] = { name = "KorthianMeatCache" },
	[187576] = { name = "KorthianSkinningCache" },
	[187575] = { name = "KorthianFishingCache" },
	[187029] = { name = "MysteriousGiftfromVenari" },
	[186970] = { name = "FeedersHandandKey" },
	[186531] = { name = "CacheofSanctumTreasures226" },
	[186533] = { name = "CacheofSanctumTreasures239" },
	[187574] = { name = "CacheofSanctumTreasures239" },
	[187573] = { name = "BrokersEnchantingMoteofPotentiation" },
	[187572] = { name = "BrokersHerbalismMoteofPotentiation" },
	[187569] = { name = "BrokersTailoringMoteofPotentiation" },
	[187570] = { name = "BrokersSkinningMoteofPotentiation" },
	[187571] = { name = "BrokersMiningMoteofPotentiation" },
	[187346] = { name = "LostMemento" },
	[186680] = { name = "GoldFilledBoot" },
	[186707] = { name = "GoldFilledCrate" },
	[187551] = { name = "SmallKorthianSupplyChest" },
	[186650] = { name = "DeathsAdvanceSupplies" },
	[186706] = { name = "GoldFilledHat" },
	[186688] = { name = "GoldFilledWashBucket" },
	[186708] = { name = "GoldFilledPaintBrushCup" },
	[186705] = { name = "GoldFilledChalice" },
	[186691] = { name = "GoldFilledSatchel" },
	[186690] = { name = "GoldFilledBarrel" },
	[186692] = { name = "GoldFilledHelmet" },
	[186693] = { name = "GoldFilledWheelbarrow" },
	[187028] = { name = "SuppliesoftheArchivistsCodex" },
	[187351] = { name = "StygicCluster" },
	[117393] = { name = "KegShapedTreasureChest" },
	[149574] = { name = "LootStuffedPumpkin" },
	[54516] = { name = "LootFilledPumpkinRare" },
	[117392] = { name = "LootFilledPumpkinEpic" },
	[37586] = { name = "HandfulofTreats" },
	[187781] = { name = "olea-cache" },
	[191303] = { name = "overflowing-chest-of-riches" },
	[187780] = { name = "enlightened-broker-supplies" },
	[187787] = { name = "ephemera-orb" },
	[191302] = { name = "bottled-night-sky" },
	[191030] = { name = "cosmic-flux-parcel" },
	[191040] = { name = "cache-of-sepulcher-treasures252" },
	[190178] = { name = "pouch-of-protogenic-provisions" },
	[190655] = { name = "cache-of-sepulcher-treasures2521" },
	[191301] = { name = "treatise-on-patterns-in-the-purpose" },
	[190656] = { name = "cache-of-sepulcher-treasures265" },
	[191041] = { name = "cache-of-sepulcher-treasures2651" },
	[190823] = { name = "firims-mysterious-cache" },
	[191139] = { name = "tribute-of-the-enlightened-elders1" },
	[190610] = { name = "tribute-of-the-enlightened-elders2" },
	[191701] = { name = "bag-of-explored-souls" },
	[192437] = { name = "cache-of-fated-treasures278" },
	[192438] = { name = "cache-of-fated-treasures291" },
	[187710] = { name = "anniversary-gift2022" },
	[89125] = { name = "sack-of-pet-supplies" },
	[94207] = { name = "fabled-pandaren-pet-supplies" },
	[157822] = { name = "dreamweaver-provisions" },
	[157828] = { name = "kirin-tor-chest" },
	[152922] = { name = "brittle-krokul-chest" },
	[157827] = { name = "wardens-field-kit" },
	[152107] = { name = "wardens-supply-kit" },
	[183883] = { name = "bulging-collection-of-random-bits" },
	[104272] = { name = "Cache-of-Vault-Treasures" },
	[95602] = { name = "stormtouched-cache" },
	[90839] = { name = "cache-of-sha-touched-gold" },
	[94159] = { name = "fel-touched-pet-supplies" },
	[90840] = { name = "marauders-gleaming-sack-of-gold" },
	[97153] = { name = "spoils-of-the-thunder-king" },
	[87217] = { name = "small-bag-of-goods" },
	[169850] = { name = "azeroth-mini-pack-mechagon" },
	[168266] = { name = "strange-recycling-requisition" },
	[168264] = { name = "recycling-requisition" },
	[142447] = { name = "torn-sack-of-pet-supplies" },
	[184866] = { name = "grummlepouch" },
	[127751] = { name = "fel-touched-pet-supplies" },
	[166299] = { name = "honorbound-supplies" },
	[5523] = { name = "small-barnacled-clam" },
	[157824] = { name = "valarjar-cache" },
	[116404] = { name = "pilgrims-bounty" },
	[202102] = { name = "Immaculate-Sac-of-Swog-Treasures" },
	[199342] = { name = "Weighted-Sac-of-Swog-Treasures" },
	[202122] = { name = "Primal-Chaos-Cluster" },
	[201462] = { name = "Curiously-Shaped-Stomach" },
	[202142] = { name = "Dragonbane-Keep-Strongbox" },
	[201755] = { name = "Obsidian-Forgemaster's-Strongbox" },
	[202059] = { name = "Jeweled-Dragon's-Heart" },
	[201299] = { name = "Docile-Frosty-Soul" },
	[201818] = { name = "Twilight-Strongbox" },
	[202048] = { name = "Queen's-Gift" },
	[202053] = { name = "Jeweled-Dragon's-Heart" },
	[201250] = { name = "Victorious-Contender's-Strongbox" },
	[201298] = { name = "Docile-Fiery-Soul" },
	[202051] = { name = "Earthwarden's-Prize" },
	[202056] = { name = "Keeper's-Glory" },
	[201296] = { name = "Docile-Airy-Soul" },
	[201352] = { name = "Bag-of-Leather-Reagents" },
	[202049] = { name = "Dreamer's-Vision" },
	[202054] = { name = "Queen's-Gift" },
	[202057] = { name = "Earthwarden's-Prize" },
	[202101] = { name = "Topped-Trunk-of-Disenchanted-Detritus" },
	[201343] = { name = "Bag-of-Cloth-Armor-Reagents" },
	[202080] = { name = "Cache-of-Vault-Treasures" },
	[202098] = { name = "Crowded-Crate-of-Mined-Materials" },
	[201297] = { name = "Docile-Earthen-Soul" },
	[201353] = { name = "Bag-of-Mail-Armor-Reagents" },
	[201354] = { name = "Bag-of-Plate-Armor-Reagents" },
	[201756] = { name = "Bulging-Coin-Purse" },
	[201817] = { name = "Twilight-Cache" },
	[202052] = { name = "Timewatcher's-Patience" },
	[202171] = { name = "Dragon-Purse" },
	[201251] = { name = "Pillaged-Contender's-Strongbox" },
	[201326] = { name = "Draconic-Satchel-of-Cooperation" },
	[201439] = { name = "Renewed-Dream" },
	[201728] = { name = "Vakril's-Strongbox" },
	[201757] = { name = "Plundered-Supplies" },
	[202050] = { name = "Keeper's-Glory" },
	[202055] = { name = "Dreamer's-Vision" },
	[202058] = { name = "Timewatcher's-Patience" },
	[202097] = { name = "Bulging-Box-of-Skins-and-Scales" },
	[202100] = { name = "Populous-Pack-of-Castoff-Cloth" },
	[202103] = { name = "Immaculate-Sac-of-Swog-Treasures" },
	[202104] = { name = "Weighted-Sac-of-Swog-Treasures" },
	[202172] = { name = "Overflowing-Satchel-of-Coins" },
	[201754] = { name = "Obsidian-Forgemaster's-Cache" },
	[202079] = { name = "Cache-of-Vault-Treasures" },
	[194741] = { name = "earthbound-tome" },
	[201700] = { name = "Notebook-of-Crafting-Knowledge1" },
	[201705] = { name = "Notebook-of-Crafting-Knowledge2" },
	[201706] = { name = "Notebook-of-Crafting-Knowledge3" },
	[201708] = { name = "Notebook-of-Crafting-Knowledge4" },
	[201709] = { name = "Notebook-of-Crafting-Knowledge5" },
	[201710] = { name = "Notebook-of-Crafting-Knowledge6" },
	[201711] = { name = "Notebook-of-Crafting-Knowledge7" },
	[201713] = { name = "Notebook-of-Crafting-Knowledge8" },
	[201714] = { name = "Notebook-of-Crafting-Knowledge9" },
	[201715] = { name = "Notebook-of-Crafting-Knowledge10" },
	[201716] = { name = "Notebook-of-Crafting-Knowledge11" },
	[201717] = { name = "Notebook-of-Crafting-Knowledge12" },
	[201718] = { name = "Notebook-of-Crafting-Knowledge14" },
	[198438] = { name = "Draconic-Recipe-in-a-Bottle" },
	[198439] = { name = "Aged-Recipe-in-a-Bottle" },
	[202011] = { name = "Elementally-Charged-Stone" },
	[194039] = { name = "Heated-Ore-Sample" },
	[194062] = { name = "Unyielding-Stone-Chunk" },
	[201300] = { name = "Iridescent-Ore-Fragments" },
	[201301] = { name = "Iridescent-Ore" },
	[199122] = { name = "Mining-Field-Notes" },
	[200981] = { name = "Dusty-Miner's-Notes" },
	[205356] = { name = "Niffen-mining-knowledge" },
	[202014] = { name = "Infused-Pollen" },
	[200677] = { name = "Dreambloom-Petal" },
	[200678] = { name = "Dreambloom" },
	[199115] = { name = "Herbalism-Field-Notes" },
	[200980] = { name = "Dusty-Herbalist's-Notes" },
	[198837] = { name = "Curious-Hide-Scraps" },
	[202016] = { name = "Saturated-Bone" },
	[198841] = { name = "Large-Sample-of-Curious-Hide" },
	[199128] = { name = "Skinning-Field-Notes" },
	[200982] = { name = "Dusty-Skinner's-Notes" },
	[200974] = { name = "Dusty-Alchemist's-Research" },
	[205353] = { name = "Niffen-alchemy-knowledge" },
	[200972] = { name = "Dusty-Blacksmith's-Diagrams" },
	[205352] = { name = "Niffen-blacksmithing-knowledge" },
	[200976] = { name = "Dusty-Enchanter's-Research" },
	[205351] = { name = "Niffen-enchanting-knowledge" },
	[200977] = { name = "Dusty-Engineer's-Scribblings" },
	[193902] = { name = "Eroded-Titan-Gizmo" },
	[205349] = { name = "Niffen-engineering-knowledge" },
	[200973] = { name = "Dusty-Scribe's-Runic-Drawings" },
	[205354] = { name = "Niffen-inscription-knowledge" },
	[200978] = { name = "Dusty-Jeweler's-Illustrations" },
	[200979] = { name = "Dusty-Leatherworker's-Diagrams" },
	[200975] = { name = "Dusty-Tailor's-Diagrams" },
	[205355] = { name = "Niffen-tailoring-knowledge" },
	[198599] = { name = "experimental-decay-sample" },
	[198656] = { name = "painters-pretty-jewel" },
	[198658] = { name = "decay-infused-tanning-oil" },
	[198659] = { name = "forgetful-apprentices-tome" },
	[198660] = { name = "fragmented-key" },
	[198662] = { name = "intriguing-bolt-of-blue-cloth" },
	[198663] = { name = "frostforged-potion" },
	[198664] = { name = "crystalline-overgrowth" },
	[198667] = { name = "spare-djaradin-tools" },
	[198669] = { name = "how-to-train-your-whelpling" },
	[198670] = { name = "lofty-malygite" },
	[198675] = { name = "lava-infused-seed" },
	[198680] = { name = "decaying-brackenhide-blanket" },
	[198682] = { name = "alexstraszite-cluster" },
	[198683] = { name = "treated-hides" },
	[198684] = { name = "miniature-bronze-dragonflight-banner" },
	[198685] = { name = "well-insulated-mug" },
	[198686] = { name = "frosted-parchment" },
	[198687] = { name = "closely-guarded-shiny" },
	[198689] = { name = "stormbound-horn" },
	[198690] = { name = "decayed-scales" },
	[198692] = { name = "noteworthy-scrap-of-carpet" },
	[198693] = { name = "dusty-darkmoon-card" },
	[198694] = { name = "enriched-earthen-shard" },
	[198696] = { name = "wind-blessed-hide" },
	[198697] = { name = "contraband-concoction" },
	[198699] = { name = "mysterious-banner" },
	[198702] = { name = "itinerant-singed-fabric" },
	[198703] = { name = "sign-language-reference-sheet" },
	[198704] = { name = "pulsing-earth-rune" },
	[198710] = { name = "canteen-of-suspicious-water" },
	[198711] = { name = "poachers-pack" },
	[198712] = { name = "firewater-powder-sample" },
	[198789] = { name = "intact-coil-capacitor" },
	[198798] = { name = "flashfrozen-scroll" },
	[198799] = { name = "forgotten-arcane-tome" },
	[198800] = { name = "fractured-titanic-sphere" },
	[201003] = { name = "furry-gloop" },
	[201004] = { name = "ancient-spear-shards" },
	[201005] = { name = "curious-ingots" },
	[201006] = { name = "draconic-flux" },
	[201007] = { name = "ancient-monument" },
	[201008] = { name = "molten-ingot" },
	[201009] = { name = "falconer-gauntlet-drawings" },
	[201010] = { name = "qalashi-weapon-diagram" },
	[201011] = { name = "spelltouched-tongs" },
	[201012] = { name = "enchanted-debris" },
	[201013] = { name = "faintly-enchanted-remains" },
	[201014] = { name = "boomthyr-rocket" },
	[201015] = { name = "counterfeit-darkmoon-deck" },
	[201016] = { name = "harmonic-crystal-harmonizer" },
	[201017] = { name = "igneous-gem" },
	[201018] = { name = "well-danced-drum" },
	[201019] = { name = "ancient-dragonweave-bolt" },
	[201020] = { name = "silky-surprise" },
	[201268] = { name = "rare-blacksmiths-diagrams" },
	[201269] = { name = "rare-scribes-runic-drawings" },
	[201270] = { name = "rare-alchemists-research" },
	[201271] = { name = "rare-tailors-diagrams" },
	[201272] = { name = "rare-enchanters-research" },
	[201273] = { name = "rare-engineers-scribblings" },
	[201274] = { name = "rare-jewelers-illustrations" },
	[201275] = { name = "rare-leatherworkers-diagrams" },
	[201276] = { name = "rare-herbalists-notes" },
	[201277] = { name = "rare-miners-notes" },
	[201278] = { name = "rare-skinners-notes" },
	[201279] = { name = "ancient-blacksmiths-diagrams" },
	[201280] = { name = "ancient-scribes-runic-drawings" },
	[201281] = { name = "ancient-alchemists-research" },
	[201282] = { name = "ancient-tailors-diagrams" },
	[201283] = { name = "ancient-enchanters-research" },
	[201284] = { name = "ancient-engineers-scribblings" },
	[201285] = { name = "ancient-jewelers-illustrations" },
	[201286] = { name = "ancient-leatherworkers-diagrams" },
	[201287] = { name = "ancient-herbalists-notes" },
	[201288] = { name = "ancient-miners-notes" },
	[201289] = { name = "ancient-skinners-notes" },
	[194418] = { name = "life-pools-watering-can" },
	[198790] = { name = "i-o-u" },
	[198395] = { name = "dull-spined-clam" },
	[202099] = { name = "stocked-sack-of-hale-herbs" },
	[200069] = { name = "obsidian-cache" },
	[200070] = { name = "obsidian-strongbox" },
	[197346] = { name = "renewed-proto-drake-gold-and-black-armor" },
	[197347] = { name = "renewed-proto-drake-silver-and-blue-armor" },
	[197350] = { name = "renewed-proto-drake-silver-and-purple-armor" },
	[197351] = { name = "renewed-proto-drake-gold-and-red-armor" },
	[197352] = { name = "renewed-proto-drake-steel-and-yellow-armor" },
	[197354] = { name = "renewed-proto-drake-horned-back" },
	[197355] = { name = "renewed-proto-drake-thick-spined-jaw" },
	[197357] = { name = "renewed-proto-drake-armor" },
	[197358] = { name = "renewed-proto-drake-curved-spiked-brow" },
	[197360] = { name = "renewed-proto-drake-spined-brow" },
	[197361] = { name = "renewed-proto-drake-spiked-crest" },
	[197362] = { name = "renewed-proto-drake-spined-crest" },
	[197363] = { name = "renewed-proto-drake-maned-crest" },
	[197366] = { name = "renewed-proto-drake-dual-horned-crest" },
	[197367] = { name = "renewed-proto-drake-gray-hair" },
	[197368] = { name = "renewed-proto-drake-blue-hair" },
	[197370] = { name = "renewed-proto-drake-red-hair" },
	[197372] = { name = "renewed-proto-drake-purple-hair" },
	[197377] = { name = "renewed-proto-drake-bovine-horns" },
	[197379] = { name = "renewed-proto-drake-impaler-horns" },
	[197381] = { name = "renewed-proto-drake-gradient-horns" },
	[197382] = { name = "renewed-proto-drake-white-horns" },
	[197383] = { name = "renewed-proto-drake-heavy-horns" },
	[197385] = { name = "renewed-proto-drake-horned-jaw" },
	[197386] = { name = "renewed-proto-drake-spiked-jaw" },
	[197389] = { name = "renewed-proto-drake-green-scales" },
	[197390] = { name = "renewed-proto-drake-blue-scales" },
	[197391] = { name = "renewed-proto-drake-bronze-scales" },
	[197392] = { name = "renewed-proto-drake-black-scales" },
	[197393] = { name = "renewed-proto-drake-white-scales" },
	[197394] = { name = "renewed-proto-drake-predator-pattern" },
	[197395] = { name = "renewed-proto-drake-harrier-pattern" },
	[197396] = { name = "renewed-proto-drake-skyterror-pattern" },
	[197397] = { name = "renewed-proto-drake-heavy-scales" },
	[197398] = { name = "renewed-proto-drake-snub-snout" },
	[197399] = { name = "renewed-proto-drake-razor-snout" },
	[197400] = { name = "renewed-proto-drake-shark-snout" },
	[197401] = { name = "renewed-proto-drake-beaked-snout" },
	[197402] = { name = "renewed-proto-drake-spiked-club-tail" },
	[197403] = { name = "renewed-proto-drake-club-tail" },
	[197406] = { name = "renewed-proto-drake-spined-tail" },
	[197407] = { name = "renewed-proto-drake-spiked-throat" },
	[197408] = { name = "renewed-proto-drake-finned-throat" },
	[198899] = { name = "technique-renewed-proto-drake-predator-pattern" },
	[201738] = { name = "technique-renewed-proto-drake-steel-and-yellow-armor" },
	[201741] = { name = "technique-renewed-proto-drake-bovine-horns" },
	[201742] = { name = "technique-renewed-proto-drake-silver-and-blue-armor" },
	[201790] = { name = "renewed-proto-drake-embodiment-of-the-storm-eater" },
	[192111] = { name = "renewed-proto-drake-red-scales" },
	[194034] = { name = "renewed-proto-drake" },
	[197348] = { name = "renewed-proto-drake-black-and-red-armor" },
	[197349] = { name = "renewed-proto-drake-gold-and-white-armor" },
	[197353] = { name = "renewed-proto-drake-bronze-and-pink-armor" },
	[197356] = { name = "renewed-proto-drake-hairy-back" },
	[197359] = { name = "renewed-proto-drake-hairy-brow" },
	[197364] = { name = "renewed-proto-drake-short-spiked-crest" },
	[197365] = { name = "renewed-proto-drake-finned-crest" },
	[197369] = { name = "renewed-proto-drake-brown-hair" },
	[197371] = { name = "renewed-proto-drake-green-hair" },
	[197373] = { name = "renewed-proto-drake-helm" },
	[197374] = { name = "renewed-proto-drake-swept-horns" },
	[197375] = { name = "renewed-proto-drake-curled-horns" },
	[197376] = { name = "renewed-proto-drake-ears" },
	[197378] = { name = "renewed-proto-drake-subtle-horns" },
	[197380] = { name = "renewed-proto-drake-curved-horns" },
	[197384] = { name = "renewed-proto-drake-thick-spined-jaw" },
	[197387] = { name = "renewed-proto-drake-thin-spined-jaw" },
	[197388] = { name = "renewed-proto-drake-finned-jaw" },
	[197404] = { name = "renewed-proto-drake-finned-tail" },
	[197405] = { name = "renewed-proto-drake-maned-tail" },
	[198901] = { name = "technique-renewed-proto-drake-spined-crest" },
	[199192] = { name = "dragon-racers-purse" },
	[196961] = { name = "cliffside-wylderdrake-armor" },
	[196962] = { name = "cliffside-wylderdrake-silver-and-purple-armor" },
	[196963] = { name = "cliffside-wylderdrake-silver-and-blue-armor" },
	[196964] = { name = "cliffside-wylderdrake-gold-and-black-armor" },
	[196966] = { name = "cliffside-wylderdrake-gold-and-orange-armor" },
	[196968] = { name = "cliffside-wylderdrake-steel-and-yellow-armor" },
	[196969] = { name = "cliffside-wylderdrake-finned-back" },
	[196970] = { name = "cliffside-wylderdrake-spiked-back" },
	[196972] = { name = "cliffside-wylderdrake-plated-brow" },
	[196973] = { name = "cliffside-wylderdrake-dual-horned-chin" },
	[196976] = { name = "cliffside-wylderdrake-head-mane" },
	[196977] = { name = "cliffside-wylderdrake-split-head-horns" },
	[196980] = { name = "cliffside-wylderdrake-triple-head-horns" },
	[196981] = { name = "cliffside-wylderdrake-conical-head" },
	[196982] = { name = "cliffside-wylderdrake-ears" },
	[196985] = { name = "cliffside-wylderdrake-horned-jaw" },
	[196986] = { name = "cliffside-wylderdrake-black-hair" },
	[196987] = { name = "cliffside-wylderdrake-blonde-hair" },
	[196988] = { name = "cliffside-wylderdrake-red-hair" },
	[196989] = { name = "cliffside-wylderdrake-white-hair" },
	[196991] = { name = "cliffside-wylderdrake-black-horns" },
	[196992] = { name = "cliffside-wylderdrake-heavy-horns" },
	[196994] = { name = "cliffside-wylderdrake-short-horns" },
	[196996] = { name = "cliffside-wylderdrake-branched-horns" },
	[196997] = { name = "cliffside-wylderdrake-split-horns" },
	[196998] = { name = "cliffside-wylderdrake-hook-horns" },
	[196999] = { name = "cliffside-wylderdrake-swept-horns" },
	[197001] = { name = "cliffside-wylderdrake-finned-cheek" },
	[197003] = { name = "cliffside-wylderdrake-spiked-cheek" },
	[197004] = { name = "cliffside-wylderdrake-spiked-legs" },
	[197005] = { name = "cliffside-wylderdrake-horned-nose" },
	[197007] = { name = "cliffside-wylderdrake-wide-stripes-pattern" },
	[197009] = { name = "cliffside-wylderdrake-scaled-pattern" },
	[197010] = { name = "cliffside-wylderdrake-red-scales" },
	[197011] = { name = "cliffside-wylderdrake-green-scales" },
	[197012] = { name = "cliffside-wylderdrake-blue-scales" },
	[197013] = { name = "cliffside-wylderdrake-black-scales" },
	[197014] = { name = "cliffside-wylderdrake-white-scales" },
	[197015] = { name = "cliffside-wylderdrake-dark-skin-variation" },
	[197016] = { name = "cliffside-wylderdrake-maned-tail" },
	[197017] = { name = "cliffside-wylderdrake-large-tail-spikes" },
	[197019] = { name = "cliffside-wylderdrake-blunt-spiked-tail" },
	[197022] = { name = "cliffside-wylderdrake-finned-neck" },
	[197023] = { name = "cliffside-wylderdrake-maned-neck" },
	[198891] = { name = "technique-cliffside-wylderdrake-conical-head" },
	[198892] = { name = "technique-cliffside-wylderdrake-red-hair" },
	[198893] = { name = "technique-cliffside-wylderdrake-triple-head-horns" },
	[201734] = { name = "technique-cliffside-wylderdrake-silver-and-blue-armor" },
	[201736] = { name = "technique-cliffside-wylderdrake-steel-and-yellow-armor" },
	[196965] = { name = "cliffside-wylderdrake-bronze-and-teal-armor" },
	[196967] = { name = "cliffside-wylderdrake-gold-and-white-armor" },
	[196971] = { name = "cliffside-wylderdrake-spiked-brow" },
	[196974] = { name = "cliffside-wylderdrake-four-horned-chin" },
	[196975] = { name = "cliffside-wylderdrake-head-fin" },
	[196978] = { name = "cliffside-wylderdrake-small-head-spikes" },
	[196979] = { name = "cliffside-wylderdrake-curled-head-horns" },
	[196983] = { name = "cliffside-wylderdrake-maned-jaw" },
	[196984] = { name = "cliffside-wylderdrake-finned-jaw" },
	[196990] = { name = "cliffside-wylderdrake-helm" },
	[196993] = { name = "cliffside-wylderdrake-sleek-horns" },
	[196995] = { name = "cliffside-wylderdrake-spiked-horns" },
	[197000] = { name = "cliffside-wylderdrake-coiled-horns" },
	[197002] = { name = "cliffside-wylderdrake-flared-cheek" },
	[197006] = { name = "cliffside-wylderdrake-plated-nose" },
	[197008] = { name = "cliffside-wylderdrake-narrow-stripes-pattern" },
	[197018] = { name = "cliffside-wylderdrake-finned-tail" },
	[197020] = { name = "cliffside-wylderdrake-spear-tail" },
	[197021] = { name = "cliffside-wylderdrake-spiked-club-tail" },
	[194838] = { name = "highland-drake-manuscript-spined-head" },
	[197090] = { name = "highland-drake-gold-and-black-armor" },
	[197091] = { name = "highland-drake-silver-and-blue-armor" },
	[197094] = { name = "highland-drake-gold-and-red-armor" },
	[197096] = { name = "highland-drake-steel-and-yellow-armor" },
	[197097] = { name = "highland-drake-spined-back" },
	[197098] = { name = "highland-drake-finned-back" },
	[197099] = { name = "highland-drake-armor" },
	[197100] = { name = "highland-drake-crested-brow" },
	[197101] = { name = "highland-drake-bushy-brow" },
	[197103] = { name = "highland-drake-maned-chin" },
	[197105] = { name = "highland-drake-spined-chin" },
	[197107] = { name = "highland-drake-triple-finned-head" },
	[197108] = { name = "highland-drake-spined-head" },
	[197111] = { name = "highland-drake-maned-head" },
	[197113] = { name = "highland-drake-swept-spiked-head" },
	[197114] = { name = "highland-drake-multi-horned-head" },
	[197115] = { name = "highland-drake-thorned-jaw" },
	[197116] = { name = "highland-drake-ears" },
	[197117] = { name = "highland-drake-black-hair" },
	[197118] = { name = "highland-drake-brown-hair" },
	[197119] = { name = "highland-drake-helm" },
	[197121] = { name = "highland-drake-tan-horns" },
	[197122] = { name = "highland-drake-heavy-horns" },
	[197123] = { name = "highland-drake-thorn-horns" },
	[197125] = { name = "highland-drake-coiled-horns" },
	[197127] = { name = "highland-drake-grand-thorn-horns" },
	[197128] = { name = "highland-drake-curled-back-horns" },
	[197130] = { name = "highland-drake-stag-horns" },
	[197131] = { name = "highland-drake-hairy-cheek" },
	[197132] = { name = "highland-drake-spiked-cheek" },
	[197133] = { name = "highland-drake-spined-cheek" },
	[197135] = { name = "highland-drake-toothy-mouth" },
	[197138] = { name = "highland-drake-striped-pattern" },
	[197142] = { name = "highland-drake-black-scales" },
	[197143] = { name = "highland-drake-green-scales" },
	[197144] = { name = "highland-drake-red-scales" },
	[197145] = { name = "highland-drake-bronze-scales" },
	[197146] = { name = "highland-drake-white-scales" },
	[197147] = { name = "highland-drake-heavy-scales" },
	[197149] = { name = "highland-drake-club-tail" },
	[197150] = { name = "highland-drake-spiked-club-tail" },
	[197152] = { name = "highland-drake-hooked-tail" },
	[197154] = { name = "highland-drake-spined-neck" },
	[197155] = { name = "highland-drake-finned-neck" },
	[198894] = { name = "technique-highland-drake-black-hair" },
	[201735] = { name = "technique-highland-drake-silver-and-blue-armor" },
	[201792] = { name = "highland-drake-embodiment-of-the-crimson-gladiator" },
	[194836] = { name = "highland-drake-manuscript-spined-throat" },
	[194837] = { name = "highland-drake-manuscript-black-hair" },
	[197093] = { name = "highland-drake-silver-and-purple-armor" },
	[197095] = { name = "highland-drake-gold-and-white-armor" },
	[197102] = { name = "highland-drake-horned-chin" },
	[197104] = { name = "highland-drake-tapered-chin" },
	[197106] = { name = "highland-drake-finned-head" },
	[197109] = { name = "highland-drake-spiked-head" },
	[197110] = { name = "highland-drake-plated-head" },
	[197112] = { name = "highland-drake-single-horned-head" },
	[197120] = { name = "highland-drake-ornate-helm" },
	[197124] = { name = "highland-drake-swept-horns" },
	[197126] = { name = "highland-drake-hooked-horns" },
	[197129] = { name = "highland-drake-sleek-horns" },
	[197134] = { name = "highland-drake-spiked-legs" },
	[197136] = { name = "highland-drake-taperered-nose" },
	[197137] = { name = "highland-drake-spined-nose" },
	[197139] = { name = "highland-drake-large-spotted-pattern" },
	[197140] = { name = "highland-drake-small-spotted-pattern" },
	[197141] = { name = "highland-drake-scaled-pattern" },
	[197148] = { name = "highland-drake-vertical-finned-tail" },
	[197151] = { name = "highland-drake-spiked-tail" },
	[197153] = { name = "highland-drake-bladed-tail" },
	[197156] = { name = "highland-drake-bronze-and-green-armor" },
	[198895] = { name = "technique-highland-drake-spined-head" },
	[198896] = { name = "technique-highland-drake-spined-neck" },
	[201737] = { name = "technique-highland-drake-steel-and-yellow-armor" },
	[200094] = { name = "caravan-strongbox" },
	[200072] = { name = "dragonbane-keep-strongbox" },
	[198868] = { name = "small-valdrakken-accord-supply-pack" },
	[198863] = { name = "small-dragon-expedition-supply-pack" },
	[200515] = { name = "grand-hunt-spoils" },
	[200513] = { name = "grand-hunt-spoils" },
	[200468] = { name = "grand-hunt-spoils" },
	[198866] = { name = "small-iskaaran-supply-pack" },
	[193891] = { name = "experimental-substance" },
	[193897] = { name = "reawakened-catalyst" },
	[197610] = { name = "windborne-velocidrake-yellow-horns" },
	[193900] = { name = "prismatic-focusing-shard" },
	[193901] = { name = "primal-dust" },
	[198609] = { name = "tailoring-examples" },
	[198610] = { name = "enchanters-script" },
	[198977] = { name = "ohnarhan-weave" },
	[198978] = { name = "stupidly-effective-stitchery" },
	[200073] = { name = "valdrakken-treasures" },
	[190315] = { name = "rousing-earth", isRousing = true, threshold = 10 },
	[190320] = { name = "rousing-fire", isRousing = true, threshold = 10 },
	[190322] = { name = "rousing-order", isRousing = true, threshold = 10 },
	[190326] = { name = "rousing-air", isRousing = true, threshold = 10 },
	[190328] = { name = "rousing-frost", isRousing = true, threshold = 10 },
	[190330] = { name = "rousing-decay", isRousing = true, threshold = 10 },
	[190451] = { name = "rousing-ire", isRousing = true, threshold = 10 },
	[149503] = { name = "stolen-gift" },
	[149504] = { name = "smokywood-pastures-special-present" },
	[17726] = { name = "smokywood-pastures-special-gift" },
	[116762] = { name = "stolen-present" },
	[21216] = { name = "smokywood-pastures-extra-special-gift" },
	[17685] = { name = "smokywood-pastures-sampler" },
	[73792] = { name = "stolen-present" },
	[21191] = { name = "carefully-wrapped-present" },
	[21327] = { name = "ticking-present" },
	[192094] = { name = "winter-veil-gift" },
	[21363] = { name = "festive-gift" },
	[21310] = { name = "gaily-wrapped-present" },
	[192093] = { name = "gently-shaken-gift" },
	[198606] = { name = "blacksmiths-writ" },
	[198607] = { name = "scribes-glyphs" },
	[198608] = { name = "alchemy-notes" },
	[198611] = { name = "engineering-details" },
	[198612] = { name = "jewelers-cuts" },
	[198613] = { name = "leatherworking-designs" },
	[198614] = { name = "soggy-clump-of-darkmoon-cards" },
	[189765] = { name = "maruuk-centaur-supply-satchel" },
	[198864] = { name = "large-maruuk-centaur-supply-satchel" },
	[199474] = { name = "overflowing-maruuk-centaur-supply-satchel" },
	[198967] = { name = "primordial-aether" },
	[200516] = { name = "grand-hunt-spoils" },
	[198968] = { name = "primalist-charm" },
	[170502] = { name = "waterlogged-toolbox" },
	[198966] = { name = "molten-globule" },
	[198965] = { name = "primeval-earth-fragment" },
	[192131] = { name = "valdrakken-weapon-chain" },
	[192132] = { name = "draconium-blade-sharpener" },
	[198972] = { name = "draconic-glamour" },
	[198971] = { name = "curious-djaradin-rune" },
	[198973] = { name = "incandescent-curio" },
	[168494] = { name = "blueprint-rustbolt-resistance-insignia" },
	[129928] = { name = "frigid-timewarped-prism" },
	[198538] = { name = "magically-bound-message" },
	[197577] = { name = "windborne-velocidrake-bronze-and-green-armor" },
	[197582] = { name = "windborne-velocidrake-white-and-pink-armor" },
	[197583] = { name = "windborne-velocidrake-exposed-finned-back" },
	[197585] = { name = "windborne-velocidrake-maned-back" },
	[197594] = { name = "windborne-velocidrake-small-ears" },
	[197596] = { name = "windborne-velocidrake-horned-jaw" },
	[197600] = { name = "windborne-velocidrake-helm" },
	[197603] = { name = "windborne-velocidrake-curved-horns" },
	[197611] = { name = "windborne-velocidrake-black-scales" },
	[197617] = { name = "windborne-velocidrake-heavy-scales" },
	[197619] = { name = "windborne-velocidrake-hooked-snout" },
	[197621] = { name = "windborne-velocidrake-exposed-finned-tail" },
	[197622] = { name = "windborne-velocidrake-finned-tail" },
	[197623] = { name = "windborne-velocidrake-spiked-tail" },
	[197626] = { name = "windborne-velocidrake-exposed-finned-neck" },
	[197627] = { name = "windborne-velocidrake-finned-neck" },
	[197629] = { name = "windborne-velocidrake-spiked-neck" },
	[197636] = { name = "windborne-velocidrake-shrieker-pattern" },
	[197578] = { name = "windborne-velocidrake-silver-and-blue-armor" },
	[197579] = { name = "windborne-velocidrake-steel-and-orange-armor" },
	[197580] = { name = "windborne-velocidrake-gold-and-red-armor" },
	[197581] = { name = "windborne-velocidrake-silver-and-purple-armor" },
	[197584] = { name = "windborne-velocidrake-finned-back" },
	[197586] = { name = "windborne-velocidrake-spiked-back" },
	[197587] = { name = "windborne-velocidrake-feathered-back" },
	[197588] = { name = "windborne-velocidrake-armor" },
	[197589] = { name = "windborne-velocidrake-large-head-fin" },
	[197590] = { name = "windborne-velocidrake-small-head-fin" },
	[197591] = { name = "windborne-velocidrake-hairy-head" },
	[197592] = { name = "windborne-velocidrake-spined-head" },
	[197593] = { name = "windborne-velocidrake-feathery-head" },
	[197595] = { name = "windborne-velocidrake-finned-ears" },
	[197597] = { name = "windborne-velocidrake-black-fur" },
	[197598] = { name = "windborne-velocidrake-gray-hair" },
	[197599] = { name = "windborne-velocidrake-red-hair" },
	[197601] = { name = "windborne-velocidrake-wavy-horns" },
	[197602] = { name = "windborne-velocidrake-cluster-horns" },
	[197604] = { name = "windborne-velocidrake-ox-horns" },
	[197605] = { name = "windborne-velocidrake-curled-horns" },
	[197606] = { name = "windborne-velocidrake-swept-horns" },
	[197607] = { name = "windborne-velocidrake-split-horns" },
	[197608] = { name = "windborne-velocidrake-gray-horns" },
	[197609] = { name = "windborne-velocidrake-white-horns" },
	[197612] = { name = "windborne-velocidrake-blue-scales" },
	[197613] = { name = "windborne-velocidrake-bronze-scales" },
	[197614] = { name = "windborne-velocidrake-red-scales" },
	[197615] = { name = "windborne-velocidrake-teal-scales" },
	[197616] = { name = "windborne-velocidrake-white-scales" },
	[197618] = { name = "windborne-velocidrake-long-snout" },
	[197620] = { name = "windborne-velocidrake-beaked-snout" },
	[197624] = { name = "windborne-velocidrake-club-tail" },
	[197625] = { name = "windborne-velocidrake-feathery-tail" },
	[197628] = { name = "windborne-velocidrake-plated-neck" },
	[197630] = { name = "windborne-velocidrake-feathered-neck" },
	[197634] = { name = "windborne-velocidrake-windswept-pattern" },
	[197635] = { name = "windborne-velocidrake-reaver-pattern" },
	[198902] = { name = "technique-windborne-velocidrake-black-fur" },
	[198903] = { name = "technique-windborne-velocidrake-spined-head" },
	[198904] = { name = "technique-windborne-velocidrake-windswept-pattern" },
	[201739] = { name = "technique-windborne-velocidrake-steel-and-yellow-armor" },
	[201743] = { name = "technique-windborne-velocidrake-silver-and-blue-armor" },
	[199472] = { name = "overflowing-dragonscale-expedition-supply-pack" },
	[199473] = { name = "overflowing-iskaaran-supply-pack" },
	[199475] = { name = "overflowing-valdrakken-accord-supply-pack" },
	[193205] = { name = "ohuna-companion-color-brown" },
	[194088] = { name = "ohuna-companion-color-dark" },
	[194087] = { name = "ohuna-companion-color-red" },
	[194095] = { name = "ohuna-companion-color-sepia" },
	[194094] = { name = "bakar-companion-color-black" },
	[194093] = { name = "bakar-companion-color-brown" },
	[194091] = { name = "bakar-companion-color-golden-brown" },
	[194089] = { name = "bakar-companion-color-orange" },
	[194090] = { name = "bakar-companion-color-white" },
	[205423] = { name = "Shadowflame_Residue_Sack" },
	[205682] = { name = "Large_Shadowflame_Residue_Sack" },
	[205964] = { name = "Small_Loammian_Supply_Pack" },
	[205247] = { name = "Clinking_Dirt-Covered_Pouch" },
	[205226] = { name = "Cavern_Racer's_Purse" },
	[206135] = { name = "Heroic_Dungeon_Delver's_Trophy_Chest" },
	[205248] = { name = "Clanging_Dirt-Covered_Pouch" },
	[203338] = { name = "Winding-Slitherdrake:-Antler-Horns" },
	[203330] = { name = "Winding-Slitherdrake:-Swept-Horns" },
	[203323] = { name = "Winding-Slitherdrake:-brown-hair" },
	[203324] = { name = "Winding-Slitherdrake:-white-hair" },
	[203325] = { name = "Winding-Slitherdrake:-red-hair" },
	[203326] = { name = "Winding-Slitherdrake:-helm" },
	[203327] = { name = "Winding-Slitherdrake:-tan-horns" },
	[203328] = { name = "Winding-Slitherdrake:-white-horns" },
	[203329] = { name = "Winding-Slitherdrake:-heavy-horns" },
	[203341] = { name = "Winding-Slitherdrake:-long-jaw-horns" },
	[203342] = { name = "Winding-Slitherdrake:-tripe-jaw-horns" },
	[203343] = { name = "Winding-Slitherdrake:-hairy-jaw" },
	[203344] = { name = "Winding-Slitherdrake:-single-jaw-horn" },
	[203345] = { name = "Winding-Slitherdrake:-split-jaw-horns" },
	[203346] = { name = "Winding-Slitherdrake:-curled-nose" },
	[203347] = { name = "Winding-Slitherdrake:-large-spiked-nose" },
	[203348] = { name = "Winding-Slitherdrake:-pointed-nose" },
	[203349] = { name = "Winding-Slitherdrake:-curved-nose-horn" },
	[203350] = { name = "Winding-Slitherdrake:-blue-scales" },
	[203351] = { name = "Winding-Slitherdrake:-bronze-scales" },
	[203352] = { name = "Winding-Slitherdrake:-green-scales" },
	[203353] = { name = "Winding-Slitherdrake:-red-scales" },
	[203354] = { name = "Winding-Slitherdrake:-white-scales" },
	[203355] = { name = "Winding-Slitherdrake:-yellow-scales" },
	[204726] = { name = "Drake's_Bountiful_Chest" },
	[204725] = { name = "Drake's_Hefty_Chest" },
	[204724] = { name = "Drake's_Small_Chest" },
	[205370] = { name = "Researcher's_Gift" },
	[206030] = { name = "Exquisitely_Embroidered_Banner" },
	[205983] = { name = "Scentsational_Niffen_Treasures" },
	[205346] = { name = "Hidden_Niffen_Treasure" },
	[205347] = { name = "Gathered_Niffen_Resources" },
	[205249] = { name = "Pungent_Niffen_Incense" },
	[205254] = { name = "Honorary_Explorer's_Compass" },
	[205253] = { name = "Farmhand's_Abundant_Harves" },
	[205251] = { name = "Champion's_Rock_Bar" },
	[205992] = { name = "Regurgitated_Half-Digested_Fish" },
	[205998] = { name = "Sign_of_Respect" },
	[205989] = { name = "Symbol_of_Friendship" },
	[205250] = { name = "Gift-of-the-high-redolence" },
	[205252] = { name = "momento-of-rekindled-bonds" },
	[204717] = { name = "splintered-spark-of-shadowflame", threshold = 2 },
	[204075] = { name = "whelpling-shadowflame-crest-fragment", threshold = 15 },
	[204076] = { name = "drakes-shadowflame-crest-fragment", threshold = 15 },
	[204077] = { name = "wryms-shadowflame-crest-fragment", threshold = 15 },
	[204078] = { name = "aspects-shadowflame-crest-fragment", threshold = 15 },
	[193904] = { name = "phoenix-feather-quill" },
	[198976] = { name = "exceedingly-soft-skin" },
	[193913] = { name = "preserved-animal-parts" },
	[198975] = { name = "ossified-hide" },
	[198970] = { name = "infinitely-attachable-pair-o-docks" },
	[198974] = { name = "elegantly-engraved-embellishment" },
	[193910] = { name = "molted-dragon-scales" },
	[198964] = { name = "elementious-splinter" },
	[198963] = { name = "decaying-phlegm" },
	[200095] = { name = "supply-laden-soup-pot" },
	[202371] = { name = "glowing-primalist-cache" },
	[201783] = { name = "tutaqans-commendation" },
	[201779] = { name = "merithras-blessing" },
	[205966] = { name = "cache-of-aberrus-treasures" },
	[205369] = { name = "Appreciative-researcher-gift" },
	[205212] = { name = "marrow-ripened-slime" },
	[205368] = { name = "thankful-researchers-gift" },
	[198969] = { name = "keepers-mark" },
	[193898] = { name = "umbral-bone-needle" },
	[193899] = { name = "primalweave-spindle" },
	[193903] = { name = "watcher-power-core" },
	[193905] = { name = "iskaaran-trading-ledger" },
	[193907] = { name = "chipped-tyrstone" },
	[193909] = { name = "ancient-gem-fragments" },
	[5524] = { name = "thick-shelled-clam" },
	[36781] = { name = "darkwater-clam" },
	[7973] = { name = "big-mouth-clam" },
	[45909] = { name = "giant-darkwater-clam" },
	[52340] = { name = "abyssal-clam" },
	[24476] = { name = "jaggal-clam" },
	[204712] = { name = "brimming-loamm-niffen-supply-satchel" },
	[204721] = { name = "whelplings-small-chest" },
	[204722] = { name = "whelplings-bountiful-chest" },
	[204723] = { name = "whelplings-hefty-chest" },
	[204911] = { name = "propagated-spore" },
	[205288] = { name = "buried-niffen-collection" },
	[205367] = { name = "indebted-researchers-gift" },
	[205371] = { name = "appreciative-researchers-scrounged-goods" },
	[205372] = { name = "indebted-researchers-scrounged-goods" },
	[205373] = { name = "researchers-scrounged-goods" },
	[205374] = { name = "thankful-researchers-scrounged-goods" },
	[205877] = { name = "adventurers-footlocker" },
	[205962] = { name = "echoing-storm-flightstone" },
	[205965] = { name = "large-loammian-supply-pack" },
	[205967] = { name = "cache-of-aberrus-treasures" },
	[205968] = { name = "overflowing-loammian-supply-pack" },
	[205970] = { name = "azure-flightstone" },
	[206028] = { name = "chest-of-gold" },
	[206037] = { name = "ruby-flightstone" },
	[206039] = { name = "enmity-bundle" },
	[206136] = { name = "heroic-dungeon-delvers-trophy-crest" },
	[206271] = { name = "malicias-hoard" },
	[203210] = { name = "dragonscale-supply-box" },
	[203217] = { name = "dragonscale-surplus-crate" },
	[203218] = { name = "iskaara-supply-pouch" },
	[203220] = { name = "iskaara-surplus-bag" },
	[203221] = { name = "maruuk-supply-sack" },
	[203222] = { name = "maruuk-surplus-bundle" },
	[203223] = { name = "valdrakken-supply-coffer" },
	[203224] = { name = "valdrakken-surplus-chest" },
	[203699] = { name = "tattered-gift-package" },
	[203700] = { name = "tattered-gift-package" },
	[203724] = { name = "field-medics-hazard-payout" },
	[203730] = { name = "rustic-winterpelt-supplies" },
	[203742] = { name = "waterlogged-gurubashi-cache" },
	[203743] = { name = "jostled-gurubashi-cache", lockbox = true },
	[203774] = { name = "big-bag-o-bijous" },
	[203912] = { name = "penny-pouch-o-paragons" },
	[203959] = { name = "gurubashi-tribute" },
	[204307] = { name = "ornate-bronze-lockbox", lockbox = true },
	[204359] = { name = "reach-racers-purse" },
	[204378] = { name = "brimming-dragonscale-expedition-supply-pack" },
	[204379] = { name = "brimming-iskaaran-supply-pack" },
	[204380] = { name = "brimming-maruuk-centaur-supply-satchel" },
	[204381] = { name = "brimming-valdrakken-accord-supply-pack" },
	[204383] = { name = "sack-of-oddities" },
	[204403] = { name = "sack-of-sack-of-oddities" },
	[204636] = { name = "snarfangs-stomach-sac" },
	[203476] = { name = "primalist-cache" },
	[203681] = { name = "stormed-primalist-cache" },
	[200454] = { name = "maruuk-centaur-insignia" },
	[200288] = { name = "maruuk-centaur-insignia" },
	[201923] = { name = "maruuk-centaur-insignia" },
	[202094] = { name = "maruuk-centaur-insignia" },
	[200453] = { name = "iskaara-tuskarr-insignia" },
	[201922] = { name = "iskaara-tuskarr-insignia" },
	[200287] = { name = "iskaara-tuskarr-insignia" },
	[202092] = { name = "iskaara-tuskarr-insignia" },
	[200455] = { name = "valdrakken-accord-insignia" },
	[200289] = { name = "valdrakken-accord-insignia" },
	[201924] = { name = "valdrakken-accord-insignia" },
	[200452] = { name = "dragonscale-expedition-insignia" },
	[201921] = { name = "dragonscale-expedition-insignia" },
	[200285] = { name = "dragonscale-expedition-insignia" },
	[205985] = { name = "loamm-niffen-insignia" },
	[205342] = { name = "loamm-niffen-insignia" },
-- 10.1.5 openables
	[208095] = { name = "cache-of-timewarped-treasures" },
	[207583] = { name = "box-of-collapsed-reality" },
	[208091] = { name = "cache-of-timewarped-treasures" },
	[208090] = { name = "contained-paracausality" },
	[207582] = { name = "box-of-tampered-reality" },
	[207584] = { name = "box-of-volatile-reality" },
	[208015] = { name = "stuffed-deviate-scale-pouch" },
	[208094] = { name = "cache-of-timewarped-treasures" },
	[207073] = { name = "warmonger-s-cloth-equipment-bag" },
	[207075] = { name = "jingoist-s-plate-armor-bag" },
	[207094] = { name = "warmonger-s-leather-suit-bag" },
	[208006] = { name = "greater-paracausal-chest" },
	[207069] = { name = "warmonger-s-leather-equipment-bag" },
	[207078] = { name = "jingoist-s-mail-armor-bag" },
	[207093] = { name = "jingoist-s-mail-suit-bag" },
	[207063] = { name = "jingoist-s-mail-equipment-bag" },
	[207077] = { name = "warmonger-s-mail-armor-bag" },
	[208028] = { name = "knot-thimblejack-s-cache" },
	[207064] = { name = "jingoist-s-mail-gear-bag" },
	[207082] = { name = "jingoist-s-cloth-armor-bag" },
	[207594] = { name = "looter-s-purse" },
	[207051] = { name = "warmonger-s-plate-equipment-bag" },
	[207076] = { name = "warmonger-s-plate-armor-bag" },
	[207079] = { name = "warmonger-s-leather-armor-bag" },
	[207096] = { name = "paracausal-chest" },
	[207050] = { name = "warmonger-s-plate-gear-bag" },
	[207065] = { name = "warmonger-s-mail-gear-bag" },
	[207066] = { name = "warmonger-s-mail-equipment-bag" },
	[207070] = { name = "warmonger-s-leather-gear-bag" },
	[207072] = { name = "jingoist-s-cloth-equipment-bag" },
	[207074] = { name = "warmonger-s-cloth-gear-bag" },
	[207081] = { name = "warmonger-s-cloth-armor-bag" },
	[207053] = { name = "jingoist-s-plate-gear-bag" },
	[207067] = { name = "jingoist-s-leather-gear-bag" },
	[207071] = { name = "jingoist-s-cloth-gear-bag" },
	[207080] = { name = "jingoist-s-leather-armor-bag" },
	[207052] = { name = "jingoist-s-plate-equipment-bag" },
	[207068] = { name = "jingoist-s-leather-equipment-bag" },
	[208390] = { name = "bronze-archive-stone" },
-- 10.2.7 Openables
	[215362] = { name = "cache-of-storms" },
	[215363] = { name = "cache-of-embers" },
	[215364] = { name = "cache-of-dreams" },
	[217110] = { name = "cache-of-awakened-embers" },
	[217109] = { name = "cache-of-awakened-storms" },
	[217728] = { name = "cache-of-awakened-treasures" },
	[217729] = { name = "cache-of-awakened-treasures" },
	[217111] = { name = "cache-of-awakened-dreams" },
	[217242] = { name = "awakening-stone-wing" },
	[217243] = { name = "awakening-ruby-wing" },
-- MoP: Remix
	[211279] = { name = "cache-of-infinite-treasure" },
	[223908] = { name = "minor-bronze-cache" },
	[223909] = { name = "lesser-bronze-cache" },
	[223910] = { name = "bronze-cache" },
	[223911] = { name = "greater-bronze-cache" },
	[217722] = { name = "thread-of-experience" },
	[219264] = { name = "temporal-thread-of-experience" },
	[219273] = { name = "perpetual-thread-of-experience" },
	[219282] = { name = "infinite-thread-of-experience" },
	[210990] = { name = "thread-of-versatility" },
	[219263] = { name = "temporal-thread-of-versatility" },
	[219272] = { name = "perpetual-thread-of-versatility" },
	[219281] = { name = "infinite-thread-of-versatility" },
	[210989] = { name = "thread-of-mastery" },
	[219262] = { name = "temporal-thread-of-mastery" },
	[219271] = { name = "perpetual-thread-of-mastery" },
	[219280] = { name = "infinite-thread-of-mastery" },
	[210987] = { name = "thread-of-leech" },
	[219261] = { name = "temporal-thread-of-leech" },
	[219270] = { name = "perpetual-thread-of-leech" },
	[219279] = { name = "infinite-thread-of-leech" },
	[210986] = { name = "thread-of-speed" },
	[219260] = { name = "temporal-thread-of-speed" },
	[219269] = { name = "perpetual-thread-of-speed" },
	[219278] = { name = "infinite-thread-of-speed" },
	[210985] = { name = "thread-of-haste" },
	[219259] = { name = "temporal-thread-of-haste" },
	[219268] = { name = "perpetual-thread-of-haste" },
	[219277] = { name = "infinite-thread-of-haste" },
	[210984] = { name = "thread-of-critical-strike" },
	[219258] = { name = "temporal-thread-of-critical" },
	[210983] = { name = "thread-of-stamina" },
	[219257] = { name = "temporal-thread-of-stamina" },
	[219266] = { name = "perpetual-thread-of-stamina" },
	[219275] = { name = "infinite-thread-of-stamina" },
	[210982] = { name = "thread-of-power" },
	[219256] = { name = "temporal-thread-of-power" },
	[219265] = { name = "perpetual-thread-of-power" },
	[219274] = { name = "infinite-thread-of-power" },
	[219267] = { name = "perpetual-thread-of-critical-strike" },
	[219276] = { name = "infinite-thread-of-critical-strike" },
	[226145] = { name = "minor-spool-of-eternal-thread" },
	[226144] = { name = "lesser-spool-of-eternal-thread" },
	[226143] = { name = "spool-of-eternal-thread" },
	[226142] = { name = "greater-spool-of-eternal-thread" },
	[223904] = { name = "asynchronized-cogwheel-gem" },
	[223905] = { name = "asynchronized-meta-gem" },
	[223906] = { name = "asynchronized-tinker-gem" },
	[223907] = { name = "asynchronized-prismatic-gem" },
	[210715] = { name = "chipped-masterful-amethyst", mopRemixGem = true, threshold = 3 },
	[216640] = { name = "flawed-masterful-amethyst", mopRemixGem = true, threshold = 3 },
	[211106] = { name = "masterful-amethyst", mopRemixGem = true, threshold = 3, mopRemixEpicGem = true },
	[220371] = { name = "chipped-versatile-diamond", mopRemixGem = true, threshold = 3 },
	[220372] = { name = "flawed-versatile-diamond", mopRemixGem = true, threshold = 3 },
	[220374] = { name = "versatile-diamond", mopRemixGem = true, threshold = 3, mopRemixEpicGem = true },
	[210717] = { name = "chipped-hungering-ruby", mopRemixGem = true, threshold = 3 },
	[216641] = { name = "flawed-hungering-ruby", mopRemixGem = true, threshold = 3 },
	[210718] = { name = "hungering-ruby", mopRemixGem = true, threshold = 3, mopRemixEpicGem = true },
	[210714] = { name = "chipped-deadly-sapphire", mopRemixGem = true, threshold = 3 },
	[216644] = { name = "flawed-deadly-sapphire", mopRemixGem = true, threshold = 3 },
	[211123] = { name = "deadly-sapphire", mopRemixGem = true, threshold = 3, mopRemixEpicGem = true },
	[220367] = { name = "chipped-stalwart-pearl", mopRemixGem = true, threshold = 3 },
	[220368] = { name = "flawed-stalwart-pearl", mopRemixGem = true, threshold = 3 },
	[220370] = { name = "stalwart-pearl", mopRemixGem = true, threshold = 3, mopRemixEpicGem = true },
	[210716] = { name = "chipped-swift-opal", mopRemixGem = true, threshold = 3 },
	[216639] = { name = "flawed-swift-opal", mopRemixGem = true, threshold = 3 },
	[211124] = { name = "swift-opal", mopRemixGem = true, threshold = 3, mopRemixEpicGem = true },
	[210681] = { name = "chipped-quick-topaz", mopRemixGem = true, threshold = 3 },
	[216643] = { name = "flawed-quick-topaz", mopRemixGem = true, threshold = 3 },
	[211107] = { name = "quick-topaz", mopRemixGem = true, threshold = 3, mopRemixEpicGem = true },
	[211109] = { name = "chipped-sustaining-emerald", mopRemixGem = true, threshold = 3 },
	[216642] = { name = "flawed-sustaining-emerald", mopRemixGem = true, threshold = 3 },
	[211125] = { name = "sustaining-emerald", mopRemixGem = true, threshold = 3, mopRemixEpicGem = true },
-- More Openables added >= 10.0
	[211389] = { name = "cache-of-overblooming-treasures" },
	[224296] = { name = "basket-of-draconic-flowers" },
	[198657] = { name = "forgotten-jewelry-box", lockbox = true },
	[199341] = { name = "regurgitated-sac-of-swog-treasures" },
	[200934] = { name = "encaged-frosty-soul" },
	[210991] = { name = "small-box-of-vials" },
	[200932] = { name = "encaged-airy-soul" },
	[209833] = { name = "crate-of-dreambound-armor" },
	[210872] = { name = "satchel-of-dreams" },
	[200936] = { name = "encaged-earthen-soul" },
	[200931] = { name = "encaged-fiery-soul" },
	[216874] = { name = "lootfilled-basket" },
	[210219] = { name = "gigantic-dreamy-bounty" },
	[210549] = { name = "dream-racers-purse" },
	[190954] = { name = "serevite-lockbox", lockbox = true },
	[217412] = { name = "blackened-flightstone" },
	[213177] = { name = "immaculate-tome" },
	[211394] = { name = "harvested-dreamseed-cache" },
	[210992] = { name = "overflowing-dream-warden-trove" },
	[211413] = { name = "budding-dreamtrove" },
	[208054] = { name = "a-mystery-box" },
	[208142] = { name = "buried-satchel" },
	[213541] = { name = "whelplings-bountiful-chest" },
	[200156] = { name = "amethyzarite-geode" },
	[211414] = { name = "blossoming-dreamtrove" },
	[223953] = { name = "timerunners-parting-pack" },
	[212458] = { name = "awakened-flightstone" },
	[202183] = { name = "small-rumble-purse" },
	[217705] = { name = "pirates-booty" },
	[192893] = { name = "jeweled-dragons-heart" },
	[211430] = { name = "bundle-of-love-tokens" },
	[192892] = { name = "timewatchers-patience" },
	[209024] = { name = "lootfilled-pumpkin" },
	[213189] = { name = "preserved-dragonkin-tome" },
	[198865] = { name = "large-dragon-expedition-supply-pack" },
	[210226] = { name = "large-emerald-bloom" },
	[213186] = { name = "dusty-niffen-tome" },
	[198169] = { name = "suspiciously-silent-crate" },
	[209036] = { name = "cache-of-amirdrassil-treasures" },
	[198869] = { name = "large-valdrakken-accord-supply-pack" },
	[210217] = { name = "small-dreamy-bounty" },
	[210180] = { name = "emerald-flightstone" },
	[211303] = { name = "dryads-supply-pouch" },
	[198167] = { name = "suspiciously-ticking-crate" },
	[209831] = { name = "wyrms-bountiful-chest" },
	[213187] = { name = "dusty-drakonid-tome" },
	[212979] = { name = "hearthstone-starter-pack" },
	[213185] = { name = "dusty-centaur-tome" },
	[213188] = { name = "dusty-dracthyr-tome" },
	[198170] = { name = "suspiciously-silent-crate" },
	[210224] = { name = "small-emerald-bloom" },
	[212157] = { name = "an-invitation" },
	[213190] = { name = "preserved-djaradin-tome" },
	[194037] = { name = "heavy-chest", lockbox = true },
	[200300] = { name = "sack-of-looted-treasures" },
	[210225] = { name = "medium-emerald-bloom" },
	[211411] = { name = "sprouting-dreamtrove" },
	[212924] = { name = "stolen-hearthstone-card" },
	[213175] = { name = "dusty-djaradin-tome" },
	[208691] = { name = "argunite-cluster" },
	[209026] = { name = "lootstuffed-pumpkin" },
	[194419] = { name = "life-pool-herb-pouch" },
	[210218] = { name = "plump-dreamy-bounty" },
	[210758] = { name = "honorable-satchel-of-fabrics" },
	[217411] = { name = "blackened-flightstone" },
	[192890] = { name = "keepers-glory" },
	[198867] = { name = "large-iskaaran-supply-pack" },
	[210657] = { name = "gently-shaken-gift" },
	[211373] = { name = "bag-of-many-wonders" },
	[192888] = { name = "queens-gift" },
	[209835] = { name = "crate-of-dreambound-plate" },
	[224547] = { name = "timewarped-pouch" },
	[192891] = { name = "earthwardens-prize" },
	[209037] = { name = "cache-of-amirdrassil-treasures" },
	[211388] = { name = "timerunners-starter-kit" },
	[211410] = { name = "bloomed-wildling-cache" },
	[213176] = { name = "preserved-isles-tome" },
	[224120] = { name = "timerunners-gem-box" },
	[213429] = { name = "meticulous-archivists-appendix" },
	[215160] = { name = "the-big-dig-rig" },
	[217382] = { name = "ruby-flightstone" },
	[213428] = { name = "lootstuffed-basket" },
	[192889] = { name = "dreamers-vision" },
	[193376] = { name = "adenedals-tidy-purse" },
	[199108] = { name = "bag-of-discount-goods" },
	[209871] = { name = "winter-veil-gift" },
	[194750] = { name = "professional-equipment" },
	[198172] = { name = "bundle-of-fireworks" },
	[200477] = { name = "stack-of-vip-passes" },
	[209834] = { name = "crate-of-dreambound-mail" },
	[210063] = { name = "invaders-satchel-of-helpful-goods" },
	[219218] = { name = "timerunners-starter-kit" },
	[221509] = { name = "timerunners-weaponry" },
	[198168] = { name = "suspiciously-ticking-crate" },
	[208211] = { name = "anniversary-gift" },
	[210062] = { name = "ironbound-satchel-of-helpful-goods" },
	[191203] = { name = "dragonscale-expedition-supplies" },
	[200610] = { name = "dragon-racing-purse-second-place" },
	[204346] = { name = "arclight-rumble-foil-box" },
	[210726] = { name = "ruby-flightstone" },
	[191296] = { name = "enchanted-lockbox", lockbox = true },
	[194072] = { name = "sack-of-gold" },
	[198166] = { name = "suspiciously-ticking-crate" },
	[201252] = { name = "100-bronze-pvp-chest-dnt" },
	[210759] = { name = "honorable-satchel-of-ore" },
	[210760] = { name = "honorable-satchel-of-herbs" },
	[211429] = { name = "bundle-of-love-tokens" },
	[218130] = { name = "adventurers-footlocker" },
	[190233] = { name = "maruuk-centaur-supplies" },
	[200609] = { name = "dragon-racing-purse-first-place" },
	[200611] = { name = "dragon-racing-purse-third-place" },
	[216638] = { name = "timerunners-intro-kit" },
	[198171] = { name = "suspiciously-silent-crate" },
	[208878] = { name = "adventurers-footlocker" },
	[219219] = { name = "timerunners-starter-kit" },
	[209832] = { name = "crate-of-dreambound-leather" },
	[208951] = { name = "paracausal-cluster" },
	[208952] = { name = "soridormis-letter-of-commendation" },
-- Openables Added in 11.0 beta
	[227450] = { name = "sky-racers-purse" },
	[226198] = { name = "resonance-crystal-agglomeration" },
	[224100] = { name = "bottomless-bag-of-khaz-algar-general-goods" },
	[225881] = { name = "big-bag-of-barter-boulders" },
	[217013] = { name = "expert-actors-chest" },
	[224556] = { name = "victorious-contenders-strongbox" },
	[226263] = { name = "theater-troupes-trove" },
	[224032] = { name = "bottomless-bag-of-khaz-algar-enchanting-goods" },
	[226273] = { name = "awakened-mechanical-cache" },
	[221269] = { name = "crimson-valorstone" },
	[224027] = { name = "bottomless-bag-of-khaz-algar-herbs" },
	[224029] = { name = "bottomless-bag-of-khaz-algar-skins" },
	[224033] = { name = "bottomless-bag-of-khaz-algar-engineering-goods" },
	[224035] = { name = "bottomless-bag-of-khaz-algar-jewelcrafting-goods" },
	[226196] = { name = "silk-kej-pouch" },
	[213785] = { name = "algari-ruby-prism" },
	[218738] = { name = "bizarrely-shaped-stomach" },
	[224031] = { name = "bottomless-bag-of-khaz-algar-blacksmithing-goods" },
	[224037] = { name = "bottomless-bag-of-khaz-algar-leatherworking-goods" },
	[225896] = { name = "void-touched-valorstone" },
	[218309] = { name = "gently-shaken-gift" },
	[224039] = { name = "bottomless-bag-of-khaz-algar-tailoring-goods" },
	[225245] = { name = "overflowing-trove-of-the-deeps" },
	[213779] = { name = "algari-amber-prism" },
	[217011] = { name = "amateur-actors-chest" },
	[224028] = { name = "bottomless-bag-of-khaz-algar-ore" },
	[224030] = { name = "bottomless-bag-of-khaz-algar-alchemy-goods" },
	[224784] = { name = "pinnacle-cache" },
	[225239] = { name = "overflowing-council-of-dornogal-trove" },
	[226148] = { name = "wax-sealed-weathered-crests" },
	[226194] = { name = "cache-of-nerubian-treasures" },
	[226195] = { name = "resonance-crystal-cluster" },
	[226199] = { name = "silk-kej-purse" },
	[213782] = { name = "algari-emerald-prism" },
	[213788] = { name = "algari-onyx-prism" },
	[218311] = { name = "winter-veil-gift" },
	[220376] = { name = "bismuth-lockbox", lockbox = true },
	[226146] = { name = "handful-of-humming-shinies" },
	[226150] = { name = "stonebound-shiny" },
	[213791] = { name = "algari-sapphire-prism" },
	[215359] = { name = "very-large-valdrakken-accord-supply-pack" },
	[217012] = { name = "novice-actors-chest" },
	[224040] = { name = "bottomless-bag-of-khaz-algar-optional-goods" },
	[224557] = { name = "field-medics-hazard-payout" },
	[225246] = { name = "overflowing-hallowfall-trove" },
	[225247] = { name = "overflowing-severed-threads-trove" },
	[226103] = { name = "the-weavers-trove" },
	[226193] = { name = "cache-of-nerubian-treasures" },
	[226256] = { name = "token-of-the-remembrancers" },
	[221502] = { name = "adventurers-warbound-battlegear-drop" },
	[221503] = { name = "explorers-warbound-battlegear-drop" },
	[224034] = { name = "bottomless-bag-of-khaz-algar-inscription-goods" },
	[224573] = { name = "crystal-satchel-of-cooperation" },
	[225571] = { name = "the-weavers-gratuity" },
	[224156] = { name = "bottomless-bag-of-khaz-algar-general-goods" },
	[224586] = { name = "box-o-booms" },
	[224588] = { name = "box-o-booms" },
	[225573] = { name = "the-viziers-capital" },
	[226151] = { name = "wax-coated-coffer-unlocker" },
	[226154] = { name = "wax-sealed-crafty-crest" },
	[226813] = { name = "golden-valorstone" },
	[222977] = { name = "scorched-junk" },
	[224587] = { name = "box-o-booms" },
	[224913] = { name = "radiant-fuel-cache" },
	[224941] = { name = "radiant-fuel-cache" },
	[225572] = { name = "the-generals-war-chest" },
	[225739] = { name = "algari-distinguishment" },
	[226045] = { name = "the-generals-trove" },
	[226100] = { name = "the-viziers-trove" },
	[226147] = { name = "bunch-of-brave-rocks" },
	[226149] = { name = "pile-of-humming-shinies" },
	[226152] = { name = "wax-sealed-crests" },
	[226153] = { name = "big-pile-of-humming-shinies" },
	[226264] = { name = "radiant-cache" },
	[226814] = { name = "chest-of-gold" },
	[16885] = { name = "heavy-junkbox" },
	[20768] = { name = "oozing-bag" },
	[21113] = { name = "watertight-trunk" },
	[10752] = { name = "emerald-encrusted-chest" },
	[21150] = { name = "iron-bound-trunk" },
	[20469] = { name = "decoded-true-believer-clippings" },
	[5760] = { name = "eternium-lockbox", lockbox = true },
	[21228] = { name = "mithril-bound-trunk" },
	[16882] = { name = "battered-junkbox", lockbox = true },
	[4636] = { name = "strong-iron-lockbox", lockbox = true },
	[5758] = { name = "mithril-lockbox", lockbox = true },
	[4637] = { name = "steel-lockbox", lockbox = true },
	[9363] = { name = "sparklematic-wrapped-box" },
	[16884] = { name = "sturdy-junkbox", lockbox = true },
	[12033] = { name = "thaurissan-family-jewels", lockbox = true },
	[22746] = { name = "buccaneers-uniform" },
	[20708] = { name = "tightly-sealed-trunk" },
	[4634] = { name = "iron-lockbox", lockbox = true },
	[17965] = { name = "yellow-sack-of-gems" },
	[21746] = { name = "lucky-red-envelope" },
	[4633] = { name = "heavy-bronze-lockbox", lockbox = true },
	[4638] = { name = "reinforced-steel-lockbox", lockbox = true },
	[13881] = { name = "bloated-redgill" },
	[9265] = { name = "cuergos-hidden-treasure" },
	[16883] = { name = "worn-junkbox", lockbox = true },
	[5759] = { name = "thorium-lockbox", lockbox = true },
	[6645] = { name = "bloated-mud-snapper" },
	[9276] = { name = "pirates-footlocker" },
	[6354] = { name = "small-locked-chest", lockbox = true },
	[10569] = { name = "hoard-of-the-black-dragonflight" },
	[17727] = { name = "smokywood-pastures-gift-pack" },
	[17969] = { name = "red-sack-of-gems" },
	[20767] = { name = "scum-covered-bag" },
	[21742] = { name = "large-rocket-recipes" },
	[4632] = { name = "ornate-bronze-lockbox", lockbox = true },
	[15902] = { name = "a-crazy-grab-bag" },
	[23022] = { name = "curmudgeons-payoff" },
	[6827] = { name = "box-of-supplies" },
	[17964] = { name = "gray-sack-of-gems" },
	[6356] = { name = "battered-chest" },
	[13874] = { name = "heavy-crate" },
	[9541] = { name = "box-of-goodies" },
	[10479] = { name = "kovics-trading-satchel" },
	[12122] = { name = "kumishas-junk" },
	[20601] = { name = "sack-of-spoils" },
	[21512] = { name = "ahnqiraj-war-effort-supplies" },
	[21740] = { name = "small-rocket-recipes" },
	[21743] = { name = "large-cluster-rocket-recipes" },
	[5738] = { name = "covert-ops-pack" },
	[6307] = { name = "message-in-a-bottle" },
	[6352] = { name = "waterlogged-crate" },
	[6353] = { name = "small-chest" },
	[11422] = { name = "goblin-engineers-renewal-gift" },
	[13918] = { name = "reinforced-locked-chest", lockbox = true },
	[20602] = { name = "chest-of-spoils" },
	[21812] = { name = "box-of-chocolates" },
	[10456] = { name = "a-bulging-coin-purse" },
	[13891] = { name = "bloated-salmon" },
	[19151] = { name = "sentinel-standard-care-package" },
	[21156] = { name = "scarab-bag" },
	[21271] = { name = "gently-shaken-gift" },
	[6357] = { name = "sealed-crate" },
	[11938] = { name = "sack-of-gems" },
	[19150] = { name = "sentinel-basic-care-package" },
	[19425] = { name = "mysterious-lockbox" },
	[21640] = { name = "lunar-festival-fireworks-pack" },
	[21975] = { name = "pledge-of-adoration-stormwind" },
	[6715] = { name = "ruined-jumper-cables" },
	[19422] = { name = "darkmoon-faire-fortune" },
	[20766] = { name = "slimy-bag" },
	[21042] = { name = "narains-special-kit" },
	[21131] = { name = "followup-combat-assignment" },
	[22320] = { name = "muxs-quality-goods" },
	[19153] = { name = "outrider-advanced-care-package" },
	[21164] = { name = "bloated-rockscale-cod" },
	[21266] = { name = "logistics-assignment" },
	[21741] = { name = "cluster-rocket-recipes" },
	[6355] = { name = "sturdy-locked-chest", lockbox = true },
	[6647] = { name = "bloated-catfish" },
	[10695] = { name = "box-of-empty-vials" },
	[11024] = { name = "evergreen-herb-casing" },
	[17962] = { name = "blue-sack-of-gems" },
	[21270] = { name = "gently-shaken-gift" },
	[6755] = { name = "a-small-container-of-gems" },
	[8366] = { name = "bloated-trout" },
	[11107] = { name = "a-small-pack" },
	[12339] = { name = "vaelans-gift" },
	[17963] = { name = "green-sack-of-gems" },
	[18804] = { name = "lord-graysons-satchel" },
	[21528] = { name = "colossal-bag-of-loot" },
	[21981] = { name = "gift-of-adoration-stormwind" },
	[22650] = { name = "hivezora-dossier" },
	[7190] = { name = "scorched-rocket-boots" },
	[9540] = { name = "box-of-spells" },
	[10834] = { name = "felhound-tracker-kit" },
	[11912] = { name = "package-of-empty-ooze-containers" },
	[19035] = { name = "lards-special-picnic-basket" },
	[19154] = { name = "outrider-basic-care-package" },
	[19297] = { name = "lesser-darkmoon-prize" },
	[19298] = { name = "minor-darkmoon-prize" },
	[20233] = { name = "arathor-basic-care-package" },
	[20236] = { name = "arathor-standard-care-package" },
	[21132] = { name = "logistics-assignment" },
	[21315] = { name = "smokywood-satchel" },
	[21386] = { name = "followup-logistics-assignment" },
	[22137] = { name = "ysidas-satchel" },
	[22155] = { name = "pledge-of-adoration-darnassus" },
	[6351] = { name = "dented-crate" },
	[7870] = { name = "thaumaturgy-vessel-lockbox" },
	[11423] = { name = "gnome-engineers-renewal-gift" },
	[11617] = { name = "eridans-supplies" },
	[11883] = { name = "a-dingy-fanny-pack" },
	[11887] = { name = "cenarion-circle-cache" },
	[15102] = { name = "ungoro-tested-sample" },
	[15699] = { name = "small-brown-wrapped-package" },
	[19155] = { name = "outrider-standard-care-package" },
	[20228] = { name = "defilers-advanced-care-package" },
	[20229] = { name = "defilers-basic-care-package" },
	[20231] = { name = "arathor-advanced-care-package" },
	[20805] = { name = "followup-logistics-assignment" },
	[21509] = { name = "ahnqiraj-war-effort-supplies" },
	[21513] = { name = "ahnqiraj-war-effort-supplies" },
	[21980] = { name = "gift-of-adoration-ironforge" },
	[22157] = { name = "pledge-of-adoration-undercity" },
	[22171] = { name = "gift-of-friendship-thunder-bluff" },
	[22648] = { name = "hiveashi-dossier" },
	[5335] = { name = "a-sack-of-coins" },
	[7209] = { name = "tazans-satchel" },
	[8484] = { name = "gadgetzan-water-co-care-package" },
	[9539] = { name = "box-of-rations" },
	[10773] = { name = "hakkari-urn" },
	[11568] = { name = "torwas-pouch" },
	[11955] = { name = "bag-of-empty-ooze-containers" },
	[11966] = { name = "small-sack-of-coins" },
	[15103] = { name = "corrupt-tested-sample" },
	[19152] = { name = "sentinel-advanced-care-package" },
	[19296] = { name = "greater-darkmoon-prize" },
	[20230] = { name = "defilers-standard-care-package" },
	[20603] = { name = "bag-of-spoils" },
	[20808] = { name = "combat-assignment" },
	[21510] = { name = "ahnqiraj-war-effort-supplies" },
	[21511] = { name = "ahnqiraj-war-effort-supplies" },
	[22154] = { name = "pledge-of-adoration-ironforge" },
	[22649] = { name = "hiveregal-dossier" },
	[6643] = { name = "bloated-smallfish" },
	[8049] = { name = "gnarlpine-necklace" },
	[8647] = { name = "egg-crate" },
	[11937] = { name = "fat-sack-of-coins" },
	[12849] = { name = "demon-kissed-sack" },
	[13875] = { name = "ironbound-locked-chest", lockbox = true },
	[15876] = { name = "nathanos-chest" },
	[20809] = { name = "tactical-assignment" },
	[21133] = { name = "followup-tactical-assignment" },
	[22568] = { name = "sealed-craftsmans-writ" },
	[35348] = { name = "bag-of-fishing-treasures" },
	[33844] = { name = "barrel-of-fish" },
	[33857] = { name = "crate-of-meat" },
	[33926] = { name = "sealed-scroll-case" },
	[33928] = { name = "hollowed-bone-decanter" },
	[31800] = { name = "outcasts-cache" },
	[34863] = { name = "bag-of-fishing-treasures" },
	[27481] = { name = "heavy-supply-crate" },
	[27513] = { name = "curious-crate" },
	[27446] = { name = "mr-pinchys-gift" },
	[35512] = { name = "pocket-full-of-snow" },
	[35313] = { name = "bloated-barbed-gill-trout" },
	[25419] = { name = "unmarked-bag-of-gems" },
	[35286] = { name = "bloated-giant-sunfish" },
	[34077] = { name = "crudely-wrapped-gift" },
	[32724] = { name = "sludge-covered-object" },
	[31952] = { name = "khorium-lockbox", lockbox = true },
	[32629] = { name = "large-gold-metamorphosis-geode" },
	[35945] = { name = "brilliant-glass" },
	[24336] = { name = "fireproof-satchel" },
	[29569] = { name = "strong-junkbox", lockbox = true },
	[32624] = { name = "large-iron-metamorphosis-geode" },
	[32777] = { name = "kronks-grab-bag" },
	[30260] = { name = "vorenthals-package" },
	[32630] = { name = "small-gold-metamorphosis-geode" },
	[31408] = { name = "offering-of-the-shatar" },
	[31955] = { name = "arelions-knapsack" },
	[34587] = { name = "aldor-supplies-package" },
	[23846] = { name = "nolkais-box" },
	[32631] = { name = "small-silver-metamorphosis-geode" },
	[22165] = { name = "gift-of-adoration-thunder-bluff" },
	[22168] = { name = "gift-of-friendship-ironforge" },
	[24402] = { name = "package-of-identified-plants" },
	[31522] = { name = "primal-mooncloth-supplies" },
	[32462] = { name = "morthis-materials" },
	[32626] = { name = "large-copper-metamorphosis-geode" },
	[34593] = { name = "scryer-supplies-package" },
	[21979] = { name = "gift-of-adoration-darnassus" },
	[27511] = { name = "inscribed-scrollcase" },
	[22159] = { name = "pledge-of-friendship-darnassus" },
	[22169] = { name = "gift-of-friendship-orgrimmar" },
	[25423] = { name = "bag-of-premium-gems" },
	[34426] = { name = "winter-veil-gift" },
	[22156] = { name = "pledge-of-adoration-orgrimmar" },
	[22160] = { name = "pledge-of-friendship-ironforge" },
	[22162] = { name = "pledge-of-friendship-thunder-bluff" },
	[22164] = { name = "gift-of-adoration-orgrimmar" },
	[23921] = { name = "bulging-sack-of-silver" },
	[30320] = { name = "bundle-of-nether-spikes" },
	[32625] = { name = "small-iron-metamorphosis-geode" },
	[33045] = { name = "renns-supplies" },
	[34846] = { name = "black-sack-of-gems" },
	[35232] = { name = "shattered-sun-supplies" },
	[22158] = { name = "pledge-of-adoration-thunder-bluff" },
	[22161] = { name = "pledge-of-friendship-orgrimmar" },
	[22163] = { name = "pledge-of-friendship-undercity" },
	[22167] = { name = "gift-of-friendship-darnassus" },
	[22170] = { name = "gift-of-friendship-stormwind" },
	[22172] = { name = "gift-of-friendship-undercity" },
	[22178] = { name = "pledge-of-friendship-stormwind" },
	[25422] = { name = "bulging-sack-of-gems" },
	[30650] = { name = "dertroks-wand-case" },
	[32628] = { name = "large-silver-metamorphosis-geode" },
	[32835] = { name = "ogrila-care-package" },
	[34584] = { name = "scryer-supplies-package" },
	[34592] = { name = "aldor-supplies-package" },
	[34594] = { name = "scryer-supplies-package" },
	[25424] = { name = "gem-stuffed-envelope" },
	[34583] = { name = "aldor-supplies-package" },
	[34585] = { name = "scryer-supplies-package" },
	[34595] = { name = "aldor-supplies-package" },
	[22166] = { name = "gift-of-adoration-undercity" },
	[32064] = { name = "protectorate-treasure-cache" },
	[32627] = { name = "small-copper-metamorphosis-geode" },
	[54536] = { name = "satchel-of-chilled-goods" },
	[39883] = { name = "cracked-egg" },
	[43575] = { name = "reinforced-junkbox", lockbox = true },
	[50160] = { name = "lovely-dress-box" },
	[46007] = { name = "bag-of-fishing-treasures" },
	[51316] = { name = "unsealed-chest" },
	[44113] = { name = "small-spice-bag" },
	[44751] = { name = "hyldnir-spoils" },
	[45724] = { name = "champions-purse" },
	[44718] = { name = "ripe-disgusting-jar" },
	[51999] = { name = "satchel-of-helpful-goods" },
	[54537] = { name = "heart-shaped-box" },
	[44663] = { name = "abandoned-adventurers-satchel" },
	[50161] = { name = "dinner-suit-box" },
	[52002] = { name = "satchel-of-helpful-goods" },
	[52676] = { name = "cache-of-the-ley-guardian" },
	[52004] = { name = "satchel-of-helpful-goods" },
	[43624] = { name = "titanium-lockbox", lockbox = true },
	[54535] = { name = "keg-shaped-treasure-chest" },
	[37168] = { name = "mysterious-tarot" },
	[44700] = { name = "brooding-darkwater-clam" },
	[49926] = { name = "brazies-black-book-of-secrets" },
	[52005] = { name = "satchel-of-helpful-goods" },
	[44943] = { name = "icy-prism" },
	[45986] = { name = "tiny-titanium-lockbox", lockbox = true },
	[39418] = { name = "ornately-jeweled-box" },
	[43556] = { name = "patrollers-pack" },
	[43622] = { name = "froststeel-lockbox", lockbox = true },
	[50301] = { name = "landros-pet-box" },
	[49294] = { name = "ashen-sack-of-gems" },
	[52001] = { name = "satchel-of-helpful-goods" },
	[34119] = { name = "black-conrads-treasure" },
	[52000] = { name = "satchel-of-helpful-goods" },
	[52003] = { name = "satchel-of-helpful-goods" },
	[43346] = { name = "large-satchel-of-spoils" },
	[44142] = { name = "strange-tarot" },
	[44161] = { name = "arcane-tarot" },
	[46810] = { name = "bountiful-cookbook" },
	[49909] = { name = "box-of-chocolates" },
	[44475] = { name = "reinforced-crate" },
	[41426] = { name = "magically-wrapped-gift" },
	[41888] = { name = "small-velvet-bag" },
	[43504] = { name = "winter-veil-gift" },
	[44163] = { name = "shadowy-tarot" },
	[45328] = { name = "bloated-slippery-eel" },
	[46809] = { name = "bountiful-cookbook" },
	[46812] = { name = "northrend-mystery-gem-pouch" },
	[52006] = { name = "sack-of-frosty-treasures" },
	[34871] = { name = "craftys-sack" },
	[35792] = { name = "mage-hunter-personal-effects" },
	[45878] = { name = "large-sack-of-ulduar-spoils" },
	[46740] = { name = "winter-veil-gift" },
	[49631] = { name = "standard-apothecary-serving-kit" },
	[43347] = { name = "satchel-of-spoils" },
	[44951] = { name = "box-of-bombs" },
	[45875] = { name = "sack-of-ulduar-spoils" },
	[46110] = { name = "alchemists-cache" },
	[64657] = { name = "canopic-jar" },
	[68729] = { name = "elementium-lockbox", lockbox = true },
	[63349] = { name = "flame-scarred-junkbox", lockbox = true },
	[67414] = { name = "bag-of-shiny-things" },
	[67539] = { name = "tiny-treasure-chest" },
	[69903] = { name = "satchel-of-exotic-mysteries" },
	[52304] = { name = "fire-prism" },
	[67495] = { name = "strange-bloated-stomach" },
	[65513] = { name = "crate-of-tasty-meat" },
	[68689] = { name = "imported-supplies" },
	[66943] = { name = "treasures-from-grim-batol" },
	[71631] = { name = "zenvorkas-cache" },
	[68813] = { name = "satchel-of-freshly-picked-herbs" },
	[78930] = { name = "sealed-crate" },
	[61387] = { name = "hidden-stash" },
	[67250] = { name = "satchel-of-helpful-goods" },
	[69823] = { name = "gubs-catch" },
	[67597] = { name = "sealed-crate" },
	[62062] = { name = "bulging-sack-of-gold" },
	[68384] = { name = "moonkin-egg" },
	[77956] = { name = "spectral-mount-crate" },
	[69817] = { name = "hive-queens-honeycomb" },
	[69818] = { name = "giant-sack" },
	[64491] = { name = "royal-reward" },
	[67248] = { name = "satchel-of-helpful-goods" },
	[68795] = { name = "stendels-bane" },
	[78909] = { name = "sack-o-tokens" },
	[78905] = { name = "sack-o-tokens" },
	[69822] = { name = "master-chefs-groceries" },
	[78902] = { name = "pouch-o-tokens" },
	[50238] = { name = "cracked-ungoro-coconut" },
	[57540] = { name = "coldridge-mountaineers-pouch" },
	[67443] = { name = "winter-veil-gift" },
	[60681] = { name = "cannarys-cache" },
	[70719] = { name = "water-filled-gills" },
	[78901] = { name = "pouch-o-tokens" },
	[78906] = { name = "sack-o-tokens" },
	[70938] = { name = "winter-veil-gift" },
	[69999] = { name = "moat-monster-feeding-kit" },
	[49369] = { name = "red-blizzcon-bag" },
	[78900] = { name = "pouch-o-tokens" },
	[52274] = { name = "earthen-ring-supplies" },
	[52344] = { name = "earthen-ring-supplies" },
	[68598] = { name = "very-fat-sack-of-coins" },
	[78898] = { name = "sack-o-tokens" },
	[78903] = { name = "pouch-o-tokens" },
	[69886] = { name = "bag-of-coins" },
	[70931] = { name = "scrooges-payoff" },
	[78904] = { name = "pouch-o-tokens" },
	[78907] = { name = "sack-o-tokens" },
	[78908] = { name = "sack-o-tokens" },
	[78910] = { name = "sack-o-tokens" },
	[50409] = { name = "sparks-fossil-finding-kit" },
	[78897] = { name = "pouch-o-tokens" },
	[78899] = { name = "pouch-o-tokens" },
	[97565] = { name = "unclaimed-black-market-container" },
	[94296] = { name = "cracked-primal-egg" },
	[105751] = { name = "korkron-shamans-treasure" },
	[87723] = { name = "sack-of-emperor-salmon" },
	[94219] = { name = "arcane-trove" },
	[87539] = { name = "crate-of-tolvir-archaeology-fragments" },
	[98560] = { name = "arcane-trove" },
	[94220] = { name = "sunreaver-bounty" },
	[98562] = { name = "sunreaver-bounty" },
	[104258] = { name = "glowing-green-ash" },
	[102137] = { name = "unclaimed-black-market-container" },
	[103624] = { name = "treasures-of-the-vale" },
	[104035] = { name = "giant-purse-of-timeless-coins" },
	[87540] = { name = "crate-of-troll-archaeology-fragments" },
	[95601] = { name = "shiny-pile-of-refuse" },
	[104263] = { name = "glinting-pile-of-stone" },
	[87533] = { name = "crate-of-dwarven-archaeology-fragments" },
	[90818] = { name = "misty-satchel-of-exotic-mysteries" },
	[88496] = { name = "sealed-crate" },
	[104198] = { name = "mantid-artifact-hunters-kit" },
	[104261] = { name = "glowing-blue-ash" },
	[90162] = { name = "golden-chest-of-the-regal-lord" },
	[94566] = { name = "fortuitous-coffer" },
	[95469] = { name = "serpents-heart" },
	[94158] = { name = "big-bag-of-zandalari-supplies" },
	[87536] = { name = "crate-of-night-elf-archaeology-fragments" },
	[89428] = { name = "ancient-mogu-treasure" },
	[104296] = { name = "ordon-ceremonial-robes" },
	[94553] = { name = "notes-on-lightning-steel" },
	[95343] = { name = "treasures-of-the-thunder-king" },
	[104268] = { name = "pristine-stalker-hide" },
	[88165] = { name = "vine-cracked-junkbox", lockbox = true },
	[93360] = { name = "serpents-cache" },
	[90625] = { name = "treasures-of-the-vale" },
	[90164] = { name = "golden-chest-of-the-cycle" },
	[86428] = { name = "old-man-thistles-treasure" },
	[86595] = { name = "bag-of-helpful-things" },
	[90156] = { name = "golden-chest-of-the-betrayer" },
	[104292] = { name = "partially-digested-meal" },
	[72201] = { name = "plump-intestines" },
	[92813] = { name = "greater-cache-of-treasures" },
	[90161] = { name = "golden-chest-of-the-holy-warrior" },
	[92960] = { name = "silkworm-cocoon" },
	[88567] = { name = "ghost-iron-lockbox", lockbox = true },
	[87391] = { name = "plundered-treasure" },
	[90155] = { name = "golden-chest-of-the-golden-king" },
	[90163] = { name = "golden-chest-of-the-howling-beast" },
	[90537] = { name = "winners-reward" },
	[90165] = { name = "golden-chest-of-the-lich-lord" },
	[90735] = { name = "goodies-from-nomi" },
	[104273] = { name = "flame-scarred-cache-of-offerings" },
	[106130] = { name = "big-bag-of-herbs" },
	[87537] = { name = "crate-of-nerubian-archaeology-fragments" },
	[104034] = { name = "purse-of-timeless-coins" },
	[85271] = { name = "secret-stash" },
	[87707] = { name = "sack-of-juicycrunch-carrots" },
	[90160] = { name = "golden-chest-of-the-light" },
	[89991] = { name = "pandaria-fireworks" },
	[93724] = { name = "darkmoon-game-prize" },
	[105713] = { name = "twisted-treasures-of-the-vale" },
	[90158] = { name = "golden-chest-of-the-elemental-triad" },
	[90159] = { name = "golden-chest-of-the-silent-assassin" },
	[95618] = { name = "cache-of-mogu-riches" },
	[87225] = { name = "big-bag-of-food" },
	[87535] = { name = "crate-of-fossil-archaeology-fragments" },
	[104271] = { name = "coalesced-turmoil" },
	[85497] = { name = "chirping-package" },
	[87712] = { name = "sack-of-witchberries" },
	[85227] = { name = "special-seed-pack" },
	[95619] = { name = "amber-encased-treasure-pouch" },
	[87222] = { name = "big-bag-of-linens" },
	[87534] = { name = "crate-of-draenei-archaeology-fragments" },
	[90157] = { name = "golden-chest-of-windfury" },
	[92744] = { name = "heavy-sack-of-gold" },
	[90628] = { name = "heros-purse" },
	[95617] = { name = "dividends-of-the-everlasting-spring" },
	[105714] = { name = "coalesced-turmoil" },
	[87221] = { name = "big-bag-of-jewels" },
	[87706] = { name = "sack-of-green-cabbages" },
	[89608] = { name = "crate-of-ore" },
	[89610] = { name = "pandaria-herbs" },
	[89804] = { name = "cache-of-mogu-riches" },
	[90399] = { name = "facets-of-research" },
	[90623] = { name = "heros-purse" },
	[93149] = { name = "pandaren-spirit-pet-supplies" },
	[97952] = { name = "surplus-supplies" },
	[98096] = { name = "large-sack-of-coins" },
	[98133] = { name = "greater-cache-of-treasures" },
	[87725] = { name = "sack-of-tiger-gourami" },
	[90632] = { name = "heros-purse" },
	[90633] = { name = "heros-purse" },
	[92790] = { name = "ride-ticket-book" },
	[97950] = { name = "surplus-supplies" },
	[97955] = { name = "surplus-supplies" },
	[98095] = { name = "brawlers-pet-supplies" },
	[77501] = { name = "blue-blizzcon-bag" },
	[85226] = { name = "basic-seed-pack" },
	[85274] = { name = "gro-pack" },
	[85277] = { name = "nicely-packed-lunch" },
	[87728] = { name = "sack-of-krasarang-paddlefish" },
	[89427] = { name = "ancient-mogu-treasure" },
	[89607] = { name = "crate-of-leather" },
	[89857] = { name = "dividends-of-the-everlasting-spring" },
	[90401] = { name = "facets-of-research" },
	[90626] = { name = "heros-purse" },
	[90629] = { name = "heros-purse" },
	[92792] = { name = "ride-ticket-book" },
	[93146] = { name = "pandaren-spirit-pet-supplies" },
	[93147] = { name = "pandaren-spirit-pet-supplies" },
	[97951] = { name = "surplus-supplies" },
	[98097] = { name = "huge-sack-of-coins" },
	[103632] = { name = "lucky-box-of-greatness" },
	[87218] = { name = "big-bag-of-arms" },
	[89807] = { name = "amber-encased-treasure-pouch" },
	[93626] = { name = "stolen-present" },
	[98100] = { name = "humongous-sack-of-coins" },
	[104275] = { name = "twisted-treasures-of-the-vale" },
	[85272] = { name = "tree-seed-pack" },
	[87538] = { name = "crate-of-orc-archaeology-fragments" },
	[87705] = { name = "sack-of-wildfowl-breasts" },
	[87709] = { name = "sack-of-scallions" },
	[87710] = { name = "sack-of-red-blossom-leeks" },
	[89613] = { name = "cache-of-treasures" },
	[90634] = { name = "heros-purse" },
	[93148] = { name = "pandaren-spirit-pet-supplies" },
	[98098] = { name = "bulging-sack-of-coins" },
	[104319] = { name = "winter-veil-gift" },
	[85223] = { name = "enigma-seed-pack" },
	[87220] = { name = "big-bag-of-mysteries" },
	[87223] = { name = "big-bag-of-skins" },
	[87541] = { name = "crate-of-vrykul-archaeology-fragments" },
	[87703] = { name = "sack-of-raw-turtle-meat" },
	[87726] = { name = "sack-of-jewel-danio" },
	[90892] = { name = "winter-veil-gift" },
	[93199] = { name = "tome-of-the-crane" },
	[98101] = { name = "enormous-sack-of-coins" },
	[104260] = { name = "satchel-of-savage-mysteries" },
	[85224] = { name = "basic-seed-pack" },
	[85498] = { name = "songbell-seed-pack" },
	[87708] = { name = "sack-of-mogu-pumpkins" },
	[87714] = { name = "sack-of-striped-melons" },
	[87715] = { name = "sack-of-pink-turnips" },
	[87721] = { name = "sack-of-jade-lungfish" },
	[89810] = { name = "bounty-of-a-sundered-land" },
	[89858] = { name = "cache-of-mogu-riches" },
	[90400] = { name = "facets-of-research" },
	[90621] = { name = "heros-purse" },
	[90624] = { name = "heros-purse" },
	[90635] = { name = "heros-purse" },
	[92718] = { name = "brawlers-purse" },
	[92789] = { name = "ride-ticket-book" },
	[93200] = { name = "tome-of-the-serpent" },
	[97954] = { name = "surplus-supplies" },
	[97957] = { name = "surplus-supplies" },
	[98099] = { name = "giant-sack-of-coins" },
	[98103] = { name = "gigantic-sack-of-coins" },
	[103535] = { name = "bulging-bag-of-charms" },
	[104114] = { name = "curious-ticking-parcel" },
	[85225] = { name = "basic-seed-pack" },
	[85275] = { name = "chee-chees-goodie-bag" },
	[87219] = { name = "huge-bag-of-herbs" },
	[87224] = { name = "big-bag-of-wonders" },
	[87702] = { name = "sack-of-mushan-ribs" },
	[87716] = { name = "sack-of-white-turnips" },
	[87722] = { name = "sack-of-giant-mantis-shrimp" },
	[87727] = { name = "sack-of-reef-octopus" },
	[87730] = { name = "sack-of-crocolisk-belly" },
	[89609] = { name = "crate-of-dust" },
	[89808] = { name = "dividends-of-the-everlasting-spring" },
	[89856] = { name = "amber-encased-treasure-pouch" },
	[90041] = { name = "spoils-of-theramore" },
	[90395] = { name = "facets-of-research" },
	[90397] = { name = "facets-of-research" },
	[90398] = { name = "facets-of-research" },
	[90406] = { name = "facets-of-research" },
	[90622] = { name = "heros-purse" },
	[90630] = { name = "heros-purse" },
	[90631] = { name = "heros-purse" },
	[92791] = { name = "ride-ticket-book" },
	[92793] = { name = "ride-ticket-book" },
	[93198] = { name = "tome-of-the-tiger" },
	[97948] = { name = "surplus-supplies" },
	[97949] = { name = "surplus-supplies" },
	[97956] = { name = "surplus-supplies" },
	[98102] = { name = "overflowing-sack-of-coins" },
	[104112] = { name = "curious-ticking-parcel" },
	[85276] = { name = "celebration-gift" },
	[87701] = { name = "sack-of-raw-tiger-steaks" },
	[87704] = { name = "sack-of-raw-crab-meat" },
	[87713] = { name = "sack-of-jade-squash" },
	[87724] = { name = "sack-of-redbelly-mandarin" },
	[87729] = { name = "sack-of-golden-carp" },
	[90627] = { name = "heros-purse" },
	[92794] = { name = "ride-ticket-book" },
	[97953] = { name = "surplus-supplies" },
	[117394] = { name = "satchel-of-chilled-goods" },
	[128025] = { name = "rattling-iron-cage" },
	[116980] = { name = "invaders-forgotten-treasure" },
	[128670] = { name = "savage-gift" },
	[110678] = { name = "darkmoon-ticket-fanny-pack" },
	[128319] = { name = "void-shrouded-satchel" },
	[123975] = { name = "greater-bounty-spoils" },
	[112623] = { name = "pack-of-fishing-supplies" },
	[122613] = { name = "stash-of-dusty-music-rolls" },
	[110592] = { name = "unclaimed-black-market-container" },
	[118927] = { name = "maximillians-laundry" },
	[120147] = { name = "bloody-gold-purse" },
	[122163] = { name = "routed-invaders-crate-of-spoils" },
	[127995] = { name = "unclaimed-black-market-container" },
	[114662] = { name = "tranquil-satchel-of-helpful-goods" },
	[122718] = { name = "clinking-present" },
	[108738] = { name = "giant-draenor-clam" },
	[117386] = { name = "crate-of-pandaren-archaeology-fragments" },
	[114641] = { name = "icy-satchel-of-helpful-goods" },
	[118529] = { name = "cache-of-highmaul-treasures" },
	[119042] = { name = "crate-of-valuable-treasures" },
	[120170] = { name = "partially-digested-bag" },
	[122191] = { name = "bloody-stack-of-invitations" },
	[119043] = { name = "trove-of-smoldering-treasures" },
	[112108] = { name = "cracked-egg" },
	[128803] = { name = "savage-satchel-of-cooperation" },
	[118924] = { name = "cache-of-arms" },
	[119036] = { name = "box-of-storied-treasures" },
	[119041] = { name = "strongbox-of-mysterious-treasures" },
	[116202] = { name = "pet-care-package" },
	[127854] = { name = "iron-fleet-treasure-chest" },
	[114669] = { name = "tranquil-satchel-of-helpful-goods" },
	[127855] = { name = "iron-fleet-treasure-chest" },
	[118093] = { name = "dented-ashmaul-strongbox" },
	[118929] = { name = "sack-of-mined-ore" },
	[122486] = { name = "blackrock-foundry-spoils" },
	[117414] = { name = "stormwind-guard-armor-package" },
	[118531] = { name = "cache-of-highmaul-treasures" },
	[118931] = { name = "leonids-bag-of-supplies" },
	[119040] = { name = "cache-of-mingled-treasures" },
	[124670] = { name = "sealed-darkmoon-crate" },
	[127148] = { name = "silas-secret-stash" },
	[119037] = { name = "supply-of-storied-rarities" },
	[122484] = { name = "blackrock-foundry-spoils" },
	[123857] = { name = "runic-pouch" },
	[126918] = { name = "ashmaul-strongbox" },
	[127853] = { name = "iron-fleet-treasure-chest" },
	[107077] = { name = "bag-of-transformers" },
	[116111] = { name = "small-pouch-of-coins" },
	[116376] = { name = "small-pouch-of-coins" },
	[118066] = { name = "ashmaul-strongbox" },
	[119190] = { name = "unclaimed-payment" },
	[119197] = { name = "jewelcrafting-payment" },
	[119198] = { name = "jewelcrafting-payment" },
	[119201] = { name = "jewelcrafting-payment" },
	[119330] = { name = "steel-strongbox" },
	[126906] = { name = "gold-strongbox" },
	[126909] = { name = "gold-strongbox" },
	[114028] = { name = "small-pouch-of-coins" },
	[114970] = { name = "small-pouch-of-coins" },
	[116920] = { name = "true-steel-lockbox", lockbox = true },
	[119188] = { name = "unclaimed-payment" },
	[119200] = { name = "jewelcrafting-payment" },
	[120184] = { name = "ashmaul-strongbox" },
	[120312] = { name = "bulging-sack-of-coins" },
	[120353] = { name = "steel-strongbox" },
	[126904] = { name = "steel-strongbox" },
	[128213] = { name = "dented-ashmaul-strongbox" },
	[118193] = { name = "mysterious-shining-lockbox" },
	[119189] = { name = "unclaimed-payment" },
	[119199] = { name = "jewelcrafting-payment" },
	[127395] = { name = "ripened-strange-fruit" },
	[107270] = { name = "bound-travelers-scroll" },
	[111598] = { name = "gold-strongbox" },
	[114648] = { name = "scorched-satchel-of-helpful-goods" },
	[120142] = { name = "coliseum-champions-spoils" },
	[120319] = { name = "invaders-damaged-cache" },
	[123858] = { name = "follower-retraining-scroll-case" },
	[126915] = { name = "silver-strongbox" },
	[126921] = { name = "ashmaul-strongbox" },
	[128214] = { name = "dented-ashmaul-strongbox" },
	[128652] = { name = "gently-shaken-gift" },
	[108740] = { name = "stolen-weapons" },
	[117387] = { name = "crate-of-mogu-archaeology-fragments" },
	[117388] = { name = "crate-of-mantid-archaeology-fragments" },
	[118930] = { name = "bag-of-everbloom-herbs" },
	[119195] = { name = "jewelcrafting-payment" },
	[120356] = { name = "bronze-strongbox" },
	[126919] = { name = "champions-strongbox" },
	[127141] = { name = "bloated-thresher" },
	[127831] = { name = "challengers-strongbox" },
	[111599] = { name = "silver-strongbox" },
	[114634] = { name = "icy-satchel-of-helpful-goods" },
	[118530] = { name = "cache-of-highmaul-treasures" },
	[118928] = { name = "faintly-sparkling-cache" },
	[119000] = { name = "highmaul-lockbox" },
	[119191] = { name = "jewelcrafting-payment" },
	[120146] = { name = "smuggled-sack-of-gold" },
	[120324] = { name = "bursting-stacked-card-deck" },
	[120325] = { name = "overflowing-stacked-card-deck" },
	[122479] = { name = "scouting-report-shadowmoon-valley" },
	[126905] = { name = "steel-strongbox" },
	[126907] = { name = "silver-strongbox" },
	[126910] = { name = "silver-strongbox" },
	[126911] = { name = "bronze-strongbox" },
	[126916] = { name = "bronze-strongbox" },
	[126922] = { name = "ashmaul-strongbox" },
	[126923] = { name = "champions-strongbox" },
	[128391] = { name = "iron-fleet-treasure-chest" },
	[128653] = { name = "winter-veil-gift" },
	[111600] = { name = "bronze-strongbox" },
	[118759] = { name = "alchemy-experiment" },
	[118925] = { name = "plundered-booty" },
	[118926] = { name = "huge-pile-of-skins" },
	[120151] = { name = "gleaming-ashmaul-strongbox" },
	[120320] = { name = "invaders-abandoned-sack" },
	[120323] = { name = "bulging-stacked-card-deck" },
	[122478] = { name = "scouting-report-frostfire-ridge" },
	[122482] = { name = "scouting-report-spires-of-arak" },
	[122607] = { name = "savage-satchel-of-cooperation" },
	[126901] = { name = "gold-strongbox" },
	[126902] = { name = "silver-strongbox" },
	[126903] = { name = "bronze-strongbox" },
	[126908] = { name = "bronze-strongbox" },
	[126912] = { name = "steel-strongbox" },
	[126914] = { name = "gold-strongbox" },
	[126917] = { name = "ashmaul-strongbox" },
	[128513] = { name = "anniversary-gift" },
	[106895] = { name = "iron-bound-junkbox", lockbox = true },
	[110278] = { name = "engorged-stomach" },
	[114655] = { name = "scorched-satchel-of-helpful-goods" },
	[118065] = { name = "gleaming-ashmaul-strongbox" },
	[118094] = { name = "dented-ashmaul-strongbox" },
	[119196] = { name = "jewelcrafting-payment" },
	[120322] = { name = "klinking-stacked-card-deck" },
	[120354] = { name = "gold-strongbox" },
	[122481] = { name = "scouting-report-talador" },
	[122483] = { name = "scouting-report-nagrand" },
	[122485] = { name = "blackrock-foundry-spoils" },
	[124054] = { name = "time-twisted-anomaly" },
	[126924] = { name = "champions-strongbox" },
	[128216] = { name = "dented-ashmaul-strongbox" },
	[107271] = { name = "frozen-envelope" },
	[116129] = { name = "desiccated-orcs-coin-pouch" },
	[116761] = { name = "winter-veil-gift" },
	[116764] = { name = "small-pouch-of-coins" },
	[118706] = { name = "cracked-goren-egg" },
	[120334] = { name = "satchel-of-cosmic-mysteries" },
	[120355] = { name = "silver-strongbox" },
	[122480] = { name = "scouting-report-gorgrond" },
	[126913] = { name = "steel-strongbox" },
	[126920] = { name = "champions-strongbox" },
	[128215] = { name = "dented-ashmaul-strongbox" },
	[128327] = { name = "small-pouch-of-coins" },
	[149753] = { name = "knapsack-of-chilled-goods" },
	[147905] = { name = "chest-of-champion-equipment" },
	[153117] = { name = "wyrmtongue-cache-of-supplies" },
	[153132] = { name = "coffer-of-argus-equipment" },
	[153121] = { name = "wyrmtongue-cache-of-skins" },
	[141069] = { name = "skyhold-chest-of-riches" },
	[143948] = { name = "chilled-satchel-of-vegetables" },
	[153191] = { name = "cracked-fel-spotted-egg" },
	[156836] = { name = "bulging-package" },
	[144330] = { name = "sprocket-container" },
	[151482] = { name = "time-lost-wallet" },
	[135539] = { name = "crate-of-battlefield-goods" },
	[137561] = { name = "highmountain-tribute" },
	[140227] = { name = "bloodhunters-quarry" },
	[137564] = { name = "nightfallen-hoard" },
	[139771] = { name = "seething-essence" },
	[147576] = { name = "trial-of-style-consolation-prize" },
	[147518] = { name = "cache-of-fel-treasures" },
	[151638] = { name = "leprous-sack-of-pet-supplies" },
	[140226] = { name = "mana-tinged-pack" },
	[140200] = { name = "immaculate-nightshard-curio" },
	[147573] = { name = "trial-of-style-reward-first-place" },
	[139879] = { name = "crate-of-champion-equipment" },
	[143606] = { name = "satchel-of-battlefield-spoils" },
	[147432] = { name = "champion-equipment" },
	[147446] = { name = "brawlers-footlocker" },
	[150924] = { name = "greater-tribute-of-the-broken-isles" },
	[156698] = { name = "tranquil-satchel-of-helpful-goods" },
	[133721] = { name = "message-in-a-beer-bottle" },
	[137608] = { name = "growling-sac" },
	[137560] = { name = "dreamweaver-provisions" },
	[137565] = { name = "wardens-field-kit" },
	[136362] = { name = "ancient-war-remnants" },
	[144377] = { name = "beginning-brawlers-purse" },
	[139049] = { name = "large-legion-chest" },
	[144345] = { name = "pile-of-pet-goodies" },
	[144376] = { name = "agile-brawlers-purse" },
	[121331] = { name = "leystone-lockbox", lockbox = true },
	[137563] = { name = "farondis-lockbox" },
	[135540] = { name = "crate-of-battlefield-goods" },
	[143607] = { name = "soldiers-footlocker" },
	[147574] = { name = "trial-of-style-reward-second-place" },
	[147575] = { name = "trial-of-style-reward-third-place" },
	[156683] = { name = "satchel-of-helpful-goods" },
	[140224] = { name = "butchered-meat" },
	[140591] = { name = "shattered-satchel-of-cooperation" },
	[142113] = { name = "crate-of-arakkoa-archaeology-fragments" },
	[129746] = { name = "oddly-shaped-stomach" },
	[139048] = { name = "small-legion-chest" },
	[140225] = { name = "salvaged-armor" },
	[140601] = { name = "sixtrigger-resource-crate" },
	[151554] = { name = "time-lost-keepsake-box" },
	[140150] = { name = "cache-of-nightborne-treasures" },
	[141175] = { name = "challengers-spoils" },
	[139137] = { name = "hags-belongings" },
	[141171] = { name = "cache-of-the-black-dragon" },
	[141995] = { name = "unclaimed-black-market-container" },
	[147519] = { name = "cache-of-fel-treasures" },
	[139341] = { name = "winter-veil-gift" },
	[141350] = { name = "kirin-tor-chest" },
	[149752] = { name = "keg-shaped-treasure-box" },
	[153116] = { name = "wyrmtongue-cache-of-herbs" },
	[153118] = { name = "wyrmtongue-cache-of-shiny-things" },
	[153504] = { name = "cache-of-antoran-treasures" },
	[137590] = { name = "pile-of-silk" },
	[142115] = { name = "crate-of-ogre-archaeology-fragments" },
	[144378] = { name = "gorestained-brawlers-purse" },
	[153202] = { name = "argunite-cluster" },
	[137562] = { name = "valarjar-cache" },
	[146317] = { name = "mr-smites-supplies" },
	[153501] = { name = "cache-of-antoran-treasures" },
	[153502] = { name = "cache-of-antoran-treasures" },
	[153503] = { name = "cache-of-antoran-treasures" },
	[123961] = { name = "recipe-list-leysmithing" },
	[135545] = { name = "savage-crate-of-battlefield-goods" },
	[136383] = { name = "ravencrest-cache" },
	[139416] = { name = "bloated-sewersucker" },
	[141172] = { name = "unmarked-suramar-vault-crate" },
	[147520] = { name = "cache-of-fel-treasures" },
	[153248] = { name = "lights-fortune" },
	[136359] = { name = "shamans-pouch" },
	[139382] = { name = "keystone-container" },
	[142350] = { name = "challengers-purse" },
	[144373] = { name = "claw-marked-brawlers-purse" },
	[144374] = { name = "groovy-brawlers-purse" },
	[147907] = { name = "heart-shaped-carton" },
	[151552] = { name = "time-lost-keepsake-box" },
	[137600] = { name = "pile-of-pants" },
	[138470] = { name = "silver-strongbox" },
	[138474] = { name = "champions-strongbox" },
	[138475] = { name = "silver-strongbox" },
	[138476] = { name = "bronze-strongbox" },
	[141181] = { name = "cache-of-the-black-dragon" },
	[151264] = { name = "clunky-brawlers-purse" },
	[154991] = { name = "brawlers-footlocker" },
	[139777] = { name = "strange-crate" },
	[140148] = { name = "cache-of-nightborne-treasures" },
	[140222] = { name = "harvested-goods" },
	[142381] = { name = "oath-of-fealty" },
	[147521] = { name = "cache-of-fel-treasures" },
	[151221] = { name = "gooey-brawlers-purse" },
	[154992] = { name = "brawlers-footlocker" },
	[126947] = { name = "nalryssas-spare-mining-supplies" },
	[135542] = { name = "icy-crate-of-battlefield-goods" },
	[137593] = { name = "pile-of-herbs" },
	[139381] = { name = "keystone-container" },
	[140997] = { name = "alliance-strongbox" },
	[140998] = { name = "horde-strongbox" },
	[141168] = { name = "despoiled-keepers-cache" },
	[141344] = { name = "tribute-of-the-broken-isles" },
	[142342] = { name = "glittering-pack" },
	[151345] = { name = "gently-shaken-gift" },
	[151557] = { name = "champions-strongbox" },
	[156682] = { name = "otherworldly-satchel-of-helpful-goods" },
	[156689] = { name = "scorched-satchel-of-helpful-goods" },
	[135541] = { name = "crusaders-crate-of-battlefield-goods" },
	[137594] = { name = "pile-of-gems" },
	[146799] = { name = "building-contribution-reward-item-nyi" },
	[151224] = { name = "bitten-brawlers-purse" },
	[153119] = { name = "wyrmtongue-cache-of-finery" },
	[153120] = { name = "wyrmtongue-cache-of-minerals" },
	[156707] = { name = "brets-satchel-of-helpful-goods" },
	[123963] = { name = "recipe-list-masterwork-demonsteel" },
	[135544] = { name = "tranquil-crate-of-helpful-goods-reuse-me" },
	[135546] = { name = "fel-touched-crate-of-battlefield-goods" },
	[137592] = { name = "pile-of-ore" },
	[138469] = { name = "champions-strongbox" },
	[138471] = { name = "bronze-strongbox" },
	[139484] = { name = "cache-of-nightmarish-treasures" },
	[139488] = { name = "cache-of-nightmarish-treasures" },
	[140221] = { name = "found-sack-of-gems" },
	[141158] = { name = "despoiled-keepers-cache" },
	[141163] = { name = "bag-of-confiscated-materials" },
	[141165] = { name = "challengers-spoils" },
	[141180] = { name = "seaweed-encrusted-satchel" },
	[142023] = { name = "adventurers-footlocker" },
	[142114] = { name = "crate-of-draenor-clans-archaeology-fragments" },
	[144379] = { name = "murderous-brawlers-purse" },
	[151229] = { name = "brawlers-music-box" },
	[151553] = { name = "time-lost-keepsake-box" },
	[156688] = { name = "icy-satchel-of-helpful-goods" },
	[123962] = { name = "recipe-list-hardened-leystone" },
	[130186] = { name = "intern-items-bji" },
	[133549] = { name = "muck-covered-shoes" },
	[133804] = { name = "rare-bag-of-loot" },
	[138098] = { name = "iron-bound-crate-of-battlefield-goods" },
	[138472] = { name = "steel-strongbox" },
	[138473] = { name = "steel-strongbox" },
	[139343] = { name = "gently-shaken-gift" },
	[139467] = { name = "satchel-of-spoils" },
	[141156] = { name = "haunted-ravencrest-keepsake" },
	[141159] = { name = "watertight-salvage-bag" },
	[141166] = { name = "haunted-ravencrest-keepsake" },
	[141167] = { name = "nightborne-rucksack" },
	[141170] = { name = "seaweed-encrusted-satchel" },
	[141173] = { name = "bag-of-confiscated-materials" },
	[141182] = { name = "unmarked-suramar-vault-crate" },
	[141184] = { name = "violet-hold-contraband-locker" },
	[146801] = { name = "building-contribution-reward-item-nyi" },
	[147876] = { name = "anniversary-gift" },
	[151225] = { name = "wet-brawlers-purse" },
	[151230] = { name = "croc-skin-brawlers-purse" },
	[151231] = { name = "brawlers-egg" },
	[151350] = { name = "winter-veil-gift" },
	[151550] = { name = "time-lost-keepsake-box" },
	[151551] = { name = "time-lost-keepsake-box" },
	[133803] = { name = "common-bag-of-loot" },
	[135543] = { name = "rivals-crate-of-battlefield-goods" },
	[137414] = { name = "pet-tournament-purse" },
	[137591] = { name = "pile-of-skins" },
	[139284] = { name = "anniversary-gift" },
	[139383] = { name = "keystone-container" },
	[140152] = { name = "cache-of-nightborne-treasures" },
	[141155] = { name = "challengers-spoils" },
	[141157] = { name = "nightborne-rucksack" },
	[141162] = { name = "unmarked-suramar-vault-crate" },
	[141164] = { name = "violet-hold-contraband-locker" },
	[141174] = { name = "violet-hold-contraband-locker" },
	[141176] = { name = "haunted-ravencrest-keepsake" },
	[141177] = { name = "nightborne-rucksack" },
	[141178] = { name = "despoiled-keepers-cache" },
	[141183] = { name = "bag-of-confiscated-materials" },
	[144291] = { name = "tadpole-gift" },
	[144375] = { name = "feathered-brawlers-purse" },
	[146800] = { name = "building-contribution-reward-item-nyi" },
	[151223] = { name = "booming-brawlers-purse" },
	[151233] = { name = "blingin-brawlers-bag" },
	[151235] = { name = "filthy-brawlers-purse" },
	[151238] = { name = "dark-brawlers-purse" },
	[139486] = { name = "cache-of-nightmarish-treasures" },
	[139487] = { name = "cache-of-nightmarish-treasures" },
	[140154] = { name = "cache-of-nightborne-treasures" },
	[140220] = { name = "scavenged-cloth" },
	[141160] = { name = "seaweed-encrusted-satchel" },
	[141161] = { name = "cache-of-the-black-dragon" },
	[141169] = { name = "watertight-salvage-bag" },
	[141179] = { name = "watertight-salvage-bag" },
	[146948] = { name = "tribute-of-the-broken-isles" },
	[151222] = { name = "leather-brawlers-purse" },
	[151232] = { name = "brawlers-package" },
	[151558] = { name = "champions-strongbox" },
	[153122] = { name = "wyrmtongue-cache-of-magic" },
	[173950] = { name = "crestfall-salvage" },
	[173949] = { name = "dread-chain-salvage" },
	[173989] = { name = "jorundall-salvage" },
	[173991] = { name = "rotting-mire-salvage" },
	[173994] = { name = "ungol-ruins-salvage" },
	[173988] = { name = "havenswood-salvage" },
	[173995] = { name = "venture-co-salvage" },
	[173993] = { name = "snowblossom-salvage" },
	[173992] = { name = "skittering-hollow-salvage" },
	[169430] = { name = "unclaimed-black-market-container" },
	[170065] = { name = "re-procedurally-generated-punchcard" },
	[169113] = { name = "advanced-adventurer-augmentation" },
	[173987] = { name = "elemental-salvage" },
	[168057] = { name = "rustbolt-requisitions" },
	[170188] = { name = "barnacled-bag-of-goods" },
	[168395] = { name = "irradiated-box-of-assorted-parts" },
	[173996] = { name = "verdant-wilds-salvage" },
	[170190] = { name = "mardivas-bag-of-containing" },
	[173990] = { name = "molten-cay-salvage" },
	[173997] = { name = "whispering-reef-salvage" },
	[169848] = { name = "azeroth-mini-pack-bondos-yard" },
	[166290] = { name = "voldunai-supplies" },
	[170185] = { name = "intact-naga-skeleton" },
	[160324] = { name = "grumbling-sac" },
	[173372] = { name = "cache-of-the-black-empire" },
	[169838] = { name = "azeroth-mini-starter-pack" },
	[170195] = { name = "voidcasters-supply-bag" },
	[170061] = { name = "rustbolt-supplies" },
	[169481] = { name = "benthic-cloak" },
	[163613] = { name = "sack-of-plunder" },
	[168394] = { name = "box-of-assorted-parts" },
	[169137] = { name = "extraordinary-adventurer-augmentation" },
	[169471] = { name = "cogfrenzys-construction-toolkit" },
	[171305] = { name = "salvaged-cache-of-goods" },
	[174484] = { name = "uldum-accord-supplies" },
	[169939] = { name = "ankoan-supplies" },
	[166298] = { name = "champions-of-azeroth-supplies" },
	[174483] = { name = "rajani-supplies" },
	[174960] = { name = "cache-of-the-aqir-swarm" },
	[164263] = { name = "steel-strongbox" },
	[164625] = { name = "crate-of-demon-archaeology-fragments" },
	[166297] = { name = "order-of-embers-supplies" },
	[170489] = { name = "mardivass-handmade-handbag" },
	[174961] = { name = "cache-of-the-amathet" },
	[169475] = { name = "barnacled-lockbox", lockbox = true },
	[173395] = { name = "black-empire-plate-gloves" },
	[165717] = { name = "steel-strongbox" },
	[166245] = { name = "tortollan-seekers-supplies" },
	[164931] = { name = "rumblers-purse" },
	[168162] = { name = "chronal-cache-of-cloth" },
	[168833] = { name = "experimental-adventurer-augmentation" },
	[169479] = { name = "benthic-helm" },
	[160831] = { name = "cracking-cobra-egg" },
	[166295] = { name = "proudmoore-admiralty-supplies" },
	[169482] = { name = "benthic-leggings" },
	[163611] = { name = "seafarers-coin-pouch" },
	[165851] = { name = "bag-of-anchors" },
	[166294] = { name = "storms-wake-supplies" },
	[169480] = { name = "benthic-chestguard" },
	[170473] = { name = "jingling-sack" },
	[174529] = { name = "crate-of-coalescing-visions" },
	[163148] = { name = "luxurious-hat-box" },
	[166292] = { name = "zandalari-empire-supplies" },
	[166300] = { name = "7th-legion-supplies" },
	[153574] = { name = "plain-hat-box" },
	[165732] = { name = "cache-of-dazaralor-treasures" },
	[165839] = { name = "unopened-gnomeregan-supply-box" },
	[168124] = { name = "cache-of-war-resources" },
	[169920] = { name = "neris-spare-supplies" },
	[169940] = { name = "unshackled-supplies" },
	[170074] = { name = "dented-ashmaul-strongbox" },
	[173411] = { name = "black-empire-leather-leggings" },
	[173420] = { name = "black-empire-cloth-belt" },
	[164262] = { name = "steel-strongbox" },
	[169484] = { name = "benthic-spaulders" },
	[169666] = { name = "unopened-stratholme-supply-crate" },
	[160268] = { name = "bag-of-armor-dnt" },
	[163142] = { name = "ironbound-hat-box" },
	[163146] = { name = "fancy-hat-box" },
	[165713] = { name = "bronze-strongbox" },
	[169133] = { name = "crystallized-jelly" },
	[172021] = { name = "marks-of-sanctification-purse" },
	[173407] = { name = "black-empire-leather-chestpiece" },
	[173425] = { name = "black-empire-mail-bracers" },
	[174039] = { name = "crate-of-cursed-mementos" },
	[174182] = { name = "bag-of-ore" },
	[174632] = { name = "relinquished-azerite-spaulders" },
	[164252] = { name = "champions-strongbox" },
	[164257] = { name = "cache-of-uldir-treasures" },
	[164259] = { name = "cache-of-uldir-treasures" },
	[164264] = { name = "steel-strongbox" },
	[164627] = { name = "crate-of-highmountain-tauren-archaeology-fragments" },
	[165715] = { name = "silver-strongbox" },
	[165716] = { name = "bronze-strongbox" },
	[166515] = { name = "relinquished-azerite-chestpiece" },
	[166530] = { name = "relinquished-azerite-spaulders" },
	[166531] = { name = "relinquished-azerite-spaulders" },
	[166532] = { name = "relinquished-azerite-helm" },
	[168204] = { name = "small-metal-box" },
	[169336] = { name = "relinquished-azerite-spaulders" },
	[169340] = { name = "relinquished-azerite-helm" },
	[173400] = { name = "black-empire-mail-chestpiece" },
	[173402] = { name = "black-empire-mail-gloves" },
	[173408] = { name = "black-empire-leather-boots" },
	[173410] = { name = "black-empire-leather-helm" },
	[173413] = { name = "black-empire-leather-belt" },
	[173415] = { name = "black-empire-cloth-boots" },
	[173423] = { name = "black-empire-cloth-bracers" },
	[174181] = { name = "bag-of-herbs" },
	[174638] = { name = "relinquished-azerite-chestpiece" },
	[161084] = { name = "recovered-stormsong-produce" },
	[162644] = { name = "winter-veil-gift" },
	[163141] = { name = "spooky-hat-box" },
	[164260] = { name = "cache-of-uldir-treasures" },
	[166508] = { name = "relinquished-azerite-spaulders" },
	[166509] = { name = "relinquished-azerite-spaulders" },
	[166513] = { name = "relinquished-azerite-chestpiece" },
	[166529] = { name = "relinquished-azerite-spaulders" },
	[166533] = { name = "relinquished-azerite-helm" },
	[166534] = { name = "relinquished-azerite-helm" },
	[166535] = { name = "relinquished-azerite-chestpiece" },
	[168488] = { name = "seafarers-lost-coin-pouch" },
	[169335] = { name = "relinquished-azerite-spaulders" },
	[169339] = { name = "relinquished-azerite-helm" },
	[169342] = { name = "relinquished-azerite-chestpiece" },
	[169485] = { name = "benthic-gauntlets" },
	[169904] = { name = "ankoan-commendation-crate" },
	[173399] = { name = "black-empire-plate-belt" },
	[173401] = { name = "black-empire-mail-boots" },
	[173403] = { name = "black-empire-mail-helm" },
	[173404] = { name = "black-empire-mail-leggings" },
	[173405] = { name = "black-empire-mail-spaulders" },
	[173412] = { name = "black-empire-leather-spaulders" },
	[173414] = { name = "black-empire-cloth-robes" },
	[173416] = { name = "black-empire-cloth-gloves" },
	[173983] = { name = "vulpera-satchel-of-salvage" },
	[174195] = { name = "bag-of-gems" },
	[174631] = { name = "relinquished-azerite-spaulders" },
	[160485] = { name = "an-unforgettable-luncheon" },
	[163612] = { name = "wayfinders-satchel" },
	[165711] = { name = "gold-strongbox" },
	[166282] = { name = "talanjis-expedition-supplies" },
	[169483] = { name = "benthic-treads" },
	[169903] = { name = "nazjatar-survival-pack" },
	[173393] = { name = "black-empire-plate-chestpiece" },
	[173406] = { name = "black-empire-mail-belt" },
	[173409] = { name = "black-empire-leather-gloves" },
	[173422] = { name = "black-empire-plate-bracers" },
	[173424] = { name = "black-empire-leather-bracers" },
	[174637] = { name = "relinquished-azerite-chestpiece" },
	[159783] = { name = "kanes-coin-purse" },
	[164938] = { name = "gg-gearbox" },
	[165718] = { name = "steel-strongbox" },
	[165729] = { name = "cache-of-dazaralor-treasures" },
	[165731] = { name = "cache-of-dazaralor-treasures" },
	[169477] = { name = "benthic-girdle" },
	[169914] = { name = "neris-smart-supplies" },
	[169915] = { name = "poens-stashed-supplies" },
	[170539] = { name = "plundered-supplies" },
	[171988] = { name = "adventurers-footlocker" },
	[172014] = { name = "anniversary-gift" },
	[173394] = { name = "black-empire-plate-boots" },
	[173398] = { name = "black-empire-plate-spaulders" },
	[173419] = { name = "black-empire-cloth-spaulders" },
	[174184] = { name = "bag-of-cloth" },
	[152580] = { name = "pile-of-cloth" },
	[160578] = { name = "anglin-arts-bag-o-fish" },
	[163734] = { name = "bulging-coin-purse" },
	[163825] = { name = "plundered-supplies" },
	[165714] = { name = "gold-strongbox" },
	[165730] = { name = "cache-of-dazaralor-treasures" },
	[166511] = { name = "relinquished-azerite-helm" },
	[166514] = { name = "relinquished-azerite-chestpiece" },
	[166741] = { name = "nomis-grocery-tote" },
	[169338] = { name = "relinquished-azerite-helm" },
	[169343] = { name = "relinquished-azerite-chestpiece" },
	[169478] = { name = "benthic-bracers" },
	[169905] = { name = "faintly-glowing-supplies" },
	[169908] = { name = "cleverly-concealed-supplies" },
	[173734] = { name = "mysterious-crate" },
	[152581] = { name = "bag-of-jewels" },
	[152582] = { name = "stack-of-skins" },
	[152868] = { name = "anglin-arts-mudfish-bait" },
	[160514] = { name = "maokkas-box" },
	[161083] = { name = "satchel-of-plundered-jewels" },
	[162637] = { name = "anniversary-gift" },
	[164253] = { name = "steel-strongbox" },
	[164254] = { name = "steel-strongbox" },
	[164258] = { name = "cache-of-uldir-treasures" },
	[164939] = { name = "overstuffed-silkweave-purse" },
	[164940] = { name = "mysterious-satchel" },
	[166510] = { name = "relinquished-azerite-helm" },
	[169337] = { name = "relinquished-azerite-spaulders" },
	[169910] = { name = "vims-scavenged-supplies" },
	[169917] = { name = "mysterious-azshari-chest" },
	[170073] = { name = "dented-ashmaul-strongbox" },
	[172224] = { name = "winter-veil-gift" },
	[173396] = { name = "black-empire-plate-helm" },
	[173397] = { name = "black-empire-plate-leggings" },
	[174358] = { name = "unopened-blackrock-supply-crate" },
	[174630] = { name = "relinquished-azerite-spaulders" },
	[174634] = { name = "relinquished-azerite-helm" },
	[174635] = { name = "relinquished-azerite-helm" },
	[174636] = { name = "relinquished-azerite-chestpiece", lockbox = true },
	[174958] = { name = "cache-of-the-fallen-mogu" },
	[174959] = { name = "cache-of-the-mantid-swarm" },
	[152578] = { name = "sack-of-herbs" },
	[160054] = { name = "war-torn-satchel-of-cooperation" },
	[160439] = { name = "adventurers-footlocker" },
	[161878] = { name = "tiny-coin-purse" },
	[162974] = { name = "gently-shaken-gift" },
	[163826] = { name = "raiders-supply-cache" },
	[164251] = { name = "champions-strongbox" },
	[164261] = { name = "steel-strongbox" },
	[164626] = { name = "crate-of-highborne-archaeology-fragments" },
	[165712] = { name = "silver-strongbox" },
	[166505] = { name = "relinquished-azerite-spaulders" },
	[166536] = { name = "relinquished-azerite-chestpiece" },
	[167696] = { name = "build-a-computer-kit" },
	[169341] = { name = "relinquished-azerite-chestpiece" },
	[169909] = { name = "poens-neat-things" },
	[169911] = { name = "liberated-naga-cache" },
	[169916] = { name = "brew-soaked-supplies" },
	[169919] = { name = "unshackled-commendation-crate" },
	[169921] = { name = "spine-guarded-supplies" },
	[169922] = { name = "vims-gift-of-appreciation" },
	[172225] = { name = "gently-shaken-gift" },
	[173417] = { name = "black-empire-cloth-helm" },
	[173418] = { name = "black-empire-cloth-leggings" },
	[174183] = { name = "bag-of-leather" },
	[174194] = { name = "bag-of-enchanting" },
	[174633] = { name = "relinquished-azerite-helm" },
	[160322] = { name = "pile-of-ore" },
	[163059] = { name = "spoils-of-jani" },
	[163139] = { name = "carefully-wrapped-hat-box" },
	[163144] = { name = "striped-hat-box" },
	[163633] = { name = "captain-gulnakus-treasure" },
	[166512] = { name = "relinquished-azerite-helm" },
	[166537] = { name = "relinquished-azerite-chestpiece" },
	[168263] = { name = "mundane-recycling-requisition" },
	[174642] = { name = "corrupted-nyalotha-raid-item" },
	[184158] = { name = "oozing-necroray-egg" },
	[185834] = { name = "orboreal-distinguishment" },
	[184103] = { name = "cracked-blight-touched-egg" },
	[180533] = { name = "solenium-lockbox", lockbox = true },
	[187597] = { name = "broken-isles-fish-delivery" },
	[180532] = { name = "oxxein-lockbox", lockbox = true },
	[179311] = { name = "synvir-lockbox", lockbox = true },
	[180522] = { name = "phaedrum-lockbox", lockbox = true },
	[186161] = { name = "stygian-lockbox", lockbox = true },
	[187182] = { name = "hatching-corpsefly-egg" },
	[184444] = { name = "supplies-for-the-path" },
	[187600] = { name = "broken-isles-ore-delivery" },
	[187596] = { name = "broken-isles-meat-delivery" },
	[190382] = { name = "warped-pocket-dimension" },
	[180380] = { name = "lace-draperies" },
	[182114] = { name = "assorted-parts-and-things" },
	[184589] = { name = "bag-of-potions" },
	[184811] = { name = "artemedes-bounty" },
	[174652] = { name = "satchel-of-forgotten-heirlooms" },
	[175135] = { name = "atticuss-spare-supplies" },
	[183426] = { name = "stitched-satchel-of-fae-goods" },
	[187221] = { name = "soul-ash-cache" },
	[180386] = { name = "herbalists-pouch" },
	[183429] = { name = "stitched-satchel-of-venthyr-goods" },
	[184045] = { name = "martial-tithe-of-the-court-of-harvesters" },
	[184048] = { name = "weapon-satchel-of-the-wild-hunt" },
	[184584] = { name = "byron-test-callings-box" },
	[186971] = { name = "feeders-hand" },
	[187604] = { name = "broken-isles-enchantment-delivery" },
	[187659] = { name = "adventurers-footlocker" },
	[188796] = { name = "cypher-test-item" },
	[180355] = { name = "ornate-pyx" },
	[183835] = { name = "crate-of-zandalari-archaeology-fragments" },
	[183885] = { name = "sikas-spare-ore-pouch" },
	[184046] = { name = "undying-army-weapon-cache" },
	[185765] = { name = "shipment-of-heavy-callous-hide" },
	[189428] = { name = "92-pet-battle-playtest-bag-of-goodies" },
	[181780] = { name = "an-undelivered-tradesmans-shipment" },
	[184810] = { name = "plundered-supplies" },
	[181767] = { name = "small-coin-purse" },
	[181779] = { name = "a-wrapped-weapon" },
	[184627] = { name = "sacrificial-red-envelope" },
	[184812] = { name = "apolons-bounty" },
	[187503] = { name = "bundle-of-archived-research" },
	[187599] = { name = "broken-isles-herb-delivery" },
	[178529] = { name = "gently-shaken-gift" },
	[180379] = { name = "exquisitely-woven-rug" },
	[180442] = { name = "bag-of-sin-stones" },
	[180875] = { name = "carriage-cargo" },
	[185833] = { name = "shipment-of-lightless-silk" },
	[187222] = { name = "stygic-singularity" },
	[187817] = { name = "korthite-crystal-geode" },
	[188787] = { name = "locked-broker-luggage", lockbox = true },
	[178078] = { name = "reborn-spirit-cache" },
	[178528] = { name = "winter-veil-gift" },
	[180378] = { name = "forgemasters-crate" },
	[181739] = { name = "bag-of-soul-ash" },
	[181778] = { name = "sack-of-shinies" },
	[183424] = { name = "stitched-satchel-of-maldraxxi-goods" },
	[183428] = { name = "stitched-satchel-of-aspirant-goods" },
	[185832] = { name = "shipment-of-elethium-ore" },
	[186160] = { name = "locked-artifact-case", lockbox = true },
	[187502] = { name = "byron-test-relic-fragments-box-immediate" },
	[187520] = { name = "gently-shaken-gift" },
	[151060] = { name = "keystone-container" },
	[175095] = { name = "book-of-tickets" },
	[178965] = { name = "small-gardeners-satchel" },
	[178966] = { name = "gardeners-satchel" },
	[178967] = { name = "large-gardeners-satchel" },
	[179380] = { name = "redelev-purse" },
	[180128] = { name = "harvesters-elite-bounty-purse" },
	[182590] = { name = "vinewormed-coin-pouch" },
	[182591] = { name = "vinecovered-infused-rubies" },
	[183882] = { name = "collection-of-random-bits" },
	[186694] = { name = "shaded-bag-of-ore" },
	[187254] = { name = "arrangement-of-anima" },
	[187494] = { name = "byron-test-relic-fragments-box" },
	[187561] = { name = "winter-veil-gift" },
	[187598] = { name = "broken-isles-cloth-delivery" },
	[187605] = { name = "broken-isles-gem-delivery" },
	[189452] = { name = "92-mount-crafting-bag-of-goodies" },
	[178513] = { name = "anniversary-gift" },
	[178968] = { name = "weekly-gardeners-satchel" },
	[178969] = { name = "test-container" },
	[180085] = { name = "kyrian-keepsake" },
	[183834] = { name = "crate-of-drust-archaeology-fragments" },
	[183884] = { name = "pocketful-of-assorted-nuggets" },
	[183886] = { name = "sikas-rare-ore-pouch" },
	[184047] = { name = "ascended-chest-of-arms" },
	[185906] = { name = "anniversary-gift" },
	[187601] = { name = "broken-isles-leather-delivery" },
-- 11.0 Launch updates
	[206006] = { name = "earth-warders-thanks" },
	[205991] = { name = "shiny-token-of-gratitude" },
	[147729] = { name = "netherchunk" },
	[228741] = { name = "lamplighter-supply-satchel" },
	[228361] = { name = "seasoned-adventurers-cache" },
	[224721] = { name = "wax-sealed-box" },
	[227792] = { name = "everyday-cache" },
	[228916] = { name = "algari-tailors-satchel" },
	[227713] = { name = "artisans-consortium-payout" },
	[224722] = { name = "waxy-bundle-of-resonance-crystals" },
	[228917] = { name = "satchel-of-ore" },
	[224726] = { name = "waxy-box-of-rocks" },
	[224724] = { name = "waxy-bundle-of-dust" },
	[228933] = { name = "algari-leatherworkers-satchel" },
	[228220] = { name = "waxy-bundle" },
	[228919] = { name = "satchel-of-algari-herbs" },
	[224725] = { name = "waxy-bundle-of-herbs" },
	[228931] = { name = "algari-enchanters-satchel" },
	[228932] = { name = "algari-engineers-satchel" },
	[224723] = { name = "waxy-bundle-of-leather" },
	[224650] = { name = "wax-sealed-pouch" },
	[228612] = { name = "artisans-consortium-payout" },
	[228611] = { name = "artisans-consortium-payout" },
	[227676] = { name = "satchel-of-surplus-ore" },
	[228610] = { name = "artisans-consortium-payout" },
	[228959] = { name = "pile-of-unidentified-meat" },
	[213781] = { name = "algari-amber-prism" },
	[227675] = { name = "satchel-of-surplus-herbs" },
	[213780] = { name = "algari-amber-prism" },
	[213784] = { name = "algari-emerald-prism" },
	[228337] = { name = "satchel-of-surplus-dust" },
	[213793] = { name = "algari-sapphire-prism" },
	[229005] = { name = "cache-of-earthen-treasures" },
	[213783] = { name = "algari-emerald-prism" },
	[213790] = { name = "algari-onyx-prism" },
	[227681] = { name = "satchel-of-surplus-leather" },
	[227682] = { name = "satchel-of-surplus-cloth" },
	[213792] = { name = "algari-sapphire-prism" },
	[227677] = { name = "satchel-of-enchanting-surplus" },
	[229129] = { name = "cache-of-delvers-spoils" },
	[229006] = { name = "cache-of-earthen-treasures" },
	[229354] = { name = "algari-adventurers-cache" },
	[213789] = { name = "algari-onyx-prism" },
	[229130] = { name = "cache-of-delvers-spoils" },
	[227680] = { name = "satchel-of-jewelcrafting-surplus" },
	[213786] = { name = "algari-ruby-prism" },
	[227679] = { name = "satchel-of-inscription-surplus" },
	[213787] = { name = "algari-ruby-prism" },
	[227678] = { name = "satchel-of-engineering-surplus" },
	[228920] = { name = "satchel-of-chitin" },
	[228918] = { name = "satchel-of-leather" },
	[226333] = { name = "dornogal-chisel" },
	[226301] = { name = "dornogal-gardening-scythe" },
	[226265] = { name = "earthen-iron-powder" },
	[226324] = { name = "earthen-lacing-tools" },
	[226350] = { name = "runed-earthen-pins" },
	[226304] = { name = "arathi-garden-trowel" },
	[226348] = { name = "dornogal-seam-ripper" },
	[226305] = { name = "arathi-herb-pruner" },
	[226339] = { name = "nerubian-mining-supplies" },
	[226267] = { name = "reinforced-beaker" },
	[224584] = { name = "erosion-polished-slate" },
	[226332] = { name = "earthen-miners-gavel" },
	[226303] = { name = "fungarian-slicers-knife" },
	[226300] = { name = "ancient-flower" },
	[226338] = { name = "heavy-spider-crusher" },
	[226306] = { name = "web-entangled-lotus" },
	[226335] = { name = "regenerating-ore" },
	[226340] = { name = "dornogal-carving-knife" },
	[226334] = { name = "earthen-excavators-shovel" },
	[226337] = { name = "devout-archaeologists-excavator" },
	[224055] = { name = "a-rocky-start" },
	[226302] = { name = "earthen-digging-fork" },
	[226336] = { name = "arathi-precision-drill" },
	[219192] = { name = "comprehensibly-organized-ideas" },
	[226307] = { name = "tunnelers-shovel" },
	[226285] = { name = "silver-dornogal-rod" },
	[226268] = { name = "engraved-stirring-rod" },
	[224024] = { name = "theories-of-bodily-transmutation" },
	[226266] = { name = "chapter-8" },
	[226277] = { name = "metal-dornogal-frame" },
	[226349] = { name = "dornogal-hammer" },
	[226289] = { name = "earthen-tape-measure" },
	[226272] = { name = "enchanted-arathi-scroll" },
	[224050] = { name = "dark-apothecarys-vial" },
	[226322] = { name = "web-sparkles-pretty-and-powerful" },
	[226271] = { name = "ritual-casters-crystal" },
	[226269] = { name = "nerubian-mixing-salts" },
	[226351] = { name = "chemists-purified-water" },
	[226355] = { name = "earthen-stitchers-snips" },
	[224265] = { name = "nerubians-pincushion" },
	[226284] = { name = "deepgrove-rose" },
	[226290] = { name = "grinded-earthen-gem" },
	[224023] = { name = "book-of-dark-magic" },
	[226270] = { name = "herbal-embalming-techniques" },
	[224052] = { name = "sanctified-mortar-and-pestle" },
	[224036] = { name = "clocks" },
	[226293] = { name = "gears" },
	[226278] = { name = "sprockets" },
	[226352] = { name = "and-legs" },
	[226354] = { name = "and-thats-a-web-wrap" },
	[226287] = { name = "dornogal-spectacles" },
	[226276] = { name = "ringing-hammer-vise" },
	[226286] = { name = "arathi-rotary-cutter" },
	[224583] = { name = "nerubian-quilt" },
	[226347] = { name = "animated-enchanting-dust" },
	[226341] = { name = "ancient-earthen-anvil" },
	[226317] = { name = "soot-coated-orb" },
	[226353] = { name = "slab-of-slate" },
	[226288] = { name = "carapace-shiner" },
	[226282] = { name = "earthen-workers-beams" },
	[226291] = { name = "earthen-gem-pliers" },
	[226346] = { name = "royal-outfitters-protractor" },
	[226279] = { name = "essence-of-holy-fire" },
	[226345] = { name = "nerubian-smiths-kit" },
	[226326] = { name = "void-shard" },
	[224038] = { name = "nerubians-slicking-iron" },
	[226283] = { name = "earthen-chisels" },
	[226343] = { name = "arathi-craftsmans-spokeshave" },
	[226297] = { name = "underground-stropping-compound" },
	[226342] = { name = "smithing-after-saronite" },
	[226295] = { name = "spiderlings-wire-brush" },
	[224007] = { name = "fungarians-rich-tannin" },
	[226308] = { name = "arathi-safety-gloves" },
	[224780] = { name = "artisans-drawing-knife" },
	[226316] = { name = "earthen-construct-blueprints" },
	[226319] = { name = "uses-for-leftover-husks-how-to-take-them-apart" },
	[224056] = { name = "dornogal-scribes-quill" },
	[226281] = { name = "toughened-tempest-pelt" },
	[226292] = { name = "gentle-jewel-hammer" },
	[226325] = { name = "jewelers-delicate-drill" },
	[226280] = { name = "uses-for-leftover-husks-after-you-take-them-apart" },
	[226344] = { name = "radiant-tongs" },
	[226330] = { name = "rock-engineers-wrench" },
	[224818] = { name = "dornogal-craftsmans-flat-knife" },
	[226299] = { name = "holy-flame-forge" },
	[226327] = { name = "arathi-tanning-agent" },
	[224781] = { name = "nerubian-tanning-mallet" },
	[226318] = { name = "algari-miners-notes" },
	[224835] = { name = "emptied-venom-canister" },
	[226311] = { name = "earthen-awl" },
	[226298] = { name = "abyssal-fur" },
	[226323] = { name = "carved-stone-file" },
	[224054] = { name = "deepgrove-roots" },
	[226321] = { name = "blue-earthen-pigment" },
	[226309] = { name = "puppeted-mechanical-spider" },
	[225222] = { name = "nerubian-bench-blocks" },
	[226329] = { name = "emergent-crystals-of-the-surface-dwellers" },
	[226331] = { name = "librarians-magnifiers" },
	[226310] = { name = "historians-dip-pen" },
	[224264] = { name = "stone-leather-swatch" },
	[226294] = { name = "arathi-leather-burnisher" },
	[226320] = { name = "curved-nerubian-skinning-knife" },
	[224782] = { name = "runic-scroll" },
	[224053] = { name = "deepgrove-petal" },
	[226328] = { name = "inert-mining-bomb" },
	[226296] = { name = "arathi-sizing-gauges" },
	[224817] = { name = "razor-talon" },
	[226313] = { name = "eight-views-on-defense-against-hostile-runes" },
	[226314] = { name = "arathi-beveler-set" },
	[226315] = { name = "holy-firework-dud" },
	[226312] = { name = "algari-herbalists-notes" },
	[224651] = { name = "calligraphers-chiseled-marker" },
	[227659] = { name = "nerubian-texts" },
	[227416] = { name = "venomancers-ink-well" },
	[227661] = { name = "informants-fountain-pen" },
	[224807] = { name = "machine-learned-mining-notes" },
	[225234] = { name = "fleeting-arcane-manifestation" },
	[225221] = { name = "faded-miners-notes" },
	[225223] = { name = "gleaming-telluric-crystal" },
	[225235] = { name = "algari-skinners-notes" },
	[227410] = { name = "alchemical-sediment" },
	[224656] = { name = "spool-of-webweave" },
	[224645] = { name = "sturdy-nerubian-carapace" },
	[225220] = { name = "deepstone-crucible" },
	[228779] = { name = "faded-tailors-diagrams" },
	[224648] = { name = "void-lit-herbalism-notes" },
	[227417] = { name = "jewel-etched-alchemy-notes" },
	[227415] = { name = "chitin-needle" },
	[224655] = { name = "algari-tailors-notebook" },
	[227409] = { name = "jewel-etched-tailoring-notes" },
	[224652] = { name = "faded-skinners-notes" },
	[228773] = { name = "faded-herbalists-notes" },
	[224657] = { name = "void-lit-jewelcrafting-notes" },
	[225233] = { name = "faded-alchemists-research" },
	[227427] = { name = "jewel-etched-enchanting-notes" },
	[227438] = { name = "algari-alchemists-notebook" },
	[225225] = { name = "void-lit-skinning-notes" },
	[225232] = { name = "dense-bladestone" },
	[227667] = { name = "exceptional-miners-notes" },
	[227407] = { name = "pristine-miners-notes" },
	[224653] = { name = "deepstone-fragment" },
	[225231] = { name = "coreway-billet" },
	[224647] = { name = "algari-enchanters-folio" },
	[225228] = { name = "faded-blacksmiths-diagrams" },
	[228738] = { name = "machine-learned-engineering-notes" },
	[228739] = { name = "powdered-fulgurance" },
	[227413] = { name = "jewel-etched-blacksmithing-notes" },
	[225230] = { name = "rust-locked-mechanism" },
	[228774] = { name = "flicker-of-tailoring-knowledge" },
	[227412] = { name = "glimmer-of-tailoring-knowledge" },
	[225224] = { name = "faded-jewelers-illustrations" },
	[225227] = { name = "crystalline-repository" },
	[227432] = { name = "algari-blacksmiths-journal" },
	[227437] = { name = "faded-engineers-scribblings" },
	[224658] = { name = "diaphanous-gem-shards" },
	[225226] = { name = "wax-sealed-records" },
	[228725] = { name = "pristine-tailors-diagrams" },
	[227421] = { name = "pristine-herbalists-notes" },
	[227426] = { name = "void-lit-leatherworking-notes" },
	[225229] = { name = "striated-inkstone" },
	[227431] = { name = "glimmer-of-alchemy-knowledge" },
	[228777] = { name = "exceptional-tailors-diagrams" },
	[227411] = { name = "exceptional-herbalists-notes" },
	[227423] = { name = "earthen-induction-coil" },
	[228778] = { name = "pristine-alchemists-research" },
	[227420] = { name = "algari-jewelcrafters-notebook" },
	[228727] = { name = "faded-enchanters-research" },
	[224654] = { name = "exceptional-engineers-scribblings" },
	[227422] = { name = "algari-leatherworkers-journal" },
	[228726] = { name = "exceptional-alchemists-research" },
	[227418] = { name = "glimmer-of-blacksmithing-knowledge" },
	[228724] = { name = "machine-learned-inscription-notes" },
	[227414] = { name = "exceptional-enchanters-research" },
	[227428] = { name = "flicker-of-blacksmithing-knowledge" },
	[227439] = { name = "exceptional-blacksmiths-diagrams" },
	[227433] = { name = "flicker-of-alchemy-knowledge" },
	[228775] = { name = "faded-leatherworkers-diagrams" },
	[228728] = { name = "exceptional-skinners-notes" },
	[227434] = { name = "pristine-skinners-notes" },
	[227424] = { name = "pristine-enchanters-research" },
	[228729] = { name = "algari-engineers-notepad" },
	[227435] = { name = "flicker-of-enchanting-knowledge" },
	[228730] = { name = "pristine-engineers-scribblings" },
	[227429] = { name = "exceptional-jewelers-illustrations" },
	[228737] = { name = "glimmer-of-enchanting-knowledge" },
	[228736] = { name = "pristine-jewelers-illustrations" },
	[228731] = { name = "flicker-of-engineering-knowledge" },
	[228735] = { name = "pristine-blacksmiths-diagrams" },
	[228734] = { name = "glimmer-of-leatherworking-knowledge" },
	[227436] = { name = "flicker-of-leatherworking-knowledge" },
	[227425] = { name = "glimmer-of-engineering-knowledge" },
	[228776] = { name = "glimmer-of-jewelcrafting-knowledge" },
	[224838] = { name = "flicker-of-jewelcrafting-knowledge" },
	[227408] = { name = "pristine-leatherworkers-diagrams" },
	[228733] = { name = "exceptional-leatherworkers-diagrams" },
	[228732] = { name = "algari-scribes-journal" },
	[227430] = { name = "null-sliver" },
	[227419] = { name = "faded-scribes-runic-drawings" },
	[227662] = { name = "glimmer-of-inscription-knowledge" },
	[221268] = { name = "pouch-of-weathered-harbinger-crests" },
	[221373] = { name = "satchel-of-carved-harbinger-crests" },
	[221375] = { name = "pack-of-runed-harbinger-crests" },
	[220767] = { name = "triumphant-satchel-of-carved-harbinger-crests" },
	[220773] = { name = "celebratory-pack-of-runed-harbinger-crests" },
	[220776] = { name = "glorious-cluster-of-gilded-harbinger-crests" },
	[226257] = { name = "delvers-pouch-of-valorstones" },
	[220148] = { name = "pale-huskfish" },
	[225249] = { name = "rattling-bag-o-gold" },
	[227668] = { name = "delvers-bounty-t1" },
	[227778] = { name = "delvers-bounty-t2" },
	[227779] = { name = "delvers-bounty-t3" },
	[227780] = { name = "delvers-bounty-t4" },
	[227781] = { name = "delvers-bounty-t5" },
	[227782] = { name = "delvers-bounty-t6" },
	[227783] = { name = "delvers-bounty-t7" },
	[227784] = { name = "delvers-bounty-t8" },
-- 11.0.5 Items
	[229355] = { name = "chromies-premium-goodie-bag" },
	[233014] = { name = "bronze-celebration-cache-of-treasures" },
	[232877] = { name = "timely-goodie-bag" },
	[229359] = { name = "chromies-goodie-bag" },
	[226101] = { name = "chromies-tour-goodie-bag" },
	[226102] = { name = "chromies-tour-goodie-bag-max" },
	[232602] = { name = "forged-gladiators-coin-pouch" },
	[232598] = { name = "bag-of-timewarped-badges" },
	[234413] = { name = "satchel-of-exotic-mysteries" },
	[232473] = { name = "cache-of-dark-iron-treasures-lfr" },
	[232471] = { name = "cache-of-dark-iron-treasures-normal" },
	[232472] = { name = "cache-of-dark-iron-treasures-heroic" },
	[223619] = { name = "bronze-celebration-goodie-bag" },
	[223620] = { name = "20th-anniversary-cache-lfr" },
	[223621] = { name = "20th-anniversary-cache-normal" },
	[223622] = { name = "20th-anniversary-cache-heroic" },
	[228910] = { name = "cache-of-nerubian-treasures" },
	[232631] = { name = "wrapped-spear" },
-- 11.0.7 - 11.1.0 Items
	[234450] = { name = "pirates-booty" },
	[236877] = { name = "crystallized-essence-of-kajamite" },
	[232372] = { name = "crate-of-bygone-riches" },
	[235548] = { name = "earthen-landlubbers-cache" },
	[234425] = { name = "forgotten-folio" },
	[236758] = { name = "extravagant-tip-chest" },
	[234816] = { name = "overflowing-bag-of-iron" },
	[233557] = { name = "sifted-pile-of-scrap" },
	[233558] = { name = "scrap-scrubber-deluxe" },
	[235506] = { name = "box-of-timewarped-badges" },
	[237133] = { name = "venture-co-trove" },
	[239118] = { name = "pinnacle-cache" },
	[232382] = { name = "golden-valorstone" },
	[236756] = { name = "socially-expected-tip-chest" },
	[239120] = { name = "seasoned-adventurers-cache" },
	[237132] = { name = "bilgewater-trove" },
	[237135] = { name = "blackwater-trove" },
	[236757] = { name = "generous-tip-chest" },
	[232465] = { name = "darkfuse-trove" },
	[236953] = { name = "crimson-valorstone" },
	[239126] = { name = "radiant-cache" },
	[235265] = { name = "venture-cos-trove" },
	[232463] = { name = "overflowing-undermine-trove" },
	[235505] = { name = "satchel-of-timewarped-badges" },
	[236954] = { name = "void-touched-valorstone" },
	[237134] = { name = "steamwheedle-trove" },
	[234745] = { name = "bilgewaters-trove" },
	[235610] = { name = "seasoned-adventurers-cache" },
	[238207] = { name = "nannys-surge-dividends" },
	[239125] = { name = "the-weavers-gratuity" },
	[235258] = { name = "bilgewaters-trove" },
	[235639] = { name = "seasoned-adventurers-cache" },
	[239121] = { name = "awakened-mechanical-cache" },
	[235263] = { name = "steamwheedles-trove" },
	[234744] = { name = "blackwaters-trove" },
	[235264] = { name = "venture-cos-trove" },
	[239128] = { name = "theater-troupes-trove" },
	[232076] = { name = "adventurers-warbound-battlegear-drop" },
	[234746] = { name = "venture-cos-trove" },
	[238208] = { name = "nannys-surge-dividends" },
	[235260] = { name = "blackwaters-trove" },
	[235261] = { name = "blackwaters-trove" },
	[234743] = { name = "steamwheedles-trove" },
	[235259] = { name = "bilgewaters-trove" },
	[235262] = { name = "steamwheedles-trove" },
	[232615] = { name = "prized-gladiators-coin-pouch" },
	[232927] = { name = "dnt-small-surge-chest" },
	[232928] = { name = "dnt-medium-surge-chest" },
	[232929] = { name = "dnt-large-surge-chest" },
	[233276] = { name = "delvers-starter-kit" },
	[233281] = { name = "delvers-cosmetic-surprise-bag" },
	[234729] = { name = "cache-of-undermine-treasures" },
	[234731] = { name = "cache-of-undermine-treasures" },
	[235151] = { name = "distinguished-actors-chest" },
	[235558] = { name = "box-of-darkfuse-miscellany" },
	[239124] = { name = "the-viziers-capital" },
	[239122] = { name = "the-generals-war-chest" },
	[239440] = { name = "dastardly-prize-purse" },
	[231154] = { name = "celebratory-pack-of-runed-undermine-crests" },
	[231264] = { name = "glorious-cluster-of-gilded-undermine-crests" },
	[231153] = { name = "triumphant-satchel-of-carved-undermine-crests" },
	[231270] = { name = "pack-of-runed-undermine-crests" },
	[231267] = { name = "pouch-of-weathered-undermine-crests" },
	[231269] = { name = "satchel-of-carved-undermine-crests" },
	[235054] = { name = "pristine-mysterious-satchel" },
	[239546] = { name = "confiscated-cultists-bag" },
	[235052] = { name = "weathered-mysterious-satchel" },
	[236944] = { name = "weathered-mysterious-satchel" },
	[235911] = { name = "weathered-mysterious-satchel" },
	[239489] = { name = "radiant-officers-cache" },
	[237760] = { name = "arathi-champions-spoils" },
	[239004] = { name = "radiant-service-satchel" },
	[237743] = { name = "arathi-soldiers-coffer" },
	[237759] = { name = "arathi-clerics-chest" },
};


CriteriaStrategy = {}
CriteriaStrategy.__index = CriteriaStrategy
CriteriaContext = {}
CriteriaContext.__index = CriteriaContext

function CriteriaStrategy:new()
    local instance = {}
    setmetatable(instance, self)
    return instance
end

function CriteriaStrategy:shouldFilter(itemID, cacheDetails, count)
    error("This method should be overridden in the derived class")
end

function CriteriaContext:new(strategies)
    local instance = {
        strategies = strategies or {}
    }
    setmetatable(instance, CriteriaContext)
    return instance
end

function CriteriaContext:evaluateAll(itemID, cacheDetails, count)
    for _, strategy in ipairs(self.strategies) do
        if strategy:shouldFilter(itemID, cacheDetails, count) then
            return false
        end
    end
    return true
end

SkipRousingStrategy = CriteriaStrategy:new()
SkipRousingStrategy.__index = SkipRousingStrategy

function SkipRousingStrategy:new()
    local instance = setmetatable({}, self)
    return instance
end

function SkipRousingStrategy:shouldFilter(itemID, cacheDetails, count)
    return not ShiGuangPerDB.CanOpenerShowRousing and cacheDetails.isRousing
end

SkipRemixGemsStrategy = CriteriaStrategy:new()
SkipRemixGemsStrategy.__index = SkipRemixGemsStrategy

function SkipRemixGemsStrategy:new()
    local instance = setmetatable({}, self)
    return instance
end

function SkipRemixGemsStrategy:shouldFilter(itemID, cacheDetails, count)
    return not ShiGuangPerDB.CanOpenershowRemixGems and cacheDetails.mopRemixGem
end

SkipRemixEpicGemsStrategy = CriteriaStrategy:new()
SkipRemixEpicGemsStrategy.__index = SkipRemixEpicGemsStrategy

function SkipRemixEpicGemsStrategy:new()
    local instance = setmetatable({}, self)
    return instance
end

function SkipRemixEpicGemsStrategy:shouldFilter(itemID, cacheDetails, count)
    return not ShiGuangPerDB.CanOpenerRemixEpicGems and cacheDetails.mopRemixEpicGem
end

ThresholdStrategy = CriteriaStrategy:new()
ThresholdStrategy.__index = ThresholdStrategy

function ThresholdStrategy:new()
    local instance = setmetatable({}, self)
    return instance
end

function ThresholdStrategy:shouldFilter(itemID, cacheDetails, count)
    return (cacheDetails.threshold or 1) > count
end

LevelRequirementStrategy = CriteriaStrategy:new()
LevelRequirementStrategy.__index = LevelRequirementStrategy

function LevelRequirementStrategy:new()
    local instance = setmetatable({}, self)
    return instance
end

function LevelRequirementStrategy:shouldFilter(itemID, cacheDetails, count)
    local _,_,_,_,itemMinLevel = C_Item.GetItemInfo(itemID)
    if not itemMinLevel then
        -- If item info is still unavailable, return false
        return false
    end
    return not ShiGuangPerDB.showLevelRestrictedItems and itemMinLevel > UnitLevel("player")
end

-- Create instances of strategies
local skipRousingStrategy = SkipRousingStrategy:new()
local skipRemixGemsStrategy = SkipRemixGemsStrategy:new()
local skipRemixEpicGemsStrategy = SkipRemixEpicGemsStrategy:new()
local thresholdStrategy = ThresholdStrategy:new()
local levelRequirementStrategy = LevelRequirementStrategy:new()

-- Add strategies to context
local strategies = {
    skipRousingStrategy,
    thresholdStrategy
}
if CanOpenerGlobal.IsRemixActive then
    strategies.insert(2, skipRemixGemsStrategy)
    strategies.insert(3, skipRemixEpicGemsStrategy)
end

table.insert(strategies, levelRequirementStrategy)

CanOpenerGlobal.CriteriaContext = CriteriaContext:new(strategies)

-- Initialize the settings for the addon
function InitSettingsMenu()
    local category = Settings.RegisterVerticalLayoutCategory(CanOpenerLocal) --"CanOpener"

    do
        local variable = "CanOpenerShowRousing"
        local name = "Show Rousing Items"
        local tooltip = "If Checked, Rousing Elements will be shown."
        local defaultValue = true

        local function GetValue()
            return ShiGuangPerDB.CanOpenerShowRousing
        end

        local function SetValue(value)
            ShiGuangPerDB.CanOpenerShowRousing = value
        end

        local setting = Settings.RegisterProxySetting(
            category,
            "CanOpener_" .. variable,
            Settings.VarType.Boolean,
            name,
            defaultValue,
            GetValue,
            SetValue
        )

        Settings.CreateCheckbox(category, setting, tooltip)
    end

    do
        local variable = "showLevelRestrictedItems"
        local name = "Show Level-Restricted Items"
        local tooltip = "If Checked, items with a level requirement higher than your character's level will be shown."
        local defaultValue = true

        local function GetValue()
            return ShiGuangPerDB.showLevelRestrictedItems
        end

        local function SetValue(value)
            ShiGuangPerDB.showLevelRestrictedItems = value
        end

        local setting = Settings.RegisterProxySetting(
            category,
            "CanOpener_" .. variable,
            Settings.VarType.Boolean,
            name,
            defaultValue,
            GetValue,
            SetValue
        )

        Settings.CreateCheckbox(category, setting, tooltip)
    end

    if (CanOpenerGlobal.IsRemixActive) then
        do
            local variable = "CanOpenershowRemixGems"
            local name = "Show Remix Gems"
            local tooltip = "Display Remix Gems in the CanOpener UI."
            local defaultValue = true

            local function GetValue()
                return ShiGuangPerDB.CanOpenershowRemixGems;
            end

            local function SetValue(value)
                ShiGuangPerDB.CanOpenershowRemixGems = value
            end

            local setting = Settings.RegisterProxySetting(
                category,
                "CanOpener_" .. variable,
                Settings.VarType.Boolean,
                name,
                defaultValue,
                GetValue,
                SetValue
            )

            Settings.CreateCheckbox(category, setting, tooltip);
        end

        do
            local variable = "CanOpenerRemixEpicGems"
            local name = "Include Epic Gems in Remix"
            local tooltip = "Show Epic Remix Gems."
            local defaultValue = true

            local function GetValue()
                return ShiGuangPerDB.CanOpenerRemixEpicGems;
            end

            local function SetValue(value)
                ShiGuangPerDB.CanOpenerRemixEpicGems = value
            end

            local setting = Settings.RegisterProxySetting(
                category,
                "CanOpener_" .. variable,
                Settings.VarType.Boolean,
                name,
                defaultValue,
                GetValue,
                SetValue
            )

            Settings.CreateCheckbox(category, setting, tooltip)
        end
    end

    -- do
    --     local variable = "CanOpenerPosition"
    --     local name = "Position"
    --     local tooltip = "Set the CanOpenerPosition of the CanOpener UI."
    --     local defaultValue = { "CENTER", "CENTER", 0, 0 }

    --     local function GetValue()
    --         return ShiGuangPerDB.CanOpenerPosition
    --     end

    --     local function SetValue(value)
    --         ShiGuangPerDB.CanOpenerPosition = value
    --     end

    --     local setting = Settings.RegisterProxySetting(
    --         category,
    --         "CanOpener_" .. variable,
    --         Settings.VarType.Table,
    --         name,
    --         defaultValue,
    --         GetValue,
    --         SetValue
    --     )

    --     Settings.CreateCheckbox(category, setting, tooltip)
    -- end

    -- 2) Create a Frame for your subcategory’s custom UI
    local ignoreFrame = CreateFrame("Frame", "CanOpener_IgnoreFrame", UIParent)
    ignoreFrame:Hide()                -- so it’s invisible until shown in the settings
    ignoreFrame.name = IGNORE_LIST  --"Ignore Lists" -- optional, mostly cosmetic

    -- 3) Register a CanvasLayoutSubcategory for that frame
    --    NOTE: this automatically associates ignoreFrame as a sub‐panel of `category`
    Settings.RegisterCanvasLayoutSubcategory(category, ignoreFrame, IGNORE_LIST)  --"Ignore Lists"


    -- 4) Build your custom UI on ignoreFrame
    do
        local title = ignoreFrame:CreateFontString(nil, "ARTWORK", "GameFontNormalLarge")
        title:SetPoint("TOPLEFT", 10, -10)
        title:SetText(IGNORE_LIST)   --"Ignore Lists"
        --------------------------------------------------
        -- Example: "Character Ignore List"
        --------------------------------------------------
        local charHeader = ignoreFrame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
        charHeader:SetPoint("TOPLEFT", title, "BOTTOMLEFT", 0, -15)
        charHeader:SetText("This Character’s Ignore List")

        local charScroll = CreateFrame("ScrollFrame", "CanOpener_CharacterIgnoreScroll", ignoreFrame,
            "UIPanelScrollFrameTemplate")
        charScroll:SetSize(300, 200)
        charScroll:SetPoint("TOPLEFT", charHeader, "BOTTOMLEFT", 0, -10)

        local charContent = CreateFrame("Frame", "CanOpener_CharacterIgnoreContent", charScroll)
        charContent:SetSize(300, 200)
        charScroll:SetScrollChild(charContent)

        local function RefreshCharIgnoreList()
            -- clear any previous lines
            for _, child in ipairs({ charContent:GetChildren() }) do
                child:Hide()
                child:SetParent(nil)
            end

            local y = -10
            for itemID in pairs(ShiGuangPerDB.excludedItems or {}) do
                local row = CreateFrame("Frame", nil, charContent)
                row:SetSize(280, 30)
                row:SetPoint("TOPLEFT", 10, y)

                local icon = row:CreateTexture(nil, "ARTWORK")
                icon:SetSize(30, 30)
                icon:SetPoint("LEFT")
                icon:SetTexture(C_Item.GetItemIconByID(itemID) or "Interface\\Icons\\INV_Misc_QuestionMark")

                local label = row:CreateFontString(nil, "OVERLAY", "GameFontNormal")
                label:SetPoint("LEFT", icon, "RIGHT", 10, 0)
                local itemName = C_Item.GetItemNameByID(itemID) or ("Item " .. itemID)
                label:SetText(itemName)

                local removeBtn = CreateFrame("Button", nil, row, "UIPanelButtonTemplate")
                removeBtn:SetSize(60, 20)
                removeBtn:SetPoint("RIGHT")
                removeBtn:SetText("Remove")
                removeBtn:SetScript("OnClick", function()
                    ShiGuangPerDB.excludedItems[itemID] = nil
                    RefreshCharIgnoreList()
                    CanOpenerGlobal.CanOut("Removed item " .. itemID .. " from your ignore list.")
                    CanOpenerGlobal.ForceButtonRefresh()
                end)

                y = y - 35
            end
        end
        RefreshCharIgnoreList()
    end
    Settings.RegisterAddOnCategory(category)
end


local buttons = {};
local buttonQueue = {};
local itemIDsInQueue = {};

------------------------------------------------
-- Slash Commands
------------------------------------------------
local function slashHandler(msg)
	local command, rest = msg:match("^(%S*)%s*(.-)$") -- Extract the first word (command) and the rest of the string (parameters)
	command = command:lower()                      -- Convert the command to lowercase to make comparison case-insensitive

	if (command == "rousing") then
		ShiGuangPerDB.CanOpenerShowRousing = not ShiGuangPerDB.CanOpenerShowRousing;
		CanOpenerGlobal.ForceButtonRefresh();
		CanOpenerGlobal.CanOut(": Elemental Rousings " .. CanOpenerGlobal.PosOrNegColor(ShiGuangPerDB.CanOpenerShowRousing, "will", "will not") .. " be shown");
	elseif (CanOpenerGlobal.IsRemixActive and command == "remixgem") then
		ShiGuangPerDB.CanOpenershowRemixGems = not ShiGuangPerDB.CanOpenershowRemixGems;
		CanOpenerGlobal.ForceButtonRefresh();
		CanOpenerGlobal.CanOut(": Remix Gems " .. CanOpenerGlobal.PosOrNegColor(ShiGuangPerDB.CanOpenershowRemixGems, "will", "will not") .. " be shown");
	elseif (CanOpenerGlobal.IsRemixActive and command == "remixepicgems") then
		ShiGuangPerDB.CanOpenerRemixEpicGems = not ShiGuangPerDB.CanOpenerRemixEpicGems;
		CanOpenerGlobal.ForceButtonRefresh();
		CanOpenerGlobal.CanOut(": Remix Gems " ..
			CanOpenerGlobal.PosOrNegColor(ShiGuangPerDB.CanOpenerRemixEpicGems, "will", "will not") ..
			" be combined higher than Epic");
		CanOpenerGlobal.DebugLog("slashHandler - End Remix Gems Level");
	elseif (command == "levelrestricted") then
        ShiGuangPerDB.showLevelRestrictedItems = not ShiGuangPerDB.showLevelRestrictedItems;
        CanOpenerGlobal.ForceButtonRefresh();
        CanOpenerGlobal.CanOut(": Level-Restricted Items " ..
            CanOpenerGlobal.PosOrNegColor(ShiGuangPerDB.showLevelRestrictedItems, "will", "will not") .. " be shown");
	elseif (command == "reset") then
		CanOpenerGlobal.CanOut(": Resetting settings and position.");
		CanOpenerGlobal.ResetSavedVariables();
	elseif command == "ignore" and rest then
		local itemID = tonumber(rest)
		if itemID then
			ShiGuangPerDB.excludedItems[itemID] = true
			CanOpenerGlobal.CanOut(": Ignoring item ID " .. itemID)
		else
			CanOpenerGlobal.CanOut(": Invalid item ID.")
		end
	elseif command == "unignore" and rest then
		local itemID = tonumber(rest)
		if itemID and ShiGuangPerDB.excludedItems[itemID] then
			ShiGuangPerDB.excludedItems[itemID] = nil
			CanOpenerGlobal.CanOut(": Removed item ID " .. itemID .. " from ignore list.")
		else
			CanOpenerGlobal.CanOut(": Item ID not found in ignore list.")
		end
	elseif command == "list" then
		CanOpenerGlobal.CanOut(": Ignored Items List:")
		CanOpenerGlobal.CanOut(ShiGuangPerDB.excludedItems);
	else
		CanOpenerGlobal.CanOut("Commands for |cffffa500/CanOpener|r :");
		local rousingState = CanOpenerGlobal.PosOrNegColor(ShiGuangPerDB.CanOpenerShowRousing, "On", "Off");
		CanOpenerGlobal.CanOut("  |cffffa500 rousing|r - Toggle showing Elemental Rousings (" .. rousingState .. ")");
		if (CanOpenerGlobal.IsRemixActive) then
			local remixGemsState = CanOpenerGlobal.PosOrNegColor(ShiGuangPerDB.CanOpenershowRemixGems, "On", "Off");
			CanOpenerGlobal.CanOut("  |cffffa500 remixGem|r - Toggle showing Remix Gems (" .. remixGemsState .. ")");
			local remixEpicGemsState = CanOpenerGlobal.PosOrNegColor(ShiGuangPerDB.CanOpenerRemixEpicGems, "On", "Off");
			CanOpenerGlobal.CanOut("  |cffffa500 CanOpenerRemixEpicGems|r - Toggle combining gems higher than Epic (" .. remixEpicGemsState .. ")");
		end
        local levelRestrictedState = CanOpenerGlobal.PosOrNegColor(ShiGuangPerDB.showLevelRestrictedItems, "On", "Off");
        CanOpenerGlobal.CanOut("  |cffffa500 levelrestricted|r - Toggle showing level-restricted items (" .. levelRestrictedState .. ")");
        CanOpenerGlobal.CanOut("  |cffffa500 ignore|r <itemID> - Ignore a specific item");
        CanOpenerGlobal.CanOut("  |cffffa500 unignore|r <itemID> - Remove an item from the ignore list");
        CanOpenerGlobal.CanOut("  |cffffa500 list|r - Show ignored items");
        CanOpenerGlobal.CanOut("  |cffffa500 reset|r - Reset all settings!");
    end
end

SlashCmdList.CanOpener = function(msg) slashHandler(msg) end;
SLASH_CanOpener1 = "/CanOpener";
SLASH_CanOpener2 = "/CO";

------------------------------------------------
-- Main Frame
------------------------------------------------
local frame = CreateFrame("Frame", "CanOpener_Frame", UIParent);
frame.ButtonCount = 0;
CanOpenerGlobal.Frame = frame;
frame:ClearAllPoints();
frame:SetPoint("TOPRIGHT", UIParent, "TOPRIGHT", -80, -260);

frame:Hide();
frame:SetWidth(120);
frame:SetHeight(52);
frame:SetClampedToScreen(true);
frame:SetFrameStrata("BACKGROUND");
frame:SetMovable(true);
frame:SetUserPlaced(true);
frame:RegisterEvent("ADDON_LOADED");
frame:RegisterEvent("BAG_UPDATE");
frame:RegisterEvent("BAG_UPDATE_DELAYED");
frame:RegisterEvent("PLAYER_ENTERING_WORLD");
frame:RegisterEvent("PLAYER_LEAVING_WORLD");
frame:RegisterEvent("PLAYER_REGEN_DISABLED");
frame:RegisterEvent("PLAYER_REGEN_ENABLED");
frame:SetScript("OnEvent", function(self, event, ...)
	local eventAction = CanOpenerGlobal.Events[event];
	if (eventAction) then
		eventAction(...);
	end
end);

--[[frame:SetScript("OnShow", function(self, event, ...)
	--Restore position
	self:ClearAllPoints();
	self:SetPoint("TOPRIGHT", UIParent, "TOPRIGHT", -80, -260);
end);]]

local function buttonOnLeave(btn)
	GameTooltip:Hide();
end

local function buttonOnEnter(btn)
	GameTooltip:SetOwner(btn, "ANCHOR_TOP");
	GameTooltip:SetItemByID(btn.itemID);
end

local function createButton(cacheDetails, id)
	local btn = CreateFrame("Button", cacheDetails.name, frame, "SecureActionButtonTemplate");
	cacheDetails.button = btn;
	btn.itemID = id;

	btn:Hide();
	btn:SetWidth(52);
	btn:SetHeight(52);
	btn:SetClampedToScreen(true);
	--Right click to drag
	btn:EnableMouse(true);
	btn:RegisterForDrag("RightButton");
	btn:SetMovable(true);
	btn:SetUserPlaced(true);
	btn:SetScript("OnDragStart", function(self) self:GetParent():StartMoving(); end);
	btn:SetScript("OnDragStop", function(self)
		self:GetParent():StopMovingOrSizing();
		--self:GetParent():SetUserPlaced(false);
		--local point, relativeTo, relativePoint, xOfs, yOfs = self:GetParent():GetPoint();
		--ShiGuangPerDB.CanOpenerPosition = { point, relativePoint, xOfs, yOfs };
	end);
	--Setup macro
	btn:SetAttribute("type", "macro");
	-- if cacheDetails.lockbox and IsSpellKnown(1804) then -- 1804 is the ID for Pick Lock
	-- 	local localizedName = C_Spell.GetSpellInfo(1804).name;
	-- 	btn:SetAttribute("macrotext", format("/cast %s\n/use item:%d", localizedName, id));
	-- else
	-- 	btn:SetAttribute("macrotext", format("/use item:%d", id));
	-- end

	btn:SetAttribute("macrotext", format("/use item:%d", id));
	btn.countString = btn:CreateFontString(btn:GetName() .. "Count", "OVERLAY", "NumberFontNormal");
	btn.countString:SetPoint("BOTTOMRIGHT", btn, -0, 2);
	btn.countString:SetJustifyH("RIGHT");
	btn.icon = btn:CreateTexture(nil, "BACKGROUND");
	btn.icon:SetTexture(C_Item.GetItemIconByID(id));
	btn.texture = btn.icon;
	btn.texture:SetAllPoints();
	btn:RegisterForClicks("LeftButtonUp", "LeftButtonDown");

	--Tooltip
	btn:SetScript("OnEnter", buttonOnEnter);
	btn:SetScript("OnLeave", buttonOnLeave);

	-- Hook a shift-right click to add the item to the per–character ignore list.
	btn:HookScript("OnMouseUp", function(self, button)
		if button == "RightButton" and IsShiftKeyDown() then
			local itemID = self.itemID
			local itemName = C_Item.GetItemNameByID(itemID);
			-- If not already ignored, add it; otherwise notify the user.
			if not ShiGuangPerDB.excludedItems[itemID] then
				ShiGuangPerDB.excludedItems[itemID] = true
				CanOpenerGlobal.CanOut(itemName .. IGNORED)  --" added to your ignore list."
			else
				CanOpenerGlobal.CanOut(itemName .. " is already in your ignore list.")
			end
			CanOpenerGlobal.ForceButtonRefresh()
			-- Prevent any further processing of the click.
			return
		end
	end)
end

local UpdateButtons = function()
	for bagID = CanOpenerGlobal.BagIndicies.Backpack, CanOpenerGlobal.BagIndicies.ReagentBag, 1 do
		for slot = 1, C_Container.GetContainerNumSlots(bagID) do
			local itemID = C_Container.GetContainerItemID(bagID, slot);
			local cacheDetails = CanOpenerGlobal.openables[itemID];
			-- local manualExclude = cacheDetails.lockbox; -- Don't show lockboxes in the button bar for now
			local onExcludeList = ShiGuangPerDB.excludedItems[itemID] or false;
			if itemID and cacheDetails and not cacheDetails.lockbox and not onExcludeList then
				local count = C_Item.GetItemCount(itemID);

				if CanOpenerGlobal.CriteriaContext:evaluateAll(itemID, cacheDetails, count) and not itemIDsInQueue[itemID] then
					table.insert(buttonQueue, itemID)
					itemIDsInQueue[itemID] = true
				end
			end
		end
	end
end
CanOpenerGlobal.UpdateButtons = UpdateButtons;

local drawButtons = function()
	-- Don't do anything if we are in combat. Daddy Blizz says so.
	if (CanOpenerGlobal.LockDown) then
		return;
	end

	local buttonIndex = 0;

	for _, tbl in ipairs(buttons) do
		local button = tbl.button;
		local itemID = tbl.itemID;

		if (buttonQueue[itemID]) then
			SetButton(button, buttonIndex, itemID);
			buttonQueue[itemID] = nil;
		else
			button:Hide();
		end
	end

	for _, itemID in ipairs(buttonQueue) do
		local cacheDetails = CanOpenerGlobal.openables[itemID];

		if not cacheDetails.button then
			createButton(cacheDetails, itemID);
		end

		SetButton(cacheDetails.button, buttonIndex, itemID);
		table.insert(buttons, { button = cacheDetails.button, itemID });
		cacheDetails.button:Show();

		buttonIndex = buttonIndex + 1;
	end
	wipe(buttonQueue);
	wipe(itemIDsInQueue);
end
CanOpenerGlobal.DrawButtons = drawButtons;

function SetButton(button, buttonIndex, itemID)
	button:SetPoint("LEFT", frame, "LEFT", buttonIndex * 52, 0);
	local count = C_Item.GetItemCount(itemID) or 0;
	button.countString:SetText(tostring(count));
	button.texture:SetDesaturated(false);
	buttonIndex = buttonIndex + 1;
end
