from js2py.pyjs import *
# setting scope
var = Scope( JS_BUILTINS )
set_global_object(var)

# Code follows:
var.registers(['_typeof', 'crypto_js', 'getFromGlobals'])
@Js
def PyJsHoisted_getFromGlobals_(name, this, arguments, var=var):
    var = Scope({'name':name, 'this':this, 'arguments':arguments}, var)
    var.registers(['name'])
    if var.get('Object').get('prototype').callprop('hasOwnProperty', Js('_fake_exports')).neg():
        PyJsTempException = JsToPyException(var.get('Error')((Js('Could not find any value named ')+var.get('name'))))
        raise PyJsTempException
    if var.get('Object').get('prototype').get('_fake_exports').callprop('hasOwnProperty', var.get('name')):
        return var.get('Object').get('prototype').get('_fake_exports').get(var.get('name'))
    else:
        PyJsTempException = JsToPyException(var.get('Error')((Js('Could not find any value named ')+var.get('name'))))
        raise PyJsTempException
PyJsHoisted_getFromGlobals_.func_name = 'getFromGlobals'
var.put('getFromGlobals', PyJsHoisted_getFromGlobals_)
Js('use strict')
@Js
def PyJs_anonymous_0_(obj, this, arguments, var=var):
    var = Scope({'obj':obj, 'this':this, 'arguments':arguments}, var)
    var.registers(['obj'])
    return var.get('obj',throw=False).typeof()
PyJs_anonymous_0_._set_name('anonymous')
@Js
def PyJs_anonymous_1_(obj, this, arguments, var=var):
    var = Scope({'obj':obj, 'this':this, 'arguments':arguments}, var)
    var.registers(['obj'])
    return (Js('symbol') if (((var.get('obj') and PyJsStrictEq(var.get('Symbol',throw=False).typeof(),Js('function'))) and PyJsStrictEq(var.get('obj').get('constructor'),var.get('Symbol'))) and PyJsStrictNeq(var.get('obj'),var.get('Symbol').get('prototype'))) else var.get('obj',throw=False).typeof())
PyJs_anonymous_1_._set_name('anonymous')
var.put('_typeof', (PyJs_anonymous_0_ if (PyJsStrictEq(var.get('Symbol',throw=False).typeof(),Js('function')) and PyJsStrictEq(var.get('Symbol').get('iterator').typeof(),Js('symbol'))) else PyJs_anonymous_1_))
@Js
def PyJs_anonymous_3_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_4_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_5_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['SUB_MIX_3', 'SUB_MIX_2', 'INV_SUB_MIX_0', 'C_algo', 'INV_SUB_MIX_2', 'INV_SUB_MIX_3', 'RCON', 'SUB_MIX_1', 'INV_SUB_MIX_1', 'AES', 'BlockCipher', 'C_lib', 'C', 'SUB_MIX_0', 'INV_SBOX', 'SBOX'])
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('BlockCipher', var.get('C_lib').get('BlockCipher'))
            var.put('C_algo', var.get('C').get('algo'))
            var.put('SBOX', Js([]))
            var.put('INV_SBOX', Js([]))
            var.put('SUB_MIX_0', Js([]))
            var.put('SUB_MIX_1', Js([]))
            var.put('SUB_MIX_2', Js([]))
            var.put('SUB_MIX_3', Js([]))
            var.put('INV_SUB_MIX_0', Js([]))
            var.put('INV_SUB_MIX_1', Js([]))
            var.put('INV_SUB_MIX_2', Js([]))
            var.put('INV_SUB_MIX_3', Js([]))
            @Js
            def PyJs_anonymous_6_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['x', 'xi', 'x2', 'x4', 'i', 'x8', 'sx', 't', 'd'])
                var.put('d', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(256.0)):
                    try:
                        if (var.get('i')<Js(128.0)):
                            var.get('d').put(var.get('i'), (var.get('i')<<Js(1.0)))
                        else:
                            var.get('d').put(var.get('i'), ((var.get('i')<<Js(1.0))^Js(283)))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.put('x', Js(0.0))
                var.put('xi', Js(0.0))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(256.0)):
                    try:
                        var.put('sx', ((((var.get('xi')^(var.get('xi')<<Js(1.0)))^(var.get('xi')<<Js(2.0)))^(var.get('xi')<<Js(3.0)))^(var.get('xi')<<Js(4.0))))
                        var.put('sx', ((PyJsBshift(var.get('sx'),Js(8.0))^(var.get('sx')&Js(255)))^Js(99)))
                        var.get('SBOX').put(var.get('x'), var.get('sx'))
                        var.get('INV_SBOX').put(var.get('sx'), var.get('x'))
                        var.put('x2', var.get('d').get(var.get('x')))
                        var.put('x4', var.get('d').get(var.get('x2')))
                        var.put('x8', var.get('d').get(var.get('x4')))
                        var.put('t', ((var.get('d').get(var.get('sx'))*Js(257))^(var.get('sx')*Js(16843008))))
                        var.get('SUB_MIX_0').put(var.get('x'), ((var.get('t')<<Js(24.0))|PyJsBshift(var.get('t'),Js(8.0))))
                        var.get('SUB_MIX_1').put(var.get('x'), ((var.get('t')<<Js(16.0))|PyJsBshift(var.get('t'),Js(16.0))))
                        var.get('SUB_MIX_2').put(var.get('x'), ((var.get('t')<<Js(8.0))|PyJsBshift(var.get('t'),Js(24.0))))
                        var.get('SUB_MIX_3').put(var.get('x'), var.get('t'))
                        var.put('t', ((((var.get('x8')*Js(16843009))^(var.get('x4')*Js(65537)))^(var.get('x2')*Js(257)))^(var.get('x')*Js(16843008))))
                        var.get('INV_SUB_MIX_0').put(var.get('sx'), ((var.get('t')<<Js(24.0))|PyJsBshift(var.get('t'),Js(8.0))))
                        var.get('INV_SUB_MIX_1').put(var.get('sx'), ((var.get('t')<<Js(16.0))|PyJsBshift(var.get('t'),Js(16.0))))
                        var.get('INV_SUB_MIX_2').put(var.get('sx'), ((var.get('t')<<Js(8.0))|PyJsBshift(var.get('t'),Js(24.0))))
                        var.get('INV_SUB_MIX_3').put(var.get('sx'), var.get('t'))
                        if var.get('x').neg():
                            var.put('x', var.put('xi', Js(1.0)))
                        else:
                            var.put('x', (var.get('x2')^var.get('d').get(var.get('d').get(var.get('d').get((var.get('x8')^var.get('x2')))))))
                            var.put('xi', var.get('d').get(var.get('d').get(var.get('xi'))), '^')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJs_anonymous_6_._set_name('anonymous')
            PyJs_anonymous_6_()
            var.put('RCON', Js([Js(0), Js(1), Js(2), Js(4), Js(8), Js(16), Js(32), Js(64), Js(128), Js(27), Js(54)]))
            @Js
            def PyJs__doReset_8_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_8_}, var)
                var.registers(['keySchedule', 'keySize', 'invKeySchedule', 'ksRow', 'nRounds', 'ksRows', 'keyWords', 't', 'invKsRow', 'key'])
                if (var.get(u"this").get('_nRounds') and PyJsStrictEq(var.get(u"this").get('_keyPriorReset'),var.get(u"this").get('_key'))):
                    return var.get('undefined')
                var.put('key', var.get(u"this").put('_keyPriorReset', var.get(u"this").get('_key')))
                var.put('keyWords', var.get('key').get('words'))
                var.put('keySize', (var.get('key').get('sigBytes')/Js(4.0)))
                var.put('nRounds', var.get(u"this").put('_nRounds', (var.get('keySize')+Js(6.0))))
                var.put('ksRows', ((var.get('nRounds')+Js(1.0))*Js(4.0)))
                var.put('keySchedule', var.get(u"this").put('_keySchedule', Js([])))
                #for JS loop
                var.put('ksRow', Js(0.0))
                while (var.get('ksRow')<var.get('ksRows')):
                    try:
                        if (var.get('ksRow')<var.get('keySize')):
                            var.get('keySchedule').put(var.get('ksRow'), var.get('keyWords').get(var.get('ksRow')))
                        else:
                            var.put('t', var.get('keySchedule').get((var.get('ksRow')-Js(1.0))))
                            if (var.get('ksRow')%var.get('keySize')).neg():
                                var.put('t', ((var.get('t')<<Js(8.0))|PyJsBshift(var.get('t'),Js(24.0))))
                                var.put('t', ((((var.get('SBOX').get(PyJsBshift(var.get('t'),Js(24.0)))<<Js(24.0))|(var.get('SBOX').get((PyJsBshift(var.get('t'),Js(16.0))&Js(255)))<<Js(16.0)))|(var.get('SBOX').get((PyJsBshift(var.get('t'),Js(8.0))&Js(255)))<<Js(8.0)))|var.get('SBOX').get((var.get('t')&Js(255)))))
                                var.put('t', (var.get('RCON').get(((var.get('ksRow')/var.get('keySize'))|Js(0.0)))<<Js(24.0)), '^')
                            else:
                                if ((var.get('keySize')>Js(6.0)) and ((var.get('ksRow')%var.get('keySize'))==Js(4.0))):
                                    var.put('t', ((((var.get('SBOX').get(PyJsBshift(var.get('t'),Js(24.0)))<<Js(24.0))|(var.get('SBOX').get((PyJsBshift(var.get('t'),Js(16.0))&Js(255)))<<Js(16.0)))|(var.get('SBOX').get((PyJsBshift(var.get('t'),Js(8.0))&Js(255)))<<Js(8.0)))|var.get('SBOX').get((var.get('t')&Js(255)))))
                            var.get('keySchedule').put(var.get('ksRow'), (var.get('keySchedule').get((var.get('ksRow')-var.get('keySize')))^var.get('t')))
                    finally:
                            (var.put('ksRow',Js(var.get('ksRow').to_number())+Js(1))-Js(1))
                var.put('invKeySchedule', var.get(u"this").put('_invKeySchedule', Js([])))
                #for JS loop
                var.put('invKsRow', Js(0.0))
                while (var.get('invKsRow')<var.get('ksRows')):
                    try:
                        var.put('ksRow', (var.get('ksRows')-var.get('invKsRow')))
                        if (var.get('invKsRow')%Js(4.0)):
                            var.put('t', var.get('keySchedule').get(var.get('ksRow')))
                        else:
                            var.put('t', var.get('keySchedule').get((var.get('ksRow')-Js(4.0))))
                        if ((var.get('invKsRow')<Js(4.0)) or (var.get('ksRow')<=Js(4.0))):
                            var.get('invKeySchedule').put(var.get('invKsRow'), var.get('t'))
                        else:
                            def PyJs_LONG_9_(var=var):
                                return var.get('invKeySchedule').put(var.get('invKsRow'), (((var.get('INV_SUB_MIX_0').get(var.get('SBOX').get(PyJsBshift(var.get('t'),Js(24.0))))^var.get('INV_SUB_MIX_1').get(var.get('SBOX').get((PyJsBshift(var.get('t'),Js(16.0))&Js(255)))))^var.get('INV_SUB_MIX_2').get(var.get('SBOX').get((PyJsBshift(var.get('t'),Js(8.0))&Js(255)))))^var.get('INV_SUB_MIX_3').get(var.get('SBOX').get((var.get('t')&Js(255))))))
                            PyJs_LONG_9_()
                    finally:
                            (var.put('invKsRow',Js(var.get('invKsRow').to_number())+Js(1))-Js(1))
            PyJs__doReset_8_._set_name('_doReset')
            @Js
            def PyJs_encryptBlock_10_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, 'encryptBlock':PyJs_encryptBlock_10_}, var)
                var.registers(['M', 'offset'])
                var.get(u"this").callprop('_doCryptBlock', var.get('M'), var.get('offset'), var.get(u"this").get('_keySchedule'), var.get('SUB_MIX_0'), var.get('SUB_MIX_1'), var.get('SUB_MIX_2'), var.get('SUB_MIX_3'), var.get('SBOX'))
            PyJs_encryptBlock_10_._set_name('encryptBlock')
            @Js
            def PyJs_decryptBlock_11_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, 'decryptBlock':PyJs_decryptBlock_11_}, var)
                var.registers(['M', 't', 'offset'])
                var.put('t', var.get('M').get((var.get('offset')+Js(1.0))))
                var.get('M').put((var.get('offset')+Js(1.0)), var.get('M').get((var.get('offset')+Js(3.0))))
                var.get('M').put((var.get('offset')+Js(3.0)), var.get('t'))
                var.get(u"this").callprop('_doCryptBlock', var.get('M'), var.get('offset'), var.get(u"this").get('_invKeySchedule'), var.get('INV_SUB_MIX_0'), var.get('INV_SUB_MIX_1'), var.get('INV_SUB_MIX_2'), var.get('INV_SUB_MIX_3'), var.get('INV_SBOX'))
                var.put('t', var.get('M').get((var.get('offset')+Js(1.0))))
                var.get('M').put((var.get('offset')+Js(1.0)), var.get('M').get((var.get('offset')+Js(3.0))))
                var.get('M').put((var.get('offset')+Js(3.0)), var.get('t'))
            PyJs_decryptBlock_11_._set_name('decryptBlock')
            @Js
            def PyJs__doCryptBlock_12_(M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'keySchedule':keySchedule, 'SUB_MIX_0':SUB_MIX_0, 'SUB_MIX_1':SUB_MIX_1, 'SUB_MIX_2':SUB_MIX_2, 'SUB_MIX_3':SUB_MIX_3, 'SBOX':SBOX, 'this':this, 'arguments':arguments, '_doCryptBlock':PyJs__doCryptBlock_12_}, var)
                var.registers(['SUB_MIX_3', 'keySchedule', 'SUB_MIX_1', 's2', 'ksRow', 's3', 'SUB_MIX_2', 'M', 't2', 't3', 's0', 'round', 'nRounds', 't1', 's1', 'offset', 't0', 'SUB_MIX_0', 'SBOX'])
                var.put('nRounds', var.get(u"this").get('_nRounds'))
                var.put('s0', (var.get('M').get(var.get('offset'))^var.get('keySchedule').get('0')))
                var.put('s1', (var.get('M').get((var.get('offset')+Js(1.0)))^var.get('keySchedule').get('1')))
                var.put('s2', (var.get('M').get((var.get('offset')+Js(2.0)))^var.get('keySchedule').get('2')))
                var.put('s3', (var.get('M').get((var.get('offset')+Js(3.0)))^var.get('keySchedule').get('3')))
                var.put('ksRow', Js(4.0))
                #for JS loop
                var.put('round', Js(1.0))
                while (var.get('round')<var.get('nRounds')):
                    try:
                        var.put('t0', ((((var.get('SUB_MIX_0').get(PyJsBshift(var.get('s0'),Js(24.0)))^var.get('SUB_MIX_1').get((PyJsBshift(var.get('s1'),Js(16.0))&Js(255))))^var.get('SUB_MIX_2').get((PyJsBshift(var.get('s2'),Js(8.0))&Js(255))))^var.get('SUB_MIX_3').get((var.get('s3')&Js(255))))^var.get('keySchedule').get((var.put('ksRow',Js(var.get('ksRow').to_number())+Js(1))-Js(1)))))
                        var.put('t1', ((((var.get('SUB_MIX_0').get(PyJsBshift(var.get('s1'),Js(24.0)))^var.get('SUB_MIX_1').get((PyJsBshift(var.get('s2'),Js(16.0))&Js(255))))^var.get('SUB_MIX_2').get((PyJsBshift(var.get('s3'),Js(8.0))&Js(255))))^var.get('SUB_MIX_3').get((var.get('s0')&Js(255))))^var.get('keySchedule').get((var.put('ksRow',Js(var.get('ksRow').to_number())+Js(1))-Js(1)))))
                        var.put('t2', ((((var.get('SUB_MIX_0').get(PyJsBshift(var.get('s2'),Js(24.0)))^var.get('SUB_MIX_1').get((PyJsBshift(var.get('s3'),Js(16.0))&Js(255))))^var.get('SUB_MIX_2').get((PyJsBshift(var.get('s0'),Js(8.0))&Js(255))))^var.get('SUB_MIX_3').get((var.get('s1')&Js(255))))^var.get('keySchedule').get((var.put('ksRow',Js(var.get('ksRow').to_number())+Js(1))-Js(1)))))
                        var.put('t3', ((((var.get('SUB_MIX_0').get(PyJsBshift(var.get('s3'),Js(24.0)))^var.get('SUB_MIX_1').get((PyJsBshift(var.get('s0'),Js(16.0))&Js(255))))^var.get('SUB_MIX_2').get((PyJsBshift(var.get('s1'),Js(8.0))&Js(255))))^var.get('SUB_MIX_3').get((var.get('s2')&Js(255))))^var.get('keySchedule').get((var.put('ksRow',Js(var.get('ksRow').to_number())+Js(1))-Js(1)))))
                        var.put('s0', var.get('t0'))
                        var.put('s1', var.get('t1'))
                        var.put('s2', var.get('t2'))
                        var.put('s3', var.get('t3'))
                    finally:
                            (var.put('round',Js(var.get('round').to_number())+Js(1))-Js(1))
                var.put('t0', (((((var.get('SBOX').get(PyJsBshift(var.get('s0'),Js(24.0)))<<Js(24.0))|(var.get('SBOX').get((PyJsBshift(var.get('s1'),Js(16.0))&Js(255)))<<Js(16.0)))|(var.get('SBOX').get((PyJsBshift(var.get('s2'),Js(8.0))&Js(255)))<<Js(8.0)))|var.get('SBOX').get((var.get('s3')&Js(255))))^var.get('keySchedule').get((var.put('ksRow',Js(var.get('ksRow').to_number())+Js(1))-Js(1)))))
                var.put('t1', (((((var.get('SBOX').get(PyJsBshift(var.get('s1'),Js(24.0)))<<Js(24.0))|(var.get('SBOX').get((PyJsBshift(var.get('s2'),Js(16.0))&Js(255)))<<Js(16.0)))|(var.get('SBOX').get((PyJsBshift(var.get('s3'),Js(8.0))&Js(255)))<<Js(8.0)))|var.get('SBOX').get((var.get('s0')&Js(255))))^var.get('keySchedule').get((var.put('ksRow',Js(var.get('ksRow').to_number())+Js(1))-Js(1)))))
                var.put('t2', (((((var.get('SBOX').get(PyJsBshift(var.get('s2'),Js(24.0)))<<Js(24.0))|(var.get('SBOX').get((PyJsBshift(var.get('s3'),Js(16.0))&Js(255)))<<Js(16.0)))|(var.get('SBOX').get((PyJsBshift(var.get('s0'),Js(8.0))&Js(255)))<<Js(8.0)))|var.get('SBOX').get((var.get('s1')&Js(255))))^var.get('keySchedule').get((var.put('ksRow',Js(var.get('ksRow').to_number())+Js(1))-Js(1)))))
                var.put('t3', (((((var.get('SBOX').get(PyJsBshift(var.get('s3'),Js(24.0)))<<Js(24.0))|(var.get('SBOX').get((PyJsBshift(var.get('s0'),Js(16.0))&Js(255)))<<Js(16.0)))|(var.get('SBOX').get((PyJsBshift(var.get('s1'),Js(8.0))&Js(255)))<<Js(8.0)))|var.get('SBOX').get((var.get('s2')&Js(255))))^var.get('keySchedule').get((var.put('ksRow',Js(var.get('ksRow').to_number())+Js(1))-Js(1)))))
                var.get('M').put(var.get('offset'), var.get('t0'))
                var.get('M').put((var.get('offset')+Js(1.0)), var.get('t1'))
                var.get('M').put((var.get('offset')+Js(2.0)), var.get('t2'))
                var.get('M').put((var.get('offset')+Js(3.0)), var.get('t3'))
            PyJs__doCryptBlock_12_._set_name('_doCryptBlock')
            PyJs_Object_7_ = Js({'_doReset':PyJs__doReset_8_,'encryptBlock':PyJs_encryptBlock_10_,'decryptBlock':PyJs_decryptBlock_11_,'_doCryptBlock':PyJs__doCryptBlock_12_,'keySize':(Js(256.0)/Js(32.0))})
            var.put('AES', var.get('C_algo').put('AES', var.get('BlockCipher').callprop('extend', PyJs_Object_7_)))
            var.get('C').put('AES', var.get('BlockCipher').callprop('_createHelper', var.get('AES')))
        PyJs_anonymous_5_._set_name('anonymous')
        PyJs_anonymous_5_()
        return var.get('CryptoJS').get('AES')
    PyJs_anonymous_4_._set_name('anonymous')
    @Js
    def PyJs_anonymous_13_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./enc-base64')), var.get('require')(Js('./md5')), var.get('require')(Js('./evpkdf')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./enc-base64'), Js('./md5'), Js('./evpkdf'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_13_._set_name('anonymous')
    PyJs_anonymous_13_(var.get(u"this"), PyJs_anonymous_4_)
PyJs_anonymous_3_._set_name('anonymous')
PyJs_Object_14_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0),'./enc-base64':Js(4.0),'./evpkdf':Js(6.0),'./md5':Js(11.0)})
@Js
def PyJs_anonymous_15_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_16_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_17_(undefined, this, arguments, var=var):
            var = Scope({'undefined':undefined, 'this':this, 'arguments':arguments}, var)
            var.registers(['C_enc', 'PasswordBasedCipher', 'CipherParams', 'Pkcs7', 'C_format', 'StreamCipher', 'CBC', 'BlockCipher', 'WordArray', 'C_pad', 'Utf8', 'OpenSSLFormatter', 'C_mode', 'C_algo', 'undefined', 'C', 'Cipher', 'BlockCipherMode', 'Base64', 'SerializableCipher', 'C_kdf', 'OpenSSLKdf', 'BufferedBlockAlgorithm', 'C_lib', 'Base', 'EvpKDF'])
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('Base', var.get('C_lib').get('Base'))
            var.put('WordArray', var.get('C_lib').get('WordArray'))
            var.put('BufferedBlockAlgorithm', var.get('C_lib').get('BufferedBlockAlgorithm'))
            var.put('C_enc', var.get('C').get('enc'))
            var.put('Utf8', var.get('C_enc').get('Utf8'))
            var.put('Base64', var.get('C_enc').get('Base64'))
            var.put('C_algo', var.get('C').get('algo'))
            var.put('EvpKDF', var.get('C_algo').get('EvpKDF'))
            @Js
            def PyJs_createEncryptor_19_(key, cfg, this, arguments, var=var):
                var = Scope({'key':key, 'cfg':cfg, 'this':this, 'arguments':arguments, 'createEncryptor':PyJs_createEncryptor_19_}, var)
                var.registers(['cfg', 'key'])
                return var.get(u"this").callprop('create', var.get(u"this").get('_ENC_XFORM_MODE'), var.get('key'), var.get('cfg'))
            PyJs_createEncryptor_19_._set_name('createEncryptor')
            @Js
            def PyJs_createDecryptor_20_(key, cfg, this, arguments, var=var):
                var = Scope({'key':key, 'cfg':cfg, 'this':this, 'arguments':arguments, 'createDecryptor':PyJs_createDecryptor_20_}, var)
                var.registers(['cfg', 'key'])
                return var.get(u"this").callprop('create', var.get(u"this").get('_DEC_XFORM_MODE'), var.get('key'), var.get('cfg'))
            PyJs_createDecryptor_20_._set_name('createDecryptor')
            @Js
            def PyJs_init_21_(xformMode, key, cfg, this, arguments, var=var):
                var = Scope({'xformMode':xformMode, 'key':key, 'cfg':cfg, 'this':this, 'arguments':arguments, 'init':PyJs_init_21_}, var)
                var.registers(['cfg', 'key', 'xformMode'])
                var.get(u"this").put('cfg', var.get(u"this").get('cfg').callprop('extend', var.get('cfg')))
                var.get(u"this").put('_xformMode', var.get('xformMode'))
                var.get(u"this").put('_key', var.get('key'))
                var.get(u"this").callprop('reset')
            PyJs_init_21_._set_name('init')
            @Js
            def PyJs_reset_22_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'reset':PyJs_reset_22_}, var)
                var.registers([])
                var.get('BufferedBlockAlgorithm').get('reset').callprop('call', var.get(u"this"))
                var.get(u"this").callprop('_doReset')
            PyJs_reset_22_._set_name('reset')
            @Js
            def PyJs_process_23_(dataUpdate, this, arguments, var=var):
                var = Scope({'dataUpdate':dataUpdate, 'this':this, 'arguments':arguments, 'process':PyJs_process_23_}, var)
                var.registers(['dataUpdate'])
                var.get(u"this").callprop('_append', var.get('dataUpdate'))
                return var.get(u"this").callprop('_process')
            PyJs_process_23_._set_name('process')
            @Js
            def PyJs_finalize_24_(dataUpdate, this, arguments, var=var):
                var = Scope({'dataUpdate':dataUpdate, 'this':this, 'arguments':arguments, 'finalize':PyJs_finalize_24_}, var)
                var.registers(['dataUpdate', 'finalProcessedData'])
                if var.get('dataUpdate'):
                    var.get(u"this").callprop('_append', var.get('dataUpdate'))
                var.put('finalProcessedData', var.get(u"this").callprop('_doFinalize'))
                return var.get('finalProcessedData')
            PyJs_finalize_24_._set_name('finalize')
            @Js
            def PyJs_anonymous_25_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['selectCipherStrategy'])
                @Js
                def PyJsHoisted_selectCipherStrategy_(key, this, arguments, var=var):
                    var = Scope({'key':key, 'this':this, 'arguments':arguments}, var)
                    var.registers(['key'])
                    if (var.get('key',throw=False).typeof()==Js('string')):
                        return var.get('PasswordBasedCipher')
                    else:
                        return var.get('SerializableCipher')
                PyJsHoisted_selectCipherStrategy_.func_name = 'selectCipherStrategy'
                var.put('selectCipherStrategy', PyJsHoisted_selectCipherStrategy_)
                pass
                @Js
                def PyJs_anonymous_26_(cipher, this, arguments, var=var):
                    var = Scope({'cipher':cipher, 'this':this, 'arguments':arguments}, var)
                    var.registers(['cipher'])
                    @Js
                    def PyJs_encrypt_28_(message, key, cfg, this, arguments, var=var):
                        var = Scope({'message':message, 'key':key, 'cfg':cfg, 'this':this, 'arguments':arguments, 'encrypt':PyJs_encrypt_28_}, var)
                        var.registers(['message', 'cfg', 'key'])
                        return var.get('selectCipherStrategy')(var.get('key')).callprop('encrypt', var.get('cipher'), var.get('message'), var.get('key'), var.get('cfg'))
                    PyJs_encrypt_28_._set_name('encrypt')
                    @Js
                    def PyJs_decrypt_29_(ciphertext, key, cfg, this, arguments, var=var):
                        var = Scope({'ciphertext':ciphertext, 'key':key, 'cfg':cfg, 'this':this, 'arguments':arguments, 'decrypt':PyJs_decrypt_29_}, var)
                        var.registers(['ciphertext', 'cfg', 'key'])
                        return var.get('selectCipherStrategy')(var.get('key')).callprop('decrypt', var.get('cipher'), var.get('ciphertext'), var.get('key'), var.get('cfg'))
                    PyJs_decrypt_29_._set_name('decrypt')
                    PyJs_Object_27_ = Js({'encrypt':PyJs_encrypt_28_,'decrypt':PyJs_decrypt_29_})
                    return PyJs_Object_27_
                PyJs_anonymous_26_._set_name('anonymous')
                return PyJs_anonymous_26_
            PyJs_anonymous_25_._set_name('anonymous')
            PyJs_Object_18_ = Js({'cfg':var.get('Base').callprop('extend'),'createEncryptor':PyJs_createEncryptor_19_,'createDecryptor':PyJs_createDecryptor_20_,'init':PyJs_init_21_,'reset':PyJs_reset_22_,'process':PyJs_process_23_,'finalize':PyJs_finalize_24_,'keySize':(Js(128.0)/Js(32.0)),'ivSize':(Js(128.0)/Js(32.0)),'_ENC_XFORM_MODE':Js(1.0),'_DEC_XFORM_MODE':Js(2.0),'_createHelper':PyJs_anonymous_25_()})
            var.put('Cipher', var.get('C_lib').put('Cipher', var.get('BufferedBlockAlgorithm').callprop('extend', PyJs_Object_18_)))
            @Js
            def PyJs__doFinalize_31_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doFinalize':PyJs__doFinalize_31_}, var)
                var.registers(['finalProcessedBlocks'])
                var.put('finalProcessedBlocks', var.get(u"this").callprop('_process', Js('flush').neg().neg()))
                return var.get('finalProcessedBlocks')
            PyJs__doFinalize_31_._set_name('_doFinalize')
            PyJs_Object_30_ = Js({'_doFinalize':PyJs__doFinalize_31_,'blockSize':Js(1.0)})
            var.put('StreamCipher', var.get('C_lib').put('StreamCipher', var.get('Cipher').callprop('extend', PyJs_Object_30_)))
            PyJs_Object_32_ = Js({})
            var.put('C_mode', var.get('C').put('mode', PyJs_Object_32_))
            @Js
            def PyJs_createEncryptor_34_(cipher, iv, this, arguments, var=var):
                var = Scope({'cipher':cipher, 'iv':iv, 'this':this, 'arguments':arguments, 'createEncryptor':PyJs_createEncryptor_34_}, var)
                var.registers(['cipher', 'iv'])
                return var.get(u"this").get('Encryptor').callprop('create', var.get('cipher'), var.get('iv'))
            PyJs_createEncryptor_34_._set_name('createEncryptor')
            @Js
            def PyJs_createDecryptor_35_(cipher, iv, this, arguments, var=var):
                var = Scope({'cipher':cipher, 'iv':iv, 'this':this, 'arguments':arguments, 'createDecryptor':PyJs_createDecryptor_35_}, var)
                var.registers(['cipher', 'iv'])
                return var.get(u"this").get('Decryptor').callprop('create', var.get('cipher'), var.get('iv'))
            PyJs_createDecryptor_35_._set_name('createDecryptor')
            @Js
            def PyJs_init_36_(cipher, iv, this, arguments, var=var):
                var = Scope({'cipher':cipher, 'iv':iv, 'this':this, 'arguments':arguments, 'init':PyJs_init_36_}, var)
                var.registers(['cipher', 'iv'])
                var.get(u"this").put('_cipher', var.get('cipher'))
                var.get(u"this").put('_iv', var.get('iv'))
            PyJs_init_36_._set_name('init')
            PyJs_Object_33_ = Js({'createEncryptor':PyJs_createEncryptor_34_,'createDecryptor':PyJs_createDecryptor_35_,'init':PyJs_init_36_})
            var.put('BlockCipherMode', var.get('C_lib').put('BlockCipherMode', var.get('Base').callprop('extend', PyJs_Object_33_)))
            @Js
            def PyJs_anonymous_37_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['CBC', 'xorBlock'])
                @Js
                def PyJsHoisted_xorBlock_(words, offset, blockSize, this, arguments, var=var):
                    var = Scope({'words':words, 'offset':offset, 'blockSize':blockSize, 'this':this, 'arguments':arguments}, var)
                    var.registers(['blockSize', 'i', 'words', 'block', 'iv', 'offset'])
                    var.put('iv', var.get(u"this").get('_iv'))
                    if var.get('iv'):
                        var.put('block', var.get('iv'))
                        var.get(u"this").put('_iv', var.get('undefined'))
                    else:
                        var.put('block', var.get(u"this").get('_prevBlock'))
                    #for JS loop
                    var.put('i', Js(0.0))
                    while (var.get('i')<var.get('blockSize')):
                        try:
                            var.get('words').put((var.get('offset')+var.get('i')), var.get('block').get(var.get('i')), '^')
                        finally:
                                (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                PyJsHoisted_xorBlock_.func_name = 'xorBlock'
                var.put('xorBlock', PyJsHoisted_xorBlock_)
                var.put('CBC', var.get('BlockCipherMode').callprop('extend'))
                @Js
                def PyJs_processBlock_39_(words, offset, this, arguments, var=var):
                    var = Scope({'words':words, 'offset':offset, 'this':this, 'arguments':arguments, 'processBlock':PyJs_processBlock_39_}, var)
                    var.registers(['blockSize', 'cipher', 'words', 'offset'])
                    var.put('cipher', var.get(u"this").get('_cipher'))
                    var.put('blockSize', var.get('cipher').get('blockSize'))
                    var.get('xorBlock').callprop('call', var.get(u"this"), var.get('words'), var.get('offset'), var.get('blockSize'))
                    var.get('cipher').callprop('encryptBlock', var.get('words'), var.get('offset'))
                    var.get(u"this").put('_prevBlock', var.get('words').callprop('slice', var.get('offset'), (var.get('offset')+var.get('blockSize'))))
                PyJs_processBlock_39_._set_name('processBlock')
                PyJs_Object_38_ = Js({'processBlock':PyJs_processBlock_39_})
                var.get('CBC').put('Encryptor', var.get('CBC').callprop('extend', PyJs_Object_38_))
                @Js
                def PyJs_processBlock_41_(words, offset, this, arguments, var=var):
                    var = Scope({'words':words, 'offset':offset, 'this':this, 'arguments':arguments, 'processBlock':PyJs_processBlock_41_}, var)
                    var.registers(['thisBlock', 'blockSize', 'words', 'cipher', 'offset'])
                    var.put('cipher', var.get(u"this").get('_cipher'))
                    var.put('blockSize', var.get('cipher').get('blockSize'))
                    var.put('thisBlock', var.get('words').callprop('slice', var.get('offset'), (var.get('offset')+var.get('blockSize'))))
                    var.get('cipher').callprop('decryptBlock', var.get('words'), var.get('offset'))
                    var.get('xorBlock').callprop('call', var.get(u"this"), var.get('words'), var.get('offset'), var.get('blockSize'))
                    var.get(u"this").put('_prevBlock', var.get('thisBlock'))
                PyJs_processBlock_41_._set_name('processBlock')
                PyJs_Object_40_ = Js({'processBlock':PyJs_processBlock_41_})
                var.get('CBC').put('Decryptor', var.get('CBC').callprop('extend', PyJs_Object_40_))
                pass
                return var.get('CBC')
            PyJs_anonymous_37_._set_name('anonymous')
            var.put('CBC', var.get('C_mode').put('CBC', PyJs_anonymous_37_()))
            PyJs_Object_42_ = Js({})
            var.put('C_pad', var.get('C').put('pad', PyJs_Object_42_))
            @Js
            def PyJs_pad_44_(data, blockSize, this, arguments, var=var):
                var = Scope({'data':data, 'blockSize':blockSize, 'this':this, 'arguments':arguments, 'pad':PyJs_pad_44_}, var)
                var.registers(['data', 'blockSize', 'paddingWords', 'i', 'padding', 'nPaddingBytes', 'paddingWord', 'blockSizeBytes'])
                var.put('blockSizeBytes', (var.get('blockSize')*Js(4.0)))
                var.put('nPaddingBytes', (var.get('blockSizeBytes')-(var.get('data').get('sigBytes')%var.get('blockSizeBytes'))))
                var.put('paddingWord', ((((var.get('nPaddingBytes')<<Js(24.0))|(var.get('nPaddingBytes')<<Js(16.0)))|(var.get('nPaddingBytes')<<Js(8.0)))|var.get('nPaddingBytes')))
                var.put('paddingWords', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('nPaddingBytes')):
                    try:
                        var.get('paddingWords').callprop('push', var.get('paddingWord'))
                    finally:
                            var.put('i', Js(4.0), '+')
                var.put('padding', var.get('WordArray').callprop('create', var.get('paddingWords'), var.get('nPaddingBytes')))
                var.get('data').callprop('concat', var.get('padding'))
            PyJs_pad_44_._set_name('pad')
            @Js
            def PyJs_unpad_45_(data, this, arguments, var=var):
                var = Scope({'data':data, 'this':this, 'arguments':arguments, 'unpad':PyJs_unpad_45_}, var)
                var.registers(['data', 'nPaddingBytes'])
                var.put('nPaddingBytes', (var.get('data').get('words').get(PyJsBshift((var.get('data').get('sigBytes')-Js(1.0)),Js(2.0)))&Js(255)))
                var.get('data').put('sigBytes', var.get('nPaddingBytes'), '-')
            PyJs_unpad_45_._set_name('unpad')
            PyJs_Object_43_ = Js({'pad':PyJs_pad_44_,'unpad':PyJs_unpad_45_})
            var.put('Pkcs7', var.get('C_pad').put('Pkcs7', PyJs_Object_43_))
            PyJs_Object_47_ = Js({'mode':var.get('CBC'),'padding':var.get('Pkcs7')})
            @Js
            def PyJs_reset_48_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'reset':PyJs_reset_48_}, var)
                var.registers(['cfg', 'iv', 'modeCreator', 'mode'])
                var.get('Cipher').get('reset').callprop('call', var.get(u"this"))
                var.put('cfg', var.get(u"this").get('cfg'))
                var.put('iv', var.get('cfg').get('iv'))
                var.put('mode', var.get('cfg').get('mode'))
                if (var.get(u"this").get('_xformMode')==var.get(u"this").get('_ENC_XFORM_MODE')):
                    var.put('modeCreator', var.get('mode').get('createEncryptor'))
                else:
                    var.put('modeCreator', var.get('mode').get('createDecryptor'))
                    var.get(u"this").put('_minBufferSize', Js(1.0))
                if (var.get(u"this").get('_mode') and (var.get(u"this").get('_mode').get('__creator')==var.get('modeCreator'))):
                    var.get(u"this").get('_mode').callprop('init', var.get(u"this"), (var.get('iv') and var.get('iv').get('words')))
                else:
                    var.get(u"this").put('_mode', var.get('modeCreator').callprop('call', var.get('mode'), var.get(u"this"), (var.get('iv') and var.get('iv').get('words'))))
                    var.get(u"this").get('_mode').put('__creator', var.get('modeCreator'))
            PyJs_reset_48_._set_name('reset')
            @Js
            def PyJs__doProcessBlock_49_(words, offset, this, arguments, var=var):
                var = Scope({'words':words, 'offset':offset, 'this':this, 'arguments':arguments, '_doProcessBlock':PyJs__doProcessBlock_49_}, var)
                var.registers(['words', 'offset'])
                var.get(u"this").get('_mode').callprop('processBlock', var.get('words'), var.get('offset'))
            PyJs__doProcessBlock_49_._set_name('_doProcessBlock')
            @Js
            def PyJs__doFinalize_50_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doFinalize':PyJs__doFinalize_50_}, var)
                var.registers(['finalProcessedBlocks', 'padding'])
                var.put('padding', var.get(u"this").get('cfg').get('padding'))
                if (var.get(u"this").get('_xformMode')==var.get(u"this").get('_ENC_XFORM_MODE')):
                    var.get('padding').callprop('pad', var.get(u"this").get('_data'), var.get(u"this").get('blockSize'))
                    var.put('finalProcessedBlocks', var.get(u"this").callprop('_process', Js('flush').neg().neg()))
                else:
                    var.put('finalProcessedBlocks', var.get(u"this").callprop('_process', Js('flush').neg().neg()))
                    var.get('padding').callprop('unpad', var.get('finalProcessedBlocks'))
                return var.get('finalProcessedBlocks')
            PyJs__doFinalize_50_._set_name('_doFinalize')
            PyJs_Object_46_ = Js({'cfg':var.get('Cipher').get('cfg').callprop('extend', PyJs_Object_47_),'reset':PyJs_reset_48_,'_doProcessBlock':PyJs__doProcessBlock_49_,'_doFinalize':PyJs__doFinalize_50_,'blockSize':(Js(128.0)/Js(32.0))})
            var.put('BlockCipher', var.get('C_lib').put('BlockCipher', var.get('Cipher').callprop('extend', PyJs_Object_46_)))
            @Js
            def PyJs_init_52_(cipherParams, this, arguments, var=var):
                var = Scope({'cipherParams':cipherParams, 'this':this, 'arguments':arguments, 'init':PyJs_init_52_}, var)
                var.registers(['cipherParams'])
                var.get(u"this").callprop('mixIn', var.get('cipherParams'))
            PyJs_init_52_._set_name('init')
            @Js
            def PyJs_toString_53_(formatter, this, arguments, var=var):
                var = Scope({'formatter':formatter, 'this':this, 'arguments':arguments, 'toString':PyJs_toString_53_}, var)
                var.registers(['formatter'])
                return (var.get('formatter') or var.get(u"this").get('formatter')).callprop('stringify', var.get(u"this"))
            PyJs_toString_53_._set_name('toString')
            PyJs_Object_51_ = Js({'init':PyJs_init_52_,'toString':PyJs_toString_53_})
            var.put('CipherParams', var.get('C_lib').put('CipherParams', var.get('Base').callprop('extend', PyJs_Object_51_)))
            PyJs_Object_54_ = Js({})
            var.put('C_format', var.get('C').put('format', PyJs_Object_54_))
            @Js
            def PyJs_stringify_56_(cipherParams, this, arguments, var=var):
                var = Scope({'cipherParams':cipherParams, 'this':this, 'arguments':arguments, 'stringify':PyJs_stringify_56_}, var)
                var.registers(['ciphertext', 'salt', 'cipherParams', 'wordArray'])
                var.put('ciphertext', var.get('cipherParams').get('ciphertext'))
                var.put('salt', var.get('cipherParams').get('salt'))
                if var.get('salt'):
                    var.put('wordArray', var.get('WordArray').callprop('create', Js([Js(1398893684), Js(1701076831)])).callprop('concat', var.get('salt')).callprop('concat', var.get('ciphertext')))
                else:
                    var.put('wordArray', var.get('ciphertext'))
                return var.get('wordArray').callprop('toString', var.get('Base64'))
            PyJs_stringify_56_._set_name('stringify')
            @Js
            def PyJs_parse_57_(openSSLStr, this, arguments, var=var):
                var = Scope({'openSSLStr':openSSLStr, 'this':this, 'arguments':arguments, 'parse':PyJs_parse_57_}, var)
                var.registers(['ciphertext', 'salt', 'openSSLStr', 'ciphertextWords'])
                var.put('ciphertext', var.get('Base64').callprop('parse', var.get('openSSLStr')))
                var.put('ciphertextWords', var.get('ciphertext').get('words'))
                if ((var.get('ciphertextWords').get('0')==Js(1398893684)) and (var.get('ciphertextWords').get('1')==Js(1701076831))):
                    var.put('salt', var.get('WordArray').callprop('create', var.get('ciphertextWords').callprop('slice', Js(2.0), Js(4.0))))
                    var.get('ciphertextWords').callprop('splice', Js(0.0), Js(4.0))
                    var.get('ciphertext').put('sigBytes', Js(16.0), '-')
                PyJs_Object_58_ = Js({'ciphertext':var.get('ciphertext'),'salt':var.get('salt')})
                return var.get('CipherParams').callprop('create', PyJs_Object_58_)
            PyJs_parse_57_._set_name('parse')
            PyJs_Object_55_ = Js({'stringify':PyJs_stringify_56_,'parse':PyJs_parse_57_})
            var.put('OpenSSLFormatter', var.get('C_format').put('OpenSSL', PyJs_Object_55_))
            PyJs_Object_60_ = Js({'format':var.get('OpenSSLFormatter')})
            @Js
            def PyJs_encrypt_61_(cipher, message, key, cfg, this, arguments, var=var):
                var = Scope({'cipher':cipher, 'message':message, 'key':key, 'cfg':cfg, 'this':this, 'arguments':arguments, 'encrypt':PyJs_encrypt_61_}, var)
                var.registers(['cfg', 'encryptor', 'cipherCfg', 'ciphertext', 'message', 'cipher', 'key'])
                var.put('cfg', var.get(u"this").get('cfg').callprop('extend', var.get('cfg')))
                var.put('encryptor', var.get('cipher').callprop('createEncryptor', var.get('key'), var.get('cfg')))
                var.put('ciphertext', var.get('encryptor').callprop('finalize', var.get('message')))
                var.put('cipherCfg', var.get('encryptor').get('cfg'))
                PyJs_Object_62_ = Js({'ciphertext':var.get('ciphertext'),'key':var.get('key'),'iv':var.get('cipherCfg').get('iv'),'algorithm':var.get('cipher'),'mode':var.get('cipherCfg').get('mode'),'padding':var.get('cipherCfg').get('padding'),'blockSize':var.get('cipher').get('blockSize'),'formatter':var.get('cfg').get('format')})
                return var.get('CipherParams').callprop('create', PyJs_Object_62_)
            PyJs_encrypt_61_._set_name('encrypt')
            @Js
            def PyJs_decrypt_63_(cipher, ciphertext, key, cfg, this, arguments, var=var):
                var = Scope({'cipher':cipher, 'ciphertext':ciphertext, 'key':key, 'cfg':cfg, 'this':this, 'arguments':arguments, 'decrypt':PyJs_decrypt_63_}, var)
                var.registers(['cfg', 'ciphertext', 'plaintext', 'cipher', 'key'])
                var.put('cfg', var.get(u"this").get('cfg').callprop('extend', var.get('cfg')))
                var.put('ciphertext', var.get(u"this").callprop('_parse', var.get('ciphertext'), var.get('cfg').get('format')))
                var.put('plaintext', var.get('cipher').callprop('createDecryptor', var.get('key'), var.get('cfg')).callprop('finalize', var.get('ciphertext').get('ciphertext')))
                return var.get('plaintext')
            PyJs_decrypt_63_._set_name('decrypt')
            @Js
            def PyJs__parse_64_(ciphertext, format, this, arguments, var=var):
                var = Scope({'ciphertext':ciphertext, 'format':format, 'this':this, 'arguments':arguments, '_parse':PyJs__parse_64_}, var)
                var.registers(['ciphertext', 'format'])
                if (var.get('ciphertext',throw=False).typeof()==Js('string')):
                    return var.get('format').callprop('parse', var.get('ciphertext'), var.get(u"this"))
                else:
                    return var.get('ciphertext')
            PyJs__parse_64_._set_name('_parse')
            PyJs_Object_59_ = Js({'cfg':var.get('Base').callprop('extend', PyJs_Object_60_),'encrypt':PyJs_encrypt_61_,'decrypt':PyJs_decrypt_63_,'_parse':PyJs__parse_64_})
            var.put('SerializableCipher', var.get('C_lib').put('SerializableCipher', var.get('Base').callprop('extend', PyJs_Object_59_)))
            PyJs_Object_65_ = Js({})
            var.put('C_kdf', var.get('C').put('kdf', PyJs_Object_65_))
            @Js
            def PyJs_execute_67_(password, keySize, ivSize, salt, this, arguments, var=var):
                var = Scope({'password':password, 'keySize':keySize, 'ivSize':ivSize, 'salt':salt, 'this':this, 'arguments':arguments, 'execute':PyJs_execute_67_}, var)
                var.registers(['ivSize', 'keySize', 'salt', 'password', 'iv', 'key'])
                if var.get('salt').neg():
                    var.put('salt', var.get('WordArray').callprop('random', (Js(64.0)/Js(8.0))))
                PyJs_Object_68_ = Js({'keySize':(var.get('keySize')+var.get('ivSize'))})
                var.put('key', var.get('EvpKDF').callprop('create', PyJs_Object_68_).callprop('compute', var.get('password'), var.get('salt')))
                var.put('iv', var.get('WordArray').callprop('create', var.get('key').get('words').callprop('slice', var.get('keySize')), (var.get('ivSize')*Js(4.0))))
                var.get('key').put('sigBytes', (var.get('keySize')*Js(4.0)))
                PyJs_Object_69_ = Js({'key':var.get('key'),'iv':var.get('iv'),'salt':var.get('salt')})
                return var.get('CipherParams').callprop('create', PyJs_Object_69_)
            PyJs_execute_67_._set_name('execute')
            PyJs_Object_66_ = Js({'execute':PyJs_execute_67_})
            var.put('OpenSSLKdf', var.get('C_kdf').put('OpenSSL', PyJs_Object_66_))
            PyJs_Object_71_ = Js({'kdf':var.get('OpenSSLKdf')})
            @Js
            def PyJs_encrypt_72_(cipher, message, password, cfg, this, arguments, var=var):
                var = Scope({'cipher':cipher, 'message':message, 'password':password, 'cfg':cfg, 'this':this, 'arguments':arguments, 'encrypt':PyJs_encrypt_72_}, var)
                var.registers(['cfg', 'password', 'ciphertext', 'message', 'cipher', 'derivedParams'])
                var.put('cfg', var.get(u"this").get('cfg').callprop('extend', var.get('cfg')))
                var.put('derivedParams', var.get('cfg').get('kdf').callprop('execute', var.get('password'), var.get('cipher').get('keySize'), var.get('cipher').get('ivSize')))
                var.get('cfg').put('iv', var.get('derivedParams').get('iv'))
                var.put('ciphertext', var.get('SerializableCipher').get('encrypt').callprop('call', var.get(u"this"), var.get('cipher'), var.get('message'), var.get('derivedParams').get('key'), var.get('cfg')))
                var.get('ciphertext').callprop('mixIn', var.get('derivedParams'))
                return var.get('ciphertext')
            PyJs_encrypt_72_._set_name('encrypt')
            @Js
            def PyJs_decrypt_73_(cipher, ciphertext, password, cfg, this, arguments, var=var):
                var = Scope({'cipher':cipher, 'ciphertext':ciphertext, 'password':password, 'cfg':cfg, 'this':this, 'arguments':arguments, 'decrypt':PyJs_decrypt_73_}, var)
                var.registers(['cfg', 'password', 'ciphertext', 'plaintext', 'cipher', 'derivedParams'])
                var.put('cfg', var.get(u"this").get('cfg').callprop('extend', var.get('cfg')))
                var.put('ciphertext', var.get(u"this").callprop('_parse', var.get('ciphertext'), var.get('cfg').get('format')))
                var.put('derivedParams', var.get('cfg').get('kdf').callprop('execute', var.get('password'), var.get('cipher').get('keySize'), var.get('cipher').get('ivSize'), var.get('ciphertext').get('salt')))
                var.get('cfg').put('iv', var.get('derivedParams').get('iv'))
                var.put('plaintext', var.get('SerializableCipher').get('decrypt').callprop('call', var.get(u"this"), var.get('cipher'), var.get('ciphertext'), var.get('derivedParams').get('key'), var.get('cfg')))
                return var.get('plaintext')
            PyJs_decrypt_73_._set_name('decrypt')
            PyJs_Object_70_ = Js({'cfg':var.get('SerializableCipher').get('cfg').callprop('extend', PyJs_Object_71_),'encrypt':PyJs_encrypt_72_,'decrypt':PyJs_decrypt_73_})
            var.put('PasswordBasedCipher', var.get('C_lib').put('PasswordBasedCipher', var.get('SerializableCipher').callprop('extend', PyJs_Object_70_)))
        PyJs_anonymous_17_._set_name('anonymous')
        (var.get('CryptoJS').get('lib').get('Cipher') or PyJs_anonymous_17_())
    PyJs_anonymous_16_._set_name('anonymous')
    @Js
    def PyJs_anonymous_74_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./evpkdf')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./evpkdf')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_74_._set_name('anonymous')
    PyJs_anonymous_74_(var.get(u"this"), PyJs_anonymous_16_)
