Skip to content

Instantly share code, notes, and snippets.

@zelinskiy
Last active April 20, 2017 15:47
Show Gist options
  • Select an option

  • Save zelinskiy/16f242aa07d30ca42de63f539911085c to your computer and use it in GitHub Desktop.

Select an option

Save zelinskiy/16f242aa07d30ca42de63f539911085c to your computer and use it in GitHub Desktop.
module Match where
import Data.List
data Direction = Horiz | Vert deriving (Eq, Show)
data LinePointType = Begin | End deriving (Eq, Show)
data LinePoint = LinePoint LinePointType Direction (Int, Int) deriving (Eq)
data Line = Line LinePoint LinePoint deriving (Eq)
instance Show LinePoint where
show (LinePoint Begin Horiz cs) = " ⊢ " ++ show cs
show (LinePoint End Horiz cs) = " ⊣ " ++ show cs
show (LinePoint Begin Vert cs) = " ⊤ " ++ show cs
show (LinePoint End Vert cs) = " ⊥ " ++ show cs
instance Show Line where
show (Line b e) = "{ " ++ show b ++ " # " ++ show e ++ " }"
instance Ord Line where
compare (Line b1 e1) (Line b2 e2) = compare (mag b1 e1) (mag b2 e2)
mag p1 p2 = sqrt $ fromIntegral $ dx^2 + dy^2
where dx = xCoord p1 - xCoord p2
dy = yCoord p1 - yCoord p2
xCoord (LinePoint _ _ (x,y)) = x
yCoord (LinePoint _ _ (x,y)) = y
flipType Begin = End
flipType End = Begin
points0 = [LinePoint End Vert (786,998),LinePoint End Vert (776,996),LinePoint Begin Vert (786,992),LinePoint End Vert (558,992),LinePoint End Vert (24,990),LinePoint End Vert (964,988),LinePoint Begin Vert (776,986),LinePoint End Vert (48,986),LinePoint End Horiz (770,984),LinePoint Begin Horiz (622,984),LinePoint End Vert (394,984),LinePoint End Vert (154,982),LinePoint End Vert (550,978),LinePoint End Horiz (944,976),LinePoint Begin Horiz (908,976),LinePoint End Horiz (850,976),LinePoint Begin Horiz (774,976),LinePoint End Vert (106,976),LinePoint Begin Vert (106,972),LinePoint End Vert (72,972),LinePoint End Vert (926,970),LinePoint End Vert (552,970),LinePoint Begin Vert (550,968),LinePoint End Vert (424,968),LinePoint End Vert (226,968),LinePoint Begin Vert (394,966),LinePoint End Horiz (418,964),LinePoint Begin Horiz (242,964),LinePoint Begin Vert (154,964),LinePoint End Vert (288,962),LinePoint End Horiz (872,960),LinePoint Begin Horiz (692,960),LinePoint Begin Vert (288,958),LinePoint End Vert (194,958),LinePoint End Horiz (820,954),LinePoint Begin Horiz (714,954),LinePoint End Vert (656,954),LinePoint Begin Vert (424,954),LinePoint End Horiz (422,954),LinePoint Begin Horiz (314,954),LinePoint Begin Vert (72,954),LinePoint End Vert (526,952),LinePoint Begin Vert (656,950),LinePoint End Vert (932,948),LinePoint Begin Vert (926,948),LinePoint End Vert (468,944),LinePoint End Vert (196,940),LinePoint End Horiz (458,938),LinePoint Begin Horiz (416,938),LinePoint End Vert (538,932),LinePoint End Vert (586,930),LinePoint Begin Vert (526,928),LinePoint Begin Vert (964,924),LinePoint End Vert (564,924),LinePoint End Vert (678,920),LinePoint Begin Vert (932,918),LinePoint End Vert (716,918),LinePoint Begin Vert (552,918),LinePoint Begin Vert (586,916),LinePoint Begin Vert (468,916),LinePoint Begin Vert (196,916),LinePoint End Horiz (960,914),LinePoint Begin Horiz (850,914),LinePoint End Vert (2,914),LinePoint End Vert (406,912),LinePoint Begin Vert (226,910),LinePoint End Vert (334,908),LinePoint Begin Vert (48,908),LinePoint Begin Vert (564,906),LinePoint End Vert (384,902),LinePoint End Horiz (850,898),LinePoint Begin Horiz (720,898),LinePoint End Vert (386,898),LinePoint End Vert (492,894),LinePoint Begin Vert (386,894),LinePoint Begin Vert (716,890),LinePoint Begin Vert (678,886),LinePoint End Vert (394,886),LinePoint End Vert (990,882),LinePoint End Vert (452,880),LinePoint End Horiz (58,880),LinePoint Begin Horiz (50,880),LinePoint Begin Vert (24,876),LinePoint Begin Vert (538,874),LinePoint End Horiz (274,874),LinePoint Begin Horiz (222,874),LinePoint End Horiz (660,872),LinePoint Begin Horiz (642,872),LinePoint End Vert (516,872),LinePoint Begin Vert (492,872),LinePoint End Horiz (886,866),LinePoint Begin Horiz (562,866),LinePoint Begin Vert (452,866),LinePoint Begin Vert (516,862),LinePoint Begin Vert (334,862),LinePoint Begin Vert (558,860),LinePoint End Horiz (954,856),LinePoint Begin Horiz (774,856),LinePoint End Horiz (236,854),LinePoint Begin Horiz (224,854),LinePoint End Horiz (606,848),LinePoint Begin Horiz (430,848),LinePoint Begin Vert (394,848),LinePoint End Horiz (926,844),LinePoint Begin Horiz (870,844),LinePoint Begin Vert (384,844),LinePoint End Horiz (948,840),LinePoint Begin Horiz (768,840),LinePoint Begin Vert (194,840),LinePoint End Horiz (708,838),LinePoint Begin Horiz (414,838),LinePoint End Horiz (618,836),LinePoint Begin Horiz (614,836),LinePoint End Horiz (984,828),LinePoint Begin Horiz (914,828),LinePoint End Vert (976,826),LinePoint Begin Vert (406,824),LinePoint End Horiz (660,822),LinePoint Begin Horiz (584,822),LinePoint End Vert (978,820),LinePoint Begin Vert (976,816),LinePoint End Vert (730,816),LinePoint End Horiz (918,814),LinePoint Begin Horiz (744,814),LinePoint Begin Vert (730,812),LinePoint End Horiz (952,808),LinePoint Begin Horiz (668,808),LinePoint End Horiz (606,806),LinePoint Begin Horiz (418,806),LinePoint End Horiz (336,806),LinePoint Begin Horiz (232,806),LinePoint End Horiz (834,804),LinePoint Begin Horiz (260,804),LinePoint End Horiz (230,804),LinePoint Begin Horiz (64,804),LinePoint End Vert (762,802),LinePoint End Horiz (920,800),LinePoint Begin Horiz (892,800),LinePoint End Vert (986,798),LinePoint End Horiz (944,798),LinePoint Begin Horiz (896,798),LinePoint End Horiz (968,796),LinePoint Begin Horiz (772,796),LinePoint End Horiz (234,796),LinePoint Begin Horiz (76,796),LinePoint Begin Vert (762,792),LinePoint Begin Vert (978,784),LinePoint End Horiz (712,784),LinePoint Begin Horiz (160,784),LinePoint End Horiz (950,780),LinePoint Begin Horiz (908,780),LinePoint End Horiz (682,778),LinePoint Begin Horiz (662,778),LinePoint End Horiz (800,776),LinePoint Begin Horiz (278,776),LinePoint End Horiz (188,776),LinePoint Begin Horiz (150,776),LinePoint End Horiz (788,764),LinePoint Begin Horiz (324,764),LinePoint End Horiz (894,762),LinePoint Begin Horiz (446,762),LinePoint End Horiz (282,752),LinePoint Begin Horiz (180,752),LinePoint End Horiz (280,750),LinePoint Begin Horiz (4,750),LinePoint End Horiz (334,746),LinePoint Begin Horiz (134,746),LinePoint End Horiz (8,746),LinePoint Begin Horiz (4,746),LinePoint End Horiz (770,740),LinePoint Begin Horiz (250,740),LinePoint End Horiz (468,738),LinePoint Begin Horiz (278,738),LinePoint End Horiz (948,734),LinePoint Begin Horiz (806,734),LinePoint End Horiz (890,732),LinePoint Begin Horiz (492,732),LinePoint End Horiz (162,732),LinePoint Begin Horiz (4,732),LinePoint End Horiz (976,726),LinePoint Begin Horiz (922,726),LinePoint End Horiz (56,726),LinePoint Begin Horiz (22,726),LinePoint End Horiz (916,720),LinePoint Begin Horiz (404,720),LinePoint End Horiz (956,716),LinePoint Begin Horiz (824,716),LinePoint End Horiz (644,716),LinePoint Begin Horiz (512,716),LinePoint End Horiz (980,710),LinePoint Begin Horiz (924,710),LinePoint End Horiz (248,710),LinePoint Begin Horiz (152,710),LinePoint End Horiz (978,708),LinePoint Begin Horiz (836,708),LinePoint End Horiz (768,708),LinePoint Begin Horiz (748,708),LinePoint End Horiz (526,708),LinePoint Begin Horiz (438,708),LinePoint End Horiz (312,708),LinePoint Begin Horiz (8,708),LinePoint End Horiz (972,706),LinePoint Begin Horiz (120,706),LinePoint End Horiz (372,704),LinePoint Begin Horiz (138,704),LinePoint End Horiz (802,700),LinePoint Begin Horiz (284,700),LinePoint End Horiz (964,698),LinePoint Begin Horiz (952,698),LinePoint End Vert (882,698),LinePoint End Horiz (864,696),LinePoint Begin Horiz (810,696),LinePoint End Horiz (664,696),LinePoint Begin Horiz (486,696),LinePoint End Horiz (404,696),LinePoint Begin Horiz (348,696),LinePoint End Vert (856,692),LinePoint End Horiz (730,692),LinePoint Begin Horiz (498,692),LinePoint End Horiz (446,686),LinePoint Begin Horiz (246,686),LinePoint End Vert (908,684),LinePoint End Horiz (16,680),LinePoint Begin Horiz (10,680),LinePoint End Horiz (484,678),LinePoint Begin Horiz (182,678),LinePoint Begin Vert (908,672),LinePoint End Horiz (746,672),LinePoint Begin Horiz (620,672),LinePoint End Horiz (402,672),LinePoint Begin Horiz (60,672),LinePoint End Horiz (632,670),LinePoint Begin Horiz (574,670),LinePoint End Horiz (780,668),LinePoint Begin Horiz (94,668),LinePoint End Horiz (632,666),LinePoint Begin Horiz (532,666),LinePoint End Horiz (464,666),LinePoint Begin Horiz (318,666),LinePoint End Horiz (588,662),LinePoint Begin Horiz (550,662),LinePoint End Horiz (742,658),LinePoint Begin Horiz (674,658),LinePoint End Horiz (252,656),LinePoint Begin Horiz (100,656),LinePoint End Vert (776,652),LinePoint End Horiz (450,650),LinePoint Begin Horiz (42,650),LinePoint Begin Vert (776,644),LinePoint End Horiz (720,644),LinePoint Begin Horiz (674,644),LinePoint End Horiz (110,644),LinePoint Begin Horiz (26,644),LinePoint End Horiz (972,642),LinePoint Begin Horiz (950,642),LinePoint End Horiz (746,642),LinePoint Begin Horiz (602,642),LinePoint End Horiz (186,642),LinePoint Begin Horiz (108,642),LinePoint End Horiz (970,640),LinePoint Begin Horiz (894,640),LinePoint End Horiz (784,638),LinePoint Begin Horiz (138,638),LinePoint End Horiz (730,636),LinePoint Begin Horiz (440,636),LinePoint End Horiz (830,632),LinePoint Begin Horiz (412,632),LinePoint End Horiz (832,630),LinePoint Begin Horiz (760,630),LinePoint End Horiz (380,630),LinePoint Begin Horiz (200,630),LinePoint End Horiz (648,628),LinePoint Begin Horiz (250,628),LinePoint End Horiz (438,626),LinePoint Begin Horiz (228,626),LinePoint End Horiz (270,614),LinePoint Begin Horiz (42,614),LinePoint End Horiz (606,610),LinePoint Begin Horiz (186,610),LinePoint End Horiz (430,606),LinePoint Begin Horiz (292,606),LinePoint End Horiz (744,602),LinePoint Begin Horiz (420,602),LinePoint End Horiz (848,590),LinePoint Begin Horiz (566,590),LinePoint End Horiz (984,586),LinePoint Begin Horiz (920,586),LinePoint End Horiz (476,586),LinePoint Begin Horiz (182,586),LinePoint End Vert (908,584),LinePoint End Vert (850,582),LinePoint End Horiz (838,580),LinePoint Begin Horiz (112,580),LinePoint End Horiz (826,578),LinePoint Begin Horiz (642,578),LinePoint End Vert (992,576),LinePoint End Vert (876,570),LinePoint End Horiz (942,568),LinePoint Begin Horiz (912,568),LinePoint Begin Vert (908,568),LinePoint Begin Vert (2,568),LinePoint End Horiz (710,564),LinePoint Begin Horiz (578,564),LinePoint End Horiz (360,556),LinePoint Begin Horiz (86,556),LinePoint End Horiz (574,554),LinePoint Begin Horiz (100,554),LinePoint Begin Vert (856,552),LinePoint End Horiz (394,552),LinePoint Begin Horiz (234,552),LinePoint End Horiz (722,550),LinePoint Begin Horiz (124,550),LinePoint End Horiz (450,546),LinePoint Begin Horiz (438,546),LinePoint End Horiz (342,544),LinePoint Begin Horiz (26,544),LinePoint Begin Vert (850,542),LinePoint Begin Vert (992,540),LinePoint End Horiz (684,540),LinePoint Begin Horiz (76,540),LinePoint End Horiz (166,538),LinePoint Begin Horiz (66,538),LinePoint End Vert (982,532),LinePoint End Horiz (210,532),LinePoint Begin Horiz (32,532),LinePoint End Horiz (968,514),LinePoint Begin Horiz (928,514),LinePoint Begin Vert (882,514),LinePoint End Horiz (422,506),LinePoint Begin Horiz (24,506),LinePoint End Horiz (286,504),LinePoint Begin Horiz (170,504),LinePoint End Horiz (866,494),LinePoint Begin Horiz (174,494),LinePoint End Horiz (60,488),LinePoint Begin Horiz (22,488),LinePoint Begin Vert (876,484),LinePoint End Horiz (632,482),LinePoint Begin Horiz (440,482),LinePoint End Horiz (966,480),LinePoint Begin Horiz (854,480),LinePoint End Horiz (814,476),LinePoint Begin Horiz (670,476),LinePoint End Horiz (934,470),LinePoint Begin Horiz (352,470),LinePoint End Horiz (690,468),LinePoint Begin Horiz (376,468),LinePoint End Horiz (806,462),LinePoint Begin Horiz (718,462),LinePoint End Horiz (490,462),LinePoint Begin Horiz (288,462),LinePoint End Horiz (188,462),LinePoint Begin Horiz (122,462),LinePoint End Horiz (860,458),LinePoint Begin Horiz (570,458),LinePoint End Horiz (966,456),LinePoint Begin Horiz (894,456),LinePoint End Horiz (774,454),LinePoint Begin Horiz (344,454),LinePoint End Horiz (264,454),LinePoint Begin Horiz (50,454),LinePoint End Horiz (302,452),LinePoint Begin Horiz (138,452),LinePoint End Horiz (20,450),LinePoint Begin Horiz (6,450),LinePoint End Horiz (872,448),LinePoint Begin Horiz (442,448),LinePoint End Horiz (704,446),LinePoint Begin Horiz (128,446),LinePoint End Horiz (976,444),LinePoint Begin Horiz (98,444),LinePoint Begin Vert (990,442),LinePoint End Horiz (318,442),LinePoint Begin Horiz (58,442),LinePoint End Horiz (966,434),LinePoint Begin Horiz (912,434),LinePoint End Horiz (670,434),LinePoint Begin Horiz (350,434),LinePoint End Horiz (616,432),LinePoint Begin Horiz (430,432),LinePoint End Horiz (784,430),LinePoint Begin Horiz (308,430),LinePoint End Horiz (278,430),LinePoint Begin Horiz (194,430),LinePoint End Horiz (648,418),LinePoint Begin Horiz (554,418),LinePoint End Vert (964,404),LinePoint End Horiz (630,404),LinePoint Begin Horiz (516,404),LinePoint End Horiz (858,402),LinePoint Begin Horiz (42,402),LinePoint End Horiz (388,398),LinePoint Begin Horiz (204,398),LinePoint End Horiz (772,392),LinePoint Begin Horiz (430,392),LinePoint End Horiz (528,388),LinePoint Begin Horiz (134,388),LinePoint End Horiz (614,380),LinePoint Begin Horiz (318,380),LinePoint End Horiz (304,380),LinePoint Begin Horiz (274,380),LinePoint End Horiz (260,380),LinePoint Begin Horiz (208,380),LinePoint End Horiz (938,376),LinePoint Begin Horiz (526,376),LinePoint End Horiz (514,376),LinePoint Begin Horiz (262,376),LinePoint End Horiz (154,376),LinePoint Begin Horiz (116,376),LinePoint End Vert (134,372),LinePoint End Vert (84,372),LinePoint End Vert (628,370),LinePoint End Horiz (272,368),LinePoint Begin Horiz (176,368),LinePoint End Horiz (914,366),LinePoint Begin Horiz (822,366),LinePoint End Horiz (816,366),LinePoint Begin Horiz (800,366),LinePoint End Horiz (666,364),LinePoint Begin Horiz (638,364),LinePoint End Horiz (36,364),LinePoint Begin Horiz (14,364),LinePoint End Horiz (890,360),LinePoint Begin Horiz (660,360),LinePoint End Horiz (306,358),LinePoint Begin Horiz (210,358),LinePoint End Horiz (882,356),LinePoint Begin Horiz (848,356),LinePoint End Vert (798,354),LinePoint End Horiz (582,354),LinePoint Begin Horiz (216,354),LinePoint End Vert (958,352),LinePoint End Horiz (672,348),LinePoint Begin Horiz (658,348),LinePoint End Vert (144,348),LinePoint End Vert (128,342),LinePoint End Vert (120,342),LinePoint End Horiz (238,334),LinePoint Begin Horiz (162,334),LinePoint End Vert (978,330),LinePoint End Vert (650,328),LinePoint End Vert (646,328),LinePoint End Vert (100,326),LinePoint End Horiz (382,324),LinePoint Begin Horiz (242,324),LinePoint End Vert (908,322),LinePoint End Horiz (804,322),LinePoint Begin Horiz (802,322),LinePoint End Horiz (510,322),LinePoint Begin Horiz (320,322),LinePoint End Vert (952,320),LinePoint End Horiz (898,316),LinePoint Begin Horiz (878,316),LinePoint End Horiz (498,314),LinePoint Begin Horiz (346,314),LinePoint Begin Vert (120,310),LinePoint End Horiz (46,310),LinePoint Begin Horiz (38,310),LinePoint End Horiz (46,308),LinePoint Begin Horiz (34,308),LinePoint End Vert (878,304),LinePoint End Vert (626,302),LinePoint End Horiz (618,302),LinePoint Begin Horiz (258,302),LinePoint Begin Vert (986,298),LinePoint Begin Vert (958,298),LinePoint End Horiz (758,298),LinePoint Begin Horiz (698,298),LinePoint End Horiz (66,298),LinePoint Begin Horiz (38,298),LinePoint End Vert (94,292),LinePoint End Vert (874,290),LinePoint End Horiz (414,290),LinePoint Begin Horiz (156,290),LinePoint End Vert (162,284),LinePoint End Vert (506,282),LinePoint End Horiz (476,278),LinePoint Begin Horiz (290,278),LinePoint End Vert (572,274),LinePoint End Vert (734,270),LinePoint Begin Vert (144,268),LinePoint End Horiz (16,268),LinePoint Begin Horiz (6,268),LinePoint Begin Vert (572,262),LinePoint End Vert (400,262),LinePoint End Horiz (558,254),LinePoint Begin Horiz (538,254),LinePoint Begin Vert (506,254),LinePoint Begin Vert (952,252),LinePoint End Horiz (366,252),LinePoint Begin Horiz (310,252),LinePoint End Horiz (360,248),LinePoint Begin Horiz (304,248),LinePoint End Vert (486,246),LinePoint End Horiz (74,246),LinePoint Begin Horiz (10,246),LinePoint Begin Vert (798,242),LinePoint End Vert (570,242),LinePoint Begin Vert (964,240),LinePoint End Vert (702,240),LinePoint End Vert (350,240),LinePoint Begin Vert (486,238),LinePoint End Vert (258,236),LinePoint Begin Vert (94,232),LinePoint End Vert (896,228),LinePoint Begin Vert (84,226),LinePoint End Vert (920,224),LinePoint End Vert (448,222),LinePoint End Vert (682,218),LinePoint End Vert (220,214),LinePoint End Vert (888,210),LinePoint Begin Vert (448,210),LinePoint End Horiz (482,206),LinePoint Begin Horiz (462,206),LinePoint End Horiz (496,204),LinePoint Begin Horiz (442,204),LinePoint End Horiz (454,200),LinePoint Begin Horiz (428,200),LinePoint End Vert (218,200),LinePoint End Vert (292,198),LinePoint End Vert (358,196),LinePoint End Horiz (998,190),LinePoint Begin Horiz (992,190),LinePoint Begin Vert (220,190),LinePoint Begin Vert (570,188),LinePoint End Horiz (588,184),LinePoint Begin Horiz (416,184),LinePoint Begin Vert (292,184),LinePoint Begin Vert (100,184),LinePoint End Horiz (106,182),LinePoint Begin Horiz (86,182),LinePoint Begin Vert (650,180),LinePoint Begin Vert (128,178),LinePoint Begin Vert (702,170),LinePoint End Horiz (582,170),LinePoint Begin Horiz (546,170),LinePoint End Vert (246,168),LinePoint End Vert (214,168),LinePoint End Horiz (572,166),LinePoint Begin Horiz (466,166),LinePoint End Vert (232,166),LinePoint Begin Vert (134,164),LinePoint Begin Vert (874,162),LinePoint End Horiz (838,162),LinePoint Begin Horiz (804,162),LinePoint End Vert (408,160),LinePoint End Horiz (846,158),LinePoint Begin Horiz (822,158),LinePoint End Horiz (140,158),LinePoint Begin Horiz (28,158),LinePoint Begin Vert (920,156),LinePoint Begin Vert (408,146),LinePoint Begin Vert (358,146),LinePoint End Vert (980,144),LinePoint End Vert (712,144),LinePoint End Horiz (870,142),LinePoint Begin Horiz (774,142),LinePoint End Vert (678,138),LinePoint Begin Vert (400,138),LinePoint Begin Vert (214,138),LinePoint End Horiz (596,134),LinePoint Begin Horiz (354,134),LinePoint End Horiz (576,128),LinePoint Begin Horiz (538,128),LinePoint Begin Vert (980,126),LinePoint Begin Vert (678,126),LinePoint End Horiz (42,126),LinePoint Begin Horiz (16,126),LinePoint End Vert (862,124),LinePoint End Horiz (160,124),LinePoint Begin Horiz (88,124),LinePoint Begin Vert (712,122),LinePoint Begin Vert (734,120),LinePoint End Horiz (518,118),LinePoint Begin Horiz (464,118),LinePoint Begin Vert (982,116),LinePoint End Horiz (26,116),LinePoint Begin Horiz (6,116),LinePoint End Horiz (580,114),LinePoint Begin Horiz (558,114),LinePoint End Horiz (126,110),LinePoint Begin Horiz (46,110),LinePoint End Horiz (148,106),LinePoint Begin Horiz (32,106),LinePoint End Vert (884,104),LinePoint Begin Vert (646,104),LinePoint Begin Vert (350,102),LinePoint End Horiz (474,100),LinePoint Begin Horiz (306,100),LinePoint End Horiz (284,100),LinePoint Begin Horiz (274,100),LinePoint End Horiz (994,98),LinePoint Begin Horiz (986,98),LinePoint End Vert (256,94),LinePoint End Vert (176,94),LinePoint Begin Vert (862,90),LinePoint Begin Vert (878,88),LinePoint End Horiz (868,88),LinePoint Begin Horiz (846,88),LinePoint End Horiz (570,88),LinePoint Begin Horiz (260,88),LinePoint Begin Vert (908,82),LinePoint Begin Vert (978,78),LinePoint End Vert (858,78),LinePoint Begin Vert (626,78),LinePoint Begin Vert (162,76),LinePoint Begin Vert (888,74),LinePoint Begin Vert (896,72),LinePoint End Horiz (592,72),LinePoint Begin Horiz (334,72),LinePoint End Horiz (44,72),LinePoint Begin Horiz (4,72),LinePoint End Vert (548,68),LinePoint End Horiz (430,68),LinePoint Begin Horiz (304,68),LinePoint Begin Vert (858,66),LinePoint End Vert (542,62),LinePoint Begin Vert (246,62),LinePoint Begin Vert (176,62),LinePoint Begin Vert (682,60),LinePoint End Horiz (502,60),LinePoint Begin Horiz (458,60),LinePoint End Horiz (458,58),LinePoint Begin Horiz (302,58),LinePoint End Vert (76,58),LinePoint End Horiz (862,56),LinePoint Begin Horiz (844,56),LinePoint End Horiz (854,54),LinePoint Begin Horiz (738,54),LinePoint Begin Vert (232,54),LinePoint Begin Vert (884,52),LinePoint Begin Vert (548,52),LinePoint Begin Vert (628,50),LinePoint Begin Vert (218,50),LinePoint Begin Vert (542,48),LinePoint End Horiz (956,44),LinePoint Begin Horiz (650,44),LinePoint End Vert (46,42),LinePoint End Vert (82,40),LinePoint Begin Vert (82,34),LinePoint Begin Vert (258,32),LinePoint End Vert (936,30),LinePoint End Vert (108,30),LinePoint End Vert (972,28),LinePoint Begin Vert (256,28),LinePoint Begin Vert (46,28),LinePoint Begin Vert (972,24),LinePoint Begin Vert (936,24),LinePoint End Horiz (378,24),LinePoint Begin Horiz (172,24),LinePoint Begin Vert (108,24),LinePoint Begin Vert (76,24),LinePoint End Horiz (734,16),LinePoint Begin Horiz (404,16),LinePoint End Horiz (522,14),LinePoint Begin Horiz (284,14),LinePoint End Horiz (968,8),LinePoint Begin Horiz (142,8),LinePoint End Horiz (726,6),LinePoint Begin Horiz (724,6)]
points1 = [ LinePoint Begin Horiz (10,10), LinePoint End Horiz (20,10), LinePoint Begin Horiz (30,10), LinePoint End Horiz (40,10)]
points2 = [LinePoint Begin Horiz (0,38),LinePoint Begin Horiz (0,778),LinePoint Begin Vert (870,0),LinePoint End Vert (868,998),LinePoint End Vert (662,996),LinePoint End Vert (332,996),LinePoint End Vert (500,994),LinePoint End Vert (380,994),LinePoint Begin Vert (662,992),LinePoint Begin Vert (500,990),LinePoint Begin Vert (868,988),LinePoint End Horiz (944,986),LinePoint Begin Horiz (812,986),LinePoint End Vert (436,986),LinePoint End Horiz (802,982),LinePoint Begin Horiz (718,982),LinePoint End Vert (830,980),LinePoint Begin Vert (830,976),LinePoint End Horiz (786,976),LinePoint Begin Horiz (492,976),LinePoint End Vert (222,972),LinePoint End Horiz (948,970),LinePoint Begin Horiz (488,970),LinePoint Begin Vert (222,968),LinePoint Begin Vert (436,966),LinePoint End Vert (428,966),LinePoint Begin Vert (332,966),LinePoint End Vert (470,964),LinePoint End Horiz (374,964),LinePoint Begin Horiz (266,964),LinePoint End Horiz (896,962),LinePoint Begin Horiz (724,962),LinePoint End Vert (524,960),LinePoint End Horiz (792,958),LinePoint Begin Horiz (780,958),LinePoint End Horiz (468,958),LinePoint Begin Horiz (462,958),LinePoint Begin Vert (428,956),LinePoint End Horiz (292,952),LinePoint Begin Horiz (280,952),LinePoint End Vert (620,948),LinePoint End Horiz (350,948),LinePoint Begin Horiz (122,948),LinePoint End Horiz (82,948),LinePoint Begin Horiz (40,948),LinePoint Begin Vert (620,946),LinePoint End Horiz (960,942),LinePoint Begin Horiz (866,942),LinePoint End Vert (436,942),LinePoint End Horiz (248,942),LinePoint Begin Horiz (76,942),LinePoint End Horiz (980,940),LinePoint Begin Horiz (930,940),LinePoint End Vert (844,938),LinePoint End Horiz (82,938),LinePoint Begin Horiz (56,938),LinePoint Begin Vert (470,936),LinePoint End Horiz (720,934),LinePoint Begin Horiz (624,934),LinePoint Begin Vert (436,934),LinePoint End Vert (914,932),LinePoint End Horiz (206,932),LinePoint Begin Horiz (32,932),LinePoint End Horiz (766,930),LinePoint Begin Horiz (666,930),LinePoint End Horiz (664,926),LinePoint Begin Horiz (534,926),LinePoint End Horiz (452,926),LinePoint Begin Horiz (436,926),LinePoint End Horiz (90,926),LinePoint Begin Horiz (46,926),LinePoint Begin Vert (914,924),LinePoint End Horiz (518,922),LinePoint Begin Horiz (422,922),LinePoint End Vert (88,922),LinePoint End Vert (968,920),LinePoint End Vert (118,920),LinePoint End Vert (14,918),LinePoint Begin Vert (844,914),LinePoint End Horiz (766,914),LinePoint Begin Horiz (576,914),LinePoint Begin Vert (88,912),LinePoint Begin Vert (524,910),LinePoint Begin Vert (380,910),LinePoint Begin Vert (118,910),LinePoint End Horiz (658,906),LinePoint Begin Horiz (524,906),LinePoint End Horiz (590,904),LinePoint Begin Horiz (16,904),LinePoint End Horiz (536,902),LinePoint Begin Horiz (274,902),LinePoint End Horiz (112,902),LinePoint Begin Horiz (18,902),LinePoint End Horiz (376,898),LinePoint Begin Horiz (60,898),LinePoint End Vert (908,894),LinePoint End Horiz (820,888),LinePoint Begin Horiz (176,888),LinePoint End Horiz (836,886),LinePoint Begin Horiz (734,886),LinePoint End Horiz (366,886),LinePoint Begin Horiz (92,886),LinePoint End Horiz (44,882),LinePoint Begin Horiz (22,882),LinePoint End Horiz (468,878),LinePoint Begin Horiz (446,878),LinePoint End Horiz (732,876),LinePoint Begin Horiz (110,876),LinePoint End Vert (870,874),LinePoint End Horiz (482,868),LinePoint Begin Horiz (414,868),LinePoint End Horiz (512,864),LinePoint Begin Horiz (216,864),LinePoint End Vert (18,864),LinePoint Begin Vert (14,860),LinePoint End Horiz (560,858),LinePoint Begin Horiz (434,858),LinePoint Begin Vert (870,856),LinePoint End Horiz (696,854),LinePoint Begin Horiz (156,854),LinePoint End Horiz (460,850),LinePoint Begin Horiz (130,850),LinePoint End Horiz (60,848),LinePoint Begin Horiz (52,848),LinePoint End Horiz (852,838),LinePoint Begin Horiz (510,838),LinePoint End Horiz (988,836),LinePoint Begin Horiz (974,836),LinePoint End Horiz (338,836),LinePoint Begin Horiz (72,836),LinePoint End Vert (134,830),LinePoint Begin Vert (18,830),LinePoint End Horiz (662,824),LinePoint Begin Horiz (576,824),LinePoint End Horiz (536,824),LinePoint Begin Horiz (212,824),LinePoint Begin Vert (908,820),LinePoint End Horiz (816,818),LinePoint Begin Horiz (610,818),LinePoint End Horiz (120,818),LinePoint Begin Horiz (90,818),LinePoint End Horiz (930,806),LinePoint Begin Horiz (152,806),LinePoint End Horiz (702,804),LinePoint Begin Horiz (638,804),LinePoint End Horiz (702,800),LinePoint Begin Horiz (700,800),LinePoint End Horiz (936,798),LinePoint Begin Horiz (878,798),LinePoint End Horiz (16,798),LinePoint Begin Horiz (8,798),LinePoint End Vert (410,796),LinePoint End Vert (654,794),LinePoint End Vert (552,794),LinePoint End Vert (546,794),LinePoint Begin Vert (134,794),LinePoint End Vert (374,788),LinePoint End Vert (402,786),LinePoint End Horiz (272,786),LinePoint Begin Horiz (48,786),LinePoint End Vert (468,784),LinePoint End Horiz (392,782),LinePoint Begin Horiz (380,782),LinePoint End Horiz (194,782),LinePoint Begin Horiz (108,782),LinePoint End Horiz (958,780),LinePoint Begin Horiz (678,780),LinePoint End Horiz (318,780),LinePoint Begin Horiz (2,780),LinePoint End Horiz (962,778),LinePoint Begin Horiz (856,778),LinePoint End Horiz (288,778),LinePoint Begin Horiz (134,778),LinePoint End Horiz (20,778),LinePoint End Vert (482,776),LinePoint End Horiz (988,774),LinePoint Begin Horiz (980,774),LinePoint End Horiz (930,774),LinePoint Begin Horiz (834,774),LinePoint End Horiz (242,774),LinePoint Begin Horiz (120,774),LinePoint End Vert (584,772),LinePoint End Horiz (936,770),LinePoint Begin Horiz (806,770),LinePoint End Horiz (202,770),LinePoint Begin Horiz (156,770),LinePoint End Vert (362,766),LinePoint End Vert (244,766),LinePoint End Horiz (718,764),LinePoint Begin Horiz (676,764),LinePoint Begin Vert (584,764),LinePoint End Horiz (950,762),LinePoint Begin Horiz (904,762),LinePoint End Vert (610,760),LinePoint End Vert (144,760),LinePoint Begin Vert (244,756),LinePoint End Horiz (636,750),LinePoint Begin Horiz (628,750),LinePoint End Horiz (94,750),LinePoint Begin Horiz (22,750),LinePoint Begin Vert (482,748),LinePoint End Horiz (112,748),LinePoint Begin Horiz (46,748),LinePoint End Horiz (712,746),LinePoint Begin Horiz (702,746),LinePoint Begin Vert (610,742),LinePoint End Horiz (306,738),LinePoint Begin Horiz (234,738),LinePoint End Horiz (240,736),LinePoint Begin Horiz (172,736),LinePoint Begin Vert (402,732),LinePoint End Vert (276,730),LinePoint End Horiz (960,728),LinePoint Begin Horiz (842,728),LinePoint End Vert (436,718),LinePoint End Horiz (920,712),LinePoint Begin Horiz (844,712),LinePoint End Vert (418,710),LinePoint End Vert (396,710),LinePoint End Vert (616,708),LinePoint Begin Vert (276,708),LinePoint End Vert (234,708),LinePoint End Vert (212,706),LinePoint End Vert (350,702),LinePoint End Horiz (206,702),LinePoint Begin Horiz (148,702),LinePoint End Vert (116,700),LinePoint End Vert (6,698),LinePoint End Horiz (954,696),LinePoint Begin Horiz (806,696),LinePoint End Vert (618,694),LinePoint End Vert (442,692),LinePoint Begin Vert (396,692),LinePoint End Vert (522,690),LinePoint End Horiz (390,690),LinePoint Begin Horiz (384,690),LinePoint End Horiz (18,690),LinePoint Begin Horiz (10,690),LinePoint End Horiz (954,686),LinePoint Begin Horiz (870,686),LinePoint End Vert (390,686),LinePoint End Vert (334,684),LinePoint End Horiz (184,684),LinePoint Begin Horiz (172,684),LinePoint Begin Vert (968,682),LinePoint End Horiz (88,682),LinePoint Begin Horiz (30,682),LinePoint End Vert (22,680),LinePoint End Vert (300,678),LinePoint End Vert (218,678),LinePoint Begin Vert (144,674),LinePoint End Horiz (976,672),LinePoint Begin Horiz (682,672),LinePoint End Horiz (996,670),LinePoint Begin Horiz (882,670),LinePoint End Horiz (104,670),LinePoint Begin Horiz (50,670),LinePoint End Vert (384,666),LinePoint End Vert (990,664),LinePoint Begin Vert (234,662),LinePoint End Horiz (870,660),LinePoint Begin Horiz (662,660),LinePoint End Vert (878,656),LinePoint End Horiz (234,656),LinePoint Begin Horiz (226,656),LinePoint End Vert (66,656),LinePoint End Vert (126,654),LinePoint End Vert (288,652),LinePoint Begin Vert (218,652),LinePoint End Vert (464,650),LinePoint End Vert (508,648),LinePoint End Horiz (778,646),LinePoint Begin Horiz (714,646),LinePoint Begin Vert (212,646),LinePoint End Vert (976,642),LinePoint End Vert (496,642),LinePoint End Vert (50,642),LinePoint End Vert (782,640),LinePoint End Vert (466,638),LinePoint End Vert (222,638),LinePoint Begin Vert (126,634),LinePoint End Horiz (712,632),LinePoint Begin Horiz (706,632),LinePoint Begin Vert (222,632),LinePoint End Horiz (754,630),LinePoint Begin Horiz (746,630),LinePoint Begin Vert (782,628),LinePoint Begin Vert (878,626),LinePoint Begin Vert (466,626),LinePoint End Vert (580,624),LinePoint End Vert (164,622),LinePoint End Vert (562,616),LinePoint Begin Vert (164,612),LinePoint Begin Vert (384,610),LinePoint End Horiz (198,610),LinePoint Begin Horiz (144,610),LinePoint Begin Vert (654,608),LinePoint End Horiz (188,608),LinePoint Begin Horiz (126,608),LinePoint End Horiz (114,608),LinePoint Begin Horiz (110,608),LinePoint Begin Vert (562,606),LinePoint End Horiz (266,606),LinePoint Begin Horiz (172,606),LinePoint Begin Vert (522,602),LinePoint End Vert (400,596),LinePoint End Vert (608,590),LinePoint Begin Vert (410,586),LinePoint Begin Vert (288,578),LinePoint Begin Vert (22,578),LinePoint End Vert (78,572),LinePoint End Horiz (838,566),LinePoint Begin Horiz (648,566),LinePoint End Vert (286,564),LinePoint End Horiz (256,562),LinePoint Begin Horiz (238,562),LinePoint End Vert (196,562),LinePoint End Vert (152,560),LinePoint End Horiz (892,558),LinePoint Begin Horiz (852,558),LinePoint End Horiz (816,558),LinePoint Begin Horiz (756,558),LinePoint End Horiz (110,554),LinePoint Begin Horiz (100,554),LinePoint End Horiz (864,552),LinePoint Begin Horiz (782,552),LinePoint End Vert (610,550),LinePoint End Vert (874,548),LinePoint Begin Vert (508,548),LinePoint End Vert (160,548),LinePoint Begin Vert (874,544),LinePoint End Vert (672,542),LinePoint End Vert (406,542),LinePoint Begin Vert (374,542),LinePoint End Vert (272,542),LinePoint End Horiz (492,540),LinePoint Begin Horiz (470,540),LinePoint Begin Vert (976,538),LinePoint End Horiz (836,538),LinePoint Begin Horiz (764,538),LinePoint End Horiz (976,536),LinePoint Begin Horiz (768,536),LinePoint End Horiz (930,532),LinePoint Begin Horiz (882,532),LinePoint Begin Vert (350,530),LinePoint Begin Vert (552,524),LinePoint Begin Vert (50,524),LinePoint End Vert (98,522),LinePoint Begin Vert (400,520),LinePoint Begin Vert (160,520),LinePoint End Vert (214,518),LinePoint End Horiz (942,514),LinePoint Begin Horiz (932,514),LinePoint End Vert (336,514),LinePoint End Horiz (964,510),LinePoint Begin Horiz (788,510),LinePoint End Horiz (758,508),LinePoint Begin Horiz (678,508),LinePoint End Vert (128,504),LinePoint End Horiz (848,502),LinePoint Begin Horiz (798,502),LinePoint End Vert (586,498),LinePoint Begin Vert (286,496),LinePoint End Vert (218,496),LinePoint End Horiz (912,488),LinePoint Begin Horiz (900,488),LinePoint End Vert (736,488),LinePoint Begin Vert (406,480),LinePoint End Vert (522,478),LinePoint End Vert (706,476),LinePoint End Horiz (18,474),LinePoint Begin Horiz (12,474),LinePoint Begin Vert (6,470),LinePoint End Vert (974,466),LinePoint End Vert (690,466),LinePoint End Horiz (96,464),LinePoint Begin Horiz (84,464),LinePoint End Vert (386,460),LinePoint End Vert (220,460),LinePoint End Horiz (944,458),LinePoint Begin Horiz (776,458),LinePoint Begin Vert (580,458),LinePoint Begin Vert (618,456),LinePoint Begin Vert (390,452),LinePoint End Horiz (936,450),LinePoint Begin Horiz (810,450),LinePoint Begin Vert (672,448),LinePoint Begin Vert (362,444),LinePoint End Horiz (896,442),LinePoint Begin Horiz (798,442),LinePoint Begin Vert (386,442),LinePoint End Vert (992,438),LinePoint End Horiz (914,438),LinePoint Begin Horiz (904,438),LinePoint Begin Vert (690,436),LinePoint Begin Vert (464,436),LinePoint End Vert (72,436),LinePoint End Vert (158,424),LinePoint Begin Vert (66,424),LinePoint Begin Vert (272,422),LinePoint End Vert (110,422),LinePoint End Horiz (892,418),LinePoint Begin Horiz (878,418),LinePoint Begin Vert (522,418),LinePoint Begin Vert (436,416),LinePoint Begin Vert (546,412),LinePoint Begin Vert (496,412),LinePoint Begin Vert (608,410),LinePoint End Vert (52,410),LinePoint Begin Vert (214,408),LinePoint Begin Vert (442,406),LinePoint End Horiz (32,406),LinePoint Begin Horiz (24,406),LinePoint Begin Vert (610,402),LinePoint End Vert (144,402),LinePoint Begin Vert (334,400),LinePoint End Vert (842,398),LinePoint End Horiz (400,396),LinePoint Begin Horiz (388,396),LinePoint Begin Vert (336,394),LinePoint Begin Vert (842,392),LinePoint Begin Vert (418,392),LinePoint End Horiz (830,388),LinePoint Begin Horiz (828,388),LinePoint Begin Vert (616,388),LinePoint Begin Vert (468,384),LinePoint End Vert (90,384),LinePoint Begin Vert (974,382),LinePoint Begin Vert (90,382),LinePoint End Horiz (496,380),LinePoint Begin Horiz (468,380),LinePoint Begin Vert (706,378),LinePoint End Vert (574,378),LinePoint Begin Vert (116,378),LinePoint End Vert (582,376),LinePoint Begin Vert (110,374),LinePoint End Horiz (942,372),LinePoint Begin Horiz (826,372),LinePoint End Vert (798,370),LinePoint End Horiz (548,370),LinePoint Begin Horiz (522,370),LinePoint End Vert (252,370),LinePoint End Vert (12,370),LinePoint End Horiz (716,368),LinePoint Begin Horiz (656,368),LinePoint Begin Vert (736,366),LinePoint End Horiz (706,366),LinePoint Begin Horiz (664,366),LinePoint Begin Vert (252,362),LinePoint End Horiz (950,354),LinePoint Begin Horiz (916,354),LinePoint End Vert (86,352),LinePoint Begin Vert (300,350),LinePoint Begin Vert (52,350),LinePoint End Horiz (562,348),LinePoint Begin Horiz (222,348),LinePoint Begin Vert (128,348),LinePoint End Horiz (942,346),LinePoint Begin Horiz (808,346),LinePoint Begin Vert (220,346),LinePoint Begin Vert (12,346),LinePoint End Horiz (988,344),LinePoint Begin Horiz (960,344),LinePoint End Horiz (70,340),LinePoint Begin Horiz (2,340),LinePoint End Horiz (968,336),LinePoint Begin Horiz (934,336),LinePoint End Vert (380,330),LinePoint End Horiz (766,328),LinePoint Begin Horiz (722,328),LinePoint End Vert (290,328),LinePoint End Vert (108,326),LinePoint End Vert (524,324),LinePoint Begin Vert (380,324),LinePoint End Vert (120,320),LinePoint Begin Vert (798,318),LinePoint End Horiz (750,318),LinePoint Begin Horiz (714,318),LinePoint End Vert (156,316),LinePoint End Horiz (694,312),LinePoint Begin Horiz (680,312),LinePoint End Horiz (458,312),LinePoint Begin Horiz (388,312),LinePoint End Horiz (346,312),LinePoint Begin Horiz (330,312),LinePoint End Vert (282,308),LinePoint End Horiz (894,306),LinePoint Begin Horiz (704,306),LinePoint End Horiz (976,304),LinePoint Begin Horiz (598,304),LinePoint End Horiz (900,300),LinePoint Begin Horiz (650,300),LinePoint End Vert (420,300),LinePoint Begin Vert (72,300),LinePoint End Horiz (810,296),LinePoint Begin Horiz (780,296),LinePoint Begin Vert (196,296),LinePoint End Horiz (968,294),LinePoint Begin Horiz (638,294),LinePoint End Vert (952,292),LinePoint End Horiz (488,290),LinePoint Begin Horiz (436,290),LinePoint Begin Vert (282,290),LinePoint End Horiz (62,290),LinePoint Begin Horiz (52,290),LinePoint End Horiz (974,288),LinePoint Begin Horiz (970,288),LinePoint End Vert (458,282),LinePoint End Horiz (872,280),LinePoint Begin Horiz (674,280),LinePoint End Vert (162,278),LinePoint End Horiz (908,274),LinePoint Begin Horiz (634,274),LinePoint Begin Vert (162,274),LinePoint Begin Vert (574,272),LinePoint End Vert (170,272),LinePoint Begin Vert (108,270),LinePoint End Vert (600,268),LinePoint End Horiz (416,268),LinePoint Begin Horiz (306,268),LinePoint End Vert (916,266),LinePoint End Vert (562,266),LinePoint End Horiz (710,260),LinePoint Begin Horiz (666,260),LinePoint End Vert (452,258),LinePoint End Vert (382,258),LinePoint Begin Vert (218,258),LinePoint End Vert (976,256),LinePoint End Vert (450,256),LinePoint End Vert (394,254),LinePoint End Vert (402,252),LinePoint End Vert (490,244),LinePoint End Vert (168,244),LinePoint End Vert (316,242),LinePoint Begin Vert (152,240),LinePoint End Horiz (710,238),LinePoint Begin Horiz (620,238),LinePoint Begin Vert (490,238),LinePoint End Vert (308,238),LinePoint Begin Vert (156,238),LinePoint End Vert (708,236),LinePoint End Vert (588,236),LinePoint End Vert (284,232),LinePoint End Vert (268,232),LinePoint End Horiz (896,230),LinePoint Begin Horiz (858,230),LinePoint End Vert (282,230),LinePoint End Vert (262,228),LinePoint Begin Vert (708,226),LinePoint End Vert (682,226),LinePoint Begin Vert (268,226),LinePoint End Vert (626,224),LinePoint End Vert (376,222),LinePoint End Horiz (856,220),LinePoint Begin Horiz (818,220),LinePoint Begin Vert (524,220),LinePoint End Vert (272,220),LinePoint Begin Vert (992,218),LinePoint Begin Vert (952,216),LinePoint Begin Vert (562,216),LinePoint Begin Vert (170,214),LinePoint End Horiz (484,212),LinePoint Begin Horiz (462,212),LinePoint Begin Vert (458,210),LinePoint End Vert (64,206),LinePoint End Horiz (816,204),LinePoint Begin Horiz (806,204),LinePoint End Horiz (548,202),LinePoint Begin Horiz (460,202),LinePoint End Vert (604,198),LinePoint End Horiz (826,196),LinePoint Begin Horiz (774,196),LinePoint End Horiz (222,196),LinePoint Begin Horiz (182,196),LinePoint Begin Vert (64,194),LinePoint End Vert (572,192),LinePoint Begin Vert (420,192),LinePoint End Vert (228,192),LinePoint Begin Vert (604,190),LinePoint End Vert (448,190),LinePoint End Vert (368,188),LinePoint End Vert (700,186),LinePoint Begin Vert (272,184),LinePoint End Vert (240,184),LinePoint End Vert (346,182),LinePoint End Vert (156,182),LinePoint Begin Vert (376,180),LinePoint Begin Vert (682,178),LinePoint Begin Vert (452,178),LinePoint Begin Vert (282,178),LinePoint Begin Vert (700,176),LinePoint End Vert (758,174),LinePoint Begin Vert (144,174),LinePoint End Horiz (914,172),LinePoint Begin Horiz (854,172),LinePoint End Vert (172,172),LinePoint End Vert (956,170),LinePoint End Vert (204,170),LinePoint End Vert (694,166),LinePoint End Vert (490,164),LinePoint End Vert (280,164),LinePoint Begin Vert (240,162),LinePoint Begin Vert (168,162),LinePoint Begin Vert (98,162),LinePoint Begin Vert (290,160),LinePoint End Vert (130,158),LinePoint End Vert (142,156),LinePoint End Vert (466,152),LinePoint Begin Vert (466,148),LinePoint End Horiz (506,146),LinePoint Begin Horiz (498,146),LinePoint End Vert (360,146),LinePoint Begin Vert (142,146),LinePoint End Vert (506,142),LinePoint End Vert (374,142),LinePoint Begin Vert (694,140),LinePoint End Vert (592,140),LinePoint End Vert (90,138),LinePoint Begin Vert (374,136),LinePoint Begin Vert (262,134),LinePoint Begin Vert (86,128),LinePoint End Horiz (886,126),LinePoint Begin Horiz (882,126),LinePoint Begin Vert (158,126),LinePoint Begin Vert (758,124),LinePoint Begin Vert (228,122),LinePoint End Vert (212,122),LinePoint End Horiz (972,120),LinePoint Begin Horiz (970,120),LinePoint End Vert (126,120),LinePoint End Vert (650,116),LinePoint End Vert (444,116),LinePoint End Horiz (804,114),LinePoint Begin Horiz (688,114),LinePoint End Vert (926,112),LinePoint Begin Vert (572,112),LinePoint Begin Vert (316,112),LinePoint End Horiz (866,110),LinePoint Begin Horiz (656,110),LinePoint End Vert (520,110),LinePoint Begin Vert (444,110),LinePoint End Vert (310,110),LinePoint Begin Vert (588,104),LinePoint Begin Vert (212,104),LinePoint End Vert (146,104),LinePoint End Vert (4,104),LinePoint Begin Vert (926,102),LinePoint End Vert (874,98),LinePoint Begin Vert (120,96),LinePoint Begin Vert (368,94),LinePoint End Horiz (904,92),LinePoint Begin Horiz (896,92),LinePoint Begin Vert (394,92),LinePoint End Horiz (942,90),LinePoint Begin Horiz (930,90),LinePoint Begin Vert (626,90),LinePoint End Vert (206,90),LinePoint Begin Vert (90,90),LinePoint Begin Vert (874,88),LinePoint Begin Vert (206,88),LinePoint Begin Vert (916,86),LinePoint Begin Vert (156,86),LinePoint End Vert (966,84),LinePoint Begin Vert (520,84),LinePoint Begin Vert (346,82),LinePoint Begin Vert (146,82),LinePoint Begin Vert (586,80),LinePoint Begin Vert (78,80),LinePoint Begin Vert (600,78),LinePoint End Horiz (248,78),LinePoint Begin Horiz (210,78),LinePoint Begin Vert (966,76),LinePoint End Horiz (804,74),LinePoint Begin Horiz (700,74),LinePoint Begin Vert (582,72),LinePoint Begin Vert (402,70),LinePoint Begin Vert (308,70),LinePoint End Vert (92,70),LinePoint End Horiz (906,68),LinePoint Begin Horiz (752,68),LinePoint Begin Vert (450,68),LinePoint Begin Vert (448,68),LinePoint Begin Vert (172,68),LinePoint End Horiz (954,66),LinePoint Begin Horiz (832,66),LinePoint Begin Vert (650,66),LinePoint Begin Vert (284,66),LinePoint Begin Vert (280,66),LinePoint Begin Vert (490,64),LinePoint Begin Vert (360,64),LinePoint Begin Vert (506,62),LinePoint End Horiz (354,62),LinePoint Begin Horiz (330,62),LinePoint End Horiz (744,60),LinePoint Begin Horiz (700,60),LinePoint Begin Vert (310,60),LinePoint Begin Vert (976,58),LinePoint Begin Vert (592,58),LinePoint Begin Vert (4,58),LinePoint End Vert (716,56),LinePoint End Vert (156,54),LinePoint Begin Vert (126,54),LinePoint Begin Vert (382,52),LinePoint Begin Vert (92,52),LinePoint Begin Vert (990,50),LinePoint End Horiz (96,50),LinePoint Begin Horiz (94,50),LinePoint End Horiz (648,48),LinePoint Begin Horiz (276,48),LinePoint End Vert (110,46),LinePoint End Horiz (622,42),LinePoint Begin Horiz (470,42),LinePoint End Horiz (536,38),LinePoint Begin Horiz (286,38),LinePoint End Horiz (22,38),LinePoint End Vert (344,36),LinePoint Begin Vert (110,36),LinePoint End Horiz (472,34),LinePoint Begin Horiz (382,34),LinePoint Begin Vert (344,30),LinePoint End Vert (948,28),LinePoint End Horiz (692,28),LinePoint Begin Horiz (606,28),LinePoint End Horiz (706,26),LinePoint Begin Horiz (696,26),LinePoint End Horiz (506,26),LinePoint Begin Horiz (296,26),LinePoint End Horiz (120,26),LinePoint Begin Horiz (60,26),LinePoint End Horiz (476,24),LinePoint Begin Horiz (344,24),LinePoint Begin Vert (130,24),LinePoint End Vert (104,22),LinePoint Begin Vert (204,18),LinePoint End Horiz (832,16),LinePoint Begin Horiz (780,16),LinePoint End Vert (334,14),LinePoint Begin Vert (104,12),LinePoint Begin Vert (948,10),LinePoint Begin Vert (716,10),LinePoint Begin Vert (334,10),LinePoint Begin Vert (156,10),LinePoint End Horiz (836,6),LinePoint Begin Horiz (42,6),LinePoint End Horiz (732,4),LinePoint Begin Horiz (574,4),LinePoint Begin Vert (956,2),LinePoint End Vert (870,2)]
correct (Line a@(LinePoint End _ _) b@(LinePoint Begin _ _)) = Line b a
correct l = l
pred1 (LinePoint t Horiz (_,y)) (LinePoint t' Horiz (_,y')) = y == y' && flipType t == t'
pred1 (LinePoint t Vert (x,_)) (LinePoint t' Vert (x',_)) = x == x' && flipType t == t'
pred1 _ _ = False
match acc (p:ps) = case find (pred1 p) ps of
Just p' -> match ((Line p p'):acc) (delete p' ps)
Nothing -> error $ "Cannot match " ++ show p
match acc [] = map correct acc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment