Overview

URL upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036
IP104.21.234.101
ASNCLOUDFLARENET
Location
Report completed2022-09-05 05:45:31 UTC
StatusLoading report..
urlquery Alerts No alerts detected


Settings

UserAgentMozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Referer


Intrusion Detection Systems

Suricata /w Emerging Threats Pro  No alerts detected


Blocklists

OpenPhish  No alerts detected
PhishTank  No alerts detected
Fortinet's Web Filter  No alerts detected
mnemonic secure dns  No alerts detected
Quad9 DNS
Scan Date Severity Indicator Comment
2022-09-05 2 5eff011dd5.com Sinkholed
2022-09-05 2 5eff011dd5.com Sinkholed
2022-09-05 2 5eff011dd5.com Sinkholed
2022-09-05 2 5eff011dd5.com Sinkholed
2022-09-05 2 5eff011dd5.com Sinkholed


Files

No files detected



Passive DNS (66)

Passive DNS Source Fully Qualifying Domain Name Rank First Seen Last Seen IP Comment
mnemonic passive DNS fp.metricswpsh.com (2) 0 2022-04-22 11:20:32 UTC 2022-09-05 02:45:21 UTC 23.88.85.6 Unknown ranking
mnemonic passive DNS twinredads.com (1) 0 2021-01-06 22:21:13 UTC 2022-09-04 20:27:38 UTC 104.18.32.108 Unknown ranking
mnemonic passive DNS go.xlivrdr.com (1) 0 2021-07-02 10:51:24 UTC 2022-09-05 04:46:08 UTC 172.64.145.216 Unknown ranking
mnemonic passive DNS pxl.tsyndicate.com (1) 14763 2017-07-05 13:51:06 UTC 2022-09-05 04:37:04 UTC 136.243.134.97
mnemonic passive DNS realtime.pa.highwebmedia.com (24) 24791 2021-01-21 22:18:59 UTC 2022-09-05 04:55:12 UTC 54.230.111.8
mnemonic passive DNS js.wpshsdk.com (2) 12130 2021-06-04 13:50:00 UTC 2022-09-05 05:01:52 UTC 45.133.44.24
mnemonic passive DNS in16.zog.link (1) 76485 2018-07-31 21:03:54 UTC 2022-09-04 20:27:37 UTC 109.206.176.122
mnemonic passive DNS chatw-42.stream.highwebmedia.com (2) 269087 2021-02-12 21:05:42 UTC 2022-09-05 01:50:43 UTC 104.19.242.83
mnemonic passive DNS cbjpeg.stream.highwebmedia.com (31) 23619 2017-04-27 08:00:06 UTC 2022-09-05 01:50:43 UTC 131.153.88.90
mnemonic passive DNS stripchat.com (1) 10390 2016-06-13 10:24:50 UTC 2022-09-05 04:37:04 UTC 104.19.183.41
mnemonic passive DNS chatw-7.stream.highwebmedia.com (2) 289777 2021-02-14 18:44:45 UTC 2022-08-30 05:28:28 UTC 104.19.242.83
mnemonic passive DNS s3t3d2y8.afcdn.net (4) 0 2022-08-08 22:22:56 UTC 2022-09-04 07:15:29 UTC 185.76.9.26 Unknown ranking
mnemonic passive DNS js.wpadmngr.com (1) 25762 2021-06-02 14:43:46 UTC 2022-09-04 23:31:36 UTC 45.133.44.24
mnemonic passive DNS rtbrennab.com (16) 0 2022-04-20 15:49:10 UTC 2022-09-04 13:40:01 UTC 116.202.60.158 Unknown ranking
mnemonic passive DNS twinrdack.com (2) 366359 2021-12-16 19:33:05 UTC 2022-09-04 20:27:37 UTC 172.66.43.134
mnemonic passive DNS sw.wpu.sh (2) 37327 2019-06-13 11:16:52 UTC 2022-09-04 20:27:37 UTC 45.133.44.25
mnemonic passive DNS creative.xlivrdr.com (1) 0 2021-07-02 10:51:24 UTC 2022-09-05 05:28:03 UTC 172.64.145.216 Unknown ranking
mnemonic passive DNS ocsp.digicert.com (3) 86 2012-05-21 07:02:23 UTC 2022-09-04 19:48:23 UTC 93.184.220.29
mnemonic passive DNS www.google-analytics.com (1) 40 2012-10-03 01:04:21 UTC 2022-09-05 02:57:00 UTC 142.250.74.174
mnemonic passive DNS chatw-42.stream.highwebmedia.com (2) 269087 2021-02-12 21:05:42 UTC 2022-09-05 01:50:43 UTC 104.19.241.83
mnemonic passive DNS realtime.pa.highwebmedia.com (24) 24791 2021-01-21 22:18:59 UTC 2022-09-05 04:55:12 UTC 54.230.111.84
mnemonic passive DNS firefox.settings.services.mozilla.com (2) 867 2020-06-04 20:08:41 UTC 2022-09-05 00:03:52 UTC 143.204.55.35
mnemonic passive DNS upornia.com (29) 64988 2020-02-28 15:14:01 UTC 2022-09-05 01:33:43 UTC 104.21.234.100
mnemonic passive DNS ocsp.pki.goog (10) 175 2017-06-14 07:23:31 UTC 2022-09-04 04:49:47 UTC 142.250.74.3
mnemonic passive DNS vast.yomeno.xyz (3) 44241 2019-12-12 11:10:55 UTC 2022-09-04 20:49:52 UTC 109.206.175.85
mnemonic passive DNS static-assets.highwebmedia.com (11) 16059 2021-01-19 21:46:26 UTC 2022-09-04 20:36:53 UTC 104.16.93.42
mnemonic passive DNS contile.services.mozilla.com (1) 1114 2021-05-27 18:32:35 UTC 2022-09-05 04:38:54 UTC 34.117.237.239
mnemonic passive DNS push.services.mozilla.com (1) 2140 2015-09-03 10:29:36 UTC 2022-09-04 05:16:40 UTC 44.242.32.27
mnemonic passive DNS btds.zog.link (10) 38469 2019-10-07 21:35:03 UTC 2022-09-04 23:31:41 UTC 109.206.191.198
mnemonic passive DNS fonts.googleapis.com (1) 8877 2014-07-21 13:19:55 UTC 2022-09-05 00:21:05 UTC 142.250.74.10
mnemonic passive DNS bc5f232b9e.5eff011dd5.com (3) 0 2022-09-05 00:52:20 UTC 2022-09-05 00:52:20 UTC 168.119.25.22 Unknown ranking
mnemonic passive DNS js-agent.newrelic.com (1) 378 2017-01-30 05:00:15 UTC 2022-09-04 06:29:29 UTC 151.101.86.137
mnemonic passive DNS 12007250.pix-cdn.org (5) 56455 2017-09-27 14:40:52 UTC 2022-09-05 02:45:22 UTC 45.133.44.24
mnemonic passive DNS lcdn.tsyndicate.com (2) 12634 2020-03-31 14:26:34 UTC 2022-09-05 04:37:03 UTC 8.247.218.249
mnemonic passive DNS r3.o.lencr.org (31) 344 2020-12-02 08:52:13 UTC 2022-09-04 05:57:13 UTC 23.36.76.226
mnemonic passive DNS ocsp.globalsign.com (1) 2075 2012-05-25 06:20:55 UTC 2022-09-05 04:45:07 UTC 104.18.21.226
mnemonic passive DNS mc.yandex.ru (8) 2672 2017-01-29 05:34:36 UTC 2022-09-04 16:55:16 UTC 87.250.251.119
mnemonic passive DNS nereserv.com (1) 40015 2020-12-21 11:07:56 UTC 2022-09-05 02:50:34 UTC 168.119.25.22
mnemonic passive DNS s.optnx.com (3) 20469 2020-03-25 00:41:59 UTC 2022-09-04 23:08:48 UTC 95.211.229.246
mnemonic passive DNS fonts.gstatic.com (3) 0 2014-08-29 13:43:22 UTC 2022-09-04 04:35:59 UTC 142.250.74.163 Domain (gstatic.com) ranked at: 540
mnemonic passive DNS syndication.realsrv.com (11) 9112 2019-07-03 21:39:52 UTC 2022-09-05 04:53:55 UTC 95.211.229.246
mnemonic passive DNS img-getpocket.cdn.mozilla.net (6) 1631 2017-09-01 03:40:57 UTC 2022-09-05 04:38:03 UTC 34.120.237.76
mnemonic passive DNS ads.realsrv.com (1) 45400 2019-07-12 18:47:30 UTC 2022-09-05 04:48:49 UTC 205.185.216.42
mnemonic passive DNS chaturbate.com (2) 6807 2012-05-22 23:11:36 UTC 2022-09-05 05:28:04 UTC 104.18.100.40
mnemonic passive DNS video.ktkjmp.com (1) 23778 2020-10-02 08:52:19 UTC 2022-09-04 23:18:48 UTC 104.18.42.40
mnemonic passive DNS cdn.1vag.com (1) 48829 2021-02-10 15:12:50 UTC 2022-09-05 02:45:24 UTC 45.133.44.25
mnemonic passive DNS news-muheji.com (1) 0 2022-04-08 03:22:27 UTC 2022-09-04 19:24:26 UTC 149.7.16.240 Unknown ranking
mnemonic passive DNS tn.upornia.com (1) 238209 2021-04-05 11:57:50 UTC 2022-09-04 22:13:12 UTC 45.133.44.24
mnemonic passive DNS 12112336.pix-cdn.org (2) 18294 2018-08-23 11:18:44 UTC 2022-09-04 20:27:37 UTC 45.133.44.25
mnemonic passive DNS a2880b7019.5eff011dd5.com (1) 0 No data No data 94.130.197.134 Unknown ranking
mnemonic passive DNS sw.wpu.sh (2) 37327 2019-06-13 11:16:52 UTC 2022-09-04 20:27:37 UTC 45.133.44.24
mnemonic passive DNS cdn.adx1.com (1) 10630 2018-03-05 17:25:10 UTC 2022-09-05 05:19:18 UTC 149.11.201.98
mnemonic passive DNS upornia.com (29) 64988 2020-02-28 15:14:01 UTC 2022-09-05 01:33:43 UTC 104.21.234.101
mnemonic passive DNS a.exosrv.com (1) 28991 2019-05-21 05:30:09 UTC 2022-09-04 20:35:23 UTC 205.185.216.42
mnemonic passive DNS a.realsrv.com (2) 10080 2019-07-03 16:12:14 UTC 2022-09-04 12:00:16 UTC 205.185.216.10
mnemonic passive DNS ocsp.sectigo.com (2) 487 2018-12-17 11:31:55 UTC 2022-09-04 21:37:59 UTC 172.64.155.188
mnemonic passive DNS eu.freshpops.net (1) 0 2022-03-01 16:20:02 UTC 2022-09-05 05:03:19 UTC 38.100.129.195 Unknown ranking
mnemonic passive DNS www.googletagmanager.com (2) 75 2012-12-25 14:52:06 UTC 2022-09-05 04:38:34 UTC 142.250.74.72
mnemonic passive DNS ads.exoclick.com (1) 32908 2012-11-29 00:05:16 UTC 2022-09-05 04:37:05 UTC 205.185.216.42
mnemonic passive DNS kts.visitstats.com (1) 87150 2019-10-24 11:24:01 UTC 2022-09-04 18:32:19 UTC 62.122.173.18
mnemonic passive DNS static.bookmsg.com (2) 47495 2020-11-24 14:56:32 UTC 2022-09-04 23:31:39 UTC 116.202.204.12
mnemonic passive DNS ceeefac62f.5eff011dd5.com (1) 0 2022-09-02 03:30:55 UTC 2022-09-02 16:08:29 UTC 45.133.44.24 Unknown ranking
mnemonic passive DNS tsyndicate.com (1) 13042 2017-03-16 09:04:54 UTC 2022-09-04 21:50:58 UTC 148.251.19.25
mnemonic passive DNS bam.nr-data.net (5) 630 2015-02-10 00:06:27 UTC 2022-09-04 04:43:32 UTC 162.247.241.14
mnemonic passive DNS content-signature-2.cdn.mozilla.net (1) 1152 2020-11-03 12:26:46 UTC 2022-09-05 04:38:40 UTC 143.204.55.110
mnemonic passive DNS img.strpst.com (1) 12993 2021-06-03 08:45:56 UTC 2022-09-04 11:29:10 UTC 104.16.61.52


Recent reports on same IP/ASN/Domain/Screenshot

Last 4 reports on IP: 104.21.234.101

Date UQ / IDS / BL URL IP
2022-09-07 04:54:18 +0000
0 - 0 - 5 upornia.com/ 104.21.234.101
2022-09-05 05:45:31 +0000
0 - 0 - 5 upornia.com/videos/263492/japanese-granny-cre (...) 104.21.234.101
2022-09-04 10:19:27 +0000
0 - 0 - 8 upornia.com/videos/4279979/ass-fuck-revenge/? (...) 104.21.234.101
2022-08-30 19:30:46 +0000
0 - 0 - 2 upornia.com/videos/2143150/fucking-the-drunke (...) 104.21.234.101

Last 5 reports on ASN: CLOUDFLARENET

Date UQ / IDS / BL URL IP
2022-12-05 21:05:50 +0000
0 - 0 - 2 onesmall2.ztoagroup.site/ 172.67.139.182
2022-12-05 21:05:43 +0000
0 - 0 - 3 abcgij123kq456de--loading.reotlgkcct.xyz/ 172.67.131.162
2022-12-05 21:04:02 +0000
0 - 0 - 6 personalfinanceblog.online/co-iqos-l2/ 104.21.18.97
2022-12-05 21:03:44 +0000
0 - 0 - 11 earn-easy.net/index.php? 104.21.54.131
2022-12-05 21:01:52 +0000
0 - 0 - 2 www.iwinprize.xyz/lander/za-dating-1page-lp1_ (...) 104.21.63.166

Last 5 reports on domain: upornia.com

Date UQ / IDS / BL URL IP
2022-12-05 05:26:13 +0000
0 - 0 - 5 upornia.com/videos/1679497/sweet-coco-perfect (...) 172.64.201.22
2022-11-28 19:38:59 +0000
0 - 0 - 6 upornia.com/videos/3297285/training-casey-cal (...) 172.64.133.7
2022-11-26 22:59:34 +0000
0 - 0 - 4 upornia.com/videos/3815757/cecilia-lion-my-st (...) 172.64.161.10
2022-11-24 04:00:57 +0000
0 - 0 - 1 upornia.com/videos/2720830/incredible-girlfri (...) 172.64.200.22
2022-11-24 03:43:56 +0000
0 - 0 - 4 upornia.com/videos/2180965/leather-clad-ho-mi (...) 172.64.200.22

No other reports with similar screenshot



JavaScript

Executed Scripts (96)


Executed Evals (1)