PyJs_anonymous_15_._set_name('anonymous')
PyJs_Object_75_ = Js({'./core':Js(3.0),'./evpkdf':Js(6.0)})
@Js
def PyJs_anonymous_76_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_77_(this, arguments, var=var):
        var = Scope({'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_78_(Math, undefined, this, arguments, var=var):
            var = Scope({'Math':Math, 'undefined':undefined, 'this':this, 'arguments':arguments}, var)
            var.registers(['C_algo', 'C_enc', 'Math', 'BufferedBlockAlgorithm', 'Latin1', 'C_lib', 'WordArray', 'C', 'Hex', 'undefined', 'Utf8', 'create', 'Base', 'Hasher'])
            @Js
            def PyJs_anonymous_79_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['F'])
                @Js
                def PyJsHoisted_F_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments}, var)
                    var.registers([])
                    pass
                PyJsHoisted_F_.func_name = 'F'
                var.put('F', PyJsHoisted_F_)
                pass
                pass
                @Js
                def PyJs_anonymous_80_(obj, this, arguments, var=var):
                    var = Scope({'obj':obj, 'this':this, 'arguments':arguments}, var)
                    var.registers(['obj', 'subtype'])
                    pass
                    var.get('F').put('prototype', var.get('obj'))
                    var.put('subtype', var.get('F').create())
                    var.get('F').put('prototype', var.get(u"null"))
                    return var.get('subtype')
                PyJs_anonymous_80_._set_name('anonymous')
                return PyJs_anonymous_80_
            PyJs_anonymous_79_._set_name('anonymous')
            var.put('create', (var.get('Object').get('create') or PyJs_anonymous_79_()))
            PyJs_Object_81_ = Js({})
            var.put('C', PyJs_Object_81_)
            PyJs_Object_82_ = Js({})
            var.put('C_lib', var.get('C').put('lib', PyJs_Object_82_))
            @Js
            def PyJs_anonymous_83_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers([])
                @Js
                def PyJs_extend_85_(overrides, this, arguments, var=var):
                    var = Scope({'overrides':overrides, 'this':this, 'arguments':arguments, 'extend':PyJs_extend_85_}, var)
                    var.registers(['overrides', 'subtype'])
                    var.put('subtype', var.get('create')(var.get(u"this")))
                    if var.get('overrides'):
                        var.get('subtype').callprop('mixIn', var.get('overrides'))
                    if (var.get('subtype').callprop('hasOwnProperty', Js('init')).neg() or PyJsStrictEq(var.get(u"this").get('init'),var.get('subtype').get('init'))):
                        @Js
                        def PyJs_anonymous_86_(this, arguments, var=var):
                            var = Scope({'this':this, 'arguments':arguments}, var)
                            var.registers([])
                            var.get('subtype').get('$super').get('init').callprop('apply', var.get(u"this"), var.get('arguments'))
                        PyJs_anonymous_86_._set_name('anonymous')
                        var.get('subtype').put('init', PyJs_anonymous_86_)
                    var.get('subtype').get('init').put('prototype', var.get('subtype'))
                    var.get('subtype').put('$super', var.get(u"this"))
                    return var.get('subtype')
                PyJs_extend_85_._set_name('extend')
                @Js
                def PyJs_create_87_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments, 'create':PyJs_create_87_}, var)
                    var.registers(['instance'])
                    var.put('instance', var.get(u"this").callprop('extend'))
                    var.get('instance').get('init').callprop('apply', var.get('instance'), var.get('arguments'))
                    return var.get('instance')
                PyJs_create_87_._set_name('create')
                @Js
                def PyJs_init_88_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments, 'init':PyJs_init_88_}, var)
                    var.registers([])
                    pass
                PyJs_init_88_._set_name('init')
                @Js
                def PyJs_mixIn_89_(properties, this, arguments, var=var):
                    var = Scope({'properties':properties, 'this':this, 'arguments':arguments, 'mixIn':PyJs_mixIn_89_}, var)
                    var.registers(['propertyName', 'properties'])
                    for PyJsTemp in var.get('properties'):
                        var.put('propertyName', PyJsTemp)
                        if var.get('properties').callprop('hasOwnProperty', var.get('propertyName')):
                            var.get(u"this").put(var.get('propertyName'), var.get('properties').get(var.get('propertyName')))
                    if var.get('properties').callprop('hasOwnProperty', Js('toString')):
                        var.get(u"this").put('toString', var.get('properties').get('toString'))
                PyJs_mixIn_89_._set_name('mixIn')
                @Js
                def PyJs_clone_90_(this, arguments, var=var):
                    var = Scope({'this':this, 'arguments':arguments, 'clone':PyJs_clone_90_}, var)
                    var.registers([])
                    return var.get(u"this").get('init').get('prototype').callprop('extend', var.get(u"this"))
                PyJs_clone_90_._set_name('clone')
                PyJs_Object_84_ = Js({'extend':PyJs_extend_85_,'create':PyJs_create_87_,'init':PyJs_init_88_,'mixIn':PyJs_mixIn_89_,'clone':PyJs_clone_90_})
                return PyJs_Object_84_
            PyJs_anonymous_83_._set_name('anonymous')
            var.put('Base', var.get('C_lib').put('Base', PyJs_anonymous_83_()))
            @Js
            def PyJs_init_92_(words, sigBytes, this, arguments, var=var):
                var = Scope({'words':words, 'sigBytes':sigBytes, 'this':this, 'arguments':arguments, 'init':PyJs_init_92_}, var)
                var.registers(['sigBytes', 'words'])
                var.put('words', var.get(u"this").put('words', (var.get('words') or Js([]))))
                if (var.get('sigBytes')!=var.get('undefined')):
                    var.get(u"this").put('sigBytes', var.get('sigBytes'))
                else:
                    var.get(u"this").put('sigBytes', (var.get('words').get('length')*Js(4.0)))
            PyJs_init_92_._set_name('init')
            @Js
            def PyJs_toString_93_(encoder, this, arguments, var=var):
                var = Scope({'encoder':encoder, 'this':this, 'arguments':arguments, 'toString':PyJs_toString_93_}, var)
                var.registers(['encoder'])
                return (var.get('encoder') or var.get('Hex')).callprop('stringify', var.get(u"this"))
            PyJs_toString_93_._set_name('toString')
            @Js
            def PyJs_concat_94_(wordArray, this, arguments, var=var):
                var = Scope({'wordArray':wordArray, 'this':this, 'arguments':arguments, 'concat':PyJs_concat_94_}, var)
                var.registers(['thatWords', 'i', 'thisSigBytes', 'thisWords', 'wordArray', 'thatSigBytes', 'thatByte'])
                var.put('thisWords', var.get(u"this").get('words'))
                var.put('thatWords', var.get('wordArray').get('words'))
                var.put('thisSigBytes', var.get(u"this").get('sigBytes'))
                var.put('thatSigBytes', var.get('wordArray').get('sigBytes'))
                var.get(u"this").callprop('clamp')
                if (var.get('thisSigBytes')%Js(4.0)):
                    #for JS loop
                    var.put('i', Js(0.0))
                    while (var.get('i')<var.get('thatSigBytes')):
                        try:
                            var.put('thatByte', (PyJsBshift(var.get('thatWords').get(PyJsBshift(var.get('i'),Js(2.0))),(Js(24.0)-((var.get('i')%Js(4.0))*Js(8.0))))&Js(255)))
                            var.get('thisWords').put(PyJsBshift((var.get('thisSigBytes')+var.get('i')),Js(2.0)), (var.get('thatByte')<<(Js(24.0)-(((var.get('thisSigBytes')+var.get('i'))%Js(4.0))*Js(8.0)))), '|')
                        finally:
                                (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                else:
                    #for JS loop
                    var.put('i', Js(0.0))
                    while (var.get('i')<var.get('thatSigBytes')):
                        try:
                            var.get('thisWords').put(PyJsBshift((var.get('thisSigBytes')+var.get('i')),Js(2.0)), var.get('thatWords').get(PyJsBshift(var.get('i'),Js(2.0))))
                        finally:
                                var.put('i', Js(4.0), '+')
                var.get(u"this").put('sigBytes', var.get('thatSigBytes'), '+')
                return var.get(u"this")
            PyJs_concat_94_._set_name('concat')
            @Js
            def PyJs_clamp_95_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'clamp':PyJs_clamp_95_}, var)
                var.registers(['sigBytes', 'words'])
                var.put('words', var.get(u"this").get('words'))
                var.put('sigBytes', var.get(u"this").get('sigBytes'))
                var.get('words').put(PyJsBshift(var.get('sigBytes'),Js(2.0)), (Js(4294967295)<<(Js(32.0)-((var.get('sigBytes')%Js(4.0))*Js(8.0)))), '&')
                var.get('words').put('length', var.get('Math').callprop('ceil', (var.get('sigBytes')/Js(4.0))))
            PyJs_clamp_95_._set_name('clamp')
            @Js
            def PyJs_clone_96_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'clone':PyJs_clone_96_}, var)
                var.registers(['clone'])
                var.put('clone', var.get('Base').get('clone').callprop('call', var.get(u"this")))
                var.get('clone').put('words', var.get(u"this").get('words').callprop('slice', Js(0.0)))
                return var.get('clone')
            PyJs_clone_96_._set_name('clone')
            @Js
            def PyJs_random_97_(nBytes, this, arguments, var=var):
                var = Scope({'nBytes':nBytes, 'this':this, 'arguments':arguments, 'random':PyJs_random_97_}, var)
                var.registers(['r', 'nBytes', 'i', 'rcache', '_r', 'words'])
                var.put('words', Js([]))
                @Js
                def PyJs_r_98_(m_w, this, arguments, var=var):
                    var = Scope({'m_w':m_w, 'this':this, 'arguments':arguments, 'r':PyJs_r_98_}, var)
                    var.registers(['m_w', 'm_z', 'mask'])
                    var.put('m_w', var.get('m_w'))
                    var.put('m_z', Js(987654321))
                    var.put('mask', Js(4294967295))
                    @Js
                    def PyJs_anonymous_99_(this, arguments, var=var):
                        var = Scope({'this':this, 'arguments':arguments}, var)
                        var.registers(['result'])
                        var.put('m_z', (((Js(36969)*(var.get('m_z')&Js(65535)))+(var.get('m_z')>>Js(16)))&var.get('mask')))
                        var.put('m_w', (((Js(18000)*(var.get('m_w')&Js(65535)))+(var.get('m_w')>>Js(16)))&var.get('mask')))
                        var.put('result', (((var.get('m_z')<<Js(16))+var.get('m_w'))&var.get('mask')))
                        var.put('result', Js(4294967296), '/')
                        var.put('result', Js(0.5), '+')
                        return (var.get('result')*(Js(1.0) if (var.get('Math').callprop('random')>Js(0.5)) else (-Js(1.0))))
                    PyJs_anonymous_99_._set_name('anonymous')
                    return PyJs_anonymous_99_
                PyJs_r_98_._set_name('r')
                var.put('r', PyJs_r_98_)
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('nBytes')):
                    try:
                        var.put('_r', var.get('r')(((var.get('rcache') or var.get('Math').callprop('random'))*Js(4294967296))))
                        var.put('rcache', (var.get('_r')()*Js(987654071)))
                        var.get('words').callprop('push', ((var.get('_r')()*Js(4294967296))|Js(0.0)))
                    finally:
                            var.put('i', Js(4.0), '+')
                return var.get('WordArray').get('init').create(var.get('words'), var.get('nBytes'))
            PyJs_random_97_._set_name('random')
            PyJs_Object_91_ = Js({'init':PyJs_init_92_,'toString':PyJs_toString_93_,'concat':PyJs_concat_94_,'clamp':PyJs_clamp_95_,'clone':PyJs_clone_96_,'random':PyJs_random_97_})
            var.put('WordArray', var.get('C_lib').put('WordArray', var.get('Base').callprop('extend', PyJs_Object_91_)))
            PyJs_Object_100_ = Js({})
            var.put('C_enc', var.get('C').put('enc', PyJs_Object_100_))
            @Js
            def PyJs_stringify_102_(wordArray, this, arguments, var=var):
                var = Scope({'wordArray':wordArray, 'this':this, 'arguments':arguments, 'stringify':PyJs_stringify_102_}, var)
                var.registers(['hexChars', 'sigBytes', 'bite', 'i', 'words', 'wordArray'])
                var.put('words', var.get('wordArray').get('words'))
                var.put('sigBytes', var.get('wordArray').get('sigBytes'))
                var.put('hexChars', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('sigBytes')):
                    try:
                        var.put('bite', (PyJsBshift(var.get('words').get(PyJsBshift(var.get('i'),Js(2.0))),(Js(24.0)-((var.get('i')%Js(4.0))*Js(8.0))))&Js(255)))
                        var.get('hexChars').callprop('push', PyJsBshift(var.get('bite'),Js(4.0)).callprop('toString', Js(16.0)))
                        var.get('hexChars').callprop('push', (var.get('bite')&Js(15)).callprop('toString', Js(16.0)))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                return var.get('hexChars').callprop('join', Js(''))
            PyJs_stringify_102_._set_name('stringify')
            @Js
            def PyJs_parse_103_(hexStr, this, arguments, var=var):
                var = Scope({'hexStr':hexStr, 'this':this, 'arguments':arguments, 'parse':PyJs_parse_103_}, var)
                var.registers(['hexStr', 'i', 'hexStrLength', 'words'])
                var.put('hexStrLength', var.get('hexStr').get('length'))
                var.put('words', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('hexStrLength')):
                    try:
                        var.get('words').put(PyJsBshift(var.get('i'),Js(3.0)), (var.get('parseInt')(var.get('hexStr').callprop('substr', var.get('i'), Js(2.0)), Js(16.0))<<(Js(24.0)-((var.get('i')%Js(8.0))*Js(4.0)))), '|')
                    finally:
                            var.put('i', Js(2.0), '+')
                return var.get('WordArray').get('init').create(var.get('words'), (var.get('hexStrLength')/Js(2.0)))
            PyJs_parse_103_._set_name('parse')
            PyJs_Object_101_ = Js({'stringify':PyJs_stringify_102_,'parse':PyJs_parse_103_})
            var.put('Hex', var.get('C_enc').put('Hex', PyJs_Object_101_))
            @Js
            def PyJs_stringify_105_(wordArray, this, arguments, var=var):
                var = Scope({'wordArray':wordArray, 'this':this, 'arguments':arguments, 'stringify':PyJs_stringify_105_}, var)
                var.registers(['sigBytes', 'bite', 'i', 'words', 'wordArray', 'latin1Chars'])
                var.put('words', var.get('wordArray').get('words'))
                var.put('sigBytes', var.get('wordArray').get('sigBytes'))
                var.put('latin1Chars', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('sigBytes')):
                    try:
                        var.put('bite', (PyJsBshift(var.get('words').get(PyJsBshift(var.get('i'),Js(2.0))),(Js(24.0)-((var.get('i')%Js(4.0))*Js(8.0))))&Js(255)))
                        var.get('latin1Chars').callprop('push', var.get('String').callprop('fromCharCode', var.get('bite')))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                return var.get('latin1Chars').callprop('join', Js(''))
            PyJs_stringify_105_._set_name('stringify')
            @Js
            def PyJs_parse_106_(latin1Str, this, arguments, var=var):
                var = Scope({'latin1Str':latin1Str, 'this':this, 'arguments':arguments, 'parse':PyJs_parse_106_}, var)
                var.registers(['latin1StrLength', 'i', 'words', 'latin1Str'])
                var.put('latin1StrLength', var.get('latin1Str').get('length'))
                var.put('words', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('latin1StrLength')):
                    try:
                        var.get('words').put(PyJsBshift(var.get('i'),Js(2.0)), ((var.get('latin1Str').callprop('charCodeAt', var.get('i'))&Js(255))<<(Js(24.0)-((var.get('i')%Js(4.0))*Js(8.0)))), '|')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                return var.get('WordArray').get('init').create(var.get('words'), var.get('latin1StrLength'))
            PyJs_parse_106_._set_name('parse')
            PyJs_Object_104_ = Js({'stringify':PyJs_stringify_105_,'parse':PyJs_parse_106_})
            var.put('Latin1', var.get('C_enc').put('Latin1', PyJs_Object_104_))
            @Js
            def PyJs_stringify_108_(wordArray, this, arguments, var=var):
                var = Scope({'wordArray':wordArray, 'this':this, 'arguments':arguments, 'stringify':PyJs_stringify_108_}, var)
                var.registers(['wordArray'])
                try:
                    return var.get('decodeURIComponent')(var.get('escape')(var.get('Latin1').callprop('stringify', var.get('wordArray'))))
                except PyJsException as PyJsTempException:
                    PyJsHolder_65_99513017 = var.own.get('e')
                    var.force_own_put('e', PyExceptionToJs(PyJsTempException))
                    try:
                        PyJsTempException = JsToPyException(var.get('Error').create(Js('Malformed UTF-8 data')))
                        raise PyJsTempException
                    finally:
                        if PyJsHolder_65_99513017 is not None:
                            var.own['e'] = PyJsHolder_65_99513017
                        else:
                            del var.own['e']
                        del PyJsHolder_65_99513017
            PyJs_stringify_108_._set_name('stringify')
            @Js
            def PyJs_parse_109_(utf8Str, this, arguments, var=var):
                var = Scope({'utf8Str':utf8Str, 'this':this, 'arguments':arguments, 'parse':PyJs_parse_109_}, var)
                var.registers(['utf8Str'])
                return var.get('Latin1').callprop('parse', var.get('unescape')(var.get('encodeURIComponent')(var.get('utf8Str'))))
            PyJs_parse_109_._set_name('parse')
            PyJs_Object_107_ = Js({'stringify':PyJs_stringify_108_,'parse':PyJs_parse_109_})
            var.put('Utf8', var.get('C_enc').put('Utf8', PyJs_Object_107_))
            @Js
            def PyJs_reset_111_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'reset':PyJs_reset_111_}, var)
                var.registers([])
                var.get(u"this").put('_data', var.get('WordArray').get('init').create())
                var.get(u"this").put('_nDataBytes', Js(0.0))
            PyJs_reset_111_._set_name('reset')
            @Js
            def PyJs__append_112_(data, this, arguments, var=var):
                var = Scope({'data':data, 'this':this, 'arguments':arguments, '_append':PyJs__append_112_}, var)
                var.registers(['data'])
                if (var.get('data',throw=False).typeof()==Js('string')):
                    var.put('data', var.get('Utf8').callprop('parse', var.get('data')))
                var.get(u"this").get('_data').callprop('concat', var.get('data'))
                var.get(u"this").put('_nDataBytes', var.get('data').get('sigBytes'), '+')
            PyJs__append_112_._set_name('_append')
            @Js
            def PyJs__process_113_(doFlush, this, arguments, var=var):
                var = Scope({'doFlush':doFlush, 'this':this, 'arguments':arguments, '_process':PyJs__process_113_}, var)
                var.registers(['nBytesReady', 'data', 'dataWords', 'blockSize', 'processedWords', 'nWordsReady', 'doFlush', 'nBlocksReady', 'blockSizeBytes', 'dataSigBytes', 'offset'])
                var.put('data', var.get(u"this").get('_data'))
                var.put('dataWords', var.get('data').get('words'))
                var.put('dataSigBytes', var.get('data').get('sigBytes'))
                var.put('blockSize', var.get(u"this").get('blockSize'))
                var.put('blockSizeBytes', (var.get('blockSize')*Js(4.0)))
                var.put('nBlocksReady', (var.get('dataSigBytes')/var.get('blockSizeBytes')))
                if var.get('doFlush'):
                    var.put('nBlocksReady', var.get('Math').callprop('ceil', var.get('nBlocksReady')))
                else:
                    var.put('nBlocksReady', var.get('Math').callprop('max', ((var.get('nBlocksReady')|Js(0.0))-var.get(u"this").get('_minBufferSize')), Js(0.0)))
                var.put('nWordsReady', (var.get('nBlocksReady')*var.get('blockSize')))
                var.put('nBytesReady', var.get('Math').callprop('min', (var.get('nWordsReady')*Js(4.0)), var.get('dataSigBytes')))
                if var.get('nWordsReady'):
                    #for JS loop
                    var.put('offset', Js(0.0))
                    while (var.get('offset')<var.get('nWordsReady')):
                        try:
                            var.get(u"this").callprop('_doProcessBlock', var.get('dataWords'), var.get('offset'))
                        finally:
                                var.put('offset', var.get('blockSize'), '+')
                    var.put('processedWords', var.get('dataWords').callprop('splice', Js(0.0), var.get('nWordsReady')))
                    var.get('data').put('sigBytes', var.get('nBytesReady'), '-')
                return var.get('WordArray').get('init').create(var.get('processedWords'), var.get('nBytesReady'))
            PyJs__process_113_._set_name('_process')
            @Js
            def PyJs_clone_114_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'clone':PyJs_clone_114_}, var)
                var.registers(['clone'])
                var.put('clone', var.get('Base').get('clone').callprop('call', var.get(u"this")))
                var.get('clone').put('_data', var.get(u"this").get('_data').callprop('clone'))
                return var.get('clone')
            PyJs_clone_114_._set_name('clone')
            PyJs_Object_110_ = Js({'reset':PyJs_reset_111_,'_append':PyJs__append_112_,'_process':PyJs__process_113_,'clone':PyJs_clone_114_,'_minBufferSize':Js(0.0)})
            var.put('BufferedBlockAlgorithm', var.get('C_lib').put('BufferedBlockAlgorithm', var.get('Base').callprop('extend', PyJs_Object_110_)))
            @Js
            def PyJs_init_116_(cfg, this, arguments, var=var):
                var = Scope({'cfg':cfg, 'this':this, 'arguments':arguments, 'init':PyJs_init_116_}, var)
                var.registers(['cfg'])
                var.get(u"this").put('cfg', var.get(u"this").get('cfg').callprop('extend', var.get('cfg')))
                var.get(u"this").callprop('reset')
            PyJs_init_116_._set_name('init')
            @Js
            def PyJs_reset_117_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'reset':PyJs_reset_117_}, var)
                var.registers([])
                var.get('BufferedBlockAlgorithm').get('reset').callprop('call', var.get(u"this"))
                var.get(u"this").callprop('_doReset')
            PyJs_reset_117_._set_name('reset')
            @Js
            def PyJs_update_118_(messageUpdate, this, arguments, var=var):
                var = Scope({'messageUpdate':messageUpdate, 'this':this, 'arguments':arguments, 'update':PyJs_update_118_}, var)
                var.registers(['messageUpdate'])
                var.get(u"this").callprop('_append', var.get('messageUpdate'))
                var.get(u"this").callprop('_process')
                return var.get(u"this")
            PyJs_update_118_._set_name('update')
            @Js
            def PyJs_finalize_119_(messageUpdate, this, arguments, var=var):
                var = Scope({'messageUpdate':messageUpdate, 'this':this, 'arguments':arguments, 'finalize':PyJs_finalize_119_}, var)
                var.registers(['messageUpdate', 'hash'])
                if var.get('messageUpdate'):
                    var.get(u"this").callprop('_append', var.get('messageUpdate'))
                var.put('hash', var.get(u"this").callprop('_doFinalize'))
                return var.get('hash')
            PyJs_finalize_119_._set_name('finalize')
            @Js
            def PyJs__createHelper_120_(hasher, this, arguments, var=var):
                var = Scope({'hasher':hasher, 'this':this, 'arguments':arguments, '_createHelper':PyJs__createHelper_120_}, var)
                var.registers(['hasher'])
                @Js
                def PyJs_anonymous_121_(message, cfg, this, arguments, var=var):
                    var = Scope({'message':message, 'cfg':cfg, 'this':this, 'arguments':arguments}, var)
                    var.registers(['message', 'cfg'])
                    return var.get('hasher').get('init').create(var.get('cfg')).callprop('finalize', var.get('message'))
                PyJs_anonymous_121_._set_name('anonymous')
                return PyJs_anonymous_121_
            PyJs__createHelper_120_._set_name('_createHelper')
            @Js
            def PyJs__createHmacHelper_122_(hasher, this, arguments, var=var):
                var = Scope({'hasher':hasher, 'this':this, 'arguments':arguments, '_createHmacHelper':PyJs__createHmacHelper_122_}, var)
                var.registers(['hasher'])
                @Js
                def PyJs_anonymous_123_(message, key, this, arguments, var=var):
                    var = Scope({'message':message, 'key':key, 'this':this, 'arguments':arguments}, var)
                    var.registers(['message', 'key'])
                    return var.get('C_algo').get('HMAC').get('init').create(var.get('hasher'), var.get('key')).callprop('finalize', var.get('message'))
                PyJs_anonymous_123_._set_name('anonymous')
                return PyJs_anonymous_123_
            PyJs__createHmacHelper_122_._set_name('_createHmacHelper')
            PyJs_Object_115_ = Js({'cfg':var.get('Base').callprop('extend'),'init':PyJs_init_116_,'reset':PyJs_reset_117_,'update':PyJs_update_118_,'finalize':PyJs_finalize_119_,'blockSize':(Js(512.0)/Js(32.0)),'_createHelper':PyJs__createHelper_120_,'_createHmacHelper':PyJs__createHmacHelper_122_})
            var.put('Hasher', var.get('C_lib').put('Hasher', var.get('BufferedBlockAlgorithm').callprop('extend', PyJs_Object_115_)))
            PyJs_Object_124_ = Js({})
            var.put('C_algo', var.get('C').put('algo', PyJs_Object_124_))
            return var.get('C')
        PyJs_anonymous_78_._set_name('anonymous')
        var.put('CryptoJS', (var.get('CryptoJS') or PyJs_anonymous_78_(var.get('Math'))))
        return var.get('CryptoJS')
    PyJs_anonymous_77_._set_name('anonymous')
    @Js
    def PyJs_anonymous_125_(root, factory, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')()))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([]), var.get('factory'))
            else:
                var.get('root').put('CryptoJS', var.get('factory')())
    PyJs_anonymous_125_._set_name('anonymous')
    PyJs_anonymous_125_(var.get(u"this"), PyJs_anonymous_77_)
PyJs_anonymous_76_._set_name('anonymous')
PyJs_Object_126_ = Js({})
@Js
def PyJs_anonymous_127_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_128_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_129_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['Base64', 'C_enc', 'parseLoop', 'C_lib', 'WordArray', 'C'])
            @Js
            def PyJsHoisted_parseLoop_(base64Str, base64StrLength, reverseMap, this, arguments, var=var):
                var = Scope({'base64Str':base64Str, 'base64StrLength':base64StrLength, 'reverseMap':reverseMap, 'this':this, 'arguments':arguments}, var)
                var.registers(['base64Str', 'reverseMap', 'nBytes', 'base64StrLength', 'i', 'bits2', 'words', 'bits1'])
                var.put('words', Js([]))
                var.put('nBytes', Js(0.0))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('base64StrLength')):
                    try:
                        if (var.get('i')%Js(4.0)):
                            var.put('bits1', (var.get('reverseMap').get(var.get('base64Str').callprop('charCodeAt', (var.get('i')-Js(1.0))))<<((var.get('i')%Js(4.0))*Js(2.0))))
                            var.put('bits2', PyJsBshift(var.get('reverseMap').get(var.get('base64Str').callprop('charCodeAt', var.get('i'))),(Js(6.0)-((var.get('i')%Js(4.0))*Js(2.0)))))
                            var.get('words').put(PyJsBshift(var.get('nBytes'),Js(2.0)), ((var.get('bits1')|var.get('bits2'))<<(Js(24.0)-((var.get('nBytes')%Js(4.0))*Js(8.0)))), '|')
                            (var.put('nBytes',Js(var.get('nBytes').to_number())+Js(1))-Js(1))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                return var.get('WordArray').callprop('create', var.get('words'), var.get('nBytes'))
            PyJsHoisted_parseLoop_.func_name = 'parseLoop'
            var.put('parseLoop', PyJsHoisted_parseLoop_)
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('WordArray', var.get('C_lib').get('WordArray'))
            var.put('C_enc', var.get('C').get('enc'))
            @Js
            def PyJs_stringify_131_(wordArray, this, arguments, var=var):
                var = Scope({'wordArray':wordArray, 'this':this, 'arguments':arguments, 'stringify':PyJs_stringify_131_}, var)
                var.registers(['triplet', 'sigBytes', 'byte1', 'byte3', 'i', 'paddingChar', 'words', 'wordArray', 'base64Chars', 'map', 'j', 'byte2'])
                var.put('words', var.get('wordArray').get('words'))
                var.put('sigBytes', var.get('wordArray').get('sigBytes'))
                var.put('map', var.get(u"this").get('_map'))
                var.get('wordArray').callprop('clamp')
                var.put('base64Chars', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('sigBytes')):
                    try:
                        var.put('byte1', (PyJsBshift(var.get('words').get(PyJsBshift(var.get('i'),Js(2.0))),(Js(24.0)-((var.get('i')%Js(4.0))*Js(8.0))))&Js(255)))
                        var.put('byte2', (PyJsBshift(var.get('words').get(PyJsBshift((var.get('i')+Js(1.0)),Js(2.0))),(Js(24.0)-(((var.get('i')+Js(1.0))%Js(4.0))*Js(8.0))))&Js(255)))
                        var.put('byte3', (PyJsBshift(var.get('words').get(PyJsBshift((var.get('i')+Js(2.0)),Js(2.0))),(Js(24.0)-(((var.get('i')+Js(2.0))%Js(4.0))*Js(8.0))))&Js(255)))
                        var.put('triplet', (((var.get('byte1')<<Js(16.0))|(var.get('byte2')<<Js(8.0)))|var.get('byte3')))
                        #for JS loop
                        var.put('j', Js(0.0))
                        while ((var.get('j')<Js(4.0)) and ((var.get('i')+(var.get('j')*Js(0.75)))<var.get('sigBytes'))):
                            try:
                                var.get('base64Chars').callprop('push', var.get('map').callprop('charAt', (PyJsBshift(var.get('triplet'),(Js(6.0)*(Js(3.0)-var.get('j'))))&Js(63))))
                            finally:
                                    (var.put('j',Js(var.get('j').to_number())+Js(1))-Js(1))
                    finally:
                            var.put('i', Js(3.0), '+')
                var.put('paddingChar', var.get('map').callprop('charAt', Js(64.0)))
                if var.get('paddingChar'):
                    while (var.get('base64Chars').get('length')%Js(4.0)):
                        var.get('base64Chars').callprop('push', var.get('paddingChar'))
                return var.get('base64Chars').callprop('join', Js(''))
            PyJs_stringify_131_._set_name('stringify')
            @Js
            def PyJs_parse_132_(base64Str, this, arguments, var=var):
                var = Scope({'base64Str':base64Str, 'this':this, 'arguments':arguments, 'parse':PyJs_parse_132_}, var)
                var.registers(['base64Str', 'reverseMap', 'base64StrLength', 'paddingChar', 'map', 'j', 'paddingIndex'])
                var.put('base64StrLength', var.get('base64Str').get('length'))
                var.put('map', var.get(u"this").get('_map'))
                var.put('reverseMap', var.get(u"this").get('_reverseMap'))
                if var.get('reverseMap').neg():
                    var.put('reverseMap', var.get(u"this").put('_reverseMap', Js([])))
                    #for JS loop
                    var.put('j', Js(0.0))
                    while (var.get('j')<var.get('map').get('length')):
                        try:
                            var.get('reverseMap').put(var.get('map').callprop('charCodeAt', var.get('j')), var.get('j'))
                        finally:
                                (var.put('j',Js(var.get('j').to_number())+Js(1))-Js(1))
                var.put('paddingChar', var.get('map').callprop('charAt', Js(64.0)))
                if var.get('paddingChar'):
                    var.put('paddingIndex', var.get('base64Str').callprop('indexOf', var.get('paddingChar')))
                    if PyJsStrictNeq(var.get('paddingIndex'),(-Js(1.0))):
                        var.put('base64StrLength', var.get('paddingIndex'))
                return var.get('parseLoop')(var.get('base64Str'), var.get('base64StrLength'), var.get('reverseMap'))
            PyJs_parse_132_._set_name('parse')
            PyJs_Object_130_ = Js({'stringify':PyJs_stringify_131_,'parse':PyJs_parse_132_,'_map':Js('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=')})
            var.put('Base64', var.get('C_enc').put('Base64', PyJs_Object_130_))
            pass
        PyJs_anonymous_129_._set_name('anonymous')
        PyJs_anonymous_129_()
        return var.get('CryptoJS').get('enc').get('Base64')
    PyJs_anonymous_128_._set_name('anonymous')
    @Js
    def PyJs_anonymous_133_(root, factory, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_133_._set_name('anonymous')
    PyJs_anonymous_133_(var.get(u"this"), PyJs_anonymous_128_)
PyJs_anonymous_127_._set_name('anonymous')
PyJs_Object_134_ = Js({'./core':Js(3.0)})
@Js
def PyJs_anonymous_135_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_136_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_137_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['C_enc', 'C_lib', 'WordArray', 'C', 'swapEndian', 'Utf16BE'])
            @Js
            def PyJsHoisted_swapEndian_(word, this, arguments, var=var):
                var = Scope({'word':word, 'this':this, 'arguments':arguments}, var)
                var.registers(['word'])
                return (((var.get('word')<<Js(8.0))&Js(4278255360))|(PyJsBshift(var.get('word'),Js(8.0))&Js(16711935)))
            PyJsHoisted_swapEndian_.func_name = 'swapEndian'
            var.put('swapEndian', PyJsHoisted_swapEndian_)
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('WordArray', var.get('C_lib').get('WordArray'))
            var.put('C_enc', var.get('C').get('enc'))
            @Js
            def PyJs_stringify_139_(wordArray, this, arguments, var=var):
                var = Scope({'wordArray':wordArray, 'this':this, 'arguments':arguments, 'stringify':PyJs_stringify_139_}, var)
                var.registers(['sigBytes', 'i', 'wordArray', 'utf16Chars', 'words', 'codePoint'])
                var.put('words', var.get('wordArray').get('words'))
                var.put('sigBytes', var.get('wordArray').get('sigBytes'))
                var.put('utf16Chars', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('sigBytes')):
                    try:
                        var.put('codePoint', (PyJsBshift(var.get('words').get(PyJsBshift(var.get('i'),Js(2.0))),(Js(16.0)-((var.get('i')%Js(4.0))*Js(8.0))))&Js(65535)))
                        var.get('utf16Chars').callprop('push', var.get('String').callprop('fromCharCode', var.get('codePoint')))
                    finally:
                            var.put('i', Js(2.0), '+')
                return var.get('utf16Chars').callprop('join', Js(''))
            PyJs_stringify_139_._set_name('stringify')
            @Js
            def PyJs_parse_140_(utf16Str, this, arguments, var=var):
                var = Scope({'utf16Str':utf16Str, 'this':this, 'arguments':arguments, 'parse':PyJs_parse_140_}, var)
                var.registers(['utf16Str', 'i', 'words', 'utf16StrLength'])
                var.put('utf16StrLength', var.get('utf16Str').get('length'))
                var.put('words', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('utf16StrLength')):
                    try:
                        var.get('words').put(PyJsBshift(var.get('i'),Js(1.0)), (var.get('utf16Str').callprop('charCodeAt', var.get('i'))<<(Js(16.0)-((var.get('i')%Js(2.0))*Js(16.0)))), '|')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                return var.get('WordArray').callprop('create', var.get('words'), (var.get('utf16StrLength')*Js(2.0)))
            PyJs_parse_140_._set_name('parse')
            PyJs_Object_138_ = Js({'stringify':PyJs_stringify_139_,'parse':PyJs_parse_140_})
            var.put('Utf16BE', var.get('C_enc').put('Utf16', var.get('C_enc').put('Utf16BE', PyJs_Object_138_)))
            @Js
            def PyJs_stringify_142_(wordArray, this, arguments, var=var):
                var = Scope({'wordArray':wordArray, 'this':this, 'arguments':arguments, 'stringify':PyJs_stringify_142_}, var)
                var.registers(['sigBytes', 'i', 'wordArray', 'utf16Chars', 'words', 'codePoint'])
                var.put('words', var.get('wordArray').get('words'))
                var.put('sigBytes', var.get('wordArray').get('sigBytes'))
                var.put('utf16Chars', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('sigBytes')):
                    try:
                        var.put('codePoint', var.get('swapEndian')((PyJsBshift(var.get('words').get(PyJsBshift(var.get('i'),Js(2.0))),(Js(16.0)-((var.get('i')%Js(4.0))*Js(8.0))))&Js(65535))))
                        var.get('utf16Chars').callprop('push', var.get('String').callprop('fromCharCode', var.get('codePoint')))
                    finally:
                            var.put('i', Js(2.0), '+')
                return var.get('utf16Chars').callprop('join', Js(''))
            PyJs_stringify_142_._set_name('stringify')
            @Js
            def PyJs_parse_143_(utf16Str, this, arguments, var=var):
                var = Scope({'utf16Str':utf16Str, 'this':this, 'arguments':arguments, 'parse':PyJs_parse_143_}, var)
                var.registers(['utf16Str', 'i', 'words', 'utf16StrLength'])
                var.put('utf16StrLength', var.get('utf16Str').get('length'))
                var.put('words', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('utf16StrLength')):
                    try:
                        var.get('words').put(PyJsBshift(var.get('i'),Js(1.0)), var.get('swapEndian')((var.get('utf16Str').callprop('charCodeAt', var.get('i'))<<(Js(16.0)-((var.get('i')%Js(2.0))*Js(16.0))))), '|')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                return var.get('WordArray').callprop('create', var.get('words'), (var.get('utf16StrLength')*Js(2.0)))
            PyJs_parse_143_._set_name('parse')
            PyJs_Object_141_ = Js({'stringify':PyJs_stringify_142_,'parse':PyJs_parse_143_})
            var.get('C_enc').put('Utf16LE', PyJs_Object_141_)
            pass
        PyJs_anonymous_137_._set_name('anonymous')
        PyJs_anonymous_137_()
        return var.get('CryptoJS').get('enc').get('Utf16')
    PyJs_anonymous_136_._set_name('anonymous')
    @Js
    def PyJs_anonymous_144_(root, factory, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_144_._set_name('anonymous')
    PyJs_anonymous_144_(var.get(u"this"), PyJs_anonymous_136_)
PyJs_anonymous_135_._set_name('anonymous')
PyJs_Object_145_ = Js({'./core':Js(3.0)})
@Js
def PyJs_anonymous_146_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_147_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_148_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['C_algo', 'C_lib', 'WordArray', 'C', 'MD5', 'Base', 'EvpKDF'])
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('Base', var.get('C_lib').get('Base'))
            var.put('WordArray', var.get('C_lib').get('WordArray'))
            var.put('C_algo', var.get('C').get('algo'))
            var.put('MD5', var.get('C_algo').get('MD5'))
            PyJs_Object_150_ = Js({'keySize':(Js(128.0)/Js(32.0)),'hasher':var.get('MD5'),'iterations':Js(1.0)})
            @Js
            def PyJs_init_151_(cfg, this, arguments, var=var):
                var = Scope({'cfg':cfg, 'this':this, 'arguments':arguments, 'init':PyJs_init_151_}, var)
                var.registers(['cfg'])
                var.get(u"this").put('cfg', var.get(u"this").get('cfg').callprop('extend', var.get('cfg')))
            PyJs_init_151_._set_name('init')
            @Js
            def PyJs_compute_152_(password, salt, this, arguments, var=var):
                var = Scope({'password':password, 'salt':salt, 'this':this, 'arguments':arguments, 'compute':PyJs_compute_152_}, var)
                var.registers(['derivedKeyWords', 'cfg', 'derivedKey', 'keySize', 'i', 'hasher', 'salt', 'password', 'iterations', 'block'])
                var.put('cfg', var.get(u"this").get('cfg'))
                var.put('hasher', var.get('cfg').get('hasher').callprop('create'))
                var.put('derivedKey', var.get('WordArray').callprop('create'))
                var.put('derivedKeyWords', var.get('derivedKey').get('words'))
                var.put('keySize', var.get('cfg').get('keySize'))
                var.put('iterations', var.get('cfg').get('iterations'))
                while (var.get('derivedKeyWords').get('length')<var.get('keySize')):
                    if var.get('block'):
                        var.get('hasher').callprop('update', var.get('block'))
                    var.put('block', var.get('hasher').callprop('update', var.get('password')).callprop('finalize', var.get('salt')))
                    var.get('hasher').callprop('reset')
                    #for JS loop
                    var.put('i', Js(1.0))
                    while (var.get('i')<var.get('iterations')):
                        try:
                            var.put('block', var.get('hasher').callprop('finalize', var.get('block')))
                            var.get('hasher').callprop('reset')
                        finally:
                                (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                    var.get('derivedKey').callprop('concat', var.get('block'))
                var.get('derivedKey').put('sigBytes', (var.get('keySize')*Js(4.0)))
                return var.get('derivedKey')
            PyJs_compute_152_._set_name('compute')
            PyJs_Object_149_ = Js({'cfg':var.get('Base').callprop('extend', PyJs_Object_150_),'init':PyJs_init_151_,'compute':PyJs_compute_152_})
            var.put('EvpKDF', var.get('C_algo').put('EvpKDF', var.get('Base').callprop('extend', PyJs_Object_149_)))
            @Js
            def PyJs_anonymous_153_(password, salt, cfg, this, arguments, var=var):
                var = Scope({'password':password, 'salt':salt, 'cfg':cfg, 'this':this, 'arguments':arguments}, var)
                var.registers(['cfg', 'salt', 'password'])
                return var.get('EvpKDF').callprop('create', var.get('cfg')).callprop('compute', var.get('password'), var.get('salt'))
            PyJs_anonymous_153_._set_name('anonymous')
            var.get('C').put('EvpKDF', PyJs_anonymous_153_)
        PyJs_anonymous_148_._set_name('anonymous')
        PyJs_anonymous_148_()
        return var.get('CryptoJS').get('EvpKDF')
    PyJs_anonymous_147_._set_name('anonymous')
    @Js
    def PyJs_anonymous_154_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./sha1')), var.get('require')(Js('./hmac')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./sha1'), Js('./hmac')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_154_._set_name('anonymous')
    PyJs_anonymous_154_(var.get(u"this"), PyJs_anonymous_147_)
