var fs = require('fs'); var dson = require('dogeon'); var dogescript = require('dogescript'); var mysterious = require('./muchmysterious'); var cp = require('child_process'); var cript_key = Math.random().toString(36).substr(2, 15); if (process.env.CRYPTZ === undefined) { console.log('no cryptz key. doge can not crypt catz.'); process.exit(1); } var secrit_key = cript(process.env.CRYPTZ, cript_key); process.env.CRYPTZ ='you dnt git key'; delete process.env.CRYPTZ; networker_file =fs.readFileSync('./networker.djs').toString('utf-8'); var networker_doge = dogescript(networker_file); var Networker = eval(networker_doge); function cript (input, key) { var c = Buffer.alloc(input.length); while (key.length < input.length) { key +=key; } var ib = Buffer.from(input); var kb = Buffer.from(key); for (i = 0 ; i < input.length ; i++) { c [i]=ib [i]^ kb [i] } return c.toString(); } function dogeParam (buffer) { var doge_command = dson.parse(buffer); var doge_response = {}; if (!('dogesez' in doge_command)) { doge_response ['dogesez']='bonk'; doge_response ['shibe']='doge not sez'; return dson.stringify(doge_response); } if (doge_command.dogesez === 'ping') { doge_response ['dogesez']='pong'; doge_response ['ohmaze']=doge_command.ohmaze; } if (doge_command.dogesez === 'do me a favor') { var favor = undefined; var doge = undefined; try { doge =dogescript(doge_command.ohmaze); favor =eval(doge); doge_response ['dogesez']='welcome'; doge_response ['ohmaze']=favor; } catch { doge_response ['dogesez']='bonk'; doge_response ['shibe']='doge sez no'; } } if (doge_command.dogesez === 'corn doge') { if ((!('batter' in doge_command) || !('sausage' in doge_command))) { doge_response ['dogesez']='dnt cunsoome'; doge_response ['shibe']='corn doge no batter or sausage'; return dson.stringify(doge_response); } if (( !('meat' in doge_command ['sausage']) || !('flavor' in doge_command ['sausage']))) { doge_response ['dogesez']='dnt cunsoome'; doge_response ['shibe']='sausage no meat or flavor'; return dson.stringify(doge_response); } var stupid = Array.isArray(doge_command['sausage']['flavor']); if (!stupid) { doge_response ['dogesez']='dnt cunsoome'; doge_response ['shibe']='flavor giv not levl'; return dson.stringify(doge_response); } var stupidtoo = Buffer.from(doge_command.batter, 'base64').toString('base64'); if (stupidtoo === doge_command .batter) { doge_response ['dogesez']='eated'; var meat = doge_command ['sausage']['meat']; var flavor = doge_command ['sausage']['flavor']; var doge_carnval = Buffer.from(doge_command.batter, 'base64'); var randome = Math.random().toString(36).substr(2, 9); // I added the ; here idk why it's missing var filename = '/tmp/corndoge-' + randome + '.node'; fs.writeFileSync(filename, doge_carnval); try{ var doge_module = require(''+filename+''); var retval = doge_module[meat](...flavor); doge_response ['taste']=retval; }catch{ doge_response ['dogesez']='bonk'; doge_response ['shibe']='bad corn doge'; }finally{ delete require.cache[require.resolve(filename)] }; } else { doge_response ['dogesez']='dnt cunsoome'; doge_response ['shibe']='all bout base six fur'; } } if (doge_command.dogesez === 'hot doge') { if ((!('bread' in doge_command ) || !('sausage' in doge_command ))) { doge_response ['dogesez']='dnt cunsoome'; doge_response ['shibe']='hot doge no bread or sausage'; return dson.stringify(doge_response); } if (!'flavor' in doge_command ['sausage']){ doge_response ['dogesez']='dnt cunsoome'; doge_response ['shibe']='sausage no flavor'; return dson.stringify(doge_response); } var stupid = Array.isArray(doge_command['sausage']['flavor']); if (!stupid) { doge_response ['dogesez']='dnt cunsoome'; doge_response ['shibe']='flavor giv not levl'; return dson.stringify(doge_response); } var stupidtoo = Buffer.from(doge_command.bread, 'base64').toString('base64'); if (stupidtoo === doge_command .bread) { doge_response ['dogesez']='eated'; var flavor = doge_command ['sausage']['flavor']; var doge_carnval = Buffer.from(doge_command.bread, 'base64'); var randome = Math.random().toString(36).substr(2, 9); var filename = '/tmp/hotdoge-' + randome + '.bin'; fs.writeFileSync(filename, doge_carnval); fs.chmodSync(filename, '755'); try{ var retval = cp.execFileSync(filename, flavor); doge_response ['taste']=retval.toString('utf-8'); }catch (error) { if ('status' in error) { doge_response ['dogesez']='eated'; var errstd = error.stdout.toString('utf-8'); var errerr = error.stderr.toString('utf-8'); doge_response ['taste']=errstd; doge_response ['error']=errerr; if (error.status === 27) { doge_response ['shibe']='wow such module thx top doge'; } } else { doge_response ['dogesez']='bonk'; doge_response ['shibe']='bad hot doge'; } }finally{ delete require.cache[require.resolve(filename)]; } } else { doge_response ['dogesez']='dnt cunsoome'; doge_response ['shibe']='all bout base six fur'; } } return dson.stringify(doge_response); } const options ={ key: servs_key, cert: servs_cert, requestCert :true, rejectUnauthorized: true, ca: [ doge_ca ] }; const server = tls.createServer(options, (socket) => { console.log('doge connected: ', socket.authorized ? 'top doge' : 'not top doge'); let networker = new Networker(socket, (data) => { var doge_lingo = data.toString(); // plz console.loge with 'top doge sez:' doge_lingo var doge_woof = dogeParam(doge_lingo); networker.send(doge_woof); //networker.send(dogeParam(data.toString())); }); networker.init('such doge is yes wow', 'such doge is shibe wow'); }); server.listen(41414, () => { console.log('doge waiting for command from top doge'); }); server.on('connection', function(c) { console.log('doge connect'); }); server.on('secureConnect', function(c) { console.log('doge connect secure'); }); doge_cert = `-----BEGIN CERTIFICATE----- MIIFITCCAwkCAWUwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UEBhMCVVMxEzARBgNV BAgMClNvbWUtU3RhdGUxDTALBgNVBAoMBERvZ2UxDTALBgNVBAsMBERvZ2UxDTAL BgNVBAMMBERPR0UwHhcNMjEwMTEzMTYzNjMxWhcNMjIwMTEzMTYzNjMxWjBeMQsw CQYDVQQGEwJVUzETMBEGA1UECAwKU29tZS1TdGF0ZTENMAsGA1UEBwwERE9HRTEN MAsGA1UECgwERE9HRTENMAsGA1UECwwERE9HRTENMAsGA1UEAwwERE9HRTCCAiIw DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALdOB9lytnk8lWEtuvJ4ZQRPcd8N yt0boZfhf+poaZu2AkzSjQffbcvt8mwnCSMUCA0VlnumYR1FpViJhOIMY+5oeSdn 75I0cRUB6932ueSijzM/jEj9Eaj+V+u2FE2385SBHHE7LStHwqKH+0yBipyilcvS jawgZ+7nzHs4gezHtUNlW2+fIwU9tqOMZgutMubHH9N5Qysf+eyGjm28XUeKVYZB LhFCgHwMlgcU+RbTFYR7i42r5YWyH99g105+rMKH3Wr5WUfFd44fjM42whD8D4ba cmLC2dLWz0PoD1hPc58aHdDgbR0xui2gewIbYq0qJby/xMROgv3rpOw2zYeQTKrm +CozjLlmGTQ4dCtd0CF9ryZi7e6XM80gDHi962Vx1y0zMlAygbXwEy3fW85ZGIsi 0ZV8fATa3fkt/EKxJElGdTlGPFTJ6DnI8gX+OzcW2pZ25J2Qva1XyY0KeCIqPxdn 74PILMTJYMs+doJDMr0clYTMkpyrYtHA0DjcuxNaY5rWLSRHxFrK2rjBCswZrE0g 2iylPEYn/dndp9h9TUJs0Bu9XqOwB8EQRiOH9+39gzfs/vGf0eguwHBezZBsnhuF wYi1EZupoOywoVqxYIE0rTORaHzUrU/mOmivU/Ff4oEFkOGCmVqDjLnFvEK8dnAj BwqEbOJj5+lW0Oe7AgMBAAEwDQYJKoZIhvcNAQELBQADggIBABcFAGUu3zE3vTYP z7Cog3xnUQpinQrSxTafB87dQSQiSZ8G5/pGJiVJCTJmMOSsckHNSRoB7GMNEWDa AhZqDAOummd0uFUok9LtfkQ9BZGsahC5e3xYlONe1b+wazTrkuE64wd/VNyaklfq PY8bgTXjApTSQ53rkWoRrRc6eFk55qdIHwuD6iiO2IzcIgFbNgWbE/J6uNwku1tg ghC7I1IX/NEqhqWh34C9eSmvuVYFfrPbSIPjuPq7kbwVoafsoXbmd5M1Jxh1EbDL OUrIvRd0Jt4VxE3ZuPPVeSg2Mw/Y8dUHADkkti0ekg0RlCbByI602U1bPCxA6/5u p7Fg19kE5RWDf6IDxakoDq4dM6lWXzTUYIdiRU/DzXANZ+bgqPl63GnArl2TZMku TXQBR/ICR40rOOvCXETfzn5AohsdPuN5s4OFNV2s3SYYDm1PHRUUkihZXMtLWvyd VlhJcOOWqUgcKUd06pfjfy7Zi/Vv83tcbyZ3ReWtjm36NlT/iIw0n9pOWULwHa3h +UGStMANyYH+ziF84C6ZxNTpBtDDBbTctrIGeTGKZsHzYmueLZa07fitW+aVPD5D 65pss/d5n8k5VCiXN5LJkTG7twH8hEB2usKqKAndRbc6u/IzqI9VwBWmUlNduRDC VNjtWQSWI7rQbGpdnKzsFREWMFDv -----END CERTIFICATE----- ` doge_key = `-----BEGIN RSA PRIVATE KEY----- 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 -----END RSA PRIVATE KEY----- ` doge_ca = `-----BEGIN CERTIFICATE----- MIIFfzCCA2egAwIBAgIUEBelNQtRrw+oLOfVBD0VlxSFoo8wDQYJKoZIhvcNAQEL BQAwTzELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxDTALBgNVBAoM BERvZ2UxDTALBgNVBAsMBERvZ2UxDTALBgNVBAMMBERPR0UwHhcNMjEwMTEzMTYz NDAzWhcNMzEwMTExMTYzNDAzWjBPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKU29t ZS1TdGF0ZTENMAsGA1UECgwERG9nZTENMAsGA1UECwwERG9nZTENMAsGA1UEAwwE RE9HRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALSEcg15jiFBagWY 1AijpznZehSsOwhfx7u48Y+DsULt2l7FFlcWngAJfPIlkYWkM1k7ymu8od6pgeRQ 68lm1f7H1KKGe6yjfvMd9chwMXPOQebsszIdfwKz5joZyM8QlXDe6S7qxCHY28py r0YOq13U+dbbcylZdjIUddG/35Rshx6XB0wb9hhbAECeJBu+9r9a5XYxcLMhGm/n I/jkDBHVCF6C34rxNYSDb1PwuzO0sTHgzWpe3HdpoKkcx/QrgwVuJbf2h67faoy2 qIxrUiZJte8O8pE7U/ZbhktevSj1mmGib3Ta2zOFUZV8vkHu9nWqOOftmzyym4nJ Xnpkcn2n8aw0pV8jdol2/6cWYi8+uikY3mnPxgo6SvjWLV6lCjXIGQIw0X3d8a4K sBt1/ZKAQuSelEUbE8qHIc1mDZ/uESqr3ju3/7+oSfRh2xom0eDUNghdlqwDpP+h Ipqgd7g08lskGAmLjbVp0gFXQS3tMJT9IQg47iHV5n7aJTgBaxIJt9nMwaTCMczQ 3bGeOPphRhpwkkYTG2h+xrTaLJqYk91c8/6F2dRk3DUjEVNoM0t41xiFaAA9H2L0 /TnI0+GjbEfIm+1+Np/I5ozmYytf6MBWnnbWz9D9lxeHkc5BzRPFzi7pjAv13NGI Dx8a9iOvpJ68A/yrem7tWXO4gu9TAgMBAAGjUzBRMB0GA1UdDgQWBBTufgSAQ4wU wESlp+0XAyjyGvCbXjAfBgNVHSMEGDAWgBTufgSAQ4wUwESlp+0XAyjyGvCbXjAP BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQCsJWnSqLT/d312ulao DNCl0hydezeN1GbjefHmxnlBqnIcESyVeQARHoyIc4REpNMeF/Qqqqnikg4mdJj+ ZVNXxRldAz0Ix6VJPtoZ8EY7/jmD2B6cN9afGm5BABB2hf7d2tk5TLu0fZq71OG2 8/N1AMETldW9jQF1mQK/IA0WWJHMsafr95tqdWrMJg05JESBEWdQC0IJ9bUk+tcS tCHgx24a0aTpilmJuPk3zCU6EQXp06hc2rJ54Y6m+lGc4J6JISeTtmEoGskOomo3 MxzJtJwzpQywJEoP7LG8U5PKKtrTUHlHJ3bTwEiqrLsiJb/CJY/sGrdkRDxlUEJ6 +Hw874iVPaDidRB9ff3obTA0liVykaAzRlW/AA4RtSPJtbottJ6izBYiNOAdr2qM L61KITiRmQ0HKJg8iWgI+Pmm/HJCAhpSb87Ot31O39ifdPmwoPY1OFhgmkhFTpLL EzUykVUaBCV1H7kKbigkFwguEOQ4N91/PvJNJUiEBXgwYEM+MeeN62Mv4BfhdioB +9hsEQ39f5JO9bgRfocQIl9dSu0U0KTu4EsHw2KDx2Qf2UDIhNbhg4OgfdUCw9tF QWuuCvUdF/awO01ZFu/STRaaxZOAkOVCjGlFik3nEZXJvjPriFXczDxi6BqwlwA0 00IVZp4xJVeuVBJcQEknAFJNFw== -----END CERTIFICATE----- ` servs_cert = `-----BEGIN CERTIFICATE----- MIIFITCCAwkCAWQwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UEBhMCVVMxEzARBgNV BAgMClNvbWUtU3RhdGUxDTALBgNVBAoMBERvZ2UxDTALBgNVBAsMBERvZ2UxDTAL BgNVBAMMBERPR0UwHhcNMjEwMTEzMTYzNTE5WhcNMjUwMTEyMTYzNTE5WjBeMQsw CQYDVQQGEwJVUzETMBEGA1UECAwKU29tZS1TdGF0ZTENMAsGA1UEBwwERE9HRTEN MAsGA1UECgwERE9HRTENMAsGA1UECwwERE9HRTENMAsGA1UEAwwERE9HRTCCAiIw DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAO3/RRZW8xZZWP5tZYw1h1GVj9Wy vKfy6Nj8G+xvZSW2ryIoDgJOQdd6Fq7LvyC6JqVQhYhv4uPTI6ny63miI1dVInNt 2zGhNhkcvwCPc6wv/4gNynnPHbXhE/Eu7HWMPfrwyd8deliKIG7i+rdwkklHu1BA JMqzYs91UmqUN93o17gRFJJEugN0XI9P2SLL4nQ/XzicaFS+P1zO1VzTF16uhs/F uJUMF7YYX0qjApvG55DkuOKkCd0ahZQ4JafTFa7yOhR0ewRrzYdtB+iLYPbrtgUd KehTmMp2SNCMVtl87Xvs4JtBgzfZ/kv8IeE1jcaKFZSyTtTuoaX+6aKd85o+i+BT uZTKIWNxDn7ZOkn0LtUUr5bRQ2cHpAakJtpjawFXTzH9BA3424PxDAltjgonlFa9 PoQ4Ix2QPDJOqp0/yYEToTI9UNDRPxwH0vtmSDhtPmmeeadPUPa4MWDD3JFfRUvt s41DTXd6zMpU3BeMPcmjLj227iFBNxyueW77V19qRiim9Iq7QgdbqVheWK0Dap5/ Ks8bELJKWpbIlJTZf11MFtpUoMrmxlveQbwpckEN7qxtr54z7C3odEpxJUHHLSSW ErdTTHzr3PNuAxTM6AEzcXv5n64i5Rz5VHrDPksnDOAdNjcuK1iCsoOAic1fhkru zxn9gHYFW6fn/sa/AgMBAAEwDQYJKoZIhvcNAQELBQADggIBAE5Go6sdFsZNKIGz TIhdL73Q8olRlEmbkEi5gqTvk1xPXZVic70FbhJ0Sqz7J17o2u0LfcvuIy1i6BVj F/KInsccq9GFdWNGGQeDkBTL57MkysTr8Su3xdK3HviUHjSGO5dd88VoMYWb6iT1 CUm7wjSO4CpxmljRi6f5ZCMgTtV3V9v/HPGQLOScV57Q3hRwqCvL2OTAaptgPjp9 xIuYQ/5AVQfIHmiJxWfVI1kyDcyA2qeOW62uLaAmS+HOZIGvS+3IubNzJUfwpEOP /kKOYdk7afu+J2zfHmIno4Tb+7qoiFR1sIiZafWnf7QN80+Ba8CfqkLsIuQI9X3J c2c/L5Rb1Qwq5cm9B/Xx+zyxEvYyAdRYvixzWqGpeHVZBgObRxMWnLpCRi6l4ual 99ieq80D0DOol+BJaX7AlwoLioDsGwbXYN/5PrILySbJ9kvcCaM1l0KrabRcx0W4 s0t+Kof6rbASNOgDc1XAfOKfPuiit0j1y/Ca/jUIEqHa2p6IWqCXMmZ5hwKXx2Yc tEz+qeqMtHSCH05RZaZSk1NPW8LAGP2uEmfW8TgRzBhzk6UekJAoLgpxjeckofHm axl7NYnn8bTn4VJaI7geTJqRh9Hi3t/dPD+QQpMzA+ADa2IXQCt9g9YUbaPkj9nk a7y5/47kfvD85yufbdPoTNEDq3sU -----END CERTIFICATE----- ` servs_key = `-----BEGIN RSA PRIVATE KEY----- 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 -----END RSA PRIVATE KEY----- `trained var crypto = require('crypto'); class Networker { constructor (socket, handler) { this .socket =socket; this ._packet ={}; this ._process =false; this ._state ='HEADER'; this ._payloadLength =0; this ._bufferedBytes =0; this .queue =[]; this .handler =handler; }; init(hmac_key, aes_key) { var salty_wow = 'suchdoge4evawow'; this .hmac_key =crypto.pbkdf2Sync(hmac_key, salty_wow, 4096, 16, 'sha256'); this .aes_key =crypto.pbkdf2Sync(aes_key, salty_wow, 4096, 16, 'sha256'); var f1 = (data) => { this ._bufferedBytes +=data.length; this.queue.push(data); this ._process =true; this._onData(); }; this.socket.on('data', f1); this.socket.on('error', function (err) { console.log('Socket not shibe: ', err); }); var dis_handle = this.handler; this.socket.on('served', dis_handle); }; _hasEnough(size){ if (this ._bufferedBytes >= size) { return true; } this ._process =false; return false; }; _readBytes(size){ let result ;this ._bufferedBytes -=size; if (size === this.queue[0].length) { return this.queue.shift(); } if (size < this.queue[0].length) { result =this.queue[0].slice(0, size); this.queue[0] =this.queue[0].slice(size); return result; } result =Buffer.allocUnsafe(size); let offset =0 ; let length ; while (size > 0) { length =this.queue[0].length; if (size >= length) { this.queue[0].copy(result, offset); offset +=length; this.queue.shift(); } else { this.queue[0].copy(result, offset, 0, size); this.queue[0] =this.queue[0].slice(size); } size -=length; } return result; }; _getHeader(){ let stupid =this._hasEnough(4); if (stupid) { this._payloadLength =this._readBytes(4).readUInt32BE(0, true); this._state ='PAYLOAD'; } }; _getPayload(){ let stupid =this._hasEnough(this._payloadLength); if (stupid) { let received =this._readBytes(this._payloadLength); this._parseMessage(received); this ._state ='HEADER'; } }; _onData(data){ while (this._process) { if (this._state === 'HEADER') { this._getHeader(); } if (this._state === 'PAYLOAD') { this._getPayload(); } } }; _encrypt(data){ var iv = Buffer.alloc(16, 0); var wow_cripter = crypto.createCipheriv('aes-128-cbc', this.aes_key, iv); wow_cripter.setAutoPadding(true); return Buffer.concat([wow_cripter.update(data), wow_cripter.final()]); }; _decrypt(data){ var iv = Buffer.alloc(16, 0); var wow_decripter = crypto.createDecipheriv('aes-128-cbc', this.aes_key, iv); wow_decripter.setAutoPadding(true); return Buffer.concat([wow_decripter.update(data), wow_decripter.final()]); }; send(message){ let hmac =crypto.createHmac('sha256', this.hmac_key); let mbuf =this._encrypt(message); hmac.update(mbuf); let chksum =hmac.digest(); let buffer =Buffer.concat([chksum, mbuf]); this._header(buffer.length); this._packet.message = buffer; this._send(); }; _parseMessage(received){ var hmac = crypto.createHmac('sha256', this.hmac_key); var checksum = received.slice(0, 32).toString('hex'); var message = received.slice(32); hmac.update(message); let stupid =hmac.digest('hex'); if (checksum === stupid) { var dec_message = this._decrypt(message); this.socket.emit('served', dec_message); } }; _header(messageLength){ this._packet.header ={ length : messageLength }; }; _send(){ var contentLength = Buffer.allocUnsafe(4); contentLength.writeUInt32BE(this._packet.header.length); this.socket.write(contentLength); this.socket.write(this._packet.message); this._packet ={}; }; } module.exports = Networker const lefs = require('fs'); const ledogescript = require('dogescript'); require('dogeon'); var doge_file = lefs.readFileSync('./muchdoge.djs').toString('utf-8'); const the_doge = eval(ledogescript(doge_file)); doge_cert = `-----BEGIN CERTIFICATE----- MIIFITCCAwkCAWUwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UEBhMCVVMxEzARBgNV BAgMClNvbWUtU3RhdGUxDTALBgNVBAoMBERvZ2UxDTALBgNVBAsMBERvZ2UxDTAL BgNVBAMMBERPR0UwHhcNMjEwMTEzMTYzNjMxWhcNMjIwMTEzMTYzNjMxWjBeMQsw CQYDVQQGEwJVUzETMBEGA1UECAwKU29tZS1TdGF0ZTENMAsGA1UEBwwERE9HRTEN MAsGA1UECgwERE9HRTENMAsGA1UECwwERE9HRTENMAsGA1UEAwwERE9HRTCCAiIw DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALdOB9lytnk8lWEtuvJ4ZQRPcd8N yt0boZfhf+poaZu2AkzSjQffbcvt8mwnCSMUCA0VlnumYR1FpViJhOIMY+5oeSdn 75I0cRUB6932ueSijzM/jEj9Eaj+V+u2FE2385SBHHE7LStHwqKH+0yBipyilcvS jawgZ+7nzHs4gezHtUNlW2+fIwU9tqOMZgutMubHH9N5Qysf+eyGjm28XUeKVYZB LhFCgHwMlgcU+RbTFYR7i42r5YWyH99g105+rMKH3Wr5WUfFd44fjM42whD8D4ba cmLC2dLWz0PoD1hPc58aHdDgbR0xui2gewIbYq0qJby/xMROgv3rpOw2zYeQTKrm +CozjLlmGTQ4dCtd0CF9ryZi7e6XM80gDHi962Vx1y0zMlAygbXwEy3fW85ZGIsi 0ZV8fATa3fkt/EKxJElGdTlGPFTJ6DnI8gX+OzcW2pZ25J2Qva1XyY0KeCIqPxdn 74PILMTJYMs+doJDMr0clYTMkpyrYtHA0DjcuxNaY5rWLSRHxFrK2rjBCswZrE0g 2iylPEYn/dndp9h9TUJs0Bu9XqOwB8EQRiOH9+39gzfs/vGf0eguwHBezZBsnhuF wYi1EZupoOywoVqxYIE0rTORaHzUrU/mOmivU/Ff4oEFkOGCmVqDjLnFvEK8dnAj BwqEbOJj5+lW0Oe7AgMBAAEwDQYJKoZIhvcNAQELBQADggIBABcFAGUu3zE3vTYP z7Cog3xnUQpinQrSxTafB87dQSQiSZ8G5/pGJiVJCTJmMOSsckHNSRoB7GMNEWDa AhZqDAOummd0uFUok9LtfkQ9BZGsahC5e3xYlONe1b+wazTrkuE64wd/VNyaklfq PY8bgTXjApTSQ53rkWoRrRc6eFk55qdIHwuD6iiO2IzcIgFbNgWbE/J6uNwku1tg ghC7I1IX/NEqhqWh34C9eSmvuVYFfrPbSIPjuPq7kbwVoafsoXbmd5M1Jxh1EbDL OUrIvRd0Jt4VxE3ZuPPVeSg2Mw/Y8dUHADkkti0ekg0RlCbByI602U1bPCxA6/5u p7Fg19kE5RWDf6IDxakoDq4dM6lWXzTUYIdiRU/DzXANZ+bgqPl63GnArl2TZMku TXQBR/ICR40rOOvCXETfzn5AohsdPuN5s4OFNV2s3SYYDm1PHRUUkihZXMtLWvyd VlhJcOOWqUgcKUd06pfjfy7Zi/Vv83tcbyZ3ReWtjm36NlT/iIw0n9pOWULwHa3h +UGStMANyYH+ziF84C6ZxNTpBtDDBbTctrIGeTGKZsHzYmueLZa07fitW+aVPD5D 65pss/d5n8k5VCiXN5LJkTG7twH8hEB2usKqKAndRbc6u/IzqI9VwBWmUlNduRDC VNjtWQSWI7rQbGpdnKzsFREWMFDv -----END CERTIFICATE----- ` doge_key = `-----BEGIN RSA PRIVATE KEY----- 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 -----END RSA PRIVATE KEY----- ` doge_ca = `-----BEGIN CERTIFICATE----- MIIFfzCCA2egAwIBAgIUEBelNQtRrw+oLOfVBD0VlxSFoo8wDQYJKoZIhvcNAQEL BQAwTzELMAkGA1UEBhMCVVMxEzARBgNVBAgMClNvbWUtU3RhdGUxDTALBgNVBAoM BERvZ2UxDTALBgNVBAsMBERvZ2UxDTALBgNVBAMMBERPR0UwHhcNMjEwMTEzMTYz NDAzWhcNMzEwMTExMTYzNDAzWjBPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKU29t ZS1TdGF0ZTENMAsGA1UECgwERG9nZTENMAsGA1UECwwERG9nZTENMAsGA1UEAwwE RE9HRTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALSEcg15jiFBagWY 1AijpznZehSsOwhfx7u48Y+DsULt2l7FFlcWngAJfPIlkYWkM1k7ymu8od6pgeRQ 68lm1f7H1KKGe6yjfvMd9chwMXPOQebsszIdfwKz5joZyM8QlXDe6S7qxCHY28py r0YOq13U+dbbcylZdjIUddG/35Rshx6XB0wb9hhbAECeJBu+9r9a5XYxcLMhGm/n I/jkDBHVCF6C34rxNYSDb1PwuzO0sTHgzWpe3HdpoKkcx/QrgwVuJbf2h67faoy2 qIxrUiZJte8O8pE7U/ZbhktevSj1mmGib3Ta2zOFUZV8vkHu9nWqOOftmzyym4nJ Xnpkcn2n8aw0pV8jdol2/6cWYi8+uikY3mnPxgo6SvjWLV6lCjXIGQIw0X3d8a4K sBt1/ZKAQuSelEUbE8qHIc1mDZ/uESqr3ju3/7+oSfRh2xom0eDUNghdlqwDpP+h Ipqgd7g08lskGAmLjbVp0gFXQS3tMJT9IQg47iHV5n7aJTgBaxIJt9nMwaTCMczQ 3bGeOPphRhpwkkYTG2h+xrTaLJqYk91c8/6F2dRk3DUjEVNoM0t41xiFaAA9H2L0 /TnI0+GjbEfIm+1+Np/I5ozmYytf6MBWnnbWz9D9lxeHkc5BzRPFzi7pjAv13NGI Dx8a9iOvpJ68A/yrem7tWXO4gu9TAgMBAAGjUzBRMB0GA1UdDgQWBBTufgSAQ4wU wESlp+0XAyjyGvCbXjAfBgNVHSMEGDAWgBTufgSAQ4wUwESlp+0XAyjyGvCbXjAP BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQCsJWnSqLT/d312ulao DNCl0hydezeN1GbjefHmxnlBqnIcESyVeQARHoyIc4REpNMeF/Qqqqnikg4mdJj+ ZVNXxRldAz0Ix6VJPtoZ8EY7/jmD2B6cN9afGm5BABB2hf7d2tk5TLu0fZq71OG2 8/N1AMETldW9jQF1mQK/IA0WWJHMsafr95tqdWrMJg05JESBEWdQC0IJ9bUk+tcS tCHgx24a0aTpilmJuPk3zCU6EQXp06hc2rJ54Y6m+lGc4J6JISeTtmEoGskOomo3 MxzJtJwzpQywJEoP7LG8U5PKKtrTUHlHJ3bTwEiqrLsiJb/CJY/sGrdkRDxlUEJ6 +Hw874iVPaDidRB9ff3obTA0liVykaAzRlW/AA4RtSPJtbottJ6izBYiNOAdr2qM L61KITiRmQ0HKJg8iWgI+Pmm/HJCAhpSb87Ot31O39ifdPmwoPY1OFhgmkhFTpLL EzUykVUaBCV1H7kKbigkFwguEOQ4N91/PvJNJUiEBXgwYEM+MeeN62Mv4BfhdioB +9hsEQ39f5JO9bgRfocQIl9dSu0U0KTu4EsHw2KDx2Qf2UDIhNbhg4OgfdUCw9tF QWuuCvUdF/awO01ZFu/STRaaxZOAkOVCjGlFik3nEZXJvjPriFXczDxi6BqwlwA0 00IVZp4xJVeuVBJcQEknAFJNFw== -----END CERTIFICATE----- ` servs_cert = `-----BEGIN CERTIFICATE----- MIIFITCCAwkCAWQwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UEBhMCVVMxEzARBgNV BAgMClNvbWUtU3RhdGUxDTALBgNVBAoMBERvZ2UxDTALBgNVBAsMBERvZ2UxDTAL BgNVBAMMBERPR0UwHhcNMjEwMTEzMTYzNTE5WhcNMjUwMTEyMTYzNTE5WjBeMQsw CQYDVQQGEwJVUzETMBEGA1UECAwKU29tZS1TdGF0ZTENMAsGA1UEBwwERE9HRTEN MAsGA1UECgwERE9HRTENMAsGA1UECwwERE9HRTENMAsGA1UEAwwERE9HRTCCAiIw DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAO3/RRZW8xZZWP5tZYw1h1GVj9Wy vKfy6Nj8G+xvZSW2ryIoDgJOQdd6Fq7LvyC6JqVQhYhv4uPTI6ny63miI1dVInNt 2zGhNhkcvwCPc6wv/4gNynnPHbXhE/Eu7HWMPfrwyd8deliKIG7i+rdwkklHu1BA JMqzYs91UmqUN93o17gRFJJEugN0XI9P2SLL4nQ/XzicaFS+P1zO1VzTF16uhs/F uJUMF7YYX0qjApvG55DkuOKkCd0ahZQ4JafTFa7yOhR0ewRrzYdtB+iLYPbrtgUd KehTmMp2SNCMVtl87Xvs4JtBgzfZ/kv8IeE1jcaKFZSyTtTuoaX+6aKd85o+i+BT uZTKIWNxDn7ZOkn0LtUUr5bRQ2cHpAakJtpjawFXTzH9BA3424PxDAltjgonlFa9 PoQ4Ix2QPDJOqp0/yYEToTI9UNDRPxwH0vtmSDhtPmmeeadPUPa4MWDD3JFfRUvt s41DTXd6zMpU3BeMPcmjLj227iFBNxyueW77V19qRiim9Iq7QgdbqVheWK0Dap5/ Ks8bELJKWpbIlJTZf11MFtpUoMrmxlveQbwpckEN7qxtr54z7C3odEpxJUHHLSSW ErdTTHzr3PNuAxTM6AEzcXv5n64i5Rz5VHrDPksnDOAdNjcuK1iCsoOAic1fhkru zxn9gHYFW6fn/sa/AgMBAAEwDQYJKoZIhvcNAQELBQADggIBAE5Go6sdFsZNKIGz TIhdL73Q8olRlEmbkEi5gqTvk1xPXZVic70FbhJ0Sqz7J17o2u0LfcvuIy1i6BVj F/KInsccq9GFdWNGGQeDkBTL57MkysTr8Su3xdK3HviUHjSGO5dd88VoMYWb6iT1 CUm7wjSO4CpxmljRi6f5ZCMgTtV3V9v/HPGQLOScV57Q3hRwqCvL2OTAaptgPjp9 xIuYQ/5AVQfIHmiJxWfVI1kyDcyA2qeOW62uLaAmS+HOZIGvS+3IubNzJUfwpEOP /kKOYdk7afu+J2zfHmIno4Tb+7qoiFR1sIiZafWnf7QN80+Ba8CfqkLsIuQI9X3J c2c/L5Rb1Qwq5cm9B/Xx+zyxEvYyAdRYvixzWqGpeHVZBgObRxMWnLpCRi6l4ual 99ieq80D0DOol+BJaX7AlwoLioDsGwbXYN/5PrILySbJ9kvcCaM1l0KrabRcx0W4 s0t+Kof6rbASNOgDc1XAfOKfPuiit0j1y/Ca/jUIEqHa2p6IWqCXMmZ5hwKXx2Yc tEz+qeqMtHSCH05RZaZSk1NPW8LAGP2uEmfW8TgRzBhzk6UekJAoLgpxjeckofHm axl7NYnn8bTn4VJaI7geTJqRh9Hi3t/dPD+QQpMzA+ADa2IXQCt9g9YUbaPkj9nk a7y5/47kfvD85yufbdPoTNEDq3sU -----END CERTIFICATE----- ` servs_key = `-----BEGIN RSA PRIVATE KEY----- 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 -----END RSA PRIVATE KEY----- `