#1 JavaScript::Eval (size: 107199, repeated: 1) - SHA256: bb70f8ba45d293fecce0d44f03f23cfe284211273f4daceaaf4d90389a2244c0

                                        (() => {
    "use strict";
    var e = "https://subscribers.production.wpu.sh",
        t = "/register",
        n = "2.17.0",
        r = Number("0"),
        i = "3600000";

    function o(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function s(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var s = e.apply(t, n);

                function a(e) {
                    o(s, r, i, a, c, "next", e)
                }

                function c(e) {
                    o(s, r, i, a, c, "throw", e)
                }
                a(void 0)
            }))
        }
    }
    var a = (e, t) => new Promise((n => setTimeout(n.bind(null, t), e)));

    function c() {
        var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
        return Object.keys(e).map((t => {
            var n = "object" == typeof e[t] ? JSON.stringify(e[t]) : e[t];
            return "".concat(encodeURIComponent(t), "=").concat(encodeURIComponent(n))
        })).join("&")
    }

    function l() {
        r && console.log(...arguments)
    }

    function u(e) {
        return d.apply(this, arguments)
    }

    function d() {
        return (d = s((function*(e) {
            try {
                var t =
                    yield fetch(e);
                return yield t.json()
            } catch (e) {
                throw new Error("No message data")
            }
        }))).apply(this, arguments)
    }

    function h(e) {
        return Promise.allSettled && Promise.allSettled(e) || Promise.all(e.map((e => e.then((e => ({
            status: "fulfilled",
            value: e
        }))).catch((e => ({
            status: "rejected",
            reason: e
        }))))))
    }
    const f = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : "undefined" != typeof window ? window : global,
        p = Object.keys,
        m = Array.isArray;

    function y(e, t) {
        return "object" != typeof t || p(t).forEach((function(n) {
            e[n] = t[n]
        })), e
    }
    "undefined" == typeof Promise || f.Promise || (f.Promise = Promise);
    const v = Object.getPrototypeOf,
        g = {}.hasOwnProperty;

    function b(e, t) {
        return g.call(e, t)
    }

    function w(e, t) {
        "function" == typeof t && (t = t(v(e))), ("undefined" == typeof Reflect ? p : Reflect.ownKeys)(t).forEach((n => {
            k(e, n, t[n])
        }))
    }
    const _ = Object.defineProperty;

    function k(e, t, n, r) {
        _(e, t, y(n && b(n, "get") && "function" == typeof n.get ? {get: n.get,
            set: n.set,
            configurable: !0
        } : {
            value: n,
            configurable: !0,
            writable: !0
        }, r))
    }

    function C(e) {
        return {
            from: function(t) {
                return e.prototype = Object.create(t.prototype), k(e.prototype, "constructor", e), {
                    extend: w.bind(null, e.prototype)
                }
            }
        }
    }
    const x = Object.getOwnPropertyDescriptor;

    function P(e, t) {
        let n;
        return x(e, t) || (n = v(e)) && P(n, t)
    }
    const O = [].slice;

    function S(e, t, n) {
        return O.call(e, t, n)
    }

    function E(e, t) {
        return t(e)
    }

    function A(e) {
        if (!e) throw new Error("Assertion Failed")
    }

    function D(e) {
        f.setImmediate ? setImmediate(e) : setTimeout(e, 0)
    }

    function K(e, t) {
        return e.reduce(((e, n, r) => {
            var i = t(n, r);
            return i && (e[i[0]] = i[1]), e
        }), {})
    }

    function j(e, t) {
        if (b(e, t)) return e[t];
        if (!t) return e;
        if ("string" != typeof t) {
            for (var n = [], r = 0, i = t.length; r < i; ++r) {
                var o = j(e, t[r]);
                n.push(o)
            }
            return n
        }
        var s = t.indexOf(".");
        if (-1 !== s) {
            var a = e[t.substr(0, s)];
            return void 0 === a ? void 0 : j(a, t.substr(s + 1))
        }
    }

    function M(e, t, n) {
        if (e && void 0 !== t && (!("isFrozen" in Object) || !Object.isFrozen(e)))
            if ("string" != typeof t && "length" in t) {
                A("string" != typeof n && "length" in n);
                for (var r = 0, i = t.length; r < i; ++r) M(e, t[r], n[r])
            } else {
                var o = t.indexOf(".");
                if (-1 !== o) {
                    var s = t.substr(0, o),
                        a = t.substr(o + 1);
                    if ("" === a) void 0 === n ? m(e) && !isNaN(parseInt(s)) ? e.splice(s, 1) : delete e[s] : e[s] = n;
                    else {
                        var c = e[s];
                        c || (c = e[s] = {}), M(c, a, n)
                    }
                } else void 0 === n ? m(e) && !isNaN(parseInt(t)) ? e.splice(t, 1) : delete e[t] : e[t] = n
            }
    }

    function R(e) {
        var t = {};
        for (var n in e) b(e, n) && (t[n] = e[n]);
        return t
    }
    const I = [].concat;

    function T(e) {
        return I.apply([], e)
    }
    const B = "Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey".split(",").concat(T([8, 16, 32, 64].map((e => ["Int", "Uint", "Float"].map((t => t + e + "Array")))))).filter((e => f[e])),
        N = B.map((e => f[e]));
    K(B, (e => [e, !0]));
    let q = null;

    function F(e) {
        q = "undefined" != typeof WeakMap && new WeakMap;
        const t = U(e);
        return q = null, t
    }

    function U(e) {
        if (!e || "object" != typeof e) return e;
        let t = q && q.get(e);
        if (t) return t;
        if (m(e)) {
            t = [], q && q.set(e, t);
            for (var n = 0, r = e.length; n < r; ++n) t.push(U(e[n]))
        } else if (N.indexOf(e.constructor) >= 0) t = e;
        else {
            const n = v(e);
            for (var i in t = n === Object.prototype ? {} : Object.create(n), q && q.set(e, t), e) b(e, i) && (t[i] = U(e[i]))
        }
        return t
    }
    const {
        toString: L
    } = {};

    function W(e) {
        return L.call(e).slice(8, -1)
    }
    const z = "undefined" != typeof Symbol ? Symbol.iterator : "@@iterator",
        Y = "symbol" == typeof z ? function(e) {
            var t;
            return null != e && (t = e[z]) && t.apply(e)
        } : function() {
            return null
        },
        V = {};

    function $(e) {
        var t, n, r, i;
        if (1 === arguments.length) {
            if (m(e)) return e.slice();
            if (this === V && "string" == typeof e) return [e];
            if (i = Y(e)) {
                for (n = []; !(r = i.next()).done;) n.push(r.value);
                return n
            }
            if (null == e) return [e];
            if ("number" == typeof(t = e.length)) {
                for (n = new Array(t); t--;) n[t] = e[t];
                return n
            }
            return [e]
        }
        for (t = arguments.length, n = new Array(t); t--;) n[t] = arguments[t];
        return n
    }
    const Q = "undefined" != typeof Symbol ? e => "AsyncFunction" === e[Symbol.toStringTag] : () => !1;
    var J = "undefined" != typeof location && /^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);

    function H(e, t) {
        J = e, X = t
    }
    var X = () => !0;
    const G = !new Error("").stack;

    function Z() {
        if (G) try {
            throw Z.arguments, new Error
        } catch (e) {
            return e
        }
        return new Error
    }

    function ee(e, t) {
        var n = e.stack;
        return n ? (t = t || 0, 0 === n.indexOf(e.name) && (t += (e.name + e.message).split("\n").length), n.split("\n").slice(t).filter(X).map((e => "\n" + e)).join("")) : ""
    }
    var te = ["Unknown", "Constraint", "Data", "TransactionInactive", "ReadOnly", "Version", "NotFound", "InvalidState", "InvalidAccess", "Abort", "Timeout", "QuotaExceeded", "Syntax", "DataClone"],
        ne = ["Modify", "Bulk", "OpenFailed", "VersionChange", "Schema", "Upgrade", "InvalidTable", "MissingAPI", "NoSuchDatabase", "InvalidArgument", "SubTransaction", "Unsupported", "Internal", "DatabaseClosed", "PrematureCommit", "ForeignAwait"].concat(te),
        re = {
            VersionChanged: "Database version changed by other database connection",
            DatabaseClosed: "Database has been closed",
            Abort: "Transaction aborted",
            TransactionInactive: "Transaction has already completed or failed",
            MissingAPI: "IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb"
        };

    function ie(e, t) {
        this._e = Z(), this.name = e, this.message = t
    }

    function oe(e, t) {
        return e + ". Errors: " + Object.keys(t).map((e => t[e].toString())).filter(((e, t, n) => n.indexOf(e) === t)).join("\n")
    }

    function se(e, t, n, r) {
        this._e = Z(), this.failures = t, this.failedKeys = r, this.successCount = n, this.message = oe(e, t)
    }

    function ae(e, t) {
        this._e = Z(), this.name = "BulkError", this.failures = Object.keys(t).map((e => t[e])), this.failuresByPos = t, this.message = oe(e, t)
    }
    C(ie).from(Error).extend({
        stack: {get: function() {
                return this._stack || (this._stack = this.name + ": " + this.message + ee(this._e, 2))
            }
        },
        toString: function() {
            return this.name + ": " + this.message
        }
    }), C(se).from(ie), C(ae).from(ie);
    var ce = ne.reduce(((e, t) => (e[t] = t + "Error", e)), {});
    const le = ie;
    var ue = ne.reduce(((e, t) => {
        var n = t + "Error";

        function r(e, r) {
            this._e = Z(), this.name = n, e ? "string" == typeof e ? (this.message = `${e}${r?"\n "+r:""}`, this.inner = r || null) : "object" == typeof e && (this.message = `${e.name} ${e.message}`, this.inner = e) : (this.message = re[t] || n, this.inner = null)
        }
        return C(r).from(le), e[t] = r, e
    }), {});
    ue.Syntax = SyntaxError, ue.Type = TypeError, ue.Range = RangeError;
    var de = te.reduce(((e, t) => (e[t + "Error"] = ue[t], e)), {}),
        he = ne.reduce(((e, t) => (-1 === ["Syntax", "Type", "Range"].indexOf(t) && (e[t + "Error"] = ue[t]), e)), {});

    function fe() {}

    function pe(e) {
        return e
    }

    function me(e, t) {
        return null == e || e === pe ? t : function(n) {
            return t(e(n))
        }
    }

    function ye(e, t) {
        return function() {
            e.apply(this, arguments), t.apply(this, arguments)
        }
    }

    function ve(e, t) {
        return e === fe ? t : function() {
            var n = e.apply(this, arguments);
            void 0 !== n && (arguments[0] = n);
            var r = this.onsuccess,
                i = this.onerror;
            this.onsuccess = null, this.onerror = null;
            var o = t.apply(this, arguments);
            return r && (this.onsuccess = this.onsuccess ? ye(r, this.onsuccess) : r), i && (this.onerror = this.onerror ? ye(i, this.onerror) : i), void 0 !== o ? o : n
        }
    }

    function ge(e, t) {
        return e === fe ? t : function() {
            e.apply(this, arguments);
            var n = this.onsuccess,
                r = this.onerror;
            this.onsuccess = this.onerror = null, t.apply(this, arguments), n && (this.onsuccess = this.onsuccess ? ye(n, this.onsuccess) : n), r && (this.onerror = this.onerror ? ye(r, this.onerror) : r)
        }
    }

    function be(e, t) {
        return e === fe ? t : function(n) {
            var r = e.apply(this, arguments);
            y(n, r);
            var i = this.onsuccess,
                o = this.onerror;
            this.onsuccess = null, this.onerror = null;
            var s = t.apply(this, arguments);
            return i && (this.onsuccess = this.onsuccess ? ye(i, this.onsuccess) : i), o && (this.onerror = this.onerror ? ye(o, this.onerror) : o), void 0 === r ? void 0 === s ? void 0 : s : y(r, s)
        }
    }

    function we(e, t) {
        return e === fe ? t : function() {
            return !1 !== t.apply(this, arguments) && e.apply(this, arguments)
        }
    }

    function _e(e, t) {
        return e === fe ? t : function() {
            var n = e.apply(this, arguments);
            if (n && "function" == typeof n.then) {
                for (var r = this, i = arguments.length, o = new Array(i); i--;) o[i] = arguments[i];
                return n.then((function() {
                    return t.apply(r, o)
                }))
            }
            return t.apply(this, arguments)
        }
    }
    he.ModifyError = se, he.DexieError = ie, he.BulkError = ae;
    var ke = {};
    const [Ce, xe, Pe] = "undefined" == typeof Promise ? [] : (() => {
        let e = Promise.resolve();
        if ("undefined" == typeof crypto || !crypto.subtle) return [e, v(e), e];
        const t = crypto.subtle.digest("SHA-512", new Uint8Array([0]));
        return [t, v(t), e]
    })(), Oe = xe && xe.then, Se = Ce && Ce.constructor, Ee = !!Pe;
    var Ae = !1,
        De = Pe ? () => {
            Pe.then(Ze)
        } : f.setImmediate ? setImmediate.bind(null, Ze) : f.MutationObserver ? () => {
            var e = document.createElement("div");
            new MutationObserver((() => {
                Ze(), e = null
            })).observe(e, {
                attributes: !0
            }), e.setAttribute("i", "1")
        } : () => {
            setTimeout(Ze, 0)
        },
        Ke = function(e, t) {
            Fe.push([e, t]), Me && (De(), Me = !1)
        },
        je = !0,
        Me = !0,
        Re = [],
        Ie = [],
        Te = null,
        Be = pe,
        Ne = {
            id: "global",
            global: !0,
            ref: 0,
            unhandleds: [],
            onunhandled: Ct,
            pgp: !1,
            env: {},
            finalize: function() {
                this.unhandleds.forEach((e => {
                    try {
                        Ct(e[0], e[1])
                    } catch (e) {}
                }))
            }
        },
        qe = Ne,
        Fe = [],
        Ue = 0,
        Le = [];

    function We(e) {
        if ("object" != typeof this) throw new TypeError("Promises must be constructed via new");
        this._listeners = [], this.onuncatched = fe, this._lib = !1;
        var t = this._PSD = qe;
        if (J && (this._stackHolder = Z(), this._prev = null, this._numPrev = 0), "function" != typeof e) {
            if (e !== ke) throw new TypeError("Not a function");
            return this._state = arguments[1], this._value = arguments[2], void(!1 === this._state && $e(this, this._value))
        }
        this._state = null, this._value = null, ++t.ref, Ve(this, e)
    }
    const ze = {get: function() {
            var e = qe,
                t = lt;

            function n(n, r) {
                var i = !e.global && (e !== qe || t !== lt);
                const o = i && !ft();
                var s = new We(((t, s) => {
                    Je(this, new Ye(_t(n, e, i, o), _t(r, e, i, o), t, s, e))
                }));
                return J && Ge(s, this), s
            }
            return n.prototype = ke, n
        },
        set: function(e) {
            k(this, "then", e && e.prototype === ke ? ze : {get: function() {
                    return e
                },
                set: ze.set
            })
        }
    };

    function Ye(e, t, n, r, i) {
        this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof t ? t : null, this.resolve = n, this.reject = r, this.psd = i
    }

    function Ve(e, t) {
        try {
            t((t => {
                if (null === e._state) {
                    if (t === e) throw new TypeError("A promise cannot be resolved with itself.");
                    var n = e._lib && et();
                    t && "function" == typeof t.then ? Ve(e, ((e, n) => {
                        t instanceof We ? t._then(e, n) : t.then(e, n)
                    })) : (e._state = !0, e._value = t, Qe(e)), n && tt()
                }
            }), $e.bind(null, e))
        } catch (t) {
            $e(e, t)
        }
    }

    function $e(e, t) {
        if (Ie.push(t), null === e._state) {
            var n = e._lib && et();
            t = Be(t), e._state = !1, e._value = t, J && null !== t && "object" == typeof t && !t._promise && function(e, t, n) {
                    try {
                        e.apply(null, void 0)
                    } catch (e) {}
                }((() => {
                    var n = P(t, "stack");
                    t._promise = e, k(t, "stack", {get: () => Ae ? n && (n.get ? n.get.apply(t) : n.value) : e.stack
                    })
                })),
                function(e) {
                    Re.some((t => t._value === e._value)) || Re.push(e)
                }(e), Qe(e), n && tt()
        }
    }

    function Qe(e) {
        var t = e._listeners;
        e._listeners = [];
        for (var n = 0, r = t.length; n < r; ++n) Je(e, t[n]);
        var i = e._PSD;
        --i.ref || i.finalize(), 0 === Ue && (++Ue, Ke((() => {
            0 == --Ue && nt()
        }), []))
    }

    function Je(e, t) {
        if (null !== e._state) {
            var n = e._state ? t.onFulfilled : t.onRejected;
            if (null === n) return (e._state ? t.resolve : t.reject)(e._value);
            ++t.psd.ref, ++Ue, Ke(He, [n, e, t])
        } else e._listeners.push(t)
    }

    function He(e, t, n) {
        try {
            Te = t;
            var r, i = t._value;
            t._state ? r = e(i) : (Ie.length && (Ie = []), r = e(i), -1 === Ie.indexOf(i) && function(e) {
                for (var t = Re.length; t;)
                    if (Re[--t]._value === e._value) return void Re.splice(t, 1)
            }(t)), n.resolve(r)
        } catch (e) {
            n.reject(e)
        } finally {
            Te = null, 0 == --Ue && nt(), --n.psd.ref || n.psd.finalize()
        }
    }

    function Xe(e, t, n) {
        if (t.length === n) return t;
        var r = "";
        if (!1 === e._state) {
            var i, o, s = e._value;
            null != s ? (i = s.name || "Error", o = s.message || s, r = ee(s, 0)) : (i = s, o = ""), t.push(i + (o ? ": " + o : "") + r)
        }
        return J && ((r = ee(e._stackHolder, 2)) && -1 === t.indexOf(r) && t.push(r), e._prev && Xe(e._prev, t, n)), t
    }

    function Ge(e, t) {
        var n = t ? t._numPrev + 1 : 0;
        n < 100 && (e._prev = t, e._numPrev = n)
    }

    function Ze() {
        et() && tt()
    }

    function et() {
        var e = je;
        return je = !1, Me = !1, e
    }

    function tt() {
        var e, t, n;
        do {
            for (; Fe.length > 0;)
                for (e = Fe, Fe = [], n = e.length, t = 0; t < n; ++t) {
                    var r = e[t];
                    r[0].apply(null, r[1])
                }
        } while (Fe.length > 0);
        je = !0, Me = !0
    }

    function nt() {
        var e = Re;
        Re = [], e.forEach((e => {
            e._PSD.onunhandled.call(null, e._value, e)
        }));
        for (var t = Le.slice(0), n = t.length; n;) t[--n]()
    }

    function rt(e) {
        return new We(ke, !1, e)
    }

    function it(e, t) {
        var n = qe;
        return function() {
            var r = et(),
                i = qe;
            try {
                return vt(n, !0), e.apply(this, arguments)
            } catch (e) {
                t && t(e)
            } finally {
                vt(i, !1), r && tt()
            }
        }
    }
    w(We.prototype, {
        then: ze,
        _then: function(e, t) {
            Je(this, new Ye(null, null, e, t, qe))
        },
        catch: function(e) {
            if (1 === arguments.length) return this.then(null, e);
            var t = arguments[0],
                n = arguments[1];
            return "function" == typeof t ? this.then(null, (e => e instanceof t ? n(e) : rt(e))) : this.then(null, (e => e && e.name === t ? n(e) : rt(e)))
        },
        finally: function(e) {
            return this.then((t => (e(), t)), (t => (e(), rt(t))))
        },
        stack: {get: function() {
                if (this._stack) return this._stack;
                try {
                    Ae = !0;
                    var e = Xe(this, [], 20).join("\nFrom previous: ");
                    return null !== this._state && (this._stack = e), e
                } finally {
                    Ae = !1
                }
            }
        },
        timeout: function(e, t) {
            return e < 1 / 0 ? new We(((n, r) => {
                var i = setTimeout((() => r(new ue.Timeout(t))), e);
                this.then(n, r).finally(clearTimeout.bind(null, i))
            })) : this
        }
    }), "undefined" != typeof Symbol && Symbol.toStringTag && k(We.prototype, Symbol.toStringTag, "Dexie.Promise"), Ne.env = gt(), w(We, {
        all: function() {
            var e = $.apply(null, arguments).map(pt);
            return new We((function(t, n) {
                0 === e.length && t([]);
                var r = e.length;
                e.forEach(((i, o) => We.resolve(i).then((n => {
                    e[o] = n, --r || t(e)
                }), n)))
            }))
        },
        resolve: e => {
            if (e instanceof We) return e;
            if (e && "function" == typeof e.then) return new We(((t, n) => {
                e.then(t, n)
            }));
            var t = new We(ke, !0, e);
            return Ge(t, Te), t
        },
        reject: rt,
        race: function() {
            var e = $.apply(null, arguments).map(pt);
            return new We(((t, n) => {
                e.map((e => We.resolve(e).then(t, n)))
            }))
        },
        PSD: {get: () => qe,
            set: e => qe = e
        },
        totalEchoes: {get: () => lt
        },
        newPSD: dt,
        usePSD: bt,
        scheduler: {get: () => Ke,
            set: e => {
                Ke = e
            }
        },
        rejectionMapper: {get: () => Be,
            set: e => {
                Be = e
            }
        },
        follow: (e, t) => new We(((n, r) => dt(((t, n) => {
            var r = qe;
            r.unhandleds = [], r.onunhandled = n, r.finalize = ye((function() {
                ! function(e) {
                    Le.push((function t() {
                        e(), Le.splice(Le.indexOf(t), 1)
                    })), ++Ue, Ke((() => {
                        0 == --Ue && nt()
                    }), [])
                }((() => {
                    0 === this.unhandleds.length ? t() : n(this.unhandleds[0])
                }))
            }), r.finalize), e()
        }), t, n, r)))
    }), Se && (Se.allSettled && k(We, "allSettled", (function() {
        const e = $.apply(null, arguments).map(pt);
        return new We((t => {
            0 === e.length && t([]);
            let n = e.length;
            const r = new Array(n);
            e.forEach(((e, i) => We.resolve(e).then((e => r[i] = {
                status: "fulfilled",
                value: e
            }), (e => r[i] = {
                status: "rejected",
                reason: e
            })).then((() => --n || t(r)))))
        }))
    })), Se.any && "undefined" != typeof AggregateError && k(We, "any", (function() {
        const e = $.apply(null, arguments).map(pt);
        return new We(((t, n) => {
            0 === e.length && n(new AggregateError([]));
            let r = e.length;
            const i = new Array(r);
            e.forEach(((e, o) => We.resolve(e).then((e => t(e)), (e => {
                i[o] = e, --r || n(new AggregateError(i))
            }))))
        }))
    })));
    const ot = {
        awaits: 0,
        echoes: 0,
        id: 0
    };
    var st = 0,
        at = [],
        ct = 0,
        lt = 0,
        ut = 0;

    function dt(e, t, n, r) {
        var i = qe,
            o = Object.create(i);
        o.parent = i, o.ref = 0, o.global = !1, o.id = ++ut;
        var s = Ne.env;
        o.env = Ee ? {
            Promise: We,
            PromiseProp: {
                value: We,
                configurable: !0,
                writable: !0
            },
            all: We.all,
            race: We.race,
            allSettled: We.allSettled,
            any: We.any,
            resolve: We.resolve,
            reject: We.reject,
            nthen: kt(s.nthen, o),
            gthen: kt(s.gthen, o)
        } : {}, t && y(o, t), ++i.ref, o.finalize = function() {
            --this.parent.ref || this.parent.finalize()
        };
        var a = bt(o, e, n, r);
        return 0 === o.ref && o.finalize(), a
    }

    function ht() {
        return ot.id || (ot.id = ++st), ++ot.awaits, ot.echoes += 100, ot.id
    }

    function ft() {
        return !!ot.awaits && (0 == --ot.awaits && (ot.id = 0), ot.echoes = 100 * ot.awaits, !0)
    }

    function pt(e) {
        return ot.echoes && e && e.constructor === Se ? (ht(), e.then((e => (ft(), e)), (e => (ft(), xt(e))))) : e
    }

    function mt(e) {
        ++lt, ot.echoes && 0 != --ot.echoes || (ot.echoes = ot.id = 0), at.push(qe), vt(e, !0)
    }

    function yt() {
        var e = at[at.length - 1];
        at.pop(), vt(e, !1)
    }

    function vt(e, t) {
        var n = qe;
        if ((t ? !ot.echoes || ct++ && e === qe : !ct || --ct && e === qe) || wt(t ? mt.bind(null, e) : yt), e !== qe && (qe = e, n === Ne && (Ne.env = gt()), Ee)) {
            var r = Ne.env.Promise,
                i = e.env;
            xe.then = i.nthen, r.prototype.then = i.gthen, (n.global || e.global) && (Object.defineProperty(f, "Promise", i.PromiseProp), r.all = i.all, r.race = i.race, r.resolve = i.resolve, r.reject = i.reject, i.allSettled && (r.allSettled = i.allSettled), i.any && (r.any = i.any))
        }
    }

    function gt() {
        var e = f.Promise;
        return Ee ? {
            Promise: e,
            PromiseProp: Object.getOwnPropertyDescriptor(f, "Promise"),
            all: e.all,
            race: e.race,
            allSettled: e.allSettled,
            any: e.any,
            resolve: e.resolve,
            reject: e.reject,
            nthen: xe.then,
            gthen: e.prototype.then
        } : {}
    }

    function bt(e, t, n, r, i) {
        var o = qe;
        try {
            return vt(e, !0), t(n, r, i)
        } finally {
            vt(o, !1)
        }
    }

    function wt(e) {
        Oe.call(Ce, e)
    }

    function _t(e, t, n, r) {
        return "function" != typeof e ? e : function() {
            var i = qe;
            n && ht(), vt(t, !0);
            try {
                return e.apply(this, arguments)
            } finally {
                vt(i, !1), r && wt(ft)
            }
        }
    }

    function kt(e, t) {
        return function(n, r) {
            return e.call(this, _t(n, t), _t(r, t))
        }
    }

    function Ct(e, t) {
        var n;
        try {
            n = t.onuncatched(e)
        } catch (e) {}
        if (!1 !== n) try {
            var r, i = {
                promise: t,
                reason: e
            };
            if (f.document && document.createEvent ? ((r = document.createEvent("Event")).initEvent("unhandledrejection", !0, !0), y(r, i)) : f.CustomEvent && y(r = new CustomEvent("unhandledrejection", {
                    detail: i
                }), i), r && f.dispatchEvent && (dispatchEvent(r), !f.PromiseRejectionEvent && f.onunhandledrejection)) try {
                f.onunhandledrejection(r)
            } catch (e) {}
            J && r && !r.defaultPrevented && console.warn(`Unhandled rejection: ${e.stack||e}`)
        } catch (e) {}
    } - 1 === ("" + Oe).indexOf("[native code]") && (ht = ft = fe);
    var xt = We.reject;

    function Pt(e, t, n, r) {
        if (e.idbdb && (e._state.openComplete || qe.letThrough || e._vip)) {
            var i = e._createTransaction(t, n, e._dbSchema);
            try {
                i.create(), e._state.PR1398_maxLoop = 3
            } catch (i) {
                return i.name === ce.InvalidState && e.isOpen() && --e._state.PR1398_maxLoop > 0 ? (console.warn("Dexie: Need to reopen db"), e._close(), e.open().then((() => Pt(e, t, n, r)))) : xt(i)
            }
            return i._promise(t, ((e, t) => dt((() => (qe.trans = i, r(e, t, i)))))).then((e => i._completion.then((() => e))))
        }
        if (e._state.openComplete) return xt(new ue.DatabaseClosed(e._state.dbOpenError));
        if (!e._state.isBeingOpened) {
            if (!e._options.autoOpen) return xt(new ue.DatabaseClosed);
            e.open().catch(fe)
        }
        return e._state.dbReadyPromise.then((() => Pt(e, t, n, r)))
    }
    const Ot = String.fromCharCode(65535),
        St = "Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.",
        Et = [],
        At = "undefined" != typeof navigator && /(MSIE|Trident|Edge)/.test(navigator.userAgent),
        Dt = At,
        Kt = At,
        jt = e => !/(dexie\.js|dexie\.min\.js)/.test(e);

    function Mt(e, t) {
        return e ? t ? function() {
            return e.apply(this, arguments) && t.apply(this, arguments)
        } : e : t
    }
    const Rt = {
        type: 3,
        lower: -1 / 0,
        lowerOpen: !1,
        upper: [
            []
        ],
        upperOpen: !1
    };

    function It(e) {
        return "string" != typeof e || /\./.test(e) ? e => e : t => (void 0 === t[e] && e in t && delete(t = F(t))[e], t)
    }
    class Tt {
        _trans(e, t, n) {
            const r = this._tx || qe.trans,
                i = this.name;

            function o(e, n, r) {
                if (!r.schema[i]) throw new ue.NotFound("Table " + i + " not part of transaction");
                return t(r.idbtrans, r)
            }
            const s = et();
            try {
                return r && r.db === this.db ? r === qe.trans ? r._promise(e, o, n) : dt((() => r._promise(e, o, n)), {
                    trans: r,
                    transless: qe.transless || qe
                }) : Pt(this.db, e, [this.name], o)
            } finally {
                s && tt()
            }
        }
        get(e, t) {
            return e && e.constructor === Object ? this.where(e).first(t) : this._trans("readonly", (t => this.core.get({
                trans: t,
                key: e
            }).then((e => this.hook.reading.fire(e))))).then(t)
        }
        where(e) {
            if ("string" == typeof e) return new this.db.WhereClause(this, e);
            if (m(e)) return new this.db.WhereClause(this, `[${e.join("+")}]`);
            const t = p(e);
            if (1 === t.length) return this.where(t[0]).equals(e[t[0]]);
            const n = this.schema.indexes.concat(this.schema.primKey).filter((e => e.compound && t.every((t => e.keyPath.indexOf(t) >= 0)) && e.keyPath.every((e => t.indexOf(e) >= 0))))[0];
            if (n && this.db._maxKey !== Ot) return this.where(n.name).equals(n.keyPath.map((t => e[t])));
            !n && J && console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${t.join("+")}]`);
            const {
                idxByName: r
            } = this.schema, i = this.db._deps.indexedDB;

            function o(e, t) {
                try {
                    return 0 === i.cmp(e, t)
                } catch (e) {
                    return !1
                }
            }
            const [s, a] = t.reduce((([t, n], i) => {
                const s = r[i],
                    a = e[i];
                return [t || s, t || !s ? Mt(n, s && s.multi ? e => {
                    const t = j(e, i);
                    return m(t) && t.some((e => o(a, e)))
                } : e => o(a, j(e, i))) : n]
            }), [null, null]);
            return s ? this.where(s.name).equals(e[s.keyPath]).filter(a) : n ? this.filter(a) : this.where(t).equals("")
        }
        filter(e) {
            return this.toCollection().and(e)
        }
        count(e) {
            return this.toCollection().count(e)
        }
        offset(e) {
            return this.toCollection().offset(e)
        }
        limit(e) {
            return this.toCollection().limit(e)
        }
        each(e) {
            return this.toCollection().each(e)
        }
        toArray(e) {
            return this.toCollection().toArray(e)
        }
        toCollection() {
            return new this.db.Collection(new this.db.WhereClause(this))
        }
        orderBy(e) {
            return new this.db.Collection(new this.db.WhereClause(this, m(e) ? `[${e.join("+")}]` : e))
        }
        reverse() {
            return this.toCollection().reverse()
        }
        mapToClass(e) {
            this.schema.mappedClass = e;
            const t = t => {
                if (!t) return t;
                const n = Object.create(e.prototype);
                for (var r in t)
                    if (b(t, r)) try {
                        n[r] = t[r]
                    } catch (e) {}
                    return n
            };
            return this.schema.readHook && this.hook.reading.unsubscribe(this.schema.readHook), this.schema.readHook = t, this.hook("reading", t), e
        }
        defineClass() {
            return this.mapToClass((function(e) {
                y(this, e)
            }))
        }
        add(e, t) {
            const {
                auto: n,
                keyPath: r
            } = this.schema.primKey;
            let i = e;
            return r && n && (i = It(r)(e)), this._trans("readwrite", (e => this.core.mutate({
                trans: e,
                type: "add",
                keys: null != t ? [t] : null,
                values: [i]
            }))).then((e => e.numFailures ? We.reject(e.failures[0]) : e.lastResult)).then((t => {
                if (r) try {
                    M(e, r, t)
                } catch (e) {}
                return t
            }))
        }
        update(e, t) {
            if ("object" != typeof e || m(e)) return this.where(":id").equals(e).modify(t); {
                const n = j(e, this.schema.primKey.keyPath);
                if (void 0 === n) return xt(new ue.InvalidArgument("Given object does not contain its primary key"));
                try {
                    "function" != typeof t ? p(t).forEach((n => {
                        M(e, n, t[n])
                    })) : t(e, {
                        value: e,
                        primKey: n
                    })
                } catch (e) {}
                return this.where(":id").equals(n).modify(t)
            }
        }
        put(e, t) {
            const {
                auto: n,
                keyPath: r
            } = this.schema.primKey;
            let i = e;
            return r && n && (i = It(r)(e)), this._trans("readwrite", (e => this.core.mutate({
                trans: e,
                type: "put",
                values: [i],
                keys: null != t ? [t] : null
            }))).then((e => e.numFailures ? We.reject(e.failures[0]) : e.lastResult)).then((t => {
                if (r) try {
                    M(e, r, t)
                } catch (e) {}
                return t
            }))
        }
        delete(e) {
            return this._trans("readwrite", (t => this.core.mutate({
                trans: t,
                type: "delete",
                keys: [e]
            }))).then((e => e.numFailures ? We.reject(e.failures[0]) : void 0))
        }
        clear() {
            return this._trans("readwrite", (e => this.core.mutate({
                trans: e,
                type: "deleteRange",
                range: Rt
            }))).then((e => e.numFailures ? We.reject(e.failures[0]) : void 0))
        }
        bulkGet(e) {
            return this._trans("readonly", (t => this.core.getMany({
                keys: e,
                trans: t
            }).then((e => e.map((e => this.hook.reading.fire(e)))))))
        }
        bulkAdd(e, t, n) {
            const r = Array.isArray(t) ? t : void 0,
                i = (n = n || (r ? void 0 : t)) ? n.allKeys : void 0;
            return this._trans("readwrite", (t => {
                const {
                    auto: n,
                    keyPath: o
                } = this.schema.primKey;
                if (o && r) throw new ue.InvalidArgument("bulkAdd(): keys argument invalid on tables with inbound keys");
                if (r && r.length !== e.length) throw new ue.InvalidArgument("Arguments objects and keys must have the same length");
                const s = e.length;
                let a = o && n ? e.map(It(o)) : e;
                return this.core.mutate({
                    trans: t,
                    type: "add",
                    keys: r,
                    values: a,
                    wantResults: i
                }).then((({
                    numFailures: e,
                    results: t,
                    lastResult: n,
                    failures: r
                }) => {
                    if (0 === e) return i ? t : n;
                    throw new ae(`${this.name}.bulkAdd(): ${e} of ${s} operations failed`, r)
                }))
            }))
        }
        bulkPut(e, t, n) {
            const r = Array.isArray(t) ? t : void 0,
                i = (n = n || (r ? void 0 : t)) ? n.allKeys : void 0;
            return this._trans("readwrite", (t => {
                const {
                    auto: n,
                    keyPath: o
                } = this.schema.primKey;
                if (o && r) throw new ue.InvalidArgument("bulkPut(): keys argument invalid on tables with inbound keys");
                if (r && r.length !== e.length) throw new ue.InvalidArgument("Arguments objects and keys must have the same length");
                const s = e.length;
                let a = o && n ? e.map(It(o)) : e;
                return this.core.mutate({
                    trans: t,
                    type: "put",
                    keys: r,
                    values: a,
                    wantResults: i
                }).then((({
                    numFailures: e,
                    results: t,
                    lastResult: n,
                    failures: r
                }) => {
                    if (0 === e) return i ? t : n;
                    throw new ae(`${this.name}.bulkPut(): ${e} of ${s} operations failed`, r)
                }))
            }))
        }
        bulkDelete(e) {
            const t = e.length;
            return this._trans("readwrite", (t => this.core.mutate({
                trans: t,
                type: "delete",
                keys: e
            }))).then((({
                numFailures: e,
                lastResult: n,
                failures: r
            }) => {
                if (0 === e) return n;
                throw new ae(`${this.name}.bulkDelete(): ${e} of ${t} operations failed`, r)
            }))
        }
    }

    function Bt(e) {
        var t = {},
            n = function(n, r) {
                if (r) {
                    for (var i = arguments.length, o = new Array(i - 1); --i;) o[i - 1] = arguments[i];
                    return t[n].subscribe.apply(null, o), e
                }
                if ("string" == typeof n) return t[n]
            };
        n.addEventType = o;
        for (var r = 1, i = arguments.length; r < i; ++r) o(arguments[r]);
        return n;

        function o(e, r, i) {
            if ("object" == typeof e) return s(e);
            r || (r = we), i || (i = fe);
            var o = {
                subscribers: [],
                fire: i,
                subscribe: function(e) {
                    -1 === o.subscribers.indexOf(e) && (o.subscribers.push(e), o.fire = r(o.fire, e))
                },
                unsubscribe: function(e) {
                    o.subscribers = o.subscribers.filter((function(t) {
                        return t !== e
                    })), o.fire = o.subscribers.reduce(r, i)
                }
            };
            return t[e] = n[e] = o, o
        }

        function s(e) {
            p(e).forEach((function(t) {
                var n = e[t];
                if (m(n)) o(t, e[t][0], e[t][1]);
                else {
                    if ("asap" !== n) throw new ue.InvalidArgument("Invalid event config");
                    var r = o(t, pe, (function() {
                        for (var e = arguments.length, t = new Array(e); e--;) t[e] = arguments[e];
                        r.subscribers.forEach((function(e) {
                            D((function() {
                                e.apply(null, t)
                            }))
                        }))
                    }))
                }
            }))
        }
    }

    function Nt(e, t) {
        return C(t).from({
            prototype: e
        }), t
    }

    function qt(e, t) {
        return !(e.filter || e.algorithm || e.or) && (t ? e.justLimit : !e.replayFilter)
    }

    function Ft(e, t) {
        e.filter = Mt(e.filter, t)
    }

    function Ut(e, t, n) {
        var r = e.replayFilter;
        e.replayFilter = r ? () => Mt(r(), t()) : t, e.justLimit = n && !r
    }

    function Lt(e, t) {
        if (e.isPrimKey) return t.primaryKey;
        const n = t.getIndexByKeyPath(e.index);
        if (!n) throw new ue.Schema("KeyPath " + e.index + " on object store " + t.name + " is not indexed");
        return n
    }

    function Wt(e, t, n) {
        const r = Lt(e, t.schema);
        return t.openCursor({
            trans: n,
            values: !e.keysOnly,
            reverse: "prev" === e.dir,
            unique: !!e.unique,
            query: {
                index: r,
                range: e.range
            }
        })
    }

    function zt(e, t, n, r) {
        const i = e.replayFilter ? Mt(e.filter, e.replayFilter()) : e.filter;
        if (e.or) {
            const o = {},
                s = (e, n, r) => {
                    if (!i || i(n, r, (e => n.stop(e)), (e => n.fail(e)))) {
                        var s = n.primaryKey,
                            a = "" + s;
                        "[object ArrayBuffer]" === a && (a = "" + new Uint8Array(s)), b(o, a) || (o[a] = !0, t(e, n, r))
                    }
                };
            return Promise.all([e.or._iterate(s, n), Yt(Wt(e, r, n), e.algorithm, s, !e.keysOnly && e.valueMapper)])
        }
        return Yt(Wt(e, r, n), Mt(e.algorithm, i), t, !e.keysOnly && e.valueMapper)
    }

    function Yt(e, t, n, r) {
        var i = it(r ? (e, t, i) => n(r(e), t, i) : n);
        return e.then((e => {
            if (e) return e.start((() => {
                var n = () => e.continue();
                t && !t(e, (e => n = e), (t => {
                    e.stop(t), n = fe
                }), (t => {
                    e.fail(t), n = fe
                })) || i(e.value, e, (e => n = e)), n()
            }))
        }))
    }

    function Vt(e, t) {
        try {
            const n = $t(e),
                r = $t(t);
            if (n !== r) return "Array" === n ? 1 : "Array" === r ? -1 : "binary" === n ? 1 : "binary" === r ? -1 : "string" === n ? 1 : "string" === r ? -1 : "Date" === n ? 1 : "Date" !== r ? NaN : -1;
            switch (n) {
                case "number":
                case "Date":
                case "string":
                    return e > t ? 1 : e < t ? -1 : 0;
                case "binary":
                    return function(e, t) {
                        const n = e.length,
                            r = t.length,
                            i = n < r ? n : r;
                        for (let n = 0; n < i; ++n)
                            if (e[n] !== t[n]) return e[n] < t[n] ? -1 : 1;
                        return n === r ? 0 : n < r ? -1 : 1
                    }(Qt(e), Qt(t));
                case "Array":
                    return function(e, t) {
                        const n = e.length,
                            r = t.length,
                            i = n < r ? n : r;
                        for (let n = 0; n < i; ++n) {
                            const r = Vt(e[n], t[n]);
                            if (0 !== r) return r
                        }
                        return n === r ? 0 : n < r ? -1 : 1
                    }(e, t)
            }
        } catch (e) {}
        return NaN
    }

    function $t(e) {
        const t = typeof e;
        if ("object" !== t) return t;
        if (ArrayBuffer.isView(e)) return "binary";
        const n = W(e);
        return "ArrayBuffer" === n ? "binary" : n
    }

    function Qt(e) {
        return e instanceof Uint8Array ? e : ArrayBuffer.isView(e) ? new Uint8Array(e.buffer, e.byteOffset, e.byteLength) : new Uint8Array(e)
    }
    class Jt {
        _read(e, t) {
            var n = this._ctx;
            return n.error ? n.table._trans(null, xt.bind(null, n.error)) : n.table._trans("readonly", e).then(t)
        }
        _write(e) {
            var t = this._ctx;
            return t.error ? t.table._trans(null, xt.bind(null, t.error)) : t.table._trans("readwrite", e, "locked")
        }
        _addAlgorithm(e) {
            var t = this._ctx;
            t.algorithm = Mt(t.algorithm, e)
        }
        _iterate(e, t) {
            return zt(this._ctx, e, t, this._ctx.table.core)
        }
        clone(e) {
            var t = Object.create(this.constructor.prototype),
                n = Object.create(this._ctx);
            return e && y(n, e), t._ctx = n, t
        }
        raw() {
            return this._ctx.valueMapper = null, this
        }
        each(e) {
            var t = this._ctx;
            return this._read((n => zt(t, e, n, t.table.core)))
        }
        count(e) {
            return this._read((e => {
                const t = this._ctx,
                    n = t.table.core;
                if (qt(t, !0)) return n.count({
                    trans: e,
                    query: {
                        index: Lt(t, n.schema),
                        range: t.range
                    }
                }).then((e => Math.min(e, t.limit)));
                var r = 0;
                return zt(t, (() => (++r, !1)), e, n).then((() => r))
            })).then(e)
        }
        sortBy(e, t) {
            const n = e.split(".").reverse(),
                r = n[0],
                i = n.length - 1;

            function o(e, t) {
                return t ? o(e[n[t]], t - 1) : e[r]
            }
            var s = "next" === this._ctx.dir ? 1 : -1;

            function a(e, t) {
                var n = o(e, i),
                    r = o(t, i);
                return n < r ? -s : n > r ? s : 0
            }
            return this.toArray((function(e) {
                return e.sort(a)
            })).then(t)
        }
        toArray(e) {
            return this._read((e => {
                var t = this._ctx;
                if ("next" === t.dir && qt(t, !0) && t.limit > 0) {
                    const {
                        valueMapper: n
                    } = t, r = Lt(t, t.table.core.schema);
                    return t.table.core.query({
                        trans: e,
                        limit: t.limit,
                        values: !0,
                        query: {
                            index: r,
                            range: t.range
                        }
                    }).then((({
                        result: e
                    }) => n ? e.map(n) : e))
                } {
                    const n = [];
                    return zt(t, (e => n.push(e)), e, t.table.core).then((() => n))
                }
            }), e)
        }
        offset(e) {
            var t = this._ctx;
            return e <= 0 || (t.offset += e, qt(t) ? Ut(t, (() => {
                var t = e;
                return (e, n) => 0 === t || (1 === t ? (--t, !1) : (n((() => {
                    e.advance(t), t = 0
                })), !1))
            })) : Ut(t, (() => {
                var t = e;
                return () => --t < 0
            }))), this
        }
        limit(e) {
            return this._ctx.limit = Math.min(this._ctx.limit, e), Ut(this._ctx, (() => {
                var t = e;
                return function(e, n, r) {
                    return --t <= 0 && n(r), t >= 0
                }
            }), !0), this
        }
        until(e, t) {
            return Ft(this._ctx, (function(n, r, i) {
                return !e(n.value) || (r(i), t)
            })), this
        }
        first(e) {
            return this.limit(1).toArray((function(e) {
                return e[0]
            })).then(e)
        }
        last(e) {
            return this.reverse().first(e)
        }
        filter(e) {
            var t, n;
            return Ft(this._ctx, (function(t) {
                return e(t.value)
            })), t = this._ctx, n = e, t.isMatch = Mt(t.isMatch, n), this
        }
        and(e) {
            return this.filter(e)
        }
        or(e) {
            return new this.db.WhereClause(this._ctx.table, e, this)
        }
        reverse() {
            return this._ctx.dir = "prev" === this._ctx.dir ? "next" : "prev", this._ondirectionchange && this._ondirectionchange(this._ctx.dir), this
        }
        desc() {
            return this.reverse()
        }
        eachKey(e) {
            var t = this._ctx;
            return t.keysOnly = !t.isMatch, this.each((function(t, n) {
                e(n.key, n)
            }))
        }
        eachUniqueKey(e) {
            return this._ctx.unique = "unique", this.eachKey(e)
        }
        eachPrimaryKey(e) {
            var t = this._ctx;
            return t.keysOnly = !t.isMatch, this.each((function(t, n) {
                e(n.primaryKey, n)
            }))
        }
        keys(e) {
            var t = this._ctx;
            t.keysOnly = !t.isMatch;
            var n = [];
            return this.each((function(e, t) {
                n.push(t.key)
            })).then((function() {
                return n
            })).then(e)
        }
        primaryKeys(e) {
            var t = this._ctx;
            if ("next" === t.dir && qt(t, !0) && t.limit > 0) return this._read((e => {
                var n = Lt(t, t.table.core.schema);
                return t.table.core.query({
                    trans: e,
                    values: !1,
                    limit: t.limit,
                    query: {
                        index: n,
                        range: t.range
                    }
                })
            })).then((({
                result: e
            }) => e)).then(e);
            t.keysOnly = !t.isMatch;
            var n = [];
            return this.each((function(e, t) {
                n.push(t.primaryKey)
            })).then((function() {
                return n
            })).then(e)
        }
        uniqueKeys(e) {
            return this._ctx.unique = "unique", this.keys(e)
        }
        firstKey(e) {
            return this.limit(1).keys((function(e) {
                return e[0]
            })).then(e)
        }
        lastKey(e) {
            return this.reverse().firstKey(e)
        }
        distinct() {
            var e = this._ctx,
                t = e.index && e.table.schema.idxByName[e.index];
            if (!t || !t.multi) return this;
            var n = {};
            return Ft(this._ctx, (function(e) {
                var t = e.primaryKey.toString(),
                    r = b(n, t);
                return n[t] = !0, !r
            })), this
        }
        modify(e) {
            var t = this._ctx;
            return this._write((n => {
                var r;
                if ("function" == typeof e) r = e;
                else {
                    var i = p(e),
                        o = i.length;
                    r = function(t) {
                        for (var n = !1, r = 0; r < o; ++r) {
                            var s = i[r],
                                a = e[s];
                            j(t, s) !== a && (M(t, s, a), n = !0)
                        }
                        return n
                    }
                }
                const s = t.table.core,
                    {
                        outbound: a,
                        extractKey: c
                    } = s.schema.primaryKey,
                    l = this.db._options.modifyChunkSize || 200,
                    u = [];
                let d = 0;
                const h = [],
                    f = (e, t) => {
                        const {
                            failures: n,
                            numFailures: r
                        } = t;
                        d += e - r;
                        for (let e of p(n)) u.push(n[e])
                    };
                return this.clone().primaryKeys().then((i => {
                    const o = u => {
                        const d = Math.min(l, i.length - u);
                        return s.getMany({
                            trans: n,
                            keys: i.slice(u, u + d),
                            cache: "immutable"
                        }).then((h => {
                            const p = [],
                                m = [],
                                y = a ? [] : null,
                                v = [];
                            for (let e = 0; e < d; ++e) {
                                const t = h[e],
                                    n = {
                                        value: F(t),
                                        primKey: i[u + e]
                                    };
                                !1 !== r.call(n, n.value, n) && (null == n.value ? v.push(i[u + e]) : a || 0 === Vt(c(t), c(n.value)) ? (m.push(n.value), a && y.push(i[u + e])) : (v.push(i[u + e]), p.push(n.value)))
                            }
                            const g = qt(t) && t.limit === 1 / 0 && ("function" != typeof e || e === Ht) && {
                                index: t.index,
                                range: t.range
                            };
                            return Promise.resolve(p.length > 0 && s.mutate({
                                trans: n,
                                type: "add",
                                values: p
                            }).then((e => {
                                for (let t in e.failures) v.splice(parseInt(t), 1);
                                f(p.length, e)
                            }))).then((() => (m.length > 0 || g && "object" == typeof e) && s.mutate({
                                trans: n,
                                type: "put",
                                keys: y,
                                values: m,
                                criteria: g,
                                changeSpec: "function" != typeof e && e
                            }).then((e => f(m.length, e))))).then((() => (v.length > 0 || g && e === Ht) && s.mutate({
                                trans: n,
                                type: "delete",
                                keys: v,
                                criteria: g
                            }).then((e => f(v.length, e))))).then((() => i.length > u + d && o(u + l)))
                        }))
                    };
                    return o(0).then((() => {
                        if (u.length > 0) throw new se("Error modifying one or more objects", u, d, h);
                        return i.length
                    }))
                }))
            }))
        }
        delete() {
            var e = this._ctx,
                t = e.range;
            return qt(e) && (e.isPrimKey && !Kt || 3 === t.type) ? this._write((n => {
                const {
                    primaryKey: r
                } = e.table.core.schema, i = t;
                return e.table.core.count({
                    trans: n,
                    query: {
                        index: r,
                        range: i
                    }
                }).then((t => e.table.core.mutate({
                    trans: n,
                    type: "deleteRange",
                    range: i
                }).then((({
                    failures: e,
                    lastResult: n,
                    results: r,
                    numFailures: i
                }) => {
                    if (i) throw new se("Could not delete some values", Object.keys(e).map((t => e[t])), t - i);
                    return t - i
                }))))
            })) : this.modify(Ht)
        }
    }
    const Ht = (e, t) => t.value = null;

    function Xt(e, t) {
        return e < t ? -1 : e === t ? 0 : 1
    }

    function Gt(e, t) {
        return e > t ? -1 : e === t ? 0 : 1
    }

    function Zt(e, t, n) {
        var r = e instanceof sn ? new e.Collection(e) : e;
        return r._ctx.error = n ? new n(t) : new TypeError(t), r
    }

    function en(e) {
        return new e.Collection(e, (() => on(""))).limit(0)
    }

    function tn(e, t, n, r, i, o) {
        for (var s = Math.min(e.length, r.length), a = -1, c = 0; c < s; ++c) {
            var l = t[c];
            if (l !== r[c]) return i(e[c], n[c]) < 0 ? e.substr(0, c) + n[c] + n.substr(c + 1) : i(e[c], r[c]) < 0 ? e.substr(0, c) + r[c] + n.substr(c + 1) : a >= 0 ? e.substr(0, a) + t[a] + n.substr(a + 1) : null;
            i(e[c], l) < 0 && (a = c)
        }
        return s < r.length && "next" === o ? e + n.substr(e.length) : s < e.length && "prev" === o ? e.substr(0, n.length) : a < 0 ? null : e.substr(0, a) + r[a] + n.substr(a + 1)
    }

    function nn(e, t, n, r) {
        var i, o, s, a, c, l, u, d = n.length;
        if (!n.every((e => "string" == typeof e))) return Zt(e, "String expected.");

        function h(e) {
            i = function(e) {
                return "next" === e ? e => e.toUpperCase() : e => e.toLowerCase()
            }(e), o = function(e) {
                return "next" === e ? e => e.toLowerCase() : e => e.toUpperCase()
            }(e), s = "next" === e ? Xt : Gt;
            var t = n.map((function(e) {
                return {
                    lower: o(e),
                    upper: i(e)
                }
            })).sort((function(e, t) {
                return s(e.lower, t.lower)
            }));
            a = t.map((function(e) {
                return e.upper
            })), c = t.map((function(e) {
                return e.lower
            })), l = e, u = "next" === e ? "" : r
        }
        h("next");
        var f = new e.Collection(e, (() => rn(a[0], c[d - 1] + r)));
        f._ondirectionchange = function(e) {
            h(e)
        };
        var p = 0;
        return f._addAlgorithm((function(e, n, r) {
            var i = e.key;
            if ("string" != typeof i) return !1;
            var h = o(i);
            if (t(h, c, p)) return !0;
            for (var f = null, m = p; m < d; ++m) {
                var y = tn(i, h, a[m], c[m], s, l);
                null === y && null === f ? p = m + 1 : (null === f || s(f, y) > 0) && (f = y)
            }
            return n(null !== f ? function() {
                e.continue(f + u)
            } : r), !1
        })), f
    }

    function rn(e, t, n, r) {
        return {
            type: 2,
            lower: e,
            upper: t,
            lowerOpen: n,
            upperOpen: r
        }
    }

    function on(e) {
        return {
            type: 1,
            lower: e,
            upper: e
        }
    }
    class sn {
        get Collection() {
            return this._ctx.table.db.Collection
        }
        between(e, t, n, r) {
            n = !1 !== n, r = !0 === r;
            try {
                return this._cmp(e, t) > 0 || 0 === this._cmp(e, t) && (n || r) && (!n || !r) ? en(this) : new this.Collection(this, (() => rn(e, t, !n, !r)))
            } catch (e) {
                return Zt(this, St)
            }
        }
        equals(e) {
            return null == e ? Zt(this, St) : new this.Collection(this, (() => on(e)))
        }
        above(e) {
            return null == e ? Zt(this, St) : new this.Collection(this, (() => rn(e, void 0, !0)))
        }
        aboveOrEqual(e) {
            return null == e ? Zt(this, St) : new this.Collection(this, (() => rn(e, void 0, !1)))
        }
        below(e) {
            return null == e ? Zt(this, St) : new this.Collection(this, (() => rn(void 0, e, !1, !0)))
        }
        belowOrEqual(e) {
            return null == e ? Zt(this, St) : new this.Collection(this, (() => rn(void 0, e)))
        }
        startsWith(e) {
            return "string" != typeof e ? Zt(this, "String expected.") : this.between(e, e + Ot, !0, !0)
        }
        startsWithIgnoreCase(e) {
            return "" === e ? this.startsWith(e) : nn(this, ((e, t) => 0 === e.indexOf(t[0])), [e], Ot)
        }
        equalsIgnoreCase(e) {
            return nn(this, ((e, t) => e === t[0]), [e], "")
        }
        anyOfIgnoreCase() {
            var e = $.apply(V, arguments);
            return 0 === e.length ? en(this) : nn(this, ((e, t) => -1 !== t.indexOf(e)), e, "")
        }
        startsWithAnyOfIgnoreCase() {
            var e = $.apply(V, arguments);
            return 0 === e.length ? en(this) : nn(this, ((e, t) => t.some((t => 0 === e.indexOf(t)))), e, Ot)
        }
        anyOf() {
            const e = $.apply(V, arguments);
            let t = this._cmp;
            try {
                e.sort(t)
            } catch (e) {
                return Zt(this, St)
            }
            if (0 === e.length) return en(this);
            const n = new this.Collection(this, (() => rn(e[0], e[e.length - 1])));
            n._ondirectionchange = n => {
                t = "next" === n ? this._ascending : this._descending, e.sort(t)
            };
            let r = 0;
            return n._addAlgorithm(((n, i, o) => {
                const s = n.key;
                for (; t(s, e[r]) > 0;)
                    if (++r, r === e.length) return i(o), !1;
                return 0 === t(s, e[r]) || (i((() => {
                    n.continue(e[r])
                })), !1)
            })), n
        }
        notEqual(e) {
            return this.inAnyRange([
                [-1 / 0, e],
                [e, this.db._maxKey]
            ], {
                includeLowers: !1,
                includeUppers: !1
            })
        }
        noneOf() {
            const e = $.apply(V, arguments);
            if (0 === e.length) return new this.Collection(this);
            try {
                e.sort(this._ascending)
            } catch (e) {
                return Zt(this, St)
            }
            const t = e.reduce(((e, t) => e ? e.concat([
                [e[e.length - 1][1], t]
            ]) : [
                [-1 / 0, t]
            ]), null);
            return t.push([e[e.length - 1], this.db._maxKey]), this.inAnyRange(t, {
                includeLowers: !1,
                includeUppers: !1
            })
        }
        inAnyRange(e, t) {
            const n = this._cmp,
                r = this._ascending,
                i = this._descending,
                o = this._min,
                s = this._max;
            if (0 === e.length) return en(this);
            if (!e.every((e => void 0 !== e[0] && void 0 !== e[1] && r(e[0], e[1]) <= 0))) return Zt(this, "First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower", ue.InvalidArgument);
            const a = !t || !1 !== t.includeLowers,
                c = t && !0 === t.includeUppers;
            let l, u = r;

            function d(e, t) {
                return u(e[0], t[0])
            }
            try {
                l = e.reduce((function(e, t) {
                    let r = 0,
                        i = e.length;
                    for (; r < i; ++r) {
                        const i = e[r];
                        if (n(t[0], i[1]) < 0 && n(t[1], i[0]) > 0) {
                            i[0] = o(i[0], t[0]), i[1] = s(i[1], t[1]);
                            break
                        }
                    }
                    return r === i && e.push(t), e
                }), []), l.sort(d)
            } catch (e) {
                return Zt(this, St)
            }
            let h = 0;
            const f = c ? e => r(e, l[h][1]) > 0 : e => r(e, l[h][1]) >= 0,
                p = a ? e => i(e, l[h][0]) > 0 : e => i(e, l[h][0]) >= 0;
            let m = f;
            const y = new this.Collection(this, (() => rn(l[0][0], l[l.length - 1][1], !a, !c)));
            return y._ondirectionchange = e => {
                "next" === e ? (m = f, u = r) : (m = p, u = i), l.sort(d)
            }, y._addAlgorithm(((e, t, n) => {
                for (var i = e.key; m(i);)
                    if (++h, h === l.length) return t(n), !1;
                return !! function(e) {
                    return !f(e) && !p(e)
                }(i) || (0 === this._cmp(i, l[h][1]) || 0 === this._cmp(i, l[h][0]) || t((() => {
                    u === r ? e.continue(l[h][0]) : e.continue(l[h][1])
                })), !1)
            })), y
        }
        startsWithAnyOf() {
            const e = $.apply(V, arguments);
            return e.every((e => "string" == typeof e)) ? 0 === e.length ? en(this) : this.inAnyRange(e.map((e => [e, e + Ot]))) : Zt(this, "startsWithAnyOf() only works with strings")
        }
    }

    function an(e) {
        return it((function(t) {
            return cn(t), e(t.target.error), !1
        }))
    }

    function cn(e) {
        e.stopPropagation && e.stopPropagation(), e.preventDefault && e.preventDefault()
    }
    const ln = Bt(null, "storagemutated");
    class un {
        _lock() {
            return A(!qe.global), ++this._reculock, 1 !== this._reculock || qe.global || (qe.lockOwnerFor = this), this
        }
        _unlock() {
            if (A(!qe.global), 0 == --this._reculock)
                for (qe.global || (qe.lockOwnerFor = null); this._blockedFuncs.length > 0 && !this._locked();) {
                    var e = this._blockedFuncs.shift();
                    try {
                        bt(e[1], e[0])
                    } catch (e) {}
                }
            return this
        }
        _locked() {
            return this._reculock && qe.lockOwnerFor !== this
        }
        create(e) {
            if (!this.mode) return this;
            const t = this.db.idbdb,
                n = this.db._state.dbOpenError;
            if (A(!this.idbtrans), !e && !t) switch (n && n.name) {
                case "DatabaseClosedError":
                    throw new ue.DatabaseClosed(n);
                case "MissingAPIError":
                    throw new ue.MissingAPI(n.message, n);
                default:
                    throw new ue.OpenFailed(n)
            }
            if (!this.active) throw new ue.TransactionInactive;
            return A(null === this._completion._state), (e = this.idbtrans = e || (this.db.core ? this.db.core.transaction(this.storeNames, this.mode, {
                durability: this.chromeTransactionDurability
            }) : t.transaction(this.storeNames, this.mode, {
                durability: this.chromeTransactionDurability
            }))).onerror = it((t => {
                cn(t), this._reject(e.error)
            })), e.onabort = it((t => {
                cn(t), this.active && this._reject(new ue.Abort(e.error)), this.active = !1, this.on("abort").fire(t)
            })), e.oncomplete = it((() => {
                this.active = !1, this._resolve(), "mutatedParts" in e && ln.storagemutated.fire(e.mutatedParts)
            })), this
        }
        _promise(e, t, n) {
            if ("readwrite" === e && "readwrite" !== this.mode) return xt(new ue.ReadOnly("Transaction is readonly"));
            if (!this.active) return xt(new ue.TransactionInactive);
            if (this._locked()) return new We(((r, i) => {
                this._blockedFuncs.push([() => {
                    this._promise(e, t, n).then(r, i)
                }, qe])
            }));
            if (n) return dt((() => {
                var e = new We(((e, n) => {
                    this._lock();
                    const r = t(e, n, this);
                    r && r.then && r.then(e, n)
                }));
                return e.finally((() => this._unlock())), e._lib = !0, e
            }));
            var r = new We(((e, n) => {
                var r = t(e, n, this);
                r && r.then && r.then(e, n)
            }));
            return r._lib = !0, r
        }
        _root() {
            return this.parent ? this.parent._root() : this
        }
        waitFor(e) {
            var t = this._root();
            const n = We.resolve(e);
            if (t._waitingFor) t._waitingFor = t._waitingFor.then((() => n));
            else {
                t._waitingFor = n, t._waitingQueue = [];
                var r = t.idbtrans.objectStore(t.storeNames[0]);
                ! function e() {
                    for (++t._spinCount; t._waitingQueue.length;) t._waitingQueue.shift()();
                    t._waitingFor && (r.get(-1 / 0).onsuccess = e)
                }()
            }
            var i = t._waitingFor;
            return new We(((e, r) => {
                n.then((n => t._waitingQueue.push(it(e.bind(null, n)))), (e => t._waitingQueue.push(it(r.bind(null, e))))).finally((() => {
                    t._waitingFor === i && (t._waitingFor = null)
                }))
            }))
        }
        abort() {
            this.active && (this.active = !1, this.idbtrans && this.idbtrans.abort(), this._reject(new ue.Abort))
        }
        table(e) {
            const t = this._memoizedTables || (this._memoizedTables = {});
            if (b(t, e)) return t[e];
            const n = this.schema[e];
            if (!n) throw new ue.NotFound("Table " + e + " not part of transaction");
            const r = new this.db.Table(e, n, this);
            return r.core = this.db.core.table(e), t[e] = r, r
        }
    }

    function dn(e, t, n, r, i, o, s) {
        return {
            name: e,
            keyPath: t,
            unique: n,
            multi: r,
            auto: i,
            compound: o,
            src: (n && !s ? "&" : "") + (r ? "*" : "") + (i ? "++" : "") + hn(t)
        }
    }

    function hn(e) {
        return "string" == typeof e ? e : e ? "[" + [].join.call(e, "+") + "]" : ""
    }

    function fn(e, t, n) {
        return {
            name: e,
            primKey: t,
            indexes: n,
            mappedClass: null,
            idxByName: K(n, (e => [e.name, e]))
        }
    }
    let pn = e => {
        try {
            return e.only([
                []
            ]), pn = () => [
                []
            ], [
                []
            ]
        } catch (e) {
            return pn = () => Ot, Ot
        }
    };

    function mn(e) {
        return null == e ? () => {} : "string" == typeof e ? function(e) {
            return 1 === e.split(".").length ? t => t[e] : t => j(t, e)
        }(e) : t => j(t, e)
    }

    function yn(e) {
        return [].slice.call(e)
    }
    let vn = 0;

    function gn(e) {
        return null == e ? ":id" : "string" == typeof e ? e : `[${e.join("+")}]`
    }

    function bn(e, t, n) {
        function r(e) {
            if (3 === e.type) return null;
            if (4 === e.type) throw new Error("Cannot convert never type to IDBKeyRange");
            const {
                lower: n,
                upper: r,
                lowerOpen: i,
                upperOpen: o
            } = e;
            return void 0 === n ? void 0 === r ? null : t.upperBound(r, !!o) : void 0 === r ? t.lowerBound(n, !!i) : t.bound(n, r, !!i, !!o)
        }
        const {
            schema: i,
            hasGetAll: o
        } = function(e, t) {
            const n = yn(e.objectStoreNames);
            return {
                schema: {
                    name: e.name,
                    tables: n.map((e => t.objectStore(e))).map((e => {
                        const {
                            keyPath: t,
                            autoIncrement: n
                        } = e, r = m(t), i = null == t, o = {}, s = {
                            name: e.name,
                            primaryKey: {
                                name: null,
                                isPrimaryKey: !0,
                                outbound: i,
                                compound: r,
                                keyPath: t,
                                autoIncrement: n,
                                unique: !0,
                                extractKey: mn(t)
                            },
                            indexes: yn(e.indexNames).map((t => e.index(t))).map((e => {
                                const {
                                    name: t,
                                    unique: n,
                                    multiEntry: r,
                                    keyPath: i
                                } = e, s = {
                                    name: t,
                                    compound: m(i),
                                    keyPath: i,
                                    unique: n,
                                    multiEntry: r,
                                    extractKey: mn(i)
                                };
                                return o[gn(i)] = s, s
                            })),
                            getIndexByKeyPath: e => o[gn(e)]
                        };
                        return o[":id"] = s.primaryKey, null != t && (o[gn(t)] = s.primaryKey), s
                    }))
                },
                hasGetAll: n.length > 0 && "getAll" in t.objectStore(n[0]) && !("undefined" != typeof navigator && /Safari/.test(navigator.userAgent) && !/(Chrome\/|Edge\/)/.test(navigator.userAgent) && [].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1] < 604)
            }
        }(e, n), s = i.tables.map((e => function(e) {
            const t = e.name;
            return {
                name: t,
                schema: e,
                mutate: function({
                    trans: e,
                    type: n,
                    keys: i,
                    values: o,
                    range: s
                }) {
                    return new Promise(((a, c) => {
                        a = it(a);
                        const l = e.objectStore(t),
                            u = null == l.keyPath,
                            d = "put" === n || "add" === n;
                        if (!d && "delete" !== n && "deleteRange" !== n) throw new Error("Invalid operation type: " + n);
                        const {
                            length: h
                        } = i || o || {
                            length: 1
                        };
                        if (i && o && i.length !== o.length) throw new Error("Given keys array must have same length as given values array.");
                        if (0 === h) return a({
                            numFailures: 0,
                            failures: {},
                            results: [],
                            lastResult: void 0
                        });
                        let f;
                        const p = [],
                            m = [];
                        let y = 0;
                        const v = e => {
                            ++y, cn(e)
                        };
                        if ("deleteRange" === n) {
                            if (4 === s.type) return a({
                                numFailures: y,
                                failures: m,
                                results: [],
                                lastResult: void 0
                            });
                            3 === s.type ? p.push(f = l.clear()) : p.push(f = l.delete(r(s)))
                        } else {
                            const [e, t] = d ? u ? [o, i] : [o, null] : [i, null];
                            if (d)
                                for (let r = 0; r < h; ++r) p.push(f = t && void 0 !== t[r] ? l[n](e[r], t[r]) : l[n](e[r])), f.onerror = v;
                            else
                                for (let t = 0; t < h; ++t) p.push(f = l[n](e[t])), f.onerror = v
                        }
                        const g = e => {
                            const t = e.target.result;
                            p.forEach(((e, t) => null != e.error && (m[t] = e.error))), a({
                                numFailures: y,
                                failures: m,
                                results: "delete" === n ? i : p.map((e => e.result)),
                                lastResult: t
                            })
                        };
                        f.onerror = e => {
                            v(e), g(e)
                        }, f.onsuccess = g
                    }))
                },
                getMany: ({
                    trans: e,
                    keys: n
                }) => new Promise(((r, i) => {
                    r = it(r);
                    const o = e.objectStore(t),
                        s = n.length,
                        a = new Array(s);
                    let c, l = 0,
                        u = 0;
                    const d = e => {
                            const t = e.target;
                            a[t._pos] = t.result, ++u === l && r(a)
                        },
                        h = an(i);
                    for (let e = 0; e < s; ++e) null != n[e] && (c = o.get(n[e]), c._pos = e, c.onsuccess = d, c.onerror = h, ++l);
                    0 === l && r(a)
                })),
                get: ({
                    trans: e,
                    key: n
                }) => new Promise(((r, i) => {
                    r = it(r);
                    const o = e.objectStore(t).get(n);
                    o.onsuccess = e => r(e.target.result), o.onerror = an(i)
                })),
                query: function(e) {
                    return n => new Promise(((i, o) => {
                        i = it(i);
                        const {
                            trans: s,
                            values: a,
                            limit: c,
                            query: l
                        } = n, u = c === 1 / 0 ? void 0 : c, {
                            index: d,
                            range: h
                        } = l, f = s.objectStore(t), p = d.isPrimaryKey ? f : f.index(d.name), m = r(h);
                        if (0 === c) return i({
                            result: []
                        });
                        if (e) {
                            const e = a ? p.getAll(m, u) : p.getAllKeys(m, u);
                            e.onsuccess = e => i({
                                result: e.target.result
                            }), e.onerror = an(o)
                        } else {
                            let e = 0;
                            const t = a || !("openKeyCursor" in p) ? p.openCursor(m) : p.openKeyCursor(m),
                                n = [];
                            t.onsuccess = r => {
                                const o = t.result;
                                return o ? (n.push(a ? o.value : o.primaryKey), ++e === c ? i({
                                    result: n
                                }) : void o.continue()) : i({
                                    result: n
                                })
                            }, t.onerror = an(o)
                        }
                    }))
                }(o),
                openCursor: function({
                    trans: e,
                    values: n,
                    query: i,
                    reverse: o,
                    unique: s
                }) {
                    return new Promise(((a, c) => {
                        a = it(a);
                        const {
                            index: l,
                            range: u
                        } = i, d = e.objectStore(t), h = l.isPrimaryKey ? d : d.index(l.name), f = o ? s ? "prevunique" : "prev" : s ? "nextunique" : "next", p = n || !("openKeyCursor" in h) ? h.openCursor(r(u), f) : h.openKeyCursor(r(u), f);
                        p.onerror = an(c), p.onsuccess = it((t => {
                            const n = p.result;
                            if (!n) return void a(null);
                            n.___id = ++vn, n.done = !1;
                            const r = n.continue.bind(n);
                            let i = n.continuePrimaryKey;
                            i && (i = i.bind(n));
                            const o = n.advance.bind(n),
                                s = () => {
                                    throw new Error("Cursor not stopped")
                                };
                            n.trans = e, n.stop = n.continue = n.continuePrimaryKey = n.advance = () => {
                                throw new Error("Cursor not started")
                            }, n.fail = it(c), n.next = function() {
                                let e = 1;
                                return this.start((() => e-- ? this.continue() : this.stop())).then((() => this))
                            }, n.start = e => {
                                const t = new Promise(((e, t) => {
                                        e = it(e), p.onerror = an(t), n.fail = t, n.stop = t => {
                                            n.stop = n.continue = n.continuePrimaryKey = n.advance = s, e(t)
                                        }
                                    })),
                                    a = () => {
                                        if (p.result) try {
                                            e()
                                        } catch (e) {
                                            n.fail(e)
                                        } else n.done = !0, n.start = () => {
                                            throw new Error("Cursor behind last entry")
                                        }, n.stop()
                                    };
                                return p.onsuccess = it((e => {
                                    p.onsuccess = a, a()
                                })), n.continue = r, n.continuePrimaryKey = i, n.advance = o, a(), t
                            }, a(n)
                        }), c)
                    }))
                },
                count({
                    query: e,
                    trans: n
                }) {
                    const {
                        index: i,
                        range: o
                    } = e;
                    return new Promise(((e, s) => {
                        const a = n.objectStore(t),
                            c = i.isPrimaryKey ? a : a.index(i.name),
                            l = r(o),
                            u = l ? c.count(l) : c.count();
                        u.onsuccess = it((t => e(t.target.result))), u.onerror = an(s)
                    }))
                }
            }
        }(e))), a = {};
        return s.forEach((e => a[e.name] = e)), {
            stack: "dbcore",
            transaction: e.transaction.bind(e),
            table(e) {
                if (!a[e]) throw new Error(`Table '${e}' not found`);
                return a[e]
            },
            MIN_KEY: -1 / 0,
            MAX_KEY: pn(t),
            schema: i
        }
    }

    function wn({
        _novip: e
    }, t) {
        const n = t.db,
            r = function(e, t, {
                IDBKeyRange: n,
                indexedDB: r
            }, i) {
                const o = function(e, t) {
                    return t.reduce(((e, {
                        create: t
                    }) => ({...e, ...t(e)
                    })), e)
                }(bn(t, n, i), e.dbcore);
                return {
                    dbcore: o
                }
            }(e._middlewares, n, e._deps, t);
        e.core = r.dbcore, e.tables.forEach((t => {
            const n = t.name;
            e.core.schema.tables.some((e => e.name === n)) && (t.core = e.core.table(n), e[n] instanceof e.Table && (e[n].core = t.core))
        }))
    }

    function _n({
        _novip: e
    }, t, n, r) {
        n.forEach((n => {
            const i = r[n];
            t.forEach((t => {
                const r = P(t, n);
                (!r || "value" in r && void 0 === r.value) && (t === e.Transaction.prototype || t instanceof e.Transaction ? k(t, n, {
                    get() {
                        return this.table(n)
                    }, set(e) {
                        _(this, n, {
                            value: e,
                            writable: !0,
                            configurable: !0,
                            enumerable: !0
                        })
                    }
                }) : t[n] = new e.Table(n, i))
            }))
        }))
    }

    function kn({
        _novip: e
    }, t) {
        t.forEach((t => {
            for (let n in t) t[n] instanceof e.Table && delete t[n]
        }))
    }

    function Cn(e, t) {
        return e._cfg.version - t._cfg.version
    }

    function xn(e, t, n, r) {
        const i = e._dbSchema,
            o = e._createTransaction("readwrite", e._storeNames, i);
        o.create(n), o._completion.catch(r);
        const s = o._reject.bind(o),
            a = qe.transless || qe;
        dt((() => {
            qe.trans = o, qe.transless = a, 0 === t ? (p(i).forEach((e => {
                On(n, e, i[e].primKey, i[e].indexes)
            })), wn(e, n), We.follow((() => e.on.populate.fire(o))).catch(s)) : function({
                _novip: e
            }, t, n, r) {
                const i = [],
                    o = e._versions;
                let s = e._dbSchema = En(e, e.idbdb, r),
                    a = !1;
                return o.filter((e => e._cfg.version >= t)).forEach((o => {
                        i.push((() => {
                            const i = s,
                                c = o._cfg.dbschema;
                            An(e, i, r), An(e, c, r), s = e._dbSchema = c;
                            const l = Pn(i, c);
                            l.add.forEach((e => {
                                On(r, e[0], e[1].primKey, e[1].indexes)
                            })), l.change.forEach((e => {
                                if (e.recreate) throw new ue.Upgrade("Not yet support for changing primary key"); {
                                    const t = r.objectStore(e.name);
                                    e.add.forEach((e => Sn(t, e))), e.change.forEach((e => {
                                        t.deleteIndex(e.name), Sn(t, e)
                                    })), e.del.forEach((e => t.deleteIndex(e)))
                                }
                            }));
                            const u = o._cfg.contentUpgrade;
                            if (u && o._cfg.version > t) {
                                wn(e, r), n._memoizedTables = {}, a = !0;
                                let t = R(c);
                                l.del.forEach((e => {
                                    t[e] = i[e]
                                })), kn(e, [e.Transaction.prototype]), _n(e, [e.Transaction.prototype], p(t), t), n.schema = t;
                                const o = Q(u);
                                let s;
                                o && ht();
                                const d = We.follow((() => {
                                    if (s = u(n), s && o) {
                                        var e = ft.bind(null, null);
                                        s.then(e, e)
                                    }
                                }));
                                return s && "function" == typeof s.then ? We.resolve(s) : d.then((() => s))
                            }
                        })), i.push((t => {
                            a && Dt || function(e, t) {
                                [].slice.call(t.db.objectStoreNames).forEach((n => null == e[n] && t.db.deleteObjectStore(n)))
                            }(o._cfg.dbschema, t), kn(e, [e.Transaction.prototype]), _n(e, [e.Transaction.prototype], e._storeNames, e._dbSchema), n.schema = e._dbSchema
                        }))
                    })),
                    function e() {
                        return i.length ? We.resolve(i.shift()(n.idbtrans)).then(e) : We.resolve()
                    }().then((() => {
                        var e, t;
                        t = r, p(e = s).forEach((n => {
                            t.db.objectStoreNames.contains(n) || On(t, n, e[n].primKey, e[n].indexes)
                        }))
                    }))
            }(e, t, o, n).catch(s)
        }))
    }

    function Pn(e, t) {
        const n = {
            del: [],
            add: [],
            change: []
        };
        let r;
        for (r in e) t[r] || n.del.push(r);
        for (r in t) {
            const i = e[r],
                o = t[r];
            if (i) {
                const e = {
                    name: r,
                    def: o,
                    recreate: !1,
                    del: [],
                    add: [],
                    change: []
                };
                if ("" + (i.primKey.keyPath || "") != "" + (o.primKey.keyPath || "") || i.primKey.auto !== o.primKey.auto && !At) e.recreate = !0, n.change.push(e);
                else {
                    const t = i.idxByName,
                        r = o.idxByName;
                    let s;
                    for (s in t) r[s] || e.del.push(s);
                    for (s in r) {
                        const n = t[s],
                            i = r[s];
                        n ? n.src !== i.src && e.change.push(i) : e.add.push(i)
                    }(e.del.length > 0 || e.add.length > 0 || e.change.length > 0) && n.change.push(e)
                }
            } else n.add.push([r, o])
        }
        return n
    }

    function On(e, t, n, r) {
        const i = e.db.createObjectStore(t, n.keyPath ? {
            keyPath: n.keyPath,
            autoIncrement: n.auto
        } : {
            autoIncrement: n.auto
        });
        return r.forEach((e => Sn(i, e))), i
    }

    function Sn(e, t) {
        e.createIndex(t.name, t.keyPath, {
            unique: t.unique,
            multiEntry: t.multi
        })
    }

    function En(e, t, n) {
        const r = {};
        return S(t.objectStoreNames, 0).forEach((e => {
            const t = n.objectStore(e);
            let i = t.keyPath;
            const o = dn(hn(i), i || "", !1, !1, !!t.autoIncrement, i && "string" != typeof i, !0),
                s = [];
            for (let e = 0; e < t.indexNames.length; ++e) {
                const n = t.index(t.indexNames[e]);
                i = n.keyPath;
                var a = dn(n.name, i, !!n.unique, !!n.multiEntry, !1, i && "string" != typeof i, !1);
                s.push(a)
            }
            r[e] = fn(e, o, s)
        })), r
    }

    function An({
        _novip: e
    }, t, n) {
        const r = n.db.objectStoreNames;
        for (let i = 0; i < r.length; ++i) {
            const o = r[i],
                s = n.objectStore(o);
            e._hasGetAll = "getAll" in s;
            for (let e = 0; e < s.indexNames.length; ++e) {
                const n = s.indexNames[e],
                    r = s.index(n).keyPath,
                    i = "string" == typeof r ? r : "[" + S(r).join("+") + "]";
                if (t[o]) {
                    const e = t[o].idxByName[i];
                    e && (e.name = n, delete t[o].idxByName[i], t[o].idxByName[n] = e)
                }
            }
        }
        "undefined" != typeof navigator && /Safari/.test(navigator.userAgent) && !/(Chrome\/|Edge\/)/.test(navigator.userAgent) && f.WorkerGlobalScope && f instanceof f.WorkerGlobalScope && [].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1] < 604 && (e._hasGetAll = !1)
    }
    class Dn {
        _parseStoresSpec(e, t) {
            p(e).forEach((n => {
                if (null !== e[n]) {
                    var r = e[n].split(",").map(((e, t) => {
                            const n = (e = e.trim()).replace(/([&*]|\+\+)/g, ""),
                                r = /^\[/.test(n) ? n.match(/^\[(.*)\]$/)[1].split("+") : n;
                            return dn(n, r || null, /\&/.test(e), /\*/.test(e), /\+\+/.test(e), m(r), 0 === t)
                        })),
                        i = r.shift();
                    if (i.multi) throw new ue.Schema("Primary key cannot be multi-valued");
                    r.forEach((e => {
                        if (e.auto) throw new ue.Schema("Only primary key can be marked as autoIncrement (++)");
                        if (!e.keyPath) throw new ue.Schema("Index must have a name and cannot be an empty string")
                    })), t[n] = fn(n, i, r)
                }
            }))
        }
        stores(e) {
            const t = this.db;
            this._cfg.storesSource = this._cfg.storesSource ? y(this._cfg.storesSource, e) : e;
            const n = t._versions,
                r = {};
            let i = {};
            return n.forEach((e => {
                y(r, e._cfg.storesSource), i = e._cfg.dbschema = {}, e._parseStoresSpec(r, i)
            })), t._dbSchema = i, kn(t, [t._allTables, t, t.Transaction.prototype]), _n(t, [t._allTables, t, t.Transaction.prototype, this._cfg.tables], p(i), i), t._storeNames = p(i), this
        }
        upgrade(e) {
            return this._cfg.contentUpgrade = _e(this._cfg.contentUpgrade || fe, e), this
        }
    }

    function Kn(e, t) {
        let n = e._dbNamesDB;
        return n || (n = e._dbNamesDB = new Gn("__dbnames", {
            addons: [],
            indexedDB: e,
            IDBKeyRange: t
        }), n.version(1).stores({
            dbnames: "name"
        })), n.table("dbnames")
    }

    function jn(e) {
        return e && "function" == typeof e.databases
    }

    function Mn(e) {
        return dt((function() {
            return qe.letThrough = !0, e()
        }))
    }

    function Rn() {
        var e;
        return !navigator.userAgentData && /Safari\//.test(navigator.userAgent) && !/Chrom(e|ium)\//.test(navigator.userAgent) && indexedDB.databases ? new Promise((function(t) {
            var n = function() {
                return indexedDB.databases().finally(t)
            };
            e = setInterval(n, 100), n()
        })).finally((function() {
            return clearInterval(e)
        })) : Promise.resolve()
    }

    function In(e) {
        var t = t => e.next(t),
            n = i(t),
            r = i((t => e.throw(t)));

        function i(e) {
            return t => {
                var i = e(t),
                    o = i.value;
                return i.done ? o : o && "function" == typeof o.then ? o.then(n, r) : m(o) ? Promise.all(o).then(n, r) : n(o)
            }
        }
        return i(t)()
    }

    function Tn(e, t, n) {
        var r = arguments.length;
        if (r < 2) throw new ue.InvalidArgument("Too few arguments");
        for (var i = new Array(r - 1); --r;) i[r - 1] = arguments[r];
        n = i.pop();
        var o = T(i);
        return [e, o, n]
    }

    function Bn(e, t, n, r, i) {
        return We.resolve().then((() => {
            const o = qe.transless || qe,
                s = e._createTransaction(t, n, e._dbSchema, r),
                a = {
                    trans: s,
                    transless: o
                };
            if (r) s.idbtrans = r.idbtrans;
            else try {
                s.create(), e._state.PR1398_maxLoop = 3
            } catch (r) {
                return r.name === ce.InvalidState && e.isOpen() && --e._state.PR1398_maxLoop > 0 ? (console.warn("Dexie: Need to reopen db"), e._close(), e.open().then((() => Bn(e, t, n, null, i)))) : xt(r)
            }
            const c = Q(i);
            let l;
            c && ht();
            const u = We.follow((() => {
                if (l = i.call(s, s), l)
                    if (c) {
                        var e = ft.bind(null, null);
                        l.then(e, e)
                    } else "function" == typeof l.next && "function" == typeof l.throw && (l = In(l))
            }), a);
            return (l && "function" == typeof l.then ? We.resolve(l).then((e => s.active ? e : xt(new ue.PrematureCommit("Transaction committed too early. See http://bit.ly/2kdckMn")))) : u.then((() => l))).then((e => (r && s._resolve(), s._completion.then((() => e))))).catch((e => (s._reject(e), xt(e))))
        }))
    }

    function Nn(e, t, n) {
        const r = m(e) ? e.slice() : [e];
        for (let e = 0; e < n; ++e) r.push(t);
        return r
    }
    const qn = {
        stack: "dbcore",
        name: "VirtualIndexMiddleware",
        level: 1,
        create: function(e) {
            return {...e, table(t) {
                    const n = e.table(t),
                        {
                            schema: r
                        } = n,
                        i = {},
                        o = [];

                    function s(e, t, n) {
                        const r = gn(e),
                            a = i[r] = i[r] || [],
                            c = null == e ? 0 : "string" == typeof e ? 1 : e.length,
                            l = t > 0,
                            u = {...n, isVirtual: l, keyTail: t, keyLength: c, extractKey: mn(e), unique: !l && n.unique
                            };
                        return a.push(u), u.isPrimaryKey || o.push(u), c > 1 && s(2 === c ? e[0] : e.slice(0, c - 1), t + 1, n), a.sort(((e, t) => e.keyTail - t.keyTail)), u
                    }
                    const a = s(r.primaryKey.keyPath, 0, r.primaryKey);
                    i[":id"] = [a];
                    for (const e of r.indexes) s(e.keyPath, 0, e);

                    function c(t) {
                        const n = t.query.index;
                        return n.isVirtual ? {...t, query: {
                                index: n,
                                range: (r = t.query.range, i = n.keyTail, {
                                    type: 1 === r.type ? 2 : r.type,
                                    lower: Nn(r.lower, r.lowerOpen ? e.MAX_KEY : e.MIN_KEY, i),
                                    lowerOpen: !0,
                                    upper: Nn(r.upper, r.upperOpen ? e.MIN_KEY : e.MAX_KEY, i),
                                    upperOpen: !0
                                })
                            }
                        } : t;
                        var r, i
                    }
                    const l = {...n, schema: {...r, primaryKey: a, indexes: o, getIndexByKeyPath: function(e) {
                                const t = i[gn(e)];
                                return t && t[0]
                            }
                        }, count: e => n.count(c(e)), query: e => n.query(c(e)), openCursor(t) {
                            const {
                                keyTail: r,
                                isVirtual: i,
                                keyLength: o
                            } = t.query.index;
                            return i ? n.openCursor(c(t)).then((n => n && function(n) {
                                const i = Object.create(n, {
                                    continue: {
                                        value: function(i) {
                                            null != i ? n.continue(Nn(i, t.reverse ? e.MAX_KEY : e.MIN_KEY, r)) : t.unique ? n.continue(n.key.slice(0, o).concat(t.reverse ? e.MIN_KEY : e.MAX_KEY, r)) : n.continue()
                                        }
                                    },
                                    continuePrimaryKey: {
                                        value(t, i) {
                                            n.continuePrimaryKey(Nn(t, e.MAX_KEY, r), i)
                                        }
                                    },
                                    primaryKey: {get: () => n.primaryKey
                                    },
                                    key: {
                                        get() {
                                            const e = n.key;
                                            return 1 === o ? e[0] : e.slice(0, o)
                                        }
                                    },
                                    value: {get: () => n.value
                                    }
                                });
                                return i
                            }(n))) : n.openCursor(t)
                        }
                    };
                    return l
                }
            }
        }
    };

    function Fn(e, t, n, r) {
        return n = n || {}, r = r || "", p(e).forEach((i => {
            if (b(t, i)) {
                var o = e[i],
                    s = t[i];
                if ("object" == typeof o && "object" == typeof s && o && s) {
                    const e = W(o);
                    e !== W(s) ? n[r + i] = t[i] : "Object" === e ? Fn(o, s, n, r + i + ".") : o !== s && (n[r + i] = t[i])
                } else o !== s && (n[r + i] = t[i])
            } else n[r + i] = void 0
        })), p(t).forEach((i => {
            b(e, i) || (n[r + i] = t[i])
        })), n
    }
    const Un = {
        stack: "dbcore",
        name: "HooksMiddleware",
        level: 2,
        create: e => ({...e, table(t) {
                const n = e.table(t),
                    {
                        primaryKey: r
                    } = n.schema,
                    i = {...n, mutate(e) {
                            const i = qe.trans,
                                {
                                    deleting: o,
                                    creating: s,
                                    updating: a
                                } = i.table(t).hook;
                            switch (e.type) {
                                case "add":
                                    if (s.fire === fe) break;
                                    return i._promise("readwrite", (() => c(e)), !0);
                                case "put":
                                    if (s.fire === fe && a.fire === fe) break;
                                    return i._promise("readwrite", (() => c(e)), !0);
                                case "delete":
                                    if (o.fire === fe) break;
                                    return i._promise("readwrite", (() => c(e)), !0);
                                case "deleteRange":
                                    if (o.fire === fe) break;
                                    return i._promise("readwrite", (() => function(e) {
                                        return l(e.trans, e.range, 1e4)
                                    }(e)), !0)
                            }
                            return n.mutate(e);

                            function c(e) {
                                const t = qe.trans,
                                    i = e.keys || function(e, t) {
                                        return "delete" === t.type ? t.keys : t.keys || t.values.map(e.extractKey)
                                    }(r, e);
                                if (!i) throw new Error("Keys missing");
                                return "delete" !== (e = "add" === e.type || "put" === e.type ? {...e, keys: i
                                    } : {...e
                                    }).type && (e.values = [...e.values]), e.keys && (e.keys = [...e.keys]),
                                    function(e, t, n) {
                                        return "add" === t.type ? Promise.resolve([]) : e.getMany({
                                            trans: t.trans,
                                            keys: n,
                                            cache: "immutable"
                                        })
                                    }(n, e, i).then((c => {
                                        const l = i.map(((n, i) => {
                                            const l = c[i],
                                                u = {
                                                    onerror: null,
                                                    onsuccess: null
                                                };
                                            if ("delete" === e.type) o.fire.call(u, n, l, t);
                                            else if ("add" === e.type || void 0 === l) {
                                                const o = s.fire.call(u, n, e.values[i], t);
                                                null == n && null != o && (n = o, e.keys[i] = n, r.outbound || M(e.values[i], r.keyPath, n))
                                            } else {
                                                const r = Fn(l, e.values[i]),
                                                    o = a.fire.call(u, r, n, l, t);
                                                if (o) {
                                                    const t = e.values[i];
                                                    Object.keys(o).forEach((e => {
                                                        b(t, e) ? t[e] = o[e] : M(t, e, o[e])
                                                    }))
                                                }
                                            }
                                            return u
                                        }));
                                        return n.mutate(e).then((({
                                            failures: t,
                                            results: n,
                                            numFailures: r,
                                            lastResult: o
                                        }) => {
                                            for (let r = 0; r < i.length; ++r) {
                                                const o = n ? n[r] : i[r],
                                                    s = l[r];
                                                null == o ? s.onerror && s.onerror(t[r]) : s.onsuccess && s.onsuccess("put" === e.type && c[r] ? e.values[r] : o)
                                            }
                                            return {
                                                failures: t,
                                                results: n,
                                                numFailures: r,
                                                lastResult: o
                                            }
                                        })).catch((e => (l.forEach((t => t.onerror && t.onerror(e))), Promise.reject(e))))
                                    }))
                            }

                            function l(e, t, i) {
                                return n.query({
                                    trans: e,
                                    values: !1,
                                    query: {
                                        index: r,
                                        range: t
                                    },
                                    limit: i
                                }).then((({
                                    result: n
                                }) => c({
                                    type: "delete",
                                    keys: n,
                                    trans: e
                                }).then((r => r.numFailures > 0 ? Promise.reject(r.failures[0]) : n.length < i ? {
                                    failures: [],
                                    numFailures: 0,
                                    lastResult: void 0
                                } : l(e, {...t, lower: n[n.length - 1], lowerOpen: !0
                                }, i)))))
                            }
                        }
                    };
                return i
            }
        })
    };

    function Ln(e, t, n) {
        try {
            if (!t) return null;
            if (t.keys.length < e.length) return null;
            const r = [];
            for (let i = 0, o = 0; i < t.keys.length && o < e.length; ++i) 0 === Vt(t.keys[i], e[o]) && (r.push(n ? F(t.values[i]) : t.values[i]), ++o);
            return r.length === e.length ? r : null
        } catch (e) {
            return null
        }
    }
    const Wn = {
        stack: "dbcore",
        level: -1,
        create: e => ({
            table: t => {
                const n = e.table(t);
                return {...n, getMany: e => {
                        if (!e.cache) return n.getMany(e);
                        const t = Ln(e.keys, e.trans._cache, "clone" === e.cache);
                        return t ? We.resolve(t) : n.getMany(e).then((t => (e.trans._cache = {
                            keys: e.keys,
                            values: "clone" === e.cache ? F(t) : t
                        }, t)))
                    }, mutate: e => ("add" !== e.type && (e.trans._cache = null), n.mutate(e))
                }
            }
        })
    };

    function zn(e) {
        return !("from" in e)
    }
    const Yn = function(e, t) {
        if (!this) {
            const t = new Yn;
            return e && "d" in e && y(t, e), t
        }
        y(this, arguments.length ? {
            d: 1,
            from: e,
            to: arguments.length > 1 ? t : e
        } : {
            d: 0
        })
    };

    function Vn(e, t, n) {
        const r = Vt(t, n);
        if (isNaN(r)) return;
        if (r > 0) throw RangeError();
        if (zn(e)) return y(e, {
            from: t,
            to: n,
            d: 1
        });
        const i = e.l,
            o = e.r;
        if (Vt(n, e.from) < 0) return i ? Vn(i, t, n) : e.l = {
            from: t,
            to: n,
            d: 1,
            l: null,
            r: null
        }, Jn(e);
        if (Vt(t, e.to) > 0) return o ? Vn(o, t, n) : e.r = {
            from: t,
            to: n,
            d: 1,
            l: null,
            r: null
        }, Jn(e);
        Vt(t, e.from) < 0 && (e.from = t, e.l = null, e.d = o ? o.d + 1 : 1), Vt(n, e.to) > 0 && (e.to = n, e.r = null, e.d = e.l ? e.l.d + 1 : 1);
        const s = !e.r;
        i && !e.l && $n(e, i), o && s && $n(e, o)
    }

    function $n(e, t) {
        zn(t) || function e(t, {
            from: n,
            to: r,
            l: i,
            r: o
        }) {
            Vn(t, n, r), i && e(t, i), o && e(t, o)
        }(e, t)
    }

    function Qn(e) {
        let t = zn(e) ? null : {
            s: 0,
            n: e
        };
        return {
            next(e) {
                const n = arguments.length > 0;
                for (; t;) switch (t.s) {
                    case 0:
                        if (t.s = 1, n)
                            for (; t.n.l && Vt(e, t.n.from) < 0;) t = {
                                up: t,
                                n: t.n.l,
                                s: 1
                            };
                        else
                            for (; t.n.l;) t = {
                                up: t,
                                n: t.n.l,
                                s: 1
                            };
                    case 1:
                        if (t.s = 2, !n || Vt(e, t.n.to) <= 0) return {
                            value: t.n,
                            done: !1
                        };
                    case 2:
                        if (t.n.r) {
                            t.s = 3, t = {
                                up: t,
                                n: t.n.r,
                                s: 0
                            };
                            continue
                        }
                    case 3:
                        t = t.up
                }
                return {
                    done: !0
                }
            }
        }
    }

    function Jn(e) {
        var t, n;
        const r = ((null === (t = e.r) || void 0 === t ? void 0 : t.d) || 0) - ((null === (n = e.l) || void 0 === n ? void 0 : n.d) || 0),
            i = r > 1 ? "r" : r < -1 ? "l" : "";
        if (i) {
            const t = "r" === i ? "l" : "r",
                n = {...e
                },
                r = e[i];
            e.from = r.from, e.to = r.to, e[i] = r[i], n[i] = r[t], e[t] = n, n.d = Hn(n)
        }
        e.d = Hn(e)
    }

    function Hn({
        r: e,
        l: t
    }) {
        return (e ? t ? Math.max(e.d, t.d) : e.d : t ? t.d : 0) + 1
    }
    w(Yn.prototype, {
        add(e) {
            return $n(this, e), this
        }, addKey(e) {
            return Vn(this, e, e), this
        }, addKeys(e) {
            return e.forEach((e => Vn(this, e, e))), this
        }, [z]() {
            return Qn(this)
        }
    });
    const Xn = {
        stack: "dbcore",
        level: 0,
        create: e => {
            const t = e.schema.name,
                n = new Yn(e.MIN_KEY, e.MAX_KEY);
            return {...e, table: r => {
                    const i = e.table(r),
                        {
                            schema: o
                        } = i,
                        {
                            primaryKey: s
                        } = o,
                        {
                            extractKey: a,
                            outbound: c
                        } = s,
                        l = {...i, mutate: e => {
                                const s = e.trans,
                                    a = s.mutatedParts || (s.mutatedParts = {}),
                                    c = e => {
                                        const n = `idb://${t}/${r}/${e}`;
                                        return a[n] || (a[n] = new Yn)
                                    },
                                    l = c(""),
                                    u = c(":dels"),
                                    {
                                        type: d
                                    } = e;
                                let [h, f] = "deleteRange" === e.type ? [e.range] : "delete" === e.type ? [e.keys] : e.values.length < 50 ? [
                                    [], e.values
                                ] : [];
                                const p = e.trans._cache;
                                return i.mutate(e).then((e => {
                                    if (m(h)) {
                                        "delete" !== d && (h = e.results), l.addKeys(h);
                                        const t = Ln(h, p);
                                        t || "add" === d || u.addKeys(h), (t || f) && function(e, t, n, r) {
                                            t.indexes.forEach((function(t) {
                                                const i = e(t.name || "");

                                                function o(e) {
                                                    return null != e ? t.extractKey(e) : null
                                                }
                                                const s = e => t.multiEntry && m(e) ? e.forEach((e => i.addKey(e))) : i.addKey(e);
                                                (n || r).forEach(((e, t) => {
                                                    const i = n && o(n[t]),
                                                        a = r && o(r[t]);
                                                    0 !== Vt(i, a) && (null != i && s(i), null != a && s(a))
                                                }))
                                            }))
                                        }(c, o, t, f)
                                    } else if (h) {
                                        const e = {
                                            from: h.lower,
                                            to: h.upper
                                        };
                                        u.add(e), l.add(e)
                                    } else l.add(n), u.add(n), o.indexes.forEach((e => c(e.name).add(n)));
                                    return e
                                }))
                            }
                        },
                        u = ({
                            query: {
                                index: t,
                                range: n
                            }
                        }) => {
                            var r, i;
                            return [t, new Yn(null !== (r = n.lower) && void 0 !== r ? r : e.MIN_KEY, null !== (i = n.upper) && void 0 !== i ? i : e.MAX_KEY)]
                        },
                        d = {get: e => [s, new Yn(e.key)],
                            getMany: e => [s, (new Yn).addKeys(e.keys)],
                            count: u,
                            query: u,
                            openCursor: u
                        };
                    return p(d).forEach((e => {
                        l[e] = function(o) {
                            const {
                                subscr: s
                            } = qe;
                            if (s) {
                                const l = e => {
                                        const n = `idb://${t}/${r}/${e}`;
                                        return s[n] || (s[n] = new Yn)
                                    },
                                    u = l(""),
                                    h = l(":dels"),
                                    [f, p] = d[e](o);
                                if (l(f.name || "").add(p), !f.isPrimaryKey) {
                                    if ("count" !== e) {
                                        const t = "query" === e && c && o.values && i.query({...o, values: !1
                                        });
                                        return i[e].apply(this, arguments).then((n => {
                                            if ("query" === e) {
                                                if (c && o.values) return t.then((({
                                                    result: e
                                                }) => (u.addKeys(e), n)));
                                                const e = o.values ? n.result.map(a) : n.result;
                                                o.values ? u.addKeys(e) : h.addKeys(e)
                                            } else if ("openCursor" === e) {
                                                const e = n,
                                                    t = o.values;
                                                return e && Object.create(e, {
                                                    key: {get: () => (h.addKey(e.primaryKey), e.key)
                                                    },
                                                    primaryKey: {
                                                        get() {
                                                            const t = e.primaryKey;
                                                            return h.addKey(t), t
                                                        }
                                                    },
                                                    value: {get: () => (t && u.addKey(e.primaryKey), e.value)
                                                    }
                                                })
                                            }
                                            return n
                                        }))
                                    }
                                    h.add(n)
                                }
                            }
                            return i[e].apply(this, arguments)
                        }
                    })), l
                }
            }
        }
    };
    class Gn {
        constructor(e, t) {
            this._middlewares = {}, this.verno = 0;
            const n = Gn.dependencies;
            this._options = t = {
                addons: Gn.addons,
                autoOpen: !0,
                indexedDB: n.indexedDB,
                IDBKeyRange: n.IDBKeyRange,
                ...t
            }, this._deps = {
                indexedDB: t.indexedDB,
                IDBKeyRange: t.IDBKeyRange
            };
            const {
                addons: r
            } = t;
            this._dbSchema = {}, this._versions = [], this._storeNames = [], this._allTables = {}, this.idbdb = null, this._novip = this;
            const i = {
                dbOpenError: null,
                isBeingOpened: !1,
                onReadyBeingFired: null,
                openComplete: !1,
                dbReadyResolve: fe,
                dbReadyPromise: null,
                cancelOpen: fe,
                openCanceller: null,
                autoSchema: !0,
                PR1398_maxLoop: 3
            };
            var o;
            i.dbReadyPromise = new We((e => {
                i.dbReadyResolve = e
            })), i.openCanceller = new We(((e, t) => {
                i.cancelOpen = t
            })), this._state = i, this.name = e, this.on = Bt(this, "populate", "blocked", "versionchange", "close", {
                ready: [_e, fe]
            }), this.on.ready.subscribe = E(this.on.ready.subscribe, (e => (t, n) => {
                Gn.vip((() => {
                    const r = this._state;
                    if (r.openComplete) r.dbOpenError || We.resolve().then(t), n && e(t);
                    else if (r.onReadyBeingFired) r.onReadyBeingFired.push(t), n && e(t);
                    else {
                        e(t);
                        const r = this;
                        n || e((function e() {
                            r.on.ready.unsubscribe(t), r.on.ready.unsubscribe(e)
                        }))
                    }
                }))
            })), this.Collection = (o = this, Nt(Jt.prototype, (function(e, t) {
                this.db = o;
                let n = Rt,
                    r = null;
                if (t) try {
                    n = t()
                } catch (e) {
                    r = e
                }
                const i = e._ctx,
                    s = i.table,
                    a = s.hook.reading.fire;
                this._ctx = {
                    table: s,
                    index: i.index,
                    isPrimKey: !i.index || s.schema.primKey.keyPath && i.index === s.schema.primKey.name,
                    range: n,
                    keysOnly: !1,
                    dir: "next",
                    unique: "",
                    algorithm: null,
                    filter: null,
                    replayFilter: null,
                    justLimit: !0,
                    isMatch: null,
                    offset: 0,
                    limit: 1 / 0,
                    error: r,
                    or: i.or,
                    valueMapper: a !== pe ? a : null
                }
            }))), this.Table = function(e) {
                return Nt(Tt.prototype, (function(t, n, r) {
                    this.db = e, this._tx = r, this.name = t, this.schema = n, this.hook = e._allTables[t] ? e._allTables[t].hook : Bt(null, {
                        creating: [ve, fe],
                        reading: [me, pe],
                        updating: [be, fe],
                        deleting: [ge, fe]
                    })
                }))
            }(this), this.Transaction = function(e) {
                return Nt(un.prototype, (function(t, n, r, i, o) {
                    this.db = e, this.mode = t, this.storeNames = n, this.schema = r, this.chromeTransactionDurability = i, this.idbtrans = null, this.on = Bt(this, "complete", "error", "abort"), this.parent = o || null, this.active = !0, this._reculock = 0, this._blockedFuncs = [], this._resolve = null, this._reject = null, this._waitingFor = null, this._waitingQueue = null, this._spinCount = 0, this._completion = new We(((e, t) => {
                        this._resolve = e, this._reject = t
                    })), this._completion.then((() => {
                        this.active = !1, this.on.complete.fire()
                    }), (e => {
                        var t = this.active;
                        return this.active = !1, this.on.error.fire(e), this.parent ? this.parent._reject(e) : t && this.idbtrans && this.idbtrans.abort(), xt(e)
                    }))
                }))
            }(this), this.Version = function(e) {
                return Nt(Dn.prototype, (function(t) {
                    this.db = e, this._cfg = {
                        version: t,
                        storesSource: null,
                        dbschema: {},
                        tables: {},
                        contentUpgrade: null
                    }
                }))
            }(this), this.WhereClause = function(e) {
                return Nt(sn.prototype, (function(t, n, r) {
                    this.db = e, this._ctx = {
                        table: t,
                        index: ":id" === n ? null : n,
                        or: r
                    };
                    const i = e._deps.indexedDB;
                    if (!i) throw new ue.MissingAPI;
                    this._cmp = this._ascending = i.cmp.bind(i), this._descending = (e, t) => i.cmp(t, e), this._max = (e, t) => i.cmp(e, t) > 0 ? e : t, this._min = (e, t) => i.cmp(e, t) < 0 ? e : t, this._IDBKeyRange = e._deps.IDBKeyRange
                }))
            }(this), this.on("versionchange", (e => {
                e.newVersion > 0 ? console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`) : console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`), this.close()
            })), this.on("blocked", (e => {
                !e.newVersion || e.newVersion < e.oldVersion ? console.warn(`Dexie.delete('${this.name}') was blocked`) : console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${e.oldVersion/10}`)
            })), this._maxKey = pn(t.IDBKeyRange), this._createTransaction = (e, t, n, r) => new this.Transaction(e, t, n, this._options.chromeTransactionDurability, r), this._fireOnBlocked = e => {
                this.on("blocked").fire(e), Et.filter((e => e.name === this.name && e !== this && !e._state.vcFired)).map((t => t.on("versionchange").fire(e)))
            }, this.use(qn), this.use(Un), this.use(Xn), this.use(Wn), this.vip = Object.create(this, {
                _vip: {
                    value: !0
                }
            }), r.forEach((e => e(this)))
        }
        version(e) {
            if (isNaN(e) || e < .1) throw new ue.Type("Given version is not a positive number");
            if (e = Math.round(10 * e) / 10, this.idbdb || this._state.isBeingOpened) throw new ue.Schema("Cannot add version when database is open");
            this.verno = Math.max(this.verno, e);
            const t = this._versions;
            var n = t.filter((t => t._cfg.version === e))[0];
            return n || (n = new this.Version(e), t.push(n), t.sort(Cn), n.stores({}), this._state.autoSchema = !1, n)
        }
        _whenReady(e) {
            return this.idbdb && (this._state.openComplete || qe.letThrough || this._vip) ? e() : new We(((e, t) => {
                if (this._state.openComplete) return t(new ue.DatabaseClosed(this._state.dbOpenError));
                if (!this._state.isBeingOpened) {
                    if (!this._options.autoOpen) return void t(new ue.DatabaseClosed);
                    this.open().catch(fe)
                }
                this._state.dbReadyPromise.then(e, t)
            })).then(e)
        }
        use({
            stack: e,
            create: t,
            level: n,
            name: r
        }) {
            r && this.unuse({
                stack: e,
                name: r
            });
            const i = this._middlewares[e] || (this._middlewares[e] = []);
            return i.push({
                stack: e,
                create: t,
                level: null == n ? 10 : n,
                name: r
            }), i.sort(((e, t) => e.level - t.level)), this
        }
        unuse({
            stack: e,
            name: t,
            create: n
        }) {
            return e && this._middlewares[e] && (this._middlewares[e] = this._middlewares[e].filter((e => n ? e.create !== n : !!t && e.name !== t))), this
        }
        open() {
            return function(e) {
                const t = e._state,
                    {
                        indexedDB: n
                    } = e._deps;
                if (t.isBeingOpened || e.idbdb) return t.dbReadyPromise.then((() => t.dbOpenError ? xt(t.dbOpenError) : e));
                J && (t.openCanceller._stackHolder = Z()), t.isBeingOpened = !0, t.dbOpenError = null, t.openComplete = !1;
                const r = t.openCanceller;

                function i() {
                    if (t.openCanceller !== r) throw new ue.DatabaseClosed("db.open() was cancelled")
                }
                let o = t.dbReadyResolve,
                    s = null,
                    a = !1;
                return We.race([r, ("undefined" == typeof navigator ? We.resolve() : Rn()).then((() => new We(((r, o) => {
                    if (i(), !n) throw new ue.MissingAPI;
                    const c = e.name,
                        l = t.autoSchema ? n.open(c) : n.open(c, Math.round(10 * e.verno));
                    if (!l) throw new ue.MissingAPI;
                    l.onerror = an(o), l.onblocked = it(e._fireOnBlocked), l.onupgradeneeded = it((r => {
                        if (s = l.transaction, t.autoSchema && !e._options.allowEmptyDB) {
                            l.onerror = cn, s.abort(), l.result.close();
                            const e = n.deleteDatabase(c);
                            e.onsuccess = e.onerror = it((() => {
                                o(new ue.NoSuchDatabase(`Database ${c} doesnt exist`))
                            }))
                        } else {
                            s.onerror = an(o);
                            var i = r.oldVersion > Math.pow(2, 62) ? 0 : r.oldVersion;
                            a = i < 1, e._novip.idbdb = l.result, xn(e, i / 10, s, o)
                        }
                    }), o), l.onsuccess = it((() => {
                        s = null;
                        const n = e._novip.idbdb = l.result,
                            i = S(n.objectStoreNames);
                        if (i.length > 0) try {
                            const r = n.transaction(1 === (o = i).length ? o[0] : o, "readonly");
                            t.autoSchema ? function({
                                _novip: e
                            }, t, n) {
                                e.verno = t.version / 10;
                                const r = e._dbSchema = En(0, t, n);
                                e._storeNames = S(t.objectStoreNames, 0), _n(e, [e._allTables], p(r), r)
                            }(e, n, r) : (An(e, e._dbSchema, r), function(e, t) {
                                const n = Pn(En(0, e.idbdb, t), e._dbSchema);
                                return !(n.add.length || n.change.some((e => e.add.length || e.change.length)))
                            }(e, r) || console.warn("Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.")), wn(e, r)
                        } catch (e) {}
                        var o;
                        Et.push(e), n.onversionchange = it((n => {
                            t.vcFired = !0, e.on("versionchange").fire(n)
                        })), n.onclose = it((t => {
                            e.on("close").fire(t)
                        })), a && function({
                            indexedDB: e,
                            IDBKeyRange: t
                        }, n) {
                            !jn(e) && "__dbnames" !== n && Kn(e, t).put({
                                name: n
                            }).catch(fe)
                        }(e._deps, c), r()
                    }), o)
                }))))]).then((() => (i(), t.onReadyBeingFired = [], We.resolve(Mn((() => e.on.ready.fire(e.vip)))).then((function n() {
                    if (t.onReadyBeingFired.length > 0) {
                        let r = t.onReadyBeingFired.reduce(_e, fe);
                        return t.onReadyBeingFired = [], We.resolve(Mn((() => r(e.vip)))).then(n)
                    }
                }))))).finally((() => {
                    t.onReadyBeingFired = null, t.isBeingOpened = !1
                })).then((() => e)).catch((n => {
                    t.dbOpenError = n;
                    try {
                        s && s.abort()
                    } catch (e) {}
                    return r === t.openCanceller && e._close(), xt(n)
                })).finally((() => {
                    t.openComplete = !0, o()
                }))
            }(this)
        }
        _close() {
            const e = this._state,
                t = Et.indexOf(this);
            if (t >= 0 && Et.splice(t, 1), this.idbdb) {
                try {
                    this.idbdb.close()
                } catch (e) {}
                this._novip.idbdb = null
            }
            e.dbReadyPromise = new We((t => {
                e.dbReadyResolve = t
            })), e.openCanceller = new We(((t, n) => {
                e.cancelOpen = n
            }))
        }
        close() {
            this._close();
            const e = this._state;
            this._options.autoOpen = !1, e.dbOpenError = new ue.DatabaseClosed, e.isBeingOpened && e.cancelOpen(e.dbOpenError)
        }
        delete() {
            const e = arguments.length > 0,
                t = this._state;
            return new We(((n, r) => {
                const i = () => {
                    this.close();
                    var e = this._deps.indexedDB.deleteDatabase(this.name);
                    e.onsuccess = it((() => {
                        ! function({
                            indexedDB: e,
                            IDBKeyRange: t
                        }, n) {
                            !jn(e) && "__dbnames" !== n && Kn(e, t).delete(n).catch(fe)
                        }(this._deps, this.name), n()
                    })), e.onerror = an(r), e.onblocked = this._fireOnBlocked
                };
                if (e) throw new ue.InvalidArgument("Arguments not allowed in db.delete()");
                t.isBeingOpened ? t.dbReadyPromise.then(i) : i()
            }))
        }
        backendDB() {
            return this.idbdb
        }
        isOpen() {
            return null !== this.idbdb
        }
        hasBeenClosed() {
            const e = this._state.dbOpenError;
            return e && "DatabaseClosed" === e.name
        }
        hasFailed() {
            return null !== this._state.dbOpenError
        }
        dynamicallyOpened() {
            return this._state.autoSchema
        }
        get tables() {
            return p(this._allTables).map((e => this._allTables[e]))
        }
        transaction() {
            const e = Tn.apply(this, arguments);
            return this._transaction.apply(this, e)
        }
        _transaction(e, t, n) {
            let r = qe.trans;
            r && r.db === this && -1 === e.indexOf("!") || (r = null);
            const i = -1 !== e.indexOf("?");
            let o, s;
            e = e.replace("!", "").replace("?", "");
            try {
                if (s = t.map((e => {
                        var t = e instanceof this.Table ? e.name : e;
                        if ("string" != typeof t) throw new TypeError("Invalid table argument to Dexie.transaction(). Only Table or String are allowed");
                        return t
                    })), "r" == e || "readonly" === e) o = "readonly";
                else {
                    if ("rw" != e && "readwrite" != e) throw new ue.InvalidArgument("Invalid transaction mode: " + e);
                    o = "readwrite"
                }
                if (r) {
                    if ("readonly" === r.mode && "readwrite" === o) {
                        if (!i) throw new ue.SubTransaction("Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY");
                        r = null
                    }
                    r && s.forEach((e => {
                        if (r && -1 === r.storeNames.indexOf(e)) {
                            if (!i) throw new ue.SubTransaction("Table " + e + " not included in parent transaction.");
                            r = null
                        }
                    })), i && r && !r.active && (r = null)
                }
            } catch (e) {
                return r ? r._promise(null, ((t, n) => {
                    n(e)
                })) : xt(e)
            }
            const a = Bn.bind(null, this, o, s, r, n);
            return r ? r._promise(o, a, "lock") : qe.trans ? bt(qe.transless, (() => this._whenReady(a))) : this._whenReady(a)
        }
        table(e) {
            if (!b(this._allTables, e)) throw new ue.InvalidTable(`Table ${e} does not exist`);
            return this._allTables[e]
        }
    }
    const Zn = "undefined" != typeof Symbol && "observable" in Symbol ? Symbol.observable : "@@observable";
    class er {
        constructor(e) {
            this._subscribe = e
        }
        subscribe(e, t, n) {
            return this._subscribe(e && "function" != typeof e ? e : {
                next: e,
                error: t,
                complete: n
            })
        }[Zn]() {
            return this
        }
    }

    function tr(e, t) {
        return p(t).forEach((n => {
            $n(e[n] || (e[n] = new Yn), t[n])
        })), e
    }
    let nr;
    try {
        nr = {
            indexedDB: f.indexedDB || f.mozIndexedDB || f.webkitIndexedDB || f.msIndexedDB,
            IDBKeyRange: f.IDBKeyRange || f.webkitIDBKeyRange
        }
    } catch (f) {
        nr = {
            indexedDB: null,
            IDBKeyRange: null
        }
    }
    const rr = Gn;

    function ir(e) {
        let t = or;
        try {
            or = !0, ln.storagemutated.fire(e)
        } finally {
            or = t
        }
    }
    w(rr, {...he, delete: e => new rr(e, {
            addons: []
        }).delete(), exists: e => new rr(e, {
            addons: []
        }).open().then((e => (e.close(), !0))).catch("NoSuchDatabaseError", (() => !1)), getDatabaseNames(e) {
            try {
                return function({
                    indexedDB: e,
                    IDBKeyRange: t
                }) {
                    return jn(e) ? Promise.resolve(e.databases()).then((e => e.map((e => e.name)).filter((e => "__dbnames" !== e)))) : Kn(e, t).toCollection().primaryKeys()
                }(rr.dependencies).then(e)
            } catch (e) {
                return xt(new ue.MissingAPI)
            }
        }, defineClass: () => function(e) {
            y(this, e)
        }, ignoreTransaction: e => qe.trans ? bt(qe.transless, e) : e(), vip: Mn, async: function(e) {
            return function() {
                try {
                    var t = In(e.apply(this, arguments));
                    return t && "function" == typeof t.then ? t : We.resolve(t)
                } catch (e) {
                    return xt(e)
                }
            }
        }, spawn: function(e, t, n) {
            try {
                var r = In(e.apply(n, t || []));
                return r && "function" == typeof r.then ? r : We.resolve(r)
            } catch (e) {
                return xt(e)
            }
        }, currentTransaction: {get: () => qe.trans || null
        }, waitFor: function(e, t) {
            const n = We.resolve("function" == typeof e ? rr.ignoreTransaction(e) : e).timeout(t || 6e4);
            return qe.trans ? qe.trans.waitFor(n) : n
        }, Promise: We, debug: {get: () => J,
            set: e => {
                H(e, "dexie" === e ? () => !0 : jt)
            }
        }, derive: C, extend: y, props: w, override: E, Events: Bt, on: ln, liveQuery: function(e) {
            return new er((t => {
                const n = Q(e);
                let r = !1,
                    i = {},
                    o = {};
                const s = {get closed() {
                        return r
                    },
                    unsubscribe: () => {
                        r = !0, ln.storagemutated.unsubscribe(u)
                    }
                };
                t.start && t.start(s);
                let a = !1,
                    c = !1;

                function l() {
                    return p(o).some((e => i[e] && function(e, t) {
                        const n = Qn(t);
                        let r = n.next();
                        if (r.done) return !1;
                        let i = r.value;
                        const o = Qn(e);
                        let s = o.next(i.from),
                            a = s.value;
                        for (; !r.done && !s.done;) {
                            if (Vt(a.from, i.to) <= 0 && Vt(a.to, i.from) >= 0) return !0;
                            Vt(i.from, a.from) < 0 ? i = (r = n.next(a.from)).value : a = (s = o.next(i.from)).value
                        }
                        return !1
                    }(i[e], o[e])))
                }
                const u = e => {
                        tr(i, e), l() && d()
                    },
                    d = () => {
                        if (a || r) return;
                        i = {};
                        const h = {},
                            f = function(t) {
                                n && ht();
                                const r = () => dt(e, {
                                        subscr: t,
                                        trans: null
                                    }),
                                    i = qe.trans ? bt(qe.transless, r) : r();
                                return n && i.then(ft, ft), i
                            }(h);
                        c || (ln("storagemutated", u), c = !0), a = !0, Promise.resolve(f).then((e => {
                            a = !1, r || (l() ? d() : (i = {}, o = h, t.next && t.next(e)))
                        }), (e => {
                            a = !1, t.error && t.error(e), s.unsubscribe()
                        }))
                    };
                return d(), s
            }))
        }, extendObservabilitySet: tr, getByKeyPath: j, setByKeyPath: M, delByKeyPath: function(e, t) {
            "string" == typeof t ? M(e, t, void 0) : "length" in t && [].map.call(t, (function(t) {
                M(e, t, void 0)
            }))
        }, shallowClone: R, deepClone: F, getObjectDiff: Fn, cmp: Vt, asap: D, minKey: -1 / 0, addons: [], connections: Et, errnames: ce, dependencies: nr, semVer: "3.2.1", version: "3.2.1".split(".").map((e => parseInt(e))).reduce(((e, t, n) => e + t / Math.pow(10, 2 * n)))
    }), rr.maxKey = pn(rr.dependencies.IDBKeyRange), "undefined" != typeof dispatchEvent && "undefined" != typeof addEventListener && (ln("storagemutated", (e => {
        if (!or) {
            let t;
            At ? (t = document.createEvent("CustomEvent"), t.initCustomEvent("x-storagemutated-1", !0, !0, e)) : t = new CustomEvent("x-storagemutated-1", {
                detail: e
            }), or = !0, dispatchEvent(t), or = !1
        }
    })), addEventListener("x-storagemutated-1", (({
        detail: e
    }) => {
        or || ir(e)
    })));
    let or = !1;
    if ("undefined" != typeof BroadcastChannel) {
        const e = new BroadcastChannel("x-storagemutated-1");
        ln("storagemutated", (t => {
            or || e.postMessage(t)
        })), e.onmessage = e => {
            e.data && ir(e.data)
        }
    } else if ("undefined" != typeof self && "undefined" != typeof navigator) {
        ln("storagemutated", (e => {
            try {
                or || ("undefined" != typeof localStorage && localStorage.setItem("x-storagemutated-1", JSON.stringify({
                    trig: Math.random(),
                    changedParts: e
                })), "object" == typeof self.clients && [...self.clients.matchAll({
                    includeUncontrolled: !0
                })].forEach((t => t.postMessage({
                    type: "x-storagemutated-1",
                    changedParts: e
                }))))
            } catch (e) {}
        })), addEventListener("storage", (e => {
            if ("x-storagemutated-1" === e.key) {
                const t = JSON.parse(e.newValue);
                t && ir(t.changedParts)
            }
        }));
        const e = self.document && navigator.serviceWorker;
        e && e.addEventListener("message", (function({
            data: e
        }) {
            e && "x-storagemutated-1" === e.type && ir(e.changedParts)
        }))
    }
    We.rejectionMapper = function(e, t) {
        if (!e || e instanceof ie || e instanceof TypeError || e instanceof SyntaxError || !e.name || !de[e.name]) return e;
        var n = new de[e.name](t || e.message, e);
        return "stack" in e && k(n, "stack", {get: function() {
                return this.inner.stack
            }
        }), n
    }, H(J, jt);
    var sr = new class extends Gn {
        constructor() {
            super("tcp_ccl");
            var e = this;
            e.version(1).stores({
                fclicks: "++id,url,rid,ttl,date",
                clicks: "++id,url,crtid,price,ttl,date"
            }), e.version(2).stores({
                impWCl: "++id,rid,cl"
            }), e.version(3).stores({
                fclicks: "++id,url,rid,cid,ttl,date",
                clicks: "++id,url,cid,crtid,capping,capping_period,price,ttl,date"
            }), e.version(4).stores({
                fclicks: "++id,url,rid,cid,capping_uid,capping_endat,ttl,date",
                clicks: "++id,url,cid,crtid,capping_uid,capping_endat,capping,capping_period,price,ttl,date"
            }), e.version(5).stores({
                fclicks: "++id,url,rid,cid,capping_uid,ttl,date",
                clicks: "++id,url,cid,crtid,capping_uid,price,ttl,date",
                plimit: "++id,uid,limit,count,event_trigger,end_at"
            }), e.version(6).stores({
                ownNotifications: "++id,url,title",
                clicks: "++id,url,cid,crtid,capping_uid,price,ttl,date",
                plimit: "++id,uid,limit,count,event_trigger,end_at"
            }), e.version(7).stores({
                auction: "request_options,last_notifications_request,notifications"
            }), e.version(8).stores({
                auction: "request_options,last_notifications_request,notifications",
                settings: "++id,settings"
            }), e.version(9).stores({
                stat: "++id,creative_id,impressions,clicks,create_time,update_time"
            }), e.version(10).stores({
                stat: "++id,creative_id,impressions,clicks,create_time,update_time,category,creative_country"
            }), e.version(11).stores({
                stat: "++id,creative_id,impressions,clicks,create_time,update_time,category,creative_country,tag"
            })
        }
    };

    function ar(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function cr(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var o = e.apply(t, n);

                function s(e) {
                    ar(o, r, i, s, a, "next", e)
                }

                function a(e) {
                    ar(o, r, i, s, a, "throw", e)
                }
                s(void 0)
            }))
        }
    }
    class lr {
        saveParameters(e) {
            var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];
            return sr.transaction("rw", sr.auction, function() {
                var n = cr((function*(n) {
                    yield sr.auction.clear(),
                        yield sr.auction.put({
                            request_options: JSON.stringify(e),
                            notifications: JSON.stringify(t)
                        })
                }));
                return function(e) {
                    return n.apply(this, arguments)
                }
            }())
        }
        getParameters() {
            return cr((function*() {
                var e =
                    yield sr.auction.toArray();
                if (e.length) {
                    var t = e[0];
                    return {
                        auctionRequestOptions: JSON.parse(t.request_options),
                        notifications: JSON.parse(t.notifications)
                    }
                }
                return null
            }))()
        }
        saveSettings(e) {
            return sr.transaction("rw", sr.settings, function() {
                var t = cr((function*(t) {
                    yield sr.settings.clear(),
                        yield sr.settings.put({
                            next_notification: e.nextNotification,
                            mode: e.mode,
                            demand_mode_probability: e.demandModeProbability,
                            creatives_update_time: e.creativesUpdateTime,
                            postponed_update_time: e.postponedUpdateTime,
                            stat_send_time: e.statSendTime,
                            is_adblock: Boolean(e.is_adblock),
                            is_meta_mask_active: e.isMetaMaskActive,
                            user_keywords: e.userKeywords,
                            entry_referrer_domain: e.entryReferrerDomain
                        })
                }));
                return function(e) {
                    return t.apply(this, arguments)
                }
            }())
        }
        getSettings() {
            return cr((function*() {
                var e =
                    yield sr.settings.toArray();
                if (e.length) {
                    var t = e[0];
                    return {
                        nextNotification: t.next_notification || 0,
                        mode: t.mode || null,
                        demandModeProbability: t.demand_mode_probability || 0,
                        creativesUpdateTime: t.creatives_update_time || null,
                        postponedUpdateTime: t.postponed_update_time || null,
                        statSendTime: t.stat_send_time || null,
                        is_adblock: t.is_adblock || !1,
                        isMetaMaskActive: t.is_meta_mask_active || !1,
                        userKeywords: t.user_keywords,
                        entryReferrerDomain: t.entry_referrer_domain
                    }
                }
                return null
            }))()
        }
    }

    function ur(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function dr(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var o = e.apply(t, n);

                function s(e) {
                    ur(o, r, i, s, a, "next", e)
                }

                function a(e) {
                    ur(o, r, i, s, a, "throw", e)
                }
                s(void 0)
            }))
        }
    }
    class hr {
        addImpression(e) {
            return sr.transaction("rw", sr.stat, dr((function*() {
                var t = Date.now(),
                    n =
                    yield sr.stat.get({
                        creative_id: e.creative_id,
                        tag: ""
                    });
                return n ? sr.stat.update(n.id, {
                    impressions: n.impressions + 1,
                    update_time: t
                }) : sr.stat.put({
                    creative_id: e.creative_id,
                    impressions: 1,
                    clicks: 0,
                    create_time: t,
                    update_time: t,
                    category: e.category,
                    creative_country: e.creative_country,
                    tag: ""
                })
            })))
        }
        addClick(e) {
            return sr.transaction("rw", sr.stat, dr((function*() {
                var t = Date.now(),
                    n =
                    yield sr.stat.get({
                        creative_id: e.creative_id,
                        tag: ""
                    });
                return n ? sr.stat.update(n.id, {
                    clicks: n.clicks + 1,
                    update_time: t
                }) : sr.stat.put({
                    creative_id: e.creative_id,
                    impressions: 0,
                    clicks: 1,
                    create_time: t,
                    update_time: t,
                    category: e.category,
                    creative_country: e.creative_country,
                    tag: ""
                })
            })))
        }
        getData(e) {
            return sr.transaction("rw", sr.stat, dr((function*() {
                return yield sr.stat.where({
                    tag: ""
                }).modify({
                    tag: e
                }), sr.stat.where({
                    tag: e
                }).toArray()
            })))
        }
        clearTag(e) {
            return sr.transaction("rw", sr.stat, (() => sr.stat.where({
                tag: e
            }).modify({
                tag: ""
            })))
        }
        clearData(e) {
            return sr.transaction("rw", sr.stat, (() => sr.stat.where({
                tag: e
            }).delete()))
        }
    }

    function fr(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function pr(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var o = e.apply(t, n);

                function s(e) {
                    fr(o, r, i, s, a, "next", e)
                }

                function a(e) {
                    fr(o, r, i, s, a, "throw", e)
                }
                s(void 0)
            }))
        }
    }
    class mr {
        setRules(e) {
            return sr.transaction("rw", sr.plimit, pr((function*() {
                var t =
                    yield sr.plimit.where("uid").anyOf(e.map((e => e.uid))).filter((t => e.some((e => e.uid === t.uid && e.end_at === t.end_at)))).toArray();
                return void 0 === t ? sr.plimit.bulkPut(e.map((e => (e.count = 0, e)))) : sr.plimit.bulkPut(e.filter((e => !t.some((t => e.uid === t.uid && e.end_at === t.end_at)))))
            })))
        }
        updateLimits(e) {
            return sr.transaction("rw", sr.plimit, pr((function*() {
                var t =
                    yield sr.plimit.where("uid").equals(e).and((e => e.count !== e.limit)).toArray();
                if (t.length > 0) return sr.plimit.bulkPut(t.map((e => (e.count = e.count + 1, e))))
            })))
        }
        isLimited(e) {
            return sr.transaction("rw", sr.plimit, pr((function*() {
                var t = Date.now(),
                    n =
                    yield sr.plimit.where("uid").equals(e).toArray();
                return sr.plimit.bulkDelete(n.filter((e => t > e.end_at)).map((e => e.id))), 0 === n.filter((e => t < e.end_at && e.limit === e.count)).length
            })))
        }
    }

    function yr(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function vr(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var o = e.apply(t, n);

                function s(e) {
                    yr(o, r, i, s, a, "next", e)
                }

                function a(e) {
                    yr(o, r, i, s, a, "throw", e)
                }
                s(void 0)
            }))
        }
    }
    class gr {
        addImpression(e) {
            return sr.transaction("rw", sr.impWCl, vr((function*() {
                if ((
                        yield sr.impWCl.count()) >= 1e3) {
                    var t =
                        yield sr.impWCl.limit(1).first();
                    sr.impWCl.delete(t.id)
                }
                return sr.impWCl.put({
                    rid: e,
                    cl: 0
                })
            })))
        }
        getImpression(e) {
            return sr.impWCl.get({
                rid: e
            })
        }
        getAllImpressions() {
            return sr.impWCl.toArray()
        }
        incrementImpressionClicks(e) {
            var t = this;
            return sr.transaction("rw", sr.impWCl, vr((function*() {
                var n =
                    yield sr.impWCl.get({
                        rid: e
                    });
                return n ? sr.impWCl.update(n.id, {
                    cl: n.cl + 1
                }) : t.addImpression(e)
            })))
        }
    }

    function br(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }
    var wr = new class {
        clearOld() {
            return sr.transaction("rw", [sr.fclicks, sr.clicks], (() => {
                var e = Date.now(),
                    t = e - 1728e5;
                return Promise.all([sr.fclicks.filter((e => void 0 === e.date)).delete(), sr.fclicks.where("ttl").belowOrEqual(e).delete(), sr.clicks.where("ttl").belowOrEqual(e).delete(), sr.fclicks.where("date").below(t).delete(), sr.clicks.where("date").below(t).delete()])
            }))
        }
        countAllClicks() {
            var e = this;
            return function(e) {
                return function() {
                    var t = this,
                        n = arguments;
                    return new Promise((function(r, i) {
                        var o = e.apply(t, n);

                        function s(e) {
                            br(o, r, i, s, a, "next", e)
                        }

                        function a(e) {
                            br(o, r, i, s, a, "throw", e)
                        }
                        s(void 0)
                    }))
                }
            }((function*() {
                return yield e.clearOld(), sr.clicks.count()
            }))()
        }
        getFiredClick() {
            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "";
            return sr.fclicks.where({
                url: e
            }).first()
        }
        getFiredClicks() {
            return sr.fclicks.toArray()
        }
        addFiredClicks(e) {
            return sr.fclicks.bulkPut(e)
        }
        getFiredClickByCid(e) {
            return sr.fclicks.where("cid").equals(e).toArray()
        }
        getStoredClicks() {
            return sr.clicks.toArray()
        }
        getStoredMaxPriceClick() {
            return sr.clicks.orderBy("price").last()
        }
        addStoredClicks(e) {
            return sr.clicks.bulkPut(e)
        }
        removeStoredClick(e) {
            return sr.clicks.where("id").equals(e).delete()
        }
        removeStoredClicks(e) {
            return sr.clicks.bulkDelete(e)
        }
    };
    class _r {
        constructor() {
            var e, t, n;
            wr.clearOld(), this.firedClicks = null, this.storedClicks = null, this.newFiredClicks = [], this.newStoredClicks = [], this.newRemovedStoredClicks = [], this.syncLocalDataWithIDB = (e = () => {
                this.addLocalFiredClicksToIDB(), this.addLocalStoredClicksToIDB(), this.removeLocalStoredClicksFromIDB()
            }, t = 2e3, function() {
                var r = this,
                    i = arguments;
                clearTimeout(n), n = setTimeout((() => e.apply(r, i)), t)
            })
        }
        loadClickStore() {
            return Promise.all([this.loadStoredClicks(), this.loadFiredClicks()])
        }
        loadFiredClicks() {
            return wr.getFiredClicks().then((e => {
                null === this.firedClicks && (this.firedClicks = e)
            }))
        }
        addLocalFiredClicksToIDB() {
            0 !== this.newFiredClicks.length && (wr.addFiredClicks(this.newFiredClicks), this.newFiredClicks = [])
        }
        isClickUrlFired(e) {
            return this.getFiredClicks().some((t => t.url === e))
        }
        getFiredClicks() {
            return this.syncLocalDataWithIDB(), this.firedClicks
        }
        getFiredClicksByCid(e) {
            return this.getFiredClicks().filter((t => t.cid === e))
        }
        getFiredClicksByUid(e) {
            return this.getFiredClicks().filter((t => t.capping_uid === e))
        }
        addFiredClick(e) {
            return this.getFiredClicks().push(e), this.newFiredClicks.push(e), e
        }
        loadStoredClicks() {
            return wr.getStoredClicks().then((e => {
                null === this.storedClicks && (this.storedClicks = e)
            }))
        }
        addLocalStoredClicksToIDB() {
            0 !== this.newStoredClicks.length && (wr.addStoredClicks(this.newStoredClicks.filter((e => !this.firedClicks.some((t => e.url === t.url))))), this.newStoredClicks = [])
        }
        removeLocalStoredClicksFromIDB() {
            0 !== this.newRemovedStoredClicks.length && (wr.removeStoredClicks(this.newRemovedStoredClicks), this.newRemovedStoredClicks = [])
        }
        getStoredMaxPriceClick() {
            var e = this.getStoredClicks().sort(((e, t) => t.price - e.price)).shift();
            return void 0 !== e && e.id && this.newRemovedStoredClicks.push(e.id), e
        }
        getStoredClicks() {
            return this.syncLocalDataWithIDB(), this.storedClicks
        }
        addStoredClick(e) {
            return this.getStoredClicks().push(e), this.newStoredClicks.push(e), e
        }
    }

    function kr(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function Cr(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var o = e.apply(t, n);

                function s(e) {
                    kr(o, r, i, s, a, "next", e)
                }

                function a(e) {
                    kr(o, r, i, s, a, "throw", e)
                }
                s(void 0)
            }))
        }
    }

    function xr(e, t) {
        var n = Object.keys(e);
        if (Object.getOwnPropertySymbols) {
            var r = Object.getOwnPropertySymbols(e);
            t && (r = r.filter((function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            }))), n.push.apply(n, r)
        }
        return n
    }

    function Pr(e) {
        for (var t = 1; t < arguments.length; t++) {
            var n = null != arguments[t] ? arguments[t] : {};
            t % 2 ? xr(Object(n), !0).forEach((function(t) {
                Or(e, t, n[t])
            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : xr(Object(n)).forEach((function(t) {
                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
            }))
        }
        return e
    }

    function Or(e, t, n) {
        return t in e ? Object.defineProperty(e, t, {
            value: n,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }) : e[t] = n, e
    }

    function Sr(e, t) {
        ! function(e, t) {
            if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object")
        }(e, t), t.add(e)
    }
    var Er = new WeakSet;
    const Ar = class {
        constructor() {
            Sr(this, Er), this.timezone_offset = (new Date).getTimezoneOffset() / -60, this.version = n, this.ClickLocalDB = new _r, this.LimitRuleModel = new mr, this.ImpressionModel = new gr
        }
        static getVersion() {
            return n
        }
        createNotificationRecord(e) {
            var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
                n = Date.now() - 1e3 * e.currentTime;

            function r(e, t) {
                return void 0 === e || "number" != typeof e || 0 === e ? null : e + t
            }
            var i = e.capping_ext ? e.capping_ext.map((e => (e.end_at = r(e.end_at, n), e))) : null;
            return i && this.LimitRuleModel.setRules(i), {
                data: Pr(Pr({}, t), {}, {
                    notificationUrl: e.notificationUrl,
                    delay: e.delay,
                    capping_uid: e.capping_uid || null,
                    cid: e.cid,
                    url: e.url,
                    price: e.correctedPrice || 0,
                    ttl: r(e.expirationTimestamp, n),
                    botProtection: e.botProtection || !1,
                    isCpm: -1 === e.url.indexOf("is_cpm=0"),
                    ignoreClickLogic: e.ignoreClickLogic || !1,
                    crtid: e.crtid,
                    rid: Math.random().toString(36).substring(5) + Math.random().toString(36).substring(5)
                }),
                title: e.title,
                body: e.body,
                image: e.image,
                icon: e.icon,
                actions: e.options.actions,
                requireInteraction: e.options.requireInteraction
            }
        }
        closeExpiredNotifications() {
            return Cr((function*() {
                (
                    yield self.registration.getNotifications()).forEach((e => {
                    e.data.ttl <= Date.now() && e.close()
                }))
            }))()
        }
        displayNotification(e) {
            return a(e.data.delay, self.registration.showNotification(e.title, e)).then((() => {
                e.data.notificationUrl && fetch(e.data.notificationUrl), this.ImpressionModel.addImpression(e.data.rid)
            })).catch((e => {
                console.log("TC SW Imp Error: ".concat(e.toString()))
            }))
        }
        openNotificationUrl(e, t) {
            var n = this;
            return Cr((function*() {
                var r = Date.now();
                n.ClickLocalDB.addFiredClick({
                    rid: e.rid,
                    cid: e.cid,
                    url: e.url,
                    capping_uid: e.capping_uid,
                    ttl: e.ttl,
                    date: r
                }), n.ImpressionModel.incrementImpressionClicks(e.rid), e.capping_uid && n.LimitRuleModel.updateLimits(e.capping_uid);
                var i = function(e, t, n) {
                    if (!t.has(e)) throw new TypeError("attempted to get private field on non-instance");
                    return n
                }(n, Er, Dr).call(n, e, t, r);
                return self.clients.openWindow(i)
            }))()
        }
        isClickPossible(e) {
            var t = this;
            return Cr((function*() {
                return t.ClickLocalDB.isClickUrlFired(e.url) ? (l("ClickUrlFired"), !1) : e.ttl && e.ttl <= Date.now() ? (l("Click ttl expired"), !1) : !e.capping_uid || t.LimitRuleModel.isLimited(e.capping_uid)
            }))()
        }
        reAuction(e, t) {
            var n = this;
            return Cr((function*() {
                var r =
                    yield u(e + "&send_id=1");
                if (Array.isArray(r) && r.length > 0) {
                    var i = r.map((r => n.createNotificationRecord(r, {
                        pushPayload: t,
                        auctionUrl: e
                    }))).sort(((e, t) => t.data.price - e.data.price));
                    return i.forEach((e => n.displayNotification(e))), i
                }
                return []
            }))()
        }
        processClick(e, t) {
            var n = this;
            return Cr((function*() {
                var {
                    rid: r,
                    auctionUrl: i,
                    botProtection: o,
                    pushPayload: s,
                    ignoreClickLogic: a
                } = e.data;
                l("ignoreClickLogic", a), n.ClickLocalDB.getStoredClicks() || (
                    yield n.ClickLocalDB.loadClickStore());
                var c =
                    yield n.isClickPossible(e.data);
                l("originalClickPossible: ", c, e.data);
                var u = n.ClickLocalDB.getStoredClicks().length;
                if ((0 === u || 1 === u && !c || a) && e.close(), c) return n.openNotificationUrl(e.data, t);
                var d = n.ClickLocalDB.getStoredMaxPriceClick();
                if (d) return (
                    yield n.isClickPossible(d)) ? (l("storedClick used: ", d), n.openNotificationUrl(Object.assign(d, {
                    rid: r,
                    count: u,
                    botProtection: o
                }), t)) : n.processClick(e, t);
                if (0 === ((
                        yield n.ImpressionModel.getImpression(r)) || {
                        cl: 0
                    }).cl) {
                    var h =
                        yield n.reAuction(i, s);
                    for (var f of(l("reAuction done: ", h), h))
                        if (
                            yield n.isClickPossible(f.data)) return l("get click url from reaction: ", f), n.openNotificationUrl(Object.assign(f.data, {
                            rid: r,
                            botProtection: o
                        }), t)
                }
                return Promise.resolve()
            }))()
        }
        push(e, t, n) {
            var r = this;
            return Cr((function*() {
                var i, o, {
                        isMetaMaskActive: s,
                        userKeywords: a,
                        entryReferrerDomain: c
                    } = n,
                    l = t;
                try {
                    var d = e.data.json();
                    l = d.sid ? d : d.data
                } catch (e) {
                    l = t
                }
                if (l) try {
                    l.ver = r.version, l.ver_c = r.version;
                    var h =
                        yield r.ImpressionModel.getAllImpressions();
                    h.length >= 100 && (l.ctr = h.reduce(((e, t) => e += t.cl), 0) / h.length);
                    var f = 0 === r.timezone_offset ? 0 : r.timezone_offset,
                        p = (i = Pr(Pr({}, l), {}, {
                            timezone_offset: f,
                            mm: s,
                            user_keywords: a,
                            pr: c
                        }), o = new URL("/in/multy", "https://notification.tubecup.net"), Object.entries(i).forEach((e => {
                            var [t, n] = e;
                            "object" == typeof n ? o.searchParams.append(t, encodeURI(JSON.stringify(n))) : o.searchParams.append(t, n)
                        })), o.toString()),
                        m =
                        yield u(p);
                    return r.closeExpiredNotifications(), Promise.all(m.map((e => {
                        var t = r.createNotificationRecord(e, {
                            auctionUrl: p,
                            pushPayload: l
                        });
                        return r.displayNotification(t)
                    })))
                } catch (e) {
                    throw new Error("TC SW Error: ".concat(e))
                }
            }))()
        }
        notificationclick(e) {
            var t;
            if (!e.notification.data) return Promise.resolve();
            var n = null !== (t = e.notification.actions.find((t => t.action === e.action))) && void 0 !== t ? t : {
                action: "banner"
            };
            return a(0, this.processClick(e.notification, n))
        }
        notificationclose(e) {
            var t = this;
            return Cr((function*() {
                if (!e.notification.data) return Promise.resolve();
                var {
                    url: n,
                    price: r,
                    ttl: i,
                    cid: o,
                    capping_uid: s,
                    ignoreClickLogic: a,
                    crtid: c,
                    isCpm: l
                } = e.notification.data, u = new URL(n);
                return u.searchParams.append("ml", 1), !a && (t.ClickLocalDB.getStoredClicks() || (
                    yield t.ClickLocalDB.loadClickStore()), t.ClickLocalDB.isClickUrlFired(n) || l || i && !(i > Date.now()) ? void 0 : (t.ClickLocalDB.addStoredClick({
                    url: u.toString(),
                    price: r,
                    ttl: i,
                    cid: o,
                    capping_uid: s,
                    crtid: c,
                    date: Date.now()
                }), Promise.resolve()))
            }))()
        }
    };

    function Dr(e, t, n) {
        var r = new URL(e.url);
        return void 0 !== e.count && r.searchParams.append("scheme_id", e.count), r.searchParams.append("event_timestamp", n), r.searchParams.append("action", t.action), t.title && r.searchParams.append("button_title", t.title), r
    }
    var Kr = {
            beforeAuctionFetch: {
                et: 60
            },
            beforeIconLoad: {
                et: 61
            },
            iconLoaded: {
                et: 62
            },
            windowOpened: {
                et: 63
            },
            windowNotOpened: {
                et: 64
            },
            iconNotLoaded: {
                et: 65
            }
        },
        jr = ["hdzog"];
    for (var Mr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", Rr = new Uint8Array(256), Ir = 0; Ir < Mr.length; Ir++) Rr[Mr.charCodeAt(Ir)] = Ir;

    function Tr(e) {
        for (var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Mr, n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "", r = new Uint8Array(e), i = r.length, o = "", s = 0; s < i; s += 3) o += t[r[s] >> 2], o += t[(3 & r[s]) << 4 | r[s + 1] >> 4], o += t[(15 & r[s + 1]) << 2 | r[s + 2] >> 6], o += t[63 & r[s + 2]];
        return i % 3 == 2 ? o = o.slice(0, o.length - 1) + n : i % 3 == 1 && (o = o.slice(0, o.length - 2) + n + n), o
    }

    function Br(e) {
        var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Rr,
            n = e.length,
            r = Math.floor(.75 * e.length),
            i = 0;
        "=" === e[n - 1] && (r--, "=" === e[n - 2] && r--);
        for (var o = new Uint8Array(r), s = 0; s < n; s += 4) {
            var a = t[e.charCodeAt(s)],
                c = t[e.charCodeAt(s + 1)],
                l = t[e.charCodeAt(s + 2)],
                u = t[e.charCodeAt(s + 3)];
            o[i++] = a << 2 | c >> 4, o[i++] = (15 & c) << 4 | l >> 2, o[i++] = (3 & l) << 6 | 63 & u
        }
        return o
    }
    Rr[45] = 62, Rr[95] = 63;
    var Nr = [{
        id: 1,
        key: "BPZP2eiVQ9M9ldQ7r2fhzutv-XFsMp-Td09w-YeUa4GfRM0v67zx1qaGM63ObPzaTsCP5dDka49rKFLAdMPE6OE"
    }, {
        id: 2,
        key: "BF6EtvSBQCWLNPiIKFl1BDdED6YuQP6-SzMrPMbNW7sVfANmHqfBFw740chC-It4jksmVqZisq0_PSF7gAgP5nQ"
    }, {
        id: 3,
        key: "BEHF3tidJXPYC72Em3qikxTlUu8muOulHJZslAdiiYUnfzHf4WK4DcgPwmrPaAogLp5qPnC8heItmL_1YWFSAhY"
    }, {
        id: 4,
        key: "BBDqg-WUChOYKzOIX6NN5XJrar5S07W-CKaZZXXJGB60ZSgxwngaE2rUaAEtk6d7YubEG8O41nTU3WfgUylFQ58"
    }, {
        id: 5,
        key: "BJYNCsbiJGzE8t9JwcXGYGuCqCMpnvmXWrbMoSzmbnjzxMHQj1q1ID-opWyEWc_S9uV4O8AywYCrlsXmm9tXiOo"
    }, {
        id: 6,
        key: "BPXqJtk9Bdkncr9C2ufUukTZSSF9glUiIZAIiSzAcxW0dLYQQIybaflPfEAKB5SniyGy4ClBMyRK4vCZ1pKsPqI"
    }, {
        id: 7,
        key: "BMJh9g24g8sh8vW1tkCeH_KtNuZnibzf1I-7Bs6vrwFaLsQIMovo1V5xjG2OFLhyATSkD0w2KCHtBaQOcQSnuHk"
    }, {
        id: 8,
        key: "BE2A1EVOc4rObFyk2Nm-xFoDzyWzQcpnJGrWddYd4ZqNZDR-5YpjJ19iDI6JVwk9C_AkxaHqAw5URUyg7HIIPYk"
    }, {
        id: 9,
        key: "BAqDDxkwMOnPahAtxNpsYdK8YCQFtaOdHE98XBO89YW0MZ0F7WZnTK7Q5Pz6wQ-N3ZHoPfZVZcgAs6VwPlLbQYY"
    }, {
        id: 10,
        key: "BBzCwiEPu1eobZvl_KHxzz3SUYJolGR4YZM-oplWC-oT5DfXXAcolbHY0i3qXwekwgD8ALMNwPtfpTuu77TpeFo"
    }];

    function qr(e) {
        return e[Math.floor(Math.random() * e.length)]
    }

    function Fr(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function Ur(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var o = e.apply(t, n);

                function s(e) {
                    Fr(o, r, i, s, a, "next", e)
                }

                function a(e) {
                    Fr(o, r, i, s, a, "throw", e)
                }
                s(void 0)
            }))
        }
    }

    function Lr(e, t, n, r, i, o, s, a, c, l, u, d, h, f) {
        return Wr.apply(this, arguments)
    }

    function Wr() {
        return Wr = Ur((function*(r, i, o, s, a, c, l, u, d, h, f, p, m, y) {
            var v = arguments.length > 14 && void 0 !== arguments[14] ? arguments[14] : "",
                g = arguments.length > 15 && void 0 !== arguments[15] ? arguments[15] : "",
                b = arguments.length > 16 ? arguments[16] : void 0;
            yield i.unsubscribe();
            var w =
                yield r.subscribe({
                    applicationServerKey: Br(o),
                    userVisibleOnly: !0
                }),
                _ = w.getKey("p256dh"),
                k = w.getKey("auth"),
                C = e + t,
                x =
                yield fetch(C, {
                    method: "POST",
                    headers: {
                        "Content-type": "application/json"
                    },
                    body: JSON.stringify({
                        contentEncoding: (PushManager.supportedContentEncodings || ["aesgcm"])[0],
                        authToken: Tr(k),
                        publicKey: Tr(_),
                        endpoint: w.endpoint,
                        sdkVersion: n,
                        tcid: a,
                        spot_id: c,
                        token_id: s,
                        tube: "other" === l ? "tcpublisher" : l,
                        sub: u,
                        utm_source: d,
                        utm_medium: h,
                        utm_campaign: f,
                        utm_content: p,
                        is_adblock: m,
                        fp: y,
                        referrer: v,
                        href: g,
                        sid: b
                    })
                });
            return x.json()
        })), Wr.apply(this, arguments)
    }

    function zr() {
        return (zr = Ur((function*(e, t) {
            var {
                tcId: n,
                spotId: r,
                tube: i,
                sub: o,
                utmSource: s,
                utmMedium: a,
                utmCampaign: c,
                utmContent: l,
                isAdblock: u,
                fingerprint: d,
                sid: h,
                referrer: f,
                href: p
            } = t, m = Nr.map((e => {
                    var {
                        key: t
                    } = e;
                    return t
                })), y =
                yield e.getSubscription(), v = Tr(y.options.applicationServerKey);
            if (!m.includes(v) || "other" === i) {
                var g = qr(Nr);
                return yield Lr(e, y, g.key, g.id, n, r, i, o, s, a, c, l, u, d, f, p, h)
            }
            return {
                sid: h
            }
        }))).apply(this, arguments)
    }

    function Yr(e, t) {
        var n = Object.keys(e);
        if (Object.getOwnPropertySymbols) {
            var r = Object.getOwnPropertySymbols(e);
            t && (r = r.filter((function(t) {
                return Object.getOwnPropertyDescriptor(e, t).enumerable
            }))), n.push.apply(n, r)
        }
        return n
    }

    function Vr(e) {
        for (var t = 1; t < arguments.length; t++) {
            var n = null != arguments[t] ? arguments[t] : {};
            t % 2 ? Yr(Object(n), !0).forEach((function(t) {
                $r(e, t, n[t])
            })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Yr(Object(n)).forEach((function(t) {
                Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t))
            }))
        }
        return e
    }

    function $r(e, t, n) {
        return t in e ? Object.defineProperty(e, t, {
            value: n,
            enumerable: !0,
            configurable: !0,
            writable: !0
        }) : e[t] = n, e
    }

    function Qr(e, t, n, r, i, o, s) {
        try {
            var a = e[o](s),
                c = a.value
        } catch (e) {
            return void n(e)
        }
        a.done ? t(c) : Promise.resolve(c).then(r, i)
    }

    function Jr(e) {
        return function() {
            var t = this,
                n = arguments;
            return new Promise((function(r, i) {
                var o = e.apply(t, n);

                function s(e) {
                    Qr(o, r, i, s, a, "next", e)
                }

                function a(e) {
                    Qr(o, r, i, s, a, "throw", e)
                }
                s(void 0)
            }))
        }
    }
    var Hr = [{
            action: "more",
            title: "More"
        }, {
            action: "settings",
            title: "Settings"
        }],
        Xr = ["auction-request", "on-demand", "mixed"],
        Gr = {
            more: ["<9", "=�", "=�", "=�", "=�", "<�", "<�", "=�"],
            settings: ["='", "=�", "�"]
        },
        Zr = ["bookmark", "face", "starburst", "warranty"],
        ei = {
            nextNotification: 0,
            mode: null,
            demandModeProbability: .5,
            creativesUpdateTime: null,
            statSendTime: null,
            postponedUpdateTime: null,
            isMetaMaskActive: !1,
            userKeywords: "",
            entryReferrerDomain: null
        };
    class ti {
        constructor() {
            this.Tracking = new class {
                constructor() {
                    var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "https://logger.wpu.sh/";
                    this.trackingURL = e, this.params = {}
                }
                track(e) {
                    var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                    return jr.includes(this.params.site) && Kr[e] ? fetch(this.trackingURL + "?" + this.getQueryString(e, t)).catch((() => Promise.resolve())) : Promise.resolve()
                }
                setParam(e, t) {
                    this.params[e] = t
                }
                getQueryString(e, t) {
                    return Object.keys(Kr[e]).map((t => "".concat(encodeURIComponent(t), "=").concat(encodeURIComponent(Kr[e][t])))).concat(Object.keys(t).map((e => "".concat(encodeURIComponent(e), "=").concat(encodeURIComponent(t[e]))))).join("&")
                }
            }, this.Auction = new lr, this.Stat = new hr, this.modes = {
                auctionRequest: new Ar
            }, this.version = n, this.auctionRequestOptions = null, this.notificationsMap = {}, this.settingsRestored = !1, Object.keys(ei).forEach((e => {
                this[e] = ei[e]
            }))
        }
        get notifications() {
            return this._notifications || []
        }
        set notifications(e) {
            this._notifications = e, this.notificationsMap = {}, this._notifications.forEach((e => {
                this.notificationsMap[e.creative_id] = e
            }))
        }
        static getVersion() {
            return n
        }
        restoreEnvironment() {
            var e = this;
            return Jr((function*() {
                if (!e.settingsRestored) {
                    e.settingsRestored = !0;
                    var t =
                        yield e.Auction.getParameters();
                    t && (e.auctionRequestOptions = t.auctionRequestOptions, e.notifications = t.notifications);
                    var n =
                        yield e.Auction.getSettings();
                    Object.keys(ei).forEach((t => {
                        e[t] = n && n[t] || ei[t]
                    }))
                }
            }))()
        }
        saveEnvironment() {
            var e = this;
            return Jr((function*() {
                return h([e.Auction.saveParameters(e.auctionRequestOptions, e.notifications), e.Auction.saveSettings(Object.keys(ei).reduce(((t, n) => (t[n] = e[n], t)), {}))])
            }))()
        }
        showNotification() {
            var e = this;
            return Jr((function*() {
                if (
                    yield e.restoreEnvironment(), null === self.registration.active || !e.notifications || !e.notifications.length) return Promise.resolve();
                var t;
                e.nextNotification >= e.notifications.length && (e.nextNotification = e.notifications.length - 1);
                var n = e.notifications[e.nextNotification++];
                (e.nextNotification === e.notifications.length || e.nextNotification > 13) && (e.nextNotification = 0);
                var r = Hr.map((e => ({
                    action: e.action,
                    title: "".concat(Gr[e.action][Math.round(Math.random() * (Gr[e.action].length - 1))], " ").concat(e.title)
                })));
                return t = self.registration.showNotification(n.title, {
                    body: n.body,
                    requireInteraction: !0,
                    image: n.imgurl,
                    icon: n.icon || n.imgurl,
                    badge: "https://static.bookmsg.com/creatives/icons/icon-" + Zr[Math.round(Math.random() * (Zr.length - 1))] + ".webp",
                    actions: r,
                    tag: Math.random(),
                    data: Vr(Vr({}, n), {}, {
                        mode: "on-demand"
                    })
                }), h([e.Stat.addImpression(n).then((() => {
                    e.sendStat()
                })), e.saveEnvironment(), t])
            }))()
        }
        getMode() {
            Xr.includes(this.mode) || (this.mode = null);
            var e = this.mode;
            return "mixed" === e ? e = Math.random() < this.demandModeProbability ? "on-demand" : "auction-request" : this.mode || (e = "auction-request"), e
        }
        setDemandModeProbability(e) {
            this.demandModeProbability = parseFloat(e), isNaN(this.demandModeProbability) || !isFinite(this.demandModeProbability) || this.demandModeProbability < 0 ? this.demandModeProbability = 0 : this.demandModeProbability > 1 && (this.demandModeProbability = 1)
        }
        message(e) {
            var t, n, r, i, o, s;
            this.isMetaMaskActive = null === (t = e.data) || void 0 === t || null === (n = t.adManagerEnv) || void 0 === n ? void 0 : n.isMetaMaskActive, this.userKeywords = null === (r = e.data) || void 0 === r || null === (i = r.adManagerEnv) || void 0 === i ? void 0 : i.keywords, this.entryReferrerDomain = null === (o = e.data) || void 0 === o || null === (s = o.adManagerEnv) || void 0 === s ? void 0 : s.entryReferrerDomain, e.waitUntil(this.saveEnvironment())
        }
        push(e) {
            var t = this;
            return Jr((function*() {
                yield t.restoreEnvironment();
                var n, r, o, s, a, l, u, d, f, p, m, y, v, g, b, w, _, k, C, x, P, O, S, E = null,
                    A = Date.now();
                try {
                    E = e.data.json()
                } catch (e) {}
                Math.random().toFixed(2) > .97 && (
                    yield
                    function(e, t) {
                        return zr.apply(this, arguments)
                    }(self.registration.pushManager, {
                        tcId: null !== (n = null === (r = E) || void 0 === r ? void 0 : r.tcid) && void 0 !== n ? n : null,
                        spotId: null !== (o = null === (s = E) || void 0 === s ? void 0 : s.spot_id) && void 0 !== o ? o : null,
                        tube: null !== (a = null === (l = E) || void 0 === l ? void 0 : l.site) && void 0 !== a ? a : "tcpublisher",
                        sub: null !== (u = null === (d = E) || void 0 === d ? void 0 : d.ad_sub) && void 0 !== u ? u : 0,
                        utmSource: null !== (f = null === (p = E) || void 0 === p ? void 0 : p.utm_source) && void 0 !== f ? f : "",
                        utmMedium: null !== (m = null === (y = E) || void 0 === y ? void 0 : y.utm_medium) && void 0 !== m ? m : "",
                        utmCampaign: null !== (v = null === (g = E) || void 0 === g ? void 0 : g.utm_campaign) && void 0 !== v ? v : "",
                        utmContent: null !== (b = null === (w = E) || void 0 === w ? void 0 : w.utm_content) && void 0 !== b ? b : "",
                        isAdblock: null !== (_ = null === (k = E) || void 0 === k ? void 0 : k.is_adblock) && void 0 !== _ ? _ : 0,
                        fingerprint: null !== (C = null === (x = E) || void 0 === x ? void 0 : x.fingerprint) && void 0 !== C ? C : "",
                        sid: null !== (P = null === (O = E) || void 0 === O ? void 0 : O.sid) && void 0 !== P ? P : null
                    }));
                if (!E) return S = t.getMode(), t.auctionRequestOptions ? "on-demand" === S ? t.showNotification() : t.modes.auctionRequest.push(e, t.auctionRequestOptions, {
                    isMetaMaskActive: t.isMetaMaskActive,
                    userKeywords: t.userKeywords,
                    entryReferrerDomain: t.entryReferrerDomain
                }) : Promise.resolve();
                t.auctionRequestOptions = E.sid ? E : E.data, void 0 !== t.auctionRequestOptions.mixModeProbability && (t.setDemandModeProbability(t.auctionRequestOptions.mixModeProbability), delete t.auctionRequestOptions.mixModeProbability), void 0 !== t.auctionRequestOptions.mode && (t.mode = t.auctionRequestOptions.mode, delete t.auctionRequestOptions.mode), S = t.getMode(), t.postponedUpdateTime || "on-demand" !== S || (t.postponedUpdateTime = Math.round(A + Math.random() * i));
                var D = A < t.postponedUpdateTime && (!t.notifications || !t.notifications.length);
                return "on-demand" !== S || D ? h([t.saveEnvironment(), t.modes.auctionRequest.push(e, t.auctionRequestOptions, {
                    isMetaMaskActive: t.isMetaMaskActive,
                    userKeywords: t.userKeywords,
                    entryReferrerDomain: t.entryReferrerDomain
                })]) : A < t.postponedUpdateTime || t.creativesUpdateTime && A - t.creativesUpdateTime < i ? t.showNotification() : fetch("".concat("https://bookmsg.com/in/creativesv2", "?").concat(c(t.getAuctionOptions()))).then(function() {
                    var e = Jr((function*(e) {
                        if (200 !== e.status) throw new Error("Request JSON data failed.");
                        var n =
                            yield e.json();
                        if (t.creativesUpdateTime = Date.now(), Array.isArray(n)) t.notifications = n;
                        else if (n && Array.isArray(n.notifications)) {
                            if (!n.notifications.length) throw new Error("No data found.");
                            t.notifications = n.notifications
                        }
                        return t.notifications.sort((() => Math.random() - .5)), t.saveEnvironment().then((() => t.showNotification()))
                    }));
                    return function(t) {
                        return e.apply(this, arguments)
                    }
                }()).catch((() => t.saveEnvironment().finally((() => t.showNotification()))))
            }))()
        }
        getAuctionOptions() {
            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
            return Vr(Vr({}, this.auctionRequestOptions), {}, {
                ver: this.version,
                ver_c: this.version,
                timezone_offset: (new Date).getTimezoneOffset() / -60,
                dt: Date.now(),
                cat: e && e.category || ""
            })
        }
        notificationclick(e) {
            var t = this;
            return Jr((function*() {
                if ("on-demand" === (e.notification.data && e.notification.data.mode)) {
                    yield t.restoreEnvironment();
                    var n = t.Stat.addClick(e.notification.data).then(t.sendStat.bind(t));
                    if (!t.auctionRequestOptions) return e.notification.close(), n;
                    e.notification.close();
                    var r = "".concat("https://bookmsg.com").concat("/in/message", "?").concat(c(t.getAuctionOptions(e.notification.data)));
                    t.Tracking.setParam("site", t.auctionRequestOptions && t.auctionRequestOptions.site);
                    var i = [];
                    if (i.push(t.Tracking.track("beforeAuctionFetch")), 200 !== (
                            yield fetch(r)).status) return n;
                    var o = "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png",
                        s = "https://www.google.com";
                    i.push(t.Tracking.track("beforeIconLoad"));
                    var a = Date.now();
                    return fetch(o, {
                        mode: "no-cors",
                        redirect: "follow",
                        headers: {
                            Accept: "image/*,*/*;q=0.8"
                        }
                    }).then((() => {
                        Date.now();
                        return i.push(t.Tracking.track("iconLoaded")), self.clients.openWindow(s).then((() => h(i.concat([t.Tracking.track("windowOpened")])))).catch((e => h(i.concat([t.Tracking.track("windowNotOpened")]))))
                    })).catch((e => h(i.concat([t.Tracking.track("iconNotLoaded", {
                        t: Date.now() - a
                    })]))))
                }
                e.waitUntil(t.modes.auctionRequest.notificationclick(e))
            }))()
        }
        notificationclose(e) {
            var t = this;
            return Jr((function*() {
                if (
                    yield t.restoreEnvironment(), e.notification.data && "on-demand" !== e.notification.data.mode) return t.modes.auctionRequest.notificationclose(e)
            }))()
        }
        install() {
            return self.skipWaiting()
        }
        activate() {
            return self.clients.claim()
        }
        sendStat() {
            var e = this;
            return Jr((function*() {
                var t = Date.now();
                e.statSendTime || (e.statSendTime = t, e.saveEnvironment());
                var n = Math.random().toString(),
                    r =
                    yield e.Stat.getData(n),
                    i = r.some((e => e.clicks > 0)),
                    o = 0;
                if (i || (o = r.reduce(((e, t) => e + t.impressions), 0)), !i && o < "5" && (!o || t - e.statSendTime < "600000")) return e.Stat.clearTag(n);
                var s = r.map((t => {
                    var n = e.notificationsMap[t.creative_id] || t;
                    return {
                        creative_id: t.creative_id,
                        impressions: t.impressions,
                        clicks: t.clicks,
                        site: e.auctionRequestOptions.site,
                        spot_id: e.auctionRequestOptions.spot_id,
                        tcid: e.auctionRequestOptions.tcid,
                        category: n.category || "",
                        creative_country: n.creative_country || "",
                        subscriber_id: e.auctionRequestOptions.sid || "",
                        sw_ver_core: e.version || ""
                    }
                }));
                return fetch("https://notification.tubecup.net/in/aim", {
                    method: "POST",
                    mode: "cors",
                    cache: "no-cache",
                    headers: {
                        "content-type": "application/json"
                    },
                    body: JSON.stringify(s)
                }).then((r => 201 === r.status ? (e.statSendTime = t, h([e.saveEnvironment(), e.Stat.clearData(n)])) : e.Stat.clearTag(n))).catch((() => e.Stat.clearTag(n)))
            }))()
        }
    }
    self.getWorker = () => ti
})();
                                    

Executed Writes (5)

#1 JavaScript::Write (size: 479, repeated: 1) - SHA256: a8ed3577bece8c747c592d730b93333508ac9875b302e1e5bbe5565f3d6f013d

                                        < iframe src = "https://syndication.realsrv.com/ads-iframe-display.php?idzone=1500788&amp;type=300x250&amp;p=https%3A//rtbrennab.com/&amp;dt=1662356718937&amp;sub=14036&amp;tags=Straight,Japanese&amp;cookieconsent=true&amp;screen_resolution=1280x1024&amp;el=&quot; "
sandbox = "allow-forms allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts"
scrolling = "no"
marginwidth = "0"
marginheight = "0"
width = "300"
height = "250"
frameborder = "0" > < /iframe>
                                    

#2 JavaScript::Write (size: 479, repeated: 1) - SHA256: 983f1e74ac2979788687922375f5bcdff6e86041f809d1a008ca4c01b6b6c441

                                        < iframe src = "https://syndication.realsrv.com/ads-iframe-display.php?idzone=1500748&amp;type=300x250&amp;p=https%3A//rtbrennab.com/&amp;dt=1662356718846&amp;sub=14036&amp;tags=Straight,Japanese&amp;cookieconsent=true&amp;screen_resolution=1280x1024&amp;el=&quot; "
sandbox = "allow-forms allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts"
scrolling = "no"
marginwidth = "0"
marginheight = "0"
width = "300"
height = "250"
frameborder = "0" > < /iframe>
                                    

#3 JavaScript::Write (size: 479, repeated: 1) - SHA256: 883670b110b9004c8d66c4747f02364af9d6a3f650d192e3532a91c36ec8b5a4

                                        < iframe src = "https://syndication.realsrv.com/ads-iframe-display.php?idzone=1500752&amp;type=300x250&amp;p=https%3A//rtbrennab.com/&amp;dt=1662356718849&amp;sub=14036&amp;tags=Straight,Japanese&amp;cookieconsent=true&amp;screen_resolution=1280x1024&amp;el=&quot; "
sandbox = "allow-forms allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts"
scrolling = "no"
marginwidth = "0"
marginheight = "0"
width = "300"
height = "250"
frameborder = "0" > < /iframe>
                                    

#4 JavaScript::Write (size: 479, repeated: 1) - SHA256: 870fbf46c225f636dba57a060744d8556566f102e665e79b5e2f50ccd8683043

                                        < iframe src = "https://syndication.realsrv.com/ads-iframe-display.php?idzone=1500742&amp;type=300x250&amp;p=https%3A//rtbrennab.com/&amp;dt=1662356718858&amp;sub=14036&amp;tags=Straight,Japanese&amp;cookieconsent=true&amp;screen_resolution=1280x1024&amp;el=&quot; "
sandbox = "allow-forms allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts"
scrolling = "no"
marginwidth = "0"
marginheight = "0"
width = "300"
height = "250"
frameborder = "0" > < /iframe>
                                    

#5 JavaScript::Write (size: 479, repeated: 1) - SHA256: c01ad2a8cca37ecd06bf40c59cec6c62b7e5bea458f3ac40a4662baf7a729003

                                        < iframe src = "https://syndication.realsrv.com/ads-iframe-display.php?idzone=1500762&amp;type=300x250&amp;p=https%3A//rtbrennab.com/&amp;dt=1662356718864&amp;sub=14036&amp;tags=Straight,Japanese&amp;cookieconsent=true&amp;screen_resolution=1280x1024&amp;el=&quot; "
sandbox = "allow-forms allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts"
scrolling = "no"
marginwidth = "0"
marginheight = "0"
width = "300"
height = "250"
frameborder = "0" > < /iframe>
                                    


HTTP Transactions (273)


Request Response
                                        
                                            GET /videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036 HTTP/1.1 
Host: upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1

                                         
                                         104.21.234.101
HTTP/1.1 301 Moved Permanently
                                        
Date: Mon, 05 Sep 2022 05:45:19 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: max-age=3600
Expires: Mon, 05 Sep 2022 06:45:19 GMT
Location: https://upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=hN5HTmPXV214ig4sp5wixx67Mn7SfoGE3O0cXqIVoDdcKwBjyw67qu7kP3guMLgtkwj%2BZl7T1z4YJ6jimIs8tZM3b50H3Lw8hvMkdXItnOH6ZxCVPmrxNNbsWC2gDA%3D%3D"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Vary: Accept-Encoding
Server: cloudflare
CF-RAY: 745ca87aa8ff06d1-LHR
alt-svc: h2=":443"; ma=60

                                        
                                            GET /v1/ HTTP/1.1 
Host: firefox.settings.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         143.204.55.35
HTTP/1.1 200 OK
Content-Type: application/json
                                        
Content-Length: 939
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Retry-After, Alert, Content-Length, Content-Type, Backoff
Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
Date: Mon, 05 Sep 2022 05:24:34 GMT
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
X-Cache: Hit from cloudfront
Via: 1.1 bb1da7862c4968b28920b91b324095c0.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-C1
X-Amz-Cf-Id: 2V9N73HMpLtS_NS0NgMC_jKXgnO08x5PgJLLsw4BXisF9mJKZ1q7Bw==
Age: 1245


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (939), with no line terminators
Size:   939
Md5:    b593eb39329cfe060d55be5e4a5405e2
Sha1:   78e46c1028e9f94f8569303ad2d90d7df13a059a
Sha256: 08a810103557efe55ca4425ff0cf82593f1f54633df899127eaec9bee05d4d04
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "F610984FB0A75B3A31424FAA860CBC8172C7F21804DF1DC14FBB685B7C456F29"
Last-Modified: Sat, 03 Sep 2022 23:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=6111
Expires: Mon, 05 Sep 2022 07:27:11 GMT
Date: Mon, 05 Sep 2022 05:45:20 GMT
Connection: keep-alive

                                        
                                            GET /chains/remote-settings.content-signature.mozilla.org-2022-10-09-23-18-04.chain HTTP/1.1 
Host: content-signature-2.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         143.204.55.110
HTTP/2 200 OK
content-type: binary/octet-stream
                                        
content-length: 5348
last-modified: Sat, 20 Aug 2022 23:18:05 GMT
content-disposition: attachment
accept-ranges: bytes
server: AmazonS3
date: Mon, 05 Sep 2022 01:15:19 GMT
etag: "742edb4038f38bc533514982f3d2e861"
x-cache: Hit from cloudfront
via: 1.1 9dd61138197a68f8d69f12574aab6930.cloudfront.net (CloudFront)
x-amz-cf-pop: OSL50-C1
x-amz-cf-id: sadk78t1FOazaG8vUNt8zQaMoYaWI-p3OZlshDkLVThXKahejv-BsQ==
age: 16203
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PEM certificate\012- , ASCII text
Size:   5348
Md5:    742edb4038f38bc533514982f3d2e861
Sha1:   cc3a20c8dc2a8c632ef9387a2744253f1e3fdef1
Sha256: b6bfa49d3d135035701231db2fffc0c0643444394009a94c6a1b4d829d6b8345
                                        
                                            GET /v1/tiles HTTP/1.1 
Host: contile.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         34.117.237.239
HTTP/2 200 OK
content-type: application/json
                                        
server: nginx
date: Mon, 05 Sep 2022 05:45:20 GMT
content-length: 12
strict-transport-security: max-age=31536000
via: 1.1 google
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with no line terminators
Size:   12
Md5:    23e88fb7b99543fb33315b29b1fad9d6
Sha1:   a48926c4ec03c7c8a4e8dffcd31e5a6cdda417ce
Sha256: 7d8f1de8b7de7bc21dfb546a1d0c51bf31f16eee5fad49dbceae1e76da38e5c3
                                        
                                            GET /upd/20220818.093453.41400/static/js/video.js HTTP/1.1 
Host: upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036
Cookie: source=14036; kt_lang=en
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         104.21.234.100
HTTP/2 200 OK
content-type: application/javascript
                                        
date: Mon, 05 Sep 2022 05:45:20 GMT
last-modified: Thu, 18 Aug 2022 09:34:53 GMT
vary: Accept-Encoding
etag: W/"62fe07bd-a1b8"
expires: Mon, 05 Sep 2022 06:11:52 GMT
cache-control: public, max-age=31536000
pragma: public
cf-cache-status: HIT
age: 209
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=grejF2AGq5why16dY5Ri72UpBQOek0YE6O0gIu6ONe%2F3zi8BF2IZUm1JFNSJS9ZlMIa2pskMW%2FSxWSrLU7ciMnxbgNPLvEqENqmEXQjb7ITzD%2F9uwOgUwX31MKCGhw%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 745ca87e4bda777f-LHR
content-encoding: br
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (41400), with no line terminators
Size:   10782
Md5:    9372392bbfb8e08accf184f862467671
Sha1:   13af7be6fea950404e8cd754baa8555eb45616c5
Sha256: 28720970b802756b8c09818ea4392a30213909aa3a3933a1dfa32dec36b035e4
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 05:45:20 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 05:45:20 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 05:45:20 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "EBB7DBCDADCAE8426F6BE7FB938D1BD78CB7BABD8824D747222D2565477797E9"
Last-Modified: Sun, 04 Sep 2022 00:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=5204
Expires: Mon, 05 Sep 2022 07:12:04 GMT
Date: Mon, 05 Sep 2022 05:45:20 GMT
Connection: keep-alive

                                        
                                            GET /gtm.js?id=GTM-MVMB4DG HTTP/1.1 
Host: www.googletagmanager.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.72
HTTP/2 200 OK
content-type: application/javascript; charset=UTF-8
                                        
access-control-allow-origin: *
access-control-allow-credentials: true
access-control-allow-headers: Cache-Control
content-encoding: br
vary: Accept-Encoding
date: Mon, 05 Sep 2022 05:45:20 GMT
expires: Mon, 05 Sep 2022 05:45:20 GMT
cache-control: private, max-age=900
last-modified: Mon, 05 Sep 2022 03:00:00 GMT
strict-transport-security: max-age=31536000; includeSubDomains
cross-origin-resource-policy: cross-origin
server: Google Tag Manager
content-length: 37724
x-xss-protection: 0
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (2198)
Size:   37724
Md5:    528dec20e74b81545806798a4749f8fd
Sha1:   85f07f567e1c15a6afd53107333537cca53a088f
Sha256: a56f65ddf35b1651508814564f17c101d5cb3e1d077120be0273cf143db1f2c4
                                        
                                            GET /gtm.js?id=GTM-WSSWGK HTTP/1.1 
Host: www.googletagmanager.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.72
HTTP/2 200 OK
content-type: application/javascript; charset=UTF-8
                                        
access-control-allow-origin: *
access-control-allow-credentials: true
access-control-allow-headers: Cache-Control
content-encoding: br
vary: Accept-Encoding
date: Mon, 05 Sep 2022 05:45:20 GMT
expires: Mon, 05 Sep 2022 05:45:20 GMT
cache-control: private, max-age=900
last-modified: Mon, 05 Sep 2022 03:00:00 GMT
strict-transport-security: max-age=31536000; includeSubDomains
cross-origin-resource-policy: cross-origin
server: Google Tag Manager
content-length: 46264
x-xss-protection: 0
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (3018)
Size:   46264
Md5:    a56c2dd72f438a9801cefb0e818ef2c3
Sha1:   09bbe8f5a12d7e1c17de6c3de1f4a0acc3efb898
Sha256: bdfa004cd6d8137d6ae438ca18b95d85918048f10f038a583e697c7d5e87a82b
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 05:45:20 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /code/https.js?uid=166105&site=8048335&banadu=0&sub1=sub1 HTTP/1.1 
Host: news-muheji.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         149.7.16.240
HTTP/2 200 OK
content-type: application/javascript
                                        
server: nginx
date: Mon, 05 Sep 2022 05:45:20 GMT
content-length: 8839
last-modified: Sat, 03 Sep 2022 06:37:20 GMT
etag: "6312f620-2287"
expires: Thu, 31 Dec 2037 23:55:55 GMT
cache-control: max-age=315360000
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (8839), with no line terminators
Size:   8839
Md5:    b34a1c4d5dbfbf0bba3a04a9c71763fa
Sha1:   f95c34da69d4009b416fd63580452ef460a173d0
Sha256: 8cba24a3fb990a5f61c95d095b08a563d52b89761b6f5ec5aa7ece4681c0048e
                                        
                                            GET /v1/buckets/main/collections/ms-language-packs/records/cfr-v1-en-US HTTP/1.1 
Host: firefox.settings.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/json
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/json
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         143.204.55.35
HTTP/1.1 200 OK
Content-Type: application/json
                                        
Content-Length: 329
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Retry-After, ETag, Backoff, Last-Modified, Pragma, Cache-Control, Expires, Content-Type, Content-Length, Alert
Content-Security-Policy: default-src 'none'; frame-ancestors 'none'; base-uri 'none';
Last-Modified: Fri, 25 Mar 2022 17:45:46 GMT
Strict-Transport-Security: max-age=31536000
X-Content-Type-Options: nosniff
Date: Mon, 05 Sep 2022 05:38:16 GMT
Cache-Control: max-age=3600
Expires: Mon, 05 Sep 2022 06:15:05 GMT
ETag: "1648230346554"
X-Cache: Hit from cloudfront
Via: 1.1 a7d2a4ec2f50830f128dc406960aef9a.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: OSL50-C1
X-Amz-Cf-Id: 7akqEYQfMd6MgtWcYFS6Ku0Pc6ZKZTnoNmofpAvc8p84T93GjwZQfA==
Age: 424


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (329), with no line terminators
Size:   329
Md5:    0333b0655111aa68de771adfcc4db243
Sha1:   63f295a144ac87a7c8e23417626724eeca68a7eb
Sha256: 60636eb1dc67c9ed000fe0b49f03777ad6f549cb1d2b9ff010cf198465ae6300
                                        
                                            GET /upd/20220818.093453.332484/static/js/chunk-common.js HTTP/1.1 
Host: upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036
Cookie: source=14036; kt_lang=en
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         104.21.234.100
HTTP/2 200 OK
content-type: application/javascript
                                        
date: Mon, 05 Sep 2022 05:45:20 GMT
last-modified: Thu, 18 Aug 2022 09:34:53 GMT
vary: Accept-Encoding
etag: W/"62fe07bd-512c4"
expires: Mon, 05 Sep 2022 06:03:45 GMT
cache-control: public, max-age=31536000
pragma: public
cf-cache-status: HIT
age: 696
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=qSoSJQIviaH91AoNOYc7wViPlX8f6y2GgM4AZFDTLv4UnMScKeeJPkMuIyNVo46fwnN26ExkGlev3Sin2v3kENapa1qbBBku2h0dFVFLoGhw4HM1rdYD50P89QYTgA%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 745ca87e4bd8777f-LHR
content-encoding: br
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Unicode text, UTF-8 text, with very long lines (65520), with no line terminators
Size:   89001
Md5:    f7a61a9e0ad31e197c83043b6c760c1b
Sha1:   9cf8b9f4bbe90b74ea6bf14ac4e536f786f89169
Sha256: 2df6b49a095e99b82df40d3959cc078ff64aacfa3111c1366f5a5d0bfed1d810
                                        
                                            GET /css2?family=Roboto:wght@300;400;500;900&display=swap HTTP/1.1 
Host: fonts.googleapis.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.10
HTTP/2 200 OK
content-type: text/css; charset=utf-8
                                        
access-control-allow-origin: *
timing-allow-origin: *
link: <https://fonts.gstatic.com>; rel=preconnect; crossorigin
strict-transport-security: max-age=31536000
expires: Mon, 05 Sep 2022 05:45:20 GMT
date: Mon, 05 Sep 2022 05:45:20 GMT
cache-control: private, max-age=86400
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin-allow-popups
content-encoding: gzip
server: ESF
x-xss-protection: 0
x-frame-options: SAMEORIGIN
x-content-type-options: nosniff
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text
Size:   2051
Md5:    8a3adc3c47229f7a45d4b43af2725d8d
Sha1:   cfc0b68f7268320fc32bac601e95509d8d456197
Sha256: 84a0a82c99726a9b08f42f60397b1437c00109badc2a086c9dba200f7edad687
                                        
                                            GET /upd/20220818.093453.176694/static/css/chunk-common.css HTTP/1.1 
Host: upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036
Cookie: source=14036; kt_lang=en
Sec-Fetch-Dest: style
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         104.21.234.100
HTTP/2 200 OK
content-type: text/css
                                        
date: Mon, 05 Sep 2022 05:45:20 GMT
last-modified: Thu, 18 Aug 2022 09:34:53 GMT
vary: Accept-Encoding
etag: W/"62fe07bd-2b236"
expires: Mon, 05 Sep 2022 06:02:57 GMT
cache-control: public, max-age=31536000
pragma: public
cf-cache-status: HIT
age: 744
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=Bh%2FeCIKjB2UGNaXxtxG1kfXYhi9Xgp9ZfOVk2nuYAH%2Fd6FUMDxuM3YotWXWuGCdky%2Fk7ZT9D%2BH%2F0blIoRO20Nb8q7yy%2BSFkujgdT8JCZeS8gizotS78EZxffIPjpOA%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 745ca87e4bdc777f-LHR
content-encoding: br
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (65536), with no line terminators
Size:   25812
Md5:    51d709b44ec03a1c1958fe309220a139
Sha1:   54d3a5df7fd7a563eab87448d2aa2ab0244727d6
Sha256: 58cdb4926fb3f83a4fe4389ebddd41033925ae0dbd17322ef04ffc25fe83596b
                                        
                                            GET /images/favicons/favicon-16x16.png HTTP/1.1 
Host: upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036
Cookie: source=14036; kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         104.21.234.100
HTTP/2 200 OK
content-type: image/png
                                        
date: Mon, 05 Sep 2022 05:45:20 GMT
content-length: 722
last-modified: Fri, 22 Jul 2022 07:40:01 GMT
etag: "62da5451-2d2"
expires: Sun, 11 Sep 2022 08:55:22 GMT
cache-control: public, max-age=31536000
pragma: public
cf-cache-status: HIT
age: 2062199
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=z%2BHe8%2BZVHprRrKOA%2BV%2Fr3zJdCvJvoL25lGd8bHM7P%2B17tuJMeF5wSLJvjxHi8AdRgIKdATHrlnDGMqh20k%2BofwpjO54%2FrYSapIYJLjuXae7R2bEjVekU3nGYVKVtqw%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
vary: Accept-Encoding
server: cloudflare
cf-ray: 745ca8821fcc777f-LHR
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PNG image data, 16 x 16, 8-bit colormap, non-interlaced\012- data
Size:   722
Md5:    e1a60451744dc606581f8f5a12d912bb
Sha1:   56f64fdf2827ccfb3dec93e9d1a5ae6fec424d73
Sha256: c2e8c8fff9daa3c581d86cd1b0b2913b0bdf5ef783e6055e59f343b75ea90f0e
                                        
                                            GET /images/favicons/apple-touch-icon.png HTTP/1.1 
Host: upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036
Cookie: source=14036; kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         104.21.234.100
HTTP/2 200 OK
content-type: image/png
                                        
date: Mon, 05 Sep 2022 05:45:20 GMT
content-length: 4296
last-modified: Fri, 22 Jul 2022 07:40:01 GMT
etag: "62da5451-10c8"
expires: Sun, 11 Sep 2022 08:55:07 GMT
cache-control: public, max-age=31536000
pragma: public
cf-cache-status: HIT
age: 2062215
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=c430jKMTq8NVdPlGGRM1R0nfYYpWlwDbZ8iD3thQnDtePdhnBpqe7AYyjq2SO5Dt2kHMRUhh3b46mxQzuDEuFeK387xXCvuHMxp%2FoxNkhkTj2ow1vCJSrx0t4vU7Ug%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
vary: Accept-Encoding
server: cloudflare
cf-ray: 745ca8821fca777f-LHR
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  PNG image data, 180 x 180, 8-bit/color RGBA, non-interlaced\012- data
Size:   4296
Md5:    8a7e5a3ed397a80c26370efe5a077619
Sha1:   48ebe798dd2bca364b8b08e546d6b2106a6a2ff6
Sha256: a83aa6e080c94bb5dbc18deb52a620fead2d0309c5b2ed46f80400b37d3d7ca1
                                        
                                            GET /ads.js HTTP/1.1 
Host: a.exosrv.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         205.185.216.42
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Date: Mon, 05 Sep 2022 05:45:21 GMT
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 972
Accept-Ranges: bytes
Server: nginx
etag: W/"b60fdcc211f42a1f246a8c80b56"
Cache-Control: max-age=10800
X-HW: 1662356720.dop202.sk1.t,1662356721.cds217.sk1.shn,1662356721.cds217.sk1.c
Access-Control-Allow-Origin: *, *


--- Additional Info ---
Magic:  ASCII text, with very long lines (2474), with no line terminators
Size:   972
Md5:    7d9604b94c86720afb5884077110afc0
Sha1:   ff271b314f322f21e76ff297026be2c8fa7ea027
Sha256: 48c044514d04c243384bdfee5b66cbea06d1dcf9e21597361dbe5597b6d6d7c4
                                        
                                            POST / HTTP/1.1 
Host: ocsp.digicert.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         93.184.220.29
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Accept-Ranges: bytes
Age: 1894
Cache-Control: 'max-age=158059'
Date: Mon, 05 Sep 2022 05:45:21 GMT
Last-Modified: Mon, 05 Sep 2022 05:13:47 GMT
Server: ECS (ska/F716)
X-Cache: HIT
Content-Length: 471

                                        
                                            GET /ad-provider.js HTTP/1.1 
Host: a.realsrv.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://a.realsrv.com/iframe.php?idzone=693913&output=noscript&type=300x250
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin

                                         
                                         205.185.216.10
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Date: Mon, 05 Sep 2022 05:45:21 GMT
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 23721
Accept-Ranges: bytes
Cache-Control: max-age=10800
Server: nginx
etag: W/"4b8742770a4d1fdfd0603a54e5a"
X-HW: 1662356720.dop023.sk1.t,1662356720.cds014.sk1.shn,1662356720.dop023.sk1.t,1662356721.cds226.sk1.c
Access-Control-Allow-Origin: *, *


--- Additional Info ---
Magic:  ASCII text, with very long lines (65536), with no line terminators
Size:   23721
Md5:    93847b4fcf5aa0b6bda249d90c522139
Sha1:   77da55ffcb95f1b793b48c656aa24a0f765c6fd4
Sha256: 6f1b4c8323258030e79776838a788c52b1b2f845f4436078ef31a49831d78f47
                                        
                                            POST /gseccovsslca2018 HTTP/1.1 
Host: ocsp.globalsign.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 79
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         104.18.21.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 05:45:21 GMT
Content-Length: 940
Connection: keep-alive
Expires: Fri, 09 Sep 2022 02:54:07 GMT
ETag: "935e61eadeb84844d78591e1c62ebc30ecbfd64f"
Last-Modified: Mon, 05 Sep 2022 02:54:08 GMT
Cache-Control: public, no-transform, must-revalidate, s-maxage=3600
CF-Cache-Status: HIT
Age: 3317
Accept-Ranges: bytes
Vary: Accept-Encoding
Server: cloudflare
CF-RAY: 745ca8833b360b45-OSL

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 05:45:21 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 05:45:21 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 05:45:21 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /s/roboto/v30/KFOmCnqEu92Fr1Mu4mxK.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://upornia.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.163
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 15744
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Wed, 31 Aug 2022 19:34:08 GMT
expires: Thu, 31 Aug 2023 19:34:08 GMT
cache-control: public, max-age=31536000
age: 382273
last-modified: Wed, 11 May 2022 19:24:48 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 15744, version 1.0\012- data
Size:   15744
Md5:    15d9f621c3bd1599f0169dcf0bd5e63e
Sha1:   7ca9c5967f3bb8bffeab24b639b49c1e7d03fa52
Sha256: f6734f8177112c0839b961f96d813fcb189d81b60e96c33278c1983b6f419615
                                        
                                            GET /s/roboto/v30/KFOlCnqEu92Fr1MmEU9fBBc4.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://upornia.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.163
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 15920
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Sat, 03 Sep 2022 02:02:22 GMT
expires: Sun, 03 Sep 2023 02:02:22 GMT
cache-control: public, max-age=31536000
age: 186179
last-modified: Wed, 11 May 2022 19:24:45 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 15920, version 1.0\012- data
Size:   15920
Md5:    3a44e06eb954b96aa043227f3534189d
Sha1:   23cef6993ddb2b2979e8e7647fc3763694e2ba7d
Sha256: b019538234514166ec7665359d097403358f8a4c991901983922fb4d56989f1e
                                        
                                            GET /s/roboto/v30/KFOlCnqEu92Fr1MmYUtfBBc4.woff2 HTTP/1.1 
Host: fonts.gstatic.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/font-woff2;q=1.0,application/font-woff;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: identity
Origin: https://upornia.com
Connection: keep-alive
Referer: https://fonts.googleapis.com/
Sec-Fetch-Dest: font
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.163
HTTP/2 200 OK
content-type: font/woff2
                                        
accept-ranges: bytes
access-control-allow-origin: *
content-security-policy-report-only: require-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themes
cross-origin-resource-policy: cross-origin
cross-origin-opener-policy: same-origin; report-to="apps-themes"
report-to: {"group":"apps-themes","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/apps-themes"}]}
timing-allow-origin: *
content-length: 15752
x-content-type-options: nosniff
server: sffe
x-xss-protection: 0
date: Wed, 31 Aug 2022 19:40:23 GMT
expires: Thu, 31 Aug 2023 19:40:23 GMT
cache-control: public, max-age=31536000
age: 381898
last-modified: Wed, 11 May 2022 19:24:56 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Web Open Font Format (Version 2), TrueType, length 15752, version 1.0\012- data
Size:   15752
Md5:    b20371a6daf29d4a1f2e85dbbf40fb20
Sha1:   0355a01c1ccb45cb728e7e07c41c8ebf456f70bb
Sha256: 7e262106f82cc52663e403f5b73795bbeab9ca0630c33c03579354fbcd4fae1e
                                        
                                            GET /iframe.php?idzone=3069158&output=img&type=728x90 HTTP/1.1 
Host: a.realsrv.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         205.185.216.10
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
                                        
Date: Mon, 05 Sep 2022 05:45:21 GMT
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 1347
Accept-Ranges: bytes
Server: nginx
Cache-Control: max-age=10800
X-HW: 1662356720.dop023.sk1.t,1662356720.cds014.sk1.shn,1662356720.dop023.sk1.t,1662356721.cds226.sk1.c
Access-Control-Allow-Origin: *, *


--- Additional Info ---
Magic:  HTML document, ASCII text
Size:   1347
Md5:    23bc2e6368ca6331aa1d3314ec81c7ad
Sha1:   763c6a98f1fb44e96773a44adce8e92e16cc441a
Sha256: 8b157c2c08a16235609ad5167330f14ab8c11f7c70dcfc533ec321741ba4c261
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 83
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 05:45:21 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 471
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /analytics.js HTTP/1.1 
Host: www.google-analytics.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         142.250.74.174
HTTP/2 200 OK
content-type: text/javascript
                                        
strict-transport-security: max-age=10886400; includeSubDomains; preload
x-content-type-options: nosniff
vary: Accept-Encoding
content-encoding: gzip
cross-origin-resource-policy: cross-origin
server: Golfe2
content-length: 20006
date: Mon, 05 Sep 2022 04:41:12 GMT
expires: Mon, 05 Sep 2022 06:41:12 GMT
cache-control: public, max-age=7200
age: 3849
last-modified: Wed, 13 Apr 2022 21:02:38 GMT
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (1325)
Size:   20006
Md5:    56f5d7f608e25d64207135f045f988cb
Sha1:   901eb59372ae330ae85e1384da93479b21ae1082
Sha256: 1910daea79e5a9d04829a91e432dfa56f45a80a3e14a8cf667fec73af9fd3d29
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "A66FCB55BBA61E54B02E349D1C07AF7A8BE3B3AEF7AC9503AC240698429BB27D"
Last-Modified: Sat, 03 Sep 2022 22:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=6020
Expires: Mon, 05 Sep 2022 07:25:41 GMT
Date: Mon, 05 Sep 2022 05:45:21 GMT
Connection: keep-alive

                                        
                                            GET /api/json/videos_related/20200611/str/relevance/72/0/263000/263492.all.1.json HTTP/1.1 
Host: upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036
Cookie: source=14036; kt_lang=en
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         104.21.234.100
HTTP/2 200 OK
content-type: application/json
                                        
date: Mon, 05 Sep 2022 05:45:20 GMT
last-modified: Sat, 27 Aug 2022 20:05:43 GMT
vary: Accept-Encoding
etag: W/"630a7917-81a2"
expires: Mon, 05 Sep 2022 05:50:21 GMT
cache-control: max-age=300
cf-cache-status: DYNAMIC
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=xi2BotnKBJgEtwXs5yCda0e%2FvT2OCzk4cjFJmF3Fa%2FU2XveL2SfKv4lGthOYu4z0kC3JXU8vpAgwb%2FF6UHjmN5x9zO75CGhMJAlMMDyPinqCWBEJUg7V%2B%2FEzNwHgcQ%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 745ca881af49777f-LHR
content-encoding: br
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (33186), with no line terminators
Size:   10132
Md5:    60afd364e7634bf1de8d2015d165fb04
Sha1:   938984a995863a23c06c1dd2ebac724957160bdf
Sha256: 08feb587631b42d9464fc497dc71712d66e31dbbf5d8e2583f1faa52c7bf0575
                                        
                                            GET / HTTP/1.1 
Host: push.services.mozilla.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Sec-WebSocket-Version: 13
Origin: wss://push.services.mozilla.com/
Sec-WebSocket-Protocol: push-notification
Sec-WebSocket-Extensions: permessage-deflate
Sec-WebSocket-Key: kqTsFzJ/0As46vhJE3wjEg==
Connection: keep-alive, Upgrade
Sec-Fetch-Dest: websocket
Sec-Fetch-Mode: websocket
Sec-Fetch-Site: cross-site
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket

                                         
                                         44.242.32.27
HTTP/1.1 101 Switching Protocols
                                        
Connection: Upgrade
Upgrade: websocket
Sec-WebSocket-Accept: AGoCB7wAGwljbKmZ2az/0hRWCAs=

                                        
                                            GET /contents/avatars/43000/43921.jpg HTTP/1.1 
Host: upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036
Cookie: source=14036; kt_lang=en; _ga=GA1.2.324479761.1662356717; _gid=GA1.2.924131252.1662356717; _gat=1
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         104.21.234.100
HTTP/2 200 OK
content-type: image/jpeg
                                        
date: Mon, 05 Sep 2022 05:45:21 GMT
content-length: 22635
last-modified: Tue, 16 Jun 2015 08:51:29 GMT
etag: "557fe391-586b"
expires: Sun, 11 Sep 2022 08:59:30 GMT
cache-control: public, max-age=31536000
pragma: public
cf-cache-status: HIT
age: 2061952
accept-ranges: bytes
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=j4f2Ur8Gjtow7vhxsiD3Fo8iq9gltHLD9YmDyY6EiceqPGdSteqJXbMCmSXpLRxuGRjsUqZ4a9BRINy17TwObgP4uM6aHlZ6gw9MzE7fzI2urIb8CFqpfuoY5gKKAg%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
vary: Accept-Encoding
server: cloudflare
cf-ray: 745ca8844a4a777f-LHR
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, resolution (DPI), density 1x1, segment length 16, baseline, precision 8, 180x180, components 3\012- data
Size:   22635
Md5:    935255e0163d1336f74eb6fd2b0153ba
Sha1:   07fc5c4fcaad4bc3061e9b88a4c2e2d82e3484a4
Sha256: 60ca61bfc0749baa14b2b4f056de3953007d0ba641412222796297940eb66d27
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "0B6C7FBD93B0AA28EDA5237E7BB5643EEBE6145C94364AA2A6BB2C3FE85D5CB9"
Last-Modified: Sat, 03 Sep 2022 01:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=3652
Expires: Mon, 05 Sep 2022 06:46:13 GMT
Date: Mon, 05 Sep 2022 05:45:21 GMT
Connection: keep-alive

                                        
                                            POST /v1/api.php HTTP/1.1 
Host: syndication.realsrv.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: text/plain
Content-Length: 292
Origin: https://a.realsrv.com
Connection: keep-alive
Referer: https://a.realsrv.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site

                                         
                                         95.211.229.246
HTTP/1.1 200 OK
Content-Type: application/json
                                        
Server: nginx
Date: Mon, 05 Sep 2022 05:45:21 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Access-Control-Allow-Origin: https://a.realsrv.com
Access-Control-Allow-Headers: Authorization, Content-Type
Access-Control-Request-Method: POST
Access-Control-Allow-Credentials: true
Content-Encoding: gzip


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (1371), with no line terminators
Size:   1012
Md5:    3ce189435ce1a78532a392c4251c98e6
Sha1:   827a1f899c14a9527022343536d2501c0f7e8fe7
Sha256: 3434bd929583434ce680510ba76fc8694663a31c9a10c62bce55b66bac6fad7f
                                        
                                            POST /v1/api.php HTTP/1.1 
Host: syndication.realsrv.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: text/plain
Content-Length: 292
Origin: https://a.realsrv.com
Connection: keep-alive
Referer: https://a.realsrv.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site

                                         
                                         95.211.229.246
HTTP/1.1 200 OK
Content-Type: application/json
                                        
Server: nginx
Date: Mon, 05 Sep 2022 05:45:21 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Access-Control-Allow-Origin: https://a.realsrv.com
Access-Control-Allow-Headers: Authorization, Content-Type
Access-Control-Request-Method: POST
Access-Control-Allow-Credentials: true
Content-Encoding: gzip


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (1407), with no line terminators
Size:   1038
Md5:    65013581809662679d7a10afe96ea8ef
Sha1:   023c0fee2a7f0efab6bedf1820972ad1c22ac2d9
Sha256: 014f1319bb538a418142f5a5351812989d6734ac3dff767f85a629bf1222ec60
                                        
                                            GET /contents/videos_sources/263000/263492/screenshots/2.jpg HTTP/1.1 
Host: tn.upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Cookie: source=14036; kt_lang=en
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-site

                                         
                                         45.133.44.24
HTTP/2 200 OK
content-type: image/jpeg
                                        
date: Mon, 05 Sep 2022 05:45:21 GMT
content-length: 11368
server: nginx/1.12.2
last-modified: Thu, 16 Oct 2014 21:55:08 GMT
etag: "54403ebc-2c68"
cache-control: max-age=15552000
expires: Sat, 04 Mar 2023 05:45:21 GMT
x-proxy-cache: HIT
access-control-allow-origin: *
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, baseline, precision 8, 428x240, components 3\012- data
Size:   11368
Md5:    166442965cfbc1f194f9389df71ef427
Sha1:   9026854522afa14f905fcb98bf95aef0acd00847
Sha256: 90bce85829a0aebdcc62e96ea7dc48c66ca161c0635f7468e1907a5250274197
                                        
                                            POST /v1/api.php HTTP/1.1 
Host: syndication.realsrv.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: text/plain
Content-Length: 292
Origin: https://a.realsrv.com
Connection: keep-alive
Referer: https://a.realsrv.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site

                                         
                                         95.211.229.246
HTTP/1.1 200 OK
Content-Type: application/json
                                        
Server: nginx
Date: Mon, 05 Sep 2022 05:45:21 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Access-Control-Allow-Origin: https://a.realsrv.com
Access-Control-Allow-Headers: Authorization, Content-Type
Access-Control-Request-Method: POST
Access-Control-Allow-Credentials: true
Content-Encoding: gzip


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (5234), with no line terminators
Size:   2361
Md5:    ea9b5e117b50ff1e33cec446c219d357
Sha1:   09f0e8b003ad502bc76bbbe554a9334e922ab48c
Sha256: c50a2e1b3051223d02a38e6c6c1aac2faba03ce61e5e565036c174acfe5556a8
                                        
                                            GET /metrika/watch.js HTTP/1.1 
Host: mc.yandex.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         87.250.251.119
HTTP/2 200 OK
content-type: application/javascript
                                        
content-length: 56896
date: Mon, 05 Sep 2022 05:45:21 GMT
access-control-allow-origin: *
etag: "6312122a-de40"
expires: Mon, 05 Sep 2022 06:45:21 GMT
last-modified: Fri, 02 Sep 2022 17:24:42 GMT
cache-control: max-age=3600
content-encoding: br
strict-transport-security: max-age=31536000
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Unicode text, UTF-8 (with BOM) text, with very long lines (569)
Size:   56896
Md5:    c88af7521379660d8b1c4cfaad1362f4
Sha1:   f4a277fbd562a31d329bf4561878c2512be3b4a0
Sha256: 3e33643c480df9268cc54e0086082dd14e1791ba6bc161c0ec81c5855b0acca5
                                        
                                            GET /ads.js HTTP/1.1 
Host: ads.exoclick.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         205.185.216.42
HTTP/1.1 200 OK
Content-Type: application/javascript
                                        
Date: Mon, 05 Sep 2022 05:45:21 GMT
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 974
Accept-Ranges: bytes
Cache-Control: max-age=10800
Server: nginx
etag: W/"8f3c7314efe500b41baba9f571b"
X-HW: 1662356721.dop016.sk1.t,1662356721.cds226.sk1.shn,1662356721.cds226.sk1.c
Access-Control-Allow-Origin: *, *


--- Additional Info ---
Magic:  ASCII text, with very long lines (2476), with no line terminators
Size:   974
Md5:    92af51b4341a31ff621022c2a648c05e
Sha1:   3761459319128e7349981f338926abcd89ba58e0
Sha256: 6dd1f44f60b3c9584b3d9a54af5348c3fc36c7e13585f593f205ed42a0fa7e9f
                                        
                                            GET /metrika/tag.js HTTP/1.1 
Host: mc.yandex.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         87.250.251.119
HTTP/2 200 OK
content-type: application/javascript
                                        
content-length: 71985
date: Mon, 05 Sep 2022 05:45:21 GMT
access-control-allow-origin: *
etag: "6312122a-11931"
expires: Mon, 05 Sep 2022 06:45:21 GMT
last-modified: Fri, 02 Sep 2022 17:24:42 GMT
cache-control: max-age=3600
content-encoding: br
strict-transport-security: max-age=31536000
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Unicode text, UTF-8 (with BOM) text, with very long lines (681)
Size:   71985
Md5:    034d4604beaddff5783b9878fadfaee6
Sha1:   64d5e1e0dbbbd62d6a64349dd964763b7ab4cbea
Sha256: f8a957ee3468693f465da61d899438a2b674369b80c9d5c9ffff1111a7091290
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "27A25D544E06AEC43C5EE8B500831574E1EED140BCEFF48DD118483C3EAB33E9"
Last-Modified: Sat, 03 Sep 2022 04:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=8616
Expires: Mon, 05 Sep 2022 08:08:57 GMT
Date: Mon, 05 Sep 2022 05:45:21 GMT
Connection: keep-alive

                                        
                                            GET /in/dl/?screen_resolution=1280x1024&dt=1662356717334&ad_sub=14036&mo=&ve=&katds_labels=&site_id=33008329&p=https%3A//upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/%3Fpromo%3D14036&zone=up_hardlink&utm1=&utm2=&utm3=&utm4=&ad_tags=Straight%2CJapanese&title=Japanese%20Granny%20Creamed%20by%20not%20her%20Grandson%20(Uncensored)%20%7C%20Upornia.com&katds_rcc=2 HTTP/1.1 
Host: btds.zog.link
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://upornia.com
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         109.206.191.198
HTTP/2 200 OK
content-type: application/json
                                        
server: nginx/1.20.1
date: Mon, 05 Sep 2022 05:45:21 GMT
vary: Accept-Encoding
cache-control: no-cache, no-store, must-revalidate
access-control-allow-credentials: true
access-control-allow-origin: *
set-cookie: 953.73385=1; expires=Tue, 06 Sep 2022 05:45:21 GMT; path=/; secure; SameSite=None
content-encoding: gzip
X-Firefox-Spdy: h2

                                        
                                            GET /cimp.php?t=api&data=H4sIAAAAAAAAAz1OQU7EMAz8Ch9oZDt2muwZriAt2ge0iVdCYoVUEOphHk/SRes5eGyPPRYSmahMZE/EJ7WTMAqHQkElsCle385Qxs++76F+3RClmAk4MiWFxMxlRiqxiMEowyKXnAWzJaKSEtgQQR1iUfVgifByOePy/gwKpWQGQxCJdjHqfHhCBmPQPjZay5mZU6px9pQau3Orua0ts+e1DSGWsPny+b39Ho/SHYGsu477/w1E1igqmPhRKHoQjvHHdVtuDjz0d8yHRf9IdaSriZNWz9qSV6prXJsvs7a1U/frH1dTFs5YAQAA HTTP/1.1 
Host: syndication.realsrv.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://a.realsrv.com
Connection: keep-alive
Referer: https://a.realsrv.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site

                                         
                                         95.211.229.246
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx
Date: Mon, 05 Sep 2022 05:45:21 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Access-Control-Allow-Origin: *
Content-Encoding: gzip

                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 05:45:21 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /cimp.php?t=api&data=H4sIAAAAAAAAAzVPSUoEUQy9iheoIuP/Sa91q9DSB6gRBBuhFKnFO7xVX83bJPCmCIl0lB35A/HF/CKM5D6pN+nZDc8vVxjja9/3fvq4wz00CKxMxSAanBUlNVnhFDCVWjhQgqVQCtihoAPiata2Qni6XXF7fQT1mcFgCJRoFz+sWybk3Bi0n4rwnJW8ms0rTZGVh2nkqgtPmVT8JGLot2V4/9y+W1GCejkecNMoRw65txhqYCgfVU3QndLfw3AMoRHe1m24L8Af/x+1JRnY7DRZaqxL1ihFac4xlshhriljzF5mjR+5+39FXwEAAA== HTTP/1.1 
Host: syndication.realsrv.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://a.realsrv.com
Connection: keep-alive
Referer: https://a.realsrv.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site

                                         
                                         95.211.229.246
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx
Date: Mon, 05 Sep 2022 05:45:21 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Access-Control-Allow-Origin: *
Content-Encoding: gzip

                                        
                                            GET /cimp.php?t=api&data=H4sIAAAAAAAAAz1PW2rDMBC8Si9gsS+ttflufxNIyQGU2IZCQ8EtxR9z+EoOjQbE7GN2Z4VEBoqB8gvxwfJBGMEpKJkkzobj6Qxj/Gzblm5fd7ioM4OVyQ2ihWOEh0YTZirQ4BxemqaMWozAGQpqkKxmnSUiEjjh7XLG5f21ZSJKmwkhtL+v7NQap61LCystFsYNUxTPMi3ZJx9V6lxjb0RN61w/v9ff3Sc9kFhd+uT/BJRNxQQDPwNDe4S9/LGs9T4Dz/6HZ4z7jo5+51Qi3JmMpubAxW+y0HwVqVce6Q8VRGwHVQEAAA== HTTP/1.1 
Host: syndication.realsrv.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://a.realsrv.com
Connection: keep-alive
Referer: https://a.realsrv.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site

                                         
                                         95.211.229.246
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx
Date: Mon, 05 Sep 2022 05:45:21 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Access-Control-Allow-Origin: *
Content-Encoding: gzip

                                        
                                            GET /assets//jwplayer-8.21.2.3/jwplayer.js HTTP/1.1 
Host: upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036
Cookie: source=14036; kt_lang=en; _ga=GA1.2.324479761.1662356717; _gid=GA1.2.924131252.1662356717; _gat=1; _gat_UA-31745569-46=1; _ym_uid=1662356718784393520; _ym_d=1662356718
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         104.21.234.100
HTTP/2 200 OK
content-type: application/javascript
                                        
date: Mon, 05 Sep 2022 05:45:21 GMT
last-modified: Fri, 22 Jul 2022 07:40:26 GMT
vary: Accept-Encoding
etag: W/"62da546a-1b527"
expires: Sun, 11 Sep 2022 08:55:01 GMT
cache-control: public, max-age=31536000
pragma: public
cf-cache-status: HIT
age: 2062221
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=hm4XnuZdkAebnpBc3ekMysOZ5X5eeONd%2BgnpNIjUB9EjFWlbXeRZPyeyl6LWbusYChH1b5daYOD4LyXoho%2BMkWSOS76Kr7Im8ejJf9RtZSDqbPyluV7a5aYyGt%2BXQQ%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 745ca8874d73777f-LHR
content-encoding: br
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (65536), with no line terminators
Size:   37189
Md5:    80d0b89cc0c6857d9a6f6b1e1bdf7116
Sha1:   b07b29fe401b50459406f611bc01b3b53eb8d5e5
Sha256: abc5e7b76fd04875539af5a9d302466b9387ebb21c143b39255f2cf3f7a16dcd
                                        
                                            GET /api/videofile.php?video_id=263492&lifetime=8640000 HTTP/1.1 
Host: upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036
Cookie: source=14036; kt_lang=en
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         104.21.234.100
HTTP/2 200 OK
content-type: application/json
                                        
date: Mon, 05 Sep 2022 05:45:21 GMT
vary: Accept-Encoding
x-powered-by: PHP/7.2.34
access-control-allow-origin: *
cf-cache-status: DYNAMIC
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=lc9dgQO42W9wGDvptHMP%2Fg6a%2Fcam0%2B62umNLsDGOYOFV%2FovIklCyGyjD7tjsTPqDlr6gPsbwD23F8qWo%2B1m5XXV6GU6caNcluA9pKqz8LUBgIFYkz5QZtYLNW1g%2F4g%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 745ca8841a1b777f-LHR
content-encoding: br
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (333), with no line terminators
Size:   242
Md5:    84c40f8583de9042b43a8378896c8577
Sha1:   9b918bc2a8b1479df3ba4b0b654d79dd2c24ff9e
Sha256: 3ed1bd8f1064e87daa5f56f9ce12c5fb4318273701909cca238149eeb1fe96f1
                                        
                                            GET /library/558380/46c0770009c505c803031e2f7c0d1239b1df8c56.mp4 HTTP/1.1 
Host: s3t3d2y8.afcdn.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
Range: bytes=0-
Connection: keep-alive
Referer: https://a.realsrv.com/
Sec-Fetch-Dest: video
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         185.76.9.26
HTTP/2 206 Partial Content
content-type: video/mp4
                                        
date: Mon, 05 Sep 2022 05:45:21 GMT
content-length: 33631
last-modified: Sun, 17 Oct 2021 17:34:09 GMT
etag: "616c5e91-835f"
expires: Fri, 30 Jun 2023 11:08:53 GMT
cache-control: max-age=31536000
access-control-allow-origin: *
x-cache-op: HIT
x-accel-expires: @1688195974
server: CDN77-Turbo
x-77-nzt: AblMCRTqyzX/6+xWAA
x-77-nzt-ray: LRAmnzr6EVU
x-cache: HIT
x-age: 5696747
x-77-pop: stockholmSE
x-77-cache: HIT
content-range: bytes 0-33630/33631
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ISO Media, MP4 Base Media v1 [ISO 14496-12:2003]\012- data
Size:   33235
Md5:    f5751ae46f67e8f2f14596ee97936dac
Sha1:   02d621a17e7d2dbd39146b69adfcf28db1b0917e
Sha256: ee5c0cd5a6e957217f26c5c043ac00f508608670451191467edcdca43a7ef6e1
                                        
                                            POST /gts1c3 HTTP/1.1 
Host: ocsp.pki.goog
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 84
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         142.250.74.3
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Date: Mon, 05 Sep 2022 05:45:21 GMT
Cache-Control: public, max-age=14400
Server: ocsp_responder
Content-Length: 472
X-XSS-Protection: 0
X-Frame-Options: SAMEORIGIN

                                        
                                            GET /dli/whatshot.svg HTTP/1.1 
Host: 12112336.pix-cdn.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: object
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         45.133.44.25
HTTP/2 200 OK
content-type: image/svg+xml
                                        
date: Mon, 05 Sep 2022 05:45:21 GMT
content-length: 1064
server: nginx/1.12.2
last-modified: Tue, 16 Jun 2020 16:25:10 GMT
etag: "5ee8f266-428"
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
expires: 0
x-proxy-cache: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  SVG Scalable Vector Graphics image\012- HTML document, ASCII text, with very long lines (652), with CRLF line terminators
Size:   1064
Md5:    92d4b3c9db72fefd9d6d927ec40be29b
Sha1:   efb550da28d7b18d7e2beb7698577415fde2b24f
Sha256: 7ad9fcb297f4600edf827b026deca9e0ed695be37ab46ac2d9fee35040611130
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "5F75DEEC628D1B03D5FCC4D0F2714A6CF24BE8210E4C6185CCC0D59358DC000E"
Last-Modified: Sat, 03 Sep 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=4804
Expires: Mon, 05 Sep 2022 07:05:26 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "C5124EE2FD4674A4DC6A420880F635DAC738BC6DBD05DA0923E020D48FDF6F3A"
Last-Modified: Fri, 02 Sep 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=5120
Expires: Mon, 05 Sep 2022 07:10:42 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "C5124EE2FD4674A4DC6A420880F635DAC738BC6DBD05DA0923E020D48FDF6F3A"
Last-Modified: Fri, 02 Sep 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=5120
Expires: Mon, 05 Sep 2022 07:10:42 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            OPTIONS /vast HTTP/1.1 
Host: vast.yomeno.xyz
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Referer: https://upornia.com/
Origin: https://upornia.com
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         109.206.175.85
HTTP/2 204 No Content
content-type: text/plain; charset=utf-8
                                        
server: nginx/1.20.1
date: Mon, 05 Sep 2022 05:45:22 GMT
access-control-allow-credentials: true
access-control-allow-origin: https://upornia.com
access-control-allow-methods: GET, POST, OPTIONS
access-control-allow-headers: DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range
content-length: 0
X-Firefox-Spdy: h2

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "8095A078190F241E30545609B91B4D02B469566FAD45B75D64FE167D3D08F03C"
Last-Modified: Fri, 02 Sep 2022 15:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=3740
Expires: Mon, 05 Sep 2022 06:47:42 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            GET /npc/sdk/wp-banners.js HTTP/1.1 
Host: js.wpadmngr.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         45.133.44.24
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
server: nginx/1.18.0
last-modified: Fri, 20 Aug 2021 15:14:31 GMT
etag: "611fc6d7-0"
expires: Mon, 05 Sep 2022 05:50:22 GMT
cache-control: max-age=300
x-proxy-cache: HIT
access-control-allow-origin: *
accept-ranges: bytes
X-Firefox-Spdy: h2

                                        
                                            POST /vast HTTP/1.1 
Host: vast.yomeno.xyz
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-type: application/json; charset=utf-8
Content-Length: 641
Origin: https://upornia.com
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         109.206.175.85
HTTP/2 200 OK
content-type: application/json; charset=utf-8
                                        
server: nginx/1.20.1
date: Mon, 05 Sep 2022 05:45:22 GMT
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
vary: Accept-Encoding, *
access-control-allow-credentials: true
access-control-allow-origin: https://upornia.com
access-control-expose-headers: Content-Length,Content-Range
content-encoding: gzip
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JSON data\012- , ASCII text, with very long lines (1983), with no line terminators
Size:   1373
Md5:    8458c4b7b0cdb3561ad7ad38adb55280
Sha1:   7d2f1cfe6942c691ccc468fc9d9560ccc19e38f6
Sha256: 0671c14c746665cb01574bf8f50c371138e8162e191a565b328e75ed5f6c92f7
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "E889B7D1690DAADE24CC938ACE448668EA028233260C4DE777BA4BF66857B756"
Last-Modified: Sun, 04 Sep 2022 15:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=11334
Expires: Mon, 05 Sep 2022 08:54:16 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            POST /prepare HTTP/1.1 
Host: vast.yomeno.xyz
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/json;charset=utf-8
Content-Length: 1089
Origin: https://upornia.com
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         109.206.175.85
HTTP/2 204 No Content
                                        
server: nginx/1.20.1
date: Mon, 05 Sep 2022 05:45:22 GMT
access-control-allow-credentials: true
access-control-allow-origin: https://upornia.com
access-control-expose-headers: Content-Length,Content-Range
X-Firefox-Spdy: h2

                                        
                                            OPTIONS /fp?tag_id=822 HTTP/1.1 
Host: fp.metricswpsh.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Referer: https://upornia.com/
Origin: https://upornia.com
Connection: keep-alive
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         23.88.85.6
HTTP/1.1 204 No Content
                                        
Server: nginx/1.20.1
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: content-type
Access-Control-Allow-Methods: GET,HEAD,PUT,PATCH,POST,DELETE
Access-Control-Allow-Origin: https://upornia.com
Vary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers

                                        
                                            GET /in/track?data=eyJ3bCI6MSwic3ViaWQiOjE0MDM2LCJ1c2VyX2lkIjoiMTU4MzMyMzU2ODkxODk5NTQwMDAiLCJ0aW1lem9uZSI6MCwidmVyIjoiMy42LjEiLCJ0YWdfaWQiOjgyMiwic2NyZWVuX3Jlc29sdXRpb24iOiIxMjgweDEwMjQiLCJhZGJsb2NrIjowLCJ0aW1lem9uZV9vbHNvbiI6IlVUQyIsInV0bV9zb3VyY2UiOiIiLCJ1dG1fbWVkaXVtIjoiIiwidXRtX2NhbXBhaWduIjoiIiwidXRtX2NvbnRlbnQiOiIiLCJtbSI6MCwiaW5pdF9zdGFydF9sYXRlbmN5IjowLjMyLCJpc192MiI6MCwiaXNfdjJfZW1wdHkiOjAsInVzZXJfa2V5d29yZHMiOiJKYXBhbmVzZSUyQ0dyYW5ueSUyQ0NyZWFtZWQlMkNieSUyQ25vdCUyQ2hlciUyQ0dyYW5kc29uJTJDKFVuY2Vuc29yZWQpJTJDVXBvcm5pYS5jb20lMkNKYXBhbmVzZSUyQ0dyYW5ueSUyQ0NyZWFtZWQlMkNieSUyQ25vdCUyQ2hlciUyQ0dyYW5kc29uJTJDKFVuY2Vuc29yZWQpJTJDUG9ybiUyQ01vdmllcyUyQ1Vwb3JuaWEuY29tJTJDcG9ybiUyQ3R1YmUlMkN4eHglMkN0dWJlJTJDZnJlZSUyQ3Bvcm4lMkN2aWRlb3MlMkNwb3JuJTJDeHh4JTJDbW92aWVzJTJDeHh4JTJDdHViZSUyQ3ZpZGVvJTJDeHh4JTJDdmlkZW8lMkNjbGlwcyUyQ0hEJTJDcG9ybiUyQ3ZpZGVvcyUyQ0phcGFuZXNlJTJDR3Jhbm55JTJDQ3JlYW1lZCUyQ2J5JTJDbm90JTJDaGVyJTJDR3JhbmRzb24lMkMoVW5jZW5zb3JlZCklMkNmcm9tJTJDUG9ybiUyQ01vdmllcyUyQ1RoZSUyQ0xhcmdlc3QlMkNEYXRhYmFzZSUyQ29mJTJDRnJlZSUyQ1Bvcm4lMkNNb3ZpZXMlMjAifQ== HTTP/1.1 
Host: ceeefac62f.5eff011dd5.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://upornia.com
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         45.133.44.24
HTTP/2 200 OK
                                        
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
server: nginx/1.18.0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  
Size:   0
Md5:    d41d8cd98f00b204e9800998ecf8427e
Sha1:   da39a3ee5e6b4b0d3255bfef95601890afd80709
Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Alerts:
  Blocklists:
    - quad9: Sinkholed
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "872A9F851BEC0448D56A1363CC27A8103BF7695D2AFD4C64C850E4449C098BFA"
Last-Modified: Sat, 03 Sep 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=14513
Expires: Mon, 05 Sep 2022 09:47:15 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "872A9F851BEC0448D56A1363CC27A8103BF7695D2AFD4C64C850E4449C098BFA"
Last-Modified: Sat, 03 Sep 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=14513
Expires: Mon, 05 Sep 2022 09:47:15 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "07C1F9B9D1C2413E2F1546CBB05FF76FD6BF28AC250E1D6820461C6280190B3F"
Last-Modified: Sat, 03 Sep 2022 01:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=12285
Expires: Mon, 05 Sep 2022 09:10:07 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "872A9F851BEC0448D56A1363CC27A8103BF7695D2AFD4C64C850E4449C098BFA"
Last-Modified: Sat, 03 Sep 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=14513
Expires: Mon, 05 Sep 2022 09:47:15 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "872A9F851BEC0448D56A1363CC27A8103BF7695D2AFD4C64C850E4449C098BFA"
Last-Modified: Sat, 03 Sep 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=14513
Expires: Mon, 05 Sep 2022 09:47:15 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "872A9F851BEC0448D56A1363CC27A8103BF7695D2AFD4C64C850E4449C098BFA"
Last-Modified: Sat, 03 Sep 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=14513
Expires: Mon, 05 Sep 2022 09:47:15 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            GET /npc/sdk/wp-banners.js HTTP/1.1 
Host: js.wpshsdk.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         45.133.44.24
HTTP/2 200 OK
content-type: application/javascript; charset=utf-8
                                        
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
server: nginx/1.18.0
last-modified: Fri, 20 Aug 2021 15:14:31 GMT
etag: "611fc6d7-0"
expires: Mon, 05 Sep 2022 05:50:22 GMT
cache-control: max-age=300
x-proxy-cache: HIT
access-control-allow-origin: *
accept-ranges: bytes
X-Firefox-Spdy: h2

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "87C27C4B0288F31FAA405BA5247767D1F299938551BD284212EE487DBB0DEB63"
Last-Modified: Fri, 02 Sep 2022 20:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=2580
Expires: Mon, 05 Sep 2022 06:28:22 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F1944c2a5-23d6-45f7-ab9f-78685b5e5be8.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 4452
x-amzn-requestid: 882486d7-8cdc-4986-8562-6ec196c2a8e0
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: Xt-dIFk7IAMFs4A=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-630f1120-5a4edfae33e2ef3f133e22f6;Sampled=0
x-amzn-remapped-date: Wed, 31 Aug 2022 07:43:28 GMT
x-amz-cf-pop: SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: AbTFZ3Y-e5K4Ljph7Qn-Xhl0jk1VpgDxs0djpD3IMpppsAEadePgfQ==
via: 1.1 e291f351a18746d40754b367095a2872.cloudfront.net (CloudFront), 1.1 68fadeb91f97256bb67b03bfca74d830.cloudfront.net (CloudFront), 1.1 google
date: Sun, 04 Sep 2022 05:46:10 GMT
age: 86352
etag: "15ac095f9a744d85d7054d6c48af8a3f9ec9fc3a"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   4452
Md5:    e1556a0afcd327679e471ac6373ca29f
Sha1:   15ac095f9a744d85d7054d6c48af8a3f9ec9fc3a
Sha256: d3537c985a20cf69290064fbd46778a6fbe6604cb6b37b272c8058142f02ffdf
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "87C27C4B0288F31FAA405BA5247767D1F299938551BD284212EE487DBB0DEB63"
Last-Modified: Fri, 02 Sep 2022 20:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=2580
Expires: Mon, 05 Sep 2022 06:28:22 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F13d7f0db-89d6-4166-b182-85e35e518df9.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 8469
x-amzn-requestid: de0e8998-4a52-4651-bcd6-3068c50193b6
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: X9Ey2Eq4oAMFZlQ=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-63151b45-15da44d87bf486cb1738fe18;Sampled=0
x-amzn-remapped-date: Sun, 04 Sep 2022 21:40:21 GMT
x-amz-cf-pop: HIO50-C1, SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: nqxzicnkQPrjStpPaMIZAukyjtUBQaXfuxWzIs77YGDyJmnirlMsxw==
via: 1.1 4f87745990545c1ac0195c157e1668f8.cloudfront.net (CloudFront), 1.1 ebe4011a81a36e2bf678f69ce1711330.cloudfront.net (CloudFront), 1.1 google
date: Sun, 04 Sep 2022 21:54:51 GMT
age: 28231
etag: "032acf1bfb0c8e2cbce8f2ff4d2964424b044951"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   8469
Md5:    30bf854fd3e27e2313a3d26fc43b9990
Sha1:   032acf1bfb0c8e2cbce8f2ff4d2964424b044951
Sha256: 7641be64dd25487edf4f845d1fbb0b07daa80fa8fb58863dd09081d9d169bd13
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "87C27C4B0288F31FAA405BA5247767D1F299938551BD284212EE487DBB0DEB63"
Last-Modified: Fri, 02 Sep 2022 20:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=2580
Expires: Mon, 05 Sep 2022 06:28:22 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2Fe013b89a-59b7-4bdf-8ed4-bbf5fdcbccbe.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 5825
x-amzn-requestid: 65a3ff9f-d3fe-416e-a9a1-767b8add6b68
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: X9Ey3Ex2IAMF7Xg=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-63151b45-00da48525f5bdad776b62fa6;Sampled=0
x-amzn-remapped-date: Sun, 04 Sep 2022 21:40:21 GMT
x-amz-cf-pop: HIO50-C1, SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: 23NoJI_4ogUWyNzMsJgWbYQ-TGUs7lgH3IXSxEWZEWQRmNV5OaHqYQ==
via: 1.1 2afae0d44e2540f472c0635ab62c232a.cloudfront.net (CloudFront), 1.1 001e7070d795018d01b93988b9723742.cloudfront.net (CloudFront), 1.1 google
date: Sun, 04 Sep 2022 21:45:28 GMT
age: 28794
etag: "e0cd950b33882be4e4ff76d392648823e0d4ebe7"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   5825
Md5:    1f310cf841fc88141f5e14d6c73e2d67
Sha1:   e0cd950b33882be4e4ff76d392648823e0d4ebe7
Sha256: 6bac58b0fa14de14754093383f9875059c10706ffaf01eda8718a71624bb3f7b
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "87C27C4B0288F31FAA405BA5247767D1F299938551BD284212EE487DBB0DEB63"
Last-Modified: Fri, 02 Sep 2022 20:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=2580
Expires: Mon, 05 Sep 2022 06:28:22 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2Fe0c070a1-cfda-4086-99d7-f4d72a7f9d8f.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 6486
x-amzn-requestid: 94ff7301-4895-4fad-81db-a2774c8db061
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: X3OeaFDYIAMFQBA=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-6312c45c-450abb734f447a2c2db18aae;Sampled=0
x-amzn-remapped-date: Sat, 03 Sep 2022 03:05:00 GMT
x-amz-cf-pop: SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: PuxGNBXMMm2SeJckWUMNQfuKBX6IbhwaIyGPuDGjnRI6C5YIor9flQ==
via: 1.1 95b0ac620fa3a80ee590ecf1cda1c698.cloudfront.net (CloudFront), 1.1 2f7934de1dfe281c3e4446892eab6462.cloudfront.net (CloudFront), 1.1 google
date: Mon, 05 Sep 2022 03:43:50 GMT
age: 7292
etag: "064232b77c890404a294500597e562b3945453be"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   6486
Md5:    9d19ae40ba0a61c69d0bbc87ed8da454
Sha1:   064232b77c890404a294500597e562b3945453be
Sha256: a2d2bfe5d44394511949665e36492706dd655a46198bf7ae555033eedfa46d83
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "87C27C4B0288F31FAA405BA5247767D1F299938551BD284212EE487DBB0DEB63"
Last-Modified: Fri, 02 Sep 2022 20:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=2580
Expires: Mon, 05 Sep 2022 06:28:22 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F5b72072c-e8d1-4d87-8b3d-88a344002b6a.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 9632
x-amzn-requestid: aee8c394-86b7-4b7e-8a1b-134b4de8454f
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: XnTxZF0rIAMFodg=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-630c666f-2f2a9e20556d8899447fc662;Sampled=0
x-amzn-remapped-date: Mon, 29 Aug 2022 07:10:39 GMT
x-amz-cf-pop: SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: 77bXbuBtQ1AUHqlplB8HwTfSd83WZTTsmHsN2hZiTk83XvP5Bdpfhg==
via: 1.1 49b94a8674d6e86a841d6523f7dbaf14.cloudfront.net (CloudFront), 1.1 02d90bf99fd6253b329a53c82f19e224.cloudfront.net (CloudFront), 1.1 google
date: Sun, 04 Sep 2022 14:24:28 GMT
age: 55254
etag: "b470ee66546236df6932247b8de7982a081e3170"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   9632
Md5:    3fa914e288ca54908967c65ae6000607
Sha1:   b470ee66546236df6932247b8de7982a081e3170
Sha256: 04dc2796377fdd129e03e1a1902207ba57f23933f4296908794097353f2de13f
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "D4A10EED10567CDC3238BC4BEEF2B13AE4DE8FD83D0DB6CB6599C97FB3638529"
Last-Modified: Sun, 04 Sep 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=10361
Expires: Mon, 05 Sep 2022 08:38:03 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            GET /banner/in/show/?mid=845152566&pid=0&site=31247&sc=NO&usage_type=DCH&subid=14036&sid=0&cid=12774&price=0&is_cpm=1&cpm=0.0048&ecpm=0.0048&crid=&crtid=d41d8cd98f00b204e9800998ecf8427e&tcid=0&out_id=&ver=&ver_c=&refdom=upornia.com&hostname=auc-banner-hz-1&site_id=0&spot_id=31247&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=6&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=iframeAd&iabcat=IAB25&min_cpm=0.00457377&placement_type_id=8&skin_test=&verify_hash=&score=1&ml=&ttl=&space_id=31247&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=%2F%2Fin16.zog.link%2Fin%2Ftishow%2F%3Fkatds_ep%3DT7KbbxqVeS8SkEq-RsYWcEtmrJamiwNre-T-gpaMR0nFFi41v6ESymQoRjXAn5wH_LoQMUlY1ju9LkjjkG5XND1WwdvDC67z-yuUgOHMbc5L4TJ7CvSZaN13ojLNtV3FeawPwuy8dLMzjDYzHA2EBzwJ5viEIDi4Rci7vfZtWDnmebCHejma5K3fu5LSYgjSiNrZPLmRYNFVft_EheB9M3RDAQMctCnXvoYLOEFeXl-zpyGrqoGcGXg9WxnBqH42jDl84mCw9mKI8vzyZuBYNxxlsZoNG4n3mZXzW7YGXAYLfKT3zi3hvYBICEJdFgrUNdn_4zJmdeaUDZA-r7JqYMzVlRE7dfufsqLzFbUCq27pm76GF1dsdjNeXkBeWqLxZNF2yr_Pdn3MGlg4ijEJv_0T8I-eP5c0QD_-SERRNLRYsJJ61WfRcGlkisR5fagE5gCexJQ3NqqvvDvuJBY558wX-7wNbYbezZ3Oz3bMy-YvTjCkkoJd7gwcjP8R5NSpyCHWoUHjx78yFw4NZn2dQODNOw1qH8KyLl3MPG7PtZ7l6Vd3SDLjFMo4Q0ZFh9wBNwcWXW1ysY-Minn4kES1Fw5SA0nTEEQX99Iikd8pfDx4MxWj8vebwDpvfRu0ObszHucspvD_G1AgiLryTxqeYzF-foU6NDoW87ZuHhB6oyphebDAjjxgs8MNrLUvqW4OEvExNFgCvTiFtNYf8N3FCYiKA0c-_zzQjVnkISNfLGD1Y3UNqT7VNoKt0ThbdkszwtJArv-VMr3ctuEw50psqvLmMXxqJ4xMsAHJMeLpPDz3nuyDd4JIyTouduvAxUdCfNxHm0xdqXhWZ9HgH1Wjob5cPrDzNF9GJ5qUMjxPJnb8PVzwgJSTnTr9dHXjHGRAGi1vEJsjJ_x3208E-4rqTRapxmCTymfcvnFqxF2tv95HdPmShl6a392DfRDtx49nxj0MbHuiEoibXCstVomT5RcRMXQ598Y74AkJswlP8AE1jxaTHBD8xdrM9yEcHuo5AJtCV3icX5ZdjjMrlDHk75x6qnsSPt6KRbUldSnRRMNoE0drm6xti9im1jkqpql4c4o4g0BuJ6LgOPKUEfiE_Hs_tQfhhEhPqKSl3R9zUk8fmvAXwISwPKk7IIobUr9Rc5cbiwpX0R9wHtiwevSKfQuWhi_7eWyJRWo5EdDOyDBPGmg4hRDWuN6bM6fswBrpwpAKqRejL0QfGWnNyxt6Ww9f2KBlXXovjr7GNjkXNviULipw_T2JEtKA-CdbotXtw-O1ObcGYV84Tro4mi3GSMwiIHDS-yOJMVzpzoW7XBRU0gOW0kQ2AHBTZpvCdMgI9-cS8ih0Ioh1SoTXxRGY8rCV_X0YDjcp-gRLG_YwyT0RIA8SNjRe8yRaNRlC89IPNn_HehtA5BYfkS_8U5YzLfAnTH2FvILUMN25cxz27BJKsKnAhp9D9IdUUPoChpPFJlNXUZGJBLQ0xYKIkkegsVhoebL8QWjcIcdPzZA6OgJB1nJCLgHY0AYhGuhlHTRU59dpHZoDlX8r9dv0EdD9OB8CJr9qRDHEkBfvaj5x5Q2vedIVU5cfacoaCQ_1Xqq0OCAnf5Ju9q8K4cco_nv8jSy6yarQKETCQSgs2LtOb3MyUXrcMpnvl8qbz0mKzWFQWmX4Y7WK9ulkna1MpPDpl9LXCy1myewi9RJqP9hnv9lnPKd_E415UeKfAMc3opZA7wbBnxbe7cyBCd-KzVk5ca2Y8J2txR4eU_pTYIHki3UYj9HSW-gA5ED1JnHI1qxSwiOh_h8uNABRBiFc1_et89KjCgt3W8LFGim3Zvf9AgyO_vEH0tZMYPcAosTCHfiUzgxSRa-ieKkolrilXbc47dLxhnQmcqql44qhaq2k2v4V36qDtfgASgRH0eYq5CcF9ODN3ztMjgGAbrIOC9bicxr1QEaSQC_dC6uN-oBgBLX86J0PJ71-uBGw5QDKSeZznXD46Lw8435kRpT6LTGb_VfCwnvn7vbba-l65bO-g6WzgGbmdI8Y0sKfkNGDYBLMqakoCdIejWtc%26sp%3D%24%7BSECOND_PRICE%7D&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CJapanese&stratagem= HTTP/1.1 
Host: rtbrennab.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjozMTI0NywidHlwZSI6InBvcCIsImlkem9uZSI6MTUwMDc1NiwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDSmFwYW5lc2UiLCJsYWJlbHMiOiIiLCJhbGxvd2VkX2xhYmVscyI6IiIsInRpdGxlIjoiIiwic3ViaWQiOiIxNDAzNiIsInV0bTEiOiIiLCJ1dG0yIjoiIiwidXRtNCI6IiIsInNwb3RfaWQiOjMxMjQ3LCJtdWx0aXBsZSI6ZmFsc2UsImlzX2lmcmFtZSI6ZmFsc2UsInJlZmRvbWFpbiI6IiIsInBsIjo4LCJzdHJhdGFnZW0iOm51bGwsImd5ciI6MCwiYWNjZWwiOjAsInNzcCI6Mzc1OH0sImJhbm5lciI6eyJ3IjozMDAsImgiOjI1MH19XSwic2l0ZSI6eyJpZCI6IjMxMjQ3IiwiY2F0IjpbIklBQjI1Il0sInBhZ2UiOiJodHRwczovL3Vwb3JuaWEuY29tL3ZpZGVvcy8yNjM0OTIvamFwYW5lc2UtZ3Jhbm55LWNyZWFtZWQtYnktbm90LWhlci1ncmFuZHNvbi11bmNlbnNvcmVkLz9wcm9tbz0xNDAzNiJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NjIzNTY3MTgxODF9fQ==
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         116.202.60.158
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: //in16.zog.link/in/tishow/?katds_ep=T7KbbxqVeS8SkEq-RsYWcEtmrJamiwNre-T-gpaMR0nFFi41v6ESymQoRjXAn5wH_LoQMUlY1ju9LkjjkG5XND1WwdvDC67z-yuUgOHMbc5L4TJ7CvSZaN13ojLNtV3FeawPwuy8dLMzjDYzHA2EBzwJ5viEIDi4Rci7vfZtWDnmebCHejma5K3fu5LSYgjSiNrZPLmRYNFVft_EheB9M3RDAQMctCnXvoYLOEFeXl-zpyGrqoGcGXg9WxnBqH42jDl84mCw9mKI8vzyZuBYNxxlsZoNG4n3mZXzW7YGXAYLfKT3zi3hvYBICEJdFgrUNdn_4zJmdeaUDZA-r7JqYMzVlRE7dfufsqLzFbUCq27pm76GF1dsdjNeXkBeWqLxZNF2yr_Pdn3MGlg4ijEJv_0T8I-eP5c0QD_-SERRNLRYsJJ61WfRcGlkisR5fagE5gCexJQ3NqqvvDvuJBY558wX-7wNbYbezZ3Oz3bMy-YvTjCkkoJd7gwcjP8R5NSpyCHWoUHjx78yFw4NZn2dQODNOw1qH8KyLl3MPG7PtZ7l6Vd3SDLjFMo4Q0ZFh9wBNwcWXW1ysY-Minn4kES1Fw5SA0nTEEQX99Iikd8pfDx4MxWj8vebwDpvfRu0ObszHucspvD_G1AgiLryTxqeYzF-foU6NDoW87ZuHhB6oyphebDAjjxgs8MNrLUvqW4OEvExNFgCvTiFtNYf8N3FCYiKA0c-_zzQjVnkISNfLGD1Y3UNqT7VNoKt0ThbdkszwtJArv-VMr3ctuEw50psqvLmMXxqJ4xMsAHJMeLpPDz3nuyDd4JIyTouduvAxUdCfNxHm0xdqXhWZ9HgH1Wjob5cPrDzNF9GJ5qUMjxPJnb8PVzwgJSTnTr9dHXjHGRAGi1vEJsjJ_x3208E-4rqTRapxmCTymfcvnFqxF2tv95HdPmShl6a392DfRDtx49nxj0MbHuiEoibXCstVomT5RcRMXQ598Y74AkJswlP8AE1jxaTHBD8xdrM9yEcHuo5AJtCV3icX5ZdjjMrlDHk75x6qnsSPt6KRbUldSnRRMNoE0drm6xti9im1jkqpql4c4o4g0BuJ6LgOPKUEfiE_Hs_tQfhhEhPqKSl3R9zUk8fmvAXwISwPKk7IIobUr9Rc5cbiwpX0R9wHtiwevSKfQuWhi_7eWyJRWo5EdDOyDBPGmg4hRDWuN6bM6fswBrpwpAKqRejL0QfGWnNyxt6Ww9f2KBlXXovjr7GNjkXNviULipw_T2JEtKA-CdbotXtw-O1ObcGYV84Tro4mi3GSMwiIHDS-yOJMVzpzoW7XBRU0gOW0kQ2AHBTZpvCdMgI9-cS8ih0Ioh1SoTXxRGY8rCV_X0YDjcp-gRLG_YwyT0RIA8SNjRe8yRaNRlC89IPNn_HehtA5BYfkS_8U5YzLfAnTH2FvILUMN25cxz27BJKsKnAhp9D9IdUUPoChpPFJlNXUZGJBLQ0xYKIkkegsVhoebL8QWjcIcdPzZA6OgJB1nJCLgHY0AYhGuhlHTRU59dpHZoDlX8r9dv0EdD9OB8CJr9qRDHEkBfvaj5x5Q2vedIVU5cfacoaCQ_1Xqq0OCAnf5Ju9q8K4cco_nv8jSy6yarQKETCQSgs2LtOb3MyUXrcMpnvl8qbz0mKzWFQWmX4Y7WK9ulkna1MpPDpl9LXCy1myewi9RJqP9hnv9lnPKd_E415UeKfAMc3opZA7wbBnxbe7cyBCd-KzVk5ca2Y8J2txR4eU_pTYIHki3UYj9HSW-gA5ED1JnHI1qxSwiOh_h8uNABRBiFc1_et89KjCgt3W8LFGim3Zvf9AgyO_vEH0tZMYPcAosTCHfiUzgxSRa-ieKkolrilXbc47dLxhnQmcqql44qhaq2k2v4V36qDtfgASgRH0eYq5CcF9ODN3ztMjgGAbrIOC9bicxr1QEaSQC_dC6uN-oBgBLX86J0PJ71-uBGw5QDKSeZznXD46Lw8435kRpT6LTGb_VfCwnvn7vbba-l65bO-g6WzgGbmdI8Y0sKfkNGDYBLMqakoCdIejWtc&sp=${SECOND_PRICE}
X-Firefox-Spdy: h2

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "D4A10EED10567CDC3238BC4BEEF2B13AE4DE8FD83D0DB6CB6599C97FB3638529"
Last-Modified: Sun, 04 Sep 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=10361
Expires: Mon, 05 Sep 2022 08:38:03 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "D4A10EED10567CDC3238BC4BEEF2B13AE4DE8FD83D0DB6CB6599C97FB3638529"
Last-Modified: Sun, 04 Sep 2022 16:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=10361
Expires: Mon, 05 Sep 2022 08:38:03 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            GET /296x148/filters:format(jpeg):quality(60):no_upscale():strip_exif()/https%3A%2F%2Fs3.amazonaws.com%2Fpocket-curatedcorpusapi-prod-images%2F404ac7e7-f8ba-4b04-b736-5cab0995739f.jpeg HTTP/1.1 
Host: img-getpocket.cdn.mozilla.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: null
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         34.120.237.76
HTTP/2 200 OK
content-type: image/jpeg
                                        
server: nginx
content-length: 11003
x-amzn-requestid: 29b9c3bc-4b10-44ed-9bc0-111a672c1d25
x-xss-protection: 1; mode=block
access-control-allow-origin: *
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-frame-options: DENY
content-security-policy: default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'
x-amz-apigw-id: XqpJpGjxoAMFzSw=
x-content-type-options: nosniff
x-amzn-trace-id: Root=1-630dbbd7-1547b64d2fc3052e510f6218;Sampled=0
x-amzn-remapped-date: Tue, 30 Aug 2022 07:27:19 GMT
x-amz-cf-pop: SEA73-P1
x-cache: Hit from cloudfront
x-amz-cf-id: TGpnDyF8_8hy5bs5denuqKSMzLl98Oz7YHx4MAOMr_Ah-POktYDXSA==
via: 1.1 d1151317ba32afe0e6370fd69fed222e.cloudfront.net (CloudFront), 1.1 ebe4011a81a36e2bf678f69ce1711330.cloudfront.net (CloudFront), 1.1 google
date: Sun, 04 Sep 2022 22:03:42 GMT
age: 27700
etag: "618252c5082ccfeeb8bc92aecba4485c48ac4206"
cache-control: max-age=3600,public,public
alt-svc: clear
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, progressive, precision 8, 296x148, components 3\012- data
Size:   11003
Md5:    8a5ed2a9c430f2f02da773c400d096e0
Sha1:   618252c5082ccfeeb8bc92aecba4485c48ac4206
Sha256: 948158a29f15f5f5ab45f541b665269d43bfc1e3b444ee4ecb9ba715d5b616d8
                                        
                                            GET /banner/in/show/?mid=2079025731&pid=0&site=31253&sc=NO&usage_type=DCH&subid=14036&sid=0&cid=0&price=0&is_cpm=0&cpm=0&ecpm=0&crid=&crtid=&tcid=0&out_id=&ver=&ver_c=&refdom=upornia.com&hostname=auc-banner-hz-7&site_id=0&spot_id=31253&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=0&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=default&iabcat=IAB25&min_cpm=0.002512&placement_type_id=&skin_test=&verify_hash=&score=1&ml=&ttl=&space_id=31253&banner_width=728&banner_height=90&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Fbtds.zog.link%2Fin%2F912%2F%3Fsid%3D31253%26source%3D14036%26idzone%3D3540793%26w%3D728%26h%3D90%26mo%3D%26ve%3D%26site_id%3D31253%26utm1%3D%26utm2%3D%26utm3%3D%26utm4%3D%26ad_tags%3DStraight%252CJapanese%26spot_id%3D31253%26p%3Dhttps%253A%252F%252Fupornia.com%252Fvideos%252F263492%252Fjapanese-granny-creamed-by-not-her-grandson-uncensored%252F%253Fpromo%253D14036%26katds_labels%3D%26btype%3D0%26score%3D1&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CJapanese&stratagem= HTTP/1.1 
Host: rtbrennab.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk3LCJzcGFjZWlkIjozMTI1MywidHlwZSI6InBvcCIsImlkem9uZSI6MzU0MDc5MywiYWRfdGFncyI6IlN0cmFpZ2h0JTJDSmFwYW5lc2UiLCJsYWJlbHMiOiIiLCJhbGxvd2VkX2xhYmVscyI6IiIsInRpdGxlIjoiIiwic3ViaWQiOiIxNDAzNiIsInV0bTEiOiIiLCJ1dG0yIjoiIiwidXRtNCI6IiIsInNwb3RfaWQiOjMxMjUzLCJtdWx0aXBsZSI6dHJ1ZSwiaXNfaWZyYW1lIjpmYWxzZSwicmVmZG9tYWluIjoiIiwicGwiOjEyLCJzdHJhdGFnZW0iOm51bGwsImd5ciI6MCwiYWNjZWwiOjAsInNzcCI6Mzc1OH0sImJhbm5lciI6eyJ3Ijo3MjgsImgiOjkwfX1dLCJzaXRlIjp7ImlkIjoiMzEyNTMiLCJjYXQiOlsiSUFCMjUiXSwicGFnZSI6Imh0dHBzOi8vdXBvcm5pYS5jb20vdmlkZW9zLzI2MzQ5Mi9qYXBhbmVzZS1ncmFubnktY3JlYW1lZC1ieS1ub3QtaGVyLWdyYW5kc29uLXVuY2Vuc29yZWQvP3Byb21vPTE0MDM2In0sImRldmljZSI6eyJ3IjoxMjgwLCJoIjoxMDI0fSwidXNlciI6eyJpZCI6IjllNDk0N2YzNTc1MTQ2NTQxMWZkMWE0ZjVjMzU4Yzc4In0sImV4dCI6eyJkdCI6MTY2MjM1NjcxODE4Mn19
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         116.202.60.158
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://btds.zog.link/in/912/?sid=31253&source=14036&idzone=3540793&w=728&h=90&mo=&ve=&site_id=31253&utm1=&utm2=&utm3=&utm4=&ad_tags=Straight%2CJapanese&spot_id=31253&p=https%3A%2F%2Fupornia.com%2Fvideos%2F263492%2Fjapanese-granny-creamed-by-not-her-grandson-uncensored%2F%3Fpromo%3D14036&katds_labels=&btype=0&score=1
X-Firefox-Spdy: h2

                                        
                                            GET /banner/in/show/?mid=698964449&pid=0&site=31244&sc=NO&usage_type=DCH&subid=14036&sid=0&cid=0&price=0&is_cpm=0&cpm=0&ecpm=0&crid=&crtid=&tcid=0&out_id=&ver=&ver_c=&refdom=upornia.com&hostname=auc-banner-hz-2&site_id=0&spot_id=31244&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=0&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=default&iabcat=IAB25&min_cpm=0.00673284&placement_type_id=&skin_test=&verify_hash=&score=1&ml=&ttl=&space_id=31244&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Fbtds.zog.link%2Fin%2F912%2F%3Fsid%3D31244%26source%3D14036%26idzone%3D1500742%26w%3D300%26h%3D250%26mo%3D%26ve%3D%26site_id%3D31244%26utm1%3D%26utm2%3D%26utm3%3D%26utm4%3D%26ad_tags%3DStraight%252CJapanese%26spot_id%3D31244%26p%3Dhttps%253A%252F%252Fupornia.com%252Fvideos%252F263492%252Fjapanese-granny-creamed-by-not-her-grandson-uncensored%252F%253Fpromo%253D14036%26katds_labels%3D%26btype%3D0%26score%3D1&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CJapanese&stratagem= HTTP/1.1 
Host: rtbrennab.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjozMTI0NCwidHlwZSI6InBvcCIsImlkem9uZSI6MTUwMDc0MiwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDSmFwYW5lc2UiLCJsYWJlbHMiOiIiLCJhbGxvd2VkX2xhYmVscyI6IiIsInRpdGxlIjoiIiwic3ViaWQiOiIxNDAzNiIsInV0bTEiOiIiLCJ1dG0yIjoiIiwidXRtNCI6IiIsInNwb3RfaWQiOjMxMjQ0LCJtdWx0aXBsZSI6ZmFsc2UsImlzX2lmcmFtZSI6ZmFsc2UsInJlZmRvbWFpbiI6IiIsInBsIjo4LCJzdHJhdGFnZW0iOm51bGwsImd5ciI6MCwiYWNjZWwiOjAsInNzcCI6Mzc1OH0sImJhbm5lciI6eyJ3IjozMDAsImgiOjI1MH19XSwic2l0ZSI6eyJpZCI6IjMxMjQ0IiwiY2F0IjpbIklBQjI1Il0sInBhZ2UiOiJodHRwczovL3Vwb3JuaWEuY29tL3ZpZGVvcy8yNjM0OTIvamFwYW5lc2UtZ3Jhbm55LWNyZWFtZWQtYnktbm90LWhlci1ncmFuZHNvbi11bmNlbnNvcmVkLz9wcm9tbz0xNDAzNiJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NjIzNTY3MTgxNzZ9fQ==
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         116.202.60.158
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://btds.zog.link/in/912/?sid=31244&source=14036&idzone=1500742&w=300&h=250&mo=&ve=&site_id=31244&utm1=&utm2=&utm3=&utm4=&ad_tags=Straight%2CJapanese&spot_id=31244&p=https%3A%2F%2Fupornia.com%2Fvideos%2F263492%2Fjapanese-granny-creamed-by-not-her-grandson-uncensored%2F%3Fpromo%3D14036&katds_labels=&btype=0&score=1
X-Firefox-Spdy: h2

                                        
                                            GET /banner/in/show/?mid=2047131199&pid=0&site=31245&sc=NO&usage_type=DCH&subid=14036&sid=0&cid=0&price=0&is_cpm=0&cpm=0&ecpm=0&crid=&crtid=&tcid=0&out_id=&ver=&ver_c=&refdom=upornia.com&hostname=auc-banner-hz-5&site_id=0&spot_id=31245&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=0&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=default&iabcat=IAB25&min_cpm=0.00478279&placement_type_id=&skin_test=&verify_hash=&score=1&ml=&ttl=&space_id=31245&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Fbtds.zog.link%2Fin%2F912%2F%3Fsid%3D31245%26source%3D14036%26idzone%3D1500748%26w%3D300%26h%3D250%26mo%3D%26ve%3D%26site_id%3D31245%26utm1%3D%26utm2%3D%26utm3%3D%26utm4%3D%26ad_tags%3DStraight%252CJapanese%26spot_id%3D31245%26p%3Dhttps%253A%252F%252Fupornia.com%252Fvideos%252F263492%252Fjapanese-granny-creamed-by-not-her-grandson-uncensored%252F%253Fpromo%253D14036%26katds_labels%3D%26btype%3D0%26score%3D1&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CJapanese&stratagem= HTTP/1.1 
Host: rtbrennab.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjozMTI0NSwidHlwZSI6InBvcCIsImlkem9uZSI6MTUwMDc0OCwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDSmFwYW5lc2UiLCJsYWJlbHMiOiIiLCJhbGxvd2VkX2xhYmVscyI6IiIsInRpdGxlIjoiIiwic3ViaWQiOiIxNDAzNiIsInV0bTEiOiIiLCJ1dG0yIjoiIiwidXRtNCI6IiIsInNwb3RfaWQiOjMxMjQ1LCJtdWx0aXBsZSI6ZmFsc2UsImlzX2lmcmFtZSI6ZmFsc2UsInJlZmRvbWFpbiI6IiIsInBsIjo4LCJzdHJhdGFnZW0iOm51bGwsImd5ciI6MCwiYWNjZWwiOjAsInNzcCI6Mzc1OH0sImJhbm5lciI6eyJ3IjozMDAsImgiOjI1MH19XSwic2l0ZSI6eyJpZCI6IjMxMjQ1IiwiY2F0IjpbIklBQjI1Il0sInBhZ2UiOiJodHRwczovL3Vwb3JuaWEuY29tL3ZpZGVvcy8yNjM0OTIvamFwYW5lc2UtZ3Jhbm55LWNyZWFtZWQtYnktbm90LWhlci1ncmFuZHNvbi11bmNlbnNvcmVkLz9wcm9tbz0xNDAzNiJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NjIzNTY3MTgxNzh9fQ==
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         116.202.60.158
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://btds.zog.link/in/912/?sid=31245&source=14036&idzone=1500748&w=300&h=250&mo=&ve=&site_id=31245&utm1=&utm2=&utm3=&utm4=&ad_tags=Straight%2CJapanese&spot_id=31245&p=https%3A%2F%2Fupornia.com%2Fvideos%2F263492%2Fjapanese-granny-creamed-by-not-her-grandson-uncensored%2F%3Fpromo%3D14036&katds_labels=&btype=0&score=1
X-Firefox-Spdy: h2

                                        
                                            GET /watch/33008329?wmode=7&page-url=https%3A%2F%2Fupornia.com%2Fvideos%2F263492%2Fjapanese-granny-creamed-by-not-her-grandson-uncensored%2F%3Fpromo%3D14036&charset=utf-8&browser-info=pv%3A1%3Agdpr%3A14%3Avf%3A2ocpriggyfyr946elviuuw%3Afp%3A1226%3Afu%3A0%3Aen%3Autf-8%3Ala%3Aen-US%3Av%3A882%3Acn%3A1%3Adp%3A0%3Als%3A964295414991%3Ahid%3A259394434%3Az%3A0%3Ai%3A20220905054517%3Aet%3A1662356718%3Ac%3A1%3Arn%3A1031925893%3Arqn%3A1%3Au%3A1662356718784393520%3Aw%3A1268x939%3As%3A1280x1024x24%3Ask%3A1%3Ans%3A1662356715555%3Ads%3A2%2C62%2C48%2C2%2C361%2C0%2C%2C678%2C4%2C%2C%2C%2C1256%3Aco%3A0%3Afip%3Aa81f3b9bcdd80a361c14af38dc09b309-a81f3b9bcdd80a361c14af38dc09b309-a81f3b9bcdd80a361c14af38dc09b309-4bd84c89c35a312599d807af285e7b5f-4335742423629acc806791d3e9f585f3-5b56a9f28e63b1a76c5f94a136cc484e-61b9878bbce18de73aafc8582a198c0c-e9c964637c807fcca817e718cc2d1338-a81f3b9bcdd80a361c14af38dc09b309-c6d7b47b2dcff33f80cab17f3a360d0b-2facd2c41a0047c68391f933b930bc3a%3Arqnl%3A1%3Ast%3A1662356718%3At%3AJapanese%20Granny%20Creamed%20by%20not%20her%20Grandson%20(Uncensored)%20%7C%20Upornia.com&t=gdpr(14)clc(0-0-0)aw(1)rqnt(1)fip(1)rqnl(1)ti(2) HTTP/1.1 
Host: mc.yandex.ru
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://upornia.com
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         87.250.251.119
HTTP/2 302 Found
                                        
location: /watch/33008329/1?wmode=7&page-url=https%3A%2F%2Fupornia.com%2Fvideos%2F263492%2Fjapanese-granny-creamed-by-not-her-grandson-uncensored%2F%3Fpromo%3D14036&charset=utf-8&browser-info=pv%3A1%3Agdpr%3A14%3Avf%3A2ocpriggyfyr946elviuuw%3Afp%3A1226%3Afu%3A0%3Aen%3Autf-8%3Ala%3Aen-US%3Av%3A882%3Acn%3A1%3Adp%3A0%3Als%3A964295414991%3Ahid%3A259394434%3Az%3A0%3Ai%3A20220905054517%3Aet%3A1662356718%3Ac%3A1%3Arn%3A1031925893%3Arqn%3A1%3Au%3A1662356718784393520%3Aw%3A1268x939%3As%3A1280x1024x24%3Ask%3A1%3Ans%3A1662356715555%3Ads%3A2%2C62%2C48%2C2%2C361%2C0%2C%2C678%2C4%2C%2C%2C%2C1256%3Aco%3A0%3Afip%3Aa81f3b9bcdd80a361c14af38dc09b309-a81f3b9bcdd80a361c14af38dc09b309-a81f3b9bcdd80a361c14af38dc09b309-4bd84c89c35a312599d807af285e7b5f-4335742423629acc806791d3e9f585f3-5b56a9f28e63b1a76c5f94a136cc484e-61b9878bbce18de73aafc8582a198c0c-e9c964637c807fcca817e718cc2d1338-a81f3b9bcdd80a361c14af38dc09b309-c6d7b47b2dcff33f80cab17f3a360d0b-2facd2c41a0047c68391f933b930bc3a%3Arqnl%3A1%3Ast%3A1662356718%3At%3AJapanese%20Granny%20Creamed%20by%20not%20her%20Grandson%20%28Uncensored%29%20%7C%20Upornia.com&t=gdpr%2814%29clc%280-0-0%29aw%281%29rqnt%281%29fip%281%29rqnl%281%29ti%282%29
date: Mon, 05 Sep 2022 05:45:21 GMT
access-control-allow-origin: https://upornia.com
set-cookie: yandexuid=8286145681662356721; Expires=Tue, 05-Sep-2023 05:45:21 GMT; Domain=.yandex.ru; Path=/; SameSite=None; Secure yuidss=8286145681662356721; Expires=Tue, 05-Sep-2023 05:45:21 GMT; Domain=.yandex.ru; Path=/; SameSite=None; Secure yabs-sid=1516831251662356721; Path=/; SameSite=None; Secure i=zjGLFy5NNvSfZgss3wNRFIquwWv63KUAEnnZ02HKqYN3JfvQKVsH1hfJY6NNTX4hdV5tdvQ+kE4fnCKmFmYc/pVL9O8=; Expires=Thu, 02-Sep-2032 05:45:19 GMT; Domain=.yandex.ru; Path=/; Secure; HttpOnly; SameSite=None ymex=1693892721.yrts.1662356721#1693892721.yrtsi.1662356721; Expires=Tue, 05-Sep-2023 05:45:21 GMT; Domain=.yandex.ru; Path=/; SameSite=None; Secure
access-control-allow-credentials: true
pragma: no-cache
x-xss-protection: 1; mode=block
expires: Mon, 05-Sep-2022 05:45:21 GMT
last-modified: Mon, 05-Sep-2022 05:45:21 GMT
cache-control: private, no-cache, no-store, must-revalidate, max-age=0
strict-transport-security: max-age=31536000
X-Firefox-Spdy: h2

                                        
                                            GET /kop/fame.js HTTP/1.1 
Host: upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Service-Worker: script
Connection: keep-alive
Cookie: source=14036; kt_lang=en; _ga=GA1.2.324479761.1662356717; _gid=GA1.2.924131252.1662356717; _gat=1; _gat_UA-31745569-46=1; _ym_uid=1662356718784393520; _ym_d=1662356718
Sec-Fetch-Dest: serviceworker
Sec-Fetch-Mode: same-origin
Sec-Fetch-Site: same-origin
Pragma: no-cache
Cache-Control: no-cache
TE: trailers

                                         
                                         104.21.234.100
HTTP/2 200 OK
content-type: application/javascript
                                        
date: Mon, 05 Sep 2022 05:45:22 GMT
last-modified: Fri, 22 Jul 2022 07:51:23 GMT
vary: Accept-Encoding
etag: W/"62da56fb-43"
expires: Sun, 11 Sep 2022 08:54:56 GMT
cache-control: public, max-age=31536000
pragma: public
cf-cache-status: HIT
age: 2062227
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=HbBlyxdpOrn1InAOqBQloi%2BoXgXadlclsfXtld9zOUHaKXC3lPITRqE3OFeNxCt5FLdIJ7GV01jqnhXc0wGtQMgVlPFNRRxKuP8Q6xvMC0VSlJTocDna5UNycnBGXg%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 745ca88beaa6777f-LHR
content-encoding: br
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with no line terminators
Size:   64
Md5:    6b66eeb43c6b287623ed83b4507be956
Sha1:   e6c15a2bfc8403e2f26784f98b859543753304db
Sha256: c2dfd3d32507586e8314760296f249749c6ef2930772798a57e169a880619e26
                                        
                                            GET /in/912/?sid=31244&source=14036&idzone=1500742&w=300&h=250&mo=&ve=&site_id=31244&utm1=&utm2=&utm3=&utm4=&ad_tags=Straight%2CJapanese&spot_id=31244&p=https%3A%2F%2Fupornia.com%2Fvideos%2F263492%2Fjapanese-granny-creamed-by-not-her-grandson-uncensored%2F%3Fpromo%3D14036&katds_labels=&btype=0&score=1 HTTP/1.1 
Host: btds.zog.link
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://rtbrennab.com/
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         109.206.191.198
HTTP/2 302 Found
content-type: text/html; charset=UTF-8
                                        
server: nginx/1.20.1
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
location: https://12007250.pix-cdn.org/a/pjexo.html?idzone=1500742&w=300&h=250&ad_sub=14036&ad_tags=Straight,Japanese
vary: *
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
set-cookie: 912.0=1; expires=Tue, 06 Sep 2022 05:45:22 GMT; path=/; secure; SameSite=None 1240.0=1; expires=Tue, 06 Sep 2022 05:45:22 GMT; path=/; secure; SameSite=None 1242.0=1; expires=Tue, 06 Sep 2022 05:45:22 GMT; path=/; secure; SameSite=None
X-Firefox-Spdy: h2

                                        
                                            GET /banner/in/show/?mid=2054449546&pid=0&site=31255&sc=NO&usage_type=DCH&subid=14036&sid=0&cid=10765&price=0&is_cpm=1&cpm=0.006015786&ecpm=0.006015786&crid=&crtid=d41d8cd98f00b204e9800998ecf8427e&tcid=0&out_id=&ver=&ver_c=&refdom=upornia.com&hostname=auc-banner-hz-10&site_id=0&spot_id=31255&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=6&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=imageAd&iabcat=IAB25&min_cpm=0.00012799657434622844&placement_type_id=10&skin_test=&verify_hash=&score=1&ml=&ttl=&space_id=31255&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Fs.optnx.com%2Fcimp.php%3Fdata%3DTVRZMk1qTTFOamN5TW53eVpqVTBabVJsTURRNFpXRmtaR0V3WmpVMU9UQmhOV1ZqWWpKall6VmxaQS0tfC9saWJyYXJ5LzcyMzY2Mi82MTlhODA5ZDYwZjMyMGRkZWMyZjQxNjM0OTA4NzRlZmNmMDZiZDI4LmdpZnxodHRwc3w5MS45MC40Mi4xNTR8Tk9SfDQxfHVwb3JuaWEuY29tfDcyMzY2Mnw2NjYxNzN8OTAxMDg4fDQxNzYxODh8NTA4fDUzMTQxNjB8NzU1NjMxNzR8MTV8M3wwfDB8MjUzNDR8MHwxfDcwfEVVUnxFVVJ8MXwxLjAwMTV8MjF8MzAweDI1MHwxfE5PUnx8MjB8NHwxfHw5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OHxmZWM1YmQzMzg4NjJiZmM5MDExY2U3MjI3Y2U1Yjc4OXwxfDB8dXBvcm5pYS5jb218MHwwfDB8MC4wMnwxfDB8ZXhjaGFuZ2VfYmFubmVyfDB8MHwzMTQzMjQyfC0xfDB8MzE0MzI0NHx8fDF8MTQ0MHx8MHwwfDB8MHwwfDB8MXwwfHw4fDF8TW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0OyBydjo5Ni4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94Lzk2LjB8T0t8ZjIzODEwM2YzOTlkZjU5OWJlNmVkNzFjZDFmMzFlZmU-&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CJapanese&stratagem= HTTP/1.1 
Host: rtbrennab.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjozMTI1NSwidHlwZSI6InBvcCIsImlkem9uZSI6NDM1Njk2NiwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDSmFwYW5lc2UiLCJsYWJlbHMiOiIiLCJhbGxvd2VkX2xhYmVscyI6IiIsInRpdGxlIjoiIiwic3ViaWQiOiIxNDAzNiIsInV0bTEiOiIiLCJ1dG0yIjoiIiwidXRtNCI6IiIsInNwb3RfaWQiOjMxMjU1LCJtdWx0aXBsZSI6ZmFsc2UsImlzX2lmcmFtZSI6ZmFsc2UsInJlZmRvbWFpbiI6IiIsInBsIjoxMCwic3RyYXRhZ2VtIjpudWxsLCJneXIiOjAsImFjY2VsIjowLCJzc3AiOjM3NTh9LCJiYW5uZXIiOnsidyI6MzAwLCJoIjoyNTB9fV0sInNpdGUiOnsiaWQiOiIzMTI1NSIsImNhdCI6WyJJQUIyNSJdLCJwYWdlIjoiaHR0cHM6Ly91cG9ybmlhLmNvbS92aWRlb3MvMjYzNDkyL2phcGFuZXNlLWdyYW5ueS1jcmVhbWVkLWJ5LW5vdC1oZXItZ3JhbmRzb24tdW5jZW5zb3JlZC8/cHJvbW89MTQwMzYifSwiZGV2aWNlIjp7InciOjEyODAsImgiOjEwMjR9LCJ1c2VyIjp7ImlkIjoiOWU0OTQ3ZjM1NzUxNDY1NDExZmQxYTRmNWMzNThjNzgifSwiZXh0Ijp7ImR0IjoxNjYyMzU2NzE4MTcwfX0=
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         116.202.60.158
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://s.optnx.com/cimp.php?data=TVRZMk1qTTFOamN5TW53eVpqVTBabVJsTURRNFpXRmtaR0V3WmpVMU9UQmhOV1ZqWWpKall6VmxaQS0tfC9saWJyYXJ5LzcyMzY2Mi82MTlhODA5ZDYwZjMyMGRkZWMyZjQxNjM0OTA4NzRlZmNmMDZiZDI4LmdpZnxodHRwc3w5MS45MC40Mi4xNTR8Tk9SfDQxfHVwb3JuaWEuY29tfDcyMzY2Mnw2NjYxNzN8OTAxMDg4fDQxNzYxODh8NTA4fDUzMTQxNjB8NzU1NjMxNzR8MTV8M3wwfDB8MjUzNDR8MHwxfDcwfEVVUnxFVVJ8MXwxLjAwMTV8MjF8MzAweDI1MHwxfE5PUnx8MjB8NHwxfHw5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OHxmZWM1YmQzMzg4NjJiZmM5MDExY2U3MjI3Y2U1Yjc4OXwxfDB8dXBvcm5pYS5jb218MHwwfDB8MC4wMnwxfDB8ZXhjaGFuZ2VfYmFubmVyfDB8MHwzMTQzMjQyfC0xfDB8MzE0MzI0NHx8fDF8MTQ0MHx8MHwwfDB8MHwwfDB8MXwwfHw4fDF8TW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0OyBydjo5Ni4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94Lzk2LjB8T0t8ZjIzODEwM2YzOTlkZjU5OWJlNmVkNzFjZDFmMzFlZmU-
X-Firefox-Spdy: h2

                                        
                                            GET /in/dip?site=native-push&wl=1&event_id=f0e316a2-413e-467d-b76d-73bf20a7b94c&subid=14036&sid=3985322802&spot_id=437&created_at=2022-09-05&timezone=0&ver=7.2.0&is_native=1 HTTP/1.1 
Host: nereserv.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Origin: https://upornia.com
Connection: keep-alive
Referer: https://upornia.com/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

                                         
                                         168.119.25.22
HTTP/2 200 OK
                                        
server: nginx/1.18.0
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
X-Firefox-Spdy: h2

                                        
                                            GET /banner/in/show/?mid=119398068&pid=0&site=31246&sc=NO&usage_type=DCH&subid=14036&sid=0&cid=0&price=0&is_cpm=0&cpm=0&ecpm=0&crid=&crtid=&tcid=0&out_id=&ver=&ver_c=&refdom=upornia.com&hostname=auc-banner-hz-8&site_id=0&spot_id=31246&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=0&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=default&iabcat=IAB25&min_cpm=0.0047265&placement_type_id=&skin_test=&verify_hash=&score=1&ml=&ttl=&space_id=31246&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Fbtds.zog.link%2Fin%2F912%2F%3Fsid%3D31246%26source%3D14036%26idzone%3D1500752%26w%3D300%26h%3D250%26mo%3D%26ve%3D%26site_id%3D31246%26utm1%3D%26utm2%3D%26utm3%3D%26utm4%3D%26ad_tags%3DStraight%252CJapanese%26spot_id%3D31246%26p%3Dhttps%253A%252F%252Fupornia.com%252Fvideos%252F263492%252Fjapanese-granny-creamed-by-not-her-grandson-uncensored%252F%253Fpromo%253D14036%26katds_labels%3D%26btype%3D0%26score%3D1&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CJapanese&stratagem= HTTP/1.1 
Host: rtbrennab.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjozMTI0NiwidHlwZSI6InBvcCIsImlkem9uZSI6MTUwMDc1MiwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDSmFwYW5lc2UiLCJsYWJlbHMiOiIiLCJhbGxvd2VkX2xhYmVscyI6IiIsInRpdGxlIjoiIiwic3ViaWQiOiIxNDAzNiIsInV0bTEiOiIiLCJ1dG0yIjoiIiwidXRtNCI6IiIsInNwb3RfaWQiOjMxMjQ2LCJtdWx0aXBsZSI6ZmFsc2UsImlzX2lmcmFtZSI6ZmFsc2UsInJlZmRvbWFpbiI6IiIsInBsIjo4LCJzdHJhdGFnZW0iOm51bGwsImd5ciI6MCwiYWNjZWwiOjAsInNzcCI6Mzc1OH0sImJhbm5lciI6eyJ3IjozMDAsImgiOjI1MH19XSwic2l0ZSI6eyJpZCI6IjMxMjQ2IiwiY2F0IjpbIklBQjI1Il0sInBhZ2UiOiJodHRwczovL3Vwb3JuaWEuY29tL3ZpZGVvcy8yNjM0OTIvamFwYW5lc2UtZ3Jhbm55LWNyZWFtZWQtYnktbm90LWhlci1ncmFuZHNvbi11bmNlbnNvcmVkLz9wcm9tbz0xNDAzNiJ9LCJkZXZpY2UiOnsidyI6MTI4MCwiaCI6MTAyNH0sInVzZXIiOnsiaWQiOiI5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OCJ9LCJleHQiOnsiZHQiOjE2NjIzNTY3MTgxNzl9fQ==
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         116.202.60.158
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://btds.zog.link/in/912/?sid=31246&source=14036&idzone=1500752&w=300&h=250&mo=&ve=&site_id=31246&utm1=&utm2=&utm3=&utm4=&ad_tags=Straight%2CJapanese&spot_id=31246&p=https%3A%2F%2Fupornia.com%2Fvideos%2F263492%2Fjapanese-granny-creamed-by-not-her-grandson-uncensored%2F%3Fpromo%3D14036&katds_labels=&btype=0&score=1
X-Firefox-Spdy: h2

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "A38A15BFCC85EF688470CAD4C86696466B6D1538B06C5C2E7C95D41959C2A47D"
Last-Modified: Mon, 05 Sep 2022 04:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=17112
Expires: Mon, 05 Sep 2022 10:30:34 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            GET /in/912/?sid=31245&source=14036&idzone=1500748&w=300&h=250&mo=&ve=&site_id=31245&utm1=&utm2=&utm3=&utm4=&ad_tags=Straight%2CJapanese&spot_id=31245&p=https%3A%2F%2Fupornia.com%2Fvideos%2F263492%2Fjapanese-granny-creamed-by-not-her-grandson-uncensored%2F%3Fpromo%3D14036&katds_labels=&btype=0&score=1 HTTP/1.1 
Host: btds.zog.link
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://rtbrennab.com/
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         109.206.191.198
HTTP/2 302 Found
content-type: text/html; charset=UTF-8
                                        
server: nginx/1.20.1
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
location: https://12007250.pix-cdn.org/a/pjexo.html?idzone=1500748&w=300&h=250&ad_sub=14036&ad_tags=Straight,Japanese
vary: *
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
set-cookie: 912.0=1; expires=Tue, 06 Sep 2022 05:45:22 GMT; path=/; secure; SameSite=None 1240.0=1; expires=Tue, 06 Sep 2022 05:45:22 GMT; path=/; secure; SameSite=None 1242.0=1; expires=Tue, 06 Sep 2022 05:45:22 GMT; path=/; secure; SameSite=None
X-Firefox-Spdy: h2

                                        
                                            GET /in/912/?sid=31246&source=14036&idzone=1500752&w=300&h=250&mo=&ve=&site_id=31246&utm1=&utm2=&utm3=&utm4=&ad_tags=Straight%2CJapanese&spot_id=31246&p=https%3A%2F%2Fupornia.com%2Fvideos%2F263492%2Fjapanese-granny-creamed-by-not-her-grandson-uncensored%2F%3Fpromo%3D14036&katds_labels=&btype=0&score=1 HTTP/1.1 
Host: btds.zog.link
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://rtbrennab.com/
Connection: keep-alive
Cookie: 912.0=1; 1624.0=1; 1625.0=1; 1240.0=1; 1242.0=1
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         109.206.191.198
HTTP/2 302 Found
content-type: text/html; charset=UTF-8
                                        
server: nginx/1.20.1
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
location: https://12007250.pix-cdn.org/a/pjexo.html?idzone=1500752&w=300&h=250&ad_sub=14036&ad_tags=Straight,Japanese
pragma: no-cache
vary: *
cache-control: no-cache, no-store, must-revalidate
set-cookie: 912.0=1; expires=Tue, 06 Sep 2022 05:45:22 GMT; path=/; secure; SameSite=None 1240.0=1; expires=Tue, 06 Sep 2022 05:45:22 GMT; path=/; secure; SameSite=None 1241.0=1; expires=Tue, 06 Sep 2022 05:45:22 GMT; path=/; secure; SameSite=None 1242.0=1; expires=Tue, 06 Sep 2022 05:45:22 GMT; path=/; secure; SameSite=None
X-Firefox-Spdy: h2

                                        
                                            GET /in/tishow/?katds_ep=T7KbbxqVeS8SkEq-RsYWcEtmrJamiwNre-T-gpaMR0nFFi41v6ESymQoRjXAn5wH_LoQMUlY1ju9LkjjkG5XND1WwdvDC67z-yuUgOHMbc5L4TJ7CvSZaN13ojLNtV3FeawPwuy8dLMzjDYzHA2EBzwJ5viEIDi4Rci7vfZtWDnmebCHejma5K3fu5LSYgjSiNrZPLmRYNFVft_EheB9M3RDAQMctCnXvoYLOEFeXl-zpyGrqoGcGXg9WxnBqH42jDl84mCw9mKI8vzyZuBYNxxlsZoNG4n3mZXzW7YGXAYLfKT3zi3hvYBICEJdFgrUNdn_4zJmdeaUDZA-r7JqYMzVlRE7dfufsqLzFbUCq27pm76GF1dsdjNeXkBeWqLxZNF2yr_Pdn3MGlg4ijEJv_0T8I-eP5c0QD_-SERRNLRYsJJ61WfRcGlkisR5fagE5gCexJQ3NqqvvDvuJBY558wX-7wNbYbezZ3Oz3bMy-YvTjCkkoJd7gwcjP8R5NSpyCHWoUHjx78yFw4NZn2dQODNOw1qH8KyLl3MPG7PtZ7l6Vd3SDLjFMo4Q0ZFh9wBNwcWXW1ysY-Minn4kES1Fw5SA0nTEEQX99Iikd8pfDx4MxWj8vebwDpvfRu0ObszHucspvD_G1AgiLryTxqeYzF-foU6NDoW87ZuHhB6oyphebDAjjxgs8MNrLUvqW4OEvExNFgCvTiFtNYf8N3FCYiKA0c-_zzQjVnkISNfLGD1Y3UNqT7VNoKt0ThbdkszwtJArv-VMr3ctuEw50psqvLmMXxqJ4xMsAHJMeLpPDz3nuyDd4JIyTouduvAxUdCfNxHm0xdqXhWZ9HgH1Wjob5cPrDzNF9GJ5qUMjxPJnb8PVzwgJSTnTr9dHXjHGRAGi1vEJsjJ_x3208E-4rqTRapxmCTymfcvnFqxF2tv95HdPmShl6a392DfRDtx49nxj0MbHuiEoibXCstVomT5RcRMXQ598Y74AkJswlP8AE1jxaTHBD8xdrM9yEcHuo5AJtCV3icX5ZdjjMrlDHk75x6qnsSPt6KRbUldSnRRMNoE0drm6xti9im1jkqpql4c4o4g0BuJ6LgOPKUEfiE_Hs_tQfhhEhPqKSl3R9zUk8fmvAXwISwPKk7IIobUr9Rc5cbiwpX0R9wHtiwevSKfQuWhi_7eWyJRWo5EdDOyDBPGmg4hRDWuN6bM6fswBrpwpAKqRejL0QfGWnNyxt6Ww9f2KBlXXovjr7GNjkXNviULipw_T2JEtKA-CdbotXtw-O1ObcGYV84Tro4mi3GSMwiIHDS-yOJMVzpzoW7XBRU0gOW0kQ2AHBTZpvCdMgI9-cS8ih0Ioh1SoTXxRGY8rCV_X0YDjcp-gRLG_YwyT0RIA8SNjRe8yRaNRlC89IPNn_HehtA5BYfkS_8U5YzLfAnTH2FvILUMN25cxz27BJKsKnAhp9D9IdUUPoChpPFJlNXUZGJBLQ0xYKIkkegsVhoebL8QWjcIcdPzZA6OgJB1nJCLgHY0AYhGuhlHTRU59dpHZoDlX8r9dv0EdD9OB8CJr9qRDHEkBfvaj5x5Q2vedIVU5cfacoaCQ_1Xqq0OCAnf5Ju9q8K4cco_nv8jSy6yarQKETCQSgs2LtOb3MyUXrcMpnvl8qbz0mKzWFQWmX4Y7WK9ulkna1MpPDpl9LXCy1myewi9RJqP9hnv9lnPKd_E415UeKfAMc3opZA7wbBnxbe7cyBCd-KzVk5ca2Y8J2txR4eU_pTYIHki3UYj9HSW-gA5ED1JnHI1qxSwiOh_h8uNABRBiFc1_et89KjCgt3W8LFGim3Zvf9AgyO_vEH0tZMYPcAosTCHfiUzgxSRa-ieKkolrilXbc47dLxhnQmcqql44qhaq2k2v4V36qDtfgASgRH0eYq5CcF9ODN3ztMjgGAbrIOC9bicxr1QEaSQC_dC6uN-oBgBLX86J0PJ71-uBGw5QDKSeZznXD46Lw8435kRpT6LTGb_VfCwnvn7vbba-l65bO-g6WzgGbmdI8Y0sKfkNGDYBLMqakoCdIejWtc&sp=${SECOND_PRICE} HTTP/1.1 
Host: in16.zog.link
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://rtbrennab.com/
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: cross-site

                                         
                                         109.206.176.122
HTTP/2 302 Found
                                        
server: nginx/1.20.1
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
location: https://12112336.pix-cdn.org/m/p/0/11/11508/yPndOg0m.html?__OS_FAMILY__={{ __OS_FAMILY__ }}&__OS_TYPE__={{ __OS_TYPE__ }}&__GEOIP_COUNTRY_SHORT__={{ __GEOIP_COUNTRY_SHORT__ }}&__IP2L_MOBILE__={{ __IP2L_MOBILE__ }}&__BROWSER_FAMILY__={{ __BROWSER_FAMILY__ }}&OS_FAMILY=[OS_FAMILY]&OS_TYPE=[OS_TYPE]&COUNTRY_ISO_CODE=[COUNTRY_ISO_CODE]&MOBILE_BRAND=[MOBILE_BRAND]&BROWSER_FAMILY=[BROWSER_FAMILY]&DOMAIN=upornia.com&PRICE=0.0050&PRICING_MODEL=[PRICING_MODEL]&CAMPAIGN_ID=6435&CLICK_ID=cfa78e2a-a697-4b30-87ec-5a89f9b05a25&id_zone=[idzone]&site={{ site }}&out_name=37319%7C4317%7Ccpm%7C0.0048%7C%24%200.0050&campaign_id=37319&price=0.0050&bidding_price=0.0048&pricebox_price=0.0200&pricing_model=cpm&click_id=cfa78e2a-a697-4b30-87ec-5a89f9b05a25&priority=[PRIORITY]&ad_sub=173501021&utm1=tcb&utm2=878669509-100&utm3=249-6435-14933&utm4=0-10346131-0
vary: *
cache-control: no-cache, no-store, must-revalidate
pragma: no-cache
set-cookie: 2325.0=1; expires=Tue, 06 Sep 2022 05:45:22 GMT; path=/; secure; SameSite=None
X-Firefox-Spdy: h2

                                        
                                            GET /cimp.php?data=TVRZMk1qTTFOamN5TW53eVpqVTBabVJsTURRNFpXRmtaR0V3WmpVMU9UQmhOV1ZqWWpKall6VmxaQS0tfC9saWJyYXJ5LzcyMzY2Mi82MTlhODA5ZDYwZjMyMGRkZWMyZjQxNjM0OTA4NzRlZmNmMDZiZDI4LmdpZnxodHRwc3w5MS45MC40Mi4xNTR8Tk9SfDQxfHVwb3JuaWEuY29tfDcyMzY2Mnw2NjYxNzN8OTAxMDg4fDQxNzYxODh8NTA4fDUzMTQxNjB8NzU1NjMxNzR8MTV8M3wwfDB8MjUzNDR8MHwxfDcwfEVVUnxFVVJ8MXwxLjAwMTV8MjF8MzAweDI1MHwxfE5PUnx8MjB8NHwxfHw5ZTQ5NDdmMzU3NTE0NjU0MTFmZDFhNGY1YzM1OGM3OHxmZWM1YmQzMzg4NjJiZmM5MDExY2U3MjI3Y2U1Yjc4OXwxfDB8dXBvcm5pYS5jb218MHwwfDB8MC4wMnwxfDB8ZXhjaGFuZ2VfYmFubmVyfDB8MHwzMTQzMjQyfC0xfDB8MzE0MzI0NHx8fDF8MTQ0MHx8MHwwfDB8MHwwfDB8MXwwfHw4fDF8TW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0OyBydjo5Ni4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94Lzk2LjB8T0t8ZjIzODEwM2YzOTlkZjU5OWJlNmVkNzFjZDFmMzFlZmU- HTTP/1.1 
Host: s.optnx.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://rtbrennab.com/
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site

                                         
                                         95.211.229.246
HTTP/1.1 302 Found
Content-Type: text/html; charset=UTF-8
                                        
Server: nginx
Date: Mon, 05 Sep 2022 05:45:22 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: __uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%2263158cf2b11338.715513152649055961%22%3B%7D; expires=Wed, 04 Sep 2024 05:45:22 GMT; path=; domain=.optnx.com; Secure; SameSite=none
Location: https://s3t3d2y8.afcdn.net/library/723662/619a809d60f320ddec2f4163490874efcf06bd28.gif

                                        
                                            GET /library/723662/619a809d60f320ddec2f4163490874efcf06bd28.gif HTTP/1.1 
Host: s3t3d2y8.afcdn.net
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: image/avif,image/webp,*/*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: https://rtbrennab.com/
Connection: keep-alive
Sec-Fetch-Dest: image
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: cross-site
TE: trailers

                                         
                                         185.76.9.26
HTTP/2 200 OK
content-type: image/gif
                                        
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 74160
last-modified: Wed, 31 Aug 2022 13:14:28 GMT
etag: "630f5eb4-121b0"
expires: Thu, 31 Aug 2023 13:21:27 GMT
cache-control: max-age=31536000
access-control-allow-origin: *
x-cache-op: HIT
x-accel-expires: @1693490090
server: CDN77-Turbo
x-77-nzt: AblMCRSxrSv/yCQGAA
x-77-nzt-ray: c5ni/1hhF7A
x-cache: HIT
x-age: 402632
x-77-pop: stockholmSE
x-77-cache: HIT
accept-ranges: bytes
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  GIF image data, version 89a, 300 x 250\012- data
Size:   74160
Md5:    e5b7084733771dbf111a735cf65f1f3e
Sha1:   619a809d60f320ddec2f4163490874efcf06bd28
Sha256: 3081115a8f85ecf98a0a12d773928c7e88d3a952f09e67f9d90072e95505fa03
                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "D89F2AE4E43B80B80CFCAFD44B1753893724472172D3E016EF8CCDA7B3D5AE0D"
Last-Modified: Mon, 05 Sep 2022 01:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=9141
Expires: Mon, 05 Sep 2022 08:17:43 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            POST / HTTP/1.1 
Host: r3.o.lencr.org
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/ocsp-request
Content-Length: 85
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

                                         
                                         23.36.76.226
HTTP/1.1 200 OK
Content-Type: application/ocsp-response
                                        
Server: nginx
Content-Length: 503
ETag: "D89F2AE4E43B80B80CFCAFD44B1753893724472172D3E016EF8CCDA7B3D5AE0D"
Last-Modified: Mon, 05 Sep 2022 01:00:00 UTC
Cache-Control: public, no-transform, must-revalidate, max-age=9141
Expires: Mon, 05 Sep 2022 08:17:43 GMT
Date: Mon, 05 Sep 2022 05:45:22 GMT
Connection: keep-alive

                                        
                                            GET /ffhhpgmr/kwlrqgszz.js HTTP/1.1 
Host: upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036
Cookie: source=14036; kt_lang=en; _ga=GA1.2.324479761.1662356717; _gid=GA1.2.924131252.1662356717; _gat=1; _gat_UA-31745569-46=1; _ym_uid=1662356718784393520; _ym_d=1662356718
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         104.21.234.100
HTTP/2 200 OK
content-type: application/javascript
                                        
date: Mon, 05 Sep 2022 05:45:22 GMT
last-modified: Mon, 05 Sep 2022 05:00:23 GMT
vary: Accept-Encoding
etag: W/"63158267-5157"
expires: Wed, 05 Oct 2022 05:00:29 GMT
cache-control: public, max-age=31536000
pragma: public
cf-cache-status: HIT
age: 2694
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=77hIqpmcU4WErSJyzzl5gZICdzXcgrEcBCLlCTDr6EcsHvr92%2Fjux9t2RgDTosz1lI9FHNEKaWqUDdISkItt%2BUWFMYBi71L3SVhMwKAMVpuCBHPxP7oNg33RlcoAiA%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 745ca889e813777f-LHR
content-encoding: br
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  ASCII text, with very long lines (18518)
Size:   8610
Md5:    725894953ae4d2ee0c1a93f20ecd4453
Sha1:   ecb2794b9e2c1a84057b81ed57a8e459780ab755
Sha256: 88f0e6de3eb21babe526cf030ae7be8deb4c2cec9e068275b706482492ab9dfa
                                        
                                            GET /ffhhpgmr/hsytyqsh.js HTTP/1.1 
Host: upornia.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://upornia.com/videos/263492/japanese-granny-creamed-by-not-her-grandson-uncensored/?promo=14036
Cookie: source=14036; kt_lang=en; _ga=GA1.2.324479761.1662356717; _gid=GA1.2.924131252.1662356717; _gat=1; _gat_UA-31745569-46=1; _ym_uid=1662356718784393520; _ym_d=1662356718
Sec-Fetch-Dest: script
Sec-Fetch-Mode: no-cors
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         104.21.234.100
HTTP/2 200 OK
content-type: application/javascript
                                        
date: Mon, 05 Sep 2022 05:45:22 GMT
last-modified: Mon, 05 Sep 2022 05:00:23 GMT
vary: Accept-Encoding
etag: W/"63158267-2171b"
expires: Wed, 05 Oct 2022 05:00:29 GMT
cache-control: public, max-age=31536000
pragma: public
cf-cache-status: HIT
age: 2694
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=YPYYlvj5bXWX2TP9C1xkFsJ4mLJEFY4bwO7%2BEE72IY%2Fbu%2Fb6lwjSkwScs59Qhx6FiJYHeLMTJlW14CXwgXlBeq4QkdiG4%2FS1ube5hUWm7kL51YBWvDfNDFGcTxr%2F%2BA%3D%3D"}],"group":"cf-nel","max_age":604800}
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
server: cloudflare
cf-ray: 745ca889d808777f-LHR
content-encoding: br
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
X-Firefox-Spdy: h2


--- Additional Info ---
Magic:  Unicode text, UTF-8 text, with very long lines (36664), with NEL line terminators
Size:   47826
Md5:    c2e72e3a39f293d4edc52e3135c4d068
Sha1:   3467bf538bbee6770f3248bb867dbcf42f066df5
Sha256: 12e22f90b0f3a723999dd40e52254ee320beb7d165324e065fda1479f16afbfd
                                        
                                            GET /banner/in/show/?mid=847297628&pid=0&site=31248&sc=NO&usage_type=DCH&subid=14036&sid=0&cid=0&price=0&is_cpm=0&cpm=0&ecpm=0&crid=&crtid=&tcid=0&out_id=&ver=&ver_c=&refdom=upornia.com&hostname=auc-banner-hz-1&site_id=0&spot_id=31248&utm_source=&utm_medium=&utm_campaign=&utm_content=&expirationTimestamp=0&created_at=0000-00-00&is_native=0&auction_queue=0&pop_winurl=&ip=91.90.42.154&testab=&px_id=0&adblock=0&auction_host=&mm=&yc=&render_type=&campaign_type=&uniq=&exp=&resp_type=default&iabcat=IAB25&min_cpm=0.0036229&placement_type_id=&skin_test=&verify_hash=&score=1&ml=&ttl=&space_id=31248&banner_width=300&banner_height=250&accel=0&gyr=0&iabcat=IAB25&url=https%3A%2F%2Fbtds.zog.link%2Fin%2F912%2F%3Fsid%3D31248%26source%3D14036%26idzone%3D1500766%26w%3D300%26h%3D250%26mo%3D%26ve%3D%26site_id%3D31248%26utm1%3D%26utm2%3D%26utm3%3D%26utm4%3D%26ad_tags%3DStraight%252CJapanese%26spot_id%3D31248%26p%3Dhttps%253A%252F%252Fupornia.com%252Fvideos%252F263492%252Fjapanese-granny-creamed-by-not-her-grandson-uncensored%252F%253Fpromo%253D14036%26katds_labels%3D%26btype%3D0%26score%3D1&pr=&bid_crid=&bid_cid=&is_iframe=0&ad_tags=Straight%2CJapanese&stratagem= HTTP/1.1 
Host: rtbrennab.com
                                        
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Referer: https://rtbrennab.com/get/?go=1&data=eyJpbXAiOlt7InNlY3VyZSI6MSwiZXh0Ijp7ImlkIjoxNDk2LCJzcGFjZWlkIjozMTI0OCwidHlwZSI6InBvcCIsImlkem9uZSI6MTUwMDc2NiwiYWRfdGFncyI6IlN0cmFpZ2h0JTJDSmFwYW5lc2UiLCJsYWJlbHMiOiIiLCJhbGxvd2VkX2xhYmVscyI6IiIsInRpdGxlIjoiIiwic3ViaWQiOiIxNDAzNiIsInV0bTEiOiIiLCJ1dG0yIjoiIiwidXRtNCI6IiIsInNwb3RfaWQiOjMxMjQ4LCJtdWx0aXBsZSI6dHJ1ZSwiaXNfaWZyYW1lIjpmYWxzZSwicmVmZG9tYWluIjoiIiwicGwiOjEsInN0cmF0YWdlbSI6bnVsbCwiZ3lyIjowLCJhY2NlbCI6MCwic3NwIjozNzU4fSwiYmFubmVyIjp7InciOjMwMCwiaCI6MjUwfX1dLCJzaXRlIjp7ImlkIjoiMzEyNDgiLCJjYXQiOlsiSUFCMjUiXSwicGFnZSI6Imh0dHBzOi8vdXBvcm5pYS5jb20vdmlkZW9zLzI2MzQ5Mi9qYXBhbmVzZS1ncmFubnktY3JlYW1lZC1ieS1ub3QtaGVyLWdyYW5kc29uLXVuY2Vuc29yZWQvP3Byb21vPTE0MDM2In0sImRldmljZSI6eyJ3IjoxMjgwLCJoIjoxMDI0fSwidXNlciI6eyJpZCI6IjllNDk0N2YzNTc1MTQ2NTQxMWZkMWE0ZjVjMzU4Yzc4In0sImV4dCI6eyJkdCI6MTY2MjM1NjcxODE2M319
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: iframe
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
TE: trailers

                                         
                                         116.202.60.158
HTTP/2 302 Found
                                        
server: nginx/1.18.0
date: Mon, 05 Sep 2022 05:45:22 GMT
content-length: 0
vary: Origin
cache-control: no-transform, no-cache, no-store, must-revalidate
pragma: no-cache
access-control-allow-origin: *
access-control-allow-headers: Content-Type
access-control-allow-methods: *
location: https://btds.zog.link/in/912/?sid=31248&source=14036&idzone=1500766&w=300&h=250&mo=&ve=&site_id=31248&utm1=&utm2=&utm3=&utm4=&ad_tags=Straight%2CJapanese&spot_id=31248&