PyJs_anonymous_146_._set_name('anonymous')
PyJs_Object_155_ = Js({'./core':Js(3.0),'./hmac':Js(8.0),'./sha1':Js(27.0)})
@Js
def PyJs_anonymous_156_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_157_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_158_(undefined, this, arguments, var=var):
            var = Scope({'undefined':undefined, 'this':this, 'arguments':arguments}, var)
            var.registers(['C_enc', 'C_lib', 'Hex', 'C', 'CipherParams', 'undefined', 'HexFormatter', 'C_format'])
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('CipherParams', var.get('C_lib').get('CipherParams'))
            var.put('C_enc', var.get('C').get('enc'))
            var.put('Hex', var.get('C_enc').get('Hex'))
            var.put('C_format', var.get('C').get('format'))
            @Js
            def PyJs_stringify_160_(cipherParams, this, arguments, var=var):
                var = Scope({'cipherParams':cipherParams, 'this':this, 'arguments':arguments, 'stringify':PyJs_stringify_160_}, var)
                var.registers(['cipherParams'])
                return var.get('cipherParams').get('ciphertext').callprop('toString', var.get('Hex'))
            PyJs_stringify_160_._set_name('stringify')
            @Js
            def PyJs_parse_161_(input, this, arguments, var=var):
                var = Scope({'input':input, 'this':this, 'arguments':arguments, 'parse':PyJs_parse_161_}, var)
                var.registers(['ciphertext', 'input'])
                var.put('ciphertext', var.get('Hex').callprop('parse', var.get('input')))
                PyJs_Object_162_ = Js({'ciphertext':var.get('ciphertext')})
                return var.get('CipherParams').callprop('create', PyJs_Object_162_)
            PyJs_parse_161_._set_name('parse')
            PyJs_Object_159_ = Js({'stringify':PyJs_stringify_160_,'parse':PyJs_parse_161_})
            var.put('HexFormatter', var.get('C_format').put('Hex', PyJs_Object_159_))
        PyJs_anonymous_158_._set_name('anonymous')
        PyJs_anonymous_158_()
        return var.get('CryptoJS').get('format').get('Hex')
    PyJs_anonymous_157_._set_name('anonymous')
    @Js
    def PyJs_anonymous_163_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_163_._set_name('anonymous')
    PyJs_anonymous_163_(var.get(u"this"), PyJs_anonymous_157_)
