#MCell 4.20 #GAME Rules table #RULE 1,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,0,3,3,3,3,3,3,3,3,3, #RULE 0,3,1,1,3,3,3,3,3,3 #BOARD 500x500 #WRAP 0 #CCOLORS 4 #PALETTE 2_2_1 #D #D A Unary Multiplier Wrapped in a Turing Machine Inside WireWorld #D by Nyles Heise, March 12, 2004 #D nylesheise@yahoo.com #D #D First of all, my thanks to #D #D A.K.Dewdney for introducing me to WireWorld with his Scientific American #D article in 1990 and for writing "The New Turing Omnibus", #D from which I took many ideas for the design. #D #D Karl Scherer for his great work in WireWorld design. Karl's web site #D (http://karl.kiwi.gen.nz) has a voluminous amount of devices #D from basic elements to complex multipliers. Some of these #D devices have been used here. Karl and I have also recently #D cooperated is coming up with some more-compact versions of #D the 4-cycle logic I devised in 1990. The free game page, #D (http://www.zillions-of-games.com/games/index.html), to the #D Zillions of Games (http://www.zillions-of-games.com/) #D contains a downloadable, operational file that allows you #D to watch WireWorld in aciton. #D #D This is a WireWorld implementation of a Turing Machine, M, that multiplies two #D unary numbers. I set out to do the exact multipler found in Mr. Dewdney's #D "The New Turing Omnibus", however, backed off to a design the requirs less #D logic. The design I came up with takes 6 States, plus halt, and only #D 4 Symbols. It is basically a nested pair of move loops, as found in the #D Turing_Machine download to Zillions. #D (http://www.zillions-of-games.com/games/index.html) #D #D The file is set up to do the multiply 4 = 2 * 2. The Turing #D algorithm that's implemented starts with the symbol "x", the first number, #D another "x", and finally the last number. The B's are blanks and extend to #D infinity in both directions. #D #D ... B B x 1 1 x 1 1 B B B ... #D #D After the machine halts, the tape contains the product along with the initial #D numbers and x's for demarcation. #D #D ... B B 1 1 1 1 x 1 1 x 1 1 B B ... #D #D Strictly speaking, the output of M should be only the number 4, however, I've #D chosen to leave the input numbers as well since this eased the design of the #D control mechanism logic. #D #D #D -----Quintuple notation #D #D I'm using the quintuple notation to describe the Turing Machine program as #D found on page 207 and following in "The New Turing Omnibus" by A. K. Dewdney. Each #D quintuple gives the next State, new Symbol to be written, and tape direction #D as a function of the present State and Symbol on the tape at the location #D of the Read/Write Head. Let Q be the State and S be the Symbol. Then each #D quintile is of the form #D #D {present Q, present S, next Q, next S, direction} #D #D The state comes from the following set #D #D PO Pick up the UIT, outer loop #D PI Pick up the UIT, inner loop #D CO Carry the UIT, outer loop #D CI Carry the UIT, inner loop #D LO Move to the left, outer loop #D LI Move to the left, inner loop #D #D The symbol comes from the alphabet #D #D B Blank #D x Separates numbers #D A The UIT being operated on #D 1 A UIT #D #D The tape motion comes from the set #D #D Left #D Right #D Stop #D #D #D -----Unary Multiplier Quintuple Specification #D #D Only quintuples that change state or write to the tape are listed. #D #D PO 1 C0 A Right #D CO x PI x Right #D PI 1 CI A Right #D CI B LI 1 Left #D LI A PI 1 Right #D PI x LO x Left #D LO A PO 1 Right #D PO x Halt #D #D #D -----Description of the Control Mechanism #D #D The control mechanism contains the random logic to generate the next state for #D Q and S. It is essentially a clocked, sequential state machine with 5 latches, #D 3 for Q and 2 for S. The latches for Q are found within the control mechanism, #D for S on the tape. There are 6 states (plus halt), that are represented by 3 #D latches, L, I, and P. There are 4 symbols that are represented by 2 latches, #D S0 and S1. #D #D PO L=0 I=0 P=1 #D CO L=0 I=0 P=0 #D PI L=0 I=1 P=1 #D CI L=0 I=1 P=0 #D LO L=1 I=0 P=0 #D LI L=1 I=1 P=0 #D B S0=0 S1=0 #D x S0=0 S1=1 #D A S0=1 S1=0 #D 1 S0=1 S1=1 #D #D #D -----Random Logic Equations #D #D Triggered latches are used. A triggered latch has one input. The latch keeps its #D value if the input is 0. It is flipped if the input is 1. #D #D L_trigger = (~S1) + (~S0 ^ I ^ P) #D I_trigger = (~S0 ^ I ^ P) + (~S0 ^ ~L ^ ~I ^ ~P) #D P_trigger = (S0 ^ ~S1) + (P) + (~S0 ^ ~L ^ ~I ^ ~P) #D S0_trigger = (~S0 ^ ~S1) #D S1_trigger = (~S1) + (S0 ^ P) #D #D #D -----Machine Advancement #D #D The new values for Q are clocked into the latches, then the new values for S. The #D tape is then shifted to the left or the right as a function of the new value in the #D L latch. #D #D #D -----Description of the WireWorld Layout #D #D The control mechanism contains the State latches for Q and the random logic to #D generate the next states for Q and S. It also modifies the clock so as to shift #D the tape either left or right. #D #D The tape is simulated as a shift register. The tape extends to infinity in both #D directions, but I've truncated to the length to 18, the number required for this #D Multiply. Moving the tape is accomplished by shifting the register to the left #D or right. The direction is determined by the state of latch L. The symbol being #D looked at and written is under the Read/Write head. This symbol is contained in #D the middle latch in the shift register. #D #D The clock goes around the design counterclockwise. As it passes the control #D mechanism it clocks the next state into Q and then into S. As it leaves the #D control mechanism it looks at the state of L and puts itself into the correct #D phase for shifting the tape. It then passes below the tape and causes the #D latches to shift in a serial fashion. Each pass of the clock takes 736 WireWorld #D ticks. It takes 52 passes of the clock (38272 ticks) to reach the final tape. #D After another 43 ticks the Stop condition is detected and the clock disappears. #D #D #D -----Description of the WireWorld devices #D #D The design uses 4-tick devices - ORs, ANDs, LATCHES, etc. 4-tick logic was my #D invention in 1990, at which time I devised the method that allows data to be #D spaced at a distance of 4 cells. Recently several better configurations of #D some of these devices have been laid out by myself and Karl Scherer. You will #D also find in the design several elements (such as the new XOR) that were #D discovered by Karl. #D #D I use a clocked, vectored approach for storing and moving data. The Q and S #D latches are 16 WireWorld cells, but hold 4 bits each. The data leaving the #D latches have 4 phases, repeating every 16 ticks. The Q latch contains #D L, I, and P. The fourth phase is not used and is always 0. #D #D Q = {L: I: P: 0}. #D #D The S latch contain S0 and S1. The second and fourth phases not used. This #D is true for all the shift register elements. #D #D S = {S0: 0: S1: 0} #D #D Since neither of the vectored latches contain more than 3 bits, the length of these #D latches could have been selected as 12, however, the shift register is much #D easier to shift when every other phase is 0. The vectored approach also enables the #D logic to be implemented more easily than the one-bit-per-latch method. Normal #D crossing of wires in not required. As a matter of fact, there are no #D 3-XOR cross devices in the design. #D #D #D -----Viewing tips #D #D Non-functional extensions have been appended to the shift register latches for #D easier viewing. Since the period of the vectored latches is 16, valid data #D appears at indented locations every 16th tick. I believe the machine is best #D viewed with the following #D #D CTRL g Grid off #D ALT CTRL c Black background (color 0), white electron head (color 1), #D dark blue electron tail and wire (colors 2 and 3) #D The .mcl file sets the 2_2_1 Palette, the closest I could find. #D ALT CTRL n Run for 736 cycles #D Redraw the universe every 16 cycles #D n Runs for 1 transit of the clock, repeat 53 times. #D #D -----Enjoy #D #L 124.3C$123.C3.3C$113.B5CA..C..C4.51C4.CC..C..C..C.3C.CC3.C..C$112.A7.B #L .C.A.C.A52.C..C3.C.C.CC.C..C..C.C.C.C.C$113.CC.4C..C..B.BA45C7.C..C3.C #L .C.C.CC..C..CC..C.C.C$115.C6.C..A..A45.C6.C..C3.C.C.C..C..C..C.C.C.C.C #L $114.3C5.C.5C..10CBA4C.9CBA6C3.C.C3.C6.C3.CC..C..C..C..C..C.C..C..3C$ #L 115.C5.C3.C.C..C16.C17.5C.A..C.C4.C$107.CC.5C.C.3C4.C.C..C4.BA10.C.C.A #L B3CAB6.C3.B.B4.3C3.C..C3.C.3C..C..C.C..C..C..C.3C..CC.C3.C$106.C..C7.C #L 7.C.B..C3.C..C.CC.C5.3C7.C5.C.C.A3.3C.C.C..C..CC.CC.C3.C.C.C.C.C.C.CC. #L C..C..C3.CC.CC$106.C3.C.C3.BCC6.C..AC4.C.4C.C.A3.C.C.CBACCBA7.3C..CC6. #L C..C..C.C.C.CC..C3.3C.3C.C.CC..C3.C..C.C.C$106.C.C..3C.A.C..CC.CC..C.. #L CC..C..C.3CB4.C9.A.C.4C.C..C3.5C3.C..C3.C.C3.C.C.C.C.C.C.C..C..C4.C.C #L 3.C$17.C.C.C..C..C..CC..C.C3.C3.C.C.C.C3.3C.3C.CC..C3.3C.3C.CC27.4C.C. #L C3.CC..C..C.C.C..C..CC3.C6.C..CBACC3.CCB7.C3.C8.C..C3.C.3C..C..C.C.C.C #L .C..C.3C.CC..C3.C$17.C.C.CC.C.C.C.C.C.C.C3.CC.CC.C.C.C4.C3.C..C.C.C4.C #L ..C3.C.C24.CC.C.C4.C5.3C.C.C.C.4C6.C.CC..C.C5.C3.C.A4C..C4.4C4.C$17.C. #L C.C.CC.3C.CC3.C4.C.C.C.C.C.C4.C3.C..CC..C4.C..CC..CC24.C5.C5.C5.A3.C.. #L C..C9.C..C..C6.C10.C.C..B5.C3.C$17.C.C.C..C.C.C.C.C..C4.C3.C.C.C.C4.C #L 3.C..C3.C4.C..C3.C.C24.C..C..C4.C4.B.C4.C.CC9.3C.C4.CC..4C.C.5C..C.A.C #L ..C.C3.C$18.C..C..C.C.C.C.C..C4.C3.C..C..3C..C..3C.C3.3C.3C.3C.C.C25. #L 5C5.C4.C.C4.C4.BACCBAC..A..C3.C..C..C..3C6.C..C.C.A.3C..C$108.C6.3C3.A #L .C4.C3.C7.CB3.C3.C.4C4.C7.C..C.C..B.C.C.C$105.CC..C4.BC.C4.B5.C4.CCABC #L AB.B3.C3.C..C4.C.C7.C..B.A..A3.C.C$104.C..C..C..A.CC.B8.C13.A3.C4.CC4. #L 3C8.C..A.B..C3.C.C$104.C3.CC3.C3.A8.C.C..CC.CC4.3C.4C.C5.A.C.5C3.C..C #L ..C..CC.C.C$104.C5.C.C12.C3.CC..C..CC3.C3.C..C3.C.C9.C..C3.C.A.C.CC..C #L $104.C3.C.C.B..6C3.3C3.C.3C3.C.C.3C..3C.A.3C8.C..C4.B..3C..C$105.5C..A #L .C6.C3.C4.C..C4.C.C7.C3.B.C.C6.3C..C..3A..C..C$108.C..C..C4.CC3.C.C.. #L 3C.C.A..C.C..C3.C8.C7.C.C..C..C4.C.C$107.C..C..C4.C4.C..C..B.4C.B.C.C. #L C.B.C6.3C8.C..C.3C.C..3C$106.C..C..C..A..C.C.3C.C.A.CC.C.C3.C..A.A.A5. #L C4.CB5.C.3C4.C.C.C.C$106.C.3C.C.B.C..3C.C..C..C12.B.C.B4.C3.CC..A4.C.. #L C5.C.C3.C$106.C..C..C.C..CC.C..C..C4.BA3.ACCBA.C..C4.C3.A4.C4.C3.C4.C #L ..3C.C$106.C.C.C.C..C..C4.C3.ABCC..C.B5.C8.A.C.B4.C4.C4.C3.C7.C$106.C. #L C.C.C..C..C4.C..C3.C.3C16.BCC5.B3.C6.C..C3.C.C.C$106.C.C.C.C..C..C4.C. #L 4C.C..C..A.5CBA4C.C.C.AB.CA3.C..CABC..C.C..C.3C$106.C.C..3C.C..C..CC3. #L C4.CC.CB.C11.C6.C4.C..C4.C.C.C.3C.C.C$106.C.C3.C..C.C..C4.C.C..C6.6C5. #L 3C4.3C..A3.B4.A.C.C..C4.C$106.C.C4.C..C4.4C3.C.C5.C6.B4.C.CC4.C..B..CA #L 5.B.C.C.C5.C..C$106.C.C5.C.C.C7.CA..A5.C.C.CCA4.B.CC.4C.CC..B..C4.C.C #L ..C6.C.B.A$106.C.C5.C..CCAB5C..B.B6.3C8.A11.3A..BACC..C.3C..C..C.A.B$ #L 106.C.C6.CC.C8.3C6.C.C22.A9.C..C..C.C.C.C.C$106.C.C15.3C.C.C5.C3.4CBA #L 14CB.9C3.C..C.C.C..C$105.C3.C13.C6.C6.3C33.AAC.C..C..3C..CC$104.C5.C #L 13.CAB4C42.B.CC7.C..C..C$103.C7.C19.C40.C.AC.7C.4C.C$102.C9.C17.C42.C #L 13.C..C$101.C11.C16.A57.CC$4.97C13.12C4.B59.CAB6CAB56C$3.C122.C3.C126. #L C$..C118.4C.C3.C4.C56.CC.C4.C3.CC.C..C46.C$.C118.C5.C3.C3.3C54.C3.C3.C #L .C.C3.C.C47.C$C120.CC3.C3.C..C.C.C53.C3.C3.C.C.C3.CC48.C$C119.C5.C3.C #L 4.C55.C3.C3.C.C.C3.C.C47.C$C120.4C.C3.C61.CC.3C..C3.CC.C..C46.C$C125.C #L 3.A3.3C120.C$C119.5C.C3.B..C3.C119.C$C121.C.C.C3.C..5C119.C$C119.CC.C #L ..C3.C126.C$C125.C3.C3.4C119.C$C119.C3.C.C3.C..C.C121.C$C119.5C.C3.C3. #L 4C119.C$C119.C3.C.C3.C126.C$C11.C13.C13.C13.C13.A13.A13.C13.A15.C4.A.C #L 3.C..C11.C13.C13.C13.C13.C13.C13.C13.C6.C$C10.C13.C13.C13.C13.B13.B13. #L C13.B14.C.C3.B..C.C.C.C11.C13.C13.C13.C13.C13.C13.C13.C7.C$C10.C13.C #L 13.C13.C13.C13.C13.C13.C10.5C.C3.C..5C.C11.C13.C13.C13.C13.C13.C13.C #L 13.C7.C$C10.C13.C13.C13.C13.C13.C13.C13.C14.C.C3.C8.C11.C13.C13.C13.C #L 13.C13.C13.C13.C7.C$C10.C13.C13.C13.C13.C13.C13.C13.C16.C3.C3.C.CC.C #L 11.C13.C13.C13.C13.C13.C13.C13.C7.C$C10.C13.C13.C13.C13.C13.C13.C13.C #L 10.5C.C3.C..C.C3.C11.C13.C13.C13.C13.C13.C13.C13.C7.C$C10.C13.C13.C13. #L C13.C13.C13.C13.C10.C.C.C.C3.C..5C.C11.C13.C13.C13.C13.C13.C13.C13.C7. #L C$C10.C13.C13.C13.C13.C13.C13.C13.C10.C3.C.C3.C8.C11.C13.C13.C13.C13.C #L 13.C13.C13.C7.C$C11.C13.C13.C13.A13.A13.A13.A13.A15.C4.A8.C11.C13.C13. #L C13.C13.C13.C13.C13.C6.C$C10.C13.C13.C13.B13.B13.B13.B13.B12.C3.C3.B8. #L C11.C13.C13.C13.C13.C13.C13.C13.C7.C$C10.C13.C13.C13.C13.C13.C13.C13.C #L 10.C.C.C.C3.C8.C11.C13.C13.C13.C13.C13.C13.C13.C7.C$C10.C13.C13.C13.C #L 13.C13.C13.C13.C11.3C..C3.C8.C11.C13.C13.C13.C13.C13.C13.C13.C7.C$C10. #L C13.C13.C13.C13.C13.C13.C13.C12.C3.C3.C8.C11.C13.C13.C13.C13.C13.C13.C #L 13.C7.C$C10.C13.C13.C13.C13.C13.C13.C13.C16.C3.C8.C11.C13.C13.C13.C13. #L C13.C13.C13.C7.C$C10.C13.C13.C13.C13.C13.C13.C13.C16.C3.C8.C11.C13.C #L 13.C13.C13.C13.C13.C13.C7.C$C10.C13.C13.C13.C13.C13.C13.C13.C14.B3C..C #L 7.C12.C13.C13.C13.C13.C13.C13.C13.C7.C$C10.C13.C13.C13.C13.A13.A13.C #L 13.A13.AB..C..A6.C13.C13.C13.C13.C13.C13.C13.C13.C7.C$C6.C..C.C8.C..C. #L C8.C..C.C8.C..C.C8.C..C.B8.C..C.B8.C..C.C8.C..C.B8.C..C.BCC..B3.C..C.C #L 8.C..C.C8.C..C.C8.C..C.C8.C..C.C8.C..C.C8.C..C.C8.C..C.C8.C..C.C6.C$C #L 5.C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C #L .C7.C.C.C..C..C3.C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C.C #L 7.C.C.C.C7.C.C.C.C7.C.C.C.C6.C$C5.C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C.C7. #L C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C..C.C4.C.C.C.C7.C.C.C.C7.C.C. #L C.C7.C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C.C7.C.C.C.C6.C$C.3C.C..C #L ..C3.3C.C..C..C3.3C.C..C..C3.3C.C..C..C3.3C.C..C..C3.3C.C..C..C3.3C.C #L ..C..C3.3C.C..C..C3.3C.C..C4.C..CC.C..C..C3.3C.C..C..C3.3C.C..C..C3.3C #L .C..C..C3.3C.C..C..C3.3C.C..C..C3.3C.C..C..C3.3C.C..C..C3.3C.C..C..C6. #L C$C.C.CC4.C.C..CC.CC4.C.C..CC.CC4.C.C..CC.CC4.C.C..CC.CC4.C.C..CC.CC4. #L C.C..CC.CC4.C.C..CC.CC4.C.C..CC.CC4.C3.C.C.CC4.C.C..CC.CC4.C.C..CC.CC #L 4.C.C..CC.CC4.C.C..CC.CC4.C.C..CC.CC4.C.C..CC.CC4.C.C..CC.CC4.C.C..CC. #L CC4.C.C..C3.C$C.C.C5.C..CC.C.C5.C..CC.C.C5.C..CC.C.C5.C..CC.C.C5.C..CC #L .C.C5.C..CC.C.C5.C..CC.C.C5.C..CC.C.C5.C..C.CC.C5.C..CC.C.C5.C..CC.C.C #L 5.C..CC.C.C5.C..CC.C.C5.C..CC.C.C5.C..CC.C.C5.C..CC.C.C5.C..CC.C.C5.C #L ..CC.C..C$C.3C4.3C.C..3C4.3C.C..3C4.3C.C..3C4.3B.C..3C4.3B.C..3C4.3B.C #L ..3C4.3B.C..3C4.3B.C..3C4.3B.C..3C4.3C.C..3C4.3C.C..3C4.3C.C..3C4.3C.C #L ..3C4.3C.C..3C4.3C.C..3C4.3C.C..3C4.3C.C..3C4.3C.C3.C.C$C..C4.C..CC4.C #L 4.C..CC4.C4.C..CC4.C4.A..AA4.C4.A..AA4.C4.A..AA4.C4.A..AA4.C4.A..AA4.C #L 4.A..AA4.C4.C..CC4.C4.C..CC4.C4.C..CC4.C4.C..CC4.C4.C..CC4.C4.C..CC4.C #L 4.C..CC4.C4.C..CC4.C4.C..CC4.C.C$C.C5.4C4.C5.4C4.C5.4C4.C5.4C4.C5.4C4. #L C5.4C4.C5.4C4.C5.4C5.C4.4C4.C5.4C4.C5.4C4.C5.4C4.C5.4C4.C5.4C4.C5.4C4. #L C5.4C4.C5.4C4.C5.4C4.C..C$C.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6. #L C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C6.C..C #L $C.C5.3C5.C5.3C5.C5.3C5.C5.3C5.C5.3C5.C5.3C5.C5.3C5.C5.3C5.C5.3C5.C5. #L 3C5.C5.3C5.C5.3C5.C5.3C5.C5.3C5.C5.3C5.C5.3C5.C5.3C5.C5.3C5.C..C$C.C4. #L C.C.C4.C4.C.C.C4.C4.C.C.C4.C4.C.C.C4.C4.C.C.C4.C4.C.C.C4.C4.C.C.C4.C4. #L C.C.C4.C4.C.C.C4.C4.C.C.C4.C4.C.C.C4.C4.C.C.C4.C4.C.C.C4.C4.C.C.C4.C4. #L C.C.C4.C4.C.C.C4.C4.C.C.C4.C4.C.C.C4.C..C$C.C4.C3.C4.C4.C3.C4.C4.C3.C #L 4.C4.C3.C4.C4.C3.C4.C4.C3.C4.C4.C3.C4.C4.C3.C4.C4.C3.C4.C4.C3.C4.C4.C #L 3.C4.C4.C3.C4.C4.C3.C4.C4.C3.C4.C4.C3.C4.C4.C3.C4.C4.C3.C4.C4.C3.C4.C #L ..C$C.C5.C.C5.C5.C.C5.C5.C.C5.C5.C.C5.C5.C.C5.C5.C.C5.C5.C.C5.C5.C.C5. #L C5.C.C5.C5.C.C5.C5.C.C5.C5.C.C5.C5.C.C5.C5.C.C5.C5.C.C5.C5.C.C5.C5.C.C #L 5.C5.C.C5.C..C$C.C..CC.C.C.CC..C..CC.C.C.CC..C..CC.C.C.CC..C..CC.C.C. #L CC..C..CC.C.C.CC..C..CC.C.C.CC..C..CC.C.C.CC..C..CC.C.C.CC..C..CC.C.C. #L CC..C..CC.C.C.CC..C..CC.C.C.CC..C..CC.C.C.CC..C..CC.C.C.CC..C..CC.C.C. #L CC..C..CC.C.C.CC..C..CC.C.C.CC..C..CC.C.C.CC..C..CC.C.C.CC..C..C$C.C.C #L ..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3. #L C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C. #L C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C.. #L C3.C..C.C.C..C3.C..C.C..C$C.C.C.3C.3C.C.C.C.3C.3C.C.C.C.3C.3C.C.C.C.3C #L .3C.C.C.C.3C.3C.C.C.C.3C.3C.C.C.C.3C.3C.C.C.C.3C.3C.C.C.C.3C.3C.C.C.C. #L 3C.3C.C.C.C.3C.3C.C.C.C.3C.3C.C.C.C.3C.3C.C.C.C.3C.3C.C.C.C.3C.3C.C.C. #L C.3C.3C.C.C.C.3C.3C.C.C.C.3C.3C.C.C..C$C.C.C..C3.C..C.C.C..C3.C..C.C.C #L ..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3. #L C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C. #L C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C.C..C3.C..C.C..C$ #L C..CC.C5.C.CC.CC.C5.C.CC.CC.C5.C.CC.CC.C5.C.CC.CC.C5.C.CC.CC.C5.C.CC. #L CC.C5.C.CC.CC.C5.C.CC.CC.C5.C.CC.CC.C5.C.CC.CC.C5.C.CC.CC.C5.C.CC.CC.C #L 5.C.CC.CC.C5.C.CC.CC.C5.C.CC.CC.C5.C.CC.CC.C5.C.CC.CC.C5.C.CC3.C$C4.C #L 7.C5.C7.C5.C7.C5.C7.C5.C7.C5.C7.C5.C7.C5.C7.C5.C7.C5.C7.C5.C7.C5.C7.C #L 5.C7.C5.C7.C5.C7.C5.C7.C5.C7.C5.C7.C5.C$C3.3C..C..3C3.3C..C..3C3.3C..C #L ..3C3.3C..C..3C3.3C..C..3C3.3C..C..3C3.3C..C..3C3.3C..C..3C3.3C..C..3C #L 3.3C..C..3C3.3C..C..3C3.3C..C..3C3.3C..C..3C3.3C..C..3C3.3C..C..3C3.3C #L ..C..3C3.3C..C..3C3.3C..C..3C4.C$C4.C..C.C..C5.C..C.C..C5.C..C.C..C5.C #L ..C.C..C5.C..C.C..C5.C..C.C..C5.C..C.C..C5.C..C.C..C5.C..C.C..C5.C..C. #L C..C5.C..C.C..C5.C..C.C..C5.C..C.C..C5.C..C.C..C5.C..C.C..C5.C..C.C..C #L 5.C..C.C..C5.C..C.C..C5.C$C3.C3.C.C3.C3.C3.C.C3.C3.C3.C.C3.C3.C3.C.C3. #L C3.C3.C.C3.C3.C3.C.C3.C3.C3.C.C3.C3.C3.C.C3.5C3.C.C3.5C3.C.C3.C3.C3.C. #L C3.C3.C3.C.C3.C3.C3.C.C3.C3.C3.C.C3.C3.C3.C.C3.C3.C3.C.C3.C3.C3.C.C3.C #L 3.C3.C.C3.C4.C$.3C.3C3.3C.3C.3C3.3C.3C.3C3.3C.3C.3C3.3C.3C.3C3.3C.3C. #L 3C3.3C.3C.3C3.3C.3C.3C3.3C5.3C3.3C5.3C3.3C.3C.3C3.3C.3C.3C3.3C.3C.3C3. #L 3C.3C.3C3.3C.3C.3C3.3C.3C.3C3.3C.3C.3C3.3C.3C.3C3.3C.4C6$..3C.C.C.3C3. #L 3C..C..CC..3C118.C..C3.CC..C.C..C..CC..3C.3C6.CC6.C3.C5.C3.C5.C3.C6.C #L 6.C3.C6.C6.C3.C$3.C..C.C.C6.C..C.C.C.C.C119.C.C.C3.C.C.C.C.C.C.C.C.C4. #L C7.C.C.CC.C.C.C.C5.C.C..CC.C.C..C5.C.C.CC..C..C.C5.C..CC..C3.C$3.C..3C #L .CC5.C..3C.CC..CC118.3C.C3.CC..3C.3C.CC..CC3.C7.CC5.C.C.C.C6.C6.C.C..C #L 5.3C5.C..C.C5.C6.C3.C$3.C..C.C.C6.C..C.C.C3.C119.C.C.C3.C3.C.C.C.C.C.C #L .C4.C7.C.C.CC.C.C.C.C5.C.C..CC.C.C..C5.C.C.CC..C..C.C5.C..CC..C3.C$3.C #L ..C.C.3C4.C..C.C.C3.3C117.C.C.3C.C3.C.C.C.C.CC..3C..C7.CC6.C3.C5.C3.C #L 5.C..3C4.C.C4.3C..C5.3C4.3C.3C4$3.C..3C4.3C7.C$..C.C..C6.C3.CC..C.C$.. #L 3C..C6.C7.C.C$..C.C..C6.C3.CC..C.C$..C.C..C6.C8.C3$10.CC12.CC12.CC11.C #L 3.C11.C13.C11.C3.C11.C20.C7.CC10.CC12.CC12.CC12.CC12.CC12.CC12.CC12.CC #L $10.C.C11.C.C11.C.C11.C.C12.C13.C12.C.C12.C20.C7.C.C9.C.C11.C.C11.C.C #L 11.C.C11.C.C11.C.C11.C.C11.C.C$10.CC12.CC12.CC13.C13.C13.C13.C13.C20.C #L 7.CC10.CC12.CC12.CC12.CC12.CC12.CC12.CC12.CC$10.C.C11.C.C11.C.C11.C.C #L 12.C13.C12.C.C12.C20.C7.C.C9.C.C11.C.C11.C.C11.C.C11.C.C11.C.C11.C.C #L 11.C.C$10.CC12.CC12.CC11.C3.C10.3C11.3C10.C3.C10.3C18.3C6.CC10.CC12.CC #L 12.CC12.CC12.CC12.CC12.CC12.CC4$3.C..3C4.3C6.CC..3C.3C.3C.3C6.3C.CC3.C #L 3.C..3C.CC..C$..C.C..C6.C3.CC4.C.C.C.C.C.C.C.C.C..CC..C5.C3.C.C5.C3.C. #L C$..3C..C6.C8.C..3C.C.C.C.C.3C6.CC3.C5.C6.C..C..3C$..C.C..C6.C3.CC4.C #L 3.C.C.C.C.C.C.C..CC4.C3.C3.C.C5.C3.C.C.C$..C.C..C6.C7.CC4.C.3C.3C.3C6. #L CC..CC3.C3.C4.C.CC..3C3$10.CC13.C13.C13.C13.C11.C3.C11.C13.C18.C3.C6.C #L 11.C12.CC12.CC12.CC12.CC12.CC12.CC12.CC$10.C.C12.C13.C13.C13.C12.C.C #L 12.C13.C19.C.C7.C11.C12.C.C11.C.C11.C.C11.C.C11.C.C11.C.C11.C.C$10.CC #L 13.C13.C13.C13.C13.C13.C13.C20.C8.C11.C12.CC12.CC12.CC12.CC12.CC12.CC #L 12.CC$10.C.C12.C13.C13.C13.C12.C.C12.C13.C19.C.C7.C11.C12.C.C11.C.C11. #L C.C11.C.C11.C.C11.C.C11.C.C$10.CC12.3C11.3C11.3C11.3C10.C3.C10.3C11.3C #L 17.C3.C5.3C9.3C11.CC12.CC12.CC12.CC12.CC12.CC12.CC