+semp => [
+ map { !$_ ? '-' : sprintf
+ join('',
+ '<svg width="20" height="20" viewBox="0 0 8 18">',
+ '<path stroke="black" d="M4,1 v18"/>',
+ (map {(
+ qq(<path stroke="black" d="M0 $_ h4" transform="rotate(%d 4 $_)"/>),
+ qq(<path stroke="black" d="M4 $_ h4" transform="rotate(-%d 4 $_)"/>),
+ )} 3, 7, 14),
+ '</svg>',
+ ),
+ map { ($_ - 2) * 45 % 360 } split //, $_
+ }
+ # rotation state (0-3) for left and right bar of 3 rows
+ qw(
+ 003000 000200 203300 000030 033030 000130 000330 032330 031330 031330
+ 022020 130120 001320 233010 030210 022310 203001 233001
+ 131001 231301 000202 023302 230003 032003 201003 101003
+ )
+],