Prelims
a) R12C7 = {49/58/67}, no 1,2,3
b) R12C8 = {29/38/47/56}, no 1
c) R34C1 = {14/23}
d) R34C6 = {39/48/57}, no 1,2,6
e) R5C12 = {19/28/37/46}, no 5
f) R5C89 = {69/78}
g) R67C4 = {79}
h) R67C9 = {19/28/37/46}, no 5
i) R89C2 = {19/28/37/46}, no 5
j) R89C3 = {15/24}
k) 8(3) cage at R6C7 = {125/134}
l) 32(5) at R6C1 = {26789/35789/45689}, no 1
m) 29(7) cage at R4C4 = {1234568}, no 7,9
1. 45 rule on N2 1 innie R3C6 = 3, R4C6 = 9, R6C4 = 7, R7C4 = 9, clean-up: no 2 in R4C1, no 1 in R6C9, no 3 in R7C9
CPEs resulting from Prelims
2a. 32(5) at R6C1 = {26789/35789/45689}, no 8,9 in R5C1, clean-up: no 1,2 in R5C2
2b. 8(3) cage at R6C7 = {125/134}, no 1 in R4C8
3. 45 rule on N1 2 innies R3C12 = 12 = [48], R4C1 = 1, clean-up: no 2 in R5C1, no 6,9 in R5C2, no 2 in R89C2
3a. Killer pair 6,7 in R5C12 and R5C89, locked for R5
4. R3C2 = 8 -> R4C23 = {27/45} (cannot be {36} which clashes with R5C12), no 3,6
4a. Killer pair 4,7 in R4C23 and R5C12, locked for N4
5. 45 rule on N9 2 innies R7C89 = 8 = [17/26], R6C9 = {34}
5a. 9 in N6 only in R5C789, locked for R5
6. 8(3) cage at R6C7 = {125} (only remaining combination, cannot be {134} which clashes with R6C9), 5 locked for R6 and N6
6a. 8(3) cage = {125}, CPE no 2 in R4C8
7. 13(3) cage at R1C1 = {139/157/256}
7a. 1 of {139/157} must be in R1C2 -> no 7,9 in R1C2
8. 13(3) cage at R1C4 = {148/157/247/256}, no 9
9. 45 rule on C1 3 outies R156C2 = 15 = {249/267/357/456} (cannot be {159} because 1,5 only in R1C2), no 1
9a. 3 of {357} must be in R6C2 -> no 3 in R15C2, clean-up: no 7 in R5C1
10. 13(3) cage at R1C1 (step 7) = {256} (only remaining combination), locked for N1
10a. 3 in C1 only in R56789C1, CPE no 3 in R6C2
11. 45 rule on C1 2 outies R16C2 = 1 innie R5C1 + 5
11a. R5C1 = {36} -> R16C2 = 8,11 = {26}/[29] (cannot be [56] which clashes with R5C1), no 5, 2 locked for C2, clean-up: no 7 in R4C3 (step 4)
11b. Naked triple {256} in 13(3) cage at R1C1, 5 locked for C1
12. 32(5) at R6C1 = {26789} (only remaining combination), no 3
13. R5C1 = 3 (hidden single in C1), R5C2 = 7, clean-up: no 2 in R4C3 (step 4), no 8 in R5C89, no 3 in R89C2
13a. Naked pair {45} in R4C23, locked for R4 and N4
13b. Naked pair {69} in R5C89, locked for N6
13c. Killer pair 1,4 in R89C2 and R89C3, locked for N7
13d. 7 in C1 only in R789C1, locked for N7
14. R156C2 (step 9) = {267} (only remaining combination), locked for C2, clean-up: no 4 in R89C2
14a. Naked pair {19} in R89C2, locked for C2 and N7 -> R2C2 = 3, clean-up: no 8 in R1C8, no 5 in R89C3
14b. Naked pair {24} in R89C3, locked for C3 and N7 -> R4C23 = [45], R5C3 = 8
15. 22(4) cage at R5C3 = {3568} (only remaining combination) -> R6C3 = 6, R6C12 = [92], R7C23 = [53], R1C2 = 6, clean-up: no 7 in R2C7, no 5 in R2C8
15a. Naked pair {15} in R6C78, locked for R6, N6 and 8(3) cage at R6C7 -> R7C8 = 2, R7C9 = 6 (step 5), R6C9 = 4, R6C56 = [38], R5C89 = [69], clean-up: no 5,9 in R1C8, no 9 in R2C8
15b. Naked pair {26} in R4C45, locked for R4 and N5
16. R5C7 = 2 -> 20(4) cage at R3C7 = {1289/2369/2567} (cannot be {2378} because 3,8 only in R4C7)
16a. 7 of {2567} must be in R4C7 -> no 7 in R3C78
17. 21(5) cage at R1C9 = {12378} (only remaining combination), no 5, 1 locked for C9 and N3
17a. 5 in C9 only in 14(3) cage at R8C9 = {158} (only remaining combination) -> R9C8 = 1, R89C9 = {58}, locked for C9 and N9, R6C78 = [15], R3C8 = 9, R89C2 = [19], clean-up: no 4 in R12C7
17b. 21(5) cage = {12378} -> R4C8 = 8, clean-up: no 3 in R1C8
17c. Naked pair {47} in R12C8, locked for C8 and N3 -> R8C8 = 3
17d. Naked pair {12} in R23C9, locked for C9 -> R1C9 = 3, R4C9 = 7, R4C7 = 3, R3C7 = 6 (cage sum)
17e. 5 in R3 only in R3C45, locked for N2
18. R2C5 = 9 (hidden single in N2)
18a. 8 in N4 only in 13(3) cage at R1C4 (step 8) = {148} (only remaining combination), locked for N2
18b. R2C6 = 6 (hidden single in N2)
19. 15(3) cage at R8C6 = {258/456} (cannot be {267} which clashes with R1C6), no 7, 5 locked for N8
19a. 6,8 only in R9C5 -> R9C5 = {68}
19b. 15(3) cage = {258/456}, 5 locked for C6
20. R1C3 = 9 (hidden single in N1), R8C7 = 9 (hidden single in N9), R9C4 = 3 (hidden single in N8)
20a. 1 in R1 only in R1C45, locked for N2
[The final breakthrough steps were the hardest ones to find.]
21. 45 rule on R89 2 remaining outies R7C17 = 2 remaining innies R8C45 + 2
21a. R7C17 = [74/84] (cannot be [87] = 15 because R8C45 = 13 = [67] clashes with R8C1 = {67} when R7C1 = 8) -> R7C7 = 4, R9C7 = 7
21b. Naked pair {68} in R9C15, locked for R9 -> R89C9 = [85]
21c. R7C17 = [74/84] = 11,12 -> R8C45 = 9,10 = [27/46/64], no 2 in R8C5
21d. R8C6 = 5 (hidden single in N8)
22. 1,3,7 in N8 only in 21(5) cage at R7C5 = {13467} (only remaining combination, cannot be {12378} which clashes with R58C6, killer ALS block) -> R7C56 = {17}, locked for R7, R8C45 = {46}, locked for R8 and N8, R9C56 = [82]
and the rest is naked singles.