Commit 33d8284
authored
ZJIT: Support polymorphic send without block (ruby#15949)
Break out the different cases into different blocks in the bytecode to HIR parser. Use a `RefineType` to plumb the case's type through so the type specialization can see it. Then join the logic back to the rest of the current block after each case's send.
lobsters before
<details>
```
***ZJIT: Printing ZJIT statistics on exit***
Top-20 not inlined C methods (58.7% of total 4,476,259):
Hash#fetch: 849,219 (19.0%)
String#start_with?: 328,017 ( 7.3%)
Regexp#match?: 148,149 ( 3.3%)
Hash#key?: 135,034 ( 3.0%)
Kernel#is_a?: 110,030 ( 2.5%)
Set#include?: 97,934 ( 2.2%)
Integer#===: 96,952 ( 2.2%)
Process.clock_gettime: 92,795 ( 2.1%)
String#sub!: 84,940 ( 1.9%)
String.new: 80,730 ( 1.8%)
SQLite3::Statement#done?: 73,532 ( 1.6%)
SQLite3::Statement#step: 73,532 ( 1.6%)
Time#plus_without_duration: 66,724 ( 1.5%)
String#<<: 63,954 ( 1.4%)
Time#to_i: 60,817 ( 1.4%)
Hash#delete: 60,664 ( 1.4%)
Time#subsec: 60,363 ( 1.3%)
String#hash: 51,261 ( 1.1%)
IO#read: 47,753 ( 1.1%)
String#to_sym: 43,915 ( 1.0%)
Top-20 calls to C functions from JIT code (83.7% of total 35,570,418):
rb_vm_opt_send_without_block: 10,516,746 (29.6%)
rb_vm_env_write: 2,382,117 ( 6.7%)
rb_zjit_writebarrier_check_immediate: 2,241,285 ( 6.3%)
rb_hash_aref: 2,189,588 ( 6.2%)
rb_vm_getinstancevariable: 1,762,596 ( 5.0%)
rb_ivar_get_at_no_ractor_check: 1,702,246 ( 4.8%)
rb_vm_send: 1,460,754 ( 4.1%)
rb_hash_aset: 1,151,302 ( 3.2%)
rb_vm_setinstancevariable: 1,029,286 ( 2.9%)
rb_obj_is_kind_of: 1,000,979 ( 2.8%)
rb_vm_opt_getconstant_path: 623,490 ( 1.8%)
rb_vm_invokesuper: 595,831 ( 1.7%)
Hash#fetch: 562,212 ( 1.6%)
rb_vm_invokeblock: 545,744 ( 1.5%)
rb_class_allocate_instance: 422,454 ( 1.2%)
rb_ec_ary_new_from_values: 388,035 ( 1.1%)
String#start_with?: 328,017 ( 0.9%)
rb_hash_new_with_size: 289,130 ( 0.8%)
fetch: 287,007 ( 0.8%)
rb_vm_sendforward: 284,183 ( 0.8%)
Top-1 not optimized method types for send (100.0% of total 428):
null: 428 (100.0%)
Top-3 not optimized method types for send_without_block (100.0% of total 102,413):
optimized_send: 92,837 (90.6%)
null: 8,595 ( 8.4%)
optimized_block_call: 981 ( 1.0%)
Top-3 not optimized method types for super (100.0% of total 517,931):
cfunc: 489,746 (94.6%)
alias: 26,398 ( 5.1%)
attrset: 1,787 ( 0.3%)
Top-4 instructions with uncategorized fallback reason (100.0% of total 868,223):
invokeblock: 545,744 (62.9%)
sendforward: 284,183 (32.7%)
invokesuperforward: 29,713 ( 3.4%)
opt_send_without_block: 8,583 ( 1.0%)
Top-20 send fallback reasons (100.0% of total 13,432,971):
send_without_block_polymorphic: 4,825,641 (35.9%)
singleton_class_seen: 3,257,447 (24.2%)
send_without_block_no_profiles: 1,906,060 (14.2%)
uncategorized: 868,223 ( 6.5%)
send_no_profiles: 806,168 ( 6.0%)
one_or_more_complex_arg_pass: 537,965 ( 4.0%)
super_not_optimized_method_type: 517,931 ( 3.9%)
send_without_block_megamorphic: 158,893 ( 1.2%)
too_many_args_for_lir: 127,160 ( 0.9%)
send_polymorphic: 112,628 ( 0.8%)
send_without_block_not_optimized_need_permission: 100,041 ( 0.7%)
send_without_block_not_optimized_method_type_optimized: 93,818 ( 0.7%)
super_complex_args_pass: 34,022 ( 0.3%)
super_target_complex_args_pass: 25,536 ( 0.2%)
super_polymorphic: 16,853 ( 0.1%)
obj_to_string_not_string: 13,794 ( 0.1%)
argc_param_mismatch: 9,927 ( 0.1%)
send_without_block_not_optimized_method_type: 8,595 ( 0.1%)
send_without_block_direct_keyword_mismatch: 5,568 ( 0.0%)
send_megamorphic: 4,525 ( 0.0%)
Top-4 setivar fallback reasons (100.0% of total 1,029,286):
not_monomorphic: 992,723 (96.4%)
not_t_object: 21,354 ( 2.1%)
too_complex: 15,188 ( 1.5%)
new_shape_needs_extension: 21 ( 0.0%)
Top-2 getivar fallback reasons (100.0% of total 1,790,794):
not_monomorphic: 1,750,108 (97.7%)
too_complex: 40,686 ( 2.3%)
Top-3 definedivar fallback reasons (100.0% of total 81,713):
not_monomorphic: 80,197 (98.1%)
too_complex: 796 ( 1.0%)
not_t_object: 720 ( 0.9%)
Top-6 invokeblock handler (100.0% of total 545,744):
monomorphic_iseq: 249,809 (45.8%)
polymorphic: 217,915 (39.9%)
monomorphic_ifunc: 46,244 ( 8.5%)
monomorphic_other: 27,938 ( 5.1%)
megamorphic: 2,943 ( 0.5%)
no_profiles: 895 ( 0.2%)
Top-8 popular complex argument-parameter features not optimized (100.0% of total 652,565):
param_forwardable: 246,421 (37.8%)
param_block: 198,808 (30.5%)
param_rest: 101,529 (15.6%)
param_kwrest: 44,809 ( 6.9%)
caller_blockarg: 24,596 ( 3.8%)
caller_splat: 15,969 ( 2.4%)
caller_kw_splat: 14,227 ( 2.2%)
caller_kwarg: 6,206 ( 1.0%)
Top-1 compile error reasons (100.0% of total 38,981):
exception_handler: 38,981 (100.0%)
Top-5 unhandled YARV insns (100.0% of total 4,154):
getconstant: 2,566 (61.8%)
checkmatch: 929 (22.4%)
setblockparam: 443 (10.7%)
once: 171 ( 4.1%)
expandarray: 45 ( 1.1%)
Top-3 unhandled HIR insns (100.0% of total 75,904):
throw: 39,721 (52.3%)
invokebuiltin: 35,772 (47.1%)
array_max: 411 ( 0.5%)
Top-20 side exit reasons (100.0% of total 3,770,125):
guard_shape_failure: 1,927,218 (51.1%)
guard_type_failure: 1,395,315 (37.0%)
block_param_proxy_not_iseq_or_ifunc: 257,894 ( 6.8%)
unhandled_hir_insn: 75,904 ( 2.0%)
compile_error: 38,981 ( 1.0%)
patchpoint_stable_constant_names: 25,375 ( 0.7%)
block_param_proxy_modified: 13,713 ( 0.4%)
fixnum_lshift_overflow: 10,085 ( 0.3%)
fixnum_mult_overflow: 8,550 ( 0.2%)
unhandled_yarv_insn: 4,154 ( 0.1%)
unhandled_block_arg: 2,548 ( 0.1%)
unhandled_newarray_send_pack: 2,322 ( 0.1%)
patchpoint_no_singleton_class: 2,008 ( 0.1%)
patchpoint_no_ep_escape: 1,683 ( 0.0%)
obj_to_string_fallback: 1,358 ( 0.0%)
patchpoint_method_redefined: 1,212 ( 0.0%)
expandarray_failure: 837 ( 0.0%)
guard_super_method_entry: 737 ( 0.0%)
guard_less_failure: 163 ( 0.0%)
interrupt: 49 ( 0.0%)
send_count: 46,003,239
dynamic_send_count: 13,432,971 (29.2%)
optimized_send_count: 32,570,268 (70.8%)
dynamic_setivar_count: 1,029,286 ( 2.2%)
dynamic_getivar_count: 1,790,794 ( 3.9%)
dynamic_definedivar_count: 81,713 ( 0.2%)
iseq_optimized_send_count: 15,117,301 (32.9%)
inline_cfunc_optimized_send_count: 11,837,918 (25.7%)
inline_iseq_optimized_send_count: 884,606 ( 1.9%)
non_variadic_cfunc_optimized_send_count: 2,597,998 ( 5.6%)
variadic_cfunc_optimized_send_count: 2,132,445 ( 4.6%)
compiled_iseq_count: 5,259
failed_iseq_count: 0
compile_time: 1,409ms
profile_time: 10ms
gc_time: 11ms
invalidation_time: 77ms
vm_write_pc_count: 40,924,587
vm_write_sp_count: 40,924,587
vm_write_locals_count: 39,740,467
vm_write_stack_count: 39,740,467
vm_write_to_parent_iseq_local_count: 306,481
vm_read_from_parent_iseq_local_count: 4,841,855
guard_type_count: 48,810,089
guard_type_exit_ratio: 2.9%
guard_shape_count: 19,485,073
guard_shape_exit_ratio: 9.9%
code_region_bytes: 27,262,976
zjit_alloc_bytes: 34,517,324
total_mem_bytes: 61,780,300
side_exit_count: 3,770,125
total_insn_count: 273,152,243
vm_insn_count: 43,926,931
zjit_insn_count: 229,225,312
ratio_in_zjit: 83.9%
```
</details>
lobsters after
<details>
```
***ZJIT: Printing ZJIT statistics on exit***
Top-20 not inlined C methods (61.7% of total 5,220,252):
Hash#fetch: 1,274,409 (24.4%)
String#start_with?: 328,017 ( 6.3%)
Regexp#match?: 147,525 ( 2.8%)
Hash#key?: 139,198 ( 2.7%)
Kernel#is_a?: 110,178 ( 2.1%)
Class#allocate: 107,143 ( 2.1%)
Hash#delete: 106,307 ( 2.0%)
Class#superclass: 98,165 ( 1.9%)
Set#include?: 97,934 ( 1.9%)
Integer#===: 95,874 ( 1.8%)
Process.clock_gettime: 92,795 ( 1.8%)
String#sub!: 80,732 ( 1.5%)
String.new: 80,730 ( 1.5%)
SQLite3::Statement#done?: 73,532 ( 1.4%)
SQLite3::Statement#step: 73,532 ( 1.4%)
Time#plus_without_duration: 66,724 ( 1.3%)
String#<<: 63,954 ( 1.2%)
Kernel#dup: 62,590 ( 1.2%)
Time#to_i: 60,814 ( 1.2%)
Time#subsec: 60,363 ( 1.2%)
Top-20 calls to C functions from JIT code (80.8% of total 33,681,248):
rb_vm_opt_send_without_block: 6,869,559 (20.4%)
rb_hash_aref: 2,487,056 ( 7.4%)
rb_vm_env_write: 2,372,693 ( 7.0%)
rb_zjit_writebarrier_check_immediate: 2,238,890 ( 6.6%)
rb_vm_getinstancevariable: 1,861,700 ( 5.5%)
rb_ivar_get_at_no_ractor_check: 1,702,246 ( 5.1%)
rb_vm_send: 1,468,202 ( 4.4%)
rb_hash_aset: 1,267,469 ( 3.8%)
rb_obj_is_kind_of: 1,126,363 ( 3.3%)
rb_vm_setinstancevariable: 1,055,131 ( 3.1%)
Hash#fetch: 987,402 ( 2.9%)
rb_vm_opt_getconstant_path: 641,779 ( 1.9%)
rb_vm_invokesuper: 603,416 ( 1.8%)
rb_vm_invokeblock: 545,743 ( 1.6%)
rb_class_allocate_instance: 415,748 ( 1.2%)
rb_ec_ary_new_from_values: 380,080 ( 1.1%)
String#start_with?: 328,017 ( 1.0%)
rb_hash_new_with_size: 289,172 ( 0.9%)
fetch: 287,007 ( 0.9%)
rb_vm_sendforward: 283,885 ( 0.8%)
Top-1 not optimized method types for send (100.0% of total 428):
null: 428 (100.0%)
Top-3 not optimized method types for send_without_block (100.0% of total 202,329):
optimized_send: 190,504 (94.2%)
null: 10,844 ( 5.4%)
optimized_block_call: 981 ( 0.5%)
Top-3 not optimized method types for super (100.0% of total 517,421):
cfunc: 489,236 (94.6%)
alias: 26,398 ( 5.1%)
attrset: 1,787 ( 0.3%)
Top-4 instructions with uncategorized fallback reason (100.0% of total 867,452):
invokeblock: 545,743 (62.9%)
sendforward: 283,885 (32.7%)
invokesuperforward: 29,713 ( 3.4%)
opt_send_without_block: 8,111 ( 0.9%)
Top-20 send fallback reasons (100.0% of total 9,800,518):
singleton_class_seen: 3,293,078 (33.6%)
send_without_block_no_profiles: 2,142,301 (21.9%)
uncategorized: 867,452 ( 8.9%)
send_no_profiles: 820,538 ( 8.4%)
send_without_block_polymorphic: 780,065 ( 8.0%)
one_or_more_complex_arg_pass: 556,514 ( 5.7%)
super_not_optimized_method_type: 517,421 ( 5.3%)
send_without_block_not_optimized_method_type_optimized: 191,485 ( 2.0%)
send_without_block_megamorphic: 161,550 ( 1.6%)
too_many_args_for_lir: 127,190 ( 1.3%)
send_polymorphic: 111,290 ( 1.1%)
send_without_block_not_optimized_need_permission: 99,526 ( 1.0%)
super_polymorphic: 45,651 ( 0.5%)
super_complex_args_pass: 33,748 ( 0.3%)
obj_to_string_not_string: 13,794 ( 0.1%)
send_without_block_not_optimized_method_type: 10,844 ( 0.1%)
argc_param_mismatch: 9,927 ( 0.1%)
send_without_block_direct_keyword_mismatch: 6,336 ( 0.1%)
super_target_complex_args_pass: 5,108 ( 0.1%)
send_megamorphic: 4,525 ( 0.0%)
Top-4 setivar fallback reasons (100.0% of total 1,123,837):
not_monomorphic: 1,087,274 (96.7%)
not_t_object: 21,354 ( 1.9%)
too_complex: 15,188 ( 1.4%)
new_shape_needs_extension: 21 ( 0.0%)
Top-2 getivar fallback reasons (100.0% of total 2,132,203):
not_monomorphic: 2,092,243 (98.1%)
too_complex: 39,960 ( 1.9%)
Top-3 definedivar fallback reasons (100.0% of total 107,264):
not_monomorphic: 105,748 (98.6%)
too_complex: 796 ( 0.7%)
not_t_object: 720 ( 0.7%)
Top-6 invokeblock handler (100.0% of total 545,743):
monomorphic_iseq: 249,809 (45.8%)
polymorphic: 217,914 (39.9%)
monomorphic_ifunc: 46,244 ( 8.5%)
monomorphic_other: 27,938 ( 5.1%)
megamorphic: 2,943 ( 0.5%)
no_profiles: 895 ( 0.2%)
Top-8 popular complex argument-parameter features not optimized (100.0% of total 651,185):
param_forwardable: 233,989 (35.9%)
param_block: 205,158 (31.5%)
param_rest: 100,319 (15.4%)
param_kwrest: 44,596 ( 6.8%)
caller_blockarg: 21,863 ( 3.4%)
caller_kw_splat: 20,970 ( 3.2%)
caller_splat: 18,106 ( 2.8%)
caller_kwarg: 6,184 ( 0.9%)
Top-1 compile error reasons (100.0% of total 38,980):
exception_handler: 38,980 (100.0%)
Top-5 unhandled YARV insns (100.0% of total 4,154):
getconstant: 2,566 (61.8%)
checkmatch: 929 (22.4%)
setblockparam: 443 (10.7%)
once: 171 ( 4.1%)
expandarray: 45 ( 1.1%)
Top-3 unhandled HIR insns (100.0% of total 75,633):
throw: 39,447 (52.2%)
invokebuiltin: 35,775 (47.3%)
array_max: 411 ( 0.5%)
Top-20 side exit reasons (100.0% of total 3,734,975):
guard_shape_failure: 1,908,302 (51.1%)
guard_type_failure: 1,391,624 (37.3%)
block_param_proxy_not_iseq_or_ifunc: 246,820 ( 6.6%)
unhandled_hir_insn: 75,633 ( 2.0%)
compile_error: 38,980 ( 1.0%)
patchpoint_stable_constant_names: 25,375 ( 0.7%)
block_param_proxy_modified: 13,713 ( 0.4%)
fixnum_lshift_overflow: 10,085 ( 0.3%)
fixnum_mult_overflow: 8,550 ( 0.2%)
unhandled_yarv_insn: 4,154 ( 0.1%)
unhandled_block_arg: 2,548 ( 0.1%)
unhandled_newarray_send_pack: 2,322 ( 0.1%)
patchpoint_no_singleton_class: 2,008 ( 0.1%)
patchpoint_no_ep_escape: 1,683 ( 0.0%)
obj_to_string_fallback: 1,358 ( 0.0%)
expandarray_failure: 837 ( 0.0%)
patchpoint_method_redefined: 710 ( 0.0%)
guard_less_failure: 163 ( 0.0%)
guard_super_method_entry: 53 ( 0.0%)
interrupt: 38 ( 0.0%)
send_count: 45,128,693
dynamic_send_count: 9,800,518 (21.7%)
optimized_send_count: 35,328,175 (78.3%)
dynamic_setivar_count: 1,123,837 ( 2.5%)
dynamic_getivar_count: 2,132,203 ( 4.7%)
dynamic_definedivar_count: 107,264 ( 0.2%)
iseq_optimized_send_count: 15,891,453 (35.2%)
inline_cfunc_optimized_send_count: 12,866,297 (28.5%)
inline_iseq_optimized_send_count: 1,102,971 ( 2.4%)
non_variadic_cfunc_optimized_send_count: 2,857,775 ( 6.3%)
variadic_cfunc_optimized_send_count: 2,609,679 ( 5.8%)
compiled_iseq_count: 5,268
failed_iseq_count: 0
compile_time: 1,558ms
profile_time: 10ms
gc_time: 13ms
invalidation_time: 84ms
vm_write_pc_count: 39,300,901
vm_write_sp_count: 39,300,901
vm_write_locals_count: 38,133,357
vm_write_stack_count: 38,133,357
vm_write_to_parent_iseq_local_count: 305,249
vm_read_from_parent_iseq_local_count: 4,818,083
guard_type_count: 48,036,224
guard_type_exit_ratio: 2.9%
guard_shape_count: 19,302,903
guard_shape_exit_ratio: 9.9%
code_region_bytes: 29,491,200
zjit_alloc_bytes: 34,932,040
total_mem_bytes: 64,423,240
side_exit_count: 3,734,975
total_insn_count: 272,964,960
vm_insn_count: 46,583,034
zjit_insn_count: 226,381,926
ratio_in_zjit: 82.9%
```
</details>1 parent fbff0c9 commit 33d8284
5 files changed
Lines changed: 288 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
526 | 526 | | |
527 | 527 | | |
528 | 528 | | |
| 529 | + | |
529 | 530 | | |
530 | 531 | | |
531 | 532 | | |
| |||
2187 | 2188 | | |
2188 | 2189 | | |
2189 | 2190 | | |
| 2191 | + | |
| 2192 | + | |
| 2193 | + | |
| 2194 | + | |
| 2195 | + | |
| 2196 | + | |
| 2197 | + | |
| 2198 | + | |
| 2199 | + | |
| 2200 | + | |
| 2201 | + | |
| 2202 | + | |
| 2203 | + | |
| 2204 | + | |
| 2205 | + | |
| 2206 | + | |
| 2207 | + | |
| 2208 | + | |
| 2209 | + | |
| 2210 | + | |
| 2211 | + | |
| 2212 | + | |
| 2213 | + | |
| 2214 | + | |
| 2215 | + | |
| 2216 | + | |
| 2217 | + | |
| 2218 | + | |
| 2219 | + | |
| 2220 | + | |
| 2221 | + | |
| 2222 | + | |
| 2223 | + | |
| 2224 | + | |
| 2225 | + | |
| 2226 | + | |
| 2227 | + | |
| 2228 | + | |
| 2229 | + | |
| 2230 | + | |
| 2231 | + | |
| 2232 | + | |
| 2233 | + | |
| 2234 | + | |
| 2235 | + | |
| 2236 | + | |
| 2237 | + | |
| 2238 | + | |
| 2239 | + | |
| 2240 | + | |
| 2241 | + | |
| 2242 | + | |
| 2243 | + | |
| 2244 | + | |
| 2245 | + | |
| 2246 | + | |
| 2247 | + | |
| 2248 | + | |
| 2249 | + | |
| 2250 | + | |
| 2251 | + | |
| 2252 | + | |
| 2253 | + | |
2190 | 2254 | | |
2191 | 2255 | | |
2192 | 2256 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
72 | | - | |
| 72 | + | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
| |||
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
137 | 141 | | |
138 | 142 | | |
139 | 143 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
626 | 626 | | |
627 | 627 | | |
628 | 628 | | |
| 629 | + | |
629 | 630 | | |
630 | 631 | | |
631 | 632 | | |
| |||
687 | 688 | | |
688 | 689 | | |
689 | 690 | | |
| 691 | + | |
690 | 692 | | |
691 | 693 | | |
692 | 694 | | |
| |||
1016 | 1018 | | |
1017 | 1019 | | |
1018 | 1020 | | |
| 1021 | + | |
| 1022 | + | |
1019 | 1023 | | |
1020 | 1024 | | |
1021 | 1025 | | |
| |||
1242 | 1246 | | |
1243 | 1247 | | |
1244 | 1248 | | |
| 1249 | + | |
1245 | 1250 | | |
1246 | 1251 | | |
1247 | 1252 | | |
| |||
1546 | 1551 | | |
1547 | 1552 | | |
1548 | 1553 | | |
| 1554 | + | |
1549 | 1555 | | |
1550 | 1556 | | |
1551 | 1557 | | |
| |||
2235 | 2241 | | |
2236 | 2242 | | |
2237 | 2243 | | |
| 2244 | + | |
2238 | 2245 | | |
2239 | 2246 | | |
2240 | 2247 | | |
| |||
2497 | 2504 | | |
2498 | 2505 | | |
2499 | 2506 | | |
| 2507 | + | |
2500 | 2508 | | |
2501 | 2509 | | |
2502 | 2510 | | |
| |||
2860 | 2868 | | |
2861 | 2869 | | |
2862 | 2870 | | |
| 2871 | + | |
| 2872 | + | |
| 2873 | + | |
| 2874 | + | |
| 2875 | + | |
| 2876 | + | |
| 2877 | + | |
| 2878 | + | |
| 2879 | + | |
| 2880 | + | |
| 2881 | + | |
| 2882 | + | |
| 2883 | + | |
| 2884 | + | |
| 2885 | + | |
| 2886 | + | |
2863 | 2887 | | |
2864 | 2888 | | |
2865 | 2889 | | |
| |||
4608 | 4632 | | |
4609 | 4633 | | |
4610 | 4634 | | |
| 4635 | + | |
4611 | 4636 | | |
4612 | 4637 | | |
4613 | 4638 | | |
| |||
5579 | 5604 | | |
5580 | 5605 | | |
5581 | 5606 | | |
| 5607 | + | |
5582 | 5608 | | |
5583 | 5609 | | |
5584 | 5610 | | |
| |||
6939 | 6965 | | |
6940 | 6966 | | |
6941 | 6967 | | |
| 6968 | + | |
| 6969 | + | |
| 6970 | + | |
| 6971 | + | |
| 6972 | + | |
| 6973 | + | |
| 6974 | + | |
| 6975 | + | |
| 6976 | + | |
| 6977 | + | |
| 6978 | + | |
| 6979 | + | |
| 6980 | + | |
| 6981 | + | |
| 6982 | + | |
| 6983 | + | |
| 6984 | + | |
| 6985 | + | |
| 6986 | + | |
| 6987 | + | |
| 6988 | + | |
| 6989 | + | |
| 6990 | + | |
| 6991 | + | |
| 6992 | + | |
| 6993 | + | |
| 6994 | + | |
| 6995 | + | |
| 6996 | + | |
| 6997 | + | |
| 6998 | + | |
| 6999 | + | |
| 7000 | + | |
| 7001 | + | |
| 7002 | + | |
| 7003 | + | |
| 7004 | + | |
| 7005 | + | |
| 7006 | + | |
| 7007 | + | |
| 7008 | + | |
| 7009 | + | |
| 7010 | + | |
| 7011 | + | |
| 7012 | + | |
| 7013 | + | |
| 7014 | + | |
| 7015 | + | |
| 7016 | + | |
| 7017 | + | |
| 7018 | + | |
| 7019 | + | |
| 7020 | + | |
| 7021 | + | |
| 7022 | + | |
| 7023 | + | |
| 7024 | + | |
| 7025 | + | |
| 7026 | + | |
| 7027 | + | |
| 7028 | + | |
| 7029 | + | |
| 7030 | + | |
| 7031 | + | |
| 7032 | + | |
6942 | 7033 | | |
6943 | 7034 | | |
6944 | 7035 | | |
| |||
0 commit comments