HenterVerse Clutter One-Click Seller

Sell all the clutter in The Market with one single click!

As of 2023-04-13. See the latest version.

// ==UserScript==
// @name         HenterVerse Clutter One-Click Seller
// @namespace    hvcluttersell
// @version      0.1.6
// @description  Sell all the clutter in The Market with one single click!
// @author       Retr#000
// @match        https://*hentaiverse.org/*?s=Bazaar&ss=mk*
// @icon         data:image/png;base64,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
// @grant        GM_setValue
// @grant        GM_getValue
// @license      CC BY-NC 3.0
// ==/UserScript==

(function () {
    'use strict';

    // ##### Config ######

    const HVCConfig_default = [
        { HVCdelay: 500, unit: 'ms' },

        { Name: 'ManBearPig Tail (Persistent)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Holy Hand Grenade of Antioch (Persistent)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Mithra\'s Flower (Persistent)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Dalek Voicebox (Persistent)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Lock of Blue Hair (Persistent)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Bunny-Girl Costume (Persistent)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Hinamatsuri Doll (Persistent)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Broken Glasses (Persistent)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Black T-Shirt (Persistent)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Sapling (Persistent)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Unicorn Horn (Persistent)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Noodly Appendage (Persistent)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Precursor Artifact (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Energy Drink (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Low-Grade Cloth (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Mid-Grade Cloth (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'High-Grade Cloth (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Low-Grade Leather (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Mid-Grade Leather (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'High-Grade Leather (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Low-Grade Metals (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Mid-Grade Metals (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'High-Grade Metals (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Low-Grade Wood (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Mid-Grade Wood (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'High-Grade Wood (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scrap Cloth (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scrap Leather (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scrap Metal (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scrap Wood (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Crystallized Phazon (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Shade Fragment (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Repurposed Actuator (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Defense Matrix Modulator (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Slaughter (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Balance (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Destruction (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Focus (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Protection (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Fleet (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Barrier (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Nimble (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Elementalist (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Heaven-sent (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Demon-fiend (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Curse-weaver (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Earth-walker (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Surtr (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Niflheim (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Mjolnir (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Freyr (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Heimdall (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Fenrir (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Dampening (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Stoneskin (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Deflection (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Fire-eater (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Frost-born (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Thunder-child (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Wind-waker (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Thrice-blessed (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Spirit-ward (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Ox (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Raccoon (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Cheetah (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Turtle (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Fox (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of the Owl (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Warding (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Negation (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Isaac (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Binding of Friendship (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Legendary Weapon Core (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Legendary Staff Core (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Legendary Armor Core (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Voidseeker Shard (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Aether Shard (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Featherweight Shard (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Amnesia Shard (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Infusion of Flames (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Infusion of Frost (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Infusion of Lightning (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Infusion of Storms (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Infusion of Divinity (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Infusion of Darkness (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of Swiftness (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of Protection (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of the Avatar (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of Absorption (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of Shadows (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of Life (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of the Gods (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Flower Vase (Persistent)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Bubble-Gum (Persistent)', sell_as_clutter: false, min_undercut: false },

        { Name: 'ManBearPig Tail (Isekai)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Holy Hand Grenade of Antioch (Isekai)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Mithra\'s Flower (Isekai)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Dalek Voicebox (Isekai)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Lock of Blue Hair (Isekai)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Bunny-Girl Costume (Isekai)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Hinamatsuri Doll (Isekai)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Broken Glasses (Isekai)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Black T-Shirt (Isekai)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Sapling (Isekai)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Unicorn Horn (Isekai)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Noodly Appendage (Isekai)', sell_as_clutter: true, min_undercut: false },
        { Name: 'Low-Grade Cloth (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Mid-Grade Cloth (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'High-Grade Cloth (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Low-Grade Leather (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Mid-Grade Leather (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'High-Grade Leather (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Low-Grade Metals (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Mid-Grade Metals (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'High-Grade Metals (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Low-Grade Wood (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Mid-Grade Wood (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'High-Grade Wood (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scrap Cloth (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scrap Leather (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scrap Metal (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scrap Wood (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Crystallized Phazon (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Shade Fragment (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Repurposed Actuator (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Defense Matrix Modulator (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Legendary Weapon Core (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Legendary Staff Core (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Legendary Armor Core (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Voidseeker Shard (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Aether Shard (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Featherweight Shard (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Amnesia Shard (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Infusion of Flames (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Infusion of Frost (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Infusion of Lightning (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Infusion of Storms (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Infusion of Divinity (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Infusion of Darkness (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of Swiftness (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of Protection (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of the Avatar (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of Absorption (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of Shadows (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of Life (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Scroll of the Gods (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Flower Vase (Isekai)', sell_as_clutter: false, min_undercut: false },
        { Name: 'Bubble-Gum (Isekai)', sell_as_clutter: false, min_undercut: false },
    ];

    if (GM_getValue('HVCConfig') == undefined) { // initialization
        GM_setValue('HVCConfig', HVCConfig_default);
    }

    // #####  Code  ######

    const urlist = [
        { note: 'delay config corresponding placeholder' },

        { Name: 'ManBearPig Tail (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30016' },
        { Name: 'Holy Hand Grenade of Antioch (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30017' },
        { Name: 'Mithra\'s Flower (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30018' },
        { Name: 'Dalek Voicebox (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30019' },
        { Name: 'Lock of Blue Hair (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30020' },
        { Name: 'Bunny-Girl Costume (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30021' },
        { Name: 'Hinamatsuri Doll (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30022' },
        { Name: 'Broken Glasses (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30023' },
        { Name: 'Black T-Shirt (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30024' },
        { Name: 'Sapling (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30030' },
        { Name: 'Unicorn Horn (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30031' },
        { Name: 'Noodly Appendage (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30032' },
        { Name: 'Precursor Artifact (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ar&itemid=20001' },
        { Name: 'Energy Drink (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=11401' },
        { Name: 'Low-Grade Cloth (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60001' },
        { Name: 'Mid-Grade Cloth (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60002' },
        { Name: 'High-Grade Cloth (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60003' },
        { Name: 'Low-Grade Leather (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60004' },
        { Name: 'Mid-Grade Leather (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60005' },
        { Name: 'High-Grade Leather (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60006' },
        { Name: 'Low-Grade Metals (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60007' },
        { Name: 'Mid-Grade Metals (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60008' },
        { Name: 'High-Grade Metals (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60009' },
        { Name: 'Low-Grade Wood (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60010' },
        { Name: 'Mid-Grade Wood (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60011' },
        { Name: 'High-Grade Wood (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60012' },
        { Name: 'Scrap Cloth (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60051' },
        { Name: 'Scrap Leather (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60052' },
        { Name: 'Scrap Metal (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60053' },
        { Name: 'Scrap Wood (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60054' },
        { Name: 'Crystallized Phazon (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60101' },
        { Name: 'Shade Fragment (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60102' },
        { Name: 'Repurposed Actuator (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60104' },
        { Name: 'Defense Matrix Modulator (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60105' },
        { Name: 'Binding of Slaughter (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60201' },
        { Name: 'Binding of Balance (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60202' },
        { Name: 'Binding of Destruction (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60203' },
        { Name: 'Binding of Focus (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60204' },
        { Name: 'Binding of Protection (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60205' },
        { Name: 'Binding of the Fleet (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60206' },
        { Name: 'Binding of the Barrier (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60207' },
        { Name: 'Binding of the Nimble (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60208' },
        { Name: 'Binding of the Elementalist (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60209' },
        { Name: 'Binding of the Heaven-sent (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60210' },
        { Name: 'Binding of the Demon-fiend (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60211' },
        { Name: 'Binding of the Curse-weaver (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60212' },
        { Name: 'Binding of the Earth-walker (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60213' },
        { Name: 'Binding of Surtr (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60215' },
        { Name: 'Binding of Niflheim (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60216' },
        { Name: 'Binding of Mjolnir (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60217' },
        { Name: 'Binding of Freyr (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60218' },
        { Name: 'Binding of Heimdall (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60219' },
        { Name: 'Binding of Fenrir (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60220' },
        { Name: 'Binding of Dampening (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60221' },
        { Name: 'Binding of Stoneskin (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60222' },
        { Name: 'Binding of Deflection (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60223' },
        { Name: 'Binding of the Fire-eater (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60224' },
        { Name: 'Binding of the Frost-born (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60225' },
        { Name: 'Binding of the Thunder-child (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60226' },
        { Name: 'Binding of the Wind-waker (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60227' },
        { Name: 'Binding of the Thrice-blessed (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60228' },
        { Name: 'Binding of the Spirit-ward (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60229' },
        { Name: 'Binding of the Ox (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60230' },
        { Name: 'Binding of the Raccoon (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60231' },
        { Name: 'Binding of the Cheetah (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60232' },
        { Name: 'Binding of the Turtle (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60233' },
        { Name: 'Binding of the Fox (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60234' },
        { Name: 'Binding of the Owl (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60235' },
        { Name: 'Binding of Warding (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60236' },
        { Name: 'Binding of Negation (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60237' },
        { Name: 'Binding of Isaac (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60238' },
        { Name: 'Binding of Friendship (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60239' },
        { Name: 'Legendary Weapon Core (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60402' },
        { Name: 'Legendary Staff Core (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60412' },
        { Name: 'Legendary Armor Core (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60422' },
        { Name: 'Voidseeker Shard (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=61001' },
        { Name: 'Aether Shard (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=61101' },
        { Name: 'Featherweight Shard (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=61501' },
        { Name: 'Amnesia Shard (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=65001' },
        { Name: 'Infusion of Flames (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12101' },
        { Name: 'Infusion of Frost (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12201' },
        { Name: 'Infusion of Lightning (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12301' },
        { Name: 'Infusion of Storms (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12401' },
        { Name: 'Infusion of Divinity (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12501' },
        { Name: 'Infusion of Darkness (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12601' },
        { Name: 'Scroll of Swiftness (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13101' },
        { Name: 'Scroll of Protection (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13111' },
        { Name: 'Scroll of the Avatar (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13199' },
        { Name: 'Scroll of Absorption (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13201' },
        { Name: 'Scroll of Shadows (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13211' },
        { Name: 'Scroll of Life (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13221' },
        { Name: 'Scroll of the Gods (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13299' },
        { Name: 'Flower Vase (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=19111' },
        { Name: 'Bubble-Gum (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=19131' },

        { Name: 'ManBearPig Tail (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30016' },
        { Name: 'Holy Hand Grenade of Antioch (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30017' },
        { Name: 'Mithra\'s Flower (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30018' },
        { Name: 'Dalek Voicebox (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30019' },
        { Name: 'Lock of Blue Hair (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30020' },
        { Name: 'Bunny-Girl Costume (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30021' },
        { Name: 'Hinamatsuri Doll (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30022' },
        { Name: 'Broken Glasses (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30023' },
        { Name: 'Black T-Shirt (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30024' },
        { Name: 'Sapling (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30030' },
        { Name: 'Unicorn Horn (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30031' },
        { Name: 'Noodly Appendage (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30032' },
        { Name: 'Low-Grade Cloth (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60001' },
        { Name: 'Mid-Grade Cloth (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60002' },
        { Name: 'High-Grade Cloth (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60003' },
        { Name: 'Low-Grade Leather (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60004' },
        { Name: 'Mid-Grade Leather (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60005' },
        { Name: 'High-Grade Leather (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60006' },
        { Name: 'Low-Grade Metals (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60007' },
        { Name: 'Mid-Grade Metals (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60008' },
        { Name: 'High-Grade Metals (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60009' },
        { Name: 'Low-Grade Wood (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60010' },
        { Name: 'Mid-Grade Wood (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60011' },
        { Name: 'High-Grade Wood (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60012' },
        { Name: 'Scrap Cloth (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60051' },
        { Name: 'Scrap Leather (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60052' },
        { Name: 'Scrap Metal (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60053' },
        { Name: 'Scrap Wood (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60054' },
        { Name: 'Crystallized Phazon (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60101' },
        { Name: 'Shade Fragment (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60102' },
        { Name: 'Repurposed Actuator (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60104' },
        { Name: 'Defense Matrix Modulator (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60105' },
        { Name: 'Legendary Weapon Core (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60402' },
        { Name: 'Legendary Staff Core (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60412' },
        { Name: 'Legendary Armor Core (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60422' },
        { Name: 'Voidseeker Shard (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=61001' },
        { Name: 'Aether Shard (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=61101' },
        { Name: 'Featherweight Shard (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=61501' },
        { Name: 'Amnesia Shard (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=65001' },
        { Name: 'Infusion of Flames (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12101' },
        { Name: 'Infusion of Frost (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12201' },
        { Name: 'Infusion of Lightning (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12301' },
        { Name: 'Infusion of Storms (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12401' },
        { Name: 'Infusion of Divinity (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12501' },
        { Name: 'Infusion of Darkness (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12601' },
        { Name: 'Scroll of Swiftness (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13101' },
        { Name: 'Scroll of Protection (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13111' },
        { Name: 'Scroll of the Avatar (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13199' },
        { Name: 'Scroll of Absorption (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13201' },
        { Name: 'Scroll of Shadows (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13211' },
        { Name: 'Scroll of Life (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13221' },
        { Name: 'Scroll of the Gods (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13299' },
        { Name: 'Flower Vase (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=19111' },
        { Name: 'Bubble-Gum (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=19131' },
    ]; // link list
    const urlist_start = 1;
    const pst_end = 94;
    const isk_start = pst_end + 1;
    const urlist_end = urlist.length - 1;

    const in_isekai = Boolean(location.pathname == '/isekai/');

    function cE(name) { // create element shortcut
        return document.createElement(name);
    }

    function qS(name) { // selector
        return document.querySelector(name);
    }

    function gE(ele, mode, parent) { // get element
        if (typeof ele === 'object') {
            return ele;
        } if (mode === undefined && parent === undefined) {
            return (isNaN(ele * 1)) ? document.querySelector(ele) : document.getElementById(ele);
        } if (mode === 'all') {
            return (parent === undefined) ? document.querySelectorAll(ele) : parent.querySelectorAll(ele);
        } if (typeof mode === 'object' && parent === undefined) {
            return mode.querySelector(ele);
        }
    }

    function getElementByXpath(path) {
        return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    }

    // sell clutter button
    const sellButton = cE("div");
    sellButton.innerHTML = [
        '<input',
        ' name="sell_clutter"',
        ' type="submit"',
        ' value="Sell Clutter"',
        ' style="font-size:10pt;border-radius:16px;">',
    ].join('');
    const market_left = qS('#market_left > div:nth-child(7)');
    market_left.parentElement.insertBefore(sellButton, market_left);

    // blank to adjust position
    const blank = cE("div");
    blank.style.paddingTop = "16px";
    const sellButton_ = qS('#market_left > div:nth-child(7)');
    sellButton_.parentElement.insertBefore(blank, sellButton_);

    const configButton = cE("div");
    configButton.id = 'hvcConfig';
    configButton.innerHTML = [
        '<button id="hvcConfig" style="border-width: 0px; padding: 0px; background: rgb(237, 235, 223); position: relative; top: -20px;">',
        '  <img src="',
        'data:image/png;base64,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',
        '" alt="hvcConfig.png"></button>',
    ].join('');
    const left_up = qS('#market_xfer > div:nth-child(1)');
    left_up.parentElement.insertBefore(configButton, left_up);
    const balance_cur = qS('#market_xfer > div[class="credit_balance"]');
    balance_cur.style = 'position: relative; margin-top: -15px;';

    configButton.onclick = function () { // config chain buttom
        var HVCConfig;
        HVCConfig = GM_getValue('HVCConfig'); // load config

        // styles
        const title_style = 'font-size: 20pt; font-family: verdana; font-weight: bold;';
        const align_style = 'text-align: center; position: relative; left: 10px; top: 5px;';
        const header_style = 'z-index:1';
        const checkbox_style = 'width: 15px; height: 15px;';

        function crtText(textContent, style, id) { // create text element
            var text = cE('text');
            text.textContent = textContent;
            if (style) text.style = style;
            if (id) text.id = id;
            return text;
        }

        function crtInput(type, style, id) { // create input element
            var input = cE('input');
            input.type = type;
            if (style) input.style = style;
            if (id) input.id = id;
            return input;
        }

        const globalStyle = gE('head').appendChild(cE('style'));
        const cssContent = [
            '#hvc_table{user-select:none}',
            '#hvc_table{flex-grow: 1;flex-shrink:1;overflow:auto}',
            '#hvc_table>table{min-width:800px;text-align: center;margin:auto;font-family:verdana;font-size:10pt;font-weight:bold;border-collapse:separate;border-spacing:0}',
            '#hvc_table tr:hover:not(:first-child),.market_itemorders tr[onclick]:hover{color:#9B4E03;background:linear-gradient(to right,#605A5A00 0%, #605A5A0A 5%, #605A5A0A 95%,#605A5A00 100%)}',
            '#hvc_table th{border-bottom:1px solid #5C0D11;padding:10px 0 10px 20px;position:sticky;top:0;background:#EDEBDF}',
            '#hvc_table th:first-child{min-width:200px}',
            '#hvc_table td{height:30px;border-bottom:1px solid #5C0D1136}',
            '#hvc_table td:nth-child(2), #hvc_table td:nth-child(3){padding-right:20px}',
            '#hvc_table td:last-child,#hvc_table th:last-child{padding-right:20px}',
            '#hvc_table td:not(:first-child){font-weight:normal}',
            '#hvc_table>p{font-size:9pt;font-style:italic;padding:10px}',
            '#hvc_table tr[data-orderdisabled="1"]{color:#e63e3e}',
        ].join('');
        globalStyle.textContent += cssContent;

        // clear right screen and remove old button
        var market_right, hvcgui, hvcTable_, hvcTable;
        market_right = qS('#market_right')
        market_right.innerHTML = '';
        configButton.remove();

        // config ui
        hvcgui = market_right.appendChild(cE('table'));
        hvcgui.id = 'hvcgui';

        // title universal
        const title1_ = hvcgui.insertRow().insertCell();
        title1_.style = align_style
        const title1 = crtText('Universal', title_style);
        title1_.appendChild(title1);

        // HVCdelay
        const input_ = hvcgui.insertRow().insertCell();
        input_.style = align_style;
        input_.id = 'inputbox';
        const input = cE('input');
        input.type = 'text';
        input.value = HVCConfig[0].HVCdelay;
        input.style = 'width: 50px; height: 12px;';
        const input_desc = crtText('ms delay between each order', 'margin-left: 5px; font-size: 10pt;');
        input_.appendChild(input);
        input_.appendChild(input_desc);

        // item table
        hvcTable_ = market_right.appendChild(cE('div'));
        hvcTable_.id = 'hvc_table';
        hvcTable = hvcTable_.appendChild(cE('table'));

        const header = hvcTable.insertRow();
        const header1 = cE('th');
        header1.textContent = in_isekai ? 'Isekai Items' : 'Persistent Items';
        header1.style = header_style;
        const header2 = cE('th');
        header2.textContent = 'Sell as Clutter';
        header2.style = header_style;
        const header3 = cE('th');
        header3.textContent = 'Min Undercut';
        header3.style = header_style;
        header.append(header1, header2, header3);


        function item_row(table, i) {
            const row = table.insertRow();

            // name
            const cell_name = row.insertCell();
            const item_name = crtText(HVCConfig[i].Name.replace(/ \(.*\)/, ''), null, 'item_name');
            cell_name.appendChild(item_name);

            // sell as clutter
            const cell_sell = row.insertCell();
            const checkbox_sell = crtInput('checkbox', checkbox_style, 'sell_as_clutter');
            checkbox_sell.checked = Boolean(HVCConfig[i].sell_as_clutter);
            cell_sell.append(checkbox_sell);

            // min undercut
            const cell_minundercut = row.insertCell();
            const checkbox_minundercut = crtInput('checkbox', checkbox_style, 'min_undercut');
            checkbox_minundercut.checked = Boolean(HVCConfig[i].min_undercut);
            cell_minundercut.appendChild(checkbox_minundercut);
        }

        if (!in_isekai) {
            // title persistent
            const title2_ = hvcgui.insertRow().insertCell();
            title2_.style = align_style;
            const title2 = crtText('Persistent Items', title_style);
            title2_.appendChild(title2);
            for (let i = urlist_start; i <= pst_end; i++) { // persistent items
                item_row(hvcTable, i);
            }
        } else {
            // title isekai
            const title3_ = hvcgui.insertRow().insertCell();
            title3_.style = align_style;
            const title3 = crtText('Isekai Items', title_style);
            title3_.appendChild(title3);

            for (let i = isk_start; i <= urlist_end; i++) { // isekai items
                item_row(hvcTable, i);
            }
        }

        // new style button to save config
        const configButton_ = cE("div");
        configButton_.id = 'hvcConfig_';
        configButton_.innerHTML = [
            '<button id="hvcConfig" style="border-width: 0px; padding: 0px; background: rgb(237, 235, 223); position: relative; top: -20px;">',
            '  <img src="',
            'data:image/png;base64,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',
            '" alt="hvcConfig.png"></button>',
        ].join('');
        const left_up = qS('#market_xfer > div:nth-child(1)');
        left_up.parentElement.insertBefore(configButton_, left_up);

        function saveTable(config, checkSell, checkMinU) {
            config.sell_as_clutter = checkSell.checked;
            config.min_undercut = checkMinU.checked;
        }

        configButton_.onclick = function () {
            HVCConfig[0].HVCdelay = input.value;
            const checkSellAll = hvcTable.querySelectorAll('input[id="sell_as_clutter"]');
            const checkMinUAll = hvcTable.querySelectorAll('input[id="min_undercut"]');
            if (!in_isekai) {
                for (let i = urlist_start, j = 0; i <= pst_end; i++, j++) { // i-j pair
                    saveTable(HVCConfig[i], checkSellAll[j], checkMinUAll[j]);
                }
            } else {
                for (let i = isk_start, j = 0; i <= urlist_end; i++, j++) {
                    saveTable(HVCConfig[i], checkSellAll[j], checkMinUAll[j]);
                }
            }
            GM_setValue('HVCConfig', HVCConfig);
            location.reload();
        };
    };

    function delay(ms) { // function to delay
        return new Promise(resolve => setTimeout(resolve, ms));
    }

    // consts
    const selector_sell_str = '#sellorder_update';
    const selector_stock_str = '#sell_order_stock_field > span';
    const selector_minundercut_str = '#market_itemsell > div:nth-child(1) > form > table > tbody > tr:nth-child(5) > td';
    const selector_0order_str = '#market_itembuy > div.market_itemorders > p';
    const input_price_str = '#sellorder_batchprice';

    async function sellClutter() { // traverse links and sell trophies
        const HVCConfig = GM_getValue('HVCConfig'); // load config
        const iframe_ = document.createElement('iframe');
        iframe_.id = 'hvciframe';
        iframe_.hidden = true;
        document.querySelector('body').appendChild(iframe_);
        const iframe = document.querySelector('#hvciframe');

        async function clutterClick(item, config, ms) { // click buttons
            if (config.sell_as_clutter == false) {
                return 0;
            }

            qS('#hvcselling').innerHTML = `---------------------- Selling now ----------------------<br><br>\> ${config.Name.replace(/ \(.*\)/, '')} \<<br><br>------------------- ⚠ Click to stop ⚠ -------------------`;

            iframe.src = item;

            await new Promise(resolve => iframe.addEventListener('load', resolve)); // wait for iframe to load completely # by OpenAI ChatGPT

            var iframeDoc = iframe.contentWindow.document;

            // selectors
            const selector_sell = iframeDoc.querySelector(selector_sell_str);
            const selector_stock = iframeDoc.querySelector(selector_stock_str);
            const selector_minundercut = iframeDoc.querySelector(selector_minundercut_str);
            const input_price = iframeDoc.querySelector(input_price_str);
            const selector_0order = iframeDoc.querySelector(selector_0order_str);
            if (selector_stock.textContent.match(/^0.*/) || selector_0order) { // contine the next iteration if there is no stock or no order
                iframe.src = "";
                return 0;
            } else {
                if (config.min_undercut == true) {
                    selector_minundercut.click();
                    await delay(1);
                    selector_stock.click();
                    await delay(1);
                    selector_sell.click();
                } else {
                    input_price.value = 10;
                    await delay(1);
                    selector_stock.click();
                    await delay(1);
                    selector_sell.click();
                }
                await new Promise(resolve => iframe.addEventListener('load', resolve)); // wait for iframe to load completely # by OpenAI ChatGPT
                iframeDoc = iframe.contentWindow.document; // since the page refresh, old iframDoc was cleared, new iframeDoc must be selected again
            }
            while ((iframeDoc.querySelector(selector_stock_str) && !(iframeDoc.querySelector(selector_stock_str).textContent.match(/^0.*/))) | !iframeDoc.querySelector(selector_stock_str)) {
                await delay(10); // loop until the sell finished
                if (iframeDoc.querySelector('#messagebox_inner > p[class="messagebox_error"]')) {
                    iframe.src = "";
                    return 1;
                }
            }
            await delay(ms); // prevent too fast
            iframe.src = "";
            return 0;
        }

        if (!in_isekai) { // persistent
            for (let i = urlist_start; i <= pst_end; i++) {
                while (await clutterClick(urlist[i].url, HVCConfig[i], HVCConfig[0].HVCdelay) == 1) {
                    await clutterClick(urlist[i].url, HVCConfig[i], HVCConfig[0].HVCdelay);
                }
            }
        } else { // isekai
            for (let i = isk_start; i <= urlist_end; i++) {
                while (await clutterClick(urlist[i].url, HVCConfig[i], HVCConfig[0].HVCdelay) == 1) {
                    await clutterClick(urlist[i].url, HVCConfig[i], HVCConfig[0].HVCdelay);
                }
            }
        }
    }

    function startPopup() { // processing notification
        let popup_ = cE("div");
        popup_.innerHTML = [
            '<div id="messagebox_outer" onclick={location.reload();}>',
            '  <div id="messagebox_inner" style="overflow-y:auto">',
            `    <p class="messagebox_error" style="color:red" id="hvcselling">---------------------- Selling now ----------------------<br><br><br><br>------------------- ⚠ Click to stop ⚠ -------------------</p></div></div>`,
        ].join('');
        let market_outer = qS('#market_outer');
        market_outer.parentElement.insertBefore(popup_, market_outer);
    }

    function endPopup() { // finish notification
        qS('#messagebox_outer').remove();
        qS('#hvciframe').remove();
        let popup = cE("div");
        popup.innerHTML = [
            '<div id="messagebox_outer" onclick={location.reload();}>',
            '  <div id="messagebox_inner" style="overflow-y:auto">',
            '    <p class="messagebox_error" style="color:green">Clutter have been sold</p></div></div>',
        ].join('');
        let market_outer = qS('#market_outer');
        market_outer.parentElement.insertBefore(popup, market_outer);
    }

    sellButton.onclick = async function () { // sell clutter
        startPopup();
        await sellClutter();
        endPopup();
    }
})();