commit 214e15c04c581c43e6ee037a4b4504ec2c61b0ba Author: lizhanyuan <949777411@qq.com> Date: Mon Jan 12 18:30:12 2026 +0800 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..013de50 --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +# 忽略所有 .md 文件 +*.md + +# 忽略 doc 和 docs 目录 +doc/ +docs/ + +# Python 相关 +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +*.egg-info/ +dist/ +build/ + +# 虚拟环境 +venv/ +env/ +ENV/ + +# IDE +.vscode/ +.idea/ +*.swp +*.swo + +# 系统文件 +.DS_Store +Thumbs.db + diff --git a/config.json b/config.json new file mode 100644 index 0000000..9129692 --- /dev/null +++ b/config.json @@ -0,0 +1,20 @@ +{ + "vmware": { + "vmx_path": "/Volumes/Castor/虚拟机/Jade_Win_11.vmwarevm/Windows 11 64 位 ARM 2.vmx", + "snapshot_name": "快照 3", + "vm_password": "lizhanyuan", + "guest_username": "lzy", + "guest_password": "LIZHANYUAN" + }, + "network": { + "vm_ip": "192.168.116.149", + "agent_server_port": 5000 + }, + "paths": { + "guest_desktop": "C:\\Users\\lzy\\Desktop" + }, + "notes": { + "vm_auto_login": "已启用(UI自动登录)", + "guest_auth": "" + } +} \ No newline at end of file diff --git a/data/source/DEMO01.MDI b/data/source/DEMO01.MDI new file mode 100644 index 0000000..c804c10 --- /dev/null +++ b/data/source/DEMO01.MDI @@ -0,0 +1,409 @@ + 04/21/92 DIF Demo01: 37-1497 4-733 9-169 18-303 9-77 + 5.000 0.0200 1.0 CU 1.540598 70.000 3251 + 40 49 49 44 36 32 39 41 + 43 45 41 32 36 40 44 35 + 44 35 30 31 33 29 51 34 + 43 33 36 44 32 47 42 33 + 50 46 31 46 51 46 32 46 + 50 33 50 40 44 33 31 32 + 40 40 35 47 31 40 32 44 + 39 49 35 48 32 34 49 29 + 50 30 32 43 39 51 34 29 + 33 51 42 35 50 41 28 49 + 49 31 39 47 30 47 31 27 + 44 34 33 40 45 28 40 30 + 40 46 34 37 36 33 40 28 + 40 27 47 44 41 48 30 32 + 28 31 48 38 46 37 43 48 + 40 38 34 50 41 40 36 28 + 47 46 47 35 33 48 46 39 + 47 32 47 48 31 40 33 42 + 44 35 46 43 42 40 39 27 + 47 30 47 32 29 29 28 38 + 45 48 26 39 39 37 44 49 + 32 36 49 26 33 31 32 26 + 32 44 40 46 34 45 38 27 + 44 34 29 37 46 31 37 28 + 37 32 29 28 46 31 31 30 + 42 40 38 30 34 47 43 45 + 34 30 35 47 31 37 35 40 + 33 48 36 45 34 31 33 38 + 46 38 36 31 41 40 25 42 + 33 40 41 39 25 33 40 44 + 33 39 39 30 46 25 25 33 + 37 46 28 38 31 38 34 36 + 26 41 32 28 39 27 44 33 + 27 36 46 35 42 44 43 41 + 28 47 39 47 53 52 35 37 + 53 47 64 90 112 126 149 181 + 189 259 231 295 240 214 209 185 + 125 135 88 90 54 66 60 63 + 49 54 36 47 48 33 35 32 + 26 34 39 41 29 53 45 45 + 59 52 59 65 74 89 104 105 + 127 199 203 299 331 376 400 396 + 335 323 241 201 142 140 109 84 + 66 68 62 43 59 52 33 48 + 43 48 43 41 26 24 37 45 + 40 35 40 39 34 30 33 34 + 29 41 37 40 28 40 39 34 + 31 41 32 39 30 34 25 30 + 29 41 33 24 33 37 32 26 + 30 30 34 36 39 21 40 25 + 32 35 40 25 41 36 32 25 + 27 21 40 30 37 37 26 35 + 41 29 25 25 43 43 41 56 + 54 65 80 98 117 132 138 134 + 173 177 131 130 106 99 74 74 + 39 54 38 34 39 38 29 29 + 33 24 42 36 30 26 31 41 + 58 41 61 61 63 92 86 76 + 80 60 64 44 48 46 43 35 + 35 29 20 33 29 33 19 19 + 39 19 23 38 28 25 26 32 + 33 33 25 24 23 37 31 26 + 18 20 20 26 36 33 37 28 + 19 25 23 27 34 24 24 28 + 28 21 22 23 18 34 35 19 + 34 21 20 33 30 23 35 25 + 21 35 22 18 31 23 33 29 + 26 35 24 18 24 35 33 25 + 19 24 22 30 24 19 27 26 + 26 29 26 20 33 23 25 18 + 26 33 29 25 29 31 21 26 + 33 33 28 27 28 38 29 26 + 37 34 38 37 33 47 43 62 + 79 72 115 130 148 156 177 138 + 158 132 119 129 117 146 184 199 + 183 172 171 141 148 122 105 57 + 66 57 50 47 45 34 27 36 + 25 19 35 18 19 19 18 23 + 25 21 35 33 33 36 28 21 + 31 27 32 37 39 43 28 33 + 52 55 64 76 106 106 116 199 + 226 317 388 529 602 779 885 849 + 802 751 619 478 362 295 199 157 + 112 121 100 82 77 59 56 42 + 61 40 53 38 33 42 45 36 + 24 38 28 33 18 26 30 21 + 15 23 19 15 30 26 18 26 + 24 19 20 18 28 17 18 28 + 17 18 15 24 24 23 26 23 + 20 24 22 23 23 15 26 21 + 15 14 25 18 18 26 26 17 + 15 24 19 20 12 18 28 28 + 27 12 18 17 18 25 21 19 + 19 25 26 15 16 30 31 24 + 29 23 25 34 35 50 69 76 + 98 98 77 76 52 48 45 52 + 42 23 31 18 25 23 29 29 + 15 15 23 24 21 19 28 33 + 30 40 47 40 67 80 93 111 + 185 228 255 321 357 383 369 358 + 265 243 170 134 125 73 67 52 + 45 43 47 43 33 30 34 43 + 36 39 47 59 58 69 62 56 + 35 35 43 40 40 34 47 56 + 64 66 84 137 156 155 182 226 + 221 205 209 217 197 211 176 141 + 121 79 61 62 47 56 51 30 + 43 42 53 64 44 41 63 50 + 41 46 23 25 30 29 27 21 + 13 20 25 17 13 12 25 19 + 17 26 20 22 21 28 14 25 + 18 34 32 40 44 46 48 59 + 94 105 90 109 98 98 63 62 + 56 31 27 37 35 27 32 25 + 25 33 26 21 38 32 41 38 + 37 52 49 33 38 33 18 15 + 24 20 22 25 18 17 11 18 + 13 16 15 11 25 19 15 11 + 11 19 22 11 14 14 19 15 + 15 21 15 15 18 10 15 20 + 21 11 20 14 11 22 10 18 + 13 12 18 11 20 22 18 13 + 19 19 15 13 11 22 19 25 + 11 10 20 15 11 11 8 10 + 16 15 22 10 11 20 11 8 + 14 18 11 22 15 7 11 18 + 21 18 15 19 11 18 9 16 + 12 17 16 20 23 19 23 27 + 31 27 26 31 26 47 44 54 + 76 108 128 142 205 261 339 441 + 553 729 807 931 968 954 863 736 + 611 481 334 237 223 138 141 92 + 95 69 69 67 58 69 68 62 + 45 35 49 36 36 39 47 55 + 71 62 94 98 97 76 71 84 + 64 58 45 39 22 29 27 16 + 11 12 9 21 11 11 18 14 + 11 8 15 11 13 13 16 9 + 10 8 8 7 17 11 16 12 + 12 27 17 21 27 47 44 65 + 62 88 99 84 82 82 76 47 + 55 54 83 100 128 140 208 223 + 293 370 460 496 429 414 331 244 + 190 161 131 79 65 55 54 53 + 52 45 42 54 57 103 88 149 + 142 154 177 136 127 124 78 67 + 69 58 53 38 31 43 47 40 + 64 85 107 148 148 242 278 273 + 276 274 229 206 198 159 131 119 + 92 101 127 122 140 200 178 192 + 180 177 179 155 131 117 121 94 + 136 149 189 243 243 272 313 247 + 225 192 177 132 105 59 50 53 + 47 52 46 55 51 74 107 128 + 122 125 161 126 126 89 64 61 + 43 36 24 28 28 16 13 19 + 9 13 6 17 9 18 17 13 + 17 18 16 8 15 15 21 18 + 14 29 25 42 40 57 53 77 + 119 159 163 214 175 211 150 166 + 130 95 79 59 54 50 40 43 + 36 48 59 76 63 101 153 156 + 257 315 433 590 694 773 814 828 + 740 614 450 388 251 191 176 116 + 94 84 103 64 81 54 75 49 + 54 28 24 28 19 36 17 16 + 21 31 32 29 41 56 47 84 + 90 112 159 180 264 368 491 663 + 895 1176 1339 1499 1542 1355 1175 996 + 814 572 496 357 277 240 243 197 + 213 204 195 150 162 115 126 98 + 132 112 138 152 186 182 181 179 + 145 132 83 76 68 60 55 47 + 59 60 68 78 88 150 149 204 + 322 360 459 559 510 497 468 409 + 346 336 257 199 156 123 87 82 + 68 53 44 38 34 33 25 20 + 19 28 28 34 37 44 64 69 + 96 76 100 84 83 76 51 58 + 38 44 40 47 59 60 76 100 + 111 149 199 217 282 327 408 465 + 578 632 683 820 901 1114 1193 1360 + 1375 1247 1081 915 764 673 546 459 + 409 477 483 519 575 663 647 648 + 555 445 375 308 219 184 141 89 + 59 51 39 32 25 24 25 12 + 12 18 15 17 22 25 22 21 + 48 57 59 81 66 91 98 102 + 98 83 105 116 83 84 83 68 + 46 45 40 23 18 18 27 32 + 24 34 50 61 81 90 126 166 + 184 214 224 230 246 202 175 133 + 102 94 56 42 41 45 42 60 + 51 58 69 69 47 36 27 29 + 21 20 11 17 15 5 5 4 + 6 11 14 9 11 7 11 9 + 8 12 4 8 6 5 14 12 + 13 18 10 14 17 28 32 40 + 39 46 50 41 47 39 50 53 + 52 66 63 68 56 68 49 67 + 60 67 52 81 77 101 80 82 + 90 88 101 135 164 195 231 323 + 403 438 462 462 367 363 287 184 + 142 119 92 69 55 39 23 27 + 29 25 28 12 25 18 24 40 + 44 40 52 51 44 58 43 35 + 25 25 20 17 20 10 16 10 + 13 10 10 15 13 10 11 11 + 5 6 9 10 8 9 11 8 + 7 11 12 3 11 11 4 10 + 9 3 4 4 6 11 10 6 + 6 7 5 7 6 8 14 4 + 15 14 11 11 13 19 35 49 + 70 63 70 84 97 85 72 73 + 56 37 26 22 13 21 11 18 + 5 11 7 11 11 7 6 14 + 13 14 16 17 17 28 32 33 + 66 79 67 76 115 109 101 103 + 97 77 109 119 121 167 170 211 + 262 240 260 213 170 161 128 91 + 87 52 53 50 33 18 32 18 + 17 19 10 12 7 4 10 5 + 13 7 7 4 5 4 5 8 + 11 4 5 13 7 9 8 9 + 4 16 11 12 11 12 34 25 + 52 53 88 77 93 131 104 87 + 95 65 54 40 46 25 22 13 + 25 18 20 19 13 32 23 37 + 56 52 86 88 116 90 112 103 + 144 156 146 170 162 206 198 227 + 198 159 151 126 129 101 67 71 + 55 63 66 62 72 81 76 56 + 50 38 31 33 18 17 6 15 + 9 7 9 4 10 11 8 5 + 10 4 4 6 10 9 11 16 + 16 8 18 8 11 15 15 11 + 13 4 5 7 18 17 18 16 + 36 44 36 40 51 62 39 38 + 41 33 40 30 26 14 10 14 + 18 10 16 23 20 27 45 43 + 53 51 61 45 47 45 73 76 + 62 70 75 78 51 75 47 66 + 62 64 51 72 67 94 128 156 + 177 184 171 197 179 166 126 110 + 98 51 37 33 33 29 17 21 + 9 12 12 4 12 12 15 8 + 7 17 22 33 38 44 56 55 + 69 69 71 73 83 57 50 51 + 51 51 44 70 57 87 73 76 + 56 69 74 47 46 40 46 40 + 23 25 14 13 18 20 22 22 + 16 35 26 58 64 79 90 85 + 113 105 111 80 83 67 74 79 + 104 93 131 127 170 132 142 101 + 105 66 69 39 42 31 23 12 + 16 25 17 31 28 36 31 36 + 27 27 19 23 33 23 18 14 + 18 10 18 7 10 4 10 4 + 10 4 10 6 5 9 9 5 + 18 12 15 23 31 37 43 54 + 73 98 121 127 197 267 349 413 + 515 634 633 674 604 517 491 433 + 380 316 317 321 275 318 313 352 + 382 430 481 532 461 416 337 325 + 244 192 123 100 63 60 40 28 + 30 17 20 15 8 11 8 9 + 11 4 3 6 4 10 4 10 + 13 12 9 19 21 25 44 36 + 69 85 108 102 129 167 163 159 + 172 187 171 186 194 164 180 134 + 127 113 100 79 80 54 64 83 + 120 141 139 152 135 133 151 116 + 79 69 64 43 25 18 17 16 + 6 11 16 10 11 4 4 4 + 4 10 10 16 25 15 34 29 + 33 31 35 35 20 17 27 16 + 21 8 14 14 18 20 17 20 + 46 64 58 112 135 174 264 384 + 428 467 480 436 424 334 311 235 + 205 154 134 85 94 94 102 103 + 101 115 74 88 88 48 45 33 + 37 24 34 28 33 43 52 61 + 76 71 86 61 77 72 63 93 + 107 117 141 190 207 220 203 171 + 172 154 135 95 90 54 62 55 + 56 55 88 114 130 196 221 298 + 343 396 435 460 382 369 298 249 + 182 137 125 82 46 43 45 31 + 31 27 25 53 62 70 90 113 + 175 176 242 239 217 195 178 171 + 154 145 121 89 93 77 62 76 + 51 45 27 38 23 25 14 12 + 19 30 21 33 47 57 98 113 + 178 184 177 173 170 161 144 112 + 78 71 62 44 25 22 11 19 + 10 14 7 18 20 10 11 10 + 7 7 8 11 4 11 11 16 + 11 17 13 24 30 36 33 25 + 28 35 26 18 32 35 25 30 + 61 55 91 136 166 180 177 166 + 186 147 171 137 130 130 116 146 + 176 212 281 281 248 268 246 216 + 172 145 102 72 53 59 66 46 + 57 62 54 62 62 54 48 58 + 33 39 24 32 27 37 68 80 + 101 123 166 186 155 177 151 150 + 119 112 59 46 49 27 25 26 + 22 19 21 20 34 56 74 102 + 138 179 200 218 250 271 237 196 + 208 160 137 120 86 68 37 42 + 25 20 18 8 10 5 4 4 + 7 4 6 2 7 9 8 7 + 9 9 5 4 15 6 21 20 + 24 36 27 30 30 20 29 28 + 18 17 16 11 10 10 3 8 + 5 8 4 5 3 3 7 7 + 3 3 2 3 4 1 7 6 + 6 4 11 8 5 11 18 11 + 22 36 41 50 64 116 162 173 + 166 188 171 163 146 133 119 112 + 93 87 67 44 52 33 18 31 + 11 23 17 9 7 7 13 18 + 23 24 31 47 59 57 43 40 + 25 28 29 17 14 7 5 12 + 3 9 4 5 7 8 9 8 + 8 18 19 44 66 73 85 141 + 163 165 173 141 142 103 108 84 + 79 50 57 58 38 52 68 53 + 62 52 45 65 50 54 47 29 + 30 30 17 13 9 14 11 4 + 10 9 2 4 4 4 7 4 + 4 4 4 4 6 4 4 3 + 2 5 3 4 5 2 3 1 + 2 4 2 4 2 4 1 4 + 1 5 1 2 1 5 2 5 + 1 5 4 2 3 4 4 4 + 1 2 4 1 1 5 6 3 + 6 4 5 5 6 4 7 6 + 5 6 2 4 8 6 12 19 + 25 23 40 36 31 42 37 30 + 31 44 47 55 71 105 91 102 + 91 77 78 73 50 44 24 23 + 17 12 11 14 11 8 12 11 + 22 32 32 39 72 96 113 125 + 127 110 101 98 76 91 57 61 + 41 28 30 25 19 21 22 18 + 30 33 28 33 35 16 25 20 + 18 9 8 8 5 1 4 8 + 8 4 9 6 8 9 11 13 + 25 24 19 30 33 26 26 19 + 25 12 11 11 15 8 7 14 + 16 13 15 27 23 40 80 81 + 119 153 138 105 130 83 95 96 + 89 76 60 62 41 55 34 38 + 22 33 15 22 15 11 11 6 + 2 4 3 7 8 4 1 3 + 4 6 4 6 3 3 5 1 + 3 2 7 4 1 4 4 4 + 1 2 5 14 9 13 23 30 + 37 62 73 81 130 143 134 125 + 122 78 76 73 62 44 32 25 + 24 19 8 6 7 4 2 5 + 4 6 6 6 6 8 14 25 + 21 23 48 71 108 132 118 112 + 129 100 98 89 90 90 74 49 + 69 55 69 48 35 48 36 44 + 37 35 21 11 13 14 8 6 + 4 4 4 6 1 4 7 2 + 11 11 4 9 11 18 29 25 + 57 82 87 167 199 284 357 379 + 423 376 382 317 326 250 247 222 + 163 112 85 50 47 40 29 15 + 17 20 19 11 15 26 20 35 + 33 23 22 19 29 27 18 15 + 11 14 11 3 8 13 9 6 + 11 16 14 27 32 62 73 109 + 149 149 179 156 136 124 111 137 + 90 76 69 48 28 19 18 15 + 8 14 7 7 4 2 3 4 + 3 5 4 5 2 1 1 2 + 1 7 2 6 4 11 14 11 + 18 25 20 32 33 33 26 27 + 25 27 18 31 27 35 31 51 + 52 35 54 47 31 33 37 19 + 18 18 7 11 4 6 7 3 + 7 6 4 5 1 1 4 4 + 4 1 3 3 5 2 2 4 + 2 1 4 3 1 3 2 1 + 5 4 2 1 3 1 7 11 + 5 9 20 20 40 51 53 59 + 53 50 54 47 76 62 57 31 + 40 31 18 18 9 11 9 7 + 3 3 4 3 4 3 3 3 + 3 1 2 2 2 1 4 1 + 1 3 1 1 1 3 4 1 + 2 2 2 4 2 2 4 1 + 4 1 4 3 1 4 1 4 + 3 1 2 4 1 1 1 3 + 1 1 1 2 4 4 1 4 + 4 1 1 4 1 2 2 3 + 2 2 3 1 2 4 1 2 + 1 1 2 1 1 4 2 1 + 3 1 4 4 4 3 1 4 + 3 2 1 4 2 2 1 3 + 3 4 1 3 2 2 3 1 + 2 2 2 3 4 1 4 3 + 4 2 1 -1 diff --git a/jade b/jade new file mode 100644 index 0000000..36cd1fe --- /dev/null +++ b/jade @@ -0,0 +1,61 @@ +#!/bin/bash +# JADE Benchmark 便捷运行脚本 + +PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +cd "$PROJECT_ROOT" + +# 激活虚拟环境(如果存在) +if [ -f "../Jade-Benchmark/.venv/bin/activate" ]; then + source "../Jade-Benchmark/.venv/bin/activate" +fi + +# 主命令分发 +case "$1" in + init) + python scripts/tools/init_task.py "${@:2}" + ;; + collect) + python scripts/tools/collect_task.py "${@:2}" + ;; + process) + python scripts/tools/process_trajectory.py "${@:2}" + ;; + eval) + python scripts/tools/run_eval.py "${@:2}" + ;; + test-vm) + python scripts/core/jade_env.py + ;; + help|--help|-h) + cat << EOF +JADE Benchmark 工具集 + +用法: ./jade <命令> [参数] + +命令: + init 创建新任务 + collect [选项] 采集任务数据 + process [选项] 处理轨迹坐标 + eval [选项] 运行评测 + test-vm 测试VM连接 + +示例: + ./jade init smoothing_001 + ./jade collect smoothing_001 --mode full + ./jade process smoothing_001 + ./jade eval smoothing_001 + ./jade eval --all --output results.json + +详细文档: + - QUICK_START.md + - MIGRATION_GUIDE.md + - scripts/README.md +EOF + ;; + *) + echo "❌ 未知命令: $1" + echo "运行 './jade help' 查看帮助" + exit 1 + ;; +esac + diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..18f976f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +numpy +requests +pillow +pynput +flask +pyautogui \ No newline at end of file diff --git a/scripts/__init__.py b/scripts/__init__.py new file mode 100644 index 0000000..2a00ee0 --- /dev/null +++ b/scripts/__init__.py @@ -0,0 +1,4 @@ +""" +JADE Benchmark Scripts Package +""" + diff --git a/scripts/core/__init__.py b/scripts/core/__init__.py new file mode 100644 index 0000000..5ee38dd --- /dev/null +++ b/scripts/core/__init__.py @@ -0,0 +1,16 @@ +""" +JADE Benchmark 核心模块 +包含VM控制、轨迹录制、评测等核心功能 +""" +from .jade_env import JadeEnv +from .recorder import Recorder, record_interactive +from .evaluator import evaluate, load_xrd_data + +__all__ = [ + 'JadeEnv', + 'Recorder', + 'record_interactive', + 'evaluate', + 'load_xrd_data' +] + diff --git a/scripts/core/evaluator.py b/scripts/core/evaluator.py new file mode 100644 index 0000000..5173d7c --- /dev/null +++ b/scripts/core/evaluator.py @@ -0,0 +1,178 @@ +import json +import numpy as np +import os +import sys +import re + +def load_xrd_data(file_path): + """ + 读取 XRD 导出的 txt 文件(如 background_result.txt),跳过头部的 Metadata。 + """ + if not os.path.exists(file_path): + raise FileNotFoundError(f"文件不存在: {file_path}") + + data = [] + with open(file_path, 'r', encoding='utf-8', errors='ignore') as f: + for line in f: + line = line.strip() + if not line: + continue + parts = line.split() + try: + values = [float(x) for x in parts] + if len(values) >= 2: + data.append(values[:2]) + except ValueError: + continue + + if not data: + raise ValueError(f"在文件中未找到有效的数值数据: {file_path}") + + return np.array(data) + +def load_peak_report(file_path): + """ + 专门解析 JADE Peak Search Report (.pid) + 提取表格部分的数值数据 + """ + if not os.path.exists(file_path): + raise FileNotFoundError(f"文件不存在: {file_path}") + + peaks = [] + metadata = {} + + with open(file_path, 'r', encoding='utf-8', errors='ignore') as f: + lines = f.readlines() + + # 查找表格开始的位置(在含有 "2-Theta" 的行之后) + table_started = False + for line in lines: + line = line.strip() + if not line: + continue + + # 提取元数据示例: JADE: Peak Search Report (72 Peaks, Max P/N = 19.3) + if "Peak Search Report" in line: + match = re.search(r"\((\d+) Peaks", line) + if match: + metadata['reported_peak_count'] = int(match.group(1)) + + # 识别表头 + if "2-Theta" in line and "d(" in line: + table_started = True + continue + + if table_started: + parts = line.split() + # Peak 报告通常每行有 8-9 个字段 + if len(parts) >= 6: + try: + # 尝试将前几个字段转为 float + # 0: 2-Theta, 1: d, 2: BG, 3: Height, 4: I%, 5: Area, 6: I%, 7: FWHM + peak_data = [float(p) for p in parts[:8]] + peaks.append(peak_data) + except ValueError: + # 如果转换失败,可能是说明文字或空行,跳过 + continue + + if not peaks: + raise ValueError(f"未能从 Peak 报告中解析出有效数据: {file_path}") + + return np.array(peaks), metadata + +def evaluate(gt_path, agent_path, tolerance=1e-4, mode="xrd_data"): + """ + 对比 Ground Truth 和 Agent Output。 + 支持两种模式: + - xrd_data: 对比 (2-Theta, Intensity) 原始数据点 + - peak_report: 对比 Peak 搜索结果列表 + """ + try: + if mode == "peak_report": + gt_data, gt_meta = load_peak_report(gt_path) + agent_data, agent_meta = load_peak_report(agent_path) + + # 对于 Peak 报告,我们主要关注 2-Theta 位置和 Height + # 这里对比全表,但放宽容差,因为 Peak Search 的算法可能在不同环境下有极细微差异 + if gt_data.shape != agent_data.shape: + # 如果数量不匹配,直接判定失败 + return 0, f"失败: Peak 数量不匹配。GT {len(gt_data)}, Agent {len(agent_data)}" + else: + gt_data = load_xrd_data(gt_path) + agent_data = load_xrd_data(agent_path) + + if gt_data.shape != agent_data.shape: + return 0, f"失败: 数据维度不匹配。GT 形状 {gt_data.shape}, Agent 形状 {agent_data.shape}" + + diff = np.abs(gt_data - agent_data) + max_error = np.max(diff) + + if max_error < tolerance: + return 1, f"成功: 最大绝对误差 {max_error:.2e} < 阈值 {tolerance}" + else: + return 0, f"失败: 最大绝对误差 {max_error:.2e} 超过阈值 {tolerance}" + + except Exception as e: + return 0, f"错误: {str(e)}" + +def evaluate_by_config(config_path): + """ + 根据任务配置文件进行评测。 + """ + # 兼容性处理:如果传入的是任务 ID 路径 + if not os.path.isabs(config_path) and not config_path.startswith('.'): + # 尝试补全路径,例如 instructions/smoothing_001.json + if not config_path.endswith('.json'): + config_path = config_path + ".json" + if not os.path.exists(config_path): + # 尝试在任务目录下找 + pass + + base_dir = os.path.dirname(os.path.dirname(os.path.abspath(config_path))) + + with open(config_path, 'r', encoding='utf-8') as f: + config = json.load(f) + + eval_cfg = config.get('evaluation', {}) + # 处理相对路径 + gt_path = os.path.join(base_dir, eval_cfg['ground_truth']) + agent_path = os.path.join(base_dir, eval_cfg['target_output']) + tolerance = eval_cfg.get('tolerance', 1e-4) + + # 自动识别模式 + mode = "xrd_data" + if gt_path.lower().endswith('.pid') or eval_cfg.get('type') == 'peak_report': + mode = "peak_report" + # Peak 报告的默认容差放宽一些,因为算法可能受环境微小影响 + if 'tolerance' not in eval_cfg: + tolerance = 1e-2 + + print(f"--- 正在执行评测: {config.get('id', 'unknown')} ---") + print(f"指令: {config.get('instruction')}") + print(f"模式: {mode}") + + score, message = evaluate(gt_path, agent_path, tolerance, mode=mode) + return score, message + +if __name__ == "__main__": + if len(sys.argv) == 2 and sys.argv[1].endswith('.json'): + # 模式 A: Config 模式 + try: + score, message = evaluate_by_config(sys.argv[1]) + except Exception as e: + print(f"配置文件解析失败: {e}") + sys.exit(1) + elif len(sys.argv) >= 3: + # 模式 B: 直接对比模式 + score, message = evaluate(sys.argv[1], sys.argv[2]) + else: + print("用法:") + print(" python scripts/evaluator.py instructions/smoothing_001.json") + print(" python scripts/evaluator.py ") + sys.exit(1) + + print("-" * 30) + print(f"Score: {score}") + print(f"Reason: {message}") + print("-" * 30) + sys.exit(0 if score == 1 else 1) diff --git a/scripts/core/jade_env.py b/scripts/core/jade_env.py new file mode 100644 index 0000000..e8951fd --- /dev/null +++ b/scripts/core/jade_env.py @@ -0,0 +1,514 @@ +""" +JADE Benchmark 环境控制器 +负责VM的重置、文件注入/收集、截图获取等操作 +""" +import subprocess +import time +import os +import requests +from PIL import Image +import io +import logging + +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + + +class JadeEnv: + """轻量级JADE虚拟机环境控制器""" + + def __init__(self, vmx_path, snapshot_name="Jade_Ready", vm_ip="192.168.116.129", + vm_password=None, guest_username=None, guest_password=None): + """ + 初始化JADE环境 + + Args: + vmx_path: 虚拟机.vmx文件路径 + snapshot_name: 快照名称 + vm_ip: 虚拟机IP地址(用于HTTP通信) + vm_password: 虚拟机文件加密密码(-vp参数) + guest_username: 虚拟机内操作系统用户名(-gu参数) + guest_password: 虚拟机内操作系统密码(-gp参数) + """ + self.vmx_path = vmx_path + self.snapshot_name = snapshot_name + self.vm_ip = vm_ip + self.vm_url = f"http://{vm_ip}:5000" + + # VMware认证参数 + self.vm_password = vm_password + self.guest_username = guest_username + self.guest_password = guest_password + + # VMware Fusion路径(macOS) + self.vmrun = "/Applications/VMware Fusion.app/Contents/Library/vmrun" + + # 虚拟机内路径 + self.guest_desktop = r"C:\Users\lzy\Desktop" + + logger.info(f"JadeEnv初始化: VM={os.path.basename(vmx_path)}, Snapshot={snapshot_name}") + logger.info(f" 认证配置: vm_password={'已设置' if vm_password else '未设置'}, " + f"guest_user={'已设置' if guest_username else '未设置'}, " + f"guest_pass={'已设置' if guest_password else '未设置'}") + + def _build_vmrun_cmd(self, *args): + """构建vmrun命令""" + cmd = [self.vmrun, "-T", "fusion"] + + # 添加认证参数 + if self.vm_password: + cmd.extend(["-vp", self.vm_password]) + if self.guest_username: + cmd.extend(["-gu", self.guest_username]) + if self.guest_password: + cmd.extend(["-gp", self.guest_password]) + + cmd.extend(args) + return cmd + + def _run_vmrun(self, *args, check=True, timeout=30): + """执行vmrun命令""" + cmd = self._build_vmrun_cmd(*args) + # 打印完整命令(隐藏密码) + cmd_display = [] + skip_next = False + for i, part in enumerate(cmd): + if skip_next: + cmd_display.append("***") + skip_next = False + elif part in ["-vp", "-gp"]: + cmd_display.append(part) + skip_next = True + else: + cmd_display.append(part) + logger.info(f"执行vmrun命令: {' '.join(cmd_display)}") + + try: + result = subprocess.run( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + timeout=timeout + ) + + if check and result.returncode != 0: + error_msg = result.stderr or result.stdout + raise RuntimeError(f"vmrun命令执行失败: {error_msg}") + + return result + except subprocess.TimeoutExpired: + logger.error(f"❌ vmrun命令超时({timeout}秒)") + raise RuntimeError(f"vmrun命令执行超时({timeout}秒)") + + def _detect_and_update_ip(self): + """ + 检测VM的IP地址,如果变化则自动更新 + + Returns: + bool: IP是否发生变化 + """ + logger.info("🔍 检测VM IP地址...") + + try: + # 使用vmrun获取VM IP + cmd = self._build_vmrun_cmd("getGuestIPAddress", self.vmx_path) + result = subprocess.run( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + timeout=10 + ) + + if result.returncode == 0: + new_ip = result.stdout.strip() + if new_ip and new_ip != "": + if new_ip != self.vm_ip: + logger.info(f"⚠️ IP地址已变化: {self.vm_ip} → {new_ip}") + logger.info(f" 自动更新IP地址...") + + # 更新实例变量 + self.vm_ip = new_ip + self.vm_url = f"http://{new_ip}:5000" + + # 更新配置文件 + try: + import json + from pathlib import Path + # 获取项目根目录(jade_env.py在scripts/core/,向上3级到项目根目录) + project_root = Path(__file__).parent.parent.parent + config_path = project_root / "config.json" + if config_path.exists(): + with open(config_path, 'r', encoding='utf-8') as f: + config = json.load(f) + config["network"]["vm_ip"] = new_ip + with open(config_path, 'w', encoding='utf-8') as f: + json.dump(config, f, indent=2, ensure_ascii=False) + logger.info(f"✅ 配置文件已更新: {config_path}") + except Exception as e: + logger.warning(f"⚠️ 更新配置文件失败: {e}(不影响使用)") + + return True + else: + logger.info(f"✅ IP地址未变化: {self.vm_ip}") + return False + else: + logger.warning(f"⚠️ vmrun返回空IP地址") + return False + else: + error_msg = result.stderr or result.stdout + logger.warning(f"⚠️ 获取IP失败: {error_msg}(将使用配置中的IP)") + return False + + except subprocess.TimeoutExpired: + logger.warning(f"⚠️ 获取IP超时(将使用配置中的IP)") + return False + except Exception as e: + logger.warning(f"⚠️ 检测IP异常: {e}(将使用配置中的IP)") + return False + + def reset(self, wait_time=5): + """ + 重置环境:恢复快照并启动虚拟机 + + Args: + wait_time: 启动后等待时间(秒) + """ + logger.info(f"正在恢复快照: {self.snapshot_name}...") + + try: + # 1. 恢复快照 + self._run_vmrun("revertToSnapshot", self.vmx_path, self.snapshot_name) + logger.info("✅ 快照恢复成功") + + time.sleep(3) + + # 2. 启动虚拟机(如果未运行) + logger.info("正在启动虚拟机...") + result = self._run_vmrun("start", self.vmx_path, check=False) + + if result.returncode == 0: + logger.info("✅ 虚拟机启动成功") + else: + # 可能已经在运行 + if "is already running" in result.stderr.lower(): + logger.info("✅ 虚拟机已在运行") + else: + logger.warning(f"启动虚拟机警告: {result.stderr}") + + # 3. 等待系统稳定(快照恢复后agent_server已在运行) + logger.info(f"等待系统稳定 ({wait_time}秒)...") + time.sleep(wait_time) + + # 4. 检测并更新IP地址(恢复快照后IP可能变化) + self._detect_and_update_ip() + + # 5. 验证HTTP服务可用 + self._wait_for_http_service() + + logger.info("✅ 环境重置完成") + + except Exception as e: + logger.error(f"❌ 环境重置失败: {e}") + raise + + def _wait_for_http_service(self, max_retries=10, retry_interval=3): + """等待agent_server.py HTTP服务可用""" + logger.info(f"等待虚拟机HTTP服务... (URL: {self.vm_url})") + + # 绕过代理(避免Clash等代理工具干扰局域网访问) + proxies = { + 'http': None, + 'https': None + } + + for i in range(max_retries): + try: + logger.debug(f"尝试连接: {self.vm_url}/screen_info (timeout=5秒, 不使用代理)") + response = requests.get(f"{self.vm_url}/screen_info", timeout=5, proxies=proxies) + logger.debug(f"收到响应: status_code={response.status_code}") + if response.status_code == 200: + logger.info("✅ HTTP服务已就绪") + return True + else: + logger.warning(f"HTTP状态码异常: {response.status_code}") + except requests.exceptions.Timeout as e: + logger.info(f"HTTP服务未就绪(超时),重试 {i+1}/{max_retries}...") + if i < max_retries - 1: + time.sleep(retry_interval) + except requests.exceptions.ConnectionError as e: + logger.info(f"HTTP服务未就绪(连接失败: {str(e)[:50]}),重试 {i+1}/{max_retries}...") + if i < max_retries - 1: + time.sleep(retry_interval) + except requests.exceptions.RequestException as e: + logger.warning(f"HTTP请求异常: {type(e).__name__}: {str(e)[:100]}") + if i < max_retries - 1: + logger.info(f"重试 {i+1}/{max_retries}...") + time.sleep(retry_interval) + else: + logger.error("❌ HTTP服务超时!") + logger.error(f" 最后错误: {e}") + return False + + logger.error("❌ HTTP服务超时!请检查agent_server.py是否在VM中运行") + logger.info(" 在VM中运行: python agent_server.py") + return False + + def inject_file(self, host_path, guest_filename=None): + """ + 将文件从主机注入到虚拟机桌面 + + Args: + host_path: 主机文件路径 + guest_filename: 虚拟机中的文件名(默认使用原文件名) + """ + if not os.path.exists(host_path): + raise FileNotFoundError(f"源文件不存在: {host_path}") + + if guest_filename is None: + guest_filename = os.path.basename(host_path) + + guest_path = f"{self.guest_desktop}\\{guest_filename}" + + # 获取文件大小 + file_size = os.path.getsize(host_path) + file_size_kb = file_size / 1024 + + logger.info(f"注入文件: {os.path.basename(host_path)} ({file_size_kb:.1f}KB) → 虚拟机桌面") + logger.info(f" 源路径: {host_path}") + logger.info(f" 目标路径: {guest_path}") + + try: + start_time = time.time() + # 使用vmrun传输(30秒超时) + self._run_vmrun( + "copyFileFromHostToGuest", + self.vmx_path, + host_path, + guest_path, + timeout=30 + ) + elapsed = time.time() - start_time + logger.info(f"✅ 文件注入成功: {guest_filename} (耗时 {elapsed:.1f}秒)") + except Exception as e: + logger.error(f"❌ 文件注入失败: {e}") + raise + + def collect_file(self, guest_filename, host_path): + """ + 从虚拟机桌面收集文件到主机 + + Args: + guest_filename: 虚拟机桌面上的文件名 + host_path: 主机保存路径 + """ + guest_path = f"{self.guest_desktop}\\{guest_filename}" + + logger.info(f"收集文件: {guest_filename} → {os.path.basename(host_path)}") + + try: + # 确保目标目录存在 + os.makedirs(os.path.dirname(host_path), exist_ok=True) + + # 方法1: 尝试使用vmrun + try: + self._run_vmrun( + "copyFileFromGuestToHost", + self.vmx_path, + guest_path, + host_path + ) + logger.info(f"✅ 文件收集成功(vmrun): {guest_filename}") + return + except RuntimeError as e: + logger.warning(f"vmrun收集失败,尝试HTTP方式: {e}") + + # 方法2: 尝试通过HTTP下载(备用) + try: + response = requests.get( + f"{self.vm_url}/download/{guest_filename}", + timeout=10 + ) + if response.status_code == 200: + with open(host_path, 'wb') as f: + f.write(response.content) + logger.info(f"✅ 文件收集成功(HTTP): {guest_filename}") + else: + raise RuntimeError(f"HTTP下载失败: {response.status_code}") + except Exception as http_error: + logger.error(f"❌ HTTP收集也失败: {http_error}") + raise RuntimeError(f"文件收集失败(两种方法都失败)") + + except Exception as e: + logger.error(f"❌ 文件收集失败: {e}") + raise + + def get_screenshot(self, retry_with_ip_detect=True): + """ + 获取虚拟机截图 + + Args: + retry_with_ip_detect: 如果连接失败,是否尝试检测IP并重试 + + Returns: + PIL.Image对象 + """ + try: + # 绕过代理 + proxies = {'http': None, 'https': None} + response = requests.get(f"{self.vm_url}/screenshot", timeout=5, proxies=proxies) + if response.status_code == 200: + return Image.open(io.BytesIO(response.content)) + else: + raise RuntimeError(f"截图失败: HTTP {response.status_code}") + except (requests.exceptions.ConnectionError, requests.exceptions.Timeout) as e: + if retry_with_ip_detect: + logger.warning(f"⚠️ 截图连接失败,尝试检测并更新IP...") + if self._detect_and_update_ip(): + # IP已更新,重试一次 + logger.info(f"🔄 使用新IP重试截图...") + return self.get_screenshot(retry_with_ip_detect=False) + logger.error(f"❌ 获取截图失败: {e}") + raise + except Exception as e: + logger.error(f"❌ 获取截图失败: {e}") + raise + + def get_screen_info(self, retry_with_ip_detect=True): + """ + 获取虚拟机屏幕信息(分辨率、DPI等) + + Args: + retry_with_ip_detect: 如果连接失败,是否尝试检测IP并重试 + + Returns: + dict: 包含screen_width, screen_height, dpi_scale等信息 + """ + try: + # 绕过代理 + proxies = {'http': None, 'https': None} + response = requests.get(f"{self.vm_url}/screen_info", timeout=5, proxies=proxies) + if response.status_code == 200: + return response.json() + else: + raise RuntimeError(f"获取屏幕信息失败: HTTP {response.status_code}") + except (requests.exceptions.ConnectionError, requests.exceptions.Timeout) as e: + if retry_with_ip_detect: + logger.warning(f"⚠️ 屏幕信息连接失败,尝试检测并更新IP...") + if self._detect_and_update_ip(): + # IP已更新,重试一次 + logger.info(f"🔄 使用新IP重试获取屏幕信息...") + return self.get_screen_info(retry_with_ip_detect=False) + logger.error(f"❌ 获取屏幕信息失败: {e}") + raise + except Exception as e: + logger.error(f"❌ 获取屏幕信息失败: {e}") + raise + + def list_desktop_files(self): + """ + 列出虚拟机桌面文件(用于调试) + + Returns: + list: 文件名列表 + """ + try: + # 绕过代理 + proxies = {'http': None, 'https': None} + response = requests.get(f"{self.vm_url}/list_desktop", timeout=5, proxies=proxies) + if response.status_code == 200: + return response.json().get('files', []) + else: + raise RuntimeError(f"列出文件失败: HTTP {response.status_code}") + except Exception as e: + logger.warning(f"⚠️ 列出桌面文件失败: {e}") + return [] + + def send_action(self, action_type, **params): + """ + 发送动作到虚拟机(用于未来的Agent自动执行) + + Args: + action_type: 动作类型 (click/type/hotkey) + **params: 动作参数 + """ + try: + # 绕过代理 + proxies = {'http': None, 'https': None} + payload = {"type": action_type, **params} + response = requests.post( + f"{self.vm_url}/action", + json=payload, + timeout=5, + proxies=proxies + ) + if response.status_code == 200: + logger.debug(f"动作执行成功: {action_type}") + else: + raise RuntimeError(f"动作执行失败: HTTP {response.status_code}") + except Exception as e: + logger.error(f"❌ 发送动作失败: {e}") + raise + + def get_mouse_pos(self): + """ + 从虚拟机获取当前鼠标物理坐标 + + Returns: + tuple: (x, y) 物理坐标,失败返回 (None, None) + """ + try: + # 绕过代理 + proxies = {'http': None, 'https': None} + response = requests.get(f"{self.vm_url}/mouse_pos", timeout=2, proxies=proxies) + if response.status_code == 200: + data = response.json() + return data['x'], data['y'] + return None, None + except Exception as e: + logger.debug(f"获取VM鼠标位置失败: {e}") + return None, None + + +if __name__ == "__main__": + # 测试代码 + print("JadeEnv 测试") + print("=" * 60) + + # 配置(需要根据实际情况修改) + VMX_PATH = "/Volumes/Castor/虚拟机/Jade_Win_11.vmwarevm/Windows 11 64 位 ARM 2.vmx" + SNAPSHOT = "Jade_Ready" + VM_PASSWORD = "lizhanyuan" + + try: + env = JadeEnv( + vmx_path=VMX_PATH, + snapshot_name=SNAPSHOT, + vm_password=VM_PASSWORD, + guest_username="lzy", + guest_password="LIZHANYUAN" + ) + + # 测试重置 + print("\n测试1: 重置环境") + env.reset() + + # 测试获取屏幕信息 + print("\n测试2: 获取屏幕信息") + info = env.get_screen_info() + print(f" 分辨率: {info['screen_width']}x{info['screen_height']}") + print(f" DPI缩放: {info['dpi_scale']}") + + # 测试列出桌面文件 + print("\n测试3: 列出桌面文件") + files = env.list_desktop_files() + print(f" 桌面文件: {files[:5]}..." if len(files) > 5 else f" 桌面文件: {files}") + + print("\n✅ 所有测试通过!") + + except Exception as e: + print(f"\n❌ 测试失败: {e}") + import traceback + traceback.print_exc() + diff --git a/scripts/core/recorder.py b/scripts/core/recorder.py new file mode 100644 index 0000000..33b7e6d --- /dev/null +++ b/scripts/core/recorder.py @@ -0,0 +1,295 @@ +""" +轨迹录制器 +监听鼠标键盘事件,记录操作轨迹和截图 +""" +import time +import json +import os +from datetime import datetime +from pynput import mouse, keyboard +import logging + +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + + +class Recorder: + """轨迹录制器 - Host端事件驱动录制""" + + def __init__(self, jade_env, task_id, output_dir): + """ + 初始化录制器 + + Args: + jade_env: JadeEnv实例 + task_id: 任务ID + output_dir: 输出目录(human_demo/) + """ + self.env = jade_env + self.task_id = task_id + self.output_dir = output_dir + + # 创建输出目录 + self.screens_dir = os.path.join(output_dir, "screens") + os.makedirs(self.screens_dir, exist_ok=True) + + # 数据结构 + self.actions = [] + self.metadata = {} + self.start_time = None + self.screenshot_counter = 0 + + # 监听器 + self.mouse_listener = None + self.keyboard_listener = None + + # 状态 + self.is_recording = False + + logger.info(f"录制器初始化: 任务={task_id}") + + def start(self): + """开始录制""" + if self.is_recording: + logger.warning("录制已在进行中") + return + + self.is_recording = True + self.start_time = time.time() + + # 获取虚拟机屏幕信息 + try: + screen_info = self.env.get_screen_info() + self.metadata = { + "task_id": self.task_id, + "vm_resolution": [screen_info['screen_width'], screen_info['screen_height']], + "vm_screenshot_resolution": [screen_info['screenshot_width'], screen_info['screenshot_height']], + "vm_dpi_scale": screen_info['dpi_scale'], + "recording_start": datetime.now().isoformat(), + "recording_end": None + } + logger.info(f"虚拟机分辨率: {screen_info['screen_width']}x{screen_info['screen_height']}") + logger.info(f"截图分辨率: {screen_info['screenshot_width']}x{screen_info['screenshot_height']}") + except Exception as e: + logger.warning(f"获取屏幕信息失败: {e}") + self.metadata = { + "task_id": self.task_id, + "recording_start": datetime.now().isoformat(), + "recording_end": None + } + + # 记录初始截图 + self._capture_screenshot("initial") + + # 启动监听器 + self.mouse_listener = mouse.Listener( + on_click=self._on_mouse_click, + on_scroll=self._on_mouse_scroll + ) + self.keyboard_listener = keyboard.Listener( + on_press=self._on_key_press + ) + + self.mouse_listener.start() + self.keyboard_listener.start() + + logger.info("✅ 录制已启动") + print("\n" + "=" * 60) + print("🎥 录制进行中...") + print("💡 提示:") + print(" - 请在VMware窗口中操作JADE") + print(" - 每次点击都会自动截图") + print(" - 按 Ctrl+C 停止录制") + print("=" * 60 + "\n") + + def _on_mouse_click(self, x, y, button, pressed): + """鼠标点击事件处理""" + if not self.is_recording or not pressed: + return + + # 核心修改:立刻从虚拟机获取真实物理坐标 + vm_x, vm_y = self.env.get_mouse_pos() + + elapsed = time.time() - self.start_time + + # 记录动作 + action = { + "t": round(elapsed, 3), + "type": "click", + "button": str(button).replace("Button.", ""), + "pos_host": [x, y], # Mac 逻辑坐标(留作参考) + "pos_vm": [vm_x, vm_y] if vm_x is not None else None # 真实VM物理坐标 + } + + # 截图 + screenshot_filename = self._capture_screenshot("click") + action["screenshot"] = screenshot_filename + + self.actions.append(action) + + if vm_x is not None: + logger.info(f"[{elapsed:.1f}s] 点击: VM({vm_x}, {vm_y}) [Host: {int(x)}, {int(y)}] {action['button']}") + else: + logger.info(f"[{elapsed:.1f}s] 点击: Host({int(x)}, {int(y)}) [VM获取失败] {action['button']}") + + def _on_mouse_scroll(self, x, y, dx, dy): + """鼠标滚轮事件处理""" + if not self.is_recording: + return + + elapsed = time.time() - self.start_time + + action = { + "t": round(elapsed, 3), + "type": "scroll", + "pos_host": [x, y], + "delta": [dx, dy], + "pos_vm": None + } + + self.actions.append(action) + logger.debug(f"[{elapsed:.1f}s] 滚轮: ({x}, {y}) delta=({dx}, {dy})") + + def _on_key_press(self, key): + """键盘按键事件处理""" + if not self.is_recording: + return + + elapsed = time.time() - self.start_time + + # 转换按键名称 + try: + if hasattr(key, 'char') and key.char: + key_name = key.char + else: + key_name = str(key).replace("Key.", "") + except: + key_name = str(key) + + action = { + "t": round(elapsed, 3), + "type": "key", + "key": key_name + } + + self.actions.append(action) + logger.debug(f"[{elapsed:.1f}s] 按键: {key_name}") + + def _capture_screenshot(self, tag=""): + """ + 捕获截图 + + Args: + tag: 标签(用于文件名) + + Returns: + str: 截图相对路径 + """ + try: + screenshot = self.env.get_screenshot() + + # 生成文件名 + self.screenshot_counter += 1 + if tag: + filename = f"{self.screenshot_counter:04d}_{tag}.png" + else: + filename = f"{self.screenshot_counter:04d}.png" + + filepath = os.path.join(self.screens_dir, filename) + screenshot.save(filepath) + + logger.debug(f"截图保存: {filename}") + return f"screens/{filename}" + + except Exception as e: + logger.error(f"截图失败: {e}") + return None + + def stop(self): + """停止录制""" + if not self.is_recording: + logger.warning("录制未在进行中") + return + + self.is_recording = False + + # 停止监听器 + if self.mouse_listener: + self.mouse_listener.stop() + if self.keyboard_listener: + self.keyboard_listener.stop() + + # 记录结束截图 + self._capture_screenshot("final") + + # 更新元数据 + self.metadata["recording_end"] = datetime.now().isoformat() + self.metadata["total_duration"] = round(time.time() - self.start_time, 2) + self.metadata["total_actions"] = len(self.actions) + self.metadata["total_screenshots"] = self.screenshot_counter + + logger.info("✅ 录制已停止") + + def save(self): + """保存轨迹数据""" + if self.is_recording: + logger.warning("录制仍在进行,先停止录制") + self.stop() + + # 保存原始数据(未处理坐标) + output_data = { + "metadata": self.metadata, + "actions": self.actions + } + + raw_path = os.path.join(self.output_dir, "actions_raw.json") + + with open(raw_path, 'w', encoding='utf-8') as f: + json.dump(output_data, f, indent=2, ensure_ascii=False) + + logger.info(f"✅ 轨迹数据已保存: {raw_path}") + logger.info(f" - 总动作数: {len(self.actions)}") + logger.info(f" - 截图数: {self.screenshot_counter}") + logger.info(f" - 总时长: {self.metadata.get('total_duration', 0):.1f}秒") + + print("\n" + "=" * 60) + print("📊 录制统计:") + print(f" 动作数: {len(self.actions)}") + print(f" 截图数: {self.screenshot_counter}") + print(f" 时长: {self.metadata.get('total_duration', 0):.1f}秒") + print(f" 保存位置: {raw_path}") + print("=" * 60) + print("\n💡 下一步:运行坐标转换") + print(f" python scripts/tools/process_trajectory.py {self.task_id}") + print("=" * 60 + "\n") + + +def record_interactive(jade_env, task_id, output_dir): + """ + 交互式录制(带Ctrl+C停止) + + Args: + jade_env: JadeEnv实例 + task_id: 任务ID + output_dir: 输出目录 + """ + recorder = Recorder(jade_env, task_id, output_dir) + recorder.start() + + try: + # 保持录制状态,直到Ctrl+C + while recorder.is_recording: + time.sleep(0.1) + except KeyboardInterrupt: + print("\n\n⏹ 收到停止信号...") + finally: + recorder.stop() + recorder.save() + + return recorder + + +if __name__ == "__main__": + print("Recorder 独立测试模式") + print("提示: 通常应该通过 collect_task.py 调用") + diff --git a/scripts/guest_scripts/agent_server.py b/scripts/guest_scripts/agent_server.py new file mode 100644 index 0000000..d3831c6 --- /dev/null +++ b/scripts/guest_scripts/agent_server.py @@ -0,0 +1,182 @@ +# 运行在 Windows 虚拟机内部 +from flask import Flask, request, send_file +import pyautogui +import io +import os +import subprocess +import ctypes +import time + +app = Flask(__name__) + +# 获取Windows DPI缩放比例 +def get_dpi_scale(): + """获取Windows的DPI缩放比例""" + try: + # 获取主显示器的DPI缩放比例 + scale_factor = ctypes.windll.shcore.GetScaleFactorForDevice(0) / 100.0 + return scale_factor + except: + # 如果获取失败,默认返回1.0(无缩放) + return 1.0 + +# 获取实际屏幕分辨率 +def get_screen_size(): + """获取实际屏幕分辨率(物理像素)""" + try: + user32 = ctypes.windll.user32 + width = user32.GetSystemMetrics(0) # SM_CXSCREEN + height = user32.GetSystemMetrics(1) # SM_CYSCREEN + return width, height + except: + # 如果获取失败,使用 pyautogui 的方法 + return pyautogui.size() + +DPI_SCALE = get_dpi_scale() +SCREEN_WIDTH, SCREEN_HEIGHT = get_screen_size() +print(f"检测到DPI缩放比例: {DPI_SCALE}") +print(f"实际屏幕分辨率: {SCREEN_WIDTH} x {SCREEN_HEIGHT}") + +# 获取截图分辨率(用于坐标转换) +def get_screenshot_size(): + """获取截图的实际分辨率""" + img = pyautogui.screenshot() + return img.size[0], img.size[1] + +SCREENSHOT_WIDTH, SCREENSHOT_HEIGHT = get_screenshot_size() +print(f"截图分辨率: {SCREENSHOT_WIDTH} x {SCREENSHOT_HEIGHT}") + +# 1. 获取屏幕截图 +@app.route('/screenshot', methods=['GET']) +def screenshot(): + img = pyautogui.screenshot() + img_io = io.BytesIO() + img.save(img_io, 'PNG') + img_io.seek(0) + return send_file(img_io, mimetype='image/png') + +# 获取分辨率信息(用于调试) +@app.route('/screen_info', methods=['GET']) +def screen_info(): + """返回屏幕和截图的分辨率信息,用于调试坐标转换""" + screenshot_w, screenshot_h = get_screenshot_size() + return { + "screen_width": SCREEN_WIDTH, + "screen_height": SCREEN_HEIGHT, + "screenshot_width": screenshot_w, + "screenshot_height": screenshot_h, + "dpi_scale": DPI_SCALE, + "scale_ratio_x": SCREEN_WIDTH / screenshot_w if screenshot_w > 0 else 1.0, + "scale_ratio_y": SCREEN_HEIGHT / screenshot_h if screenshot_h > 0 else 1.0 + } + +# 2. 执行动作 +@app.route('/action', methods=['POST']) +def action(): + data = request.json + try: + if data['type'] == 'click': + # 获取当前截图分辨率(可能每次不同) + screenshot_w, screenshot_h = get_screenshot_size() + + # 从截图坐标转换为实际屏幕坐标 + # 如果截图分辨率和屏幕分辨率不同,需要按比例缩放 + x = data['x'] + y = data['y'] + + # 计算缩放比例 + scale_x = SCREEN_WIDTH / screenshot_w if screenshot_w > 0 else 1.0 + scale_y = SCREEN_HEIGHT / screenshot_h if screenshot_h > 0 else 1.0 + + # 应用缩放 + actual_x = int(x * scale_x) + actual_y = int(y * scale_y) + + print(f"收到坐标: ({x}, {y}) -> 转换后: ({actual_x}, {actual_y}) [缩放比例: {scale_x:.2f}, {scale_y:.2f}]") + + pyautogui.click(x=actual_x, y=actual_y) + elif data['type'] == 'type': + pyautogui.write(data['text']) + elif data['type'] == 'hotkey': + pyautogui.hotkey(*data['keys']) # 例如 ['ctrl', 's'] + return {"status": "success"} + except Exception as e: + return {"status": "error", "msg": str(e)} + +# 获取当前鼠标位置 (用于Host录制辅助) +@app.route('/mouse_pos', methods=['GET']) +def mouse_pos(): + """获取虚拟机当前鼠标位置""" + try: + x, y = pyautogui.position() + return { + "status": "success", + "x": int(x), + "y": int(y), + "timestamp": time.time() + } + except Exception as e: + return {"status": "error", "msg": str(e)}, 500 + +# 3. [关键!] 初始化环境 +@app.route('/reset', methods=['POST']) +def reset(): + # 这里可以写简单的逻辑: + # 1. 杀死 Jade 进程 + os.system("taskkill /f /im jade.exe") + # 2. 这里的"重置"比快照弱,但对于 M1 调试更方便 + # 如果必须用快照,需要在 Step 3 的 Mac 端调用 vmrun + return {"status": "reset_done"} + +# 4. 列出桌面文件(用于调试) +@app.route('/list_desktop', methods=['GET']) +def list_desktop(): + """列出桌面上的文件""" + try: + desktop = os.path.expanduser(r"~\Desktop") + if os.path.exists(desktop): + files = os.listdir(desktop) + return {"status": "success", "files": files, "desktop_path": desktop} + else: + return {"status": "error", "msg": "Desktop path not found"} + except Exception as e: + return {"status": "error", "msg": str(e)} + +# 5. 下载桌面文件(备用文件收集方式) +@app.route('/download/', methods=['GET']) +def download_file(filename): + """ + 从桌面下载文件 + 用作vmrun文件传输的备用方案 + """ + try: + desktop = os.path.expanduser(r"~\Desktop") + filepath = os.path.join(desktop, filename) + + if not os.path.exists(filepath): + return {"status": "error", "msg": f"File not found: {filename}"}, 404 + + return send_file(filepath, as_attachment=True, download_name=filename) + except Exception as e: + return {"status": "error", "msg": str(e)}, 500 + +if __name__ == '__main__': + # 监听 0.0.0.0 允许外部访问 + print("\n" + "=" * 60) + print("JADE Agent Server 启动") + print("=" * 60) + print(f"监听地址: 0.0.0.0:5000") + print(f"屏幕分辨率: {SCREEN_WIDTH}x{SCREEN_HEIGHT}") + print(f"截图分辨率: {SCREENSHOT_WIDTH}x{SCREENSHOT_HEIGHT}") + print(f"DPI缩放: {DPI_SCALE}") + print("=" * 60) + print("\n可用接口:") + print(" GET /screenshot - 获取屏幕截图") + print(" GET /screen_info - 获取屏幕信息") + print(" POST /action - 执行动作") + print(" POST /reset - 重置环境") + print(" GET /list_desktop - 列出桌面文件") + print(" GET /download/ - 下载桌面文件") + print("=" * 60 + "\n") + + app.run(host='0.0.0.0', port=5000) diff --git a/scripts/guest_scripts/start_agent.bat b/scripts/guest_scripts/start_agent.bat new file mode 100644 index 0000000..bc880c9 --- /dev/null +++ b/scripts/guest_scripts/start_agent.bat @@ -0,0 +1,4 @@ +@echo off +cd C:\Users\lzy\workplace\OSWorld\desktop_env\server\ +..venv\bin\activate +python agent_server.py \ No newline at end of file diff --git a/scripts/tools/batch_create_tasks.py b/scripts/tools/batch_create_tasks.py new file mode 100755 index 0000000..66def19 --- /dev/null +++ b/scripts/tools/batch_create_tasks.py @@ -0,0 +1,213 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +批量创建任务 +从JSON定义文件批量创建任务 +用法: + python scripts/tools/batch_create_tasks.py tasks/batch_definitions/basic_processing_tasks.json +""" + +import json +import os +import sys +from pathlib import Path + +# 添加项目根目录到路径 +project_root = Path(__file__).parent.parent.parent +sys.path.insert(0, str(project_root)) + +from scripts.tools.init_task import init_task + + +def batch_create_tasks(definition_file, project_root=".", force=False, skip_existing=True): + """ + 批量创建任务 + + Args: + definition_file: 任务定义JSON文件路径 + project_root: 项目根目录 + force: 是否强制覆盖已存在的任务 + skip_existing: 是否跳过已存在的任务(与force互斥) + """ + # 读取任务定义 + with open(definition_file, 'r', encoding='utf-8') as f: + data = json.load(f) + + tasks = data.get("tasks", []) + category = data.get("category", "unknown") + tutorial_source = data.get("tutorial_source", "") + + print("=" * 60) + print(f"📚 批量创建任务: {category}") + if tutorial_source: + print(f" 教程来源: {tutorial_source}") + print(f" 任务数量: {len(tasks)}") + print("=" * 60) + + results = { + "success": [], + "skipped": [], + "failed": [] + } + + for i, task_def in enumerate(tasks, 1): + task_id = task_def["id"] + print(f"\n[{i}/{len(tasks)}] 处理任务: {task_id}") + print("-" * 60) + + # 检查是否已存在 + task_dir = os.path.join(project_root, "tasks", task_id) + if os.path.exists(task_dir) and not force: + if skip_existing: + print(f"⏭️ 跳过(已存在): {task_id}") + results["skipped"].append(task_id) + continue + else: + print(f"⚠️ 任务已存在: {task_id}") + print(" 使用 --force 强制覆盖,或设置 skip_existing=True") + results["failed"].append((task_id, "已存在")) + continue + + try: + # 调用 init_task 创建任务结构 + success = init_task( + task_id=task_id, + project_root=project_root, + force=force, + category=task_def.get("category", category), + difficulty=task_def.get("difficulty", "easy"), + instruction=task_def.get("instruction", "") + ) + + if not success: + results["failed"].append((task_id, "初始化失败")) + continue + + # 更新 task.json + task_json_path = os.path.join(task_dir, "task.json") + if os.path.exists(task_json_path): + with open(task_json_path, 'r', encoding='utf-8') as f: + task_config = json.load(f) + + # 更新输入输出配置 + source_file = task_def.get("source_file", "DEMO01.MDI") + if not os.path.isabs(source_file) and not source_file.startswith("../"): + source_file = f"../../data/source/{source_file}" + + filename = os.path.basename(source_file) + inject_to = f"C:\\Users\\lzy\\Desktop\\{filename}" + + output_filename = task_def.get("output_filename", "result.txt") + collect_from = f"C:\\Users\\lzy\\Desktop\\{output_filename}" + + task_config["input"] = { + "source_file": source_file, + "inject_to": inject_to + } + task_config["output"] = { + "expected_file": output_filename, + "collect_from": collect_from + } + + # 更新评测方法 + eval_method = task_def.get("evaluation_method", "xrd_data_compare") + task_config["evaluation"]["method"] = eval_method + + # 添加教程来源 + if task_def.get("tutorial_source"): + task_config["tutorial_source"] = task_def["tutorial_source"] + + # 添加备注 + if task_def.get("notes"): + task_config["notes"] = task_def["notes"] + + # 保存 + with open(task_json_path, 'w', encoding='utf-8') as f: + json.dump(task_config, f, ensure_ascii=False, indent=2) + + print(f"✅ 任务创建成功: {task_id}") + results["success"].append(task_id) + else: + print(f"❌ task.json 未创建: {task_json_path}") + results["failed"].append((task_id, "配置文件未创建")) + + except Exception as e: + print(f"❌ 创建任务失败: {task_id}") + print(f" 错误: {e}") + import traceback + traceback.print_exc() + results["failed"].append((task_id, str(e))) + + # 打印总结 + print("\n" + "=" * 60) + print("📊 批量创建总结") + print("=" * 60) + print(f"✅ 成功: {len(results['success'])}") + if results["success"]: + for task_id in results["success"]: + print(f" - {task_id}") + + if results["skipped"]: + print(f"\n⏭️ 跳过: {len(results['skipped'])}") + for task_id in results["skipped"]: + print(f" - {task_id}") + + if results["failed"]: + print(f"\n❌ 失败: {len(results['failed'])}") + for task_id, reason in results["failed"]: + print(f" - {task_id}: {reason}") + + print("=" * 60) + + return results + + +def main(): + import argparse + + parser = argparse.ArgumentParser( + description="批量创建任务", + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=""" +使用示例: + # 批量创建任务(跳过已存在的) + python scripts/tools/batch_create_tasks.py tasks/batch_definitions/basic_processing_tasks.json + + # 强制覆盖已存在的任务 + python scripts/tools/batch_create_tasks.py tasks/batch_definitions/basic_processing_tasks.json --force + + # 不跳过已存在的任务(遇到已存在就失败) + python scripts/tools/batch_create_tasks.py tasks/batch_definitions/basic_processing_tasks.json --no-skip-existing + """ + ) + + parser.add_argument("definition_file", help="任务定义JSON文件路径") + parser.add_argument("--project-root", default=".", help="项目根目录") + parser.add_argument("--force", action="store_true", help="强制覆盖已存在的任务") + parser.add_argument("--no-skip-existing", action="store_true", help="不跳过已存在的任务(遇到就失败)") + + args = parser.parse_args() + + if not os.path.exists(args.definition_file): + print(f"❌ 定义文件不存在: {args.definition_file}") + sys.exit(1) + + skip_existing = not args.no_skip_existing + + results = batch_create_tasks( + args.definition_file, + args.project_root, + force=args.force, + skip_existing=skip_existing + ) + + # 如果有失败的任务,返回非0退出码 + if results["failed"]: + sys.exit(1) + else: + sys.exit(0) + + +if __name__ == "__main__": + main() + diff --git a/scripts/tools/collect_task.py b/scripts/tools/collect_task.py new file mode 100644 index 0000000..e674257 --- /dev/null +++ b/scripts/tools/collect_task.py @@ -0,0 +1,265 @@ +""" +任务数据采集入口 +整合环境控制、轨迹录制、文件收集的完整流程 +""" +import os +import sys +import argparse +import json +import logging + +# 添加父目录到路径 +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from core.jade_env import JadeEnv +from core.recorder import record_interactive +from utils.config_loader import load_config, get_vm_config, get_network_config + +logging.basicConfig(level=logging.INFO, format='%(levelname)s: %(message)s') +logger = logging.getLogger(__name__) + + +def load_default_config(): + """加载默认配置""" + try: + config = load_config() + vm_config = get_vm_config(config) + network_config = get_network_config(config) + + return { + "vmx_path": vm_config.get('vmx_path'), + "snapshot_name": vm_config.get('snapshot_name', 'Jade_Ready'), + "vm_ip": network_config.get('vm_ip'), + "vm_password": vm_config.get('vm_password'), + "guest_username": vm_config.get('guest_username'), + "guest_password": vm_config.get('guest_password') + } + except Exception as e: + logger.warning(f"⚠️ 无法加载config.json: {e}") + logger.info(" 使用硬编码配置") + return { + "vmx_path": "/Volumes/Castor/虚拟机/Jade_Win_11.vmwarevm/Windows 11 64 位 ARM 2.vmx", + "snapshot_name": "Jade_Ready", + "vm_ip": "192.168.116.129", + "vm_password": "lizhanyuan", + "guest_username": "lzy", + "guest_password": "LIZHANYUAN" + } + + +def load_task_config(task_id, project_root="."): + """加载任务配置文件""" + task_json_path = os.path.join(project_root, "tasks", task_id, "task.json") + + if not os.path.exists(task_json_path): + logger.error(f"❌ 任务配置文件不存在: {task_json_path}") + logger.info(" 请先创建任务目录和task.json") + return None + + with open(task_json_path, 'r', encoding='utf-8') as f: + return json.load(f) + + +def mode_reset(env, task_config, project_root="."): + """ + 模式1: 重置环境并注入输入文件 + """ + print("\n" + "=" * 60) + print("🔄 模式: 重置环境") + print("=" * 60) + + # 1. 重置虚拟机 + env.reset() + + # 2. 注入输入文件 + if 'input' in task_config: + input_config = task_config['input'] + source_file = input_config.get('source_file') + + if source_file: + # 处理相对路径(相对于任务目录) + if not os.path.isabs(source_file): + task_dir = os.path.join(project_root, "tasks", task_config['id']) + source_file = os.path.normpath(os.path.join(task_dir, source_file)) + + # 确保使用绝对路径 + source_file = os.path.abspath(source_file) + + if os.path.exists(source_file): + # 从Windows路径中提取文件名(处理反斜杠) + inject_to = input_config.get('inject_to', '') + if inject_to: + # 使用Windows路径分隔符分割 + guest_filename = inject_to.split('\\')[-1] + else: + guest_filename = os.path.basename(source_file) + + env.inject_file(source_file, guest_filename) + else: + logger.warning(f"⚠️ 输入文件不存在: {source_file}") + + print("\n✅ 环境准备完成!") + print("=" * 60) + print("💡 下一步:开始录制操作") + print(f" python scripts/tools/collect_task.py {task_config['id']} --mode record") + print("=" * 60 + "\n") + + +def mode_record(env, task_config, project_root="."): + """ + 模式2: 录制人类操作轨迹 + """ + task_id = task_config['id'] + output_dir = os.path.join(project_root, "tasks", task_id, "human_demo") + + print("\n" + "=" * 60) + print("🎥 模式: 录制轨迹") + print("=" * 60) + print(f"任务: {task_config.get('instruction', 'N/A')}") + print("=" * 60) + + # 创建录制器并开始录制 + record_interactive(env, task_id, output_dir) + + print("\n💡 下一步:处理坐标转换") + print(f" python scripts/tools/process_trajectory.py {task_id}") + print("=" * 60 + "\n") + + +def mode_collect(env, task_config, project_root="."): + """ + 模式3: 收集输出文件到ground_truth + """ + print("\n" + "=" * 60) + print("📦 模式: 收集结果文件") + print("=" * 60) + + task_id = task_config['id'] + + if 'output' in task_config: + output_config = task_config['output'] + expected_file = output_config.get('expected_file') + + if expected_file: + # 目标路径 + gt_dir = os.path.join(project_root, "tasks", task_id, "ground_truth") + os.makedirs(gt_dir, exist_ok=True) + + host_path = os.path.join(gt_dir, expected_file) + + # 收集文件 + env.collect_file(expected_file, host_path) + + print(f"\n✅ 文件已保存到: {host_path}") + else: + logger.warning("⚠️ 任务配置中未指定expected_file") + else: + logger.warning("⚠️ 任务配置中未指定output") + + print("\n" + "=" * 60) + print("💡 下一步:验证评测") + print(f" python scripts/tools/run_eval.py {task_id}") + print("=" * 60 + "\n") + + +def mode_full(env, task_config, project_root="."): + """ + 模式4: 完整流程(reset + record + collect) + """ + print("\n" + "=" * 60) + print("🔄 模式: 完整采集流程") + print("=" * 60) + + # Step 1: Reset + mode_reset(env, task_config, project_root) + + # Step 2: Record + input("\n按Enter键开始录制...") + mode_record(env, task_config, project_root) + + # Step 3: Collect + input("\n按Enter键收集结果...") + mode_collect(env, task_config, project_root) + + print("\n✅ 完整采集流程完成!") + + +def main(): + parser = argparse.ArgumentParser( + description="JADE Benchmark 任务数据采集工具", + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=""" +使用示例: + # 完整流程(推荐) + python scripts/collect_task.py smoothing_001 --mode full + + # 分步执行 + python scripts/collect_task.py smoothing_001 --mode reset # 1. 重置并注入文件 + python scripts/collect_task.py smoothing_001 --mode record # 2. 录制操作 + python scripts/collect_task.py smoothing_001 --mode collect # 3. 收集结果 + """ + ) + + parser.add_argument("task_id", help="任务ID(对应tasks/目录下的子目录名)") + parser.add_argument( + "--mode", + choices=["reset", "record", "collect", "full"], + default="full", + help="采集模式(默认:full)" + ) + parser.add_argument("--project-root", default=".", help="项目根目录") + parser.add_argument("--vmx", help="虚拟机.vmx文件路径(覆盖默认配置)") + parser.add_argument("--snapshot", help="快照名称(覆盖默认配置)") + parser.add_argument("--vm-ip", help="虚拟机IP地址(覆盖默认配置)") + + args = parser.parse_args() + + # 加载任务配置 + task_config = load_task_config(args.task_id, args.project_root) + if not task_config: + sys.exit(1) + + # 加载并合并配置 + config = load_default_config() + if args.vmx: + config['vmx_path'] = args.vmx + if args.snapshot: + config['snapshot_name'] = args.snapshot + if args.vm_ip: + config['vm_ip'] = args.vm_ip + + # 初始化环境 + try: + logger.info("初始化JADE环境...") + env = JadeEnv( + vmx_path=config['vmx_path'], + snapshot_name=config['snapshot_name'], + vm_ip=config['vm_ip'], + vm_password=config.get('vm_password'), + guest_username=config.get('guest_username'), + guest_password=config.get('guest_password') + ) + + # 执行对应模式 + if args.mode == "reset": + mode_reset(env, task_config, args.project_root) + elif args.mode == "record": + mode_record(env, task_config, args.project_root) + elif args.mode == "collect": + mode_collect(env, task_config, args.project_root) + elif args.mode == "full": + mode_full(env, task_config, args.project_root) + + except KeyboardInterrupt: + print("\n\n⏹ 操作已取消") + sys.exit(1) + except Exception as e: + logger.error(f"❌ 错误: {e}") + import traceback + traceback.print_exc() + sys.exit(1) + + +if __name__ == "__main__": + main() + diff --git a/scripts/tools/detect_vm_ip.py b/scripts/tools/detect_vm_ip.py new file mode 100755 index 0000000..a2ccf4c --- /dev/null +++ b/scripts/tools/detect_vm_ip.py @@ -0,0 +1,223 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +自动检测VM的IP地址 +使用vmrun getGuestIPAddress命令获取VM的当前IP +""" +import subprocess +import sys +import json +import os +from pathlib import Path + +try: + import requests +except ImportError: + requests = None + +# 添加项目根目录到路径 +project_root = Path(__file__).parent.parent.parent +sys.path.insert(0, str(project_root)) + +from scripts.utils.config_loader import load_config + + +def get_vm_ip(vmx_path, vm_password=None): + """ + 使用vmrun获取VM的IP地址 + + Args: + vmx_path: 虚拟机.vmx文件路径 + vm_password: 虚拟机文件加密密码(可选) + + Returns: + str: VM的IP地址,如果失败返回None + """ + vmrun = "/Applications/VMware Fusion.app/Contents/Library/vmrun" + + # 构建命令 + cmd = [vmrun, "-T", "fusion"] + if vm_password: + cmd.extend(["-vp", vm_password]) + cmd.extend(["getGuestIPAddress", vmx_path]) + + try: + result = subprocess.run( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + timeout=10 + ) + + if result.returncode == 0: + ip = result.stdout.strip() + if ip and ip != "": + return ip + else: + print(f"⚠️ vmrun返回空IP地址") + return None + else: + error_msg = result.stderr or result.stdout + print(f"❌ 获取IP失败: {error_msg}") + return None + + except subprocess.TimeoutExpired: + print(f"❌ 获取IP超时") + return None + except Exception as e: + print(f"❌ 获取IP异常: {e}") + return None + + +def update_config_ip(new_ip, config_path="config.json"): + """ + 更新config.json中的IP地址 + + Args: + new_ip: 新的IP地址 + config_path: 配置文件路径 + """ + config_path = os.path.join(project_root, config_path) + + if not os.path.exists(config_path): + print(f"❌ 配置文件不存在: {config_path}") + return False + + try: + with open(config_path, 'r', encoding='utf-8') as f: + config = json.load(f) + + old_ip = config.get("network", {}).get("vm_ip", "未知") + + if old_ip == new_ip: + print(f"✅ IP地址未变化: {new_ip}") + return True + + config["network"]["vm_ip"] = new_ip + + with open(config_path, 'w', encoding='utf-8') as f: + json.dump(config, f, indent=2, ensure_ascii=False) + + print(f"✅ 已更新IP地址: {old_ip} → {new_ip}") + return True + + except Exception as e: + print(f"❌ 更新配置文件失败: {e}") + return False + + +def test_http_connection(ip, port=5000, timeout=5): + """ + 测试HTTP连接是否可用 + + Args: + ip: VM的IP地址 + port: 端口号 + timeout: 超时时间(秒) + + Returns: + bool: 连接是否成功 + """ + try: + import requests + except ImportError: + print(f"⚠️ requests模块未安装,跳过HTTP连接测试") + return False + + url = f"http://{ip}:{port}/screen_info" + proxies = {'http': None, 'https': None} # 绕过代理 + + try: + response = requests.get(url, timeout=timeout, proxies=proxies) + if response.status_code == 200: + print(f"✅ HTTP服务连接成功: {url}") + return True + else: + print(f"⚠️ HTTP服务响应异常: 状态码 {response.status_code}") + return False + except requests.exceptions.Timeout: + print(f"⚠️ HTTP服务连接超时: {url}") + return False + except requests.exceptions.ConnectionError as e: + print(f"⚠️ HTTP服务连接失败: {url}") + print(f" 错误: {str(e)[:100]}") + return False + except Exception as e: + print(f"⚠️ HTTP连接异常: {e}") + return False + + +def main(): + """主函数""" + print("=" * 60) + print("🔍 检测VM IP地址") + print("=" * 60) + + # 加载配置 + try: + config = load_config() + vmx_path = config["vmware"]["vmx_path"] + vm_password = config["vmware"].get("vm_password") + current_ip = config["network"].get("vm_ip", "未知") + except Exception as e: + print(f"❌ 加载配置失败: {e}") + sys.exit(1) + + print(f"\n📋 当前配置:") + print(f" VM路径: {os.path.basename(vmx_path)}") + print(f" 当前IP: {current_ip}") + print(f" 端口: {config['network'].get('agent_server_port', 5000)}") + + # 获取VM IP + print(f"\n🔍 正在获取VM IP地址...") + vm_ip = get_vm_ip(vmx_path, vm_password) + + if not vm_ip: + print("\n❌ 无法获取VM IP地址") + print(" 可能原因:") + print(" 1. VM未运行") + print(" 2. VM网络未配置") + print(" 3. vmrun命令执行失败") + sys.exit(1) + + print(f"✅ 检测到VM IP: {vm_ip}") + + # 测试HTTP连接 + port = config["network"].get("agent_server_port", 5000) + print(f"\n🔗 测试HTTP连接 (端口 {port})...") + http_ok = test_http_connection(vm_ip, port) + + # 询问是否更新配置 + if vm_ip != current_ip: + print(f"\n⚠️ IP地址已变化: {current_ip} → {vm_ip}") + + if http_ok: + print(f"\n❓ 是否更新配置文件? (y/n): ", end="") + try: + choice = input().strip().lower() + if choice == 'y': + if update_config_ip(vm_ip): + print(f"\n✅ 配置已更新!") + else: + print(f"\n❌ 配置更新失败") + else: + print(f"\n⏭️ 跳过更新") + except KeyboardInterrupt: + print(f"\n\n⚠️ 用户取消") + else: + print(f"\n⚠️ HTTP服务不可用,请检查:") + print(f" 1. VM中是否运行了 agent_server.py?") + print(f" 2. 端口 {port} 是否被占用?") + print(f" 3. 防火墙是否阻止了连接?") + else: + print(f"\n✅ IP地址未变化") + if not http_ok: + print(f"\n⚠️ 但HTTP服务不可用,请检查VM中的agent_server.py") + + print("=" * 60) + + +if __name__ == "__main__": + main() + diff --git a/scripts/tools/extract_task_from_tutorial.py b/scripts/tools/extract_task_from_tutorial.py new file mode 100755 index 0000000..cb2691b --- /dev/null +++ b/scripts/tools/extract_task_from_tutorial.py @@ -0,0 +1,271 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +从教程信息快速生成任务定义 +用法: + python scripts/tools/extract_task_from_tutorial.py +""" + +import json +import os +import sys +from pathlib import Path + +# 添加项目根目录到路径 +project_root = Path(__file__).parent.parent.parent +sys.path.insert(0, str(project_root)) + +from scripts.tools.init_task import init_task + + +# 任务类别和难度映射 +CATEGORY_MAP = { + "1": "basic_processing", + "2": "peak_analysis", + "3": "phase_identification", + "4": "crystal_parameters", + "5": "calibration", + "6": "advanced_analysis", +} + +DIFFICULTY_MAP = { + "1": "easy", + "2": "medium", + "3": "hard", +} + +# 常见任务模板 +TASK_TEMPLATES = { + "basic_processing": { + "open_file": "请打开桌面上的 {filename} 文件。", + "smooth": "请打开桌面上的 {filename} 文件,进行平滑处理 (Smoothing),然后将处理后的曲线导出为 ASCII (.txt) 文件并命名为 {output}。", + "background": "请打开桌面上的 {filename} 文件,进行背景扣除 (Background Removal),然后将处理后的曲线导出为 ASCII (.txt) 文件并命名为 {output}。", + "export": "请打开桌面上的 {filename} 文件,将当前曲线导出为 ASCII (.txt) 文件并命名为 {output}。", + }, + "peak_analysis": { + "peak_search": "请打开桌面上的 {filename} 文件,进行寻峰操作 (Peak Search),并导出寻峰结果文件 {output}。", + "peak_separation": "请打开桌面上的 {filename} 文件,进行多峰分离操作 (Peak Separation),并导出结果文件 {output}。", + "peak_fitting": "请打开桌面上的 {filename} 文件,进行峰形拟合 (Peak Fitting),并导出结果文件 {output}。", + }, + "phase_identification": { + "phase_search": "请打开桌面上的 {filename} 文件,进行物相检索 (Phase Search),并导出检索结果文件 {output}。", + "quantitative": "请打开桌面上的 {filename} 文件,进行物相定量分析 (Quantitative Analysis),并导出结果文件 {output}。", + }, + "crystal_parameters": { + "lattice_constant": "请打开桌面上的 {filename} 文件,精确测定晶格常数 (Lattice Constant),并导出结果文件 {output}。", + "crystal_size": "请打开桌面上的 {filename} 文件,使用Scherrer公式计算晶粒大小 (Crystal Size),并导出结果文件 {output}。", + "stress": "请打开桌面上的 {filename} 文件,进行残余应力分析 (Stress Analysis),并导出结果文件 {output}。", + "crystallinity": "请打开桌面上的 {filename} 文件,计算结晶化度 (Crystallinity),并导出结果文件 {output}。", + }, +} + + +def print_category_menu(): + """打印类别菜单""" + print("\n📚 任务类别:") + print(" 1. basic_processing (基础处理)") + print(" 2. peak_analysis (峰分析)") + print(" 3. phase_identification (物相检索)") + print(" 4. crystal_parameters (晶体参数)") + print(" 5. calibration (校正)") + print(" 6. advanced_analysis (高级分析)") + + +def print_difficulty_menu(): + """打印难度菜单""" + print("\n📊 难度等级:") + print(" 1. easy (简单,3-5步操作)") + print(" 2. medium (中等,5-10步操作)") + print(" 3. hard (困难,10+步操作)") + + +def get_user_input(): + """交互式获取用户输入""" + print("=" * 60) + print("🎯 从教程提取任务 - 快速生成工具") + print("=" * 60) + + # 任务ID + task_id = input("\n📝 任务ID (例如: peak_search_001): ").strip() + if not task_id: + print("❌ 任务ID不能为空") + return None + + # 类别 + print_category_menu() + category_choice = input("\n选择类别 (1-6): ").strip() + category = CATEGORY_MAP.get(category_choice) + if not category: + print("❌ 无效的类别选择") + return None + + # 难度 + print_difficulty_menu() + difficulty_choice = input("\n选择难度 (1-3): ").strip() + difficulty = DIFFICULTY_MAP.get(difficulty_choice) + if not difficulty: + print("❌ 无效的难度选择") + return None + + # 输入文件 + print("\n📁 输入文件配置:") + source_file = input(" 源文件路径 (相对于data/source/, 例如: DEMO01.MDI): ").strip() + if not source_file: + source_file = "DEMO01.MDI" + + # 输出文件 + print("\n📤 输出文件配置:") + output_filename = input(" 输出文件名 (例如: result.txt): ").strip() + if not output_filename: + output_filename = "result.txt" + + # 任务类型(如果类别有模板) + task_type = None + if category in TASK_TEMPLATES: + templates = TASK_TEMPLATES[category] + print(f"\n📋 可用任务模板 ({category}):") + for i, (key, template) in enumerate(templates.items(), 1): + print(f" {i}. {key}") + + use_template = input("\n使用模板? (y/n, 默认n): ").strip().lower() + if use_template == 'y': + template_choice = input(f"选择模板 (1-{len(templates)}): ").strip() + try: + template_key = list(templates.keys())[int(template_choice) - 1] + task_type = template_key + except (ValueError, IndexError): + print("⚠️ 无效的模板选择,将使用自定义指令") + + # 指令 + if task_type and category in TASK_TEMPLATES: + # 使用模板 + template = TASK_TEMPLATES[category][task_type] + instruction = template.format( + filename=os.path.basename(source_file), + output=output_filename + ) + print(f"\n✅ 生成的指令 (模板): {instruction}") + confirm = input("使用此指令? (y/n, 默认y): ").strip().lower() + if confirm == 'n': + instruction = input("\n📝 自定义指令: ").strip() + else: + # 自定义指令 + instruction = input("\n📝 任务指令 (中文描述): ").strip() + + if not instruction: + print("❌ 指令不能为空") + return None + + # 教程来源(可选) + tutorial_source = input("\n📚 教程来源 (可选,例如: 教程(1)): ").strip() + + return { + "task_id": task_id, + "category": category, + "difficulty": difficulty, + "instruction": instruction, + "source_file": source_file, + "output_filename": output_filename, + "tutorial_source": tutorial_source, + } + + +def create_task_from_info(info): + """根据信息创建任务""" + task_id = info["task_id"] + category = info["category"] + difficulty = info["difficulty"] + instruction = info["instruction"] + + # 构建源文件路径 + source_file = info["source_file"] + if not os.path.isabs(source_file): + # 相对路径,假设在 data/source/ 下 + source_file = f"../../data/source/{source_file}" + + # 构建VM路径 + filename = os.path.basename(source_file) + inject_to = f"C:\\Users\\lzy\\Desktop\\{filename}" + + # 输出文件路径 + output_filename = info["output_filename"] + collect_from = f"C:\\Users\\lzy\\Desktop\\{output_filename}" + + print(f"\n🚀 正在创建任务: {task_id}") + print(f" 类别: {category}") + print(f" 难度: {difficulty}") + print(f" 源文件: {source_file}") + print(f" 输出文件: {output_filename}") + + # 调用 init_task + try: + init_task( + task_id=task_id, + category=category, + difficulty=difficulty, + instruction=instruction, + project_root=str(project_root) + ) + + # 更新 task.json + task_json_path = project_root / "tasks" / task_id / "task.json" + if task_json_path.exists(): + with open(task_json_path, 'r', encoding='utf-8') as f: + task_config = json.load(f) + + # 更新输入输出配置 + task_config["input"] = { + "source_file": source_file, + "inject_to": inject_to + } + task_config["output"] = { + "expected_file": output_filename, + "collect_from": collect_from + } + + # 添加教程来源(如果有) + if info.get("tutorial_source"): + task_config["tutorial_source"] = info["tutorial_source"] + + # 保存 + with open(task_json_path, 'w', encoding='utf-8') as f: + json.dump(task_config, f, ensure_ascii=False, indent=2) + + print(f"\n✅ 任务创建成功!") + print(f" 任务目录: tasks/{task_id}/") + print(f" 配置文件: tasks/{task_id}/task.json") + print(f"\n📝 下一步:") + print(f" 1. 检查并完善 task.json") + print(f" 2. 运行: python scripts/tools/collect_task.py {task_id} --mode full") + + return True + else: + print(f"❌ 任务目录创建失败: {task_json_path}") + return False + + except Exception as e: + print(f"❌ 创建任务时出错: {e}") + import traceback + traceback.print_exc() + return False + + +def main(): + """主函数""" + try: + info = get_user_input() + if info: + create_task_from_info(info) + else: + print("\n❌ 任务创建取消") + except KeyboardInterrupt: + print("\n\n⚠️ 用户取消操作") + except Exception as e: + print(f"\n❌ 发生错误: {e}") + import traceback + traceback.print_exc() + + +if __name__ == "__main__": + main() + diff --git a/scripts/tools/init_task.py b/scripts/tools/init_task.py new file mode 100644 index 0000000..7a3e18d --- /dev/null +++ b/scripts/tools/init_task.py @@ -0,0 +1,178 @@ +""" +任务初始化工具 +快速创建新任务的目录结构和配置文件模板 +""" +import os +import json +import sys +import argparse + + +TASK_JSON_TEMPLATE = { + "id": "", + "category": "basic_processing", # basic_processing, peak_analysis, phase_identification, compound_tasks + "difficulty": "easy", # easy, medium, hard + + "instruction": "请填写任务指令", + + "input": { + "source_file": "../../data/source/DEMO01.MDI", + "inject_to": "C:\\Users\\lzy\\Desktop\\DEMO01.MDI" + }, + + "output": { + "expected_file": "result.txt", + "collect_from": "C:\\Users\\lzy\\Desktop\\result.txt" + }, + + "evaluation": { + "method": "xrd_data_compare", + "ground_truth": "ground_truth/result.txt", + "target_output": "agent_output/result.txt", + "tolerance": 1e-4 + } +} + + +def init_task(task_id, project_root=".", force=False, category=None, difficulty=None, instruction=None): + """ + 初始化新任务 + + Args: + task_id: 任务ID + project_root: 项目根目录 + force: 是否覆盖已存在的任务 + category: 任务类别(可选) + difficulty: 任务难度(可选) + instruction: 任务指令(可选) + """ + task_dir = os.path.join(project_root, "tasks", task_id) + + # 检查是否已存在 + if os.path.exists(task_dir) and not force: + print(f"❌ 任务目录已存在: {task_dir}") + print(" 使用 --force 参数强制覆盖") + return False + + print(f"创建任务: {task_id}") + print("=" * 60) + + # 创建目录结构 + directories = [ + task_dir, + os.path.join(task_dir, "ground_truth"), + os.path.join(task_dir, "human_demo"), + os.path.join(task_dir, "human_demo", "screens"), + os.path.join(task_dir, "agent_output") + ] + + for directory in directories: + os.makedirs(directory, exist_ok=True) + print(f"✅ 创建目录: {os.path.relpath(directory, project_root)}") + + # 创建task.json + task_config = TASK_JSON_TEMPLATE.copy() + task_config["id"] = task_id + + # 更新可选参数 + if category: + task_config["category"] = category + if difficulty: + task_config["difficulty"] = difficulty + if instruction: + task_config["instruction"] = instruction + + task_json_path = os.path.join(task_dir, "task.json") + with open(task_json_path, 'w', encoding='utf-8') as f: + json.dump(task_config, f, indent=2, ensure_ascii=False) + + print(f"✅ 创建配置: {os.path.relpath(task_json_path, project_root)}") + + # 创建README + readme_content = f"""# 任务: {task_id} + +## 任务信息 +- **ID**: {task_id} +- **类别**: {task_config['category']} +- **难度**: {task_config['difficulty']} + +## 指令 +{task_config['instruction']} + +## 数据采集状态 +- [ ] 环境重置与文件注入 +- [ ] 操作轨迹录制 +- [ ] 结果文件收集 +- [ ] 坐标转换处理 +- [ ] 评测验证 + +## 采集命令 +```bash +# 完整流程 +python scripts/collect_task.py {task_id} --mode full + +# 分步执行 +python scripts/collect_task.py {task_id} --mode reset +python scripts/collect_task.py {task_id} --mode record +python scripts/collect_task.py {task_id} --mode collect +python scripts/process_trajectory.py {task_id} +python scripts/run_eval.py {task_id} +``` + +## 文件结构 +``` +{task_id}/ +├── task.json # 任务配置 +├── ground_truth/ # 标准答案输出 +├── human_demo/ # 人类操作轨迹 +│ ├── actions_raw.json # 原始轨迹(未转换坐标) +│ ├── actions.json # 处理后轨迹(已转换坐标) +│ └── screens/ # 截图序列 +└── agent_output/ # Agent输出(评测时使用) +``` +""" + + readme_path = os.path.join(task_dir, "README.md") + with open(readme_path, 'w', encoding='utf-8') as f: + f.write(readme_content) + + print(f"✅ 创建说明: {os.path.relpath(readme_path, project_root)}") + + print("=" * 60) + print("✅ 任务初始化完成!") + print("\n📝 下一步:") + print(f" 1. 编辑任务配置: {task_json_path}") + print(f" 2. 确保输入文件存在:例如 {task_config['input']['source_file']}") + print(f" 3. 开始数据采集: python scripts/tools/collect_task.py {task_id}") + print("=" * 60 + "\n") + + return True + + +def main(): + parser = argparse.ArgumentParser( + description="初始化新任务", + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=""" +使用示例: + # 创建新任务 + python scripts/init_task.py smoothing_001 + + # 强制覆盖已存在的任务 + python scripts/init_task.py smoothing_001 --force + """ + ) + + parser.add_argument("task_id", help="任务ID(建议格式: category_序号)") + parser.add_argument("--project-root", default=".", help="项目根目录") + parser.add_argument("--force", action="store_true", help="强制覆盖已存在的任务") + + args = parser.parse_args() + + success = init_task(args.task_id, args.project_root, args.force) + sys.exit(0 if success else 1) + + +if __name__ == "__main__": + main() + diff --git a/scripts/tools/process_trajectory.py b/scripts/tools/process_trajectory.py new file mode 100644 index 0000000..c95e70b --- /dev/null +++ b/scripts/tools/process_trajectory.py @@ -0,0 +1,165 @@ +""" +轨迹数据后处理 +将录制的原始Host坐标转换为VM内坐标 +""" +import json +import os +import sys +import argparse +import logging + +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + + +def process_trajectory(task_id, project_root=".", force=False, + scale_x_adjust=1.0, scale_y_adjust=1.0, + offset_x=0, offset_y=0): + """ + 处理轨迹数据:将Host坐标转换为VM坐标 + + Args: + task_id: 任务ID + project_root: 项目根目录 + force: 是否强制覆盖已有的处理结果 + scale_x_adjust: X轴缩放调整系数 + scale_y_adjust: Y轴缩放调整系数 + offset_x: X轴偏移调整 + offset_y: Y轴偏移调整 + """ + # 路径 + task_dir = os.path.join(project_root, "tasks", task_id) + human_demo_dir = os.path.join(task_dir, "human_demo") + raw_path = os.path.join(human_demo_dir, "actions_raw.json") + processed_path = os.path.join(human_demo_dir, "actions.json") + + # 检查文件 + if not os.path.exists(raw_path): + logger.error(f"❌ 原始轨迹文件不存在: {raw_path}") + logger.info(" 请先运行: python scripts/collect_task.py --mode record") + return False + + if os.path.exists(processed_path) and not force: + logger.warning(f"⚠️ 处理后的文件已存在: {processed_path}") + logger.info(" 使用 --force 参数强制覆盖") + return False + + # 读取原始数据 + logger.info(f"读取原始轨迹: {raw_path}") + with open(raw_path, 'r', encoding='utf-8') as f: + data = json.load(f) + + metadata = data['metadata'] + actions = data['actions'] + + logger.info(f"任务ID: {metadata['task_id']}") + logger.info(f"动作数: {len(actions)}") + + # 获取分辨率信息 + if 'vm_resolution' in metadata and 'vm_screenshot_resolution' in metadata: + vm_w, vm_h = metadata['vm_resolution'] + screenshot_w, screenshot_h = metadata['vm_screenshot_resolution'] + + # 计算缩放比例 + # 注意:Host端的点击坐标对应截图坐标,需要转换为VM内实际坐标 + scale_x = (vm_w / screenshot_w) * scale_x_adjust + scale_y = (vm_h / screenshot_h) * scale_y_adjust + + logger.info(f"VM分辨率: {vm_w}x{vm_h}") + logger.info(f"截图分辨率: {screenshot_w}x{screenshot_h}") + logger.info(f"转换比例: X={scale_x:.3f}, Y={scale_y:.3f}") + + if scale_x_adjust != 1.0 or scale_y_adjust != 1.0: + logger.info(f"应用调整系数: X={scale_x_adjust}, Y={scale_y_adjust}") + if offset_x != 0 or offset_y != 0: + logger.info(f"应用偏移调整: X={offset_x}, Y={offset_y}") + else: + logger.warning("⚠️ 元数据缺少分辨率信息,使用默认比例1.0") + scale_x = 1.0 * scale_x_adjust + scale_y = 1.0 * scale_y_adjust + + # 转换坐标 + converted_count = 0 + for action in actions: + if 'pos_host' in action and action['pos_host']: + host_x, host_y = action['pos_host'] + + # 应用转换 + vm_x = int(host_x * scale_x + offset_x) + vm_y = int(host_y * scale_y + offset_y) + + action['pos_vm'] = [vm_x, vm_y] + converted_count += 1 + + logger.info(f"✅ 坐标转换完成: {converted_count}/{len(actions)} 个动作") + + # 添加处理信息到元数据 + metadata['processed'] = { + "processed_at": __import__('datetime').datetime.now().isoformat(), + "scale_x": scale_x, + "scale_y": scale_y, + "offset_x": offset_x, + "offset_y": offset_y, + "converted_actions": converted_count + } + + # 保存处理后的数据 + logger.info(f"保存处理后的轨迹: {processed_path}") + with open(processed_path, 'w', encoding='utf-8') as f: + json.dump(data, f, indent=2, ensure_ascii=False) + + logger.info("✅ 处理完成!") + + # 输出示例 + print("\n" + "=" * 60) + print("📊 坐标转换示例(前5个点击):") + print("-" * 60) + + click_count = 0 + for action in actions: + if action['type'] == 'click' and 'pos_host' in action: + host_x, host_y = action['pos_host'] + vm_x, vm_y = action['pos_vm'] if action['pos_vm'] else (0, 0) + # 转换为整数显示 + print(f" Host({int(host_x):4d}, {int(host_y):4d}) → VM({int(vm_x):4d}, {int(vm_y):4d})") + + click_count += 1 + if click_count >= 5: + break + + print("=" * 60) + print("\n💡 下一步:可视化验证(可选)") + print(f" python scripts/visualize_trajectory.py {task_id}") + print("=" * 60 + "\n") + + return True + + +def main(): + parser = argparse.ArgumentParser(description="处理轨迹数据,转换坐标") + parser.add_argument("task_id", help="任务ID") + parser.add_argument("--project-root", default=".", help="项目根目录") + parser.add_argument("--force", action="store_true", help="强制覆盖已有文件") + parser.add_argument("--scale-x", type=float, default=1.0, help="X轴缩放调整系数") + parser.add_argument("--scale-y", type=float, default=1.0, help="Y轴缩放调整系数") + parser.add_argument("--offset-x", type=int, default=0, help="X轴偏移调整") + parser.add_argument("--offset-y", type=int, default=0, help="Y轴偏移调整") + + args = parser.parse_args() + + success = process_trajectory( + task_id=args.task_id, + project_root=args.project_root, + force=args.force, + scale_x_adjust=args.scale_x, + scale_y_adjust=args.scale_y, + offset_x=args.offset_x, + offset_y=args.offset_y + ) + + sys.exit(0 if success else 1) + + +if __name__ == "__main__": + main() + diff --git a/scripts/tools/run_eval.py b/scripts/tools/run_eval.py new file mode 100644 index 0000000..58a58ff --- /dev/null +++ b/scripts/tools/run_eval.py @@ -0,0 +1,261 @@ +""" +评测入口脚本 +支持单任务或批量评测 +""" +import os +import sys +import json +import argparse +import logging +from datetime import datetime + +# 添加父目录到路径 +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from core.evaluator import evaluate + +logging.basicConfig(level=logging.INFO, format='%(levelname)s: %(message)s') +logger = logging.getLogger(__name__) + + +def evaluate_task(task_id, project_root=".", verbose=True): + """ + 评测单个任务 + + Args: + task_id: 任务ID + project_root: 项目根目录 + verbose: 是否详细输出 + + Returns: + tuple: (score, message, details) + """ + task_dir = os.path.join(project_root, "tasks", task_id) + task_json_path = os.path.join(task_dir, "task.json") + + # 检查任务配置 + if not os.path.exists(task_json_path): + logger.error(f"❌ 任务配置不存在: {task_json_path}") + return 0, "任务配置不存在", {} + + # 加载任务配置 + with open(task_json_path, 'r', encoding='utf-8') as f: + task_config = json.load(f) + + if verbose: + print("\n" + "=" * 60) + print(f"📝 评测任务: {task_id}") + print("=" * 60) + print(f"类别: {task_config.get('category', 'N/A')}") + print(f"难度: {task_config.get('difficulty', 'N/A')}") + print(f"指令: {task_config.get('instruction', 'N/A')}") + print("=" * 60) + + # 获取评测配置 + eval_config = task_config.get('evaluation', {}) + method = eval_config.get('method', 'xrd_data_compare') + + # 构建文件路径 + gt_path = os.path.join(task_dir, eval_config.get('ground_truth', '')) + agent_path = os.path.join(task_dir, eval_config.get('target_output', '')) + tolerance = eval_config.get('tolerance', 1e-4) + + # 检查文件 + if not os.path.exists(gt_path): + logger.error(f"❌ Ground truth文件不存在: {gt_path}") + return 0, "Ground truth文件不存在", {} + + if not os.path.exists(agent_path): + logger.error(f"❌ Agent输出文件不存在: {agent_path}") + return 0, "Agent输出文件不存在", {} + + # 执行评测 + try: + if method == 'xrd_data_compare': + score, message = evaluate(gt_path, agent_path, tolerance, mode="xrd_data") + elif method == 'peak_report_compare': + score, message = evaluate(gt_path, agent_path, tolerance, mode="peak_report") + else: + logger.warning(f"⚠️ 未知的评测方法: {method}") + score, message = 0, f"未知的评测方法: {method}" + + details = { + "task_id": task_id, + "method": method, + "ground_truth": gt_path, + "agent_output": agent_path, + "tolerance": tolerance, + "timestamp": datetime.now().isoformat() + } + + if verbose: + print(f"\n📊 评测结果:") + print(f" Score: {score}") + print(f" {message}") + print("=" * 60 + "\n") + + return score, message, details + + except Exception as e: + logger.error(f"❌ 评测失败: {e}") + import traceback + traceback.print_exc() + return 0, f"评测失败: {str(e)}", {} + + +def evaluate_batch(task_ids, project_root=".", output_file=None): + """ + 批量评测多个任务 + + Args: + task_ids: 任务ID列表 + project_root: 项目根目录 + output_file: 结果输出文件(JSON格式) + """ + print("\n" + "=" * 60) + print("📊 批量评测") + print("=" * 60) + print(f"任务数: {len(task_ids)}") + print("=" * 60 + "\n") + + results = [] + total_score = 0 + + for i, task_id in enumerate(task_ids, 1): + print(f"\n[{i}/{len(task_ids)}] 评测: {task_id}") + score, message, details = evaluate_task(task_id, project_root, verbose=False) + + result = { + "task_id": task_id, + "score": score, + "message": message, + **details + } + results.append(result) + total_score += score + + status = "✅ 通过" if score == 1 else "❌ 失败" + print(f" {status}: {message}") + + # 统计 + pass_count = sum(1 for r in results if r['score'] == 1) + pass_rate = pass_count / len(task_ids) * 100 if task_ids else 0 + + print("\n" + "=" * 60) + print("📈 评测统计") + print("=" * 60) + print(f"总任务数: {len(task_ids)}") + print(f"通过数: {pass_count}") + print(f"失败数: {len(task_ids) - pass_count}") + print(f"通过率: {pass_rate:.1f}%") + print(f"平均分: {total_score / len(task_ids):.2f}") + print("=" * 60 + "\n") + + # 保存结果 + if output_file: + output_data = { + "timestamp": datetime.now().isoformat(), + "total_tasks": len(task_ids), + "pass_count": pass_count, + "pass_rate": pass_rate, + "results": results + } + + with open(output_file, 'w', encoding='utf-8') as f: + json.dump(output_data, f, indent=2, ensure_ascii=False) + + print(f"📄 详细结果已保存到: {output_file}\n") + + return results + + +def discover_tasks(project_root="."): + """ + 自动发现所有任务 + + Returns: + list: 任务ID列表 + """ + tasks_dir = os.path.join(project_root, "tasks") + + if not os.path.exists(tasks_dir): + return [] + + task_ids = [] + for item in os.listdir(tasks_dir): + task_dir = os.path.join(tasks_dir, item) + task_json = os.path.join(task_dir, "task.json") + + if os.path.isdir(task_dir) and os.path.exists(task_json): + task_ids.append(item) + + return sorted(task_ids) + + +def main(): + parser = argparse.ArgumentParser( + description="JADE Benchmark 评测工具", + formatter_class=argparse.RawDescriptionHelpFormatter, + epilog=""" +使用示例: + # 评测单个任务 + python scripts/run_eval.py smoothing_001 + + # 评测多个任务 + python scripts/run_eval.py smoothing_001 peak_search_001 + + # 评测所有任务 + python scripts/run_eval.py --all + + # 保存结果到文件 + python scripts/run_eval.py --all --output results.json + """ + ) + + parser.add_argument("task_ids", nargs="*", help="任务ID列表") + parser.add_argument("--all", action="store_true", help="评测所有任务") + parser.add_argument("--project-root", default=".", help="项目根目录") + parser.add_argument("--output", help="结果输出文件(JSON格式)") + + args = parser.parse_args() + + # 确定要评测的任务 + if args.all: + task_ids = discover_tasks(args.project_root) + if not task_ids: + logger.error("❌ 未找到任何任务") + sys.exit(1) + logger.info(f"发现 {len(task_ids)} 个任务") + elif args.task_ids: + task_ids = args.task_ids + else: + parser.print_help() + sys.exit(1) + + # 执行评测 + try: + if len(task_ids) == 1: + # 单任务评测 + score, message, _ = evaluate_task(task_ids[0], args.project_root) + sys.exit(0 if score == 1 else 1) + else: + # 批量评测 + results = evaluate_batch(task_ids, args.project_root, args.output) + + # 返回码:全部通过返回0,否则返回1 + all_pass = all(r['score'] == 1 for r in results) + sys.exit(0 if all_pass else 1) + + except KeyboardInterrupt: + print("\n\n⏹ 评测已取消") + sys.exit(1) + except Exception as e: + logger.error(f"❌ 错误: {e}") + import traceback + traceback.print_exc() + sys.exit(1) + + +if __name__ == "__main__": + main() + diff --git a/scripts/utils/__init__.py b/scripts/utils/__init__.py new file mode 100644 index 0000000..39ee4ff --- /dev/null +++ b/scripts/utils/__init__.py @@ -0,0 +1,12 @@ +""" +JADE Benchmark 辅助工具 +配置加载、文件处理等辅助功能 +""" +from .config_loader import load_config, get_vm_config, get_network_config + +__all__ = [ + 'load_config', + 'get_vm_config', + 'get_network_config' +] + diff --git a/scripts/utils/config_loader.py b/scripts/utils/config_loader.py new file mode 100644 index 0000000..f474532 --- /dev/null +++ b/scripts/utils/config_loader.py @@ -0,0 +1,51 @@ +""" +配置文件加载器 +""" +import json +import os + + +def load_config(config_path=None): + """ + 加载配置文件 + + Args: + config_path: 配置文件路径(默认在项目根目录的config.json) + + Returns: + dict: 配置字典 + """ + if config_path is None: + # 查找项目根目录的config.json + current_dir = os.path.dirname(os.path.abspath(__file__)) + scripts_dir = os.path.dirname(current_dir) # scripts/ + project_root = os.path.dirname(scripts_dir) # Jade-BenchMark-MVP/ + config_path = os.path.join(project_root, "config.json") + + if not os.path.exists(config_path): + raise FileNotFoundError(f"配置文件不存在: {config_path}") + + with open(config_path, 'r', encoding='utf-8') as f: + return json.load(f) + + +def get_vm_config(config=None): + """获取VM配置""" + if config is None: + config = load_config() + return config.get('vmware', {}) + + +def get_network_config(config=None): + """获取网络配置""" + if config is None: + config = load_config() + return config.get('network', {}) + + +if __name__ == "__main__": + # 测试配置加载 + config = load_config() + print("配置加载成功:") + print(json.dumps(config, indent=2, ensure_ascii=False)) + diff --git a/tasks/background_001/agent_output/background_result.txt b/tasks/background_001/agent_output/background_result.txt new file mode 100755 index 0000000..7c12f46 --- /dev/null +++ b/tasks/background_001/agent_output/background_result.txt @@ -0,0 +1,3252 @@ +Demo01: 37-1497 4-733 9-169 18-303 9-77 +5.0 9 +5.02 9 +5.04 7 +5.06 4 +5.08 0 +5.1 0 +5.12 3 +5.14 3 +5.16 5 +5.18 6 +5.2 3 +5.22 0 +5.24 0 +5.26 4 +5.28 6 +5.3 0 +5.32 8 +5.34 2 +5.36 0 +5.38 0 +5.4 0 +5.42 0 +5.44 14 +5.46 0 +5.48 7 +5.5 0 +5.52 2 +5.54 8 +5.56 0 +5.58 11 +5.6 3 +5.62 0 +5.64 14 +5.66 6 +5.68 0 +5.7 11 +5.72 11 +5.74 8 +5.76 0 +5.78 12 +5.8 11 +5.82 7 +5.84 12 +5.86 2 +5.88 9 +5.9 7 +5.92 0 +5.94 0 +5.96 6 +5.98 5 +6.0 1 +6.02 13 +6.04 0 +6.06 7 +6.08 3 +6.1 10 +6.12 3 +6.14 14 +6.16 12 +6.18 10 +6.2 7 +6.22 0 +6.24 16 +6.26 0 +6.28 17 +6.3 0 +6.32 1 +6.34 11 +6.36 3 +6.38 17 +6.4 4 +6.42 0 +6.44 2 +6.46 18 +6.48 3 +6.5 3 +6.52 16 +6.54 3 +6.56 0 +6.58 18 +6.6 10 +6.62 7 +6.64 6 +6.66 13 +6.68 5 +6.7 14 +6.72 8 +6.74 0 +6.76 13 +6.78 0 +6.8 3 +6.82 8 +6.84 11 +6.86 0 +6.88 10 +6.9 7 +6.92 7 +6.94 12 +6.96 0 +6.98 7 +7.0 3 +7.02 2 +7.04 10 +7.06 0 +7.08 11 +7.1 0 +7.12 17 +7.14 7 +7.16 9 +7.18 14 +7.2 9 +7.22 0 +7.24 0 +7.26 2 +7.28 18 +7.3 1 +7.32 16 +7.34 1 +7.36 13 +7.38 13 +7.4 5 +7.42 7 +7.44 2 +7.46 20 +7.48 3 +7.5 10 +7.52 3 +7.54 0 +7.56 18 +7.58 9 +7.6 14 +7.62 0 +7.64 4 +7.66 17 +7.68 9 +7.7 6 +7.72 15 +7.74 13 +7.76 12 +7.78 13 +7.8 6 +7.82 8 +7.84 1 +7.86 13 +7.88 9 +7.9 2 +7.92 16 +7.94 7 +7.96 10 +7.98 6 +8.0 7 +8.02 0 +8.04 18 +8.06 9 +8.08 14 +8.1 11 +8.12 8 +8.14 6 +8.16 0 +8.18 9 +8.2 12 +8.22 14 +8.24 0 +8.26 10 +8.28 6 +8.3 5 +8.32 13 +8.34 14 +8.36 12 +8.38 1 +8.4 20 +8.42 0 +8.44 4 +8.46 1 +8.48 3 +8.5 0 +8.52 3 +8.54 14 +8.56 5 +8.58 15 +8.6 11 +8.62 11 +8.64 4 +8.66 0 +8.68 15 +8.7 0 +8.72 0 +8.74 9 +8.76 13 +8.78 1 +8.8 7 +8.82 0 +8.84 8 +8.86 0 +8.88 0 +8.9 0 +8.92 18 +8.94 5 +8.96 0 +8.98 1 +9.0 13 +9.02 6 +9.04 6 +9.06 1 +9.08 5 +9.1 16 +9.12 7 +9.14 12 +9.16 0 +9.18 1 +9.2 6 +9.22 16 +9.24 14 +9.26 1 +9.28 5 +9.3 9 +9.32 0 +9.34 19 +9.36 0 +9.38 15 +9.4 0 +9.42 1 +9.44 4 +9.46 8 +9.48 14 +9.5 3 +9.52 5 +9.54 0 +9.56 12 +9.58 7 +9.6 0 +9.62 13 +9.64 0 +9.66 10 +9.68 9 +9.7 6 +9.72 0 +9.74 4 +9.76 10 +9.78 11 +9.8 0 +9.82 9 +9.84 7 +9.86 6 +9.88 14 +9.9 0 +9.92 0 +9.94 6 +9.96 7 +9.98 15 +10.0 7 +10.0 6 +10.0 0 +10.0 10 +10.0 3 +10.1 6 +10.1 0 +10.1 13 +10.1 0 +10.1 0 +10.2 12 +10.2 0 +10.2 15 +10.2 0 +10.2 0 +10.3 9 +10.3 15 +10.3 1 +10.3 12 +10.3 12 +10.4 10 +10.4 8 +10.4 2 +10.4 19 +10.4 6 +10.5 15 +10.5 20 +10.5 16 +10.5 0 +10.5 8 +10.6 24 +10.6 11 +10.6 30 +10.6 52 +10.6 63 +10.7 70 +10.7 89 +10.7 113 +10.7 110 +10.7 177 +10.8 128 +10.8 196 +10.8 127 +10.8 112 +10.8 124 +10.9 99 +10.9 45 +10.9 77 +10.9 30 +10.9 41 +11.0 10 +11.0 30 +11.0 23 +11.0 25 +11.0 11 +11.1 20 +11.1 2 +11.1 17 +11.1 17 +11.1 0 +11.2 6 +11.2 5 +11.2 1 +11.2 7 +11.2 11 +11.3 11 +11.3 5 +11.3 24 +11.3 11 +11.3 11 +11.4 28 +11.4 16 +11.4 23 +11.4 30 +11.4 35 +11.5 47 +11.5 58 +11.5 53 +11.5 74 +11.5 141 +11.6 122 +11.6 208 +11.6 221 +11.6 243 +11.6 258 +11.7 245 +11.7 184 +11.7 191 +11.7 122 +11.7 98 +11.8 62 +11.8 75 +11.8 49 +11.8 28 +11.8 21 +11.9 30 +11.9 24 +11.9 4 +11.9 27 +11.9 19 +12.0 17 +12.0 14 +12.0 10 +12.0 16 +12.0 11 +12.1 9 +12.1 0 +12.1 0 +12.1 12 +12.1 18 +12.2 8 +12.2 4 +12.2 12 +12.2 11 +12.2 4 +12.3 2 +12.3 7 +12.3 7 +12.3 1 +12.3 14 +12.4 9 +12.4 10 +12.4 0 +12.4 13 +12.4 12 +12.5 3 +12.5 2 +12.5 15 +12.5 4 +12.5 9 +12.6 2 +12.6 6 +12.6 0 +12.6 4 +12.6 4 +12.7 15 +12.7 4 +12.7 0 +12.7 7 +12.7 11 +12.8 3 +12.8 2 +12.8 4 +12.8 4 +12.8 8 +12.9 9 +12.9 10 +12.9 0 +12.9 12 +12.9 8 +13.0 2 +13.0 8 +13.0 13 +13.0 12 +13.0 10 +13.1 6 +13.1 3 +13.1 1 +13.1 1 +13.1 0 +13.2 15 +13.2 3 +13.2 7 +13.2 11 +13.2 9 +13.3 6 +13.3 14 +13.3 1 +13.3 0 +13.3 1 +13.4 19 +13.4 16 +13.4 8 +13.4 26 +13.4 24 +13.5 29 +13.5 44 +13.5 58 +13.5 69 +13.5 78 +13.6 79 +13.6 71 +13.6 111 +13.6 112 +13.6 53 +13.7 60 +13.7 56 +13.7 47 +13.7 25 +13.7 31 +13.8 3 +13.8 20 +13.8 12 +13.8 3 +13.8 12 +13.9 13 +13.9 0 +13.9 2 +13.9 10 +13.9 0 +14.0 16 +14.0 12 +14.0 1 +14.0 0 +14.0 9 +14.1 18 +14.1 31 +14.1 9 +14.1 27 +14.1 33 +14.2 27 +14.2 55 +14.2 48 +14.2 28 +14.2 37 +14.3 24 +14.3 25 +14.3 10 +14.3 16 +14.3 19 +14.4 14 +14.4 5 +14.4 8 +14.4 6 +14.4 0 +14.5 10 +14.5 8 +14.5 8 +14.5 0 +14.5 0 +14.6 19 +14.6 0 +14.6 0 +14.6 18 +14.6 6 +14.7 1 +14.7 3 +14.7 11 +14.7 11 +14.7 8 +14.8 0 +14.8 1 +14.8 3 +14.8 17 +14.8 9 +14.9 0 +14.9 0 +14.9 1 +14.9 0 +14.9 6 +15.0 16 +15.0 10 +15.0 10 +15.0 4 +15.0 0 +15.1 4 +15.1 3 +15.1 7 +15.1 14 +15.1 2 +15.2 0 +15.2 9 +15.2 9 +15.2 2 +15.2 0 +15.3 4 +15.3 0 +15.3 14 +15.3 16 +15.3 10 +15.4 8 +15.4 3 +15.4 1 +15.4 13 +15.4 11 +15.5 7 +15.5 11 +15.5 3 +15.5 1 +15.5 16 +15.6 4 +15.6 1 +15.6 12 +15.6 5 +15.6 10 +15.7 9 +15.7 4 +15.7 13 +15.7 4 +15.7 0 +15.8 5 +15.8 17 +15.8 13 +15.8 0 +15.8 0 +15.9 7 +15.9 4 +15.9 9 +15.9 4 +15.9 2 +16.0 7 +16.0 8 +16.0 6 +16.0 9 +16.0 6 +16.1 0 +16.1 13 +16.1 6 +16.1 2 +16.1 1 +16.2 8 +16.2 16 +16.2 9 +16.2 1 +16.2 8 +16.3 14 +16.3 1 +16.3 3 +16.3 16 +16.3 15 +16.4 4 +16.4 3 +16.4 9 +16.4 20 +16.4 8 +16.5 0 +16.5 17 +16.5 18 +16.5 15 +16.5 13 +16.6 10 +16.6 25 +16.6 22 +16.6 35 +16.6 52 +16.7 40 +16.7 74 +16.7 94 +16.7 97 +16.7 95 +16.8 113 +16.8 75 +16.8 87 +16.8 77 +16.8 61 +16.9 74 +16.9 70 +16.9 94 +16.9 133 +16.9 138 +17.0 104 +17.0 88 +17.0 101 +17.0 80 +17.0 84 +17.1 66 +17.1 49 +17.1 8 +17.1 26 +17.1 35 +17.2 24 +17.2 16 +17.2 18 +17.2 11 +17.2 4 +17.3 15 +17.3 8 +17.3 2 +17.3 16 +17.3 2 +17.4 0 +17.4 2 +17.4 3 +17.4 8 +17.4 9 +17.5 3 +17.5 16 +17.5 16 +17.5 12 +17.5 14 +17.6 7 +17.6 0 +17.6 12 +17.6 12 +17.6 13 +17.7 17 +17.7 19 +17.7 21 +17.7 5 +17.7 9 +17.8 34 +17.8 37 +17.8 36 +17.8 44 +17.8 74 +17.9 71 +17.9 69 +17.9 150 +17.9 178 +17.9 239 +18.0 289 +18.0 404 +18.0 451 +18.0 579 +18.0 652 +18.1 563 +18.1 472 +18.1 444 +18.1 357 +18.1 239 +18.2 158 +18.2 145 +18.2 95 +18.2 69 +18.2 44 +18.3 69 +18.3 61 +18.3 38 +18.3 32 +18.3 23 +18.4 26 +18.4 17 +18.4 36 +18.4 18 +18.4 26 +18.5 14 +18.5 9 +18.5 21 +18.5 27 +18.5 15 +18.6 0 +18.6 16 +18.6 13 +18.6 15 +18.6 14 +18.7 6 +18.7 10 +18.7 4 +18.7 1 +18.7 7 +18.8 5 +18.8 0 +18.8 15 +18.8 13 +18.8 1 +18.9 7 +18.9 9 +18.9 4 +18.9 3 +18.9 3 +19.0 14 +19.0 3 +19.0 1 +19.0 12 +19.0 4 +19.1 2 +19.1 0 +19.1 10 +19.1 11 +19.1 8 +19.2 8 +19.2 7 +19.2 5 +19.2 9 +19.2 8 +19.3 8 +19.3 7 +19.3 0 +19.3 11 +19.3 8 +19.4 0 +19.4 0 +19.4 12 +19.4 7 +19.4 3 +19.5 10 +19.5 12 +19.5 2 +19.5 0 +19.5 9 +19.6 7 +19.6 6 +19.6 1 +19.6 3 +19.6 15 +19.7 15 +19.7 11 +19.7 7 +19.7 0 +19.7 1 +19.8 5 +19.8 13 +19.8 8 +19.8 3 +19.8 2 +19.9 11 +19.9 13 +19.9 0 +19.9 0 +19.9 15 +20.0 20 +20.0 9 +20.0 9 +20.0 4 +20.0 9 +20.1 19 +20.1 21 +20.1 33 +20.1 49 +20.1 52 +20.2 67 +20.2 62 +20.2 37 +20.2 33 +20.2 16 +20.3 20 +20.3 22 +20.3 33 +20.3 21 +20.3 0 +20.4 7 +20.4 2 +20.4 13 +20.4 10 +20.4 15 +20.5 13 +20.5 8 +20.5 6 +20.5 7 +20.5 10 +20.6 7 +20.6 4 +20.6 13 +20.6 20 +20.6 16 +20.7 22 +20.7 27 +20.7 20 +20.7 45 +20.7 57 +20.8 68 +20.8 76 +20.8 144 +20.8 182 +20.8 194 +20.9 231 +20.9 253 +20.9 269 +20.9 239 +20.9 218 +21.0 125 +21.0 117 +21.0 67 +21.0 62 +21.0 65 +21.1 31 +21.1 26 +21.1 16 +21.1 21 +21.1 22 +21.2 29 +21.2 23 +21.2 11 +21.2 7 +21.2 15 +21.3 29 +21.3 22 +21.3 20 +21.3 24 +21.3 39 +21.4 38 +21.4 45 +21.4 33 +21.4 26 +21.4 5 +21.5 10 +21.5 24 +21.5 27 +21.5 23 +21.5 12 +21.6 25 +21.6 37 +21.6 47 +21.6 42 +21.6 55 +21.7 105 +21.7 124 +21.7 111 +21.7 118 +21.7 156 +21.8 155 +21.8 132 +21.8 122 +21.8 133 +21.8 123 +21.9 139 +21.9 101 +21.9 68 +21.9 46 +21.9 23 +22.0 20 +22.0 32 +22.0 26 +22.0 35 +22.0 26 +22.1 7 +22.1 17 +22.1 22 +22.1 40 +22.1 46 +22.2 23 +22.2 12 +22.2 34 +22.2 31 +22.2 24 +22.3 21 +22.3 0 +22.3 5 +22.3 13 +22.3 20 +22.4 15 +22.4 5 +22.4 0 +22.4 5 +22.4 14 +22.5 8 +22.5 1 +22.5 0 +22.5 13 +22.5 10 +22.6 8 +22.6 11 +22.6 7 +22.6 9 +22.6 7 +22.7 16 +22.7 1 +22.7 12 +22.7 2 +22.7 24 +22.8 18 +22.8 29 +22.8 24 +22.8 28 +22.8 25 +22.9 38 +22.9 72 +22.9 83 +22.9 61 +22.9 64 +23.0 49 +23.0 59 +23.0 23 +23.0 29 +23.0 20 +23.1 11 +23.1 4 +23.1 19 +23.1 21 +23.1 16 +23.2 15 +23.2 7 +23.2 10 +23.2 18 +23.2 15 +23.3 8 +23.3 22 +23.3 17 +23.3 29 +23.3 20 +23.4 21 +23.4 30 +23.4 31 +23.4 15 +23.4 15 +23.5 10 +23.5 3 +23.5 0 +23.5 12 +23.5 11 +23.6 14 +23.6 12 +23.6 5 +23.6 3 +23.6 1 +23.7 8 +23.7 4 +23.7 8 +23.7 4 +23.7 1 +23.8 14 +23.8 9 +23.8 7 +23.8 5 +23.8 0 +23.9 8 +23.9 12 +23.9 3 +23.9 3 +23.9 1 +24.0 10 +24.0 6 +24.0 7 +24.0 9 +24.0 4 +24.1 4 +24.1 6 +24.1 0 +24.1 7 +24.1 11 +24.2 14 +24.2 1 +24.2 8 +24.2 1 +24.2 4 +24.3 12 +24.3 3 +24.3 10 +24.3 1 +24.3 4 +24.4 7 +24.4 4 +24.4 12 +24.4 12 +24.4 9 +24.5 1 +24.5 7 +24.5 8 +24.5 8 +24.5 3 +24.6 1 +24.6 12 +24.6 11 +24.6 18 +24.6 0 +24.7 0 +24.7 5 +24.7 7 +24.7 5 +24.7 2 +24.8 1 +24.8 1 +24.8 8 +24.8 8 +24.8 15 +24.9 0 +24.9 1 +24.9 7 +24.9 4 +24.9 2 +25.0 5 +25.0 10 +25.0 4 +25.0 14 +25.0 5 +25.1 0 +25.1 0 +25.1 9 +25.1 15 +25.1 13 +25.2 6 +25.2 7 +25.2 0 +25.2 9 +25.2 0 +25.3 10 +25.3 3 +25.3 11 +25.3 7 +25.3 12 +25.4 13 +25.4 10 +25.4 12 +25.4 15 +25.4 20 +25.5 16 +25.5 13 +25.5 16 +25.5 12 +25.5 36 +25.6 32 +25.6 43 +25.6 56 +25.6 87 +25.6 103 +25.7 111 +25.7 161 +25.7 207 +25.7 280 +25.7 362 +25.8 451 +25.8 594 +25.8 632 +25.8 713 +25.8 686 +25.9 639 +25.9 513 +25.9 385 +25.9 280 +25.9 202 +26.0 119 +26.0 77 +26.0 106 +26.0 62 +26.0 92 +26.1 39 +26.1 53 +26.1 23 +26.1 38 +26.1 39 +26.2 38 +26.2 49 +26.2 45 +26.2 39 +26.2 19 +26.3 8 +26.3 25 +26.3 20 +26.3 27 +26.3 26 +26.4 33 +26.4 39 +26.4 54 +26.4 43 +26.4 72 +26.5 70 +26.5 70 +26.5 42 +26.5 32 +26.5 46 +26.6 34 +26.6 37 +26.6 21 +26.6 16 +26.6 1 +26.7 12 +26.7 15 +26.7 9 +26.7 5 +26.7 3 +26.8 1 +26.8 15 +26.8 7 +26.8 8 +26.8 11 +26.9 6 +26.9 5 +26.9 1 +26.9 8 +26.9 6 +27.0 9 +27.0 8 +27.0 10 +27.0 3 +27.0 3 +27.1 1 +27.1 2 +27.1 3 +27.1 14 +27.1 8 +27.2 12 +27.2 5 +27.2 4 +27.2 19 +27.2 10 +27.3 16 +27.3 18 +27.3 37 +27.3 35 +27.3 54 +27.4 45 +27.4 68 +27.4 74 +27.4 57 +27.4 51 +27.5 44 +27.5 41 +27.5 18 +27.5 29 +27.5 30 +27.6 66 +27.6 86 +27.6 111 +27.6 114 +27.6 168 +27.7 171 +27.7 234 +27.7 297 +27.7 373 +27.7 393 +27.8 295 +27.8 245 +27.8 137 +27.8 69 +27.8 53 +27.9 62 +27.9 77 +27.9 47 +27.9 35 +27.9 19 +28.0 21 +28.0 31 +28.0 37 +28.0 34 +28.0 28 +28.1 36 +28.1 38 +28.1 86 +28.1 71 +28.1 129 +28.2 111 +28.2 113 +28.2 128 +28.2 74 +28.2 70 +28.3 63 +28.3 23 +28.3 29 +28.3 34 +28.3 33 +28.4 39 +28.4 21 +28.4 13 +28.4 24 +28.4 29 +28.5 29 +28.5 53 +28.5 70 +28.5 90 +28.5 127 +28.6 116 +28.6 201 +28.6 224 +28.6 209 +28.6 200 +28.7 167 +28.7 117 +28.7 101 +28.7 101 +28.7 82 +28.8 73 +28.8 66 +28.8 42 +28.8 59 +28.8 89 +28.9 90 +28.9 114 +28.9 163 +28.9 131 +28.9 141 +29.0 113 +29.0 98 +29.0 109 +29.0 86 +29.0 74 +29.1 64 +29.1 67 +29.1 50 +29.1 98 +29.1 114 +29.2 155 +29.2 209 +29.2 189 +29.2 207 +29.2 225 +29.3 143 +29.3 126 +29.3 84 +29.3 73 +29.3 60 +29.4 45 +29.4 16 +29.4 13 +29.4 22 +29.4 26 +29.5 42 +29.5 36 +29.5 41 +29.5 34 +29.5 51 +29.6 86 +29.6 106 +29.6 101 +29.6 93 +29.6 112 +29.7 70 +29.7 73 +29.7 37 +29.7 9 +29.7 22 +29.8 7 +29.8 17 +29.8 15 +29.8 15 +29.8 20 +29.9 4 +29.9 2 +29.9 8 +29.9 7 +29.9 8 +30.0 1 +30.0 10 +30.0 2 +30.0 11 +30.0 12 +30.1 5 +30.1 12 +30.1 9 +30.1 7 +30.1 1 +30.2 6 +30.2 7 +30.2 14 +30.2 14 +30.2 7 +30.3 20 +30.3 14 +30.3 31 +30.3 31 +30.3 43 +30.4 40 +30.4 57 +30.4 98 +30.4 133 +30.4 137 +30.5 179 +30.5 120 +30.5 140 +30.5 75 +30.5 75 +30.6 64 +30.6 24 +30.6 37 +30.6 18 +30.6 19 +30.7 33 +30.7 18 +30.7 29 +30.7 21 +30.7 28 +30.8 44 +30.8 56 +30.8 47 +30.8 81 +30.8 125 +30.9 123 +30.9 227 +30.9 268 +30.9 365 +30.9 520 +31.0 574 +31.0 631 +31.0 623 +31.0 561 +31.0 446 +31.1 293 +31.1 134 +31.1 104 +31.1 25 +31.1 41 +31.2 104 +31.2 59 +31.2 76 +31.2 58 +31.2 45 +31.3 28 +31.3 37 +31.3 19 +31.3 46 +31.3 28 +31.4 29 +31.4 12 +31.4 11 +31.4 7 +31.4 4 +31.5 23 +31.5 5 +31.5 6 +31.5 12 +31.5 13 +31.6 23 +31.6 20 +31.6 29 +31.6 43 +31.6 29 +31.7 67 +31.7 69 +31.7 83 +31.7 137 +31.7 140 +31.8 222 +31.8 319 +31.8 417 +31.8 586 +31.8 779 +31.9 1012 +31.9 1127 +31.9 1205 +31.9 1153 +31.9 851 +32.0 609 +32.0 389 +32.0 228 +32.0 125 +32.0 172 +32.1 144 +32.1 147 +32.1 165 +32.1 152 +32.1 116 +32.2 131 +32.2 114 +32.2 110 +32.2 81 +32.2 89 +32.3 48 +32.3 62 +32.3 47 +32.3 80 +32.3 77 +32.4 99 +32.4 119 +32.4 140 +32.4 135 +32.4 125 +32.5 113 +32.5 68 +32.5 56 +32.5 11 +32.5 10 +32.6 22 +32.6 22 +32.6 37 +32.6 33 +32.6 41 +32.7 41 +32.7 41 +32.7 52 +32.7 59 +32.7 120 +32.8 119 +32.8 170 +32.8 284 +32.8 297 +32.8 390 +32.9 470 +32.9 370 +32.9 340 +32.9 273 +32.9 173 +33.0 141 +33.0 153 +33.0 103 +33.0 92 +33.0 72 +33.1 38 +33.1 20 +33.1 25 +33.1 20 +33.1 20 +33.2 22 +33.2 17 +33.2 14 +33.2 14 +33.2 5 +33.3 1 +33.3 2 +33.3 12 +33.3 15 +33.3 22 +33.4 26 +33.4 29 +33.4 46 +33.4 48 +33.4 73 +33.5 51 +33.5 69 +33.5 50 +33.5 40 +33.5 37 +33.6 9 +33.6 20 +33.6 6 +33.6 15 +33.6 21 +33.7 28 +33.7 43 +33.7 43 +33.7 56 +33.7 77 +33.8 81 +33.8 117 +33.8 163 +33.8 172 +33.8 232 +33.9 264 +33.9 324 +33.9 370 +33.9 462 +33.9 495 +34.0 521 +34.0 633 +34.0 676 +34.0 862 +34.0 927 +34.1 1054 +34.1 1034 +34.1 840 +34.1 619 +34.1 402 +34.2 233 +34.2 205 +34.2 183 +34.2 205 +34.2 249 +34.3 358 +34.3 377 +34.3 410 +34.3 449 +34.3 496 +34.4 452 +34.4 439 +34.4 328 +34.4 196 +34.4 129 +34.5 75 +34.5 21 +34.5 47 +34.5 52 +34.5 29 +34.6 26 +34.6 23 +34.6 4 +34.6 2 +34.6 1 +34.7 1 +34.7 8 +34.7 0 +34.7 1 +34.7 7 +34.8 2 +34.8 5 +34.8 11 +34.8 12 +34.8 9 +34.9 9 +34.9 33 +34.9 41 +34.9 43 +34.9 66 +35.0 45 +35.0 62 +35.0 66 +35.0 64 +35.0 60 +35.1 46 +35.1 63 +35.1 73 +35.1 41 +35.1 47 +35.2 45 +35.2 25 +35.2 8 +35.2 14 +35.2 7 +35.3 5 +35.3 0 +35.3 3 +35.3 12 +35.3 19 +35.4 13 +35.4 24 +35.4 37 +35.4 44 +35.4 63 +35.5 72 +35.5 102 +35.5 136 +35.5 148 +35.5 171 +35.6 172 +35.6 162 +35.6 166 +35.6 114 +35.6 80 +35.7 40 +35.7 11 +35.7 12 +35.7 11 +35.7 1 +35.8 18 +35.8 31 +35.8 28 +35.8 48 +35.8 39 +35.9 38 +35.9 46 +35.9 43 +35.9 16 +35.9 8 +36.0 7 +36.0 3 +36.0 0 +36.0 5 +36.0 0 +36.1 6 +36.1 6 +36.1 0 +36.1 0 +36.1 0 +36.2 0 +36.2 1 +36.2 7 +36.2 2 +36.2 4 +36.3 0 +36.3 2 +36.3 0 +36.3 0 +36.3 3 +36.4 0 +36.4 0 +36.4 0 +36.4 0 +36.4 5 +36.5 5 +36.5 6 +36.5 11 +36.5 2 +36.5 4 +36.6 7 +36.6 17 +36.6 21 +36.6 32 +36.6 30 +36.7 35 +36.7 34 +36.7 23 +36.7 25 +36.7 17 +36.8 26 +36.8 31 +36.8 34 +36.8 48 +36.8 47 +36.9 48 +36.9 34 +36.9 43 +36.9 19 +36.9 37 +37.0 31 +37.0 43 +37.0 28 +37.0 64 +37.0 54 +37.1 79 +37.1 55 +37.1 59 +37.1 54 +37.1 53 +37.2 58 +37.2 102 +37.2 130 +37.2 163 +37.2 199 +37.3 284 +37.3 344 +37.3 364 +37.3 372 +37.3 349 +37.4 215 +37.4 185 +37.4 100 +37.4 47 +37.4 46 +37.5 9 +37.5 2 +37.5 19 +37.5 27 +37.5 14 +37.6 15 +37.6 20 +37.6 14 +37.6 8 +37.6 16 +37.7 0 +37.7 11 +37.7 7 +37.7 15 +37.7 29 +37.8 40 +37.8 31 +37.8 45 +37.8 39 +37.8 25 +37.9 35 +37.9 23 +37.9 9 +37.9 3 +37.9 9 +38.0 0 +38.0 3 +38.0 12 +38.0 5 +38.0 8 +38.1 6 +38.1 8 +38.1 1 +38.1 4 +38.1 8 +38.2 6 +38.2 3 +38.2 7 +38.2 6 +38.2 0 +38.3 1 +38.3 5 +38.3 4 +38.3 3 +38.3 6 +38.4 8 +38.4 3 +38.4 3 +38.4 7 +38.4 6 +38.5 4 +38.5 7 +38.5 7 +38.5 4 +38.5 5 +38.6 4 +38.6 2 +38.6 0 +38.6 0 +38.6 1 +38.7 6 +38.7 6 +38.7 3 +38.7 4 +38.7 4 +38.8 0 +38.8 3 +38.8 3 +38.8 5 +38.8 11 +38.9 2 +38.9 12 +38.9 11 +38.9 7 +38.9 4 +39.0 10 +39.0 12 +39.0 28 +39.0 44 +39.0 66 +39.1 57 +39.1 63 +39.1 69 +39.1 74 +39.1 51 +39.2 42 +39.2 40 +39.2 20 +39.2 0 +39.2 0 +39.3 0 +39.3 0 +39.3 9 +39.3 9 +39.3 17 +39.4 4 +39.4 10 +39.4 1 +39.4 5 +39.4 1 +39.5 3 +39.5 0 +39.5 11 +39.5 9 +39.5 12 +39.6 13 +39.6 15 +39.6 11 +39.6 22 +39.6 25 +39.7 26 +39.7 58 +39.7 73 +39.7 56 +39.7 63 +39.8 102 +39.8 82 +39.8 65 +39.8 73 +39.8 66 +39.9 29 +39.9 66 +39.9 85 +39.9 85 +39.9 133 +40.0 152 +40.0 181 +40.0 221 +40.0 197 +40.0 198 +40.1 138 +40.1 82 +40.1 54 +40.1 27 +40.1 2 +40.2 11 +40.2 4 +40.2 22 +40.2 33 +40.2 29 +40.3 13 +40.3 29 +40.3 9 +40.3 1 +40.3 4 +40.4 1 +40.4 0 +40.4 0 +40.4 2 +40.4 8 +40.5 4 +40.5 12 +40.5 7 +40.5 6 +40.5 0 +40.6 2 +40.6 0 +40.6 0 +40.6 4 +40.6 10 +40.7 3 +40.7 4 +40.7 13 +40.7 5 +40.7 4 +40.8 5 +40.8 7 +40.8 3 +40.8 12 +40.8 8 +40.9 9 +40.9 7 +40.9 9 +40.9 29 +40.9 20 +41.0 47 +41.0 49 +41.0 83 +41.0 65 +41.0 81 +41.1 112 +41.1 79 +41.1 51 +41.1 59 +41.1 27 +41.2 3 +41.2 2 +41.2 15 +41.2 13 +41.2 2 +41.3 7 +41.3 23 +41.3 12 +41.3 13 +41.3 15 +41.4 10 +41.4 23 +41.4 14 +41.4 30 +41.4 48 +41.5 46 +41.5 77 +41.5 79 +41.5 104 +41.5 69 +41.6 88 +41.6 70 +41.6 104 +41.6 109 +41.6 104 +41.7 130 +41.7 123 +41.7 161 +41.7 144 +41.7 173 +41.8 138 +41.8 95 +41.8 78 +41.8 50 +41.8 49 +41.9 24 +41.9 9 +41.9 28 +41.9 23 +41.9 38 +42.0 48 +42.0 53 +42.0 62 +42.0 68 +42.0 60 +42.1 34 +42.1 24 +42.1 9 +42.1 8 +42.1 1 +42.2 0 +42.2 2 +42.2 0 +42.2 10 +42.2 6 +42.3 6 +42.3 8 +42.3 3 +42.3 7 +42.3 6 +42.4 5 +42.4 1 +42.4 7 +42.4 1 +42.4 0 +42.5 3 +42.5 8 +42.5 7 +42.5 8 +42.5 15 +42.6 15 +42.6 5 +42.6 14 +42.6 4 +42.6 5 +42.7 7 +42.7 9 +42.7 6 +42.7 7 +42.7 0 +42.8 1 +42.8 2 +42.8 13 +42.8 12 +42.8 14 +42.9 14 +42.9 34 +42.9 39 +42.9 28 +42.9 32 +43.0 43 +43.0 50 +43.0 20 +43.0 19 +43.0 25 +43.1 13 +43.1 16 +43.1 9 +43.1 15 +43.1 2 +43.2 1 +43.2 5 +43.2 10 +43.2 3 +43.2 9 +43.3 21 +43.3 17 +43.3 22 +43.3 40 +43.3 39 +43.4 45 +43.4 40 +43.4 50 +43.4 30 +43.4 25 +43.5 22 +43.5 49 +43.5 52 +43.5 38 +43.5 53 +43.6 60 +43.6 60 +43.6 24 +43.6 49 +43.6 23 +43.7 36 +43.7 30 +43.7 37 +43.7 33 +43.7 49 +43.8 51 +43.8 74 +43.8 110 +43.8 136 +43.8 156 +43.9 157 +43.9 140 +43.9 153 +43.9 118 +43.9 93 +44.0 45 +44.0 31 +44.0 24 +44.0 9 +44.0 4 +44.1 2 +44.1 10 +44.1 12 +44.1 4 +44.1 15 +44.2 5 +44.2 8 +44.2 4 +44.2 0 +44.2 6 +44.3 3 +44.3 10 +44.3 2 +44.3 3 +44.3 14 +44.4 17 +44.4 28 +44.4 31 +44.4 40 +44.4 51 +44.5 45 +44.5 57 +44.5 52 +44.5 52 +44.5 50 +44.6 55 +44.6 31 +44.6 19 +44.6 23 +44.6 23 +44.7 23 +44.7 16 +44.7 53 +44.7 45 +44.7 73 +44.8 59 +44.8 62 +44.8 43 +44.8 41 +44.8 48 +44.9 10 +44.9 15 +44.9 9 +44.9 23 +44.9 18 +45.0 0 +45.0 18 +45.0 5 +45.0 6 +45.0 5 +45.1 10 +45.1 20 +45.1 12 +45.1 12 +45.1 31 +45.2 22 +45.2 51 +45.2 53 +45.2 72 +45.2 82 +45.3 68 +45.3 100 +45.3 78 +45.3 83 +45.3 42 +45.4 41 +45.4 31 +45.4 24 +45.4 39 +45.4 63 +45.5 72 +45.5 110 +45.5 111 +45.5 157 +45.5 112 +45.6 110 +45.6 64 +45.6 49 +45.6 10 +45.6 4 +45.7 1 +45.7 0 +45.7 0 +45.7 0 +45.7 6 +45.8 13 +45.8 24 +45.8 16 +45.8 31 +45.8 28 +45.9 33 +45.9 24 +45.9 24 +45.9 18 +45.9 11 +46.0 4 +46.0 6 +46.0 20 +46.0 11 +46.0 8 +46.1 8 +46.1 15 +46.1 7 +46.1 8 +46.1 1 +46.2 5 +46.2 0 +46.2 2 +46.2 0 +46.2 6 +46.3 3 +46.3 7 +46.3 5 +46.3 4 +46.3 8 +46.4 6 +46.4 3 +46.4 14 +46.4 9 +46.4 12 +46.5 19 +46.5 27 +46.5 35 +46.5 36 +46.5 49 +46.6 67 +46.6 88 +46.6 108 +46.6 110 +46.6 179 +46.7 243 +46.7 316 +46.7 370 +46.7 462 +46.7 579 +46.8 549 +46.8 557 +46.8 452 +46.8 336 +46.8 268 +46.9 153 +46.9 102 +46.9 38 +46.9 81 +46.9 141 +47.0 134 +47.0 230 +47.0 256 +47.0 326 +47.0 345 +47.1 365 +47.1 413 +47.1 427 +47.1 335 +47.1 260 +47.2 166 +47.2 144 +47.2 42 +47.2 16 +47.2 14 +47.3 7 +47.3 6 +47.3 2 +47.3 6 +47.3 16 +47.4 22 +47.4 12 +47.4 16 +47.4 13 +47.4 5 +47.5 4 +47.5 2 +47.5 1 +47.5 3 +47.5 1 +47.6 0 +47.6 3 +47.6 2 +47.6 9 +47.6 2 +47.7 9 +47.7 12 +47.7 10 +47.7 7 +47.7 15 +47.8 18 +47.8 21 +47.8 38 +47.8 30 +47.8 65 +47.9 78 +47.9 99 +47.9 91 +47.9 112 +47.9 150 +48.0 136 +48.0 122 +48.0 126 +48.0 140 +48.0 118 +48.1 117 +48.1 123 +48.1 100 +48.1 117 +48.1 66 +48.2 63 +48.2 54 +48.2 39 +48.2 24 +48.2 24 +48.3 11 +48.3 31 +48.3 54 +48.3 97 +48.3 126 +48.4 127 +48.4 143 +48.4 123 +48.4 110 +48.4 111 +48.5 59 +48.5 15 +48.5 0 +48.5 0 +48.5 0 +48.6 0 +48.6 0 +48.6 0 +48.6 12 +48.6 6 +48.7 11 +48.7 16 +48.7 10 +48.7 11 +48.7 0 +48.8 0 +48.8 0 +48.8 0 +48.8 3 +48.8 4 +48.9 13 +48.9 25 +48.9 15 +48.9 34 +48.9 28 +49.0 31 +49.0 26 +49.0 25 +49.0 24 +49.0 7 +49.1 1 +49.1 12 +49.1 1 +49.1 8 +49.1 5 +49.2 6 +49.2 11 +49.2 14 +49.2 16 +49.2 14 +49.3 16 +49.3 43 +49.3 59 +49.3 51 +49.3 104 +49.4 126 +49.4 165 +49.4 249 +49.4 357 +49.4 399 +49.5 429 +49.5 422 +49.5 363 +49.5 322 +49.5 185 +49.6 122 +49.6 28 +49.6 0 +49.6 0 +49.6 0 +49.7 0 +49.7 13 +49.7 49 +49.7 91 +49.7 101 +49.8 99 +49.8 113 +49.8 69 +49.8 72 +49.8 53 +49.9 8 +49.9 7 +49.9 6 +49.9 3 +49.9 0 +50.0 0 +50.0 7 +50.0 27 +50.0 36 +50.0 46 +50.1 57 +50.1 73 +50.1 66 +50.1 76 +50.1 43 +50.2 54 +50.2 44 +50.2 28 +50.2 54 +50.2 69 +50.3 81 +50.3 114 +50.3 161 +50.3 184 +50.3 199 +50.4 169 +50.4 130 +50.4 122 +50.4 86 +50.4 47 +50.5 23 +50.5 21 +50.5 8 +50.5 7 +50.5 2 +50.6 14 +50.6 30 +50.6 72 +50.6 101 +50.6 122 +50.7 189 +50.7 214 +50.7 285 +50.7 317 +50.7 351 +50.8 377 +50.8 386 +50.8 279 +50.8 248 +50.8 146 +50.9 81 +50.9 55 +50.9 26 +50.9 15 +50.9 7 +51.0 2 +51.0 1 +51.0 2 +51.0 1 +51.0 14 +51.1 15 +51.1 16 +51.1 47 +51.1 56 +51.1 64 +51.2 82 +51.2 99 +51.2 161 +51.2 159 +51.2 211 +51.3 204 +51.3 177 +51.3 146 +51.3 117 +51.3 84 +51.4 64 +51.4 33 +51.4 14 +51.4 11 +51.4 15 +51.5 14 +51.5 15 +51.5 39 +51.5 29 +51.5 32 +51.6 15 +51.6 24 +51.6 9 +51.6 10 +51.6 8 +51.7 4 +51.7 3 +51.7 16 +51.7 3 +51.7 22 +51.8 36 +51.8 47 +51.8 90 +51.8 105 +51.8 164 +51.9 175 +51.9 159 +51.9 148 +51.9 139 +51.9 109 +52.0 83 +52.0 23 +52.0 19 +52.0 1 +52.0 0 +52.1 0 +52.1 0 +52.1 0 +52.1 0 +52.1 3 +52.2 3 +52.2 8 +52.2 1 +52.2 12 +52.2 14 +52.3 3 +52.3 3 +52.3 2 +52.3 0 +52.3 0 +52.4 0 +52.4 0 +52.4 0 +52.4 3 +52.4 3 +52.5 9 +52.5 5 +52.5 11 +52.5 8 +52.5 19 +52.6 23 +52.6 29 +52.6 23 +52.6 17 +52.6 17 +52.7 25 +52.7 11 +52.7 1 +52.7 12 +52.7 18 +52.8 11 +52.8 16 +52.8 43 +52.8 43 +52.8 85 +52.9 125 +52.9 152 +52.9 170 +52.9 165 +52.9 141 +53.0 160 +53.0 102 +53.0 106 +53.0 58 +53.0 42 +53.1 43 +53.1 40 +53.1 63 +53.1 117 +53.1 155 +53.2 244 +53.2 254 +53.2 223 +53.2 244 +53.2 213 +53.3 158 +53.3 94 +53.3 26 +53.3 5 +53.3 2 +53.4 1 +53.4 0 +53.4 0 +53.4 0 +53.4 34 +53.5 55 +53.5 50 +53.5 59 +53.5 59 +53.5 52 +53.6 46 +53.6 42 +53.6 5 +53.6 11 +53.6 2 +53.7 0 +53.7 0 +53.7 11 +53.7 45 +53.7 72 +53.8 95 +53.8 119 +53.8 164 +53.8 185 +53.8 149 +53.9 157 +53.9 117 +53.9 104 +53.9 61 +53.9 34 +54.0 23 +54.0 6 +54.0 5 +54.0 3 +54.0 0 +54.1 0 +54.1 1 +54.1 5 +54.1 15 +54.1 17 +54.2 32 +54.2 55 +54.2 74 +54.2 101 +54.2 136 +54.3 173 +54.3 191 +54.3 204 +54.3 226 +54.3 237 +54.4 190 +54.4 133 +54.4 127 +54.4 67 +54.4 37 +54.5 10 +54.5 1 +54.5 0 +54.5 0 +54.5 0 +54.6 0 +54.6 0 +54.6 8 +54.6 5 +54.6 9 +54.7 5 +54.7 4 +54.7 4 +54.7 7 +54.7 1 +54.8 2 +54.8 1 +54.8 3 +54.8 6 +54.8 6 +54.9 4 +54.9 7 +54.9 8 +54.9 4 +54.9 2 +55.0 12 +55.0 3 +55.0 18 +55.0 17 +55.0 20 +55.1 33 +55.1 25 +55.1 26 +55.1 26 +55.1 14 +55.2 20 +55.2 18 +55.2 4 +55.2 2 +55.2 3 +55.3 0 +55.3 0 +55.3 1 +55.3 0 +55.3 2 +55.4 3 +55.4 6 +55.4 3 +55.4 5 +55.4 2 +55.5 2 +55.5 6 +55.5 5 +55.5 0 +55.5 0 +55.6 0 +55.6 1 +55.6 3 +55.6 0 +55.6 4 +55.7 4 +55.7 6 +55.7 4 +55.7 10 +55.7 7 +55.8 4 +55.8 10 +55.8 16 +55.8 8 +55.8 19 +55.9 32 +55.9 36 +55.9 47 +55.9 60 +55.9 109 +56.0 155 +56.0 166 +56.0 153 +56.0 171 +56.0 150 +56.1 136 +56.1 106 +56.1 69 +56.1 39 +56.1 31 +56.2 12 +56.2 5 +56.2 3 +56.2 1 +56.2 6 +56.3 4 +56.3 0 +56.3 19 +56.3 6 +56.3 20 +56.4 15 +56.4 7 +56.4 4 +56.4 5 +56.4 9 +56.5 10 +56.5 17 +56.5 14 +56.5 24 +56.5 44 +56.6 56 +56.6 53 +56.6 38 +56.6 33 +56.6 16 +56.7 19 +56.7 13 +56.7 2 +56.7 0 +56.7 0 +56.8 0 +56.8 0 +56.8 0 +56.8 0 +56.8 0 +56.9 4 +56.9 7 +56.9 8 +56.9 9 +56.9 8 +57.0 8 +57.0 18 +57.0 18 +57.0 41 +57.0 62 +57.1 68 +57.1 80 +57.1 137 +57.1 157 +57.1 156 +57.2 161 +57.2 118 +57.2 110 +57.2 67 +57.2 61 +57.3 13 +57.3 0 +57.3 0 +57.3 0 +57.3 0 +57.4 0 +57.4 19 +57.4 42 +57.4 47 +57.4 62 +57.5 52 +57.5 45 +57.5 65 +57.5 48 +57.5 42 +57.6 25 +57.6 4 +57.6 0 +57.6 4 +57.6 0 +57.7 0 +57.7 0 +57.7 0 +57.7 0 +57.7 2 +57.8 9 +57.8 7 +57.8 2 +57.8 4 +57.8 4 +57.9 4 +57.9 6 +57.9 2 +57.9 0 +57.9 0 +58.0 2 +58.0 2 +58.0 4 +58.0 1 +58.0 1 +58.1 2 +58.1 2 +58.1 4 +58.1 2 +58.1 2 +58.2 3 +58.2 1 +58.2 2 +58.2 0 +58.2 0 +58.3 2 +58.3 1 +58.3 2 +58.3 0 +58.3 3 +58.4 0 +58.4 4 +58.4 0 +58.4 4 +58.4 0 +58.5 1 +58.5 0 +58.5 3 +58.5 1 +58.5 3 +58.6 0 +58.6 3 +58.6 4 +58.6 1 +58.6 2 +58.7 2 +58.7 3 +58.7 2 +58.7 0 +58.7 0 +58.8 2 +58.8 0 +58.8 0 +58.8 4 +58.8 4 +58.9 1 +58.9 5 +58.9 4 +58.9 4 +58.9 4 +59.0 6 +59.0 2 +59.0 5 +59.0 5 +59.0 2 +59.1 3 +59.1 0 +59.1 2 +59.1 5 +59.1 4 +59.2 9 +59.2 16 +59.2 23 +59.2 21 +59.2 39 +59.3 35 +59.3 28 +59.3 39 +59.3 32 +59.3 22 +59.4 19 +59.4 33 +59.4 28 +59.4 37 +59.4 56 +59.5 86 +59.5 74 +59.5 90 +59.5 81 +59.5 61 +59.6 63 +59.6 55 +59.6 23 +59.6 3 +59.6 2 +59.7 0 +59.7 0 +59.7 0 +59.7 0 +59.7 0 +59.8 0 +59.8 4 +59.8 10 +59.8 10 +59.8 22 +59.9 32 +59.9 32 +59.9 39 +59.9 72 +59.9 94 +60.0 108 +60.0 120 +60.0 117 +60.0 95 +60.0 85 +60.1 79 +60.1 44 +60.1 46 +60.1 4 +60.1 2 +60.2 0 +60.2 0 +60.2 0 +60.2 0 +60.2 0 +60.3 0 +60.3 14 +60.3 16 +60.3 29 +60.3 33 +60.4 28 +60.4 33 +60.4 35 +60.4 16 +60.4 20 +60.5 12 +60.5 5 +60.5 4 +60.5 0 +60.5 0 +60.6 0 +60.6 0 +60.6 0 +60.6 0 +60.6 4 +60.7 1 +60.7 8 +60.7 6 +60.7 8 +60.7 9 +60.8 11 +60.8 13 +60.8 23 +60.8 22 +60.8 16 +60.9 26 +60.9 29 +60.9 21 +60.9 20 +60.9 12 +61.0 15 +61.0 0 +61.0 1 +61.0 0 +61.0 1 +61.1 0 +61.1 0 +61.1 6 +61.1 9 +61.1 9 +61.2 14 +61.2 26 +61.2 22 +61.2 39 +61.2 80 +61.3 79 +61.3 115 +61.3 148 +61.3 132 +61.3 94 +61.4 118 +61.4 67 +61.4 64 +61.4 56 +61.4 39 +61.5 9 +61.5 7 +61.5 5 +61.5 0 +61.5 9 +61.6 1 +61.6 8 +61.6 5 +61.6 20 +61.6 10 +61.7 18 +61.7 13 +61.7 8 +61.7 8 +61.7 3 +61.8 0 +61.8 0 +61.8 0 +61.8 0 +61.8 0 +61.9 0 +61.9 0 +61.9 0 +61.9 3 +61.9 6 +62.0 4 +62.0 6 +62.0 3 +62.0 3 +62.0 5 +62.1 1 +62.1 2 +62.1 0 +62.1 4 +62.1 1 +62.2 0 +62.2 2 +62.2 2 +62.2 2 +62.2 0 +62.3 1 +62.3 4 +62.3 12 +62.3 8 +62.3 12 +62.4 22 +62.4 29 +62.4 36 +62.4 61 +62.4 71 +62.5 77 +62.5 124 +62.5 138 +62.5 126 +62.5 112 +62.6 106 +62.6 55 +62.6 43 +62.6 36 +62.6 15 +62.7 13 +62.7 0 +62.7 0 +62.7 0 +62.7 0 +62.8 0 +62.8 0 +62.8 0 +62.8 0 +62.8 0 +62.9 5 +62.9 4 +62.9 6 +62.9 6 +62.9 6 +63.0 6 +63.0 8 +63.0 14 +63.0 24 +63.0 18 +63.1 20 +63.1 45 +63.1 68 +63.1 105 +63.1 128 +63.2 113 +63.2 103 +63.2 117 +63.2 90 +63.2 85 +63.3 63 +63.3 51 +63.3 35 +63.3 11 +63.3 8 +63.4 16 +63.4 0 +63.4 24 +63.4 7 +63.4 4 +63.5 23 +63.5 20 +63.5 38 +63.5 32 +63.5 28 +63.6 18 +63.6 0 +63.6 9 +63.6 10 +63.6 2 +63.7 0 +63.7 0 +63.7 0 +63.7 0 +63.7 0 +63.8 0 +63.8 0 +63.8 2 +63.8 1 +63.8 11 +63.9 11 +63.9 4 +63.9 9 +63.9 11 +63.9 18 +64.0 28 +64.0 24 +64.0 56 +64.0 76 +64.0 81 +64.1 164 +64.1 194 +64.1 278 +64.1 347 +64.1 365 +64.2 409 +64.2 347 +64.2 343 +64.2 274 +64.2 243 +64.3 151 +64.3 106 +64.3 48 +64.3 29 +64.3 7 +64.4 3 +64.4 0 +64.4 0 +64.4 0 +64.4 0 +64.5 0 +64.5 0 +64.5 5 +64.5 15 +64.5 9 +64.6 14 +64.6 26 +64.6 20 +64.6 35 +64.6 33 +64.7 23 +64.7 19 +64.7 11 +64.7 24 +64.7 20 +64.8 5 +64.8 4 +64.8 2 +64.8 1 +64.8 0 +64.9 0 +64.9 2 +64.9 1 +64.9 0 +64.9 2 +65.0 8 +65.0 14 +65.0 13 +65.0 26 +65.0 32 +65.1 61 +65.1 72 +65.1 108 +65.1 148 +65.1 145 +65.2 172 +65.2 149 +65.2 123 +65.2 108 +65.2 82 +65.3 101 +65.3 38 +65.3 4 +65.3 2 +65.3 0 +65.4 0 +65.4 0 +65.4 0 +65.4 0 +65.4 0 +65.5 0 +65.5 2 +65.5 5 +65.5 3 +65.5 2 +65.6 3 +65.6 4 +65.6 3 +65.6 5 +65.6 4 +65.7 4 +65.7 0 +65.7 0 +65.7 0 +65.7 0 +65.8 0 +65.8 5 +65.8 0 +65.8 3 +65.8 2 +65.9 10 +65.9 14 +65.9 11 +65.9 18 +65.9 25 +66.0 18 +66.0 31 +66.0 31 +66.0 31 +66.0 22 +66.1 20 +66.1 19 +66.1 18 +66.1 6 +66.1 21 +66.2 13 +66.2 19 +66.2 15 +66.2 38 +66.2 41 +66.3 25 +66.3 44 +66.3 42 +66.3 22 +66.3 25 +66.4 28 +66.4 10 +66.4 2 +66.4 0 +66.4 0 +66.5 0 +66.5 0 +66.5 0 +66.5 0 +66.5 0 +66.6 0 +66.6 3 +66.6 3 +66.6 5 +66.6 1 +66.7 1 +66.7 4 +66.7 4 +66.7 4 +66.7 1 +66.8 2 +66.8 1 +66.8 2 +66.8 0 +66.8 1 +66.9 2 +66.9 0 +66.9 0 +66.9 2 +66.9 2 +67.0 0 +67.0 2 +67.0 1 +67.0 0 +67.0 4 +67.1 3 +67.1 2 +67.1 0 +67.1 2 +67.1 0 +67.2 6 +67.2 10 +67.2 4 +67.2 7 +67.2 18 +67.3 18 +67.3 39 +67.3 50 +67.3 52 +67.3 57 +67.4 48 +67.4 46 +67.4 51 +67.4 40 +67.4 67 +67.5 47 +67.5 34 +67.5 5 +67.5 12 +67.5 4 +67.6 3 +67.6 2 +67.6 1 +67.6 0 +67.6 0 +67.7 0 +67.7 0 +67.7 0 +67.7 0 +67.7 1 +67.8 2 +67.8 2 +67.8 2 +67.8 3 +67.8 3 +67.9 1 +67.9 2 +67.9 2 +67.9 1 +67.9 0 +68.0 3 +68.0 0 +68.0 0 +68.0 1 +68.0 0 +68.1 0 +68.1 0 +68.1 2 +68.1 3 +68.1 0 +68.2 1 +68.2 2 +68.2 1 +68.2 3 +68.2 2 +68.3 2 +68.3 3 +68.3 0 +68.3 2 +68.3 0 +68.4 3 +68.4 2 +68.4 0 +68.4 2 +68.4 0 +68.5 2 +68.5 1 +68.5 0 +68.5 1 +68.5 3 +68.6 0 +68.6 0 +68.6 0 +68.6 2 +68.6 0 +68.7 0 +68.7 0 +68.7 1 +68.7 3 +68.7 2 +68.8 1 +68.8 4 +68.8 3 +68.8 0 +68.8 1 +68.9 4 +68.9 0 +68.9 1 +68.9 0 +68.9 2 +69.0 1 +69.0 0 +69.0 1 +69.0 0 +69.0 1 +69.1 2 +69.1 0 +69.1 1 +69.1 0 +69.1 0 +69.2 1 +69.2 0 +69.2 0 +69.2 3 +69.2 1 +69.3 0 +69.3 2 +69.3 0 +69.3 4 +69.3 3 +69.4 3 +69.4 3 +69.4 0 +69.4 2 +69.4 2 +69.5 1 +69.5 0 +69.5 3 +69.5 0 +69.5 0 +69.6 0 +69.6 1 +69.6 2 +69.6 3 +69.6 0 +69.7 2 +69.7 1 +69.7 0 +69.7 3 +69.7 1 +69.8 1 +69.8 1 +69.8 0 +69.8 1 +69.8 3 +69.9 0 +69.9 3 +69.9 2 +69.9 2 +69.9 1 +70.0 0 diff --git a/tasks/background_001/ground_truth/background_result.txt b/tasks/background_001/ground_truth/background_result.txt new file mode 100755 index 0000000..fbbbfee --- /dev/null +++ b/tasks/background_001/ground_truth/background_result.txt @@ -0,0 +1,3252 @@ +Demo01: 37-1497 4-733 9-169 18-303 9-77 +5.0 9 +5.02 9 +5.04 7 +5.06 4 +5.08 0 +5.1 0 +5.12 3 +5.14 3 +5.16 5 +5.18 6 +5.2 3 +5.22 0 +5.24 0 +5.26 4 +5.28 6 +5.3 0 +5.32 8 +5.34 2 +5.36 0 +5.38 0 +5.4 0 +5.42 0 +5.44 14 +5.46 0 +5.48 7 +5.5 0 +5.52 2 +5.54 8 +5.56 0 +5.58 11 +5.6 3 +5.62 0 +5.64 14 +5.66 6 +5.68 0 +5.7 11 +5.72 11 +5.74 8 +5.76 0 +5.78 12 +5.8 11 +5.82 1 +5.84 15 +5.86 1 +5.88 10 +5.9 2 +5.92 0 +5.94 0 +5.96 6 +5.98 5 +6.0 1 +6.02 13 +6.04 0 +6.06 7 +6.08 4 +6.1 9 +6.12 3 +6.14 14 +6.16 12 +6.18 10 +6.2 6 +6.22 0 +6.24 16 +6.26 0 +6.28 17 +6.3 0 +6.32 1 +6.34 11 +6.36 3 +6.38 17 +6.4 15 +6.42 0 +6.44 2 +6.46 18 +6.48 3 +6.5 3 +6.52 16 +6.54 3 +6.56 0 +6.58 18 +6.6 10 +6.62 5 +6.64 7 +6.66 13 +6.68 5 +6.7 14 +6.72 0 +6.74 0 +6.76 13 +6.78 0 +6.8 3 +6.82 8 +6.84 11 +6.86 0 +6.88 10 +6.9 2 +6.92 9 +6.94 11 +6.96 0 +6.98 7 +7.0 3 +7.02 2 +7.04 10 +7.06 0 +7.08 11 +7.1 0 +7.12 17 +7.14 7 +7.16 9 +7.18 14 +7.2 9 +7.22 0 +7.24 0 +7.26 2 +7.28 18 +7.3 1 +7.32 16 +7.34 1 +7.36 13 +7.38 13 +7.4 5 +7.42 7 +7.44 2 +7.46 20 +7.48 3 +7.5 10 +7.52 3 +7.54 0 +7.56 18 +7.58 9 +7.6 14 +7.62 0 +7.64 4 +7.66 17 +7.68 9 +7.7 6 +7.72 15 +7.74 7 +7.76 15 +7.78 12 +7.8 7 +7.82 8 +7.84 1 +7.86 13 +7.88 9 +7.9 2 +7.92 16 +7.94 7 +7.96 10 +7.98 6 +8.0 7 +8.02 0 +8.04 18 +8.06 14 +8.08 11 +8.1 7 +8.12 2 +8.14 0 +8.16 0 +8.18 10 +8.2 12 +8.22 14 +8.24 0 +8.26 10 +8.28 6 +8.3 5 +8.32 13 +8.34 14 +8.36 1 +8.38 7 +8.4 17 +8.42 0 +8.44 4 +8.46 1 +8.48 3 +8.5 0 +8.52 3 +8.54 14 +8.56 5 +8.58 15 +8.6 12 +8.62 10 +8.64 4 +8.66 0 +8.68 15 +8.7 0 +8.72 0 +8.74 9 +8.76 13 +8.78 7 +8.8 5 +8.82 0 +8.84 8 +8.86 0 +8.88 0 +8.9 0 +8.92 18 +8.94 10 +8.96 4 +8.98 0 +9.0 13 +9.02 6 +9.04 6 +9.06 2 +9.08 4 +9.1 17 +9.12 7 +9.14 12 +9.16 0 +9.18 1 +9.2 6 +9.22 16 +9.24 3 +9.26 6 +9.28 4 +9.3 9 +9.32 0 +9.34 19 +9.36 0 +9.38 15 +9.4 0 +9.42 1 +9.44 4 +9.46 8 +9.48 14 +9.5 3 +9.52 5 +9.54 0 +9.56 12 +9.58 7 +9.6 0 +9.62 13 +9.64 0 +9.66 10 +9.68 9 +9.7 6 +9.72 0 +9.74 4 +9.76 10 +9.78 11 +9.8 0 +9.82 9 +9.84 7 +9.86 0 +9.88 17 +9.9 0 +9.92 0 +9.94 6 +9.96 7 +9.98 15 +10.0 2 +10.0 8 +10.0 0 +10.0 9 +10.0 3 +10.1 6 +10.1 0 +10.1 13 +10.1 0 +10.1 0 +10.2 12 +10.2 0 +10.2 15 +10.2 0 +10.2 0 +10.3 9 +10.3 15 +10.3 1 +10.3 12 +10.3 12 +10.4 10 +10.4 8 +10.4 7 +10.4 17 +10.4 6 +10.5 16 +10.5 20 +10.5 16 +10.5 0 +10.5 8 +10.6 24 +10.6 11 +10.6 30 +10.6 52 +10.6 63 +10.7 70 +10.7 89 +10.7 113 +10.7 110 +10.7 177 +10.8 128 +10.8 196 +10.8 127 +10.8 112 +10.8 124 +10.9 99 +10.9 45 +10.9 77 +10.9 30 +10.9 41 +11.0 10 +11.0 30 +11.0 23 +11.0 25 +11.0 11 +11.1 20 +11.1 2 +11.1 17 +11.1 17 +11.1 0 +11.2 6 +11.2 5 +11.2 3 +11.2 7 +11.2 11 +11.3 11 +11.3 10 +11.3 22 +11.3 11 +11.3 12 +11.4 28 +11.4 16 +11.4 23 +11.4 30 +11.4 35 +11.5 47 +11.5 58 +11.5 53 +11.5 74 +11.5 141 +11.6 122 +11.6 208 +11.6 221 +11.6 243 +11.6 258 +11.7 245 +11.7 184 +11.7 191 +11.7 122 +11.7 98 +11.8 62 +11.8 75 +11.8 49 +11.8 28 +11.8 21 +11.9 30 +11.9 24 +11.9 4 +11.9 27 +11.9 19 +12.0 2 +12.0 17 +12.0 13 +12.0 15 +12.0 11 +12.1 9 +12.1 8 +12.1 0 +12.1 9 +12.1 18 +12.2 9 +12.2 4 +12.2 12 +12.2 11 +12.2 4 +12.3 2 +12.3 7 +12.3 7 +12.3 1 +12.3 14 +12.4 9 +12.4 10 +12.4 0 +12.4 13 +12.4 12 +12.5 3 +12.5 2 +12.5 15 +12.5 4 +12.5 9 +12.6 2 +12.6 6 +12.6 0 +12.6 4 +12.6 4 +12.7 15 +12.7 4 +12.7 0 +12.7 7 +12.7 11 +12.8 3 +12.8 0 +12.8 5 +12.8 5 +12.8 7 +12.9 9 +12.9 11 +12.9 0 +12.9 12 +12.9 4 +13.0 3 +13.0 9 +13.0 13 +13.0 7 +13.0 11 +13.1 7 +13.1 3 +13.1 1 +13.1 1 +13.1 0 +13.2 15 +13.2 3 +13.2 7 +13.2 11 +13.2 7 +13.3 7 +13.3 14 +13.3 1 +13.3 0 +13.3 1 +13.4 19 +13.4 16 +13.4 8 +13.4 26 +13.4 24 +13.5 29 +13.5 44 +13.5 58 +13.5 69 +13.5 78 +13.6 79 +13.6 71 +13.6 111 +13.6 112 +13.6 53 +13.7 60 +13.7 56 +13.7 47 +13.7 25 +13.7 31 +13.8 3 +13.8 20 +13.8 12 +13.8 3 +13.8 12 +13.9 13 +13.9 0 +13.9 2 +13.9 10 +13.9 0 +14.0 16 +14.0 12 +14.0 1 +14.0 0 +14.0 9 +14.1 18 +14.1 31 +14.1 9 +14.1 27 +14.1 33 +14.2 27 +14.2 55 +14.2 48 +14.2 28 +14.2 37 +14.3 24 +14.3 25 +14.3 10 +14.3 16 +14.3 19 +14.4 14 +14.4 5 +14.4 8 +14.4 6 +14.4 0 +14.5 10 +14.5 8 +14.5 8 +14.5 0 +14.5 0 +14.6 19 +14.6 0 +14.6 0 +14.6 18 +14.6 6 +14.7 5 +14.7 3 +14.7 9 +14.7 12 +14.7 9 +14.8 0 +14.8 1 +14.8 3 +14.8 17 +14.8 9 +14.9 0 +14.9 0 +14.9 1 +14.9 0 +14.9 6 +15.0 16 +15.0 10 +15.0 10 +15.0 4 +15.0 0 +15.1 4 +15.1 3 +15.1 7 +15.1 14 +15.1 2 +15.2 0 +15.2 9 +15.2 9 +15.2 8 +15.2 0 +15.3 1 +15.3 0 +15.3 15 +15.3 16 +15.3 14 +15.4 8 +15.4 1 +15.4 0 +15.4 14 +15.4 11 +15.5 2 +15.5 11 +15.5 5 +15.5 4 +15.5 15 +15.6 2 +15.6 0 +15.6 13 +15.6 5 +15.6 9 +15.7 9 +15.7 4 +15.7 13 +15.7 4 +15.7 3 +15.8 5 +15.8 16 +15.8 13 +15.8 0 +15.8 0 +15.9 7 +15.9 4 +15.9 9 +15.9 4 +15.9 3 +16.0 7 +16.0 8 +16.0 6 +16.0 9 +16.0 6 +16.1 0 +16.1 13 +16.1 6 +16.1 2 +16.1 1 +16.2 8 +16.2 16 +16.2 9 +16.2 1 +16.2 8 +16.3 14 +16.3 1 +16.3 3 +16.3 16 +16.3 15 +16.4 4 +16.4 3 +16.4 9 +16.4 20 +16.4 8 +16.5 0 +16.5 17 +16.5 18 +16.5 15 +16.5 13 +16.6 10 +16.6 25 +16.6 22 +16.6 35 +16.6 52 +16.7 40 +16.7 74 +16.7 94 +16.7 97 +16.7 95 +16.8 113 +16.8 75 +16.8 87 +16.8 77 +16.8 61 +16.9 74 +16.9 70 +16.9 94 +16.9 133 +16.9 138 +17.0 104 +17.0 88 +17.0 101 +17.0 80 +17.0 84 +17.1 66 +17.1 49 +17.1 8 +17.1 26 +17.1 35 +17.2 24 +17.2 16 +17.2 18 +17.2 11 +17.2 4 +17.3 15 +17.3 8 +17.3 4 +17.3 16 +17.3 1 +17.4 0 +17.4 3 +17.4 3 +17.4 7 +17.4 9 +17.5 3 +17.5 16 +17.5 16 +17.5 12 +17.5 14 +17.6 7 +17.6 0 +17.6 12 +17.6 12 +17.6 13 +17.7 17 +17.7 19 +17.7 21 +17.7 5 +17.7 9 +17.8 34 +17.8 37 +17.8 36 +17.8 44 +17.8 74 +17.9 71 +17.9 69 +17.9 150 +17.9 178 +17.9 239 +18.0 289 +18.0 404 +18.0 451 +18.0 579 +18.0 652 +18.1 563 +18.1 472 +18.1 444 +18.1 357 +18.1 239 +18.2 158 +18.2 145 +18.2 95 +18.2 69 +18.2 44 +18.3 69 +18.3 61 +18.3 38 +18.3 32 +18.3 23 +18.4 26 +18.4 17 +18.4 36 +18.4 18 +18.4 26 +18.5 14 +18.5 9 +18.5 21 +18.5 27 +18.5 15 +18.6 0 +18.6 16 +18.6 13 +18.6 15 +18.6 9 +18.7 6 +18.7 12 +18.7 5 +18.7 2 +18.7 7 +18.8 5 +18.8 0 +18.8 15 +18.8 13 +18.8 1 +18.9 7 +18.9 9 +18.9 4 +18.9 3 +18.9 3 +19.0 14 +19.0 3 +19.0 1 +19.0 12 +19.0 4 +19.1 2 +19.1 0 +19.1 10 +19.1 11 +19.1 8 +19.2 8 +19.2 7 +19.2 5 +19.2 9 +19.2 8 +19.3 8 +19.3 7 +19.3 0 +19.3 11 +19.3 8 +19.4 0 +19.4 0 +19.4 12 +19.4 7 +19.4 3 +19.5 10 +19.5 12 +19.5 2 +19.5 1 +19.5 9 +19.6 7 +19.6 6 +19.6 4 +19.6 3 +19.6 14 +19.7 15 +19.7 11 +19.7 6 +19.7 0 +19.7 1 +19.8 5 +19.8 13 +19.8 8 +19.8 3 +19.8 2 +19.9 11 +19.9 13 +19.9 0 +19.9 0 +19.9 15 +20.0 20 +20.0 9 +20.0 9 +20.0 4 +20.0 9 +20.1 19 +20.1 21 +20.1 33 +20.1 49 +20.1 52 +20.2 67 +20.2 62 +20.2 37 +20.2 33 +20.2 16 +20.3 20 +20.3 22 +20.3 33 +20.3 21 +20.3 0 +20.4 7 +20.4 2 +20.4 13 +20.4 10 +20.4 15 +20.5 13 +20.5 2 +20.5 1 +20.5 8 +20.5 13 +20.6 9 +20.6 3 +20.6 12 +20.6 19 +20.6 16 +20.7 22 +20.7 28 +20.7 20 +20.7 44 +20.7 57 +20.8 68 +20.8 76 +20.8 144 +20.8 182 +20.8 194 +20.9 231 +20.9 253 +20.9 269 +20.9 239 +20.9 218 +21.0 125 +21.0 117 +21.0 67 +21.0 62 +21.0 65 +21.1 31 +21.1 26 +21.1 16 +21.1 21 +21.1 22 +21.2 29 +21.2 23 +21.2 11 +21.2 7 +21.2 15 +21.3 29 +21.3 22 +21.3 20 +21.3 24 +21.3 39 +21.4 38 +21.4 45 +21.4 33 +21.4 26 +21.4 5 +21.5 10 +21.5 24 +21.5 27 +21.5 23 +21.5 12 +21.6 25 +21.6 37 +21.6 47 +21.6 42 +21.6 55 +21.7 105 +21.7 124 +21.7 111 +21.7 118 +21.7 156 +21.8 155 +21.8 132 +21.8 122 +21.8 133 +21.8 123 +21.9 139 +21.9 101 +21.9 68 +21.9 46 +21.9 23 +22.0 20 +22.0 32 +22.0 26 +22.0 35 +22.0 26 +22.1 7 +22.1 17 +22.1 22 +22.1 40 +22.1 46 +22.2 23 +22.2 12 +22.2 34 +22.2 31 +22.2 24 +22.3 21 +22.3 0 +22.3 5 +22.3 13 +22.3 20 +22.4 15 +22.4 5 +22.4 3 +22.4 5 +22.4 14 +22.5 7 +22.5 1 +22.5 0 +22.5 13 +22.5 10 +22.6 8 +22.6 11 +22.6 7 +22.6 9 +22.6 7 +22.7 16 +22.7 1 +22.7 12 +22.7 2 +22.7 24 +22.8 18 +22.8 29 +22.8 24 +22.8 28 +22.8 25 +22.9 38 +22.9 72 +22.9 83 +22.9 61 +22.9 64 +23.0 49 +23.0 59 +23.0 23 +23.0 29 +23.0 20 +23.1 11 +23.1 4 +23.1 19 +23.1 21 +23.1 16 +23.2 15 +23.2 7 +23.2 10 +23.2 18 +23.2 15 +23.3 8 +23.3 22 +23.3 17 +23.3 29 +23.3 20 +23.4 21 +23.4 30 +23.4 31 +23.4 15 +23.4 15 +23.5 10 +23.5 3 +23.5 0 +23.5 12 +23.5 11 +23.6 14 +23.6 12 +23.6 5 +23.6 3 +23.6 0 +23.7 8 +23.7 4 +23.7 8 +23.7 4 +23.7 1 +23.8 14 +23.8 9 +23.8 7 +23.8 1 +23.8 0 +23.9 8 +23.9 14 +23.9 3 +23.9 3 +23.9 0 +24.0 10 +24.0 6 +24.0 7 +24.0 9 +24.0 4 +24.1 4 +24.1 6 +24.1 0 +24.1 7 +24.1 11 +24.2 14 +24.2 1 +24.2 8 +24.2 1 +24.2 4 +24.3 12 +24.3 3 +24.3 10 +24.3 1 +24.3 4 +24.4 7 +24.4 4 +24.4 12 +24.4 12 +24.4 9 +24.5 1 +24.5 7 +24.5 8 +24.5 8 +24.5 3 +24.6 1 +24.6 12 +24.6 11 +24.6 18 +24.6 0 +24.7 0 +24.7 5 +24.7 7 +24.7 5 +24.7 2 +24.8 1 +24.8 1 +24.8 8 +24.8 8 +24.8 15 +24.9 0 +24.9 1 +24.9 7 +24.9 4 +24.9 2 +25.0 5 +25.0 10 +25.0 4 +25.0 14 +25.0 5 +25.1 0 +25.1 0 +25.1 9 +25.1 15 +25.1 13 +25.2 6 +25.2 7 +25.2 0 +25.2 9 +25.2 0 +25.3 10 +25.3 3 +25.3 11 +25.3 7 +25.3 12 +25.4 13 +25.4 10 +25.4 12 +25.4 15 +25.4 20 +25.5 16 +25.5 13 +25.5 16 +25.5 12 +25.5 36 +25.6 32 +25.6 43 +25.6 56 +25.6 87 +25.6 103 +25.7 111 +25.7 161 +25.7 207 +25.7 280 +25.7 362 +25.8 451 +25.8 594 +25.8 632 +25.8 713 +25.8 686 +25.9 639 +25.9 513 +25.9 385 +25.9 280 +25.9 202 +26.0 119 +26.0 77 +26.0 106 +26.0 62 +26.0 92 +26.1 39 +26.1 53 +26.1 23 +26.1 38 +26.1 39 +26.2 38 +26.2 49 +26.2 45 +26.2 39 +26.2 19 +26.3 8 +26.3 25 +26.3 20 +26.3 27 +26.3 26 +26.4 33 +26.4 39 +26.4 54 +26.4 43 +26.4 72 +26.5 70 +26.5 70 +26.5 42 +26.5 32 +26.5 46 +26.6 34 +26.6 37 +26.6 21 +26.6 16 +26.6 1 +26.7 12 +26.7 15 +26.7 9 +26.7 5 +26.7 3 +26.8 1 +26.8 15 +26.8 7 +26.8 8 +26.8 11 +26.9 6 +26.9 5 +26.9 1 +26.9 8 +26.9 6 +27.0 9 +27.0 8 +27.0 10 +27.0 3 +27.0 3 +27.1 1 +27.1 2 +27.1 3 +27.1 14 +27.1 8 +27.2 12 +27.2 5 +27.2 4 +27.2 19 +27.2 10 +27.3 16 +27.3 18 +27.3 37 +27.3 35 +27.3 54 +27.4 45 +27.4 68 +27.4 74 +27.4 57 +27.4 51 +27.5 44 +27.5 41 +27.5 18 +27.5 29 +27.5 30 +27.6 66 +27.6 86 +27.6 111 +27.6 114 +27.6 168 +27.7 171 +27.7 234 +27.7 297 +27.7 373 +27.7 393 +27.8 295 +27.8 245 +27.8 137 +27.8 69 +27.8 53 +27.9 62 +27.9 77 +27.9 47 +27.9 35 +27.9 19 +28.0 21 +28.0 31 +28.0 37 +28.0 34 +28.0 28 +28.1 36 +28.1 38 +28.1 86 +28.1 71 +28.1 129 +28.2 111 +28.2 113 +28.2 128 +28.2 74 +28.2 70 +28.3 63 +28.3 23 +28.3 29 +28.3 34 +28.3 33 +28.4 39 +28.4 21 +28.4 13 +28.4 24 +28.4 29 +28.5 29 +28.5 53 +28.5 70 +28.5 90 +28.5 127 +28.6 116 +28.6 201 +28.6 224 +28.6 209 +28.6 200 +28.7 167 +28.7 117 +28.7 101 +28.7 101 +28.7 82 +28.8 73 +28.8 66 +28.8 42 +28.8 59 +28.8 89 +28.9 90 +28.9 114 +28.9 163 +28.9 131 +28.9 141 +29.0 113 +29.0 98 +29.0 109 +29.0 86 +29.0 74 +29.1 64 +29.1 67 +29.1 50 +29.1 98 +29.1 114 +29.2 155 +29.2 209 +29.2 189 +29.2 207 +29.2 225 +29.3 143 +29.3 126 +29.3 84 +29.3 73 +29.3 60 +29.4 45 +29.4 16 +29.4 13 +29.4 22 +29.4 26 +29.5 42 +29.5 36 +29.5 41 +29.5 34 +29.5 51 +29.6 86 +29.6 106 +29.6 101 +29.6 93 +29.6 112 +29.7 70 +29.7 73 +29.7 37 +29.7 9 +29.7 22 +29.8 7 +29.8 17 +29.8 15 +29.8 15 +29.8 20 +29.9 4 +29.9 2 +29.9 8 +29.9 7 +29.9 8 +30.0 1 +30.0 10 +30.0 2 +30.0 11 +30.0 12 +30.1 5 +30.1 12 +30.1 9 +30.1 7 +30.1 1 +30.2 6 +30.2 7 +30.2 14 +30.2 14 +30.2 7 +30.3 20 +30.3 14 +30.3 31 +30.3 31 +30.3 43 +30.4 40 +30.4 57 +30.4 98 +30.4 133 +30.4 137 +30.5 179 +30.5 120 +30.5 140 +30.5 75 +30.5 75 +30.6 64 +30.6 24 +30.6 37 +30.6 18 +30.6 19 +30.7 33 +30.7 18 +30.7 29 +30.7 21 +30.7 28 +30.8 44 +30.8 56 +30.8 47 +30.8 81 +30.8 125 +30.9 123 +30.9 227 +30.9 268 +30.9 365 +30.9 520 +31.0 574 +31.0 631 +31.0 623 +31.0 561 +31.0 446 +31.1 293 +31.1 134 +31.1 104 +31.1 25 +31.1 41 +31.2 104 +31.2 59 +31.2 76 +31.2 58 +31.2 45 +31.3 28 +31.3 37 +31.3 19 +31.3 46 +31.3 28 +31.4 29 +31.4 12 +31.4 0 +31.4 7 +31.4 3 +31.5 23 +31.5 10 +31.5 6 +31.5 13 +31.5 13 +31.6 20 +31.6 19 +31.6 28 +31.6 43 +31.6 31 +31.7 68 +31.7 70 +31.7 83 +31.7 136 +31.7 140 +31.8 222 +31.8 319 +31.8 417 +31.8 586 +31.8 779 +31.9 1012 +31.9 1127 +31.9 1205 +31.9 1153 +31.9 851 +32.0 609 +32.0 389 +32.0 228 +32.0 125 +32.0 172 +32.1 144 +32.1 147 +32.1 165 +32.1 152 +32.1 116 +32.2 131 +32.2 114 +32.2 110 +32.2 81 +32.2 89 +32.3 48 +32.3 62 +32.3 47 +32.3 80 +32.3 77 +32.4 99 +32.4 119 +32.4 140 +32.4 135 +32.4 125 +32.5 113 +32.5 68 +32.5 56 +32.5 11 +32.5 10 +32.6 22 +32.6 22 +32.6 37 +32.6 33 +32.6 41 +32.7 41 +32.7 41 +32.7 52 +32.7 59 +32.7 120 +32.8 119 +32.8 170 +32.8 284 +32.8 297 +32.8 390 +32.9 470 +32.9 370 +32.9 340 +32.9 273 +32.9 173 +33.0 141 +33.0 153 +33.0 103 +33.0 92 +33.0 72 +33.1 38 +33.1 20 +33.1 25 +33.1 20 +33.1 20 +33.2 22 +33.2 17 +33.2 14 +33.2 14 +33.2 5 +33.3 1 +33.3 2 +33.3 12 +33.3 15 +33.3 22 +33.4 26 +33.4 29 +33.4 46 +33.4 48 +33.4 73 +33.5 51 +33.5 69 +33.5 50 +33.5 40 +33.5 37 +33.6 9 +33.6 20 +33.6 6 +33.6 15 +33.6 21 +33.7 28 +33.7 43 +33.7 43 +33.7 56 +33.7 77 +33.8 81 +33.8 117 +33.8 163 +33.8 172 +33.8 232 +33.9 264 +33.9 324 +33.9 370 +33.9 462 +33.9 495 +34.0 521 +34.0 633 +34.0 676 +34.0 862 +34.0 927 +34.1 1054 +34.1 1034 +34.1 840 +34.1 619 +34.1 402 +34.2 233 +34.2 205 +34.2 183 +34.2 205 +34.2 249 +34.3 358 +34.3 377 +34.3 410 +34.3 449 +34.3 496 +34.4 452 +34.4 439 +34.4 328 +34.4 196 +34.4 129 +34.5 75 +34.5 21 +34.5 47 +34.5 52 +34.5 29 +34.6 26 +34.6 23 +34.6 4 +34.6 2 +34.6 1 +34.7 1 +34.7 8 +34.7 0 +34.7 1 +34.7 7 +34.8 2 +34.8 5 +34.8 11 +34.8 12 +34.8 9 +34.9 9 +34.9 33 +34.9 41 +34.9 43 +34.9 66 +35.0 45 +35.0 62 +35.0 66 +35.0 64 +35.0 60 +35.1 46 +35.1 63 +35.1 73 +35.1 41 +35.1 47 +35.2 45 +35.2 25 +35.2 8 +35.2 14 +35.2 7 +35.3 4 +35.3 0 +35.3 3 +35.3 12 +35.3 20 +35.4 13 +35.4 24 +35.4 37 +35.4 44 +35.4 63 +35.5 72 +35.5 102 +35.5 136 +35.5 148 +35.5 171 +35.6 172 +35.6 162 +35.6 166 +35.6 114 +35.6 80 +35.7 40 +35.7 11 +35.7 12 +35.7 6 +35.7 1 +35.8 18 +35.8 31 +35.8 29 +35.8 49 +35.8 39 +35.9 38 +35.9 45 +35.9 42 +35.9 16 +35.9 8 +36.0 2 +36.0 0 +36.0 0 +36.0 5 +36.0 0 +36.1 8 +36.1 7 +36.1 0 +36.1 0 +36.1 0 +36.2 0 +36.2 0 +36.2 7 +36.2 2 +36.2 4 +36.3 0 +36.3 2 +36.3 0 +36.3 0 +36.3 3 +36.4 0 +36.4 0 +36.4 0 +36.4 0 +36.4 5 +36.5 5 +36.5 6 +36.5 11 +36.5 2 +36.5 4 +36.6 7 +36.6 17 +36.6 21 +36.6 32 +36.6 30 +36.7 35 +36.7 34 +36.7 23 +36.7 25 +36.7 17 +36.8 26 +36.8 31 +36.8 34 +36.8 48 +36.8 47 +36.9 48 +36.9 34 +36.9 43 +36.9 19 +36.9 37 +37.0 31 +37.0 43 +37.0 28 +37.0 64 +37.0 54 +37.1 79 +37.1 55 +37.1 59 +37.1 54 +37.1 53 +37.2 58 +37.2 102 +37.2 130 +37.2 163 +37.2 199 +37.3 284 +37.3 344 +37.3 364 +37.3 372 +37.3 349 +37.4 215 +37.4 185 +37.4 100 +37.4 16 +37.4 11 +37.5 9 +37.5 2 +37.5 21 +37.5 43 +37.5 29 +37.6 15 +37.6 20 +37.6 12 +37.6 0 +37.6 10 +37.7 0 +37.7 11 +37.7 8 +37.7 19 +37.7 31 +37.8 40 +37.8 31 +37.8 44 +37.8 37 +37.8 24 +37.9 35 +37.9 23 +37.9 10 +37.9 4 +37.9 9 +38.0 0 +38.0 3 +38.0 12 +38.0 4 +38.0 8 +38.1 6 +38.1 8 +38.1 1 +38.1 4 +38.1 8 +38.2 6 +38.2 3 +38.2 7 +38.2 6 +38.2 0 +38.3 1 +38.3 5 +38.3 4 +38.3 3 +38.3 6 +38.4 8 +38.4 3 +38.4 3 +38.4 7 +38.4 6 +38.5 0 +38.5 7 +38.5 7 +38.5 0 +38.5 5 +38.6 6 +38.6 2 +38.6 1 +38.6 1 +38.6 1 +38.7 6 +38.7 6 +38.7 3 +38.7 3 +38.7 4 +38.8 0 +38.8 3 +38.8 3 +38.8 5 +38.8 11 +38.9 2 +38.9 12 +38.9 11 +38.9 7 +38.9 4 +39.0 10 +39.0 12 +39.0 28 +39.0 44 +39.0 66 +39.1 57 +39.1 63 +39.1 69 +39.1 74 +39.1 51 +39.2 42 +39.2 40 +39.2 20 +39.2 0 +39.2 0 +39.3 0 +39.3 0 +39.3 9 +39.3 9 +39.3 17 +39.4 4 +39.4 10 +39.4 1 +39.4 5 +39.4 1 +39.5 3 +39.5 0 +39.5 11 +39.5 9 +39.5 12 +39.6 13 +39.6 15 +39.6 11 +39.6 22 +39.6 25 +39.7 26 +39.7 58 +39.7 73 +39.7 56 +39.7 63 +39.8 102 +39.8 82 +39.8 65 +39.8 73 +39.8 66 +39.9 29 +39.9 66 +39.9 85 +39.9 85 +39.9 133 +40.0 152 +40.0 181 +40.0 221 +40.0 197 +40.0 198 +40.1 138 +40.1 82 +40.1 54 +40.1 27 +40.1 4 +40.2 11 +40.2 4 +40.2 22 +40.2 33 +40.2 28 +40.3 13 +40.3 29 +40.3 9 +40.3 1 +40.3 4 +40.4 1 +40.4 0 +40.4 0 +40.4 2 +40.4 8 +40.5 4 +40.5 12 +40.5 7 +40.5 6 +40.5 0 +40.6 2 +40.6 0 +40.6 0 +40.6 4 +40.6 10 +40.7 3 +40.7 4 +40.7 13 +40.7 5 +40.7 4 +40.8 5 +40.8 7 +40.8 1 +40.8 12 +40.8 8 +40.9 9 +40.9 7 +40.9 10 +40.9 29 +40.9 20 +41.0 47 +41.0 49 +41.0 83 +41.0 65 +41.0 81 +41.1 112 +41.1 79 +41.1 51 +41.1 59 +41.1 27 +41.2 3 +41.2 0 +41.2 15 +41.2 14 +41.2 2 +41.3 7 +41.3 24 +41.3 13 +41.3 12 +41.3 15 +41.4 10 +41.4 23 +41.4 14 +41.4 30 +41.4 49 +41.5 46 +41.5 77 +41.5 79 +41.5 104 +41.5 69 +41.6 88 +41.6 70 +41.6 104 +41.6 109 +41.6 104 +41.7 130 +41.7 123 +41.7 161 +41.7 144 +41.7 173 +41.8 138 +41.8 95 +41.8 78 +41.8 50 +41.8 49 +41.9 24 +41.9 9 +41.9 28 +41.9 23 +41.9 38 +42.0 48 +42.0 53 +42.0 62 +42.0 68 +42.0 60 +42.1 34 +42.1 24 +42.1 9 +42.1 1 +42.1 1 +42.2 0 +42.2 2 +42.2 1 +42.2 12 +42.2 8 +42.3 6 +42.3 8 +42.3 3 +42.3 6 +42.3 5 +42.4 4 +42.4 1 +42.4 7 +42.4 1 +42.4 1 +42.5 3 +42.5 8 +42.5 7 +42.5 8 +42.5 15 +42.6 15 +42.6 5 +42.6 14 +42.6 4 +42.6 5 +42.7 7 +42.7 9 +42.7 6 +42.7 7 +42.7 0 +42.8 1 +42.8 2 +42.8 13 +42.8 12 +42.8 14 +42.9 14 +42.9 34 +42.9 39 +42.9 28 +42.9 32 +43.0 43 +43.0 50 +43.0 20 +43.0 19 +43.0 25 +43.1 13 +43.1 16 +43.1 9 +43.1 15 +43.1 2 +43.2 0 +43.2 5 +43.2 10 +43.2 3 +43.2 9 +43.3 21 +43.3 18 +43.3 22 +43.3 40 +43.3 39 +43.4 45 +43.4 39 +43.4 50 +43.4 30 +43.4 25 +43.5 22 +43.5 49 +43.5 52 +43.5 38 +43.5 53 +43.6 60 +43.6 60 +43.6 24 +43.6 49 +43.6 23 +43.7 36 +43.7 30 +43.7 37 +43.7 33 +43.7 49 +43.8 51 +43.8 74 +43.8 110 +43.8 136 +43.8 156 +43.9 157 +43.9 140 +43.9 153 +43.9 118 +43.9 93 +44.0 45 +44.0 31 +44.0 24 +44.0 11 +44.0 6 +44.1 2 +44.1 10 +44.1 12 +44.1 4 +44.1 14 +44.2 4 +44.2 8 +44.2 4 +44.2 2 +44.2 6 +44.3 4 +44.3 10 +44.3 2 +44.3 3 +44.3 13 +44.4 17 +44.4 28 +44.4 31 +44.4 40 +44.4 51 +44.5 46 +44.5 57 +44.5 52 +44.5 52 +44.5 50 +44.6 55 +44.6 31 +44.6 19 +44.6 23 +44.6 23 +44.7 23 +44.7 16 +44.7 53 +44.7 45 +44.7 73 +44.8 59 +44.8 62 +44.8 43 +44.8 41 +44.8 48 +44.9 10 +44.9 15 +44.9 9 +44.9 23 +44.9 18 +45.0 0 +45.0 18 +45.0 5 +45.0 6 +45.0 5 +45.1 10 +45.1 20 +45.1 12 +45.1 12 +45.1 31 +45.2 22 +45.2 51 +45.2 53 +45.2 72 +45.2 82 +45.3 68 +45.3 100 +45.3 78 +45.3 83 +45.3 42 +45.4 41 +45.4 31 +45.4 24 +45.4 39 +45.4 63 +45.5 72 +45.5 110 +45.5 111 +45.5 157 +45.5 112 +45.6 110 +45.6 64 +45.6 49 +45.6 10 +45.6 1 +45.7 0 +45.7 0 +45.7 0 +45.7 0 +45.7 6 +45.8 15 +45.8 24 +45.8 17 +45.8 31 +45.8 28 +45.9 33 +45.9 23 +45.9 24 +45.9 18 +45.9 11 +46.0 4 +46.0 6 +46.0 21 +46.0 11 +46.0 8 +46.1 8 +46.1 15 +46.1 7 +46.1 8 +46.1 1 +46.2 5 +46.2 0 +46.2 2 +46.2 0 +46.2 6 +46.3 3 +46.3 7 +46.3 5 +46.3 4 +46.3 8 +46.4 6 +46.4 3 +46.4 14 +46.4 9 +46.4 12 +46.5 19 +46.5 27 +46.5 35 +46.5 36 +46.5 49 +46.6 67 +46.6 88 +46.6 108 +46.6 110 +46.6 179 +46.7 243 +46.7 316 +46.7 370 +46.7 462 +46.7 579 +46.8 549 +46.8 557 +46.8 452 +46.8 336 +46.8 268 +46.9 153 +46.9 102 +46.9 38 +46.9 81 +46.9 141 +47.0 134 +47.0 230 +47.0 256 +47.0 326 +47.0 345 +47.1 365 +47.1 413 +47.1 427 +47.1 335 +47.1 260 +47.2 166 +47.2 144 +47.2 42 +47.2 31 +47.2 26 +47.3 12 +47.3 2 +47.3 0 +47.3 6 +47.3 11 +47.4 16 +47.4 9 +47.4 17 +47.4 14 +47.4 5 +47.5 6 +47.5 0 +47.5 3 +47.5 3 +47.5 0 +47.6 0 +47.6 3 +47.6 3 +47.6 8 +47.6 2 +47.7 9 +47.7 13 +47.7 10 +47.7 7 +47.7 15 +47.8 19 +47.8 21 +47.8 38 +47.8 30 +47.8 65 +47.9 78 +47.9 99 +47.9 91 +47.9 112 +47.9 150 +48.0 136 +48.0 122 +48.0 126 +48.0 140 +48.0 118 +48.1 117 +48.1 123 +48.1 100 +48.1 117 +48.1 66 +48.2 63 +48.2 54 +48.2 39 +48.2 24 +48.2 24 +48.3 11 +48.3 31 +48.3 54 +48.3 97 +48.3 126 +48.4 127 +48.4 143 +48.4 123 +48.4 110 +48.4 111 +48.5 59 +48.5 15 +48.5 0 +48.5 0 +48.5 0 +48.6 0 +48.6 0 +48.6 0 +48.6 12 +48.6 6 +48.7 11 +48.7 16 +48.7 10 +48.7 11 +48.7 0 +48.8 0 +48.8 0 +48.8 0 +48.8 3 +48.8 4 +48.9 13 +48.9 25 +48.9 15 +48.9 34 +48.9 28 +49.0 31 +49.0 26 +49.0 25 +49.0 24 +49.0 7 +49.1 1 +49.1 12 +49.1 1 +49.1 8 +49.1 0 +49.2 6 +49.2 11 +49.2 14 +49.2 16 +49.2 14 +49.3 17 +49.3 44 +49.3 59 +49.3 51 +49.3 104 +49.4 126 +49.4 165 +49.4 248 +49.4 357 +49.4 399 +49.5 429 +49.5 422 +49.5 363 +49.5 322 +49.5 186 +49.6 122 +49.6 28 +49.6 24 +49.6 22 +49.6 3 +49.7 1 +49.7 12 +49.7 49 +49.7 86 +49.7 89 +49.8 91 +49.8 111 +49.8 69 +49.8 72 +49.8 54 +49.9 2 +49.9 0 +49.9 0 +49.9 0 +49.9 0 +50.0 0 +50.0 8 +50.0 30 +50.0 40 +50.0 49 +50.1 58 +50.1 73 +50.1 66 +50.1 75 +50.1 41 +50.2 52 +50.2 43 +50.2 28 +50.2 54 +50.2 69 +50.3 81 +50.3 115 +50.3 162 +50.3 184 +50.3 199 +50.4 169 +50.4 130 +50.4 122 +50.4 85 +50.4 46 +50.5 43 +50.5 38 +50.5 2 +50.5 0 +50.5 0 +50.6 14 +50.6 28 +50.6 63 +50.6 95 +50.6 125 +50.7 192 +50.7 215 +50.7 285 +50.7 319 +50.7 355 +50.8 378 +50.8 384 +50.8 278 +50.8 248 +50.8 146 +50.9 80 +50.9 7 +50.9 3 +50.9 1 +50.9 0 +51.0 0 +51.0 0 +51.0 7 +51.0 22 +51.0 24 +51.1 21 +51.1 20 +51.1 48 +51.1 56 +51.1 60 +51.2 72 +51.2 95 +51.2 158 +51.2 157 +51.2 211 +51.3 204 +51.3 180 +51.3 151 +51.3 119 +51.3 86 +51.4 65 +51.4 33 +51.4 14 +51.4 1 +51.4 13 +51.5 13 +51.5 14 +51.5 39 +51.5 29 +51.5 32 +51.6 19 +51.6 25 +51.6 10 +51.6 10 +51.6 9 +51.7 8 +51.7 4 +51.7 14 +51.7 3 +51.7 22 +51.8 36 +51.8 46 +51.8 88 +51.8 104 +51.8 165 +51.9 175 +51.9 159 +51.9 148 +51.9 139 +51.9 110 +52.0 84 +52.0 23 +52.0 6 +52.0 4 +52.0 3 +52.1 0 +52.1 0 +52.1 0 +52.1 0 +52.1 10 +52.2 2 +52.2 6 +52.2 1 +52.2 12 +52.2 14 +52.3 3 +52.3 0 +52.3 2 +52.3 1 +52.3 0 +52.4 0 +52.4 0 +52.4 0 +52.4 4 +52.4 4 +52.5 9 +52.5 4 +52.5 11 +52.5 8 +52.5 19 +52.6 23 +52.6 29 +52.6 23 +52.6 17 +52.6 17 +52.7 25 +52.7 11 +52.7 1 +52.7 12 +52.7 18 +52.8 11 +52.8 16 +52.8 43 +52.8 43 +52.8 85 +52.9 125 +52.9 152 +52.9 170 +52.9 165 +52.9 141 +53.0 160 +53.0 102 +53.0 106 +53.0 58 +53.0 42 +53.1 43 +53.1 40 +53.1 63 +53.1 117 +53.1 155 +53.2 244 +53.2 254 +53.2 223 +53.2 244 +53.2 213 +53.3 158 +53.3 94 +53.3 26 +53.3 14 +53.3 3 +53.4 2 +53.4 0 +53.4 0 +53.4 0 +53.4 34 +53.5 51 +53.5 49 +53.5 58 +53.5 59 +53.5 52 +53.6 46 +53.6 42 +53.6 7 +53.6 12 +53.6 10 +53.7 0 +53.7 0 +53.7 11 +53.7 45 +53.7 71 +53.8 94 +53.8 116 +53.8 163 +53.8 185 +53.8 149 +53.9 157 +53.9 117 +53.9 104 +53.9 62 +53.9 35 +54.0 20 +54.0 5 +54.0 2 +54.0 1 +54.0 0 +54.1 0 +54.1 0 +54.1 6 +54.1 16 +54.1 18 +54.2 33 +54.2 55 +54.2 74 +54.2 102 +54.2 135 +54.3 172 +54.3 191 +54.3 203 +54.3 225 +54.3 237 +54.4 190 +54.4 133 +54.4 128 +54.4 67 +54.4 37 +54.5 11 +54.5 3 +54.5 0 +54.5 0 +54.5 0 +54.6 0 +54.6 0 +54.6 7 +54.6 5 +54.6 9 +54.7 5 +54.7 4 +54.7 4 +54.7 7 +54.7 1 +54.8 3 +54.8 1 +54.8 3 +54.8 6 +54.8 6 +54.9 4 +54.9 7 +54.9 7 +54.9 4 +54.9 2 +55.0 12 +55.0 3 +55.0 18 +55.0 17 +55.0 20 +55.1 33 +55.1 25 +55.1 26 +55.1 26 +55.1 14 +55.2 20 +55.2 18 +55.2 4 +55.2 2 +55.2 3 +55.3 0 +55.3 0 +55.3 1 +55.3 0 +55.3 2 +55.4 3 +55.4 6 +55.4 3 +55.4 5 +55.4 2 +55.5 2 +55.5 6 +55.5 5 +55.5 0 +55.5 0 +55.6 0 +55.6 1 +55.6 3 +55.6 0 +55.6 4 +55.7 4 +55.7 6 +55.7 4 +55.7 10 +55.7 7 +55.8 4 +55.8 10 +55.8 16 +55.8 8 +55.8 19 +55.9 32 +55.9 36 +55.9 47 +55.9 60 +55.9 109 +56.0 155 +56.0 166 +56.0 153 +56.0 171 +56.0 150 +56.1 136 +56.1 106 +56.1 69 +56.1 39 +56.1 31 +56.2 12 +56.2 5 +56.2 2 +56.2 0 +56.2 6 +56.3 4 +56.3 0 +56.3 19 +56.3 6 +56.3 21 +56.4 16 +56.4 7 +56.4 4 +56.4 5 +56.4 9 +56.5 10 +56.5 17 +56.5 14 +56.5 24 +56.5 44 +56.6 56 +56.6 53 +56.6 38 +56.6 33 +56.6 16 +56.7 19 +56.7 13 +56.7 6 +56.7 5 +56.7 0 +56.8 0 +56.8 0 +56.8 0 +56.8 0 +56.8 0 +56.9 2 +56.9 5 +56.9 8 +56.9 9 +56.9 8 +57.0 8 +57.0 18 +57.0 18 +57.0 42 +57.0 63 +57.1 68 +57.1 80 +57.1 137 +57.1 157 +57.1 156 +57.2 161 +57.2 117 +57.2 109 +57.2 67 +57.2 61 +57.3 13 +57.3 0 +57.3 0 +57.3 0 +57.3 0 +57.4 0 +57.4 19 +57.4 42 +57.4 47 +57.4 62 +57.5 52 +57.5 45 +57.5 65 +57.5 48 +57.5 42 +57.6 25 +57.6 4 +57.6 0 +57.6 4 +57.6 1 +57.7 0 +57.7 0 +57.7 0 +57.7 0 +57.7 2 +57.8 9 +57.8 7 +57.8 1 +57.8 4 +57.8 4 +57.9 4 +57.9 6 +57.9 2 +57.9 0 +57.9 0 +58.0 3 +58.0 2 +58.0 4 +58.0 1 +58.0 1 +58.1 2 +58.1 2 +58.1 4 +58.1 1 +58.1 2 +58.2 3 +58.2 1 +58.2 2 +58.2 0 +58.2 0 +58.3 2 +58.3 1 +58.3 2 +58.3 0 +58.3 3 +58.4 0 +58.4 4 +58.4 0 +58.4 4 +58.4 0 +58.5 1 +58.5 0 +58.5 3 +58.5 1 +58.5 3 +58.6 0 +58.6 3 +58.6 4 +58.6 1 +58.6 2 +58.7 2 +58.7 3 +58.7 2 +58.7 0 +58.7 0 +58.8 2 +58.8 0 +58.8 0 +58.8 4 +58.8 4 +58.9 1 +58.9 5 +58.9 4 +58.9 4 +58.9 4 +59.0 6 +59.0 2 +59.0 5 +59.0 5 +59.0 2 +59.1 3 +59.1 0 +59.1 2 +59.1 5 +59.1 4 +59.2 9 +59.2 16 +59.2 23 +59.2 21 +59.2 39 +59.3 35 +59.3 28 +59.3 39 +59.3 32 +59.3 22 +59.4 19 +59.4 33 +59.4 28 +59.4 37 +59.4 56 +59.5 86 +59.5 74 +59.5 90 +59.5 81 +59.5 61 +59.6 63 +59.6 55 +59.6 23 +59.6 3 +59.6 1 +59.7 0 +59.7 0 +59.7 0 +59.7 0 +59.7 0 +59.8 0 +59.8 4 +59.8 11 +59.8 10 +59.8 22 +59.9 32 +59.9 32 +59.9 39 +59.9 72 +59.9 94 +60.0 108 +60.0 119 +60.0 117 +60.0 95 +60.0 85 +60.1 79 +60.1 44 +60.1 46 +60.1 4 +60.1 2 +60.2 0 +60.2 0 +60.2 0 +60.2 0 +60.2 0 +60.3 0 +60.3 14 +60.3 16 +60.3 29 +60.3 33 +60.4 28 +60.4 33 +60.4 35 +60.4 16 +60.4 20 +60.5 12 +60.5 5 +60.5 3 +60.5 1 +60.5 0 +60.6 0 +60.6 0 +60.6 0 +60.6 0 +60.6 4 +60.7 2 +60.7 8 +60.7 5 +60.7 8 +60.7 9 +60.8 11 +60.8 13 +60.8 23 +60.8 22 +60.8 16 +60.9 26 +60.9 29 +60.9 21 +60.9 20 +60.9 12 +61.0 15 +61.0 0 +61.0 1 +61.0 0 +61.0 1 +61.1 0 +61.1 0 +61.1 6 +61.1 9 +61.1 9 +61.2 14 +61.2 26 +61.2 22 +61.2 39 +61.2 80 +61.3 79 +61.3 115 +61.3 148 +61.3 132 +61.3 94 +61.4 118 +61.4 67 +61.4 64 +61.4 56 +61.4 39 +61.5 9 +61.5 4 +61.5 5 +61.5 3 +61.5 9 +61.6 1 +61.6 8 +61.6 2 +61.6 20 +61.6 11 +61.7 19 +61.7 12 +61.7 8 +61.7 8 +61.7 3 +61.8 0 +61.8 0 +61.8 0 +61.8 0 +61.8 0 +61.9 0 +61.9 0 +61.9 0 +61.9 3 +61.9 6 +62.0 4 +62.0 6 +62.0 3 +62.0 3 +62.0 5 +62.1 1 +62.1 2 +62.1 0 +62.1 4 +62.1 1 +62.2 0 +62.2 2 +62.2 2 +62.2 2 +62.2 0 +62.3 1 +62.3 4 +62.3 12 +62.3 8 +62.3 12 +62.4 22 +62.4 29 +62.4 36 +62.4 61 +62.4 71 +62.5 77 +62.5 124 +62.5 138 +62.5 126 +62.5 112 +62.6 106 +62.6 55 +62.6 43 +62.6 36 +62.6 15 +62.7 4 +62.7 2 +62.7 0 +62.7 0 +62.7 0 +62.8 0 +62.8 0 +62.8 0 +62.8 0 +62.8 0 +62.9 4 +62.9 4 +62.9 6 +62.9 6 +62.9 6 +63.0 6 +63.0 8 +63.0 14 +63.0 24 +63.0 19 +63.1 20 +63.1 45 +63.1 68 +63.1 105 +63.1 128 +63.2 113 +63.2 103 +63.2 117 +63.2 90 +63.2 85 +63.3 63 +63.3 51 +63.3 35 +63.3 11 +63.3 8 +63.4 16 +63.4 0 +63.4 24 +63.4 7 +63.4 4 +63.5 23 +63.5 20 +63.5 38 +63.5 32 +63.5 28 +63.6 18 +63.6 0 +63.6 9 +63.6 10 +63.6 8 +63.7 1 +63.7 0 +63.7 0 +63.7 0 +63.7 0 +63.8 0 +63.8 0 +63.8 2 +63.8 0 +63.8 10 +63.9 11 +63.9 4 +63.9 9 +63.9 11 +63.9 18 +64.0 28 +64.0 24 +64.0 56 +64.0 76 +64.0 81 +64.1 164 +64.1 194 +64.1 278 +64.1 347 +64.1 365 +64.2 409 +64.2 347 +64.2 343 +64.2 274 +64.2 243 +64.3 151 +64.3 106 +64.3 48 +64.3 31 +64.3 0 +64.4 0 +64.4 0 +64.4 0 +64.4 0 +64.4 0 +64.5 0 +64.5 0 +64.5 4 +64.5 19 +64.5 11 +64.6 15 +64.6 26 +64.6 20 +64.6 35 +64.6 33 +64.7 23 +64.7 20 +64.7 9 +64.7 23 +64.7 19 +64.8 5 +64.8 4 +64.8 0 +64.8 0 +64.8 0 +64.9 0 +64.9 3 +64.9 1 +64.9 0 +64.9 3 +65.0 8 +65.0 15 +65.0 14 +65.0 27 +65.0 32 +65.1 60 +65.1 72 +65.1 108 +65.1 147 +65.1 145 +65.2 171 +65.2 148 +65.2 123 +65.2 108 +65.2 82 +65.3 101 +65.3 38 +65.3 5 +65.3 3 +65.3 1 +65.4 0 +65.4 0 +65.4 0 +65.4 0 +65.4 0 +65.5 0 +65.5 1 +65.5 5 +65.5 3 +65.5 1 +65.6 3 +65.6 4 +65.6 3 +65.6 5 +65.6 4 +65.7 4 +65.7 0 +65.7 0 +65.7 0 +65.7 0 +65.8 0 +65.8 5 +65.8 0 +65.8 3 +65.8 2 +65.9 10 +65.9 14 +65.9 11 +65.9 18 +65.9 25 +66.0 18 +66.0 31 +66.0 31 +66.0 31 +66.0 22 +66.1 20 +66.1 19 +66.1 18 +66.1 6 +66.1 21 +66.2 13 +66.2 19 +66.2 15 +66.2 38 +66.2 41 +66.3 25 +66.3 44 +66.3 42 +66.3 22 +66.3 25 +66.4 28 +66.4 10 +66.4 2 +66.4 1 +66.4 0 +66.5 0 +66.5 0 +66.5 0 +66.5 0 +66.5 0 +66.6 0 +66.6 3 +66.6 3 +66.6 4 +66.6 1 +66.7 1 +66.7 4 +66.7 4 +66.7 4 +66.7 1 +66.8 2 +66.8 1 +66.8 3 +66.8 0 +66.8 1 +66.9 2 +66.9 0 +66.9 0 +66.9 2 +66.9 2 +67.0 0 +67.0 1 +67.0 1 +67.0 0 +67.0 4 +67.1 3 +67.1 2 +67.1 0 +67.1 2 +67.1 0 +67.2 6 +67.2 10 +67.2 4 +67.2 7 +67.2 18 +67.3 18 +67.3 39 +67.3 50 +67.3 52 +67.3 57 +67.4 48 +67.4 46 +67.4 51 +67.4 40 +67.4 67 +67.5 47 +67.5 34 +67.5 5 +67.5 12 +67.5 4 +67.6 3 +67.6 1 +67.6 0 +67.6 0 +67.6 0 +67.7 0 +67.7 0 +67.7 0 +67.7 0 +67.7 1 +67.8 2 +67.8 2 +67.8 3 +67.8 3 +67.8 3 +67.9 1 +67.9 2 +67.9 2 +67.9 1 +67.9 0 +68.0 3 +68.0 0 +68.0 0 +68.0 1 +68.0 0 +68.1 0 +68.1 0 +68.1 2 +68.1 3 +68.1 0 +68.2 1 +68.2 2 +68.2 1 +68.2 3 +68.2 2 +68.3 2 +68.3 3 +68.3 0 +68.3 2 +68.3 0 +68.4 3 +68.4 2 +68.4 0 +68.4 2 +68.4 0 +68.5 2 +68.5 1 +68.5 0 +68.5 1 +68.5 3 +68.6 0 +68.6 0 +68.6 0 +68.6 2 +68.6 0 +68.7 0 +68.7 0 +68.7 1 +68.7 3 +68.7 2 +68.8 1 +68.8 4 +68.8 3 +68.8 0 +68.8 1 +68.9 4 +68.9 0 +68.9 1 +68.9 0 +68.9 2 +69.0 1 +69.0 0 +69.0 1 +69.0 0 +69.0 1 +69.1 2 +69.1 0 +69.1 1 +69.1 0 +69.1 0 +69.2 1 +69.2 0 +69.2 0 +69.2 3 +69.2 1 +69.3 0 +69.3 2 +69.3 0 +69.3 4 +69.3 3 +69.4 3 +69.4 3 +69.4 0 +69.4 2 +69.4 2 +69.5 1 +69.5 0 +69.5 3 +69.5 0 +69.5 0 +69.6 0 +69.6 1 +69.6 2 +69.6 3 +69.6 0 +69.7 2 +69.7 1 +69.7 0 +69.7 3 +69.7 1 +69.8 1 +69.8 1 +69.8 0 +69.8 1 +69.8 3 +69.9 0 +69.9 3 +69.9 2 +69.9 2 +69.9 1 +70.0 0 diff --git a/tasks/background_001/human_demo/actions_raw.json b/tasks/background_001/human_demo/actions_raw.json new file mode 100644 index 0000000..239eb09 --- /dev/null +++ b/tasks/background_001/human_demo/actions_raw.json @@ -0,0 +1,295 @@ +{ + "metadata": { + "task_id": "background_001", + "vm_resolution": [ + 3840, + 2160 + ], + "vm_screenshot_resolution": [ + 3840, + 2160 + ], + "vm_dpi_scale": 2.0, + "recording_start": "2026-01-09T19:01:55.177741", + "recording_end": "2026-01-09T19:03:23.015038", + "total_duration": 88.34, + "total_actions": 35, + "total_screenshots": 13 + }, + "actions": [ + { + "t": 5.872, + "type": "key", + "key": "right" + }, + { + "t": 7.817, + "type": "click", + "button": "left", + "pos_host": [ + 40.93359375, + 333.15234375 + ], + "pos_vm": [ + 80, + 666 + ], + "screenshot": "screens/0002_click.png" + }, + { + "t": 33.337, + "type": "click", + "button": "right", + "pos_host": [ + 554.56640625, + 219.70703125 + ], + "pos_vm": [ + 1108, + 438 + ], + "screenshot": "screens/0003_click.png" + }, + { + "t": 37.47, + "type": "click", + "button": "left", + "pos_host": [ + 624.0234375, + 485.74609375 + ], + "pos_vm": [ + 1248, + 970 + ], + "screenshot": "screens/0004_click.png" + }, + { + "t": 40.943, + "type": "click", + "button": "left", + "pos_host": [ + 666.17578125, + 484.203125 + ], + "pos_vm": [ + 1332, + 968 + ], + "screenshot": "screens/0005_click.png" + }, + { + "t": 46.95, + "type": "click", + "button": "left", + "pos_host": [ + 550.890625, + 222.9921875 + ], + "pos_vm": [ + 1100, + 444 + ], + "screenshot": "screens/0006_click.png" + }, + { + "t": 50.701, + "type": "click", + "button": "left", + "pos_host": [ + 245.34375, + 196.83203125 + ], + "pos_vm": [ + 490, + 392 + ], + "screenshot": "screens/0007_click.png" + }, + { + "t": 57.946, + "type": "click", + "button": "left", + "pos_host": [ + 672.25390625, + 506.546875 + ], + "pos_vm": [ + 1344, + 1012 + ], + "screenshot": "screens/0008_click.png" + }, + { + "t": 61.764, + "type": "click", + "button": "left", + "pos_host": [ + 237.87890625, + 196.30859375 + ], + "pos_vm": [ + 474, + 392 + ], + "screenshot": "screens/0009_click.png" + }, + { + "t": 66.595, + "type": "click", + "button": "left", + "pos_host": [ + 675.453125, + 508.65625 + ], + "pos_vm": [ + 1350, + 1016 + ], + "screenshot": "screens/0010_click.png" + }, + { + "t": 71.596, + "type": "key", + "key": "b" + }, + { + "t": 71.69, + "type": "key", + "key": "a" + }, + { + "t": 72.934, + "type": "key", + "key": "shift" + }, + { + "t": 73.417, + "type": "key", + "key": "c" + }, + { + "t": 73.93, + "type": "key", + "key": "k" + }, + { + "t": 74.232, + "type": "key", + "key": "g" + }, + { + "t": 74.596, + "type": "key", + "key": "r" + }, + { + "t": 74.957, + "type": "key", + "key": "o" + }, + { + "t": 75.051, + "type": "key", + "key": "u" + }, + { + "t": 75.259, + "type": "key", + "key": "n" + }, + { + "t": 75.393, + "type": "key", + "key": "d" + }, + { + "t": 75.618, + "type": "key", + "key": "shift" + }, + { + "t": 75.768, + "type": "key", + "key": "_" + }, + { + "t": 76.924, + "type": "key", + "key": "r" + }, + { + "t": 77.011, + "type": "key", + "key": "e" + }, + { + "t": 77.257, + "type": "key", + "key": "s" + }, + { + "t": 77.358, + "type": "key", + "key": "u" + }, + { + "t": 77.611, + "type": "key", + "key": "l" + }, + { + "t": 77.71, + "type": "key", + "key": "t" + }, + { + "t": 81.94, + "type": "key", + "key": "ctrl" + }, + { + "t": 79.723, + "type": "click", + "button": "left", + "pos_host": [ + 1214.86328125, + 751.3515625 + ], + "pos_vm": [ + 2428, + 1502 + ], + "screenshot": "screens/0011_click.png" + }, + { + "t": 82.972, + "type": "key", + "key": "left" + }, + { + "t": 84.977, + "type": "key", + "key": "ctrl" + }, + { + "t": 86.418, + "type": "key", + "key": "c" + }, + { + "t": 84.163, + "type": "click", + "button": "left", + "pos_host": [ + 1093.87890625, + 904.1015625 + ], + "pos_vm": [ + 2428, + 1502 + ], + "screenshot": "screens/0012_click.png" + } + ] +} \ No newline at end of file diff --git a/tasks/background_001/human_demo/screens/0001_initial.png b/tasks/background_001/human_demo/screens/0001_initial.png new file mode 100644 index 0000000..8604de0 Binary files /dev/null and b/tasks/background_001/human_demo/screens/0001_initial.png differ diff --git a/tasks/background_001/human_demo/screens/0002_click.png b/tasks/background_001/human_demo/screens/0002_click.png new file mode 100644 index 0000000..551d6e8 Binary files /dev/null and b/tasks/background_001/human_demo/screens/0002_click.png differ diff --git a/tasks/background_001/human_demo/screens/0003_click.png b/tasks/background_001/human_demo/screens/0003_click.png new file mode 100644 index 0000000..e51579a Binary files /dev/null and b/tasks/background_001/human_demo/screens/0003_click.png differ diff --git a/tasks/background_001/human_demo/screens/0004_click.png b/tasks/background_001/human_demo/screens/0004_click.png new file mode 100644 index 0000000..b929e2f Binary files /dev/null and b/tasks/background_001/human_demo/screens/0004_click.png differ diff --git a/tasks/background_001/human_demo/screens/0005_click.png b/tasks/background_001/human_demo/screens/0005_click.png new file mode 100644 index 0000000..fd4f0a8 Binary files /dev/null and b/tasks/background_001/human_demo/screens/0005_click.png differ diff --git a/tasks/background_001/human_demo/screens/0006_click.png b/tasks/background_001/human_demo/screens/0006_click.png new file mode 100644 index 0000000..99cfaec Binary files /dev/null and b/tasks/background_001/human_demo/screens/0006_click.png differ diff --git a/tasks/background_001/human_demo/screens/0007_click.png b/tasks/background_001/human_demo/screens/0007_click.png new file mode 100644 index 0000000..e657c14 Binary files /dev/null and b/tasks/background_001/human_demo/screens/0007_click.png differ diff --git a/tasks/background_001/human_demo/screens/0008_click.png b/tasks/background_001/human_demo/screens/0008_click.png new file mode 100644 index 0000000..968e373 Binary files /dev/null and b/tasks/background_001/human_demo/screens/0008_click.png differ diff --git a/tasks/background_001/human_demo/screens/0009_click.png b/tasks/background_001/human_demo/screens/0009_click.png new file mode 100644 index 0000000..f8a4941 Binary files /dev/null and b/tasks/background_001/human_demo/screens/0009_click.png differ diff --git a/tasks/background_001/human_demo/screens/0010_click.png b/tasks/background_001/human_demo/screens/0010_click.png new file mode 100644 index 0000000..a1b46df Binary files /dev/null and b/tasks/background_001/human_demo/screens/0010_click.png differ diff --git a/tasks/background_001/human_demo/screens/0011_click.png b/tasks/background_001/human_demo/screens/0011_click.png new file mode 100644 index 0000000..b4f08ab Binary files /dev/null and b/tasks/background_001/human_demo/screens/0011_click.png differ diff --git a/tasks/background_001/human_demo/screens/0012_click.png b/tasks/background_001/human_demo/screens/0012_click.png new file mode 100644 index 0000000..12b5f55 Binary files /dev/null and b/tasks/background_001/human_demo/screens/0012_click.png differ diff --git a/tasks/background_001/human_demo/screens/0013_final.png b/tasks/background_001/human_demo/screens/0013_final.png new file mode 100644 index 0000000..12b5f55 Binary files /dev/null and b/tasks/background_001/human_demo/screens/0013_final.png differ diff --git a/tasks/background_001/task.json b/tasks/background_001/task.json new file mode 100644 index 0000000..db64e04 --- /dev/null +++ b/tasks/background_001/task.json @@ -0,0 +1,22 @@ +{ + "id": "background_001", + "category": "basic_processing", + "difficulty": "easy", + "instruction": "请打开桌面上的 DEMO01.MDI 文件,进行背景扣除 (Background Removal),使用自动背景扣除方法,然后将处理后的曲线导出为 ASCII (.txt) 文件并命名为 background_result.txt。", + "input": { + "source_file": "../../data/source/DEMO01.MDI", + "inject_to": "C:\\Users\\lzy\\Desktop\\DEMO01.MDI" + }, + "output": { + "expected_file": "background_result.txt", + "collect_from": "C:\\Users\\lzy\\Desktop\\background_result.txt" + }, + "evaluation": { + "method": "xrd_data_compare", + "ground_truth": "ground_truth/background_result.txt", + "target_output": "agent_output/background_result.txt", + "tolerance": 0.0001 + }, + "tutorial_source": "教程(1) + 基础处理知识", + "notes": "使用自动背景扣除方法(固定参数)" +} \ No newline at end of file diff --git a/tasks/batch_definitions/basic_processing_tasks.json b/tasks/batch_definitions/basic_processing_tasks.json new file mode 100644 index 0000000..6c13e5f --- /dev/null +++ b/tasks/batch_definitions/basic_processing_tasks.json @@ -0,0 +1,70 @@ +{ + "description": "基础处理类别任务定义 - 根据教程(1)提取,使用固定参数", + "category": "basic_processing", + "tutorial_source": "Jade使用教程(1)打开文件 寻峰.pdf", + "parameter_strategy": "fixed_parameters", + "tasks": [ + { + "id": "open_file_001", + "category": "basic_processing", + "difficulty": "easy", + "instruction": "请打开桌面上的 DEMO01.MDI 文件。", + "source_file": "DEMO01.MDI", + "output_filename": "open_file_result.txt", + "tutorial_source": "教程(1) - 打开文件部分", + "notes": "打开文件后导出为ASCII文件用于评测", + "evaluation_method": "xrd_data_compare", + "skip_if_exists": false, + "parameters": { + "note": "无参数,仅打开文件并导出" + } + }, + { + "id": "smooth_001", + "category": "basic_processing", + "difficulty": "easy", + "instruction": "请打开桌面上的 DEMO01.MDI 文件,进行平滑处理 (Smoothing),平滑点数设置为 5,然后将处理后的曲线导出为 ASCII (.txt) 文件并命名为 result.txt。", + "source_file": "DEMO01.MDI", + "output_filename": "result.txt", + "tutorial_source": "教程(1) + 基础处理", + "notes": "重新采集,固定平滑点数=5", + "evaluation_method": "xrd_data_compare", + "skip_if_exists": false, + "parameters": { + "smooth_points": 5, + "note": "固定参数:平滑点数=5" + } + }, + { + "id": "background_001", + "category": "basic_processing", + "difficulty": "easy", + "instruction": "请打开桌面上的 DEMO01.MDI 文件,进行背景扣除 (Background Removal),使用自动背景扣除方法,然后将处理后的曲线导出为 ASCII (.txt) 文件并命名为 background_result.txt。", + "source_file": "DEMO01.MDI", + "output_filename": "background_result.txt", + "tutorial_source": "教程(1) + 基础处理知识", + "notes": "使用自动背景扣除方法(固定参数)", + "evaluation_method": "xrd_data_compare", + "skip_if_exists": false, + "parameters": { + "background_method": "auto", + "note": "固定参数:自动背景扣除" + } + }, + { + "id": "export_001", + "category": "basic_processing", + "difficulty": "easy", + "instruction": "请打开桌面上的 DEMO01.MDI 文件,将当前曲线导出为 ASCII (.txt) 文件并命名为 export_result.txt。", + "source_file": "DEMO01.MDI", + "output_filename": "export_result.txt", + "tutorial_source": "教程(1) - 导出数据部分", + "notes": "基础导出操作,不进行任何处理", + "evaluation_method": "xrd_data_compare", + "skip_if_exists": false, + "parameters": { + "note": "无参数,仅导出原始数据" + } + } + ] +} diff --git a/tasks/open_file_001/agent_output/open_file_result.txt b/tasks/open_file_001/agent_output/open_file_result.txt new file mode 100644 index 0000000..8db2e43 --- /dev/null +++ b/tasks/open_file_001/agent_output/open_file_result.txt @@ -0,0 +1,3252 @@ +Demo01: 37-1497 4-733 9-169 18-303 9-77 +5.0 43 +5.02 43 +5.04 43 +5.06 42 +5.08 40 +5.1 38 +5.12 38 +5.14 39 +5.16 39 +5.18 38 +5.2 40 +5.22 41 +5.24 41 +5.26 39 +5.28 38 +5.3 36 +5.32 36 +5.34 35 +5.36 36 +5.38 36 +5.4 35 +5.42 36 +5.44 36 +5.46 36 +5.48 38 +5.5 39 +5.52 39 +5.54 40 +5.56 40 +5.58 39 +5.6 40 +5.62 42 +5.64 43 +5.66 42 +5.68 43 +5.7 43 +5.72 43 +5.74 43 +5.76 44 +5.78 44 +5.8 44 +5.82 43 +5.84 40 +5.86 39 +5.88 38 +5.9 39 +5.92 37 +5.94 37 +5.96 37 +5.98 36 +6.0 36 +6.02 37 +6.04 38 +6.06 40 +6.08 40 +6.1 39 +6.12 40 +6.14 40 +6.16 40 +6.18 41 +6.2 40 +6.22 40 +6.24 37 +6.26 38 +6.28 39 +6.3 39 +6.32 37 +6.34 38 +6.36 39 +6.38 37 +6.4 39 +6.42 40 +6.44 40 +6.46 39 +6.48 40 +6.5 41 +6.52 40 +6.54 43 +6.56 42 +6.58 42 +6.6 41 +6.62 40 +6.64 40 +6.66 38 +6.68 38 +6.7 37 +6.72 36 +6.74 36 +6.76 37 +6.78 36 +6.8 35 +6.82 37 +6.84 36 +6.86 38 +6.88 38 +6.9 37 +6.92 38 +6.94 37 +6.96 37 +6.98 36 +7.0 36 +7.02 35 +7.04 36 +7.06 36 +7.08 37 +7.1 39 +7.12 39 +7.14 38 +7.16 38 +7.18 37 +7.2 38 +7.22 37 +7.24 37 +7.26 36 +7.28 37 +7.3 39 +7.32 39 +7.34 42 +7.36 42 +7.38 43 +7.4 43 +7.42 41 +7.44 40 +7.46 39 +7.48 40 +7.5 40 +7.52 39 +7.54 40 +7.56 40 +7.58 40 +7.6 41 +7.62 41 +7.64 41 +7.66 43 +7.68 43 +7.7 42 +7.72 41 +7.74 41 +7.76 42 +7.78 40 +7.8 39 +7.82 39 +7.84 40 +7.86 40 +7.88 42 +7.9 40 +7.92 41 +7.94 41 +7.96 41 +7.98 41 +8.0 40 +8.02 39 +8.04 37 +8.06 34 +8.08 33 +8.1 35 +8.12 35 +8.14 35 +8.16 36 +8.18 34 +8.2 35 +8.22 37 +8.24 39 +8.26 39 +8.28 41 +8.3 41 +8.32 40 +8.34 39 +8.36 39 +8.38 39 +8.4 36 +8.42 34 +8.44 33 +8.46 32 +8.48 32 +8.5 34 +8.52 36 +8.54 36 +8.56 38 +8.58 39 +8.6 39 +8.62 39 +8.64 39 +8.66 38 +8.68 37 +8.7 36 +8.72 36 +8.74 36 +8.76 35 +8.78 34 +8.8 35 +8.82 34 +8.84 34 +8.86 33 +8.88 32 +8.9 32 +8.92 34 +8.94 34 +8.96 34 +8.98 34 +9.0 35 +9.02 37 +9.04 38 +9.06 38 +9.08 39 +9.1 39 +9.12 39 +9.14 38 +9.16 38 +9.18 38 +9.2 37 +9.22 37 +9.24 35 +9.26 37 +9.28 38 +9.3 39 +9.32 39 +9.34 37 +9.36 37 +9.38 38 +9.4 39 +9.42 38 +9.44 37 +9.46 38 +9.48 36 +9.5 37 +9.52 36 +9.54 37 +9.56 37 +9.58 37 +9.6 37 +9.62 35 +9.64 35 +9.66 36 +9.68 36 +9.7 36 +9.72 37 +9.74 37 +9.76 37 +9.78 38 +9.8 37 +9.82 36 +9.84 35 +9.86 36 +9.88 35 +9.9 34 +9.92 33 +9.94 34 +9.96 34 +9.98 35 +10.0 35 +10.0 34 +10.0 36 +10.0 35 +10.0 35 +10.1 33 +10.1 33 +10.1 35 +10.1 33 +10.1 33 +10.2 33 +10.2 33 +10.2 34 +10.2 35 +10.2 35 +10.3 38 +10.3 38 +10.3 39 +10.3 39 +10.3 39 +10.4 40 +10.4 42 +10.4 43 +10.4 42 +10.4 43 +10.5 42 +10.5 41 +10.5 41 +10.5 43 +10.5 47 +10.6 50 +10.6 60 +10.6 69 +10.6 87 +10.6 105 +10.7 133 +10.7 161 +10.7 186 +10.7 210 +10.7 229 +10.8 238 +10.8 243 +10.8 237 +10.8 225 +10.8 204 +10.9 179 +10.9 150 +10.9 127 +10.9 101 +10.9 88 +11.0 74 +11.0 62 +11.0 57 +11.0 54 +11.0 49 +11.1 49 +11.1 45 +11.1 43 +11.1 39 +11.1 37 +11.2 34 +11.2 34 +11.2 34 +11.2 34 +11.2 35 +11.3 37 +11.3 40 +11.3 42 +11.3 45 +11.3 48 +11.4 52 +11.4 56 +11.4 58 +11.4 65 +11.4 69 +11.5 82 +11.5 100 +11.5 125 +11.5 159 +11.5 202 +11.6 244 +11.6 287 +11.6 323 +11.6 350 +11.6 361 +11.7 356 +11.7 335 +11.7 306 +11.7 263 +11.7 220 +11.8 177 +11.8 138 +11.8 108 +11.8 89 +11.8 71 +11.9 63 +11.9 56 +11.9 52 +11.9 47 +11.9 47 +12.0 47 +12.0 45 +12.0 41 +12.0 40 +12.0 39 +12.1 37 +12.1 37 +12.1 37 +12.1 36 +12.1 36 +12.2 36 +12.2 37 +12.2 36 +12.2 37 +12.2 36 +12.3 35 +12.3 34 +12.3 34 +12.3 35 +12.3 35 +12.4 35 +12.4 36 +12.4 36 +12.4 37 +12.4 37 +12.5 37 +12.5 35 +12.5 35 +12.5 33 +12.5 34 +12.6 33 +12.6 32 +12.6 32 +12.6 31 +12.6 31 +12.7 32 +12.7 31 +12.7 32 +12.7 31 +12.7 31 +12.8 32 +12.8 31 +12.8 31 +12.8 32 +12.8 32 +12.9 31 +12.9 32 +12.9 32 +12.9 33 +12.9 33 +13.0 34 +13.0 34 +13.0 34 +13.0 33 +13.0 33 +13.1 31 +13.1 31 +13.1 31 +13.1 30 +13.1 30 +13.2 31 +13.2 31 +13.2 33 +13.2 32 +13.2 33 +13.3 33 +13.3 32 +13.3 31 +13.3 33 +13.3 33 +13.4 35 +13.4 39 +13.4 43 +13.4 51 +13.4 63 +13.5 72 +13.5 84 +13.5 99 +13.5 115 +13.5 130 +13.6 140 +13.6 148 +13.6 150 +13.6 148 +13.6 140 +13.7 128 +13.7 115 +13.7 99 +13.7 83 +13.7 67 +13.8 56 +13.8 49 +13.8 42 +13.8 36 +13.8 33 +13.9 33 +13.9 32 +13.9 33 +13.9 31 +13.9 30 +14.0 31 +14.0 31 +14.0 32 +14.0 35 +14.0 36 +14.1 40 +14.1 46 +14.1 51 +14.1 60 +14.1 67 +14.2 73 +14.2 76 +14.2 76 +14.2 74 +14.2 73 +14.3 68 +14.3 63 +14.3 57 +14.3 48 +14.3 43 +14.4 39 +14.4 36 +14.4 34 +14.4 30 +14.4 30 +14.5 28 +14.5 26 +14.5 26 +14.5 26 +14.5 27 +14.6 27 +14.6 27 +14.6 26 +14.6 28 +14.6 29 +14.7 30 +14.7 29 +14.7 28 +14.7 30 +14.7 30 +14.8 29 +14.8 29 +14.8 28 +14.8 26 +14.8 25 +14.9 24 +14.9 25 +14.9 27 +14.9 27 +14.9 27 +15.0 27 +15.0 27 +15.0 29 +15.0 29 +15.0 29 +15.1 28 +15.1 27 +15.1 26 +15.1 26 +15.1 26 +15.2 25 +15.2 25 +15.2 25 +15.2 25 +15.2 25 +15.3 25 +15.3 25 +15.3 25 +15.3 26 +15.3 26 +15.4 27 +15.4 28 +15.4 27 +15.4 28 +15.4 27 +15.5 27 +15.5 28 +15.5 26 +15.5 27 +15.5 27 +15.6 25 +15.6 26 +15.6 27 +15.6 27 +15.6 27 +15.7 27 +15.7 27 +15.7 29 +15.7 29 +15.7 28 +15.8 27 +15.8 26 +15.8 26 +15.8 26 +15.8 25 +15.9 25 +15.9 25 +15.9 24 +15.9 24 +15.9 24 +16.0 25 +16.0 26 +16.0 26 +16.0 26 +16.0 25 +16.1 25 +16.1 26 +16.1 25 +16.1 25 +16.1 26 +16.2 26 +16.2 26 +16.2 27 +16.2 27 +16.2 28 +16.3 29 +16.3 28 +16.3 28 +16.3 29 +16.3 29 +16.4 29 +16.4 29 +16.4 30 +16.4 32 +16.4 31 +16.5 32 +16.5 32 +16.5 32 +16.5 35 +16.5 35 +16.6 38 +16.6 44 +16.6 53 +16.6 62 +16.6 79 +16.7 94 +16.7 111 +16.7 127 +16.7 138 +16.7 147 +16.8 149 +16.8 146 +16.8 143 +16.8 140 +16.8 141 +16.9 143 +16.9 148 +16.9 153 +16.9 163 +16.9 168 +17.0 175 +17.0 174 +17.0 166 +17.0 154 +17.0 136 +17.1 116 +17.1 99 +17.1 85 +17.1 71 +17.1 59 +17.2 51 +17.2 41 +17.2 38 +17.2 35 +17.2 34 +17.3 30 +17.3 27 +17.3 24 +17.3 23 +17.3 21 +17.4 21 +17.4 21 +17.4 21 +17.4 23 +17.4 26 +17.5 26 +17.5 29 +17.5 30 +17.5 30 +17.5 30 +17.6 30 +17.6 31 +17.6 32 +17.6 30 +17.6 30 +17.7 31 +17.7 33 +17.7 34 +17.7 39 +17.7 43 +17.8 45 +17.8 51 +17.8 58 +17.8 70 +17.8 85 +17.9 112 +17.9 143 +17.9 188 +17.9 260 +17.9 349 +18.0 447 +18.0 550 +18.0 648 +18.0 725 +18.0 768 +18.1 785 +18.1 761 +18.1 708 +18.1 622 +18.1 523 +18.2 414 +18.2 316 +18.2 239 +18.2 176 +18.2 130 +18.3 101 +18.3 85 +18.3 73 +18.3 66 +18.3 63 +18.4 57 +18.4 53 +18.4 47 +18.4 46 +18.4 43 +18.5 42 +18.5 40 +18.5 40 +18.5 38 +18.5 34 +18.6 34 +18.6 32 +18.6 31 +18.6 29 +18.6 26 +18.7 23 +18.7 23 +18.7 23 +18.7 21 +18.7 21 +18.8 21 +18.8 22 +18.8 22 +18.8 21 +18.8 23 +18.9 23 +18.9 22 +18.9 22 +18.9 22 +18.9 21 +19.0 21 +19.0 20 +19.0 20 +19.0 20 +19.0 20 +19.1 21 +19.1 21 +19.1 21 +19.1 22 +19.1 22 +19.2 23 +19.2 23 +19.2 23 +19.2 24 +19.2 23 +19.3 21 +19.3 21 +19.3 21 +19.3 20 +19.3 19 +19.4 19 +19.4 20 +19.4 20 +19.4 20 +19.4 20 +19.5 21 +19.5 21 +19.5 20 +19.5 19 +19.5 19 +19.6 20 +19.6 20 +19.6 20 +19.6 21 +19.6 21 +19.7 21 +19.7 20 +19.7 21 +19.7 21 +19.7 20 +19.8 20 +19.8 20 +19.8 19 +19.8 19 +19.8 21 +19.9 21 +19.9 22 +19.9 23 +19.9 23 +19.9 24 +20.0 24 +20.0 23 +20.0 24 +20.0 26 +20.0 31 +20.1 39 +20.1 47 +20.1 58 +20.1 67 +20.1 74 +20.2 78 +20.2 79 +20.2 79 +20.2 74 +20.2 68 +20.3 58 +20.3 49 +20.3 40 +20.3 34 +20.3 32 +20.4 29 +20.4 28 +20.4 25 +20.4 23 +20.4 21 +20.5 21 +20.5 21 +20.5 21 +20.5 21 +20.5 21 +20.6 22 +20.6 23 +20.6 25 +20.6 29 +20.6 32 +20.7 33 +20.7 38 +20.7 49 +20.7 63 +20.7 82 +20.8 109 +20.8 145 +20.8 185 +20.8 232 +20.8 275 +20.9 311 +20.9 336 +20.9 344 +20.9 340 +20.9 317 +21.0 286 +21.0 247 +21.0 201 +21.0 157 +21.0 118 +21.1 89 +21.1 68 +21.1 56 +21.1 45 +21.1 41 +21.2 37 +21.2 35 +21.2 35 +21.2 35 +21.2 36 +21.3 38 +21.3 41 +21.3 46 +21.3 51 +21.3 54 +21.4 55 +21.4 55 +21.4 54 +21.4 52 +21.4 48 +21.5 44 +21.5 40 +21.5 38 +21.5 35 +21.5 37 +21.6 45 +21.6 56 +21.6 66 +21.6 81 +21.6 103 +21.7 124 +21.7 146 +21.7 166 +21.7 183 +21.7 200 +21.8 213 +21.8 218 +21.8 218 +21.8 214 +21.8 202 +21.9 184 +21.9 162 +21.9 141 +21.9 122 +21.9 100 +22.0 80 +22.0 63 +22.0 49 +22.0 45 +22.0 43 +22.1 42 +22.1 45 +22.1 47 +22.1 47 +22.1 50 +22.2 51 +22.2 50 +22.2 50 +22.2 46 +22.2 43 +22.3 39 +22.3 35 +22.3 32 +22.3 28 +22.3 24 +22.4 23 +22.4 21 +22.4 20 +22.4 20 +22.4 18 +22.5 17 +22.5 17 +22.5 18 +22.5 18 +22.5 20 +22.6 20 +22.6 21 +22.6 21 +22.6 21 +22.6 21 +22.7 21 +22.7 23 +22.7 24 +22.7 26 +22.7 27 +22.8 30 +22.8 36 +22.8 43 +22.8 53 +22.8 62 +22.9 74 +22.9 82 +22.9 89 +22.9 95 +22.9 96 +23.0 92 +23.0 86 +23.0 76 +23.0 64 +23.0 54 +23.1 46 +23.1 37 +23.1 32 +23.1 29 +23.1 28 +23.2 27 +23.2 26 +23.2 28 +23.2 28 +23.2 28 +23.3 29 +23.3 33 +23.3 35 +23.3 38 +23.3 41 +23.4 42 +23.4 42 +23.4 40 +23.4 37 +23.4 34 +23.5 31 +23.5 28 +23.5 25 +23.5 21 +23.5 20 +23.6 19 +23.6 18 +23.6 18 +23.6 17 +23.6 17 +23.7 16 +23.7 16 +23.7 16 +23.7 15 +23.7 15 +23.8 16 +23.8 17 +23.8 16 +23.8 16 +23.8 16 +23.9 16 +23.9 15 +23.9 15 +23.9 15 +23.9 16 +24.0 17 +24.0 17 +24.0 15 +24.0 15 +24.0 17 +24.1 16 +24.1 16 +24.1 16 +24.1 16 +24.1 16 +24.2 16 +24.2 16 +24.2 16 +24.2 16 +24.2 16 +24.3 15 +24.3 14 +24.3 14 +24.3 15 +24.3 15 +24.4 16 +24.4 16 +24.4 17 +24.4 18 +24.4 17 +24.5 17 +24.5 16 +24.5 17 +24.5 18 +24.5 16 +24.6 16 +24.6 17 +24.6 17 +24.6 17 +24.6 16 +24.7 16 +24.7 15 +24.7 13 +24.7 12 +24.7 12 +24.8 12 +24.8 13 +24.8 14 +24.8 13 +24.8 13 +24.9 14 +24.9 14 +24.9 14 +24.9 15 +24.9 14 +25.0 13 +25.0 13 +25.0 14 +25.0 14 +25.0 14 +25.1 16 +25.1 16 +25.1 16 +25.1 16 +25.1 16 +25.2 15 +25.2 16 +25.2 16 +25.2 15 +25.2 14 +25.3 14 +25.3 15 +25.3 15 +25.3 17 +25.3 19 +25.4 20 +25.4 23 +25.4 23 +25.4 24 +25.4 25 +25.5 26 +25.5 26 +25.5 28 +25.5 34 +25.5 39 +25.6 46 +25.6 56 +25.6 71 +25.6 91 +25.6 116 +25.7 159 +25.7 213 +25.7 288 +25.7 381 +25.7 488 +25.8 602 +25.8 710 +25.8 801 +25.8 863 +25.8 890 +25.9 872 +25.9 821 +25.9 734 +25.9 627 +25.9 513 +26.0 399 +26.0 299 +26.0 218 +26.0 160 +26.0 119 +26.1 93 +26.1 79 +26.1 75 +26.1 70 +26.1 63 +26.2 63 +26.2 58 +26.2 57 +26.2 52 +26.2 49 +26.3 45 +26.3 43 +26.3 40 +26.3 39 +26.3 43 +26.4 51 +26.4 60 +26.4 67 +26.4 74 +26.4 81 +26.5 85 +26.5 87 +26.5 86 +26.5 81 +26.5 73 +26.6 66 +26.6 56 +26.6 47 +26.6 40 +26.6 33 +26.7 26 +26.7 20 +26.7 17 +26.7 15 +26.7 14 +26.8 14 +26.8 13 +26.8 12 +26.8 12 +26.8 13 +26.9 13 +26.9 13 +26.9 13 +26.9 12 +26.9 13 +27.0 12 +27.0 11 +27.0 11 +27.0 11 +27.0 11 +27.1 10 +27.1 10 +27.1 10 +27.1 11 +27.1 12 +27.2 12 +27.2 14 +27.2 15 +27.2 19 +27.2 21 +27.3 25 +27.3 34 +27.3 43 +27.3 53 +27.3 62 +27.4 71 +27.4 79 +27.4 82 +27.4 81 +27.4 77 +27.5 73 +27.5 69 +27.5 64 +27.5 64 +27.5 68 +27.6 78 +27.6 93 +27.6 120 +27.6 166 +27.6 218 +27.7 274 +27.7 328 +27.7 370 +27.7 398 +27.7 409 +27.8 404 +27.8 379 +27.8 341 +27.8 287 +27.8 228 +27.9 171 +27.9 126 +27.9 96 +27.9 70 +27.9 58 +28.0 48 +28.0 44 +28.0 39 +28.0 43 +28.0 53 +28.1 62 +28.1 77 +28.1 94 +28.1 109 +28.1 126 +28.2 139 +28.2 145 +28.2 145 +28.2 140 +28.2 129 +28.3 116 +28.3 97 +28.3 82 +28.3 67 +28.3 53 +28.4 46 +28.4 39 +28.4 36 +28.4 41 +28.4 42 +28.5 49 +28.5 67 +28.5 92 +28.5 122 +28.5 156 +28.6 188 +28.6 217 +28.6 241 +28.6 256 +28.6 261 +28.7 257 +28.7 241 +28.7 218 +28.7 187 +28.7 162 +28.8 138 +28.8 123 +28.8 116 +28.8 118 +28.8 124 +28.9 133 +28.9 148 +28.9 163 +28.9 174 +28.9 181 +29.0 182 +29.0 173 +29.0 164 +29.0 148 +29.0 132 +29.1 127 +29.1 126 +29.1 130 +29.1 147 +29.1 169 +29.2 196 +29.2 220 +29.2 241 +29.2 254 +29.2 260 +29.3 249 +29.3 230 +29.3 202 +29.3 169 +29.3 138 +29.4 107 +29.4 81 +29.4 66 +29.4 50 +29.4 42 +29.5 41 +29.5 48 +29.5 56 +29.5 71 +29.5 85 +29.6 100 +29.6 114 +29.6 123 +29.6 129 +29.6 129 +29.7 124 +29.7 112 +29.7 96 +29.7 80 +29.7 66 +29.8 51 +29.8 37 +29.8 30 +29.8 24 +29.8 20 +29.9 18 +29.9 15 +29.9 14 +29.9 13 +29.9 12 +30.0 11 +30.0 12 +30.0 14 +30.0 14 +30.0 14 +30.1 15 +30.1 15 +30.1 16 +30.1 14 +30.1 15 +30.2 14 +30.2 15 +30.2 16 +30.2 18 +30.2 21 +30.3 23 +30.3 26 +30.3 33 +30.3 42 +30.3 59 +30.4 77 +30.4 101 +30.4 122 +30.4 144 +30.4 163 +30.5 177 +30.5 183 +30.5 181 +30.5 169 +30.5 151 +30.6 130 +30.6 109 +30.6 86 +30.6 70 +30.6 54 +30.7 48 +30.7 40 +30.7 37 +30.7 41 +30.7 42 +30.8 49 +30.8 58 +30.8 72 +30.8 100 +30.8 143 +30.9 205 +30.9 282 +30.9 377 +30.9 480 +30.9 584 +31.0 663 +31.0 721 +31.0 747 +31.0 730 +31.0 686 +31.1 610 +31.1 514 +31.1 412 +31.1 317 +31.1 232 +31.2 167 +31.2 123 +31.2 99 +31.2 85 +31.2 75 +31.3 73 +31.3 67 +31.3 61 +31.3 57 +31.3 51 +31.4 45 +31.4 37 +31.4 33 +31.4 27 +31.4 24 +31.5 20 +31.5 20 +31.5 21 +31.5 23 +31.5 25 +31.6 28 +31.6 32 +31.6 38 +31.6 46 +31.6 53 +31.7 64 +31.7 80 +31.7 103 +31.7 137 +31.7 200 +31.8 292 +31.8 420 +31.8 588 +31.8 776 +31.8 961 +31.9 1125 +31.9 1259 +31.9 1330 +31.9 1344 +31.9 1297 +32.0 1190 +32.0 1034 +32.0 858 +32.0 683 +32.0 523 +32.1 398 +32.1 317 +32.1 256 +32.1 220 +32.1 198 +32.2 190 +32.2 175 +32.2 170 +32.2 159 +32.2 146 +32.3 133 +32.3 127 +32.3 122 +32.3 124 +32.3 133 +32.4 145 +32.4 156 +32.4 166 +32.4 168 +32.4 167 +32.5 157 +32.5 146 +32.5 127 +32.5 107 +32.5 87 +32.6 72 +32.6 60 +32.6 50 +32.6 49 +32.6 51 +32.7 53 +32.7 63 +32.7 78 +32.7 100 +32.7 144 +32.8 197 +32.8 256 +32.8 320 +32.8 380 +32.8 428 +32.9 465 +32.9 484 +32.9 487 +32.9 465 +32.9 425 +33.0 376 +33.0 316 +33.0 258 +33.0 213 +33.0 169 +33.1 132 +33.1 103 +33.1 80 +33.1 61 +33.1 51 +33.2 42 +33.2 36 +33.2 31 +33.2 28 +33.2 25 +33.3 23 +33.3 23 +33.3 24 +33.3 29 +33.3 34 +33.4 43 +33.4 53 +33.4 62 +33.4 72 +33.4 78 +33.5 84 +33.5 85 +33.5 83 +33.5 78 +33.5 70 +33.6 62 +33.6 54 +33.6 49 +33.6 44 +33.6 43 +33.7 44 +33.7 52 +33.7 63 +33.7 77 +33.7 96 +33.8 120 +33.8 148 +33.8 186 +33.8 233 +33.8 282 +33.9 339 +33.9 395 +33.9 466 +33.9 541 +33.9 636 +34.0 755 +34.0 881 +34.0 1003 +34.0 1105 +34.0 1176 +34.1 1212 +34.1 1213 +34.1 1171 +34.1 1079 +34.1 964 +34.2 828 +34.2 701 +34.2 583 +34.2 511 +34.2 479 +34.3 482 +34.3 506 +34.3 537 +34.3 565 +34.3 589 +34.4 591 +34.4 572 +34.4 529 +34.4 475 +34.4 405 +34.5 327 +34.5 251 +34.5 188 +34.5 134 +34.5 98 +34.6 72 +34.6 51 +34.6 37 +34.6 28 +34.6 21 +34.7 18 +34.7 17 +34.7 17 +34.7 16 +34.7 15 +34.8 14 +34.8 16 +34.8 18 +34.8 23 +34.8 29 +34.9 35 +34.9 42 +34.9 52 +34.9 62 +34.9 70 +35.0 78 +35.0 87 +35.0 94 +35.0 96 +35.0 99 +35.1 102 +35.1 100 +35.1 97 +35.1 91 +35.1 84 +35.2 75 +35.2 66 +35.2 55 +35.2 44 +35.2 35 +35.3 30 +35.3 24 +35.3 20 +35.3 22 +35.3 24 +35.4 28 +35.4 36 +35.4 49 +35.4 65 +35.4 85 +35.5 107 +35.5 134 +35.5 162 +35.5 187 +35.5 206 +35.6 216 +35.6 219 +35.6 213 +35.6 196 +35.6 172 +35.7 146 +35.7 117 +35.7 92 +35.7 70 +35.7 53 +35.8 46 +35.8 45 +35.8 47 +35.8 51 +35.8 53 +35.9 56 +35.9 56 +35.9 54 +35.9 49 +35.9 43 +36.0 36 +36.0 31 +36.0 24 +36.0 18 +36.0 13 +36.1 12 +36.1 10 +36.1 9 +36.1 8 +36.1 8 +36.2 8 +36.2 8 +36.2 8 +36.2 9 +36.2 10 +36.3 10 +36.3 10 +36.3 9 +36.3 8 +36.3 7 +36.4 7 +36.4 8 +36.4 9 +36.4 9 +36.4 9 +36.5 10 +36.5 11 +36.5 13 +36.5 16 +36.5 19 +36.6 23 +36.6 27 +36.6 32 +36.6 35 +36.6 38 +36.7 42 +36.7 44 +36.7 45 +36.7 46 +36.7 49 +36.8 51 +36.8 54 +36.8 55 +36.8 58 +36.8 60 +36.9 62 +36.9 62 +36.9 61 +36.9 60 +36.9 62 +37.0 63 +37.0 66 +37.0 69 +37.0 73 +37.0 74 +37.1 77 +37.1 78 +37.1 84 +37.1 87 +37.1 95 +37.2 111 +37.2 138 +37.2 175 +37.2 228 +37.2 278 +37.3 328 +37.3 374 +37.3 404 +37.3 414 +37.3 406 +37.4 382 +37.4 341 +37.4 287 +37.4 231 +37.4 178 +37.5 130 +37.5 92 +37.5 67 +37.5 47 +37.5 37 +37.6 33 +37.6 27 +37.6 21 +37.6 19 +37.6 20 +37.7 20 +37.7 23 +37.7 27 +37.7 29 +37.7 34 +37.8 39 +37.8 44 +37.8 48 +37.8 49 +37.8 48 +37.9 45 +37.9 41 +37.9 37 +37.9 32 +37.9 27 +38.0 22 +38.0 19 +38.0 15 +38.0 14 +38.0 13 +38.1 13 +38.1 12 +38.1 12 +38.1 12 +38.1 11 +38.2 11 +38.2 10 +38.2 10 +38.2 9 +38.2 9 +38.3 9 +38.3 8 +38.3 8 +38.3 9 +38.3 9 +38.4 9 +38.4 10 +38.4 9 +38.4 9 +38.4 9 +38.5 9 +38.5 9 +38.5 8 +38.5 7 +38.5 7 +38.6 6 +38.6 6 +38.6 7 +38.6 6 +38.6 6 +38.7 7 +38.7 6 +38.7 6 +38.7 7 +38.7 7 +38.8 7 +38.8 7 +38.8 7 +38.8 8 +38.8 9 +38.9 9 +38.9 8 +38.9 9 +38.9 12 +38.9 16 +39.0 21 +39.0 27 +39.0 37 +39.0 47 +39.0 58 +39.1 68 +39.1 77 +39.1 82 +39.1 83 +39.1 80 +39.2 73 +39.2 64 +39.2 55 +39.2 46 +39.2 35 +39.3 26 +39.3 20 +39.3 15 +39.3 11 +39.3 11 +39.4 10 +39.4 9 +39.4 9 +39.4 9 +39.4 8 +39.5 9 +39.5 9 +39.5 11 +39.5 12 +39.5 12 +39.6 13 +39.6 18 +39.6 24 +39.6 28 +39.6 35 +39.7 46 +39.7 57 +39.7 68 +39.7 80 +39.7 87 +39.8 92 +39.8 96 +39.8 97 +39.8 97 +39.8 99 +39.9 102 +39.9 111 +39.9 122 +39.9 143 +39.9 168 +40.0 190 +40.0 209 +40.0 224 +40.0 226 +40.0 223 +40.1 210 +40.1 188 +40.1 164 +40.1 136 +40.1 106 +40.2 85 +40.2 64 +40.2 52 +40.2 42 +40.2 33 +40.3 28 +40.3 24 +40.3 19 +40.3 17 +40.3 13 +40.4 11 +40.4 11 +40.4 10 +40.4 8 +40.4 8 +40.5 7 +40.5 6 +40.5 6 +40.5 6 +40.5 7 +40.6 6 +40.6 6 +40.6 6 +40.6 6 +40.6 7 +40.7 8 +40.7 8 +40.7 8 +40.7 8 +40.7 9 +40.8 9 +40.8 8 +40.8 9 +40.8 8 +40.8 9 +40.9 10 +40.9 15 +40.9 21 +40.9 26 +40.9 38 +41.0 50 +41.0 63 +41.0 77 +41.0 88 +41.0 96 +41.1 98 +41.1 98 +41.1 93 +41.1 85 +41.1 73 +41.2 62 +41.2 49 +41.2 37 +41.2 31 +41.2 24 +41.3 20 +41.3 18 +41.3 16 +41.3 17 +41.3 16 +41.4 21 +41.4 25 +41.4 34 +41.4 42 +41.4 53 +41.5 62 +41.5 72 +41.5 84 +41.5 94 +41.5 106 +41.6 114 +41.6 124 +41.6 133 +41.6 144 +41.6 160 +41.7 173 +41.7 186 +41.7 191 +41.7 194 +41.7 191 +41.8 184 +41.8 174 +41.8 157 +41.8 138 +41.8 116 +41.9 98 +41.9 81 +41.9 73 +41.9 69 +41.9 66 +42.0 66 +42.0 65 +42.0 66 +42.0 66 +42.0 63 +42.1 60 +42.1 52 +42.1 44 +42.1 36 +42.1 28 +42.2 21 +42.2 16 +42.2 13 +42.2 10 +42.2 9 +42.3 8 +42.3 7 +42.3 8 +42.3 8 +42.3 8 +42.4 7 +42.4 7 +42.4 7 +42.4 6 +42.4 8 +42.5 7 +42.5 9 +42.5 10 +42.5 11 +42.5 11 +42.6 13 +42.6 13 +42.6 14 +42.6 14 +42.6 13 +42.7 11 +42.7 10 +42.7 10 +42.7 10 +42.7 9 +42.8 9 +42.8 11 +42.8 13 +42.8 16 +42.8 19 +42.9 26 +42.9 32 +42.9 37 +42.9 41 +42.9 43 +43.0 46 +43.0 47 +43.0 47 +43.0 44 +43.0 41 +43.1 37 +43.1 32 +43.1 27 +43.1 22 +43.1 20 +43.2 17 +43.2 14 +43.2 13 +43.2 13 +43.2 17 +43.3 21 +43.3 27 +43.3 33 +43.3 38 +43.3 41 +43.4 45 +43.4 49 +43.4 52 +43.4 55 +43.4 57 +43.5 60 +43.5 62 +43.5 65 +43.5 67 +43.5 68 +43.6 69 +43.6 70 +43.6 67 +43.6 63 +43.6 60 +43.7 58 +43.7 55 +43.7 57 +43.7 64 +43.7 77 +43.8 89 +43.8 108 +43.8 125 +43.8 145 +43.8 163 +43.9 175 +43.9 182 +43.9 182 +43.9 171 +43.9 153 +44.0 133 +44.0 112 +44.0 91 +44.0 72 +44.0 52 +44.1 38 +44.1 29 +44.1 22 +44.1 16 +44.1 13 +44.2 14 +44.2 13 +44.2 11 +44.2 9 +44.2 8 +44.3 8 +44.3 9 +44.3 12 +44.3 15 +44.3 19 +44.4 24 +44.4 30 +44.4 37 +44.4 44 +44.4 54 +44.5 61 +44.5 66 +44.5 68 +44.5 69 +44.5 69 +44.6 65 +44.6 62 +44.6 58 +44.6 55 +44.6 54 +44.7 56 +44.7 57 +44.7 59 +44.7 65 +44.7 69 +44.8 71 +44.8 70 +44.8 69 +44.8 67 +44.8 61 +44.9 57 +44.9 50 +44.9 44 +44.9 38 +44.9 33 +45.0 27 +45.0 23 +45.0 21 +45.0 19 +45.0 16 +45.1 15 +45.1 16 +45.1 20 +45.1 27 +45.1 33 +45.2 42 +45.2 52 +45.2 65 +45.2 76 +45.2 87 +45.3 94 +45.3 96 +45.3 96 +45.3 93 +45.3 89 +45.4 86 +45.4 82 +45.4 86 +45.4 89 +45.4 100 +45.5 110 +45.5 123 +45.5 129 +45.5 134 +45.5 132 +45.6 125 +45.6 113 +45.6 101 +45.6 83 +45.6 65 +45.7 49 +45.7 38 +45.7 29 +45.7 24 +45.7 20 +45.8 20 +45.8 20 +45.8 23 +45.8 25 +45.8 28 +45.9 29 +45.9 31 +45.9 31 +45.9 30 +45.9 29 +46.0 27 +46.0 25 +46.0 23 +46.0 21 +46.0 20 +46.1 18 +46.1 16 +46.1 14 +46.1 12 +46.1 9 +46.2 9 +46.2 8 +46.2 7 +46.2 7 +46.2 7 +46.3 6 +46.3 7 +46.3 7 +46.3 7 +46.3 7 +46.4 8 +46.4 9 +46.4 12 +46.4 14 +46.4 17 +46.5 21 +46.5 28 +46.5 34 +46.5 41 +46.5 51 +46.6 68 +46.6 90 +46.6 118 +46.6 164 +46.6 221 +46.7 293 +46.7 372 +46.7 444 +46.7 509 +46.7 560 +46.8 594 +46.8 599 +46.8 582 +46.8 552 +46.8 504 +46.9 449 +46.9 393 +46.9 352 +46.9 318 +46.9 303 +47.0 300 +47.0 314 +47.0 341 +47.0 376 +47.0 405 +47.1 428 +47.1 444 +47.1 451 +47.1 436 +47.1 410 +47.2 367 +47.2 315 +47.2 256 +47.2 197 +47.2 147 +47.3 110 +47.3 79 +47.3 56 +47.3 37 +47.3 28 +47.4 21 +47.4 18 +47.4 15 +47.4 14 +47.4 11 +47.5 10 +47.5 8 +47.5 7 +47.5 7 +47.5 5 +47.6 6 +47.6 6 +47.6 6 +47.6 6 +47.6 7 +47.7 7 +47.7 10 +47.7 11 +47.7 13 +47.7 16 +47.8 23 +47.8 31 +47.8 38 +47.8 51 +47.8 67 +47.9 83 +47.9 99 +47.9 117 +47.9 132 +47.9 145 +48.0 159 +48.0 167 +48.0 177 +48.0 182 +48.0 185 +48.1 182 +48.1 176 +48.1 169 +48.1 160 +48.1 145 +48.2 128 +48.2 111 +48.2 93 +48.2 83 +48.2 79 +48.3 80 +48.3 88 +48.3 94 +48.3 107 +48.3 121 +48.4 133 +48.4 139 +48.4 142 +48.4 138 +48.4 126 +48.5 110 +48.5 93 +48.5 77 +48.5 60 +48.5 46 +48.6 32 +48.6 21 +48.6 17 +48.6 14 +48.6 11 +48.7 9 +48.7 8 +48.7 8 +48.7 7 +48.7 6 +48.8 7 +48.8 6 +48.8 7 +48.8 9 +48.8 12 +48.9 15 +48.9 20 +48.9 24 +48.9 28 +48.9 30 +49.0 31 +49.0 31 +49.0 31 +49.0 29 +49.0 27 +49.1 23 +49.1 21 +49.1 18 +49.1 16 +49.1 13 +49.2 12 +49.2 14 +49.2 13 +49.2 15 +49.2 21 +49.3 25 +49.3 32 +49.3 49 +49.3 78 +49.3 119 +49.4 172 +49.4 230 +49.4 291 +49.4 344 +49.4 391 +49.5 423 +49.5 436 +49.5 430 +49.5 407 +49.5 363 +49.6 309 +49.6 257 +49.6 207 +49.6 167 +49.6 135 +49.7 115 +49.7 103 +49.7 94 +49.7 94 +49.7 94 +49.8 95 +49.8 92 +49.8 90 +49.8 80 +49.8 71 +49.9 60 +49.9 50 +49.9 41 +49.9 33 +49.9 31 +50.0 29 +50.0 31 +50.0 40 +50.0 45 +50.0 52 +50.1 59 +50.1 64 +50.1 66 +50.1 70 +50.1 71 +50.2 72 +50.2 75 +50.2 82 +50.2 96 +50.2 116 +50.3 134 +50.3 155 +50.3 171 +50.3 186 +50.3 193 +50.4 193 +50.4 186 +50.4 172 +50.4 151 +50.4 128 +50.5 104 +50.5 84 +50.5 71 +50.5 60 +50.5 54 +50.6 55 +50.6 66 +50.6 86 +50.6 114 +50.6 152 +50.7 200 +50.7 251 +50.7 302 +50.7 346 +50.7 379 +50.8 398 +50.8 398 +50.8 382 +50.8 354 +50.8 310 +50.9 260 +50.9 207 +50.9 158 +50.9 117 +50.9 88 +51.0 60 +51.0 44 +51.0 34 +51.0 29 +51.0 27 +51.1 26 +51.1 35 +51.1 44 +51.1 59 +51.1 82 +51.2 110 +51.2 137 +51.2 162 +51.2 183 +51.2 197 +51.3 208 +51.3 213 +51.3 207 +51.3 194 +51.3 176 +51.4 156 +51.4 134 +51.4 119 +51.4 106 +51.4 93 +51.5 80 +51.5 68 +51.5 59 +51.5 51 +51.5 44 +51.6 37 +51.6 30 +51.6 25 +51.6 21 +51.6 17 +51.7 16 +51.7 17 +51.7 18 +51.7 25 +51.7 40 +51.8 59 +51.8 80 +51.8 102 +51.8 124 +51.8 145 +51.9 163 +51.9 172 +51.9 174 +51.9 168 +51.9 155 +52.0 137 +52.0 115 +52.0 95 +52.0 76 +52.0 58 +52.1 43 +52.1 30 +52.1 22 +52.1 18 +52.1 15 +52.2 12 +52.2 11 +52.2 12 +52.2 12 +52.2 12 +52.3 12 +52.3 11 +52.3 10 +52.3 9 +52.3 9 +52.4 8 +52.4 8 +52.4 9 +52.4 9 +52.4 10 +52.5 12 +52.5 15 +52.5 18 +52.5 20 +52.5 24 +52.6 27 +52.6 28 +52.6 28 +52.6 30 +52.6 30 +52.7 28 +52.7 27 +52.7 25 +52.7 23 +52.7 25 +52.8 33 +52.8 45 +52.8 63 +52.8 82 +52.8 104 +52.9 123 +52.9 143 +52.9 160 +52.9 170 +52.9 174 +53.0 172 +53.0 162 +53.0 149 +53.0 137 +53.0 134 +53.1 142 +53.1 153 +53.1 169 +53.1 192 +53.1 213 +53.2 235 +53.2 250 +53.2 257 +53.2 253 +53.2 235 +53.3 208 +53.3 177 +53.3 143 +53.3 116 +53.3 94 +53.4 72 +53.4 59 +53.4 53 +53.4 52 +53.4 52 +53.5 56 +53.5 58 +53.5 59 +53.5 56 +53.5 53 +53.6 50 +53.6 43 +53.6 38 +53.6 34 +53.6 32 +53.7 32 +53.7 38 +53.7 51 +53.7 66 +53.7 88 +53.8 108 +53.8 129 +53.8 145 +53.8 160 +53.8 166 +53.9 163 +53.9 155 +53.9 140 +53.9 120 +53.9 98 +54.0 79 +54.0 63 +54.0 46 +54.0 34 +54.0 23 +54.1 18 +54.1 15 +54.1 17 +54.1 20 +54.1 28 +54.2 43 +54.2 60 +54.2 81 +54.2 111 +54.2 144 +54.3 172 +54.3 200 +54.3 220 +54.3 231 +54.3 236 +54.4 230 +54.4 217 +54.4 195 +54.4 171 +54.4 143 +54.5 115 +54.5 90 +54.5 71 +54.5 54 +54.5 37 +54.6 28 +54.6 19 +54.6 13 +54.6 10 +54.6 8 +54.7 7 +54.7 4 +54.7 4 +54.7 4 +54.7 4 +54.8 5 +54.8 6 +54.8 7 +54.8 6 +54.8 7 +54.9 6 +54.9 7 +54.9 7 +54.9 8 +54.9 9 +55.0 11 +55.0 14 +55.0 18 +55.0 21 +55.0 24 +55.1 27 +55.1 29 +55.1 29 +55.1 29 +55.1 27 +55.2 26 +55.2 23 +55.2 20 +55.2 18 +55.2 15 +55.3 13 +55.3 11 +55.3 8 +55.3 7 +55.3 6 +55.4 5 +55.4 5 +55.4 5 +55.4 5 +55.4 5 +55.5 5 +55.5 4 +55.5 4 +55.5 3 +55.5 4 +55.6 4 +55.6 3 +55.6 4 +55.6 4 +55.6 4 +55.7 5 +55.7 6 +55.7 6 +55.7 6 +55.7 7 +55.8 9 +55.8 10 +55.8 11 +55.8 13 +55.8 20 +55.9 34 +55.9 50 +55.9 70 +55.9 92 +55.9 115 +56.0 136 +56.0 153 +56.0 164 +56.0 172 +56.0 172 +56.1 166 +56.1 153 +56.1 138 +56.1 124 +56.1 110 +56.2 93 +56.2 80 +56.2 67 +56.2 55 +56.2 45 +56.3 36 +56.3 29 +56.3 22 +56.3 17 +56.3 14 +56.4 13 +56.4 10 +56.4 10 +56.4 11 +56.4 13 +56.5 19 +56.5 24 +56.5 32 +56.5 37 +56.5 41 +56.6 44 +56.6 45 +56.6 44 +56.6 41 +56.6 36 +56.7 30 +56.7 23 +56.7 17 +56.7 14 +56.7 11 +56.8 9 +56.8 7 +56.8 6 +56.8 5 +56.8 5 +56.9 5 +56.9 5 +56.9 4 +56.9 5 +56.9 9 +57.0 12 +57.0 18 +57.0 30 +57.0 45 +57.0 66 +57.1 87 +57.1 109 +57.1 127 +57.1 141 +57.1 149 +57.2 151 +57.2 147 +57.2 138 +57.2 124 +57.2 105 +57.3 87 +57.3 75 +57.3 64 +57.3 59 +57.3 55 +57.4 52 +57.4 51 +57.4 52 +57.4 54 +57.4 57 +57.5 57 +57.5 56 +57.5 55 +57.5 51 +57.5 46 +57.6 42 +57.6 37 +57.6 32 +57.6 26 +57.6 20 +57.7 17 +57.7 13 +57.7 11 +57.7 9 +57.7 7 +57.8 6 +57.8 6 +57.8 6 +57.8 5 +57.8 4 +57.9 4 +57.9 4 +57.9 4 +57.9 4 +57.9 5 +58.0 4 +58.0 4 +58.0 4 +58.0 4 +58.0 4 +58.1 4 +58.1 4 +58.1 4 +58.1 3 +58.1 3 +58.2 3 +58.2 3 +58.2 3 +58.2 3 +58.2 3 +58.3 3 +58.3 2 +58.3 3 +58.3 3 +58.3 3 +58.4 3 +58.4 3 +58.4 2 +58.4 3 +58.4 2 +58.5 3 +58.5 3 +58.5 3 +58.5 3 +58.5 3 +58.6 3 +58.6 4 +58.6 4 +58.6 3 +58.6 3 +58.7 3 +58.7 3 +58.7 3 +58.7 3 +58.7 3 +58.8 3 +58.8 3 +58.8 3 +58.8 3 +58.8 4 +58.9 4 +58.9 5 +58.9 5 +58.9 5 +58.9 6 +59.0 5 +59.0 5 +59.0 5 +59.0 5 +59.0 4 +59.1 4 +59.1 5 +59.1 5 +59.1 7 +59.1 11 +59.2 14 +59.2 18 +59.2 23 +59.2 28 +59.2 30 +59.3 32 +59.3 34 +59.3 34 +59.3 33 +59.3 36 +59.4 40 +59.4 47 +59.4 56 +59.4 65 +59.4 73 +59.5 82 +59.5 88 +59.5 92 +59.5 90 +59.5 85 +59.6 77 +59.6 65 +59.6 53 +59.6 43 +59.6 33 +59.7 26 +59.7 19 +59.7 13 +59.7 9 +59.7 9 +59.8 9 +59.8 9 +59.8 10 +59.8 14 +59.8 20 +59.9 30 +59.9 44 +59.9 60 +59.9 75 +59.9 89 +60.0 99 +60.0 108 +60.0 113 +60.0 114 +60.0 110 +60.1 100 +60.1 88 +60.1 76 +60.1 64 +60.1 53 +60.2 45 +60.2 36 +60.2 29 +60.2 25 +60.2 21 +60.3 21 +60.3 23 +60.3 25 +60.3 26 +60.3 27 +60.4 29 +60.4 29 +60.4 28 +60.4 26 +60.4 23 +60.5 19 +60.5 15 +60.5 12 +60.5 9 +60.5 7 +60.6 7 +60.6 5 +60.6 5 +60.6 5 +60.6 5 +60.7 5 +60.7 6 +60.7 8 +60.7 9 +60.7 11 +60.8 13 +60.8 16 +60.8 20 +60.8 22 +60.8 25 +60.9 27 +60.9 27 +60.9 26 +60.9 25 +60.9 22 +61.0 20 +61.0 17 +61.0 14 +61.0 12 +61.0 11 +61.1 10 +61.1 10 +61.1 8 +61.1 10 +61.1 12 +61.2 16 +61.2 27 +61.2 44 +61.2 58 +61.2 77 +61.3 92 +61.3 105 +61.3 114 +61.3 120 +61.3 123 +61.4 119 +61.4 112 +61.4 102 +61.4 90 +61.4 79 +61.5 73 +61.5 66 +61.5 59 +61.5 53 +61.5 45 +61.6 38 +61.6 33 +61.6 29 +61.6 26 +61.6 21 +61.7 18 +61.7 14 +61.7 11 +61.7 9 +61.7 8 +61.8 6 +61.8 5 +61.8 4 +61.8 4 +61.8 4 +61.9 4 +61.9 4 +61.9 5 +61.9 4 +61.9 4 +62.0 4 +62.0 3 +62.0 4 +62.0 4 +62.0 4 +62.1 3 +62.1 3 +62.1 3 +62.1 3 +62.1 3 +62.2 3 +62.2 3 +62.2 3 +62.2 3 +62.2 3 +62.3 4 +62.3 5 +62.3 7 +62.3 11 +62.3 15 +62.4 22 +62.4 34 +62.4 49 +62.4 64 +62.4 83 +62.5 99 +62.5 110 +62.5 117 +62.5 121 +62.5 120 +62.6 112 +62.6 102 +62.6 87 +62.6 71 +62.6 57 +62.7 46 +62.7 36 +62.7 28 +62.7 23 +62.7 16 +62.8 10 +62.8 7 +62.8 6 +62.8 5 +62.8 4 +62.9 3 +62.9 3 +62.9 4 +62.9 5 +62.9 6 +63.0 6 +63.0 7 +63.0 10 +63.0 19 +63.0 32 +63.1 45 +63.1 61 +63.1 77 +63.1 91 +63.1 102 +63.2 110 +63.2 117 +63.2 119 +63.2 113 +63.2 105 +63.3 94 +63.3 86 +63.3 81 +63.3 74 +63.3 68 +63.4 63 +63.4 58 +63.4 54 +63.4 50 +63.4 48 +63.5 45 +63.5 42 +63.5 36 +63.5 32 +63.5 27 +63.6 24 +63.6 20 +63.6 15 +63.6 12 +63.6 8 +63.7 6 +63.7 5 +63.7 4 +63.7 4 +63.7 4 +63.8 4 +63.8 4 +63.8 5 +63.8 5 +63.8 6 +63.9 6 +63.9 6 +63.9 9 +63.9 9 +63.9 14 +64.0 21 +64.0 33 +64.0 56 +64.0 87 +64.0 131 +64.1 178 +64.1 231 +64.1 277 +64.1 322 +64.1 352 +64.2 371 +64.2 380 +64.2 371 +64.2 351 +64.2 318 +64.3 278 +64.3 237 +64.3 196 +64.3 161 +64.3 126 +64.4 97 +64.4 69 +64.4 51 +64.4 33 +64.4 22 +64.5 18 +64.5 16 +64.5 15 +64.5 17 +64.5 18 +64.6 20 +64.6 21 +64.6 23 +64.6 25 +64.6 26 +64.7 27 +64.7 27 +64.7 25 +64.7 24 +64.7 21 +64.8 18 +64.8 16 +64.8 15 +64.8 13 +64.8 10 +64.9 8 +64.9 7 +64.9 7 +64.9 6 +64.9 7 +65.0 8 +65.0 11 +65.0 20 +65.0 30 +65.0 48 +65.1 69 +65.1 90 +65.1 110 +65.1 125 +65.1 140 +65.2 149 +65.2 152 +65.2 148 +65.2 141 +65.2 127 +65.3 110 +65.3 93 +65.3 77 +65.3 63 +65.3 51 +65.4 38 +65.4 27 +65.4 18 +65.4 14 +65.4 10 +65.5 7 +65.5 6 +65.5 6 +65.5 5 +65.5 4 +65.6 4 +65.6 4 +65.6 3 +65.6 3 +65.6 3 +65.7 3 +65.7 3 +65.7 3 +65.7 2 +65.7 2 +65.8 2 +65.8 3 +65.8 4 +65.8 6 +65.8 7 +65.9 9 +65.9 12 +65.9 16 +65.9 19 +65.9 23 +66.0 25 +66.0 28 +66.0 28 +66.0 29 +66.0 28 +66.1 28 +66.1 26 +66.1 26 +66.1 27 +66.1 28 +66.2 31 +66.2 35 +66.2 39 +66.2 41 +66.2 44 +66.3 45 +66.3 44 +66.3 43 +66.3 39 +66.3 35 +66.4 29 +66.4 24 +66.4 20 +66.4 15 +66.4 12 +66.5 10 +66.5 7 +66.5 6 +66.5 6 +66.5 5 +66.6 4 +66.6 4 +66.6 4 +66.6 4 +66.6 3 +66.7 3 +66.7 3 +66.7 3 +66.7 3 +66.7 3 +66.8 3 +66.8 3 +66.8 3 +66.8 3 +66.8 3 +66.9 3 +66.9 3 +66.9 2 +66.9 2 +66.9 2 +67.0 3 +67.0 3 +67.0 3 +67.0 2 +67.0 2 +67.1 2 +67.1 3 +67.1 2 +67.1 3 +67.1 3 +67.2 3 +67.2 6 +67.2 10 +67.2 16 +67.2 23 +67.3 29 +67.3 36 +67.3 40 +67.3 46 +67.3 52 +67.4 58 +67.4 59 +67.4 60 +67.4 59 +67.4 56 +67.5 53 +67.5 49 +67.5 44 +67.5 38 +67.5 31 +67.6 24 +67.6 17 +67.6 13 +67.6 10 +67.6 8 +67.7 5 +67.7 4 +67.7 4 +67.7 4 +67.7 3 +67.8 3 +67.8 3 +67.8 3 +67.8 3 +67.8 3 +67.9 2 +67.9 2 +67.9 2 +67.9 2 +67.9 2 +68.0 2 +68.0 2 +68.0 2 +68.0 2 +68.0 2 +68.1 2 +68.1 2 +68.1 2 +68.1 2 +68.1 2 +68.2 2 +68.2 2 +68.2 3 +68.2 2 +68.2 2 +68.3 3 +68.3 3 +68.3 3 +68.3 3 +68.3 3 +68.4 3 +68.4 3 +68.4 3 +68.4 3 +68.4 3 +68.5 3 +68.5 2 +68.5 2 +68.5 2 +68.5 2 +68.6 2 +68.6 2 +68.6 1 +68.6 2 +68.6 2 +68.7 2 +68.7 2 +68.7 2 +68.7 2 +68.7 3 +68.8 3 +68.8 3 +68.8 3 +68.8 3 +68.8 2 +68.9 2 +68.9 2 +68.9 2 +68.9 2 +68.9 2 +69.0 2 +69.0 2 +69.0 2 +69.0 2 +69.0 2 +69.1 2 +69.1 2 +69.1 2 +69.1 2 +69.1 2 +69.2 2 +69.2 1 +69.2 1 +69.2 2 +69.2 2 +69.3 3 +69.3 3 +69.3 3 +69.3 3 +69.3 3 +69.4 3 +69.4 3 +69.4 3 +69.4 3 +69.4 3 +69.5 2 +69.5 2 +69.5 2 +69.5 2 +69.5 2 +69.6 2 +69.6 2 +69.6 3 +69.6 3 +69.6 2 +69.7 2 +69.7 2 +69.7 2 +69.7 2 +69.7 2 +69.8 2 +69.8 2 +69.8 2 +69.8 3 +69.8 2 +69.9 3 +69.9 3 +69.9 2 +69.9 2 +69.9 2 +70.0 2 diff --git a/tasks/open_file_001/ground_truth/open_file_result.txt b/tasks/open_file_001/ground_truth/open_file_result.txt new file mode 100755 index 0000000..9fd40c5 --- /dev/null +++ b/tasks/open_file_001/ground_truth/open_file_result.txt @@ -0,0 +1,3252 @@ +Demo01: 37-1497 4-733 9-169 18-303 9-77 +5.0 40 +5.02 49 +5.04 49 +5.06 44 +5.08 36 +5.1 32 +5.12 39 +5.14 41 +5.16 43 +5.18 45 +5.2 41 +5.22 32 +5.24 36 +5.26 40 +5.28 44 +5.3 35 +5.32 44 +5.34 35 +5.36 30 +5.38 31 +5.4 33 +5.42 29 +5.44 51 +5.46 34 +5.48 43 +5.5 33 +5.52 36 +5.54 44 +5.56 32 +5.58 47 +5.6 42 +5.62 33 +5.64 50 +5.66 46 +5.68 31 +5.7 46 +5.72 51 +5.74 46 +5.76 32 +5.78 46 +5.8 50 +5.82 33 +5.84 50 +5.86 40 +5.88 44 +5.9 33 +5.92 31 +5.94 32 +5.96 40 +5.98 40 +6.0 35 +6.02 47 +6.04 31 +6.06 40 +6.08 32 +6.1 44 +6.12 39 +6.14 49 +6.16 35 +6.18 48 +6.2 32 +6.22 34 +6.24 49 +6.26 29 +6.28 50 +6.3 30 +6.32 32 +6.34 43 +6.36 39 +6.38 51 +6.4 34 +6.42 29 +6.44 33 +6.46 51 +6.48 42 +6.5 35 +6.52 50 +6.54 41 +6.56 28 +6.58 49 +6.6 49 +6.62 31 +6.64 39 +6.66 47 +6.68 30 +6.7 47 +6.72 31 +6.74 27 +6.76 44 +6.78 34 +6.8 33 +6.82 40 +6.84 45 +6.86 28 +6.88 40 +6.9 30 +6.92 40 +6.94 46 +6.96 34 +6.98 37 +7.0 36 +7.02 33 +7.04 40 +7.06 28 +7.08 40 +7.1 27 +7.12 47 +7.14 44 +7.16 41 +7.18 48 +7.2 30 +7.22 32 +7.24 28 +7.26 31 +7.28 48 +7.3 38 +7.32 46 +7.34 37 +7.36 43 +7.38 48 +7.4 40 +7.42 38 +7.44 34 +7.46 50 +7.48 41 +7.5 40 +7.52 36 +7.54 28 +7.56 47 +7.58 46 +7.6 47 +7.62 35 +7.64 33 +7.66 48 +7.68 46 +7.7 39 +7.72 47 +7.74 32 +7.76 47 +7.78 48 +7.8 31 +7.82 40 +7.84 33 +7.86 42 +7.88 44 +7.9 35 +7.92 46 +7.94 43 +7.96 42 +7.98 40 +8.0 39 +8.02 27 +8.04 47 +8.06 30 +8.08 47 +8.1 32 +8.12 29 +8.14 29 +8.16 28 +8.18 38 +8.2 45 +8.22 48 +8.24 26 +8.26 39 +8.28 39 +8.3 37 +8.32 44 +8.34 49 +8.36 32 +8.38 36 +8.4 49 +8.42 26 +8.44 33 +8.46 31 +8.48 32 +8.5 26 +8.52 32 +8.54 44 +8.56 40 +8.58 46 +8.6 34 +8.62 45 +8.64 38 +8.66 27 +8.68 44 +8.7 34 +8.72 29 +8.74 37 +8.76 46 +8.78 31 +8.8 37 +8.82 28 +8.84 37 +8.86 32 +8.88 29 +8.9 28 +8.92 46 +8.94 31 +8.96 31 +8.98 30 +9.0 42 +9.02 40 +9.04 38 +9.06 30 +9.08 34 +9.1 47 +9.12 43 +9.14 45 +9.16 34 +9.18 30 +9.2 35 +9.22 47 +9.24 31 +9.26 37 +9.28 35 +9.3 40 +9.32 33 +9.34 48 +9.36 36 +9.38 45 +9.4 34 +9.42 31 +9.44 33 +9.46 38 +9.48 46 +9.5 38 +9.52 36 +9.54 31 +9.56 41 +9.58 40 +9.6 25 +9.62 42 +9.64 33 +9.66 40 +9.68 41 +9.7 39 +9.72 25 +9.74 33 +9.76 40 +9.78 44 +9.8 33 +9.82 39 +9.84 39 +9.86 30 +9.88 46 +9.9 25 +9.92 25 +9.94 33 +9.96 37 +9.98 46 +10.0 28 +10.0 38 +10.0 31 +10.0 38 +10.0 34 +10.1 36 +10.1 26 +10.1 41 +10.1 32 +10.1 28 +10.2 39 +10.2 27 +10.2 44 +10.2 33 +10.2 27 +10.3 36 +10.3 46 +10.3 35 +10.3 42 +10.3 44 +10.4 43 +10.4 41 +10.4 28 +10.4 47 +10.4 39 +10.5 47 +10.5 53 +10.5 52 +10.5 35 +10.5 37 +10.6 53 +10.6 47 +10.6 64 +10.6 90 +10.6 112 +10.7 126 +10.7 149 +10.7 181 +10.7 189 +10.7 259 +10.8 231 +10.8 295 +10.8 240 +10.8 214 +10.8 209 +10.9 185 +10.9 125 +10.9 135 +10.9 88 +10.9 90 +11.0 54 +11.0 66 +11.0 60 +11.0 63 +11.0 49 +11.1 54 +11.1 36 +11.1 47 +11.1 48 +11.1 33 +11.2 35 +11.2 32 +11.2 26 +11.2 34 +11.2 39 +11.3 41 +11.3 29 +11.3 53 +11.3 45 +11.3 45 +11.4 59 +11.4 52 +11.4 59 +11.4 65 +11.4 74 +11.5 89 +11.5 104 +11.5 105 +11.5 127 +11.5 199 +11.6 203 +11.6 299 +11.6 331 +11.6 376 +11.6 400 +11.7 396 +11.7 335 +11.7 323 +11.7 241 +11.7 201 +11.8 142 +11.8 140 +11.8 109 +11.8 84 +11.8 66 +11.9 68 +11.9 62 +11.9 43 +11.9 59 +11.9 52 +12.0 33 +12.0 48 +12.0 43 +12.0 48 +12.0 43 +12.1 41 +12.1 26 +12.1 24 +12.1 37 +12.1 45 +12.2 40 +12.2 35 +12.2 40 +12.2 39 +12.2 34 +12.3 30 +12.3 33 +12.3 34 +12.3 29 +12.3 41 +12.4 37 +12.4 40 +12.4 28 +12.4 40 +12.4 39 +12.5 34 +12.5 31 +12.5 41 +12.5 32 +12.5 39 +12.6 30 +12.6 34 +12.6 25 +12.6 30 +12.6 29 +12.7 41 +12.7 33 +12.7 24 +12.7 33 +12.7 37 +12.8 32 +12.8 26 +12.8 30 +12.8 30 +12.8 34 +12.9 36 +12.9 39 +12.9 21 +12.9 40 +12.9 25 +13.0 32 +13.0 35 +13.0 40 +13.0 25 +13.0 41 +13.1 36 +13.1 32 +13.1 25 +13.1 27 +13.1 21 +13.2 40 +13.2 30 +13.2 37 +13.2 37 +13.2 26 +13.3 35 +13.3 41 +13.3 29 +13.3 25 +13.3 25 +13.4 43 +13.4 43 +13.4 41 +13.4 56 +13.4 54 +13.5 65 +13.5 80 +13.5 98 +13.5 117 +13.5 132 +13.6 138 +13.6 134 +13.6 173 +13.6 177 +13.6 131 +13.7 130 +13.7 106 +13.7 99 +13.7 74 +13.7 74 +13.8 39 +13.8 54 +13.8 38 +13.8 34 +13.8 39 +13.9 38 +13.9 29 +13.9 29 +13.9 33 +13.9 24 +14.0 42 +14.0 36 +14.0 30 +14.0 26 +14.0 31 +14.1 41 +14.1 58 +14.1 41 +14.1 61 +14.1 61 +14.2 63 +14.2 92 +14.2 86 +14.2 76 +14.2 80 +14.3 60 +14.3 64 +14.3 44 +14.3 48 +14.3 46 +14.4 43 +14.4 35 +14.4 35 +14.4 29 +14.4 20 +14.5 33 +14.5 29 +14.5 33 +14.5 19 +14.5 19 +14.6 39 +14.6 19 +14.6 23 +14.6 38 +14.6 28 +14.7 25 +14.7 26 +14.7 32 +14.7 33 +14.7 33 +14.8 25 +14.8 24 +14.8 23 +14.8 37 +14.8 31 +14.9 26 +14.9 18 +14.9 20 +14.9 20 +14.9 26 +15.0 36 +15.0 33 +15.0 37 +15.0 28 +15.0 19 +15.1 25 +15.1 23 +15.1 27 +15.1 34 +15.1 24 +15.2 24 +15.2 28 +15.2 28 +15.2 21 +15.2 22 +15.3 23 +15.3 18 +15.3 34 +15.3 35 +15.3 19 +15.4 34 +15.4 21 +15.4 20 +15.4 33 +15.4 30 +15.5 23 +15.5 35 +15.5 25 +15.5 21 +15.5 35 +15.6 22 +15.6 18 +15.6 31 +15.6 23 +15.6 33 +15.7 29 +15.7 26 +15.7 35 +15.7 24 +15.7 18 +15.8 24 +15.8 35 +15.8 33 +15.8 25 +15.8 19 +15.9 24 +15.9 22 +15.9 30 +15.9 24 +15.9 19 +16.0 27 +16.0 26 +16.0 26 +16.0 29 +16.0 26 +16.1 20 +16.1 33 +16.1 23 +16.1 25 +16.1 18 +16.2 26 +16.2 33 +16.2 29 +16.2 25 +16.2 29 +16.3 31 +16.3 21 +16.3 26 +16.3 33 +16.3 33 +16.4 28 +16.4 27 +16.4 28 +16.4 38 +16.4 29 +16.5 26 +16.5 37 +16.5 34 +16.5 38 +16.5 37 +16.6 33 +16.6 47 +16.6 43 +16.6 62 +16.6 79 +16.7 72 +16.7 115 +16.7 130 +16.7 148 +16.7 156 +16.8 177 +16.8 138 +16.8 158 +16.8 132 +16.8 119 +16.9 129 +16.9 117 +16.9 146 +16.9 184 +16.9 199 +17.0 183 +17.0 172 +17.0 171 +17.0 141 +17.0 148 +17.1 122 +17.1 105 +17.1 57 +17.1 66 +17.1 57 +17.2 50 +17.2 47 +17.2 45 +17.2 34 +17.2 27 +17.3 36 +17.3 25 +17.3 19 +17.3 35 +17.3 18 +17.4 19 +17.4 19 +17.4 18 +17.4 23 +17.4 25 +17.5 21 +17.5 35 +17.5 33 +17.5 33 +17.5 36 +17.6 28 +17.6 21 +17.6 31 +17.6 27 +17.6 32 +17.7 37 +17.7 39 +17.7 43 +17.7 28 +17.7 33 +17.8 52 +17.8 55 +17.8 64 +17.8 76 +17.8 106 +17.9 106 +17.9 116 +17.9 199 +17.9 226 +17.9 317 +18.0 388 +18.0 529 +18.0 602 +18.0 779 +18.0 885 +18.1 849 +18.1 802 +18.1 751 +18.1 619 +18.1 478 +18.2 362 +18.2 295 +18.2 199 +18.2 157 +18.2 112 +18.3 121 +18.3 100 +18.3 82 +18.3 77 +18.3 59 +18.4 56 +18.4 42 +18.4 61 +18.4 40 +18.4 53 +18.5 38 +18.5 33 +18.5 42 +18.5 45 +18.5 36 +18.6 24 +18.6 38 +18.6 28 +18.6 33 +18.6 18 +18.7 26 +18.7 30 +18.7 21 +18.7 15 +18.7 23 +18.8 19 +18.8 15 +18.8 30 +18.8 26 +18.8 18 +18.9 26 +18.9 24 +18.9 19 +18.9 20 +18.9 18 +19.0 28 +19.0 17 +19.0 18 +19.0 28 +19.0 17 +19.1 18 +19.1 15 +19.1 24 +19.1 24 +19.1 23 +19.2 26 +19.2 23 +19.2 20 +19.2 24 +19.2 22 +19.3 23 +19.3 23 +19.3 15 +19.3 26 +19.3 21 +19.4 15 +19.4 14 +19.4 25 +19.4 18 +19.4 18 +19.5 26 +19.5 26 +19.5 17 +19.5 15 +19.5 24 +19.6 19 +19.6 20 +19.6 12 +19.6 18 +19.6 28 +19.7 28 +19.7 27 +19.7 12 +19.7 18 +19.7 17 +19.8 18 +19.8 25 +19.8 21 +19.8 19 +19.8 19 +19.9 25 +19.9 26 +19.9 15 +19.9 16 +19.9 30 +20.0 31 +20.0 24 +20.0 29 +20.0 23 +20.0 25 +20.1 34 +20.1 35 +20.1 50 +20.1 69 +20.1 76 +20.2 98 +20.2 98 +20.2 77 +20.2 76 +20.2 52 +20.3 48 +20.3 45 +20.3 52 +20.3 42 +20.3 23 +20.4 31 +20.4 18 +20.4 25 +20.4 23 +20.4 29 +20.5 29 +20.5 15 +20.5 15 +20.5 23 +20.5 24 +20.6 21 +20.6 19 +20.6 28 +20.6 33 +20.6 30 +20.7 40 +20.7 47 +20.7 40 +20.7 67 +20.7 80 +20.8 93 +20.8 111 +20.8 185 +20.8 228 +20.8 255 +20.9 321 +20.9 357 +20.9 383 +20.9 369 +20.9 358 +21.0 265 +21.0 243 +21.0 170 +21.0 134 +21.0 125 +21.1 73 +21.1 67 +21.1 52 +21.1 45 +21.1 43 +21.2 47 +21.2 43 +21.2 33 +21.2 30 +21.2 34 +21.3 43 +21.3 36 +21.3 39 +21.3 47 +21.3 59 +21.4 58 +21.4 69 +21.4 62 +21.4 56 +21.4 35 +21.5 35 +21.5 43 +21.5 40 +21.5 40 +21.5 34 +21.6 47 +21.6 56 +21.6 64 +21.6 66 +21.6 84 +21.7 137 +21.7 156 +21.7 155 +21.7 182 +21.7 226 +21.8 221 +21.8 205 +21.8 209 +21.8 217 +21.8 197 +21.9 211 +21.9 176 +21.9 141 +21.9 121 +21.9 79 +22.0 61 +22.0 62 +22.0 47 +22.0 56 +22.0 51 +22.1 30 +22.1 43 +22.1 42 +22.1 53 +22.1 64 +22.2 44 +22.2 41 +22.2 63 +22.2 50 +22.2 41 +22.3 46 +22.3 23 +22.3 25 +22.3 30 +22.3 29 +22.4 27 +22.4 21 +22.4 13 +22.4 20 +22.4 25 +22.5 17 +22.5 13 +22.5 12 +22.5 25 +22.5 19 +22.6 17 +22.6 26 +22.6 20 +22.6 22 +22.6 21 +22.7 28 +22.7 14 +22.7 25 +22.7 18 +22.7 34 +22.8 32 +22.8 40 +22.8 44 +22.8 46 +22.8 48 +22.9 59 +22.9 94 +22.9 105 +22.9 90 +22.9 109 +23.0 98 +23.0 98 +23.0 63 +23.0 62 +23.0 56 +23.1 31 +23.1 27 +23.1 37 +23.1 35 +23.1 27 +23.2 32 +23.2 25 +23.2 25 +23.2 33 +23.2 26 +23.3 21 +23.3 38 +23.3 32 +23.3 41 +23.3 38 +23.4 37 +23.4 52 +23.4 49 +23.4 33 +23.4 38 +23.5 33 +23.5 18 +23.5 15 +23.5 24 +23.5 20 +23.6 22 +23.6 25 +23.6 18 +23.6 17 +23.6 11 +23.7 18 +23.7 13 +23.7 16 +23.7 15 +23.7 11 +23.8 25 +23.8 19 +23.8 15 +23.8 11 +23.8 11 +23.9 19 +23.9 22 +23.9 11 +23.9 14 +23.9 14 +24.0 19 +24.0 15 +24.0 15 +24.0 21 +24.0 15 +24.1 15 +24.1 18 +24.1 10 +24.1 15 +24.1 20 +24.2 21 +24.2 11 +24.2 20 +24.2 14 +24.2 11 +24.3 22 +24.3 10 +24.3 18 +24.3 13 +24.3 12 +24.4 18 +24.4 11 +24.4 20 +24.4 22 +24.4 18 +24.5 13 +24.5 19 +24.5 19 +24.5 15 +24.5 13 +24.6 11 +24.6 22 +24.6 19 +24.6 25 +24.6 11 +24.7 10 +24.7 20 +24.7 15 +24.7 11 +24.7 11 +24.8 8 +24.8 10 +24.8 16 +24.8 15 +24.8 22 +24.9 10 +24.9 11 +24.9 20 +24.9 11 +24.9 8 +25.0 14 +25.0 18 +25.0 11 +25.0 22 +25.0 15 +25.1 7 +25.1 11 +25.1 18 +25.1 21 +25.1 18 +25.2 15 +25.2 19 +25.2 11 +25.2 18 +25.2 9 +25.3 16 +25.3 12 +25.3 17 +25.3 16 +25.3 20 +25.4 23 +25.4 19 +25.4 23 +25.4 27 +25.4 31 +25.5 27 +25.5 26 +25.5 31 +25.5 26 +25.5 47 +25.6 44 +25.6 54 +25.6 76 +25.6 108 +25.6 128 +25.7 142 +25.7 205 +25.7 261 +25.7 339 +25.7 441 +25.8 553 +25.8 729 +25.8 807 +25.8 931 +25.8 968 +25.9 954 +25.9 863 +25.9 736 +25.9 611 +25.9 481 +26.0 334 +26.0 237 +26.0 223 +26.0 138 +26.0 141 +26.1 92 +26.1 95 +26.1 69 +26.1 69 +26.1 67 +26.2 58 +26.2 69 +26.2 68 +26.2 62 +26.2 45 +26.3 35 +26.3 49 +26.3 36 +26.3 36 +26.3 39 +26.4 47 +26.4 55 +26.4 71 +26.4 62 +26.4 94 +26.5 98 +26.5 97 +26.5 76 +26.5 71 +26.5 84 +26.6 64 +26.6 58 +26.6 45 +26.6 39 +26.6 22 +26.7 29 +26.7 27 +26.7 16 +26.7 11 +26.7 12 +26.8 9 +26.8 21 +26.8 11 +26.8 11 +26.8 18 +26.9 14 +26.9 11 +26.9 8 +26.9 15 +26.9 11 +27.0 13 +27.0 13 +27.0 16 +27.0 9 +27.0 10 +27.1 8 +27.1 8 +27.1 7 +27.1 17 +27.1 11 +27.2 16 +27.2 12 +27.2 12 +27.2 27 +27.2 17 +27.3 21 +27.3 27 +27.3 47 +27.3 44 +27.3 65 +27.4 62 +27.4 88 +27.4 99 +27.4 84 +27.4 82 +27.5 82 +27.5 76 +27.5 47 +27.5 55 +27.5 54 +27.6 83 +27.6 100 +27.6 128 +27.6 140 +27.6 208 +27.7 223 +27.7 293 +27.7 370 +27.7 460 +27.7 496 +27.8 429 +27.8 414 +27.8 331 +27.8 244 +27.8 190 +27.9 161 +27.9 131 +27.9 79 +27.9 65 +27.9 55 +28.0 54 +28.0 53 +28.0 52 +28.0 45 +28.0 42 +28.1 54 +28.1 57 +28.1 103 +28.1 88 +28.1 149 +28.2 142 +28.2 154 +28.2 177 +28.2 136 +28.2 127 +28.3 124 +28.3 78 +28.3 67 +28.3 69 +28.3 58 +28.4 53 +28.4 38 +28.4 31 +28.4 43 +28.4 47 +28.5 40 +28.5 64 +28.5 85 +28.5 107 +28.5 148 +28.6 148 +28.6 242 +28.6 278 +28.6 273 +28.6 276 +28.7 274 +28.7 229 +28.7 206 +28.7 198 +28.7 159 +28.8 131 +28.8 119 +28.8 92 +28.8 101 +28.8 127 +28.9 122 +28.9 140 +28.9 200 +28.9 178 +28.9 192 +29.0 180 +29.0 177 +29.0 179 +29.0 155 +29.0 131 +29.1 117 +29.1 121 +29.1 94 +29.1 136 +29.1 149 +29.2 189 +29.2 243 +29.2 243 +29.2 272 +29.2 313 +29.3 247 +29.3 225 +29.3 192 +29.3 177 +29.3 132 +29.4 105 +29.4 59 +29.4 50 +29.4 53 +29.4 47 +29.5 52 +29.5 46 +29.5 55 +29.5 51 +29.5 74 +29.6 107 +29.6 128 +29.6 122 +29.6 125 +29.6 161 +29.7 126 +29.7 126 +29.7 89 +29.7 64 +29.7 61 +29.8 43 +29.8 36 +29.8 24 +29.8 28 +29.8 28 +29.9 16 +29.9 13 +29.9 19 +29.9 9 +29.9 13 +30.0 6 +30.0 17 +30.0 9 +30.0 18 +30.0 17 +30.1 13 +30.1 17 +30.1 18 +30.1 16 +30.1 8 +30.2 15 +30.2 15 +30.2 21 +30.2 18 +30.2 14 +30.3 29 +30.3 25 +30.3 42 +30.3 40 +30.3 57 +30.4 53 +30.4 77 +30.4 119 +30.4 159 +30.4 163 +30.5 214 +30.5 175 +30.5 211 +30.5 150 +30.5 166 +30.6 130 +30.6 95 +30.6 79 +30.6 59 +30.6 54 +30.7 50 +30.7 40 +30.7 43 +30.7 36 +30.7 48 +30.8 59 +30.8 76 +30.8 63 +30.8 101 +30.8 153 +30.9 156 +30.9 257 +30.9 315 +30.9 433 +30.9 590 +31.0 694 +31.0 773 +31.0 814 +31.0 828 +31.0 740 +31.1 614 +31.1 450 +31.1 388 +31.1 251 +31.1 191 +31.2 176 +31.2 116 +31.2 94 +31.2 84 +31.2 103 +31.3 64 +31.3 81 +31.3 54 +31.3 75 +31.3 49 +31.4 54 +31.4 28 +31.4 24 +31.4 28 +31.4 19 +31.5 36 +31.5 17 +31.5 16 +31.5 21 +31.5 31 +31.6 32 +31.6 29 +31.6 41 +31.6 56 +31.6 47 +31.7 84 +31.7 90 +31.7 112 +31.7 159 +31.7 180 +31.8 264 +31.8 368 +31.8 491 +31.8 663 +31.8 895 +31.9 1176 +31.9 1339 +31.9 1499 +31.9 1542 +31.9 1355 +32.0 1175 +32.0 996 +32.0 814 +32.0 572 +32.0 496 +32.1 357 +32.1 277 +32.1 240 +32.1 243 +32.1 197 +32.2 213 +32.2 204 +32.2 195 +32.2 150 +32.2 162 +32.3 115 +32.3 126 +32.3 98 +32.3 132 +32.3 112 +32.4 138 +32.4 152 +32.4 186 +32.4 182 +32.4 181 +32.5 179 +32.5 145 +32.5 132 +32.5 83 +32.5 76 +32.6 68 +32.6 60 +32.6 55 +32.6 47 +32.6 59 +32.7 60 +32.7 68 +32.7 78 +32.7 88 +32.7 150 +32.8 149 +32.8 204 +32.8 322 +32.8 360 +32.8 459 +32.9 559 +32.9 510 +32.9 497 +32.9 468 +32.9 409 +33.0 346 +33.0 336 +33.0 257 +33.0 199 +33.0 156 +33.1 123 +33.1 87 +33.1 82 +33.1 68 +33.1 53 +33.2 44 +33.2 38 +33.2 34 +33.2 33 +33.2 25 +33.3 20 +33.3 19 +33.3 28 +33.3 28 +33.3 34 +33.4 37 +33.4 44 +33.4 64 +33.4 69 +33.4 96 +33.5 76 +33.5 100 +33.5 84 +33.5 83 +33.5 76 +33.6 51 +33.6 58 +33.6 38 +33.6 44 +33.6 40 +33.7 47 +33.7 59 +33.7 60 +33.7 76 +33.7 100 +33.8 111 +33.8 149 +33.8 199 +33.8 217 +33.8 282 +33.9 327 +33.9 408 +33.9 465 +33.9 578 +33.9 632 +34.0 683 +34.0 820 +34.0 901 +34.0 1114 +34.0 1193 +34.1 1360 +34.1 1375 +34.1 1247 +34.1 1081 +34.1 915 +34.2 764 +34.2 673 +34.2 546 +34.2 459 +34.2 409 +34.3 477 +34.3 483 +34.3 519 +34.3 575 +34.3 663 +34.4 647 +34.4 648 +34.4 555 +34.4 445 +34.4 375 +34.5 308 +34.5 219 +34.5 184 +34.5 141 +34.5 89 +34.6 59 +34.6 51 +34.6 39 +34.6 32 +34.6 25 +34.7 24 +34.7 25 +34.7 12 +34.7 12 +34.7 18 +34.8 15 +34.8 17 +34.8 22 +34.8 25 +34.8 22 +34.9 21 +34.9 48 +34.9 57 +34.9 59 +34.9 81 +35.0 66 +35.0 91 +35.0 98 +35.0 102 +35.0 98 +35.1 83 +35.1 105 +35.1 116 +35.1 83 +35.1 84 +35.2 83 +35.2 68 +35.2 46 +35.2 45 +35.2 40 +35.3 23 +35.3 18 +35.3 18 +35.3 27 +35.3 32 +35.4 24 +35.4 34 +35.4 50 +35.4 61 +35.4 81 +35.5 90 +35.5 126 +35.5 166 +35.5 184 +35.5 214 +35.6 224 +35.6 230 +35.6 246 +35.6 202 +35.6 175 +35.7 133 +35.7 102 +35.7 94 +35.7 56 +35.7 42 +35.8 41 +35.8 45 +35.8 42 +35.8 60 +35.8 51 +35.9 58 +35.9 69 +35.9 69 +35.9 47 +35.9 36 +36.0 27 +36.0 29 +36.0 21 +36.0 20 +36.0 11 +36.1 17 +36.1 15 +36.1 5 +36.1 5 +36.1 4 +36.2 6 +36.2 11 +36.2 14 +36.2 9 +36.2 11 +36.3 7 +36.3 11 +36.3 9 +36.3 8 +36.3 12 +36.4 4 +36.4 8 +36.4 6 +36.4 5 +36.4 14 +36.5 12 +36.5 13 +36.5 18 +36.5 10 +36.5 14 +36.6 17 +36.6 28 +36.6 32 +36.6 40 +36.6 39 +36.7 46 +36.7 50 +36.7 41 +36.7 47 +36.7 39 +36.8 50 +36.8 53 +36.8 52 +36.8 66 +36.8 63 +36.9 68 +36.9 56 +36.9 68 +36.9 49 +36.9 67 +37.0 60 +37.0 67 +37.0 52 +37.0 81 +37.0 77 +37.1 101 +37.1 80 +37.1 82 +37.1 90 +37.1 88 +37.2 101 +37.2 135 +37.2 164 +37.2 195 +37.2 231 +37.3 323 +37.3 403 +37.3 438 +37.3 462 +37.3 462 +37.4 367 +37.4 363 +37.4 287 +37.4 184 +37.4 142 +37.5 119 +37.5 92 +37.5 69 +37.5 55 +37.5 39 +37.6 23 +37.6 27 +37.6 29 +37.6 25 +37.6 28 +37.7 12 +37.7 25 +37.7 18 +37.7 24 +37.7 40 +37.8 44 +37.8 40 +37.8 52 +37.8 51 +37.8 44 +37.9 58 +37.9 43 +37.9 35 +37.9 25 +37.9 25 +38.0 20 +38.0 17 +38.0 20 +38.0 10 +38.0 16 +38.1 10 +38.1 13 +38.1 10 +38.1 10 +38.1 15 +38.2 13 +38.2 10 +38.2 11 +38.2 11 +38.2 5 +38.3 6 +38.3 9 +38.3 10 +38.3 8 +38.3 9 +38.4 11 +38.4 8 +38.4 7 +38.4 11 +38.4 12 +38.5 3 +38.5 11 +38.5 11 +38.5 4 +38.5 10 +38.6 9 +38.6 3 +38.6 4 +38.6 4 +38.6 6 +38.7 11 +38.7 10 +38.7 6 +38.7 6 +38.7 7 +38.8 5 +38.8 7 +38.8 6 +38.8 8 +38.8 14 +38.9 4 +38.9 15 +38.9 14 +38.9 11 +38.9 11 +39.0 13 +39.0 19 +39.0 35 +39.0 49 +39.0 70 +39.1 63 +39.1 70 +39.1 84 +39.1 97 +39.1 85 +39.2 72 +39.2 73 +39.2 56 +39.2 37 +39.2 26 +39.3 22 +39.3 13 +39.3 21 +39.3 11 +39.3 18 +39.4 5 +39.4 11 +39.4 7 +39.4 11 +39.4 11 +39.5 7 +39.5 6 +39.5 14 +39.5 13 +39.5 14 +39.6 16 +39.6 17 +39.6 17 +39.6 28 +39.6 32 +39.7 33 +39.7 66 +39.7 79 +39.7 67 +39.7 76 +39.8 115 +39.8 109 +39.8 101 +39.8 103 +39.8 97 +39.9 77 +39.9 109 +39.9 119 +39.9 121 +39.9 167 +40.0 170 +40.0 211 +40.0 262 +40.0 240 +40.0 260 +40.1 213 +40.1 170 +40.1 161 +40.1 128 +40.1 91 +40.2 87 +40.2 52 +40.2 53 +40.2 50 +40.2 33 +40.3 18 +40.3 32 +40.3 18 +40.3 17 +40.3 19 +40.4 10 +40.4 12 +40.4 7 +40.4 4 +40.4 10 +40.5 5 +40.5 13 +40.5 7 +40.5 7 +40.5 4 +40.6 5 +40.6 4 +40.6 5 +40.6 8 +40.6 11 +40.7 4 +40.7 5 +40.7 13 +40.7 7 +40.7 9 +40.8 8 +40.8 9 +40.8 4 +40.8 16 +40.8 11 +40.9 12 +40.9 11 +40.9 12 +40.9 34 +40.9 25 +41.0 52 +41.0 53 +41.0 88 +41.0 77 +41.0 93 +41.1 131 +41.1 104 +41.1 87 +41.1 95 +41.1 65 +41.2 54 +41.2 40 +41.2 46 +41.2 25 +41.2 22 +41.3 13 +41.3 25 +41.3 18 +41.3 20 +41.3 19 +41.4 13 +41.4 32 +41.4 23 +41.4 37 +41.4 56 +41.5 52 +41.5 86 +41.5 88 +41.5 116 +41.5 90 +41.6 112 +41.6 103 +41.6 144 +41.6 156 +41.6 146 +41.7 170 +41.7 162 +41.7 206 +41.7 198 +41.7 227 +41.8 198 +41.8 159 +41.8 151 +41.8 126 +41.8 129 +41.9 101 +41.9 67 +41.9 71 +41.9 55 +41.9 63 +42.0 66 +42.0 62 +42.0 72 +42.0 81 +42.0 76 +42.1 56 +42.1 50 +42.1 38 +42.1 31 +42.1 33 +42.2 18 +42.2 17 +42.2 6 +42.2 15 +42.2 9 +42.3 7 +42.3 9 +42.3 4 +42.3 10 +42.3 11 +42.4 8 +42.4 5 +42.4 10 +42.4 4 +42.4 4 +42.5 6 +42.5 10 +42.5 9 +42.5 11 +42.5 16 +42.6 16 +42.6 8 +42.6 18 +42.6 8 +42.6 11 +42.7 15 +42.7 15 +42.7 11 +42.7 13 +42.7 4 +42.8 5 +42.8 7 +42.8 18 +42.8 17 +42.8 18 +42.9 16 +42.9 36 +42.9 44 +42.9 36 +42.9 40 +43.0 51 +43.0 62 +43.0 39 +43.0 38 +43.0 41 +43.1 33 +43.1 40 +43.1 30 +43.1 26 +43.1 14 +43.2 10 +43.2 14 +43.2 18 +43.2 10 +43.2 16 +43.3 23 +43.3 20 +43.3 27 +43.3 45 +43.3 43 +43.4 53 +43.4 51 +43.4 61 +43.4 45 +43.4 47 +43.5 45 +43.5 73 +43.5 76 +43.5 62 +43.5 70 +43.6 75 +43.6 78 +43.6 51 +43.6 75 +43.6 47 +43.7 66 +43.7 62 +43.7 64 +43.7 51 +43.7 72 +43.8 67 +43.8 94 +43.8 128 +43.8 156 +43.8 177 +43.9 184 +43.9 171 +43.9 197 +43.9 179 +43.9 166 +44.0 126 +44.0 110 +44.0 98 +44.0 51 +44.0 37 +44.1 33 +44.1 33 +44.1 29 +44.1 17 +44.1 21 +44.2 9 +44.2 12 +44.2 12 +44.2 4 +44.2 12 +44.3 12 +44.3 15 +44.3 8 +44.3 7 +44.3 17 +44.4 22 +44.4 33 +44.4 38 +44.4 44 +44.4 56 +44.5 55 +44.5 69 +44.5 69 +44.5 71 +44.5 73 +44.6 83 +44.6 57 +44.6 50 +44.6 51 +44.6 51 +44.7 51 +44.7 44 +44.7 70 +44.7 57 +44.7 87 +44.8 73 +44.8 76 +44.8 56 +44.8 69 +44.8 74 +44.9 47 +44.9 46 +44.9 40 +44.9 46 +44.9 40 +45.0 23 +45.0 25 +45.0 14 +45.0 13 +45.0 18 +45.1 20 +45.1 22 +45.1 22 +45.1 16 +45.1 35 +45.2 26 +45.2 58 +45.2 64 +45.2 79 +45.2 90 +45.3 85 +45.3 113 +45.3 105 +45.3 111 +45.3 80 +45.4 83 +45.4 67 +45.4 74 +45.4 79 +45.4 104 +45.5 93 +45.5 131 +45.5 127 +45.5 170 +45.5 132 +45.6 142 +45.6 101 +45.6 105 +45.6 66 +45.6 69 +45.7 39 +45.7 42 +45.7 31 +45.7 23 +45.7 12 +45.8 16 +45.8 25 +45.8 17 +45.8 31 +45.8 28 +45.9 36 +45.9 31 +45.9 36 +45.9 27 +45.9 27 +46.0 19 +46.0 23 +46.0 33 +46.0 23 +46.0 18 +46.1 14 +46.1 18 +46.1 10 +46.1 18 +46.1 7 +46.2 10 +46.2 4 +46.2 10 +46.2 4 +46.2 10 +46.3 4 +46.3 10 +46.3 6 +46.3 5 +46.3 9 +46.4 9 +46.4 5 +46.4 18 +46.4 12 +46.4 15 +46.5 23 +46.5 31 +46.5 37 +46.5 43 +46.5 54 +46.6 73 +46.6 98 +46.6 121 +46.6 127 +46.6 197 +46.7 267 +46.7 349 +46.7 413 +46.7 515 +46.7 634 +46.8 633 +46.8 674 +46.8 604 +46.8 517 +46.8 491 +46.9 433 +46.9 380 +46.9 316 +46.9 317 +46.9 321 +47.0 275 +47.0 318 +47.0 313 +47.0 352 +47.0 382 +47.1 430 +47.1 481 +47.1 532 +47.1 461 +47.1 416 +47.2 337 +47.2 325 +47.2 244 +47.2 192 +47.2 123 +47.3 100 +47.3 63 +47.3 60 +47.3 40 +47.3 28 +47.4 30 +47.4 17 +47.4 20 +47.4 15 +47.4 8 +47.5 11 +47.5 8 +47.5 9 +47.5 11 +47.5 4 +47.6 3 +47.6 6 +47.6 4 +47.6 10 +47.6 4 +47.7 10 +47.7 13 +47.7 12 +47.7 9 +47.7 19 +47.8 21 +47.8 25 +47.8 44 +47.8 36 +47.8 69 +47.9 85 +47.9 108 +47.9 102 +47.9 129 +47.9 167 +48.0 163 +48.0 159 +48.0 172 +48.0 187 +48.0 171 +48.1 186 +48.1 194 +48.1 164 +48.1 180 +48.1 134 +48.2 127 +48.2 113 +48.2 100 +48.2 79 +48.2 80 +48.3 54 +48.3 64 +48.3 83 +48.3 120 +48.3 141 +48.4 139 +48.4 152 +48.4 135 +48.4 133 +48.4 151 +48.5 116 +48.5 79 +48.5 69 +48.5 64 +48.5 43 +48.6 25 +48.6 18 +48.6 17 +48.6 16 +48.6 6 +48.7 11 +48.7 16 +48.7 10 +48.7 11 +48.7 4 +48.8 4 +48.8 4 +48.8 4 +48.8 10 +48.8 10 +48.9 16 +48.9 25 +48.9 15 +48.9 34 +48.9 29 +49.0 33 +49.0 31 +49.0 35 +49.0 35 +49.0 20 +49.1 17 +49.1 27 +49.1 16 +49.1 21 +49.1 8 +49.2 14 +49.2 14 +49.2 18 +49.2 20 +49.2 17 +49.3 20 +49.3 46 +49.3 64 +49.3 58 +49.3 112 +49.4 135 +49.4 174 +49.4 264 +49.4 384 +49.4 428 +49.5 467 +49.5 480 +49.5 436 +49.5 424 +49.5 334 +49.6 311 +49.6 235 +49.6 205 +49.6 154 +49.6 134 +49.7 85 +49.7 94 +49.7 94 +49.7 102 +49.7 103 +49.8 101 +49.8 115 +49.8 74 +49.8 88 +49.8 88 +49.9 48 +49.9 45 +49.9 33 +49.9 37 +49.9 24 +50.0 34 +50.0 28 +50.0 33 +50.0 43 +50.0 52 +50.1 61 +50.1 76 +50.1 71 +50.1 86 +50.1 61 +50.2 77 +50.2 72 +50.2 63 +50.2 93 +50.2 107 +50.3 117 +50.3 141 +50.3 190 +50.3 207 +50.3 220 +50.4 203 +50.4 171 +50.4 172 +50.4 154 +50.4 135 +50.5 95 +50.5 90 +50.5 54 +50.5 62 +50.5 55 +50.6 56 +50.6 55 +50.6 88 +50.6 114 +50.6 130 +50.7 196 +50.7 221 +50.7 298 +50.7 343 +50.7 396 +50.8 435 +50.8 460 +50.8 382 +50.8 369 +50.8 298 +50.9 249 +50.9 182 +50.9 137 +50.9 125 +50.9 82 +51.0 46 +51.0 43 +51.0 45 +51.0 31 +51.0 31 +51.1 27 +51.1 25 +51.1 53 +51.1 62 +51.1 70 +51.2 90 +51.2 113 +51.2 175 +51.2 176 +51.2 242 +51.3 239 +51.3 217 +51.3 195 +51.3 178 +51.3 171 +51.4 154 +51.4 145 +51.4 121 +51.4 89 +51.4 93 +51.5 77 +51.5 62 +51.5 76 +51.5 51 +51.5 45 +51.6 27 +51.6 38 +51.6 23 +51.6 25 +51.6 14 +51.7 12 +51.7 19 +51.7 30 +51.7 21 +51.7 33 +51.8 47 +51.8 57 +51.8 98 +51.8 113 +51.8 178 +51.9 184 +51.9 177 +51.9 173 +51.9 170 +51.9 161 +52.0 144 +52.0 112 +52.0 78 +52.0 71 +52.0 62 +52.1 44 +52.1 25 +52.1 22 +52.1 11 +52.1 19 +52.2 10 +52.2 14 +52.2 7 +52.2 18 +52.2 20 +52.3 10 +52.3 11 +52.3 10 +52.3 7 +52.3 7 +52.4 8 +52.4 11 +52.4 4 +52.4 11 +52.4 11 +52.5 16 +52.5 11 +52.5 17 +52.5 13 +52.5 24 +52.6 30 +52.6 36 +52.6 33 +52.6 25 +52.6 28 +52.7 35 +52.7 26 +52.7 18 +52.7 32 +52.7 35 +52.8 25 +52.8 30 +52.8 61 +52.8 55 +52.8 91 +52.9 136 +52.9 166 +52.9 180 +52.9 177 +52.9 166 +53.0 186 +53.0 147 +53.0 171 +53.0 137 +53.0 130 +53.1 130 +53.1 116 +53.1 146 +53.1 176 +53.1 212 +53.2 281 +53.2 281 +53.2 248 +53.2 268 +53.2 246 +53.3 216 +53.3 172 +53.3 145 +53.3 102 +53.3 72 +53.4 53 +53.4 59 +53.4 66 +53.4 46 +53.4 57 +53.5 62 +53.5 54 +53.5 62 +53.5 62 +53.5 54 +53.6 48 +53.6 58 +53.6 33 +53.6 39 +53.6 24 +53.7 32 +53.7 27 +53.7 37 +53.7 68 +53.7 80 +53.8 101 +53.8 123 +53.8 166 +53.8 186 +53.8 155 +53.9 177 +53.9 151 +53.9 150 +53.9 119 +53.9 112 +54.0 59 +54.0 46 +54.0 49 +54.0 27 +54.0 25 +54.1 26 +54.1 22 +54.1 19 +54.1 21 +54.1 20 +54.2 34 +54.2 56 +54.2 74 +54.2 102 +54.2 138 +54.3 179 +54.3 200 +54.3 218 +54.3 250 +54.3 271 +54.4 237 +54.4 196 +54.4 208 +54.4 160 +54.4 137 +54.5 120 +54.5 86 +54.5 68 +54.5 37 +54.5 42 +54.6 25 +54.6 20 +54.6 18 +54.6 8 +54.6 10 +54.7 5 +54.7 4 +54.7 4 +54.7 7 +54.7 4 +54.8 6 +54.8 2 +54.8 7 +54.8 9 +54.8 8 +54.9 7 +54.9 9 +54.9 9 +54.9 5 +54.9 4 +55.0 15 +55.0 6 +55.0 21 +55.0 20 +55.0 24 +55.1 36 +55.1 27 +55.1 30 +55.1 30 +55.1 20 +55.2 29 +55.2 28 +55.2 18 +55.2 17 +55.2 16 +55.3 11 +55.3 10 +55.3 10 +55.3 3 +55.3 8 +55.4 5 +55.4 8 +55.4 4 +55.4 5 +55.4 3 +55.5 3 +55.5 7 +55.5 7 +55.5 3 +55.5 3 +55.6 2 +55.6 3 +55.6 4 +55.6 1 +55.6 7 +55.7 6 +55.7 6 +55.7 4 +55.7 11 +55.7 8 +55.8 5 +55.8 11 +55.8 18 +55.8 11 +55.8 22 +55.9 36 +55.9 41 +55.9 50 +55.9 64 +55.9 116 +56.0 162 +56.0 173 +56.0 166 +56.0 188 +56.0 171 +56.1 163 +56.1 146 +56.1 133 +56.1 119 +56.1 112 +56.2 93 +56.2 87 +56.2 67 +56.2 44 +56.2 52 +56.3 33 +56.3 18 +56.3 31 +56.3 11 +56.3 23 +56.4 17 +56.4 9 +56.4 7 +56.4 7 +56.4 13 +56.5 18 +56.5 23 +56.5 24 +56.5 31 +56.5 47 +56.6 59 +56.6 57 +56.6 43 +56.6 40 +56.6 25 +56.7 28 +56.7 29 +56.7 17 +56.7 14 +56.7 7 +56.8 5 +56.8 12 +56.8 3 +56.8 9 +56.8 4 +56.9 5 +56.9 7 +56.9 8 +56.9 9 +56.9 8 +57.0 8 +57.0 18 +57.0 19 +57.0 44 +57.0 66 +57.1 73 +57.1 85 +57.1 141 +57.1 163 +57.1 165 +57.2 173 +57.2 141 +57.2 142 +57.2 103 +57.2 108 +57.3 84 +57.3 79 +57.3 50 +57.3 57 +57.3 58 +57.4 38 +57.4 52 +57.4 68 +57.4 53 +57.4 62 +57.5 52 +57.5 45 +57.5 65 +57.5 50 +57.5 54 +57.6 47 +57.6 29 +57.6 30 +57.6 30 +57.6 17 +57.7 13 +57.7 9 +57.7 14 +57.7 11 +57.7 4 +57.8 10 +57.8 9 +57.8 2 +57.8 4 +57.8 4 +57.9 4 +57.9 7 +57.9 4 +57.9 4 +57.9 4 +58.0 4 +58.0 4 +58.0 6 +58.0 4 +58.0 4 +58.1 3 +58.1 2 +58.1 5 +58.1 3 +58.1 4 +58.2 5 +58.2 2 +58.2 3 +58.2 1 +58.2 2 +58.3 4 +58.3 2 +58.3 4 +58.3 2 +58.3 4 +58.4 1 +58.4 4 +58.4 1 +58.4 5 +58.4 1 +58.5 2 +58.5 1 +58.5 5 +58.5 2 +58.5 5 +58.6 1 +58.6 5 +58.6 4 +58.6 2 +58.6 3 +58.7 4 +58.7 4 +58.7 4 +58.7 1 +58.7 2 +58.8 4 +58.8 1 +58.8 1 +58.8 5 +58.8 6 +58.9 3 +58.9 6 +58.9 4 +58.9 5 +58.9 5 +59.0 6 +59.0 4 +59.0 7 +59.0 6 +59.0 5 +59.1 6 +59.1 2 +59.1 4 +59.1 8 +59.1 6 +59.2 12 +59.2 19 +59.2 25 +59.2 23 +59.2 40 +59.3 36 +59.3 31 +59.3 42 +59.3 37 +59.3 30 +59.4 31 +59.4 44 +59.4 47 +59.4 55 +59.4 71 +59.5 105 +59.5 91 +59.5 102 +59.5 91 +59.5 77 +59.6 78 +59.6 73 +59.6 50 +59.6 44 +59.6 24 +59.7 23 +59.7 17 +59.7 12 +59.7 11 +59.7 14 +59.8 11 +59.8 8 +59.8 12 +59.8 11 +59.8 22 +59.9 32 +59.9 32 +59.9 39 +59.9 72 +59.9 96 +60.0 113 +60.0 125 +60.0 127 +60.0 110 +60.0 101 +60.1 98 +60.1 76 +60.1 91 +60.1 57 +60.1 61 +60.2 41 +60.2 28 +60.2 30 +60.2 25 +60.2 19 +60.3 21 +60.3 22 +60.3 18 +60.3 30 +60.3 33 +60.4 28 +60.4 33 +60.4 35 +60.4 16 +60.4 25 +60.5 20 +60.5 18 +60.5 9 +60.5 8 +60.5 8 +60.6 5 +60.6 1 +60.6 4 +60.6 8 +60.6 8 +60.7 4 +60.7 9 +60.7 6 +60.7 8 +60.7 9 +60.8 11 +60.8 13 +60.8 25 +60.8 24 +60.8 19 +60.9 30 +60.9 33 +60.9 26 +60.9 26 +60.9 19 +61.0 25 +61.0 12 +61.0 11 +61.0 11 +61.0 15 +61.1 8 +61.1 7 +61.1 14 +61.1 16 +61.1 13 +61.2 15 +61.2 27 +61.2 23 +61.2 40 +61.2 80 +61.3 81 +61.3 119 +61.3 153 +61.3 138 +61.3 105 +61.4 130 +61.4 83 +61.4 95 +61.4 96 +61.4 89 +61.5 76 +61.5 60 +61.5 62 +61.5 41 +61.5 55 +61.6 34 +61.6 38 +61.6 22 +61.6 33 +61.6 15 +61.7 22 +61.7 15 +61.7 11 +61.7 11 +61.7 6 +61.8 2 +61.8 4 +61.8 3 +61.8 7 +61.8 8 +61.9 4 +61.9 1 +61.9 3 +61.9 4 +61.9 6 +62.0 4 +62.0 6 +62.0 3 +62.0 3 +62.0 5 +62.1 1 +62.1 3 +62.1 2 +62.1 7 +62.1 4 +62.2 1 +62.2 4 +62.2 4 +62.2 4 +62.2 1 +62.3 2 +62.3 5 +62.3 14 +62.3 9 +62.3 13 +62.4 23 +62.4 30 +62.4 37 +62.4 62 +62.4 73 +62.5 81 +62.5 130 +62.5 143 +62.5 134 +62.5 125 +62.6 122 +62.6 78 +62.6 76 +62.6 73 +62.6 62 +62.7 44 +62.7 32 +62.7 25 +62.7 24 +62.7 19 +62.8 8 +62.8 6 +62.8 7 +62.8 4 +62.8 2 +62.9 5 +62.9 4 +62.9 6 +62.9 6 +62.9 6 +63.0 6 +63.0 8 +63.0 14 +63.0 25 +63.0 21 +63.1 23 +63.1 48 +63.1 71 +63.1 108 +63.1 132 +63.2 118 +63.2 112 +63.2 129 +63.2 100 +63.2 98 +63.3 89 +63.3 90 +63.3 90 +63.3 74 +63.3 49 +63.4 69 +63.4 55 +63.4 69 +63.4 48 +63.4 35 +63.5 48 +63.5 36 +63.5 44 +63.5 37 +63.5 35 +63.6 21 +63.6 11 +63.6 13 +63.6 14 +63.6 8 +63.7 6 +63.7 4 +63.7 4 +63.7 4 +63.7 6 +63.8 1 +63.8 4 +63.8 7 +63.8 2 +63.8 11 +63.9 11 +63.9 4 +63.9 9 +63.9 11 +63.9 18 +64.0 29 +64.0 25 +64.0 57 +64.0 82 +64.0 87 +64.1 167 +64.1 199 +64.1 284 +64.1 357 +64.1 379 +64.2 423 +64.2 376 +64.2 382 +64.2 317 +64.2 326 +64.3 250 +64.3 247 +64.3 222 +64.3 163 +64.3 112 +64.4 85 +64.4 50 +64.4 47 +64.4 40 +64.4 29 +64.5 15 +64.5 17 +64.5 20 +64.5 19 +64.5 11 +64.6 15 +64.6 26 +64.6 20 +64.6 35 +64.6 33 +64.7 23 +64.7 22 +64.7 19 +64.7 29 +64.7 27 +64.8 18 +64.8 15 +64.8 11 +64.8 14 +64.8 11 +64.9 3 +64.9 8 +64.9 13 +64.9 9 +64.9 6 +65.0 11 +65.0 16 +65.0 14 +65.0 27 +65.0 32 +65.1 62 +65.1 73 +65.1 109 +65.1 149 +65.1 149 +65.2 179 +65.2 156 +65.2 136 +65.2 124 +65.2 111 +65.3 137 +65.3 90 +65.3 76 +65.3 69 +65.3 48 +65.4 28 +65.4 19 +65.4 18 +65.4 15 +65.4 8 +65.5 14 +65.5 7 +65.5 7 +65.5 4 +65.5 2 +65.6 3 +65.6 4 +65.6 3 +65.6 5 +65.6 4 +65.7 5 +65.7 2 +65.7 1 +65.7 1 +65.7 2 +65.8 1 +65.8 7 +65.8 2 +65.8 6 +65.8 4 +65.9 11 +65.9 14 +65.9 11 +65.9 18 +65.9 25 +66.0 20 +66.0 32 +66.0 33 +66.0 33 +66.0 26 +66.1 27 +66.1 25 +66.1 27 +66.1 18 +66.1 31 +66.2 27 +66.2 35 +66.2 31 +66.2 51 +66.2 52 +66.3 35 +66.3 54 +66.3 47 +66.3 31 +66.3 33 +66.4 37 +66.4 19 +66.4 18 +66.4 18 +66.4 7 +66.5 11 +66.5 4 +66.5 6 +66.5 7 +66.5 3 +66.6 7 +66.6 6 +66.6 4 +66.6 5 +66.6 1 +66.7 1 +66.7 4 +66.7 4 +66.7 4 +66.7 1 +66.8 3 +66.8 3 +66.8 5 +66.8 2 +66.8 2 +66.9 4 +66.9 2 +66.9 1 +66.9 4 +66.9 3 +67.0 1 +67.0 3 +67.0 2 +67.0 1 +67.0 5 +67.1 4 +67.1 2 +67.1 1 +67.1 3 +67.1 1 +67.2 7 +67.2 11 +67.2 5 +67.2 9 +67.2 20 +67.3 20 +67.3 40 +67.3 51 +67.3 53 +67.3 59 +67.4 53 +67.4 50 +67.4 54 +67.4 47 +67.4 76 +67.5 62 +67.5 57 +67.5 31 +67.5 40 +67.5 31 +67.6 18 +67.6 18 +67.6 9 +67.6 11 +67.6 9 +67.7 7 +67.7 3 +67.7 3 +67.7 4 +67.7 3 +67.8 4 +67.8 3 +67.8 3 +67.8 3 +67.8 3 +67.9 1 +67.9 2 +67.9 2 +67.9 2 +67.9 1 +68.0 4 +68.0 1 +68.0 1 +68.0 3 +68.0 1 +68.1 1 +68.1 1 +68.1 3 +68.1 4 +68.1 1 +68.2 2 +68.2 2 +68.2 2 +68.2 4 +68.2 2 +68.3 2 +68.3 4 +68.3 1 +68.3 4 +68.3 1 +68.4 4 +68.4 3 +68.4 1 +68.4 4 +68.4 1 +68.5 4 +68.5 3 +68.5 1 +68.5 2 +68.5 4 +68.6 1 +68.6 1 +68.6 1 +68.6 3 +68.6 1 +68.7 1 +68.7 1 +68.7 2 +68.7 4 +68.7 4 +68.8 1 +68.8 4 +68.8 4 +68.8 1 +68.8 1 +68.9 4 +68.9 1 +68.9 2 +68.9 2 +68.9 3 +69.0 2 +69.0 2 +69.0 3 +69.0 1 +69.0 2 +69.1 4 +69.1 1 +69.1 2 +69.1 1 +69.1 1 +69.2 2 +69.2 1 +69.2 1 +69.2 4 +69.2 2 +69.3 1 +69.3 3 +69.3 1 +69.3 4 +69.3 4 +69.4 4 +69.4 3 +69.4 1 +69.4 4 +69.4 3 +69.5 2 +69.5 1 +69.5 4 +69.5 2 +69.5 2 +69.6 1 +69.6 3 +69.6 3 +69.6 4 +69.6 1 +69.7 3 +69.7 2 +69.7 2 +69.7 3 +69.7 1 +69.8 2 +69.8 2 +69.8 2 +69.8 3 +69.8 4 +69.9 1 +69.9 4 +69.9 3 +69.9 4 +69.9 2 +70.0 1 diff --git a/tasks/open_file_001/human_demo/actions_raw.json b/tasks/open_file_001/human_demo/actions_raw.json new file mode 100644 index 0000000..524cb3c --- /dev/null +++ b/tasks/open_file_001/human_demo/actions_raw.json @@ -0,0 +1,239 @@ +{ + "metadata": { + "task_id": "open_file_001", + "vm_resolution": [ + 3840, + 2160 + ], + "vm_screenshot_resolution": [ + 3840, + 2160 + ], + "vm_dpi_scale": 2.0, + "recording_start": "2026-01-09T18:51:58.410186", + "recording_end": "2026-01-09T18:52:57.169082", + "total_duration": 59.33, + "total_actions": 31, + "total_screenshots": 9 + }, + "actions": [ + { + "t": 4.219, + "type": "key", + "key": "right" + }, + { + "t": 7.338, + "type": "click", + "button": "left", + "pos_host": [ + 136.80078125, + 282.97265625 + ], + "pos_vm": [ + 1068, + 0 + ], + "screenshot": "screens/0002_click.png" + }, + { + "t": 17.248, + "type": "click", + "button": "left", + "pos_host": [ + 238.72265625, + 191.63671875 + ], + "pos_vm": [ + 476, + 382 + ], + "screenshot": "screens/0003_click.png" + }, + { + "t": 21.72, + "type": "click", + "button": "left", + "pos_host": [ + 631.64453125, + 511.1171875 + ], + "pos_vm": [ + 1262, + 1022 + ], + "screenshot": "screens/0004_click.png" + }, + { + "t": 24.441, + "type": "click", + "button": "left", + "pos_host": [ + 240.703125, + 191.7890625 + ], + "pos_vm": [ + 480, + 382 + ], + "screenshot": "screens/0005_click.png" + }, + { + "t": 27.768, + "type": "click", + "button": "left", + "pos_host": [ + 628.42578125, + 512.640625 + ], + "pos_vm": [ + 1256, + 1024 + ], + "screenshot": "screens/0006_click.png" + }, + { + "t": 34.342, + "type": "key", + "key": "o" + }, + { + "t": 34.398, + "type": "key", + "key": "p" + }, + { + "t": 34.624, + "type": "key", + "key": "e" + }, + { + "t": 34.78, + "type": "key", + "key": "n" + }, + { + "t": 35.097, + "type": "key", + "key": "shift" + }, + { + "t": 37.072, + "type": "key", + "key": "shift" + }, + { + "t": 38.647, + "type": "key", + "key": "_" + }, + { + "t": 39.276, + "type": "key", + "key": "f" + }, + { + "t": 39.382, + "type": "key", + "key": "i" + }, + { + "t": 39.666, + "type": "key", + "key": "l" + }, + { + "t": 41.112, + "type": "key", + "key": "e" + }, + { + "t": 41.554, + "type": "key", + "key": "shift" + }, + { + "t": 41.689, + "type": "key", + "key": "_" + }, + { + "t": 42.03, + "type": "key", + "key": "r" + }, + { + "t": 42.103, + "type": "key", + "key": "e" + }, + { + "t": 42.374, + "type": "key", + "key": "s" + }, + { + "t": 42.476, + "type": "key", + "key": "u" + }, + { + "t": 42.757, + "type": "key", + "key": "l" + }, + { + "t": 42.899, + "type": "key", + "key": "t" + }, + { + "t": 45.435, + "type": "click", + "button": "left", + "pos_host": [ + 1223.6953125, + 752.48828125 + ], + "pos_vm": [ + 2446, + 1504 + ], + "screenshot": "screens/0007_click.png" + }, + { + "t": 49.703, + "type": "key", + "key": "ctrl" + }, + { + "t": 51.684, + "type": "key", + "key": "left" + }, + { + "t": 57.073, + "type": "key", + "key": "ctrl" + }, + { + "t": 57.344, + "type": "key", + "key": "c" + }, + { + "t": 56.866, + "type": "click", + "button": "left", + "pos_host": [ + 1037.97265625, + 990.03515625 + ], + "pos_vm": [ + 2446, + 1504 + ], + "screenshot": "screens/0008_click.png" + } + ] +} \ No newline at end of file diff --git a/tasks/open_file_001/human_demo/screens/0001_initial.png b/tasks/open_file_001/human_demo/screens/0001_initial.png new file mode 100644 index 0000000..f98cb9d Binary files /dev/null and b/tasks/open_file_001/human_demo/screens/0001_initial.png differ diff --git a/tasks/open_file_001/human_demo/screens/0002_click.png b/tasks/open_file_001/human_demo/screens/0002_click.png new file mode 100644 index 0000000..21e5e90 Binary files /dev/null and b/tasks/open_file_001/human_demo/screens/0002_click.png differ diff --git a/tasks/open_file_001/human_demo/screens/0003_click.png b/tasks/open_file_001/human_demo/screens/0003_click.png new file mode 100644 index 0000000..7f8bf4f Binary files /dev/null and b/tasks/open_file_001/human_demo/screens/0003_click.png differ diff --git a/tasks/open_file_001/human_demo/screens/0004_click.png b/tasks/open_file_001/human_demo/screens/0004_click.png new file mode 100644 index 0000000..84dc351 Binary files /dev/null and b/tasks/open_file_001/human_demo/screens/0004_click.png differ diff --git a/tasks/open_file_001/human_demo/screens/0005_click.png b/tasks/open_file_001/human_demo/screens/0005_click.png new file mode 100644 index 0000000..f1ae337 Binary files /dev/null and b/tasks/open_file_001/human_demo/screens/0005_click.png differ diff --git a/tasks/open_file_001/human_demo/screens/0006_click.png b/tasks/open_file_001/human_demo/screens/0006_click.png new file mode 100644 index 0000000..29c3691 Binary files /dev/null and b/tasks/open_file_001/human_demo/screens/0006_click.png differ diff --git a/tasks/open_file_001/human_demo/screens/0007_click.png b/tasks/open_file_001/human_demo/screens/0007_click.png new file mode 100644 index 0000000..85fdfa4 Binary files /dev/null and b/tasks/open_file_001/human_demo/screens/0007_click.png differ diff --git a/tasks/open_file_001/human_demo/screens/0008_final.png b/tasks/open_file_001/human_demo/screens/0008_final.png new file mode 100644 index 0000000..adece8e Binary files /dev/null and b/tasks/open_file_001/human_demo/screens/0008_final.png differ diff --git a/tasks/open_file_001/task.json b/tasks/open_file_001/task.json new file mode 100644 index 0000000..f7db923 --- /dev/null +++ b/tasks/open_file_001/task.json @@ -0,0 +1,22 @@ +{ + "id": "open_file_001", + "category": "basic_processing", + "difficulty": "easy", + "instruction": "请打开桌面上的 DEMO01.MDI 文件,然后将当前曲线导出为 ASCII (.txt) 文件并命名为 open_file_result.txt。", + "input": { + "source_file": "../../data/source/DEMO01.MDI", + "inject_to": "C:\\Users\\lzy\\Desktop\\DEMO01.MDI" + }, + "output": { + "expected_file": "open_file_result.txt", + "collect_from": "C:\\Users\\lzy\\Desktop\\open_file_result.txt" + }, + "evaluation": { + "method": "xrd_data_compare", + "ground_truth": "ground_truth/open_file_result.txt", + "target_output": "agent_output/open_file_result.txt", + "tolerance": 0.0001 + }, + "tutorial_source": "教程(1) - 打开文件部分", + "notes": "打开文件后导出为ASCII文件用于评测" +} \ No newline at end of file diff --git a/tasks/peak_search_001/agent_output/peak_result.pid b/tasks/peak_search_001/agent_output/peak_result.pid new file mode 100755 index 0000000..bdbe0ff --- /dev/null +++ b/tasks/peak_search_001/agent_output/peak_result.pid @@ -0,0 +1,81 @@ +USER: lzy +JADE: Peak Search Report (72 Peaks, Max P/N = 19.3) +DATE: Friday, Jan 09, 2026 06:13p +FILE: [DEMO01.MDI] Demo01: 37-1497 4-733 9-169 18-303 9-77 +SCAN: 5.0/70.0/0.02/1(sec), Cu, I(max)=1542, 01/06/26 11:55 +PEAK: 19-pts/Parabolic Filter, Threshold=3.0, Cutoff=0.1%, BG=3/1.0, Peak-Top=Summit +NOTE: Intensity = Counts, 2T(0)=0.0(deg), Wavelength to Compute d-Spacing = 1.54056? (Cu/K-alpha1) + +2-Theta d(?) BG Height I% Area I% FWHM + 10.818 8.1711 34 261 17.2 2666 12.8 0.174 + 11.680 7.5700 35 365 24.1 3860 18.5 0.180 + 13.658 6.4779 30 147 9.7 1450 7.0 0.168 + 14.225 6.2212 30 62 4.1 515 2.5 0.141 + 16.981 5.2170 23 176 11.6 3106 14.9 0.300 + 18.082 4.9017 21 864 57.0 9350 44.9 0.184 + 20.202 4.3919 22 76 5.0 563 2.7 0.126 + 20.941 4.2386 34 349 23.0 3214 15.4 0.157 + 21.783 4.0766 18 208 13.7 3141 15.1 0.257 + 22.980 3.8670 17 92 6.1 1066 5.1 0.197 + 25.881 3.4397 14 954 62.9 11045 53.0 0.197 + 26.502 3.3605 11 87 5.7 1571 7.5 0.307 + 27.442 3.2475 11 88 5.8 1094 5.3 0.211 + 27.781 3.2087 11 485 32.0 5123 24.6 0.180 + 28.239 3.1576 16 161 10.6 1759 8.4 0.186 + 28.646 3.1137 46 232 15.3 2572 12.3 0.188 + 28.945 3.0822 13 187 12.3 3765 18.1 0.342 + 29.279 3.0478 13 300 19.8 3643 17.5 0.206 + 29.680 3.0075 13 148 9.8 1245 6.0 0.143 + 30.503 2.9282 17 197 13.0 1945 9.3 0.168 + 31.058 2.8771 21 807 53.2 8420 40.4 0.177 + 31.959 2.7981 25 1517 100.0 16539 79.4 0.185 + 32.443 2.7574 26 160 10.5 2768 13.3 0.294 + 32.903 2.7199 27 532 35.1 5489 26.4 0.175 + 33.517 2.6714 42 58 3.8 326 1.6 0.096 + 34.119 2.6257 22 1353 89.2 20828 100.0 0.262 + 34.382 2.6062 21 642 42.3 13051 62.7 0.346 + 35.139 2.5518 16 100 6.6 1206 5.8 0.205 + 35.638 2.5172 13 233 15.4 2864 13.8 0.209 + 35.920 2.4980 7 62 4.1 860 4.1 0.236 + 37.360 2.4050 8 454 29.9 6894 33.1 0.258 + 37.897 2.3722 6 52 3.4 587 2.8 0.192 + 39.160 2.2985 11 86 5.7 668 3.2 0.132 + 39.805 2.2627 9 106 7.0 2291 11.0 0.367 + 40.044 2.2498 11 251 16.5 3307 15.9 0.224 + 41.101 2.1943 9 122 8.0 971 4.7 0.135 + 41.778 2.1603 10 217 14.3 3548 17.0 0.278 + 42.059 2.1465 10 71 4.7 1054 5.1 0.252 + 43.018 2.1009 14 48 3.2 324 1.6 0.115 + 43.939 2.0589 13 184 12.1 2794 13.4 0.258 + 44.596 2.0301 14 69 4.5 911 4.4 0.224 + 44.817 2.0207 11 65 4.3 1531 7.4 0.400 + 45.323 1.9993 12 101 6.7 1770 8.5 0.298 + 45.561 1.9894 14 156 10.3 2329 11.2 0.254 + 46.818 1.9388 8 666 43.9 10609 50.9 0.271 + 47.140 1.9263 7 525 34.6 9530 45.8 0.309 + 48.120 1.8894 7 187 12.3 3398 16.3 0.309 + 48.419 1.8784 7 145 9.6 1891 9.1 0.222 + 49.034 1.8563 14 21 1.4 135 0.6 0.109 + 49.520 1.8392 8 472 31.1 5989 28.8 0.216 + 50.379 1.8098 37 183 12.1 2056 9.9 0.191 + 50.819 1.7952 27 433 28.5 4381 21.0 0.172 + 51.283 1.7800 14 228 15.0 2666 12.8 0.199 + 51.903 1.7602 10 174 11.5 1818 8.7 0.178 + 52.999 1.7263 10 176 11.6 3315 15.9 0.320 + 53.204 1.7202 10 271 17.9 5366 25.8 0.337 + 53.862 1.7007 6 180 11.9 1897 9.1 0.179 + 54.379 1.6858 6 265 17.5 2776 13.3 0.178 + 55.104 1.6653 5 31 2.0 286 1.4 0.157 + 56.060 1.6391 5 183 12.1 2265 10.9 0.210 + 56.603 1.6247 6 53 3.5 400 1.9 0.128 + 57.198 1.6092 5 168 11.1 2365 11.4 0.239 + 57.541 1.6004 5 60 4.0 807 3.9 0.229 + 59.537 1.5514 6 96 6.3 1211 5.8 0.214 + 60.039 1.5397 6 121 8.0 1692 8.1 0.238 + 61.342 1.5100 6 147 9.7 1653 7.9 0.191 + 62.543 1.4839 5 138 9.1 1284 6.2 0.158 + 63.184 1.4704 4 128 8.4 1902 9.1 0.253 + 64.200 1.4495 6 417 27.5 4693 22.5 0.191 + 65.199 1.4297 8 171 11.3 1658 8.0 0.165 + 66.317 1.4083 3 51 3.4 753 3.6 0.251 + 67.481 1.3868 3 73 4.8 738 3.5 0.172 diff --git a/tasks/peak_search_001/ground_truth/peak_result.pid b/tasks/peak_search_001/ground_truth/peak_result.pid new file mode 100755 index 0000000..bdbe0ff --- /dev/null +++ b/tasks/peak_search_001/ground_truth/peak_result.pid @@ -0,0 +1,81 @@ +USER: lzy +JADE: Peak Search Report (72 Peaks, Max P/N = 19.3) +DATE: Friday, Jan 09, 2026 06:13p +FILE: [DEMO01.MDI] Demo01: 37-1497 4-733 9-169 18-303 9-77 +SCAN: 5.0/70.0/0.02/1(sec), Cu, I(max)=1542, 01/06/26 11:55 +PEAK: 19-pts/Parabolic Filter, Threshold=3.0, Cutoff=0.1%, BG=3/1.0, Peak-Top=Summit +NOTE: Intensity = Counts, 2T(0)=0.0(deg), Wavelength to Compute d-Spacing = 1.54056? (Cu/K-alpha1) + +2-Theta d(?) BG Height I% Area I% FWHM + 10.818 8.1711 34 261 17.2 2666 12.8 0.174 + 11.680 7.5700 35 365 24.1 3860 18.5 0.180 + 13.658 6.4779 30 147 9.7 1450 7.0 0.168 + 14.225 6.2212 30 62 4.1 515 2.5 0.141 + 16.981 5.2170 23 176 11.6 3106 14.9 0.300 + 18.082 4.9017 21 864 57.0 9350 44.9 0.184 + 20.202 4.3919 22 76 5.0 563 2.7 0.126 + 20.941 4.2386 34 349 23.0 3214 15.4 0.157 + 21.783 4.0766 18 208 13.7 3141 15.1 0.257 + 22.980 3.8670 17 92 6.1 1066 5.1 0.197 + 25.881 3.4397 14 954 62.9 11045 53.0 0.197 + 26.502 3.3605 11 87 5.7 1571 7.5 0.307 + 27.442 3.2475 11 88 5.8 1094 5.3 0.211 + 27.781 3.2087 11 485 32.0 5123 24.6 0.180 + 28.239 3.1576 16 161 10.6 1759 8.4 0.186 + 28.646 3.1137 46 232 15.3 2572 12.3 0.188 + 28.945 3.0822 13 187 12.3 3765 18.1 0.342 + 29.279 3.0478 13 300 19.8 3643 17.5 0.206 + 29.680 3.0075 13 148 9.8 1245 6.0 0.143 + 30.503 2.9282 17 197 13.0 1945 9.3 0.168 + 31.058 2.8771 21 807 53.2 8420 40.4 0.177 + 31.959 2.7981 25 1517 100.0 16539 79.4 0.185 + 32.443 2.7574 26 160 10.5 2768 13.3 0.294 + 32.903 2.7199 27 532 35.1 5489 26.4 0.175 + 33.517 2.6714 42 58 3.8 326 1.6 0.096 + 34.119 2.6257 22 1353 89.2 20828 100.0 0.262 + 34.382 2.6062 21 642 42.3 13051 62.7 0.346 + 35.139 2.5518 16 100 6.6 1206 5.8 0.205 + 35.638 2.5172 13 233 15.4 2864 13.8 0.209 + 35.920 2.4980 7 62 4.1 860 4.1 0.236 + 37.360 2.4050 8 454 29.9 6894 33.1 0.258 + 37.897 2.3722 6 52 3.4 587 2.8 0.192 + 39.160 2.2985 11 86 5.7 668 3.2 0.132 + 39.805 2.2627 9 106 7.0 2291 11.0 0.367 + 40.044 2.2498 11 251 16.5 3307 15.9 0.224 + 41.101 2.1943 9 122 8.0 971 4.7 0.135 + 41.778 2.1603 10 217 14.3 3548 17.0 0.278 + 42.059 2.1465 10 71 4.7 1054 5.1 0.252 + 43.018 2.1009 14 48 3.2 324 1.6 0.115 + 43.939 2.0589 13 184 12.1 2794 13.4 0.258 + 44.596 2.0301 14 69 4.5 911 4.4 0.224 + 44.817 2.0207 11 65 4.3 1531 7.4 0.400 + 45.323 1.9993 12 101 6.7 1770 8.5 0.298 + 45.561 1.9894 14 156 10.3 2329 11.2 0.254 + 46.818 1.9388 8 666 43.9 10609 50.9 0.271 + 47.140 1.9263 7 525 34.6 9530 45.8 0.309 + 48.120 1.8894 7 187 12.3 3398 16.3 0.309 + 48.419 1.8784 7 145 9.6 1891 9.1 0.222 + 49.034 1.8563 14 21 1.4 135 0.6 0.109 + 49.520 1.8392 8 472 31.1 5989 28.8 0.216 + 50.379 1.8098 37 183 12.1 2056 9.9 0.191 + 50.819 1.7952 27 433 28.5 4381 21.0 0.172 + 51.283 1.7800 14 228 15.0 2666 12.8 0.199 + 51.903 1.7602 10 174 11.5 1818 8.7 0.178 + 52.999 1.7263 10 176 11.6 3315 15.9 0.320 + 53.204 1.7202 10 271 17.9 5366 25.8 0.337 + 53.862 1.7007 6 180 11.9 1897 9.1 0.179 + 54.379 1.6858 6 265 17.5 2776 13.3 0.178 + 55.104 1.6653 5 31 2.0 286 1.4 0.157 + 56.060 1.6391 5 183 12.1 2265 10.9 0.210 + 56.603 1.6247 6 53 3.5 400 1.9 0.128 + 57.198 1.6092 5 168 11.1 2365 11.4 0.239 + 57.541 1.6004 5 60 4.0 807 3.9 0.229 + 59.537 1.5514 6 96 6.3 1211 5.8 0.214 + 60.039 1.5397 6 121 8.0 1692 8.1 0.238 + 61.342 1.5100 6 147 9.7 1653 7.9 0.191 + 62.543 1.4839 5 138 9.1 1284 6.2 0.158 + 63.184 1.4704 4 128 8.4 1902 9.1 0.253 + 64.200 1.4495 6 417 27.5 4693 22.5 0.191 + 65.199 1.4297 8 171 11.3 1658 8.0 0.165 + 66.317 1.4083 3 51 3.4 753 3.6 0.251 + 67.481 1.3868 3 73 4.8 738 3.5 0.172 diff --git a/tasks/peak_search_001/human_demo/actions_raw.json b/tasks/peak_search_001/human_demo/actions_raw.json new file mode 100644 index 0000000..5f834b7 --- /dev/null +++ b/tasks/peak_search_001/human_demo/actions_raw.json @@ -0,0 +1,260 @@ +{ + "metadata": { + "task_id": "peak_search_001", + "vm_resolution": [ + 3840, + 2160 + ], + "vm_screenshot_resolution": [ + 3840, + 2160 + ], + "vm_dpi_scale": 2.0, + "recording_start": "2026-01-09T18:11:24.313862", + "recording_end": "2026-01-09T18:13:29.101588", + "total_duration": 125.18, + "total_actions": 28, + "total_screenshots": 13 + }, + "actions": [ + { + "t": 5.001, + "type": "click", + "button": "left", + "pos_host": [ + 988.23046875, + 844.78125 + ], + "pos_vm": [ + 1068, + 0 + ], + "screenshot": "screens/0002_click.png" + }, + { + "t": 17.488, + "type": "click", + "button": "left", + "pos_host": [ + 45.9453125, + 326.41015625 + ], + "pos_vm": [ + 90, + 652 + ], + "screenshot": "screens/0003_click.png" + }, + { + "t": 21.219, + "type": "click", + "button": "left", + "pos_host": [ + 45.9453125, + 326.41015625 + ], + "pos_vm": [ + 116, + 638 + ], + "screenshot": "screens/0004_click.png" + }, + { + "t": 41.908, + "type": "click", + "button": "right", + "pos_host": [ + 408.328125, + 222.5390625 + ], + "pos_vm": [ + 816, + 444 + ], + "screenshot": "screens/0005_click.png" + }, + { + "t": 44.055, + "type": "click", + "button": "right", + "pos_host": [ + 408.328125, + 222.5390625 + ], + "pos_vm": [ + 816, + 444 + ], + "screenshot": "screens/0006_click.png" + }, + { + "t": 54.528, + "type": "click", + "button": "left", + "pos_host": [ + 778.3359375, + 474.0625 + ], + "pos_vm": [ + 1556, + 948 + ], + "screenshot": "screens/0007_click.png" + }, + { + "t": 74.428, + "type": "click", + "button": "left", + "pos_host": [ + 710.08984375, + 306.734375 + ], + "pos_vm": [ + 1420, + 612 + ], + "screenshot": "screens/0008_click.png" + }, + { + "t": 94.527, + "type": "click", + "button": "left", + "pos_host": [ + 545.95703125, + 296.1875 + ], + "pos_vm": [ + 1090, + 592 + ], + "screenshot": "screens/0009_click.png" + }, + { + "t": 101.846, + "type": "key", + "key": "p" + }, + { + "t": 102.392, + "type": "key", + "key": "e" + }, + { + "t": 102.806, + "type": "key", + "key": "a" + }, + { + "t": 102.97, + "type": "key", + "key": "k" + }, + { + "t": 103.142, + "type": "key", + "key": "shift" + }, + { + "t": 105.349, + "type": "key", + "key": "shift" + }, + { + "t": 105.565, + "type": "key", + "key": "_" + }, + { + "t": 105.973, + "type": "key", + "key": "r" + }, + { + "t": 106.008, + "type": "key", + "key": "e" + }, + { + "t": 106.94, + "type": "key", + "key": "s" + }, + { + "t": 107.379, + "type": "key", + "key": "u" + }, + { + "t": 108.244, + "type": "key", + "key": "l" + }, + { + "t": 109.085, + "type": "key", + "key": "t" + }, + { + "t": 111.731, + "type": "click", + "button": "left", + "pos_host": [ + 505.21484375, + 451.53125 + ], + "pos_vm": [ + 1010, + 902 + ], + "screenshot": "screens/0010_click.png" + }, + { + "t": 114.606, + "type": "click", + "button": "left", + "pos_host": [ + 1204.72265625, + 754.12890625 + ], + "pos_vm": [ + 2408, + 1508 + ], + "screenshot": "screens/0011_click.png" + }, + { + "t": 121.298, + "type": "key", + "key": "ctrl" + }, + { + "t": 121.435, + "type": "key", + "key": "left" + }, + { + "t": 123.008, + "type": "key", + "key": "ctrl" + }, + { + "t": 123.088, + "type": "key", + "key": "c" + }, + { + "t": 122.76, + "type": "click", + "button": "left", + "pos_host": [ + 1007.21875, + 1010.23046875 + ], + "pos_vm": [ + 1440, + 890 + ], + "screenshot": "screens/0012_click.png" + } + ] +} \ No newline at end of file diff --git a/tasks/peak_search_001/human_demo/screens/0001_initial.png b/tasks/peak_search_001/human_demo/screens/0001_initial.png new file mode 100644 index 0000000..fa91011 Binary files /dev/null and b/tasks/peak_search_001/human_demo/screens/0001_initial.png differ diff --git a/tasks/peak_search_001/human_demo/screens/0002_click.png b/tasks/peak_search_001/human_demo/screens/0002_click.png new file mode 100644 index 0000000..fa91011 Binary files /dev/null and b/tasks/peak_search_001/human_demo/screens/0002_click.png differ diff --git a/tasks/peak_search_001/human_demo/screens/0003_click.png b/tasks/peak_search_001/human_demo/screens/0003_click.png new file mode 100644 index 0000000..c269a5e Binary files /dev/null and b/tasks/peak_search_001/human_demo/screens/0003_click.png differ diff --git a/tasks/peak_search_001/human_demo/screens/0004_click.png b/tasks/peak_search_001/human_demo/screens/0004_click.png new file mode 100644 index 0000000..771b17d Binary files /dev/null and b/tasks/peak_search_001/human_demo/screens/0004_click.png differ diff --git a/tasks/peak_search_001/human_demo/screens/0005_click.png b/tasks/peak_search_001/human_demo/screens/0005_click.png new file mode 100644 index 0000000..c93cdfe Binary files /dev/null and b/tasks/peak_search_001/human_demo/screens/0005_click.png differ diff --git a/tasks/peak_search_001/human_demo/screens/0006_click.png b/tasks/peak_search_001/human_demo/screens/0006_click.png new file mode 100644 index 0000000..cf3ca58 Binary files /dev/null and b/tasks/peak_search_001/human_demo/screens/0006_click.png differ diff --git a/tasks/peak_search_001/human_demo/screens/0007_click.png b/tasks/peak_search_001/human_demo/screens/0007_click.png new file mode 100644 index 0000000..0e6e6a1 Binary files /dev/null and b/tasks/peak_search_001/human_demo/screens/0007_click.png differ diff --git a/tasks/peak_search_001/human_demo/screens/0008_click.png b/tasks/peak_search_001/human_demo/screens/0008_click.png new file mode 100644 index 0000000..0480162 Binary files /dev/null and b/tasks/peak_search_001/human_demo/screens/0008_click.png differ diff --git a/tasks/peak_search_001/human_demo/screens/0009_click.png b/tasks/peak_search_001/human_demo/screens/0009_click.png new file mode 100644 index 0000000..5ffa85d Binary files /dev/null and b/tasks/peak_search_001/human_demo/screens/0009_click.png differ diff --git a/tasks/peak_search_001/human_demo/screens/0010_click.png b/tasks/peak_search_001/human_demo/screens/0010_click.png new file mode 100644 index 0000000..0c890ed Binary files /dev/null and b/tasks/peak_search_001/human_demo/screens/0010_click.png differ diff --git a/tasks/peak_search_001/human_demo/screens/0011_click.png b/tasks/peak_search_001/human_demo/screens/0011_click.png new file mode 100644 index 0000000..2bc589b Binary files /dev/null and b/tasks/peak_search_001/human_demo/screens/0011_click.png differ diff --git a/tasks/peak_search_001/human_demo/screens/0012_click.png b/tasks/peak_search_001/human_demo/screens/0012_click.png new file mode 100644 index 0000000..90d9dd8 Binary files /dev/null and b/tasks/peak_search_001/human_demo/screens/0012_click.png differ diff --git a/tasks/peak_search_001/human_demo/screens/0013_final.png b/tasks/peak_search_001/human_demo/screens/0013_final.png new file mode 100644 index 0000000..90d9dd8 Binary files /dev/null and b/tasks/peak_search_001/human_demo/screens/0013_final.png differ diff --git a/tasks/peak_search_001/task.json b/tasks/peak_search_001/task.json new file mode 100644 index 0000000..a50d91e --- /dev/null +++ b/tasks/peak_search_001/task.json @@ -0,0 +1,22 @@ +{ + "id": "peak_search_001", + "category": "basic_processing", + "difficulty": "medium", + "instruction": "请打开桌面上的 DEMO01.MDI 文件,进行自动寻峰操作 (Peak Search),然后,导出峰报告文件并命名为 peak_result.pid。", + "input": { + "source_file": "../../data/source/DEMO01.MDI", + "inject_to": "C:\\Users\\lzy\\Desktop\\DEMO01.MDI" + }, + "output": { + "expected_file": "peak_result.pid", + "collect_from": "C:\\Users\\lzy\\Desktop\\peak_result.pid" + }, + "evaluation": { + "method": "peak_report_compare", + "ground_truth": "ground_truth/peak_result.pid", + "target_output": "agent_output/peak_result.pid", + "tolerance": 0.01 + }, + "tutorial_source": "教程(1) - 寻峰部分", + "notes": "自动寻峰并导出峰报告,使用默认寻峰参数" +} \ No newline at end of file diff --git a/tasks/smooth_001/agent_output/smooth_result.txt b/tasks/smooth_001/agent_output/smooth_result.txt new file mode 100644 index 0000000..674ca73 --- /dev/null +++ b/tasks/smooth_001/agent_output/smooth_result.txt @@ -0,0 +1,3252 @@ +Demo01: 37-1497 4-733 9-169 18-303 9-77 +5.0 43 +5.02 43 +5.04 43 +5.06 42 +5.08 40 +5.1 38 +5.12 38 +5.14 40 +5.16 42 +5.18 41 +5.2 40 +5.22 38 +5.24 38 +5.26 38 +5.28 40 +5.3 40 +5.32 38 +5.34 35 +5.36 33 +5.38 31 +5.4 33 +5.42 35 +5.44 38 +5.46 39 +5.48 39 +5.5 38 +5.52 38 +5.54 38 +5.56 39 +5.58 40 +5.6 42 +5.62 42 +5.64 41 +5.66 42 +5.68 44 +5.7 44 +5.72 43 +5.74 43 +5.76 44 +5.78 43 +5.8 43 +5.82 44 +5.84 44 +5.86 41 +5.88 38 +5.9 36 +5.92 35 +5.94 34 +5.96 36 +5.98 38 +6.0 39 +6.02 38 +6.04 37 +6.06 38 +6.08 38 +6.1 40 +6.12 41 +6.14 42 +6.16 41 +6.18 40 +6.2 39 +6.22 39 +6.24 39 +6.26 38 +6.28 37 +6.3 37 +6.32 39 +6.34 40 +6.36 40 +6.38 39 +6.4 39 +6.42 38 +6.44 37 +6.46 39 +6.48 42 +6.5 43 +6.52 41 +6.54 41 +6.56 41 +6.58 41 +6.6 40 +6.62 41 +6.64 41 +6.66 39 +6.68 38 +6.7 37 +6.72 36 +6.74 35 +6.76 35 +6.78 36 +6.8 38 +6.82 38 +6.84 37 +6.86 36 +6.88 37 +6.9 37 +6.92 38 +6.94 38 +6.96 39 +6.98 37 +7.0 36 +7.02 34 +7.04 34 +7.06 34 +7.08 35 +7.1 37 +7.12 41 +7.14 43 +7.16 43 +7.18 39 +7.2 36 +7.22 32 +7.24 32 +7.26 34 +7.28 37 +7.3 41 +7.32 43 +7.34 44 +7.36 43 +7.38 41 +7.4 41 +7.42 41 +7.44 42 +7.46 40 +7.48 40 +7.5 38 +7.52 38 +7.54 39 +7.56 40 +7.58 41 +7.6 42 +7.62 42 +7.64 41 +7.66 41 +7.68 42 +7.7 43 +7.72 43 +7.74 42 +7.76 41 +7.78 39 +7.8 39 +7.82 38 +7.84 38 +7.86 38 +7.88 40 +7.9 42 +7.92 43 +7.94 42 +7.96 41 +7.98 39 +8.0 38 +8.02 37 +8.04 37 +8.06 38 +8.08 37 +8.1 34 +8.12 31 +8.14 31 +8.16 34 +8.18 37 +8.2 39 +8.22 40 +8.24 39 +8.26 38 +8.28 38 +8.3 40 +8.32 41 +8.34 42 +8.36 41 +8.38 39 +8.4 36 +8.42 34 +8.44 32 +8.46 30 +8.48 30 +8.5 32 +8.52 35 +8.54 37 +8.56 40 +8.58 42 +8.6 41 +8.62 39 +8.64 38 +8.66 36 +8.68 35 +8.7 35 +8.72 37 +8.74 37 +8.76 36 +8.78 36 +8.8 36 +8.82 33 +8.84 31 +8.86 31 +8.88 33 +8.9 33 +8.92 33 +8.94 33 +8.96 35 +8.98 36 +9.0 36 +9.02 36 +9.04 37 +9.06 38 +9.08 39 +9.1 41 +9.12 41 +9.14 40 +9.16 38 +9.18 37 +9.2 35 +9.22 36 +9.24 37 +9.26 38 +9.28 36 +9.3 37 +9.32 39 +9.34 41 +9.36 40 +9.38 38 +9.4 36 +9.42 36 +9.44 36 +9.46 37 +9.48 38 +9.5 39 +9.52 38 +9.54 37 +9.56 35 +9.58 35 +9.6 35 +9.62 36 +9.64 38 +9.66 38 +9.68 36 +9.7 35 +9.72 35 +9.74 35 +9.76 36 +9.78 37 +9.8 39 +9.82 39 +9.84 38 +9.86 35 +9.88 32 +9.9 31 +9.92 31 +9.94 33 +9.96 35 +9.98 36 +10.0 37 +10.0 36 +10.0 34 +10.0 34 +10.0 34 +10.1 34 +10.1 33 +10.1 33 +10.1 32 +10.1 33 +10.2 34 +10.2 34 +10.2 33 +10.2 34 +10.2 35 +10.3 36 +10.3 38 +10.3 41 +10.3 43 +10.3 42 +10.4 40 +10.4 39 +10.4 39 +10.4 40 +10.4 44 +10.5 47 +10.5 47 +10.5 46 +10.5 43 +10.5 41 +10.6 44 +10.6 54 +10.6 69 +10.6 87 +10.6 105 +10.7 129 +10.7 152 +10.7 179 +10.7 208 +10.7 236 +10.8 252 +10.8 258 +10.8 249 +10.8 230 +10.8 201 +10.9 174 +10.9 146 +10.9 122 +10.9 96 +10.9 80 +11.0 69 +11.0 63 +11.0 58 +11.0 56 +11.0 53 +11.1 50 +11.1 46 +11.1 43 +11.1 40 +11.1 38 +11.2 34 +11.2 32 +11.2 31 +11.2 33 +11.2 35 +11.3 38 +11.3 41 +11.3 43 +11.3 46 +11.3 49 +11.4 52 +11.4 55 +11.4 60 +11.4 67 +11.4 74 +11.5 83 +11.5 96 +11.5 115 +11.5 141 +11.5 181 +11.6 230 +11.6 286 +11.6 335 +11.6 373 +11.6 388 +11.7 383 +11.7 351 +11.7 305 +11.7 251 +11.7 203 +11.8 161 +11.8 128 +11.8 104 +11.8 88 +11.8 73 +11.9 63 +11.9 57 +11.9 54 +11.9 50 +11.9 46 +12.0 45 +12.0 45 +12.0 45 +12.0 44 +12.0 40 +12.1 36 +12.1 33 +12.1 33 +12.1 34 +12.1 37 +12.2 40 +12.2 41 +12.2 38 +12.2 36 +12.2 34 +12.3 33 +12.3 32 +12.3 33 +12.3 34 +12.3 36 +12.4 36 +12.4 37 +12.4 37 +12.4 36 +12.4 35 +12.5 36 +12.5 36 +12.5 36 +12.5 35 +12.5 35 +12.6 32 +12.6 30 +12.6 30 +12.6 31 +12.6 31 +12.7 32 +12.7 32 +12.7 33 +12.7 32 +12.7 31 +12.8 31 +12.8 31 +12.8 31 +12.8 31 +12.8 33 +12.9 33 +12.9 33 +12.9 32 +12.9 32 +12.9 31 +13.0 32 +13.0 33 +13.0 35 +13.0 36 +13.0 36 +13.1 33 +13.1 31 +13.1 28 +13.1 28 +13.1 28 +13.2 31 +13.2 32 +13.2 34 +13.2 35 +13.2 35 +13.3 34 +13.3 32 +13.3 31 +13.3 31 +13.3 32 +13.4 35 +13.4 41 +13.4 46 +13.4 51 +13.4 57 +13.5 68 +13.5 83 +13.5 98 +13.5 112 +13.5 127 +13.6 142 +13.6 154 +13.6 157 +13.6 156 +13.6 146 +13.7 131 +13.7 111 +13.7 93 +13.7 78 +13.7 66 +13.8 53 +13.8 45 +13.8 40 +13.8 38 +13.8 36 +13.9 34 +13.9 31 +13.9 31 +13.9 31 +13.9 32 +14.0 33 +14.0 31 +14.0 31 +14.0 32 +14.0 35 +14.1 39 +14.1 45 +14.1 51 +14.1 57 +14.1 64 +14.2 73 +14.2 79 +14.2 83 +14.2 81 +14.2 75 +14.3 66 +14.3 58 +14.3 52 +14.3 48 +14.3 44 +14.4 41 +14.4 37 +14.4 32 +14.4 29 +14.4 29 +14.5 28 +14.5 27 +14.5 28 +14.5 27 +14.5 25 +14.6 25 +14.6 27 +14.6 28 +14.6 28 +14.6 28 +14.7 29 +14.7 29 +14.7 30 +14.7 30 +14.7 29 +14.8 28 +14.8 28 +14.8 28 +14.8 29 +14.8 28 +14.9 26 +14.9 22 +14.9 20 +14.9 22 +14.9 27 +15.0 31 +15.0 33 +15.0 32 +15.0 29 +15.0 26 +15.1 25 +15.1 25 +15.1 26 +15.1 27 +15.1 28 +15.2 28 +15.2 26 +15.2 24 +15.2 23 +15.2 23 +15.3 23 +15.3 25 +15.3 27 +15.3 29 +15.3 28 +15.4 27 +15.4 26 +15.4 26 +15.4 27 +15.4 28 +15.5 28 +15.5 29 +15.5 28 +15.5 27 +15.5 25 +15.6 25 +15.6 25 +15.6 25 +15.6 26 +15.6 29 +15.7 30 +15.7 29 +15.7 27 +15.7 25 +15.7 26 +15.8 27 +15.8 28 +15.8 28 +15.8 27 +15.8 25 +15.9 24 +15.9 23 +15.9 24 +15.9 24 +15.9 25 +16.0 25 +16.0 26 +16.0 26 +16.0 26 +16.0 27 +16.1 26 +16.1 25 +16.1 23 +16.1 24 +16.1 25 +16.2 26 +16.2 27 +16.2 29 +16.2 29 +16.2 28 +16.3 26 +16.3 27 +16.3 29 +16.3 29 +16.3 29 +16.4 30 +16.4 31 +16.4 30 +16.4 30 +16.4 31 +16.5 32 +16.5 33 +16.5 34 +16.5 35 +16.5 36 +16.6 39 +16.6 42 +16.6 49 +16.6 58 +16.6 72 +16.7 89 +16.7 109 +16.7 129 +16.7 147 +16.7 157 +16.8 160 +16.8 155 +16.8 146 +16.8 133 +16.8 124 +16.9 124 +16.9 136 +16.9 153 +16.9 171 +16.9 183 +17.0 186 +17.0 180 +17.0 167 +17.0 153 +17.0 137 +17.1 117 +17.1 98 +17.1 79 +17.1 64 +17.1 53 +17.2 50 +17.2 46 +17.2 42 +17.2 36 +17.2 32 +17.3 29 +17.3 27 +17.3 26 +17.3 24 +17.3 21 +17.4 20 +17.4 19 +17.4 19 +17.4 21 +17.4 24 +17.5 27 +17.5 31 +17.5 33 +17.5 33 +17.5 32 +17.6 29 +17.6 27 +17.6 27 +17.6 29 +17.6 33 +17.7 36 +17.7 36 +17.7 36 +17.7 37 +17.7 39 +17.8 44 +17.8 55 +17.8 66 +17.8 77 +17.8 89 +17.9 110 +17.9 138 +17.9 180 +17.9 236 +17.9 311 +18.0 406 +18.0 526 +18.0 649 +18.0 756 +18.0 828 +18.1 853 +18.1 816 +18.1 729 +18.1 614 +18.1 497 +18.2 382 +18.2 281 +18.2 207 +18.2 159 +18.2 127 +18.3 106 +18.3 94 +18.3 85 +18.3 73 +18.3 62 +18.4 55 +18.4 52 +18.4 49 +18.4 47 +18.4 45 +18.5 43 +18.5 41 +18.5 39 +18.5 37 +18.5 37 +18.6 35 +18.6 32 +18.6 28 +18.6 28 +18.6 27 +18.7 25 +18.7 23 +18.7 22 +18.7 21 +18.7 20 +18.8 20 +18.8 21 +18.8 23 +18.8 24 +18.8 24 +18.9 23 +18.9 21 +18.9 21 +18.9 21 +18.9 21 +19.0 21 +19.0 22 +19.0 22 +19.0 20 +19.0 19 +19.1 19 +19.1 20 +19.1 21 +19.1 22 +19.1 24 +19.2 24 +19.2 23 +19.2 23 +19.2 22 +19.2 22 +19.3 22 +19.3 22 +19.3 21 +19.3 20 +19.3 19 +19.4 19 +19.4 18 +19.4 18 +19.4 20 +19.4 22 +19.5 22 +19.5 21 +19.5 21 +19.5 21 +19.5 19 +19.6 18 +19.6 18 +19.6 20 +19.6 21 +19.6 23 +19.7 24 +19.7 23 +19.7 20 +19.7 18 +19.7 18 +19.8 19 +19.8 20 +19.8 21 +19.8 22 +19.8 22 +19.9 20 +19.9 20 +19.9 22 +19.9 23 +19.9 24 +20.0 26 +20.0 27 +20.0 26 +20.0 25 +20.0 27 +20.1 31 +20.1 40 +20.1 52 +20.1 67 +20.1 81 +20.2 89 +20.2 90 +20.2 83 +20.2 71 +20.2 60 +20.3 52 +20.3 47 +20.3 42 +20.3 38 +20.3 33 +20.4 27 +20.4 23 +20.4 24 +20.4 25 +20.4 24 +20.5 23 +20.5 22 +20.5 21 +20.5 19 +20.5 20 +20.6 22 +20.6 24 +20.6 26 +20.6 29 +20.6 33 +20.7 37 +20.7 43 +20.7 50 +20.7 58 +20.7 74 +20.8 99 +20.8 132 +20.8 171 +20.8 220 +20.8 272 +20.9 320 +20.9 355 +20.9 372 +20.9 366 +20.9 336 +21.0 288 +21.0 235 +21.0 184 +21.0 141 +21.0 108 +21.1 84 +21.1 65 +21.1 53 +21.1 47 +21.1 44 +21.2 41 +21.2 38 +21.2 37 +21.2 35 +21.2 34 +21.3 35 +21.3 39 +21.3 43 +21.3 49 +21.3 56 +21.4 61 +21.4 63 +21.4 58 +21.4 52 +21.4 46 +21.5 40 +21.5 37 +21.5 36 +21.5 39 +21.5 42 +21.6 45 +21.6 49 +21.6 61 +21.6 78 +21.6 98 +21.7 119 +21.7 146 +21.7 173 +21.7 192 +21.7 205 +21.8 213 +21.8 218 +21.8 216 +21.8 212 +21.8 206 +21.9 195 +21.9 174 +21.9 146 +21.9 115 +21.9 88 +22.0 68 +22.0 58 +22.0 51 +22.0 47 +22.0 44 +22.1 42 +22.1 43 +22.1 46 +22.1 48 +22.1 51 +22.2 53 +22.2 52 +22.2 51 +22.2 48 +22.2 45 +22.3 38 +22.3 32 +22.3 29 +22.3 27 +22.3 26 +22.4 24 +22.4 23 +22.4 21 +22.4 19 +22.4 17 +22.5 17 +22.5 17 +22.5 17 +22.5 17 +22.5 20 +22.6 21 +22.6 21 +22.6 22 +22.6 23 +22.6 22 +22.7 21 +22.7 21 +22.7 22 +22.7 24 +22.7 29 +22.8 34 +22.8 38 +22.8 40 +22.8 46 +22.8 56 +22.9 69 +22.9 81 +22.9 95 +22.9 104 +22.9 104 +23.0 97 +23.0 88 +23.0 76 +23.0 61 +23.0 47 +23.1 39 +23.1 34 +23.1 31 +23.1 30 +23.1 30 +23.2 30 +23.2 28 +23.2 27 +23.2 26 +23.2 28 +23.3 30 +23.3 32 +23.3 34 +23.3 37 +23.3 41 +23.4 43 +23.4 44 +23.4 44 +23.4 41 +23.4 35 +23.5 28 +23.5 23 +23.5 20 +23.5 19 +23.5 21 +23.6 22 +23.6 21 +23.6 19 +23.6 17 +23.6 16 +23.7 14 +23.7 14 +23.7 14 +23.7 16 +23.7 17 +23.8 17 +23.8 16 +23.8 16 +23.8 15 +23.8 15 +23.9 14 +23.9 15 +23.9 16 +23.9 15 +23.9 15 +24.0 15 +24.0 16 +24.0 18 +24.0 17 +24.0 16 +24.1 15 +24.1 15 +24.1 15 +24.1 16 +24.1 17 +24.2 17 +24.2 17 +24.2 16 +24.2 15 +24.2 15 +24.3 15 +24.3 15 +24.3 14 +24.3 14 +24.3 14 +24.4 14 +24.4 16 +24.4 18 +24.4 18 +24.4 18 +24.5 18 +24.5 17 +24.5 15 +24.5 15 +24.5 15 +24.6 17 +24.6 18 +24.6 18 +24.6 18 +24.6 17 +24.7 16 +24.7 14 +24.7 13 +24.7 12 +24.7 11 +24.8 11 +24.8 12 +24.8 13 +24.8 15 +24.8 16 +24.9 16 +24.9 14 +24.9 12 +24.9 12 +24.9 13 +25.0 14 +25.0 15 +25.0 16 +25.0 15 +25.0 13 +25.1 13 +25.1 14 +25.1 15 +25.1 16 +25.1 18 +25.2 18 +25.2 16 +25.2 15 +25.2 14 +25.2 13 +25.3 13 +25.3 14 +25.3 16 +25.3 18 +25.3 19 +25.4 20 +25.4 22 +25.4 25 +25.4 26 +25.4 27 +25.5 27 +25.5 28 +25.5 30 +25.5 32 +25.5 37 +25.6 47 +25.6 61 +25.6 77 +25.6 96 +25.6 122 +25.7 158 +25.7 200 +25.7 261 +25.7 345 +25.7 453 +25.8 575 +25.8 705 +25.8 826 +25.8 915 +25.8 951 +25.9 932 +25.9 861 +25.9 747 +25.9 610 +25.9 474 +26.0 358 +26.0 264 +26.0 197 +26.0 152 +26.0 125 +26.1 103 +26.1 86 +26.1 74 +26.1 68 +26.1 65 +26.2 66 +26.2 65 +26.2 62 +26.2 57 +26.2 51 +26.3 44 +26.3 38 +26.3 36 +26.3 38 +26.3 42 +26.4 46 +26.4 54 +26.4 66 +26.4 79 +26.4 86 +26.5 90 +26.5 90 +26.5 87 +26.5 80 +26.5 72 +26.6 65 +26.6 57 +26.6 47 +26.6 38 +26.6 30 +26.7 25 +26.7 20 +26.7 17 +26.7 14 +26.7 13 +26.8 12 +26.8 12 +26.8 14 +26.8 15 +26.8 14 +26.9 13 +26.9 12 +26.9 12 +26.9 11 +26.9 12 +27.0 13 +27.0 13 +27.0 13 +27.0 11 +27.0 10 +27.1 8 +27.1 9 +27.1 10 +27.1 12 +27.1 12 +27.2 14 +27.2 16 +27.2 16 +27.2 17 +27.2 20 +27.3 25 +27.3 31 +27.3 38 +27.3 49 +27.3 62 +27.4 73 +27.4 82 +27.4 88 +27.4 91 +27.4 86 +27.5 76 +27.5 66 +27.5 58 +27.5 57 +27.5 62 +27.6 76 +27.6 97 +27.6 124 +27.6 152 +27.6 189 +27.7 244 +27.7 313 +27.7 380 +27.7 433 +27.7 459 +27.8 448 +27.8 398 +27.8 331 +27.8 264 +27.8 204 +27.9 154 +27.9 116 +27.9 90 +27.9 70 +27.9 57 +28.0 51 +28.0 50 +28.0 47 +28.0 46 +28.0 47 +28.1 54 +28.1 67 +28.1 87 +28.1 109 +28.1 132 +28.2 148 +28.2 157 +28.2 157 +28.2 148 +28.2 130 +28.3 109 +28.3 91 +28.3 76 +28.3 64 +28.3 53 +28.4 47 +28.4 43 +28.4 38 +28.4 36 +28.4 40 +28.5 51 +28.5 64 +28.5 81 +28.5 106 +28.5 144 +28.6 185 +28.6 224 +28.6 257 +28.6 278 +28.6 278 +28.7 263 +28.7 240 +28.7 215 +28.7 187 +28.7 158 +28.8 134 +28.8 116 +28.8 104 +28.8 103 +28.8 113 +28.9 134 +28.9 155 +28.9 171 +28.9 183 +28.9 190 +29.0 188 +29.0 179 +29.0 167 +29.0 153 +29.0 136 +29.1 119 +29.1 110 +29.1 114 +29.1 131 +29.1 157 +29.2 190 +29.2 227 +29.2 259 +29.2 274 +29.2 274 +29.3 259 +29.3 235 +29.3 201 +29.3 164 +29.3 130 +29.4 100 +29.4 74 +29.4 56 +29.4 47 +29.4 45 +29.5 46 +29.5 47 +29.5 52 +29.5 65 +29.5 80 +29.6 97 +29.6 116 +29.6 132 +29.6 140 +29.6 138 +29.7 130 +29.7 116 +29.7 96 +29.7 74 +29.7 56 +29.8 43 +29.8 36 +29.8 30 +29.8 25 +29.8 21 +29.9 20 +29.9 17 +29.9 14 +29.9 12 +29.9 11 +30.0 11 +30.0 12 +30.0 13 +30.0 15 +30.0 16 +30.1 17 +30.1 17 +30.1 15 +30.1 14 +30.1 14 +30.2 14 +30.2 15 +30.2 16 +30.2 18 +30.2 21 +30.3 25 +30.3 30 +30.3 36 +30.3 40 +30.3 50 +30.4 64 +30.4 89 +30.4 116 +30.4 148 +30.4 174 +30.5 191 +30.5 194 +30.5 189 +30.5 174 +30.5 152 +30.6 126 +30.6 103 +30.6 80 +30.6 64 +30.6 52 +30.7 46 +30.7 41 +30.7 41 +30.7 43 +30.7 47 +30.8 53 +30.8 64 +30.8 80 +30.8 101 +30.8 131 +30.9 177 +30.9 247 +30.9 341 +30.9 452 +30.9 572 +31.0 687 +31.0 775 +31.0 813 +31.0 792 +31.0 722 +31.1 616 +31.1 490 +31.1 370 +31.1 274 +31.1 203 +31.2 153 +31.2 121 +31.2 103 +31.2 89 +31.2 81 +31.3 76 +31.3 74 +31.3 68 +31.3 62 +31.3 53 +31.4 45 +31.4 35 +31.4 29 +31.4 25 +31.4 23 +31.5 22 +31.5 22 +31.5 22 +31.5 22 +31.5 25 +31.6 29 +31.6 35 +31.6 40 +31.6 48 +31.6 59 +31.7 73 +31.7 90 +31.7 113 +31.7 146 +31.7 194 +31.8 261 +31.8 363 +31.8 509 +31.8 698 +31.8 921 +31.9 1153 +31.9 1347 +31.9 1456 +31.9 1462 +31.9 1372 +32.0 1206 +32.0 1000 +32.0 799 +32.0 621 +32.0 476 +32.1 364 +32.1 291 +32.1 245 +32.1 222 +32.1 211 +32.2 207 +32.2 196 +32.2 184 +32.2 165 +32.2 147 +32.3 128 +32.3 119 +32.3 112 +32.3 115 +32.3 124 +32.4 141 +32.4 157 +32.4 173 +32.4 183 +32.4 183 +32.5 170 +32.5 148 +32.5 123 +32.5 99 +32.5 79 +32.6 65 +32.6 57 +32.6 54 +32.6 54 +32.6 54 +32.7 58 +32.7 68 +32.7 80 +32.7 97 +32.7 126 +32.8 168 +32.8 228 +32.8 303 +32.8 386 +32.8 457 +32.9 505 +32.9 520 +32.9 504 +32.9 465 +32.9 416 +33.0 365 +33.0 312 +33.0 257 +33.0 206 +33.0 160 +33.1 122 +33.1 95 +33.1 77 +33.1 63 +33.1 54 +33.2 46 +33.2 39 +33.2 33 +33.2 28 +33.2 25 +33.3 23 +33.3 23 +33.3 24 +33.3 27 +33.3 32 +33.4 40 +33.4 49 +33.4 61 +33.4 73 +33.4 83 +33.5 89 +33.5 91 +33.5 87 +33.5 80 +33.5 71 +33.6 61 +33.6 50 +33.6 44 +33.6 42 +33.6 42 +33.7 46 +33.7 54 +33.7 63 +33.7 77 +33.7 95 +33.8 120 +33.8 150 +33.8 186 +33.8 227 +33.8 277 +33.9 337 +33.9 404 +33.9 476 +33.9 547 +33.9 624 +34.0 712 +34.0 817 +34.0 946 +34.0 1096 +34.0 1229 +34.1 1310 +34.1 1310 +34.1 1237 +34.1 1103 +34.1 944 +34.2 781 +34.2 646 +34.2 544 +34.2 480 +34.2 446 +34.3 446 +34.3 480 +34.3 537 +34.3 592 +34.3 632 +34.4 641 +34.4 616 +34.4 554 +34.4 470 +34.4 380 +34.5 301 +34.5 234 +34.5 179 +34.5 131 +34.5 95 +34.6 68 +34.6 48 +34.6 36 +34.6 31 +34.6 27 +34.7 23 +34.7 19 +34.7 17 +34.7 15 +34.7 14 +34.8 16 +34.8 18 +34.8 19 +34.8 21 +34.8 25 +34.9 33 +34.9 42 +34.9 52 +34.9 62 +34.9 72 +35.0 81 +35.0 88 +35.0 92 +35.0 96 +35.0 100 +35.1 102 +35.1 99 +35.1 98 +35.1 95 +35.1 88 +35.2 76 +35.2 65 +35.2 55 +35.2 44 +35.2 32 +35.3 26 +35.3 23 +35.3 21 +35.3 21 +35.3 25 +35.4 30 +35.4 37 +35.4 46 +35.4 59 +35.4 78 +35.5 102 +35.5 129 +35.5 157 +35.5 186 +35.5 212 +35.6 229 +35.6 234 +35.6 225 +35.6 204 +35.6 175 +35.7 142 +35.7 108 +35.7 81 +35.7 61 +35.7 49 +35.8 42 +35.8 42 +35.8 45 +35.8 52 +35.8 58 +35.9 63 +35.9 62 +35.9 58 +35.9 50 +35.9 41 +36.0 32 +36.0 25 +36.0 21 +36.0 19 +36.0 16 +36.1 14 +36.1 11 +36.1 8 +36.1 6 +36.1 6 +36.2 8 +36.2 9 +36.2 11 +36.2 11 +36.2 11 +36.3 10 +36.3 9 +36.3 9 +36.3 9 +36.3 8 +36.4 8 +36.4 7 +36.4 7 +36.4 8 +36.4 10 +36.5 12 +36.5 13 +36.5 13 +36.5 13 +36.5 16 +36.6 20 +36.6 25 +36.6 32 +36.6 38 +36.6 42 +36.7 45 +36.7 45 +36.7 45 +36.7 44 +36.7 45 +36.8 47 +36.8 52 +36.8 57 +36.8 61 +36.8 63 +36.9 64 +36.9 62 +36.9 61 +36.9 59 +36.9 60 +37.0 59 +37.0 63 +37.0 68 +37.0 75 +37.0 80 +37.1 85 +37.1 86 +37.1 85 +37.1 85 +37.1 93 +37.2 107 +37.2 127 +37.2 157 +37.2 202 +37.2 258 +37.3 324 +37.3 386 +37.3 433 +37.3 452 +37.3 442 +37.4 401 +37.4 341 +37.4 272 +37.4 210 +37.4 156 +37.5 115 +37.5 86 +37.5 68 +37.5 52 +37.5 39 +37.6 31 +37.6 27 +37.6 25 +37.6 24 +37.6 23 +37.7 20 +37.7 20 +37.7 22 +37.7 28 +37.7 34 +37.8 41 +37.8 45 +37.8 48 +37.8 51 +37.8 51 +37.9 48 +37.9 43 +37.9 37 +37.9 30 +37.9 24 +38.0 20 +38.0 18 +38.0 16 +38.0 14 +38.0 13 +38.1 12 +38.1 11 +38.1 12 +38.1 12 +38.1 12 +38.2 12 +38.2 12 +38.2 10 +38.2 8 +38.2 8 +38.3 8 +38.3 7 +38.3 8 +38.3 9 +38.3 9 +38.4 9 +38.4 9 +38.4 9 +38.4 9 +38.4 9 +38.5 9 +38.5 9 +38.5 9 +38.5 8 +38.5 7 +38.6 6 +38.6 5 +38.6 5 +38.6 5 +38.6 7 +38.7 8 +38.7 8 +38.7 8 +38.7 7 +38.7 6 +38.8 6 +38.8 6 +38.8 7 +38.8 8 +38.8 10 +38.9 11 +38.9 12 +38.9 11 +38.9 11 +38.9 11 +39.0 15 +39.0 24 +39.0 36 +39.0 47 +39.0 58 +39.1 70 +39.1 79 +39.1 83 +39.1 86 +39.1 85 +39.2 79 +39.2 67 +39.2 53 +39.2 40 +39.2 29 +39.3 21 +39.3 16 +39.3 15 +39.3 14 +39.3 12 +39.4 10 +39.4 10 +39.4 9 +39.4 9 +39.4 8 +39.5 9 +39.5 10 +39.5 11 +39.5 12 +39.5 14 +39.6 16 +39.6 17 +39.6 19 +39.6 25 +39.6 35 +39.7 45 +39.7 55 +39.7 66 +39.7 80 +39.7 90 +39.8 98 +39.8 103 +39.8 104 +39.8 100 +39.8 95 +39.9 95 +39.9 101 +39.9 113 +39.9 132 +39.9 157 +40.0 187 +40.0 217 +40.0 240 +40.0 248 +40.0 240 +40.1 218 +40.1 188 +40.1 155 +40.1 125 +40.1 99 +40.2 80 +40.2 63 +40.2 51 +40.2 41 +40.2 34 +40.3 28 +40.3 23 +40.3 19 +40.3 18 +40.3 16 +40.4 12 +40.4 9 +40.4 8 +40.4 7 +40.4 8 +40.5 8 +40.5 8 +40.5 8 +40.5 7 +40.5 6 +40.6 5 +40.6 5 +40.6 6 +40.6 6 +40.6 7 +40.7 8 +40.7 8 +40.7 8 +40.7 8 +40.7 8 +40.8 8 +40.8 9 +40.8 10 +40.8 10 +40.8 10 +40.9 11 +40.9 14 +40.9 17 +40.9 24 +40.9 35 +41.0 47 +41.0 59 +41.0 75 +41.0 90 +41.0 102 +41.1 106 +41.1 107 +41.1 98 +41.1 85 +41.1 69 +41.2 57 +41.2 46 +41.2 35 +41.2 27 +41.2 23 +41.3 20 +41.3 18 +41.3 18 +41.3 18 +41.3 18 +41.4 19 +41.4 23 +41.4 29 +41.4 37 +41.4 50 +41.5 64 +41.5 79 +41.5 90 +41.5 97 +41.5 103 +41.6 111 +41.6 120 +41.6 131 +41.6 143 +41.6 155 +41.7 167 +41.7 180 +41.7 195 +41.7 205 +41.7 204 +41.8 192 +41.8 175 +41.8 154 +41.8 133 +41.8 113 +41.9 96 +41.9 81 +41.9 68 +41.9 60 +41.9 59 +42.0 64 +42.0 69 +42.0 73 +42.0 73 +42.0 69 +42.1 61 +42.1 51 +42.1 41 +42.1 32 +42.1 26 +42.2 20 +42.2 16 +42.2 12 +42.2 10 +42.2 9 +42.3 8 +42.3 8 +42.3 8 +42.3 8 +42.3 8 +42.4 9 +42.4 7 +42.4 6 +42.4 5 +42.4 6 +42.5 6 +42.5 8 +42.5 10 +42.5 13 +42.5 14 +42.6 14 +42.6 13 +42.6 12 +42.6 12 +42.6 13 +42.7 13 +42.7 13 +42.7 12 +42.7 9 +42.7 7 +42.8 8 +42.8 9 +42.8 11 +42.8 15 +42.8 21 +42.9 26 +42.9 30 +42.9 36 +42.9 43 +42.9 47 +43.0 49 +43.0 48 +43.0 46 +43.0 43 +43.0 39 +43.1 37 +43.1 34 +43.1 29 +43.1 23 +43.1 18 +43.2 14 +43.2 12 +43.2 13 +43.2 15 +43.2 16 +43.3 19 +43.3 25 +43.3 31 +43.3 39 +43.3 46 +43.4 52 +43.4 53 +43.4 51 +43.4 50 +43.4 53 +43.5 56 +43.5 61 +43.5 67 +43.5 72 +43.5 73 +43.6 71 +43.6 68 +43.6 65 +43.6 63 +43.6 60 +43.7 60 +43.7 59 +43.7 59 +43.7 59 +43.7 65 +43.8 78 +43.8 101 +43.8 126 +43.8 150 +43.8 169 +43.9 183 +43.9 188 +43.9 185 +43.9 175 +43.9 160 +44.0 138 +44.0 110 +44.0 83 +44.0 62 +44.0 46 +44.1 34 +44.1 27 +44.1 24 +44.1 22 +44.1 17 +44.2 13 +44.2 10 +44.2 9 +44.2 10 +44.2 11 +44.3 10 +44.3 10 +44.3 11 +44.3 12 +44.3 16 +44.4 23 +44.4 30 +44.4 38 +44.4 46 +44.4 53 +44.5 59 +44.5 65 +44.5 70 +44.5 74 +44.5 73 +44.6 68 +44.6 63 +44.6 57 +44.6 51 +44.6 48 +44.7 50 +44.7 54 +44.7 62 +44.7 68 +44.7 73 +44.8 74 +44.8 74 +44.8 71 +44.8 65 +44.8 58 +44.9 55 +44.9 51 +44.9 45 +44.9 39 +44.9 35 +45.0 29 +45.0 22 +45.0 17 +45.0 16 +45.0 17 +45.1 18 +45.1 19 +45.1 21 +45.1 23 +45.1 28 +45.2 38 +45.2 51 +45.2 64 +45.2 77 +45.2 89 +45.3 98 +45.3 103 +45.3 104 +45.3 99 +45.3 89 +45.4 80 +45.4 74 +45.4 76 +45.4 80 +45.4 93 +45.5 108 +45.5 126 +45.5 137 +45.5 145 +45.5 143 +45.6 133 +45.6 114 +45.6 95 +45.6 76 +45.6 62 +45.7 48 +45.7 38 +45.7 28 +45.7 23 +45.7 19 +45.8 17 +45.8 19 +45.8 22 +45.8 27 +45.8 30 +45.9 33 +45.9 33 +45.9 31 +45.9 28 +45.9 26 +46.0 26 +46.0 25 +46.0 24 +46.0 23 +46.0 21 +46.1 17 +46.1 15 +46.1 13 +46.1 13 +46.1 10 +46.2 9 +46.2 7 +46.2 7 +46.2 7 +46.2 7 +46.3 7 +46.3 7 +46.3 7 +46.3 7 +46.3 7 +46.4 9 +46.4 9 +46.4 11 +46.4 14 +46.4 18 +46.5 22 +46.5 28 +46.5 35 +46.5 46 +46.5 58 +46.6 71 +46.6 88 +46.6 114 +46.6 151 +46.6 198 +46.7 262 +46.7 345 +46.7 438 +46.7 527 +46.7 598 +46.8 637 +46.8 638 +46.8 606 +46.8 551 +46.8 485 +46.9 425 +46.9 376 +46.9 341 +46.9 313 +46.9 298 +47.0 297 +47.0 305 +47.0 320 +47.0 351 +47.0 396 +47.1 444 +47.1 474 +47.1 483 +47.1 465 +47.1 425 +47.2 366 +47.2 302 +47.2 242 +47.2 189 +47.2 139 +47.3 99 +47.3 69 +47.3 52 +47.3 40 +47.3 32 +47.4 25 +47.4 21 +47.4 17 +47.4 14 +47.4 12 +47.5 10 +47.5 9 +47.5 8 +47.5 7 +47.5 7 +47.6 6 +47.6 5 +47.6 5 +47.6 7 +47.6 9 +47.7 9 +47.7 10 +47.7 11 +47.7 13 +47.7 16 +47.8 21 +47.8 26 +47.8 37 +47.8 51 +47.8 65 +47.9 80 +47.9 99 +47.9 118 +47.9 134 +47.9 148 +48.0 161 +48.0 170 +48.0 174 +48.0 177 +48.0 183 +48.1 185 +48.1 183 +48.1 175 +48.1 162 +48.1 146 +48.2 129 +48.2 112 +48.2 97 +48.2 81 +48.2 69 +48.3 66 +48.3 73 +48.3 90 +48.3 110 +48.3 129 +48.4 142 +48.4 147 +48.4 147 +48.4 140 +48.4 128 +48.5 113 +48.5 95 +48.5 74 +48.5 54 +48.5 40 +48.6 31 +48.6 22 +48.6 14 +48.6 12 +48.6 12 +48.7 12 +48.7 11 +48.7 10 +48.7 9 +48.7 6 +48.8 4 +48.8 4 +48.8 6 +48.8 8 +48.8 12 +48.9 16 +48.9 20 +48.9 24 +48.9 28 +48.9 30 +49.0 33 +49.0 34 +49.0 32 +49.0 29 +49.0 26 +49.1 23 +49.1 20 +49.1 17 +49.1 16 +49.1 14 +49.2 14 +49.2 14 +49.2 14 +49.2 17 +49.2 22 +49.3 28 +49.3 38 +49.3 54 +49.3 72 +49.3 98 +49.4 140 +49.4 204 +49.4 279 +49.4 355 +49.4 421 +49.5 462 +49.5 469 +49.5 447 +49.5 406 +49.5 355 +49.6 301 +49.6 247 +49.6 199 +49.6 156 +49.6 125 +49.7 104 +49.7 93 +49.7 92 +49.7 98 +49.7 102 +49.8 103 +49.8 100 +49.8 94 +49.8 84 +49.8 71 +49.9 59 +49.9 48 +49.9 38 +49.9 31 +49.9 28 +50.0 29 +50.0 30 +50.0 35 +50.0 42 +50.0 53 +50.1 62 +50.1 70 +50.1 74 +50.1 75 +50.1 72 +50.2 70 +50.2 71 +50.2 77 +50.2 86 +50.2 102 +50.3 126 +50.3 155 +50.3 182 +50.3 199 +50.3 207 +50.4 203 +50.4 189 +50.4 170 +50.4 148 +50.4 127 +50.5 105 +50.5 84 +50.5 66 +50.5 56 +50.5 52 +50.6 55 +50.6 66 +50.6 82 +50.6 108 +50.6 143 +50.7 186 +50.7 235 +50.7 293 +50.7 350 +50.7 399 +50.8 424 +50.8 428 +50.8 405 +50.8 361 +50.8 302 +50.9 245 +50.9 194 +50.9 148 +50.9 108 +50.9 80 +51.0 60 +51.0 45 +51.0 35 +51.0 30 +51.0 29 +51.1 30 +51.1 35 +51.1 43 +51.1 56 +51.1 73 +51.2 96 +51.2 125 +51.2 161 +51.2 196 +51.2 219 +51.3 226 +51.3 220 +51.3 204 +51.3 186 +51.3 168 +51.4 153 +51.4 137 +51.4 120 +51.4 102 +51.4 87 +51.5 78 +51.5 70 +51.5 62 +51.5 53 +51.5 45 +51.6 37 +51.6 30 +51.6 24 +51.6 20 +51.6 18 +51.7 17 +51.7 18 +51.7 21 +51.7 26 +51.7 33 +51.8 45 +51.8 67 +51.8 97 +51.8 129 +51.8 156 +51.9 174 +51.9 183 +51.9 181 +51.9 171 +51.9 155 +52.0 136 +52.0 114 +52.0 92 +52.0 71 +52.0 54 +52.1 42 +52.1 31 +52.1 22 +52.1 15 +52.1 13 +52.2 12 +52.2 13 +52.2 14 +52.2 15 +52.2 14 +52.3 14 +52.3 11 +52.3 9 +52.3 8 +52.3 8 +52.4 7 +52.4 7 +52.4 9 +52.4 10 +52.4 11 +52.5 12 +52.5 13 +52.5 16 +52.5 19 +52.5 24 +52.6 28 +52.6 31 +52.6 32 +52.6 32 +52.6 29 +52.7 27 +52.7 27 +52.7 27 +52.7 26 +52.7 27 +52.8 30 +52.8 36 +52.8 48 +52.8 70 +52.8 101 +52.9 129 +52.9 155 +52.9 172 +52.9 181 +52.9 178 +53.0 172 +53.0 164 +53.0 154 +53.0 141 +53.0 131 +53.1 124 +53.1 129 +53.1 150 +53.1 185 +53.1 220 +53.2 250 +53.2 270 +53.2 274 +53.2 262 +53.2 239 +53.3 212 +53.3 178 +53.3 139 +53.3 104 +53.3 79 +53.4 63 +53.4 55 +53.4 53 +53.4 55 +53.4 57 +53.5 58 +53.5 59 +53.5 59 +53.5 58 +53.5 57 +53.6 53 +53.6 47 +53.6 40 +53.6 34 +53.6 29 +53.7 28 +53.7 33 +53.7 43 +53.7 58 +53.7 81 +53.8 108 +53.8 134 +53.8 154 +53.8 169 +53.8 174 +53.9 170 +53.9 158 +53.9 143 +53.9 121 +53.9 98 +54.0 74 +54.0 54 +54.0 38 +54.0 30 +54.0 26 +54.1 23 +54.1 20 +54.1 18 +54.1 20 +54.1 25 +54.2 35 +54.2 52 +54.2 77 +54.2 107 +54.2 138 +54.3 170 +54.3 204 +54.3 230 +54.3 244 +54.3 246 +54.4 239 +54.4 220 +54.4 193 +54.4 166 +54.4 140 +54.5 113 +54.5 88 +54.5 66 +54.5 49 +54.5 35 +54.6 26 +54.6 20 +54.6 15 +54.6 11 +54.6 8 +54.7 6 +54.7 5 +54.7 5 +54.7 4 +54.7 4 +54.8 5 +54.8 6 +54.8 6 +54.8 7 +54.8 8 +54.9 8 +54.9 8 +54.9 7 +54.9 7 +54.9 8 +55.0 9 +55.0 13 +55.0 17 +55.0 22 +55.0 26 +55.1 29 +55.1 30 +55.1 29 +55.1 29 +55.1 28 +55.2 25 +55.2 23 +55.2 21 +55.2 19 +55.2 15 +55.3 12 +55.3 9 +55.3 8 +55.3 7 +55.3 6 +55.4 6 +55.4 6 +55.4 5 +55.4 4 +55.4 5 +55.5 5 +55.5 5 +55.5 5 +55.5 4 +55.5 3 +55.6 2 +55.6 2 +55.6 3 +55.6 4 +55.6 4 +55.7 5 +55.7 7 +55.7 7 +55.7 7 +55.7 8 +55.8 9 +55.8 10 +55.8 13 +55.8 18 +55.8 23 +55.9 28 +55.9 37 +55.9 57 +55.9 84 +55.9 113 +56.0 142 +56.0 167 +56.0 180 +56.0 180 +56.0 172 +56.1 161 +56.1 149 +56.1 135 +56.1 121 +56.1 109 +56.2 94 +56.2 81 +56.2 68 +56.2 54 +56.2 42 +56.3 33 +56.3 27 +56.3 23 +56.3 20 +56.3 17 +56.4 14 +56.4 11 +56.4 9 +56.4 10 +56.4 11 +56.5 15 +56.5 20 +56.5 28 +56.5 37 +56.5 46 +56.6 51 +56.6 52 +56.6 47 +56.6 40 +56.6 33 +56.7 27 +56.7 22 +56.7 18 +56.7 14 +56.7 10 +56.8 7 +56.8 6 +56.8 6 +56.8 6 +56.8 6 +56.9 6 +56.9 6 +56.9 7 +56.9 7 +56.9 8 +57.0 10 +57.0 17 +57.0 27 +57.0 39 +57.0 57 +57.1 80 +57.1 106 +57.1 131 +57.1 152 +57.1 164 +57.2 164 +57.2 151 +57.2 135 +57.2 117 +57.2 100 +57.3 85 +57.3 73 +57.3 62 +57.3 54 +57.3 50 +57.4 51 +57.4 54 +57.4 56 +57.4 57 +57.4 57 +57.5 56 +57.5 55 +57.5 55 +57.5 53 +57.5 49 +57.6 44 +57.6 38 +57.6 30 +57.6 23 +57.6 18 +57.7 15 +57.7 12 +57.7 10 +57.7 9 +57.7 9 +57.8 8 +57.8 6 +57.8 5 +57.8 5 +57.8 4 +57.9 4 +57.9 5 +57.9 5 +57.9 4 +57.9 4 +58.0 4 +58.0 5 +58.0 5 +58.0 4 +58.0 4 +58.1 4 +58.1 4 +58.1 4 +58.1 4 +58.1 4 +58.2 4 +58.2 3 +58.2 3 +58.2 2 +58.2 2 +58.3 3 +58.3 3 +58.3 3 +58.3 3 +58.3 3 +58.4 3 +58.4 3 +58.4 3 +58.4 3 +58.4 2 +58.5 3 +58.5 2 +58.5 3 +58.5 3 +58.5 4 +58.6 4 +58.6 3 +58.6 3 +58.6 3 +58.6 3 +58.7 3 +58.7 3 +58.7 3 +58.7 3 +58.7 2 +58.8 2 +58.8 2 +58.8 3 +58.8 4 +58.8 4 +58.9 5 +58.9 5 +58.9 5 +58.9 5 +58.9 5 +59.0 5 +59.0 6 +59.0 6 +59.0 6 +59.0 5 +59.1 5 +59.1 4 +59.1 4 +59.1 6 +59.1 9 +59.2 13 +59.2 18 +59.2 24 +59.2 29 +59.2 33 +59.3 36 +59.3 37 +59.3 36 +59.3 35 +59.3 35 +59.4 35 +59.4 39 +59.4 48 +59.4 63 +59.4 77 +59.5 89 +59.5 96 +59.5 97 +59.5 92 +59.5 85 +59.6 76 +59.6 66 +59.6 54 +59.6 42 +59.6 30 +59.7 21 +59.7 16 +59.7 13 +59.7 12 +59.7 11 +59.8 10 +59.8 10 +59.8 12 +59.8 15 +59.8 18 +59.9 25 +59.9 36 +59.9 52 +59.9 71 +59.9 92 +60.0 110 +60.0 121 +60.0 121 +60.0 115 +60.0 105 +60.1 95 +60.1 86 +60.1 76 +60.1 66 +60.1 55 +60.2 43 +60.2 34 +60.2 27 +60.2 23 +60.2 21 +60.3 20 +60.3 21 +60.3 23 +60.3 27 +60.3 30 +60.4 32 +60.4 30 +60.4 29 +60.4 26 +60.4 23 +60.5 18 +60.5 15 +60.5 12 +60.5 9 +60.5 6 +60.6 5 +60.6 5 +60.6 5 +60.6 5 +60.6 6 +60.7 7 +60.7 7 +60.7 7 +60.7 7 +60.7 9 +60.8 13 +60.8 16 +60.8 19 +60.8 23 +60.8 26 +60.9 27 +60.9 28 +60.9 28 +60.9 26 +60.9 22 +61.0 18 +61.0 16 +61.0 14 +61.0 11 +61.0 10 +61.1 10 +61.1 11 +61.1 11 +61.1 13 +61.1 14 +61.2 16 +61.2 21 +61.2 31 +61.2 47 +61.2 71 +61.3 96 +61.3 118 +61.3 130 +61.3 133 +61.3 125 +61.4 113 +61.4 102 +61.4 96 +61.4 90 +61.4 83 +61.5 76 +61.5 67 +61.5 58 +61.5 50 +61.5 45 +61.6 39 +61.6 34 +61.6 29 +61.6 25 +61.6 21 +61.7 19 +61.7 15 +61.7 12 +61.7 9 +61.7 6 +61.8 4 +61.8 4 +61.8 5 +61.8 5 +61.8 5 +61.9 4 +61.9 4 +61.9 3 +61.9 4 +61.9 5 +62.0 5 +62.0 5 +62.0 4 +62.0 4 +62.0 3 +62.1 3 +62.1 3 +62.1 3 +62.1 3 +62.1 4 +62.2 4 +62.2 4 +62.2 3 +62.2 2 +62.2 3 +62.3 4 +62.3 5 +62.3 8 +62.3 11 +62.3 15 +62.4 22 +62.4 30 +62.4 41 +62.4 55 +62.4 76 +62.5 98 +62.5 118 +62.5 131 +62.5 136 +62.5 127 +62.6 111 +62.6 95 +62.6 81 +62.6 67 +62.6 55 +62.7 46 +62.7 37 +62.7 27 +62.7 20 +62.7 16 +62.8 12 +62.8 8 +62.8 5 +62.8 4 +62.8 4 +62.9 4 +62.9 4 +62.9 5 +62.9 5 +62.9 6 +63.0 8 +63.0 11 +63.0 13 +63.0 16 +63.0 21 +63.1 34 +63.1 54 +63.1 77 +63.1 99 +63.1 116 +63.2 124 +63.2 122 +63.2 114 +63.2 106 +63.2 101 +63.3 94 +63.3 87 +63.3 79 +63.3 73 +63.3 67 +63.4 63 +63.4 58 +63.4 55 +63.4 51 +63.4 46 +63.5 42 +63.5 41 +63.5 40 +63.5 36 +63.5 30 +63.6 23 +63.6 18 +63.6 12 +63.6 10 +63.6 8 +63.7 7 +63.7 5 +63.7 4 +63.7 4 +63.7 3 +63.8 3 +63.8 4 +63.8 5 +63.8 6 +63.8 7 +63.9 7 +63.9 8 +63.9 10 +63.9 11 +63.9 16 +64.0 24 +64.0 35 +64.0 50 +64.0 73 +64.0 109 +64.1 158 +64.1 219 +64.1 282 +64.1 341 +64.1 381 +64.2 399 +64.2 393 +64.2 370 +64.2 338 +64.2 307 +64.3 275 +64.3 242 +64.3 202 +64.3 163 +64.3 122 +64.4 87 +64.4 60 +64.4 43 +64.4 33 +64.4 27 +64.5 22 +64.5 18 +64.5 16 +64.5 15 +64.5 16 +64.6 18 +64.6 22 +64.6 26 +64.6 28 +64.6 28 +64.7 27 +64.7 25 +64.7 24 +64.7 23 +64.7 22 +64.8 20 +64.8 17 +64.8 13 +64.8 10 +64.8 9 +64.9 9 +64.9 8 +64.9 8 +64.9 9 +64.9 10 +65.0 10 +65.0 12 +65.0 17 +65.0 25 +65.0 38 +65.1 57 +65.1 83 +65.1 112 +65.1 138 +65.1 156 +65.2 160 +65.2 155 +65.2 145 +65.2 134 +65.2 121 +65.3 109 +65.3 99 +65.3 83 +65.3 63 +65.3 46 +65.4 33 +65.4 23 +65.4 16 +65.4 13 +65.4 12 +65.5 10 +65.5 8 +65.5 6 +65.5 5 +65.5 3 +65.6 3 +65.6 3 +65.6 4 +65.6 4 +65.6 4 +65.7 3 +65.7 2 +65.7 2 +65.7 1 +65.7 2 +65.8 3 +65.8 3 +65.8 4 +65.8 6 +65.8 7 +65.9 9 +65.9 11 +65.9 15 +65.9 17 +65.9 22 +66.0 26 +66.0 30 +66.0 31 +66.0 31 +66.0 29 +66.1 27 +66.1 24 +66.1 25 +66.1 25 +66.1 26 +66.2 29 +66.2 34 +66.2 39 +66.2 43 +66.2 46 +66.3 48 +66.3 46 +66.3 42 +66.3 39 +66.3 34 +66.4 28 +66.4 23 +66.4 19 +66.4 14 +66.4 11 +66.5 8 +66.5 6 +66.5 5 +66.5 5 +66.5 6 +66.6 5 +66.6 5 +66.6 4 +66.6 4 +66.6 3 +66.7 3 +66.7 3 +66.7 3 +66.7 3 +66.7 3 +66.8 3 +66.8 3 +66.8 3 +66.8 3 +66.8 3 +66.9 2 +66.9 2 +66.9 3 +66.9 3 +66.9 2 +67.0 2 +67.0 2 +67.0 2 +67.0 3 +67.0 3 +67.1 3 +67.1 2 +67.1 2 +67.1 3 +67.1 4 +67.2 5 +67.2 7 +67.2 8 +67.2 11 +67.2 17 +67.3 27 +67.3 37 +67.3 47 +67.3 53 +67.3 55 +67.4 54 +67.4 53 +67.4 56 +67.4 59 +67.4 60 +67.5 58 +67.5 54 +67.5 45 +67.5 35 +67.5 26 +67.6 22 +67.6 17 +67.6 13 +67.6 9 +67.6 8 +67.7 6 +67.7 5 +67.7 4 +67.7 3 +67.7 3 +67.8 3 +67.8 3 +67.8 3 +67.8 3 +67.8 2 +67.9 2 +67.9 2 +67.9 2 +67.9 2 +67.9 2 +68.0 2 +68.0 2 +68.0 2 +68.0 2 +68.0 2 +68.1 2 +68.1 2 +68.1 2 +68.1 2 +68.1 2 +68.2 2 +68.2 2 +68.2 2 +68.2 3 +68.2 3 +68.3 3 +68.3 2 +68.3 2 +68.3 3 +68.3 3 +68.4 3 +68.4 3 +68.4 3 +68.4 2 +68.4 2 +68.5 2 +68.5 2 +68.5 2 +68.5 2 +68.5 2 +68.6 2 +68.6 2 +68.6 2 +68.6 1 +68.6 1 +68.7 1 +68.7 2 +68.7 2 +68.7 3 +68.7 3 +68.8 3 +68.8 3 +68.8 3 +68.8 2 +68.8 2 +68.9 2 +68.9 2 +68.9 2 +68.9 2 +68.9 2 +69.0 2 +69.0 2 +69.0 2 +69.0 2 +69.0 2 +69.1 2 +69.1 2 +69.1 2 +69.1 1 +69.1 1 +69.2 1 +69.2 2 +69.2 2 +69.2 2 +69.2 2 +69.3 2 +69.3 2 +69.3 2 +69.3 3 +69.3 3 +69.4 3 +69.4 3 +69.4 3 +69.4 2 +69.4 2 +69.5 3 +69.5 3 +69.5 2 +69.5 2 +69.5 2 +69.6 2 +69.6 3 +69.6 3 +69.6 3 +69.6 3 +69.7 2 +69.7 2 +69.7 2 +69.7 2 +69.7 2 +69.8 2 +69.8 2 +69.8 2 +69.8 3 +69.8 3 +69.9 3 +69.9 3 +69.9 2 +69.9 2 +69.9 2 +70.0 2 diff --git a/tasks/smooth_001/ground_truth/smooth_result.txt b/tasks/smooth_001/ground_truth/smooth_result.txt new file mode 100644 index 0000000..674ca73 --- /dev/null +++ b/tasks/smooth_001/ground_truth/smooth_result.txt @@ -0,0 +1,3252 @@ +Demo01: 37-1497 4-733 9-169 18-303 9-77 +5.0 43 +5.02 43 +5.04 43 +5.06 42 +5.08 40 +5.1 38 +5.12 38 +5.14 40 +5.16 42 +5.18 41 +5.2 40 +5.22 38 +5.24 38 +5.26 38 +5.28 40 +5.3 40 +5.32 38 +5.34 35 +5.36 33 +5.38 31 +5.4 33 +5.42 35 +5.44 38 +5.46 39 +5.48 39 +5.5 38 +5.52 38 +5.54 38 +5.56 39 +5.58 40 +5.6 42 +5.62 42 +5.64 41 +5.66 42 +5.68 44 +5.7 44 +5.72 43 +5.74 43 +5.76 44 +5.78 43 +5.8 43 +5.82 44 +5.84 44 +5.86 41 +5.88 38 +5.9 36 +5.92 35 +5.94 34 +5.96 36 +5.98 38 +6.0 39 +6.02 38 +6.04 37 +6.06 38 +6.08 38 +6.1 40 +6.12 41 +6.14 42 +6.16 41 +6.18 40 +6.2 39 +6.22 39 +6.24 39 +6.26 38 +6.28 37 +6.3 37 +6.32 39 +6.34 40 +6.36 40 +6.38 39 +6.4 39 +6.42 38 +6.44 37 +6.46 39 +6.48 42 +6.5 43 +6.52 41 +6.54 41 +6.56 41 +6.58 41 +6.6 40 +6.62 41 +6.64 41 +6.66 39 +6.68 38 +6.7 37 +6.72 36 +6.74 35 +6.76 35 +6.78 36 +6.8 38 +6.82 38 +6.84 37 +6.86 36 +6.88 37 +6.9 37 +6.92 38 +6.94 38 +6.96 39 +6.98 37 +7.0 36 +7.02 34 +7.04 34 +7.06 34 +7.08 35 +7.1 37 +7.12 41 +7.14 43 +7.16 43 +7.18 39 +7.2 36 +7.22 32 +7.24 32 +7.26 34 +7.28 37 +7.3 41 +7.32 43 +7.34 44 +7.36 43 +7.38 41 +7.4 41 +7.42 41 +7.44 42 +7.46 40 +7.48 40 +7.5 38 +7.52 38 +7.54 39 +7.56 40 +7.58 41 +7.6 42 +7.62 42 +7.64 41 +7.66 41 +7.68 42 +7.7 43 +7.72 43 +7.74 42 +7.76 41 +7.78 39 +7.8 39 +7.82 38 +7.84 38 +7.86 38 +7.88 40 +7.9 42 +7.92 43 +7.94 42 +7.96 41 +7.98 39 +8.0 38 +8.02 37 +8.04 37 +8.06 38 +8.08 37 +8.1 34 +8.12 31 +8.14 31 +8.16 34 +8.18 37 +8.2 39 +8.22 40 +8.24 39 +8.26 38 +8.28 38 +8.3 40 +8.32 41 +8.34 42 +8.36 41 +8.38 39 +8.4 36 +8.42 34 +8.44 32 +8.46 30 +8.48 30 +8.5 32 +8.52 35 +8.54 37 +8.56 40 +8.58 42 +8.6 41 +8.62 39 +8.64 38 +8.66 36 +8.68 35 +8.7 35 +8.72 37 +8.74 37 +8.76 36 +8.78 36 +8.8 36 +8.82 33 +8.84 31 +8.86 31 +8.88 33 +8.9 33 +8.92 33 +8.94 33 +8.96 35 +8.98 36 +9.0 36 +9.02 36 +9.04 37 +9.06 38 +9.08 39 +9.1 41 +9.12 41 +9.14 40 +9.16 38 +9.18 37 +9.2 35 +9.22 36 +9.24 37 +9.26 38 +9.28 36 +9.3 37 +9.32 39 +9.34 41 +9.36 40 +9.38 38 +9.4 36 +9.42 36 +9.44 36 +9.46 37 +9.48 38 +9.5 39 +9.52 38 +9.54 37 +9.56 35 +9.58 35 +9.6 35 +9.62 36 +9.64 38 +9.66 38 +9.68 36 +9.7 35 +9.72 35 +9.74 35 +9.76 36 +9.78 37 +9.8 39 +9.82 39 +9.84 38 +9.86 35 +9.88 32 +9.9 31 +9.92 31 +9.94 33 +9.96 35 +9.98 36 +10.0 37 +10.0 36 +10.0 34 +10.0 34 +10.0 34 +10.1 34 +10.1 33 +10.1 33 +10.1 32 +10.1 33 +10.2 34 +10.2 34 +10.2 33 +10.2 34 +10.2 35 +10.3 36 +10.3 38 +10.3 41 +10.3 43 +10.3 42 +10.4 40 +10.4 39 +10.4 39 +10.4 40 +10.4 44 +10.5 47 +10.5 47 +10.5 46 +10.5 43 +10.5 41 +10.6 44 +10.6 54 +10.6 69 +10.6 87 +10.6 105 +10.7 129 +10.7 152 +10.7 179 +10.7 208 +10.7 236 +10.8 252 +10.8 258 +10.8 249 +10.8 230 +10.8 201 +10.9 174 +10.9 146 +10.9 122 +10.9 96 +10.9 80 +11.0 69 +11.0 63 +11.0 58 +11.0 56 +11.0 53 +11.1 50 +11.1 46 +11.1 43 +11.1 40 +11.1 38 +11.2 34 +11.2 32 +11.2 31 +11.2 33 +11.2 35 +11.3 38 +11.3 41 +11.3 43 +11.3 46 +11.3 49 +11.4 52 +11.4 55 +11.4 60 +11.4 67 +11.4 74 +11.5 83 +11.5 96 +11.5 115 +11.5 141 +11.5 181 +11.6 230 +11.6 286 +11.6 335 +11.6 373 +11.6 388 +11.7 383 +11.7 351 +11.7 305 +11.7 251 +11.7 203 +11.8 161 +11.8 128 +11.8 104 +11.8 88 +11.8 73 +11.9 63 +11.9 57 +11.9 54 +11.9 50 +11.9 46 +12.0 45 +12.0 45 +12.0 45 +12.0 44 +12.0 40 +12.1 36 +12.1 33 +12.1 33 +12.1 34 +12.1 37 +12.2 40 +12.2 41 +12.2 38 +12.2 36 +12.2 34 +12.3 33 +12.3 32 +12.3 33 +12.3 34 +12.3 36 +12.4 36 +12.4 37 +12.4 37 +12.4 36 +12.4 35 +12.5 36 +12.5 36 +12.5 36 +12.5 35 +12.5 35 +12.6 32 +12.6 30 +12.6 30 +12.6 31 +12.6 31 +12.7 32 +12.7 32 +12.7 33 +12.7 32 +12.7 31 +12.8 31 +12.8 31 +12.8 31 +12.8 31 +12.8 33 +12.9 33 +12.9 33 +12.9 32 +12.9 32 +12.9 31 +13.0 32 +13.0 33 +13.0 35 +13.0 36 +13.0 36 +13.1 33 +13.1 31 +13.1 28 +13.1 28 +13.1 28 +13.2 31 +13.2 32 +13.2 34 +13.2 35 +13.2 35 +13.3 34 +13.3 32 +13.3 31 +13.3 31 +13.3 32 +13.4 35 +13.4 41 +13.4 46 +13.4 51 +13.4 57 +13.5 68 +13.5 83 +13.5 98 +13.5 112 +13.5 127 +13.6 142 +13.6 154 +13.6 157 +13.6 156 +13.6 146 +13.7 131 +13.7 111 +13.7 93 +13.7 78 +13.7 66 +13.8 53 +13.8 45 +13.8 40 +13.8 38 +13.8 36 +13.9 34 +13.9 31 +13.9 31 +13.9 31 +13.9 32 +14.0 33 +14.0 31 +14.0 31 +14.0 32 +14.0 35 +14.1 39 +14.1 45 +14.1 51 +14.1 57 +14.1 64 +14.2 73 +14.2 79 +14.2 83 +14.2 81 +14.2 75 +14.3 66 +14.3 58 +14.3 52 +14.3 48 +14.3 44 +14.4 41 +14.4 37 +14.4 32 +14.4 29 +14.4 29 +14.5 28 +14.5 27 +14.5 28 +14.5 27 +14.5 25 +14.6 25 +14.6 27 +14.6 28 +14.6 28 +14.6 28 +14.7 29 +14.7 29 +14.7 30 +14.7 30 +14.7 29 +14.8 28 +14.8 28 +14.8 28 +14.8 29 +14.8 28 +14.9 26 +14.9 22 +14.9 20 +14.9 22 +14.9 27 +15.0 31 +15.0 33 +15.0 32 +15.0 29 +15.0 26 +15.1 25 +15.1 25 +15.1 26 +15.1 27 +15.1 28 +15.2 28 +15.2 26 +15.2 24 +15.2 23 +15.2 23 +15.3 23 +15.3 25 +15.3 27 +15.3 29 +15.3 28 +15.4 27 +15.4 26 +15.4 26 +15.4 27 +15.4 28 +15.5 28 +15.5 29 +15.5 28 +15.5 27 +15.5 25 +15.6 25 +15.6 25 +15.6 25 +15.6 26 +15.6 29 +15.7 30 +15.7 29 +15.7 27 +15.7 25 +15.7 26 +15.8 27 +15.8 28 +15.8 28 +15.8 27 +15.8 25 +15.9 24 +15.9 23 +15.9 24 +15.9 24 +15.9 25 +16.0 25 +16.0 26 +16.0 26 +16.0 26 +16.0 27 +16.1 26 +16.1 25 +16.1 23 +16.1 24 +16.1 25 +16.2 26 +16.2 27 +16.2 29 +16.2 29 +16.2 28 +16.3 26 +16.3 27 +16.3 29 +16.3 29 +16.3 29 +16.4 30 +16.4 31 +16.4 30 +16.4 30 +16.4 31 +16.5 32 +16.5 33 +16.5 34 +16.5 35 +16.5 36 +16.6 39 +16.6 42 +16.6 49 +16.6 58 +16.6 72 +16.7 89 +16.7 109 +16.7 129 +16.7 147 +16.7 157 +16.8 160 +16.8 155 +16.8 146 +16.8 133 +16.8 124 +16.9 124 +16.9 136 +16.9 153 +16.9 171 +16.9 183 +17.0 186 +17.0 180 +17.0 167 +17.0 153 +17.0 137 +17.1 117 +17.1 98 +17.1 79 +17.1 64 +17.1 53 +17.2 50 +17.2 46 +17.2 42 +17.2 36 +17.2 32 +17.3 29 +17.3 27 +17.3 26 +17.3 24 +17.3 21 +17.4 20 +17.4 19 +17.4 19 +17.4 21 +17.4 24 +17.5 27 +17.5 31 +17.5 33 +17.5 33 +17.5 32 +17.6 29 +17.6 27 +17.6 27 +17.6 29 +17.6 33 +17.7 36 +17.7 36 +17.7 36 +17.7 37 +17.7 39 +17.8 44 +17.8 55 +17.8 66 +17.8 77 +17.8 89 +17.9 110 +17.9 138 +17.9 180 +17.9 236 +17.9 311 +18.0 406 +18.0 526 +18.0 649 +18.0 756 +18.0 828 +18.1 853 +18.1 816 +18.1 729 +18.1 614 +18.1 497 +18.2 382 +18.2 281 +18.2 207 +18.2 159 +18.2 127 +18.3 106 +18.3 94 +18.3 85 +18.3 73 +18.3 62 +18.4 55 +18.4 52 +18.4 49 +18.4 47 +18.4 45 +18.5 43 +18.5 41 +18.5 39 +18.5 37 +18.5 37 +18.6 35 +18.6 32 +18.6 28 +18.6 28 +18.6 27 +18.7 25 +18.7 23 +18.7 22 +18.7 21 +18.7 20 +18.8 20 +18.8 21 +18.8 23 +18.8 24 +18.8 24 +18.9 23 +18.9 21 +18.9 21 +18.9 21 +18.9 21 +19.0 21 +19.0 22 +19.0 22 +19.0 20 +19.0 19 +19.1 19 +19.1 20 +19.1 21 +19.1 22 +19.1 24 +19.2 24 +19.2 23 +19.2 23 +19.2 22 +19.2 22 +19.3 22 +19.3 22 +19.3 21 +19.3 20 +19.3 19 +19.4 19 +19.4 18 +19.4 18 +19.4 20 +19.4 22 +19.5 22 +19.5 21 +19.5 21 +19.5 21 +19.5 19 +19.6 18 +19.6 18 +19.6 20 +19.6 21 +19.6 23 +19.7 24 +19.7 23 +19.7 20 +19.7 18 +19.7 18 +19.8 19 +19.8 20 +19.8 21 +19.8 22 +19.8 22 +19.9 20 +19.9 20 +19.9 22 +19.9 23 +19.9 24 +20.0 26 +20.0 27 +20.0 26 +20.0 25 +20.0 27 +20.1 31 +20.1 40 +20.1 52 +20.1 67 +20.1 81 +20.2 89 +20.2 90 +20.2 83 +20.2 71 +20.2 60 +20.3 52 +20.3 47 +20.3 42 +20.3 38 +20.3 33 +20.4 27 +20.4 23 +20.4 24 +20.4 25 +20.4 24 +20.5 23 +20.5 22 +20.5 21 +20.5 19 +20.5 20 +20.6 22 +20.6 24 +20.6 26 +20.6 29 +20.6 33 +20.7 37 +20.7 43 +20.7 50 +20.7 58 +20.7 74 +20.8 99 +20.8 132 +20.8 171 +20.8 220 +20.8 272 +20.9 320 +20.9 355 +20.9 372 +20.9 366 +20.9 336 +21.0 288 +21.0 235 +21.0 184 +21.0 141 +21.0 108 +21.1 84 +21.1 65 +21.1 53 +21.1 47 +21.1 44 +21.2 41 +21.2 38 +21.2 37 +21.2 35 +21.2 34 +21.3 35 +21.3 39 +21.3 43 +21.3 49 +21.3 56 +21.4 61 +21.4 63 +21.4 58 +21.4 52 +21.4 46 +21.5 40 +21.5 37 +21.5 36 +21.5 39 +21.5 42 +21.6 45 +21.6 49 +21.6 61 +21.6 78 +21.6 98 +21.7 119 +21.7 146 +21.7 173 +21.7 192 +21.7 205 +21.8 213 +21.8 218 +21.8 216 +21.8 212 +21.8 206 +21.9 195 +21.9 174 +21.9 146 +21.9 115 +21.9 88 +22.0 68 +22.0 58 +22.0 51 +22.0 47 +22.0 44 +22.1 42 +22.1 43 +22.1 46 +22.1 48 +22.1 51 +22.2 53 +22.2 52 +22.2 51 +22.2 48 +22.2 45 +22.3 38 +22.3 32 +22.3 29 +22.3 27 +22.3 26 +22.4 24 +22.4 23 +22.4 21 +22.4 19 +22.4 17 +22.5 17 +22.5 17 +22.5 17 +22.5 17 +22.5 20 +22.6 21 +22.6 21 +22.6 22 +22.6 23 +22.6 22 +22.7 21 +22.7 21 +22.7 22 +22.7 24 +22.7 29 +22.8 34 +22.8 38 +22.8 40 +22.8 46 +22.8 56 +22.9 69 +22.9 81 +22.9 95 +22.9 104 +22.9 104 +23.0 97 +23.0 88 +23.0 76 +23.0 61 +23.0 47 +23.1 39 +23.1 34 +23.1 31 +23.1 30 +23.1 30 +23.2 30 +23.2 28 +23.2 27 +23.2 26 +23.2 28 +23.3 30 +23.3 32 +23.3 34 +23.3 37 +23.3 41 +23.4 43 +23.4 44 +23.4 44 +23.4 41 +23.4 35 +23.5 28 +23.5 23 +23.5 20 +23.5 19 +23.5 21 +23.6 22 +23.6 21 +23.6 19 +23.6 17 +23.6 16 +23.7 14 +23.7 14 +23.7 14 +23.7 16 +23.7 17 +23.8 17 +23.8 16 +23.8 16 +23.8 15 +23.8 15 +23.9 14 +23.9 15 +23.9 16 +23.9 15 +23.9 15 +24.0 15 +24.0 16 +24.0 18 +24.0 17 +24.0 16 +24.1 15 +24.1 15 +24.1 15 +24.1 16 +24.1 17 +24.2 17 +24.2 17 +24.2 16 +24.2 15 +24.2 15 +24.3 15 +24.3 15 +24.3 14 +24.3 14 +24.3 14 +24.4 14 +24.4 16 +24.4 18 +24.4 18 +24.4 18 +24.5 18 +24.5 17 +24.5 15 +24.5 15 +24.5 15 +24.6 17 +24.6 18 +24.6 18 +24.6 18 +24.6 17 +24.7 16 +24.7 14 +24.7 13 +24.7 12 +24.7 11 +24.8 11 +24.8 12 +24.8 13 +24.8 15 +24.8 16 +24.9 16 +24.9 14 +24.9 12 +24.9 12 +24.9 13 +25.0 14 +25.0 15 +25.0 16 +25.0 15 +25.0 13 +25.1 13 +25.1 14 +25.1 15 +25.1 16 +25.1 18 +25.2 18 +25.2 16 +25.2 15 +25.2 14 +25.2 13 +25.3 13 +25.3 14 +25.3 16 +25.3 18 +25.3 19 +25.4 20 +25.4 22 +25.4 25 +25.4 26 +25.4 27 +25.5 27 +25.5 28 +25.5 30 +25.5 32 +25.5 37 +25.6 47 +25.6 61 +25.6 77 +25.6 96 +25.6 122 +25.7 158 +25.7 200 +25.7 261 +25.7 345 +25.7 453 +25.8 575 +25.8 705 +25.8 826 +25.8 915 +25.8 951 +25.9 932 +25.9 861 +25.9 747 +25.9 610 +25.9 474 +26.0 358 +26.0 264 +26.0 197 +26.0 152 +26.0 125 +26.1 103 +26.1 86 +26.1 74 +26.1 68 +26.1 65 +26.2 66 +26.2 65 +26.2 62 +26.2 57 +26.2 51 +26.3 44 +26.3 38 +26.3 36 +26.3 38 +26.3 42 +26.4 46 +26.4 54 +26.4 66 +26.4 79 +26.4 86 +26.5 90 +26.5 90 +26.5 87 +26.5 80 +26.5 72 +26.6 65 +26.6 57 +26.6 47 +26.6 38 +26.6 30 +26.7 25 +26.7 20 +26.7 17 +26.7 14 +26.7 13 +26.8 12 +26.8 12 +26.8 14 +26.8 15 +26.8 14 +26.9 13 +26.9 12 +26.9 12 +26.9 11 +26.9 12 +27.0 13 +27.0 13 +27.0 13 +27.0 11 +27.0 10 +27.1 8 +27.1 9 +27.1 10 +27.1 12 +27.1 12 +27.2 14 +27.2 16 +27.2 16 +27.2 17 +27.2 20 +27.3 25 +27.3 31 +27.3 38 +27.3 49 +27.3 62 +27.4 73 +27.4 82 +27.4 88 +27.4 91 +27.4 86 +27.5 76 +27.5 66 +27.5 58 +27.5 57 +27.5 62 +27.6 76 +27.6 97 +27.6 124 +27.6 152 +27.6 189 +27.7 244 +27.7 313 +27.7 380 +27.7 433 +27.7 459 +27.8 448 +27.8 398 +27.8 331 +27.8 264 +27.8 204 +27.9 154 +27.9 116 +27.9 90 +27.9 70 +27.9 57 +28.0 51 +28.0 50 +28.0 47 +28.0 46 +28.0 47 +28.1 54 +28.1 67 +28.1 87 +28.1 109 +28.1 132 +28.2 148 +28.2 157 +28.2 157 +28.2 148 +28.2 130 +28.3 109 +28.3 91 +28.3 76 +28.3 64 +28.3 53 +28.4 47 +28.4 43 +28.4 38 +28.4 36 +28.4 40 +28.5 51 +28.5 64 +28.5 81 +28.5 106 +28.5 144 +28.6 185 +28.6 224 +28.6 257 +28.6 278 +28.6 278 +28.7 263 +28.7 240 +28.7 215 +28.7 187 +28.7 158 +28.8 134 +28.8 116 +28.8 104 +28.8 103 +28.8 113 +28.9 134 +28.9 155 +28.9 171 +28.9 183 +28.9 190 +29.0 188 +29.0 179 +29.0 167 +29.0 153 +29.0 136 +29.1 119 +29.1 110 +29.1 114 +29.1 131 +29.1 157 +29.2 190 +29.2 227 +29.2 259 +29.2 274 +29.2 274 +29.3 259 +29.3 235 +29.3 201 +29.3 164 +29.3 130 +29.4 100 +29.4 74 +29.4 56 +29.4 47 +29.4 45 +29.5 46 +29.5 47 +29.5 52 +29.5 65 +29.5 80 +29.6 97 +29.6 116 +29.6 132 +29.6 140 +29.6 138 +29.7 130 +29.7 116 +29.7 96 +29.7 74 +29.7 56 +29.8 43 +29.8 36 +29.8 30 +29.8 25 +29.8 21 +29.9 20 +29.9 17 +29.9 14 +29.9 12 +29.9 11 +30.0 11 +30.0 12 +30.0 13 +30.0 15 +30.0 16 +30.1 17 +30.1 17 +30.1 15 +30.1 14 +30.1 14 +30.2 14 +30.2 15 +30.2 16 +30.2 18 +30.2 21 +30.3 25 +30.3 30 +30.3 36 +30.3 40 +30.3 50 +30.4 64 +30.4 89 +30.4 116 +30.4 148 +30.4 174 +30.5 191 +30.5 194 +30.5 189 +30.5 174 +30.5 152 +30.6 126 +30.6 103 +30.6 80 +30.6 64 +30.6 52 +30.7 46 +30.7 41 +30.7 41 +30.7 43 +30.7 47 +30.8 53 +30.8 64 +30.8 80 +30.8 101 +30.8 131 +30.9 177 +30.9 247 +30.9 341 +30.9 452 +30.9 572 +31.0 687 +31.0 775 +31.0 813 +31.0 792 +31.0 722 +31.1 616 +31.1 490 +31.1 370 +31.1 274 +31.1 203 +31.2 153 +31.2 121 +31.2 103 +31.2 89 +31.2 81 +31.3 76 +31.3 74 +31.3 68 +31.3 62 +31.3 53 +31.4 45 +31.4 35 +31.4 29 +31.4 25 +31.4 23 +31.5 22 +31.5 22 +31.5 22 +31.5 22 +31.5 25 +31.6 29 +31.6 35 +31.6 40 +31.6 48 +31.6 59 +31.7 73 +31.7 90 +31.7 113 +31.7 146 +31.7 194 +31.8 261 +31.8 363 +31.8 509 +31.8 698 +31.8 921 +31.9 1153 +31.9 1347 +31.9 1456 +31.9 1462 +31.9 1372 +32.0 1206 +32.0 1000 +32.0 799 +32.0 621 +32.0 476 +32.1 364 +32.1 291 +32.1 245 +32.1 222 +32.1 211 +32.2 207 +32.2 196 +32.2 184 +32.2 165 +32.2 147 +32.3 128 +32.3 119 +32.3 112 +32.3 115 +32.3 124 +32.4 141 +32.4 157 +32.4 173 +32.4 183 +32.4 183 +32.5 170 +32.5 148 +32.5 123 +32.5 99 +32.5 79 +32.6 65 +32.6 57 +32.6 54 +32.6 54 +32.6 54 +32.7 58 +32.7 68 +32.7 80 +32.7 97 +32.7 126 +32.8 168 +32.8 228 +32.8 303 +32.8 386 +32.8 457 +32.9 505 +32.9 520 +32.9 504 +32.9 465 +32.9 416 +33.0 365 +33.0 312 +33.0 257 +33.0 206 +33.0 160 +33.1 122 +33.1 95 +33.1 77 +33.1 63 +33.1 54 +33.2 46 +33.2 39 +33.2 33 +33.2 28 +33.2 25 +33.3 23 +33.3 23 +33.3 24 +33.3 27 +33.3 32 +33.4 40 +33.4 49 +33.4 61 +33.4 73 +33.4 83 +33.5 89 +33.5 91 +33.5 87 +33.5 80 +33.5 71 +33.6 61 +33.6 50 +33.6 44 +33.6 42 +33.6 42 +33.7 46 +33.7 54 +33.7 63 +33.7 77 +33.7 95 +33.8 120 +33.8 150 +33.8 186 +33.8 227 +33.8 277 +33.9 337 +33.9 404 +33.9 476 +33.9 547 +33.9 624 +34.0 712 +34.0 817 +34.0 946 +34.0 1096 +34.0 1229 +34.1 1310 +34.1 1310 +34.1 1237 +34.1 1103 +34.1 944 +34.2 781 +34.2 646 +34.2 544 +34.2 480 +34.2 446 +34.3 446 +34.3 480 +34.3 537 +34.3 592 +34.3 632 +34.4 641 +34.4 616 +34.4 554 +34.4 470 +34.4 380 +34.5 301 +34.5 234 +34.5 179 +34.5 131 +34.5 95 +34.6 68 +34.6 48 +34.6 36 +34.6 31 +34.6 27 +34.7 23 +34.7 19 +34.7 17 +34.7 15 +34.7 14 +34.8 16 +34.8 18 +34.8 19 +34.8 21 +34.8 25 +34.9 33 +34.9 42 +34.9 52 +34.9 62 +34.9 72 +35.0 81 +35.0 88 +35.0 92 +35.0 96 +35.0 100 +35.1 102 +35.1 99 +35.1 98 +35.1 95 +35.1 88 +35.2 76 +35.2 65 +35.2 55 +35.2 44 +35.2 32 +35.3 26 +35.3 23 +35.3 21 +35.3 21 +35.3 25 +35.4 30 +35.4 37 +35.4 46 +35.4 59 +35.4 78 +35.5 102 +35.5 129 +35.5 157 +35.5 186 +35.5 212 +35.6 229 +35.6 234 +35.6 225 +35.6 204 +35.6 175 +35.7 142 +35.7 108 +35.7 81 +35.7 61 +35.7 49 +35.8 42 +35.8 42 +35.8 45 +35.8 52 +35.8 58 +35.9 63 +35.9 62 +35.9 58 +35.9 50 +35.9 41 +36.0 32 +36.0 25 +36.0 21 +36.0 19 +36.0 16 +36.1 14 +36.1 11 +36.1 8 +36.1 6 +36.1 6 +36.2 8 +36.2 9 +36.2 11 +36.2 11 +36.2 11 +36.3 10 +36.3 9 +36.3 9 +36.3 9 +36.3 8 +36.4 8 +36.4 7 +36.4 7 +36.4 8 +36.4 10 +36.5 12 +36.5 13 +36.5 13 +36.5 13 +36.5 16 +36.6 20 +36.6 25 +36.6 32 +36.6 38 +36.6 42 +36.7 45 +36.7 45 +36.7 45 +36.7 44 +36.7 45 +36.8 47 +36.8 52 +36.8 57 +36.8 61 +36.8 63 +36.9 64 +36.9 62 +36.9 61 +36.9 59 +36.9 60 +37.0 59 +37.0 63 +37.0 68 +37.0 75 +37.0 80 +37.1 85 +37.1 86 +37.1 85 +37.1 85 +37.1 93 +37.2 107 +37.2 127 +37.2 157 +37.2 202 +37.2 258 +37.3 324 +37.3 386 +37.3 433 +37.3 452 +37.3 442 +37.4 401 +37.4 341 +37.4 272 +37.4 210 +37.4 156 +37.5 115 +37.5 86 +37.5 68 +37.5 52 +37.5 39 +37.6 31 +37.6 27 +37.6 25 +37.6 24 +37.6 23 +37.7 20 +37.7 20 +37.7 22 +37.7 28 +37.7 34 +37.8 41 +37.8 45 +37.8 48 +37.8 51 +37.8 51 +37.9 48 +37.9 43 +37.9 37 +37.9 30 +37.9 24 +38.0 20 +38.0 18 +38.0 16 +38.0 14 +38.0 13 +38.1 12 +38.1 11 +38.1 12 +38.1 12 +38.1 12 +38.2 12 +38.2 12 +38.2 10 +38.2 8 +38.2 8 +38.3 8 +38.3 7 +38.3 8 +38.3 9 +38.3 9 +38.4 9 +38.4 9 +38.4 9 +38.4 9 +38.4 9 +38.5 9 +38.5 9 +38.5 9 +38.5 8 +38.5 7 +38.6 6 +38.6 5 +38.6 5 +38.6 5 +38.6 7 +38.7 8 +38.7 8 +38.7 8 +38.7 7 +38.7 6 +38.8 6 +38.8 6 +38.8 7 +38.8 8 +38.8 10 +38.9 11 +38.9 12 +38.9 11 +38.9 11 +38.9 11 +39.0 15 +39.0 24 +39.0 36 +39.0 47 +39.0 58 +39.1 70 +39.1 79 +39.1 83 +39.1 86 +39.1 85 +39.2 79 +39.2 67 +39.2 53 +39.2 40 +39.2 29 +39.3 21 +39.3 16 +39.3 15 +39.3 14 +39.3 12 +39.4 10 +39.4 10 +39.4 9 +39.4 9 +39.4 8 +39.5 9 +39.5 10 +39.5 11 +39.5 12 +39.5 14 +39.6 16 +39.6 17 +39.6 19 +39.6 25 +39.6 35 +39.7 45 +39.7 55 +39.7 66 +39.7 80 +39.7 90 +39.8 98 +39.8 103 +39.8 104 +39.8 100 +39.8 95 +39.9 95 +39.9 101 +39.9 113 +39.9 132 +39.9 157 +40.0 187 +40.0 217 +40.0 240 +40.0 248 +40.0 240 +40.1 218 +40.1 188 +40.1 155 +40.1 125 +40.1 99 +40.2 80 +40.2 63 +40.2 51 +40.2 41 +40.2 34 +40.3 28 +40.3 23 +40.3 19 +40.3 18 +40.3 16 +40.4 12 +40.4 9 +40.4 8 +40.4 7 +40.4 8 +40.5 8 +40.5 8 +40.5 8 +40.5 7 +40.5 6 +40.6 5 +40.6 5 +40.6 6 +40.6 6 +40.6 7 +40.7 8 +40.7 8 +40.7 8 +40.7 8 +40.7 8 +40.8 8 +40.8 9 +40.8 10 +40.8 10 +40.8 10 +40.9 11 +40.9 14 +40.9 17 +40.9 24 +40.9 35 +41.0 47 +41.0 59 +41.0 75 +41.0 90 +41.0 102 +41.1 106 +41.1 107 +41.1 98 +41.1 85 +41.1 69 +41.2 57 +41.2 46 +41.2 35 +41.2 27 +41.2 23 +41.3 20 +41.3 18 +41.3 18 +41.3 18 +41.3 18 +41.4 19 +41.4 23 +41.4 29 +41.4 37 +41.4 50 +41.5 64 +41.5 79 +41.5 90 +41.5 97 +41.5 103 +41.6 111 +41.6 120 +41.6 131 +41.6 143 +41.6 155 +41.7 167 +41.7 180 +41.7 195 +41.7 205 +41.7 204 +41.8 192 +41.8 175 +41.8 154 +41.8 133 +41.8 113 +41.9 96 +41.9 81 +41.9 68 +41.9 60 +41.9 59 +42.0 64 +42.0 69 +42.0 73 +42.0 73 +42.0 69 +42.1 61 +42.1 51 +42.1 41 +42.1 32 +42.1 26 +42.2 20 +42.2 16 +42.2 12 +42.2 10 +42.2 9 +42.3 8 +42.3 8 +42.3 8 +42.3 8 +42.3 8 +42.4 9 +42.4 7 +42.4 6 +42.4 5 +42.4 6 +42.5 6 +42.5 8 +42.5 10 +42.5 13 +42.5 14 +42.6 14 +42.6 13 +42.6 12 +42.6 12 +42.6 13 +42.7 13 +42.7 13 +42.7 12 +42.7 9 +42.7 7 +42.8 8 +42.8 9 +42.8 11 +42.8 15 +42.8 21 +42.9 26 +42.9 30 +42.9 36 +42.9 43 +42.9 47 +43.0 49 +43.0 48 +43.0 46 +43.0 43 +43.0 39 +43.1 37 +43.1 34 +43.1 29 +43.1 23 +43.1 18 +43.2 14 +43.2 12 +43.2 13 +43.2 15 +43.2 16 +43.3 19 +43.3 25 +43.3 31 +43.3 39 +43.3 46 +43.4 52 +43.4 53 +43.4 51 +43.4 50 +43.4 53 +43.5 56 +43.5 61 +43.5 67 +43.5 72 +43.5 73 +43.6 71 +43.6 68 +43.6 65 +43.6 63 +43.6 60 +43.7 60 +43.7 59 +43.7 59 +43.7 59 +43.7 65 +43.8 78 +43.8 101 +43.8 126 +43.8 150 +43.8 169 +43.9 183 +43.9 188 +43.9 185 +43.9 175 +43.9 160 +44.0 138 +44.0 110 +44.0 83 +44.0 62 +44.0 46 +44.1 34 +44.1 27 +44.1 24 +44.1 22 +44.1 17 +44.2 13 +44.2 10 +44.2 9 +44.2 10 +44.2 11 +44.3 10 +44.3 10 +44.3 11 +44.3 12 +44.3 16 +44.4 23 +44.4 30 +44.4 38 +44.4 46 +44.4 53 +44.5 59 +44.5 65 +44.5 70 +44.5 74 +44.5 73 +44.6 68 +44.6 63 +44.6 57 +44.6 51 +44.6 48 +44.7 50 +44.7 54 +44.7 62 +44.7 68 +44.7 73 +44.8 74 +44.8 74 +44.8 71 +44.8 65 +44.8 58 +44.9 55 +44.9 51 +44.9 45 +44.9 39 +44.9 35 +45.0 29 +45.0 22 +45.0 17 +45.0 16 +45.0 17 +45.1 18 +45.1 19 +45.1 21 +45.1 23 +45.1 28 +45.2 38 +45.2 51 +45.2 64 +45.2 77 +45.2 89 +45.3 98 +45.3 103 +45.3 104 +45.3 99 +45.3 89 +45.4 80 +45.4 74 +45.4 76 +45.4 80 +45.4 93 +45.5 108 +45.5 126 +45.5 137 +45.5 145 +45.5 143 +45.6 133 +45.6 114 +45.6 95 +45.6 76 +45.6 62 +45.7 48 +45.7 38 +45.7 28 +45.7 23 +45.7 19 +45.8 17 +45.8 19 +45.8 22 +45.8 27 +45.8 30 +45.9 33 +45.9 33 +45.9 31 +45.9 28 +45.9 26 +46.0 26 +46.0 25 +46.0 24 +46.0 23 +46.0 21 +46.1 17 +46.1 15 +46.1 13 +46.1 13 +46.1 10 +46.2 9 +46.2 7 +46.2 7 +46.2 7 +46.2 7 +46.3 7 +46.3 7 +46.3 7 +46.3 7 +46.3 7 +46.4 9 +46.4 9 +46.4 11 +46.4 14 +46.4 18 +46.5 22 +46.5 28 +46.5 35 +46.5 46 +46.5 58 +46.6 71 +46.6 88 +46.6 114 +46.6 151 +46.6 198 +46.7 262 +46.7 345 +46.7 438 +46.7 527 +46.7 598 +46.8 637 +46.8 638 +46.8 606 +46.8 551 +46.8 485 +46.9 425 +46.9 376 +46.9 341 +46.9 313 +46.9 298 +47.0 297 +47.0 305 +47.0 320 +47.0 351 +47.0 396 +47.1 444 +47.1 474 +47.1 483 +47.1 465 +47.1 425 +47.2 366 +47.2 302 +47.2 242 +47.2 189 +47.2 139 +47.3 99 +47.3 69 +47.3 52 +47.3 40 +47.3 32 +47.4 25 +47.4 21 +47.4 17 +47.4 14 +47.4 12 +47.5 10 +47.5 9 +47.5 8 +47.5 7 +47.5 7 +47.6 6 +47.6 5 +47.6 5 +47.6 7 +47.6 9 +47.7 9 +47.7 10 +47.7 11 +47.7 13 +47.7 16 +47.8 21 +47.8 26 +47.8 37 +47.8 51 +47.8 65 +47.9 80 +47.9 99 +47.9 118 +47.9 134 +47.9 148 +48.0 161 +48.0 170 +48.0 174 +48.0 177 +48.0 183 +48.1 185 +48.1 183 +48.1 175 +48.1 162 +48.1 146 +48.2 129 +48.2 112 +48.2 97 +48.2 81 +48.2 69 +48.3 66 +48.3 73 +48.3 90 +48.3 110 +48.3 129 +48.4 142 +48.4 147 +48.4 147 +48.4 140 +48.4 128 +48.5 113 +48.5 95 +48.5 74 +48.5 54 +48.5 40 +48.6 31 +48.6 22 +48.6 14 +48.6 12 +48.6 12 +48.7 12 +48.7 11 +48.7 10 +48.7 9 +48.7 6 +48.8 4 +48.8 4 +48.8 6 +48.8 8 +48.8 12 +48.9 16 +48.9 20 +48.9 24 +48.9 28 +48.9 30 +49.0 33 +49.0 34 +49.0 32 +49.0 29 +49.0 26 +49.1 23 +49.1 20 +49.1 17 +49.1 16 +49.1 14 +49.2 14 +49.2 14 +49.2 14 +49.2 17 +49.2 22 +49.3 28 +49.3 38 +49.3 54 +49.3 72 +49.3 98 +49.4 140 +49.4 204 +49.4 279 +49.4 355 +49.4 421 +49.5 462 +49.5 469 +49.5 447 +49.5 406 +49.5 355 +49.6 301 +49.6 247 +49.6 199 +49.6 156 +49.6 125 +49.7 104 +49.7 93 +49.7 92 +49.7 98 +49.7 102 +49.8 103 +49.8 100 +49.8 94 +49.8 84 +49.8 71 +49.9 59 +49.9 48 +49.9 38 +49.9 31 +49.9 28 +50.0 29 +50.0 30 +50.0 35 +50.0 42 +50.0 53 +50.1 62 +50.1 70 +50.1 74 +50.1 75 +50.1 72 +50.2 70 +50.2 71 +50.2 77 +50.2 86 +50.2 102 +50.3 126 +50.3 155 +50.3 182 +50.3 199 +50.3 207 +50.4 203 +50.4 189 +50.4 170 +50.4 148 +50.4 127 +50.5 105 +50.5 84 +50.5 66 +50.5 56 +50.5 52 +50.6 55 +50.6 66 +50.6 82 +50.6 108 +50.6 143 +50.7 186 +50.7 235 +50.7 293 +50.7 350 +50.7 399 +50.8 424 +50.8 428 +50.8 405 +50.8 361 +50.8 302 +50.9 245 +50.9 194 +50.9 148 +50.9 108 +50.9 80 +51.0 60 +51.0 45 +51.0 35 +51.0 30 +51.0 29 +51.1 30 +51.1 35 +51.1 43 +51.1 56 +51.1 73 +51.2 96 +51.2 125 +51.2 161 +51.2 196 +51.2 219 +51.3 226 +51.3 220 +51.3 204 +51.3 186 +51.3 168 +51.4 153 +51.4 137 +51.4 120 +51.4 102 +51.4 87 +51.5 78 +51.5 70 +51.5 62 +51.5 53 +51.5 45 +51.6 37 +51.6 30 +51.6 24 +51.6 20 +51.6 18 +51.7 17 +51.7 18 +51.7 21 +51.7 26 +51.7 33 +51.8 45 +51.8 67 +51.8 97 +51.8 129 +51.8 156 +51.9 174 +51.9 183 +51.9 181 +51.9 171 +51.9 155 +52.0 136 +52.0 114 +52.0 92 +52.0 71 +52.0 54 +52.1 42 +52.1 31 +52.1 22 +52.1 15 +52.1 13 +52.2 12 +52.2 13 +52.2 14 +52.2 15 +52.2 14 +52.3 14 +52.3 11 +52.3 9 +52.3 8 +52.3 8 +52.4 7 +52.4 7 +52.4 9 +52.4 10 +52.4 11 +52.5 12 +52.5 13 +52.5 16 +52.5 19 +52.5 24 +52.6 28 +52.6 31 +52.6 32 +52.6 32 +52.6 29 +52.7 27 +52.7 27 +52.7 27 +52.7 26 +52.7 27 +52.8 30 +52.8 36 +52.8 48 +52.8 70 +52.8 101 +52.9 129 +52.9 155 +52.9 172 +52.9 181 +52.9 178 +53.0 172 +53.0 164 +53.0 154 +53.0 141 +53.0 131 +53.1 124 +53.1 129 +53.1 150 +53.1 185 +53.1 220 +53.2 250 +53.2 270 +53.2 274 +53.2 262 +53.2 239 +53.3 212 +53.3 178 +53.3 139 +53.3 104 +53.3 79 +53.4 63 +53.4 55 +53.4 53 +53.4 55 +53.4 57 +53.5 58 +53.5 59 +53.5 59 +53.5 58 +53.5 57 +53.6 53 +53.6 47 +53.6 40 +53.6 34 +53.6 29 +53.7 28 +53.7 33 +53.7 43 +53.7 58 +53.7 81 +53.8 108 +53.8 134 +53.8 154 +53.8 169 +53.8 174 +53.9 170 +53.9 158 +53.9 143 +53.9 121 +53.9 98 +54.0 74 +54.0 54 +54.0 38 +54.0 30 +54.0 26 +54.1 23 +54.1 20 +54.1 18 +54.1 20 +54.1 25 +54.2 35 +54.2 52 +54.2 77 +54.2 107 +54.2 138 +54.3 170 +54.3 204 +54.3 230 +54.3 244 +54.3 246 +54.4 239 +54.4 220 +54.4 193 +54.4 166 +54.4 140 +54.5 113 +54.5 88 +54.5 66 +54.5 49 +54.5 35 +54.6 26 +54.6 20 +54.6 15 +54.6 11 +54.6 8 +54.7 6 +54.7 5 +54.7 5 +54.7 4 +54.7 4 +54.8 5 +54.8 6 +54.8 6 +54.8 7 +54.8 8 +54.9 8 +54.9 8 +54.9 7 +54.9 7 +54.9 8 +55.0 9 +55.0 13 +55.0 17 +55.0 22 +55.0 26 +55.1 29 +55.1 30 +55.1 29 +55.1 29 +55.1 28 +55.2 25 +55.2 23 +55.2 21 +55.2 19 +55.2 15 +55.3 12 +55.3 9 +55.3 8 +55.3 7 +55.3 6 +55.4 6 +55.4 6 +55.4 5 +55.4 4 +55.4 5 +55.5 5 +55.5 5 +55.5 5 +55.5 4 +55.5 3 +55.6 2 +55.6 2 +55.6 3 +55.6 4 +55.6 4 +55.7 5 +55.7 7 +55.7 7 +55.7 7 +55.7 8 +55.8 9 +55.8 10 +55.8 13 +55.8 18 +55.8 23 +55.9 28 +55.9 37 +55.9 57 +55.9 84 +55.9 113 +56.0 142 +56.0 167 +56.0 180 +56.0 180 +56.0 172 +56.1 161 +56.1 149 +56.1 135 +56.1 121 +56.1 109 +56.2 94 +56.2 81 +56.2 68 +56.2 54 +56.2 42 +56.3 33 +56.3 27 +56.3 23 +56.3 20 +56.3 17 +56.4 14 +56.4 11 +56.4 9 +56.4 10 +56.4 11 +56.5 15 +56.5 20 +56.5 28 +56.5 37 +56.5 46 +56.6 51 +56.6 52 +56.6 47 +56.6 40 +56.6 33 +56.7 27 +56.7 22 +56.7 18 +56.7 14 +56.7 10 +56.8 7 +56.8 6 +56.8 6 +56.8 6 +56.8 6 +56.9 6 +56.9 6 +56.9 7 +56.9 7 +56.9 8 +57.0 10 +57.0 17 +57.0 27 +57.0 39 +57.0 57 +57.1 80 +57.1 106 +57.1 131 +57.1 152 +57.1 164 +57.2 164 +57.2 151 +57.2 135 +57.2 117 +57.2 100 +57.3 85 +57.3 73 +57.3 62 +57.3 54 +57.3 50 +57.4 51 +57.4 54 +57.4 56 +57.4 57 +57.4 57 +57.5 56 +57.5 55 +57.5 55 +57.5 53 +57.5 49 +57.6 44 +57.6 38 +57.6 30 +57.6 23 +57.6 18 +57.7 15 +57.7 12 +57.7 10 +57.7 9 +57.7 9 +57.8 8 +57.8 6 +57.8 5 +57.8 5 +57.8 4 +57.9 4 +57.9 5 +57.9 5 +57.9 4 +57.9 4 +58.0 4 +58.0 5 +58.0 5 +58.0 4 +58.0 4 +58.1 4 +58.1 4 +58.1 4 +58.1 4 +58.1 4 +58.2 4 +58.2 3 +58.2 3 +58.2 2 +58.2 2 +58.3 3 +58.3 3 +58.3 3 +58.3 3 +58.3 3 +58.4 3 +58.4 3 +58.4 3 +58.4 3 +58.4 2 +58.5 3 +58.5 2 +58.5 3 +58.5 3 +58.5 4 +58.6 4 +58.6 3 +58.6 3 +58.6 3 +58.6 3 +58.7 3 +58.7 3 +58.7 3 +58.7 3 +58.7 2 +58.8 2 +58.8 2 +58.8 3 +58.8 4 +58.8 4 +58.9 5 +58.9 5 +58.9 5 +58.9 5 +58.9 5 +59.0 5 +59.0 6 +59.0 6 +59.0 6 +59.0 5 +59.1 5 +59.1 4 +59.1 4 +59.1 6 +59.1 9 +59.2 13 +59.2 18 +59.2 24 +59.2 29 +59.2 33 +59.3 36 +59.3 37 +59.3 36 +59.3 35 +59.3 35 +59.4 35 +59.4 39 +59.4 48 +59.4 63 +59.4 77 +59.5 89 +59.5 96 +59.5 97 +59.5 92 +59.5 85 +59.6 76 +59.6 66 +59.6 54 +59.6 42 +59.6 30 +59.7 21 +59.7 16 +59.7 13 +59.7 12 +59.7 11 +59.8 10 +59.8 10 +59.8 12 +59.8 15 +59.8 18 +59.9 25 +59.9 36 +59.9 52 +59.9 71 +59.9 92 +60.0 110 +60.0 121 +60.0 121 +60.0 115 +60.0 105 +60.1 95 +60.1 86 +60.1 76 +60.1 66 +60.1 55 +60.2 43 +60.2 34 +60.2 27 +60.2 23 +60.2 21 +60.3 20 +60.3 21 +60.3 23 +60.3 27 +60.3 30 +60.4 32 +60.4 30 +60.4 29 +60.4 26 +60.4 23 +60.5 18 +60.5 15 +60.5 12 +60.5 9 +60.5 6 +60.6 5 +60.6 5 +60.6 5 +60.6 5 +60.6 6 +60.7 7 +60.7 7 +60.7 7 +60.7 7 +60.7 9 +60.8 13 +60.8 16 +60.8 19 +60.8 23 +60.8 26 +60.9 27 +60.9 28 +60.9 28 +60.9 26 +60.9 22 +61.0 18 +61.0 16 +61.0 14 +61.0 11 +61.0 10 +61.1 10 +61.1 11 +61.1 11 +61.1 13 +61.1 14 +61.2 16 +61.2 21 +61.2 31 +61.2 47 +61.2 71 +61.3 96 +61.3 118 +61.3 130 +61.3 133 +61.3 125 +61.4 113 +61.4 102 +61.4 96 +61.4 90 +61.4 83 +61.5 76 +61.5 67 +61.5 58 +61.5 50 +61.5 45 +61.6 39 +61.6 34 +61.6 29 +61.6 25 +61.6 21 +61.7 19 +61.7 15 +61.7 12 +61.7 9 +61.7 6 +61.8 4 +61.8 4 +61.8 5 +61.8 5 +61.8 5 +61.9 4 +61.9 4 +61.9 3 +61.9 4 +61.9 5 +62.0 5 +62.0 5 +62.0 4 +62.0 4 +62.0 3 +62.1 3 +62.1 3 +62.1 3 +62.1 3 +62.1 4 +62.2 4 +62.2 4 +62.2 3 +62.2 2 +62.2 3 +62.3 4 +62.3 5 +62.3 8 +62.3 11 +62.3 15 +62.4 22 +62.4 30 +62.4 41 +62.4 55 +62.4 76 +62.5 98 +62.5 118 +62.5 131 +62.5 136 +62.5 127 +62.6 111 +62.6 95 +62.6 81 +62.6 67 +62.6 55 +62.7 46 +62.7 37 +62.7 27 +62.7 20 +62.7 16 +62.8 12 +62.8 8 +62.8 5 +62.8 4 +62.8 4 +62.9 4 +62.9 4 +62.9 5 +62.9 5 +62.9 6 +63.0 8 +63.0 11 +63.0 13 +63.0 16 +63.0 21 +63.1 34 +63.1 54 +63.1 77 +63.1 99 +63.1 116 +63.2 124 +63.2 122 +63.2 114 +63.2 106 +63.2 101 +63.3 94 +63.3 87 +63.3 79 +63.3 73 +63.3 67 +63.4 63 +63.4 58 +63.4 55 +63.4 51 +63.4 46 +63.5 42 +63.5 41 +63.5 40 +63.5 36 +63.5 30 +63.6 23 +63.6 18 +63.6 12 +63.6 10 +63.6 8 +63.7 7 +63.7 5 +63.7 4 +63.7 4 +63.7 3 +63.8 3 +63.8 4 +63.8 5 +63.8 6 +63.8 7 +63.9 7 +63.9 8 +63.9 10 +63.9 11 +63.9 16 +64.0 24 +64.0 35 +64.0 50 +64.0 73 +64.0 109 +64.1 158 +64.1 219 +64.1 282 +64.1 341 +64.1 381 +64.2 399 +64.2 393 +64.2 370 +64.2 338 +64.2 307 +64.3 275 +64.3 242 +64.3 202 +64.3 163 +64.3 122 +64.4 87 +64.4 60 +64.4 43 +64.4 33 +64.4 27 +64.5 22 +64.5 18 +64.5 16 +64.5 15 +64.5 16 +64.6 18 +64.6 22 +64.6 26 +64.6 28 +64.6 28 +64.7 27 +64.7 25 +64.7 24 +64.7 23 +64.7 22 +64.8 20 +64.8 17 +64.8 13 +64.8 10 +64.8 9 +64.9 9 +64.9 8 +64.9 8 +64.9 9 +64.9 10 +65.0 10 +65.0 12 +65.0 17 +65.0 25 +65.0 38 +65.1 57 +65.1 83 +65.1 112 +65.1 138 +65.1 156 +65.2 160 +65.2 155 +65.2 145 +65.2 134 +65.2 121 +65.3 109 +65.3 99 +65.3 83 +65.3 63 +65.3 46 +65.4 33 +65.4 23 +65.4 16 +65.4 13 +65.4 12 +65.5 10 +65.5 8 +65.5 6 +65.5 5 +65.5 3 +65.6 3 +65.6 3 +65.6 4 +65.6 4 +65.6 4 +65.7 3 +65.7 2 +65.7 2 +65.7 1 +65.7 2 +65.8 3 +65.8 3 +65.8 4 +65.8 6 +65.8 7 +65.9 9 +65.9 11 +65.9 15 +65.9 17 +65.9 22 +66.0 26 +66.0 30 +66.0 31 +66.0 31 +66.0 29 +66.1 27 +66.1 24 +66.1 25 +66.1 25 +66.1 26 +66.2 29 +66.2 34 +66.2 39 +66.2 43 +66.2 46 +66.3 48 +66.3 46 +66.3 42 +66.3 39 +66.3 34 +66.4 28 +66.4 23 +66.4 19 +66.4 14 +66.4 11 +66.5 8 +66.5 6 +66.5 5 +66.5 5 +66.5 6 +66.6 5 +66.6 5 +66.6 4 +66.6 4 +66.6 3 +66.7 3 +66.7 3 +66.7 3 +66.7 3 +66.7 3 +66.8 3 +66.8 3 +66.8 3 +66.8 3 +66.8 3 +66.9 2 +66.9 2 +66.9 3 +66.9 3 +66.9 2 +67.0 2 +67.0 2 +67.0 2 +67.0 3 +67.0 3 +67.1 3 +67.1 2 +67.1 2 +67.1 3 +67.1 4 +67.2 5 +67.2 7 +67.2 8 +67.2 11 +67.2 17 +67.3 27 +67.3 37 +67.3 47 +67.3 53 +67.3 55 +67.4 54 +67.4 53 +67.4 56 +67.4 59 +67.4 60 +67.5 58 +67.5 54 +67.5 45 +67.5 35 +67.5 26 +67.6 22 +67.6 17 +67.6 13 +67.6 9 +67.6 8 +67.7 6 +67.7 5 +67.7 4 +67.7 3 +67.7 3 +67.8 3 +67.8 3 +67.8 3 +67.8 3 +67.8 2 +67.9 2 +67.9 2 +67.9 2 +67.9 2 +67.9 2 +68.0 2 +68.0 2 +68.0 2 +68.0 2 +68.0 2 +68.1 2 +68.1 2 +68.1 2 +68.1 2 +68.1 2 +68.2 2 +68.2 2 +68.2 2 +68.2 3 +68.2 3 +68.3 3 +68.3 2 +68.3 2 +68.3 3 +68.3 3 +68.4 3 +68.4 3 +68.4 3 +68.4 2 +68.4 2 +68.5 2 +68.5 2 +68.5 2 +68.5 2 +68.5 2 +68.6 2 +68.6 2 +68.6 2 +68.6 1 +68.6 1 +68.7 1 +68.7 2 +68.7 2 +68.7 3 +68.7 3 +68.8 3 +68.8 3 +68.8 3 +68.8 2 +68.8 2 +68.9 2 +68.9 2 +68.9 2 +68.9 2 +68.9 2 +69.0 2 +69.0 2 +69.0 2 +69.0 2 +69.0 2 +69.1 2 +69.1 2 +69.1 2 +69.1 1 +69.1 1 +69.2 1 +69.2 2 +69.2 2 +69.2 2 +69.2 2 +69.3 2 +69.3 2 +69.3 2 +69.3 3 +69.3 3 +69.4 3 +69.4 3 +69.4 3 +69.4 2 +69.4 2 +69.5 3 +69.5 3 +69.5 2 +69.5 2 +69.5 2 +69.6 2 +69.6 3 +69.6 3 +69.6 3 +69.6 3 +69.7 2 +69.7 2 +69.7 2 +69.7 2 +69.7 2 +69.8 2 +69.8 2 +69.8 2 +69.8 3 +69.8 3 +69.9 3 +69.9 3 +69.9 2 +69.9 2 +69.9 2 +70.0 2 diff --git a/tasks/smooth_001/human_demo/actions_raw.json b/tasks/smooth_001/human_demo/actions_raw.json new file mode 100644 index 0000000..ae6e602 --- /dev/null +++ b/tasks/smooth_001/human_demo/actions_raw.json @@ -0,0 +1,284 @@ +{ + "metadata": { + "task_id": "smooth_001", + "vm_resolution": [ + 3840, + 2160 + ], + "vm_screenshot_resolution": [ + 3840, + 2160 + ], + "vm_dpi_scale": 2.0, + "recording_start": "2026-01-09T18:55:39.937851", + "recording_end": "2026-01-09T18:56:51.695422", + "total_duration": 72.13, + "total_actions": 31, + "total_screenshots": 14 + }, + "actions": [ + { + "t": 11.918, + "type": "click", + "button": "left", + "pos_host": [ + 43.16015625, + 327.69140625 + ], + "pos_vm": [ + 86, + 654 + ], + "screenshot": "screens/0002_click.png" + }, + { + "t": 15.821, + "type": "click", + "button": "left", + "pos_host": [ + 43.16015625, + 327.69140625 + ], + "pos_vm": [ + 962, + 720 + ], + "screenshot": "screens/0003_click.png" + }, + { + "t": 22.237, + "type": "click", + "button": "right", + "pos_host": [ + 434.0, + 219.1328125 + ], + "pos_vm": [ + 868, + 438 + ], + "screenshot": "screens/0004_click.png" + }, + { + "t": 25.548, + "type": "click", + "button": "left", + "pos_host": [ + 459.49609375, + 323.4921875 + ], + "pos_vm": [ + 918, + 646 + ], + "screenshot": "screens/0005_click.png" + }, + { + "t": 29.775, + "type": "click", + "button": "left", + "pos_host": [ + 631.62109375, + 467.4296875 + ], + "pos_vm": [ + 1262, + 934 + ], + "screenshot": "screens/0006_click.png" + }, + { + "t": 34.628, + "type": "click", + "button": "left", + "pos_host": [ + 457.04296875, + 220.7109375 + ], + "pos_vm": [ + 914, + 440 + ], + "screenshot": "screens/0007_click.png" + }, + { + "t": 38.102, + "type": "click", + "button": "left", + "pos_host": [ + 243.8671875, + 197.3828125 + ], + "pos_vm": [ + 486, + 394 + ], + "screenshot": "screens/0008_click.png" + }, + { + "t": 40.892, + "type": "click", + "button": "left", + "pos_host": [ + 670.265625, + 512.0703125 + ], + "pos_vm": [ + 1340, + 1024 + ], + "screenshot": "screens/0009_click.png" + }, + { + "t": 44.186, + "type": "click", + "button": "left", + "pos_host": [ + 244.3828125, + 192.984375 + ], + "pos_vm": [ + 488, + 384 + ], + "screenshot": "screens/0010_click.png" + }, + { + "t": 49.595, + "type": "click", + "button": "left", + "pos_host": [ + 657.546875, + 508.1640625 + ], + "pos_vm": [ + 1314, + 1016 + ], + "screenshot": "screens/0011_click.png" + }, + { + "t": 56.287, + "type": "key", + "key": "s" + }, + { + "t": 57.096, + "type": "key", + "key": "shift" + }, + { + "t": 57.645, + "type": "key", + "key": "m" + }, + { + "t": 58.241, + "type": "key", + "key": "o" + }, + { + "t": 58.428, + "type": "key", + "key": "o" + }, + { + "t": 58.657, + "type": "key", + "key": "t" + }, + { + "t": 58.757, + "type": "key", + "key": "h" + }, + { + "t": 59.005, + "type": "key", + "key": "shift" + }, + { + "t": 59.208, + "type": "key", + "key": "_" + }, + { + "t": 59.45, + "type": "key", + "key": "r" + }, + { + "t": 59.526, + "type": "key", + "key": "e" + }, + { + "t": 59.935, + "type": "key", + "key": "s" + }, + { + "t": 60.08, + "type": "key", + "key": "u" + }, + { + "t": 60.441, + "type": "key", + "key": "l" + }, + { + "t": 60.607, + "type": "key", + "key": "t" + }, + { + "t": 62.555, + "type": "click", + "button": "left", + "pos_host": [ + 1229.90234375, + 750.84765625 + ], + "pos_vm": [ + 2458, + 1500 + ], + "screenshot": "screens/0012_click.png" + }, + { + "t": 65.75, + "type": "key", + "key": "ctrl" + }, + { + "t": 68.245, + "type": "key", + "key": "left" + }, + { + "t": 69.766, + "type": "key", + "key": "ctrl" + }, + { + "t": 70.103, + "type": "key", + "key": "c" + }, + { + "t": 69.423, + "type": "click", + "button": "left", + "pos_host": [ + 1049.66015625, + 872.8046875 + ], + "pos_vm": [ + 2458, + 1500 + ], + "screenshot": "screens/0013_click.png" + } + ] +} \ No newline at end of file diff --git a/tasks/smooth_001/human_demo/screens/0001_initial.png b/tasks/smooth_001/human_demo/screens/0001_initial.png new file mode 100644 index 0000000..73c32a1 Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0001_initial.png differ diff --git a/tasks/smooth_001/human_demo/screens/0002_click.png b/tasks/smooth_001/human_demo/screens/0002_click.png new file mode 100644 index 0000000..237064a Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0002_click.png differ diff --git a/tasks/smooth_001/human_demo/screens/0003_click.png b/tasks/smooth_001/human_demo/screens/0003_click.png new file mode 100644 index 0000000..55edd55 Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0003_click.png differ diff --git a/tasks/smooth_001/human_demo/screens/0004_click.png b/tasks/smooth_001/human_demo/screens/0004_click.png new file mode 100644 index 0000000..fcfb88e Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0004_click.png differ diff --git a/tasks/smooth_001/human_demo/screens/0005_click.png b/tasks/smooth_001/human_demo/screens/0005_click.png new file mode 100644 index 0000000..6b3619c Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0005_click.png differ diff --git a/tasks/smooth_001/human_demo/screens/0006_click.png b/tasks/smooth_001/human_demo/screens/0006_click.png new file mode 100644 index 0000000..478ac6d Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0006_click.png differ diff --git a/tasks/smooth_001/human_demo/screens/0007_click.png b/tasks/smooth_001/human_demo/screens/0007_click.png new file mode 100644 index 0000000..3c86bf5 Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0007_click.png differ diff --git a/tasks/smooth_001/human_demo/screens/0008_click.png b/tasks/smooth_001/human_demo/screens/0008_click.png new file mode 100644 index 0000000..80a83a6 Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0008_click.png differ diff --git a/tasks/smooth_001/human_demo/screens/0009_click.png b/tasks/smooth_001/human_demo/screens/0009_click.png new file mode 100644 index 0000000..9875c53 Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0009_click.png differ diff --git a/tasks/smooth_001/human_demo/screens/0010_click.png b/tasks/smooth_001/human_demo/screens/0010_click.png new file mode 100644 index 0000000..2f60278 Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0010_click.png differ diff --git a/tasks/smooth_001/human_demo/screens/0011_click.png b/tasks/smooth_001/human_demo/screens/0011_click.png new file mode 100644 index 0000000..9880d83 Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0011_click.png differ diff --git a/tasks/smooth_001/human_demo/screens/0012_click.png b/tasks/smooth_001/human_demo/screens/0012_click.png new file mode 100644 index 0000000..746119b Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0012_click.png differ diff --git a/tasks/smooth_001/human_demo/screens/0013_click.png b/tasks/smooth_001/human_demo/screens/0013_click.png new file mode 100644 index 0000000..1f8a7e0 Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0013_click.png differ diff --git a/tasks/smooth_001/human_demo/screens/0014_final.png b/tasks/smooth_001/human_demo/screens/0014_final.png new file mode 100644 index 0000000..1f8a7e0 Binary files /dev/null and b/tasks/smooth_001/human_demo/screens/0014_final.png differ diff --git a/tasks/smooth_001/task.json b/tasks/smooth_001/task.json new file mode 100644 index 0000000..69b6a05 --- /dev/null +++ b/tasks/smooth_001/task.json @@ -0,0 +1,22 @@ +{ + "id": "smooth_001", + "category": "basic_processing", + "difficulty": "easy", + "instruction": "请打开桌面上的 DEMO01.MDI 文件,进行平滑处理 (Smoothing),平滑点数设置为 5,然后将处理后的曲线导出为 ASCII (.txt) 文件并命名为 smooth_result.txt。", + "input": { + "source_file": "../../data/source/DEMO01.MDI", + "inject_to": "C:\\Users\\lzy\\Desktop\\DEMO01.MDI" + }, + "output": { + "expected_file": "smooth_result.txt", + "collect_from": "C:\\Users\\lzy\\Desktop\\smooth_result.txt" + }, + "evaluation": { + "method": "xrd_data_compare", + "ground_truth": "ground_truth/smooth_result.txt", + "target_output": "agent_output/smooth_result.txt", + "tolerance": 0.0001 + }, + "tutorial_source": "教程(1) + 基础处理", + "notes": "重新采集,固定平滑点数=5" +} diff --git a/tasks/test_001/ground_truth/test_result.txt b/tasks/test_001/ground_truth/test_result.txt new file mode 100755 index 0000000..a505815 --- /dev/null +++ b/tasks/test_001/ground_truth/test_result.txt @@ -0,0 +1,3252 @@ +Demo01: 37-1497 4-733 9-169 18-303 9-77 +5.0 49 +5.02 49 +5.04 49 +5.06 44 +5.08 36 +5.1 34 +5.12 37 +5.14 41 +5.16 44 +5.18 44 +5.2 40 +5.22 35 +5.24 35 +5.26 41 +5.28 40 +5.3 41 +5.32 39 +5.34 37 +5.36 31 +5.38 31 +5.4 30 +5.42 37 +5.44 40 +5.46 43 +5.48 36 +5.5 36 +5.52 37 +5.54 38 +5.56 40 +5.58 42 +5.6 41 +5.62 40 +5.64 45 +5.66 43 +5.68 38 +5.7 43 +5.72 51 +5.74 43 +5.76 38 +5.78 44 +5.8 44 +5.82 43 +5.84 41 +5.86 46 +5.88 39 +5.9 36 +5.92 30 +5.94 34 +5.96 38 +5.98 38 +6.0 41 +6.02 39 +6.04 39 +6.06 33 +6.08 38 +6.1 38 +6.12 45 +6.14 41 +6.16 44 +6.18 39 +6.2 36 +6.22 38 +6.24 38 +6.26 43 +6.28 38 +6.3 37 +6.32 33 +6.34 38 +6.36 46 +6.38 44 +6.4 38 +6.42 28 +6.44 37 +6.46 45 +6.48 43 +6.5 41 +6.52 44 +6.54 39 +6.56 36 +6.58 44 +6.6 45 +6.62 37 +6.64 39 +6.66 40 +6.68 41 +6.7 37 +6.72 34 +6.74 32 +6.76 37 +6.78 37 +6.8 34 +6.82 41 +6.84 39 +6.86 37 +6.88 32 +6.9 36 +6.92 39 +6.94 42 +6.96 38 +6.98 35 +7.0 35 +7.02 37 +7.04 34 +7.06 36 +7.08 31 +7.1 37 +7.12 40 +7.14 45 +7.16 45 +7.18 41 +7.2 36 +7.22 29 +7.24 29 +7.26 35 +7.28 41 +7.3 45 +7.32 40 +7.34 41 +7.36 43 +7.38 45 +7.4 42 +7.42 35 +7.44 40 +7.46 43 +7.48 45 +7.5 39 +7.52 33 +7.54 35 +7.56 41 +7.58 49 +7.6 44 +7.62 36 +7.64 37 +7.66 44 +7.68 45 +7.7 44 +7.72 39 +7.74 40 +7.76 44 +7.78 44 +7.8 38 +7.82 34 +7.84 38 +7.86 40 +7.88 41 +7.9 41 +7.92 42 +7.94 45 +7.96 42 +7.98 41 +8.0 34 +8.02 37 +8.04 35 +8.06 42 +8.08 38 +8.1 37 +8.12 29 +8.14 28 +8.16 30 +8.18 37 +8.2 47 +8.22 41 +8.24 35 +8.26 34 +8.28 39 +8.3 39 +8.32 45 +8.34 44 +8.36 37 +8.38 39 +8.4 39 +8.42 35 +8.44 29 +8.46 33 +8.48 30 +8.5 28 +8.52 33 +8.54 40 +8.56 45 +8.58 40 +8.6 41 +8.62 40 +8.64 36 +8.66 34 +8.68 37 +8.7 36 +8.72 31 +8.74 38 +8.76 40 +8.78 38 +8.8 31 +8.82 34 +8.84 33 +8.86 33 +8.88 28 +8.9 34 +8.92 37 +8.94 36 +8.96 28 +8.98 34 +9.0 38 +9.02 42 +9.04 36 +9.06 32 +9.08 36 +9.1 43 +9.12 47 +9.14 42 +9.16 36 +9.18 30 +9.2 38 +9.22 40 +9.24 38 +9.26 33 +9.28 38 +9.3 35 +9.32 40 +9.34 40 +9.36 44 +9.38 39 +9.4 37 +9.42 31 +9.44 33 +9.46 40 +9.48 42 +9.5 41 +9.52 34 +9.54 35 +9.56 39 +9.58 36 +9.6 34 +9.62 33 +9.64 38 +9.66 38 +9.68 42 +9.7 35 +9.72 30 +9.74 31 +9.76 41 +9.78 40 +9.8 38 +9.82 37 +9.84 36 +9.86 38 +9.88 36 +9.9 31 +9.92 25 +9.94 31 +9.96 41 +9.98 39 +10.0 37 +10.0 31 +10.0 36 +10.0 34 +10.0 37 +10.1 31 +10.1 33 +10.1 34 +10.1 34 +10.1 32 +10.2 31 +10.2 36 +10.2 36 +10.2 35 +10.2 29 +10.3 37 +10.3 41 +10.3 40 +10.3 40 +10.3 44 +10.4 44 +10.4 36 +10.4 37 +10.4 38 +10.4 44 +10.5 46 +10.5 53 +10.5 48 +10.5 38 +10.5 40 +10.6 46 +10.6 52 +10.6 64 +10.6 89 +10.6 110 +10.7 127 +10.7 152 +10.7 171 +10.7 210 +10.7 229 +10.8 265 +10.8 264 +10.8 253 +10.8 217 +10.8 207 +10.9 174 +10.9 145 +10.9 115 +10.9 105 +10.9 75 +11.0 67 +11.0 58 +11.0 65 +11.0 58 +11.0 56 +11.1 46 +11.1 44 +11.1 44 +11.1 45 +11.1 38 +11.2 33 +11.2 31 +11.2 29 +11.2 33 +11.2 40 +11.3 36 +11.3 39 +11.3 44 +11.3 48 +11.3 49 +11.4 53 +11.4 56 +11.4 57 +11.4 65 +11.4 75 +11.5 90 +11.5 100 +11.5 106 +11.5 140 +11.5 175 +11.6 230 +11.6 279 +11.6 341 +11.6 374 +11.6 402 +11.7 384 +11.7 354 +11.7 303 +11.7 256 +11.7 189 +11.8 156 +11.8 130 +11.8 112 +11.8 83 +11.8 70 +11.9 66 +11.9 57 +11.9 52 +11.9 53 +11.9 49 +12.0 42 +12.0 41 +12.0 47 +12.0 45 +12.0 45 +12.1 37 +12.1 28 +12.1 26 +12.1 36 +12.1 43 +12.2 40 +12.2 37 +12.2 38 +12.2 39 +12.2 34 +12.3 31 +12.3 33 +12.3 32 +12.3 34 +12.3 36 +12.4 41 +12.4 35 +12.4 35 +12.4 36 +12.4 39 +12.5 34 +12.5 35 +12.5 35 +12.5 38 +12.5 34 +12.6 35 +12.6 29 +12.6 29 +12.6 27 +12.6 33 +12.7 37 +12.7 33 +12.7 28 +12.7 31 +12.7 36 +12.8 32 +12.8 28 +12.8 28 +12.8 31 +12.8 33 +12.9 38 +12.9 32 +12.9 32 +12.9 29 +12.9 32 +13.0 29 +13.0 37 +13.0 34 +13.0 34 +13.0 35 +13.1 38 +13.1 31 +13.1 27 +13.1 23 +13.1 28 +13.2 31 +13.2 36 +13.2 35 +13.2 34 +13.2 31 +13.3 34 +13.3 37 +13.3 32 +13.3 23 +13.3 29 +13.4 39 +13.4 43 +13.4 46 +13.4 51 +13.4 57 +13.5 64 +13.5 80 +13.5 98 +13.5 117 +13.5 132 +13.6 133 +13.6 145 +13.6 168 +13.6 168 +13.6 145 +13.7 121 +13.7 112 +13.7 92 +13.7 83 +13.7 62 +13.8 53 +13.8 43 +13.8 42 +13.8 35 +13.8 38 +13.9 36 +13.9 31 +13.9 30 +13.9 28 +13.9 32 +14.0 36 +14.0 38 +14.0 30 +14.0 27 +14.0 30 +14.1 45 +14.1 48 +14.1 52 +14.1 54 +14.1 61 +14.2 70 +14.2 84 +14.2 87 +14.2 81 +14.2 73 +14.3 68 +14.3 56 +14.3 51 +14.3 45 +14.3 47 +14.4 42 +14.4 37 +14.4 34 +14.4 27 +14.4 25 +14.5 28 +14.5 33 +14.5 28 +14.5 21 +14.5 25 +14.6 28 +14.6 26 +14.6 25 +14.6 32 +14.6 31 +14.7 25 +14.7 27 +14.7 31 +14.7 34 +14.7 31 +14.8 27 +14.8 22 +14.8 27 +14.8 32 +14.8 33 +14.9 25 +14.9 20 +14.9 18 +14.9 21 +14.9 27 +15.0 33 +15.0 36 +15.0 34 +15.0 28 +15.0 22 +15.1 22 +15.1 24 +15.1 28 +15.1 30 +15.1 27 +15.2 24 +15.2 28 +15.2 26 +15.2 23 +15.2 22 +15.3 20 +15.3 23 +15.3 31 +15.3 31 +15.3 28 +15.4 26 +15.4 24 +15.4 23 +15.4 29 +15.4 29 +15.5 28 +15.5 29 +15.5 26 +15.5 26 +15.5 28 +15.6 24 +15.6 22 +15.6 24 +15.6 29 +15.6 29 +15.7 29 +15.7 30 +15.7 30 +15.7 26 +15.7 19 +15.8 25 +15.8 33 +15.8 33 +15.8 25 +15.8 21 +15.9 21 +15.9 26 +15.9 27 +15.9 24 +15.9 22 +16.0 24 +16.0 27 +16.0 27 +16.0 28 +16.0 24 +16.1 25 +16.1 26 +16.1 28 +16.1 21 +16.1 21 +16.2 25 +16.2 31 +16.2 29 +16.2 27 +16.2 29 +16.3 28 +16.3 24 +16.3 26 +16.3 32 +16.3 32 +16.4 29 +16.4 26 +16.4 31 +16.4 33 +16.4 30 +16.5 29 +16.5 33 +16.5 37 +16.5 37 +16.5 35 +16.6 38 +16.6 40 +16.6 49 +16.6 62 +16.6 71 +16.7 85 +16.7 106 +16.7 134 +16.7 145 +16.7 164 +16.8 161 +16.8 157 +16.8 144 +16.8 136 +16.8 124 +16.9 120 +16.9 125 +16.9 146 +16.9 182 +16.9 195 +17.0 186 +17.0 176 +17.0 162 +17.0 153 +17.0 138 +17.1 129 +17.1 94 +17.1 71 +17.1 58 +17.1 59 +17.2 50 +17.2 48 +17.2 43 +17.2 34 +17.2 31 +17.3 31 +17.3 26 +17.3 25 +17.3 26 +17.3 24 +17.4 17 +17.4 18 +17.4 19 +17.4 22 +17.4 23 +17.5 26 +17.5 31 +17.5 34 +17.5 34 +17.5 34 +17.6 28 +17.6 25 +17.6 26 +17.6 30 +17.6 31 +17.7 36 +17.7 41 +17.7 38 +17.7 32 +17.7 35 +17.8 48 +17.8 57 +17.8 62 +17.8 81 +17.8 98 +17.9 104 +17.9 132 +17.9 178 +17.9 243 +17.9 302 +18.0 408 +18.0 502 +18.0 632 +18.0 770 +18.0 868 +18.1 860 +18.1 809 +18.1 738 +18.1 622 +18.1 479 +18.2 371 +18.2 281 +18.2 211 +18.2 147 +18.2 124 +18.3 111 +18.3 102 +18.3 85 +18.3 72 +18.3 64 +18.4 50 +18.4 52 +18.4 48 +18.4 52 +18.4 44 +18.5 41 +18.5 35 +18.5 41 +18.5 44 +18.5 34 +18.6 31 +18.6 30 +18.6 34 +18.6 26 +18.6 24 +18.7 24 +18.7 28 +18.7 21 +18.7 18 +18.7 20 +18.8 18 +18.8 20 +18.8 25 +18.8 26 +18.8 22 +18.9 23 +18.9 24 +18.9 21 +18.9 18 +18.9 22 +19.0 22 +19.0 20 +19.0 20 +19.0 23 +19.0 21 +19.1 15 +19.1 18 +19.1 22 +19.1 24 +19.1 24 +19.2 25 +19.2 23 +19.2 22 +19.2 22 +19.2 23 +19.3 23 +19.3 20 +19.3 20 +19.3 22 +19.3 22 +19.4 15 +19.4 17 +19.4 20 +19.4 20 +19.4 19 +19.5 25 +19.5 25 +19.5 18 +19.5 17 +19.5 20 +19.6 22 +19.6 17 +19.6 15 +19.6 18 +19.6 26 +19.7 30 +19.7 23 +19.7 17 +19.7 15 +19.7 17 +19.8 20 +19.8 22 +19.8 22 +19.8 19 +19.8 20 +19.9 25 +19.9 23 +19.9 17 +19.9 18 +19.9 27 +20.0 30 +20.0 28 +20.0 25 +20.0 25 +20.0 26 +20.1 31 +20.1 38 +20.1 51 +20.1 65 +20.1 81 +20.2 95 +20.2 95 +20.2 84 +20.2 69 +20.2 57 +20.3 46 +20.3 48 +20.3 49 +20.3 40 +20.3 30 +20.4 23 +20.4 24 +20.4 21 +20.4 26 +20.4 28 +20.5 26 +20.5 18 +20.5 16 +20.5 21 +20.5 24 +20.6 21 +20.6 21 +20.6 27 +20.6 31 +20.6 33 +20.7 40 +20.7 42 +20.7 48 +20.7 62 +20.7 81 +20.8 89 +20.8 123 +20.8 176 +20.8 225 +20.8 266 +20.9 313 +20.9 361 +20.9 377 +20.9 380 +20.9 338 +21.0 289 +21.0 225 +21.0 178 +21.0 139 +21.0 111 +21.1 85 +21.1 61 +21.1 54 +21.1 45 +21.1 44 +21.2 46 +21.2 42 +21.2 34 +21.2 30 +21.2 36 +21.3 39 +21.3 39 +21.3 39 +21.3 48 +21.3 55 +21.4 63 +21.4 65 +21.4 65 +21.4 52 +21.4 39 +21.5 36 +21.5 40 +21.5 42 +21.5 37 +21.5 38 +21.6 45 +21.6 57 +21.6 62 +21.6 66 +21.6 92 +21.7 130 +21.7 153 +21.7 160 +21.7 187 +21.7 217 +21.8 222 +21.8 209 +21.8 210 +21.8 209 +21.8 209 +21.9 200 +21.9 179 +21.9 145 +21.9 114 +21.9 83 +22.0 64 +22.0 56 +22.0 54 +22.0 53 +22.0 47 +22.1 38 +22.1 37 +22.1 45 +22.1 55 +22.1 57 +22.2 47 +22.2 47 +22.2 55 +22.2 52 +22.2 45 +22.3 38 +22.3 29 +22.3 24 +22.3 29 +22.3 30 +22.4 27 +22.4 20 +22.4 16 +22.4 19 +22.4 23 +22.5 19 +22.5 12 +22.5 16 +22.5 20 +22.5 20 +22.6 20 +22.6 22 +22.6 23 +22.6 20 +22.6 24 +22.7 22 +22.7 22 +22.7 18 +22.7 25 +22.7 28 +22.8 36 +22.8 39 +22.8 44 +22.8 45 +22.8 47 +22.9 64 +22.9 90 +22.9 100 +22.9 101 +22.9 100 +23.0 105 +23.0 88 +23.0 72 +23.0 60 +23.0 51 +23.1 35 +23.1 29 +23.1 34 +23.1 34 +23.1 31 +23.2 28 +23.2 27 +23.2 27 +23.2 30 +23.2 26 +23.3 27 +23.3 31 +23.3 38 +23.3 37 +23.3 38 +23.4 41 +23.4 49 +23.4 47 +23.4 39 +23.4 35 +23.5 31 +23.5 20 +23.5 17 +23.5 20 +23.5 22 +23.6 23 +23.6 23 +23.6 20 +23.6 15 +23.6 15 +23.7 14 +23.7 16 +23.7 15 +23.7 13 +23.7 16 +23.8 20 +23.8 21 +23.8 14 +23.8 11 +23.8 12 +23.9 19 +23.9 19 +23.9 15 +23.9 12 +23.9 16 +24.0 17 +24.0 16 +24.0 17 +24.0 18 +24.0 17 +24.1 16 +24.1 15 +24.1 13 +24.1 14 +24.1 20 +24.2 18 +24.2 16 +24.2 16 +24.2 15 +24.2 15 +24.3 15 +24.3 17 +24.3 14 +24.3 14 +24.3 14 +24.4 14 +24.4 15 +24.4 18 +24.4 22 +24.4 17 +24.5 15 +24.5 17 +24.5 19 +24.5 16 +24.5 12 +24.6 14 +24.6 18 +24.6 23 +24.6 20 +24.6 14 +24.7 12 +24.7 16 +24.7 16 +24.7 12 +24.7 10 +24.8 9 +24.8 11 +24.8 14 +24.8 19 +24.8 17 +24.9 13 +24.9 13 +24.9 16 +24.9 13 +24.9 9 +25.0 14 +25.0 15 +25.0 17 +25.0 17 +25.0 15 +25.1 9 +25.1 11 +25.1 18 +25.1 20 +25.1 18 +25.2 17 +25.2 15 +25.2 16 +25.2 13 +25.2 14 +25.3 12 +25.3 15 +25.3 15 +25.3 17 +25.3 20 +25.4 21 +25.4 21 +25.4 22 +25.4 28 +25.4 29 +25.5 28 +25.5 28 +25.5 27 +25.5 33 +25.5 40 +25.6 47 +25.6 54 +25.6 78 +25.6 106 +25.6 124 +25.7 152 +25.7 198 +25.7 263 +25.7 340 +25.7 435 +25.8 572 +25.8 703 +25.8 831 +25.8 917 +25.8 973 +25.9 948 +25.9 863 +25.9 740 +25.9 611 +25.9 474 +26.0 337 +26.0 253 +26.0 196 +26.0 164 +26.0 120 +26.1 108 +26.1 83 +26.1 76 +26.1 67 +26.1 64 +26.2 63 +26.2 66 +26.2 69 +26.2 60 +26.2 45 +26.3 41 +26.3 41 +26.3 40 +26.3 35 +26.3 40 +26.4 46 +26.4 59 +26.4 63 +26.4 74 +26.4 86 +26.5 101 +26.5 93 +26.5 79 +26.5 76 +26.5 76 +26.6 70 +26.6 55 +26.6 48 +26.6 34 +26.6 28 +26.7 26 +26.7 26 +26.7 17 +26.7 12 +26.7 10 +26.8 14 +26.8 15 +26.8 14 +26.8 12 +26.8 15 +26.9 15 +26.9 10 +26.9 11 +26.9 12 +26.9 13 +27.0 12 +27.0 15 +27.0 13 +27.0 11 +27.0 9 +27.1 9 +27.1 7 +27.1 10 +27.1 12 +27.1 15 +27.2 13 +27.2 12 +27.2 16 +27.2 20 +27.2 21 +27.3 19 +27.3 31 +27.3 40 +27.3 52 +27.3 56 +27.4 70 +27.4 85 +27.4 95 +27.4 88 +27.4 82 +27.5 83 +27.5 69 +27.5 56 +27.5 48 +27.5 61 +27.6 77 +27.6 104 +27.6 120 +27.6 156 +27.6 189 +27.7 236 +27.7 288 +27.7 376 +27.7 458 +27.7 479 +27.8 453 +27.8 398 +27.8 333 +27.8 248 +27.8 192 +27.9 161 +27.9 124 +27.9 87 +27.9 62 +27.9 56 +28.0 53 +28.0 54 +28.0 51 +28.0 45 +28.0 45 +28.1 47 +28.1 70 +28.1 82 +28.1 112 +28.1 129 +28.2 150 +28.2 160 +28.2 162 +28.2 146 +28.2 129 +28.3 113 +28.3 87 +28.3 67 +28.3 65 +28.3 61 +28.4 50 +28.4 39 +28.4 34 +28.4 41 +28.4 43 +28.5 47 +28.5 61 +28.5 84 +28.5 114 +28.5 131 +28.6 173 +28.6 228 +28.6 275 +28.6 278 +28.6 278 +28.7 265 +28.7 235 +28.7 209 +28.7 190 +28.7 162 +28.8 134 +28.8 112 +28.8 98 +28.8 103 +28.8 118 +28.9 125 +28.9 152 +28.9 179 +28.9 193 +28.9 184 +29.0 183 +29.0 179 +29.0 174 +29.0 156 +29.0 131 +29.1 122 +29.1 108 +29.1 111 +29.1 123 +29.1 155 +29.2 194 +29.2 230 +29.2 252 +29.2 281 +29.2 290 +29.3 265 +29.3 218 +29.3 199 +29.3 169 +29.3 139 +29.4 97 +29.4 66 +29.4 50 +29.4 49 +29.4 51 +29.5 48 +29.5 51 +29.5 49 +29.5 56 +29.5 74 +29.6 106 +29.6 124 +29.6 123 +29.6 136 +29.6 143 +29.7 141 +29.7 116 +29.7 92 +29.7 68 +29.7 56 +29.8 47 +29.8 33 +29.8 28 +29.8 27 +29.8 26 +29.9 18 +29.9 15 +29.9 14 +29.9 14 +29.9 8 +30.0 12 +30.0 11 +30.0 14 +30.0 15 +30.0 17 +30.1 15 +30.1 16 +30.1 18 +30.1 14 +30.1 12 +30.2 12 +30.2 17 +30.2 19 +30.2 17 +30.2 19 +30.3 22 +30.3 32 +30.3 35 +30.3 47 +30.3 49 +30.4 58 +30.4 78 +30.4 120 +30.4 149 +30.4 182 +30.5 188 +30.5 204 +30.5 181 +30.5 176 +30.5 150 +30.6 133 +30.6 99 +30.6 75 +30.6 62 +30.6 53 +30.7 48 +30.7 44 +30.7 39 +30.7 40 +30.7 46 +30.8 63 +30.8 66 +30.8 73 +30.8 103 +30.8 135 +30.9 181 +30.9 236 +30.9 326 +30.9 439 +30.9 580 +31.0 698 +31.0 771 +31.0 821 +31.0 816 +31.0 745 +31.1 602 +31.1 477 +31.1 360 +31.1 267 +31.1 196 +31.2 161 +31.2 125 +31.2 90 +31.2 93 +31.2 86 +31.3 82 +31.3 65 +31.3 70 +31.3 60 +31.3 61 +31.4 44 +31.4 34 +31.4 25 +31.4 23 +31.4 28 +31.5 26 +31.5 23 +31.5 15 +31.5 22 +31.5 29 +31.6 31 +31.6 32 +31.6 42 +31.6 48 +31.6 60 +31.7 73 +31.7 93 +31.7 117 +31.7 147 +31.7 191 +31.8 260 +31.8 365 +31.8 493 +31.8 665 +31.8 908 +31.9 1152 +31.9 1359 +31.9 1499 +31.9 1512 +31.9 1376 +32.0 1175 +32.0 1001 +32.0 790 +32.0 611 +32.0 466 +32.1 369 +32.1 276 +32.1 247 +32.1 226 +32.1 214 +32.2 203 +32.2 209 +32.2 184 +32.2 168 +32.2 142 +32.3 133 +32.3 109 +32.3 117 +32.3 113 +32.3 126 +32.4 130 +32.4 160 +32.4 178 +32.4 186 +32.4 183 +32.5 172 +32.5 154 +32.5 120 +32.5 93 +32.5 72 +32.6 68 +32.6 61 +32.6 53 +32.6 52 +32.6 55 +32.7 62 +32.7 68 +32.7 73 +32.7 102 +32.7 130 +32.8 159 +32.8 217 +32.8 298 +32.8 377 +32.8 467 +32.9 530 +32.9 530 +32.9 494 +32.9 465 +32.9 406 +33.0 361 +33.0 318 +33.0 265 +33.0 199 +33.0 157 +33.1 119 +33.1 93 +33.1 78 +33.1 68 +33.1 54 +33.2 44 +33.2 38 +33.2 35 +33.2 31 +33.2 26 +33.3 20 +33.3 21 +33.3 25 +33.3 30 +33.3 33 +33.4 37 +33.4 47 +33.4 58 +33.4 78 +33.4 82 +33.5 91 +33.5 88 +33.5 91 +33.5 82 +33.5 71 +33.6 60 +33.6 48 +33.6 46 +33.6 39 +33.6 42 +33.7 48 +33.7 55 +33.7 63 +33.7 77 +33.7 95 +33.8 116 +33.8 151 +33.8 188 +33.8 230 +33.8 271 +33.9 337 +33.9 396 +33.9 482 +33.9 563 +33.9 629 +34.0 703 +34.0 792 +34.0 940 +34.0 1072 +34.0 1233 +34.1 1339 +34.1 1367 +34.1 1253 +34.1 1083 +34.1 912 +34.2 776 +34.2 658 +34.2 553 +34.2 452 +34.2 431 +34.3 454 +34.3 492 +34.3 517 +34.3 588 +34.3 641 +34.4 667 +34.4 632 +34.4 557 +34.4 453 +34.4 374 +34.5 299 +34.5 231 +34.5 179 +34.5 138 +34.5 92 +34.6 61 +34.6 48 +34.6 40 +34.6 31 +34.6 26 +34.7 25 +34.7 21 +34.7 15 +34.7 13 +34.7 16 +34.8 16 +34.8 17 +34.8 22 +34.8 24 +34.8 20 +34.9 27 +34.9 43 +34.9 56 +34.9 66 +34.9 70 +35.0 78 +35.0 85 +35.0 100 +35.0 102 +35.0 94 +35.1 91 +35.1 104 +35.1 106 +35.1 93 +35.1 82 +35.2 81 +35.2 66 +35.2 51 +35.2 44 +35.2 37 +35.3 26 +35.3 17 +35.3 19 +35.3 27 +35.3 29 +35.4 28 +35.4 34 +35.4 48 +35.4 64 +35.4 76 +35.5 95 +35.5 126 +35.5 161 +35.5 190 +35.5 210 +35.6 224 +35.6 237 +35.6 233 +35.6 211 +35.6 170 +35.7 134 +35.7 108 +35.7 85 +35.7 62 +35.7 42 +35.8 41 +35.8 42 +35.8 49 +35.8 52 +35.8 56 +35.9 58 +35.9 69 +35.9 65 +35.9 51 +35.9 34 +36.0 30 +36.0 26 +36.0 24 +36.0 17 +36.0 15 +36.1 15 +36.1 13 +36.1 7 +36.1 4 +36.1 4 +36.2 6 +36.2 11 +36.2 12 +36.2 11 +36.2 9 +36.3 9 +36.3 9 +36.3 9 +36.3 10 +36.3 8 +36.4 8 +36.4 6 +36.4 6 +36.4 8 +36.4 11 +36.5 13 +36.5 15 +36.5 14 +36.5 13 +36.5 12 +36.6 19 +36.6 26 +36.6 34 +36.6 37 +36.6 41 +36.7 46 +36.7 47 +36.7 46 +36.7 42 +36.7 44 +36.8 47 +36.8 52 +36.8 56 +36.8 61 +36.8 67 +36.9 62 +36.9 64 +36.9 57 +36.9 60 +36.9 58 +37.0 66 +37.0 58 +37.0 64 +37.0 69 +37.0 88 +37.1 89 +37.1 87 +37.1 82 +37.1 86 +37.1 90 +37.2 104 +37.2 132 +37.2 164 +37.2 191 +37.2 241 +37.3 320 +37.3 397 +37.3 442 +37.3 467 +37.3 440 +37.4 397 +37.4 345 +37.4 283 +37.4 195 +37.4 140 +37.5 116 +37.5 92 +37.5 70 +37.5 54 +37.5 37 +37.6 27 +37.6 25 +37.6 28 +37.6 28 +37.6 22 +37.7 20 +37.7 18 +37.7 21 +37.7 26 +37.7 38 +37.8 42 +37.8 45 +37.8 49 +37.8 49 +37.8 51 +37.9 51 +37.9 47 +37.9 33 +37.9 27 +37.9 23 +38.0 20 +38.0 19 +38.0 16 +38.0 15 +38.0 12 +38.1 13 +38.1 11 +38.1 11 +38.1 11 +38.1 13 +38.2 13 +38.2 11 +38.2 11 +38.2 9 +38.2 7 +38.3 6 +38.3 9 +38.3 9 +38.3 9 +38.3 9 +38.4 10 +38.4 8 +38.4 8 +38.4 11 +38.4 9 +38.5 7 +38.5 9 +38.5 9 +38.5 7 +38.5 8 +38.6 8 +38.6 5 +38.6 3 +38.6 4 +38.6 7 +38.7 10 +38.7 10 +38.7 7 +38.7 6 +38.7 6 +38.8 6 +38.8 6 +38.8 6 +38.8 10 +38.8 9 +38.9 10 +38.9 11 +38.9 14 +38.9 12 +38.9 11 +39.0 13 +39.0 21 +39.0 33 +39.0 53 +39.0 63 +39.1 67 +39.1 70 +39.1 85 +39.1 93 +39.1 86 +39.2 76 +39.2 69 +39.2 57 +39.2 38 +39.2 27 +39.3 19 +39.3 18 +39.3 15 +39.3 17 +39.3 11 +39.4 11 +39.4 7 +39.4 10 +39.4 10 +39.4 10 +39.5 7 +39.5 8 +39.5 12 +39.5 14 +39.5 14 +39.6 16 +39.6 16 +39.6 20 +39.6 26 +39.6 29 +39.7 40 +39.7 62 +39.7 75 +39.7 70 +39.7 83 +39.8 105 +39.8 112 +39.8 104 +39.8 102 +39.8 91 +39.9 89 +39.9 101 +39.9 116 +39.9 133 +39.9 153 +40.0 179 +40.0 216 +40.0 245 +40.0 259 +40.0 245 +40.1 217 +40.1 178 +40.1 154 +40.1 127 +40.1 100 +40.2 76 +40.2 61 +40.2 50 +40.2 48 +40.2 32 +40.3 25 +40.3 24 +40.3 22 +40.3 17 +40.3 16 +40.4 13 +40.4 10 +40.4 7 +40.4 6 +40.4 6 +40.5 9 +40.5 9 +40.5 9 +40.5 6 +40.5 5 +40.6 4 +40.6 4 +40.6 5 +40.6 9 +40.6 9 +40.7 6 +40.7 7 +40.7 9 +40.7 10 +40.7 8 +40.8 9 +40.8 6 +40.8 9 +40.8 11 +40.8 14 +40.9 11 +40.9 10 +40.9 18 +40.9 24 +40.9 36 +41.0 42 +41.0 65 +41.0 75 +41.0 84 +41.0 100 +41.1 117 +41.1 109 +41.1 94 +41.1 85 +41.1 72 +41.2 50 +41.2 46 +41.2 38 +41.2 31 +41.2 18 +41.3 19 +41.3 19 +41.3 21 +41.3 19 +41.3 16 +41.4 20 +41.4 23 +41.4 29 +41.4 38 +41.4 48 +41.5 63 +41.5 75 +41.5 100 +41.5 100 +41.5 106 +41.6 98 +41.6 117 +41.6 137 +41.6 152 +41.6 156 +41.7 157 +41.7 178 +41.7 189 +41.7 214 +41.7 215 +41.8 199 +41.8 167 +41.8 143 +41.8 135 +41.8 122 +41.9 99 +41.9 76 +41.9 62 +41.9 61 +41.9 61 +42.0 64 +42.0 65 +42.0 72 +42.0 80 +42.0 73 +42.1 60 +42.1 47 +42.1 39 +42.1 34 +42.1 28 +42.2 23 +42.2 12 +42.2 12 +42.2 10 +42.2 11 +42.3 8 +42.3 7 +42.3 7 +42.3 9 +42.3 11 +42.4 8 +42.4 7 +42.4 7 +42.4 6 +42.4 4 +42.5 7 +42.5 9 +42.5 10 +42.5 12 +42.5 16 +42.6 14 +42.6 13 +42.6 12 +42.6 12 +42.6 10 +42.7 15 +42.7 14 +42.7 13 +42.7 10 +42.7 7 +42.8 4 +42.8 9 +42.8 15 +42.8 19 +42.8 15 +42.9 21 +42.9 33 +42.9 41 +42.9 39 +42.9 40 +43.0 53 +43.0 54 +43.0 45 +43.0 38 +43.0 37 +43.1 38 +43.1 35 +43.1 33 +43.1 23 +43.1 15 +43.2 11 +43.2 14 +43.2 15 +43.2 13 +43.2 16 +43.3 20 +43.3 22 +43.3 30 +43.3 40 +43.3 48 +43.4 49 +43.4 56 +43.4 54 +43.4 51 +43.4 42 +43.5 53 +43.5 68 +43.5 73 +43.5 67 +43.5 68 +43.6 77 +43.6 69 +43.6 67 +43.6 58 +43.6 61 +43.7 58 +43.7 66 +43.7 58 +43.7 60 +43.7 62 +43.8 74 +43.8 93 +43.8 127 +43.8 157 +43.8 177 +43.9 178 +43.9 183 +43.9 186 +43.9 186 +43.9 159 +44.0 132 +44.0 112 +44.0 89 +44.0 59 +44.0 36 +44.1 33 +44.1 33 +44.1 27 +44.1 22 +44.1 16 +44.2 13 +44.2 11 +44.2 10 +44.2 8 +44.2 9 +44.3 14 +44.3 13 +44.3 9 +44.3 9 +44.3 15 +44.4 24 +44.4 31 +44.4 38 +44.4 46 +44.4 52 +44.5 60 +44.5 65 +44.5 71 +44.5 70 +44.5 77 +44.6 75 +44.6 63 +44.6 50 +44.6 50 +44.6 52 +44.7 47 +44.7 54 +44.7 57 +44.7 71 +44.7 74 +44.8 82 +44.8 68 +44.8 64 +44.8 68 +44.8 67 +44.9 55 +44.9 42 +44.9 44 +44.9 44 +44.9 38 +45.0 28 +45.0 20 +45.0 16 +45.0 13 +45.0 17 +45.1 20 +45.1 22 +45.1 19 +45.1 23 +45.1 25 +45.2 38 +45.2 49 +45.2 68 +45.2 79 +45.2 85 +45.3 95 +45.3 103 +45.3 114 +45.3 101 +45.3 91 +45.4 75 +45.4 73 +45.4 70 +45.4 86 +45.4 92 +45.5 108 +45.5 116 +45.5 146 +45.5 148 +45.5 152 +45.6 125 +45.6 117 +45.6 90 +45.6 80 +45.6 57 +45.7 49 +45.7 37 +45.7 33 +45.7 21 +45.7 14 +45.8 17 +45.8 20 +45.8 24 +45.8 25 +45.8 32 +45.9 32 +45.9 35 +45.9 32 +45.9 30 +45.9 24 +46.0 21 +46.0 25 +46.0 29 +46.0 25 +46.0 17 +46.1 16 +46.1 14 +46.1 15 +46.1 12 +46.1 12 +46.2 6 +46.2 8 +46.2 6 +46.2 8 +46.2 6 +46.3 8 +46.3 7 +46.3 7 +46.3 6 +46.3 8 +46.4 7 +46.4 10 +46.4 13 +46.4 15 +46.4 15 +46.5 23 +46.5 31 +46.5 37 +46.5 43 +46.5 54 +46.6 74 +46.6 99 +46.6 113 +46.6 139 +46.6 190 +46.7 271 +46.7 342 +46.7 420 +46.7 525 +46.7 608 +46.8 660 +46.8 653 +46.8 605 +46.8 532 +46.8 480 +46.9 438 +46.9 372 +46.9 328 +46.9 316 +46.9 305 +47.0 299 +47.0 298 +47.0 325 +47.0 345 +47.0 386 +47.1 429 +47.1 491 +47.1 509 +47.1 479 +47.1 402 +47.2 357 +47.2 305 +47.2 256 +47.2 183 +47.2 134 +47.3 91 +47.3 71 +47.3 53 +47.3 42 +47.3 31 +47.4 25 +47.4 22 +47.4 17 +47.4 14 +47.4 10 +47.5 9 +47.5 9 +47.5 10 +47.5 9 +47.5 5 +47.6 4 +47.6 4 +47.6 7 +47.6 6 +47.6 7 +47.7 9 +47.7 13 +47.7 11 +47.7 12 +47.7 16 +47.8 21 +47.8 30 +47.8 35 +47.8 47 +47.8 62 +47.9 90 +47.9 100 +47.9 109 +47.9 132 +47.9 159 +48.0 165 +48.0 162 +48.0 174 +48.0 179 +48.0 180 +48.1 185 +48.1 184 +48.1 180 +48.1 162 +48.1 147 +48.2 122 +48.2 114 +48.2 97 +48.2 86 +48.2 70 +48.3 62 +48.3 61 +48.3 87 +48.3 118 +48.3 137 +48.4 146 +48.4 144 +48.4 138 +48.4 140 +48.4 140 +48.5 118 +48.5 83 +48.5 69 +48.5 61 +48.5 44 +48.6 26 +48.6 18 +48.6 17 +48.6 13 +48.6 9 +48.7 11 +48.7 14 +48.7 13 +48.7 8 +48.7 6 +48.8 3 +48.8 3 +48.8 6 +48.8 8 +48.8 11 +48.9 18 +48.9 19 +48.9 24 +48.9 27 +48.9 33 +49.0 31 +49.0 33 +49.0 35 +49.0 32 +49.0 22 +49.1 20 +49.1 21 +49.1 22 +49.1 15 +49.1 13 +49.2 11 +49.2 15 +49.2 18 +49.2 19 +49.2 16 +49.3 24 +49.3 45 +49.3 55 +49.3 73 +49.3 100 +49.4 136 +49.4 179 +49.4 271 +49.4 369 +49.4 436 +49.5 468 +49.5 470 +49.5 453 +49.5 402 +49.5 357 +49.6 292 +49.6 249 +49.6 195 +49.6 164 +49.6 121 +49.7 98 +49.7 87 +49.7 97 +49.7 100 +49.7 102 +49.8 109 +49.8 99 +49.8 89 +49.8 84 +49.8 79 +49.9 59 +49.9 39 +49.9 38 +49.9 31 +49.9 31 +50.0 28 +50.0 31 +50.0 33 +50.0 42 +50.0 52 +50.1 64 +50.1 70 +50.1 80 +50.1 74 +50.1 73 +50.2 70 +50.2 70 +50.2 71 +50.2 87 +50.2 106 +50.3 118 +50.3 147 +50.3 183 +50.3 212 +50.3 216 +50.4 200 +50.4 180 +50.4 166 +50.4 157 +50.4 128 +50.5 105 +50.5 78 +50.5 65 +50.5 55 +50.5 58 +50.6 52 +50.6 62 +50.6 85 +50.6 109 +50.6 143 +50.7 180 +50.7 236 +50.7 287 +50.7 348 +50.7 394 +50.8 443 +50.8 438 +50.8 407 +50.8 352 +50.8 308 +50.9 242 +50.9 184 +50.9 143 +50.9 116 +50.9 83 +51.0 51 +51.0 42 +51.0 41 +51.0 35 +51.0 29 +51.1 25 +51.1 32 +51.1 47 +51.1 62 +51.1 72 +51.2 86 +51.2 125 +51.2 156 +51.2 198 +51.2 226 +51.3 242 +51.3 218 +51.3 195 +51.3 180 +51.3 168 +51.4 158 +51.4 142 +51.4 118 +51.4 98 +51.4 86 +51.5 76 +51.5 70 +51.5 65 +51.5 59 +51.5 39 +51.6 35 +51.6 30 +51.6 29 +51.6 21 +51.6 16 +51.7 12 +51.7 21 +51.7 24 +51.7 26 +51.7 32 +51.8 43 +51.8 65 +51.8 87 +51.8 129 +51.8 165 +51.9 187 +51.9 179 +51.9 173 +51.9 170 +51.9 161 +52.0 142 +52.0 111 +52.0 83 +52.0 69 +52.0 61 +52.1 43 +52.1 29 +52.1 18 +52.1 16 +52.1 13 +52.2 15 +52.2 9 +52.2 12 +52.2 16 +52.2 18 +52.3 13 +52.3 10 +52.3 10 +52.3 8 +52.3 7 +52.4 9 +52.4 8 +52.4 8 +52.4 8 +52.4 13 +52.5 13 +52.5 15 +52.5 13 +52.5 17 +52.5 22 +52.6 31 +52.6 35 +52.6 32 +52.6 27 +52.6 29 +52.7 32 +52.7 26 +52.7 23 +52.7 29 +52.7 32 +52.8 26 +52.8 36 +52.8 49 +52.8 65 +52.8 90 +52.9 134 +52.9 166 +52.9 179 +52.9 174 +52.9 177 +53.0 168 +53.0 168 +53.0 153 +53.0 146 +53.0 130 +53.1 123 +53.1 125 +53.1 142 +53.1 174 +53.1 223 +53.2 269 +53.2 277 +53.2 264 +53.2 257 +53.2 249 +53.3 213 +53.3 177 +53.3 140 +53.3 105 +53.3 71 +53.4 56 +53.4 59 +53.4 59 +53.4 54 +53.4 54 +53.5 59 +53.5 59 +53.5 60 +53.5 61 +53.5 54 +53.6 54 +53.6 48 +53.6 43 +53.6 31 +53.6 31 +53.7 27 +53.7 29 +53.7 41 +53.7 62 +53.7 83 +53.8 99 +53.8 128 +53.8 165 +53.8 175 +53.8 173 +53.9 162 +53.9 162 +53.9 141 +53.9 130 +53.9 99 +54.0 68 +54.0 47 +54.0 42 +54.0 32 +54.0 24 +54.1 25 +54.1 22 +54.1 20 +54.1 19 +54.1 22 +54.2 34 +54.2 54 +54.2 75 +54.2 102 +54.2 140 +54.3 175 +54.3 200 +54.3 222 +54.3 252 +54.3 263 +54.4 236 +54.4 211 +54.4 191 +54.4 169 +54.4 137 +54.5 115 +54.5 91 +54.5 61 +54.5 46 +54.5 34 +54.6 29 +54.6 20 +54.6 15 +54.6 11 +54.6 7 +54.7 6 +54.7 4 +54.7 5 +54.7 5 +54.7 6 +54.8 4 +54.8 4 +54.8 6 +54.8 9 +54.8 8 +54.9 8 +54.9 9 +54.9 8 +54.9 5 +54.9 8 +55.0 8 +55.0 13 +55.0 16 +55.0 22 +55.0 27 +55.1 31 +55.1 31 +55.1 29 +55.1 27 +55.1 25 +55.2 26 +55.2 27 +55.2 20 +55.2 17 +55.2 15 +55.3 12 +55.3 10 +55.3 8 +55.3 6 +55.3 5 +55.4 7 +55.4 6 +55.4 6 +55.4 4 +55.4 3 +55.5 4 +55.5 6 +55.5 6 +55.5 4 +55.5 2 +55.6 2 +55.6 3 +55.6 3 +55.6 3 +55.6 5 +55.7 7 +55.7 5 +55.7 7 +55.7 9 +55.7 8 +55.8 6 +55.8 12 +55.8 14 +55.8 15 +55.8 22 +55.9 34 +55.9 42 +55.9 47 +55.9 71 +55.9 115 +56.0 158 +56.0 170 +56.0 176 +56.0 178 +56.0 177 +56.1 160 +56.1 148 +56.1 132 +56.1 121 +56.1 108 +56.2 97 +56.2 84 +56.2 65 +56.2 52 +56.2 44 +56.3 34 +56.3 25 +56.3 20 +56.3 21 +56.3 17 +56.4 18 +56.4 10 +56.4 6 +56.4 8 +56.4 12 +56.5 18 +56.5 22 +56.5 25 +56.5 32 +56.5 47 +56.6 58 +56.6 55 +56.6 47 +56.6 35 +56.6 29 +56.7 27 +56.7 26 +56.7 20 +56.7 12 +56.7 7 +56.8 7 +56.8 7 +56.8 8 +56.8 5 +56.8 6 +56.9 5 +56.9 7 +56.9 8 +56.9 9 +56.9 7 +57.0 10 +57.0 14 +57.0 24 +57.0 43 +57.0 63 +57.1 71 +57.1 95 +57.1 133 +57.1 162 +57.1 171 +57.2 163 +57.2 154 +57.2 129 +57.2 116 +57.2 98 +57.3 92 +57.3 70 +57.3 59 +57.3 55 +57.3 52 +57.4 45 +57.4 52 +57.4 60 +57.4 61 +57.4 56 +57.5 52 +57.5 52 +57.5 55 +57.5 57 +57.5 51 +57.6 44 +57.6 33 +57.6 29 +57.6 27 +57.6 20 +57.7 11 +57.7 11 +57.7 12 +57.7 10 +57.7 7 +57.8 8 +57.8 8 +57.8 4 +57.8 3 +57.8 4 +57.9 5 +57.9 5 +57.9 5 +57.9 4 +57.9 4 +58.0 4 +58.0 5 +58.0 5 +58.0 5 +58.0 4 +58.1 3 +58.1 3 +58.1 4 +58.1 4 +58.1 4 +58.2 4 +58.2 3 +58.2 2 +58.2 2 +58.2 2 +58.3 3 +58.3 3 +58.3 3 +58.3 3 +58.3 2 +58.4 3 +58.4 2 +58.4 3 +58.4 3 +58.4 3 +58.5 1 +58.5 3 +58.5 3 +58.5 4 +58.5 3 +58.6 3 +58.6 4 +58.6 4 +58.6 3 +58.6 3 +58.7 4 +58.7 4 +58.7 3 +58.7 2 +58.7 2 +58.8 3 +58.8 2 +58.8 2 +58.8 4 +58.8 5 +58.9 5 +58.9 4 +58.9 5 +58.9 4 +58.9 6 +59.0 5 +59.0 5 +59.0 6 +59.0 6 +59.0 6 +59.1 4 +59.1 3 +59.1 4 +59.1 6 +59.1 8 +59.2 12 +59.2 19 +59.2 22 +59.2 29 +59.2 35 +59.3 36 +59.3 35 +59.3 38 +59.3 37 +59.3 31 +59.4 33 +59.4 41 +59.4 48 +59.4 54 +59.4 78 +59.5 93 +59.5 101 +59.5 96 +59.5 91 +59.5 80 +59.6 77 +59.6 69 +59.6 56 +59.6 39 +59.6 29 +59.7 20 +59.7 17 +59.7 12 +59.7 12 +59.7 13 +59.8 11 +59.8 10 +59.8 10 +59.8 14 +59.8 22 +59.9 30 +59.9 32 +59.9 44 +59.9 69 +59.9 96 +60.0 114 +60.0 125 +60.0 124 +60.0 112 +60.0 103 +60.1 91 +60.1 88 +60.1 76 +60.1 70 +60.1 53 +60.2 43 +60.2 31 +60.2 28 +60.2 25 +60.2 21 +60.3 21 +60.3 20 +60.3 22 +60.3 28 +60.3 32 +60.4 31 +60.4 33 +60.4 29 +60.4 24 +60.4 20 +60.5 22 +60.5 16 +60.5 11 +60.5 8 +60.5 7 +60.6 4 +60.6 2 +60.6 4 +60.6 8 +60.6 7 +60.7 7 +60.7 6 +60.7 8 +60.7 7 +60.7 9 +60.8 10 +60.8 16 +60.8 22 +60.8 23 +60.8 23 +60.9 28 +60.9 31 +60.9 29 +60.9 23 +60.9 23 +61.0 20 +61.0 16 +61.0 10 +61.0 13 +61.0 12 +61.1 9 +61.1 8 +61.1 13 +61.1 15 +61.1 13 +61.2 18 +61.2 22 +61.2 26 +61.2 45 +61.2 68 +61.3 91 +61.3 119 +61.3 146 +61.3 134 +61.3 123 +61.4 108 +61.4 100 +61.4 89 +61.4 96 +61.4 89 +61.5 74 +61.5 65 +61.5 54 +61.5 52 +61.5 44 +61.6 43 +61.6 30 +61.6 31 +61.6 24 +61.6 23 +61.7 17 +61.7 16 +61.7 12 +61.7 10 +61.7 6 +61.8 3 +61.8 3 +61.8 4 +61.8 6 +61.8 7 +61.9 4 +61.9 2 +61.9 2 +61.9 5 +61.9 5 +62.0 5 +62.0 5 +62.0 4 +62.0 4 +62.0 3 +62.1 3 +62.1 1 +62.1 4 +62.1 5 +62.1 4 +62.2 2 +62.2 3 +62.2 5 +62.2 3 +62.2 2 +62.3 1 +62.3 7 +62.3 10 +62.3 11 +62.3 14 +62.4 22 +62.4 29 +62.4 41 +62.4 58 +62.4 70 +62.5 91 +62.5 122 +62.5 142 +62.5 135 +62.5 130 +62.6 111 +62.6 89 +62.6 73 +62.6 72 +62.6 61 +62.7 45 +62.7 32 +62.7 26 +62.7 23 +62.7 18 +62.8 10 +62.8 6 +62.8 6 +62.8 4 +62.8 3 +62.9 4 +62.9 5 +62.9 5 +62.9 6 +62.9 6 +63.0 6 +63.0 8 +63.0 16 +63.0 21 +63.0 21 +63.1 27 +63.1 44 +63.1 75 +63.1 108 +63.1 126 +63.2 121 +63.2 119 +63.2 117 +63.2 109 +63.2 94 +63.3 91 +63.3 90 +63.3 88 +63.3 70 +63.3 60 +63.4 57 +63.4 66 +63.4 60 +63.4 50 +63.4 41 +63.5 40 +63.5 43 +63.5 39 +63.5 40 +63.5 32 +63.6 22 +63.6 13 +63.6 12 +63.6 13 +63.6 9 +63.7 5 +63.7 4 +63.7 4 +63.7 5 +63.7 4 +63.8 3 +63.8 4 +63.8 4 +63.8 6 +63.8 9 +63.9 10 +63.9 7 +63.9 7 +63.9 12 +63.9 20 +64.0 23 +64.0 33 +64.0 54 +64.0 73 +64.0 106 +64.1 148 +64.1 213 +64.1 282 +64.1 347 +64.1 395 +64.2 401 +64.2 399 +64.2 359 +64.2 343 +64.2 299 +64.3 272 +64.3 240 +64.3 217 +64.3 165 +64.3 116 +64.4 79 +64.4 57 +64.4 44 +64.4 40 +64.4 27 +64.5 18 +64.5 16 +64.5 20 +64.5 17 +64.5 13 +64.6 17 +64.6 21 +64.6 27 +64.6 31 +64.6 32 +64.7 25 +64.7 20 +64.7 22 +64.7 26 +64.7 26 +64.8 20 +64.8 14 +64.8 13 +64.8 13 +64.8 10 +64.9 6 +64.9 8 +64.9 11 +64.9 9 +64.9 7 +65.0 11 +65.0 14 +65.0 18 +65.0 22 +65.0 39 +65.1 54 +65.1 79 +65.1 111 +65.1 139 +65.1 162 +65.2 167 +65.2 160 +65.2 137 +65.2 120 +65.2 124 +65.3 118 +65.3 101 +65.3 76 +65.3 66 +65.3 48 +65.4 29 +65.4 20 +65.4 17 +65.4 13 +65.4 12 +65.5 10 +65.5 10 +65.5 6 +65.5 4 +65.5 2 +65.6 3 +65.6 3 +65.6 4 +65.6 4 +65.6 5 +65.7 4 +65.7 3 +65.7 1 +65.7 1 +65.7 1 +65.8 3 +65.8 4 +65.8 5 +65.8 3 +65.8 6 +65.9 10 +65.9 12 +65.9 13 +65.9 18 +65.9 21 +66.0 25 +66.0 29 +66.0 34 +66.0 31 +66.0 28 +66.1 25 +66.1 27 +66.1 23 +66.1 24 +66.1 25 +66.2 32 +66.2 30 +66.2 38 +66.2 47 +66.2 47 +66.3 45 +66.3 47 +66.3 46 +66.3 35 +66.3 34 +66.4 32 +66.4 24 +66.4 18 +66.4 15 +66.4 11 +66.5 7 +66.5 7 +66.5 5 +66.5 6 +66.5 5 +66.6 6 +66.6 6 +66.6 5 +66.6 4 +66.6 2 +66.7 1 +66.7 3 +66.7 5 +66.7 3 +66.7 2 +66.8 2 +66.8 4 +66.8 4 +66.8 3 +66.8 2 +66.9 3 +66.9 2 +66.9 2 +66.9 3 +66.9 3 +67.0 2 +67.0 2 +67.0 2 +67.0 2 +67.0 4 +67.1 4 +67.1 2 +67.1 2 +67.1 1 +67.1 3 +67.2 7 +67.2 9 +67.2 7 +67.2 10 +67.2 16 +67.3 25 +67.3 38 +67.3 50 +67.3 55 +67.3 56 +67.4 54 +67.4 52 +67.4 48 +67.4 58 +67.4 65 +67.5 69 +67.5 50 +67.5 40 +67.5 34 +67.5 31 +67.6 21 +67.6 14 +67.6 12 +67.6 9 +67.6 10 +67.7 6 +67.7 4 +67.7 3 +67.7 3 +67.7 4 +67.8 3 +67.8 3 +67.8 3 +67.8 3 +67.8 2 +67.9 2 +67.9 2 +67.9 2 +67.9 1 +67.9 2 +68.0 2 +68.0 2 +68.0 1 +68.0 2 +68.0 2 +68.1 1 +68.1 1 +68.1 3 +68.1 3 +68.1 2 +68.2 1 +68.2 2 +68.2 3 +68.2 3 +68.2 3 +68.3 3 +68.3 2 +68.3 3 +68.3 2 +68.3 3 +68.4 3 +68.4 3 +68.4 2 +68.4 2 +68.4 3 +68.5 3 +68.5 3 +68.5 2 +68.5 2 +68.5 3 +68.6 2 +68.6 1 +68.6 2 +68.6 2 +68.6 2 +68.7 1 +68.7 1 +68.7 2 +68.7 4 +68.7 3 +68.8 3 +68.8 3 +68.8 3 +68.8 2 +68.8 2 +68.9 2 +68.9 2 +68.9 1 +68.9 2 +68.9 2 +69.0 2 +69.0 2 +69.0 2 +69.0 2 +69.0 2 +69.1 3 +69.1 2 +69.1 1 +69.1 1 +69.1 1 +69.2 1 +69.2 1 +69.2 2 +69.2 3 +69.2 2 +69.3 2 +69.3 2 +69.3 2 +69.3 3 +69.3 4 +69.4 4 +69.4 2 +69.4 2 +69.4 3 +69.4 3 +69.5 2 +69.5 2 +69.5 3 +69.5 3 +69.5 1 +69.6 2 +69.6 2 +69.6 4 +69.6 3 +69.6 2 +69.7 2 +69.7 2 +69.7 2 +69.7 2 +69.7 2 +69.8 2 +69.8 2 +69.8 2 +69.8 3 +69.8 3 +69.9 3 +69.9 3 +69.9 4 +69.9 3 +69.9 3 +70.0 3 diff --git a/tasks/test_001/human_demo/actions_raw.json b/tasks/test_001/human_demo/actions_raw.json new file mode 100644 index 0000000..833c363 --- /dev/null +++ b/tasks/test_001/human_demo/actions_raw.json @@ -0,0 +1,315 @@ +{ + "metadata": { + "task_id": "test_001", + "vm_resolution": [ + 3840, + 2160 + ], + "vm_screenshot_resolution": [ + 3840, + 2160 + ], + "vm_dpi_scale": 2.0, + "recording_start": "2026-01-12T18:18:23.729479", + "recording_end": "2026-01-12T18:20:05.274622", + "total_duration": 102.75, + "total_actions": 39, + "total_screenshots": 13 + }, + "actions": [ + { + "t": 11.522, + "type": "key", + "key": "ctrl" + }, + { + "t": 12.05, + "type": "key", + "key": "right" + }, + { + "t": 15.13, + "type": "click", + "button": "left", + "pos_host": [ + 35.85546875, + 331.6875 + ], + "pos_vm": [ + 70, + 662 + ], + "screenshot": "screens/0002_click.png" + }, + { + "t": 22.047, + "type": "click", + "button": "left", + "pos_host": [ + 35.85546875, + 331.6875 + ], + "pos_vm": [ + 1604, + 1140 + ], + "screenshot": "screens/0003_click.png" + }, + { + "t": 27.375, + "type": "click", + "button": "left", + "pos_host": [ + 325.9765625, + 190.70703125 + ], + "pos_vm": [ + 650, + 380 + ], + "screenshot": "screens/0004_click.png" + }, + { + "t": 31.023, + "type": "click", + "button": "left", + "pos_host": [ + 325.9765625, + 190.70703125 + ], + "pos_vm": [ + 928, + 432 + ], + "screenshot": "screens/0005_click.png" + }, + { + "t": 36.217, + "type": "click", + "button": "left", + "pos_host": [ + 458.2890625, + 324.62890625 + ], + "pos_vm": [ + 916, + 648 + ], + "screenshot": "screens/0006_click.png" + }, + { + "t": 43.173, + "type": "click", + "button": "left", + "pos_host": [ + 457.40625, + 217.1015625 + ], + "pos_vm": [ + 914, + 434 + ], + "screenshot": "screens/0007_click.png" + }, + { + "t": 52.024, + "type": "click", + "button": "left", + "pos_host": [ + 605.609375, + 510.88671875 + ], + "pos_vm": [ + 1210, + 1020 + ], + "screenshot": "screens/0008_click.png" + }, + { + "t": 59.587, + "type": "click", + "button": "left", + "pos_host": [ + 253.43359375, + 193.984375 + ], + "pos_vm": [ + 506, + 386 + ], + "screenshot": "screens/0009_click.png" + }, + { + "t": 64.302, + "type": "click", + "button": "left", + "pos_host": [ + 652.21484375, + 511.13671875 + ], + "pos_vm": [ + 1304, + 1022 + ], + "screenshot": "screens/0010_click.png" + }, + { + "t": 72.265, + "type": "key", + "key": "t" + }, + { + "t": 73.355, + "type": "key", + "key": "shift" + }, + { + "t": 74.054, + "type": "key", + "key": "e" + }, + { + "t": 74.363, + "type": "key", + "key": "s" + }, + { + "t": 74.472, + "type": "key", + "key": "t" + }, + { + "t": 74.854, + "type": "key", + "key": "shift" + }, + { + "t": 74.957, + "type": "key", + "key": "_" + }, + { + "t": 75.13, + "type": "key", + "key": "r" + }, + { + "t": 75.17, + "type": "key", + "key": "e" + }, + { + "t": 75.386, + "type": "key", + "key": "s" + }, + { + "t": 75.547, + "type": "key", + "key": "u" + }, + { + "t": 75.799, + "type": "key", + "key": "l" + }, + { + "t": 75.895, + "type": "key", + "key": "t" + }, + { + "t": 76.385, + "type": "key", + "key": "." + }, + { + "t": 76.824, + "type": "key", + "key": "t" + }, + { + "t": 77.063, + "type": "key", + "key": "x" + }, + { + "t": 77.304, + "type": "key", + "key": "t" + }, + { + "t": 78.987, + "type": "key", + "key": "backspace" + }, + { + "t": 79.154, + "type": "key", + "key": "backspace" + }, + { + "t": 79.307, + "type": "key", + "key": "backspace" + }, + { + "t": 79.929, + "type": "key", + "key": "backspace" + }, + { + "t": 80.838, + "type": "click", + "button": "left", + "pos_host": [ + 1195.63671875, + 750.0078125 + ], + "pos_vm": [ + 2390, + 1500 + ], + "screenshot": "screens/0011_click.png" + }, + { + "t": 91.128, + "type": "key", + "key": "ctrl" + }, + { + "t": 91.462, + "type": "key", + "key": "left" + }, + { + "t": 96.267, + "type": "key", + "key": "enter" + }, + { + "t": 93.763, + "type": "click", + "button": "left", + "pos_host": [ + 953.81640625, + 987.36328125 + ], + "pos_vm": [ + 78, + 1044 + ], + "screenshot": "screens/0012_click.png" + }, + { + "t": 98.791, + "type": "key", + "key": "ctrl" + }, + { + "t": 98.955, + "type": "key", + "key": "c" + } + ] +} \ No newline at end of file diff --git a/tasks/test_001/human_demo/screens/0001_initial.png b/tasks/test_001/human_demo/screens/0001_initial.png new file mode 100644 index 0000000..039f352 Binary files /dev/null and b/tasks/test_001/human_demo/screens/0001_initial.png differ diff --git a/tasks/test_001/human_demo/screens/0002_click.png b/tasks/test_001/human_demo/screens/0002_click.png new file mode 100644 index 0000000..22c7b22 Binary files /dev/null and b/tasks/test_001/human_demo/screens/0002_click.png differ diff --git a/tasks/test_001/human_demo/screens/0003_click.png b/tasks/test_001/human_demo/screens/0003_click.png new file mode 100644 index 0000000..cefcaaf Binary files /dev/null and b/tasks/test_001/human_demo/screens/0003_click.png differ diff --git a/tasks/test_001/human_demo/screens/0004_click.png b/tasks/test_001/human_demo/screens/0004_click.png new file mode 100644 index 0000000..6217367 Binary files /dev/null and b/tasks/test_001/human_demo/screens/0004_click.png differ diff --git a/tasks/test_001/human_demo/screens/0005_click.png b/tasks/test_001/human_demo/screens/0005_click.png new file mode 100644 index 0000000..46c2045 Binary files /dev/null and b/tasks/test_001/human_demo/screens/0005_click.png differ diff --git a/tasks/test_001/human_demo/screens/0006_click.png b/tasks/test_001/human_demo/screens/0006_click.png new file mode 100644 index 0000000..a353855 Binary files /dev/null and b/tasks/test_001/human_demo/screens/0006_click.png differ diff --git a/tasks/test_001/human_demo/screens/0007_click.png b/tasks/test_001/human_demo/screens/0007_click.png new file mode 100644 index 0000000..f9a41c2 Binary files /dev/null and b/tasks/test_001/human_demo/screens/0007_click.png differ diff --git a/tasks/test_001/human_demo/screens/0008_click.png b/tasks/test_001/human_demo/screens/0008_click.png new file mode 100644 index 0000000..5520b1f Binary files /dev/null and b/tasks/test_001/human_demo/screens/0008_click.png differ diff --git a/tasks/test_001/human_demo/screens/0009_click.png b/tasks/test_001/human_demo/screens/0009_click.png new file mode 100644 index 0000000..4eb5054 Binary files /dev/null and b/tasks/test_001/human_demo/screens/0009_click.png differ diff --git a/tasks/test_001/human_demo/screens/0010_click.png b/tasks/test_001/human_demo/screens/0010_click.png new file mode 100644 index 0000000..69b6aac Binary files /dev/null and b/tasks/test_001/human_demo/screens/0010_click.png differ diff --git a/tasks/test_001/human_demo/screens/0011_click.png b/tasks/test_001/human_demo/screens/0011_click.png new file mode 100644 index 0000000..8d33eb6 Binary files /dev/null and b/tasks/test_001/human_demo/screens/0011_click.png differ diff --git a/tasks/test_001/human_demo/screens/0012_click.png b/tasks/test_001/human_demo/screens/0012_click.png new file mode 100644 index 0000000..f2780bf Binary files /dev/null and b/tasks/test_001/human_demo/screens/0012_click.png differ diff --git a/tasks/test_001/human_demo/screens/0013_final.png b/tasks/test_001/human_demo/screens/0013_final.png new file mode 100644 index 0000000..acc5007 Binary files /dev/null and b/tasks/test_001/human_demo/screens/0013_final.png differ diff --git a/tasks/test_001/task.json b/tasks/test_001/task.json new file mode 100644 index 0000000..d5d4764 --- /dev/null +++ b/tasks/test_001/task.json @@ -0,0 +1,20 @@ +{ + "id": "test_001", + "category": "basic_processing", + "difficulty": "easy", + "instruction": "请打开桌面上的 DEMO01.MDI 文件,进行平滑处理 (Smoothing),平滑点数设置为 5,然后将处理后的曲线导出为 ASCII (.txt) 文件并命名为 smooth_result.txt。", + "input": { + "source_file": "../../data/source/DEMO01.MDI", + "inject_to": "C:\\Users\\lzy\\Desktop\\DEMO01.MDI" + }, + "output": { + "expected_file": "test_result.txt", + "collect_from": "C:\\Users\\lzy\\Desktop\\test_result.txt" + }, + "evaluation": { + "method": "xrd_data_compare", + "ground_truth": "ground_truth/test_result.txt", + "target_output": "agent_output/test_result.txt", + "tolerance": 0.0001 + } +} \ No newline at end of file