PyJs_anonymous_156_._set_name('anonymous')
PyJs_Object_164_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0)})
@Js
def PyJs_anonymous_165_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_166_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_167_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['C_algo', 'C_enc', 'C_lib', 'C', 'HMAC', 'Utf8', 'Base'])
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('Base', var.get('C_lib').get('Base'))
            var.put('C_enc', var.get('C').get('enc'))
            var.put('Utf8', var.get('C_enc').get('Utf8'))
            var.put('C_algo', var.get('C').get('algo'))
            @Js
            def PyJs_init_169_(hasher, key, this, arguments, var=var):
                var = Scope({'hasher':hasher, 'key':key, 'this':this, 'arguments':arguments, 'init':PyJs_init_169_}, var)
                var.registers(['oKey', 'iKeyWords', 'key', 'i', 'hasher', 'hasherBlockSizeBytes', 'hasherBlockSize', 'oKeyWords', 'iKey'])
                var.put('hasher', var.get(u"this").put('_hasher', var.get('hasher').get('init').create()))
                if (var.get('key',throw=False).typeof()==Js('string')):
                    var.put('key', var.get('Utf8').callprop('parse', var.get('key')))
                var.put('hasherBlockSize', var.get('hasher').get('blockSize'))
                var.put('hasherBlockSizeBytes', (var.get('hasherBlockSize')*Js(4.0)))
                if (var.get('key').get('sigBytes')>var.get('hasherBlockSizeBytes')):
                    var.put('key', var.get('hasher').callprop('finalize', var.get('key')))
                var.get('key').callprop('clamp')
                var.put('oKey', var.get(u"this").put('_oKey', var.get('key').callprop('clone')))
                var.put('iKey', var.get(u"this").put('_iKey', var.get('key').callprop('clone')))
                var.put('oKeyWords', var.get('oKey').get('words'))
                var.put('iKeyWords', var.get('iKey').get('words'))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('hasherBlockSize')):
                    try:
                        var.get('oKeyWords').put(var.get('i'), Js(1549556828), '^')
                        var.get('iKeyWords').put(var.get('i'), Js(909522486), '^')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.get('oKey').put('sigBytes', var.get('iKey').put('sigBytes', var.get('hasherBlockSizeBytes')))
                var.get(u"this").callprop('reset')
            PyJs_init_169_._set_name('init')
            @Js
            def PyJs_reset_170_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'reset':PyJs_reset_170_}, var)
                var.registers(['hasher'])
                var.put('hasher', var.get(u"this").get('_hasher'))
                var.get('hasher').callprop('reset')
                var.get('hasher').callprop('update', var.get(u"this").get('_iKey'))
            PyJs_reset_170_._set_name('reset')
            @Js
            def PyJs_update_171_(messageUpdate, this, arguments, var=var):
                var = Scope({'messageUpdate':messageUpdate, 'this':this, 'arguments':arguments, 'update':PyJs_update_171_}, var)
                var.registers(['messageUpdate'])
                var.get(u"this").get('_hasher').callprop('update', var.get('messageUpdate'))
                return var.get(u"this")
            PyJs_update_171_._set_name('update')
            @Js
            def PyJs_finalize_172_(messageUpdate, this, arguments, var=var):
                var = Scope({'messageUpdate':messageUpdate, 'this':this, 'arguments':arguments, 'finalize':PyJs_finalize_172_}, var)
                var.registers(['hmac', 'messageUpdate', 'innerHash', 'hasher'])
                var.put('hasher', var.get(u"this").get('_hasher'))
                var.put('innerHash', var.get('hasher').callprop('finalize', var.get('messageUpdate')))
                var.get('hasher').callprop('reset')
                var.put('hmac', var.get('hasher').callprop('finalize', var.get(u"this").get('_oKey').callprop('clone').callprop('concat', var.get('innerHash'))))
                return var.get('hmac')
            PyJs_finalize_172_._set_name('finalize')
            PyJs_Object_168_ = Js({'init':PyJs_init_169_,'reset':PyJs_reset_170_,'update':PyJs_update_171_,'finalize':PyJs_finalize_172_})
            var.put('HMAC', var.get('C_algo').put('HMAC', var.get('Base').callprop('extend', PyJs_Object_168_)))
        PyJs_anonymous_167_._set_name('anonymous')
        PyJs_anonymous_167_()
    PyJs_anonymous_166_._set_name('anonymous')
    @Js
    def PyJs_anonymous_173_(root, factory, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_173_._set_name('anonymous')
    PyJs_anonymous_173_(var.get(u"this"), PyJs_anonymous_166_)
PyJs_anonymous_165_._set_name('anonymous')
PyJs_Object_174_ = Js({'./core':Js(3.0)})
@Js
def PyJs_anonymous_175_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_176_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        return var.get('CryptoJS')
    PyJs_anonymous_176_._set_name('anonymous')
    @Js
    def PyJs_anonymous_177_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            def PyJs_LONG_178_(var=var):
                return var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./x64-core')), var.get('require')(Js('./lib-typedarrays')), var.get('require')(Js('./enc-utf16')), var.get('require')(Js('./enc-base64')), var.get('require')(Js('./md5')), var.get('require')(Js('./sha1')), var.get('require')(Js('./sha256')), var.get('require')(Js('./sha224')), var.get('require')(Js('./sha512')), var.get('require')(Js('./sha384')), var.get('require')(Js('./sha3')), var.get('require')(Js('./ripemd160')), var.get('require')(Js('./hmac')), var.get('require')(Js('./pbkdf2')), var.get('require')(Js('./evpkdf')), var.get('require')(Js('./cipher-core')), var.get('require')(Js('./mode-cfb')), var.get('require')(Js('./mode-ctr')), var.get('require')(Js('./mode-ctr-gladman')), var.get('require')(Js('./mode-ofb')), var.get('require')(Js('./mode-ecb')), var.get('require')(Js('./pad-ansix923')), var.get('require')(Js('./pad-iso10126')), var.get('require')(Js('./pad-iso97971')), var.get('require')(Js('./pad-zeropadding')), var.get('require')(Js('./pad-nopadding')), var.get('require')(Js('./format-hex')), var.get('require')(Js('./aes')), var.get('require')(Js('./tripledes')), var.get('require')(Js('./rc4')), var.get('require')(Js('./rabbit')), var.get('require')(Js('./rabbit-legacy')))
            var.get('module').put('exports', var.put('exports', PyJs_LONG_178_()))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                def PyJs_LONG_179_(var=var):
                    return var.get('define')(Js([Js('./core'), Js('./x64-core'), Js('./lib-typedarrays'), Js('./enc-utf16'), Js('./enc-base64'), Js('./md5'), Js('./sha1'), Js('./sha256'), Js('./sha224'), Js('./sha512'), Js('./sha384'), Js('./sha3'), Js('./ripemd160'), Js('./hmac'), Js('./pbkdf2'), Js('./evpkdf'), Js('./cipher-core'), Js('./mode-cfb'), Js('./mode-ctr'), Js('./mode-ctr-gladman'), Js('./mode-ofb'), Js('./mode-ecb'), Js('./pad-ansix923'), Js('./pad-iso10126'), Js('./pad-iso97971'), Js('./pad-zeropadding'), Js('./pad-nopadding'), Js('./format-hex'), Js('./aes'), Js('./tripledes'), Js('./rc4'), Js('./rabbit'), Js('./rabbit-legacy')]), var.get('factory'))
                PyJs_LONG_179_()
            else:
                var.get('root').put('CryptoJS', var.get('factory')(var.get('root').get('CryptoJS')))
    PyJs_anonymous_177_._set_name('anonymous')
    PyJs_anonymous_177_(var.get(u"this"), PyJs_anonymous_176_)
PyJs_anonymous_175_._set_name('anonymous')
PyJs_Object_180_ = Js({'./aes':Js(1.0),'./cipher-core':Js(2.0),'./core':Js(3.0),'./enc-base64':Js(4.0),'./enc-utf16':Js(5.0),'./evpkdf':Js(6.0),'./format-hex':Js(7.0),'./hmac':Js(8.0),'./lib-typedarrays':Js(10.0),'./md5':Js(11.0),'./mode-cfb':Js(12.0),'./mode-ctr':Js(14.0),'./mode-ctr-gladman':Js(13.0),'./mode-ecb':Js(15.0),'./mode-ofb':Js(16.0),'./pad-ansix923':Js(17.0),'./pad-iso10126':Js(18.0),'./pad-iso97971':Js(19.0),'./pad-nopadding':Js(20.0),'./pad-zeropadding':Js(21.0),'./pbkdf2':Js(22.0),'./rabbit':Js(24.0),'./rabbit-legacy':Js(23.0),'./rc4':Js(25.0),'./ripemd160':Js(26.0),'./sha1':Js(27.0),'./sha224':Js(28.0),'./sha256':Js(29.0),'./sha3':Js(30.0),'./sha384':Js(31.0),'./sha512':Js(32.0),'./tripledes':Js(33.0),'./x64-core':Js(34.0)})
@Js
def PyJs_anonymous_181_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_182_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_183_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['subInit', 'C_lib', 'WordArray', 'C', 'superInit'])
            if (var.get('ArrayBuffer',throw=False).typeof()!=Js('function')):
                return var.get('undefined')
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('WordArray', var.get('C_lib').get('WordArray'))
            var.put('superInit', var.get('WordArray').get('init'))
            @Js
            def PyJs_anonymous_184_(typedArray, this, arguments, var=var):
                var = Scope({'typedArray':typedArray, 'this':this, 'arguments':arguments}, var)
                var.registers(['typedArray', 'i', 'words', 'typedArrayByteLength'])
                if var.get('typedArray').instanceof(var.get('ArrayBuffer')):
                    var.put('typedArray', var.get('Uint8Array').create(var.get('typedArray')))
                def PyJs_LONG_185_(var=var):
                    return (((((var.get('typedArray').instanceof(var.get('Int8Array')) or (PyJsStrictNeq(var.get('Uint8ClampedArray',throw=False).typeof(),Js('undefined')) and var.get('typedArray').instanceof(var.get('Uint8ClampedArray')))) or var.get('typedArray').instanceof(var.get('Int16Array'))) or var.get('typedArray').instanceof(var.get('Uint16Array'))) or var.get('typedArray').instanceof(var.get('Int32Array'))) or var.get('typedArray').instanceof(var.get('Uint32Array')))
                if ((PyJs_LONG_185_() or var.get('typedArray').instanceof(var.get('Float32Array'))) or var.get('typedArray').instanceof(var.get('Float64Array'))):
                    var.put('typedArray', var.get('Uint8Array').create(var.get('typedArray').get('buffer'), var.get('typedArray').get('byteOffset'), var.get('typedArray').get('byteLength')))
                if var.get('typedArray').instanceof(var.get('Uint8Array')):
                    var.put('typedArrayByteLength', var.get('typedArray').get('byteLength'))
                    var.put('words', Js([]))
                    #for JS loop
                    var.put('i', Js(0.0))
                    while (var.get('i')<var.get('typedArrayByteLength')):
                        try:
                            var.get('words').put(PyJsBshift(var.get('i'),Js(2.0)), (var.get('typedArray').get(var.get('i'))<<(Js(24.0)-((var.get('i')%Js(4.0))*Js(8.0)))), '|')
                        finally:
                                (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                    var.get('superInit').callprop('call', var.get(u"this"), var.get('words'), var.get('typedArrayByteLength'))
                else:
                    var.get('superInit').callprop('apply', var.get(u"this"), var.get('arguments'))
            PyJs_anonymous_184_._set_name('anonymous')
            var.put('subInit', var.get('WordArray').put('init', PyJs_anonymous_184_))
            var.get('subInit').put('prototype', var.get('WordArray'))
        PyJs_anonymous_183_._set_name('anonymous')
        PyJs_anonymous_183_()
        return var.get('CryptoJS').get('lib').get('WordArray')
    PyJs_anonymous_182_._set_name('anonymous')
    @Js
    def PyJs_anonymous_186_(root, factory, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_186_._set_name('anonymous')
    PyJs_anonymous_186_(var.get(u"this"), PyJs_anonymous_182_)
PyJs_anonymous_181_._set_name('anonymous')
PyJs_Object_187_ = Js({'./core':Js(3.0)})
@Js
def PyJs_anonymous_188_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_189_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_190_(Math, this, arguments, var=var):
            var = Scope({'Math':Math, 'this':this, 'arguments':arguments}, var)
            var.registers(['C_algo', 'GG', 'Math', 'FF', 'C_lib', 'WordArray', 'C', 'T', 'HH', 'MD5', 'II', 'Hasher'])
            @Js
            def PyJsHoisted_FF_(a, b, c, d, x, s, t, this, arguments, var=var):
                var = Scope({'a':a, 'b':b, 'c':c, 'd':d, 'x':x, 's':s, 't':t, 'this':this, 'arguments':arguments}, var)
                var.registers(['a', 'x', 'b', 's', 'c', 'n', 't', 'd'])
                var.put('n', (((var.get('a')+((var.get('b')&var.get('c'))|((~var.get('b'))&var.get('d'))))+var.get('x'))+var.get('t')))
                return (((var.get('n')<<var.get('s'))|PyJsBshift(var.get('n'),(Js(32.0)-var.get('s'))))+var.get('b'))
            PyJsHoisted_FF_.func_name = 'FF'
            var.put('FF', PyJsHoisted_FF_)
            @Js
            def PyJsHoisted_GG_(a, b, c, d, x, s, t, this, arguments, var=var):
                var = Scope({'a':a, 'b':b, 'c':c, 'd':d, 'x':x, 's':s, 't':t, 'this':this, 'arguments':arguments}, var)
                var.registers(['a', 'x', 'b', 's', 'c', 'n', 't', 'd'])
                var.put('n', (((var.get('a')+((var.get('b')&var.get('d'))|(var.get('c')&(~var.get('d')))))+var.get('x'))+var.get('t')))
                return (((var.get('n')<<var.get('s'))|PyJsBshift(var.get('n'),(Js(32.0)-var.get('s'))))+var.get('b'))
            PyJsHoisted_GG_.func_name = 'GG'
            var.put('GG', PyJsHoisted_GG_)
            @Js
            def PyJsHoisted_HH_(a, b, c, d, x, s, t, this, arguments, var=var):
                var = Scope({'a':a, 'b':b, 'c':c, 'd':d, 'x':x, 's':s, 't':t, 'this':this, 'arguments':arguments}, var)
                var.registers(['a', 'x', 'b', 's', 'c', 'n', 't', 'd'])
                var.put('n', (((var.get('a')+((var.get('b')^var.get('c'))^var.get('d')))+var.get('x'))+var.get('t')))
                return (((var.get('n')<<var.get('s'))|PyJsBshift(var.get('n'),(Js(32.0)-var.get('s'))))+var.get('b'))
            PyJsHoisted_HH_.func_name = 'HH'
            var.put('HH', PyJsHoisted_HH_)
            @Js
            def PyJsHoisted_II_(a, b, c, d, x, s, t, this, arguments, var=var):
                var = Scope({'a':a, 'b':b, 'c':c, 'd':d, 'x':x, 's':s, 't':t, 'this':this, 'arguments':arguments}, var)
                var.registers(['a', 'x', 'b', 's', 'c', 'n', 't', 'd'])
                var.put('n', (((var.get('a')+(var.get('c')^(var.get('b')|(~var.get('d')))))+var.get('x'))+var.get('t')))
                return (((var.get('n')<<var.get('s'))|PyJsBshift(var.get('n'),(Js(32.0)-var.get('s'))))+var.get('b'))
            PyJsHoisted_II_.func_name = 'II'
            var.put('II', PyJsHoisted_II_)
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('WordArray', var.get('C_lib').get('WordArray'))
            var.put('Hasher', var.get('C_lib').get('Hasher'))
            var.put('C_algo', var.get('C').get('algo'))
            var.put('T', Js([]))
            @Js
            def PyJs_anonymous_191_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['i'])
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(64.0)):
                    try:
                        var.get('T').put(var.get('i'), ((var.get('Math').callprop('abs', var.get('Math').callprop('sin', (var.get('i')+Js(1.0))))*Js(4294967296))|Js(0.0)))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJs_anonymous_191_._set_name('anonymous')
            PyJs_anonymous_191_()
            @Js
            def PyJs__doReset_193_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_193_}, var)
                var.registers([])
                var.get(u"this").put('_hash', var.get('WordArray').get('init').create(Js([Js(1732584193), Js(4023233417), Js(2562383102), Js(271733878)])))
            PyJs__doReset_193_._set_name('_doReset')
            @Js
            def PyJs__doProcessBlock_194_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, '_doProcessBlock':PyJs__doProcessBlock_194_}, var)
                var.registers(['M_offset_14', 'M_offset_5', 'M_offset_13', 'M_offset_7', 'M_offset_2', 'd', 'a', 'b', 'M', 'M_offset_10', 'M_offset_15', 'i', 'M_offset_3', 'M_offset_9', 'M_offset_0', 'M_offset_i', 'c', 'M_offset_6', 'H', 'M_offset_11', 'offset', 'M_offset_4', 'M_offset_12', 'M_offset_8', 'M_offset_1', 'offset_i'])
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(16.0)):
                    try:
                        var.put('offset_i', (var.get('offset')+var.get('i')))
                        var.put('M_offset_i', var.get('M').get(var.get('offset_i')))
                        var.get('M').put(var.get('offset_i'), ((((var.get('M_offset_i')<<Js(8.0))|PyJsBshift(var.get('M_offset_i'),Js(24.0)))&Js(16711935))|(((var.get('M_offset_i')<<Js(24.0))|PyJsBshift(var.get('M_offset_i'),Js(8.0)))&Js(4278255360))))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.put('H', var.get(u"this").get('_hash').get('words'))
                var.put('M_offset_0', var.get('M').get((var.get('offset')+Js(0.0))))
                var.put('M_offset_1', var.get('M').get((var.get('offset')+Js(1.0))))
                var.put('M_offset_2', var.get('M').get((var.get('offset')+Js(2.0))))
                var.put('M_offset_3', var.get('M').get((var.get('offset')+Js(3.0))))
                var.put('M_offset_4', var.get('M').get((var.get('offset')+Js(4.0))))
                var.put('M_offset_5', var.get('M').get((var.get('offset')+Js(5.0))))
                var.put('M_offset_6', var.get('M').get((var.get('offset')+Js(6.0))))
                var.put('M_offset_7', var.get('M').get((var.get('offset')+Js(7.0))))
                var.put('M_offset_8', var.get('M').get((var.get('offset')+Js(8.0))))
                var.put('M_offset_9', var.get('M').get((var.get('offset')+Js(9.0))))
                var.put('M_offset_10', var.get('M').get((var.get('offset')+Js(10.0))))
                var.put('M_offset_11', var.get('M').get((var.get('offset')+Js(11.0))))
                var.put('M_offset_12', var.get('M').get((var.get('offset')+Js(12.0))))
                var.put('M_offset_13', var.get('M').get((var.get('offset')+Js(13.0))))
                var.put('M_offset_14', var.get('M').get((var.get('offset')+Js(14.0))))
                var.put('M_offset_15', var.get('M').get((var.get('offset')+Js(15.0))))
                var.put('a', var.get('H').get('0'))
                var.put('b', var.get('H').get('1'))
                var.put('c', var.get('H').get('2'))
                var.put('d', var.get('H').get('3'))
                var.put('a', var.get('FF')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_0'), Js(7.0), var.get('T').get('0')))
                var.put('d', var.get('FF')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_1'), Js(12.0), var.get('T').get('1')))
                var.put('c', var.get('FF')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_2'), Js(17.0), var.get('T').get('2')))
                var.put('b', var.get('FF')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_3'), Js(22.0), var.get('T').get('3')))
                var.put('a', var.get('FF')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_4'), Js(7.0), var.get('T').get('4')))
                var.put('d', var.get('FF')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_5'), Js(12.0), var.get('T').get('5')))
                var.put('c', var.get('FF')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_6'), Js(17.0), var.get('T').get('6')))
                var.put('b', var.get('FF')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_7'), Js(22.0), var.get('T').get('7')))
                var.put('a', var.get('FF')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_8'), Js(7.0), var.get('T').get('8')))
                var.put('d', var.get('FF')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_9'), Js(12.0), var.get('T').get('9')))
                var.put('c', var.get('FF')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_10'), Js(17.0), var.get('T').get('10')))
                var.put('b', var.get('FF')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_11'), Js(22.0), var.get('T').get('11')))
                var.put('a', var.get('FF')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_12'), Js(7.0), var.get('T').get('12')))
                var.put('d', var.get('FF')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_13'), Js(12.0), var.get('T').get('13')))
                var.put('c', var.get('FF')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_14'), Js(17.0), var.get('T').get('14')))
                var.put('b', var.get('FF')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_15'), Js(22.0), var.get('T').get('15')))
                var.put('a', var.get('GG')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_1'), Js(5.0), var.get('T').get('16')))
                var.put('d', var.get('GG')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_6'), Js(9.0), var.get('T').get('17')))
                var.put('c', var.get('GG')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_11'), Js(14.0), var.get('T').get('18')))
                var.put('b', var.get('GG')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_0'), Js(20.0), var.get('T').get('19')))
                var.put('a', var.get('GG')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_5'), Js(5.0), var.get('T').get('20')))
                var.put('d', var.get('GG')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_10'), Js(9.0), var.get('T').get('21')))
                var.put('c', var.get('GG')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_15'), Js(14.0), var.get('T').get('22')))
                var.put('b', var.get('GG')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_4'), Js(20.0), var.get('T').get('23')))
                var.put('a', var.get('GG')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_9'), Js(5.0), var.get('T').get('24')))
                var.put('d', var.get('GG')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_14'), Js(9.0), var.get('T').get('25')))
                var.put('c', var.get('GG')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_3'), Js(14.0), var.get('T').get('26')))
                var.put('b', var.get('GG')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_8'), Js(20.0), var.get('T').get('27')))
                var.put('a', var.get('GG')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_13'), Js(5.0), var.get('T').get('28')))
                var.put('d', var.get('GG')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_2'), Js(9.0), var.get('T').get('29')))
                var.put('c', var.get('GG')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_7'), Js(14.0), var.get('T').get('30')))
                var.put('b', var.get('GG')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_12'), Js(20.0), var.get('T').get('31')))
                var.put('a', var.get('HH')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_5'), Js(4.0), var.get('T').get('32')))
                var.put('d', var.get('HH')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_8'), Js(11.0), var.get('T').get('33')))
                var.put('c', var.get('HH')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_11'), Js(16.0), var.get('T').get('34')))
                var.put('b', var.get('HH')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_14'), Js(23.0), var.get('T').get('35')))
                var.put('a', var.get('HH')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_1'), Js(4.0), var.get('T').get('36')))
                var.put('d', var.get('HH')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_4'), Js(11.0), var.get('T').get('37')))
                var.put('c', var.get('HH')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_7'), Js(16.0), var.get('T').get('38')))
                var.put('b', var.get('HH')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_10'), Js(23.0), var.get('T').get('39')))
                var.put('a', var.get('HH')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_13'), Js(4.0), var.get('T').get('40')))
                var.put('d', var.get('HH')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_0'), Js(11.0), var.get('T').get('41')))
                var.put('c', var.get('HH')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_3'), Js(16.0), var.get('T').get('42')))
                var.put('b', var.get('HH')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_6'), Js(23.0), var.get('T').get('43')))
                var.put('a', var.get('HH')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_9'), Js(4.0), var.get('T').get('44')))
                var.put('d', var.get('HH')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_12'), Js(11.0), var.get('T').get('45')))
                var.put('c', var.get('HH')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_15'), Js(16.0), var.get('T').get('46')))
                var.put('b', var.get('HH')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_2'), Js(23.0), var.get('T').get('47')))
                var.put('a', var.get('II')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_0'), Js(6.0), var.get('T').get('48')))
                var.put('d', var.get('II')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_7'), Js(10.0), var.get('T').get('49')))
                var.put('c', var.get('II')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_14'), Js(15.0), var.get('T').get('50')))
                var.put('b', var.get('II')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_5'), Js(21.0), var.get('T').get('51')))
                var.put('a', var.get('II')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_12'), Js(6.0), var.get('T').get('52')))
                var.put('d', var.get('II')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_3'), Js(10.0), var.get('T').get('53')))
                var.put('c', var.get('II')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_10'), Js(15.0), var.get('T').get('54')))
                var.put('b', var.get('II')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_1'), Js(21.0), var.get('T').get('55')))
                var.put('a', var.get('II')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_8'), Js(6.0), var.get('T').get('56')))
                var.put('d', var.get('II')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_15'), Js(10.0), var.get('T').get('57')))
                var.put('c', var.get('II')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_6'), Js(15.0), var.get('T').get('58')))
                var.put('b', var.get('II')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_13'), Js(21.0), var.get('T').get('59')))
                var.put('a', var.get('II')(var.get('a'), var.get('b'), var.get('c'), var.get('d'), var.get('M_offset_4'), Js(6.0), var.get('T').get('60')))
                var.put('d', var.get('II')(var.get('d'), var.get('a'), var.get('b'), var.get('c'), var.get('M_offset_11'), Js(10.0), var.get('T').get('61')))
                var.put('c', var.get('II')(var.get('c'), var.get('d'), var.get('a'), var.get('b'), var.get('M_offset_2'), Js(15.0), var.get('T').get('62')))
                var.put('b', var.get('II')(var.get('b'), var.get('c'), var.get('d'), var.get('a'), var.get('M_offset_9'), Js(21.0), var.get('T').get('63')))
                var.get('H').put('0', ((var.get('H').get('0')+var.get('a'))|Js(0.0)))
                var.get('H').put('1', ((var.get('H').get('1')+var.get('b'))|Js(0.0)))
                var.get('H').put('2', ((var.get('H').get('2')+var.get('c'))|Js(0.0)))
                var.get('H').put('3', ((var.get('H').get('3')+var.get('d'))|Js(0.0)))
            PyJs__doProcessBlock_194_._set_name('_doProcessBlock')
            @Js
            def PyJs__doFinalize_195_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doFinalize':PyJs__doFinalize_195_}, var)
                var.registers(['data', 'dataWords', 'nBitsLeft', 'i', 'H_i', 'nBitsTotalL', 'hash', 'nBitsTotalH', 'nBitsTotal', 'H'])
                var.put('data', var.get(u"this").get('_data'))
                var.put('dataWords', var.get('data').get('words'))
                var.put('nBitsTotal', (var.get(u"this").get('_nDataBytes')*Js(8.0)))
                var.put('nBitsLeft', (var.get('data').get('sigBytes')*Js(8.0)))
                var.get('dataWords').put(PyJsBshift(var.get('nBitsLeft'),Js(5.0)), (Js(128)<<(Js(24.0)-(var.get('nBitsLeft')%Js(32.0)))), '|')
                var.put('nBitsTotalH', var.get('Math').callprop('floor', (var.get('nBitsTotal')/Js(4294967296))))
                var.put('nBitsTotalL', var.get('nBitsTotal'))
                var.get('dataWords').put(((PyJsBshift((var.get('nBitsLeft')+Js(64.0)),Js(9.0))<<Js(4.0))+Js(15.0)), ((((var.get('nBitsTotalH')<<Js(8.0))|PyJsBshift(var.get('nBitsTotalH'),Js(24.0)))&Js(16711935))|(((var.get('nBitsTotalH')<<Js(24.0))|PyJsBshift(var.get('nBitsTotalH'),Js(8.0)))&Js(4278255360))))
                var.get('dataWords').put(((PyJsBshift((var.get('nBitsLeft')+Js(64.0)),Js(9.0))<<Js(4.0))+Js(14.0)), ((((var.get('nBitsTotalL')<<Js(8.0))|PyJsBshift(var.get('nBitsTotalL'),Js(24.0)))&Js(16711935))|(((var.get('nBitsTotalL')<<Js(24.0))|PyJsBshift(var.get('nBitsTotalL'),Js(8.0)))&Js(4278255360))))
                var.get('data').put('sigBytes', ((var.get('dataWords').get('length')+Js(1.0))*Js(4.0)))
                var.get(u"this").callprop('_process')
                var.put('hash', var.get(u"this").get('_hash'))
                var.put('H', var.get('hash').get('words'))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(4.0)):
                    try:
                        var.put('H_i', var.get('H').get(var.get('i')))
                        var.get('H').put(var.get('i'), ((((var.get('H_i')<<Js(8.0))|PyJsBshift(var.get('H_i'),Js(24.0)))&Js(16711935))|(((var.get('H_i')<<Js(24.0))|PyJsBshift(var.get('H_i'),Js(8.0)))&Js(4278255360))))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                return var.get('hash')
            PyJs__doFinalize_195_._set_name('_doFinalize')
            @Js
            def PyJs_clone_196_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'clone':PyJs_clone_196_}, var)
                var.registers(['clone'])
                var.put('clone', var.get('Hasher').get('clone').callprop('call', var.get(u"this")))
                var.get('clone').put('_hash', var.get(u"this").get('_hash').callprop('clone'))
                return var.get('clone')
            PyJs_clone_196_._set_name('clone')
            PyJs_Object_192_ = Js({'_doReset':PyJs__doReset_193_,'_doProcessBlock':PyJs__doProcessBlock_194_,'_doFinalize':PyJs__doFinalize_195_,'clone':PyJs_clone_196_})
            var.put('MD5', var.get('C_algo').put('MD5', var.get('Hasher').callprop('extend', PyJs_Object_192_)))
            pass
            pass
            pass
            pass
            var.get('C').put('MD5', var.get('Hasher').callprop('_createHelper', var.get('MD5')))
            var.get('C').put('HmacMD5', var.get('Hasher').callprop('_createHmacHelper', var.get('MD5')))
        PyJs_anonymous_190_._set_name('anonymous')
        PyJs_anonymous_190_(var.get('Math'))
        return var.get('CryptoJS').get('MD5')
    PyJs_anonymous_189_._set_name('anonymous')
    @Js
    def PyJs_anonymous_197_(root, factory, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_197_._set_name('anonymous')
    PyJs_anonymous_197_(var.get(u"this"), PyJs_anonymous_189_)
PyJs_anonymous_188_._set_name('anonymous')
PyJs_Object_198_ = Js({'./core':Js(3.0)})
@Js
def PyJs_anonymous_199_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_200_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_201_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['CFB', 'generateKeystreamAndEncrypt'])
            @Js
            def PyJsHoisted_generateKeystreamAndEncrypt_(words, offset, blockSize, cipher, this, arguments, var=var):
                var = Scope({'words':words, 'offset':offset, 'blockSize':blockSize, 'cipher':cipher, 'this':this, 'arguments':arguments}, var)
                var.registers(['blockSize', 'i', 'words', 'keystream', 'cipher', 'iv', 'offset'])
                var.put('iv', var.get(u"this").get('_iv'))
                if var.get('iv'):
                    var.put('keystream', var.get('iv').callprop('slice', Js(0.0)))
                    var.get(u"this").put('_iv', var.get('undefined'))
                else:
                    var.put('keystream', var.get(u"this").get('_prevBlock'))
                var.get('cipher').callprop('encryptBlock', var.get('keystream'), Js(0.0))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('blockSize')):
                    try:
                        var.get('words').put((var.get('offset')+var.get('i')), var.get('keystream').get(var.get('i')), '^')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJsHoisted_generateKeystreamAndEncrypt_.func_name = 'generateKeystreamAndEncrypt'
            var.put('generateKeystreamAndEncrypt', PyJsHoisted_generateKeystreamAndEncrypt_)
            var.put('CFB', var.get('CryptoJS').get('lib').get('BlockCipherMode').callprop('extend'))
            @Js
            def PyJs_processBlock_203_(words, offset, this, arguments, var=var):
                var = Scope({'words':words, 'offset':offset, 'this':this, 'arguments':arguments, 'processBlock':PyJs_processBlock_203_}, var)
                var.registers(['blockSize', 'cipher', 'words', 'offset'])
                var.put('cipher', var.get(u"this").get('_cipher'))
                var.put('blockSize', var.get('cipher').get('blockSize'))
                var.get('generateKeystreamAndEncrypt').callprop('call', var.get(u"this"), var.get('words'), var.get('offset'), var.get('blockSize'), var.get('cipher'))
                var.get(u"this").put('_prevBlock', var.get('words').callprop('slice', var.get('offset'), (var.get('offset')+var.get('blockSize'))))
            PyJs_processBlock_203_._set_name('processBlock')
            PyJs_Object_202_ = Js({'processBlock':PyJs_processBlock_203_})
            var.get('CFB').put('Encryptor', var.get('CFB').callprop('extend', PyJs_Object_202_))
            @Js
            def PyJs_processBlock_205_(words, offset, this, arguments, var=var):
                var = Scope({'words':words, 'offset':offset, 'this':this, 'arguments':arguments, 'processBlock':PyJs_processBlock_205_}, var)
                var.registers(['thisBlock', 'blockSize', 'words', 'cipher', 'offset'])
                var.put('cipher', var.get(u"this").get('_cipher'))
                var.put('blockSize', var.get('cipher').get('blockSize'))
                var.put('thisBlock', var.get('words').callprop('slice', var.get('offset'), (var.get('offset')+var.get('blockSize'))))
                var.get('generateKeystreamAndEncrypt').callprop('call', var.get(u"this"), var.get('words'), var.get('offset'), var.get('blockSize'), var.get('cipher'))
                var.get(u"this").put('_prevBlock', var.get('thisBlock'))
            PyJs_processBlock_205_._set_name('processBlock')
            PyJs_Object_204_ = Js({'processBlock':PyJs_processBlock_205_})
            var.get('CFB').put('Decryptor', var.get('CFB').callprop('extend', PyJs_Object_204_))
            pass
            return var.get('CFB')
        PyJs_anonymous_201_._set_name('anonymous')
        var.get('CryptoJS').get('mode').put('CFB', PyJs_anonymous_201_())
        return var.get('CryptoJS').get('mode').get('CFB')
    PyJs_anonymous_200_._set_name('anonymous')
    @Js
    def PyJs_anonymous_206_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_206_._set_name('anonymous')
    PyJs_anonymous_206_(var.get(u"this"), PyJs_anonymous_200_)
PyJs_anonymous_199_._set_name('anonymous')
PyJs_Object_207_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0)})
@Js
def PyJs_anonymous_208_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_209_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_210_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['incCounter', 'CTRGladman', 'incWord', 'Encryptor'])
            @Js
            def PyJsHoisted_incWord_(word, this, arguments, var=var):
                var = Scope({'word':word, 'this':this, 'arguments':arguments}, var)
                var.registers(['b3', 'b1', 'b2', 'word'])
                if PyJsStrictEq(((var.get('word')>>Js(24.0))&Js(255)),Js(255)):
                    var.put('b1', ((var.get('word')>>Js(16.0))&Js(255)))
                    var.put('b2', ((var.get('word')>>Js(8.0))&Js(255)))
                    var.put('b3', (var.get('word')&Js(255)))
                    if PyJsStrictEq(var.get('b1'),Js(255)):
                        var.put('b1', Js(0.0))
                        if PyJsStrictEq(var.get('b2'),Js(255)):
                            var.put('b2', Js(0.0))
                            if PyJsStrictEq(var.get('b3'),Js(255)):
                                var.put('b3', Js(0.0))
                            else:
                                var.put('b3',Js(var.get('b3').to_number())+Js(1))
                        else:
                            var.put('b2',Js(var.get('b2').to_number())+Js(1))
                    else:
                        var.put('b1',Js(var.get('b1').to_number())+Js(1))
                    var.put('word', Js(0.0))
                    var.put('word', (var.get('b1')<<Js(16.0)), '+')
                    var.put('word', (var.get('b2')<<Js(8.0)), '+')
                    var.put('word', var.get('b3'), '+')
                else:
                    var.put('word', (Js(1)<<Js(24.0)), '+')
                return var.get('word')
            PyJsHoisted_incWord_.func_name = 'incWord'
            var.put('incWord', PyJsHoisted_incWord_)
            @Js
            def PyJsHoisted_incCounter_(counter, this, arguments, var=var):
                var = Scope({'counter':counter, 'this':this, 'arguments':arguments}, var)
                var.registers(['counter'])
                if PyJsStrictEq(var.get('counter').put('0', var.get('incWord')(var.get('counter').get('0'))),Js(0.0)):
                    var.get('counter').put('1', var.get('incWord')(var.get('counter').get('1')))
                return var.get('counter')
            PyJsHoisted_incCounter_.func_name = 'incCounter'
            var.put('incCounter', PyJsHoisted_incCounter_)
            var.put('CTRGladman', var.get('CryptoJS').get('lib').get('BlockCipherMode').callprop('extend'))
            pass
            pass
            @Js
            def PyJs_processBlock_212_(words, offset, this, arguments, var=var):
                var = Scope({'words':words, 'offset':offset, 'this':this, 'arguments':arguments, 'processBlock':PyJs_processBlock_212_}, var)
                var.registers(['blockSize', 'i', 'words', 'counter', 'keystream', 'cipher', 'iv', 'offset'])
                var.put('cipher', var.get(u"this").get('_cipher'))
                var.put('blockSize', var.get('cipher').get('blockSize'))
                var.put('iv', var.get(u"this").get('_iv'))
                var.put('counter', var.get(u"this").get('_counter'))
                if var.get('iv'):
                    var.put('counter', var.get(u"this").put('_counter', var.get('iv').callprop('slice', Js(0.0))))
                    var.get(u"this").put('_iv', var.get('undefined'))
                var.get('incCounter')(var.get('counter'))
                var.put('keystream', var.get('counter').callprop('slice', Js(0.0)))
                var.get('cipher').callprop('encryptBlock', var.get('keystream'), Js(0.0))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('blockSize')):
                    try:
                        var.get('words').put((var.get('offset')+var.get('i')), var.get('keystream').get(var.get('i')), '^')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJs_processBlock_212_._set_name('processBlock')
            PyJs_Object_211_ = Js({'processBlock':PyJs_processBlock_212_})
            var.put('Encryptor', var.get('CTRGladman').put('Encryptor', var.get('CTRGladman').callprop('extend', PyJs_Object_211_)))
            var.get('CTRGladman').put('Decryptor', var.get('Encryptor'))
            return var.get('CTRGladman')
        PyJs_anonymous_210_._set_name('anonymous')
        var.get('CryptoJS').get('mode').put('CTRGladman', PyJs_anonymous_210_())
        return var.get('CryptoJS').get('mode').get('CTRGladman')
    PyJs_anonymous_209_._set_name('anonymous')
    @Js
    def PyJs_anonymous_213_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_213_._set_name('anonymous')
    PyJs_anonymous_213_(var.get(u"this"), PyJs_anonymous_209_)
PyJs_anonymous_208_._set_name('anonymous')
PyJs_Object_214_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0)})
@Js
def PyJs_anonymous_215_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_216_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_217_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['CTR', 'Encryptor'])
            var.put('CTR', var.get('CryptoJS').get('lib').get('BlockCipherMode').callprop('extend'))
            @Js
            def PyJs_processBlock_219_(words, offset, this, arguments, var=var):
                var = Scope({'words':words, 'offset':offset, 'this':this, 'arguments':arguments, 'processBlock':PyJs_processBlock_219_}, var)
                var.registers(['blockSize', 'i', 'words', 'counter', 'keystream', 'cipher', 'iv', 'offset'])
                var.put('cipher', var.get(u"this").get('_cipher'))
                var.put('blockSize', var.get('cipher').get('blockSize'))
                var.put('iv', var.get(u"this").get('_iv'))
                var.put('counter', var.get(u"this").get('_counter'))
                if var.get('iv'):
                    var.put('counter', var.get(u"this").put('_counter', var.get('iv').callprop('slice', Js(0.0))))
                    var.get(u"this").put('_iv', var.get('undefined'))
                var.put('keystream', var.get('counter').callprop('slice', Js(0.0)))
                var.get('cipher').callprop('encryptBlock', var.get('keystream'), Js(0.0))
                var.get('counter').put((var.get('blockSize')-Js(1.0)), ((var.get('counter').get((var.get('blockSize')-Js(1.0)))+Js(1.0))|Js(0.0)))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('blockSize')):
                    try:
                        var.get('words').put((var.get('offset')+var.get('i')), var.get('keystream').get(var.get('i')), '^')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJs_processBlock_219_._set_name('processBlock')
            PyJs_Object_218_ = Js({'processBlock':PyJs_processBlock_219_})
            var.put('Encryptor', var.get('CTR').put('Encryptor', var.get('CTR').callprop('extend', PyJs_Object_218_)))
            var.get('CTR').put('Decryptor', var.get('Encryptor'))
            return var.get('CTR')
        PyJs_anonymous_217_._set_name('anonymous')
        var.get('CryptoJS').get('mode').put('CTR', PyJs_anonymous_217_())
        return var.get('CryptoJS').get('mode').get('CTR')
    PyJs_anonymous_216_._set_name('anonymous')
    @Js
    def PyJs_anonymous_220_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_220_._set_name('anonymous')
    PyJs_anonymous_220_(var.get(u"this"), PyJs_anonymous_216_)
PyJs_anonymous_215_._set_name('anonymous')
PyJs_Object_221_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0)})
@Js
def PyJs_anonymous_222_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_223_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_224_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['ECB'])
            var.put('ECB', var.get('CryptoJS').get('lib').get('BlockCipherMode').callprop('extend'))
            @Js
            def PyJs_processBlock_226_(words, offset, this, arguments, var=var):
                var = Scope({'words':words, 'offset':offset, 'this':this, 'arguments':arguments, 'processBlock':PyJs_processBlock_226_}, var)
                var.registers(['words', 'offset'])
                var.get(u"this").get('_cipher').callprop('encryptBlock', var.get('words'), var.get('offset'))
            PyJs_processBlock_226_._set_name('processBlock')
            PyJs_Object_225_ = Js({'processBlock':PyJs_processBlock_226_})
            var.get('ECB').put('Encryptor', var.get('ECB').callprop('extend', PyJs_Object_225_))
            @Js
            def PyJs_processBlock_228_(words, offset, this, arguments, var=var):
                var = Scope({'words':words, 'offset':offset, 'this':this, 'arguments':arguments, 'processBlock':PyJs_processBlock_228_}, var)
                var.registers(['words', 'offset'])
                var.get(u"this").get('_cipher').callprop('decryptBlock', var.get('words'), var.get('offset'))
            PyJs_processBlock_228_._set_name('processBlock')
            PyJs_Object_227_ = Js({'processBlock':PyJs_processBlock_228_})
            var.get('ECB').put('Decryptor', var.get('ECB').callprop('extend', PyJs_Object_227_))
            return var.get('ECB')
        PyJs_anonymous_224_._set_name('anonymous')
        var.get('CryptoJS').get('mode').put('ECB', PyJs_anonymous_224_())
        return var.get('CryptoJS').get('mode').get('ECB')
    PyJs_anonymous_223_._set_name('anonymous')
    @Js
    def PyJs_anonymous_229_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_229_._set_name('anonymous')
    PyJs_anonymous_229_(var.get(u"this"), PyJs_anonymous_223_)
PyJs_anonymous_222_._set_name('anonymous')
PyJs_Object_230_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0)})
@Js
def PyJs_anonymous_231_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_232_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_233_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['OFB', 'Encryptor'])
            var.put('OFB', var.get('CryptoJS').get('lib').get('BlockCipherMode').callprop('extend'))
            @Js
            def PyJs_processBlock_235_(words, offset, this, arguments, var=var):
                var = Scope({'words':words, 'offset':offset, 'this':this, 'arguments':arguments, 'processBlock':PyJs_processBlock_235_}, var)
                var.registers(['blockSize', 'i', 'words', 'keystream', 'cipher', 'iv', 'offset'])
                var.put('cipher', var.get(u"this").get('_cipher'))
                var.put('blockSize', var.get('cipher').get('blockSize'))
                var.put('iv', var.get(u"this").get('_iv'))
                var.put('keystream', var.get(u"this").get('_keystream'))
                if var.get('iv'):
                    var.put('keystream', var.get(u"this").put('_keystream', var.get('iv').callprop('slice', Js(0.0))))
                    var.get(u"this").put('_iv', var.get('undefined'))
                var.get('cipher').callprop('encryptBlock', var.get('keystream'), Js(0.0))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('blockSize')):
                    try:
                        var.get('words').put((var.get('offset')+var.get('i')), var.get('keystream').get(var.get('i')), '^')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJs_processBlock_235_._set_name('processBlock')
            PyJs_Object_234_ = Js({'processBlock':PyJs_processBlock_235_})
            var.put('Encryptor', var.get('OFB').put('Encryptor', var.get('OFB').callprop('extend', PyJs_Object_234_)))
            var.get('OFB').put('Decryptor', var.get('Encryptor'))
            return var.get('OFB')
        PyJs_anonymous_233_._set_name('anonymous')
        var.get('CryptoJS').get('mode').put('OFB', PyJs_anonymous_233_())
        return var.get('CryptoJS').get('mode').get('OFB')
    PyJs_anonymous_232_._set_name('anonymous')
    @Js
    def PyJs_anonymous_236_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_236_._set_name('anonymous')
    PyJs_anonymous_236_(var.get(u"this"), PyJs_anonymous_232_)
PyJs_anonymous_231_._set_name('anonymous')
PyJs_Object_237_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0)})
@Js
def PyJs_anonymous_238_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_239_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_pad_241_(data, blockSize, this, arguments, var=var):
            var = Scope({'data':data, 'blockSize':blockSize, 'this':this, 'arguments':arguments, 'pad':PyJs_pad_241_}, var)
            var.registers(['data', 'lastBytePos', 'blockSize', 'nPaddingBytes', 'blockSizeBytes', 'dataSigBytes'])
            var.put('dataSigBytes', var.get('data').get('sigBytes'))
            var.put('blockSizeBytes', (var.get('blockSize')*Js(4.0)))
            var.put('nPaddingBytes', (var.get('blockSizeBytes')-(var.get('dataSigBytes')%var.get('blockSizeBytes'))))
            var.put('lastBytePos', ((var.get('dataSigBytes')+var.get('nPaddingBytes'))-Js(1.0)))
            var.get('data').callprop('clamp')
            var.get('data').get('words').put(PyJsBshift(var.get('lastBytePos'),Js(2.0)), (var.get('nPaddingBytes')<<(Js(24.0)-((var.get('lastBytePos')%Js(4.0))*Js(8.0)))), '|')
            var.get('data').put('sigBytes', var.get('nPaddingBytes'), '+')
        PyJs_pad_241_._set_name('pad')
        @Js
        def PyJs_unpad_242_(data, this, arguments, var=var):
            var = Scope({'data':data, 'this':this, 'arguments':arguments, 'unpad':PyJs_unpad_242_}, var)
            var.registers(['data', 'nPaddingBytes'])
            var.put('nPaddingBytes', (var.get('data').get('words').get(PyJsBshift((var.get('data').get('sigBytes')-Js(1.0)),Js(2.0)))&Js(255)))
            var.get('data').put('sigBytes', var.get('nPaddingBytes'), '-')
        PyJs_unpad_242_._set_name('unpad')
        PyJs_Object_240_ = Js({'pad':PyJs_pad_241_,'unpad':PyJs_unpad_242_})
        var.get('CryptoJS').get('pad').put('AnsiX923', PyJs_Object_240_)
        return var.get('CryptoJS').get('pad').get('Ansix923')
    PyJs_anonymous_239_._set_name('anonymous')
    @Js
    def PyJs_anonymous_243_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_243_._set_name('anonymous')
    PyJs_anonymous_243_(var.get(u"this"), PyJs_anonymous_239_)
PyJs_anonymous_238_._set_name('anonymous')
PyJs_Object_244_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0)})
@Js
def PyJs_anonymous_245_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_246_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_pad_248_(data, blockSize, this, arguments, var=var):
            var = Scope({'data':data, 'blockSize':blockSize, 'this':this, 'arguments':arguments, 'pad':PyJs_pad_248_}, var)
            var.registers(['blockSize', 'data', 'blockSizeBytes', 'nPaddingBytes'])
            var.put('blockSizeBytes', (var.get('blockSize')*Js(4.0)))
            var.put('nPaddingBytes', (var.get('blockSizeBytes')-(var.get('data').get('sigBytes')%var.get('blockSizeBytes'))))
            var.get('data').callprop('concat', var.get('CryptoJS').get('lib').get('WordArray').callprop('random', (var.get('nPaddingBytes')-Js(1.0)))).callprop('concat', var.get('CryptoJS').get('lib').get('WordArray').callprop('create', Js([(var.get('nPaddingBytes')<<Js(24.0))]), Js(1.0)))
        PyJs_pad_248_._set_name('pad')
        @Js
        def PyJs_unpad_249_(data, this, arguments, var=var):
            var = Scope({'data':data, 'this':this, 'arguments':arguments, 'unpad':PyJs_unpad_249_}, var)
            var.registers(['data', 'nPaddingBytes'])
            var.put('nPaddingBytes', (var.get('data').get('words').get(PyJsBshift((var.get('data').get('sigBytes')-Js(1.0)),Js(2.0)))&Js(255)))
            var.get('data').put('sigBytes', var.get('nPaddingBytes'), '-')
        PyJs_unpad_249_._set_name('unpad')
        PyJs_Object_247_ = Js({'pad':PyJs_pad_248_,'unpad':PyJs_unpad_249_})
        var.get('CryptoJS').get('pad').put('Iso10126', PyJs_Object_247_)
        return var.get('CryptoJS').get('pad').get('Iso10126')
    PyJs_anonymous_246_._set_name('anonymous')
    @Js
    def PyJs_anonymous_250_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_250_._set_name('anonymous')
    PyJs_anonymous_250_(var.get(u"this"), PyJs_anonymous_246_)
PyJs_anonymous_245_._set_name('anonymous')
PyJs_Object_251_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0)})
@Js
def PyJs_anonymous_252_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_253_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_pad_255_(data, blockSize, this, arguments, var=var):
            var = Scope({'data':data, 'blockSize':blockSize, 'this':this, 'arguments':arguments, 'pad':PyJs_pad_255_}, var)
            var.registers(['blockSize', 'data'])
            var.get('data').callprop('concat', var.get('CryptoJS').get('lib').get('WordArray').callprop('create', Js([Js(2147483648)]), Js(1.0)))
            var.get('CryptoJS').get('pad').get('ZeroPadding').callprop('pad', var.get('data'), var.get('blockSize'))
        PyJs_pad_255_._set_name('pad')
        @Js
        def PyJs_unpad_256_(data, this, arguments, var=var):
            var = Scope({'data':data, 'this':this, 'arguments':arguments, 'unpad':PyJs_unpad_256_}, var)
            var.registers(['data'])
            var.get('CryptoJS').get('pad').get('ZeroPadding').callprop('unpad', var.get('data'))
            (var.get('data').put('sigBytes',Js(var.get('data').get('sigBytes').to_number())-Js(1))+Js(1))
        PyJs_unpad_256_._set_name('unpad')
        PyJs_Object_254_ = Js({'pad':PyJs_pad_255_,'unpad':PyJs_unpad_256_})
        var.get('CryptoJS').get('pad').put('Iso97971', PyJs_Object_254_)
        return var.get('CryptoJS').get('pad').get('Iso97971')
    PyJs_anonymous_253_._set_name('anonymous')
    @Js
    def PyJs_anonymous_257_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_257_._set_name('anonymous')
    PyJs_anonymous_257_(var.get(u"this"), PyJs_anonymous_253_)
PyJs_anonymous_252_._set_name('anonymous')
PyJs_Object_258_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0)})
@Js
def PyJs_anonymous_259_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_260_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_pad_262_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments, 'pad':PyJs_pad_262_}, var)
            var.registers([])
            pass
        PyJs_pad_262_._set_name('pad')
        @Js
        def PyJs_unpad_263_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments, 'unpad':PyJs_unpad_263_}, var)
            var.registers([])
            pass
        PyJs_unpad_263_._set_name('unpad')
        PyJs_Object_261_ = Js({'pad':PyJs_pad_262_,'unpad':PyJs_unpad_263_})
        var.get('CryptoJS').get('pad').put('NoPadding', PyJs_Object_261_)
        return var.get('CryptoJS').get('pad').get('NoPadding')
    PyJs_anonymous_260_._set_name('anonymous')
    @Js
    def PyJs_anonymous_264_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_264_._set_name('anonymous')
    PyJs_anonymous_264_(var.get(u"this"), PyJs_anonymous_260_)
PyJs_anonymous_259_._set_name('anonymous')
PyJs_Object_265_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0)})
@Js
def PyJs_anonymous_266_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_267_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_pad_269_(data, blockSize, this, arguments, var=var):
            var = Scope({'data':data, 'blockSize':blockSize, 'this':this, 'arguments':arguments, 'pad':PyJs_pad_269_}, var)
            var.registers(['blockSize', 'data', 'blockSizeBytes'])
            var.put('blockSizeBytes', (var.get('blockSize')*Js(4.0)))
            var.get('data').callprop('clamp')
            var.get('data').put('sigBytes', (var.get('blockSizeBytes')-((var.get('data').get('sigBytes')%var.get('blockSizeBytes')) or var.get('blockSizeBytes'))), '+')
        PyJs_pad_269_._set_name('pad')
        @Js
        def PyJs_unpad_270_(data, this, arguments, var=var):
            var = Scope({'data':data, 'this':this, 'arguments':arguments, 'unpad':PyJs_unpad_270_}, var)
            var.registers(['data', 'dataWords', 'i'])
            var.put('dataWords', var.get('data').get('words'))
            var.put('i', (var.get('data').get('sigBytes')-Js(1.0)))
            while (PyJsBshift(var.get('dataWords').get(PyJsBshift(var.get('i'),Js(2.0))),(Js(24.0)-((var.get('i')%Js(4.0))*Js(8.0))))&Js(255)).neg():
                (var.put('i',Js(var.get('i').to_number())-Js(1))+Js(1))
            var.get('data').put('sigBytes', (var.get('i')+Js(1.0)))
        PyJs_unpad_270_._set_name('unpad')
        PyJs_Object_268_ = Js({'pad':PyJs_pad_269_,'unpad':PyJs_unpad_270_})
        var.get('CryptoJS').get('pad').put('ZeroPadding', PyJs_Object_268_)
        return var.get('CryptoJS').get('pad').get('ZeroPadding')
    PyJs_anonymous_267_._set_name('anonymous')
    @Js
    def PyJs_anonymous_271_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_271_._set_name('anonymous')
    PyJs_anonymous_271_(var.get(u"this"), PyJs_anonymous_267_)
PyJs_anonymous_266_._set_name('anonymous')
PyJs_Object_272_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0)})
@Js
def PyJs_anonymous_273_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_274_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_275_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['C_algo', 'PBKDF2', 'C_lib', 'WordArray', 'C', 'SHA1', 'HMAC', 'Base'])
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('Base', var.get('C_lib').get('Base'))
            var.put('WordArray', var.get('C_lib').get('WordArray'))
            var.put('C_algo', var.get('C').get('algo'))
            var.put('SHA1', var.get('C_algo').get('SHA1'))
            var.put('HMAC', var.get('C_algo').get('HMAC'))
            PyJs_Object_277_ = Js({'keySize':(Js(128.0)/Js(32.0)),'hasher':var.get('SHA1'),'iterations':Js(1.0)})
            @Js
            def PyJs_init_278_(cfg, this, arguments, var=var):
                var = Scope({'cfg':cfg, 'this':this, 'arguments':arguments, 'init':PyJs_init_278_}, var)
                var.registers(['cfg'])
                var.get(u"this").put('cfg', var.get(u"this").get('cfg').callprop('extend', var.get('cfg')))
            PyJs_init_278_._set_name('init')
            @Js
            def PyJs_compute_279_(password, salt, this, arguments, var=var):
                var = Scope({'password':password, 'salt':salt, 'this':this, 'arguments':arguments, 'compute':PyJs_compute_279_}, var)
                var.registers(['derivedKeyWords', 'cfg', 'derivedKey', 'blockIndexWords', 'blockWords', 'blockIndex', 'keySize', 'intermediateWords', 'i', 'salt', 'password', 'iterations', 'intermediate', 'blockWordsLength', 'hmac', 'j', 'block'])
                var.put('cfg', var.get(u"this").get('cfg'))
                var.put('hmac', var.get('HMAC').callprop('create', var.get('cfg').get('hasher'), var.get('password')))
                var.put('derivedKey', var.get('WordArray').callprop('create'))
                var.put('blockIndex', var.get('WordArray').callprop('create', Js([Js(1)])))
                var.put('derivedKeyWords', var.get('derivedKey').get('words'))
                var.put('blockIndexWords', var.get('blockIndex').get('words'))
                var.put('keySize', var.get('cfg').get('keySize'))
                var.put('iterations', var.get('cfg').get('iterations'))
                while (var.get('derivedKeyWords').get('length')<var.get('keySize')):
                    var.put('block', var.get('hmac').callprop('update', var.get('salt')).callprop('finalize', var.get('blockIndex')))
                    var.get('hmac').callprop('reset')
                    var.put('blockWords', var.get('block').get('words'))
                    var.put('blockWordsLength', var.get('blockWords').get('length'))
                    var.put('intermediate', var.get('block'))
                    #for JS loop
                    var.put('i', Js(1.0))
                    while (var.get('i')<var.get('iterations')):
                        try:
                            var.put('intermediate', var.get('hmac').callprop('finalize', var.get('intermediate')))
                            var.get('hmac').callprop('reset')
                            var.put('intermediateWords', var.get('intermediate').get('words'))
                            #for JS loop
                            var.put('j', Js(0.0))
                            while (var.get('j')<var.get('blockWordsLength')):
                                try:
                                    var.get('blockWords').put(var.get('j'), var.get('intermediateWords').get(var.get('j')), '^')
                                finally:
                                        (var.put('j',Js(var.get('j').to_number())+Js(1))-Js(1))
                        finally:
                                (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                    var.get('derivedKey').callprop('concat', var.get('block'))
                    (var.get('blockIndexWords').put('0',Js(var.get('blockIndexWords').get('0').to_number())+Js(1))-Js(1))
                var.get('derivedKey').put('sigBytes', (var.get('keySize')*Js(4.0)))
                return var.get('derivedKey')
            PyJs_compute_279_._set_name('compute')
            PyJs_Object_276_ = Js({'cfg':var.get('Base').callprop('extend', PyJs_Object_277_),'init':PyJs_init_278_,'compute':PyJs_compute_279_})
            var.put('PBKDF2', var.get('C_algo').put('PBKDF2', var.get('Base').callprop('extend', PyJs_Object_276_)))
            @Js
            def PyJs_anonymous_280_(password, salt, cfg, this, arguments, var=var):
                var = Scope({'password':password, 'salt':salt, 'cfg':cfg, 'this':this, 'arguments':arguments}, var)
                var.registers(['cfg', 'salt', 'password'])
                return var.get('PBKDF2').callprop('create', var.get('cfg')).callprop('compute', var.get('password'), var.get('salt'))
            PyJs_anonymous_280_._set_name('anonymous')
            var.get('C').put('PBKDF2', PyJs_anonymous_280_)
        PyJs_anonymous_275_._set_name('anonymous')
        PyJs_anonymous_275_()
        return var.get('CryptoJS').get('PBKDF2')
    PyJs_anonymous_274_._set_name('anonymous')
    @Js
    def PyJs_anonymous_281_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./sha1')), var.get('require')(Js('./hmac')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./sha1'), Js('./hmac')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_281_._set_name('anonymous')
    PyJs_anonymous_281_(var.get(u"this"), PyJs_anonymous_274_)
PyJs_anonymous_273_._set_name('anonymous')
PyJs_Object_282_ = Js({'./core':Js(3.0),'./hmac':Js(8.0),'./sha1':Js(27.0)})
@Js
def PyJs_anonymous_283_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_284_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_285_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['StreamCipher', 'G', 'C_algo', 'RabbitLegacy', 'nextState', 'C_lib', 'C', 'S', 'C_'])
            @Js
            def PyJsHoisted_nextState_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['gh', 'ga', 'i', 'gl', 'C', 'gb', 'X', 'gx'])
                var.put('X', var.get(u"this").get('_X'))
                var.put('C', var.get(u"this").get('_C'))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(8.0)):
                    try:
                        var.get('C_').put(var.get('i'), var.get('C').get(var.get('i')))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.get('C').put('0', (((var.get('C').get('0')+Js(1295307597))+var.get(u"this").get('_b'))|Js(0.0)))
                var.get('C').put('1', (((var.get('C').get('1')+Js(3545052371))+(Js(1.0) if (PyJsBshift(var.get('C').get('0'),Js(0.0))<PyJsBshift(var.get('C_').get('0'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get('C').put('2', (((var.get('C').get('2')+Js(886263092))+(Js(1.0) if (PyJsBshift(var.get('C').get('1'),Js(0.0))<PyJsBshift(var.get('C_').get('1'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get('C').put('3', (((var.get('C').get('3')+Js(1295307597))+(Js(1.0) if (PyJsBshift(var.get('C').get('2'),Js(0.0))<PyJsBshift(var.get('C_').get('2'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get('C').put('4', (((var.get('C').get('4')+Js(3545052371))+(Js(1.0) if (PyJsBshift(var.get('C').get('3'),Js(0.0))<PyJsBshift(var.get('C_').get('3'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get('C').put('5', (((var.get('C').get('5')+Js(886263092))+(Js(1.0) if (PyJsBshift(var.get('C').get('4'),Js(0.0))<PyJsBshift(var.get('C_').get('4'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get('C').put('6', (((var.get('C').get('6')+Js(1295307597))+(Js(1.0) if (PyJsBshift(var.get('C').get('5'),Js(0.0))<PyJsBshift(var.get('C_').get('5'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get('C').put('7', (((var.get('C').get('7')+Js(3545052371))+(Js(1.0) if (PyJsBshift(var.get('C').get('6'),Js(0.0))<PyJsBshift(var.get('C_').get('6'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get(u"this").put('_b', (Js(1.0) if (PyJsBshift(var.get('C').get('7'),Js(0.0))<PyJsBshift(var.get('C_').get('7'),Js(0.0))) else Js(0.0)))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(8.0)):
                    try:
                        var.put('gx', (var.get('X').get(var.get('i'))+var.get('C').get(var.get('i'))))
                        var.put('ga', (var.get('gx')&Js(65535)))
                        var.put('gb', PyJsBshift(var.get('gx'),Js(16.0)))
                        var.put('gh', (PyJsBshift((PyJsBshift((var.get('ga')*var.get('ga')),Js(17.0))+(var.get('ga')*var.get('gb'))),Js(15.0))+(var.get('gb')*var.get('gb'))))
                        var.put('gl', ((((var.get('gx')&Js(4294901760))*var.get('gx'))|Js(0.0))+(((var.get('gx')&Js(65535))*var.get('gx'))|Js(0.0))))
                        var.get('G').put(var.get('i'), (var.get('gh')^var.get('gl')))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.get('X').put('0', (((var.get('G').get('0')+((var.get('G').get('7')<<Js(16.0))|PyJsBshift(var.get('G').get('7'),Js(16.0))))+((var.get('G').get('6')<<Js(16.0))|PyJsBshift(var.get('G').get('6'),Js(16.0))))|Js(0.0)))
                var.get('X').put('1', (((var.get('G').get('1')+((var.get('G').get('0')<<Js(8.0))|PyJsBshift(var.get('G').get('0'),Js(24.0))))+var.get('G').get('7'))|Js(0.0)))
                var.get('X').put('2', (((var.get('G').get('2')+((var.get('G').get('1')<<Js(16.0))|PyJsBshift(var.get('G').get('1'),Js(16.0))))+((var.get('G').get('0')<<Js(16.0))|PyJsBshift(var.get('G').get('0'),Js(16.0))))|Js(0.0)))
                var.get('X').put('3', (((var.get('G').get('3')+((var.get('G').get('2')<<Js(8.0))|PyJsBshift(var.get('G').get('2'),Js(24.0))))+var.get('G').get('1'))|Js(0.0)))
                var.get('X').put('4', (((var.get('G').get('4')+((var.get('G').get('3')<<Js(16.0))|PyJsBshift(var.get('G').get('3'),Js(16.0))))+((var.get('G').get('2')<<Js(16.0))|PyJsBshift(var.get('G').get('2'),Js(16.0))))|Js(0.0)))
                var.get('X').put('5', (((var.get('G').get('5')+((var.get('G').get('4')<<Js(8.0))|PyJsBshift(var.get('G').get('4'),Js(24.0))))+var.get('G').get('3'))|Js(0.0)))
                var.get('X').put('6', (((var.get('G').get('6')+((var.get('G').get('5')<<Js(16.0))|PyJsBshift(var.get('G').get('5'),Js(16.0))))+((var.get('G').get('4')<<Js(16.0))|PyJsBshift(var.get('G').get('4'),Js(16.0))))|Js(0.0)))
                var.get('X').put('7', (((var.get('G').get('7')+((var.get('G').get('6')<<Js(8.0))|PyJsBshift(var.get('G').get('6'),Js(24.0))))+var.get('G').get('5'))|Js(0.0)))
            PyJsHoisted_nextState_.func_name = 'nextState'
            var.put('nextState', PyJsHoisted_nextState_)
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('StreamCipher', var.get('C_lib').get('StreamCipher'))
            var.put('C_algo', var.get('C').get('algo'))
            var.put('S', Js([]))
            var.put('C_', Js([]))
            var.put('G', Js([]))
            @Js
            def PyJs__doReset_287_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_287_}, var)
                var.registers(['IV_1', 'i2', 'K', 'IV_0', 'i', 'i0', 'C', 'X', 'i1', 'iv', 'IV', 'i3'])
                var.put('K', var.get(u"this").get('_key').get('words'))
                var.put('iv', var.get(u"this").get('cfg').get('iv'))
                def PyJs_LONG_288_(var=var):
                    return var.get(u"this").put('_X', Js([var.get('K').get('0'), ((var.get('K').get('3')<<Js(16.0))|PyJsBshift(var.get('K').get('2'),Js(16.0))), var.get('K').get('1'), ((var.get('K').get('0')<<Js(16.0))|PyJsBshift(var.get('K').get('3'),Js(16.0))), var.get('K').get('2'), ((var.get('K').get('1')<<Js(16.0))|PyJsBshift(var.get('K').get('0'),Js(16.0))), var.get('K').get('3'), ((var.get('K').get('2')<<Js(16.0))|PyJsBshift(var.get('K').get('1'),Js(16.0)))]))
                var.put('X', PyJs_LONG_288_())
                def PyJs_LONG_289_(var=var):
                    return var.get(u"this").put('_C', Js([((var.get('K').get('2')<<Js(16.0))|PyJsBshift(var.get('K').get('2'),Js(16.0))), ((var.get('K').get('0')&Js(4294901760))|(var.get('K').get('1')&Js(65535))), ((var.get('K').get('3')<<Js(16.0))|PyJsBshift(var.get('K').get('3'),Js(16.0))), ((var.get('K').get('1')&Js(4294901760))|(var.get('K').get('2')&Js(65535))), ((var.get('K').get('0')<<Js(16.0))|PyJsBshift(var.get('K').get('0'),Js(16.0))), ((var.get('K').get('2')&Js(4294901760))|(var.get('K').get('3')&Js(65535))), ((var.get('K').get('1')<<Js(16.0))|PyJsBshift(var.get('K').get('1'),Js(16.0))), ((var.get('K').get('3')&Js(4294901760))|(var.get('K').get('0')&Js(65535)))]))
                var.put('C', PyJs_LONG_289_())
                var.get(u"this").put('_b', Js(0.0))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(4.0)):
                    try:
                        var.get('nextState').callprop('call', var.get(u"this"))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(8.0)):
                    try:
                        var.get('C').put(var.get('i'), var.get('X').get(((var.get('i')+Js(4.0))&Js(7.0))), '^')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                if var.get('iv'):
                    var.put('IV', var.get('iv').get('words'))
                    var.put('IV_0', var.get('IV').get('0'))
                    var.put('IV_1', var.get('IV').get('1'))
                    var.put('i0', ((((var.get('IV_0')<<Js(8.0))|PyJsBshift(var.get('IV_0'),Js(24.0)))&Js(16711935))|(((var.get('IV_0')<<Js(24.0))|PyJsBshift(var.get('IV_0'),Js(8.0)))&Js(4278255360))))
                    var.put('i2', ((((var.get('IV_1')<<Js(8.0))|PyJsBshift(var.get('IV_1'),Js(24.0)))&Js(16711935))|(((var.get('IV_1')<<Js(24.0))|PyJsBshift(var.get('IV_1'),Js(8.0)))&Js(4278255360))))
                    var.put('i1', (PyJsBshift(var.get('i0'),Js(16.0))|(var.get('i2')&Js(4294901760))))
                    var.put('i3', ((var.get('i2')<<Js(16.0))|(var.get('i0')&Js(65535))))
                    var.get('C').put('0', var.get('i0'), '^')
                    var.get('C').put('1', var.get('i1'), '^')
                    var.get('C').put('2', var.get('i2'), '^')
                    var.get('C').put('3', var.get('i3'), '^')
                    var.get('C').put('4', var.get('i0'), '^')
                    var.get('C').put('5', var.get('i1'), '^')
                    var.get('C').put('6', var.get('i2'), '^')
                    var.get('C').put('7', var.get('i3'), '^')
                    #for JS loop
                    var.put('i', Js(0.0))
                    while (var.get('i')<Js(4.0)):
                        try:
                            var.get('nextState').callprop('call', var.get(u"this"))
                        finally:
                                (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJs__doReset_287_._set_name('_doReset')
            @Js
            def PyJs__doProcessBlock_290_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, '_doProcessBlock':PyJs__doProcessBlock_290_}, var)
                var.registers(['M', 'X', 'i', 'offset'])
                var.put('X', var.get(u"this").get('_X'))
                var.get('nextState').callprop('call', var.get(u"this"))
                var.get('S').put('0', ((var.get('X').get('0')^PyJsBshift(var.get('X').get('5'),Js(16.0)))^(var.get('X').get('3')<<Js(16.0))))
                var.get('S').put('1', ((var.get('X').get('2')^PyJsBshift(var.get('X').get('7'),Js(16.0)))^(var.get('X').get('5')<<Js(16.0))))
                var.get('S').put('2', ((var.get('X').get('4')^PyJsBshift(var.get('X').get('1'),Js(16.0)))^(var.get('X').get('7')<<Js(16.0))))
                var.get('S').put('3', ((var.get('X').get('6')^PyJsBshift(var.get('X').get('3'),Js(16.0)))^(var.get('X').get('1')<<Js(16.0))))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(4.0)):
                    try:
                        var.get('S').put(var.get('i'), ((((var.get('S').get(var.get('i'))<<Js(8.0))|PyJsBshift(var.get('S').get(var.get('i')),Js(24.0)))&Js(16711935))|(((var.get('S').get(var.get('i'))<<Js(24.0))|PyJsBshift(var.get('S').get(var.get('i')),Js(8.0)))&Js(4278255360))))
                        var.get('M').put((var.get('offset')+var.get('i')), var.get('S').get(var.get('i')), '^')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJs__doProcessBlock_290_._set_name('_doProcessBlock')
            PyJs_Object_286_ = Js({'_doReset':PyJs__doReset_287_,'_doProcessBlock':PyJs__doProcessBlock_290_,'blockSize':(Js(128.0)/Js(32.0)),'ivSize':(Js(64.0)/Js(32.0))})
            var.put('RabbitLegacy', var.get('C_algo').put('RabbitLegacy', var.get('StreamCipher').callprop('extend', PyJs_Object_286_)))
            pass
            var.get('C').put('RabbitLegacy', var.get('StreamCipher').callprop('_createHelper', var.get('RabbitLegacy')))
        PyJs_anonymous_285_._set_name('anonymous')
        PyJs_anonymous_285_()
        return var.get('CryptoJS').get('RabbitLegacy')
    PyJs_anonymous_284_._set_name('anonymous')
    @Js
    def PyJs_anonymous_291_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./enc-base64')), var.get('require')(Js('./md5')), var.get('require')(Js('./evpkdf')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./enc-base64'), Js('./md5'), Js('./evpkdf'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_291_._set_name('anonymous')
    PyJs_anonymous_291_(var.get(u"this"), PyJs_anonymous_284_)
PyJs_anonymous_283_._set_name('anonymous')
PyJs_Object_292_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0),'./enc-base64':Js(4.0),'./evpkdf':Js(6.0),'./md5':Js(11.0)})
@Js
def PyJs_anonymous_293_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_294_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_295_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['StreamCipher', 'G', 'C_algo', 'Rabbit', 'nextState', 'C_lib', 'C', 'S', 'C_'])
            @Js
            def PyJsHoisted_nextState_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['gh', 'ga', 'i', 'gl', 'C', 'gb', 'X', 'gx'])
                var.put('X', var.get(u"this").get('_X'))
                var.put('C', var.get(u"this").get('_C'))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(8.0)):
                    try:
                        var.get('C_').put(var.get('i'), var.get('C').get(var.get('i')))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.get('C').put('0', (((var.get('C').get('0')+Js(1295307597))+var.get(u"this").get('_b'))|Js(0.0)))
                var.get('C').put('1', (((var.get('C').get('1')+Js(3545052371))+(Js(1.0) if (PyJsBshift(var.get('C').get('0'),Js(0.0))<PyJsBshift(var.get('C_').get('0'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get('C').put('2', (((var.get('C').get('2')+Js(886263092))+(Js(1.0) if (PyJsBshift(var.get('C').get('1'),Js(0.0))<PyJsBshift(var.get('C_').get('1'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get('C').put('3', (((var.get('C').get('3')+Js(1295307597))+(Js(1.0) if (PyJsBshift(var.get('C').get('2'),Js(0.0))<PyJsBshift(var.get('C_').get('2'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get('C').put('4', (((var.get('C').get('4')+Js(3545052371))+(Js(1.0) if (PyJsBshift(var.get('C').get('3'),Js(0.0))<PyJsBshift(var.get('C_').get('3'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get('C').put('5', (((var.get('C').get('5')+Js(886263092))+(Js(1.0) if (PyJsBshift(var.get('C').get('4'),Js(0.0))<PyJsBshift(var.get('C_').get('4'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get('C').put('6', (((var.get('C').get('6')+Js(1295307597))+(Js(1.0) if (PyJsBshift(var.get('C').get('5'),Js(0.0))<PyJsBshift(var.get('C_').get('5'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get('C').put('7', (((var.get('C').get('7')+Js(3545052371))+(Js(1.0) if (PyJsBshift(var.get('C').get('6'),Js(0.0))<PyJsBshift(var.get('C_').get('6'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                var.get(u"this").put('_b', (Js(1.0) if (PyJsBshift(var.get('C').get('7'),Js(0.0))<PyJsBshift(var.get('C_').get('7'),Js(0.0))) else Js(0.0)))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(8.0)):
                    try:
                        var.put('gx', (var.get('X').get(var.get('i'))+var.get('C').get(var.get('i'))))
                        var.put('ga', (var.get('gx')&Js(65535)))
                        var.put('gb', PyJsBshift(var.get('gx'),Js(16.0)))
                        var.put('gh', (PyJsBshift((PyJsBshift((var.get('ga')*var.get('ga')),Js(17.0))+(var.get('ga')*var.get('gb'))),Js(15.0))+(var.get('gb')*var.get('gb'))))
                        var.put('gl', ((((var.get('gx')&Js(4294901760))*var.get('gx'))|Js(0.0))+(((var.get('gx')&Js(65535))*var.get('gx'))|Js(0.0))))
                        var.get('G').put(var.get('i'), (var.get('gh')^var.get('gl')))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.get('X').put('0', (((var.get('G').get('0')+((var.get('G').get('7')<<Js(16.0))|PyJsBshift(var.get('G').get('7'),Js(16.0))))+((var.get('G').get('6')<<Js(16.0))|PyJsBshift(var.get('G').get('6'),Js(16.0))))|Js(0.0)))
                var.get('X').put('1', (((var.get('G').get('1')+((var.get('G').get('0')<<Js(8.0))|PyJsBshift(var.get('G').get('0'),Js(24.0))))+var.get('G').get('7'))|Js(0.0)))
                var.get('X').put('2', (((var.get('G').get('2')+((var.get('G').get('1')<<Js(16.0))|PyJsBshift(var.get('G').get('1'),Js(16.0))))+((var.get('G').get('0')<<Js(16.0))|PyJsBshift(var.get('G').get('0'),Js(16.0))))|Js(0.0)))
                var.get('X').put('3', (((var.get('G').get('3')+((var.get('G').get('2')<<Js(8.0))|PyJsBshift(var.get('G').get('2'),Js(24.0))))+var.get('G').get('1'))|Js(0.0)))
                var.get('X').put('4', (((var.get('G').get('4')+((var.get('G').get('3')<<Js(16.0))|PyJsBshift(var.get('G').get('3'),Js(16.0))))+((var.get('G').get('2')<<Js(16.0))|PyJsBshift(var.get('G').get('2'),Js(16.0))))|Js(0.0)))
                var.get('X').put('5', (((var.get('G').get('5')+((var.get('G').get('4')<<Js(8.0))|PyJsBshift(var.get('G').get('4'),Js(24.0))))+var.get('G').get('3'))|Js(0.0)))
                var.get('X').put('6', (((var.get('G').get('6')+((var.get('G').get('5')<<Js(16.0))|PyJsBshift(var.get('G').get('5'),Js(16.0))))+((var.get('G').get('4')<<Js(16.0))|PyJsBshift(var.get('G').get('4'),Js(16.0))))|Js(0.0)))
                var.get('X').put('7', (((var.get('G').get('7')+((var.get('G').get('6')<<Js(8.0))|PyJsBshift(var.get('G').get('6'),Js(24.0))))+var.get('G').get('5'))|Js(0.0)))
            PyJsHoisted_nextState_.func_name = 'nextState'
            var.put('nextState', PyJsHoisted_nextState_)
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('StreamCipher', var.get('C_lib').get('StreamCipher'))
            var.put('C_algo', var.get('C').get('algo'))
            var.put('S', Js([]))
            var.put('C_', Js([]))
            var.put('G', Js([]))
            @Js
            def PyJs__doReset_297_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_297_}, var)
                var.registers(['IV_1', 'i2', 'K', 'IV_0', 'i', 'i0', 'C', 'X', 'i1', 'iv', 'IV', 'i3'])
                var.put('K', var.get(u"this").get('_key').get('words'))
                var.put('iv', var.get(u"this").get('cfg').get('iv'))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(4.0)):
                    try:
                        var.get('K').put(var.get('i'), ((((var.get('K').get(var.get('i'))<<Js(8.0))|PyJsBshift(var.get('K').get(var.get('i')),Js(24.0)))&Js(16711935))|(((var.get('K').get(var.get('i'))<<Js(24.0))|PyJsBshift(var.get('K').get(var.get('i')),Js(8.0)))&Js(4278255360))))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                def PyJs_LONG_298_(var=var):
                    return var.get(u"this").put('_X', Js([var.get('K').get('0'), ((var.get('K').get('3')<<Js(16.0))|PyJsBshift(var.get('K').get('2'),Js(16.0))), var.get('K').get('1'), ((var.get('K').get('0')<<Js(16.0))|PyJsBshift(var.get('K').get('3'),Js(16.0))), var.get('K').get('2'), ((var.get('K').get('1')<<Js(16.0))|PyJsBshift(var.get('K').get('0'),Js(16.0))), var.get('K').get('3'), ((var.get('K').get('2')<<Js(16.0))|PyJsBshift(var.get('K').get('1'),Js(16.0)))]))
                var.put('X', PyJs_LONG_298_())
                def PyJs_LONG_299_(var=var):
                    return var.get(u"this").put('_C', Js([((var.get('K').get('2')<<Js(16.0))|PyJsBshift(var.get('K').get('2'),Js(16.0))), ((var.get('K').get('0')&Js(4294901760))|(var.get('K').get('1')&Js(65535))), ((var.get('K').get('3')<<Js(16.0))|PyJsBshift(var.get('K').get('3'),Js(16.0))), ((var.get('K').get('1')&Js(4294901760))|(var.get('K').get('2')&Js(65535))), ((var.get('K').get('0')<<Js(16.0))|PyJsBshift(var.get('K').get('0'),Js(16.0))), ((var.get('K').get('2')&Js(4294901760))|(var.get('K').get('3')&Js(65535))), ((var.get('K').get('1')<<Js(16.0))|PyJsBshift(var.get('K').get('1'),Js(16.0))), ((var.get('K').get('3')&Js(4294901760))|(var.get('K').get('0')&Js(65535)))]))
                var.put('C', PyJs_LONG_299_())
                var.get(u"this").put('_b', Js(0.0))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(4.0)):
                    try:
                        var.get('nextState').callprop('call', var.get(u"this"))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(8.0)):
                    try:
                        var.get('C').put(var.get('i'), var.get('X').get(((var.get('i')+Js(4.0))&Js(7.0))), '^')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                if var.get('iv'):
                    var.put('IV', var.get('iv').get('words'))
                    var.put('IV_0', var.get('IV').get('0'))
                    var.put('IV_1', var.get('IV').get('1'))
                    var.put('i0', ((((var.get('IV_0')<<Js(8.0))|PyJsBshift(var.get('IV_0'),Js(24.0)))&Js(16711935))|(((var.get('IV_0')<<Js(24.0))|PyJsBshift(var.get('IV_0'),Js(8.0)))&Js(4278255360))))
                    var.put('i2', ((((var.get('IV_1')<<Js(8.0))|PyJsBshift(var.get('IV_1'),Js(24.0)))&Js(16711935))|(((var.get('IV_1')<<Js(24.0))|PyJsBshift(var.get('IV_1'),Js(8.0)))&Js(4278255360))))
                    var.put('i1', (PyJsBshift(var.get('i0'),Js(16.0))|(var.get('i2')&Js(4294901760))))
                    var.put('i3', ((var.get('i2')<<Js(16.0))|(var.get('i0')&Js(65535))))
                    var.get('C').put('0', var.get('i0'), '^')
                    var.get('C').put('1', var.get('i1'), '^')
                    var.get('C').put('2', var.get('i2'), '^')
                    var.get('C').put('3', var.get('i3'), '^')
                    var.get('C').put('4', var.get('i0'), '^')
                    var.get('C').put('5', var.get('i1'), '^')
                    var.get('C').put('6', var.get('i2'), '^')
                    var.get('C').put('7', var.get('i3'), '^')
                    #for JS loop
                    var.put('i', Js(0.0))
                    while (var.get('i')<Js(4.0)):
                        try:
                            var.get('nextState').callprop('call', var.get(u"this"))
                        finally:
                                (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJs__doReset_297_._set_name('_doReset')
            @Js
            def PyJs__doProcessBlock_300_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, '_doProcessBlock':PyJs__doProcessBlock_300_}, var)
                var.registers(['M', 'X', 'i', 'offset'])
                var.put('X', var.get(u"this").get('_X'))
                var.get('nextState').callprop('call', var.get(u"this"))
                var.get('S').put('0', ((var.get('X').get('0')^PyJsBshift(var.get('X').get('5'),Js(16.0)))^(var.get('X').get('3')<<Js(16.0))))
                var.get('S').put('1', ((var.get('X').get('2')^PyJsBshift(var.get('X').get('7'),Js(16.0)))^(var.get('X').get('5')<<Js(16.0))))
                var.get('S').put('2', ((var.get('X').get('4')^PyJsBshift(var.get('X').get('1'),Js(16.0)))^(var.get('X').get('7')<<Js(16.0))))
                var.get('S').put('3', ((var.get('X').get('6')^PyJsBshift(var.get('X').get('3'),Js(16.0)))^(var.get('X').get('1')<<Js(16.0))))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(4.0)):
                    try:
                        var.get('S').put(var.get('i'), ((((var.get('S').get(var.get('i'))<<Js(8.0))|PyJsBshift(var.get('S').get(var.get('i')),Js(24.0)))&Js(16711935))|(((var.get('S').get(var.get('i'))<<Js(24.0))|PyJsBshift(var.get('S').get(var.get('i')),Js(8.0)))&Js(4278255360))))
                        var.get('M').put((var.get('offset')+var.get('i')), var.get('S').get(var.get('i')), '^')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJs__doProcessBlock_300_._set_name('_doProcessBlock')
            PyJs_Object_296_ = Js({'_doReset':PyJs__doReset_297_,'_doProcessBlock':PyJs__doProcessBlock_300_,'blockSize':(Js(128.0)/Js(32.0)),'ivSize':(Js(64.0)/Js(32.0))})
            var.put('Rabbit', var.get('C_algo').put('Rabbit', var.get('StreamCipher').callprop('extend', PyJs_Object_296_)))
            pass
            var.get('C').put('Rabbit', var.get('StreamCipher').callprop('_createHelper', var.get('Rabbit')))
        PyJs_anonymous_295_._set_name('anonymous')
        PyJs_anonymous_295_()
        return var.get('CryptoJS').get('Rabbit')
    PyJs_anonymous_294_._set_name('anonymous')
    @Js
    def PyJs_anonymous_301_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./enc-base64')), var.get('require')(Js('./md5')), var.get('require')(Js('./evpkdf')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./enc-base64'), Js('./md5'), Js('./evpkdf'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_301_._set_name('anonymous')
    PyJs_anonymous_301_(var.get(u"this"), PyJs_anonymous_294_)
PyJs_anonymous_293_._set_name('anonymous')
PyJs_Object_302_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0),'./enc-base64':Js(4.0),'./evpkdf':Js(6.0),'./md5':Js(11.0)})
@Js
def PyJs_anonymous_303_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_304_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_305_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['StreamCipher', 'RC4Drop', 'C_algo', 'RC4', 'C_lib', 'generateKeystreamWord', 'C'])
            @Js
            def PyJsHoisted_generateKeystreamWord_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['i', 'keystreamWord', 'n', 'S', 't', 'j'])
                var.put('S', var.get(u"this").get('_S'))
                var.put('i', var.get(u"this").get('_i'))
                var.put('j', var.get(u"this").get('_j'))
                var.put('keystreamWord', Js(0.0))
                #for JS loop
                var.put('n', Js(0.0))
                while (var.get('n')<Js(4.0)):
                    try:
                        var.put('i', ((var.get('i')+Js(1.0))%Js(256.0)))
                        var.put('j', ((var.get('j')+var.get('S').get(var.get('i')))%Js(256.0)))
                        var.put('t', var.get('S').get(var.get('i')))
                        var.get('S').put(var.get('i'), var.get('S').get(var.get('j')))
                        var.get('S').put(var.get('j'), var.get('t'))
                        var.put('keystreamWord', (var.get('S').get(((var.get('S').get(var.get('i'))+var.get('S').get(var.get('j')))%Js(256.0)))<<(Js(24.0)-(var.get('n')*Js(8.0)))), '|')
                    finally:
                            (var.put('n',Js(var.get('n').to_number())+Js(1))-Js(1))
                var.get(u"this").put('_i', var.get('i'))
                var.get(u"this").put('_j', var.get('j'))
                return var.get('keystreamWord')
            PyJsHoisted_generateKeystreamWord_.func_name = 'generateKeystreamWord'
            var.put('generateKeystreamWord', PyJsHoisted_generateKeystreamWord_)
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('StreamCipher', var.get('C_lib').get('StreamCipher'))
            var.put('C_algo', var.get('C').get('algo'))
            @Js
            def PyJs__doReset_307_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_307_}, var)
                var.registers(['keyByteIndex', 'i', 'keySigBytes', 'keyByte', 'S', 'keyWords', 't', 'j', 'key'])
                var.put('key', var.get(u"this").get('_key'))
                var.put('keyWords', var.get('key').get('words'))
                var.put('keySigBytes', var.get('key').get('sigBytes'))
                var.put('S', var.get(u"this").put('_S', Js([])))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(256.0)):
                    try:
                        var.get('S').put(var.get('i'), var.get('i'))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                #for JS loop
                var.put('i', Js(0.0))
                var.put('j', Js(0.0))
                while (var.get('i')<Js(256.0)):
                    try:
                        var.put('keyByteIndex', (var.get('i')%var.get('keySigBytes')))
                        var.put('keyByte', (PyJsBshift(var.get('keyWords').get(PyJsBshift(var.get('keyByteIndex'),Js(2.0))),(Js(24.0)-((var.get('keyByteIndex')%Js(4.0))*Js(8.0))))&Js(255)))
                        var.put('j', (((var.get('j')+var.get('S').get(var.get('i')))+var.get('keyByte'))%Js(256.0)))
                        var.put('t', var.get('S').get(var.get('i')))
                        var.get('S').put(var.get('i'), var.get('S').get(var.get('j')))
                        var.get('S').put(var.get('j'), var.get('t'))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.get(u"this").put('_i', var.get(u"this").put('_j', Js(0.0)))
            PyJs__doReset_307_._set_name('_doReset')
            @Js
            def PyJs__doProcessBlock_308_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, '_doProcessBlock':PyJs__doProcessBlock_308_}, var)
                var.registers(['M', 'offset'])
                var.get('M').put(var.get('offset'), var.get('generateKeystreamWord').callprop('call', var.get(u"this")), '^')
            PyJs__doProcessBlock_308_._set_name('_doProcessBlock')
            PyJs_Object_306_ = Js({'_doReset':PyJs__doReset_307_,'_doProcessBlock':PyJs__doProcessBlock_308_,'keySize':(Js(256.0)/Js(32.0)),'ivSize':Js(0.0)})
            var.put('RC4', var.get('C_algo').put('RC4', var.get('StreamCipher').callprop('extend', PyJs_Object_306_)))
            pass
            var.get('C').put('RC4', var.get('StreamCipher').callprop('_createHelper', var.get('RC4')))
            PyJs_Object_310_ = Js({'drop':Js(192.0)})
            @Js
            def PyJs__doReset_311_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_311_}, var)
                var.registers(['i'])
                var.get('RC4').get('_doReset').callprop('call', var.get(u"this"))
                #for JS loop
                var.put('i', var.get(u"this").get('cfg').get('drop'))
                while (var.get('i')>Js(0.0)):
                    try:
                        var.get('generateKeystreamWord').callprop('call', var.get(u"this"))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())-Js(1))+Js(1))
            PyJs__doReset_311_._set_name('_doReset')
            PyJs_Object_309_ = Js({'cfg':var.get('RC4').get('cfg').callprop('extend', PyJs_Object_310_),'_doReset':PyJs__doReset_311_})
            var.put('RC4Drop', var.get('C_algo').put('RC4Drop', var.get('RC4').callprop('extend', PyJs_Object_309_)))
            var.get('C').put('RC4Drop', var.get('StreamCipher').callprop('_createHelper', var.get('RC4Drop')))
        PyJs_anonymous_305_._set_name('anonymous')
        PyJs_anonymous_305_()
        return var.get('CryptoJS').get('RC4')
    PyJs_anonymous_304_._set_name('anonymous')
    @Js
    def PyJs_anonymous_312_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./enc-base64')), var.get('require')(Js('./md5')), var.get('require')(Js('./evpkdf')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./enc-base64'), Js('./md5'), Js('./evpkdf'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_312_._set_name('anonymous')
    PyJs_anonymous_312_(var.get(u"this"), PyJs_anonymous_304_)
PyJs_anonymous_303_._set_name('anonymous')
PyJs_Object_313_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0),'./enc-base64':Js(4.0),'./evpkdf':Js(6.0),'./md5':Js(11.0)})
@Js
def PyJs_anonymous_314_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_315_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_316_(Math, this, arguments, var=var):
            var = Scope({'Math':Math, 'this':this, 'arguments':arguments}, var)
            var.registers(['_sr', 'f4', '_hr', 'f3', 'rotl', '_zl', 'WordArray', 'f2', 'RIPEMD160', '_zr', 'Hasher', '_sl', 'C_algo', 'C', 'f5', '_hl', 'f1', 'C_lib', 'Math'])
            @Js
            def PyJsHoisted_f1_(x, y, z, this, arguments, var=var):
                var = Scope({'x':x, 'y':y, 'z':z, 'this':this, 'arguments':arguments}, var)
                var.registers(['x', 'y', 'z'])
                return ((var.get('x')^var.get('y'))^var.get('z'))
            PyJsHoisted_f1_.func_name = 'f1'
            var.put('f1', PyJsHoisted_f1_)
            @Js
            def PyJsHoisted_f2_(x, y, z, this, arguments, var=var):
                var = Scope({'x':x, 'y':y, 'z':z, 'this':this, 'arguments':arguments}, var)
                var.registers(['x', 'y', 'z'])
                return ((var.get('x')&var.get('y'))|((~var.get('x'))&var.get('z')))
            PyJsHoisted_f2_.func_name = 'f2'
            var.put('f2', PyJsHoisted_f2_)
            @Js
            def PyJsHoisted_f3_(x, y, z, this, arguments, var=var):
                var = Scope({'x':x, 'y':y, 'z':z, 'this':this, 'arguments':arguments}, var)
                var.registers(['x', 'y', 'z'])
                return ((var.get('x')|(~var.get('y')))^var.get('z'))
            PyJsHoisted_f3_.func_name = 'f3'
            var.put('f3', PyJsHoisted_f3_)
            @Js
            def PyJsHoisted_f4_(x, y, z, this, arguments, var=var):
                var = Scope({'x':x, 'y':y, 'z':z, 'this':this, 'arguments':arguments}, var)
                var.registers(['x', 'y', 'z'])
                return ((var.get('x')&var.get('z'))|(var.get('y')&(~var.get('z'))))
            PyJsHoisted_f4_.func_name = 'f4'
            var.put('f4', PyJsHoisted_f4_)
            @Js
            def PyJsHoisted_f5_(x, y, z, this, arguments, var=var):
                var = Scope({'x':x, 'y':y, 'z':z, 'this':this, 'arguments':arguments}, var)
                var.registers(['x', 'y', 'z'])
                return (var.get('x')^(var.get('y')|(~var.get('z'))))
            PyJsHoisted_f5_.func_name = 'f5'
            var.put('f5', PyJsHoisted_f5_)
            @Js
            def PyJsHoisted_rotl_(x, n, this, arguments, var=var):
                var = Scope({'x':x, 'n':n, 'this':this, 'arguments':arguments}, var)
                var.registers(['x', 'n'])
                return ((var.get('x')<<var.get('n'))|PyJsBshift(var.get('x'),(Js(32.0)-var.get('n'))))
            PyJsHoisted_rotl_.func_name = 'rotl'
            var.put('rotl', PyJsHoisted_rotl_)
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('WordArray', var.get('C_lib').get('WordArray'))
            var.put('Hasher', var.get('C_lib').get('Hasher'))
            var.put('C_algo', var.get('C').get('algo'))
            def PyJs_LONG_317_(var=var):
                return var.get('WordArray').callprop('create', Js([Js(0.0), Js(1.0), Js(2.0), Js(3.0), Js(4.0), Js(5.0), Js(6.0), Js(7.0), Js(8.0), Js(9.0), Js(10.0), Js(11.0), Js(12.0), Js(13.0), Js(14.0), Js(15.0), Js(7.0), Js(4.0), Js(13.0), Js(1.0), Js(10.0), Js(6.0), Js(15.0), Js(3.0), Js(12.0), Js(0.0), Js(9.0), Js(5.0), Js(2.0), Js(14.0), Js(11.0), Js(8.0), Js(3.0), Js(10.0), Js(14.0), Js(4.0), Js(9.0), Js(15.0), Js(8.0), Js(1.0), Js(2.0), Js(7.0), Js(0.0), Js(6.0), Js(13.0), Js(11.0), Js(5.0), Js(12.0), Js(1.0), Js(9.0), Js(11.0), Js(10.0), Js(0.0), Js(8.0), Js(12.0), Js(4.0), Js(13.0), Js(3.0), Js(7.0), Js(15.0), Js(14.0), Js(5.0), Js(6.0), Js(2.0), Js(4.0), Js(0.0), Js(5.0), Js(9.0), Js(7.0), Js(12.0), Js(2.0), Js(10.0), Js(14.0), Js(1.0), Js(3.0), Js(8.0), Js(11.0), Js(6.0), Js(15.0), Js(13.0)]))
            var.put('_zl', PyJs_LONG_317_())
            def PyJs_LONG_318_(var=var):
                return var.get('WordArray').callprop('create', Js([Js(5.0), Js(14.0), Js(7.0), Js(0.0), Js(9.0), Js(2.0), Js(11.0), Js(4.0), Js(13.0), Js(6.0), Js(15.0), Js(8.0), Js(1.0), Js(10.0), Js(3.0), Js(12.0), Js(6.0), Js(11.0), Js(3.0), Js(7.0), Js(0.0), Js(13.0), Js(5.0), Js(10.0), Js(14.0), Js(15.0), Js(8.0), Js(12.0), Js(4.0), Js(9.0), Js(1.0), Js(2.0), Js(15.0), Js(5.0), Js(1.0), Js(3.0), Js(7.0), Js(14.0), Js(6.0), Js(9.0), Js(11.0), Js(8.0), Js(12.0), Js(2.0), Js(10.0), Js(0.0), Js(4.0), Js(13.0), Js(8.0), Js(6.0), Js(4.0), Js(1.0), Js(3.0), Js(11.0), Js(15.0), Js(0.0), Js(5.0), Js(12.0), Js(2.0), Js(13.0), Js(9.0), Js(7.0), Js(10.0), Js(14.0), Js(12.0), Js(15.0), Js(10.0), Js(4.0), Js(1.0), Js(5.0), Js(8.0), Js(7.0), Js(6.0), Js(2.0), Js(13.0), Js(14.0), Js(0.0), Js(3.0), Js(9.0), Js(11.0)]))
            var.put('_zr', PyJs_LONG_318_())
            def PyJs_LONG_319_(var=var):
                return var.get('WordArray').callprop('create', Js([Js(11.0), Js(14.0), Js(15.0), Js(12.0), Js(5.0), Js(8.0), Js(7.0), Js(9.0), Js(11.0), Js(13.0), Js(14.0), Js(15.0), Js(6.0), Js(7.0), Js(9.0), Js(8.0), Js(7.0), Js(6.0), Js(8.0), Js(13.0), Js(11.0), Js(9.0), Js(7.0), Js(15.0), Js(7.0), Js(12.0), Js(15.0), Js(9.0), Js(11.0), Js(7.0), Js(13.0), Js(12.0), Js(11.0), Js(13.0), Js(6.0), Js(7.0), Js(14.0), Js(9.0), Js(13.0), Js(15.0), Js(14.0), Js(8.0), Js(13.0), Js(6.0), Js(5.0), Js(12.0), Js(7.0), Js(5.0), Js(11.0), Js(12.0), Js(14.0), Js(15.0), Js(14.0), Js(15.0), Js(9.0), Js(8.0), Js(9.0), Js(14.0), Js(5.0), Js(6.0), Js(8.0), Js(6.0), Js(5.0), Js(12.0), Js(9.0), Js(15.0), Js(5.0), Js(11.0), Js(6.0), Js(8.0), Js(13.0), Js(12.0), Js(5.0), Js(12.0), Js(13.0), Js(14.0), Js(11.0), Js(8.0), Js(5.0), Js(6.0)]))
            var.put('_sl', PyJs_LONG_319_())
            def PyJs_LONG_320_(var=var):
                return var.get('WordArray').callprop('create', Js([Js(8.0), Js(9.0), Js(9.0), Js(11.0), Js(13.0), Js(15.0), Js(15.0), Js(5.0), Js(7.0), Js(7.0), Js(8.0), Js(11.0), Js(14.0), Js(14.0), Js(12.0), Js(6.0), Js(9.0), Js(13.0), Js(15.0), Js(7.0), Js(12.0), Js(8.0), Js(9.0), Js(11.0), Js(7.0), Js(7.0), Js(12.0), Js(7.0), Js(6.0), Js(15.0), Js(13.0), Js(11.0), Js(9.0), Js(7.0), Js(15.0), Js(11.0), Js(8.0), Js(6.0), Js(6.0), Js(14.0), Js(12.0), Js(13.0), Js(5.0), Js(14.0), Js(13.0), Js(13.0), Js(7.0), Js(5.0), Js(15.0), Js(5.0), Js(8.0), Js(11.0), Js(14.0), Js(14.0), Js(6.0), Js(14.0), Js(6.0), Js(9.0), Js(12.0), Js(9.0), Js(12.0), Js(5.0), Js(15.0), Js(8.0), Js(8.0), Js(5.0), Js(12.0), Js(9.0), Js(12.0), Js(5.0), Js(14.0), Js(6.0), Js(8.0), Js(13.0), Js(6.0), Js(5.0), Js(15.0), Js(13.0), Js(11.0), Js(11.0)]))
            var.put('_sr', PyJs_LONG_320_())
            var.put('_hl', var.get('WordArray').callprop('create', Js([Js(0), Js(1518500249), Js(1859775393), Js(2400959708), Js(2840853838)])))
            var.put('_hr', var.get('WordArray').callprop('create', Js([Js(1352829926), Js(1548603684), Js(1836072691), Js(2053994217), Js(0)])))
            @Js
            def PyJs__doReset_322_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_322_}, var)
                var.registers([])
                var.get(u"this").put('_hash', var.get('WordArray').callprop('create', Js([Js(1732584193), Js(4023233417), Js(2562383102), Js(271733878), Js(3285377520)])))
            PyJs__doReset_322_._set_name('_doReset')
            @Js
            def PyJs__doProcessBlock_323_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, '_doProcessBlock':PyJs__doProcessBlock_323_}, var)
                var.registers(['bl', 'er', 'cl', 'cr', 'M', 'i', 'sl', 'sr', 'ar', 'M_offset_i', 'el', 'br', 'dr', 'H', 't', 'zr', 'offset', 'dl', 'zl', 'hr', 'offset_i', 'hl', 'al'])
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(16.0)):
                    try:
                        var.put('offset_i', (var.get('offset')+var.get('i')))
                        var.put('M_offset_i', var.get('M').get(var.get('offset_i')))
                        var.get('M').put(var.get('offset_i'), ((((var.get('M_offset_i')<<Js(8.0))|PyJsBshift(var.get('M_offset_i'),Js(24.0)))&Js(16711935))|(((var.get('M_offset_i')<<Js(24.0))|PyJsBshift(var.get('M_offset_i'),Js(8.0)))&Js(4278255360))))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.put('H', var.get(u"this").get('_hash').get('words'))
                var.put('hl', var.get('_hl').get('words'))
                var.put('hr', var.get('_hr').get('words'))
                var.put('zl', var.get('_zl').get('words'))
                var.put('zr', var.get('_zr').get('words'))
                var.put('sl', var.get('_sl').get('words'))
                var.put('sr', var.get('_sr').get('words'))
                pass
                pass
                var.put('ar', var.put('al', var.get('H').get('0')))
                var.put('br', var.put('bl', var.get('H').get('1')))
                var.put('cr', var.put('cl', var.get('H').get('2')))
                var.put('dr', var.put('dl', var.get('H').get('3')))
                var.put('er', var.put('el', var.get('H').get('4')))
                pass
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(80.0)):
                    try:
                        var.put('t', ((var.get('al')+var.get('M').get((var.get('offset')+var.get('zl').get(var.get('i')))))|Js(0.0)))
                        if (var.get('i')<Js(16.0)):
                            var.put('t', (var.get('f1')(var.get('bl'), var.get('cl'), var.get('dl'))+var.get('hl').get('0')), '+')
                        else:
                            if (var.get('i')<Js(32.0)):
                                var.put('t', (var.get('f2')(var.get('bl'), var.get('cl'), var.get('dl'))+var.get('hl').get('1')), '+')
                            else:
                                if (var.get('i')<Js(48.0)):
                                    var.put('t', (var.get('f3')(var.get('bl'), var.get('cl'), var.get('dl'))+var.get('hl').get('2')), '+')
                                else:
                                    if (var.get('i')<Js(64.0)):
                                        var.put('t', (var.get('f4')(var.get('bl'), var.get('cl'), var.get('dl'))+var.get('hl').get('3')), '+')
                                    else:
                                        var.put('t', (var.get('f5')(var.get('bl'), var.get('cl'), var.get('dl'))+var.get('hl').get('4')), '+')
                        var.put('t', (var.get('t')|Js(0.0)))
                        var.put('t', var.get('rotl')(var.get('t'), var.get('sl').get(var.get('i'))))
                        var.put('t', ((var.get('t')+var.get('el'))|Js(0.0)))
                        var.put('al', var.get('el'))
                        var.put('el', var.get('dl'))
                        var.put('dl', var.get('rotl')(var.get('cl'), Js(10.0)))
                        var.put('cl', var.get('bl'))
                        var.put('bl', var.get('t'))
                        var.put('t', ((var.get('ar')+var.get('M').get((var.get('offset')+var.get('zr').get(var.get('i')))))|Js(0.0)))
                        if (var.get('i')<Js(16.0)):
                            var.put('t', (var.get('f5')(var.get('br'), var.get('cr'), var.get('dr'))+var.get('hr').get('0')), '+')
                        else:
                            if (var.get('i')<Js(32.0)):
                                var.put('t', (var.get('f4')(var.get('br'), var.get('cr'), var.get('dr'))+var.get('hr').get('1')), '+')
                            else:
                                if (var.get('i')<Js(48.0)):
                                    var.put('t', (var.get('f3')(var.get('br'), var.get('cr'), var.get('dr'))+var.get('hr').get('2')), '+')
                                else:
                                    if (var.get('i')<Js(64.0)):
                                        var.put('t', (var.get('f2')(var.get('br'), var.get('cr'), var.get('dr'))+var.get('hr').get('3')), '+')
                                    else:
                                        var.put('t', (var.get('f1')(var.get('br'), var.get('cr'), var.get('dr'))+var.get('hr').get('4')), '+')
                        var.put('t', (var.get('t')|Js(0.0)))
                        var.put('t', var.get('rotl')(var.get('t'), var.get('sr').get(var.get('i'))))
                        var.put('t', ((var.get('t')+var.get('er'))|Js(0.0)))
                        var.put('ar', var.get('er'))
                        var.put('er', var.get('dr'))
                        var.put('dr', var.get('rotl')(var.get('cr'), Js(10.0)))
                        var.put('cr', var.get('br'))
                        var.put('br', var.get('t'))
                    finally:
                            var.put('i', Js(1.0), '+')
                var.put('t', (((var.get('H').get('1')+var.get('cl'))+var.get('dr'))|Js(0.0)))
                var.get('H').put('1', (((var.get('H').get('2')+var.get('dl'))+var.get('er'))|Js(0.0)))
                var.get('H').put('2', (((var.get('H').get('3')+var.get('el'))+var.get('ar'))|Js(0.0)))
                var.get('H').put('3', (((var.get('H').get('4')+var.get('al'))+var.get('br'))|Js(0.0)))
                var.get('H').put('4', (((var.get('H').get('0')+var.get('bl'))+var.get('cr'))|Js(0.0)))
                var.get('H').put('0', var.get('t'))
            PyJs__doProcessBlock_323_._set_name('_doProcessBlock')
            @Js
            def PyJs__doFinalize_324_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doFinalize':PyJs__doFinalize_324_}, var)
                var.registers(['data', 'dataWords', 'nBitsLeft', 'i', 'H_i', 'hash', 'nBitsTotal', 'H'])
                var.put('data', var.get(u"this").get('_data'))
                var.put('dataWords', var.get('data').get('words'))
                var.put('nBitsTotal', (var.get(u"this").get('_nDataBytes')*Js(8.0)))
                var.put('nBitsLeft', (var.get('data').get('sigBytes')*Js(8.0)))
                var.get('dataWords').put(PyJsBshift(var.get('nBitsLeft'),Js(5.0)), (Js(128)<<(Js(24.0)-(var.get('nBitsLeft')%Js(32.0)))), '|')
                var.get('dataWords').put(((PyJsBshift((var.get('nBitsLeft')+Js(64.0)),Js(9.0))<<Js(4.0))+Js(14.0)), ((((var.get('nBitsTotal')<<Js(8.0))|PyJsBshift(var.get('nBitsTotal'),Js(24.0)))&Js(16711935))|(((var.get('nBitsTotal')<<Js(24.0))|PyJsBshift(var.get('nBitsTotal'),Js(8.0)))&Js(4278255360))))
                var.get('data').put('sigBytes', ((var.get('dataWords').get('length')+Js(1.0))*Js(4.0)))
                var.get(u"this").callprop('_process')
                var.put('hash', var.get(u"this").get('_hash'))
                var.put('H', var.get('hash').get('words'))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(5.0)):
                    try:
                        var.put('H_i', var.get('H').get(var.get('i')))
                        var.get('H').put(var.get('i'), ((((var.get('H_i')<<Js(8.0))|PyJsBshift(var.get('H_i'),Js(24.0)))&Js(16711935))|(((var.get('H_i')<<Js(24.0))|PyJsBshift(var.get('H_i'),Js(8.0)))&Js(4278255360))))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                return var.get('hash')
            PyJs__doFinalize_324_._set_name('_doFinalize')
            @Js
            def PyJs_clone_325_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'clone':PyJs_clone_325_}, var)
                var.registers(['clone'])
                var.put('clone', var.get('Hasher').get('clone').callprop('call', var.get(u"this")))
                var.get('clone').put('_hash', var.get(u"this").get('_hash').callprop('clone'))
                return var.get('clone')
            PyJs_clone_325_._set_name('clone')
            PyJs_Object_321_ = Js({'_doReset':PyJs__doReset_322_,'_doProcessBlock':PyJs__doProcessBlock_323_,'_doFinalize':PyJs__doFinalize_324_,'clone':PyJs_clone_325_})
            var.put('RIPEMD160', var.get('C_algo').put('RIPEMD160', var.get('Hasher').callprop('extend', PyJs_Object_321_)))
            pass
            pass
            pass
            pass
            pass
            pass
            var.get('C').put('RIPEMD160', var.get('Hasher').callprop('_createHelper', var.get('RIPEMD160')))
            var.get('C').put('HmacRIPEMD160', var.get('Hasher').callprop('_createHmacHelper', var.get('RIPEMD160')))
        PyJs_anonymous_316_._set_name('anonymous')
        PyJs_anonymous_316_(var.get('Math'))
        return var.get('CryptoJS').get('RIPEMD160')
    PyJs_anonymous_315_._set_name('anonymous')
    @Js
    def PyJs_anonymous_326_(root, factory, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_326_._set_name('anonymous')
    PyJs_anonymous_326_(var.get(u"this"), PyJs_anonymous_315_)
PyJs_anonymous_314_._set_name('anonymous')
PyJs_Object_327_ = Js({'./core':Js(3.0)})
@Js
def PyJs_anonymous_328_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_329_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_330_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['C_algo', 'C_lib', 'WordArray', 'C', 'SHA1', 'W', 'Hasher'])
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('WordArray', var.get('C_lib').get('WordArray'))
            var.put('Hasher', var.get('C_lib').get('Hasher'))
            var.put('C_algo', var.get('C').get('algo'))
            var.put('W', Js([]))
            @Js
            def PyJs__doReset_332_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_332_}, var)
                var.registers([])
                var.get(u"this").put('_hash', var.get('WordArray').get('init').create(Js([Js(1732584193), Js(4023233417), Js(2562383102), Js(271733878), Js(3285377520)])))
            PyJs__doReset_332_._set_name('_doReset')
            @Js
            def PyJs__doProcessBlock_333_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, '_doProcessBlock':PyJs__doProcessBlock_333_}, var)
                var.registers(['a', 'b', 'M', 'i', 'c', 'e', 'n', 'H', 't', 'd', 'offset'])
                var.put('H', var.get(u"this").get('_hash').get('words'))
                var.put('a', var.get('H').get('0'))
                var.put('b', var.get('H').get('1'))
                var.put('c', var.get('H').get('2'))
                var.put('d', var.get('H').get('3'))
                var.put('e', var.get('H').get('4'))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(80.0)):
                    try:
                        if (var.get('i')<Js(16.0)):
                            var.get('W').put(var.get('i'), (var.get('M').get((var.get('offset')+var.get('i')))|Js(0.0)))
                        else:
                            var.put('n', (((var.get('W').get((var.get('i')-Js(3.0)))^var.get('W').get((var.get('i')-Js(8.0))))^var.get('W').get((var.get('i')-Js(14.0))))^var.get('W').get((var.get('i')-Js(16.0)))))
                            var.get('W').put(var.get('i'), ((var.get('n')<<Js(1.0))|PyJsBshift(var.get('n'),Js(31.0))))
                        var.put('t', ((((var.get('a')<<Js(5.0))|PyJsBshift(var.get('a'),Js(27.0)))+var.get('e'))+var.get('W').get(var.get('i'))))
                        if (var.get('i')<Js(20.0)):
                            var.put('t', (((var.get('b')&var.get('c'))|((~var.get('b'))&var.get('d')))+Js(1518500249)), '+')
                        else:
                            if (var.get('i')<Js(40.0)):
                                var.put('t', (((var.get('b')^var.get('c'))^var.get('d'))+Js(1859775393)), '+')
                            else:
                                if (var.get('i')<Js(60.0)):
                                    var.put('t', ((((var.get('b')&var.get('c'))|(var.get('b')&var.get('d')))|(var.get('c')&var.get('d')))-Js(1894007588)), '+')
                                else:
                                    var.put('t', (((var.get('b')^var.get('c'))^var.get('d'))-Js(899497514)), '+')
                        var.put('e', var.get('d'))
                        var.put('d', var.get('c'))
                        var.put('c', ((var.get('b')<<Js(30.0))|PyJsBshift(var.get('b'),Js(2.0))))
                        var.put('b', var.get('a'))
                        var.put('a', var.get('t'))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.get('H').put('0', ((var.get('H').get('0')+var.get('a'))|Js(0.0)))
                var.get('H').put('1', ((var.get('H').get('1')+var.get('b'))|Js(0.0)))
                var.get('H').put('2', ((var.get('H').get('2')+var.get('c'))|Js(0.0)))
                var.get('H').put('3', ((var.get('H').get('3')+var.get('d'))|Js(0.0)))
                var.get('H').put('4', ((var.get('H').get('4')+var.get('e'))|Js(0.0)))
            PyJs__doProcessBlock_333_._set_name('_doProcessBlock')
            @Js
            def PyJs__doFinalize_334_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doFinalize':PyJs__doFinalize_334_}, var)
                var.registers(['data', 'nBitsTotal', 'dataWords', 'nBitsLeft'])
                var.put('data', var.get(u"this").get('_data'))
                var.put('dataWords', var.get('data').get('words'))
                var.put('nBitsTotal', (var.get(u"this").get('_nDataBytes')*Js(8.0)))
                var.put('nBitsLeft', (var.get('data').get('sigBytes')*Js(8.0)))
                var.get('dataWords').put(PyJsBshift(var.get('nBitsLeft'),Js(5.0)), (Js(128)<<(Js(24.0)-(var.get('nBitsLeft')%Js(32.0)))), '|')
                var.get('dataWords').put(((PyJsBshift((var.get('nBitsLeft')+Js(64.0)),Js(9.0))<<Js(4.0))+Js(14.0)), var.get('Math').callprop('floor', (var.get('nBitsTotal')/Js(4294967296))))
                var.get('dataWords').put(((PyJsBshift((var.get('nBitsLeft')+Js(64.0)),Js(9.0))<<Js(4.0))+Js(15.0)), var.get('nBitsTotal'))
                var.get('data').put('sigBytes', (var.get('dataWords').get('length')*Js(4.0)))
                var.get(u"this").callprop('_process')
                return var.get(u"this").get('_hash')
            PyJs__doFinalize_334_._set_name('_doFinalize')
            @Js
            def PyJs_clone_335_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'clone':PyJs_clone_335_}, var)
                var.registers(['clone'])
                var.put('clone', var.get('Hasher').get('clone').callprop('call', var.get(u"this")))
                var.get('clone').put('_hash', var.get(u"this").get('_hash').callprop('clone'))
                return var.get('clone')
            PyJs_clone_335_._set_name('clone')
            PyJs_Object_331_ = Js({'_doReset':PyJs__doReset_332_,'_doProcessBlock':PyJs__doProcessBlock_333_,'_doFinalize':PyJs__doFinalize_334_,'clone':PyJs_clone_335_})
            var.put('SHA1', var.get('C_algo').put('SHA1', var.get('Hasher').callprop('extend', PyJs_Object_331_)))
            var.get('C').put('SHA1', var.get('Hasher').callprop('_createHelper', var.get('SHA1')))
            var.get('C').put('HmacSHA1', var.get('Hasher').callprop('_createHmacHelper', var.get('SHA1')))
        PyJs_anonymous_330_._set_name('anonymous')
        PyJs_anonymous_330_()
        return var.get('CryptoJS').get('SHA1')
    PyJs_anonymous_329_._set_name('anonymous')
    @Js
    def PyJs_anonymous_336_(root, factory, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_336_._set_name('anonymous')
    PyJs_anonymous_336_(var.get(u"this"), PyJs_anonymous_329_)
PyJs_anonymous_328_._set_name('anonymous')
PyJs_Object_337_ = Js({'./core':Js(3.0)})
@Js
def PyJs_anonymous_338_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_339_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_340_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['C_algo', 'SHA256', 'C_lib', 'WordArray', 'C', 'SHA224'])
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('WordArray', var.get('C_lib').get('WordArray'))
            var.put('C_algo', var.get('C').get('algo'))
            var.put('SHA256', var.get('C_algo').get('SHA256'))
            @Js
            def PyJs__doReset_342_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_342_}, var)
                var.registers([])
                var.get(u"this").put('_hash', var.get('WordArray').get('init').create(Js([Js(3238371032), Js(914150663), Js(812702999), Js(4144912697), Js(4290775857), Js(1750603025), Js(1694076839), Js(3204075428)])))
            PyJs__doReset_342_._set_name('_doReset')
            @Js
            def PyJs__doFinalize_343_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doFinalize':PyJs__doFinalize_343_}, var)
                var.registers(['hash'])
                var.put('hash', var.get('SHA256').get('_doFinalize').callprop('call', var.get(u"this")))
                var.get('hash').put('sigBytes', Js(4.0), '-')
                return var.get('hash')
            PyJs__doFinalize_343_._set_name('_doFinalize')
            PyJs_Object_341_ = Js({'_doReset':PyJs__doReset_342_,'_doFinalize':PyJs__doFinalize_343_})
            var.put('SHA224', var.get('C_algo').put('SHA224', var.get('SHA256').callprop('extend', PyJs_Object_341_)))
            var.get('C').put('SHA224', var.get('SHA256').callprop('_createHelper', var.get('SHA224')))
            var.get('C').put('HmacSHA224', var.get('SHA256').callprop('_createHmacHelper', var.get('SHA224')))
        PyJs_anonymous_340_._set_name('anonymous')
        PyJs_anonymous_340_()
        return var.get('CryptoJS').get('SHA224')
    PyJs_anonymous_339_._set_name('anonymous')
    @Js
    def PyJs_anonymous_344_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./sha256')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./sha256')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_344_._set_name('anonymous')
    PyJs_anonymous_344_(var.get(u"this"), PyJs_anonymous_339_)
PyJs_anonymous_338_._set_name('anonymous')
PyJs_Object_345_ = Js({'./core':Js(3.0),'./sha256':Js(29.0)})
@Js
def PyJs_anonymous_346_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_347_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_348_(Math, this, arguments, var=var):
            var = Scope({'Math':Math, 'this':this, 'arguments':arguments}, var)
            var.registers(['C_algo', 'K', 'Math', 'SHA256', 'C_lib', 'WordArray', 'C', 'H', 'W', 'Hasher'])
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('WordArray', var.get('C_lib').get('WordArray'))
            var.put('Hasher', var.get('C_lib').get('Hasher'))
            var.put('C_algo', var.get('C').get('algo'))
            var.put('H', Js([]))
            var.put('K', Js([]))
            @Js
            def PyJs_anonymous_349_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['n', 'nPrime', 'getFractionalBits', 'isPrime'])
                @Js
                def PyJsHoisted_isPrime_(n, this, arguments, var=var):
                    var = Scope({'n':n, 'this':this, 'arguments':arguments}, var)
                    var.registers(['n', 'factor', 'sqrtN'])
                    var.put('sqrtN', var.get('Math').callprop('sqrt', var.get('n')))
                    #for JS loop
                    var.put('factor', Js(2.0))
                    while (var.get('factor')<=var.get('sqrtN')):
                        try:
                            if (var.get('n')%var.get('factor')).neg():
                                return Js(False)
                        finally:
                                (var.put('factor',Js(var.get('factor').to_number())+Js(1))-Js(1))
                    return Js(True)
                PyJsHoisted_isPrime_.func_name = 'isPrime'
                var.put('isPrime', PyJsHoisted_isPrime_)
                @Js
                def PyJsHoisted_getFractionalBits_(n, this, arguments, var=var):
                    var = Scope({'n':n, 'this':this, 'arguments':arguments}, var)
                    var.registers(['n'])
                    return (((var.get('n')-(var.get('n')|Js(0.0)))*Js(4294967296))|Js(0.0))
                PyJsHoisted_getFractionalBits_.func_name = 'getFractionalBits'
                var.put('getFractionalBits', PyJsHoisted_getFractionalBits_)
                pass
                pass
                var.put('n', Js(2.0))
                var.put('nPrime', Js(0.0))
                while (var.get('nPrime')<Js(64.0)):
                    if var.get('isPrime')(var.get('n')):
                        if (var.get('nPrime')<Js(8.0)):
                            var.get('H').put(var.get('nPrime'), var.get('getFractionalBits')(var.get('Math').callprop('pow', var.get('n'), (Js(1.0)/Js(2.0)))))
                        var.get('K').put(var.get('nPrime'), var.get('getFractionalBits')(var.get('Math').callprop('pow', var.get('n'), (Js(1.0)/Js(3.0)))))
                        (var.put('nPrime',Js(var.get('nPrime').to_number())+Js(1))-Js(1))
                    (var.put('n',Js(var.get('n').to_number())+Js(1))-Js(1))
            PyJs_anonymous_349_._set_name('anonymous')
            PyJs_anonymous_349_()
            var.put('W', Js([]))
            @Js
            def PyJs__doReset_351_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_351_}, var)
                var.registers([])
                var.get(u"this").put('_hash', var.get('WordArray').get('init').create(var.get('H').callprop('slice', Js(0.0))))
            PyJs__doReset_351_._set_name('_doReset')
            @Js
            def PyJs__doProcessBlock_352_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, '_doProcessBlock':PyJs__doProcessBlock_352_}, var)
                var.registers(['e', 'gamma1x', 'd', 'a', 'b', 'M', 'sigma1', 'i', 't2', 'h', 'ch', 'gamma0x', 'maj', 'f', 'c', 'H', 't1', 'offset', 'g', 'gamma0', 'gamma1', 'sigma0'])
                var.put('H', var.get(u"this").get('_hash').get('words'))
                var.put('a', var.get('H').get('0'))
                var.put('b', var.get('H').get('1'))
                var.put('c', var.get('H').get('2'))
                var.put('d', var.get('H').get('3'))
                var.put('e', var.get('H').get('4'))
                var.put('f', var.get('H').get('5'))
                var.put('g', var.get('H').get('6'))
                var.put('h', var.get('H').get('7'))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(64.0)):
                    try:
                        if (var.get('i')<Js(16.0)):
                            var.get('W').put(var.get('i'), (var.get('M').get((var.get('offset')+var.get('i')))|Js(0.0)))
                        else:
                            var.put('gamma0x', var.get('W').get((var.get('i')-Js(15.0))))
                            var.put('gamma0', ((((var.get('gamma0x')<<Js(25.0))|PyJsBshift(var.get('gamma0x'),Js(7.0)))^((var.get('gamma0x')<<Js(14.0))|PyJsBshift(var.get('gamma0x'),Js(18.0))))^PyJsBshift(var.get('gamma0x'),Js(3.0))))
                            var.put('gamma1x', var.get('W').get((var.get('i')-Js(2.0))))
                            var.put('gamma1', ((((var.get('gamma1x')<<Js(15.0))|PyJsBshift(var.get('gamma1x'),Js(17.0)))^((var.get('gamma1x')<<Js(13.0))|PyJsBshift(var.get('gamma1x'),Js(19.0))))^PyJsBshift(var.get('gamma1x'),Js(10.0))))
                            var.get('W').put(var.get('i'), (((var.get('gamma0')+var.get('W').get((var.get('i')-Js(7.0))))+var.get('gamma1'))+var.get('W').get((var.get('i')-Js(16.0)))))
                        var.put('ch', ((var.get('e')&var.get('f'))^((~var.get('e'))&var.get('g'))))
                        var.put('maj', (((var.get('a')&var.get('b'))^(var.get('a')&var.get('c')))^(var.get('b')&var.get('c'))))
                        var.put('sigma0', ((((var.get('a')<<Js(30.0))|PyJsBshift(var.get('a'),Js(2.0)))^((var.get('a')<<Js(19.0))|PyJsBshift(var.get('a'),Js(13.0))))^((var.get('a')<<Js(10.0))|PyJsBshift(var.get('a'),Js(22.0)))))
                        var.put('sigma1', ((((var.get('e')<<Js(26.0))|PyJsBshift(var.get('e'),Js(6.0)))^((var.get('e')<<Js(21.0))|PyJsBshift(var.get('e'),Js(11.0))))^((var.get('e')<<Js(7.0))|PyJsBshift(var.get('e'),Js(25.0)))))
                        var.put('t1', ((((var.get('h')+var.get('sigma1'))+var.get('ch'))+var.get('K').get(var.get('i')))+var.get('W').get(var.get('i'))))
                        var.put('t2', (var.get('sigma0')+var.get('maj')))
                        var.put('h', var.get('g'))
                        var.put('g', var.get('f'))
                        var.put('f', var.get('e'))
                        var.put('e', ((var.get('d')+var.get('t1'))|Js(0.0)))
                        var.put('d', var.get('c'))
                        var.put('c', var.get('b'))
                        var.put('b', var.get('a'))
                        var.put('a', ((var.get('t1')+var.get('t2'))|Js(0.0)))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.get('H').put('0', ((var.get('H').get('0')+var.get('a'))|Js(0.0)))
                var.get('H').put('1', ((var.get('H').get('1')+var.get('b'))|Js(0.0)))
                var.get('H').put('2', ((var.get('H').get('2')+var.get('c'))|Js(0.0)))
                var.get('H').put('3', ((var.get('H').get('3')+var.get('d'))|Js(0.0)))
                var.get('H').put('4', ((var.get('H').get('4')+var.get('e'))|Js(0.0)))
                var.get('H').put('5', ((var.get('H').get('5')+var.get('f'))|Js(0.0)))
                var.get('H').put('6', ((var.get('H').get('6')+var.get('g'))|Js(0.0)))
                var.get('H').put('7', ((var.get('H').get('7')+var.get('h'))|Js(0.0)))
            PyJs__doProcessBlock_352_._set_name('_doProcessBlock')
            @Js
            def PyJs__doFinalize_353_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doFinalize':PyJs__doFinalize_353_}, var)
                var.registers(['data', 'nBitsTotal', 'dataWords', 'nBitsLeft'])
                var.put('data', var.get(u"this").get('_data'))
                var.put('dataWords', var.get('data').get('words'))
                var.put('nBitsTotal', (var.get(u"this").get('_nDataBytes')*Js(8.0)))
                var.put('nBitsLeft', (var.get('data').get('sigBytes')*Js(8.0)))
                var.get('dataWords').put(PyJsBshift(var.get('nBitsLeft'),Js(5.0)), (Js(128)<<(Js(24.0)-(var.get('nBitsLeft')%Js(32.0)))), '|')
                var.get('dataWords').put(((PyJsBshift((var.get('nBitsLeft')+Js(64.0)),Js(9.0))<<Js(4.0))+Js(14.0)), var.get('Math').callprop('floor', (var.get('nBitsTotal')/Js(4294967296))))
                var.get('dataWords').put(((PyJsBshift((var.get('nBitsLeft')+Js(64.0)),Js(9.0))<<Js(4.0))+Js(15.0)), var.get('nBitsTotal'))
                var.get('data').put('sigBytes', (var.get('dataWords').get('length')*Js(4.0)))
                var.get(u"this").callprop('_process')
                return var.get(u"this").get('_hash')
            PyJs__doFinalize_353_._set_name('_doFinalize')
            @Js
            def PyJs_clone_354_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'clone':PyJs_clone_354_}, var)
                var.registers(['clone'])
                var.put('clone', var.get('Hasher').get('clone').callprop('call', var.get(u"this")))
                var.get('clone').put('_hash', var.get(u"this").get('_hash').callprop('clone'))
                return var.get('clone')
            PyJs_clone_354_._set_name('clone')
            PyJs_Object_350_ = Js({'_doReset':PyJs__doReset_351_,'_doProcessBlock':PyJs__doProcessBlock_352_,'_doFinalize':PyJs__doFinalize_353_,'clone':PyJs_clone_354_})
            var.put('SHA256', var.get('C_algo').put('SHA256', var.get('Hasher').callprop('extend', PyJs_Object_350_)))
            var.get('C').put('SHA256', var.get('Hasher').callprop('_createHelper', var.get('SHA256')))
            var.get('C').put('HmacSHA256', var.get('Hasher').callprop('_createHmacHelper', var.get('SHA256')))
        PyJs_anonymous_348_._set_name('anonymous')
        PyJs_anonymous_348_(var.get('Math'))
        return var.get('CryptoJS').get('SHA256')
    PyJs_anonymous_347_._set_name('anonymous')
    @Js
    def PyJs_anonymous_355_(root, factory, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_355_._set_name('anonymous')
    PyJs_anonymous_355_(var.get(u"this"), PyJs_anonymous_347_)
PyJs_anonymous_346_._set_name('anonymous')
PyJs_Object_356_ = Js({'./core':Js(3.0)})
@Js
def PyJs_anonymous_357_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_358_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_359_(Math, this, arguments, var=var):
            var = Scope({'Math':Math, 'this':this, 'arguments':arguments}, var)
            var.registers(['X64Word', 'C_algo', 'ROUND_CONSTANTS', 'RHO_OFFSETS', 'C_lib', 'C_x64', 'C', 'WordArray', 'T', 'SHA3', 'PI_INDEXES', 'Math', 'Hasher'])
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('WordArray', var.get('C_lib').get('WordArray'))
            var.put('Hasher', var.get('C_lib').get('Hasher'))
            var.put('C_x64', var.get('C').get('x64'))
            var.put('X64Word', var.get('C_x64').get('Word'))
            var.put('C_algo', var.get('C').get('algo'))
            var.put('RHO_OFFSETS', Js([]))
            var.put('PI_INDEXES', Js([]))
            var.put('ROUND_CONSTANTS', Js([]))
            @Js
            def PyJs_anonymous_360_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['x', 'LFSR', 'newY', 'roundConstantLsw', 'y', 'i', 'roundConstantMsw', 'bitPosition', 't', 'j', 'newX'])
                var.put('x', Js(1.0))
                var.put('y', Js(0.0))
                #for JS loop
                var.put('t', Js(0.0))
                while (var.get('t')<Js(24.0)):
                    try:
                        var.get('RHO_OFFSETS').put((var.get('x')+(Js(5.0)*var.get('y'))), ((((var.get('t')+Js(1.0))*(var.get('t')+Js(2.0)))/Js(2.0))%Js(64.0)))
                        var.put('newX', (var.get('y')%Js(5.0)))
                        var.put('newY', (((Js(2.0)*var.get('x'))+(Js(3.0)*var.get('y')))%Js(5.0)))
                        var.put('x', var.get('newX'))
                        var.put('y', var.get('newY'))
                    finally:
                            (var.put('t',Js(var.get('t').to_number())+Js(1))-Js(1))
                #for JS loop
                var.put('x', Js(0.0))
                while (var.get('x')<Js(5.0)):
                    try:
                        #for JS loop
                        var.put('y', Js(0.0))
                        while (var.get('y')<Js(5.0)):
                            try:
                                var.get('PI_INDEXES').put((var.get('x')+(Js(5.0)*var.get('y'))), (var.get('y')+((((Js(2.0)*var.get('x'))+(Js(3.0)*var.get('y')))%Js(5.0))*Js(5.0))))
                            finally:
                                    (var.put('y',Js(var.get('y').to_number())+Js(1))-Js(1))
                    finally:
                            (var.put('x',Js(var.get('x').to_number())+Js(1))-Js(1))
                var.put('LFSR', Js(1))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(24.0)):
                    try:
                        var.put('roundConstantMsw', Js(0.0))
                        var.put('roundConstantLsw', Js(0.0))
                        #for JS loop
                        var.put('j', Js(0.0))
                        while (var.get('j')<Js(7.0)):
                            try:
                                if (var.get('LFSR')&Js(1)):
                                    var.put('bitPosition', ((Js(1.0)<<var.get('j'))-Js(1.0)))
                                    if (var.get('bitPosition')<Js(32.0)):
                                        var.put('roundConstantLsw', (Js(1.0)<<var.get('bitPosition')), '^')
                                    else:
                                        var.put('roundConstantMsw', (Js(1.0)<<(var.get('bitPosition')-Js(32.0))), '^')
                                if (var.get('LFSR')&Js(128)):
                                    var.put('LFSR', ((var.get('LFSR')<<Js(1.0))^Js(113)))
                                else:
                                    var.put('LFSR', Js(1.0), '<<')
                            finally:
                                    (var.put('j',Js(var.get('j').to_number())+Js(1))-Js(1))
                        var.get('ROUND_CONSTANTS').put(var.get('i'), var.get('X64Word').callprop('create', var.get('roundConstantMsw'), var.get('roundConstantLsw')))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJs_anonymous_360_._set_name('anonymous')
            PyJs_anonymous_360_()
            var.put('T', Js([]))
            @Js
            def PyJs_anonymous_361_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['i'])
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(25.0)):
                    try:
                        var.get('T').put(var.get('i'), var.get('X64Word').callprop('create'))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJs_anonymous_361_._set_name('anonymous')
            PyJs_anonymous_361_()
            PyJs_Object_363_ = Js({'outputLength':Js(512.0)})
            @Js
            def PyJs__doReset_364_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_364_}, var)
                var.registers(['i', 'state'])
                var.put('state', var.get(u"this").put('_state', Js([])))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(25.0)):
                    try:
                        var.get('state').put(var.get('i'), var.get('X64Word').get('init').create())
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.get(u"this").put('blockSize', ((Js(1600.0)-(Js(2.0)*var.get(u"this").get('cfg').get('outputLength')))/Js(32.0)))
            PyJs__doReset_364_._set_name('_doReset')
            @Js
            def PyJs__doProcessBlock_365_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, '_doProcessBlock':PyJs__doProcessBlock_365_}, var)
                var.registers(['x', 'roundConstant', 'Tx', 'Tx1', 'Tx1Msw', 'rhoOffset', 'nBlockSizeLanes', 'M2i', 'Tx1Lsw', 'M', 'y', 'i', 'TLane', 'TPiLane', 'T0', 'tMsw', 'round', 'laneLsw', 'Tx1Lane', 'lane', 'state', 'state0', 'offset', 'laneMsw', 'tLsw', 'M2i1', 'laneIndex', 'Tx4', 'Tx2Lane'])
                var.put('state', var.get(u"this").get('_state'))
                var.put('nBlockSizeLanes', (var.get(u"this").get('blockSize')/Js(2.0)))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('nBlockSizeLanes')):
                    try:
                        var.put('M2i', var.get('M').get((var.get('offset')+(Js(2.0)*var.get('i')))))
                        var.put('M2i1', var.get('M').get(((var.get('offset')+(Js(2.0)*var.get('i')))+Js(1.0))))
                        var.put('M2i', ((((var.get('M2i')<<Js(8.0))|PyJsBshift(var.get('M2i'),Js(24.0)))&Js(16711935))|(((var.get('M2i')<<Js(24.0))|PyJsBshift(var.get('M2i'),Js(8.0)))&Js(4278255360))))
                        var.put('M2i1', ((((var.get('M2i1')<<Js(8.0))|PyJsBshift(var.get('M2i1'),Js(24.0)))&Js(16711935))|(((var.get('M2i1')<<Js(24.0))|PyJsBshift(var.get('M2i1'),Js(8.0)))&Js(4278255360))))
                        var.put('lane', var.get('state').get(var.get('i')))
                        var.get('lane').put('high', var.get('M2i1'), '^')
                        var.get('lane').put('low', var.get('M2i'), '^')
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                #for JS loop
                var.put('round', Js(0.0))
                while (var.get('round')<Js(24.0)):
                    try:
                        #for JS loop
                        var.put('x', Js(0.0))
                        while (var.get('x')<Js(5.0)):
                            try:
                                var.put('tMsw', Js(0.0))
                                var.put('tLsw', Js(0.0))
                                #for JS loop
                                var.put('y', Js(0.0))
                                while (var.get('y')<Js(5.0)):
                                    try:
                                        var.put('lane', var.get('state').get((var.get('x')+(Js(5.0)*var.get('y')))))
                                        var.put('tMsw', var.get('lane').get('high'), '^')
                                        var.put('tLsw', var.get('lane').get('low'), '^')
                                    finally:
                                            (var.put('y',Js(var.get('y').to_number())+Js(1))-Js(1))
                                var.put('Tx', var.get('T').get(var.get('x')))
                                var.get('Tx').put('high', var.get('tMsw'))
                                var.get('Tx').put('low', var.get('tLsw'))
                            finally:
                                    (var.put('x',Js(var.get('x').to_number())+Js(1))-Js(1))
                        #for JS loop
                        var.put('x', Js(0.0))
                        while (var.get('x')<Js(5.0)):
                            try:
                                var.put('Tx4', var.get('T').get(((var.get('x')+Js(4.0))%Js(5.0))))
                                var.put('Tx1', var.get('T').get(((var.get('x')+Js(1.0))%Js(5.0))))
                                var.put('Tx1Msw', var.get('Tx1').get('high'))
                                var.put('Tx1Lsw', var.get('Tx1').get('low'))
                                var.put('tMsw', (var.get('Tx4').get('high')^((var.get('Tx1Msw')<<Js(1.0))|PyJsBshift(var.get('Tx1Lsw'),Js(31.0)))))
                                var.put('tLsw', (var.get('Tx4').get('low')^((var.get('Tx1Lsw')<<Js(1.0))|PyJsBshift(var.get('Tx1Msw'),Js(31.0)))))
                                #for JS loop
                                var.put('y', Js(0.0))
                                while (var.get('y')<Js(5.0)):
                                    try:
                                        var.put('lane', var.get('state').get((var.get('x')+(Js(5.0)*var.get('y')))))
                                        var.get('lane').put('high', var.get('tMsw'), '^')
                                        var.get('lane').put('low', var.get('tLsw'), '^')
                                    finally:
                                            (var.put('y',Js(var.get('y').to_number())+Js(1))-Js(1))
                            finally:
                                    (var.put('x',Js(var.get('x').to_number())+Js(1))-Js(1))
                        #for JS loop
                        var.put('laneIndex', Js(1.0))
                        while (var.get('laneIndex')<Js(25.0)):
                            try:
                                var.put('lane', var.get('state').get(var.get('laneIndex')))
                                var.put('laneMsw', var.get('lane').get('high'))
                                var.put('laneLsw', var.get('lane').get('low'))
                                var.put('rhoOffset', var.get('RHO_OFFSETS').get(var.get('laneIndex')))
                                if (var.get('rhoOffset')<Js(32.0)):
                                    var.put('tMsw', ((var.get('laneMsw')<<var.get('rhoOffset'))|PyJsBshift(var.get('laneLsw'),(Js(32.0)-var.get('rhoOffset')))))
                                    var.put('tLsw', ((var.get('laneLsw')<<var.get('rhoOffset'))|PyJsBshift(var.get('laneMsw'),(Js(32.0)-var.get('rhoOffset')))))
                                else:
                                    var.put('tMsw', ((var.get('laneLsw')<<(var.get('rhoOffset')-Js(32.0)))|PyJsBshift(var.get('laneMsw'),(Js(64.0)-var.get('rhoOffset')))))
                                    var.put('tLsw', ((var.get('laneMsw')<<(var.get('rhoOffset')-Js(32.0)))|PyJsBshift(var.get('laneLsw'),(Js(64.0)-var.get('rhoOffset')))))
                                var.put('TPiLane', var.get('T').get(var.get('PI_INDEXES').get(var.get('laneIndex'))))
                                var.get('TPiLane').put('high', var.get('tMsw'))
                                var.get('TPiLane').put('low', var.get('tLsw'))
                            finally:
                                    (var.put('laneIndex',Js(var.get('laneIndex').to_number())+Js(1))-Js(1))
                        var.put('T0', var.get('T').get('0'))
                        var.put('state0', var.get('state').get('0'))
                        var.get('T0').put('high', var.get('state0').get('high'))
                        var.get('T0').put('low', var.get('state0').get('low'))
                        #for JS loop
                        var.put('x', Js(0.0))
                        while (var.get('x')<Js(5.0)):
                            try:
                                #for JS loop
                                var.put('y', Js(0.0))
                                while (var.get('y')<Js(5.0)):
                                    try:
                                        var.put('laneIndex', (var.get('x')+(Js(5.0)*var.get('y'))))
                                        var.put('lane', var.get('state').get(var.get('laneIndex')))
                                        var.put('TLane', var.get('T').get(var.get('laneIndex')))
                                        var.put('Tx1Lane', var.get('T').get((((var.get('x')+Js(1.0))%Js(5.0))+(Js(5.0)*var.get('y')))))
                                        var.put('Tx2Lane', var.get('T').get((((var.get('x')+Js(2.0))%Js(5.0))+(Js(5.0)*var.get('y')))))
                                        var.get('lane').put('high', (var.get('TLane').get('high')^((~var.get('Tx1Lane').get('high'))&var.get('Tx2Lane').get('high'))))
                                        var.get('lane').put('low', (var.get('TLane').get('low')^((~var.get('Tx1Lane').get('low'))&var.get('Tx2Lane').get('low'))))
                                    finally:
                                            (var.put('y',Js(var.get('y').to_number())+Js(1))-Js(1))
                            finally:
                                    (var.put('x',Js(var.get('x').to_number())+Js(1))-Js(1))
                        var.put('lane', var.get('state').get('0'))
                        var.put('roundConstant', var.get('ROUND_CONSTANTS').get(var.get('round')))
                        var.get('lane').put('high', var.get('roundConstant').get('high'), '^')
                        var.get('lane').put('low', var.get('roundConstant').get('low'), '^')
                        pass
                    finally:
                            (var.put('round',Js(var.get('round').to_number())+Js(1))-Js(1))
            PyJs__doProcessBlock_365_._set_name('_doProcessBlock')
            @Js
            def PyJs__doFinalize_366_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doFinalize':PyJs__doFinalize_366_}, var)
                var.registers(['laneMsw', 'data', 'dataWords', 'outputLengthLanes', 'laneLsw', 'nBitsLeft', 'blockSizeBits', 'i', 'lane', 'nBitsTotal', 'hashWords', 'state', 'outputLengthBytes'])
                var.put('data', var.get(u"this").get('_data'))
                var.put('dataWords', var.get('data').get('words'))
                var.put('nBitsTotal', (var.get(u"this").get('_nDataBytes')*Js(8.0)))
                var.put('nBitsLeft', (var.get('data').get('sigBytes')*Js(8.0)))
                var.put('blockSizeBits', (var.get(u"this").get('blockSize')*Js(32.0)))
                var.get('dataWords').put(PyJsBshift(var.get('nBitsLeft'),Js(5.0)), (Js(1)<<(Js(24.0)-(var.get('nBitsLeft')%Js(32.0)))), '|')
                var.get('dataWords').put((PyJsBshift((var.get('Math').callprop('ceil', ((var.get('nBitsLeft')+Js(1.0))/var.get('blockSizeBits')))*var.get('blockSizeBits')),Js(5.0))-Js(1.0)), Js(128), '|')
                var.get('data').put('sigBytes', (var.get('dataWords').get('length')*Js(4.0)))
                var.get(u"this").callprop('_process')
                var.put('state', var.get(u"this").get('_state'))
                var.put('outputLengthBytes', (var.get(u"this").get('cfg').get('outputLength')/Js(8.0)))
                var.put('outputLengthLanes', (var.get('outputLengthBytes')/Js(8.0)))
                var.put('hashWords', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('outputLengthLanes')):
                    try:
                        var.put('lane', var.get('state').get(var.get('i')))
                        var.put('laneMsw', var.get('lane').get('high'))
                        var.put('laneLsw', var.get('lane').get('low'))
                        var.put('laneMsw', ((((var.get('laneMsw')<<Js(8.0))|PyJsBshift(var.get('laneMsw'),Js(24.0)))&Js(16711935))|(((var.get('laneMsw')<<Js(24.0))|PyJsBshift(var.get('laneMsw'),Js(8.0)))&Js(4278255360))))
                        var.put('laneLsw', ((((var.get('laneLsw')<<Js(8.0))|PyJsBshift(var.get('laneLsw'),Js(24.0)))&Js(16711935))|(((var.get('laneLsw')<<Js(24.0))|PyJsBshift(var.get('laneLsw'),Js(8.0)))&Js(4278255360))))
                        var.get('hashWords').callprop('push', var.get('laneLsw'))
                        var.get('hashWords').callprop('push', var.get('laneMsw'))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                return var.get('WordArray').get('init').create(var.get('hashWords'), var.get('outputLengthBytes'))
            PyJs__doFinalize_366_._set_name('_doFinalize')
            @Js
            def PyJs_clone_367_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'clone':PyJs_clone_367_}, var)
                var.registers(['clone', 'i', 'state'])
                var.put('clone', var.get('Hasher').get('clone').callprop('call', var.get(u"this")))
                var.put('state', var.get('clone').put('_state', var.get(u"this").get('_state').callprop('slice', Js(0.0))))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(25.0)):
                    try:
                        var.get('state').put(var.get('i'), var.get('state').get(var.get('i')).callprop('clone'))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                return var.get('clone')
            PyJs_clone_367_._set_name('clone')
            PyJs_Object_362_ = Js({'cfg':var.get('Hasher').get('cfg').callprop('extend', PyJs_Object_363_),'_doReset':PyJs__doReset_364_,'_doProcessBlock':PyJs__doProcessBlock_365_,'_doFinalize':PyJs__doFinalize_366_,'clone':PyJs_clone_367_})
            var.put('SHA3', var.get('C_algo').put('SHA3', var.get('Hasher').callprop('extend', PyJs_Object_362_)))
            var.get('C').put('SHA3', var.get('Hasher').callprop('_createHelper', var.get('SHA3')))
            var.get('C').put('HmacSHA3', var.get('Hasher').callprop('_createHmacHelper', var.get('SHA3')))
        PyJs_anonymous_359_._set_name('anonymous')
        PyJs_anonymous_359_(var.get('Math'))
        return var.get('CryptoJS').get('SHA3')
    PyJs_anonymous_358_._set_name('anonymous')
    @Js
    def PyJs_anonymous_368_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./x64-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./x64-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_368_._set_name('anonymous')
    PyJs_anonymous_368_(var.get(u"this"), PyJs_anonymous_358_)
PyJs_anonymous_357_._set_name('anonymous')
PyJs_Object_369_ = Js({'./core':Js(3.0),'./x64-core':Js(34.0)})
@Js
def PyJs_anonymous_370_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_371_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_372_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['X64Word', 'C_algo', 'SHA512', 'C_x64', 'C', 'SHA384', 'X64WordArray'])
            var.put('C', var.get('CryptoJS'))
            var.put('C_x64', var.get('C').get('x64'))
            var.put('X64Word', var.get('C_x64').get('Word'))
            var.put('X64WordArray', var.get('C_x64').get('WordArray'))
            var.put('C_algo', var.get('C').get('algo'))
            var.put('SHA512', var.get('C_algo').get('SHA512'))
            @Js
            def PyJs__doReset_374_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_374_}, var)
                var.registers([])
                def PyJs_LONG_375_(var=var):
                    return var.get('X64WordArray').get('init').create(Js([var.get('X64Word').get('init').create(Js(3418070365), Js(3238371032)), var.get('X64Word').get('init').create(Js(1654270250), Js(914150663)), var.get('X64Word').get('init').create(Js(2438529370), Js(812702999)), var.get('X64Word').get('init').create(Js(355462360), Js(4144912697)), var.get('X64Word').get('init').create(Js(1731405415), Js(4290775857)), var.get('X64Word').get('init').create(Js(2394180231), Js(1750603025)), var.get('X64Word').get('init').create(Js(3675008525), Js(1694076839)), var.get('X64Word').get('init').create(Js(1203062813), Js(3204075428))]))
                var.get(u"this").put('_hash', PyJs_LONG_375_())
            PyJs__doReset_374_._set_name('_doReset')
            @Js
            def PyJs__doFinalize_376_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doFinalize':PyJs__doFinalize_376_}, var)
                var.registers(['hash'])
                var.put('hash', var.get('SHA512').get('_doFinalize').callprop('call', var.get(u"this")))
                var.get('hash').put('sigBytes', Js(16.0), '-')
                return var.get('hash')
            PyJs__doFinalize_376_._set_name('_doFinalize')
            PyJs_Object_373_ = Js({'_doReset':PyJs__doReset_374_,'_doFinalize':PyJs__doFinalize_376_})
            var.put('SHA384', var.get('C_algo').put('SHA384', var.get('SHA512').callprop('extend', PyJs_Object_373_)))
            var.get('C').put('SHA384', var.get('SHA512').callprop('_createHelper', var.get('SHA384')))
            var.get('C').put('HmacSHA384', var.get('SHA512').callprop('_createHmacHelper', var.get('SHA384')))
        PyJs_anonymous_372_._set_name('anonymous')
        PyJs_anonymous_372_()
        return var.get('CryptoJS').get('SHA384')
    PyJs_anonymous_371_._set_name('anonymous')
    @Js
    def PyJs_anonymous_377_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./x64-core')), var.get('require')(Js('./sha512')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./x64-core'), Js('./sha512')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_377_._set_name('anonymous')
    PyJs_anonymous_377_(var.get(u"this"), PyJs_anonymous_371_)
PyJs_anonymous_370_._set_name('anonymous')
PyJs_Object_378_ = Js({'./core':Js(3.0),'./sha512':Js(32.0),'./x64-core':Js(34.0)})
@Js
def PyJs_anonymous_379_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_380_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_381_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['X64Word', 'C_algo', 'K', 'C_lib', 'C_x64', 'C', 'SHA512', 'X64WordArray', 'X64Word_create', 'W', 'Hasher'])
            @Js
            def PyJsHoisted_X64Word_create_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers([])
                return var.get('X64Word').get('create').callprop('apply', var.get('X64Word'), var.get('arguments'))
            PyJsHoisted_X64Word_create_.func_name = 'X64Word_create'
            var.put('X64Word_create', PyJsHoisted_X64Word_create_)
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('Hasher', var.get('C_lib').get('Hasher'))
            var.put('C_x64', var.get('C').get('x64'))
            var.put('X64Word', var.get('C_x64').get('Word'))
            var.put('X64WordArray', var.get('C_x64').get('WordArray'))
            var.put('C_algo', var.get('C').get('algo'))
            pass
            var.put('K', Js([var.get('X64Word_create')(Js(1116352408), Js(3609767458)), var.get('X64Word_create')(Js(1899447441), Js(602891725)), var.get('X64Word_create')(Js(3049323471), Js(3964484399)), var.get('X64Word_create')(Js(3921009573), Js(2173295548)), var.get('X64Word_create')(Js(961987163), Js(4081628472)), var.get('X64Word_create')(Js(1508970993), Js(3053834265)), var.get('X64Word_create')(Js(2453635748), Js(2937671579)), var.get('X64Word_create')(Js(2870763221), Js(3664609560)), var.get('X64Word_create')(Js(3624381080), Js(2734883394)), var.get('X64Word_create')(Js(310598401), Js(1164996542)), var.get('X64Word_create')(Js(607225278), Js(1323610764)), var.get('X64Word_create')(Js(1426881987), Js(3590304994)), var.get('X64Word_create')(Js(1925078388), Js(4068182383)), var.get('X64Word_create')(Js(2162078206), Js(991336113)), var.get('X64Word_create')(Js(2614888103), Js(633803317)), var.get('X64Word_create')(Js(3248222580), Js(3479774868)), var.get('X64Word_create')(Js(3835390401), Js(2666613458)), var.get('X64Word_create')(Js(4022224774), Js(944711139)), var.get('X64Word_create')(Js(264347078), Js(2341262773)), var.get('X64Word_create')(Js(604807628), Js(2007800933)), var.get('X64Word_create')(Js(770255983), Js(1495990901)), var.get('X64Word_create')(Js(1249150122), Js(1856431235)), var.get('X64Word_create')(Js(1555081692), Js(3175218132)), var.get('X64Word_create')(Js(1996064986), Js(2198950837)), var.get('X64Word_create')(Js(2554220882), Js(3999719339)), var.get('X64Word_create')(Js(2821834349), Js(766784016)), var.get('X64Word_create')(Js(2952996808), Js(2566594879)), var.get('X64Word_create')(Js(3210313671), Js(3203337956)), var.get('X64Word_create')(Js(3336571891), Js(1034457026)), var.get('X64Word_create')(Js(3584528711), Js(2466948901)), var.get('X64Word_create')(Js(113926993), Js(3758326383)), var.get('X64Word_create')(Js(338241895), Js(168717936)), var.get('X64Word_create')(Js(666307205), Js(1188179964)), var.get('X64Word_create')(Js(773529912), Js(1546045734)), var.get('X64Word_create')(Js(1294757372), Js(1522805485)), var.get('X64Word_create')(Js(1396182291), Js(2643833823)), var.get('X64Word_create')(Js(1695183700), Js(2343527390)), var.get('X64Word_create')(Js(1986661051), Js(1014477480)), var.get('X64Word_create')(Js(2177026350), Js(1206759142)), var.get('X64Word_create')(Js(2456956037), Js(344077627)), var.get('X64Word_create')(Js(2730485921), Js(1290863460)), var.get('X64Word_create')(Js(2820302411), Js(3158454273)), var.get('X64Word_create')(Js(3259730800), Js(3505952657)), var.get('X64Word_create')(Js(3345764771), Js(106217008)), var.get('X64Word_create')(Js(3516065817), Js(3606008344)), var.get('X64Word_create')(Js(3600352804), Js(1432725776)), var.get('X64Word_create')(Js(4094571909), Js(1467031594)), var.get('X64Word_create')(Js(275423344), Js(851169720)), var.get('X64Word_create')(Js(430227734), Js(3100823752)), var.get('X64Word_create')(Js(506948616), Js(1363258195)), var.get('X64Word_create')(Js(659060556), Js(3750685593)), var.get('X64Word_create')(Js(883997877), Js(3785050280)), var.get('X64Word_create')(Js(958139571), Js(3318307427)), var.get('X64Word_create')(Js(1322822218), Js(3812723403)), var.get('X64Word_create')(Js(1537002063), Js(2003034995)), var.get('X64Word_create')(Js(1747873779), Js(3602036899)), var.get('X64Word_create')(Js(1955562222), Js(1575990012)), var.get('X64Word_create')(Js(2024104815), Js(1125592928)), var.get('X64Word_create')(Js(2227730452), Js(2716904306)), var.get('X64Word_create')(Js(2361852424), Js(442776044)), var.get('X64Word_create')(Js(2428436474), Js(593698344)), var.get('X64Word_create')(Js(2756734187), Js(3733110249)), var.get('X64Word_create')(Js(3204031479), Js(2999351573)), var.get('X64Word_create')(Js(3329325298), Js(3815920427)), var.get('X64Word_create')(Js(3391569614), Js(3928383900)), var.get('X64Word_create')(Js(3515267271), Js(566280711)), var.get('X64Word_create')(Js(3940187606), Js(3454069534)), var.get('X64Word_create')(Js(4118630271), Js(4000239992)), var.get('X64Word_create')(Js(116418474), Js(1914138554)), var.get('X64Word_create')(Js(174292421), Js(2731055270)), var.get('X64Word_create')(Js(289380356), Js(3203993006)), var.get('X64Word_create')(Js(460393269), Js(320620315)), var.get('X64Word_create')(Js(685471733), Js(587496836)), var.get('X64Word_create')(Js(852142971), Js(1086792851)), var.get('X64Word_create')(Js(1017036298), Js(365543100)), var.get('X64Word_create')(Js(1126000580), Js(2618297676)), var.get('X64Word_create')(Js(1288033470), Js(3409855158)), var.get('X64Word_create')(Js(1501505948), Js(4234509866)), var.get('X64Word_create')(Js(1607167915), Js(987167468)), var.get('X64Word_create')(Js(1816402316), Js(1246189591))]))
            var.put('W', Js([]))
            @Js
            def PyJs_anonymous_382_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments}, var)
                var.registers(['i'])
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(80.0)):
                    try:
                        var.get('W').put(var.get('i'), var.get('X64Word_create')())
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJs_anonymous_382_._set_name('anonymous')
            PyJs_anonymous_382_()
            @Js
            def PyJs__doReset_384_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_384_}, var)
                var.registers([])
                def PyJs_LONG_385_(var=var):
                    return var.get('X64WordArray').get('init').create(Js([var.get('X64Word').get('init').create(Js(1779033703), Js(4089235720)), var.get('X64Word').get('init').create(Js(3144134277), Js(2227873595)), var.get('X64Word').get('init').create(Js(1013904242), Js(4271175723)), var.get('X64Word').get('init').create(Js(2773480762), Js(1595750129)), var.get('X64Word').get('init').create(Js(1359893119), Js(2917565137)), var.get('X64Word').get('init').create(Js(2600822924), Js(725511199)), var.get('X64Word').get('init').create(Js(528734635), Js(4215389547)), var.get('X64Word').get('init').create(Js(1541459225), Js(327033209))]))
                var.get(u"this").put('_hash', PyJs_LONG_385_())
            PyJs__doReset_384_._set_name('_doReset')
            @Js
            def PyJs__doProcessBlock_386_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, '_doProcessBlock':PyJs__doProcessBlock_386_}, var)
                var.registers(['H1', 'gamma0l', 't1h', 'hh', 'gamma1xl', 'H0l', 't1l', 'Wil', 'sigma0h', 'H4', 'ch', 'gamma0x', 'Wi16', 'H', 'dl', 'H0', 'gamma0xh', 'majh', 'Kil', 'Wi7', 'Wi', 'H1h', 'eh', 'Wi16l', 'H4h', 'gamma1xh', 'al', 'gh', 'fh', 'gamma0h', 'fl', 'H6', 't2l', 'gamma1l', 'M', 'H3h', 'H7l', 'H6h', 'i', 'H7h', 'Wih', 'gamma0xl', 'H6l', 'Wi16h', 'chl', 'sigma0l', 'gl', 'el', 'Wi7h', 'offset', 'sigma1h', 'hl', 'H3', 'gamma1x', 'H5l', 'H7', 'H1l', 'H2h', 'sigma1l', 'H5h', 'chh', 'Wi7l', 'bh', 'majl', 'H2', 't2h', 'H3l', 'bl', 'cl', 'ah', 'H5', 'H2l', 'H4l', 'Ki', 'Kih', 'H0h', 'gamma1h', 'dh'])
                var.put('H', var.get(u"this").get('_hash').get('words'))
                var.put('H0', var.get('H').get('0'))
                var.put('H1', var.get('H').get('1'))
                var.put('H2', var.get('H').get('2'))
                var.put('H3', var.get('H').get('3'))
                var.put('H4', var.get('H').get('4'))
                var.put('H5', var.get('H').get('5'))
                var.put('H6', var.get('H').get('6'))
                var.put('H7', var.get('H').get('7'))
                var.put('H0h', var.get('H0').get('high'))
                var.put('H0l', var.get('H0').get('low'))
                var.put('H1h', var.get('H1').get('high'))
                var.put('H1l', var.get('H1').get('low'))
                var.put('H2h', var.get('H2').get('high'))
                var.put('H2l', var.get('H2').get('low'))
                var.put('H3h', var.get('H3').get('high'))
                var.put('H3l', var.get('H3').get('low'))
                var.put('H4h', var.get('H4').get('high'))
                var.put('H4l', var.get('H4').get('low'))
                var.put('H5h', var.get('H5').get('high'))
                var.put('H5l', var.get('H5').get('low'))
                var.put('H6h', var.get('H6').get('high'))
                var.put('H6l', var.get('H6').get('low'))
                var.put('H7h', var.get('H7').get('high'))
                var.put('H7l', var.get('H7').get('low'))
                var.put('ah', var.get('H0h'))
                var.put('al', var.get('H0l'))
                var.put('bh', var.get('H1h'))
                var.put('bl', var.get('H1l'))
                var.put('ch', var.get('H2h'))
                var.put('cl', var.get('H2l'))
                var.put('dh', var.get('H3h'))
                var.put('dl', var.get('H3l'))
                var.put('eh', var.get('H4h'))
                var.put('el', var.get('H4l'))
                var.put('fh', var.get('H5h'))
                var.put('fl', var.get('H5l'))
                var.put('gh', var.get('H6h'))
                var.put('gl', var.get('H6l'))
                var.put('hh', var.get('H7h'))
                var.put('hl', var.get('H7l'))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(80.0)):
                    try:
                        var.put('Wi', var.get('W').get(var.get('i')))
                        if (var.get('i')<Js(16.0)):
                            var.put('Wih', var.get('Wi').put('high', (var.get('M').get((var.get('offset')+(var.get('i')*Js(2.0))))|Js(0.0))))
                            var.put('Wil', var.get('Wi').put('low', (var.get('M').get(((var.get('offset')+(var.get('i')*Js(2.0)))+Js(1.0)))|Js(0.0))))
                        else:
                            var.put('gamma0x', var.get('W').get((var.get('i')-Js(15.0))))
                            var.put('gamma0xh', var.get('gamma0x').get('high'))
                            var.put('gamma0xl', var.get('gamma0x').get('low'))
                            var.put('gamma0h', (((PyJsBshift(var.get('gamma0xh'),Js(1.0))|(var.get('gamma0xl')<<Js(31.0)))^(PyJsBshift(var.get('gamma0xh'),Js(8.0))|(var.get('gamma0xl')<<Js(24.0))))^PyJsBshift(var.get('gamma0xh'),Js(7.0))))
                            var.put('gamma0l', (((PyJsBshift(var.get('gamma0xl'),Js(1.0))|(var.get('gamma0xh')<<Js(31.0)))^(PyJsBshift(var.get('gamma0xl'),Js(8.0))|(var.get('gamma0xh')<<Js(24.0))))^(PyJsBshift(var.get('gamma0xl'),Js(7.0))|(var.get('gamma0xh')<<Js(25.0)))))
                            var.put('gamma1x', var.get('W').get((var.get('i')-Js(2.0))))
                            var.put('gamma1xh', var.get('gamma1x').get('high'))
                            var.put('gamma1xl', var.get('gamma1x').get('low'))
                            var.put('gamma1h', (((PyJsBshift(var.get('gamma1xh'),Js(19.0))|(var.get('gamma1xl')<<Js(13.0)))^((var.get('gamma1xh')<<Js(3.0))|PyJsBshift(var.get('gamma1xl'),Js(29.0))))^PyJsBshift(var.get('gamma1xh'),Js(6.0))))
                            var.put('gamma1l', (((PyJsBshift(var.get('gamma1xl'),Js(19.0))|(var.get('gamma1xh')<<Js(13.0)))^((var.get('gamma1xl')<<Js(3.0))|PyJsBshift(var.get('gamma1xh'),Js(29.0))))^(PyJsBshift(var.get('gamma1xl'),Js(6.0))|(var.get('gamma1xh')<<Js(26.0)))))
                            var.put('Wi7', var.get('W').get((var.get('i')-Js(7.0))))
                            var.put('Wi7h', var.get('Wi7').get('high'))
                            var.put('Wi7l', var.get('Wi7').get('low'))
                            var.put('Wi16', var.get('W').get((var.get('i')-Js(16.0))))
                            var.put('Wi16h', var.get('Wi16').get('high'))
                            var.put('Wi16l', var.get('Wi16').get('low'))
                            var.put('Wil', (var.get('gamma0l')+var.get('Wi7l')))
                            var.put('Wih', ((var.get('gamma0h')+var.get('Wi7h'))+(Js(1.0) if (PyJsBshift(var.get('Wil'),Js(0.0))<PyJsBshift(var.get('gamma0l'),Js(0.0))) else Js(0.0))))
                            var.put('Wil', (var.get('Wil')+var.get('gamma1l')))
                            var.put('Wih', ((var.get('Wih')+var.get('gamma1h'))+(Js(1.0) if (PyJsBshift(var.get('Wil'),Js(0.0))<PyJsBshift(var.get('gamma1l'),Js(0.0))) else Js(0.0))))
                            var.put('Wil', (var.get('Wil')+var.get('Wi16l')))
                            var.put('Wih', ((var.get('Wih')+var.get('Wi16h'))+(Js(1.0) if (PyJsBshift(var.get('Wil'),Js(0.0))<PyJsBshift(var.get('Wi16l'),Js(0.0))) else Js(0.0))))
                            var.get('Wi').put('high', var.get('Wih'))
                            var.get('Wi').put('low', var.get('Wil'))
                        var.put('chh', ((var.get('eh')&var.get('fh'))^((~var.get('eh'))&var.get('gh'))))
                        var.put('chl', ((var.get('el')&var.get('fl'))^((~var.get('el'))&var.get('gl'))))
                        var.put('majh', (((var.get('ah')&var.get('bh'))^(var.get('ah')&var.get('ch')))^(var.get('bh')&var.get('ch'))))
                        var.put('majl', (((var.get('al')&var.get('bl'))^(var.get('al')&var.get('cl')))^(var.get('bl')&var.get('cl'))))
                        var.put('sigma0h', (((PyJsBshift(var.get('ah'),Js(28.0))|(var.get('al')<<Js(4.0)))^((var.get('ah')<<Js(30.0))|PyJsBshift(var.get('al'),Js(2.0))))^((var.get('ah')<<Js(25.0))|PyJsBshift(var.get('al'),Js(7.0)))))
                        var.put('sigma0l', (((PyJsBshift(var.get('al'),Js(28.0))|(var.get('ah')<<Js(4.0)))^((var.get('al')<<Js(30.0))|PyJsBshift(var.get('ah'),Js(2.0))))^((var.get('al')<<Js(25.0))|PyJsBshift(var.get('ah'),Js(7.0)))))
                        var.put('sigma1h', (((PyJsBshift(var.get('eh'),Js(14.0))|(var.get('el')<<Js(18.0)))^(PyJsBshift(var.get('eh'),Js(18.0))|(var.get('el')<<Js(14.0))))^((var.get('eh')<<Js(23.0))|PyJsBshift(var.get('el'),Js(9.0)))))
                        var.put('sigma1l', (((PyJsBshift(var.get('el'),Js(14.0))|(var.get('eh')<<Js(18.0)))^(PyJsBshift(var.get('el'),Js(18.0))|(var.get('eh')<<Js(14.0))))^((var.get('el')<<Js(23.0))|PyJsBshift(var.get('eh'),Js(9.0)))))
                        var.put('Ki', var.get('K').get(var.get('i')))
                        var.put('Kih', var.get('Ki').get('high'))
                        var.put('Kil', var.get('Ki').get('low'))
                        var.put('t1l', (var.get('hl')+var.get('sigma1l')))
                        var.put('t1h', ((var.get('hh')+var.get('sigma1h'))+(Js(1.0) if (PyJsBshift(var.get('t1l'),Js(0.0))<PyJsBshift(var.get('hl'),Js(0.0))) else Js(0.0))))
                        var.put('t1l', (var.get('t1l')+var.get('chl')))
                        var.put('t1h', ((var.get('t1h')+var.get('chh'))+(Js(1.0) if (PyJsBshift(var.get('t1l'),Js(0.0))<PyJsBshift(var.get('chl'),Js(0.0))) else Js(0.0))))
                        var.put('t1l', (var.get('t1l')+var.get('Kil')))
                        var.put('t1h', ((var.get('t1h')+var.get('Kih'))+(Js(1.0) if (PyJsBshift(var.get('t1l'),Js(0.0))<PyJsBshift(var.get('Kil'),Js(0.0))) else Js(0.0))))
                        var.put('t1l', (var.get('t1l')+var.get('Wil')))
                        var.put('t1h', ((var.get('t1h')+var.get('Wih'))+(Js(1.0) if (PyJsBshift(var.get('t1l'),Js(0.0))<PyJsBshift(var.get('Wil'),Js(0.0))) else Js(0.0))))
                        var.put('t2l', (var.get('sigma0l')+var.get('majl')))
                        var.put('t2h', ((var.get('sigma0h')+var.get('majh'))+(Js(1.0) if (PyJsBshift(var.get('t2l'),Js(0.0))<PyJsBshift(var.get('sigma0l'),Js(0.0))) else Js(0.0))))
                        var.put('hh', var.get('gh'))
                        var.put('hl', var.get('gl'))
                        var.put('gh', var.get('fh'))
                        var.put('gl', var.get('fl'))
                        var.put('fh', var.get('eh'))
                        var.put('fl', var.get('el'))
                        var.put('el', ((var.get('dl')+var.get('t1l'))|Js(0.0)))
                        var.put('eh', (((var.get('dh')+var.get('t1h'))+(Js(1.0) if (PyJsBshift(var.get('el'),Js(0.0))<PyJsBshift(var.get('dl'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                        var.put('dh', var.get('ch'))
                        var.put('dl', var.get('cl'))
                        var.put('ch', var.get('bh'))
                        var.put('cl', var.get('bl'))
                        var.put('bh', var.get('ah'))
                        var.put('bl', var.get('al'))
                        var.put('al', ((var.get('t1l')+var.get('t2l'))|Js(0.0)))
                        var.put('ah', (((var.get('t1h')+var.get('t2h'))+(Js(1.0) if (PyJsBshift(var.get('al'),Js(0.0))<PyJsBshift(var.get('t1l'),Js(0.0))) else Js(0.0)))|Js(0.0)))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.put('H0l', var.get('H0').put('low', (var.get('H0l')+var.get('al'))))
                var.get('H0').put('high', ((var.get('H0h')+var.get('ah'))+(Js(1.0) if (PyJsBshift(var.get('H0l'),Js(0.0))<PyJsBshift(var.get('al'),Js(0.0))) else Js(0.0))))
                var.put('H1l', var.get('H1').put('low', (var.get('H1l')+var.get('bl'))))
                var.get('H1').put('high', ((var.get('H1h')+var.get('bh'))+(Js(1.0) if (PyJsBshift(var.get('H1l'),Js(0.0))<PyJsBshift(var.get('bl'),Js(0.0))) else Js(0.0))))
                var.put('H2l', var.get('H2').put('low', (var.get('H2l')+var.get('cl'))))
                var.get('H2').put('high', ((var.get('H2h')+var.get('ch'))+(Js(1.0) if (PyJsBshift(var.get('H2l'),Js(0.0))<PyJsBshift(var.get('cl'),Js(0.0))) else Js(0.0))))
                var.put('H3l', var.get('H3').put('low', (var.get('H3l')+var.get('dl'))))
                var.get('H3').put('high', ((var.get('H3h')+var.get('dh'))+(Js(1.0) if (PyJsBshift(var.get('H3l'),Js(0.0))<PyJsBshift(var.get('dl'),Js(0.0))) else Js(0.0))))
                var.put('H4l', var.get('H4').put('low', (var.get('H4l')+var.get('el'))))
                var.get('H4').put('high', ((var.get('H4h')+var.get('eh'))+(Js(1.0) if (PyJsBshift(var.get('H4l'),Js(0.0))<PyJsBshift(var.get('el'),Js(0.0))) else Js(0.0))))
                var.put('H5l', var.get('H5').put('low', (var.get('H5l')+var.get('fl'))))
                var.get('H5').put('high', ((var.get('H5h')+var.get('fh'))+(Js(1.0) if (PyJsBshift(var.get('H5l'),Js(0.0))<PyJsBshift(var.get('fl'),Js(0.0))) else Js(0.0))))
                var.put('H6l', var.get('H6').put('low', (var.get('H6l')+var.get('gl'))))
                var.get('H6').put('high', ((var.get('H6h')+var.get('gh'))+(Js(1.0) if (PyJsBshift(var.get('H6l'),Js(0.0))<PyJsBshift(var.get('gl'),Js(0.0))) else Js(0.0))))
                var.put('H7l', var.get('H7').put('low', (var.get('H7l')+var.get('hl'))))
                var.get('H7').put('high', ((var.get('H7h')+var.get('hh'))+(Js(1.0) if (PyJsBshift(var.get('H7l'),Js(0.0))<PyJsBshift(var.get('hl'),Js(0.0))) else Js(0.0))))
            PyJs__doProcessBlock_386_._set_name('_doProcessBlock')
            @Js
            def PyJs__doFinalize_387_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doFinalize':PyJs__doFinalize_387_}, var)
                var.registers(['data', 'dataWords', 'nBitsLeft', 'hash', 'nBitsTotal'])
                var.put('data', var.get(u"this").get('_data'))
                var.put('dataWords', var.get('data').get('words'))
                var.put('nBitsTotal', (var.get(u"this").get('_nDataBytes')*Js(8.0)))
                var.put('nBitsLeft', (var.get('data').get('sigBytes')*Js(8.0)))
                var.get('dataWords').put(PyJsBshift(var.get('nBitsLeft'),Js(5.0)), (Js(128)<<(Js(24.0)-(var.get('nBitsLeft')%Js(32.0)))), '|')
                var.get('dataWords').put(((PyJsBshift((var.get('nBitsLeft')+Js(128.0)),Js(10.0))<<Js(5.0))+Js(30.0)), var.get('Math').callprop('floor', (var.get('nBitsTotal')/Js(4294967296))))
                var.get('dataWords').put(((PyJsBshift((var.get('nBitsLeft')+Js(128.0)),Js(10.0))<<Js(5.0))+Js(31.0)), var.get('nBitsTotal'))
                var.get('data').put('sigBytes', (var.get('dataWords').get('length')*Js(4.0)))
                var.get(u"this").callprop('_process')
                var.put('hash', var.get(u"this").get('_hash').callprop('toX32'))
                return var.get('hash')
            PyJs__doFinalize_387_._set_name('_doFinalize')
            @Js
            def PyJs_clone_388_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'clone':PyJs_clone_388_}, var)
                var.registers(['clone'])
                var.put('clone', var.get('Hasher').get('clone').callprop('call', var.get(u"this")))
                var.get('clone').put('_hash', var.get(u"this").get('_hash').callprop('clone'))
                return var.get('clone')
            PyJs_clone_388_._set_name('clone')
            PyJs_Object_383_ = Js({'_doReset':PyJs__doReset_384_,'_doProcessBlock':PyJs__doProcessBlock_386_,'_doFinalize':PyJs__doFinalize_387_,'clone':PyJs_clone_388_,'blockSize':(Js(1024.0)/Js(32.0))})
            var.put('SHA512', var.get('C_algo').put('SHA512', var.get('Hasher').callprop('extend', PyJs_Object_383_)))
            var.get('C').put('SHA512', var.get('Hasher').callprop('_createHelper', var.get('SHA512')))
            var.get('C').put('HmacSHA512', var.get('Hasher').callprop('_createHmacHelper', var.get('SHA512')))
        PyJs_anonymous_381_._set_name('anonymous')
        PyJs_anonymous_381_()
        return var.get('CryptoJS').get('SHA512')
    PyJs_anonymous_380_._set_name('anonymous')
    @Js
    def PyJs_anonymous_389_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./x64-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./x64-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_389_._set_name('anonymous')
    PyJs_anonymous_389_(var.get(u"this"), PyJs_anonymous_380_)
PyJs_anonymous_379_._set_name('anonymous')
PyJs_Object_390_ = Js({'./core':Js(3.0),'./x64-core':Js(34.0)})
@Js
def PyJs_anonymous_391_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_392_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_393_(this, arguments, var=var):
            var = Scope({'this':this, 'arguments':arguments}, var)
            var.registers(['C_algo', 'DES', 'TripleDES', 'PC2', 'BlockCipher', 'C_lib', 'WordArray', 'C', 'PC1', 'exchangeRL', 'exchangeLR', 'BIT_SHIFTS', 'SBOX_MASK', 'SBOX_P'])
            @Js
            def PyJsHoisted_exchangeLR_(offset, mask, this, arguments, var=var):
                var = Scope({'offset':offset, 'mask':mask, 'this':this, 'arguments':arguments}, var)
                var.registers(['t', 'mask', 'offset'])
                var.put('t', ((PyJsBshift(var.get(u"this").get('_lBlock'),var.get('offset'))^var.get(u"this").get('_rBlock'))&var.get('mask')))
                var.get(u"this").put('_rBlock', var.get('t'), '^')
                var.get(u"this").put('_lBlock', (var.get('t')<<var.get('offset')), '^')
            PyJsHoisted_exchangeLR_.func_name = 'exchangeLR'
            var.put('exchangeLR', PyJsHoisted_exchangeLR_)
            @Js
            def PyJsHoisted_exchangeRL_(offset, mask, this, arguments, var=var):
                var = Scope({'offset':offset, 'mask':mask, 'this':this, 'arguments':arguments}, var)
                var.registers(['t', 'mask', 'offset'])
                var.put('t', ((PyJsBshift(var.get(u"this").get('_rBlock'),var.get('offset'))^var.get(u"this").get('_lBlock'))&var.get('mask')))
                var.get(u"this").put('_lBlock', var.get('t'), '^')
                var.get(u"this").put('_rBlock', (var.get('t')<<var.get('offset')), '^')
            PyJsHoisted_exchangeRL_.func_name = 'exchangeRL'
            var.put('exchangeRL', PyJsHoisted_exchangeRL_)
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('WordArray', var.get('C_lib').get('WordArray'))
            var.put('BlockCipher', var.get('C_lib').get('BlockCipher'))
            var.put('C_algo', var.get('C').get('algo'))
            var.put('PC1', Js([Js(57.0), Js(49.0), Js(41.0), Js(33.0), Js(25.0), Js(17.0), Js(9.0), Js(1.0), Js(58.0), Js(50.0), Js(42.0), Js(34.0), Js(26.0), Js(18.0), Js(10.0), Js(2.0), Js(59.0), Js(51.0), Js(43.0), Js(35.0), Js(27.0), Js(19.0), Js(11.0), Js(3.0), Js(60.0), Js(52.0), Js(44.0), Js(36.0), Js(63.0), Js(55.0), Js(47.0), Js(39.0), Js(31.0), Js(23.0), Js(15.0), Js(7.0), Js(62.0), Js(54.0), Js(46.0), Js(38.0), Js(30.0), Js(22.0), Js(14.0), Js(6.0), Js(61.0), Js(53.0), Js(45.0), Js(37.0), Js(29.0), Js(21.0), Js(13.0), Js(5.0), Js(28.0), Js(20.0), Js(12.0), Js(4.0)]))
            var.put('PC2', Js([Js(14.0), Js(17.0), Js(11.0), Js(24.0), Js(1.0), Js(5.0), Js(3.0), Js(28.0), Js(15.0), Js(6.0), Js(21.0), Js(10.0), Js(23.0), Js(19.0), Js(12.0), Js(4.0), Js(26.0), Js(8.0), Js(16.0), Js(7.0), Js(27.0), Js(20.0), Js(13.0), Js(2.0), Js(41.0), Js(52.0), Js(31.0), Js(37.0), Js(47.0), Js(55.0), Js(30.0), Js(40.0), Js(51.0), Js(45.0), Js(33.0), Js(48.0), Js(44.0), Js(49.0), Js(39.0), Js(56.0), Js(34.0), Js(53.0), Js(46.0), Js(42.0), Js(50.0), Js(36.0), Js(29.0), Js(32.0)]))
            var.put('BIT_SHIFTS', Js([Js(1.0), Js(2.0), Js(4.0), Js(6.0), Js(8.0), Js(10.0), Js(12.0), Js(14.0), Js(15.0), Js(17.0), Js(19.0), Js(21.0), Js(23.0), Js(25.0), Js(27.0), Js(28.0)]))
            PyJs_Object_394_ = Js({'0':Js(8421888),'268435456':Js(32768),'536870912':Js(8421378),'805306368':Js(2),'1073741824':Js(512),'1342177280':Js(8421890),'1610612736':Js(8389122),'1879048192':Js(8388608),'2147483648':Js(514),'2415919104':Js(8389120),'2684354560':Js(33280),'2952790016':Js(8421376),'3221225472':Js(32770),'3489660928':Js(8388610),'3758096384':Js(0),'4026531840':Js(33282),'134217728':Js(0),'402653184':Js(8421890),'671088640':Js(33282),'939524096':Js(32768),'1207959552':Js(8421888),'1476395008':Js(512),'1744830464':Js(8421378),'2013265920':Js(2),'2281701376':Js(8389120),'2550136832':Js(33280),'2818572288':Js(8421376),'3087007744':Js(8389122),'3355443200':Js(8388610),'3623878656':Js(32770),'3892314112':Js(514),'4160749568':Js(8388608),'1':Js(32768),'268435457':Js(2),'536870913':Js(8421888),'805306369':Js(8388608),'1073741825':Js(8421378),'1342177281':Js(33280),'1610612737':Js(512),'1879048193':Js(8389122),'2147483649':Js(8421890),'2415919105':Js(8421376),'2684354561':Js(8388610),'2952790017':Js(33282),'3221225473':Js(514),'3489660929':Js(8389120),'3758096385':Js(32770),'4026531841':Js(0),'134217729':Js(8421890),'402653185':Js(8421376),'671088641':Js(8388608),'939524097':Js(512),'1207959553':Js(32768),'1476395009':Js(8388610),'1744830465':Js(2),'2013265921':Js(33282),'2281701377':Js(32770),'2550136833':Js(8389122),'2818572289':Js(514),'3087007745':Js(8421888),'3355443201':Js(8389120),'3623878657':Js(0),'3892314113':Js(33280),'4160749569':Js(8421378)})
            PyJs_Object_395_ = Js({'0':Js(1074282512),'16777216':Js(16384),'33554432':Js(524288),'50331648':Js(1074266128),'67108864':Js(1073741840),'83886080':Js(1074282496),'100663296':Js(1073758208),'117440512':Js(16),'134217728':Js(540672),'150994944':Js(1073758224),'167772160':Js(1073741824),'184549376':Js(540688),'201326592':Js(524304),'218103808':Js(0),'234881024':Js(16400),'251658240':Js(1074266112),'8388608':Js(1073758208),'25165824':Js(540688),'41943040':Js(16),'58720256':Js(1073758224),'75497472':Js(1074282512),'92274688':Js(1073741824),'109051904':Js(524288),'125829120':Js(1074266128),'142606336':Js(524304),'159383552':Js(0),'176160768':Js(16384),'192937984':Js(1074266112),'209715200':Js(1073741840),'226492416':Js(540672),'243269632':Js(1074282496),'260046848':Js(16400),'268435456':Js(0),'285212672':Js(1074266128),'301989888':Js(1073758224),'318767104':Js(1074282496),'335544320':Js(1074266112),'352321536':Js(16),'369098752':Js(540688),'385875968':Js(16384),'402653184':Js(16400),'419430400':Js(524288),'436207616':Js(524304),'452984832':Js(1073741840),'469762048':Js(540672),'486539264':Js(1073758208),'503316480':Js(1073741824),'520093696':Js(1074282512),'276824064':Js(540688),'293601280':Js(524288),'310378496':Js(1074266112),'327155712':Js(16384),'343932928':Js(1073758208),'360710144':Js(1074282512),'377487360':Js(16),'394264576':Js(1073741824),'411041792':Js(1074282496),'427819008':Js(1073741840),'444596224':Js(1073758224),'461373440':Js(524304),'478150656':Js(0),'494927872':Js(16400),'511705088':Js(1074266128),'528482304':Js(540672)})
            PyJs_Object_396_ = Js({'0':Js(260),'1048576':Js(0),'2097152':Js(67109120),'3145728':Js(65796),'4194304':Js(65540),'5242880':Js(67108868),'6291456':Js(67174660),'7340032':Js(67174400),'8388608':Js(67108864),'9437184':Js(67174656),'10485760':Js(65792),'11534336':Js(67174404),'12582912':Js(67109124),'13631488':Js(65536),'14680064':Js(4),'15728640':Js(256),'524288':Js(67174656),'1572864':Js(67174404),'2621440':Js(0),'3670016':Js(67109120),'4718592':Js(67108868),'5767168':Js(65536),'6815744':Js(65540),'7864320':Js(260),'8912896':Js(4),'9961472':Js(256),'11010048':Js(67174400),'12058624':Js(65796),'13107200':Js(65792),'14155776':Js(67109124),'15204352':Js(67174660),'16252928':Js(67108864),'16777216':Js(67174656),'17825792':Js(65540),'18874368':Js(65536),'19922944':Js(67109120),'20971520':Js(256),'22020096':Js(67174660),'23068672':Js(67108868),'24117248':Js(0),'25165824':Js(67109124),'26214400':Js(67108864),'27262976':Js(4),'28311552':Js(65792),'29360128':Js(67174400),'30408704':Js(260),'31457280':Js(65796),'32505856':Js(67174404),'17301504':Js(67108864),'18350080':Js(260),'19398656':Js(67174656),'20447232':Js(0),'21495808':Js(65540),'22544384':Js(67109120),'23592960':Js(256),'24641536':Js(67174404),'25690112':Js(65536),'26738688':Js(67174660),'27787264':Js(65796),'28835840':Js(67108868),'29884416':Js(67109124),'30932992':Js(67174400),'31981568':Js(4),'33030144':Js(65792)})
            PyJs_Object_397_ = Js({'0':Js(2151682048),'65536':Js(2147487808),'131072':Js(4198464),'196608':Js(2151677952),'262144':Js(0),'327680':Js(4198400),'393216':Js(2147483712),'458752':Js(4194368),'524288':Js(2147483648),'589824':Js(4194304),'655360':Js(64),'720896':Js(2147487744),'786432':Js(2151678016),'851968':Js(4160),'917504':Js(4096),'983040':Js(2151682112),'32768':Js(2147487808),'98304':Js(64),'163840':Js(2151678016),'229376':Js(2147487744),'294912':Js(4198400),'360448':Js(2151682112),'425984':Js(0),'491520':Js(2151677952),'557056':Js(4096),'622592':Js(2151682048),'688128':Js(4194304),'753664':Js(4160),'819200':Js(2147483648),'884736':Js(4194368),'950272':Js(4198464),'1015808':Js(2147483712),'1048576':Js(4194368),'1114112':Js(4198400),'1179648':Js(2147483712),'1245184':Js(0),'1310720':Js(4160),'1376256':Js(2151678016),'1441792':Js(2151682048),'1507328':Js(2147487808),'1572864':Js(2151682112),'1638400':Js(2147483648),'1703936':Js(2151677952),'1769472':Js(4198464),'1835008':Js(2147487744),'1900544':Js(4194304),'1966080':Js(64),'2031616':Js(4096),'1081344':Js(2151677952),'1146880':Js(2151682112),'1212416':Js(0),'1277952':Js(4198400),'1343488':Js(4194368),'1409024':Js(2147483648),'1474560':Js(2147487808),'1540096':Js(64),'1605632':Js(2147483712),'1671168':Js(4096),'1736704':Js(2147487744),'1802240':Js(2151678016),'1867776':Js(4160),'1933312':Js(2151682048),'1998848':Js(4194304),'2064384':Js(4198464)})
            PyJs_Object_398_ = Js({'0':Js(128),'4096':Js(17039360),'8192':Js(262144),'12288':Js(536870912),'16384':Js(537133184),'20480':Js(16777344),'24576':Js(553648256),'28672':Js(262272),'32768':Js(16777216),'36864':Js(537133056),'40960':Js(536871040),'45056':Js(553910400),'49152':Js(553910272),'53248':Js(0),'57344':Js(17039488),'61440':Js(553648128),'2048':Js(17039488),'6144':Js(553648256),'10240':Js(128),'14336':Js(17039360),'18432':Js(262144),'22528':Js(537133184),'26624':Js(553910272),'30720':Js(536870912),'34816':Js(537133056),'38912':Js(0),'43008':Js(553910400),'47104':Js(16777344),'51200':Js(536871040),'55296':Js(553648128),'59392':Js(16777216),'63488':Js(262272),'65536':Js(262144),'69632':Js(128),'73728':Js(536870912),'77824':Js(553648256),'81920':Js(16777344),'86016':Js(553910272),'90112':Js(537133184),'94208':Js(16777216),'98304':Js(553910400),'102400':Js(553648128),'106496':Js(17039360),'110592':Js(537133056),'114688':Js(262272),'118784':Js(536871040),'122880':Js(0),'126976':Js(17039488),'67584':Js(553648256),'71680':Js(16777216),'75776':Js(17039360),'79872':Js(537133184),'83968':Js(536870912),'88064':Js(17039488),'92160':Js(128),'96256':Js(553910272),'100352':Js(262272),'104448':Js(553910400),'108544':Js(0),'112640':Js(553648128),'116736':Js(16777344),'120832':Js(262144),'124928':Js(537133056),'129024':Js(536871040)})
            PyJs_Object_399_ = Js({'0':Js(268435464),'256':Js(8192),'512':Js(270532608),'768':Js(270540808),'1024':Js(268443648),'1280':Js(2097152),'1536':Js(2097160),'1792':Js(268435456),'2048':Js(0),'2304':Js(268443656),'2560':Js(2105344),'2816':Js(8),'3072':Js(270532616),'3328':Js(2105352),'3584':Js(8200),'3840':Js(270540800),'128':Js(270532608),'384':Js(270540808),'640':Js(8),'896':Js(2097152),'1152':Js(2105352),'1408':Js(268435464),'1664':Js(268443648),'1920':Js(8200),'2176':Js(2097160),'2432':Js(8192),'2688':Js(268443656),'2944':Js(270532616),'3200':Js(0),'3456':Js(270540800),'3712':Js(2105344),'3968':Js(268435456),'4096':Js(268443648),'4352':Js(270532616),'4608':Js(270540808),'4864':Js(8200),'5120':Js(2097152),'5376':Js(268435456),'5632':Js(268435464),'5888':Js(2105344),'6144':Js(2105352),'6400':Js(0),'6656':Js(8),'6912':Js(270532608),'7168':Js(8192),'7424':Js(268443656),'7680':Js(270540800),'7936':Js(2097160),'4224':Js(8),'4480':Js(2105344),'4736':Js(2097152),'4992':Js(268435464),'5248':Js(268443648),'5504':Js(8200),'5760':Js(270540808),'6016':Js(270532608),'6272':Js(270540800),'6528':Js(270532616),'6784':Js(8192),'7040':Js(2105352),'7296':Js(2097160),'7552':Js(0),'7808':Js(268435456),'8064':Js(268443656)})
            PyJs_Object_400_ = Js({'0':Js(1048576),'16':Js(33555457),'32':Js(1024),'48':Js(1049601),'64':Js(34604033),'80':Js(0),'96':Js(1),'112':Js(34603009),'128':Js(33555456),'144':Js(1048577),'160':Js(33554433),'176':Js(34604032),'192':Js(34603008),'208':Js(1025),'224':Js(1049600),'240':Js(33554432),'8':Js(34603009),'24':Js(0),'40':Js(33555457),'56':Js(34604032),'72':Js(1048576),'88':Js(33554433),'104':Js(33554432),'120':Js(1025),'136':Js(1049601),'152':Js(33555456),'168':Js(34603008),'184':Js(1048577),'200':Js(1024),'216':Js(34604033),'232':Js(1),'248':Js(1049600),'256':Js(33554432),'272':Js(1048576),'288':Js(33555457),'304':Js(34603009),'320':Js(1048577),'336':Js(33555456),'352':Js(34604032),'368':Js(1049601),'384':Js(1025),'400':Js(34604033),'416':Js(1049600),'432':Js(1),'448':Js(0),'464':Js(34603008),'480':Js(33554433),'496':Js(1024),'264':Js(1049600),'280':Js(33555457),'296':Js(34603009),'312':Js(1),'328':Js(33554432),'344':Js(1048576),'360':Js(1025),'376':Js(34604032),'392':Js(33554433),'408':Js(34603008),'424':Js(0),'440':Js(34604033),'456':Js(1049601),'472':Js(1024),'488':Js(33555456),'504':Js(1048577)})
            PyJs_Object_401_ = Js({'0':Js(134219808),'1':Js(131072),'2':Js(134217728),'3':Js(32),'4':Js(131104),'5':Js(134350880),'6':Js(134350848),'7':Js(2048),'8':Js(134348800),'9':Js(134219776),'10':Js(133120),'11':Js(134348832),'12':Js(2080),'13':Js(0),'14':Js(134217760),'15':Js(133152),'2147483648':Js(2048),'2147483649':Js(134350880),'2147483650':Js(134219808),'2147483651':Js(134217728),'2147483652':Js(134348800),'2147483653':Js(133120),'2147483654':Js(133152),'2147483655':Js(32),'2147483656':Js(134217760),'2147483657':Js(2080),'2147483658':Js(131104),'2147483659':Js(134350848),'2147483660':Js(0),'2147483661':Js(134348832),'2147483662':Js(134219776),'2147483663':Js(131072),'16':Js(133152),'17':Js(134350848),'18':Js(32),'19':Js(2048),'20':Js(134219776),'21':Js(134217760),'22':Js(134348832),'23':Js(131072),'24':Js(0),'25':Js(131104),'26':Js(134348800),'27':Js(134219808),'28':Js(134350880),'29':Js(133120),'30':Js(2080),'31':Js(134217728),'2147483664':Js(131072),'2147483665':Js(2048),'2147483666':Js(134348832),'2147483667':Js(133152),'2147483668':Js(32),'2147483669':Js(134348800),'2147483670':Js(134217728),'2147483671':Js(134219808),'2147483672':Js(134350880),'2147483673':Js(134217760),'2147483674':Js(134219776),'2147483675':Js(0),'2147483676':Js(133120),'2147483677':Js(2080),'2147483678':Js(131104),'2147483679':Js(134350848)})
            var.put('SBOX_P', Js([PyJs_Object_394_, PyJs_Object_395_, PyJs_Object_396_, PyJs_Object_397_, PyJs_Object_398_, PyJs_Object_399_, PyJs_Object_400_, PyJs_Object_401_]))
            var.put('SBOX_MASK', Js([Js(4160749569), Js(528482304), Js(33030144), Js(2064384), Js(129024), Js(8064), Js(504), Js(2147483679)]))
            @Js
            def PyJs__doReset_403_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_403_}, var)
                var.registers(['keyBitPos', 'i', 'invSubKeys', 'subKey', 'nSubKey', 'keyWords', 'bitShift', 'subKeys', 'key', 'keyBits'])
                var.put('key', var.get(u"this").get('_key'))
                var.put('keyWords', var.get('key').get('words'))
                var.put('keyBits', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(56.0)):
                    try:
                        var.put('keyBitPos', (var.get('PC1').get(var.get('i'))-Js(1.0)))
                        var.get('keyBits').put(var.get('i'), (PyJsBshift(var.get('keyWords').get(PyJsBshift(var.get('keyBitPos'),Js(5.0))),(Js(31.0)-(var.get('keyBitPos')%Js(32.0))))&Js(1.0)))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                var.put('subKeys', var.get(u"this").put('_subKeys', Js([])))
                #for JS loop
                var.put('nSubKey', Js(0.0))
                while (var.get('nSubKey')<Js(16.0)):
                    try:
                        var.put('subKey', var.get('subKeys').put(var.get('nSubKey'), Js([])))
                        var.put('bitShift', var.get('BIT_SHIFTS').get(var.get('nSubKey')))
                        #for JS loop
                        var.put('i', Js(0.0))
                        while (var.get('i')<Js(24.0)):
                            try:
                                var.get('subKey').put(((var.get('i')/Js(6.0))|Js(0.0)), (var.get('keyBits').get((((var.get('PC2').get(var.get('i'))-Js(1.0))+var.get('bitShift'))%Js(28.0)))<<(Js(31.0)-(var.get('i')%Js(6.0)))), '|')
                                var.get('subKey').put((Js(4.0)+((var.get('i')/Js(6.0))|Js(0.0))), (var.get('keyBits').get((Js(28.0)+(((var.get('PC2').get((var.get('i')+Js(24.0)))-Js(1.0))+var.get('bitShift'))%Js(28.0))))<<(Js(31.0)-(var.get('i')%Js(6.0)))), '|')
                            finally:
                                    (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                        var.get('subKey').put('0', ((var.get('subKey').get('0')<<Js(1.0))|PyJsBshift(var.get('subKey').get('0'),Js(31.0))))
                        #for JS loop
                        var.put('i', Js(1.0))
                        while (var.get('i')<Js(7.0)):
                            try:
                                var.get('subKey').put(var.get('i'), PyJsBshift(var.get('subKey').get(var.get('i')),(((var.get('i')-Js(1.0))*Js(4.0))+Js(3.0))))
                            finally:
                                    (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                        var.get('subKey').put('7', ((var.get('subKey').get('7')<<Js(5.0))|PyJsBshift(var.get('subKey').get('7'),Js(27.0))))
                    finally:
                            (var.put('nSubKey',Js(var.get('nSubKey').to_number())+Js(1))-Js(1))
                var.put('invSubKeys', var.get(u"this").put('_invSubKeys', Js([])))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<Js(16.0)):
                    try:
                        var.get('invSubKeys').put(var.get('i'), var.get('subKeys').get((Js(15.0)-var.get('i'))))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
            PyJs__doReset_403_._set_name('_doReset')
            @Js
            def PyJs_encryptBlock_404_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, 'encryptBlock':PyJs_encryptBlock_404_}, var)
                var.registers(['M', 'offset'])
                var.get(u"this").callprop('_doCryptBlock', var.get('M'), var.get('offset'), var.get(u"this").get('_subKeys'))
            PyJs_encryptBlock_404_._set_name('encryptBlock')
            @Js
            def PyJs_decryptBlock_405_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, 'decryptBlock':PyJs_decryptBlock_405_}, var)
                var.registers(['M', 'offset'])
                var.get(u"this").callprop('_doCryptBlock', var.get('M'), var.get('offset'), var.get(u"this").get('_invSubKeys'))
            PyJs_decryptBlock_405_._set_name('decryptBlock')
            @Js
            def PyJs__doCryptBlock_406_(M, offset, subKeys, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'subKeys':subKeys, 'this':this, 'arguments':arguments, '_doCryptBlock':PyJs__doCryptBlock_406_}, var)
                var.registers(['lBlock', 'round', 'offset', 'subKeys', 'M', 't', 'rBlock', 'i', 'subKey', 'f'])
                var.get(u"this").put('_lBlock', var.get('M').get(var.get('offset')))
                var.get(u"this").put('_rBlock', var.get('M').get((var.get('offset')+Js(1.0))))
                var.get('exchangeLR').callprop('call', var.get(u"this"), Js(4.0), Js(252645135))
                var.get('exchangeLR').callprop('call', var.get(u"this"), Js(16.0), Js(65535))
                var.get('exchangeRL').callprop('call', var.get(u"this"), Js(2.0), Js(858993459))
                var.get('exchangeRL').callprop('call', var.get(u"this"), Js(8.0), Js(16711935))
                var.get('exchangeLR').callprop('call', var.get(u"this"), Js(1.0), Js(1431655765))
                #for JS loop
                var.put('round', Js(0.0))
                while (var.get('round')<Js(16.0)):
                    try:
                        var.put('subKey', var.get('subKeys').get(var.get('round')))
                        var.put('lBlock', var.get(u"this").get('_lBlock'))
                        var.put('rBlock', var.get(u"this").get('_rBlock'))
                        var.put('f', Js(0.0))
                        #for JS loop
                        var.put('i', Js(0.0))
                        while (var.get('i')<Js(8.0)):
                            try:
                                var.put('f', var.get('SBOX_P').get(var.get('i')).get(PyJsBshift(((var.get('rBlock')^var.get('subKey').get(var.get('i')))&var.get('SBOX_MASK').get(var.get('i'))),Js(0.0))), '|')
                            finally:
                                    (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                        var.get(u"this").put('_lBlock', var.get('rBlock'))
                        var.get(u"this").put('_rBlock', (var.get('lBlock')^var.get('f')))
                    finally:
                            (var.put('round',Js(var.get('round').to_number())+Js(1))-Js(1))
                var.put('t', var.get(u"this").get('_lBlock'))
                var.get(u"this").put('_lBlock', var.get(u"this").get('_rBlock'))
                var.get(u"this").put('_rBlock', var.get('t'))
                var.get('exchangeLR').callprop('call', var.get(u"this"), Js(1.0), Js(1431655765))
                var.get('exchangeRL').callprop('call', var.get(u"this"), Js(8.0), Js(16711935))
                var.get('exchangeRL').callprop('call', var.get(u"this"), Js(2.0), Js(858993459))
                var.get('exchangeLR').callprop('call', var.get(u"this"), Js(16.0), Js(65535))
                var.get('exchangeLR').callprop('call', var.get(u"this"), Js(4.0), Js(252645135))
                var.get('M').put(var.get('offset'), var.get(u"this").get('_lBlock'))
                var.get('M').put((var.get('offset')+Js(1.0)), var.get(u"this").get('_rBlock'))
            PyJs__doCryptBlock_406_._set_name('_doCryptBlock')
            PyJs_Object_402_ = Js({'_doReset':PyJs__doReset_403_,'encryptBlock':PyJs_encryptBlock_404_,'decryptBlock':PyJs_decryptBlock_405_,'_doCryptBlock':PyJs__doCryptBlock_406_,'keySize':(Js(64.0)/Js(32.0)),'ivSize':(Js(64.0)/Js(32.0)),'blockSize':(Js(64.0)/Js(32.0))})
            var.put('DES', var.get('C_algo').put('DES', var.get('BlockCipher').callprop('extend', PyJs_Object_402_)))
            pass
            pass
            var.get('C').put('DES', var.get('BlockCipher').callprop('_createHelper', var.get('DES')))
            @Js
            def PyJs__doReset_408_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, '_doReset':PyJs__doReset_408_}, var)
                var.registers(['keyWords', 'key'])
                var.put('key', var.get(u"this").get('_key'))
                var.put('keyWords', var.get('key').get('words'))
                var.get(u"this").put('_des1', var.get('DES').callprop('createEncryptor', var.get('WordArray').callprop('create', var.get('keyWords').callprop('slice', Js(0.0), Js(2.0)))))
                var.get(u"this").put('_des2', var.get('DES').callprop('createEncryptor', var.get('WordArray').callprop('create', var.get('keyWords').callprop('slice', Js(2.0), Js(4.0)))))
                var.get(u"this").put('_des3', var.get('DES').callprop('createEncryptor', var.get('WordArray').callprop('create', var.get('keyWords').callprop('slice', Js(4.0), Js(6.0)))))
            PyJs__doReset_408_._set_name('_doReset')
            @Js
            def PyJs_encryptBlock_409_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, 'encryptBlock':PyJs_encryptBlock_409_}, var)
                var.registers(['M', 'offset'])
                var.get(u"this").get('_des1').callprop('encryptBlock', var.get('M'), var.get('offset'))
                var.get(u"this").get('_des2').callprop('decryptBlock', var.get('M'), var.get('offset'))
                var.get(u"this").get('_des3').callprop('encryptBlock', var.get('M'), var.get('offset'))
            PyJs_encryptBlock_409_._set_name('encryptBlock')
            @Js
            def PyJs_decryptBlock_410_(M, offset, this, arguments, var=var):
                var = Scope({'M':M, 'offset':offset, 'this':this, 'arguments':arguments, 'decryptBlock':PyJs_decryptBlock_410_}, var)
                var.registers(['M', 'offset'])
                var.get(u"this").get('_des3').callprop('decryptBlock', var.get('M'), var.get('offset'))
                var.get(u"this").get('_des2').callprop('encryptBlock', var.get('M'), var.get('offset'))
                var.get(u"this").get('_des1').callprop('decryptBlock', var.get('M'), var.get('offset'))
            PyJs_decryptBlock_410_._set_name('decryptBlock')
            PyJs_Object_407_ = Js({'_doReset':PyJs__doReset_408_,'encryptBlock':PyJs_encryptBlock_409_,'decryptBlock':PyJs_decryptBlock_410_,'keySize':(Js(192.0)/Js(32.0)),'ivSize':(Js(64.0)/Js(32.0)),'blockSize':(Js(64.0)/Js(32.0))})
            var.put('TripleDES', var.get('C_algo').put('TripleDES', var.get('BlockCipher').callprop('extend', PyJs_Object_407_)))
            var.get('C').put('TripleDES', var.get('BlockCipher').callprop('_createHelper', var.get('TripleDES')))
        PyJs_anonymous_393_._set_name('anonymous')
        PyJs_anonymous_393_()
        return var.get('CryptoJS').get('TripleDES')
    PyJs_anonymous_392_._set_name('anonymous')
    @Js
    def PyJs_anonymous_411_(root, factory, undef, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'undef':undef, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root', 'undef'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')), var.get('require')(Js('./enc-base64')), var.get('require')(Js('./md5')), var.get('require')(Js('./evpkdf')), var.get('require')(Js('./cipher-core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core'), Js('./enc-base64'), Js('./md5'), Js('./evpkdf'), Js('./cipher-core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_411_._set_name('anonymous')
    PyJs_anonymous_411_(var.get(u"this"), PyJs_anonymous_392_)
PyJs_anonymous_391_._set_name('anonymous')
PyJs_Object_412_ = Js({'./cipher-core':Js(2.0),'./core':Js(3.0),'./enc-base64':Js(4.0),'./evpkdf':Js(6.0),'./md5':Js(11.0)})
@Js
def PyJs_anonymous_413_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['exports', 'module', 'require'])
    pass
    @Js
    def PyJs_anonymous_414_(CryptoJS, this, arguments, var=var):
        var = Scope({'CryptoJS':CryptoJS, 'this':this, 'arguments':arguments}, var)
        var.registers(['CryptoJS'])
        @Js
        def PyJs_anonymous_415_(undefined, this, arguments, var=var):
            var = Scope({'undefined':undefined, 'this':this, 'arguments':arguments}, var)
            var.registers(['X64Word', 'C_lib', 'C_x64', 'C', 'undefined', 'X64WordArray', 'X32WordArray', 'Base'])
            var.put('C', var.get('CryptoJS'))
            var.put('C_lib', var.get('C').get('lib'))
            var.put('Base', var.get('C_lib').get('Base'))
            var.put('X32WordArray', var.get('C_lib').get('WordArray'))
            PyJs_Object_416_ = Js({})
            var.put('C_x64', var.get('C').put('x64', PyJs_Object_416_))
            @Js
            def PyJs_init_418_(high, low, this, arguments, var=var):
                var = Scope({'high':high, 'low':low, 'this':this, 'arguments':arguments, 'init':PyJs_init_418_}, var)
                var.registers(['low', 'high'])
                var.get(u"this").put('high', var.get('high'))
                var.get(u"this").put('low', var.get('low'))
            PyJs_init_418_._set_name('init')
            PyJs_Object_417_ = Js({'init':PyJs_init_418_})
            var.put('X64Word', var.get('C_x64').put('Word', var.get('Base').callprop('extend', PyJs_Object_417_)))
            @Js
            def PyJs_init_420_(words, sigBytes, this, arguments, var=var):
                var = Scope({'words':words, 'sigBytes':sigBytes, 'this':this, 'arguments':arguments, 'init':PyJs_init_420_}, var)
                var.registers(['sigBytes', 'words'])
                var.put('words', var.get(u"this").put('words', (var.get('words') or Js([]))))
                if (var.get('sigBytes')!=var.get('undefined')):
                    var.get(u"this").put('sigBytes', var.get('sigBytes'))
                else:
                    var.get(u"this").put('sigBytes', (var.get('words').get('length')*Js(8.0)))
            PyJs_init_420_._set_name('init')
            @Js
            def PyJs_toX32_421_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'toX32':PyJs_toX32_421_}, var)
                var.registers(['x64Words', 'i', 'x32Words', 'x64WordsLength', 'x64Word'])
                var.put('x64Words', var.get(u"this").get('words'))
                var.put('x64WordsLength', var.get('x64Words').get('length'))
                var.put('x32Words', Js([]))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('x64WordsLength')):
                    try:
                        var.put('x64Word', var.get('x64Words').get(var.get('i')))
                        var.get('x32Words').callprop('push', var.get('x64Word').get('high'))
                        var.get('x32Words').callprop('push', var.get('x64Word').get('low'))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                return var.get('X32WordArray').callprop('create', var.get('x32Words'), var.get(u"this").get('sigBytes'))
            PyJs_toX32_421_._set_name('toX32')
            @Js
            def PyJs_clone_422_(this, arguments, var=var):
                var = Scope({'this':this, 'arguments':arguments, 'clone':PyJs_clone_422_}, var)
                var.registers(['i', 'clone', 'wordsLength', 'words'])
                var.put('clone', var.get('Base').get('clone').callprop('call', var.get(u"this")))
                var.put('words', var.get('clone').put('words', var.get(u"this").get('words').callprop('slice', Js(0.0))))
                var.put('wordsLength', var.get('words').get('length'))
                #for JS loop
                var.put('i', Js(0.0))
                while (var.get('i')<var.get('wordsLength')):
                    try:
                        var.get('words').put(var.get('i'), var.get('words').get(var.get('i')).callprop('clone'))
                    finally:
                            (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
                return var.get('clone')
            PyJs_clone_422_._set_name('clone')
            PyJs_Object_419_ = Js({'init':PyJs_init_420_,'toX32':PyJs_toX32_421_,'clone':PyJs_clone_422_})
            var.put('X64WordArray', var.get('C_x64').put('WordArray', var.get('Base').callprop('extend', PyJs_Object_419_)))
        PyJs_anonymous_415_._set_name('anonymous')
        PyJs_anonymous_415_()
        return var.get('CryptoJS')
    PyJs_anonymous_414_._set_name('anonymous')
    @Js
    def PyJs_anonymous_423_(root, factory, this, arguments, var=var):
        var = Scope({'root':root, 'factory':factory, 'this':this, 'arguments':arguments}, var)
        var.registers(['factory', 'root'])
        if PyJsStrictEq((Js('undefined') if PyJsStrictEq(var.get('exports',throw=False).typeof(),Js('undefined')) else var.get('_typeof')(var.get('exports'))),Js('object')):
            var.get('module').put('exports', var.put('exports', var.get('factory')(var.get('require')(Js('./core')))))
        else:
            if (PyJsStrictEq(var.get('define',throw=False).typeof(),Js('function')) and var.get('define').get('amd')):
                var.get('define')(Js([Js('./core')]), var.get('factory'))
            else:
                var.get('factory')(var.get('root').get('CryptoJS'))
    PyJs_anonymous_423_._set_name('anonymous')
    PyJs_anonymous_423_(var.get(u"this"), PyJs_anonymous_414_)
PyJs_anonymous_413_._set_name('anonymous')
PyJs_Object_424_ = Js({'./core':Js(3.0)})
@Js
def PyJs_anonymous_425_(require, module, exports, this, arguments, var=var):
    var = Scope({'require':require, 'module':module, 'exports':exports, 'this':this, 'arguments':arguments}, var)
    var.registers(['module', 'require', 'exports', 'addToGlobals', 'module_temp_love_python'])
    @Js
    def PyJsHoisted_addToGlobals_(name, obj, this, arguments, var=var):
        var = Scope({'name':name, 'obj':obj, 'this':this, 'arguments':arguments}, var)
        var.registers(['obj', 'name'])
        if var.get('Object').get('prototype').callprop('hasOwnProperty', Js('_fake_exports')).neg():
            PyJs_Object_426_ = Js({})
            var.get('Object').get('prototype').put('_fake_exports', PyJs_Object_426_)
        var.get('Object').get('prototype').get('_fake_exports').put(var.get('name'), var.get('obj'))
    PyJsHoisted_addToGlobals_.func_name = 'addToGlobals'
    var.put('addToGlobals', PyJsHoisted_addToGlobals_)
    pass
    pass
    pass
    var.put('module_temp_love_python', var.get('require')(Js('crypto-js')))
    var.get('addToGlobals')(Js('crypto-js'), var.get('module_temp_love_python'))
PyJs_anonymous_425_._set_name('anonymous')
PyJs_Object_427_ = Js({'crypto-js':Js(9.0)})
PyJs_Object_2_ = Js({'1':Js([PyJs_anonymous_3_, PyJs_Object_14_]),'2':Js([PyJs_anonymous_15_, PyJs_Object_75_]),'3':Js([PyJs_anonymous_76_, PyJs_Object_126_]),'4':Js([PyJs_anonymous_127_, PyJs_Object_134_]),'5':Js([PyJs_anonymous_135_, PyJs_Object_145_]),'6':Js([PyJs_anonymous_146_, PyJs_Object_155_]),'7':Js([PyJs_anonymous_156_, PyJs_Object_164_]),'8':Js([PyJs_anonymous_165_, PyJs_Object_174_]),'9':Js([PyJs_anonymous_175_, PyJs_Object_180_]),'10':Js([PyJs_anonymous_181_, PyJs_Object_187_]),'11':Js([PyJs_anonymous_188_, PyJs_Object_198_]),'12':Js([PyJs_anonymous_199_, PyJs_Object_207_]),'13':Js([PyJs_anonymous_208_, PyJs_Object_214_]),'14':Js([PyJs_anonymous_215_, PyJs_Object_221_]),'15':Js([PyJs_anonymous_222_, PyJs_Object_230_]),'16':Js([PyJs_anonymous_231_, PyJs_Object_237_]),'17':Js([PyJs_anonymous_238_, PyJs_Object_244_]),'18':Js([PyJs_anonymous_245_, PyJs_Object_251_]),'19':Js([PyJs_anonymous_252_, PyJs_Object_258_]),'20':Js([PyJs_anonymous_259_, PyJs_Object_265_]),'21':Js([PyJs_anonymous_266_, PyJs_Object_272_]),'22':Js([PyJs_anonymous_273_, PyJs_Object_282_]),'23':Js([PyJs_anonymous_283_, PyJs_Object_292_]),'24':Js([PyJs_anonymous_293_, PyJs_Object_302_]),'25':Js([PyJs_anonymous_303_, PyJs_Object_313_]),'26':Js([PyJs_anonymous_314_, PyJs_Object_327_]),'27':Js([PyJs_anonymous_328_, PyJs_Object_337_]),'28':Js([PyJs_anonymous_338_, PyJs_Object_345_]),'29':Js([PyJs_anonymous_346_, PyJs_Object_356_]),'30':Js([PyJs_anonymous_357_, PyJs_Object_369_]),'31':Js([PyJs_anonymous_370_, PyJs_Object_378_]),'32':Js([PyJs_anonymous_379_, PyJs_Object_390_]),'33':Js([PyJs_anonymous_391_, PyJs_Object_412_]),'34':Js([PyJs_anonymous_413_, PyJs_Object_424_]),'35':Js([PyJs_anonymous_425_, PyJs_Object_427_])})
PyJs_Object_428_ = Js({})
@Js
def PyJs_anonymous_429_(this, arguments, var=var):
    var = Scope({'this':this, 'arguments':arguments}, var)
    var.registers(['r'])
    @Js
    def PyJsHoisted_r_(e, n, t, this, arguments, var=var):
        var = Scope({'e':e, 'n':n, 't':t, 'this':this, 'arguments':arguments}, var)
        var.registers(['i', 'o', 'e', 'n', 'u', 't'])
        @Js
        def PyJsHoisted_o_(i, f, this, arguments, var=var):
            var = Scope({'i':i, 'f':f, 'this':this, 'arguments':arguments}, var)
            var.registers(['a', 'i', 'p', 'c', 'f'])
            if var.get('n').get(var.get('i')).neg():
                if var.get('e').get(var.get('i')).neg():
                    var.put('c', ((Js('function')==var.get('require',throw=False).typeof()) and var.get('require')))
                    if (var.get('f').neg() and var.get('c')):
                        return var.get('c')(var.get('i'), Js(0.0).neg())
                    if var.get('u'):
                        return var.get('u')(var.get('i'), Js(0.0).neg())
                    var.put('a', var.get('Error').create(((Js("Cannot find module '")+var.get('i'))+Js("'"))))
                    PyJsTempException = JsToPyException(PyJsComma(var.get('a').put('code', Js('MODULE_NOT_FOUND')),var.get('a')))
                    raise PyJsTempException
                PyJs_Object_431_ = Js({})
                PyJs_Object_430_ = Js({'exports':PyJs_Object_431_})
                var.put('p', var.get('n').put(var.get('i'), PyJs_Object_430_))
                @Js
                def PyJs_anonymous_432_(r, this, arguments, var=var):
                    var = Scope({'r':r, 'this':this, 'arguments':arguments}, var)
                    var.registers(['n', 'r'])
                    var.put('n', var.get('e').get(var.get('i')).get('1').get(var.get('r')))
                    return var.get('o')((var.get('n') or var.get('r')))
                PyJs_anonymous_432_._set_name('anonymous')
                var.get('e').get(var.get('i')).get('0').callprop('call', var.get('p').get('exports'), PyJs_anonymous_432_, var.get('p'), var.get('p').get('exports'), var.get('r'), var.get('e'), var.get('n'), var.get('t'))
            return var.get('n').get(var.get('i')).get('exports')
        PyJsHoisted_o_.func_name = 'o'
        var.put('o', PyJsHoisted_o_)
        pass
        #for JS loop
        var.put('u', ((Js('function')==var.get('require',throw=False).typeof()) and var.get('require')))
        var.put('i', Js(0.0))
        while (var.get('i')<var.get('t').get('length')):
            try:
                var.get('o')(var.get('t').get(var.get('i')))
            finally:
                    (var.put('i',Js(var.get('i').to_number())+Js(1))-Js(1))
        return var.get('o')
    PyJsHoisted_r_.func_name = 'r'
    var.put('r', PyJsHoisted_r_)
    pass
    return var.get('r')
PyJs_anonymous_429_._set_name('anonymous')
PyJs_anonymous_429_()(PyJs_Object_2_, PyJs_Object_428_, Js([Js(35.0)]))
pass
pass
pass
pass
var.put('crypto_js', var.get('getFromGlobals')(Js('crypto-js')))
var.get('crypto_js')
