-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreadmeRTF.rtf
969 lines (966 loc) · 172 KB
/
readmeRTF.rtf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}
{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}
{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f45\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f46\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\f48\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f49\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f50\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f51\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\f52\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f53\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f65\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}{\f66\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}
{\f68\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f69\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f70\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f71\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}
{\f72\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f73\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f385\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f386\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}
{\f388\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f389\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f392\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f393\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}
{\f415\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f416\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f418\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f419\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
{\f420\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f421\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\f422\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\f423\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}
{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}
{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}
{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);}{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}
{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;\red192\green80\blue77;\red0\green77\blue187;\caccentfive\ctint255\cshade191\red47\green84\blue150;
\red0\green176\blue80;\caccentone\ctint153\cshade255\red156\green194\blue229;\red79\green129\blue189;\red75\green172\blue198;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \sunhideused \spriority1 Default Paragraph Font;}{\*
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1
\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused
Normal Table;}}{\*\pgptbl {\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0
\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0
\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0
\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0
\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0
}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp600\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0
\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0
\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0
\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0
\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0
\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0
\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0
\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0
\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0
\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp764\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0
\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0
\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0
\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0
\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp601\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0
\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0
\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0
\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0
\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0
\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0
\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0
\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0
\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0
\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp128\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp
\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp0\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348
\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0
\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0
\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0
\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0
\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp708\itap0\li0\ri0\sb0
\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp348\itap0\li0\ri0\sb0\sa0}
{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp494\itap0\li0\ri0\sb0\sa0}{\pgp\ipgp51\itap0\li0\ri0\sb0\sa0}}{\*\rsidtbl \rsid16427\rsid417753
\rsid2708971\rsid3174499\rsid3491252\rsid3499071\rsid4607472\rsid4744605\rsid6050153\rsid6585471\rsid7420032\rsid8485843\rsid9513550\rsid9961517\rsid9985626\rsid10559700\rsid10948649\rsid12483204\rsid12547560\rsid13240384\rsid13831861\rsid14055882
\rsid14304034\rsid14365214\rsid15034109\rsid15419609\rsid15608141}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Pilcher, William}{\operator William Pilcher}
{\creatim\yr2017\mo6\dy30\hr17\min16}{\revtim\yr2020\mo3\dy16\hr15\min35}{\version19}{\edmins193}{\nofpages14}{\nofwords4771}{\nofchars27198}{\nofcharsws31906}{\vern123}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}
\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701
\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\viewnobound1\rsidroot13831861 \nouicompat \fet0{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1
\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5
\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang
{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 {\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
VoronoiDiagram is an implementation of fortune's algorithm utilizing circle sweeps rather than a traditional plane sweep. Unlike matlab's native implementation of voronoi diagram generation, this code can accept lines as inputs. This readme also covers t
\hich\af2\dbch\af31505\loch\f2 h\hich\af2\dbch\af31505\loch\f2 e pre and post processing functions which prepare images for diagram construction, and extract features from the diagram.
\par
\par \hich\af2\dbch\af31505\loch\f2
This program makes extensive use of the Matlab object oriented programming environment. For performance reasons, you should run this code on the most recent version of Matlab possible (2017a). Version 2017a has a 50% performance increase compared to 2016a
.\hich\af2\dbch\af31505\loch\f2
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par ----------------------------------------------------------------
\par \hich\af2\dbch\af31505\loch\f2 There are five main routi}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid3174499 \hich\af2\dbch\af31505\loch\f2 nes which must be called in }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
order. They perform the following
\par }{\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 1) EDGE EXTRACTION
\par \hich\af2\dbch\af31505\loch\f2 2) DIAGRAM CONSTRUCTION
\par \hich\af2\dbch\af31505\loch\f2 3) DIAGRAM CLEANUP AND PROCESSING
\par \hich\af2\dbch\af31505\loch\f2 4) BRIDGE EXTRACTION
\par \hich\af2\dbch\af31505\loch\f2 5\hich\af2\dbch\af31505\loch\f2 ) LOOP EXTRACTION
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par \hich\af2\dbch\af31505\loch\f2 For most use cases, the user should interact with a function which automates this process, or through a GUI. }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\ul\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 runVoronoi }{\rtlch\fcs1
\af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 contains a template of how the Voronoi diagram code can be interacted with.
\par \hich\af2\dbch\af31505\loch\f2 For those who wish to modify or customiz\hich\af2\dbch\af31505\loch\f2 e the behavi}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14365214 \hich\af2\dbch\af31505\loch\f2 or of the code, they may need t}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 o use these commands directly.
\par \hich\af2\dbch\af31505\loch\f2 Some extra parameters can control the behavior of the code. These parameters will be noted on a file by file basis.
\par
\par \hich\af2\dbch\af31505\loch\f2 This readme has three sections: simple, detailed, and advanced. \hich\af2\dbch\af31505\loch\f2
Simple gives a brief description of a function and its core input/outputs. It will tell you the flow of outputs between one function and inputs of another.
\par
\par \hich\af2\dbch\af31505\loch\f2 Detailed gives a function breakdown, additional parameters which may be modified, and additiona\hich\af2\dbch\af31505\loch\f2 l information on the on the constraints of each process.
\par
\par \hich\af2\dbch\af31505\loch\f2 Advanced goes into detail on specific topics which may be helpful for analyzing the raw data manually. Further comments can be found in internal functions for information on each routine
\par
\par ----------------------------------------------------------------
\par }{\rtlch\fcs1 \ab\af2\afs36 \ltrch\fcs0 \b\f2\fs36\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 SIMPLE:}{\rtlch\fcs1 \af2\afs36 \ltrch\fcs0 \f2\fs36\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 1) EDGE EXTRACTION }{\rtlch\fcs1 \af2\afs28 \ltrch\fcs0 \f2\fs28\insrsid14055882 \line }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 [}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf6\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 vertexList}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 ,}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf6\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 edgeList}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 ,}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf6\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf19\insrsid15034109
\hich\af2\dbch\af31505\loch\f2 imageStruct}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 ] = multiLayerBorder(}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 image}{
\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 ,0.99}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 )
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 Thi\hich\af2\dbch\af31505\loch\f2 s code accepts a binary image (image) and traces the borders between the black and white boundaries of pixels}{\rtlch\fcs1 \ab\af2
\ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 . }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15608141 \hich\af2\dbch\af31505\loch\f2 This prepares the input for V}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 oronoi diagram generation
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 If working with a label image, please see information on multiLayerBorder_LABEL
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 2) DIAGRA\hich\af2\dbch\af31505\loch\f2 M CONSTRUCTION\line }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 [}{
\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf6\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 records}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 ]= }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid15034109
\hich\af2\dbch\af31505\loch\f2 Voronoi_DT}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 [}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 vertexList}{\rtlch\fcs1 \ab\af2
\ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 , }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 EL}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 , }{
\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf21\insrsid15034109\charrsid15034109 \loch\af2\dbch\af31505\hich\f2 \lquote \loch\f2 ImageStruct\hich\f2 \rquote \loch\f2 ,imageStruct}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 )
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid15034109
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 Uses the information from multiLayerBorder to construct a voronoi diagram on a set of input edges}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109
\hich\af2\dbch\af31505\loch\f2 . Information about the Voronoi diagram will be stored in records.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 Records has five key fields, each of which has a set of it\hich\f2 \rquote \loch\f2 s own fields
\par \tab }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 .Inputs }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109 \loch\af2\dbch\af31505\hich\f2 \endash \loch\f2 an nx5 ar\hich\af2\dbch\af31505\loch\f2
ray of information about all inputs
\par \tab }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 .edgeSup \hich\f2 \endash \loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2
an nx9 array with additional info about input edges.
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid15034109 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 verts }{\rtlch\fcs1
\af2 \ltrch\fcs0 \f2\insrsid15034109 \loch\af2\dbch\af31505\hich\f2 \endash \loch\f2 a structure with multiple fields. Contains information about output vertices.
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid15034109\charrsid15034109 \hich\af2\dbch\af31505\loch\f2 edges}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109
\loch\af2\dbch\af31505\hich\f2 \endash \loch\f2 a structure with multiple fields. Contains information abou\hich\af2\dbch\af31505\loch\f2 t output edges in the diagram.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109\charrsid15034109
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 facesFull }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109 \loch\af2\dbch\af31505\hich\f2 \endash \loch\f2
contains information about the Voronoi cell surrounding each input}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid15034109 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 For more information about the records structure, see the section on records.
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6050153\charrsid15034109
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\insrsid16427 \hich\af2\dbch\af31505\loch\f2 3}{\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 ) BRIDGE EXTRACTION
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 [}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf6\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 dataStruct}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 ] = }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 processRecords}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0
\b\f2\cf20\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 records}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 )
\par \hich\af2\dbch\af31505\loch\f2 This process identifies all bridges, defined as vertices and half edges which exactly bisects two objects. Requires t\hich\af2\dbch\af31505\loch\f2
he processed output array and creates a structure with a field .bridges which holds information about the vertices and edges on this bridge.
\par
\par \hich\af2\dbch\af31505\loch\f2 See the detailed section for further explanation of the fields
\par
\par }{\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\insrsid16427 \hich\af2\dbch\af31505\loch\f2 4}{\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 ) LOOP EXTRACTION
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 [}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf6\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 dataStruct}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 ] = }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 extractCycles}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0
\b\f2\cf20\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 re\hich\af2\dbch\af31505\loch\f2 cords}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 , }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 dataStruct}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 )
\par \hich\af2\dbch\af31505\loch\f2 This process uses information from the records_ARRAY from cleanRecords and dataStruct from bridge extraction to find all global cycles inside each object with a hole. This adds fields .loop.object}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid16427 \hich\af2\dbch\af31505\loch\f2 .*}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 and .loop.hole}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid16427 \hich\af2\dbch\af31505\loch\f2 .*, which
\hich\af2\dbch\af31505\loch\f2 each have fields .acyclic\hich\af2\dbch\af31505\loch\f2 (n), .enclosed(n), and .enclosing(n),}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 which provides the
\hich\af2\dbch\af31505\loch\f2 boundary profiles along with points on the cycle in each region.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid16427 \hich\af2\dbch\af31505\loch\f2 Information about a specific boundary can be e\hich\af2\dbch\af31505\loch\f2
xtracted by calling getCycleInfo(dataStruct,\hich\af2\dbch\af31505\loch\f2 color)}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid16427
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 ----------------------------------------------------------------
\par }{\rtlch\fcs1 \ab\af2\afs36 \ltrch\fcs0 \b\f2\fs36\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 DETAILED:}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\ul\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 EDGE EXTRACTION:
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 [}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf6\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 vertexList, edgeList, }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0
\b\f2\cf19\insrsid15419609 \hich\af2\dbch\af31505\loch\f2 imageStruct}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 ] = multiLayerBorder(}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 image,}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid2708971 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 perturbationWeight}{\rtlch\fcs1
\ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 )
\par }{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 NOTES:}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 This code acc\hich\af2\dbch\af31505\loch\f2 epts an image and traces the borders between the black and white boundaries of pixels}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0
\b\f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf22\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 The resulting vertices will be on a 'half pixel edge' (IE, 1.5, 2.5).}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 The edge list will connect vertices of each object in a counter clockwise manner. }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf22\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 All object (wh\hich\af2\dbch\af31505\loch\f2
ite) regions are assumed to be 8-connected, all hole regions are assumed to be 4 connected.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
If the user does not wish this to be true, then they can choose to either invert the image and reverse the interpretation of 'holes' and 'objects' later on.
\par
\par }{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 INPU\hich\af2\dbch\af31505\loch\f2 T: }{\rtlch\fcs1 \af2\afs24 \ltrch\fcs0 \f2\fs24\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 image }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
is a 2d image where all non-zero pixels are assumed to be an object. The image will be immediately thresholded under this assumption in the function.
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 perturbationWeight }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
is a number between 0 and 1 which indicates how the pixels on 8-connected on\hich\af2\dbch\af31505\loch\f2
ly pixels will be modified. By default the tracing algorithm will (correctly) place two vertices at these points. The perturbation slightly widens this gap so that the object has no zero-width gaps internally.
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf19\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 All code following this assumes a weight str\hich\af2\dbch\af31505\loch\f2
ictly less than 1 (no perturbation) and greater than 0 (large perturbation) is provided. Unpredictable behavior may arise if this parameter is not in range. If unset, it defaults to 0.99, a 1% }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf19\insrsid3499071
\hich\af2\dbch\af31505\loch\f2 perturbation}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf19\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 . Please be careful to not choose weights smalle\hich\af2\dbch\af31505\loch\f2
r than 10^-5, as computational geometry techniques may be highly sensitive to floating point errors.
\par \hich\af2\dbch\af31505\loch\f2 For additional information on perturbation weight, see expanded notes below }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\ul\cf19\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (PERTURBATION WEIGHT)}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\cf19\insrsid14055882 .
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 OUTPUT:
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 vertexList }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 - an n x 2 list of all vertex coordi\hich\af2\dbch\af31505\loch\f2
nates. See expanded notes for more information }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\ul\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (BORDER TRACING)
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 edgeList }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
- an n x 2 list of all vertex connections, in the format of (vertexIndex1, vertexIndex2)
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 imageStruct \hich\f2 \endash }{\rtlch\fcs1 \ab\af0 \ltrch\fcs0 \b\insrsid15034109 \hich\af31506\dbch\af31505\loch\f31506 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid15034109\charrsid15034109 \hich\af2\dbch\af31505\loch\f2 A structure}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 with multiple fields \hich\af2\dbch\af31505\loch\f2 with information about the image.}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109\charrsid15034109
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid15034109 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 numObjects}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 - the number of objects and holes
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 numNonHoles}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 - the number of }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 foreground objects}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 lengthOfObjects }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 - the number of vertices associated with each object
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 colorList }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \tab \hich\af2\dbch\af31505\loch\f2 - the color of the border upon which each vertex l
\hich\af2\dbch\af31505\loch\f2 ies, IE, the object from which each vertex was generated.
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 pixelIndexOffset}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
- an n+1 x 1 vector where n is the number of objects. the ith+1 index represents the index of the last item in the }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid13240384 \hich\af2\dbch\af31505\loch\f2 I\hich\f2 \rquote }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 th object.
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 labelMat }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 - from bwboundaries, returns a m x n matrix \hich\af2\dbch\af31505\loch\f2
matching the original image size where each pixel is assigned a color according to what object/hole it was in. Background regions are labeled 0.
\par \hich\af2\dbch\af31505\loch\f2 adjacencyMatrix - an n x n sparse matrix, where n is the number of objects, indicating if a region encloses or\hich\af2\dbch\af31505\loch\f2 is enclosed by another region.
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf22\insrsid15034109 \hich\af2\dbch\af31505\loch\f2 By default, the location of each Voronoi Vertex is found by searching in labelMat. T}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf22\insrsid4744605
\hich\af2\dbch\af31505\loch\f2 his can be }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par
\par \hich\af2\dbch\af31505\loch\f2 All this information can be used by the various functions
\par
\par }{\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 VORONOI DIAGRAM CONSTRUCTION
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 [}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf6\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 records}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 ]= Voronoi}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 _DT}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 [}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0
\b\f2\cf20\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 vertexList}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 , }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
edgeList}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 , }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf23\insrsid9985626\charrsid9985626 \loch\af2\dbch\af31505\hich\f2 \lquote \hich\af2\dbch\af31505\loch\f2 Options
\loch\af2\dbch\af31505\hich\f2 \rquote \loch\af2\dbch\af31505\hich\f2 \'85}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 )
\par }{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 NOTES:
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf22\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 All vertices not placed on the border have a maximum degree of 3. In the event that there are four or more objects which are }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0
\b\f2\cf22\insrsid9961517 \hich\af2\dbch\af31505\loch\f2 tangent}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf22\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
to the circle at each voronoi vertex, the vertex will be split with a zero distance edge connecting the two vertices. Whi\hich\af2\dbch\af31505\loch\f2
le this could be considered an artifact, this is the preferred mechanism for defining a voronoi diagram.
\par }{\rtlch\fcs1 \ab\af2\afs18 \ltrch\fcs0 \b\f2\fs18\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 INPUT:}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par \hich\af2\dbch\af31505\loch\f2 This code computes a general voronoi diagram based on (required) }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 vertexCoor }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 and (optional) }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 edgeList}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
. If no edge list is provided, the vertices \hich\af2\dbch\af31505\loch\f2 are assumed to not be part of an edge.
\par \hich\af2\dbch\af31505\loch\f2 The code will execute and generate a voronoi diagram on the following circumstances
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf19\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 1) All vertices in vertexList are unique.
\par \hich\af2\dbch\af31505\loch\f2 2) No edges in edge list overlap another edge EXCEPT at an endpoint.
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf19\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 Please note that if t\hich\af2\dbch\af31505\loch\f2 he x or y components of vertices are }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf19\insrsid9985626
\hich\af2\dbch\af31505\loch\f2 separated}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf19\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
by difference on the order of the limit of machine precision, unpredictable behavior, or crashes, may occur when computing the voronoi diagram. See (}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\ul\cf19\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
NUMERICAL PRECISION}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf19\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 ) for more information.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid9985626 \hich\af2\dbch\af31505\loch\f2 If Debugging i\hich\af2\dbch\af31505\loch\f2 s required, p\hich\af2\dbch\af31505\loch\f2 lease\hich\af2\dbch\af31505\loch\f2 set the \loch\af2\dbch\af31505\hich\f2 \lquote \hich\af2\dbch\af31505\loch\f2
DebugMode\loch\af2\dbch\af31505\hich\f2 \rquote \hich\af2\dbch\af31505\loch\f2 option to true to \hich\af2\dbch\af31505\loch\f2 perform internal v\hich\af2\dbch\af31505\loch\f2 erification during con\hich\af2\dbch\af31505\loch\f2 struction.}{\rtlch\fcs1
\af2 \ltrch\fcs0 \f2\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid9985626 \hich\af2\dbch\af31505\loch\f2 This function has multiple option\hich\af2\dbch\af31505\loch\f2 s which i\hich\af2\dbch\af31505\loch\f2 nfl\hich\af2\dbch\af31505\loch\f2
uences the type of data stored within the graph. }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid9985626
\par \hich\af2\dbch\af31505\loch\f2 The standard options for}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6050153 \hich\af2\dbch\af31505\loch\f2 inputs derived from a}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid9985626 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1
\af2 \ltrch\fcs0 \f2\insrsid6050153 \hich\af2\dbch\af31505\loch\f2 binary}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid9985626 \hich\af2\dbch\af31505\loch\f2 images is as follows:
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9985626 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid9985626 \hich\af2\dbch\af31505\loch\f2 [}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf6\insrsid9985626
\hich\af2\dbch\af31505\loch\f2 records}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid9985626 \hich\af2\dbch\af31505\loch\f2 ]= Voronoi\hich\af2\dbch\af31505\loch\f2 _DT\hich\af2\dbch\af31505\loch\f2 [}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0
\b\f2\cf20\insrsid9985626 \hich\af2\dbch\af31505\loch\f2 vertexList}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid9985626 \hich\af2\dbch\af31505\loch\f2 , }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid9985626 \hich\af2\dbch\af31505\loch\f2 edgeList}
{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid9985626 \hich\af2\dbch\af31505\loch\f2 , }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf23\insrsid9985626\charrsid9985626 \loch\af2\dbch\af31505\hich\f2 \lquote }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0
\b\f2\cf23\insrsid9985626 \hich\af2\dbch\af31505\loch\f2 ImageStruc\hich\af2\dbch\af31505\loch\f2 t\loch\af2\dbch\af31505\hich\f2 \rquote ,}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid9985626\charrsid9985626 \hich\af2\dbch\af31505\loch\f2 }{
\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid9985626 \hich\af2\dbch\af31505\loch\f2 imageStruct}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid9985626 \hich\af2\dbch\af31505\loch\f2 )}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid9985626
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6050153\charrsid6050153
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid9985626\charrsid9985626
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2\afs32 \ltrch\fcs0 \b\f2\fs32\insrsid417753\charrsid417753 \hich\af2\dbch\af31505\loch\f2 The Records Structure
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid417753 \hich\af2\dbch\af31505\loch\f2 Contains the raw information about the Voronoi graph. Contains fields
\par \hich\af2\dbch\af31505\loch\f2 for the input, input edge supplemental info, output vertices, output
\par \hich\af2\dbch\af31505\loch\f2 edges, output faces, and output composite faces. Each of these fields
\par \hich\af2\dbch\af31505\loch\f2 is itself a structure.
\par
\par }{\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\insrsid417753\charrsid417753 \hich\af2\dbch\af31505\loch\f2 records.input
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid417753 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid417753 \hich\af2\dbch\af31505\loch\f2 nx5 array - One entry for each vertex in vertex coor, two}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid417753 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid417753 \hich\af2\dbch\af31505\loch\f2 entries for e\hich\af2\dbch\af31505\loch\f2 ach edge in EL}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid417753 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid417753 \hich\af2\dbch\af31505\loch\f2 Contains basic information about the input vertices and}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid417753 \hich\af2\dbch\af31505\loch\f2 edges
\par
\par \hich\af2\dbch\af31505\loch\f2 Index 1: 0 if vertex, 1 if edge
\par \hich\af2\dbch\af31505\loch\f2 Index 2: The color
\par \hich\af2\dbch\af31505\loch\f2 Index 3, 4:
\par \hich\af2\dbch\af31505\loch\f2 If vertex: x, y coordinates
\par \hich\af2\dbch\af31505\loch\f2 If edge: Indices of the start and end vertex
\par \hich\af2\dbch\af31505\loch\f2 Index 5: Face ID
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid417753
\par }{\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\insrsid417753\charrsid417753 \hich\af2\dbch\af31505\loch\f2 records.edgeSup
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid7420032 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 nx9 array - contains information about the input edges in}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 the Voronoi diagram. There are two entries for each input}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 edge. This is indexed in the same order as records.input,}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 but does not contain any of the vertices. Therefore, the}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032
\hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 first index of records.ed\hich\af2\dbch\af31505\loch\f2 geSup corresponds to the number of}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 input vertices + 1
\par
\par \hich\af2\dbch\af31505\loch\f2 This information was typically used to draw parabolic arcs}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032
\hich\af2\dbch\af31505\loch\f2 spawned as the bisector between an input edge and an input}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032
\hich\af2\dbch\af31505\loch\f2 vertex. As the control point is now precomputed, this}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032
\hich\af2\dbch\af31505\loch\f2 structure should not need to \hich\af2\dbch\af31505\loch\f2 be used.
\par
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 Index 1, 2}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 : 'X, Y' direction (endpoint 2 - endpoint 1)
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 Index 3}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 : \hich\af2\dbch\af31505\loch\f2
'infRad' - The distance to the center of the}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2
sweep circle if the line extended infinitely (not bound}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2
between endpoints). Used for geometric/parabola}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 computations
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 Index 4, 5, 6}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 : 'A, B, C' in standard form equation Ax + By
}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 + C = }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 0}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid417753\charrsid7420032
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 Index 7}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 : Magnitude (euclidian distance between endpoints)
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 Index 8}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 : 0 if the 'Lower Edge' which points towards the}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 center of the \hich\af2\dbch\af31505\loch\f2
sweep circle. 1 If it's the 'Upper Edge'}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2
which points away from the center of the sweep circle
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 Index 9}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 : Index of twin (*in edgeSup)
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid417753
\par }{\rtlch\fcs1 \ab\af2\afs32 \ltrch\fcs0 \b\f2\fs32\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 records.verts
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 Contains multiple sub-fields, each which is a vector with
\par \hich\af2\dbch\af31505\loch\f2 one row per vertex
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid417753
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 records.verts.pos
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid7420032 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 nx2 a\hich\af2\dbch\af31505\loch\f2
rray consisting of the (x,y) position for each}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 vertex
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 records.verts.rad
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid7420032 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 nx1 array with the radius of each voronoi vertex}{\rtlch\fcs1
\af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 (distance to nearest 3 inputs)
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 records.verts.borderRegions
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid7420032 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 nx2 array with information about the location of each}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 object.
\par \hich\af2\dbch\af31505\loch\f2 For vertices w\hich\af2\dbch\af31505\loch\f2 hich are entirely within a region and do}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 not lie on the border, both columns will list the}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 region the object lies in (defined by the color of it's}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 exterior boundary)}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 .
\par
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 For vertices which are on the boundary between a}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 foreground and background region, the first column will}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 list the foreground regionID, and the second column}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 will list the background regionID. RegionID is}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 typically defined by the color of the exterior bound\hich\af2\dbch\af31505\loch\f2 ary}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 of a region
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 records.verts.vertexCoorID
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid7420032 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 nx1 array of input vertexIDs}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 There will be a Voronoi vertex placed at the endpoint}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 of any input }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 line}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 segment. If this vertex is placed on}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032
\hich\af2\dbch\af31505\loch\f2 an input vertex (a 'boundary vertex'), this vector will}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032
\hich\af2\dbch\af31505\loch\f2 contain the index o\hich\af2\dbch\af31505\loch\f2 f this input vertex. Otherwise if it}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid7420032 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 is not on an input vertex, it will have a value of -1.
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 records.verts.locationType
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid6585471 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 nx1 array }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid7420032\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 containing}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 information about the location of}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid6585471 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 the vertex
\par \hich\af2\dbch\af31505\loch\f2 0: Vertex is in the in-graph/foreground
\par \hich\af2\dbch\af31505\loch\f2 1: Vertex is in the out-grpah/b\hich\af2\dbch\af31505\loch\f2 ackground
\par \hich\af2\dbch\af31505\loch\f2 2: Vertex is on the boundary between a foreground and}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6585471 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032
\hich\af2\dbch\af31505\loch\f2 background region
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 records.verts.edgeIDList
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid6585471 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 nx4 array of edgeIDs
\par \hich\af2\dbch\af31505\loch\f2 Contains indices of edges which start at this vertex.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6585471 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032
\hich\af2\dbch\af31505\loch\f2 Corresponds to records.edges. Most edges will have 3}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6585471 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032
\hich\af2\dbch\af31505\loch\f2 vertices. Some bounda\hich\af2\dbch\af31505\loch\f2 ry verts will have 4, and some}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6585471 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 infinite/unbounded verts will have a degree of 1
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 records.verts.color
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid6585471 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 nx3 array of colors
\par \hich\af2\dbch\af31505\loch\f2 Lists the colors of the 3 input objects each vertex is}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6585471 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032
\hich\af2\dbch\af31505\loch\f2 associated with
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 records.verts.infinite
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid6585471 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2 nx1 boolean
\par \hich\af2\dbch\af31505\loch\f2 Some edges in the Voronoi Diagram extend infinitely.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6585471 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032
\hich\af2\dbch\af31505\loch\f2 An artificial vertex is created for plotting purposes.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6585471 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032
\hich\af2\dbch\af31505\loch\f2 This value in this vector will be 1 if it is}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid6585471 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032 \hich\af2\dbch\af31505\loch\f2
artificially created on an unbounded edge
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid7420032
\par }{\rtlch\fcs1 \ab\af2\afs32 \ltrch\fcs0 \b\f2\fs32\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 records.edges
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 Contains multiple fields about the outp\hich\af2\dbch\af31505\loch\f2 ut edges. Each field
\par \hich\af2\dbch\af31505\loch\f2 is an array with one row per output edge.
\par
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 records.edges.twinID
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid14304034 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 nx1 array of edgeIDs
\par \hich\af2\dbch\af31505\loch\f2 Each edge is represented as a directional 'half edge'.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034
\hich\af2\dbch\af31505\loch\f2 This array will provide the index to the twin half edge
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 records.edges.edgeType
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid14304034 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 nx1 array of edg\hich\af2\dbch\af31505\loch\f2 eTypes
\par \hich\af2\dbch\af31505\loch\f2 There are three types of edges}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2
\par }\pard \ltrpar\ql \li1440\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin1440\itap0\pararsid14304034 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 0: Linear edge which terminates at a boundary}{\rtlch\fcs1
\af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 vertex
\par \hich\af2\dbch\af31505\loch\f2 1: Linear edge (fully in-graph)
\par \hich\af2\dbch\af31505\loch\f2 2: Quadratic edge
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid14304034 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 There are some additional legacy edge types which}{\rtlch\fcs1
\af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 should be noted
\par }\pard \ltrpar\ql \li1440\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin1440\itap0\pararsid14304034 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 101: Infinite linear edge
\par \hich\af2\dbch\af31505\loch\f2 102: Infinite quadratic\hich\af2\dbch\af31505\loch\f2 edge
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 records.edges.origin
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid14304034 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 nx2 array of vertex ids
\par \hich\af2\dbch\af31505\loch\f2 Contains indices for the startpoint and endpoint for}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034
\hich\af2\dbch\af31505\loch\f2 each line.
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 records.edges.dist
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid14304034 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 nx1 array of distances
\par \hich\af2\dbch\af31505\loch\f2 The length of the edge (euclidian distance between}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034
\hich\af2\dbch\af31505\loch\f2 endpoints for lines, arc lengths for parabolas)
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 records.edges.dir
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid14304034 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 nx2 array
\par \hich\af2\dbch\af31505\loch\f2 The direction of the tangent vector to an edge at the}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034
\hich\af2\dbch\af31505\loch\f2 origin
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 records.edges.obj
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid14304034 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 nx1 array of inputIDs
\par \hich\af2\dbch\af31505\loch\f2 The input object correspondi\hich\af2\dbch\af31505\loch\f2 ng to this edge. This edge}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 is the bisector between this input object, and the}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 input object corresponding to it's twin. This index can}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 be used to access information in records.inputs and}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 records.facesFull
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 records.edges.controlPoint
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid14304034 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 nx2 array of coordinates
\par \hich\af2\dbch\af31505\loch\f2 x,y position of the control point, used for drawing a}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034
\hich\af2\dbch\af31505\loch\f2 quadratic bezeir curve. This is the intersection of the}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034
\hich\af2\dbch\af31505\loch\f2 tangent lines at the start and endpoint of the}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034
\hich\af2\dbch\af31505\loch\f2 parabolas.
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 records.edges.faceID
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid14304034 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 nx1 array of faceID
\par \hich\af2\dbch\af31505\loch\f2 The composite faceID of the corresponding input\hich\af2\dbch\af31505\loch\f2 object.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 This is derived from the user supplied faceIDs}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14304034 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid417753\charrsid14304034 \hich\af2\dbch\af31505\loch\f2 Corresponds to indices in records.Faces
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid417753
\par }{\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\insrsid417753\charrsid8485843 \hich\af2\dbch\af31505\loch\f2 records.facesFull
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 nx1 struct array, with one entry per input object
\par \hich\af2\dbch\af31505\loch\f2 Contains information about the Voronoi Cell around each
\par \hich\af2\dbch\af31505\loch\f2 input object. The index of these faces matches 1-to-1 with
\par \hich\af2\dbch\af31505\loch\f2 records.inputs and records.edges.obj. This does not include
\par \hich\af2\dbch\af31505\loch\f2 composite faces formed with the faceID arguments
\par
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.facesFull(i).Vertices
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid10948649 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 A\hich\af2\dbch\af31505\loch\f2
list of Voronoi vertices associated with a Voronoi
\par \hich\af2\dbch\af31505\loch\f2 cell, in no particular order
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.facesFull(i).Edges
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid10948649 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 A list of Voronoi Edges associated with a Voronoi cell,
\par \hich\af2\dbch\af31505\loch\f2 in no particular order
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.facesFull(i).Neighbors
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid10948649 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 A list of adjacent Voronoi cells. Ther
\hich\af2\dbch\af31505\loch\f2 e is one entry
\par \hich\af2\dbch\af31505\loch\f2 for each edge, and entries can be repeated
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.facesFull(i).Object
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid10948649 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 The objectID associated with each face (should match
\par \hich\af2\dbch\af31505\loch\f2 the index)
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.facesFull(i).groupID
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid10948649 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 The composite faceID this face is associated with
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.facesFull(i).Closed
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid10948649 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 1 if the face is finite and bounded
\par \hich\af2\dbch\af31505\loch\f2 0 if the face is infinite and unbounded.
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf6\insrsid417753\charrsid12547560
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf6\insrsid12547560\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 *}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf6\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2
The following is only used if faceIDs are set
\par }{\rtlch\fcs1 \ab\af2\afs32 \ltrch\fcs0 \b\f2\fs32\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.Faces
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 nx1 struct array, with one entry per faceID (from 1 to
\par \hich\af2\dbch\af31505\loch\f2 maxFaceID)
\par
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.Faces(i).Vertices
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid12547560 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 A list of Vertices associated with each composite face.}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 Only includes Vertices on the boundary between one}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 composite face and another. This is ordered such that}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 ea\hich\af2\dbch\af31505\loch\f2 ch subsequent vertex is connected to the }{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid12547560\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 preceding}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560
\hich\af2\dbch\af31505\loch\f2 vertex by an edge
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.Faces(i).Edges
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid12547560 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 A list of Edges associated with each composite face.}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 Only includes Edges on the boundary between one}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 composite face and another. This is ordered such that}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 each sub\hich\af2\dbch\af31505\loch\f2 sequent edge shares a common endpoint
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.Faces(i).Neighbors
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid12547560 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 A list of adjacent composite faces. There is one entry}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 per entry in records.Faces(i).Edges. This is ordered}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 such that the jth entry in neighbor corresponds to the}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 face on the opposite side of\hich\af2\dbch\af31505\loch\f2 the jth entry in Edges
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.Faces(i).Objects
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid12547560 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 A list of input objects which the composite face is}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 associated with.
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.Faces(i).FaceComponents
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid12547560 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 A list of individual Voronoi cells a composite face is}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 associated with. This can be used to index into}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 re\hich\af2\dbch\af31505\loch\f2 cords.facesFull. This should match}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.Faces.Objects
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.Faces(i).Finite
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid12547560 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 1 if the face is fully bounded and finite}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid12547560
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 0 if the face is unbounded
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.Faces(i).FaceStartingIndex
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid12547560 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 If a composite face is split such that it can only be}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 represented as multiple polygons, this will indicate}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 the first index in Edges which is associated with each}{\rtlch\fcs1 \af2 \ltrch\fcs0
\f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 polygon. This should be avoided.
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.Faces(i).FaceEndingIndex
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid12547560 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 If a composite face is split\hich\af2\dbch\af31505\loch\f2
such that it can only be}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2
represented as multiple polygons, this will indicate}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2
the last index in Edges which is associated with each}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2
polygon. This should be avoided.
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 records.Faces(i).subFaces
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0\pararsid12547560 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 This indicates the number of polygons a composite face}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid12547560 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560 \hich\af2\dbch\af31505\loch\f2 is split \hich\af2\dbch\af31505\loch\f2
into. For most cases, this should be 1. }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid417753\charrsid12547560
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid417753 {\rtlch\fcs1 \ab\af2\afs32 \ltrch\fcs0 \b\f2\fs32\insrsid417753
\par }{\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 B\hich\af2\dbch\af31505\loch\f2 RIDGE EXTRACTION:
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 [}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf6\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
dataStruct}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 ] = }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 processRecords}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 (}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 records_ARRAY}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 )
\par }{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 NOTES:
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 Th\hich\af2\dbch\af31505\loch\f2 is process identifies all bridges, defined vertices and half edges which exactly bisects two objects.
\par
\par }{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 INPUT:}{\rtlch\fcs1 \af2\afs24 \ltrch\fcs0 \f2\fs24\insrsid14055882
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 The inputs are simply the processed records list from cleanup records
\par
\par }{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 OUTPUT:
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 dataStruct is the following structure.
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 dataStruct}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 bridgeArrayIndex}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (n x n)\tab = Sparse matrix mapping the bridge color [}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 objectA}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 , }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 objectB }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 or }{
\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 objectB}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 , }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf24\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 objectA}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 ] to an index in .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 bridges }{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 where information on the bridge can be found. }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf19\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 Note this only stores one bridge per color combination.}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 This is used later mostly to easily find \hich\af2\dbch\af31505\loch\f2
a set of valid vertices to perform cycle analysis. To find all bridges between two objects, search through the color pattern stored by .bridge
\par
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 bridge}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 EL }{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid14055882 \tab \hich\af2\dbch\af31505\loch\f2 = edgeList of all edges on a continuous bridge
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 bridge}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 Vertices }{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 = vertex list of all vertices on a \hich\af2\dbch\af31505\loch\f2 continuous bridge
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 bridge}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 radius}{\rtlch\fcs1
\af2 \ltrch\fcs0 \f2\insrsid14055882 \tab \hich\af2\dbch\af31505\loch\f2 = radius of all voronoi vertex nodes on a continuous bridge
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 bridge}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 incDist}{\rtlch\fcs1
\af2 \ltrch\fcs0 \f2\insrsid14055882 \tab \hich\af2\dbch\af31505\loch\f2 = Distance along each edge
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 bridge}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 dist}{\rtlch\fcs1
\af2 \ltrch\fcs0 \f2\insrsid14055882 \tab \hich\af2\dbch\af31505\loch\f2 = Cumulative distance from the first to last vertex. The first vertex has a distance of 0.
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 bridge}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 completeCircuit }{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 = 1 if the bridge is a loop in itself, or 0 otherwise.
\par
\par
\par }{\rtlch\fcs1 \ab\af2\afs28 \ltrch\fcs0 \b\f2\fs28\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 LOOP EXTRACTION:}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par \hich\af2\dbch\af31505\loch\f2 [}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf6\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 dataStruct}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 ] = }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0
\b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 extractCycles}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 records_ARRAY}
{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 , }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf20\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 dataStruct}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 )
\par }{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 NOTES:
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 This \hich\af2\dbch\af31505\loch\f2
routine finds the largest internal cycle which connects all bridges involving an object together. It can be thought as a continuous path which is directly bisects the border of 1 object with all other objects. By definition, this will form a circle if o
\hich\af2\dbch\af31505\loch\f2 n\hich\af2\dbch\af31505\loch\f2 e object is inside another.
\par
\par \hich\af2\dbch\af31505\loch\f2 This can be defined more formally as follows.
\par }{\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 Let G be the subgraph of all directional half edges E and vertices V connected to E such that for all edges in E there is a voronoi face of color C.
\par
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 This finds the largest cycle i\hich\af2\dbch\af31505\loch\f2
n this subgraph via a depth first search, starting at a known valid location on a bridge. This allows for the user to identify the presence of protrusions or features along the boundary of any object or hole, and extract geometrical features.}{
\rtlch\fcs1 \ai\af2 \ltrch\fcs0 \i\f2\insrsid14055882
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 INPUT:
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 reco\hich\af2\dbch\af31505\loch\f2 rds_ARRAY\tab = }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 From cleanRecords
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 dataStruct\tab \tab }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 = From processRecords
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 OUTPUT:}{\rtlch\fcs1 \af2\afs24 \ltrch\fcs0 \f2\fs24\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 Additional field .loop for dataStruct (dataStruct.loop)}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par
\par \hich\af2\dbch\af31505\loch\f2 Fields for }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 dataStruct}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par \tab .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 loop}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 object}{
\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (n)\tab = array of structs for all loops which are \tab inside an object
\par \tab .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 loop}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 hole}{\rtlch\fcs1
\af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (n)\tab = array of \hich\af2\dbch\af31505\loch\f2 structs for all loops which are \tab inside a hole
\par
\par \hich\af2\dbch\af31505\loch\f2 Fields for }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 dataStruct}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 loop}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 object}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 (i) or }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 dataStruct}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 loop}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 hole}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 (i)
\par }\pard \ltrpar\ql \li720\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 n = number of vertices in sub graph.
\par \hich\af2\dbch\af31505\loch\f2 m = number of vertices on path.
\par \hich\af2\dbch\af31505\loch\f2 o = number of vertices in the sub graph on an object border
\par \hich\af2\dbch\af31505\loch\f2 v = number of vertices in the full diagram.
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 Critical:}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 Vertices\tab \tab \tab = m x 1 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
array of indices of vertices (corresponding to records.vorVert) for vertices along the largest cycle
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 EL\tab }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \tab \tab \tab \hich\af2\dbch\af31505\loch\f2 = m x 1 array o\hich\af2\dbch\af31505\loch\f2 f i}{\rtlch\fcs1
\af2 \ltrch\fcs0 \f2\insrsid4607472 \hich\af2\dbch\af31505\loch\f2 ndices of edges (corresponding }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 to records.halfEdge) for half edges along the largest cycle
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 distance}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \tab \tab \tab \hich\af2\dbch\af31505\loch\f2 = m x 1 array, defining the arc length}{\rtlch\fcs1 \ab\af2
\ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 distance from vertex 1 to vertex m along the path
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 radius}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \tab \tab \tab \hich\af2\dbch\af31505\loch\f2
= m x 1 array of the radius defined at each vertex along the path
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 subGraphVerts\tab \tab = }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
n x 16 array containing all records.vorVert information in this region.
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 boundaryProfile\tab = }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
o x 1 array containing the shortest path from a point on the boundary to a point \hich\af2\dbch\af31505\loch\f2 on the cycle
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 boundaryToCycleNode = }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
o x 1 array containing the index to the vertex in records which is closest to this point on the boundary. }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf22\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
This can be used to normalize boundaryProfile by the radius at this point for direct comparison with objects with\hich\af2\dbch\af31505\loch\f2 out cycles}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\par \hich\af2\dbch\af31505\loch\f2 Additional}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 :
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 subGraphParentEdge\tab = }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
n x 2 array indicating the index of the half edge by which this vertex (in sub graph verts) was reached. }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf24\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
The term parent is used as most vertices will be reached by descent from a subtree whose root starts on \hich\af2\dbch\af31505\loch\f2
the cycle. Points can have a maximum of two parents, as the maximum number of valid directional edges from a vertex on a bridge is 2, which is where the graph must both start and end.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\cf25\insrsid14055882
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 subGraphChildEdge}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \tab \hich\af2\dbch\af31505\loch\f2
= n x 2 array, all child nodes which are reached by \hich\af2\dbch\af31505\loch\f2 descending from a vertex.
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 .direction\tab \tab \tab =}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
m x 2 array, defining the normalized direction vector used to get to this vertex.
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 incrDist\tab \tab \tab = m x 1 array}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
, defining the distance between each edge along the loop
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 records2SubgraphMap_Vertices}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \tab \hich\af2\dbch\af31505\loch\f2 = a v x 1 array, whic\hich\af2\dbch\af31505\loch\f2
h maps each vertex v in the records list to corresponding vertex m in the subgraph region. 0 if it is not in the subgraph.
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 subGraph2RecordsMap_Vertices}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \tab \hich\af2\dbch\af31505\loch\f2
= a n x 1 array which maps all vertices in the subgraph to their corresponding vertex in records.
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 bina\hich\af2\dbch\af31505\loch\f2 ryFilt\tab \tab = a v x 1 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
logical array which is 1 if the vertex is in the subgraph
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 subGraphEL}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \tab \tab \hich\af2\dbch\af31505\loch\f2 = }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\hich\af2\dbch\af31505\loch\f2 a n x 11 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 array containing all information about edges in the subgraph
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 objectNumber\tab \tab = }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 the color of the object the subgraph is located in
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 color\tab \tab \tab = }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 the color of the\hich\af2\dbch\af31505\loch\f2
half edges in the subgraph
\par .}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 inObject\tab \tab \tab = }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 1 if in object, 0 if in background
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 .subGraphLeafFilter\tab =}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
an n x 1 logical matrix which is 1 if a leaf is on the edge, 0 otherwise
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf25\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 If everything has been run, the script plot measures will create plenty of sample diagrams. Additional post processing techniques will automate analysi}{
\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf25\insrsid3491252 \hich\af2\dbch\af31505\loch\f2 s of bridges and loops further.}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\cf25\insrsid14055882\charrsid3491252
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882
\par ----------------------------------------------------------------
\par }{\rtlch\fcs1 \ab\af2\afs36 \ltrch\fcs0 \b\f2\fs36\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 ADVANCED/EXPANDED NOTES}{\rtlch\fcs1 \af2\afs36 \ltrch\fcs0 \f2\fs36\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\ul\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (PERTURBATION WEIGHT) }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
A weight of 1 means that the pixel will remain in its original position. A weight of 0 means it will be set to the average of its neighboring vertices. A weight inbetween will perform a weighted average of t\hich\af2\dbch\af31505\loch\f2
hese two states. Please note that all algorithms assume a weight less than 1 (IE, some perturbation) is provided. If this is not done, then the user must manually reprocess these non-unique vertices to connect multiple edges between them. Furthermore, p
\hich\af2\dbch\af31505\loch\f2 o\hich\af2\dbch\af31505\loch\f2
st processing steps assume all vertices have at most 4 valid edges, and The border profile code restricts paths from going through a vertex, and assumes that all pixels border on, at most, two color regions, and assumes all vertices have a max degree of 4
.
\par \hich\af2\dbch\af31505\loch\f2
The voronoi diagram is general enough to which this perturbation is not strictly necessary if the edges for both vertices have been combined. However, the interpretation of the resulting diagram assumes a non-zero width at all internal points in an objec
\hich\af2\dbch\af31505\loch\f2 t as 1) the diameter of a cell being zero at any point is nonsensical and 2) it simplifies the assumptions involved later on in post-processing
\par
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\ul\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (BORDER TRACING) }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
Order of vertexList and edgeList is counterclockwise starting from the point on the outermost \hich\af2\dbch\af31505\loch\f2
object. After all vertices on the outer most object, it then list all vertices of the second object, and so on. When all objects have had }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10559700 \hich\af2\dbch\af31505\loch\f2 their}{\rtlch\fcs1 \af2
\ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 vertices listed, it then lists the vertices for all 4 connected holes.
\par
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\ul\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (Linear Voronoi Diagram Construction)
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 A voronoi diagram has three components
\par \hich\af2\dbch\af31505\loch\f2 A region closest to an input point (region closest to 1)
\par \hich\af2\dbch\af31505\loch\f2 A region closest to two input points (bisects two)
\par \hich\af2\dbch\af31505\loch\f2 A region closest to three input points (bisect three)
\par \hich\af2\dbch\af31505\loch\f2 ... and so on.
\par \hich\af2\dbch\af31505\loch\f2 In 2d, this becomes a polygonal face (\hich\af2\dbch\af31505\loch\f2
2d area closest to an input), an edge (1d bisector between two inputs), an a point (0d bisector between three points, the center of the resulting enscribed circle). In higher dimensions, everything goes up by 1.
\par \hich\af2\dbch\af31505\loch\f2 In 3d, }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid12483204 \hich\af2\dbch\af31505\loch\f2 it\hich\f2 \rquote \loch\f2 s}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
a volume around all inputs, a\hich\af2\dbch\af31505\loch\f2 plane bisecting two inputs, an edge bisector groups of three inputs, and a vertex at the center of an enscribed sphere between four inputs.
\par \hich\af2\dbch\af31505\loch\f2 This is why you cannot have intersecting or overlapping lines. If you have two points which overlap, A and B, what\hich\af2\dbch\af31505\loch\f2
is the polygon containing all points closer to A and B? Since this behavior is undefined, intersecting lines and overlapping vertices are strictly prohibitted.
\par
\par \hich\af2\dbch\af31505\loch\f2 Some edge voronoi diagram constructors use the additional assumption that two edges cannot sh\hich\af2\dbch\af31505\loch\f2
are an endpoint, and slightly space all cases which this occurs. This in the end creates something closer to a topological skeleton than a voronoi diagram. We wanted to have voronoi vertices placed (correctly) directly on endpoint between two connected ed
\hich\af2\dbch\af31505\loch\f2 g\hich\af2\dbch\af31505\loch\f2
es, as this will allow us to treat these points as 'leaves' descending from our interior voronoi diagram structure. If you take additional precautions when processing endpoints, then you can create a graph which isolates the diagram into the following reg
\hich\af2\dbch\af31505\loch\f2 i\hich\af2\dbch\af31505\loch\f2 ons:
\par \tab \hich\af2\dbch\af31505\loch\f2 Region closer to the endpoint
\par \tab \hich\af2\dbch\af31505\loch\f2 Region closer to line side A
\par \tab \hich\af2\dbch\af31505\loch\f2 Region closer to line side B
\par
\par \hich\af2\dbch\af31505\loch\f2 Some edges get marked as invalid internally, and are removed in cleanRecords. This can be considered an artifact of allowing shared endpoints. The Invalidatio\hich\af2\dbch\af31505\loch\f2
n occurs on the following scenario.
\par
\par \hich\af2\dbch\af31505\loch\f2 An endpoint is detected for two different edges. Four half edges are generated. LeftLineTop | EP, EP | RightLineTop, RightLineBottom|EP, EP|LeftLineBottom. These are called implicit edges, or type 0 edges, which are
\hich\af2\dbch\af31505\loch\f2 edges between an endpoint of a line and the rest of the line. Often you will see these at the start parabolic arcs at concave vertices.
\par
\par \hich\af2\dbch\af31505\loch\f2
If the line is parallel, two of these edges will get pinned two coincident vertices on one side of the line, and two will get pinned to two coincident vertices on the other line. The vertices will be connected by a zero-length edge indicating that the re
\hich\af2\dbch\af31505\loch\f2 g\hich\af2\dbch\af31505\loch\f2 ion closest to the endpoint is virtually non-existant.
\par
\par \hich\af2\dbch\af31505\loch\f2 If the line is not parallel, then there is one side in which the endpoint creates a parabolic arc overwhich all points are closer to the endpoint compared to the line or anything else (in which the ha
\hich\af2\dbch\af31505\loch\f2
lf edges are valid), and one side where the endpoint is closer to zero points compared to the two edges. Instead of creating two vertices at the endpoint, one of which with a degree of two, the edge leftLine|RightLine is pinned to the vertex, and the im
\hich\af2\dbch\af31505\loch\f2 p\hich\af2\dbch\af31505\loch\f2 licit edges are invalidated. In the end the vertex will have a degree of three - two implicit half edges and 1 half edge bisecting two lines.
\par
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\ul\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (COLOR)}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
We describe objects having a color several times. This is how we describe the objects which a point, ha\hich\af2\dbch\af31505\loch\f2
lf edge, or face are closest to. MultiLayerBorder assigns each 8-connected region or 4-connected hole an index. We use this index as a color to determine 1) Where a vertex is located (is it inside, or is it outside of a region?) and 2) what object/hole
\hich\af2\dbch\af31505\loch\f2 b\hich\af2\dbch\af31505\loch\f2 order is a voronoi vertex closest to?
\par
\par \hich\af2\dbch\af31505\loch\f2 Each half edge has 1 color. It is the color of the voronoi face which this half edge closes on the right. If a half edge's color differs from its twin, we call this a bridge*.
\par \hich\af2\dbch\af31505\loch\f2 *There are some additional bridges that\hich\af2\dbch\af31505\loch\f2
may be defined as consecutive sets of vertices and edges of some pure color A which connect two sets of bridges containing color A, which are otherwise disconnected. Typically we simply include these special bridges in loops.
\par
\par \hich\af2\dbch\af31505\loch\f2 Each interior voronoi verte\hich\af2\dbch\af31505\loch\f2 x has 3 colors. It is the color of the 3 half edges which start from this vertex. If the 3 colors are distinct, we call this vertex a hub.
\par
\par \hich\af2\dbch\af31505\loch\f2 Border vertices will have all 3 colors the same. To distinguish position, each vertex will have a background colo\hich\af2\dbch\af31505\loch\f2
r and object color. If a vertex is inside an object, its background and object color will match the object. If it is inside a hole, those two colors will match the hole. If it borders an object and a hole, the object color and background color will mat
\hich\af2\dbch\af31505\loch\f2 c\hich\af2\dbch\af31505\loch\f2 h the colors of the neigbors.
\par
\par \hich\af2\dbch\af31505\loch\f2 A special color is the background - which indicates any non-object region not enclosed by an object. This has an index 0. When plotting, it can be ignored simply by finding all vertices with non-zero colors.
\par
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\ul\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (Voronoi Verte\hich\af2\dbch\af31505\loch\f2 x)}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
A voronoi vertex is a vertex in the voronoi diagrma which is the center of an enscribed circle between three input objects. Each vertex stores the radius of said enscribed circle, along with the half edges starting from this point. The vertex's color
\hich\af2\dbch\af31505\loch\f2 will match that of the three input objects.
\par
\par \hich\af2\dbch\af31505\loch\f2 Some vertices are artifically created at 1.5*the last radius of the sweep circle. These serve as a way to draw infinite bisectors such that they do not cross back over the sweep circle. These vertices will h
\hich\af2\dbch\af31505\loch\f2 ave a degree of 1, and are mostly included for completeness.
\par
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\ul\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (HALF EDGE)}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
You will see the term Half Edge mentioned repeatedly through the documentation. This is because we do not store edges as simply a connection between two points, but rather as a pair\hich\af2\dbch\af31505\loch\f2
of directional half edges. Each half edge has an origin, which is the endpoint the edge is connected to. It stores a pointer towards (or, the index of) it's twin edge, which is the edge which starts at the other endpoint, and points towards this half ed
\hich\af2\dbch\af31505\loch\f2 g\hich\af2\dbch\af31505\loch\f2 e's origin.
\par \hich\af2\dbch\af31505\loch\f2
The directionality of the half edges means that the voronoi polygon for each this directional edge is located to the right of this directional edge. This is useful for extracting voronoi polygons, or for traversing through the graph.
\par
\par \hich\af2\dbch\af31505\loch\f2 There ar\hich\af2\dbch\af31505\loch\f2 e several edge types, but most commonly you will see the following:
\par \hich\af2\dbch\af31505\loch\f2 Type0 - an implicit half edge seperating an endpoint from the rest of the line
\par \hich\af2\dbch\af31505\loch\f2 Type1 - a half edge which is linear (bisecting a point and a point or a line and a line)
\par \hich\af2\dbch\af31505\loch\f2 Type2 - a half edge \hich\af2\dbch\af31505\loch\f2 which is parabolic (bisecting a point and a line)
\par
\par \hich\af2\dbch\af31505\loch\f2 TypeN + 100 - a type 0, 1, or 2 edge which extends off infinitely and pinned at an infinite voronoi vertex (placed at the edge of the sweep circle 1.5*the radius of the last processed object).
\par
\par \hich\af2\dbch\af31505\loch\f2
Type2 edges, due to ther curved nature, requires a little bit more information to precisely plot. The last two entries refer to a 'control point', which is used for constructing a bezeir curve for the parabola. The bezeir curve also allows us to sample t
\hich\af2\dbch\af31505\loch\f2 h\hich\af2\dbch\af31505\loch\f2 e parabola at even arc lengths, letting exactly calculate the radius at specific points along the parabolic curve.
\par
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\ul\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (NUMERICAL PRECISION)
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 Computational geometry techniques rely on being able to distinguish the relative orientations of objects in nd space. \hich\af2\dbch\af31505\loch\f2
Functions attempt to control floating point errors internally, but if, for example, two vertices correctly differ in the x direction by orders of magnitude less than 10^-10, it is very possible that this could cascade down the road and lead to divide by
\hich\af2\dbch\af31505\loch\f2 z\hich\af2\dbch\af31505\loch\f2
ero errors and general instability. If you use a binary image input, then this is not a concern. If your spacial coordinates have, for whatever reason, near-zero random noise, then it is possible the construction will crash or fail.
\par
\par \hich\af2\dbch\af31505\loch\f2 Functions which are \hich\af2\dbch\af31505\loch\f2 sensitive to numerical precision are:
\par \hich\af2\dbch\af31505\loch\f2 'checkLeftOf', which must know to the most precise degree possible if point C is to the left of directed vector A->B. If the differences in X and Y cooridnates (independently) between A, B, and C are near the limits o
\hich\af2\dbch\af31505\loch\f2 f machine precision, the point may innappropiately be marked as co-linear.
\par
\par \hich\af2\dbch\af31505\loch\f2 isParallel, used to determine if a value can be computed in a simpler manner or if having parallel lines may lead to a divide by zero error. FP error may cause isParallel to retur\hich\af2\dbch\af31505\loch\f2
n false, and allow for division by an incredibly small (10^-14 to 10^-16) value.
\par
\par \hich\af2\dbch\af31505\loch\f2 Precision errors typically arive when calculating the A, B, C parameters for a line. If two points at the start and end of the line very slightly (10^-14th or less) differ i\hich\af2\dbch\af31505\loch\f2
n Y, then A, and dirY post normalization, will be very small.
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\par }{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\ul\insrsid14055882 \hich\af2\dbch\af31505\loch\f2 (infRad vs Rad)}{\rtlch\fcs1 \ab\af2 \ltrch\fcs0 \b\f2\insrsid14055882
\par }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid14055882 \hich\af2\dbch\af31505\loch\f2
Internally, there are two radii used for how we definte the distance of the object from the start of the sweep circle. The radius - the distance from any point on a line segm\hich\af2\dbch\af31505\loch\f2
ent/vertex to the center, and the infinite radius - the distance from any point if the line was extended infinitely towards the center. This distinction is required to correct the correct parabolic bisector for any input edge and the sweep circle. The re
\hich\af2\dbch\af31505\loch\f2 a\hich\af2\dbch\af31505\loch\f2 son it is used outside of the voronoi diagram is simply to simplify plotting rotate parabolas.
\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210007b740aaca0600008f1a0000160000007468656d652f7468656d652f
7468656d65312e786d6cec595b8bdb46147e2ff43f08bd3bbe49be2cf1065bb69336bb49889d943cceda636bb2238dd18c776342a0244f7d2914d2d28706fad6
87521a68a0a12ffd310b1bdaf447f4cc489667ec71f6420aa1640d8b34face996fce39face48ba7aed51449d239c70c2e2965bbe52721d1c8fd898c4d3967b6f
d82f345c870b148f1165316eb90bccdd6bbb9f7e7215ed881047d801fb98efa0961b0a31db2916f9088611bfc26638866b13964448c069322d8e13740c7e235a
ac944ab5628448ec3a318ac0ededc9848cb033942edddda5f31e85d358703930a2c940bac68685c28e0fcb12c1173ca089738468cb8579c6ec78881f09d7a188
0bb8d0724beacf2dee5e2da29dcc888a2db69a5d5ffd657699c1f8b0a2e64ca607f9a49ee77bb576ee5f01a8d8c4f5eabd5aaf96fb5300341ac14a532eba4fbf
d3ec74fd0cab81d2438bef6ebd5b2d1b78cd7f758373db973f03af40a97f6f03dfef07104503af4029dedfc07b5ebd1278065e81527c6d035f2fb5bb5eddc02b
5048497cb8812ef9b56ab05c6d0e99307ac30a6ffa5ebf5ec99caf50500d7975c929262c16db6a2d420f59d2078004522448ec88c50c4fd008aa3840941c24c4
d923d3100a6f8662c661b85429f54b55f82f7f9e3a5211413b1869d6921730e11b43928fc34709998996fb39787535c8e9ebd7274f5f9d3cfdfde4d9b393a7bf
66732b5786dd0d144f75bbb73f7df3cf8b2f9dbf7ffbf1edf36fd3a9d7f15cc7bff9e5ab377ffcf92ef7b0e255284ebf7bf9e6d5cbd3efbffeebe7e716efed04
1de8f0218930776ee163e72e8b608116fef820b998c5304444b768c7538e622467b1f8ef89d040df5a208a2cb80e36e3783f01a9b101afcf1f1a8407613217c4
e2f1661819c07dc6688725d628dc947369611ecee3a97df264aee3ee2274649b3b40b191e5de7c061a4b6c2e83101b34ef50140b34c531168ebcc60e31b6acee
0121465cf7c928619c4d84f380381d44ac21199203a39a56463748047959d80842be8dd8ecdf773a8cda56ddc5472612ee0d442de487981a61bc8ee602453697
4314513de07b48843692834532d2713d2e20d3534c99d31b63ce6d36b71358af96f49b2033f6b4efd345642213410e6d3ef710633ab2cb0e831045331b7640e2
50c77ec60fa144917387091b7c9f9977883c873ca0786bbaef136ca4fb6c35b8070aab535a1588bc324f2cb9bc8e9951bf83059d20aca4061a80a1eb1189cf14
f93579f7ff3b7907113dfde1856545ef47d2ed8e8d7c5c50ccdb09b1de4d37d6247c1b6e5db803968cc987afdb5d348fef60b855369bd747d9fe28dbeeff5eb6
b7ddcfef5fac57fa0cd22db7ade9765d6ddea3ad7bf709a174201614ef71b57de7d095c67d189476eab915e7cf72b3100ee59d0c1318b86982948d9330f10511
e1204433d8e3975de964ca33d753eecc1887adbf1ab6fa96783a8ff6d9387d642d97e5e3692a1e1c89d578c9cfc7e17143a4e85a7df51896bb576ca7ea717949
40da5e8484369949a26a21515f0eca20a98773089a85845ad97b61d1b4b06848f7cb546db0006a795660dbe4c066abe5fa1e9880113c55218ac7324f69aa97d9
55c97c9f99de164ca302600fb1ac8055a69b92ebd6e5c9d5a5a5768e4c1b24b4723349a8c8a81ec64334c65975cad1f3d0b868ae9bab941af46428d47c505a2b
1af5c6bb585c36d760b7ae0d34d69582c6ce71cbad557d2899119ab5dc093cfac3613483dae172bb8be814de9f8d4492def097519659c24517f1300db8129d54
0d222270e25012b55cb9fc3c0d34561aa2b8952b20081f2cb926c8ca87460e926e26194f267824f4b46b2332d2e929287caa15d6abcafcf26069c9e690ee4138
3e760ee83cb98ba0c4fc7a5906704c38bc012aa7d11c1378a5990bd9aafed61a5326bbfa3b455543e938a2b310651d4517f314aea43ca7a3cef2186867d99a21
a05a48b2467830950d560faad14df3ae9172d8da75cf369291d34473d5330d55915dd3ae62c60ccb36b016cbcb35798dd532c4a0697a874fa57b5d729b4bad5b
db27e45d02029ec7cfd275cfd110346aabc90c6a92f1a60c4bcdce46cddeb15ce019d4ced32434d5af2dddaec52def11d6e960f0529d1fecd6ab168626cb7da5
8ab4faf6a17f9e60070f413cbaf022784e0557a9848f0f09820dd140ed4952d9805be491c86e0d3872e60969b98f4b7edb0b2a7e502835fc5ec1ab7aa542c36f
570b6ddfaf967b7eb9d4ed549e4063116154f6d3ef2e7d780d4517d9d71735bef105265abe69bb32625191a92f2c45455c7d812957b67f81710888cee35aa5df
ac363bb542b3daee17bc6ea7516806b54ea15b0beadd7e37f01bcdfe13d7395260af5d0dbc5aaf51a89583a0e0d54a927ea359a87b954adbabb71b3daffd24db
c6c0ca53f9c86201e155bc76ff050000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72
656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c08
2e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd0
8a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa
4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f
6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72
656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f746865
6d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210007b740aaca0600008f1a00001600000000000000000000000000d60200
007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000000000000000000000
00d40900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cf0a00000000}
{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
{\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;
\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;
\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;
\lsdsemihidden1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;
\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;
\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;
\lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;
\lsdsemihidden1 \lsdlocked0 Revision;\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
\lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;
\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;
\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdpriority62 \lsdlocked0 Light Grid Accent 5;
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;
\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6;
\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;
\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography;
\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4;
\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4;
\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1;
\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1;
\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2;
\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2;
\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3;
\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4;
\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4;
\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5;
\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5;
\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6;
\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6;
\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark;
\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1;
\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1;
\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2;
\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3;
\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3;
\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4;
\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4;
\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5;
\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5;
\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6;
\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention;
\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore 01050000
02000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000006001
201dcafbd501feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000105000000000000}}