ࡱ>     { :bjbjzz N0A>z z 4hH\M  " )));M=M=M=M=M=M=M$ORtaM*s)")**aM vM...*   ;M.*;M..DX F @Ўo*VwE&'MM0MEnR,RL FR F)).) )S)))aMaM-)))M****R)))))))))z :  CS 245 Assembly Language Programming Intro to Computer Math Text: Computer Organization and Design, 4th Ed., D A Patterson, J L Hennessy Section 2.4 Objectives: The Student shall be able to: Convert numbers between decimal, binary, hexadecimal Add binary and hexadecimal numbers. Perform logical operations: AND and OR on binary or hexadecimal numbers Determine the range of possible numbers given a number of bits for storage. Form or translate a negative number from a positive number and vice versa. Class Time: Binary, Octal, Hexadecimal 1 hour Signed and Unsigned numbers 1 hour Exercise 1 hour Total 3 hours Hello Binary! Imagine a world of 1s and 0s no other numbers exist. Welcome to the world of the computer. This is how information and instructions are stored in the computer. Well, what happens when we add 1+1? We must get 10. What happens if we add 10+1? We get 11. What happens if we add 11+1? We get 100. Do you see the pattern? Try it for yourself below, by continually adding one to get the decimal number on the left: 11112121012223111323410014245101152561626717278182891929102030 Notice: what is the value of each digit? For example, if we have a binary number: B11111 what does each binary number stand for? For example, in decimal the 11111 number would be: 1+10+100+1000+10,000. Using the same idea, show how the numbers add up in binary (with only 1s and 0s) and then translate each of those numbers to decimal. Do you notice that each binary digit is basically a double of the digit to its right? 1 1 1 1 1 1 1 1 128 64 32 16 8 4 2 1 That is very important to remember. Always remember that each place is multiplied by 2! Translate the following binary numbers to decimal using this rule: B 1010101 = B 0101010 = B 1110001 = B 1100110 = EXERCISE: BINARY ADDITION Addition using Binary Checking with Decimal B 0101 + B 1010 = B 1111 5 + 10 = 15 B 1100 + B 0011 = B 1111 12 + 3 = 15 B 1001 + B 0011 = B 1100 9 + 3 = 12 Lets try something more complicated: B 1111 1111 + B 1001 1100 = Carry: 1 1 1 1 1 B 1 1 1 1 1 1 1 1 +B 1 0 0 1 1 1 0 0 B11 0 0 1 1 0 1 1 Add the following numbers: BinaryCheck your work with the Decimal Equivalent 0001 0110  0011 0100  1011 1001  1001 1001 0110 0110  1000 0000 0001 1111  1010 1010 0101 0111  1001 1001 1100 1100  EXERCISE: AND & OR Now lets play with AND and OR. AND: If both bits are set, set the result: & OR: If either bit is set, set the result: | We can define truth tables for these operations. The bold italicized numbers IN the table are the answers. The column header and row header are the two numbers being operated on. AND &01000101This table shows that: 0 & 0 = 0 1 & 0 = 0 0 & 1 = 0 1 & 1 = 1 OR |01001111This table shows that: 0 | 0 = 0 1 | 0 = 1 0 | 1 = 1 1 | 1 = 1 I will show how these operations work with larger binary numbers: B 1010101 B 1010101 B 1010101 B 1010101 & B 0101010 | B 0101010 AND B 1110001 OR B 1110001 B 0000000 B 1111111 B 1010001 B 1110101 Now you try some: B 1100110 B 1100110 B 0111110 B 0111110 AND B 1111000 OR B 1111000 & B 1001001 | B 1001001 Below, show what binary value you would use to accomplish the operation. Then do the operation to verify that it works! Bits are ordered: 7 6 5 4 3 2 1 0 Using ORs to turn on bits:Using ANDs to turn off bits:B 000 0000 Turn on bits 0-3 B 1111 1111 Turn off bits 3-4B 1111 0000 Turn on bit 0 B 1111 1111 Turn off bits 0-3B 0000 1111 Turn on bits 3-4 B 1111 0000 Turn off bits 0-4 Lets build a table for each numbering system. You fill in the blanks Decimal = Base 10Binary = Base 2Octal = Base 8Hexadecimal = Base 16000011112102231133410044510155611066711177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F1610171000111181001022121910011231320101002414211010125152210110261623271724110003018251100131192611010321A2711011332811100342911101353011110361E3111111371F321000004020 There is something very special about Base 8 and Base 16 they are compatible with Base 2. So for example, lets take the binary number11000 = 2410. Notice that Base 8 operates basically modulo 8, whereas base 16 operates modulo 16. It is not easy to convert between decimal and binary, but it is easy to convert between binary and octal or hexadecimal. It is useful to know that the octal or base 8 number 3248 = (3 x 82) + (2 x 8) + 4 And the hexadecimal or base 16 number 32416 = (3 x 162) + (2 x 16) + 4 Hello Octal! Binary is rather tedious isnt it? It is hard to keep track of all those 1s and 0s. So someone invented base 8 and base 16. These are also known as octal and hexadecimal systems, respectively. The octal (base 8) numbering system works as follows: Base 8: 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 To convert between binary and octal: Step 1: group the binary digits by threes, similar to how we use commas with large numbers: B 110011001100 becomes B 110 011 001 100 B 11110000 becomes B 11 110 000 Step 2: Add zeros to the left (most significant digits) to make all numbers 3 bit numbers: B 11 110 000 becomes B 011 110 000 Step 3: Now convert each three bit number into a octal number: 0..7 B 110 011 001 100 becomes 63148 B 011 110 000 becomes 3608 Likewise we can convert from Octal to Binary: 5778 = 101 111 111 12348 = 001 010 011 100 Now you try! Binary -> OctalOctal -> BinaryB 01101001= 2648=B 10101010= 7018=B 11000011= 0768=B 10100101= 5678= If we want to convert from octal to decimal, we do: 8938 = (8x82) + (9x81) + (3x80) = 8x64 + 9x8 + 3 = 587 Now you try! 1278 = 10008= 648= 2128= Hello Hexadecimal! The hexadecimal (base 16) number systems work as follows: Base 16: 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 Since base 16 needs more digits (after 9) we add A B C D E F. Therefore, A=10, B=11, C=12, etc. It helps to be able to memorize some hexadecimal digits. For example I remember that: 0xA = 1010 = 10102 0xC = 1210 = 11002 0xF = 1510 = 11112 and then I simply remember that B1101 = B1100 (or 12) +1 = 13. To convert from binary to hexadecimal: Step 1: group the binary digits by fours. A 4-bit number is called a nibble: B 110011001100 becomes B 1100 1100 1100 B 11110000 becomes B 1111 0000 B 111000111 becomes B 1 1100 0111 You may use commas, instead of or in addition to spaces, to separate digits. Step 2: Add zeros to the left (most significant digits) to make all numbers 4 bit numbers: B 1 1100 0111 becomes B 0001 1100 0111 Step 3: Now convert each three bit number into a octal number: 0..7 B 1100 1100 1100 becomes 0x ccc B 1111 0000 becomes 0x f0 B 0001 1100 0111 becomes 0x 1c7 It is good to get some practice! Try translating the following numbers to hexadecimal: BinaryHexadecimalBinaryHexadecimal10011001 = 1001 10010x990011 1100 11001110 = 1100 11100xCE0001 1110101111 = 10 11110x2F1110 0001 0011 00111011 0100 1100 00110110 1001 1010 01010101 1010 1001 10011100 0011 Now convert from hexadecimal back to binary: HexadecimalBinaryHexadecimalBinary0x23 0x310x4a 0x580x18A 0001 1000 10100xAB10x23F 0xC0D0x44 0xF001111 0000 00000x3C 0x280x58 0x49 Okay, now we can convert between binary and hexadecimal and we can do ANDs and ORs. Lets try doing these together. Lets AND hexadecimal numbers together: 0x254 AND 0x0f0 = 0010, 0101, 0100 & 0000, 1111, 0000 0000, 0101, 0000 = 0x 050 Notice that what we are doing is that we convert the hexadecimal to binary, and do the AND, and convert the resulting binary digits back to hexadecimal. Lets try an OR: 0x254 OR 0x0f0 = 0010, 0101, 0100 | 0000, 1111, 0000 0010, 1111, 0100 = 0x 2f4 ANDs and ORs are useful to turn on and off specific bits. Now you do some: 0x1a3 & 0x111 = 0x273 & 0x032 = 0x1a3 | 0x111= 0x273 | 0x032 = Conversions: Hexadecimal (( Binary (( Decimal There are two ways to convert between Base 16 or Base 8 and Decimal. Method 1: Convert to Binary, then Decimal: 0x1af = 0001 1010 1111 = 20 + 21 + 22 + 23 + 25 + 27 + 28 = 1 + 2 + 4 + 8 + 32 + 128 + 256 = 43110 0x456 = 0100 0101 0110 = 210+26+24+22+21 = 1024 + 64 + 16 + 4 + 2 = 111010 Method 2: Use division remainders: Convert from base 10 to base N (Example base 2): Number / 2 -> remainder is digit0 -> quotient / 2 -> remainder is digit1 -> quotient / 2 -> remainder is digit2 Example 1: Convert 3610 into binary: Quotient/2 ->Remainder 36/2 ->0 18/2 ->0 9/2 ->1 4/2 ->0 2/2 ->0 1/2 ->1 3610 = 1001002 Example 2: Convert 3610 into base 16: 36/16 ->4 2/16 ->2 3610 = 2416 Example 3: Convert 0x1af to base 10: 0x1af = 1 x 162 = = 256 a x 16 = 10 x 16 = 160 f = +15 Total = 43110 Now you try some conversions between base 16 and base 10 (Your choice of method!) 0x AC4= 0x C4A= 4310= 16210= Signed & Unsigned Numbers Assuming 1 byte: BinarySignedUnsigned00000000000000000111000000102201111110+126+12601111111+127+12710000000-128+12810000001-127+12910000010-126+13011111110-2+25411111111-1+255Notice that you get HALF of the total positive numbers with signed integers!!! Example: Convert 10101010 to a signed 8-bit integer: Converting to Decimal: Powers of Two The sign bit (bit 7) indicates both sign and value: If top N bit is 0, sign & all values are positive: top set value: 2N If top N bit is 1, sign is negative: -2N Remaining bits are calculated as positive values: 10101010 = -27 + 25 + 23 + 21 = -128 + 32 + 8 + 2 = -86 01010101 = 26 + 24 + 22 + 20 = 64 + 16 + 4 + 1 = 85 Changing Signs: Twos Compliment A positive number may be made negative and vice versa using this technique Method: Take the inverse of the original number and add 1. Original: 01010101 = 85 10101011 = -85 invert: 10101010 01010100 add 1: +1 +1 sum: 10101011 = -85 01010101 = 85 First we determine what the range of numbers is for signed versus unsigned numbers: 4 bits8 bits12 bitsLowHighLowHighLowHighUnsigned 00001111Signed 10000111Total number of possible numbersUnsigned: Low = 0 High = 15 Set of 16 numbers Now you try some conversions between positive and negative numbers. Assume 8-bit signed numbers (and top bit is signed bit). Hexadecimal value:Actual Signed Decimal Value:Change sign:0x 87-27+22+21+20 = -128 + 7 = -121In binary: 1000 0111 Invert: 0111 1000 Add 1: 0111 1001 = 0x 79 Translate: 64+32+16+8+1=1210x ba  0x fc 0x 03 0x 81 0x 33  Real-World Exercise: Conversion Lets do something USEFUL! Below is a table to show how IP headers are formatted. In yellow is shown the formatting for an ICMP header for a PING message.  SHAPE \* MERGEFORMAT  You are writing logic to decode this hexadecimal sequence and now you want to verify that the interpreted packet is correct you must convert it manually to verify! 4500 05dc 039c 2000 8001 902b c0a8 0004 c0a8 0005 0800 2859 0200 1c00 6162 6364 6566 6768 696a 6b6c 6d6e 6f70 7172 7374 What are the decimal values for the following fields: Word 1: Version: HLenth: Total Length: Word 2: Datagram Id: Fragment Offset: Word 2: A flag is a one-bit field. Flags include bits 16-18: Dont Fragment (Bit 17): More Fragment (Bit 18): Word 3: Time to Live: Protocol: For the two addresses below, convert each byte in word to decimal and separate by periods (e.g., 12.240.32.64): Word 4: Source IP Address: Word 5: Destination IP Address: ICMP: Type: Code: Sequence Number:     PAGE  PAGE 1 Binary-Hexadecimal Worksheet Version HLenth Service Type Total Length Datagram Identification Flags Fragment Offset Time to Live Protocol Header Checksum Source IP Address Destination IP Address Type Code Checksum Identifier Sequence Number Data 0 4 8 16 17 18 19 31 &<=>?ABGHkms! i     * , - 4 P R X Y Z e m Ż~sooooohr?huhuOJQJhuhOOJQJhOOJQJhEOJQJhDhaOJQJhuOJQJhuhu6H*huhu6huhu5\ huhOhOhu hu5CJ OJQJ\^JaJ &huhu5CJ OJQJ\^JaJ huhu+&=?@AB! i    4 Y n $ hh^h`a$gdu$ & F ha$gdu $<a$gdugdu A ;EP  նɶɶɶɶɶɶɶəh\CJ$aJ$hg>*CJ$aJ$hjyhjy>*CJ$aJ$hjyhjyCJ$aJ$hjyCJ$aJ$hgCJ$aJ$hghjyh\hh)7h|6hm,h9%fh%! huhuhr?< $$Ifa$gd:o$If $ 8 a$gdugdu kd$$Iflֈ #L  4 t0644 lap<yt:o $$Ifa$gd:o$If kd$$Iflֈ #L  4 t0644 lap<yt:o $$Ifa$gd:o$If kd$$Iflֈ #L  4 t0644 lap<yt:o $$Ifa$gd:o$If kd$$Iflֈ #L  4 t0644 lap<yt:o $$Ifa$gd:o$If kd$$Iflֈ #L  4 t0644 lap<yt:o $$Ifa$gd:o$If kd$$Iflֈ #L  4 t0644 lap<yt:o $$Ifa$gd:o$If kd$$Iflֈ #L  4 t0644 lap<yt:o $$Ifa$gd:o$If kd$$Iflֈ #L  4 t0644 lap<yt:o $$Ifa$gd:o$If kd$$Iflֈ #L  4 t0644 lap<yt:o     $$Ifa$gd:o$If kd$$Iflֈ #L  4 t0644 lap<yt:o _`abcde*Qwxgd\x/6Obcdjkd $$Ifl0# t0644 lapyt:o $$Ifa$gd:o  cdinqrw|.Q[:<DHKOg/0]fpyŽݽݽݽݽŽݫhT@hT@>*h:ohT@56hT@h)7h%!h\h:ohg>*h:ohjy>*hghjyhjyhjyCJ$aJ$hjyCJ$aJ$hgCJ$aJ$Bdinopqrw|}~lkdP $$Ifl0# t0644 lapyt:o $$Ifa$gd:o ~xlllll $$Ifa$gd:okd $$Ifl0# t0644 lapyt:oxlllll $$Ifa$gd:okdh $$Ifl0# t0644 lapyt:oxlllll $$Ifa$gd:okd $$Ifl0# t0644 lapyt:oxlllll $$Ifa$gd:okd $$Ifl0# t0644 lapyt:oxlllll $$Ifa$gd:okd $$Ifl0# t0644 lapyt:o!"R7=xvqvvvvvve $$Ifa$gd:ogd\kd $$Ifl0# t0644 lapyt:o =?ABDFHZkd$$$IflFk  t06    44 lapyt:o$IfHIKMO`ZZZ$Ifkd$$IflFk  t06    44 lapyt:oOPg`^^^UUU $IfgdG kd\$$IflFk  t06    44 lapyt:o`WWW $IfgdG kd$$IflF&v t06    44 lapyt:o`WWW $IfgdG kd$$IflF&v t06    44 lapyt:o01]`[[YYYYYYYgdT@kd0$$IflF&v t06    44 lapyt:o yz!'*36=GLRS\^  ab@024=>PQ^žɺɛ h+ho<ho< hTDH* h H*hP h H*hTDhDhah h\h\h?h\ h+>*hg h+h+h+h+>* h%vjh+h+hT@ hT@>* hT@hT@:]^_` 'DEPpkd$$Ifl0# t0644 lapyt:o$If PabnikdX$$Ifl0# t0644 lapyt:o $Ifgd\$If xrrrrr$Ifkd$$Ifl0# t0644 lapyt:oALT^enuxsneeeeeeee $IfgdH<gd gd9%fkdp$$Ifl0# t0644 lapyt:o H<<<< $$Ifa$gd kd$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd`$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kdv$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd($$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd>$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd$$Ifl\]*  t0644 lap(ytH< H<<<< $$Ifa$gd kd$$Ifl\]*  t0644 lap(ytH< "H<<<< $$Ifa$gd kdT$$Ifl\]*  t0644 lap(ytH<"#&+.0H<<<< $$Ifa$gd kd$$Ifl\]*  t0644 lap(ytH<0149<>H<<<< $$Ifa$gd kd$$Ifl\]*  t0644 lap(ytH<>?BGJLH<<<< $$Ifa$gd kdj$$Ifl\]*  t0644 lap(ytH<LMPQRUH<0<< $$Ifa$gdDha $$Ifa$gd kd$$Ifl\]*  t0644 lap(ytH<UVY_`cH<<<< $$Ifa$gd kd$$Ifl\]*  t0644 lap(ytH<cdgmpsH<<<< $$Ifa$gd kd $$Ifl\]*  t0644 lap(ytH<stw}H<<<< $$Ifa$gd kd2!$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd!$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd"$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kdH#$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd#$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd$$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd^%$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd&$$Ifl\]*  t0644 lap(ytH<H<<<< $$Ifa$gd kd&$$Ifl\]*  t0644 lap(ytH<  H<<<< $$Ifa$gd kdt'$$Ifl\]*  t0644 lap(ytH<  H<<<< $$Ifa$gd kd&($$Ifl\]*  t0644 lap(ytH<"%(H<<<< $$Ifa$gd kd($$Ifl\]*  t0644 lap(ytH<(),258H<<<< $$Ifa$gd kd)$$Ifl\]*  t0644 lap(ytH<89<CFIH<<<< $$Ifa$gd kd<*$$Ifl\]*  t0644 lap(ytH<IJKOP^HCCCCC>gd9%fgd kd*$$Ifl\]*  t0644 lap(ytH<FKL( hij)*+,>?@ASTUVhijklm   8 Y Z I!h>?khw3h+h h9%f hmhm hmH* h0LH* h0Lh0LhH<h0LH*h0Lh0LH* h0LH*h0Lhho<hmD^YZ)W|}Gj $$Ifa$gdH<gd0L`gd0Lgd`gdgdo<$%&,xoooo $Ifgd0Lkd+$$Ifl0# t0644 lapytH<,-9:;Axoooo $Ifgd0Lkd,,$$Ifl0# t0644 lapytH<ABNOPVxoooo $Ifgd0Lkd,$$Ifl0# t0644 lapytH<VWcdekxoooo $Ifgd0LkdD-$$Ifl0# t0644 lapytH<klm  Y xsnnnnnniggd9%fgdgd0Lkd-$$Ifl0# t0644 lapytH< Y [ !!!!""C""""#R#S#### $B$^$$`gdmgdmgdTDgd+`gd+  gd I!!!!!!!!!!!!!"A"B"m"n"""#Q#R#S#2$A$N$]$`$c$p$$$$$$$$$$%%%%&%(%3%4%9%C%D%M%P%[%`%a%e%f%o%p%q%s%|%~%%%%%%%%%%%%%%%%%%%%%%%%&J&h?hu=h hmhm5hm hTDH*hTDX$$$$$$$ $Ifgd+gd+$%%%%%&%'%H????? $Ifgd+kd\.$$Ifl\d . t0644 lap(yt:o'%(%4%?%D%N%O%H????? $Ifgd+kd/$$Ifl\d . t0644 lap(yt:oO%P%a%f%p%q%r%H????? $Ifgd+kd/$$Ifl\d . t0644 lap(yt:or%s%}%~%%%%H????? $Ifgd+kd0$$Ifl\d . t0644 lap(yt:o%%%%%%%H????? $Ifgd+kdD1$$Ifl\d . t0644 lap(yt:o%%%%%%%H????? $Ifgd+kd1$$Ifl\d . t0644 lap(yt:o%%%%%%%H????? $Ifgd+kd2$$Ifl\d . t0644 lap(yt:o%%& &&&&&HC:::: $Ifgd+gd+kdZ3$$Ifl\d . t0644 lap(yt:o&&'&,&-&.&3&4&H????? $Ifgd+kd 4$$Ifl\^N  t0644 lap(yt:o4&5&:&;&<&A&B&H????? $Ifgd+kd4$$Ifl\^N  t0644 lap(yt:oB&C&I&J&Y&_&`&H????? $Ifgd+kdp5$$Ifl\^N  t0644 lap(yt:oJ&S&~&&&H'I'q''''B(a(g(o(((((((()&)-)5)I)N)O)P)W)^)r)u)v)w)x))))))))))***=*>*B*C*G*H*L*M*Q*R*V*W*[*\*Ϲۧۧۧۧۧۧۧ h}H*h)7hTD5 h)75h)7h)75 jhu jhuhuhO=YhG h}hP h >*h h >*hTDh h?h >`&a&g&h&i&o&p&H????? $Ifgd+kd"6$$Ifl\^N  t0644 lap(yt:op&q&v&w&x&~&&H????? $Ifgd+kd6$$Ifl\^N  t0644 lap(yt:o&&&&&&&H????? $Ifgd+kd7$$Ifl\^N  t0644 lap(yt:o&&&&&&&H????? $Ifgd+kd88$$Ifl\^N  t0644 lap(yt:o&&&I'J'q'''HCCCCCCgd+kd8$$Ifl\^N  t0644 lap(yt:o''f(g(((((%)&)I)J)K)L)M)N)O)P)r)s)t)u)v)))*8*gdu$a$gd}gd}gd gd+8*]******++N+x++++++++, ,,,&,6,7,^,i,s,,,gdugdOgd}\*]*******************L+M+v+w+++++++++++,!,),+,4,5,6,>,@,M,O,S,\,j,n,v,x,},,,,,,,,, hhu huH* hH*h3ThuH*hyth huH*huh2_h)75h)7h)75h)7hOhOH* hOH* hOH*hO h}H*h}hEh}H*;,,,,,---f-z-{-|-}-~--------------gd}$a$gd2_gd}gdu,,,-----$-L-e-f-z--------/./* h>*7--------ekd9$$IflF t t06    44 laytDha $IfgdH<-----neee $IfgdH<kd2:$$IflF t t06    44 laytDha--...neee $IfgdH<kd:$$IflF t t06    44 laytDha.....neee $IfgdH<kd^;$$IflF t t06    44 laytDha..%.*./.neee $IfgdH<kd;$$IflF t t06    44 laytDha/.0.9.>.C.neee $IfgdH<kd<$$IflF t t06    44 laytDhaC.D.M.R.W.neee $IfgdH<kd =$$IflF t t06    44 laytDhaW.X.a.f.k.neee $IfgdH<kd=$$IflF t t06    44 laytDhak.l.u.x.}.neee $IfgdH<kdL>$$IflF t t06    44 laytDha}.~....neee $IfgdH<kd>$$IflF t t06    44 laytDha..../>2 $$Ifa$gdH<gd}gdUkd"I$$Ifl\J#$H J J t0644 lap(ytny333333333TKKKKK $IfgdH<kdI$$IflF^#  t06    44 lapytH< $$Ifa$gdH<33333333:4;4@4B4O4Q4^4`4m4o4|4~444444?5@5W5X5Y5Z5[56666888888888888888888䬤h$hfi hfi0Jjhfi0JUhdYjhdYU hu=hu=hphu5 hD2hujNhuUjhuUmHnHujhuUh)7huhU h}h}h}hH<h}H*534243494:4;4<4=4>4?4WkdJ$$IflF^#  t06    44 lapytH< $IfgdH< ?4@4A4B4C4I4J4K4L4M4N4WkdBK$$IflF^#  t06    44 lapytH< $IfgdH< N4O4P4Q4R4X4Y4Z4[4\4]4WkdK$$IflF^#  t06    44 lapytH< $IfgdH< ]4^4_4`4a4g4h4i4j4k4l4WkdL$$IflF^#  t06    44 lapytH< $IfgdH< l4m4n4o4p4v4w4x4y4z4{4WkdXM$$IflF^#  t06    44 lapytH< $IfgdH< {4|4}4~4444?5\5WRMHHgdugd}gd}kd N$$IflF^#  t06    44 lapytH< $IfgdH<\56616]6666667R7777786878W8X8888888 ^`gdugdugdu888888888888888888899 9999,9$a$gdugduh]hgdfi &`#$gd$888888889999: hu=hu=hG$ghuhdYh$hfi hfi0Jhr?0JmHnHujhfi0JU ,9-96979G9H9Z9[9r9s9x9y9~9999999999999:gdu$a$gdu21h:ps2/ =!"#$% 9 01h:p/ =!"#$% P 5 01h:p/ =!"#$% $$If!vh#vL#v #v#v #v4#v :V l t065L5 55 545 p<yt:o$$If!vh#vL#v #v#v #v4#v :V l t065L5 55 545 p<yt:o$$If!vh#vL#v #v#v #v4#v :V l t065L5 55 545 p<yt:o$$If!vh#vL#v #v#v #v4#v :V l t065L5 55 545 p<yt:o$$If!vh#vL#v #v#v #v4#v :V l t065L5 55 545 p<yt:o$$If!vh#vL#v #v#v #v4#v :V l t065L5 55 545 p<yt:o$$If!vh#vL#v #v#v #v4#v :V l t065L5 55 545 p<yt:o$$If!vh#vL#v #v#v #v4#v :V l t065L5 55 545 p<yt:o$$If!vh#vL#v #v#v #v4#v :V l t065L5 55 545 p<yt:o$$If!vh#vL#v #v#v #v4#v :V l t065L5 55 545 p<yt:o$$If!vh#v:V l t065pyt:o$$If!vh#v:V l t065pyt:o$$If!vh#v:V l t065pyt:o$$If!vh#v:V l t065pyt:o$$If!vh#v:V l t065pyt:o$$If!vh#v:V l t065pyt:o$$If!vh#v:V l t065pyt:o$$If!vh#v:V l t065pyt:o$$If!vh#v#vP:V l t065pyt:o$$If!vh#v#vP:V l t065pyt:o$$If!vh#v#vP:V l t065pyt:o$$If!vh#v#vP:V l t065pyt:o$$If!vh#v#vP:V l t065pyt:o$$If!vh#v#vP:V l t065pyt:o$$If!vh#v:V l t065pyt:o$$If!vh#v:V l t065pyt:o$$If!vh#v:V l t065pyt:o$$If!vh#v:V l t065pyt:o$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v#v)#v#v:V l t065p(ytH<$$If!vh#v:V l t065pytH<$$If!vh#v:V l t065pytH<$$If!vh#v:V l t065pytH<$$If!vh#v:V l t065pytH<$$If!vh#v:V l t065pytH<$$If!vh#v #v#v#v:V l t06555p(yt:o$$If!vh#v #v#v#v:V l t06555p(yt:o$$If!vh#v #v#v#v:V l t065p(yt:o$$If!vh#v #v#v#v:V l t065p(yt:o$$If!vh#v #v#v#v:V l t065p(yt:o$$If!vh#v #v#v#v:V l t065p(yt:o$$If!vh#v #v#v#v:V l t065p(yt:o$$If!vh#v #v#v#v:V l t065p(yt:o$$If!vh#v#v#v#v:V l t065p(yt:o$$If!vh#v#v#v#v:V l t065p(yt:o$$If!vh#v#v#v#v:V l t065p(yt:o$$If!vh#v#v#v#v:V l t065p(yt:o$$If!vh#v#v#v#v:V l t065p(yt:o$$If!vh#v#v#v#v:V l t065p(yt:o$$If!vh#v#v#v#v:V l t065p(yt:o$$If!vh#v#v#v#v:V l t065p(yt:o$$If!vh#vt#v#v:V l t065t55ytDha$$If!vh#vt#v#v:V l t065t55ytDha$$If!vh#vt#v#v:V l t065t55ytDha$$If!vh#vt#v#v:V l t065t55ytDha$$If!vh#vt#v#v:V l t065t55ytDha$$If!vh#vt#v#v:V l t065t55ytDha$$If!vh#vt#v#v:V l t065t55ytDha$$If!vh#vt#v#v:V l t065t55ytDha$$If!vh#vt#v#v:V l t065t55ytDha$$If!vh#vt#v#v:V l t065t55ytDha$$If!vh#vt#v#v:V l t065t55ytDha$$If!vh#v$#vH #vJ :V l t065$5H 5J p(ytn$$If!vh#v$#v%:V l t065$5%pFytnkd@$$Ifl֞ %Jo#$$$%%%% t0644 lapFytn$$If!vh#v$#v%:V l t065$5%pFytnkdC$$Ifl֞ %Jo#$$$%%%% t0644 lapFytn$$If!vh#v$#v%:V l t065$5%pFytnkdZF$$Ifl֞ %Jo#$$$%%%% t0644 lapFytn$$If!vh#v$#vH #vJ :V l t065$5H 5J p(ytn$$If!vh#v#v #v:V l t0655 5pytH<$$If!vh#v#v #v:V l t0655 5pytH<$$If!vh#v#v #v:V l t0655 5pytH<$$If!vh#v#v #v:V l t0655 5pytH<$$If!vh#v#v #v:V l t0655 5pytH<$$If!vh#v#v #v:V l t0655 5pytH<$$If!vh#v#v #v:V l t0655 5pytH<Dd D  3 @@"?^ 2 0@P`p2( 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p8XV~_HmH nH sH tH @`@ NormalCJ_HaJmH sH tH ^@^ h8 Heading 1$ & F@&5CJKH OJQJ\^Jj@j h8 Heading 2$$ & F<@&a$ 56CJOJQJ\]^JaJ^@^  Heading 3$ & F<@&5CJOJQJ\^JaJZ@Z u Heading 5 <@& 56CJ\]aJmHsHtHDA`D Default Paragraph FontRi@R  Table Normal4 l4a (k (No List @@ Label$]^a$DTD #_ Block Textx]^>/@> List$5$7$8$9DH$a$aJj#j m, Table Grid7:V0V>@2V %!Title$<@&a$5CJ KHOJQJ\^JaJ 4@B4 fiHeader  !4 R4 fiFooter  !.)@a. fi Page NumberNJ@N \Subtitle$<@&a$OJQJmHsHtHJoJ \ Subtitle CharCJOJPJQJ^JaJHoH uHeading 5 Char56CJ\]aJ<Z@< u Plain Text mHsHtHBoB uPlain Text Char CJ^JaJR0R O=Y List Bullet"$ & F hh^ha$H@H r? Balloon TextCJOJQJ^JaJN/N r?Balloon Text CharCJOJQJ^JaJPK![Content_Types].xmlN0EH-J@%ǎǢ|ș$زULTB l,3;rØJB+$G]7O٭V$ !)O^rC$y@/yH*񄴽)޵߻UDb`}"qۋJחX^)I`nEp)liV[]1M<OP6r=zgbIguSebORD۫qu gZo~ٺlAplxpT0+[}`jzAV2Fi@qv֬5\|ʜ̭NleXdsjcs7f W+Ն7`g ȘJj|h(KD- dXiJ؇(x$( :;˹! I_TS 1?E??ZBΪmU/?~xY'y5g&΋/ɋ>GMGeD3Vq%'#q$8K)fw9:ĵ x}rxwr:\TZaG*y8IjbRc|XŻǿI u3KGnD1NIBs RuK>V.EL+M2#'fi ~V vl{u8zH *:(W☕ ~JTe\O*tHGHY}KNP*ݾ˦TѼ9/#A7qZ$*c?qUnwN%Oi4 =3N)cbJ uV4(Tn 7_?m-ٛ{UBwznʜ"Z xJZp; {/<P;,)''KQk5qpN8KGbe Sd̛\17 pa>SR! 3K4'+rzQ TTIIvt]Kc⫲K#v5+|D~O@%\w_nN[L9KqgVhn R!y+Un;*&/HrT >>\ t=.Tġ S; Z~!P9giCڧ!# B,;X=ۻ,I2UWV9$lk=Aj;{AP79|s*Y;̠[MCۿhf]o{oY=1kyVV5E8Vk+֜\80X4D)!!?*|fv u"xA@T_q64)kڬuV7 t '%;i9s9x,ڎ-45xd8?ǘd/Y|t &LILJ`& -Gt/PK! ѐ'theme/theme/_rels/themeManager.xml.relsM 0wooӺ&݈Э5 6?$Q ,.aic21h:qm@RN;d`o7gK(M&$R(.1r'JЊT8V"AȻHu}|$b{P8g/]QAsم(#L[PK-![Content_Types].xmlPK-!֧6 0_rels/.relsPK-!kytheme/theme/themeManager.xmlPK-!0C)theme/theme/theme1.xmlPK-! ѐ' theme/theme/_rels/themeManager.xml.relsPK] -FM^lv=2      -FM^lv=@ #%2N4NoN @@@@@@@@@@@@@@@@@C yI!J&\*,38: 7Elt xd~=HOP"0>LUcs (8I^,AVkY $$'%O%r%%%%%&&4&B&`&p&&&&'8*,---../.C.W.k.}../E2]22y33?4N4]4l4{4\58,9:!"#$%&'()*+,-./012345689:;<=>?@ABCDFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkmnopqrsuvwxyz{|}~?-W-Z-2_  C!!8@Z(    % 3  "0?`  c $X99? %N    \  N   \  N   R N   R # N    R  N    R  N     #  N     [  N      R[   N     R #[   N     [ #*  N     * #  Z  3     Z  3 R Z  3 R # Z  3  R Z  3 R # Z  3   #e b  # "`  #T B S  ?X-2!tQd1-25-29*urn:schemas-microsoft-com:office:smarttagsplace  AD  6,8,..000000000000012 37DLovCFIQlt",DN`jbi~ $"+"S#[###$$$$$$ %%Q)W)o)r))),, .0.5.\.a....q/y/00000000000123333333333333333333333333333333333333 *,-5PRRZenn*+*+000000000011112 *,-5PRRZenn*+*+000000000000011112|(}h,~vW4m~ؗFq^d30%8 I :6pQ!8|( 29R(`.lqDsX^`.^`.88^8`.^`. ^`OJQJo( ^`OJQJo( 88^8`OJQJo( ^`OJQJo(hh^h`. hh^h`OJQJo(h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hH P^`Po(hH. @@^@`o(hH. 0^`0o(hH.. ``^``o(hH... ^`o(hH .... ^`o(hH ..... ^`o(hH ......  `^``o(hH.......  00^0`o(hH........h^`OJQJo(hHh^`OJQJ^Jo(hHohp^p`OJQJo(hHh@ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohP^P`OJQJo(hH P^`Po(hH. @@^@`o(hH. 0^`0o(hH.. ``^``o(hH... ^`o(hH .... ^`o(hH ..... ^`o(hH ......  `^``o(hH.......  00^0`o(hH........ P^`Po(hH @@^@`o(hH. 0^`0o(hH.. ``^``o(hH... ^`o(hH .... ^`o(hH ..... ^`o(hH ......  `^``o(hH.......  00^0`o(hH........ P^`Po(hH. @@^@`o(hH. 0^`0o(hH.. ``^``o(hH... ^`o(hH .... ^`o(hH ..... ^`o(hH ......  `^``o(hH.......  00^0`o(hH........Q!8(`DsDsq~}| 29I :6Ht                 H]t(t;LpxDNTv]}DM|64:S~MX3W4H' d q   A ` |  Y sdYYm?0LUUhtyJ|h9?" .IP~Zg6,}=jt*O!G?![" #$=:$Z@$%%dj&A'i)-*S;*ed+%,c,--.L./X1w1 2>q2}3'5*6=M6)797<88?8y8 9Z,9T~:2;C<H<Q<=*p=u=u0>H>*?r?@l3@0$BNB0CIC>DED8hDyfFGGn$G HF2HSIHjITJ}Js K K7KFK`TLY&M)MMMfhMW,NPXP?k;_m7jnj qoq{qT{rOssu)5u0v8vZQv,,wcZw7hwo9xvxNPyjy}~PF]%!ym,3_BjUm[V'KIu>JgFu._BrW"t2ft]RyP(FGPCJnMm :HIqG dqA'X5[6;>y Nh883*v ty|KwQa]>%:, 0Q9d\G_gHpytvv % MTYdBlIOh/7:x0>A:_Flj cc-l}&\}"`P}' lx'\do@ >BTD 678]rm=E#co&lUmu%m7/WgcmJO*RoCVQ^ s2w3Rzk+}e%I9/:j*VPytB}HBPL`T$!kV<<`_o<Og_Tw7?:ovm>zfFT@bjrKW?R5jsRnM5=fLam~y y7(D?q:](w00@2@Unknown G* Times New Roman5Symbol3. * Arial7.@ Calibri;Wingdings7@Cambria?= * Courier New5. *aTahomaA$BCambria Math"qh;;!;=C) X=C) X!x24h0h0 3QKXm,2!xx Hello HexadecimalSusan J LinckelinckeL           Oh+'0  0 < H T`hpxHello HexadecimalSusan J LinckeNormallincke2Microsoft Office Word@@pa@zo@zo =C)՜.+,0 hp|  Xh0 Hello Hexadecimal Title  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Root Entry F0oData LO1TableHSWordDocumentNSummaryInformation(DocumentSummaryInformation8CompObjr  F Microsoft Word 97-2003 Document MSWordDocWord.Document.89q