var v_saf;
!function () {
    var n = Function.toString, t = [], i = [], o = [].indexOf.bind(t), e = [].push.bind(t), r = [].push.bind(i);

    function u(n, t, nn) {
        tt = ''
        if (nn) {
            tt = ' ' + nn
        }
        return -1 == o(n) && (e(n), r(`function${tt} ${t || n.name || ""}() { [native code] }`)), n
    }

    Object.defineProperty(Function.prototype, "toString", {
        enumerable: !1,
        configurable: !0,
        writable: !0,
        value: function () {
            let res = "function" == typeof this && i[o(this)] || n.call(this)
            // print('toString', arguments, '|||', 'res', res)

            return res;
        }
    }), u(Function.prototype.toString, "toString"), v_saf = u
}();
var bl_33 = function () {
    var bl_3 = arguments[0];
    if (typeof bl_3 === "string") {
        cbb_105 = [];
        var bl_1 = cbb_105;
        while (true) {
            while (true) {
                if (!(bl_2 < bl_3["length"])) {
                    var bl_2 = 0;
                    var bl_0 = 0;
                    while (true) {
                        if (!(bl_0 < bl_1["length"])) {
                            var bl_2 = lb_2;
                            return lb_2 !== null;
                        }
                        var bl_2 = 0 | (bl_2 << 5) - bl_2 + bl_1[bl_0];
                        var bl_0 = Number(bl_0) + 1;
                    }
                }
                if (!(1 === bl_3["length"] - bl_2)) {
                    break;
                }
                cbb_106 = Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(bl_3["charCodeAt"], bl_3, [bl_2]);
                cbb_107 = Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(bl_1["push"], bl_1, [cbb_106 << 16]);
                var bl_2 = bl_2 + 2;
            }
            cbb_108 = Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(bl_3["charCodeAt"], bl_3, [bl_2]);
            cbb_109 = Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(bl_3["charCodeAt"], bl_3, [bl_2 + 1]);
            cbb_110 = Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(bl_1["push"], bl_1, [cbb_108 << 16 | cbb_109]);
            var bl_2 = bl_2 + 2;
        }
    }
    cbb_111 = Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(ArrayBuffer["isView"], ArrayBuffer, [bl_3]);
    var bl_2 = bl_3["byteLength"] % 4;
    var bl_1 = new Int32Array(bl_3["buffer"]);
    var bl_2 = 0;
    var bl_0 = 0;
    while (true) {
        if (!(bl_0 < bl_1["length"])) {
            // var bl_2 = lb_2;
            return bl_2;
        }
        bl_2 = 0 | (bl_2 << 5) - bl_2 + bl_1[bl_0];
        var bl_0 = Number(bl_0) + 1;
    }
};

let data = new Uint8Array(90000);
for (let i = 0; i < data.length; i++) {
    data[i] = 11
}
console.log(bl_33(data))


function _inherits(t, e) {
    t.prototype = Object.create(e.prototype, {
        constructor: {value: t, writable: !0, configurable: !0}
    }), e && Object.setPrototypeOf(t, e)
}
class Document {

}
Object.defineProperties(Document.prototype, {


    createElement: {
        value:function (){},
        configurable: true,
        enumerable: true,
        writable: true
    },

})
document  = {

}
delete Document.prototype.createElement.__proto__
Object.setPrototypeOf(Document.prototype.createElement, null);
// Object.defineProperty(Document.prototype.createElement, 'prototype',undefined)
HTMLDocument = v_saf(function HTMLDocument() {
    if (!v_new_toggle) {
        throw TypeError("Illegal constructor")
    }
    ;Object.defineProperty(this, 'location', {
        get() {
            return location
        }
    })
});
_inherits(HTMLDocument, Document)
document.__proto__  = HTMLDocument.prototype
 tt1 = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(document)), 'createElement').value
Object.setPrototypeOf(tt1, null);
delete tt1.__proto__
delete tt1.prototype

t =  Object["call"]["bind"](Object["bind"], Object["call"])(Object["apply"])(Function["prototype"]["call"]["bind"], Function["prototype"]["call"], [Object["prototype"]["hasOwnProperty"]]);

console.log(t(tt1,'prototype'))


CustomEvent = function() {
    this.initCustomEvent = function (type, canBubble, cancelable, detail) {
        this.type = type
        this.detail = detail
        return {type, canBubble, cancelable, detail}
    }
}
Object.defineProperties(CustomEvent, {
    "isTrusted": {
        get() {
            return true
        }
    },
    type: {value: ''},
    detail: {
        get() {
            return this.d
        },

    },
    initCustomEvent: function (type, canBubble, cancelable, detail) {
        this.type = type
        this.detail = detail
        return {type, canBubble, cancelable, detail}
    }
})

let a = new CustomEvent()

console.log(a)
console.log(a.initCustomEvent)

console.log(Object.getOwnPropertyNames(CustomEvent))