Commit 2f3640d1 authored by wang's avatar wang

详细对比

parent f1bb74e6
......@@ -32,7 +32,7 @@ encryp = function (key, inp, iv1, iv2, s1, s2, roundcount) {
y = []
y.push(...s1)
y.push(...key)
y.push(0, 0, iv1, iv2)
y.push(0, 0, iv1 & 4294967295, iv2 & 4294967295)
v1 = s2
out = []
inpl = inp.length
......@@ -96,43 +96,26 @@ encryp = function (key, inp, iv1, iv2, s1, s2, roundcount) {
}
// for (let i = 0; i < 16; i++) {
// x[i] = (x[i] + y[i]) % 4294967296
// }
// z = []
// for (let i = 0; i < x.length; i++) {
// let p = x[i]
// p = p & 4294967295
// z.push(p & 255)
// z.push((p >> 8) & 255)
// z.push((p >> 16) & 255)
// z.push((p >> 24) & 255)
// }
// while (out.length < inpl && z.length > 0) {
// out.push(inp[out.length] ^ z.pop(0))
// }
}
return out
}
let key = [1302894984, 2005175977, 1656246354, 2007477623, 1805664012, 1874762676, 1089561567, 235108445];
let inp = [235, 136, 37, 91, 252, 0, 53, 133, 8, 190, 92, 211, 189, 89, 9, 95, 51, 104, 141, 225, 30, 42, 215, 90, 44, 140, 244, 45, 179, 47, 147, 96, 48, 146, 5, 127, 240, 110, 245, 55, 218, 39, 114, 239, 21, 104, 182, 138, 227, 141, 183, 194, 59, 114, 97, 17, 58, 214, 50, 144, 128, 115, 3, 68, 197, 30, 3, 232, 97, 105, 255, 219, 250, 105, 64, 112, 55, 230, 86, 202, 248, 179, 82, 37, 220, 98, 41, 16, 149, 121, 215, 101, 219, 215, 149, 156, 17, 122, 5, 133, 24, 179, 101, 37, 90, 252, 41, 81, 162, 103, 229, 97, 58, 104, 227, 73, 82, 192, 195, 14, 132, 177, 244, 26, 104, 200, 9, 50, 107, 181, 151, 13, 5, 223, 201, 233, 12, 254, 137, 111, 193, 93, 191, 82, 194, 90, 190, 144, 152, 197, 211, 187, 197, 187, 179, 249, 42, 153, 189, 72, 75, 135, 101, 128, 23, 206, 202, 245, 210, 223, 174, 249, 51, 211, 115, 192, 148, 173, 23, 136, 71, 64, 214, 180, 36, 156, 50, 248, 255, 175, 203, 22, 128, 153, 232, 204, 76, 134, 253, 224, 134, 44, 103, 15, 102, 64, 135, 149, 216, 8, 7, 146, 241, 210, 85, 223, 92, 7, 226, 133, 48, 133, 201, 213, 140, 240, 164, 187, 90, 45, 0, 204, 192, 128, 201, 203, 246, 51, 212, 57, 53, 93, 109, 56, 177, 172, 139, 220, 247, 69, 89, 122, 93, 193, 80, 101, 198, 230, 43, 226, 92, 161, 139, 223, 211, 217, 215, 36, 232, 55, 41, 83, 110, 56, 111, 2, 117, 83, 164, 85, 51, 26, 203, 234, 87, 68, 39, 213, 18, 195, 84, 103, 46, 13, 30, 1, 229, 9, 66, 160, 18, 18, 147, 6, 30, 228, 159, 203, 222, 70, 92, 70, 29, 61, 89, 187, 192, 87, 248, 97, 23, 39, 101, 66, 12, 56, 18, 209, 4, 200, 206, 94, 81, 120, 255, 235, 46, 196, 161, 113, 30, 205, 219, 119, 44, 182, 106, 241, 212, 232, 17, 45, 5, 97, 117, 173, 216, 252, 242, 102, 53, 229, 219, 65, 129, 152, 59, 4, 43, 38, 80, 86, 212, 152, 71, 239, 231, 225, 72, 191, 155, 0, 248, 173, 131, 255, 171, 129, 85, 174, 113, 41, 105, 249, 62, 200, 184, 178, 50, 117, 95, 20, 228, 17, 182, 244, 88, 123, 7, 128, 149, 231, 197, 246, 124, 17, 28, 218, 81, 6, 138, 52, 119, 40, 208, 62, 140, 82, 197, 144, 7, 238, 77, 100, 10, 130, 51, 215, 217, 234, 121, 201, 20, 131, 31, 138, 231, 52, 126, 123, 213, 253, 194, 248, 201, 88, 135, 43, 111, 179, 217, 72, 91, 62, 143, 169, 58, 195, 142, 177, 235, 8, 68, 16, 128, 238, 169, 161, 159, 226, 147, 150, 65, 254, 116, 39, 18, 237, 82, 26, 25, 90, 185, 25, 86, 239, 24, 37, 31, 29, 241, 182, 179, 242, 254, 102, 32, 46, 87, 21, 251, 14, 220, 33, 132, 155, 143, 201, 224, 188, 1, 76, 65, 75, 141, 50, 189, 11, 153, 38, 87, 87, 208, 155, 189, 154, 114, 169, 110, 214, 85, 6, 96, 56, 245, 178, 35, 84, 107, 53, 7, 85, 240, 20, 52, 124, 166, 228, 62, 81, 239, 189, 22, 76, 30, 47, 244, 127, 60, 200, 150, 11, 40, 233, 143, 180, 180, 239, 130, 103, 12, 209, 78, 129, 184, 56, 59, 206, 98, 91, 168, 48, 219, 180, 22, 90, 86, 7, 226, 79, 56, 217, 91, 18, 234, 46, 211, 4, 66, 115, 127, 79, 88, 167, 18, 175, 51, 52, 209, 166, 61, 199, 4, 126, 212, 214, 134, 149, 112, 12, 132, 125, 27, 201, 194, 155, 219, 175, 250, 29, 113, 90, 220, 143, 64, 134, 120, 44, 3, 46, 85, 172, 117, 154, 54, 39, 118, 126, 201, 69, 241, 149, 33, 84, 1, 133, 87, 175, 69, 3, 228, 165, 225, 230, 121, 188, 149, 208, 43, 41, 36, 62, 214, 92, 252, 86, 114, 238, 233, 37, 178, 85, 60, 193, 44, 65, 144, 140, 67, 95, 242, 36, 53, 242, 121, 130, 140, 45, 220, 12, 243, 92, 58, 235, 58, 230, 168, 35, 185, 253, 8, 121, 156, 163, 145, 1, 194, 41, 202, 54, 250, 119, 69, 216, 14, 64, 126, 142, 34, 164, 95, 237, 86, 49, 247, 103, 11, 205, 105, 173, 107, 50, 144, 13, 242, 84, 119, 227, 252, 128, 253, 75, 180, 84, 123, 96, 186, 53, 234, 247, 110, 154, 226, 218, 80, 125, 9, 227, 73, 205, 117, 96, 4, 65, 159, 109, 106, 209, 91, 176, 99, 73, 87, 198, 126, 222, 117, 107, 109, 193, 207, 4, 13, 36, 205, 58, 235, 202, 149, 186, 46, 184, 178, 90, 37, 217, 119, 24, 17, 250, 238, 108, 0, 19, 194, 59, 45, 99, 61, 214, 206, 44, 234, 160, 133, 60, 3, 189, 204, 122, 108, 105, 31, 180, 136, 113, 23, 1, 205, 18, 138, 234, 188, 206, 53, 238, 117, 233, 122, 210, 225, 110, 112, 5, 85, 235, 230, 81, 224, 219, 24, 153, 156, 184, 17, 230, 106, 54, 200, 186, 201, 167, 102, 38, 60, 34, 245, 251, 225, 128, 127, 189, 5, 153, 69, 41, 225, 70, 77, 108, 80, 147, 16, 120, 20, 254, 151, 49, 57, 5, 176, 64, 255, 24, 51, 135, 87, 114, 239, 135, 71, 212, 56, 71, 15, 60, 142, 197, 117, 242, 162, 173, 114, 167, 192, 216, 76, 173, 85, 46, 4, 85, 8, 214, 96, 104, 178, 53, 51, 217, 48, 24, 212, 194, 165, 134, 225, 206, 92, 98, 148, 201, 117, 43, 95, 58, 135, 6, 86, 94, 82, 76, 188, 9, 131, 167, 207, 98, 227, 157, 71, 210, 41, 69, 91, 251, 39, 70, 221, 37, 237, 73, 132, 212, 170, 78, 245, 158, 112, 239, 44, 244, 132, 146, 115, 172, 175, 121, 199, 241, 8, 108, 18, 47, 26, 76, 116, 210, 93, 185, 10, 13, 159, 248, 125, 178, 100, 135, 248, 52, 248, 224, 185, 115, 70, 22, 157, 30, 250, 188, 198, 166, 190, 160, 26, 90, 30, 134, 210, 193, 154, 197, 190, 3, 7, 77, 244, 123, 78, 141, 238, 112, 107, 201, 173, 10, 107, 70, 93, 9, 19, 220, 111, 9, 186, 3, 101, 245, 47, 19, 148, 96, 191, 218, 42, 215, 37, 67, 59, 26, 171, 205, 50, 94, 43, 233, 93, 170, 206, 11, 56, 207, 204, 15, 247, 181, 168, 42, 209, 133, 142, 127, 73, 30, 208, 217, 37, 16, 90, 140, 96, 39, 58, 20, 255, 151, 187, 45, 24, 222, 66, 15, 139, 171, 85, 203, 90, 63, 209, 250, 212, 105, 221, 167, 208, 123, 90, 60, 254, 241, 132, 39, 251, 175, 93, 178, 121, 30, 111, 232, 63, 166, 73, 151, 207, 172, 247, 99, 60, 31, 167, 25, 118, 131, 187, 133, 61, 155, 221, 8, 168, 145, 196, 157, 65, 125, 110, 150, 133, 136, 119, 207, 104, 143, 99, 205, 28, 203, 138, 122, 45, 152, 99, 172, 13, 31, 16, 208, 45, 114, 235, 243, 34, 229, 113, 183, 4, 13, 201, 142, 62, 69, 9, 136, 98, 27, 117, 137, 198, 11, 226, 212, 6, 226, 169, 208, 89, 164, 193, 69, 57, 83, 12, 56, 166, 8, 133, 224, 117, 106, 164, 63, 74, 172, 202, 175, 19, 160, 44, 193, 117, 211, 244, 214, 8, 189, 65, 253, 157, 23, 253, 100, 45, 39, 226, 61, 31, 100, 62, 249, 6, 65, 82, 1, 199, 179, 55, 227, 186, 109, 232, 217, 145, 247, 181, 50, 131, 90, 229, 176, 13, 211, 136, 164, 40, 101, 89, 171, 230, 223, 152, 29, 161, 167, 164, 14, 126, 11, 247, 208, 39, 91, 144, 227, 198, 85, 61, 105, 161, 126, 156, 161, 109, 4, 100, 217, 120, 47, 87, 74, 181, 117, 50, 214, 65, 193, 224, 142, 154, 62, 96, 177, 162, 90, 115, 23, 117, 114, 130, 196, 237, 62, 182, 170, 130, 195, 152, 231, 79, 9, 157, 240, 105, 223, 98, 42, 116, 194, 219, 144, 231, 223, 226, 36, 252, 109, 34, 244, 31, 28, 202, 86, 103, 83, 49, 115, 168, 201, 105, 109, 230, 118, 126, 60, 0, 24, 27, 19, 23, 43, 210, 192, 146, 37, 60, 63, 190, 185, 121, 103, 103, 29, 67, 192, 13, 21, 176, 55, 66, 123, 31, 41, 14, 144, 112, 239, 41, 72, 20, 132, 250, 237, 39, 97, 17, 247, 82, 171, 99, 24, 147, 178, 96, 26, 118, 80, 76, 184, 84, 54, 198, 174, 107, 132, 161, 117, 27, 213, 163, 180, 92, 93, 111, 111, 167, 216, 95, 81, 185, 129, 157, 8, 243, 21, 223, 74, 5, 52, 103, 96, 120, 33, 148, 52, 31, 127, 26, 6, 133, 249, 209, 233, 7, 165, 203, 127, 243, 113, 10, 60, 137, 135, 246, 225, 35, 67, 186, 251, 184, 181, 247, 165, 198, 228, 120, 134, 234, 252, 27, 114, 67, 229, 238, 71, 98, 185, 236, 232, 144, 151, 199, 151, 43, 145, 162, 180, 113, 52, 14, 90, 222, 117, 77, 202, 58, 143, 8, 212, 205, 217, 159, 61, 127, 247, 200, 80, 116, 11, 120, 255, 133, 0, 112, 227, 36, 55, 42, 17, 147, 102, 29, 168, 207, 118, 173, 190, 70, 126, 197, 207, 211, 186, 191, 243, 160, 151, 38, 156, 228, 172, 250, 184, 239, 108, 170, 122, 196, 170, 115, 50, 185, 194, 188, 60, 2, 56, 172, 201, 215, 79, 215, 81, 53, 37, 13, 67, 225, 27, 180, 161, 89, 164, 234, 188, 10, 146, 78, 153, 168, 85, 74, 126, 217, 144, 161, 140, 31, 86, 171, 73, 209, 9, 178, 248, 112, 137, 35, 193, 117, 255, 161, 55, 11, 165, 184, 38, 33, 73, 157, 182, 147, 15, 172, 205, 187, 216, 33, 24, 179, 0, 54, 61, 110, 105, 146, 126, 48, 43, 37, 59, 152, 146, 197, 42, 237, 182, 243, 154, 66, 176, 154, 169, 69, 43, 186, 120, 86, 191, 230, 226, 0, 201, 110, 124, 137, 122, 239, 98, 34, 23, 11, 79, 234, 31, 62, 85, 47, 220, 212, 193, 28, 210, 238, 251, 119, 80, 126, 221, 94, 112, 0, 132, 34, 159, 246, 120, 252, 213, 157, 231, 209, 105, 172, 193, 210, 233, 244, 23, 143, 193, 240, 78, 225, 130, 207, 231, 81, 163, 37, 24, 251, 80, 221, 227, 171, 218, 230, 236, 88, 89, 106, 237, 41, 202, 115, 70, 144, 153, 44, 237, 248, 51, 153, 68, 126, 159, 125, 143, 56, 71, 194, 56, 17, 26, 67, 218, 77, 20, 1, 97, 63, 111, 251, 89, 108, 107, 166, 22, 48, 246, 175, 207, 87, 111, 177, 115, 30, 202, 170, 84, 110, 12, 181, 117, 159, 129, 243, 111, 161, 249, 130, 235, 36, 148, 79, 196, 233, 223, 242, 35, 200, 186, 226, 110, 98, 141, 226, 199, 217, 145, 235, 157, 252, 223, 200, 180, 70, 241, 17, 155, 71, 184, 245, 19, 36, 207, 7, 189, 23, 156, 47, 196, 137, 176, 204, 123, 168, 162, 42, 238, 17, 213, 133, 32, 255, 228, 92, 180, 140, 35, 45, 107, 144, 3, 224, 185, 42, 96, 153, 234, 105, 97, 214, 214, 73, 220, 37, 124, 214, 48, 170, 26, 35, 44, 179, 160, 57, 201, 127, 249, 66, 57, 45, 217, 76, 168, 8, 184, 209, 114, 82, 84, 155, 173, 158, 148, 6, 143, 3, 119, 116, 253, 211, 12, 252, 54, 27, 140, 75, 96, 139, 122, 35, 155, 2, 216, 66, 230, 129, 180, 106, 187, 25, 254, 28, 156, 25, 23, 21, 221, 88, 94, 194, 150, 250, 67, 27, 230, 14, 208, 120, 222, 227, 238, 42, 61, 167, 86, 135, 253, 209, 162, 160, 46, 160, 78, 247, 100, 39, 168, 19, 85, 119, 148, 97, 56, 174, 178, 209, 52, 160, 182, 125, 249, 159, 113, 147, 252, 151, 226, 176, 171, 214, 113, 250, 173, 203, 165, 67, 29, 217, 249, 249, 24, 33, 234, 29, 232, 106, 56, 182, 201, 241, 177, 181, 177, 177, 60, 48, 250, 221, 178, 50, 131, 161, 164, 170, 144, 218, 144, 24, 229, 209, 211, 50, 15, 160, 235, 79, 147, 54, 26, 4, 51, 64, 177, 154, 212, 39, 175, 91, 142, 152, 216, 251, 163, 217, 207, 117, 57, 79, 60, 215, 160, 96, 115, 165, 75, 217, 230, 211, 40, 85, 80, 143, 173, 43, 154, 232, 189, 13, 248, 157, 26, 12, 99, 117, 152, 139, 129, 95, 18, 86, 75, 190, 117, 118, 176, 174, 235, 208, 136, 206, 170, 229, 157, 104, 16, 225, 40, 74, 124, 168, 178, 232, 164, 26, 164, 18, 24, 5, 129, 58, 180, 219, 148, 83, 92, 84, 65, 248, 92, 49, 241, 152, 245, 123, 142, 156, 159, 219, 107, 143, 118, 64, 140, 14, 85, 143, 34, 156, 235, 189, 157, 208, 6, 68, 196, 38, 251, 155, 81, 175, 200, 235, 119, 243, 139, 192, 226, 243, 119, 144, 87, 40, 85, 77, 13, 109, 195, 66, 185, 152, 26, 99, 115, 29, 59, 31, 214, 213, 130, 230, 151, 154, 4, 85, 206, 45, 250, 22, 140, 30, 229, 55, 175, 231, 117, 215, 25, 61, 161, 85, 170, 162, 88, 77, 18, 74, 29, 238, 249, 76, 161, 79, 93, 254, 210, 217, 176, 49, 82, 219, 41, 28, 116, 161, 116, 150, 118, 234, 199, 163, 159, 90, 112, 165, 88, 109, 45, 167, 5, 94, 140, 15, 43, 216, 48, 24, 126, 126, 218, 234, 39, 50, 97, 217, 182, 90, 180, 15, 118, 230, 71, 202, 177, 168, 23, 16, 126, 72, 82, 9, 69, 18, 195, 64, 131, 92, 139, 59, 128, 191, 133, 231, 233, 98, 103, 109, 121, 179, 165, 82, 42, 72, 22, 249, 226, 96, 228, 49, 150, 64, 203, 1, 196, 154, 174, 192, 171, 139, 225, 161, 56, 29, 123, 104, 186, 4, 76, 149, 15, 91, 196, 95, 68, 71, 152, 247, 103, 82, 82, 242, 72, 90, 162, 220, 201, 88, 49, 120, 227, 17, 144, 180, 100, 132, 2, 74, 54, 9, 2, 196, 79, 220, 19, 77, 72, 48, 82, 142, 192, 130, 59, 202, 144, 195, 5, 223, 172, 185, 213, 125, 101, 232, 249, 116, 131, 92, 255, 172, 102, 140, 19, 124, 38, 34, 41, 76, 245, 171, 6, 165, 120, 240, 16, 88, 35, 114, 127, 94, 187, 49, 164, 224, 115, 235, 42, 192, 4, 187, 122, 102, 91, 130, 108, 206, 149, 185, 169, 62, 211, 226, 220, 144, 81, 31, 181, 54, 187, 248, 105, 126, 52, 87, 183, 227, 216, 85, 145, 233, 7, 229, 201, 247, 71, 112, 55, 12, 131, 172, 178, 217, 166, 17, 131, 81, 133, 208, 89, 76, 71, 44, 113, 201, 192, 181, 25, 127, 59, 162, 91, 234, 161, 36, 196, 55, 90, 238, 188, 188, 45, 104, 171, 253, 227, 115, 87, 49, 126, 60, 119, 6, 172, 197, 57, 73, 229, 91, 153, 148, 249, 77, 246, 90, 135, 176, 196, 187, 157, 68, 55, 105, 204, 12, 80, 18, 62, 98, 60, 222, 137, 88, 228, 207, 223, 171, 81, 223, 168, 123, 254, 51, 54, 98, 5, 38, 255, 42, 207, 217, 217, 0, 105, 35, 238, 73, 21, 90, 185, 254, 65, 44, 199, 107, 253, 181, 94, 33, 14, 18, 82, 179, 206, 60, 254, 99, 107, 74, 26, 29, 215, 77, 58, 117, 168, 136, 190, 173, 163, 165, 218, 199, 193, 50, 55, 22, 66, 40, 33, 201, 105, 10, 177, 93, 123, 81, 236, 123, 2, 101, 41, 14, 216, 123, 196, 234, 82, 53, 102, 231, 25, 42, 246, 8, 225, 235, 60, 28, 115, 177, 184, 106, 71, 104, 141, 79, 92, 185, 148, 9, 121, 222, 142, 216, 77, 68, 185, 30, 124, 241, 196, 246, 1, 152, 227, 34, 146, 99, 14, 236, 79, 126, 153, 116, 43, 11, 228, 134, 88, 111, 166, 124, 3, 14, 191, 125, 31, 173, 251, 49, 183, 220, 34, 45, 248, 104, 138, 124, 52, 70, 27, 226, 5, 16, 12, 61, 192, 215, 138, 205, 28, 189, 172, 246, 168, 120, 186, 181, 25, 251, 178, 45, 249, 35, 247, 142, 209, 41, 27, 217, 72, 52, 112, 172, 131, 143, 244, 184, 250, 245, 33, 139, 103, 25, 39, 18, 14, 212, 187, 15, 108, 40, 109, 155, 68, 98, 170, 104, 148, 250, 59, 129, 175, 240, 117, 211, 152, 181, 81, 36, 13, 135, 150, 111, 216, 125, 234, 93, 103, 105, 100, 29, 166, 63, 216, 9, 57, 107, 141, 176, 197, 205, 18, 245, 19, 111, 121, 18, 15, 188, 239, 210, 218, 127, 30, 250, 59, 157, 8, 123, 5, 151, 209, 76, 51, 135, 156, 139, 72, 84, 122, 39, 243, 89, 147, 187, 33, 152, 58, 212, 114, 137, 126, 12, 152, 225, 134, 208, 109, 147, 185, 149, 25, 169, 30, 219, 234, 198, 54, 16, 105, 102, 230, 88, 78, 85, 38, 149, 165, 253, 84, 159, 184, 172, 152, 199, 211, 171, 146, 139, 213, 208, 90, 181, 98, 31, 171, 231, 142, 98, 28, 217, 172, 225, 95, 216, 82, 81, 111, 169, 217, 65, 44, 26, 213, 105, 113, 20, 152, 79, 215, 57, 18, 145, 78, 194, 141, 203, 50, 249, 222, 84, 215, 43, 243, 217, 144, 209, 233, 182, 108, 169, 177, 142, 74, 114, 223, 105, 51, 220, 157, 165, 17, 114, 39, 185, 118, 49, 41, 110, 192, 173, 5, 128, 50, 136, 34, 128, 179, 6, 145, 205, 11, 253, 76, 107, 153, 193, 151, 31, 101, 110, 218, 145, 234, 5, 73, 104, 221, 88, 83, 19, 7, 68, 169, 138, 245, 44, 0, 217, 221, 219, 196, 64, 110, 42, 139, 242, 187, 226, 159, 192, 214, 155, 128, 163, 136, 171, 245, 13, 75, 167, 87, 55, 39, 210, 175, 121, 228, 11, 44, 138, 176, 151, 8, 23, 74, 232, 133, 130, 252, 203, 228, 77, 173, 200, 59, 224, 54, 218, 215, 114, 223, 193, 75, 90, 162, 242, 117, 152, 171, 69, 138, 187, 103, 35, 148, 91, 112, 94, 231, 85, 133, 30, 134, 34, 57, 64, 48, 52, 62, 22, 252, 126, 61, 215, 99, 115, 224, 52, 227, 44, 120, 155, 227, 79, 186, 43, 40, 152, 38, 239, 156, 117, 164, 168, 170, 39, 113, 203, 7, 114, 133, 190, 10, 250, 113, 240, 26, 116, 53, 190, 55, 208, 17, 21, 163, 101, 83, 96, 245, 185, 255, 7, 247, 226, 59, 22, 174, 157, 9, 13, 75, 101, 204, 61, 116, 240, 236, 6, 120, 182, 44, 62, 103, 145, 0, 188, 125, 190, 150, 177, 92, 139, 170, 0, 29, 190, 44, 250, 252, 3, 240, 155, 196, 65, 161, 9, 30, 228, 185, 131, 138, 255, 225, 152, 147, 175, 82, 190, 70, 55, 144, 204, 192, 31, 125, 28, 237, 197, 231, 28, 1, 122, 155, 75, 26, 94, 72, 214, 134, 203, 204, 174, 81, 187, 153, 50, 131, 173, 9, 56, 14, 181, 123, 40, 175, 133, 74, 35, 46, 191, 85, 106, 188, 2, 67, 61, 89, 170, 89, 187, 180, 175, 79, 12, 239, 80, 216, 160, 71, 158, 192, 235, 102, 186, 137, 30, 110, 132, 10, 151, 163, 219, 101, 140, 138, 159, 199, 117, 216, 250, 206, 67, 207, 124, 62, 94, 150, 88, 5, 191, 249, 103, 14, 99, 118, 143, 68, 134, 205, 206, 173, 17, 65, 9, 60, 161, 154, 149, 170, 189, 105, 198, 26, 107, 36, 65, 67, 144, 164, 142, 223, 155, 153, 20, 243, 167, 14, 35, 83, 11, 0, 86, 229, 240, 101, 37]
let key =[1498914194, 52788491, 988796633, 1683876583, 1375705376, 61146489, 189331569, 1545570862];
let inp = [26, 82, 87, 11, 218, 247, 118, 103, 52, 167, 41, 83, 168, 211, 37, 25, 47, 217, 99, 9, 106, 132, 4, 130, 188, 202, 102, 202, 95, 181, 13, 66, 76, 124, 222, 219, 179, 120, 143, 155, 233, 174, 223, 89, 153, 84, 212, 104, 217, 115, 86, 156, 230, 48, 65, 51, 208, 245, 87, 35, 88, 66, 76, 179, 42, 46, 32, 89, 100, 118, 95, 104, 135, 86, 113, 131, 25, 255, 244, 28, 16, 133, 184, 20, 236, 128, 68, 18, 190, 58, 169, 120, 30, 226, 162, 2, 55, 203, 114, 136, 120, 110, 206, 35, 58, 90, 47, 167, 205, 183, 1, 205, 86, 144, 9, 122, 247, 2, 42, 195, 23, 77, 104, 118, 254, 117, 254, 203, 233, 69, 169, 237, 253, 92, 6, 0, 228, 159, 79, 130, 244, 142, 32, 123, 99, 128, 179, 74, 34, 131, 184, 219, 255, 204, 77, 40, 137, 52, 119, 47, 9, 174, 115, 125, 11, 118, 243, 33, 229, 186, 169, 69, 102, 155, 215, 47, 65, 86, 175, 92, 56, 84, 25, 54, 222, 50, 153, 223, 45, 191, 235, 129, 37, 40, 152, 61, 130, 44, 78, 168, 140, 210, 78, 208, 251, 105, 167, 150, 137, 153, 16, 95, 157, 11, 190, 97, 118, 89, 175, 159, 188, 110, 135, 43, 64, 141, 116, 236, 66, 135, 79, 12, 145, 46, 99, 234, 177, 201, 108, 88, 215, 53, 149, 80, 191, 204, 144, 90, 218, 210, 102, 7, 132, 81, 70, 16, 72, 185, 83, 76, 143, 147, 43, 179, 156, 223, 152, 85, 48, 101, 42, 37, 148, 40, 85, 157, 71, 120, 180, 243, 223, 113, 10, 19, 175, 171, 245, 19, 63, 112, 82, 179, 238, 209, 11, 77, 114, 209, 228, 27, 92, 67, 125, 214, 107, 2, 177, 234, 88, 204, 113, 184, 243, 29, 161, 134, 235, 21, 185, 129, 242, 42, 171, 11, 83, 117, 179, 216, 142, 230, 154, 246, 119, 182, 232, 23, 113, 10, 207, 68, 225, 66, 92, 120, 50, 91, 106, 220, 30, 100, 102, 6, 27, 35, 67, 49, 79, 162, 53, 24, 210, 24, 171, 159, 162, 173, 168, 168, 100, 157, 119, 85, 241, 99, 194, 234, 1, 139, 80, 96, 163, 75, 90, 65, 39, 64, 19, 117, 15, 60, 70, 60, 75, 54, 164, 129, 209, 20, 3, 171, 133, 167, 112, 46, 22, 178, 237, 30, 55, 144, 84, 157, 253, 244, 90, 110, 108, 12, 125, 102, 187, 67, 71, 142, 50, 77, 191, 116, 80, 79, 79, 205, 186, 123, 247, 140, 1, 94, 140, 228, 229, 188, 125, 150, 42, 27, 188, 35, 93, 125, 203, 108, 51, 6, 197, 46, 102, 55, 181, 253, 189, 30, 107, 174, 14, 233, 53, 128, 148, 181, 93, 37, 67, 55, 119, 209, 78, 31, 93, 53, 69, 217, 99, 209, 197, 44, 17, 154, 94, 128, 65, 94, 205, 77, 230, 253, 91, 103, 122, 247, 131, 54, 82, 115, 67, 231, 133, 108, 62, 218, 135, 106, 208, 147, 216, 26, 9, 252, 90, 64, 140, 8, 231, 83, 236, 7, 135, 36, 222, 170, 67, 145, 214, 245, 145, 180, 145, 232, 24, 53, 107, 88, 198, 106, 157, 190, 113, 111, 168, 90, 24, 58, 156, 56, 30, 199, 34, 229, 118, 131, 44, 171, 49, 191, 121, 144, 220, 205, 113, 214, 60, 225, 103, 129, 144, 225, 253, 24, 136, 38, 70, 134, 213, 11, 173, 228, 113, 155, 236, 122, 161, 160, 248, 94, 153, 62, 12, 151, 107, 217, 212, 202, 178, 117, 202, 214, 90, 192, 106, 184, 1, 95, 117, 175, 94, 26, 84, 178, 34, 129, 195, 250, 90, 214, 135, 180, 29, 64, 177, 5, 92, 64, 128, 208, 209, 83, 231, 98, 179, 217, 18, 252, 230, 194, 166, 89, 109, 17, 250, 133, 89, 64, 119, 40, 169, 205, 234, 152, 222, 26, 182, 67, 22, 159, 245, 184, 198, 205, 179, 211, 65, 57, 95, 107, 245, 12, 161, 91, 142, 16, 212, 123, 34, 66, 224, 16, 247, 34, 113, 1, 212, 231, 78, 104, 12, 65, 201, 249, 243, 62, 35, 11, 244, 131, 30, 240, 101, 249, 158, 57, 88, 172, 26, 131, 46, 19, 198, 92, 136, 253, 14, 169, 69, 68, 252, 20, 226, 30, 62, 39, 193, 238, 46, 215, 121, 115, 232, 128, 254, 34, 174, 112, 248, 15, 15, 24, 116, 154, 58, 198, 127, 254, 250, 50, 213, 92, 81, 126, 127, 41, 155, 19, 6, 109, 183, 17, 45, 108, 242, 144, 179, 74, 52, 53, 95, 224, 66, 102, 199, 21, 103, 116, 44, 181, 82, 106, 171, 187, 132, 161, 21, 0, 127, 131, 140, 49, 50, 254, 99, 36, 85, 16, 87, 117, 247, 164, 109, 41, 226, 215, 117, 187, 23, 12, 77, 226, 225, 118, 222, 184, 79, 193, 173, 61, 4, 168, 88, 7, 85, 33, 62, 119, 206, 85, 190, 47, 157, 219, 31, 228, 118, 75, 238, 92, 129, 25, 254, 198, 25, 104, 255, 136, 127, 239, 30, 240, 38, 19, 37, 114, 144, 173, 0, 16, 8, 239, 17, 68, 56, 65, 66, 199, 168, 171, 253, 63, 143, 121, 13, 112, 217, 68, 50, 189, 156, 40, 45, 160, 236, 169, 134, 83, 76, 137, 18, 152, 145, 220, 211, 147, 229, 197, 16, 179, 148, 146, 176, 51, 249, 244, 180, 113, 128, 7, 148, 251, 132, 184, 52, 116, 88, 84, 187, 60, 54, 78, 226, 19, 113, 214, 57, 220, 93, 94, 73, 222, 158, 111, 1, 27, 136, 168, 128, 209, 83, 115, 36, 196, 4, 57, 120, 218, 76, 200, 128, 51, 22, 226, 200, 141, 47, 116, 190, 44, 214, 12, 232, 130, 39, 138, 175, 121, 250, 120, 52, 2, 149, 30, 145, 7, 198, 2, 136, 119, 111, 125, 244, 104, 105, 33, 231, 99, 76, 55, 120, 160, 115, 27, 145, 0, 93, 156, 219, 18, 177, 108, 137, 203, 0, 60, 76, 43, 245, 158, 212, 33, 36, 18, 234, 82, 232, 232, 206, 64, 21, 67, 99, 88, 141, 206, 163, 81, 187, 65, 245, 119, 139, 214, 25, 240, 88, 171, 88, 72, 120, 159, 116, 105, 154, 114, 226, 194, 131, 140, 116, 233, 23, 41, 152, 59, 244, 198, 163, 241, 247, 237, 208, 52, 189, 151, 17, 55, 110, 247, 80, 185, 241, 225, 20, 10, 107, 147, 56, 133, 167, 211, 141, 35, 223, 224, 41, 231, 86, 36, 11, 20, 86, 53, 102, 248, 50, 215, 118, 236, 167, 232, 134, 160, 81, 208, 149, 110, 215, 34, 70, 108, 73, 30, 224, 58, 33, 116, 212, 139, 180, 9, 159, 148, 130, 228, 212, 243, 46, 122, 250, 53, 185, 63, 93, 247, 207, 233, 131, 199, 175, 10, 190, 46, 160, 240, 120, 181, 245, 59, 128, 234, 134, 4, 219, 136, 101, 96, 116, 126, 107, 112, 214, 200, 164, 174, 244, 217, 222, 121, 90, 162, 24, 25, 160, 177, 90, 208, 127, 196, 213, 179, 103, 144, 127, 224, 168, 148, 103, 206, 5, 4, 89, 47, 153, 160, 165, 149, 251, 1, 77, 214, 229, 148, 221, 166, 67, 198, 205, 128, 86, 61, 104, 15, 116, 120, 169, 35, 2, 16, 177, 250, 4, 95, 252, 45, 119, 15, 121, 152, 251, 46, 106, 81, 49, 114, 12, 14, 81, 183, 218, 0, 253, 111, 173, 247, 23, 217, 160, 144, 13, 65, 121, 12, 230, 234, 142, 188, 77, 107, 0, 203, 171, 103, 171, 118, 146, 35, 78, 15, 28, 167, 42, 62, 5, 250, 123, 245, 205, 181, 106, 102, 244, 90, 36, 79, 185, 188, 212, 24, 134, 215, 32, 86, 128, 218, 208, 221, 186, 4, 125, 210, 12, 226, 234, 245, 120, 119, 80, 50, 117, 213, 51, 247, 78, 200, 190, 217, 250, 149, 116, 169, 3, 96, 149, 206, 241, 233, 151, 91, 248, 140, 18, 23, 148, 164, 210, 245, 31, 187, 155, 133, 27, 110, 43, 203, 188, 180, 35, 87, 38, 14, 171, 39, 185, 165, 22, 93, 230, 68, 201, 251, 123, 41, 252, 223, 184, 25, 20, 26, 0, 253, 180, 52, 185, 253, 134, 87, 165, 50, 237, 240, 113, 104, 23, 113, 176, 60, 65, 114, 205, 109, 235, 205, 153, 25, 52, 91, 8, 211, 32, 200, 13, 188, 109, 78, 136, 185, 37, 219, 186, 160, 235, 172, 195, 189, 119, 232, 112, 37, 122, 233, 244, 90, 83, 191, 143, 181, 160, 125, 48, 198, 118, 80, 193, 217, 243, 156, 125, 37, 226, 150, 190, 48, 48, 146, 158, 176, 220, 175, 111, 64, 161, 52, 82, 110, 102, 191, 200, 139, 150, 20, 152, 101, 93, 31, 120, 204, 244, 64, 90, 155, 190, 178, 155, 94, 59, 163, 227, 171, 94, 187, 247, 58, 65, 151, 159, 182, 231, 132, 168, 21, 157, 243, 6, 16, 185, 248, 128, 134, 224, 29, 205, 61, 87, 157, 112, 100, 130, 22, 10, 85, 21, 12, 188, 15, 146, 27, 184, 130, 213, 244, 75, 79, 34, 132, 251, 30, 163, 103, 90, 145, 207, 65, 211, 11, 7, 93, 19, 252, 16, 103, 204, 170, 127, 175, 210, 246, 231, 139, 119, 119, 22, 114, 208, 19, 203, 120, 231, 45, 146, 97, 59, 37, 187, 123, 16, 198, 52, 61, 182, 159, 145, 233, 246, 47, 114, 101, 59, 53, 248, 113, 174, 247, 117, 13, 184, 137, 44, 30, 30, 242, 28, 134, 108, 204, 153, 230, 93, 232, 78, 10, 136, 190, 80, 96, 184, 195, 196, 69, 182, 62, 220, 93, 13, 155, 146, 250, 166, 124, 47, 33, 163, 163, 46, 43, 193, 250, 154, 106, 80, 222, 90, 207, 227, 27, 148, 90, 125, 0, 153, 69, 115, 188, 48, 184, 235, 18, 246, 16, 43, 229, 138, 230, 198, 164, 60, 224, 118, 217, 84, 78, 65, 216, 12, 239, 33, 179, 134, 3, 59, 218, 154, 94, 239, 82, 199, 88, 244, 116, 43, 48, 23, 63, 43, 13, 81, 69, 9, 29, 74, 159, 165, 80, 92, 84, 26, 157, 164, 119, 204, 97, 20, 127, 61, 161, 95, 164, 197, 158, 177, 12, 218, 172, 164, 191, 146, 146, 15, 192, 18, 87, 23, 63, 99, 137, 22, 219, 251, 83, 121, 36, 194, 192, 112, 56, 49, 12, 175, 89, 74, 35, 212, 149, 41, 132, 84, 153, 251, 154, 142, 105, 186, 10, 218, 130, 105, 231, 161, 6, 72, 218, 117, 57, 191, 26, 170, 50, 56, 13, 69, 237, 55, 75, 118, 14, 121, 48, 243, 32, 162, 16, 19, 117, 24, 203, 19, 42, 138, 190, 11, 199, 117, 27, 51, 219, 159, 19, 162, 158, 24, 71, 237, 230, 237, 91, 130, 77, 138, 224, 26, 44, 41, 43, 239, 2, 139, 236, 82, 108, 224, 25, 173, 76, 92, 3, 153, 89, 119, 252, 54, 218, 48, 220, 112, 173, 112, 49, 255, 202, 58, 127, 27, 94, 213, 76, 160, 240, 58, 62, 97, 36, 175, 224, 207, 163, 57, 220, 160, 66, 220, 16, 242, 250, 97, 225, 4, 1, 68, 200, 208, 73, 250, 204, 121, 64, 140, 21, 214, 20, 150, 197, 168, 236, 59, 101, 51, 168, 155, 26, 99, 88, 241, 227, 61, 56, 79, 76, 84, 205, 5, 145, 36, 74, 48, 157, 100, 75, 32, 241, 250, 48, 21, 180, 37, 238, 119, 100, 91, 113, 17, 253, 156, 89, 190, 235, 137, 130, 157, 15, 231, 180, 59, 2, 188, 12, 168, 189, 204, 89, 158, 163, 85, 204, 65, 58, 20, 148, 192, 134, 136, 16, 85, 53, 145, 84, 3, 162, 99, 15, 193, 172, 153, 8, 60, 249, 170, 30, 242, 223, 123, 49, 147, 248, 54, 129, 124, 50, 52, 72, 217, 71, 255, 184, 149, 231, 195, 194, 123, 90, 136, 42, 173, 36, 98, 254, 126, 215, 233, 212, 17, 163, 219, 39, 186, 146, 208, 50, 202, 46, 40, 226, 64, 120, 87, 44, 142, 181, 96, 99, 6, 86, 36, 142, 79, 50, 252, 172, 75, 55, 255, 121, 194, 128, 238, 199, 158, 59, 112, 97, 125, 96, 218, 42, 163, 109, 70, 144, 43, 43, 161, 179, 78, 28, 233, 61, 45, 175, 72, 2, 251, 134, 166, 50, 66, 172, 15, 50, 186, 123, 89, 142, 142, 33, 225, 99, 205, 131, 59, 116, 174, 220, 142, 81, 162, 150, 30, 195, 142, 140, 51, 74, 164, 130, 3, 220, 237, 11, 225, 32, 66, 134, 30, 121, 75, 201, 197, 127, 106, 78, 18, 168, 227, 137, 2, 133, 88, 190, 100, 221, 170, 51, 209, 190, 132, 128, 5, 36, 44, 93, 5, 165, 231, 25, 182, 137, 73, 33, 98, 29, 9, 121, 215, 181, 189, 141, 48, 40, 82, 241, 234, 157, 133, 172, 167, 184, 254, 78, 3, 64, 218, 214, 82, 222, 160, 181, 79, 83, 136, 48, 10, 129, 173, 53, 1, 160, 162, 140, 217, 247, 140, 78, 236, 191, 238, 34, 159, 147, 48, 234, 151, 218, 232, 92, 56, 227, 216, 113, 94, 97, 147, 74, 85, 16, 253, 205, 96, 166, 78, 220, 169, 50, 145, 231, 194, 21, 28, 96, 197, 190, 90, 35, 30, 167, 140, 199, 67, 39, 94, 177, 60, 20, 8, 228, 91, 21, 78, 201, 205, 75, 16, 110, 29, 134, 181, 29, 18, 171, 212, 52, 19, 195, 219, 67, 145, 154, 103, 72, 203, 244, 108, 25, 0, 75, 110, 235, 79, 228, 80, 125, 88, 97, 67, 104, 81, 209, 180, 1, 32, 135, 6, 73, 65, 94, 15, 160, 222, 116, 136, 0, 204, 14, 210, 175, 182, 222, 118, 157, 71, 117, 155, 232, 128, 67, 59, 150, 169, 4, 127, 252, 185, 168, 77, 27, 49, 19, 5, 92, 137, 44, 207, 132, 24, 240, 216, 1, 140, 228, 139, 9, 183, 158, 45, 105, 198, 239, 255, 1, 166, 76, 183, 23, 102, 233, 114, 146, 99, 38, 38, 197, 183, 88, 164, 31, 27, 69, 23, 198, 243, 88, 183, 199, 149, 143, 178, 34, 56, 216, 118, 20, 14, 14, 248, 234, 211, 200, 4, 167, 124, 137, 116, 179, 66, 242, 58, 163, 227, 112, 243, 83, 176, 251, 69, 159, 154, 24, 148, 85, 135, 4, 237, 158, 31, 111, 184, 102, 203, 186, 58, 228, 221, 144, 179, 126, 129, 116, 147, 117, 132, 166, 168, 177, 133, 172, 214, 82, 226, 203, 219, 237, 53, 56, 55, 193, 135, 83, 72, 93, 44, 82, 74, 228, 19, 75, 89, 50, 154, 115, 0, 177, 24, 178, 18, 16, 247, 189, 16, 236, 80, 13, 218, 91, 68, 155, 119, 98, 165, 242, 136, 175, 54, 126, 64, 84, 63, 77, 98, 217, 113, 210, 157, 6, 154, 62, 14, 168, 140, 78, 77, 142, 12, 237, 1, 177, 231, 73, 72, 47, 145, 174, 143, 193, 91, 152, 186, 213, 236, 185, 47, 2, 15, 92, 228, 53, 217, 134, 64, 18, 234, 133, 96, 87, 65, 59, 67, 134, 181, 117, 230, 29, 162, 108, 151, 225, 48, 188, 199, 155, 72, 43, 162, 20, 0, 11, 84, 183, 242, 252, 89, 226, 153, 203, 222, 166, 50, 32, 14, 59, 112, 206, 148, 8, 187, 45, 154, 50, 82, 251, 111, 228, 199, 50, 145, 82, 208, 149, 3, 181, 34, 82, 28, 166, 227, 205, 241, 125, 167, 240, 126, 207, 98, 227, 181, 231, 82, 65, 131, 203, 124, 234, 142, 68, 57, 242, 182, 134, 236, 43, 36, 78, 128, 104, 68, 232, 167, 40, 210, 208]
inp = [18, 140, 4, 162, 127, 100, 176, 137, 206, 123, 152, 38, 235, 145, 233, 217, 44, 118, 239, 89, 138, 255, 61, 38, 194, 235, 179, 73, 194, 244, 241, 50, 155, 178, 180, 132, 22, 42, 53, 99, 22, 36, 20, 118, 64, 125, 100, 24, 104, 27, 179, 43, 127, 153, 87, 106, 73, 127, 220, 22, 209, 132, 164, 254, 98, 204, 34, 231, 152, 250, 74, 140, 130, 144, 23, 46, 147, 147, 38, 46, 210, 183, 62, 227, 20, 2, 8, 63, 153, 158, 67, 14, 159, 237, 139, 108, 195, 184, 32, 10, 82, 138, 88, 38, 115, 197, 228, 33, 22, 103, 170, 70, 0, 112, 113, 105, 227, 32, 232, 147, 129, 61, 41, 54, 34, 70, 125, 73, 209, 165, 141, 41, 152, 41, 81, 233, 23, 227, 141, 107, 217, 223, 40, 124, 245, 93, 229, 201, 114, 157, 27, 83, 224, 51, 155, 66, 23, 55, 181, 153, 139, 141, 157, 244, 97, 30, 24, 234, 194, 219, 111, 242, 163, 210, 219, 75, 154, 210, 52, 70, 154, 232, 63, 219, 21, 175, 184, 221, 76, 52, 21, 160, 76, 36, 92, 189, 2, 116, 49, 156, 177, 236, 153, 103, 99, 84, 115, 20, 201, 135, 15, 229, 3, 108, 22, 176, 118, 230, 1, 91, 53, 2, 148, 72, 144, 252, 37, 215, 233, 1, 15, 229, 78, 77, 80, 35, 88, 127, 65, 226, 117, 244, 228, 80, 169, 238, 176, 163, 203, 34, 238, 90, 54, 71, 128, 228, 187, 64, 147, 52, 166, 155, 110, 165, 200, 85, 3, 250, 136, 172, 120, 6, 233, 204, 149, 214, 22, 93, 27, 240, 112, 233, 230, 68, 36, 36, 68, 204, 106, 42, 58, 248, 122, 44, 176, 76, 32, 155, 238, 217, 118, 240, 165, 82, 197, 18, 226, 176, 207, 188, 174, 49, 32, 209, 185, 186, 114, 144, 39, 6, 201, 171, 113, 170, 210, 160, 203, 209, 5, 148, 137, 184, 154, 94, 78, 83, 192, 113, 141, 219, 251, 166, 124, 194, 48, 138, 238, 192, 94, 12, 207, 53, 250, 192, 226, 21, 14, 170, 8, 115, 29, 62, 252, 171, 183, 249, 6, 37, 102, 118, 95, 101, 8, 21, 47, 85, 31, 78, 186, 250, 30, 144, 55, 210, 195, 254, 121, 226, 42, 97, 108, 84, 39, 161, 236, 64, 103, 213, 97, 164, 187, 136, 97, 228, 206, 114, 163, 198, 182, 85, 181, 193, 175, 12, 10, 224, 205, 30, 154, 82, 98, 156, 127, 34, 153, 121, 30, 157, 153, 5, 156, 88, 182, 243, 61, 244, 108, 3, 246, 107, 191, 134, 136, 212, 199, 133, 69, 147, 187, 139, 217, 229, 125, 175, 223, 217, 193, 101, 158, 32, 229, 99, 6, 33, 124, 22, 241, 45, 104, 12, 252, 92, 129, 209, 232, 248, 254, 82, 107, 58, 28, 233, 13, 28, 179, 255, 146, 95, 94, 91, 141, 202, 105, 251, 51, 75, 122, 180, 25, 25, 76, 22, 50, 121, 216, 54, 183, 172, 98, 233, 149, 17, 217, 10, 20, 63, 86, 98, 139, 46, 85, 8, 213, 70, 51, 157, 114, 103, 216, 88, 219, 124, 23, 88, 179, 201, 119, 228, 183, 188, 190, 113, 244, 144, 231, 53, 51, 249, 236, 219, 118, 211, 69, 56, 215, 115, 37, 247, 88, 3, 93, 78, 41, 191, 54, 144, 22, 201, 237, 117, 105, 188, 181, 140, 137, 69, 19, 54, 198, 99, 22, 105, 249, 170, 116, 11, 13, 8, 49, 171, 6, 19, 27, 70, 172, 56, 152, 195, 171, 64, 92, 137, 78, 80, 106, 197, 180, 76, 150, 11, 164, 100, 23, 209, 240, 216, 228, 18, 188, 188, 146, 58, 145, 100, 73, 82, 240, 180, 159, 219, 189, 76, 99, 57, 2, 127, 102, 8, 72, 168, 168, 100, 210, 246, 241, 83, 33, 92, 70, 42, 190, 72, 244, 236, 240, 211, 201, 55, 109, 135, 85, 118, 198, 244, 11, 74, 72, 241, 236, 192, 237, 153, 104, 158, 128, 101, 31, 204, 170, 87, 205, 70, 215, 122, 180, 97, 19, 210, 36, 180, 63, 225, 74, 216, 83, 232, 89, 15, 251, 189, 126, 51, 27, 184, 5, 206, 226, 113, 137, 238, 249, 80, 50, 165, 187, 208, 228, 231, 119, 127, 196, 248, 86, 129, 202, 216, 80, 115, 200, 93, 163, 153, 213, 15, 89, 207, 145, 199, 141, 11, 160, 214, 149, 197, 121, 109, 241, 176, 216, 46, 134, 193, 163, 122, 7, 102, 246, 240, 171, 6, 229, 25, 194, 78, 241, 50, 217, 25, 118, 96, 9, 86, 168, 131, 232, 245, 157, 197, 34, 21, 215, 113, 158, 115, 148, 118, 116, 0, 2, 172, 74, 81, 21, 169, 87, 237, 111, 76, 124, 19, 210, 119, 109, 162, 140, 201, 126, 11, 177, 34, 175, 57, 81, 145, 221, 101, 100, 57, 225, 134, 254, 20, 223, 194, 199, 180, 40, 103, 190, 126, 238, 233, 62, 125, 53, 118, 6, 174, 233, 57, 62, 38, 87, 75, 209, 104, 190, 179, 187, 76, 91, 95, 107, 174, 156, 68, 98, 153, 168, 131, 72, 81, 134, 149, 69, 171, 215, 227, 186, 142, 158, 7, 18, 50, 244, 120, 60, 173, 63, 183, 167, 211, 169, 144, 82, 157, 220, 76, 2, 210, 24, 255, 43, 224, 146, 48, 96, 207, 44, 149, 253, 40, 37, 35, 226, 199, 233, 69, 156, 24, 20, 108, 112, 155, 97, 105, 189, 146, 175, 59, 34, 123, 34, 11, 73, 251, 175, 232, 120, 17, 6, 181, 208, 231, 222, 239, 48, 32, 221, 154, 215, 58, 45, 147, 196, 230, 185, 2, 192, 196, 224, 234, 15, 179, 70, 179, 76, 168, 58, 171, 205, 64, 215, 163, 110, 45, 236, 208, 209, 2, 43, 155, 118, 118, 18, 67, 48, 206, 184, 132, 122, 201, 105, 135, 138, 149, 204, 40, 131, 235, 43, 0, 100, 87, 41, 105, 5, 136, 158, 3, 154, 6, 169, 84, 161, 21, 24, 84, 194, 20, 22, 176, 16, 193, 17, 212, 108, 194, 92, 136, 127, 94, 13, 196, 232, 30, 194, 212, 126, 80, 79, 12, 206, 26, 78, 158, 84, 249, 95, 175, 245, 21, 15, 174, 21, 41, 202, 20, 24, 203, 52, 26, 146, 94, 107, 26, 70, 137, 93, 215, 167, 219, 24, 156, 153, 24, 105, 128, 19, 78, 136, 72, 81, 236, 48, 145, 114, 255, 186, 171, 55, 223, 176, 227, 216, 40, 205, 77, 44, 94, 244, 121, 57, 64, 125, 161, 116, 43, 57, 4, 186, 130, 125, 17, 101, 137, 198, 90, 93, 1, 214, 31, 254, 35, 213, 221, 125, 242, 221, 138, 226, 99, 176, 247, 67, 84, 15, 245, 202, 207, 75, 15, 157, 74, 111, 2, 133, 165, 61, 83, 171, 79, 248, 113, 205, 153, 181, 124, 83, 180, 28, 223, 225, 111, 97, 100, 120, 131, 122, 98, 154, 94, 51, 3, 224, 167, 36, 37, 235, 3, 209, 8, 49, 225, 140, 148, 61, 231, 103, 83, 110, 112, 48, 226, 188, 170, 195, 230, 45, 224, 116, 229, 223, 251, 211, 123, 205, 234, 242, 78, 239, 14, 116, 232, 242, 17, 18, 52, 202, 130, 178, 159, 32, 162, 71, 196, 225, 37, 84, 113, 0, 25, 227, 88, 88, 241, 171, 130, 214, 203, 57, 145, 84, 53, 56, 165, 122, 201, 152, 57, 243, 202, 184, 106, 106, 244, 252, 165, 133, 5, 26, 254, 146, 79, 69, 168, 157, 33, 64, 193, 155, 50, 106, 55, 200, 251, 231, 14, 205, 65, 229, 182, 191, 228, 78, 42, 73, 64, 75, 92, 0, 77, 92, 87, 89, 239, 189, 52, 250, 145, 204, 56, 252, 116, 149, 176, 253, 48, 116, 207, 147, 62, 97, 231, 184, 159, 71, 182, 128, 187, 11, 62, 236, 99, 230, 51, 40, 36, 215, 98, 123, 118, 25, 185, 147, 123, 252, 11, 24, 219, 62, 253, 122, 240, 3, 90, 136, 248, 93, 111, 80, 111, 238, 134, 101, 207, 248, 229, 105, 130, 247, 30, 10, 245, 45, 152, 60, 54, 17, 29, 165, 239, 198, 142, 170, 36, 29, 120, 190, 246, 214, 210, 11, 177, 178, 42, 176, 62, 108, 5, 71, 99, 232, 7, 239, 188, 25, 199, 214, 14, 104, 52, 64, 218, 209, 245, 99, 238, 24, 129, 93, 112, 235, 108, 163, 152, 8, 166, 64, 75, 233, 57, 148, 105, 100, 53, 133, 165, 53, 255, 255, 99, 186, 224, 100, 156, 71, 26, 158, 72, 185, 118, 51, 54, 152, 108, 234, 239, 167, 211, 234, 190, 159, 189, 64, 174, 87, 235, 56, 137, 233, 70, 225, 195, 90, 15, 165, 146, 51, 7, 49, 114, 170, 126, 151, 185, 253, 160, 93, 1, 227, 240, 38, 26, 162, 87, 122, 77, 254, 136, 145, 11, 92, 95, 78, 250, 153, 40, 190, 217, 68, 215, 204, 120, 117, 146, 243, 107, 233, 42, 142, 32, 118, 132, 204, 147, 124, 197, 179, 91, 245, 155, 48, 45, 217, 121, 44, 177, 19, 117, 110, 32, 241, 10, 203, 235, 42, 27, 174, 21, 74, 204, 189, 179, 33, 8, 234, 79, 101, 110, 239, 76, 30, 183, 208, 38, 232, 118, 54, 230, 131, 96, 200, 248, 6, 7, 139, 137, 33, 115, 231, 245, 214, 209, 193, 85, 246, 251, 79, 58, 26, 243, 239, 252, 162, 247, 107, 183, 109, 112, 56, 171, 240, 112, 236, 178, 164, 214, 41, 252, 189, 7, 55, 143, 136, 218, 157, 207, 34, 187, 35, 227, 234, 212, 125, 233, 129, 246, 255, 147, 101, 228, 171, 90, 174, 253, 104, 246, 3, 127, 180, 173, 142, 225, 6, 231, 102, 244, 219, 9, 52, 42, 166, 186, 51, 226, 136, 175, 76, 80, 251, 107, 206, 146, 104, 101, 41, 224, 72, 97, 32, 160, 74, 195, 57, 78, 94, 39, 17, 170, 139, 45, 86, 26, 56, 72, 32, 198, 31, 229, 50, 82, 54, 235, 21, 231, 89, 242, 227, 37, 175, 236, 193, 183, 6, 8, 109, 131, 181, 148, 1, 251, 106, 158, 208, 234, 140, 155, 223, 194, 83, 252, 118, 68, 39, 168, 213, 71, 204, 19, 187, 33, 236, 171, 12, 254, 138, 23, 232, 146, 127, 151, 34, 70, 56, 240, 229, 62, 30, 38, 164, 218, 195, 46, 74, 81, 72, 1, 250, 84, 169, 106, 110, 213, 190, 102, 22, 156, 114, 239, 130, 242, 3, 14, 210, 158, 175, 253, 22, 75, 233, 2, 129, 208, 230, 218, 180, 213, 74, 241, 142, 138, 116, 178, 22, 51, 16, 31, 35, 89, 206, 161, 38, 163, 159, 162, 43, 13, 13, 8, 90, 71, 252, 89, 149, 181, 25, 14, 199, 246, 183, 218, 75, 182, 18, 20, 218, 209, 64, 244, 109, 102, 96, 10, 146, 86, 243, 56, 97, 19, 176, 135, 222, 141, 154, 153, 245, 184, 191, 76, 185, 89, 46, 148, 161, 199, 40, 10, 151, 24, 148, 211, 44, 177, 30, 122, 4, 97, 71, 111, 89, 199, 69, 133, 210, 180, 63, 164, 211, 81, 157, 89, 106, 84, 26, 223, 120, 143, 130, 152, 60, 45, 83, 140, 166, 42, 122, 9, 14, 234, 53, 240, 187, 254, 228, 157, 157, 216, 248, 174, 104, 197, 72, 136, 43, 70, 161, 183, 28, 250, 147, 245, 137, 234, 252, 216, 167, 27, 38, 201, 251, 73, 118, 159, 89, 164, 114, 140, 148, 79, 105, 168, 1, 44, 201, 243, 33, 118, 223, 223, 147, 156, 141, 33, 52, 14, 101, 74, 17, 44, 189, 255, 62, 34, 1, 8, 182, 229, 182, 251, 62, 83, 211, 129, 51, 79, 5, 92, 149, 121, 186, 172, 222, 48, 60, 29, 202, 255, 34, 225, 247, 150, 42, 78, 156, 172, 184, 92, 77, 113, 15, 182, 250, 207, 241, 134, 101, 51, 238, 140, 99, 137, 46, 127, 72, 24, 199, 112, 39, 44, 182, 251, 21, 207, 155, 78, 236, 85, 210, 164, 213, 2, 0, 61, 152, 140, 12, 167, 52, 13, 2, 21, 140, 206, 136, 39, 80, 7, 213, 36, 106, 219, 99, 216, 17, 243, 233, 93, 17, 250, 166, 125, 211, 62, 36, 64, 204, 225, 138, 241, 138, 129, 7, 77, 112, 95, 35, 76, 33, 248, 52, 22, 135, 26, 34, 48, 8, 200, 139, 153, 33, 62, 188, 70, 134, 62, 173, 20, 241, 153, 137, 250, 158, 216, 200, 105, 109, 38, 67, 38, 79, 113, 102, 33, 1, 123, 13, 58, 212, 91, 180, 231, 213, 232, 60, 172, 211, 15, 50, 236, 198, 121, 190, 71, 239, 136, 246, 48, 30, 100, 166, 210, 20, 87, 197, 169, 137, 216, 129, 51, 99, 222, 66, 167, 114, 10, 116, 226, 27, 200, 250, 227, 93, 126, 148, 253, 162, 36, 176, 89, 83, 59, 204, 237, 15, 198, 88, 121, 190, 120, 54, 30, 154, 138, 197, 54, 101, 98, 34, 161, 126, 43, 137, 26, 69, 73, 138, 102, 252, 202, 158, 219, 240, 189, 24, 76, 149, 1, 121, 140, 82, 244, 193, 135, 65, 42, 19, 210, 60, 97, 61, 106, 249, 140, 195, 247, 99, 254, 130, 207, 78, 80, 205, 75, 248, 213, 131, 167, 62, 125, 123, 182, 66, 47, 92, 37, 30, 29, 48, 61, 196, 177, 28, 63, 158, 0, 97, 15, 202, 142, 24, 88, 105, 252, 90, 80, 231, 240, 178, 8, 17, 219, 175, 209, 53, 64, 240, 193, 125, 52, 91, 209, 42, 4, 155, 242, 84, 191, 12, 244, 226, 70, 210, 115, 142, 238, 182, 175, 240, 46, 43, 23, 10, 199, 47, 102, 62, 169, 57, 60, 231, 103, 223, 65, 117, 102, 27, 131, 90, 247, 9, 119, 29, 130, 96, 185, 212, 16, 41, 221, 227, 212, 102, 175, 255, 220, 21, 2, 187, 97, 120, 200, 85, 182, 171, 11, 239, 255, 190, 31, 170, 1, 119, 22, 57, 119, 26, 28, 174, 187, 69, 183, 179, 70, 115, 223, 109, 15, 199, 93, 217, 145, 87, 104, 45, 195, 208, 11, 194, 159, 98, 65, 79, 18, 90, 92, 7, 35, 208, 75, 62, 176, 112, 247, 210, 42, 62, 117, 53, 94, 24, 29, 218, 132, 252, 91, 102, 109, 76, 97, 241, 157, 35, 189, 229, 135, 110, 177, 138, 106, 197, 20, 29, 187, 49, 44, 45, 131, 75, 77, 0, 189, 181, 172, 29, 178, 153, 84, 59, 109, 251, 83, 128, 254, 146, 139, 186, 220, 170, 210, 45, 150, 109, 163, 241, 202, 216, 163, 196, 117, 178, 235, 253, 44, 131, 232, 177, 223, 199, 127, 178, 34, 198, 13, 55, 36, 81, 199, 167, 255, 65, 46, 158, 38, 237, 231, 74, 226, 39, 145, 62, 23, 36, 95, 30, 207, 58, 25, 194, 63, 211, 143, 11, 110, 89, 74, 99, 168, 154, 205, 246, 179, 50, 122, 90, 203, 124, 212, 180, 211, 57, 209, 5, 48, 253, 61, 56, 51, 52, 252, 150, 19, 49, 212, 45, 11, 194, 224, 70, 170, 59, 141, 28, 26, 223, 147, 32, 12, 37, 240, 88, 38, 43, 177, 56, 190, 64, 89, 114, 57, 63, 124, 15, 204, 74, 152, 23, 127, 95, 184, 78, 164, 239, 209, 51, 10, 79, 214, 67, 33, 250, 255, 66, 78, 164, 84, 175, 0, 119, 201, 66, 201, 204, 29, 214, 126, 199, 31, 123, 72, 110, 5, 149, 230, 17, 48, 246, 199, 94, 86, 167, 108, 91, 158, 225, 94, 151, 92, 124, 190, 236, 207, 145, 7, 188, 211, 190, 10, 2, 51, 92, 76, 231, 32, 82, 243, 217, 49, 232, 199, 235, 172, 164, 145, 194, 61, 249, 9, 192, 171, 171, 101, 172, 84, 93, 127, 253, 12, 213, 80, 206, 60, 106, 196, 6, 153, 200, 126, 111, 64, 137, 151, 140, 132, 80, 210, 159, 5, 38, 78, 206, 151, 161, 11, 212, 138, 220, 43, 43, 127, 216, 53, 9, 216, 75, 237, 8, 68, 254, 100, 190, 177, 95, 166, 50, 33, 158, 50, 137, 80, 52, 59, 113, 131, 117, 129, 38, 117, 120, 162, 62, 138, 125, 94, 137, 239, 85, 171, 167, 76, 135, 29, 197, 195, 81, 20, 1, 99, 125, 146, 43, 173, 162, 116, 215, 150, 243, 86, 54, 100, 78, 206, 123, 132, 127, 141, 233, 74, 101, 57, 227, 74, 149, 195, 142, 252, 200, 46, 67, 203, 114, 156, 73, 114, 113, 14, 165, 247, 9, 49, 197, 63, 173, 40, 96, 143, 4, 18, 152, 149, 82, 129, 137, 125, 88, 174, 153, 168, 190, 38, 25, 56, 18, 58, 171, 254, 136, 245, 22, 57, 234, 27, 206, 99, 162, 155, 218, 15, 54, 20, 35, 34, 135, 48, 16, 71, 55, 154, 250, 123, 14, 63, 188, 251, 127, 113, 252, 199, 115, 49, 186, 190, 102, 202, 204, 160, 187, 5, 196, 0, 15, 245, 117, 43, 139, 245, 91, 42, 95, 69, 55, 1, 155, 11, 151, 137, 59, 135, 174, 180, 122, 85, 231, 190, 106, 104, 219, 77, 69, 38, 22, 240, 73, 2, 173, 77, 34, 171, 182, 248, 236, 116, 25, 232, 178, 114, 154, 122, 218, 204, 20, 1, 28, 194, 225, 60, 157, 33, 35, 104, 236, 49, 170, 253, 21, 110, 150, 129, 201, 143, 243, 15, 98, 14, 111, 244, 109, 236, 215, 39, 191, 84, 77, 172, 40, 182, 142, 214, 117, 136, 110, 38, 147, 122, 154, 187, 96, 175, 187, 171, 213, 167, 136, 156, 25, 190, 68, 22, 61, 67, 189, 127, 40, 20, 44, 138, 51, 74, 242, 146, 249, 188, 3, 52, 11, 168, 170, 179, 60, 197, 85, 10, 211, 159, 187, 46, 86, 231, 158, 132, 66, 57, 89, 234, 58, 170, 238, 179, 4, 4, 168, 184, 205, 53, 39, 170, 28, 53, 38, 194, 155, 32, 236, 132, 8, 51, 206, 7, 0, 4, 51, 87, 173, 248, 138, 148, 127, 247, 245, 4, 242, 138, 234, 4, 219, 93, 125, 52, 131, 45, 165, 3, 53, 177, 88, 0, 3, 194, 176, 0, 157, 225, 8, 165, 153, 251, 173, 201, 158, 245, 252, 8, 74, 223, 121, 73, 140, 96, 65, 214, 168, 186, 99, 145, 131, 185, 50, 190, 67, 61, 233, 7, 220, 110, 19, 239, 48, 44, 245, 47, 156, 143, 41, 132, 28, 179, 86, 42, 201, 132, 255, 15, 70, 193, 9, 78, 205, 100, 19, 157, 213, 112, 18, 71, 25, 69, 6, 236, 110, 21, 92, 221, 191, 127, 11, 7, 32, 123, 238, 128, 90, 249, 164, 187, 131, 191, 1, 11, 137, 81, 11, 105, 56, 90, 89]
inp = [3, 189, 125, 32, 1, 18, 22, 92, 27, 168, 15, 95, 70, 68, 225, 32, 10, 143, 64, 201, 81, 134, 198, 146, 51, 165, 31, 223, 12, 55, 207, 49, 36, 130, 71, 51, 59, 80, 36, 207, 164, 148, 53, 2, 232, 155, 145, 151, 165, 105, 50, 248, 222, 181, 24, 13, 138, 210, 66, 85, 171, 165, 115, 194, 73, 160, 212, 150, 53, 157, 98, 0, 222, 33, 220, 123, 194, 103, 110, 107, 118, 11, 82, 73, 19, 102, 96, 24, 69, 68, 42, 42, 208, 226, 198, 73, 236, 244, 26, 190, 170, 23, 105, 227, 237, 46, 238, 164, 185, 36, 2, 232, 11, 123, 127, 226, 94, 155, 36, 44, 159, 207, 132, 152, 143, 127, 187, 193, 217, 127, 198, 56, 71, 83, 169, 109, 162, 10, 107, 190, 130, 41, 227, 135, 239, 209, 16, 140, 55, 121, 193, 139, 38, 74, 7, 159, 239, 17, 83, 54, 21, 189, 1, 205, 173, 6, 62, 124, 252, 12, 245, 211, 142, 48, 209, 59, 222, 223, 52, 150, 0, 119, 205, 210, 129, 100, 178, 91, 165, 217, 148, 205, 76, 77, 144, 34, 55, 50, 11, 192, 220, 33, 164, 142, 87, 79, 61, 24, 128, 41, 246, 44, 228, 4, 26, 197, 34, 138, 33, 10, 197, 154, 64, 114, 191, 88, 117, 36, 56, 12, 145, 141, 0, 5, 202, 203, 57, 38, 169, 191, 226, 48, 207, 21, 168, 249, 82, 107, 137, 192, 212, 104, 198, 9, 3, 213, 100, 200, 124, 152, 159, 237, 118, 62, 202, 191, 220, 148, 86, 49, 119, 98, 199, 29, 34, 198, 75, 95, 71, 221, 248, 130, 41, 23, 77, 230, 35, 79, 129, 178, 133, 158, 106, 119, 198, 7, 196, 124, 77, 232, 179, 132, 175, 182, 254, 235, 186, 216, 150, 142, 77, 250, 46, 100, 25, 100, 227, 118, 158, 106, 213, 92, 97, 102, 146, 148, 205, 25, 104, 216, 53, 44, 11, 213, 23, 233, 75, 128, 139, 89, 16, 7, 45, 132, 81, 242, 147, 0, 126, 81, 192, 219, 254, 65, 115, 18, 104, 214, 84, 220, 60, 239, 107, 184, 220, 20, 157, 53, 42, 32, 238, 10, 44, 118, 79, 116, 38, 210, 223, 153, 223, 73, 60, 118, 164, 147, 150, 148, 182, 40, 185, 166, 66, 220, 111, 118, 163, 230, 77, 164, 206, 197, 55, 67, 2, 15, 49, 147, 216, 208, 153, 28, 4, 42, 64, 108, 166, 102, 235, 161, 41, 151, 235, 9, 218, 58, 192, 211, 196, 23, 250, 18, 26, 35, 251, 52, 50, 150, 182, 41, 247, 84, 227, 122, 211, 228, 188, 79, 187, 191, 65, 91, 165, 61, 135, 155, 6, 155, 229, 114, 107, 124, 5, 225, 244, 58, 31, 191, 75, 93, 37, 136, 107, 181, 89, 41, 64, 228, 34, 192, 1, 230, 25, 85, 190, 136, 105, 232, 170, 96, 203, 60, 196, 143, 107, 253, 96, 93, 252, 165, 191, 232, 148, 76, 227, 139, 51, 70, 114, 107, 64, 83, 98, 208, 191, 234, 79, 25, 19, 160, 0, 209, 79, 138, 181, 200, 14, 179, 20, 62, 153, 65, 24, 21, 79, 224, 248, 204, 100, 244, 193, 87, 23, 208, 185, 89, 234, 244, 82, 125, 60, 222, 96, 107, 110, 142, 240, 4, 153, 211, 59, 53, 193, 71, 20, 178, 31, 252, 177, 186, 235, 39, 200, 161, 8, 208, 105, 11, 237, 53, 168, 19, 199, 177, 142, 228, 45, 68, 171, 15, 201, 253, 194, 244, 15, 170, 58, 5, 25, 134, 0, 184, 202, 46, 138, 194, 13, 247, 41, 11, 95, 124, 254, 58, 30, 52, 140, 222, 151, 162, 159, 14, 150, 6, 0, 254, 173, 54, 131, 62, 114, 42, 136, 206, 252, 202, 85, 127, 89, 241, 181, 246, 36, 20, 96, 143, 145, 9, 246, 69, 169, 51, 235, 160, 50, 47, 161, 111, 224, 229, 171, 144, 24, 175, 70, 202, 205, 124, 138, 74, 61, 184, 90, 209, 23, 145, 23, 42, 215, 203, 66, 253, 156, 100, 211, 200, 2, 160, 51, 174, 213, 214, 241, 5, 23, 38, 112, 141, 20, 216, 69, 24, 131, 100, 229, 60, 169, 211, 26, 51, 17, 121, 197, 135, 246, 205, 100, 26, 10, 174, 218, 47, 111, 67, 112, 37, 30, 229, 117, 235, 9, 59, 24, 189, 114, 168, 16, 29, 86, 99, 87, 250, 145, 193, 168, 86, 114, 96, 168, 174, 129, 138, 244, 132, 252, 56, 178, 144, 206, 23, 16, 139, 114, 153, 226, 92, 68, 169, 140, 114, 140, 113, 108, 191, 39, 208, 164, 100, 220, 163, 27, 248, 47, 154, 152, 16, 223, 227, 49, 131, 12, 179, 184, 219, 32, 3, 185, 145, 80, 245, 23, 96, 11, 15, 173, 111, 115, 142, 43, 129, 15, 205, 42, 175, 185, 6, 134, 129, 156, 116, 245, 160, 161, 30, 32, 174, 76, 44, 10, 239, 131, 194, 112, 216, 109, 48, 171, 82, 138, 191, 41, 98, 135, 101, 214, 161, 42, 218, 192, 14, 119, 167, 194, 34, 31, 187, 83, 55, 0, 151, 68, 86, 172, 242, 107, 171, 98, 111, 138, 201, 136, 91, 176, 120, 236, 194, 146, 95, 159, 8, 192, 11, 158, 132, 230, 31, 0, 245, 70, 37, 65, 220, 74, 133, 245, 61, 131, 181, 58, 47, 200, 128, 107, 185, 140, 39, 65, 198, 180, 151, 140, 53, 145, 15, 138, 160, 46, 179, 236, 120, 129, 102, 86, 111, 83, 2, 78, 88, 207, 22, 186, 59, 77, 62, 69, 91, 225, 201, 8, 61, 50, 39, 78, 101, 163, 1, 255, 218, 74, 120, 16, 160, 35, 63, 47, 200, 142, 240, 137, 153, 148, 110, 215, 58, 233, 215, 198, 147, 219, 108, 80, 55, 194, 83, 54, 1, 191, 49, 195, 151, 140, 8, 178, 46, 203, 245, 33, 150, 55, 233, 220, 233, 34, 157, 154, 41, 76, 214, 2, 52, 227, 124, 71, 214, 151, 77, 46, 208, 134, 216, 52, 16, 21, 140, 160, 41, 63, 137, 70, 201, 76, 123, 50, 52, 177, 249, 95, 113, 243, 247, 77, 36, 230, 89, 119, 192, 220, 106, 109, 169, 94, 69, 179, 52, 140, 43, 94, 84, 105, 190, 176, 57, 134, 57, 200, 3, 97, 140, 0, 214, 5, 47, 45, 144, 126, 97, 153, 141, 146, 62, 144, 216, 197, 51, 158, 184, 146, 78, 81, 31, 69, 22, 134, 59, 48, 184, 165, 126, 83, 159, 24, 11, 226, 7, 234, 114, 215, 67, 123, 183, 85, 172, 64, 202, 3, 126, 143, 212, 150, 33, 138, 188, 36, 244, 82, 230, 235, 74, 125, 171, 64, 99, 164, 198, 28, 148, 204, 132, 63, 64, 176, 85, 52, 185, 60, 111, 57, 113, 113, 216, 70, 233, 81, 117, 209, 237, 40, 129, 38, 201, 186, 244, 195, 59, 15, 244, 199, 144, 253, 138, 142, 45, 98, 198, 206, 27, 11, 122, 106, 24, 14, 80, 12, 185, 23, 41, 6, 99, 240, 117, 231, 8, 152, 159, 107, 111, 83, 162, 252, 118, 30, 74, 189, 136, 60, 214, 73, 186, 102, 136, 160, 150, 132, 209, 161, 211, 68, 148, 118, 200, 74, 240, 8, 184, 110, 254, 175, 172, 240, 243, 172, 236, 109, 80, 111, 248, 241, 171, 216, 155, 18, 86, 124, 219, 216, 220, 204, 252, 250, 188, 209, 147, 104, 50, 17, 119, 228, 47, 211, 32, 175, 231, 13, 156, 165, 97, 46, 22, 141, 196, 216, 29, 221, 147, 179, 96, 71, 243, 153, 112, 1, 9, 14, 236, 113, 228, 137, 159, 50, 46, 113, 60, 97, 9, 13, 199, 166, 188, 148, 234, 11, 105, 125, 16, 226, 157, 167, 21, 17, 139, 103, 205, 32, 84, 176, 151, 20, 113, 190, 168, 125, 109, 62, 221, 197, 155, 237, 23, 2, 68, 117, 50, 95, 220, 3, 116, 117, 89, 226, 51, 81, 171, 54, 236, 81, 248, 239, 13, 5, 0, 83, 186, 226, 70, 71, 30, 170, 193, 16, 113, 73, 2, 97, 179, 235, 110, 149, 79, 164, 116, 127, 213, 199, 54, 161, 113, 35, 221, 106, 66, 45, 250, 173, 217, 83, 98, 57, 40, 210, 216, 137, 237, 148, 53, 43, 96, 225, 82, 161, 253, 80, 28, 201, 121, 92, 248, 55, 164, 150, 39, 114, 253, 221, 97, 142, 95, 55, 178, 111, 15, 16, 178, 128, 197, 58, 41, 11, 34, 118, 35, 99, 31, 160, 243, 119, 137, 62, 51, 124, 123, 187, 118, 75, 239, 233, 39, 209, 176, 76, 48, 146, 2, 212, 249, 3, 220, 63, 46, 40, 110, 158, 215, 118, 148, 146, 46, 242, 34, 173, 4, 17, 133, 221, 27, 175, 165, 237, 241, 106, 181, 198, 200, 43, 108, 184, 207, 57, 98, 166, 127, 129, 203, 233, 40, 66, 43, 190, 185, 45, 4, 101, 106, 179, 140, 235, 203, 1, 171, 232, 38, 61, 136, 193, 97, 118, 25, 60, 84, 224, 191, 101, 24, 207, 133, 145, 31, 157, 45, 103, 198, 84, 188, 237, 46, 156, 97, 204, 45, 43, 8, 134, 78, 211, 97, 248, 224, 91, 10, 165, 49, 102, 146, 25, 206, 170, 11, 223, 3, 117, 106, 135, 105, 62, 152, 104, 19, 246, 145, 137, 128, 248, 134, 152, 243, 185, 250, 192, 11, 131, 66, 201, 227, 105, 86, 77, 214, 160, 188, 145, 98, 52, 31, 0, 72, 45, 87, 167, 10, 27, 213, 109, 138, 92, 121, 64, 199, 37, 139, 226, 153, 229, 56, 13, 113, 125, 221, 67, 62, 28, 102, 46, 187, 116, 246, 124, 177, 103, 192, 208, 111, 24, 22, 152, 248, 188, 164, 86, 92, 208, 140, 152, 129, 14, 205, 90, 95, 211, 77, 108, 84, 74, 93, 88, 202, 192, 155, 73, 116, 209, 78, 25, 98, 18, 206, 53, 15, 1, 59, 131, 234, 198, 15, 213, 135, 85, 181, 129, 165, 49, 54, 173, 34, 87, 167, 35, 137, 15, 201, 84, 194, 107, 52, 220, 108, 179, 50, 4, 191, 98, 144, 108, 56, 48, 160, 43, 18, 99, 183, 35, 131, 205, 121, 28, 202, 2, 169, 229, 104, 65, 165, 208, 109, 4, 84, 132, 170, 25, 190, 3, 45, 192, 69, 91, 255, 23, 223, 163, 147, 131, 41, 85, 116, 132, 2, 166, 13, 79, 221, 168, 39, 205, 173, 128, 185, 179, 99, 76, 101, 215, 6, 195, 226, 176, 104, 113, 121, 56, 30, 170, 205, 238, 88, 97, 17, 202, 15, 157, 183, 25, 35, 133, 252, 78, 170, 111, 74, 66, 48, 109, 168, 251, 207, 8, 13, 27, 140, 222, 209, 96, 170, 144, 33, 177, 169, 33, 86, 111, 165, 103, 147, 219, 16, 65, 96, 239, 91, 25, 85, 184, 53, 138, 172, 136, 202, 183, 227, 91, 48, 84, 70, 21, 239, 143, 121, 67, 253, 35, 162, 192, 4, 212, 109, 104, 217, 210, 65, 232, 161, 99, 26, 193, 132, 70, 124, 87, 2, 170, 217, 54, 88, 82, 133, 1, 15, 134, 61, 90, 16, 112, 188, 207, 94, 146, 192, 132, 175, 77, 86, 106, 159, 83, 232, 238, 93, 209, 102, 33, 34, 154, 216, 137, 217, 22, 184, 240, 42, 28, 32, 48, 22, 56, 31, 71, 86, 85, 157, 175, 2, 25, 242, 60, 252, 242, 118, 131, 191, 175, 31, 157, 200, 10, 22, 132, 192, 127, 80, 54, 18, 25, 36, 232, 19, 152, 253, 217, 199, 176, 254, 186, 168, 103, 125, 214, 215, 40, 13, 84, 212, 183, 161, 148, 4, 146, 53, 57, 201, 168, 246, 205, 112, 195, 58, 241, 162, 40, 226, 63, 220, 73, 223, 30, 149, 143, 100, 81, 65, 217, 102, 181, 243, 19, 228, 239, 141, 5, 92, 104, 29, 8, 244, 198, 132, 148, 167, 80, 120, 19, 190, 10, 88, 218, 230, 132, 58, 40, 206, 197, 178, 11, 93, 187, 85, 15, 177, 96, 202, 144, 74, 242, 69, 166, 173, 221, 146, 52, 35, 36, 227, 24, 174, 8, 45, 80, 124, 110, 179, 79, 10, 210, 105, 154, 144, 213, 19, 212, 171, 48, 114, 194, 26, 57, 32, 160, 13, 206, 126, 8, 152, 120, 206, 110, 63, 28, 170, 81, 58, 84, 46, 106, 188, 166, 12, 96, 96, 146, 19, 175, 128, 34, 124, 130, 109, 22, 3, 62, 209, 231, 86, 120, 1, 201, 214, 46, 187, 165, 21, 23, 144, 143, 252, 2, 146, 104, 165, 14, 47, 228, 251, 75, 218, 61, 198, 191, 23, 110, 175, 222, 107, 135, 48, 235, 241, 226, 164, 35, 53, 38, 86, 176, 62, 252, 50, 33, 72, 154, 103, 3, 206, 54, 184, 132, 110, 255, 129, 123, 255, 11, 80, 230, 193, 78, 65, 114, 79, 99, 26, 112, 76, 217, 9, 142, 170, 135, 105, 35, 250, 63, 154, 2, 198, 128, 225, 239, 108, 202, 81, 59, 175, 23, 159, 124, 26, 138, 58, 63, 246, 5, 232, 254, 127, 240, 128, 87, 171, 230, 213, 146, 178, 193, 117, 140, 200, 31, 48, 163, 134, 56, 204, 132, 74, 138, 131, 145, 68, 102, 15, 96, 105, 97, 221, 100, 171, 127, 131, 72, 10, 251, 160, 225, 140, 15, 107, 228, 59, 55, 40, 83, 27, 134, 70, 181, 142, 121, 181, 70, 150, 200, 98, 134, 65, 233, 72, 107, 231, 254, 110, 209, 226, 67, 253, 27, 163, 6, 170, 126, 53, 2, 222, 96, 56, 68, 196, 49, 145, 4, 85, 13, 211, 174, 2, 18, 199, 112, 31, 19, 202, 24, 44, 94, 180, 104, 0, 184, 215, 45, 57, 173, 75, 42, 24, 83, 64, 240, 40, 104, 217, 206, 61, 54, 12, 35, 145, 166, 80, 182, 54, 85, 62, 58, 197, 76, 209, 104, 58, 135, 221, 41, 239, 109, 34, 255, 17, 57, 115, 140, 209, 97, 228, 142, 38, 181, 211, 73, 157, 142, 187, 168, 241, 36, 116, 113, 69, 200, 113, 12, 86, 3, 91, 156, 235, 213, 183, 98, 185, 203, 147, 25, 100, 158, 203, 59, 16, 92, 226, 132, 252, 186, 5, 248, 59, 157, 204, 240, 23, 249, 101, 61, 239, 54, 221, 49, 111, 101, 102, 97, 151, 177, 204, 43, 198, 166, 78, 129, 80, 209, 241, 173, 183, 115, 85, 77, 159, 59, 237, 42, 28, 20, 1, 126, 82, 149, 209, 42, 142, 132, 112, 69, 58, 131, 223, 102, 146, 109, 84, 11, 220, 96, 51, 207, 44, 106, 57, 90, 138, 177, 187, 59, 64, 160, 141, 161, 27, 82, 183, 172, 43, 191, 164, 67, 255, 4, 121, 180, 90, 30, 118, 209, 131, 221, 21, 224, 173, 17, 95, 172, 72, 26, 236, 168, 87, 36, 171, 46, 28, 165, 93, 167, 113, 76, 59, 68, 109, 121, 248, 187, 38, 8, 249, 96, 61, 76, 181, 96, 92, 178, 220, 59, 195, 30, 88, 242, 59, 20, 70, 234, 180, 250, 78, 146, 194, 52, 133, 139, 172, 231, 142, 240, 104, 66, 25, 218, 55, 122, 107, 127, 43, 172, 157, 72, 173, 149, 208, 113, 65, 19, 182, 14, 112, 204, 182, 155, 17, 198, 148, 2, 106, 156, 84, 164, 97, 164, 61, 59, 94, 54, 130, 9, 25, 186, 144, 29, 109, 218, 84, 234, 247, 174, 68, 225, 58, 114, 17, 215, 111, 208, 149, 99, 73, 248, 74, 188, 37, 243, 233, 224, 22, 187, 113, 0, 198, 246, 117, 37, 66, 169, 76, 105, 166, 93, 214, 218, 77, 218, 250, 168, 175, 95, 156, 25, 193, 94, 122, 57, 141, 207, 123, 156, 51, 222, 182, 200, 158, 160, 178, 126, 165, 104, 240, 88, 101, 75, 173, 213, 92, 121, 51, 41, 47, 31, 31, 98, 160, 104, 4, 194, 112, 207, 26, 43, 86, 40, 30, 174, 89, 223, 32, 102, 52, 223, 80, 210, 195, 183, 8, 121, 131, 59, 251, 191, 255, 40, 211, 35, 231, 169, 52, 137, 249, 155, 132, 134, 218, 27, 126, 187, 134, 196, 49, 210, 50, 31, 153, 110, 0, 240, 16, 60, 158, 255, 224, 246, 61, 184, 140, 194, 244, 76, 43, 82, 183, 129, 18, 170, 131, 41, 224, 179, 10, 5, 193, 104, 212, 78, 11, 248, 148, 167, 67, 243, 96, 29, 145, 77, 153, 227, 165, 124, 245, 116, 232, 34, 220, 5, 20, 141, 56, 198, 161, 252, 63, 59, 125, 203, 182, 207, 193, 41, 28, 108, 198, 238, 19, 182, 206, 71, 37, 23, 187, 39, 84, 31, 90, 34, 134, 249, 68, 25]
// iv1 3111745860
// iv2 1837113005
let iv1 = 3611565019;
let iv2 = 2211107019;
let iv1 = 1316205436;
let iv2 = 4286292974;
let a = [114.2,2631060696,3559796574,3186351378,45.2,192.2,3341463146,6.2831853,4119329321,2245312388,5.02654824,38.2,3635547492,257348550135456.88,29.2,1287560395,32182260320.3125,3735928559,9.2,102.2,135.2,1208078770,.5,3755823610,1784024763,1227354066,413964596,551756604,3595118893,77017224e4,1922683583,32.2,25232457304,3978882667,3025263540,253.2,10.05309648,87.2,274.2,217.2,235.2,56.2,.1,2098670096,199.2,176.2,1808619629,99.2,72.2,214748364.75,1117625191,536870911,2988885568,3089486929,4045894191,2101838889,.8,3136932032,3893411017,4294967296,2204525068,120.2,54.2,86.2,181.2,.7,92.2,74.2,2509558263,1989928760,1994819738,1260296039,3658992856,67108864,124.2,53.2,315.2,98.2,2572407238,142.2,513064399,2.51327412,173.2,4219685625,205.2,111.2,263.2,2061280827,9007199254740992,2681159388,1436465747,2147483648,11.2,587680262337937,101.2,1739178148,275.2,1645538693,251.2,2389837486,.9,1581779349,27.2,233141588,73.2,68.2,2553377589,2142601349,.6,3377338871,20.2,3.5,31.2,2757903381,3359877005,64.2,.3,18.2,3154057163,2.75,1543387143,4251512597,144.2,3577095634,81.2,9007199254740991,168.2,90.2,180.2,-1022,7.5398223600000005,187.2,1170484879,40.2,729898481,150.2,698577482,.4,36.2,126.2,112.2,3428940297,1790897211,79.2,.2,226.2,3052398875,47.2,202.2,18446744073709550000,221.2,83.2,1394003420,63.2,65.2,12.5663706,30258536,3199712900,4294967295,131.2,2891835496,3161062346,994811012]
let a2 = [3925617125,3831481864,7.5398223600000005,2147483648,105.2,3483020771,257.2,700325087,3597718685,234.2,2.75,1593819622,77017224e4,214.2,1962125176,1341355713,285.2,257348550135456.88,56.2,652602638,305.2,-1074,37981639,2797994507,2327754528,215.2,313.2,183.2,127348806,3735928559,2493798181,3415007224,4123704388,186.2,67108864,4270918752,303.2,174.2,.8,197.2,86.2,354444925,124.2,314.2,8250975781619720,1032565742,129.2,3899853192,204.2,3891458175,904593441,1782646906,3571961741,562000090,1599290995,.3,3174414665,2715624418,4219212511,.2,9.2,1917852439,3392112044,224.2,2969522137,0x1FFFFFFFFFFFFF,187.2,1118555805,2314810521,45.2,536870911,1019568595,268.2,372127466,1634207943,81.2,10.05309648,526637713,2284420571,14.2,5.02654824,219.2,954360635,18.2,2335168260,2456591959,12.5663706,83.2,.7,4294967295,2401080389,.5,1608328890,.1,805964242,54.2,1823562682,26008275e2,99.2,90.2,2200990591,123.2,2.51327412,18446744073709550000,6.2831853,36.2,.6,101.2,.4,108.2,3022393742,3978105873,2389837486,248.2,92.2,4095375607,51735352,2788561104,201.2,1681420124,2083754074,4148702933,2786894866,2496131316,0x20000000000000,63.2,1591233820,-1022,3550922103,85.2,4294967296,3582426871,72.2,1687216746,3.5,.9,116.2,741996029,1968392575,27.2];
console.log(a2[92])
console.log(a.indexOf(587680262337937))
// 25 136 95 55
let s1 = [1227354066, -698577482,
-1739178148, 2101838889];
let s2 = 587680262337937; // 93
let s1 = [583131957, -274624804,
169308444, -616533751];
let s2 = 2759022886116824; // 93
let roundcount = parseInt(inp.length / 64) + 1;
let res = encryp(key, inp, iv1, iv2, s1, s2, roundcount);
console.log(res + '')
......
......@@ -764,6 +764,8 @@ if __name__ == '__main__':
data = 'nQJQ48yhEvZypKSQxdEs=2HjhahW3V-DPcKRfty0gBBqIQM7U5i8CcVq1SrvDvZkEQ3fs3ojevO2q2PSjQ_usjApwOrsf5G3DY57ptXgelcZ1Af8d0op8OQJqF9tJFxDU-zrIiLa=szH=0Dv8BgUG4viBwJulRYM=FE=p7P5XY8p_FSZKT5zPNn4JkY_5RlwR8Dk5F2U_Puj397s0Qw5d0KEWqDj-3oyJB7fSpRKV9TD650Mbg8NwpYVXEHdVbUJKU=BRyBSYsWdAITI_82WToIpHOEzp_bYr5ZcA-WLqKkDoLO9a0OYDNUOOWU8gD6f0K8zNos38un5=eXGqiwi=znpE6VUiLjRyhtIWqZlkVDsgVt2SsRDFARWFqGR639CNC3xg9ibttEdfDd-Enq-Esqc9rerH1nhf0E-2I7yQ_u_hZxsCbY5CUo3pT5BQcpyFCdNiO7UGqld_6Mrsxee02qcFFTyM_=tx=SSUpf-2KMJ-C-ayEHWGRRxIzq3JVUBb=ISsyapwMzOp42WF6yAYZntDRVaRo54=lKiplOzNwrdGqefwMKF_eWURSpXeZERe0Fw8zlk1ktaSL2c8NLFeyzeV_iBK3hsBWDGxRH4LNGQML2rxRJaI0HvzHzP6QP7xMh0s0KF3N50ckePf2lSG7EnYaW_scNlNxx2vKDD2SYsMV04oxtehcQspQc32MpDwjprM2Fh-gvww7HL6b=5-8OwXVgigSUZRNWs61SaIl8w1N32nkdF6XvsLuvOTRJVypoWj2QSAJnIEqXCvaKdyJIiMIF9I98F9jCp3y1RPsKs3Iegqjxd5T3eSYo0NsWLotCsPC8PTzFeXE-sRE2H4lLz3MBAehS-cHcQ87E7DoCvcjvrqDeXyJJsjEHIgVJxb52SrGB-B5y=eMz9XA=arDYyFqB2l08psSl8u1D65D=3jvCQzkN6EEx8qF4c4WoKtiHuT_E0LFGMg_Ve0BEq9iKUNybf2462ulodtoqPIT3K0SOfVOKWBxN6gploTEgxniP7ziMcfMZy=N4aEtfXR_3cZOWtiJnMpteOigfcjldM_kVFjZhD5ue-8zY=VC50YoUpL_sNb0u6faEeDPt1uJh0vVo_Gh8LIDieDuyUkHl34PFNqCptHUSwAujQYjTw3Scj0fwwRzX6X1xgBCeNracI4VroXpLRB=BhJGcjQr0NVAZwlkRd4AHNdhte8f-5ZlpqHuhtUsNF-O4ILzBb6iFcxeLTGY9cYXWYgJkXc8=Io6n-aRxdGui=DbaVSIiX7eWQV7Ftbrv_dy7b6E1zVajqtS0W=UMgBPB6r3tuj-cNc8xRFLC-wBAfeDWJwAGUW0NkfHXMyclCFnB96cLP6TJvv-tC=BGUgw99Lr_WUsW0xJOsg2JfRAk5NzchX8geo2J-Y2DqCENQ68EgUxziGaevOQUv2b1I==XhIb4MOf5pNfSdKbCDTwsG=hBEXMoebK=oZWKJt-2VHGyhz74d9MqOh71Ag7oKZTYkzMPR6bO--KhshkZucfiWSl316aRZnB00v7Lx-GvWcOULPo8T0pYBCR7JzN_ohWAIOMZeOrQsv0M141xb-kPtH4eTMvreWQK5ADn_DjuagN2LCGDQ468FDqz7iiKli4c6bW4jZ7Kcc7R4GuQO-o=3NHX0fZOapYJoUiAS9i10XiXFFe_7OCDHYF-UDl8hoIyiEk8EwOT3VKHa7L7=VW7EyLiwol7I8bv3L9wARlJBtIGK_xRxr1W76G2CvxG2wV2XDZr5_OxWTSHouXPcsKqWJv4C0IocSEjA8L4DEypzCRqZHUNZsY6y3GUDEdF7M5bSNso21yuwrbQ9BOCMXGtOLudkLgsiscpZEvOp-NdN5CeZBIZniuTf3DAN9vi7bSNGZ6R562Vn96KUvnkQc5HT7NJ6yEL86ZRK_RD9x2IvQOj95j69IUwJjeIGswDpGsz2=Gcvr9Wu_kxDuNfMK8a_ufE5K7zPGgqdPwcs9aBdpwez2foVipDnul=gfhuTb53QnuDWwTx-gu=iwuevDdKS0YHUENM_bD6Izc7841fVk1GKnEe6MwrMU1QkKii0b4qYQAT9--L1PTbFCivWqqsMUPKw9jdEpk69paO-_cKZallU8UDi2vCC-CyDNpQj4vBOYyH0COLWCwOezKyb7GXHTMk3=bHZThTyIJYcw6GS7qCXtFMXMvcckrxu4IxkGbVeufkI9a-A=bL9KsLOlD9FuludBEUbpTyFgZoF1DUGLPAFa-_WiBpTO97OSG-LSSTfktCzHoKb-k6xA0rKOuOVb2xt6uVQvjG5ODOt16GMESuE9JNh8YziPjX44nEUhhUU9VPJF-5Ukn5rgEelretaRYF1WyCk=VRMVFPOFDheU_CMegHdFotOREyBX8NcJERWfR=vvOUujqTlPBhIRrROJiVH1UlshFZrL8fxFdcvLvctw-wZjstppfqCy7LjQ8e9ASd9VFX5Fdt239t=1sTEJ0c1d7RMiEE750SC-q_BQ4x81xM9q72BvyKel6WthTMGMvWM_lunsUvbNIXjZUU4heGxUKi7=SvLlJryrKfka8U1KuNpt1DurHlaDgK3BE56Tzsur=Njb5Wn1SdJ6CATKg=70S0KB2qHEaiSkMXfaRgJT1ZQH5C_lyCtzWlcZvvVDOUCpj9duWZcp1I7IXWhR1Eodd1rsT13IFpYtHdOQfNEE6oS5hOJSZN4UDjdWZrxaGJQ5ICKzyZGOOcLn2PWLi2eB-UUDcGYris4FOJv0t83egBYUQfnrC444rLMZ057NeIb3GlTl6RZ1BYXFJnYP-ABD=4PY1XgSojPF5nbeUyMTvDu1=PGUcaAfkwXtXnHrR6q1Y2kbKJaXu6ZvGMjBnNf-Q5UAw9lOwuZOoEvMDZhI7O6SNxihSbqkA3XobknVaKttcyTBTOUV75Wy=fejnSocwrvj5N0T9NLFQxb=uAPZA8M14FewkARsa7dzryNqp9W-hEY=yDBCnv0ls=jA4BC0ldUNsyN2=cAL5zq9OIl54q7wI8NWLOSY7vZSTCUSgcgVghDzy1_LJoLSzJjVCJo9Y=f2IiZ4SAAqruJhHeeR9uJVN6D99JH2AMxHHhKpOy4KZPaBBOMXKMEZzT2uTVQB5L4a0PXPbAj5rftfPjLX9GyRun0d2-IPSkf0A6rAF_DV_6CIvcjAVs8vZZHdNyuVudKbFLZqzhgJBXbckVuevVy=0p47HeUcwQT-IttjJP3cNd4v4pJPbADc_BtllcBHEIwGLLi8hiOqAGPbjEtGVOTwynhlvX2LTrkMcwGdxsJ=YaAtyfSiMKonAosXLtzLAMh-f2wAss33tbQ_EYVLhrERNCYxjMXkfpOJejtM_i_C91c16RDRGjH9_DtT1fLC2VDbE3WB6OCNB4uoMo=MxCOyn2iiTXkjEw2NS9UXM9sjtQqLd7KqsOsTYvqAFwx=47OQQNE2v3vXWRupzw31fyAFQeYA3AKrC9V0Ze-sNs7vzlyQLX7stQAhnLhdM04ajf216fwsAFRWIqLCAPEoCyXbTEqW6-sqFHo3ixV0VqwfTweU=Q=85PZqvlI=IZG_ZFTjPggjkOXaI=kbS4_rlUH-7vSsZ_94tAjl15JjVzf-=LuyY1AcTx-EABj4PbfzMKuT2tzgnJXNSC1rRwldLkBYTXxqLXK=zE29590GFhu8uTlcChywP5KZk=bKOsRgws0Rf3gPpK9zE8lc8YbVebJHkj7QEJqzfiPMr6DkBEJk07OgjqPSCI3-P2Fu6e8KhR=nXz0=zAqnO9w==dRijyxs1MPMNlJdRKC-P=PGqIY5Li4a_5bpuUda9WCwtB84xDEfejRtbnpnIlA9_zSZeOZhb_Zg3BcBNycIdOgZdQaaZ5zovQjzl2VpjiUsQTp5VGXnPoySPzRxS46JFLOo5tf0IsvgCEWEL0bU61UM412c22NPprBqB78row1pT4vrXKvvDTXp9wuu4edi2eFsfXzpOdFk6=8aC2yv_j_ZsjYgc_Ghj-3DUbhKCnCeUZNoAq8su0h2VaqggPoVOTfPq5lTwrIEUp3nJQZLTZLxF_hde01L=1ZSBw3_7ugcpG7_CA7YeG78M17XI7fgRJunfo5f6I6aHOYZkHsalBkWOts-iKiE=yjBtdBa7_rz=Fi63lz3VLr6LRTRJM25PZuigiYD7eY52AQsw3_fsFl1ehUx8KedlaigHXyuhu05RY=wVUCw2g07X4G4wxQssXGi7hIJ-wgsHYUFohiCPs4QbkwYRkTXPHxwx6KhxZM=GKO2B7V7LOWcECCGs8MOnGJi9MRV_kZDv2agrPT9tpAQfB-XzKXZljXsKCDfYSGTeW9NZZbTwSKVJ6GVIuS57UiEyEIzGB=Pg53hfkKErzo-rBV6YY7VBL1U=tPJCpHdx2F1tca_sk93olxbBN2IPXbWDK1uTs=v2-Z4t-bIo5Y2RlQ=X_E182lhMuZpZ72VvbsQZIl46Ca67hGHopdJ67EVbRTiBpEP8NG4VNiP4zcCuJE44LcbsSAfJMvPcBYpZk3dubr_DCkE54WN1=JAr5RbXRQ2S_hJO=PVWpJD9tww8Jy2aF1Fv84sQXI4kFbCsc422A-5Mn93SAHVS-21G4D5lsfNbuHva1EfsNvtbtlgn7BYfg3=qHKwjAXh_ld97=QQZz6C0fkeHFDFJl0A50W3Ad9vk2uMA8xQhNMTxRUc7HhwBfGkVipBSIAw7Ldf4IQVt_6BuKf7xtesCS9B=c2h0xP1j=YbjQ9-0L9-vZQR2_4tP-lLEGDts0ol02Fu1ONSOA4piMQdol3bChLXJW4LXE4C7vVMJSfTXjIP0HzhrTarATgZKGrfOCnN_5fDOEREuOw3qlpHBjTgRJMbIe086FC-lg6bsRYFXq26_O92zR7HPiwq2z13-k9j908574GAc3sKf7AnU6u-LNU_XifBYiMO5TD9V1E=JgipVtUxBzuSURqkKJpd-27AfCCICrTTapo-KRagG9N3U8UAcCOwRh2M7GO3jBQWJUBXlU7TJsGFBJjB7v2l_1iOwos=UoCR7Nl4QC4epjfS_VqQN2GNRC4Iv1DcBCTpdnCaGL_7W4eHofGHZ2VpHfobv5MqEnro0cjeVW7USC6pvBilK4IfS3wBPZDxt4TFvnqnwFUTaTQN-zqnDeI'
data = 'SrtxqJDvc91Tf0F4W65a3jK4RHzi-7OJSncBAyy=D_U6FG69037ffGJKpc8lwpb2QEL05woWlCI7s_s6qgD0J5OHBMSlFfXACCEoXeEC=hb6khcfe1Tggak2nMsYpt0ZwtJg=Ww805NCYp_pObtSb1ko770MpSUPzQv_3kFcyzaJe97ufqnXdAFb=db9qjP0wg5WMA_GR5JVU-DF__WOZ_vgxA1hx-fXl7q9I7bWlASyN1BAssKVwH_89xx2jSTYLo2jA716-tjnXJngxdP8OQp2okyAJsBj_5VCYDaZxrr3rrkpMfZUYu1VYx3sWC=RVJIUdTh1g2cw_utdnBPLXWGv0_Md5NJqbiL=Y9F0zvX0ah-6qunxJrda4zORKEK=bCv6BwFv_OSx2TGKQaPFio6XHxXWQxv3aRT0LIXHXX3dd=Gp=Es5dPipDYHyKBuBxUJAhjtBSR9EtSR976eOMX9ioag9B48q20oSn76=ZUXaBtwCHbNsXqgGASbZUZvC4Ao23yXgZpChvr_uHSc3EcS2QnAoT3LJHKNkvF3WICdN0rn81lrZ8YxGfhnKz1gXkqalKdTHt88WuXFMw4TTNzTtn0iA-a5uiQXrc9ef_NWc5=KjFdrnw7uuRoJbZcX1XgjxA9DGuu_xcP9ZxoMXWYEvXpZE8adjBfZEDeHIYQpj06_fTrGSXV4kGF3ph23OgqNFEbw9aK8jYVeKKwy3r4AFbSUhSpk1CglMN8Z8iY7H5GIIF3QIAXkxvtFYrzSFeLLtqv1oSkHZvIW5MP0kDA8DnetitRHFn=J2YtSIMalYOF4GcvzI=qFZg1AZRe81ufZSUckELakxTILLa19P13Z8AOaovJ8o_ugZAkIj6eWS7949F4chV3Uw8sFiRrOQsRwE1RCencs7uFAhJ1TepaOkDgbw_UGY5k_2451Iyadcs=F4ZE6OXf-VB9wWZhxfA0r=puPw6jvIwntZhuAlupT3xM5Le=9GCI3varzZ3K06paLCW6rOgRvcuXBM6jVHGgGpJNysIEz7iEdjq7p4I7g2Ui_1CvIY5dLGozDJni3P397RUo44CzHntFjKbevPSkJswwXkexngkARJkHTIq5uwNqDvYqvsYXyR5VhGFrnL_4ugtcxoV-CepwJzC_9d9L8Q7HDiAVlnyXMufoeJ1KkNtFf4AJN7_NxHwkkHduZRa81X3tkuhD2YHriVxqYNqNtunPjJZUaF-iPYUlu1-GVXlFzs8YOKkMJyba5R960-PyyobT=1sx9O22U=zkv3K9Y5osAhai_GYAYNwweZ4-qraiJOLBV9MwQUSpEOt-492EGXnMt8go_6WZbabzKLAvrjMuaRvqHnqflYx5Id4vnQyvcEbtjX43nWWVP8ITZdMU9JoVVF139rIzMkKnfVTaJXWQf-k8vhIudOJHL_I25CTs8H1XYCBMKDzrwlSQrsR_S6hRCT9nBD7OkjiXOdYNtbF=W1lTEU6Q-=YxLIvlc7WfXzRfLW_LRexL1IprFUhf3-0PolgTGFJ5S_BihgAcQFrr9oFZJxFSHQQ0zMiMM-UBZvGaSDSCLtgVKSO1QTVb4jklIqn8gkhr7fMCe_K2ZkMpjSQOcMb34GMazzMZ5qC52RM60y5SM5ErEIgJaH-j2gDgQb-nQDSplSZfy'
data = 'RIuBo2j0IKDvxOzBtqqRnuxJ=e37luLwKoxe2U2CRRQy4ju1yEJs_POa8=tSBDWHoxiEX5zQ1Qv44BwO3HhnMsvlKgOqYSeM5U2PcV-gt7DcrW8SeJdlEDx6Wx=Y_xfuL=F=diD=LdSUpkl-V9eLhzvb0zVxdJzn3N44az9qSScMywurrKkhKNARLSI-HbFgPjchBb-iDR9OlvcuNK=sAblXytfCNBRTa2iLk8w3ED=aHcXGK7e6Sha1-2nZuerIhhSEJjJDE5rqNp4KsTB72T_ydS7NuTpzoqkZfDZazi7Y8J0-KT=hR_6Sg91r9uPKSTPhEt_6RPfR=lI2yrE9Hji-l=giSz8L5A_v2LEnx7tsoiYfcPYgWo22BShRWcUzK5v9cLiMh7WaSRUF9kIpqpWhuCqaMgKVZAawE7GV=M_ijzNXS-w2_UYFdWTK389U8K43=L-2tJyA50-5ZyHBiEEorDZWc8M18l-Rvi4bbN_RGi18kdkX8OyNW-BWNMwDGJ-TDGyqJ0oPtcA8zrG50lFGjyx2y4hR=5sfMBBIlZyZkh=F5wdbMU6rWur0eZYQIPcKWylu8JGedqCOK7wdcFFh-TKwxAYIwFDztY92EzxZ0oJ6oWnBjQJg3y33ypyTU8OqXCNnFJ0sLfZJiOYaXzTrVzCGVzBDVOWwZwVoyt9JdxqAz5=XP1SnnhAjEpObqW58a2IEDuAdhLi=IhA7NF0gB1dz8Nq27BT4zVyR8R=S-PUbgAuJWpJ7-fSp9tUtjKxlOE4g4XaIX2hFPe-3kBk23bGxlckSoXullL_Z2fb2ozyacxXs8Mh6wI7_g50DK6sUg4HZ8ZXWRQrzYqEMwUDhSgDBvtQiYzvY4IOVpOSP9LlyidQohHdJEW=5La-Wq_z=vIWPG0=nGFNbLiqv0auJRL6bzF9AcalEzs689MVu4MewbxuRbFNO4OHYPjeY3AycGCk4AwITpdE4fuZO0YQoJFi-oqGqwQ2xg-t1z4ZHdSDerrRvKgqebLUH2tEqtWAIzZ1kA4=C7ocr21guwuF4aYRR_qU8FoRCIzAS_IL=5FXpil11SYbMPase3AD0LBQAA9hrhiLHV8ZcXNSqMbTX9lK7Ry2ycCO-jq376ZgyrUJIxZM=qYIaxACb64=AipLcIA-AYqzzcJdU2ey_NdE2MpdCeyxcEriNh4Sx7wDnkZJ78dL-0p-Vsl5uf582-jc=Ksf-yMPtVP3ZzH9DnIwW3MYjjTX-iw0xv=0FSenKvzWA8-WTRN8Qy4W6osq_RK0LnAZ3=V0WE=Wv=6CZ8LdpWfEbO_3F6o94FWwa0WzBJEiVHa=1a_sWCfXRFFPD9jaMfF3yvHFZbunyMxbrsZsa=Bf0Pdt2wBhfntkIJ3OGYI_lFUXcDKrNDCqrlncVIyVr5B2P8IHIpIceXF8vErI0rIdiOUjYBSNcqo=R953W_9tr01YLu6yrCbIE=xDg=rv3O64j6qtH1rkCI_l3wIfpIefLM-CK_OYc-jJ=AEI_HfTjxc1zERQtIwvWrioFIZ1rjjX5nOwXvRoEpUGDcPJNadwjvji4j8JFV=rPA2W7N7ITChZMFW-7Bgr-xZwjrT746U69xFQ1NV3yPUbuIOREctKxG=VH8qHh44G-O_nxVHlh5kDxRqBxCi8dgK--3zKK30_Tnp8RrCutaC60v53k9K-RItslO9R8tdI=tlu1hJT7ZouJJud8WkZZy6w4ANHQodZH1s0PlAlSPi3TgOnLlrDNHGkiQrpfPF2977qFlGP45LW7rr-JF0-18VsdpO7=avzRK1d8SpO3N4GkyrhrY5iRYQ9MXscoCQ9PN3ijOdHSri7x0FsOoGPFHJTftVIx78bYELdFW6-6CKLgBpdow4SqV8ys-EDaShTLjPJJA=LFd5RPSqIzyPiOp5bgPg8SXELT-TscXainMwiaCoK_fXhkVFdus9nWeyrAr2aniUDzQXUY=l7Dg7nwWBN8Fu46-i708sUF_ZknLPuww5QVnwFUcupLEHt6YuQbx_wo2aePADA21wpL5AU2nAvbVHhPGpGZ_vFychO=5GYvfr0IYsu3l1GRsYQc4S4W6iNwj=tHE-8IOH4tnu8S2EuH0nVsdnoQ6Hr1DfdJ5YtsAvt6QhYNF3ayJv4DB0gc50g6KvFODPSO306hRIt=WsWLPWjnVXanlrsCDqCasgNQzWgJodOn487lCIFUOB92YTf4S==tQsY9gBkNTWNi1gKjvKoXoOM_ySqojlGgfF2S0EWXNh9-0AoobGgOyhCgUaAcp-rtGATqElGbx=vD_xT=OItCZ6Gz976WSU6aXD1HWZXi=FqqnO0w7F4bRdHFIlNySi9g78pjSw832_9jGRV4hU4XWeH4C7vNX-ndrAIgEFeVfhfyXwk6NWUJFHoj3MwO38Mru7ge-q-njotXll5vgn_S7CtjzoJ5Y5X0CLUAP9zRF2Z6BcZGkAyfLMtMcitETbxc2NGx4p9ZodZvFw6wE9UVbUVBUX4RMEsj8XI=FOtMxBPKpcxx0A2UR_WktJUY1TS49lAuqJOG0NOdcNLnR1dhHOzbR4OCVxKyycqGE=tGu4f1oWEQO94UYLhWNcopLqrjqHiItiKKtP_B4M1kxHQ4NS9_uAr81VCXVw2YF8f=-iR_=y0lJfKBGkXupeX4XxQ7gRrZtiVxQOcksDifhcksz=pW_sxAy1MIQ9d7Jd75ftE=2vOvRFZcvYALu5HdJwf_TpQicVQ21yF5yBl5ysSSJ1oEKQ3ng0Cuogq_GiZsKkJkcIJsenQMKIO5N1uFvRA3Ne4XQ7FjisLjjepk_Z3La7FNIEnzWTJ10GvQDuH2FUQK_Hl_x2-wMLd9DFzoy0XvIT43CAlir8Pn0MgbC99Qg8CfMnk-ksCIoGUs=-U8J-S5bd4Rp2cYF71v4Hdq4qGz4E0YcXoiIqdM5OBXNRVDE31Hb2Dq2DeHf-YQzWIeBYeOAdkr_HKi35tlR_9NLGQMzY21JnrKZAWHvJiRR5f7QzlCQLneMfQiXDLKQW7it19dyP-aoEfYi0-ILFBC5c3wlFOLlVI1gSzp4qbvoPq_wFXrcxYE_iNolvujiAdZEvVQ-58Ja-ThUU9PuTeYx6AqD2=FclhFB=N6gzTCa8BG2NPfKddqESZMNCXqC2DnQskipoxc8MEzPRDM=IUZNjiFWL9Ea-CxHKL_K=44MdOIdTuOa4_hqyUjH8eeaP8a4yOO3bCuSS=wv9Fzwl=QJ=aP=jJydQSswO_x0W6RCSrLpjqulOeEwRcXKrskYJyCSqaXpNdBkN63LBNgj1jxHh8UZXWoAtngw4U=1Jj_zdZg8J=h7IiSeSEPv99dgnVPW_=ulW5Z9ZZhS9Wdw6AxlJCnhKuHlAcbDORQCtH4YRY5w45H8C6-3WFLlGNWJWHolQpS59AiUPig6q5uM4Gxjechl3sjHc1UHcnXt4Ko_kWNtEvjoifqrajAaUzrAwG89KivtBzpTu2aWvj3jjG4rIQrZiie3FlQx9c1Qc=r5bMEe5dO0OZhruC5==1UXZyOdaf3oZDMcLTRdAYd0D_T2pybZZ35AVgZrTRj=9NWO=Fp41neU9fpwjZM7kV_2E0a_SXysHcdiOy9GTd_BcdbqSctwUJ1J6VHHOT1JVx0wPUVVJT-MqS7Sep06UE7vjrQp9CRVwAE9wf472XU0UDdaPUSvT3j794c7aV9d5fFMkXWAS7y0VoBUV0Crhsc32VDbZ=sN9zUhqoZLNt_wpgidoLfZr_toqfGr2oS5YIa7UeDpUTjD3taoFbpJ4AiOZy-L7-KK2pYxInWpxw6ld3XTdkcRZ0hwkE_2_BuBd3GLUNgZ1DC54_urlBNlMGzhglLtzawA0E_573vfQDzI-CR_nJvG2GxZeNy2zt_WL-DCiL898vzr=MWNMt=3U0Usy0eE69GHLs=0tjdfeZg1NEgy_G0Y17gK7EigU-EhXLoKaLAS0I-kP0TTQO68gZeOtRKrGF8L57LB1CUckzhreR_W5KZU0N07aSqoiHB5M8A0QDEAJ0wSerBk03TCtWeaci=eEwavHFfOEE0yhYT-IvQn_9bEJUevYkX2PBrRH9wSW1rQDhRN01-xv1FTGUBY-XFz_WpnxTGuPqIjnBbw4H=_Hjke3KyphD4sXQv0hkNXG5Rg0xChHZ98H0-DkvcYwqriPlJe7qU-reLWoPRAwbZ7JTX-CciOuR9dYS7ijPy8Fxo9PGFfuObwBclyzE9CkqiDx6ctqjSNbU8QufpG9NPxDtnNh3DWvGVeGPKS877Z3H-G5S8pg19VLGTRQB960GUAGfEkcIh3qcRpExDnWQ49v7zrvSOu6RdCLNX107jP37uo08ZFyPvdvChZNcMOgp4oolKxgtZii4c6fjjwPGpLLk-DtLFPNeo4IaV6Yc1MWMhj0VrLrC7rY_rrEU8uGOf41JBNUs6gS24WSyqzA=SdaW'
data = 'mBs6jqn=3W8XJig52klUS77rEQo3lprB6hugdgjBWEj3Sbh0DYxooin5di593byOzxXm5ZwVVvj-hmtC96LsSKr7WhMacn9J8wJvldlT6dThu7hekDy36_eTqqXwQht6LHNvJIxQXvGWxWSdrtJQmP36ANnnltIV4JvMO4Qp=9FzaSn=YGUNGUJeYDb58LSdK2KaaOkcPkBU8JYNu7qk9MUK5L0zjZjAFCkse_flm63Gpr9FIywNttapYhjGOnzgZEiVyzM11gIhVZO4crs4VF9MFuGD8B9-GKliAaQHEs6t527rn_lxY3d0UTvL6023_pQx62t1sY-CIvYKIQZxX6GYal3TiKyXyO_4LgZPY9-xT=u1TYxItVJ9h8MNwVtSpbwtdUk4PBrEvIskw=cFU9rKVrAXojCVUH_Nb7MfJ8YMjASFPklDuZ0w2Wv-3MCl6-ipSVPXA1SUnYfgPGEW3o024nwE-nPUljHxuNPZ4Wu2d94=BmyTiHQDt5G7gIKGCikqjeFmUgF41EewWDcrywofXXVMCiMffygU8l5g8B2v15I87x41iFyD-IvvAKgbpEwVtu72bCjVa4ASlHq21NQuannyxHYgA1KrznPhv4zoO8Vq3Dat74zZ_DKErxG8QDfOFuTYI79NIM699kfwQo=qS8mhS2BJfJN0X6T-05CJhl6SIhwhVLVp3ZYwrE8qdYiuz7_A=s1EkdBVQ4X26WUC-9EUZuoWp6fW_072fGwvTWOW7oTNgSAhaK9=b9MHt_gCF6NbYS_jV7GByys=VvtbLg=z=NZGHaMvVDPAZ=UhjO=LjlCUjWLZN1N6YA8yPlZcWMzPaLhbgt2a5f-i-InKj-uwaOYx2HezziUnt51pPbvAKkzM9Wr_yio7G7bwHjQ_4YMOwjmVb5d_LtCAPLzbd-zO9mbgz6L-Xp5DMZxn76uvgSIDVkmNIlKTqkqDJcn27ZBA8hflqsX8BqEUCCNCkHnoyeX7JZ7v8fTrMH-SGXsMdi9z9JYcOQV8NqVBJSaDJpBzO0TbPG0V4PqCEtD0kLvLe3g9OpH-3e3vYDT5oWrHvpj3O-V2aq2HQgFA9Puc4HlN54F=v5oMlJE31CKzviPfnwXEC2hgyDQ_6=cef=VCTeBf1XPpOqS8JBXXSMrdGvzEhn5rd9hP5MaZfY8zV3-zOZoXTiNinuaCPGQPFY=O6zrSsegDPqOff3LGZqAA4ni9a8wjZ3kspHEDa7vmXZF=bU34mTmChA1oBMuA781gz7clB=wnmOx0=kT=ahr3DOZiaA7tryX76dakDY=OyiqQ3LaYWiJxoo2wE9Vwg54AL4OTgMYYsyqddVTXQsu1c4nvzBkjsD5DetpV4rLr-zAnqW9O=DX1=-LJDkJYgknZgG3Ub-AFoC_AManyoviawzU-gEnKd3SYua-nX_AZfkAuMWklKhuxu1HmhufHcSHdrLTH_GT5FgBvAbjj6L-BJUGovkDjbsPuIjxvxHZQ0q71oyIr0LXxWB2xWqm9G-Bf7y4LLOrMrG2QWNLNUpgyyt2iIShEnxAmxIxlGzPiK0KAZm-7csgumKgxUkO7--oFd3V7AbEhgo7EHTOxI7Eb9AbXK1v2XCFAgBycGOABS4IYpvzXfPwMBnJHsJXMn_Caart4slo-qe-jPLeT80HIdKCjbVWszxv8tnTS=e0-kOdMiDWzIihir4JzIZI4EM4DOlKSsJwrbHl96sDKVeDE8-y4uEibeAGty8d=k6_zPVi1NLd2calFQQLA7AY0Z3WWpv-v8erk7nHSvms0wJjxu=0UniTyCzCNvCDtmzSgBmDC0Nb=Wh5ynb_4Z0i3p6HMnbXKAP1hJOh5dMIzyjnJqBsQu44EspK8Z-ghmomAamWT1y5ugyK7m_8GXK7_8-EmvZdFQP0zH_E8YKMe18SWljdkvJC6AG3GQZ5vVfINJY0uE05iyGMvVDMn52j0J5cOzKIKHEVSTGwqsl6YWy5ptwokeIq_L3ci7Yark1vHXSDbeQl_nn8xcrX717sbIE0hZwZmmnKWCO_QUmm-IqVnXMbW5DSArUkxYS-opwcAMWvT79XgAGsBDShmt_k_opcg0x8owCSrVvZTrTXcoaXCekAjKtpGsbdYS8sVOOQT0oArgtFE7k_NuqGQqoonCBnPqvxfb6J_yyOgfEdIBbSrjAzHt6y-Quy71UvgV4eSGMw2LCHU2xOS5hv2jvDjkwqZw9oxe=l4rpBsjYAJ_GZc9M4OXWwZrZICNL_S45Z4afo-nTiOiJp_Pmr9QKSYc4NeUsnfwi9zc4vr_MsTnCehr9bQglAMzaTM=0PbxIbblJMdjKQI0=8E0TeCh3eymk31wx=969Wo3W5llt-YMAWbYStsuPTc77tTm15rIBbTnsbEwxLgq13rjUE6sMKfOX9ETrUL9oYn3ZVimTVbjbd4FSMcuClZipYyeVTLdn5lKyU_eHac07d6TXynE7m4Y7akBGDtuXlcynve4X7ZEefu_gjXfugPV0kqotM5hzFMr8hA=E=CGCOJTxwISczzCUirhn6zS07E6FpV4Nq3yG4JZPskMkFEbMcqP3ci-arvL0xCWs9UN74G9VYonenCeWJzzhdHhvBzAFJ02o0x=ufC1Nun7YEbqlv=CQVPfm-TEx2i4b5jBNwzYpN_mDr7B4MUCK6zpl3ZOcZSJGCThed47AUbbKHAAccJBCdascjJcVggsKNfyHQvsmUEIWdFaH4MWGBGUdIuuNV-qAfQk8Z5VDqQVf49mtZdNSqrO8Nm2EGfqWQX-wzJcHJ9KDWv8FsmPenkq_vhtQvHOVgiac07ZtxhoTsvyzxk8L5n9qTIud1-74bdAWKL2chHcT4sYAvY0nPDi1H7qwv3MYAskdMk0myXSdqumtlfTpuGe9TatSkoDTiJSrSICQTeBg2B=GuQckLpuhCVZa60dXX9BpD5rxFZWFBDc5njHK9doQ23KcD2gEAu6nLEJ=rx7U0903q21E1KvKplWDPd_qDzanjJ_s96otzypZxNK2gMVUrL7=EbG2CUm9Eu1gJuF0KfwlIDmUhK0vzUuP1649zxlocczD46B_3uUWMr7dHmomWId_e_oHD5=BKhD17423_9szsOPuStCNcHxbIWW4tlaV0wpT1aVmv4SNkaTUQjH1IYMx1vHKGUYZXEdfTi6F7QrGl0s5w3WUwax56JXys8DHdfKmtEwb0JkowqjNv06p1NSW0GeYz5vfiikzeNw7UIJr2-phE-ZOj828iDMUEF=YlvSfj6VF9HEkVXhe_dLmIZoi0=7Lrvwg3jyajBsHtFEZ9Y8qcKL3c-joZyBcoQyfQmPHZMvGEy6QrrLqnmubO_-BtCcbA=HJQk6EtCUK5YFBE7gI6E413HluVuxABt4EDiZu_7TBq4G6jY8xzIOBloYrFnF=ZCKP_fGyiB88Jz9HzI7sFWd9849odvA0XoGqbbzN7eE46G19qhY0FnDwq-TgUEZh_cD4wo0=r40MgDtf'
data = 'Vr6So6e2EM21aw1m9J1fmtLYX3zM_QpjDyz8SGMAn1z35Yu=f8CUqoO0ilcSPa-admcZv_7Ij7WNxYqM9L4rk_4AK7zgWPCsGefmLLa51N03_7tO_LqXDiPKnOqZwTTAXjLVVoAimJEVO3wPZNoG=pndL36Sj5oxwy7UkQqT5=h7n1_Jl_jI1vx4a1XGP-yodshukIp9PyEBrQr=to2zZswEX2lruYSjmbJvIx6QxhM3JJA0NIDz1LM1u6kk5VAzdksbKZf2dk7q=d0IwpcUpDyeXSva-yqZ0GtnLcuedM7JLTdzucPZ1=VH=v9owcA4C_BclBWAcQ=BIhgcFQ5fNHemY4NJgbV_O23CuPkzzFrl-cn5mPUb7Opq4vGSrg8fthpXg3c_gqUFPaMbQm0fC33zYi4JHP-1UgDmeqsHMa6T2zX5towp7eXMtkM1Nq8g7j1=O=oQC4nwtGKzs5jHfa3PYe7QVqHBseVmdc5F3yqvn80MiA_x=SjJrJZld1I-y255sW5cuIDVAppmPXde-3QWY67pBSx_ObWWLqL0NHkJ-zr7MffPbq2QX4=mpyHmXr_Qpj_dpdmJHEK2zwnJkYsxmuCyWZSCOb8jLrJ8KIp7jjbTLSqxlrfSH1BNVnUtTvyNsnL1kENt5c2teAs1rBLzatoosEuDQMcjxZfSqppGuMQeGOX-6v_PdVISGNeO-ca-gahvtX9GSuiHdBmE0r9_iY0st91cLEZEsQEzviudhuvE=9vGwBBhPzHJ_7z=Yr-o8DSqmZZCuejadXpLFpcDVcTUFfGCx2keh=aVF27tmZLckeS2C=GDoxcr29VGL7PH8=l5_Sg=Z832pIOICxqLwpIX36mNFxC1I8dCl-UxPMLlIhEf2H_KzGv-vez232olHQEwYj4NpN74yH0F-HBxBKF2Ggn1=DcAbZMGZsWjVAOI9aqzOwrhbpx=Y84cqFSY2hCpvKA6sdk70iWctHWvNLp-VBpn_tQu35VS4t-Lz9xfJ35xfku57JzJHPexLgp3C860Jg4JGw4SFlnNIjKdlWrrtjLE4yj2wwPe146-F-9iz2UH6I=KzkPq0rbDe1P8h-xgKS-_hQxxAWC9feQ2PxQs9OYonp2BvTkO5C_s=4vD2SmseYiqSBIMMoU6GoXNT2WgWo-dFI9aON5Q7Ul0IyTHMCsKoIho_dPvK6f32WaAPs31qxVnD=rIP3Zabe9ogjfGdxUfXJdo8jP8h0=YlTi=s5ANQ76xivVpKOHfluJkBENi_HCXOcDwUhVFVYuxe20NhF8ucuQazmKe2u63PLiJvW=Vqq5bWyM=kGQP4tfNTseMwxgrPS_dm=bVXTko-P6-xdC3d7kf6q6gBxE3rlWArTK657Y3ByLcCfEhx_5Q-n49MAZ-V5b-PtNZxqe2xo=QkUoxm-KroIeGp=_GkGwCCNWlZQff_rDAOFeKKYVaJ3auC1UQIy_LcyJWv3eL7DF39gd4mtjkrcySyAbaBvBIHiJPbXhfI2uZVArPE2enpZo8wNS4n-hMCAWUEjXB9dh2yuAWzJd_Qlu5GooQqfnTo0c45fng3VyWa=cILJvCzpwfbM0FfsGibyC4KA8CQHKFH_Y8VpCNHW61uqF3eoHTN_96b1-ZtcwjbBWGHkO3BeeL_-cBhP-50jTLHHFbkXM2APSd7gMs__IdF=2WcqxzqXNK0n8pVeB7LzkAL6bF1Z7Drw7urdvjYY22soyqhnU24zVIqyCn_ELWLYm9gYkwOfesYxnXq0T_BJ=YvWXL_K8H3Uazn8B5HwukmnWvzB78YNj4EAa4kGDKyTMBDjTHuW6voQAxaFN_yrmsIiz13Yx0PMwszw-yGsTyYYfjUIGhkVgwJiyBGsbGT-Bf5J0aXwmXc68ohjgojVSdoCrAAJh5bx1tgUFQ1D4JqEkGzhM8oInF8osIcPLr5Em=5ZzWfBNnojlE7Ed0Fp5rO9JTrcyaH3GkN4v5C95l_citr2Y5X1msJZCrEyWB_8uM51Fhlyk6E=uHUzuzIjefDv4LDD6CvSbTHcMD50NzMW-PEDJElcaFCJ-OY2fQiIwX5yGJLNuT0nTx7bO=lrnpIvzgf-rJs2H5x8n8APDKkYvitVmMHyVeeFCSP90I7EQnmuFvE0PYlsnFByKoT9zA_Jr_FBFOASaJwKs2MGYW7OvXIue=u3FXOanmmPIqZniMEo=Nj1pT1x6TN6MVhZLQ=UxFm0BSxaWllqG9LC=1uOe-LBp0b0S8YqxK7TWiTYSZw9iFpiVFa=89f4nHv_cpFu-yE7hYlQ0MVn5Pdsm19LtmgaafLCbQ=FCkf0LPZZT7s41okXY-8XGSpyD8T8lVViPQMA2S1s_3TvVXJMC-18xhmp10daqcy0ujEF6XNLsmPf2u3doyAdX-ig_hUAkKJ_OJ6WCk2ZV2zSjT3o=SHEWW6Y3yKNJkX9Sb820LS15ZNttN3otG4uqeegL57xdyzBpygGr1iVs_2BxvSSoZxiIbabPGn3BCaPGFQT_h5arfOAY_pjKGsPLNUZmlP2kWiUE5_AS=58EGoUeX09i=voIjoyPq46IoFw6e09qWviA9_L0ulCchjZNgDDKAnml73Dz4i8esZIh7q2Hdr=-LOFEQqVfv08Hmb9QSP_5tMDWtCr6ni8MnHGj4qs5qGb_O92TGUKwpDDzYdtszCOU-2FC-wTwIXlfqoEcuwWSqENTpZw9-=xMzGITgHs4v69FX9vqs=6VqbGMUmN6yCr79l2fWsVcSWUNmqwalmL_WnMUxWa5idnxjm9FQJqWoz1jV=_IUjm67Qf25BdO2LIrNnPECVEDeUpXsgsslIawQjPz1dd9dFGpGTCuaK_PptTo2bW8lsOuv9oCINm1fS-qYEh2nU4WL8pTJyoFPUCj4GmPW9mO=x_-=mXzH0oYzHD2GC=Z7QGU1Iqxyc1NC2aUWnSMLaqnKGA53E2LcEZ8bBGhpnpBYi_l8r3ZQyCwIUD6tnLbwGcAPaWWGk9UkZh9feTTgJ5AguZVffr22SI6F7=80-DHqIh=x2phhYMk8H3bMdfMyDJGsFC_HLJ99cr-XxbukIf4KyG=TOvccPvKaBxk8AIf-wMiWQqW-iFeDYAssy5N7vUGLvUNtMMidiYuxtIIiVHvvJjdrk3KV2w83pJ=7CU=krwta26eseyVK2mNsvC-Qx7KkWnUzjXBqG9xvlYK4WJ5UmXMdd7JYq1fiT2iuwDJBM7J0X-cYz9iCTn51mYMtFili4XJaHtMGNHgBeO8IDlnNevAy9YlmUT2K=dyyoAI7DobXYQvPbmQgnWt_rUYnhWp3nIhn3JLj1XhNXeKJeE=5SeiHBDCChv6dqn2IhVq2A=GCqvci3HDTgFNYagfkKLqTV3rfS3GMeCmscd40hCIHVHUPX7vArYWhohAgqfonB_qWs8I3CFgZMf7K0ZD=E7KS9et9Q2WO7jrX6CVJUBLSoJUzpOdQ4BUH8OEn_cQH2YbPwautChtTZ8njqQay550__tlIscpwF5i4Mdgv9A2qB-VhnxM67opl9XIwmjQqWdV1pfZXCe5rNc8ZmifMPKAGucpG1s2lgnL_8Md9oalWpaP=ZVcYtGuBT1jBQPlsmpBQmQI-F5vqWUKdfB6ZwSuI_mOiNpCr48uSuXghEpO69bKo1XZLb2F-fbYH03LV0KPt1r=UVFrK3Cydn52NGlH66om-ZNx=9-mOXkms=W_b6aFMANaBdapFxHLaNo8kVEGZl0Pyq77yuLM5QfbA8niAt9EytEx58XzPEP3Y7tcwVA-BPb8BS0o9gCt7XfOrmCOyMMg5-QQskXazCZZXd87=wFBulFOJshU2xQm0too5JefZwgE3bC0vl1uNYVxFAg-O4Ny=aAqnGTL8IxKeB0QA-6JePDkhBpSlzmkCQoFYGPsYFISpm=fj8_cSnZhI90TZDlNE18P1szfVuwONFMqHU-ZP2LsYD4zppNg3h-pFhFMOefc6FDauu1QFyVZXfoeTYlclqHbywwcE-5KbmogAIAZ6HNMF7uiv9C1VDkZVuzdGwwn3ew3vbcm4X9Oi0jYBAwWPKK4=ax77BFm5GLxVOCPscEKo7IUO6sHfDnZ8plHoW70E-mM=WnHnge6=CeB_6LK-t7=yxZZxYxb-ruJA9feyly8OTdMLoDOV8f6Dm-6DkCWkSc'
data = 'CphE9nIYNsbV8r2TwglSr7ONVBIxgh6T3NIw0-xxUolEogA9VV9nq113gEqYZ3Cno=cBwOmz_jQ4kCDbKMZGVGM1c4SMorn31kVZ4aSvGTVQlvUYfXvOkKGDZ__CjXwGgZcFPiVmU_peI7FsFWvobs2OYF1L=wDN3KiAb45z=309Eb1GaKsYfv4AUaWyZ54iNToM8Nlobb982g3quKp7m0jP7LA86-qJdz27Ek2xnpEHVnrCaaVghIY9u=GwvHK1TS10S5rj4qBqCjwmuElDfufWolLrCE2GT3pJDhc6xeZmmm6PUjowtMIGv1cbV=xuwwrP0E_XFzAmqqH-Fn41kbpwBxax3cn-jqWHX=AivaYP8I0Z-adKGetvlejDr29vsllod2KXl2s7eNSQkp9x7HgHCQmEWPsJAOO5J=khC9NOj74_bKkQki-tGSk14q2jkuTBDw8-ds4DTlij6wtiWdy0_f7sZtVzA_dE6XaS-ufHYJObK71vu1NTYTNev_I2=iD9XvI=nyk__LkZimmLo_DtzKkaL_J_EeZKcflnqjnG2=_t73owzPjX556o4se=JaMw2HcrsWlklAe2qokJP9vZbKMCLDUnOYI7S5ZIWLexXs-0kKfdb9c5yYIDr1SlkY-jPZV_lew7LW4-8NWo5PoT0EE6aJ8IGdKHozAN46EamEuxtXiwZJDc8sonxghTwudnmMrlVMqZno47x7-nbnaqjnC7-U9cO-pFId=InuLTkJ5hHw1j2EeBfZtZeWAHezMM=HmW3u7o3s2BF7nyeGY_DZ1MVHpIf8cnFaNdxGGwOqNOmeluI0_DrKEshWb2au5rNoHh4TGwAF2JTEL0PNahAqo-9BpUi9G_dx3n_cpJgk_E55w0D5d8bhSM_7m8geMu9loPnzWk2gQgd0Mr02DIpxCC0wPTq5Y-B86dd0jfagCGggmVjhZHFvqkqUdLUG9JESck3FYkDJIVt3ZQLrrM3CeG8rPN67BSGB95_txN-p=TFP57m816AVm0_qbr6li0XQ=tgPXqtNUUzDHp2Pg_KPqzs3skX7V9bExVVDhbJ0wVOjdcIgvT3fsizKhhPb6nE1F8OckxTjU2Ik3Wym3OC3fPYbn3tuWiqPi1mMHoGNv4BF6FJewhv593lWsYZEtw42gSMn=MFJ=8meXlSY7bYqP1rLHlfwOQWhG9wn-x=Zyt1NrBnGhBhmAlTxOLa3v7UM1raVSgVbFTDMneQldX-XICw_LGEUk5h22sg-8W0cTIqmvhjkq7AIoPQ73TlEH80lYfmjXZzit55v9x_IieZV93ZEG78EyV4bflemYDI1xSuspt51PvXm4qBTl2bKUyBovuDi3xJVccdG0TPCs=ge4qQEl2e949t9nKC1CXSr9wKxoiF-LdeE1qPBLZkz5fhGGL0wuWawVS71Hi_yLWXGJ1noVGUChQO==hZgIddNGYqDm494h9xw8m7so0B2uYiBSecqNV9NAZ4mxP83C2ZOzM1pJMcxh_UW0ZElcAcD7-uD_HzE4UtvWx5-dB2Q2NT1z=O8CVhfA2ULVImNbiGezhxfi5kWThZw0Ld0_xGA7BLfmGpJi8Z5DHvWLP8GTHB_X5jNmT4NCgNvu64yzl18wlOxYsM5EfH5Eez-78snxMJ=e1-pEzJuEqAnFH2juNqWdKL3AClPApVj04G1bSatCGyvJCeJ7yHL4fwc_hYyy_mjH0Dp6HGc_uU5kH4hNDkr2cboJpdgxDjH2T-D3rdyxsFyBiniKdXs2rw_gBq4AtwKgBSQlEZkeJYdybYf2dwdh5b_jyyFM76yd=wXxE5J5-C5g29IryuFdUlIBFcmK5Mv4CGa_N2im=YjcBPJVWZFyIZ7E=Q-Ebu51S=KDIKSxhrEQ0zfHceNVdhm_DlpGaGUsTHKQ=nauHQYiJ1sAo=IxfCV31wiCLwIfADmWOpivJ4=lOHmPi77xdKgO8oQKUkMrx03ieOqHLGFjATt8oP6lM8M_i7x-FebEM0fxM53GImqdWvW_H-h3AjganWj69p1BpU41HY15tGtfiPfmxCiuWsh7z3FZUjoljEFNDKfuBkNvonoWN6AkgmGVbWoaEO9Mw3bu30Quo-_KSND0gGac9w6Ti-5tPxI-im4ULcqt4msPjLCTutrKvcEbtjm5YvnjHeS9w2xHGdoab8PgSru3qXl6hE-o922Be-6ovSqMwX2422ZbjGWDhucH7hbnFUTA-WBSBTkZUuF2m-5tamcA=-q=MuuUeeEl68JPczVTfN3e1GYtaTHBLyqN3FQ-NckrczcgZWPNj8Tqif6-zAU99NLhVP--2WwPXVZAvF39uMG3LeJuqjvtxfsPfkydLh75FEQLGGgyPVLJKx1hdA65Fz2o3qxJNsHHlVgOqKidTFowWek_W-Xs4jLnz66dTYBej-zTBmF0l0M9aSE7ZgWr8aK4VA1hmfwCZzSaj2_yNNSqkfGgx9dt3Fi_JSdPdwcsxn-NctDEnroDwWPIu-XF9ZsaOrvdXl1PkJlpjdMafPWfTq7Gby2vS-jJ8wWp0nnE0vNhAMUsv0wNSWq7AZVG1x1CN6LaIJtQfAMFNjKKSB0Tu-u1KNjc6_aZL0kaJErVVh8xmPhlAK6p9yoSnjdd7JSkBHUn_Yb2drxTv3nCxW=1pZyTC8ToGJOk6hmahUzlDrzi-VYdT0o7PH_SXMvJ1u3q_bUmO33Bc9x5ECfM1kjFcBgnZFE70fWNLlPwuEpblXyahzaHtF465-3LF8PGqGx3165swlp03zgGVniyp-pT70vGOO5Z-dL3nAwP1kPZhDsCY1INIUMHrzFAQkbtf5Aymo3qB=4kfn8f0lZmkjfnhuMm6z8s7QAHDZhz7C_d0CJqkt6Ej3G5FWJ_asaskwekwbQIe046YMUQ997FPhaAJ7Qas9A3w-58XBjP0frSq07HfNbGbElgPmNhggxGnGx4WKS1M9bul38OTbGfnkscYu0WCxbjxiGLLiZkS0xPxcQ4lks9sziymcA2zNfkF9aZ3KXwbgqcU_cg-VvhOwWDyt7HC0WTerMgNwDarDCXi10NGZ2VfPxajEa2JV3hgo43Ju4Zshe-q2ST5WI2oYJ2mAU6LtbEgGQ1h=MrC1jJhO5aU=ygUgtWUVdGVSLEMBzvmOtOCxS1Q0EecrhP6ADNdsVOvEnwrsSZIYEzvqSI4jXxretfMUFjhT-VgHkJKtB-upE8iPWfZwrL14v6FaNgfgCFVKJk1z-cDKxwEE0UFh-FPezeYcP3uNgi1i5fM85gVAfgLidNQvixVKgrTMgd9M6TkYPWr=PeOyP-voKdqh2giQ9mY=TaLGVBqiS7teifYfULGHaeZgOF2s_51fa1dm5Epa87NcWpkuKoM90OepZmi4v7UcghJVpVqioegUoc3koUZoxx_nCiQuNl=xzFcySKk-hMKM_CWhplgBJAc4Su=s6FH=9nob7kYtcVxIpZ4cF4qkkjvBiouJ8FNMBstxtdQQaXuEKOtqI5J0=5Tep54kn7GjZOiB-ULq0_8yUImNxT6fpVnxmiSP75OSvHTjaC9ZuDVifWLTE8Y8AHN20npFC1=sjO6WiNz9MOxUVy1qWsjzTVf6V0QAsVJnzmqf8gqPBPKTgPFT0pTefNdfSaZCT8b4PvVHJwv_ZJjb5-HIrCNlifddl2bUFyHnEiI0Yznf1_tzqzO6Yzhg0ZrO0vZyBNmW846xc'
decode(data)
\ No newline at end of file
......@@ -2,12 +2,17 @@ import platform
import random
import subprocess
import time
import loguru
import requests
import json
import tls_client
from bson import ObjectId
import hashlib
from pymongo import MongoClient
from loguru import logger
def md5(text):
......@@ -72,19 +77,19 @@ for i in range(100):
if m5 != lastHash and usedTime > 2:
lastHash = m5
usedTime = 0
print('js变化')
logger.debug('js变化')
selectId = random.choice(list(envs))
code = open('src.js', 'r').read()
code1 = open('js_dom_run.js', 'r').read()
# with open('src_run1.js', 'w') as f:
# f.write(code + '\n\n' + c)
with open('src_run1.js', 'w') as f:
f.write(code + '\n\n' + c)
# with open('js_dom_run1.js', 'w') as f:
# f.write(code1 + '\n\n' + c)`
t1 = time.time()
# r = requests.get('http://127.0.0.1:5000/getinfo').json()['message']
# r = requests.get('http://127.0.0.1:3001').json()
# p = subprocess.Popen(['node', 'js_dom_run.js', selectId], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
p = subprocess.Popen(['node', 'src_run.js', selectId], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
p = subprocess.Popen(['node', 'src_run.js', selectId, '11'], stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
......@@ -103,8 +108,7 @@ for i in range(100):
headers.update(r)
# headers = r
print(f'{(time.time() - t1) *1000:.3f}ms', len(headers['X-1ItxWO9i-a'.lower()]))
print(selectId, headers['user-agent'])
logger.info(f"{(time.time() - t1) *1000:.3f}ms {len(headers['X-1ItxWO9i-a'.lower()])} {selectId} {headers['user-agent']}")
url = "https://jbrest.jetblue.com/lfs-rwb/outboundLFS"
data = {
"tripType": "oneWay",
......@@ -134,11 +138,10 @@ for i in range(100):
# session = requests.Session()
print(tlsV, proxy)
response = session.post(url, headers=headers, json=data)
logger.info(f'tls:{tlsV} proxy:{proxy} res:: {response.status_code}')
# print(response.text)
print(response.status_code)
if response.status_code != 403:
res = db.env_shape.update_one(
{'_id': ObjectId(selectId)},
......@@ -150,8 +153,6 @@ for i in range(100):
uri = 'http://ymx-lcc.unififi.com/header/add'
proxy = f'http://unfflcc:76cc14-47b8dd-1f8ace-827836-0c740e@usa.rotating.proxyrack.net:{int(random.randint(10000, 11149))}'
print(selectId, headers)
r = requests.post(uri, json={
'brush_fromto': 'LAS-BOS',
'brush_fromdate': '2023-05-26',
......@@ -161,5 +162,5 @@ for i in range(100):
'brush_name':'js',
'brush_type':'headerB6',
})
print('添加成功')
logger.success('添加成功')
# time.sleep(3)
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -259,37 +259,37 @@ function Window(options) {
// vm initialization is deferred until script processing is activated
this._globalProxy = this;
// this._globalProxy = new Proxy(this._globalProxy, {
// get(target, p, receiver) {
// // if (p === 'addEventListener'){
// // debugger;
// // }
// let res = Reflect.get(target, p, receiver);
// if (!['Object','Window' , 'debug','Math', 'Array', '_random'].includes(p)){
// console.log('window get', p, typeof res)
//
// }
// // if (p === 'StyleSheet'){
// // debugger;
// // }
// // console.log(Reflect.get(target, '_cf_chl_ctx', receiver))
//
// if (
// !['_registeredHandlers', 'window', '_currentEvent','debug','_eventListenerss','JSON', 'Math'].includes(p) &&
// res && typeof res === 'object' && typeof p !== 'symbol') {
// return proxy(res, p)
// }
// return res;
// },
// // set(target, p, newValue, receiver) {
// // console.log('set window', p, newValue)
// // if (typeof newValue === 'string' && newValue.startsWith('3g')) {
// // _console(newValue)
// // // process.exit(0)
// // }
// // return Reflect.set(target, p, newValue, receiver)
// // }
// })
this._globalProxy = new Proxy(this._globalProxy, {
get(target, p, receiver) {
// if (p === 'addEventListener'){
// debugger;
// }
let res = Reflect.get(target, p, receiver);
if (!['Object','Window' , 'debug','Math', 'Array', '_random'].includes(p)){
console.log('window get', p, typeof res)
}
// if (p === 'StyleSheet'){
// debugger;
// }
// console.log(Reflect.get(target, '_cf_chl_ctx', receiver))
if (
!['_registeredHandlers', 'window', '_currentEvent','debug','_eventListenerss','JSON', 'Math'].includes(p) &&
res && typeof res === 'object' && typeof p !== 'symbol') {
return proxy(res, p)
}
return res;
},
// set(target, p, newValue, receiver) {
// console.log('set window', p, newValue)
// if (typeof newValue === 'string' && newValue.startsWith('3g')) {
// _console(newValue)
// // process.exit(0)
// }
// return Reflect.set(target, p, newValue, receiver)
// }
})
Object.defineProperty(idlUtils.implForWrapper(this), idlUtils.wrapperSymbol, { get: () => this._globalProxy });
// List options explicitly to be clear which are passed through
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
No preview for this file type
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment