/** Copyright (C) 2020-2026 Kedron Holdings LLC, All Rights Reserved. This file is part of Reactor.
 *  For info and license terms please see https://reactor.toggledbits.com/
 *  ------------------------------------------------------------------------------
*/
const a50_0x2bcae5 = a50_0x2d9a;
function a50_0x2d9a(_0x5686b8, _0x3a7267) {
    _0x5686b8 = _0x5686b8 - 0xcb;
    const _0x1cd4f6 = a50_0x1cd4();
    let _0x2d9ae0 = _0x1cd4f6[_0x5686b8];
    return _0x2d9ae0;
}
function a50_0x1cd4() {
    const _0x11c88d = [
        'hasDataObject',
        '7zpAlpp',
        'removeDataObject',
        '1741620iRQYNN',
        '36376Vnlixv',
        '16NWsPgi',
        'exports',
        'toString',
        '300990WLdnaW',
        '290UgFAhE',
        '3918GvnQtD',
        'close',
        'log',
        '280llPsve',
        '270yJGmXQ',
        '552072AkReNT',
        'saveDataObject',
        'sync',
        'getLogger',
        '189MBSKVC',
        'Required\x20subclass\x20method\x20not\x20implemented',
        'getDataObject',
        './Logger.js',
        '47927QRbhGI'
    ];
    a50_0x1cd4 = function () {
        return _0x11c88d;
    };
    return a50_0x1cd4();
}
(function (_0xa53743, _0x36a88e) {
    const _0x12b284 = a50_0x2d9a, _0x1232c9 = _0xa53743();
    while (!![]) {
        try {
            const _0x1c8036 = parseInt(_0x12b284(0xd5)) / 0x1 * (-parseInt(_0x12b284(0xd4)) / 0x2) + parseInt(_0x12b284(0xd1)) / 0x3 * (-parseInt(_0x12b284(0xcc)) / 0x4) + parseInt(_0x12b284(0xcf)) / 0x5 + -parseInt(_0x12b284(0xd6)) / 0x6 * (parseInt(_0x12b284(0xe0)) / 0x7) + parseInt(_0x12b284(0xcb)) / 0x8 * (-parseInt(_0x12b284(0xda)) / 0x9) + parseInt(_0x12b284(0xd0)) / 0xa * (parseInt(_0x12b284(0xde)) / 0xb) + parseInt(_0x12b284(0xe2)) / 0xc;
            if (_0x1c8036 === _0x36a88e)
                break;
            else
                _0x1232c9['push'](_0x1232c9['shift']());
        } catch (_0x45bd10) {
            _0x1232c9['push'](_0x1232c9['shift']());
        }
    }
}(a50_0x1cd4, 0x18b2b));
const version = 0x6235, Logger = require(a50_0x2bcae5(0xdd));
class Strategy {
    constructor() {
        const _0x138b10 = a50_0x2bcae5;
        this[_0x138b10(0xd3)] = Logger[_0x138b10(0xd9)](this);
    }
    [a50_0x2bcae5(0xce)]() {
        return '[' + this['constructor']['name'] + ']';
    }
    [a50_0x2bcae5(0xdc)](_0x34b712) {
        throw new Error('Required\x20subclass\x20method\x20not\x20implemented');
    }
    [a50_0x2bcae5(0xd7)](_0x1d3d8f, _0x300712, _0x36d614) {
        const _0x26ce14 = a50_0x2bcae5;
        throw new Error(_0x26ce14(0xdb));
    }
    [a50_0x2bcae5(0xe1)](_0xf7087f) {
        const _0x106e91 = a50_0x2bcae5;
        throw new Error(_0x106e91(0xdb));
    }
    ['enumDataObjects']() {
        const _0x56ca5c = a50_0x2bcae5;
        throw new Error(_0x56ca5c(0xdb));
    }
    [a50_0x2bcae5(0xdf)](_0x3d2fe8) {
        const _0x2f96d3 = a50_0x2bcae5;
        return undefined !== this[_0x2f96d3(0xdc)](_0x3d2fe8);
    }
    [a50_0x2bcae5(0xd8)]() {
    }
    [a50_0x2bcae5(0xd2)]() {
        this['sync']();
    }
}
module[a50_0x2bcae5(0xcd)] = Strategy;