OpenCores
URL https://opencores.org/ocsvn/ps2_keyboard_interface/ps2_keyboard_interface/trunk

Subversion Repositories ps2_keyboard_interface

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /
    from Rev 1 to Rev 2
    Reverse comparison

Rev 1 → Rev 2

/ps2_keyboard_interface/Keyboard_Controller.ucf
0,0 → 1,23
NET "Clk" LOC = "M16";
NET "Clk" CLOCK_DEDICATED_ROUTE = FALSE;
NET "DataIn" LOC = "M15";
NET "Enables<0>" LOC = "E13" ;
NET "Enables<1>" LOC = "F14" ;
NET "Enables<2>" LOC = "G14" ;
NET "Enables<3>" LOC = "D14" ;
NET "Segments<0>" LOC = "E14" ;
NET "Segments<1>" LOC = "G13" ;
NET "Segments<2>" LOC = "N15" ;
NET "Segments<3>" LOC = "P15" ;
NET "Segments<4>" LOC = "R16" ;
NET "Segments<5>" LOC = "F13" ;
NET "Segments<6>" LOC = "N16" ;
NET "Clk2" LOC = "T9";
NET "pressed<0>" LOC = "K12" ;
NET "pressed<1>" LOC = "P14" ;
NET "pressed<2>" LOC = "L12" ;
NET "pressed<3>" LOC = "N14" ;
NET "pressed<4>" LOC = "P13" ;
NET "pressed<5>" LOC = "N12" ;
NET "pressed<6>" LOC = "P12" ;
NET "pressed<7>" LOC = "P11" ;
/ps2_keyboard_interface/Keyboard_Controller.bit Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
ps2_keyboard_interface/Keyboard_Controller.bit Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: ps2_keyboard_interface/Keyboard_Controller.stx =================================================================== Index: ps2_keyboard_interface/Keyboard_Controller.par =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.par (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.par (revision 2) @@ -0,0 +1,206 @@ +Release 12.3 par M.70d (lin64) +Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. + +omar:: Fri Dec 03 00:08:23 2010 + +par -w -intstyle ise -ol high -t 1 Keyboard_Controller_map.ncd +Keyboard_Controller.ncd Keyboard_Controller.pcf + + +Constraints file: Keyboard_Controller.pcf. +Loading device for application Rf_Device from file '3s200.nph' in environment /home/omar/ISE_DS/ISE/. + "Keyboard_Controller" is an NCD, version 3.2, device xc3s200, package ft256, speed -5 + +Initializing temperature to 85.000 Celsius. (default - Range: 0.000 to 85.000 Celsius) +Initializing voltage to 1.140 Volts. (default - Range: 1.140 to 1.260 Volts) + +INFO:Par:282 - No user timing constraints were detected or you have set the option to ignore timing constraints ("par + -x"). Place and Route will run in "Performance Evaluation Mode" to automatically improve the performance of all + internal clocks in this design. Because there are not defined timing requirements, a timing score will not be + reported in the PAR report in this mode. The PAR timing summary will list the performance achieved for each clock. + Note: For the fastest runtime, set the effort level to "std". For best performance, set the effort level to "high". + +Device speed data version: "PRODUCTION 1.39 2010-09-15". + + +Device Utilization Summary: + + Number of BUFGMUXs 2 out of 8 25% + Number of External IOBs 23 out of 173 13% + Number of LOCed IOBs 22 out of 23 95% + + Number of Slices 42 out of 1920 2% + Number of SLICEMs 2 out of 960 1% + + + +Overall effort level (-ol): High +Placer effort level (-pl): High +Placer cost table entry (-t): 1 +Router effort level (-rl): High + +Starting initial Timing Analysis. REAL time: 1 secs +Finished initial Timing Analysis. REAL time: 1 secs + + +Starting Placer +Total REAL time at the beginning of Placer: 1 secs +Total CPU time at the beginning of Placer: 1 secs + +Phase 1.1 Initial Placement Analysis +Phase 1.1 Initial Placement Analysis (Checksum:b776f53f) REAL time: 1 secs + +Phase 2.7 Design Feasibility Check +WARNING:Place:837 - Partially locked IO Bus is found. + Following components of the bus are not locked: + Comp: Segments<7> + +INFO:Place:834 - Only a subset of IOs are locked. Out of 23 IOs, 22 are locked and 1 are not locked. If you would like + to print the names of these IOs, please set the environment variable XIL_PAR_DESIGN_CHECK_VERBOSE to 1. +Phase 2.7 Design Feasibility Check (Checksum:b776f53f) REAL time: 1 secs + +Phase 3.31 Local Placement Optimization +Phase 3.31 Local Placement Optimization (Checksum:b776f53f) REAL time: 1 secs + +Phase 4.2 Initial Clock and IO Placement +... +...................... +WARNING:Place:1019 - A clock IOB / clock component pair have been found that are not placed at an optimal clock IOB / + clock site pair. The clock component is placed at site . The IO component is placed + at site . This will not allow the use of the fast path between the IO and the Clock buffer. This is normally + an ERROR but the CLOCK_DEDICATED_ROUTE constraint was applied on COMP.PIN allowing your design to continue. + This constraint disables all clock placer rules related to the specified COMP.PIN. The use of this override is highly + discouraged as it may lead to very poor timing results. It is recommended that this error condition be corrected in + the design. +Phase 4.2 Initial Clock and IO Placement (Checksum:c750f087) REAL time: 5 secs + +Phase 5.36 Local Placement Optimization +Phase 5.36 Local Placement Optimization (Checksum:c750f087) REAL time: 5 secs + +Phase 6.3 Local Placement Optimization +... +Phase 6.3 Local Placement Optimization (Checksum:dacaa2e7) REAL time: 5 secs + +Phase 7.5 Local Placement Optimization +Phase 7.5 Local Placement Optimization (Checksum:dacaa2e7) REAL time: 5 secs + +Phase 8.8 Global Placement +.. +.. +Phase 8.8 Global Placement (Checksum:cd0abfbb) REAL time: 5 secs + +Phase 9.5 Local Placement Optimization +Phase 9.5 Local Placement Optimization (Checksum:cd0abfbb) REAL time: 5 secs + +Phase 10.18 Placement Optimization +Phase 10.18 Placement Optimization (Checksum:d439aee6) REAL time: 6 secs + +Phase 11.5 Local Placement Optimization +Phase 11.5 Local Placement Optimization (Checksum:d439aee6) REAL time: 6 secs + +Total REAL time to Placer completion: 6 secs +Total CPU time to Placer completion: 5 secs +Writing design to file Keyboard_Controller.ncd + + + +Starting Router + + +Phase 1 : 237 unrouted; REAL time: 6 secs + +Phase 2 : 192 unrouted; REAL time: 6 secs + +Phase 3 : 41 unrouted; REAL time: 6 secs + +Phase 4 : 52 unrouted; (Par is working to improve performance) REAL time: 6 secs + +Phase 5 : 0 unrouted; (Par is working to improve performance) REAL time: 6 secs + +Updating file: Keyboard_Controller.ncd with current fully routed design. + +Phase 6 : 0 unrouted; (Par is working to improve performance) REAL time: 6 secs + +Phase 7 : 0 unrouted; (Par is working to improve performance) REAL time: 6 secs + +Phase 8 : 0 unrouted; (Par is working to improve performance) REAL time: 7 secs + +Phase 9 : 0 unrouted; (Par is working to improve performance) REAL time: 7 secs + +Phase 10 : 0 unrouted; (Par is working to improve performance) REAL time: 7 secs + +Total REAL time to Router completion: 7 secs +Total CPU time to Router completion: 6 secs + +Partition Implementation Status +------------------------------- + + No Partitions were found in this design. + +------------------------------- + +Generating "PAR" statistics. + +************************** +Generating Clock Report +************************** + ++---------------------+--------------+------+------+------------+-------------+ +| Clock Net | Resource |Locked|Fanout|Net Skew(ns)|Max Delay(ns)| ++---------------------+--------------+------+------+------------+-------------+ +| Clk_BUFGP | BUFGMUX1| No | 23 | 0.000 | 0.881 | ++---------------------+--------------+------+------+------------+-------------+ +| Clk2_BUFGP | BUFGMUX0| No | 7 | 0.000 | 0.881 | ++---------------------+--------------+------+------+------------+-------------+ + +* Net Skew is the difference between the minimum and maximum routing +only delays for the net. Note this is different from Clock Skew which +is reported in TRCE timing report. Clock Skew is the difference between +the minimum and maximum path delays which includes logic delays. + +Timing Score: 0 (Setup: 0, Hold: 0) + +Asterisk (*) preceding a constraint indicates it was not met. + This may be due to a setup or hold violation. + +---------------------------------------------------------------------------------------------------------- + Constraint | Check | Worst Case | Best Case | Timing | Timing + | | Slack | Achievable | Errors | Score +---------------------------------------------------------------------------------------------------------- + Autotimespec constraint for clock net Clk | SETUP | N/A| 3.763ns| N/A| 0 + _BUFGP | HOLD | 0.702ns| | 0| 0 +---------------------------------------------------------------------------------------------------------- + Autotimespec constraint for clock net Clk | SETUP | N/A| 3.314ns| N/A| 0 + 2_BUFGP | HOLD | 1.103ns| | 0| 0 +---------------------------------------------------------------------------------------------------------- + + +All constraints were met. +INFO:Timing:2761 - N/A entries in the Constraints List may indicate that the + constraint is not analyzed due to the following: No paths covered by this + constraint; Other constraints intersect with this constraint; or This + constraint was disabled by a Path Tracing Control. Please run the Timespec + Interaction Report (TSI) via command line (trce tsi) or Timing Analyzer GUI. + + +Generating Pad Report. + +All signals are completely routed. + +Total REAL time to PAR completion: 7 secs +Total CPU time to PAR completion: 7 secs + +Peak Memory Usage: 325 MB + +Placement: Completed - No errors found. +Routing: Completed - No errors found. + +Number of error messages: 0 +Number of warning messages: 2 +Number of info messages: 2 + +Writing design to file Keyboard_Controller.ncd + + + +PAR done! Index: ps2_keyboard_interface/Keyboard_Controller.unroutes =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.unroutes (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.unroutes (revision 2) @@ -0,0 +1,9 @@ +Release 12.3 - par M.70d (lin64) +Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. + +Fri Dec 3 00:08:31 2010 + +All signals are completely routed. + + + Index: ps2_keyboard_interface/Keyboard_Controller.ngr =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.ngr (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.ngr (revision 2) @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$00a73<'aefi"abas-Neki(Ehdd#^kyeoQfchci|'|ch9<4/imna*iji{%FuB~jnBmqav)LmphdmjPCnlwvjjkm{%@itl`asf\Gjhszffgi yhe38546<9:0Hcx`{es>26?69981:?7AZTQWW>T:6:3:5=>5>6;KMTPR=Lh~j0<;50?36?40=AGZ^X7jnt`Km843=87l0=;4kaucJj972294o7?<5d`vb877=87;;7?4FNQWW>Vck480;2<>43;KMTPR=[lf7>7>1c:1p656a|;?=!8j44;Akkvci4:0;2h5;:Dlbfict4:0;2<<44;KMTPR=imnyM1=50?36?14?>d96>Firf}oy094?>g96>JSSX\^1]1:50?d8>=G\^[YY4\efofjqu;?3:5=<57:NWWTPR=lfK7;7>1149;>JSSX\^1|k|sdf?3?69n221CxzMyug282<76o136B{{Bxvf691=87l047]jglgmpv:0294n754rdqpaa:0294=7L@K5C06?Ded}d20NX]PIODL5>E53JO27NABMHVWAA12:<=D`fynb1<1b:Akkvci4:0;245Lhnqfj959;2Igg95Llj06?FjlMg20Ob{atdp2e>Eh}g~n~1>1b:Alqkrbz5;:2i5Lotlwaw:6:3:5n6M`uovfv9756h1Hcx`{es>2:d=Dg|di2=>`9@kphsm{682n5Lotlwaw:3294j7Naznugq81863M>0Hlzn7:Fbpd:7611Omyo311<;?Agsi5;:255Kauc?578?3Mkm1?<>99Geqg;9=4j7Io{a=36>58?3Mkm1?:>69Geqg;97=0Hlzn<3<4?Agsi595;6Jnt`>7:2=Ci}k79394D`vb83803Mkm1917:Fbpd:?6>1Omyo39?48@drfAgk0Icomldq?4;g3m4Eocah`u;;3:5m6Kaacnfw959=2LOIR?;;GF\57=N8;1B=?5F239J77=N<=1BBDZ>1:KmwqYTmoe_hibeovf?NCBXVBBI_O]CI[27>Mbqkej~iQLoovqkijbz>1GCJGLAM58I+17lVFm7@jjcnf\Akgedly:o6Cbuy]@ljubf8o0Aab_Rgdi`hs{8;0Co5@uu@zp`7;87h0CxzMyug2848e3FNtzj1=0=f>Ir|Ksi<2<>c9LqqD~|l;783l4OtvA}qc64<4i7B{{Bxvf5909l2E~xOw{e0>4>58e3FNtzj1=5=e>Ir|KsiIr|Ksim6AztC{wa4Y1i2E~xOw{e0]456=H}}Hrxh?Pclr\at67898h7B{{Bxvf5ZejxVoz<=>?_hos[JssJp~n=Rmbp^gr45679k1DyyLvtd0?4;d1<1b:MvpGsm;682o5@uu@zp`4;<7h0CxzMyug1808e3FNtzj2=4=`>Ir|Ksi?28:1191a:MvpGsm;U;m6AztC{wa7Y6i2E~xOw{e3]1e>Ir|Ksi?QIr|Ksi?Q84:RBVQg;P68U969=2[7==0:;P>25;126;22[787>14:S?0;20]1914:S?<;2Tb{|f0<06;Sgpqir;:7h0^h}zlu>0>58>3[oxyaz33?`8WLAE]ZUBBKAn;RKD[GSTAMRi7^GH_CWPJDKB<2Yh`l4Sdenakrt494i7^khmdlww979j2Ynk`katr>1:g=Tmngnby}33?`8W`ajmg~x090m;Rgdi`hs{5?5n6]jglgmpv:16m1Xijcjnuq?3?69j2Ynk`katr>4:6=Tme<0_hb30?:8W`j;93:5:6]jl=3=<>Ubd581<384Sdn?6;e<[l|nb^khmdlw0>R^XL30ZDKX_U[SA4b^t|NGdhhb:;`fgvD>18:cg`wG;9720mij}A=0=e>gcl{K7?7>18:cg`wG;;7=0ob{atdp4?agsi5:546jnt`>24;>bf|h6:8364d`vb843902njxl2>6?:8`drf48=546jnt`>2<;>69geqg;<7=0hlzn<4<4?agsi5<5;6jnt`>4:2=ci}k74394d`vb8<8>3mkmD`30?c8`drfAg6:<3o4d`vbMk:697k0hlznIo>26;g3?c8`drfAg6:83m4d`vbMk:6=3:5m6jnt`Km843912njxlGa<0<:?agsi@d7>374d`vbMk:4601omyoFn=6==>bf|hCe0806;ecweLh;>730hlznIo>4:<=ci}kBb1619:fbpdOi404=7io{a^25?agsiV;<7io{a^333>bf|hU:=:5kauc\571569geqgX9?=0hlzn_054?agsiV;3;6jnt`]2=3=ci}kT>:5kauc\65084d`vb[103mcyinzfoo18`jG13meJ0=09;emB84813meJ0?09;emB86813meJ0909;emB80813meJ0;07;emB82<76?1ocL28>29nq}1vhz}Ujon{b9:rlvqYflmx37}a}t^aood=wg{~Toaejn89skwrXlh~j56~`ru]gkpr13yeyxRm;qmqpZtb{|f56~`ru]pgite3yeyxR}jldawe>vumzynh1>1a:rqavubl5;5m6~}erqf`949i2zyi~}jd=1=e>vumzynh1:1a:rqavubl5?5m6~}erqf`909k2zyi~}jd=594;g:pNOp0fe?EFjk0M6?4>{R02>gg==00:??l753801`>esgh36<5ab885?!d02k90q^2899n5;=:27f57?<2c:66?52m1h0(o<5599'<77;0:>14|Dk?1=v*72;31e>{Kj?0:w)?=6;38y!d62<=0Vc<6>3wQ5i48{0;9`?7f210:=7?8:0:9yl402900e?650;9j02<722ej57>5$969e==i0:0;76an7;29 =2=i11e4>4>;:mb2?6=,1>1m55a8281?>if=3:1(5:5a99m<6<432ej87>5$969e==i0:0?76an3;29 =2=i11e4>4:;:mb6?6=,1>1m55a8285?>if93:1(5:5a99m<6<032e?o7>5$9690g=i0:0;76a;a;29 =2=4>;:m7=?6=,1>18o5a8281?>i303:1(5:54c9m<6<432e:><4?:%:7>4473g286=54o03e>5<#0=0:>=5a8282?>i69l0;6)6;:003?k>42;10c4<;:m25f<72-2?6<1=76a>1`83>!>3288;7c6<:798k47>290/494>219m<6<032h>97>51e87>75|Dk?1=vF:6:Of3<5sg;9;7?k;%312?74Z0f97~732o0=6pT6d;7x5<086n4ri3594?=hi00;6)6;:`:8j=5=821dm:4?:%:7>d>!>32h20b5=52:9le0<72-2?6l64n9197>=hi=0;6)6;:`:8j=5=<21dm>4?:%:7>d>!>32h20b5=56:9le4<72-2?6l64n9193>=h1d!>32=h0b5=52:9l0=<72-2?69l4n9197>=nm90;6)6;:ed8j=5=821bhh4?:%:7>a`!>32ml0b5=52:9j`f<72-2?6ih4n9197>=nlk0;6)6;:ed8j=5=<21bhl4?:%:7>a`!>32ml0b5=56:9ja=<72-2?6ih4n9193>=nm>0;6)6;:ed8j=5=021bi;4?:%:7>a`!>32ml0b5=5a:9ja1<72-2?6ih4n919f>=nm:0;6)6;:ed8j=5=k21bi?4?:%:7>a`!>32ml0b5=5e:9j`<<72-2?6ih4n919b>=e:h0;6h4?:1yOf3<>s-;987m=;%334?7502.:=>4<4:&24c<6k2.:=8475:&254<5?2d:;%312?67g5<42j10c5l50;&;0?>>3g286o54o9a94?"?<3227c6<:`98k=b=83.38766;o:0><=42110c4>50;&;0?>>3g286:54o8394?"?<3227c6<:798k<5=83.38766;o:0>0=1<7*74;::?k>42=10c4;50;&;0?>>3g286>54o9594?"?<3227c6<:398k=>=83.38766;o:0>4=42910qo;n:185>5<7sEh=6;u+1369bc=#9821ml5+1049=2=i99:1<6*>2783?k75?3;87p*m1;7b?_7c2;q26<>5}hca>5<#0=0jo6`73;38?lgc290/494nc:l;7?6<3f336=4+858:f>h?;3907b76:18'<1<>j2d3?7<4;n;b>5<#0=02n6`73;38?j?d290/4946b:l;7?6<3th>n7>51683>5}Kj?03w)?=4;33f>"69:0896*>198be>"69?02;6`>2487?k7513>0(<<9:19m571=n2w/n<4>0c9Y5a<4s<0j6<>5}h15>5<#0=08o6`73;d8?l5b290/494h?;3n07d:?:18'<1<4k2d3?7m4;h62>5<#0=08o6`73;`8?l25290/49486=4+8580g>h?;3307d:;:18'<1<4k2d3?764;h66>5<#0=08o6`73;58?l21290/494h?;3?07d=7:18'<1<4k2d3?7:4;h1:>5<#0=08o6`73;18?l5f290/494h?;3;07d=k:18'<1<4k2d3?7>4;hca>5<#0=0ji6`73;08?lgc290/494ne:l;7?7<3`km6=4+858ba>h?;3:07b77:18'<1<>j2d3?7=4;n;:>5<#0=02n6`73;08?j?f290/4946b:l;7?7<3f3h6=4+858:f>h?;3:07pl:c;29g?6=8rFi:79t$007>4443-;:<7ll;%320?7792d:>84>0:l26<4n004>4154icg94?"?<3i;7c6<:398mg`=83.387m?;o:0>4=42910c<>=:18'<1<6801e4>48;:m246<72-2?6<>6;o:0>3=76a>0483>!>328:27c6<:598k461290/494>089m<6<432e:<:4?:%:7>46>3g286?54o02;>5<#0=0:<45a8282?>i68h0;6)6;:02:?k>42910q~<8:181[40348j6?94}rc:>5<5sWk270;l:02b?!?a2h20b4k50:pe2<72;qUm:525b824==#1o0j46`6e;38yvg12909wSo9;<7`>4603-3m6l64n8g96>{ti<0;6?uQa49>1f<68?1/5k4n8:l:a?57)7i:`:8j4?:3y]e6=:=j0:<95+9g8b<>h>m3?0q~o=:181[g534?h6<><;%;e>d>7}Yi8169n4>039'=c5<5sW>h70;n:8a8 <`=">n3>i7c7j:39~w1>=838pR964=4c9===#1o0?n6`6e;18yvc72909wSk?;<7a>16<,0l1hk5a9d83?xucm3:1>vPke:?6f?5a3-3m6ih4n8g95>{tlm0;6?uQde9>1g<4m2.2j7ji;o;f>7=z{mi1<70(4h5dg9m=`<33tyom7>52z\ge>;2j3>87)7i:ed8j6*6f;fe?k?b2?1vh650;0xZ`><5h>m3=0q~k8:181[c034?i6>64$8d9`c=i1l037p}j6;296~Xb>27>n7=8;%;e>a`7}Ym<169o4;6:&:b?ba3g3n6l5rsd694?4|Vl>018l5449'=c5<5sWo870;m:2f8 <`=lo1e5h4l;|qf6?6=:rTn>63:b;1a?!?a2ml0b4k5d:pa4<72;qUi<525c80e>">n3nm7c7j:d9~wa?=838pRi74=4`97<=#1o0oj6`6e;d8yv4b2908w0;2j3ko70;m:``8 <`=:m1e5h4>;|q12?6=:r7>n77l;<7`>f7<,0l1>85a9d83?xu5<3:1>v3:b;;b?83d2kl0(4h5249m=`<63ty9?7>52z?6f??>34?h6ok4$8d960=i1l097p}=2;296~;2j33370;l:cf8 <`=:<1e5h4<;|aad<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;<0qd?j:188m62=831d484?::aag<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::ab3<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::ab=<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::ab<<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::abd<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::abg<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::abf<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::aba<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::ab`<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::a22<72=0;6=u+b087`>Ne<2Fi:74=i9;=1>45ri0g94?=n9o0;66g<4;29?j>22900qo87:187>5<7s-h:69j4Hc68Hg0=:r.:>;4>;o313?4>3tc:i7>5;h3e>5<1<75`8483>>{e>00;694?:1y'f4<3l2Bi86Bm6;0x 441281e=?95289~m4c=831b=k4?::k00?6=3f2>6=44}c4b>5<3290;w)l>:5f8Lg2v*>2782?k75?3827pg>e;29?l7a2900e>:50;9l<0<722wi:o4?:583>5}#j80?h6Fm4:Na2?4|,88=6<5a13596<=za8o1<75f1g83>>o4<3:17b6::188yg0d290?6=4?{%`2>1b<@k>0@o852z&263<63g;9;7<6;|k2a?6=3`;m6=44i2694?=h0<0;66sm6e83>1<729q/n<4;d:Ja0>Je>38p(<<9:09m571=:01ve5;n:6>5<Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::aaa<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::aa`<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::aac<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::ab5<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::ab4<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::ab7<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::ab6<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::ab1<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::ab0<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::ab2<72:0;6=u+b087a>Ne<2Fi97?t$4696>{Kj?09w)?=6;38j4402;?0qd?j:188m62=831d484?::a3d<72=0;6=u+b087`>Ne<2Fi:74=i9;=1>l5ri0g94?=n9o0;66g<4;29?j>22900qo9m:187>5<7s-h:69j4Hc68Hg0=:r.:>;4>;o313?4f3tc:i7>5;h3e>5<1<75`8483>>{e?j0;694?:1y'f4<3l2Bi86Bm6;0x 441281e=?952`9~m4c=831b=k4?::k00?6=3f2>6=44}c5g>5<3290;w)l>:5f8Lg2v*>2782?k75?38j7pg>e;29?l7a2900e>:50;9l<0<722wi;h4?:583>5}#j80?h6Fm4:Na2?4|,88=6<5a13596d=za8o1<75f1g83>>o4<3:17b6::188yg1a290?6=4?{%`2>1b<@k>0@o852z&263<63g;9;71<729q/n<4;d:Ja0>Je>38p(<<9:09m571=:h1ve5;n:6>5<0;6=uCb78a!75<3i97)??0;31<>"69:0886*>0g82g>"69<0396*>10813>h68j0;7)?>7;c3?k77m3;0(<<9:09m571=:o1v(o?52`9Y5a<6s881qd<8:188md6=831d4;4?:%:7>=c!>321o0b5=53:9l=h0m0;6)6;:9g8j=5=921d4k4?:%:7>=c5513:8 4742:>0(<>i:0a8 47221?0(:358j46d291/=<<5289m55b=92.:>;4>;o313?4e3t.i=7?=2:X2`?7|9:0ve?950;9j6<<722e3:7>5$969=7=i0:0<76a7b;29 =2=1;1e4>49;:m;g?6=,1>15?5a8286?>i?l3:1(5:5939m<6<332e3j7>5$969=7=i0:0876a60;29 =2=1;1e4>4=;:m:5?6=,1>15?5a8282?>i>;3:1(5:5939m<6<732wi;=4?:783>5}#j80:n6Fm4:k7b?6=3`?;6=44i4394?=n=;0;66g:3;29?j3c2900q~<8:181<~X5?27nm7?j;4c<5o<1=h52f982a>;a13;n70hn:0g89cd=9l16jn4>e:?e`?7b34ln610:i6399;3f?80f28o01;l51d9>2f<6m27=h7?j;<4f>4c<5li1=h52ee82a>;bm3;n70ki:0g89c6=9l16j<4>e:?e6?7b34l863f<6m274c<5>l1=h528182a>;?93;n706?94}r64>5<5sW><70kn:268yv0a290:?v397;3e?80?28l01;751g9>2d<6n27=n7?i;<4`>4`<5?n1=k526d82b>;0i3;m709m:0d892e=9o16;i4>f:?4a?7a34=m62909wSo6;<76>d?<,0l1m55a9d83?xuf?3:1>vPn7:?61?g03-3m6l64n8g95>{ti?0;6?uQa79>102.2j7o7;o;f>7=z{h?1<70(4h5a99m=`<33tyj?7>52z\b7>;2=3k87)7i:`:8j6*6f;c;?k?b2?1vl?50;0xZd7<5h>m3=0q~:l:181[2d34?>69m4$8d90g=i1l0;7p};a;296~X3i27>97:n;%;e>1d7}Y<016984;9:&:b?2e3g3n6?5rs5:94?4|V=2018;5499'=c<3j2d2i7=4}r315?6=:rT:><521309=6=#1o0:>=5a9d83?xu69o0;6?uQ10d8944520;0(4h51328j77?;%;e>4473g3n6?5rs03g>5<5sW;:h63>238;b>">n3;9<6`6e;18yv76k3:1>vP>1b9>574=0m1/5k4>219m=`<33ty:=o4?:3y]54d<588965m4$8d95762909wS?>9:?2672.2j7?=0:l:a?1=3<51;1?95+9g8g4>h>m3;0q~mk:1808`221?01k95359><5<4<2.2j7j?;o;f>7=z{ji1<7=t=g69<0=:n<088638f;17?!?a2m:0b4k53:pgg<72:q6j>475:?e0?5334=n6>:4$8d9`5=i1l0?7p}la;297~;a:32>70h<:26892b=;=1/5k4k0:l:a?3=3<5o81?9527b800>">n3n;7c7j:79~wf>=839p1k>5849>b4<4<27a66}:mo03963i0;17?81f2:>0(4h5d19m=`52z?fa?>234om6>:4$8d9`5=i1l027p}l5;296~;bl32>70kj:268 <`=l91e5h4n;|q`0?6=:r7no76:;62<,0l1h=5a9d8a?xuc03:1?v3ie;:6?80b2:>01hm5359'=c5<4s4lo65;4=gg971=:>m0886*6f;f3?k?b2m1vi850;1x9ce=0<16ji4<4:?5g?533-3m6i>4n8g9a>{tl<0;6>u2fc8;1>;ak39?708m:268 <`=l91e5h4i;|qg0?6=;r7mm76:;62<5?k1?95+9g8g4>h>m3;;7p}k3;297~;a132>70hn:26893?=;=1/5k4k0:l:a?763tyo>7>53z?e234l26>:4=7:971=#1o0o<6`6e;31?xuc93:1?v3i6;:6?8`?2:>01;95359'=c62<,0l1h=5a9d820>{tk:0;6?u2e`8;1>;bj39?7)7i:e28j=50;0x97g=0o16;=4:3:&:b?553g3n6=5rs2394?4|5;k14i527187b>">n3997c7j:09~w66=838p1?o58b9>35<292.2j7==;o;f>7=z{;l1<7<6*6f;11?k?b2:1v?l50;0x97g=0?16;=4:2:&:b?553g3n695rs7494?4|5">n3<>7c7j:19~w32=838p18;5dd9>2a4=z{?91<7j0396*6f;46?k?b2;1v;<50;0x903=lj16:o475:&:b?023g3n6>5rs7394?4|5">n3<>7c7j:59~w36=838p18;5d`9>2<0=z{10396*6f;46?k?b2?1v8k50;0x903=m116::475:&:b?023g3n6:5rs6;94?4|5">n3=37c7j:19~w21=838p18;5e79><54=z{><1<75rs6694?4|5527e8;1>">n3=37c7j:59~w25=838p18;5e39>3f0=z{>81<7:ok426~DED|8tJK\vsO@ \ No newline at end of file Index: ps2_keyboard_interface/Keyboard_Controller.gise =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.gise (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.gise (revision 2) @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + 11.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: ps2_keyboard_interface/Keyboard_Controller_map.mrp =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_map.mrp (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_map.mrp (revision 2) @@ -0,0 +1,176 @@ +Release 12.3 Map M.70d (lin64) +Xilinx Mapping Report File for Design 'Keyboard_Controller' + +Design Information +------------------ +Command Line : map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off +-c 100 -o Keyboard_Controller_map.ncd Keyboard_Controller.ngd +Keyboard_Controller.pcf +Target Device : xc3s200 +Target Package : ft256 +Target Speed : -5 +Mapper Version : spartan3 -- $Revision: 1.52 $ +Mapped Date : Fri Dec 3 00:08:20 2010 + +Design Summary +-------------- +Number of errors: 0 +Number of warnings: 0 +Logic Utilization: + Number of Slice Flip Flops: 58 out of 3,840 1% + Number of 4 input LUTs: 32 out of 3,840 1% +Logic Distribution: + Number of occupied Slices: 42 out of 1,920 2% + Number of Slices containing only related logic: 42 out of 42 100% + Number of Slices containing unrelated logic: 0 out of 42 0% + *See NOTES below for an explanation of the effects of unrelated logic. + Total Number of 4 input LUTs: 51 out of 3,840 1% + Number used as logic: 30 + Number used as a route-thru: 19 + Number used as Shift registers: 2 + + The Slice Logic Distribution report is not meaningful if the design is + over-mapped for a non-slice resource or if Placement fails. + + Number of bonded IOBs: 23 out of 173 13% + Number of BUFGMUXs: 2 out of 8 25% + +Average Fanout of Non-Clock Nets: 2.32 + +Peak Memory Usage: 336 MB +Total REAL time to MAP completion: 1 secs +Total CPU time to MAP completion: 1 secs + +NOTES: + + Related logic is defined as being logic that shares connectivity - e.g. two + LUTs are "related" if they share common inputs. When assembling slices, + Map gives priority to combine logic that is related. Doing so results in + the best timing performance. + + Unrelated logic shares no connectivity. Map will only begin packing + unrelated logic into a slice once 99% of the slices are occupied through + related logic packing. + + Note that once logic distribution reaches the 99% level through related + logic packing, this does not mean the device is completely utilized. + Unrelated logic packing will then begin, continuing until all usable LUTs + and FFs are occupied. Depending on your timing budget, increased levels of + unrelated logic packing may adversely affect the overall timing performance + of your design. + +Table of Contents +----------------- +Section 1 - Errors +Section 2 - Warnings +Section 3 - Informational +Section 4 - Removed Logic Summary +Section 5 - Removed Logic +Section 6 - IOB Properties +Section 7 - RPMs +Section 8 - Guide Report +Section 9 - Area Group and Partition Summary +Section 10 - Timing Report +Section 11 - Configuration String Information +Section 12 - Control Set Information +Section 13 - Utilization by Hierarchy + +Section 1 - Errors +------------------ + +Section 2 - Warnings +-------------------- + +Section 3 - Informational +------------------------- +INFO:MapLib:562 - No environment variables are currently set. +INFO:LIT:244 - All of the single ended outputs in this design are using slew + rate limited output drivers. The delay on speed critical single ended outputs + can be dramatically reduced by designating them as fast outputs. + +Section 4 - Removed Logic Summary +--------------------------------- + 4 block(s) optimized away + +Section 5 - Removed Logic +------------------------- + +Optimized Block(s): +TYPE BLOCK +GND XST_GND +VCC XST_VCC + +To enable printing of redundant blocks removed and signals merged, set the +detailed map report option and rerun map. + +Section 6 - IOB Properties +-------------------------- + ++---------------------------------------------------------------------------------------------------------------------------------------------------------+ +| IOB Name | Type | Direction | IO Standard | Diff | Drive | Slew | Reg (s) | Resistor | IOB | +| | | | | Term | Strength | Rate | | | Delay | ++---------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Clk | IOB | INPUT | LVCMOS25 | | | | | | | +| Clk2 | IOB | INPUT | LVCMOS25 | | | | | | | +| DataIn | IOB | INPUT | LVCMOS25 | | | | | | | +| Enables<0> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| Enables<1> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| Enables<2> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| Enables<3> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| Segments<0> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| Segments<1> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| Segments<2> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| Segments<3> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| Segments<4> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| Segments<5> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| Segments<6> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| Segments<7> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| pressed<0> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| pressed<1> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| pressed<2> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| pressed<3> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| pressed<4> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| pressed<5> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| pressed<6> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | +| pressed<7> | IOB | OUTPUT | LVCMOS25 | | 12 | SLOW | | | | ++---------------------------------------------------------------------------------------------------------------------------------------------------------+ + +Section 7 - RPMs +---------------- + +Section 8 - Guide Report +------------------------ +Guide not run on this design. + +Section 9 - Area Group and Partition Summary +-------------------------------------------- + +Partition Implementation Status +------------------------------- + + No Partitions were found in this design. + +------------------------------- + +Area Group Information +---------------------- + + No area groups were found in this design. + +---------------------- + +Section 10 - Timing Report +-------------------------- +This design was not run using timing mode. + +Section 11 - Configuration String Details +----------------------------------------- +Use the "-detail" map option to print out Configuration Strings + +Section 12 - Control Set Information +------------------------------------ +No control set information for this architecture. + +Section 13 - Utilization by Hierarchy +------------------------------------- +Use the "-detail" map option to print out the Utilization by Hierarchy section. Index: ps2_keyboard_interface/Keyboard_Controller.lso =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.lso (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.lso (revision 2) @@ -0,0 +1 @@ +work Index: ps2_keyboard_interface/Keyboard_Controller_par.xrpt =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_par.xrpt (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_par.xrpt (revision 2) @@ -0,0 +1,1913 @@ + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+
+ +
+ + + + +
+
+ +
+ + + +
+
+ +
+ + + + + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+ + + +
+ + + + Index: ps2_keyboard_interface/Keyboard_Controller.bld =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.bld (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.bld (revision 2) @@ -0,0 +1,37 @@ +Release 12.3 ngdbuild M.70d (lin64) +Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. + +Command Line: /home/omar/ISE_DS/ISE/bin/lin64/unwrapped/ngdbuild -intstyle ise +-dd _ngo -nt timestamp -uc Keyboard_Controller.ucf -p xc3s200-ft256-5 +Keyboard_Controller.ngc Keyboard_Controller.ngd + +Reading NGO file +"/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.ngc" ... +Gathering constraint information from source properties... +Done. + +Annotating constraints to design from ucf file "Keyboard_Controller.ucf" ... +Resolving constraint associations... +Checking Constraint Associations... +Done... + +Checking expanded design ... + +Partition Implementation Status +------------------------------- + + No Partitions were found in this design. + +------------------------------- + +NGDBUILD Design Results Summary: + Number of errors: 0 + Number of warnings: 0 + +Total memory usage is 244240 kilobytes + +Writing NGD file "Keyboard_Controller.ngd" ... +Total REAL time to NGDBUILD completion: 2 sec +Total CPU time to NGDBUILD completion: 2 sec + +Writing NGDBUILD log file "Keyboard_Controller.bld"... Index: ps2_keyboard_interface/Keyboard_Controller_map.ncd =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_map.ncd (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_map.ncd (revision 2) @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6 +###5244:XlxV32DM 3fff 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###3932:XlxV32DM 3fff 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###4960:XlxV32DM 3fff 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###1256:XlxV32DM ede 4d0eNq9l0uO3CAQQC+TAxgofvYmSrZZJEfAxl6ONIusWnP3VLlb8cPKbDNSy4hHQf1hlo+37Oo8zfJ4c/GYQ1l+u7jPfjHQFIQnSNsFXPEK3EsiEwSASCCzU3BOTOdEvE9kiBaKrgCJoF8grdR7hUGNYAOgQWvBGStBBagE7ab/umEl994mgEbgoH+nmmZYfUnsBPsVkHAQHBcQB+CnC+QJhx84XAbA2HaCcLP4iNjCcSWclnYChDIdBP3a2516OxgUaJAHiAQBlvoLeI9DRQgQMRkk+mip9/ttIiCm1MIHAQgE6QJ5iJDAoEwQASpBgqU0KDEghQCHSyLIN8NSuU80iFaK7gDQ22f4Jg+hyzCI9eoLAAvBV1hKveuBw1FsvjEwjcDdDGv+PsHQdYqiOVBv3+CbPOQiGqewTs9cfIE4ZMEGSxm6jlqKEwEDsxOsN8P6dp9A6KiF31H71Nvv8E0ekrTDoCHYaFUZgQgOV0QUApwRPcHtqggu3ScQoRgpihKnesHBBRlpHQL6YkwEVG9wAXpvgUE5oPcWBjuguZWJAM2tDRJoboW9IKB7VGZaQPfIrKnA7rERWC/IVw8WNk4oIwGZN1xPAXXsWOABdTwoiTrBeonoV3EngEpx2AmFBaMkMzN4RMbjIQ5uQCXCb1JhdSwE6EVxiA1qw/EZElAbg/+QSVgvfFokRmJ4QaBksljqpSfwjISYRHuBQcJSr7wA01ss9eIr9QZgqZdfEux+Ei8JT4dIAmCzENwMGWGNEwz0dKGU6yXnBjvwmHU4I/pnb8MEUqMN+rdrC1an4FmJI6P0284RLa5Rh4yu49FcYsHN7fkEF75YOd+vefYc2a/5wabjmsfBKaKr+Wsj/fv69fujaJvMpbbga9eJb4/4cM8SnIO2TQ3/mjVgYXl3sS8fCs9HvEZExaL+Nl2lK2rSO0Cbi97OuVWVUulVt167tqCiP13TVabrGr2tsl5heVf5Xf7u3O1Yr8eqp9S9snxxvc/V0HbmggE/d21idl9oCFx1tmizf0T0q+91t/xwep/K44fLmm7vLi1vrqu0fuyGWz7+DdxnwH8GgrlQNTuTcS6mmdtUrcMSv2qBBU3nPvtdhf1dzempZv4vav4byGcgfgbSK2l+Pn5pDkzLLyVueV9t/L6dY8umZp/j/HiLln3FQmaDZHGzQTmDp4PV3GaDbr6zwelAHegdql60welKG0Tzpw2eTlVl/gCYgSge \ No newline at end of file Index: ps2_keyboard_interface/Keyboard_Controller.ptwx =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.ptwx (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.ptwx (revision 2) @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> +Autotimespec constraint for clock net Clk_BUFGPAutotimespec constraint for clock net Clk2_BUFGP0INFO:Timing:2761 - N/A entries in the Constraints List may indicate that the constraint is not analyzed due to the following: No paths covered by this constraint; Other constraints intersect with this constraint; or This constraint was disabled by a Path Tracing Control. Please run the Timespec Interaction Report (TSI) via command line (trce tsi) or Timing Analyzer GUI. Index: ps2_keyboard_interface/Keyboard_Controller_pad.txt =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_pad.txt (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_pad.txt (revision 2) @@ -0,0 +1,286 @@ +Release 12.3 - par M.70d (lin64) +Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. + +Fri Dec 3 00:08:31 2010 + + +INFO: The IO information is provided in three file formats as part of the Place and Route (PAR) process. These formats are: +1. The _pad.txt file (this file) designed to provide information on IO usage in a human readable ASCII text format viewable through common text editors. +2. The _pad.csv file for use with spreadsheet programs such as MS Excel. This file can also be read by PACE to communicate post PAR IO information. +3. The .pad file designed for parsing by customers. It uses the "|" as a data field separator. + +INPUT FILE: Keyboard_Controller_map.ncd +OUTPUT FILE: Keyboard_Controller_pad.txt +PART TYPE: xc3s200 +SPEED GRADE: -5 +PACKAGE: ft256 + +Pinout by Pin Number: + ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|Pin Number|Signal Name|Pin Usage|Pin Name |Direction|IO Standard|IO Bank Number|Drive (mA)|Slew Rate|Termination|IOB Delay|Voltage |Constraint|IO Register|Signal Integrity| ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +|A1 | | |GND | | | | | | | | | | | | +|A2 | | |TDI | | | | | | | | | | | | +|A3 | |IOB |IO/VREF_0 |UNUSED | |0 | | | | | | | | | +|A4 | |DIFFM |IO_L01P_0/VRN_0 |UNUSED | |0 | | | | | | | | | +|A5 | |IOB |IO |UNUSED | |0 | | | | | | | | | +|A6 | | |VCCAUX | | | | | | | |2.5 | | | | +|A7 | |IOB |IO |UNUSED | |0 | | | | | | | | | +|A8 | |DIFFM |IO_L32P_0/GCLK6 |UNUSED | |0 | | | | | | | | | +|A9 | |IOB |IO |UNUSED | |1 | | | | | | | | | +|A10 | |DIFFS |IO_L31N_1/VREF_1 |UNUSED | |1 | | | | | | | | | +|A11 | | |VCCAUX | | | | | | | |2.5 | | | | +|A12 | |IOB |IO |UNUSED | |1 | | | | | | | | | +|A13 | |DIFFS |IO_L10N_1/VREF_1 |UNUSED | |1 | | | | | | | | | +|A14 | |DIFFS |IO_L01N_1/VRP_1 |UNUSED | |1 | | | | | | | | | +|A15 | | |TDO | | | | | | | | | | | | +|A16 | | |GND | | | | | | | | | | | | +|B1 | |DIFFM |IO_L01P_7/VRN_7 |UNUSED | |7 | | | | | | | | | +|B2 | | |GND | | | | | | | | | | | | +|B3 | | |PROG_B | | | | | | | | | | | | +|B4 | |DIFFS |IO_L01N_0/VRP_0 |UNUSED | |0 | | | | | | | | | +|B5 | |DIFFM |IO_L25P_0 |UNUSED | |0 | | | | | | | | | +|B6 | |DIFFM |IO_L28P_0 |UNUSED | |0 | | | | | | | | | +|B7 | |DIFFM |IO_L30P_0 |UNUSED | |0 | | | | | | | | | +|B8 | |DIFFS |IO_L32N_0/GCLK7 |UNUSED | |0 | | | | | | | | | +|B9 | | |GND | | | | | | | | | | | | +|B10 | |DIFFM |IO_L31P_1 |UNUSED | |1 | | | | | | | | | +|B11 | |DIFFS |IO_L29N_1 |UNUSED | |1 | | | | | | | | | +|B12 | |DIFFS |IO_L27N_1 |UNUSED | |1 | | | | | | | | | +|B13 | |DIFFM |IO_L10P_1 |UNUSED | |1 | | | | | | | | | +|B14 | |DIFFM |IO_L01P_1/VRN_1 |UNUSED | |1 | | | | | | | | | +|B15 | | |GND | | | | | | | | | | | | +|B16 | |DIFFS |IO_L01N_2/VRP_2 |UNUSED | |2 | | | | | | | | | +|C1 | |DIFFS |IO_L01N_7/VRP_7 |UNUSED | |7 | | | | | | | | | +|C2 | |DIFFS |IO_L16N_7 |UNUSED | |7 | | | | | | | | | +|C3 | |DIFFM |IO_L16P_7/VREF_7 |UNUSED | |7 | | | | | | | | | +|C4 | | |HSWAP_EN | | | | | | | | | | | | +|C5 | |DIFFS |IO_L25N_0 |UNUSED | |0 | | | | | | | | | +|C6 | |DIFFS |IO_L28N_0 |UNUSED | |0 | | | | | | | | | +|C7 | |DIFFS |IO_L30N_0 |UNUSED | |0 | | | | | | | | | +|C8 | |DIFFM |IO_L31P_0/VREF_0 |UNUSED | |0 | | | | | | | | | +|C9 | |DIFFS |IO_L32N_1/GCLK5 |UNUSED | |1 | | | | | | | | | +|C10 | |IOB |IO |UNUSED | |1 | | | | | | | | | +|C11 | |DIFFM |IO_L29P_1 |UNUSED | |1 | | | | | | | | | +|C12 | |DIFFM |IO_L27P_1 |UNUSED | |1 | | | | | | | | | +|C13 | | |TMS | | | | | | | | | | | | +|C14 | | |TCK | | | | | | | | | | | | +|C15 | |DIFFS |IO_L16N_2 |UNUSED | |2 | | | | | | | | | +|C16 | |DIFFM |IO_L01P_2/VRN_2 |UNUSED | |2 | | | | | | | | | +|D1 | |DIFFS |IO_L17N_7 |UNUSED | |7 | | | | | | | | | +|D2 | |DIFFM |IO_L17P_7 |UNUSED | |7 | | | | | | | | | +|D3 | |DIFFM |IO_L19P_7 |UNUSED | |7 | | | | | | | | | +|D4 | | |VCCINT | | | | | | | |1.2 | | | | +|D5 | |IOB |IO/VREF_0 |UNUSED | |0 | | | | | | | | | +|D6 | |DIFFM |IO_L27P_0 |UNUSED | |0 | | | | | | | | | +|D7 | |DIFFM |IO_L29P_0 |UNUSED | |0 | | | | | | | | | +|D8 | |DIFFS |IO_L31N_0 |UNUSED | |0 | | | | | | | | | +|D9 | |DIFFM |IO_L32P_1/GCLK4 |UNUSED | |1 | | | | | | | | | +|D10 | |DIFFS |IO_L30N_1 |UNUSED | |1 | | | | | | | | | +|D11 | |DIFFS |IO_L28N_1 |UNUSED | |1 | | | | | | | | | +|D12 | |IOB |IO/VREF_1 |UNUSED | |1 | | | | | | | | | +|D13 | | |VCCINT | | | | | | | |1.2 | | | | +|D14 |Enables<3> |IOB |IO_L16P_2 |OUTPUT |LVCMOS25* |2 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|D15 | |DIFFS |IO_L17N_2 |UNUSED | |2 | | | | | | | | | +|D16 | |DIFFM |IO_L17P_2/VREF_2 |UNUSED | |2 | | | | | | | | | +|E1 | |DIFFS |IO_L20N_7 |UNUSED | |7 | | | | | | | | | +|E2 | |DIFFM |IO_L20P_7 |UNUSED | |7 | | | | | | | | | +|E3 | |DIFFS |IO_L19N_7/VREF_7 |UNUSED | |7 | | | | | | | | | +|E4 | |DIFFM |IO_L21P_7 |UNUSED | |7 | | | | | | | | | +|E5 | | |VCCINT | | | | | | | |1.2 | | | | +|E6 | |DIFFS |IO_L27N_0 |UNUSED | |0 | | | | | | | | | +|E7 | |DIFFS |IO_L29N_0 |UNUSED | |0 | | | | | | | | | +|E8 | | |VCCO_0 | | |0 | | | | |any******| | | | +|E9 | | |VCCO_1 | | |1 | | | | |any******| | | | +|E10 | |DIFFM |IO_L30P_1 |UNUSED | |1 | | | | | | | | | +|E11 | |DIFFM |IO_L28P_1 |UNUSED | |1 | | | | | | | | | +|E12 | | |VCCINT | | | | | | | |1.2 | | | | +|E13 |Enables<0> |IOB |IO_L19N_2 |OUTPUT |LVCMOS25* |2 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|E14 |Segments<0>|IOB |IO_L19P_2 |OUTPUT |LVCMOS25* |2 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|E15 | |DIFFS |IO_L20N_2 |UNUSED | |2 | | | | | | | | | +|E16 | |DIFFM |IO_L20P_2 |UNUSED | |2 | | | | | | | | | +|F1 | | |VCCAUX | | | | | | | |2.5 | | | | +|F2 | |DIFFS |IO_L22N_7 |UNUSED | |7 | | | | | | | | | +|F3 | |DIFFM |IO_L22P_7 |UNUSED | |7 | | | | | | | | | +|F4 | |DIFFS |IO_L21N_7 |UNUSED | |7 | | | | | | | | | +|F5 | |DIFFM |IO_L23P_7 |UNUSED | |7 | | | | | | | | | +|F6 | | |GND | | | | | | | | | | | | +|F7 | | |VCCO_0 | | |0 | | | | |any******| | | | +|F8 | | |VCCO_0 | | |0 | | | | |any******| | | | +|F9 | | |VCCO_1 | | |1 | | | | |any******| | | | +|F10 | | |VCCO_1 | | |1 | | | | |any******| | | | +|F11 | | |GND | | | | | | | | | | | | +|F12 | |DIFFS |IO_L21N_2 |UNUSED | |2 | | | | | | | | | +|F13 |Segments<5>|IOB |IO_L21P_2 |OUTPUT |LVCMOS25* |2 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|F14 |Enables<1> |IOB |IO_L22N_2 |OUTPUT |LVCMOS25* |2 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|F15 | |DIFFM |IO_L22P_2 |UNUSED | |2 | | | | | | | | | +|F16 | | |VCCAUX | | | | | | | |2.5 | | | | +|G1 | |DIFFM |IO_L40P_7 |UNUSED | |7 | | | | | | | | | +|G2 | |DIFFS |IO |UNUSED | |7 | | | | | | | | | +|G3 | |DIFFS |IO_L24N_7 |UNUSED | |7 | | | | | | | | | +|G4 | |DIFFM |IO_L24P_7 |UNUSED | |7 | | | | | | | | | +|G5 | |DIFFS |IO_L23N_7 |UNUSED | |7 | | | | | | | | | +|G6 | | |VCCO_7 | | |7 | | | | |any******| | | | +|G7 | | |GND | | | | | | | | | | | | +|G8 | | |GND | | | | | | | | | | | | +|G9 | | |GND | | | | | | | | | | | | +|G10 | | |GND | | | | | | | | | | | | +|G11 | | |VCCO_2 | | |2 | | | | |2.50 | | | | +|G12 | |DIFFS |IO_L23N_2/VREF_2 |UNUSED | |2 | | | | | | | | | +|G13 |Segments<1>|IOB |IO_L23P_2 |OUTPUT |LVCMOS25* |2 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|G14 |Enables<2> |IOB |IO_L24N_2 |OUTPUT |LVCMOS25* |2 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|G15 | |DIFFM |IO_L24P_2 |UNUSED | |2 | | | | | | | | | +|G16 | |DIFFM |IO |UNUSED | |2 | | | | | | | | | +|H1 | |DIFFS |IO_L40N_7/VREF_7 |UNUSED | |7 | | | | | | | | | +|H2 | | |GND | | | | | | | | | | | | +|H3 | |DIFFS |IO_L39N_7 |UNUSED | |7 | | | | | | | | | +|H4 | |DIFFM |IO_L39P_7 |UNUSED | |7 | | | | | | | | | +|H5 | | |VCCO_7 | | |7 | | | | |any******| | | | +|H6 | | |VCCO_7 | | |7 | | | | |any******| | | | +|H7 | | |GND | | | | | | | | | | | | +|H8 | | |GND | | | | | | | | | | | | +|H9 | | |GND | | | | | | | | | | | | +|H10 | | |GND | | | | | | | | | | | | +|H11 | | |VCCO_2 | | |2 | | | | |2.50 | | | | +|H12 | | |VCCO_2 | | |2 | | | | |2.50 | | | | +|H13 | |DIFFS |IO_L39N_2 |UNUSED | |2 | | | | | | | | | +|H14 | |DIFFM |IO_L39P_2 |UNUSED | |2 | | | | | | | | | +|H15 | |DIFFS |IO_L40N_2 |UNUSED | |2 | | | | | | | | | +|H16 |Segments<7>|IOB |IO_L40P_2/VREF_2 |OUTPUT |LVCMOS25* |2 |12 |SLOW |NONE** | | |UNLOCATED |NO |NONE | +|J1 | |DIFFM |IO_L40P_6/VREF_6 |UNUSED | |6 | | | | | | | | | +|J2 | |DIFFS |IO_L40N_6 |UNUSED | |6 | | | | | | | | | +|J3 | |DIFFM |IO_L39P_6 |UNUSED | |6 | | | | | | | | | +|J4 | |DIFFS |IO_L39N_6 |UNUSED | |6 | | | | | | | | | +|J5 | | |VCCO_6 | | |6 | | | | |any******| | | | +|J6 | | |VCCO_6 | | |6 | | | | |any******| | | | +|J7 | | |GND | | | | | | | | | | | | +|J8 | | |GND | | | | | | | | | | | | +|J9 | | |GND | | | | | | | | | | | | +|J10 | | |GND | | | | | | | | | | | | +|J11 | | |VCCO_3 | | |3 | | | | |2.50 | | | | +|J12 | | |VCCO_3 | | |3 | | | | |2.50 | | | | +|J13 | |DIFFM |IO_L39P_3 |UNUSED | |3 | | | | | | | | | +|J14 | |DIFFS |IO_L39N_3 |UNUSED | |3 | | | | | | | | | +|J15 | | |GND | | | | | | | | | | | | +|J16 | |DIFFS |IO_L40N_3/VREF_3 |UNUSED | |3 | | | | | | | | | +|K1 | |DIFFM |IO |UNUSED | |6 | | | | | | | | | +|K2 | |DIFFM |IO_L24P_6 |UNUSED | |6 | | | | | | | | | +|K3 | |DIFFS |IO_L24N_6/VREF_6 |UNUSED | |6 | | | | | | | | | +|K4 | |DIFFM |IO_L23P_6 |UNUSED | |6 | | | | | | | | | +|K5 | |DIFFS |IO_L23N_6 |UNUSED | |6 | | | | | | | | | +|K6 | | |VCCO_6 | | |6 | | | | |any******| | | | +|K7 | | |GND | | | | | | | | | | | | +|K8 | | |GND | | | | | | | | | | | | +|K9 | | |GND | | | | | | | | | | | | +|K10 | | |GND | | | | | | | | | | | | +|K11 | | |VCCO_3 | | |3 | | | | |2.50 | | | | +|K12 |pressed<0> |IOB |IO_L23N_3 |OUTPUT |LVCMOS25* |3 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|K13 | |DIFFM |IO_L24P_3 |UNUSED | |3 | | | | | | | | | +|K14 | |DIFFS |IO_L24N_3 |UNUSED | |3 | | | | | | | | | +|K15 | |DIFFS |IO |UNUSED | |3 | | | | | | | | | +|K16 | |DIFFM |IO_L40P_3 |UNUSED | |3 | | | | | | | | | +|L1 | | |VCCAUX | | | | | | | |2.5 | | | | +|L2 | |DIFFM |IO_L22P_6 |UNUSED | |6 | | | | | | | | | +|L3 | |DIFFS |IO_L22N_6 |UNUSED | |6 | | | | | | | | | +|L4 | |DIFFM |IO_L21P_6 |UNUSED | |6 | | | | | | | | | +|L5 | |DIFFS |IO_L21N_6 |UNUSED | |6 | | | | | | | | | +|L6 | | |GND | | | | | | | | | | | | +|L7 | | |VCCO_5 | | |5 | | | | |any******| | | | +|L8 | | |VCCO_5 | | |5 | | | | |any******| | | | +|L9 | | |VCCO_4 | | |4 | | | | |2.50 | | | | +|L10 | | |VCCO_4 | | |4 | | | | |2.50 | | | | +|L11 | | |GND | | | | | | | | | | | | +|L12 |pressed<2> |IOB |IO_L23P_3/VREF_3 |OUTPUT |LVCMOS25* |3 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|L13 | |DIFFS |IO_L21N_3 |UNUSED | |3 | | | | | | | | | +|L14 | |DIFFM |IO_L22P_3 |UNUSED | |3 | | | | | | | | | +|L15 | |DIFFS |IO_L22N_3 |UNUSED | |3 | | | | | | | | | +|L16 | | |VCCAUX | | | | | | | |2.5 | | | | +|M1 | |DIFFM |IO_L20P_6 |UNUSED | |6 | | | | | | | | | +|M2 | |DIFFS |IO_L20N_6 |UNUSED | |6 | | | | | | | | | +|M3 | |DIFFM |IO_L19P_6 |UNUSED | |6 | | | | | | | | | +|M4 | |DIFFS |IO_L19N_6 |UNUSED | |6 | | | | | | | | | +|M5 | | |VCCINT | | | | | | | |1.2 | | | | +|M6 | |DIFFM |IO_L28P_5/D7 |UNUSED | |5 | | | | | | | | | +|M7 | |DIFFM |IO_L30P_5 |UNUSED | |5 | | | | | | | | | +|M8 | | |VCCO_5 | | |5 | | | | |any******| | | | +|M9 | | |VCCO_4 | | |4 | | | | |2.50 | | | | +|M10 | |DIFFS |IO_L29N_4 |UNUSED | |4 | | | | | | | | | +|M11 | |DIFFS |IO_L27N_4/DIN/D0 |UNUSED | |4 | | | | | | | | | +|M12 | | |VCCINT | | | | | | | |1.2 | | | | +|M13 | |DIFFM |IO_L21P_3 |UNUSED | |3 | | | | | | | | | +|M14 | |DIFFS |IO_L19N_3 |UNUSED | |3 | | | | | | | | | +|M15 |DataIn |IOB |IO_L20P_3 |INPUT |LVCMOS25* |3 | | | |NONE | |LOCATED |NO |NONE | +|M16 |Clk |IOB |IO_L20N_3 |INPUT |LVCMOS25* |3 | | | |NONE | |LOCATED |NO |NONE | +|N1 | |DIFFM |IO_L17P_6/VREF_6 |UNUSED | |6 | | | | | | | | | +|N2 | |DIFFS |IO_L17N_6 |UNUSED | |6 | | | | | | | | | +|N3 | |DIFFM |IO_L16P_6 |UNUSED | |6 | | | | | | | | | +|N4 | | |VCCINT | | | | | | | |1.2 | | | | +|N5 | |IOB |IO |UNUSED | |5 | | | | | | | | | +|N6 | |DIFFS |IO_L28N_5/D6 |UNUSED | |5 | | | | | | | | | +|N7 | |DIFFS |IO_L30N_5 |UNUSED | |5 | | | | | | | | | +|N8 | |DIFFM |IO_L32P_5/GCLK2 |UNUSED | |5 | | | | | | | | | +|N9 | |DIFFS |IO_L31N_4/INIT_B |UNUSED | |4 | | | | | | | | | +|N10 | |DIFFM |IO_L29P_4 |UNUSED | |4 | | | | | | | | | +|N11 | |DIFFM |IO_L27P_4/D1 |UNUSED | |4 | | | | | | | | | +|N12 |pressed<5> |IOB |IO/VREF_4 |OUTPUT |LVCMOS25* |4 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|N13 | | |VCCINT | | | | | | | |1.2 | | | | +|N14 |pressed<3> |IOB |IO_L19P_3 |OUTPUT |LVCMOS25* |3 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|N15 |Segments<2>|IOB |IO_L17P_3/VREF_3 |OUTPUT |LVCMOS25* |3 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|N16 |Segments<6>|IOB |IO_L17N_3 |OUTPUT |LVCMOS25* |3 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|P1 | |DIFFM |IO_L01P_6/VRN_6 |UNUSED | |6 | | | | | | | | | +|P2 | |DIFFS |IO_L16N_6 |UNUSED | |6 | | | | | | | | | +|P3 | | |M0 | | | | | | | | | | | | +|P4 | | |M2 | | | | | | | | | | | | +|P5 | |DIFFM |IO_L27P_5 |UNUSED | |5 | | | | | | | | | +|P6 | |DIFFM |IO_L29P_5/VREF_5 |UNUSED | |5 | | | | | | | | | +|P7 | |IOB |IO |UNUSED | |5 | | | | | | | | | +|P8 | |DIFFS |IO_L32N_5/GCLK3 |UNUSED | |5 | | | | | | | | | +|P9 | |DIFFM |IO_L31P_4/DOUT/BUSY|UNUSED | |4 | | | | | | | | | +|P10 | |DIFFS |IO_L30N_4/D2 |UNUSED | |4 | | | | | | | | | +|P11 |pressed<7> |IOB |IO_L28N_4 |OUTPUT |LVCMOS25* |4 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|P12 |pressed<6> |IOB |IO_L25N_4 |OUTPUT |LVCMOS25* |4 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|P13 |pressed<4> |IOB |IO/VREF_4 |OUTPUT |LVCMOS25* |4 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|P14 |pressed<1> |IOB |IO_L16P_3 |OUTPUT |LVCMOS25* |3 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|P15 |Segments<3>|IOB |IO_L16N_3 |OUTPUT |LVCMOS25* |3 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|P16 | |DIFFS |IO_L01N_3/VRP_3 |UNUSED | |3 | | | | | | | | | +|R1 | |DIFFS |IO_L01N_6/VRP_6 |UNUSED | |6 | | | | | | | | | +|R2 | | |GND | | | | | | | | | | | | +|R3 | |DIFFM |IO_L01P_5/CS_B |UNUSED | |5 | | | | | | | | | +|R4 | |DIFFM |IO_L10P_5/VRN_5 |UNUSED | |5 | | | | | | | | | +|R5 | |DIFFS |IO_L27N_5/VREF_5 |UNUSED | |5 | | | | | | | | | +|R6 | |DIFFS |IO_L29N_5 |UNUSED | |5 | | | | | | | | | +|R7 | |DIFFM |IO_L31P_5/D5 |UNUSED | |5 | | | | | | | | | +|R8 | | |GND | | | | | | | | | | | | +|R9 | |DIFFS |IO_L32N_4/GCLK1 |UNUSED | |4 | | | | | | | | | +|R10 | |DIFFM |IO_L30P_4/D3 |UNUSED | |4 | | | | | | | | | +|R11 | |DIFFM |IO_L28P_4 |UNUSED | |4 | | | | | | | | | +|R12 | |DIFFM |IO_L25P_4 |UNUSED | |4 | | | | | | | | | +|R13 | |DIFFS |IO_L01N_4/VRP_4 |UNUSED | |4 | | | | | | | | | +|R14 | | |DONE | | | | | | | | | | | | +|R15 | | |GND | | | | | | | | | | | | +|R16 |Segments<4>|IOB |IO_L01P_3/VRN_3 |OUTPUT |LVCMOS25* |3 |12 |SLOW |NONE** | | |LOCATED |NO |NONE | +|T1 | | |GND | | | | | | | | | | | | +|T2 | | |M1 | | | | | | | | | | | | +|T3 | |DIFFS |IO_L01N_5/RDWR_B |UNUSED | |5 | | | | | | | | | +|T4 | |DIFFS |IO_L10N_5/VRP_5 |UNUSED | |5 | | | | | | | | | +|T5 | |IOB |IO |UNUSED | |5 | | | | | | | | | +|T6 | | |VCCAUX | | | | | | | |2.5 | | | | +|T7 | |DIFFS |IO_L31N_5/D4 |UNUSED | |5 | | | | | | | | | +|T8 | |IOB |IO/VREF_5 |UNUSED | |5 | | | | | | | | | +|T9 |Clk2 |IOB |IO_L32P_4/GCLK0 |INPUT |LVCMOS25* |4 | | | |NONE | |LOCATED |NO |NONE | +|T10 | |IOB |IO/VREF_4 |UNUSED | |4 | | | | | | | | | +|T11 | | |VCCAUX | | | | | | | |2.5 | | | | +|T12 | |IOB |IO |UNUSED | |4 | | | | | | | | | +|T13 | |DIFFM |IO_L01P_4/VRN_4 |UNUSED | |4 | | | | | | | | | +|T14 | |DIFFS |IO |UNUSED | |4 | | | | | | | | | +|T15 | | |CCLK | | | | | | | | | | | | +|T16 | | |GND | | | | | | | | | | | | ++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +* Default value. +** This default Pullup/Pulldown value can be overridden in Bitgen. +****** Special VCCO requirements may apply. Please consult the device + family datasheet for specific guideline on VCCO requirements. + + Index: ps2_keyboard_interface/iseconfig/Keyboard_Controller.xreport =================================================================== --- ps2_keyboard_interface/iseconfig/Keyboard_Controller.xreport (nonexistent) +++ ps2_keyboard_interface/iseconfig/Keyboard_Controller.xreport (revision 2) @@ -0,0 +1,217 @@ + + +
+ 2010-12-02T22:57:52 + Keyboard_Controller + 2010-12-02T22:47:59 + /home/omar/MyOpenCores/Keyboard_Controller/iseconfig/Keyboard_Controller.xreport + /home/omar/MyOpenCores/Keyboard_Controller/ + 2010-12-02T22:19:25 + false +
+ + + + + + + + + + + + + + + + + + + + + + + +
Index: ps2_keyboard_interface/SevenSegment.cmd_log =================================================================== --- ps2_keyboard_interface/SevenSegment.cmd_log (nonexistent) +++ ps2_keyboard_interface/SevenSegment.cmd_log (revision 2) @@ -0,0 +1 @@ +vhdtdtfi -prj Keyboard_Controller -o /home/omar/MyOpenCores/Keyboard_Controller/SevenSegment.vhi -lib work /home/omar/Mano/Mano//SevenSegment.vhd -module SevenSegment -template /home/omar/ISE_DS/ISE//data/vhdlinst.tft -deleteonerror Index: ps2_keyboard_interface/Keyboard_Controller.cmd_log =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.cmd_log (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.cmd_log (revision 2) @@ -0,0 +1,72 @@ +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +ngdbuild -intstyle ise -dd _ngo -nt timestamp -i -p xc3s200-ft256-5 Keyboard_Controller.ngc Keyboard_Controller.ngd +map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o Keyboard_Controller_map.ncd Keyboard_Controller.ngd Keyboard_Controller.pcf +par -w -intstyle ise -ol high -t 1 Keyboard_Controller_map.ncd Keyboard_Controller.ncd Keyboard_Controller.pcf +trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml Keyboard_Controller.twx Keyboard_Controller.ncd -o Keyboard_Controller.twr Keyboard_Controller.pcf +bitgen -intstyle ise -f Keyboard_Controller.ut Keyboard_Controller.ncd +ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc Keyboard_Controller.ucf -p xc3s200-ft256-5 Keyboard_Controller.ngc Keyboard_Controller.ngd +map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o Keyboard_Controller_map.ncd Keyboard_Controller.ngd Keyboard_Controller.pcf +par -w -intstyle ise -ol high -t 1 Keyboard_Controller_map.ncd Keyboard_Controller.ncd Keyboard_Controller.pcf +trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml Keyboard_Controller.twx Keyboard_Controller.ncd -o Keyboard_Controller.twr Keyboard_Controller.pcf -ucf Keyboard_Controller.ucf +bitgen -intstyle ise -f Keyboard_Controller.ut Keyboard_Controller.ncd +ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc Keyboard_Controller.ucf -p xc3s200-ft256-5 Keyboard_Controller.ngc Keyboard_Controller.ngd +map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o Keyboard_Controller_map.ncd Keyboard_Controller.ngd Keyboard_Controller.pcf +par -w -intstyle ise -ol high -t 1 Keyboard_Controller_map.ncd Keyboard_Controller.ncd Keyboard_Controller.pcf +trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml Keyboard_Controller.twx Keyboard_Controller.ncd -o Keyboard_Controller.twr Keyboard_Controller.pcf -ucf Keyboard_Controller.ucf +bitgen -intstyle ise -f Keyboard_Controller.ut Keyboard_Controller.ncd +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc Keyboard_Controller.ucf -p xc3s200-ft256-5 Keyboard_Controller.ngc Keyboard_Controller.ngd +map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o Keyboard_Controller_map.ncd Keyboard_Controller.ngd Keyboard_Controller.pcf +par -w -intstyle ise -ol high -t 1 Keyboard_Controller_map.ncd Keyboard_Controller.ncd Keyboard_Controller.pcf +trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml Keyboard_Controller.twx Keyboard_Controller.ncd -o Keyboard_Controller.twr Keyboard_Controller.pcf -ucf Keyboard_Controller.ucf +bitgen -intstyle ise -f Keyboard_Controller.ut Keyboard_Controller.ncd +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc Keyboard_Controller.ucf -p xc3s200-ft256-5 Keyboard_Controller.ngc Keyboard_Controller.ngd +map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o Keyboard_Controller_map.ncd Keyboard_Controller.ngd Keyboard_Controller.pcf +par -w -intstyle ise -ol high -t 1 Keyboard_Controller_map.ncd Keyboard_Controller.ncd Keyboard_Controller.pcf +trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml Keyboard_Controller.twx Keyboard_Controller.ncd -o Keyboard_Controller.twr Keyboard_Controller.pcf -ucf Keyboard_Controller.ucf +bitgen -intstyle ise -f Keyboard_Controller.ut Keyboard_Controller.ncd +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc Keyboard_Controller.ucf -p xc3s200-ft256-5 Keyboard_Controller.ngc Keyboard_Controller.ngd +map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o Keyboard_Controller_map.ncd Keyboard_Controller.ngd Keyboard_Controller.pcf +par -w -intstyle ise -ol high -t 1 Keyboard_Controller_map.ncd Keyboard_Controller.ncd Keyboard_Controller.pcf +trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml Keyboard_Controller.twx Keyboard_Controller.ncd -o Keyboard_Controller.twr Keyboard_Controller.pcf -ucf Keyboard_Controller.ucf +bitgen -intstyle ise -f Keyboard_Controller.ut Keyboard_Controller.ncd +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc Keyboard_Controller.ucf -p xc3s200-ft256-5 Keyboard_Controller.ngc Keyboard_Controller.ngd +map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o Keyboard_Controller_map.ncd Keyboard_Controller.ngd Keyboard_Controller.pcf +par -w -intstyle ise -ol high -t 1 Keyboard_Controller_map.ncd Keyboard_Controller.ncd Keyboard_Controller.pcf +trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml Keyboard_Controller.twx Keyboard_Controller.ncd -o Keyboard_Controller.twr Keyboard_Controller.pcf -ucf Keyboard_Controller.ucf +bitgen -intstyle ise -f Keyboard_Controller.ut Keyboard_Controller.ncd +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc Keyboard_Controller.ucf -p xc3s200-ft256-5 Keyboard_Controller.ngc Keyboard_Controller.ngd +map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o Keyboard_Controller_map.ncd Keyboard_Controller.ngd Keyboard_Controller.pcf +par -w -intstyle ise -ol high -t 1 Keyboard_Controller_map.ncd Keyboard_Controller.ncd Keyboard_Controller.pcf +trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml Keyboard_Controller.twx Keyboard_Controller.ncd -o Keyboard_Controller.twr Keyboard_Controller.pcf -ucf Keyboard_Controller.ucf +bitgen -intstyle ise -f Keyboard_Controller.ut Keyboard_Controller.ncd +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc Keyboard_Controller.ucf -p xc3s200-ft256-5 Keyboard_Controller.ngc Keyboard_Controller.ngd +map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o Keyboard_Controller_map.ncd Keyboard_Controller.ngd Keyboard_Controller.pcf +par -w -intstyle ise -ol high -t 1 Keyboard_Controller_map.ncd Keyboard_Controller.ncd Keyboard_Controller.pcf +trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml Keyboard_Controller.twx Keyboard_Controller.ncd -o Keyboard_Controller.twr Keyboard_Controller.pcf -ucf Keyboard_Controller.ucf +bitgen -intstyle ise -f Keyboard_Controller.ut Keyboard_Controller.ncd +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc Keyboard_Controller.ucf -p xc3s200-ft256-5 Keyboard_Controller.ngc Keyboard_Controller.ngd +map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o Keyboard_Controller_map.ncd Keyboard_Controller.ngd Keyboard_Controller.pcf +par -w -intstyle ise -ol high -t 1 Keyboard_Controller_map.ncd Keyboard_Controller.ncd Keyboard_Controller.pcf +trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml Keyboard_Controller.twx Keyboard_Controller.ncd -o Keyboard_Controller.twr Keyboard_Controller.pcf -ucf Keyboard_Controller.ucf +bitgen -intstyle ise -f Keyboard_Controller.ut Keyboard_Controller.ncd +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +xst -intstyle ise -ifn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.xst" -ofn "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.syr" +ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc Keyboard_Controller.ucf -p xc3s200-ft256-5 Keyboard_Controller.ngc Keyboard_Controller.ngd +map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o Keyboard_Controller_map.ncd Keyboard_Controller.ngd Keyboard_Controller.pcf +par -w -intstyle ise -ol high -t 1 Keyboard_Controller_map.ncd Keyboard_Controller.ncd Keyboard_Controller.pcf +trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml Keyboard_Controller.twx Keyboard_Controller.ncd -o Keyboard_Controller.twr Keyboard_Controller.pcf -ucf Keyboard_Controller.ucf +bitgen -intstyle ise -f Keyboard_Controller.ut Keyboard_Controller.ncd Index: ps2_keyboard_interface/webtalk.log =================================================================== --- ps2_keyboard_interface/webtalk.log (nonexistent) +++ ps2_keyboard_interface/webtalk.log (revision 2) @@ -0,0 +1,16 @@ +Release 12.3 - WebTalk (M.70d) +Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. + +Project Information +-------------------- +ProjectID=3B4FE3E2530F3D173AEA023E56D4E7AC +ProjectIteration=11 + +WebTalk Summary +---------------- +INFO:WebTalk:2 - WebTalk is enabled. + +INFO:WebTalk:8 - WebTalk Install setting is ON. +INFO:WebTalk:6 - WebTalk User setting is ON. + +INFO:WebTalk:5 - /home/omar/MyOpenCores/Keyboard_Controller/usage_statistics_webtalk.html WebTalk report has not been sent to Xilinx. Please check your network and proxy settings. For additional details about this file, please refer to the WebTalk help file at /home/omar/ISE_DS/ISE/data/reports/webtalk_introduction.html Index: ps2_keyboard_interface/Keyboard_Controller.drc =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.drc (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.drc (revision 2) @@ -0,0 +1,8 @@ +Release 12.3 Drc M.70d (lin64) +Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. + +Fri Dec 3 00:08:34 2010 + +drc -z Keyboard_Controller.ncd Keyboard_Controller.pcf + +DRC detected 0 errors and 0 warnings. Index: ps2_keyboard_interface/Keyboard_Controller_map.map =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_map.map (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_map.map (revision 2) @@ -0,0 +1,71 @@ +Release 12.3 Map M.70d (lin64) +Xilinx Map Application Log File for Design 'Keyboard_Controller' + +Design Information +------------------ +Command Line : map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off +-c 100 -o Keyboard_Controller_map.ncd Keyboard_Controller.ngd +Keyboard_Controller.pcf +Target Device : xc3s200 +Target Package : ft256 +Target Speed : -5 +Mapper Version : spartan3 -- $Revision: 1.52 $ +Mapped Date : Fri Dec 3 00:08:20 2010 + +Mapping design into LUTs... +Running directed packing... +Running delay-based LUT packing... +Running related packing... +Updating timing models... + +Design Summary +-------------- + +Design Summary: +Number of errors: 0 +Number of warnings: 0 +Logic Utilization: + Number of Slice Flip Flops: 58 out of 3,840 1% + Number of 4 input LUTs: 32 out of 3,840 1% +Logic Distribution: + Number of occupied Slices: 42 out of 1,920 2% + Number of Slices containing only related logic: 42 out of 42 100% + Number of Slices containing unrelated logic: 0 out of 42 0% + *See NOTES below for an explanation of the effects of unrelated logic. + Total Number of 4 input LUTs: 51 out of 3,840 1% + Number used as logic: 30 + Number used as a route-thru: 19 + Number used as Shift registers: 2 + + The Slice Logic Distribution report is not meaningful if the design is + over-mapped for a non-slice resource or if Placement fails. + + Number of bonded IOBs: 23 out of 173 13% + Number of BUFGMUXs: 2 out of 8 25% + +Average Fanout of Non-Clock Nets: 2.32 + +Peak Memory Usage: 336 MB +Total REAL time to MAP completion: 1 secs +Total CPU time to MAP completion: 1 secs + +NOTES: + + Related logic is defined as being logic that shares connectivity - e.g. two + LUTs are "related" if they share common inputs. When assembling slices, + Map gives priority to combine logic that is related. Doing so results in + the best timing performance. + + Unrelated logic shares no connectivity. Map will only begin packing + unrelated logic into a slice once 99% of the slices are occupied through + related logic packing. + + Note that once logic distribution reaches the 99% level through related + logic packing, this does not mean the device is completely utilized. + Unrelated logic packing will then begin, continuing until all usable LUTs + and FFs are occupied. Depending on your timing budget, increased levels of + unrelated logic packing may adversely affect the overall timing performance + of your design. + +Mapping completed. +See MAP report file "Keyboard_Controller_map.mrp" for details. Index: ps2_keyboard_interface/Keyboard_Controller.twr =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.twr (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.twr (revision 2) @@ -0,0 +1,117 @@ +-------------------------------------------------------------------------------- +Release 12.3 Trace (lin64) +Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. + +/home/omar/ISE_DS/ISE/bin/lin64/unwrapped/trce -intstyle ise -v 3 -s 5 -n 3 +-fastpaths -xml Keyboard_Controller.twx Keyboard_Controller.ncd -o +Keyboard_Controller.twr Keyboard_Controller.pcf -ucf Keyboard_Controller.ucf + +Design file: Keyboard_Controller.ncd +Physical constraint file: Keyboard_Controller.pcf +Device,package,speed: xc3s200,ft256,-5 (PRODUCTION 1.39 2010-09-15) +Report level: verbose report + +Environment Variable Effect +-------------------- ------ +NONE No environment variables were set +-------------------------------------------------------------------------------- + +INFO:Timing:2698 - No timing constraints found, doing default enumeration. +INFO:Timing:2752 - To get complete path coverage, use the unconstrained paths + option. All paths that are not constrained will be reported in the + unconstrained paths section(s) of the report. +INFO:Timing:3339 - The clock-to-out numbers in this timing report are based on + a 50 Ohm transmission line loading model. For the details of this model, + and for more information on accounting for different loading conditions, + please see the device datasheet. +INFO:Timing:3390 - This architecture does not support a default System Jitter + value, please add SYSTEM_JITTER constraint to the UCF to modify the Clock + Uncertainty calculation. +INFO:Timing:3389 - This architecture does not support 'Discrete Jitter' and + 'Phase Error' calculations, these terms will be zero in the Clock + Uncertainty calculation. Please make appropriate modification to + SYSTEM_JITTER to account for the unsupported Discrete Jitter and Phase + Error. + + + +Data Sheet report: +----------------- +All values displayed in nanoseconds (ns) + +Setup/Hold to clock Clk +------------+------------+------------+------------------+--------+ + |Max Setup to|Max Hold to | | Clock | +Source | clk (edge) | clk (edge) |Internal Clock(s) | Phase | +------------+------------+------------+------------------+--------+ +DataIn | -1.282(F)| 2.962(F)|Clk_BUFGP | 0.000| +------------+------------+------------+------------------+--------+ + +Clock Clk to Pad +------------+------------+------------------+--------+ + | clk (edge) | | Clock | +Destination | to PAD |Internal Clock(s) | Phase | +------------+------------+------------------+--------+ +Segments<0> | 15.527(F)|Clk_BUFGP | 0.000| +Segments<1> | 15.547(F)|Clk_BUFGP | 0.000| +Segments<2> | 14.902(F)|Clk_BUFGP | 0.000| +Segments<3> | 14.832(F)|Clk_BUFGP | 0.000| +Segments<4> | 14.881(F)|Clk_BUFGP | 0.000| +Segments<5> | 15.667(F)|Clk_BUFGP | 0.000| +Segments<6> | 14.621(F)|Clk_BUFGP | 0.000| +pressed<0> | 11.811(F)|Clk_BUFGP | 0.000| +pressed<1> | 10.757(F)|Clk_BUFGP | 0.000| +pressed<2> | 11.797(F)|Clk_BUFGP | 0.000| +pressed<3> | 11.135(F)|Clk_BUFGP | 0.000| +pressed<4> | 11.133(F)|Clk_BUFGP | 0.000| +pressed<5> | 10.677(F)|Clk_BUFGP | 0.000| +pressed<6> | 10.652(F)|Clk_BUFGP | 0.000| +pressed<7> | 10.781(F)|Clk_BUFGP | 0.000| +------------+------------+------------------+--------+ + +Clock Clk2 to Pad +------------+------------+------------------+--------+ + | clk (edge) | | Clock | +Destination | to PAD |Internal Clock(s) | Phase | +------------+------------+------------------+--------+ +Enables<0> | 10.006(R)|Clk2_BUFGP | 0.000| +Enables<1> | 9.793(R)|Clk2_BUFGP | 0.000| +Enables<2> | 9.495(R)|Clk2_BUFGP | 0.000| +Enables<3> | 10.361(R)|Clk2_BUFGP | 0.000| +Segments<0> | 12.189(R)|Clk2_BUFGP | 0.000| +Segments<1> | 12.586(R)|Clk2_BUFGP | 0.000| +Segments<2> | 11.867(R)|Clk2_BUFGP | 0.000| +Segments<3> | 11.528(R)|Clk2_BUFGP | 0.000| +Segments<4> | 11.497(R)|Clk2_BUFGP | 0.000| +Segments<5> | 12.433(R)|Clk2_BUFGP | 0.000| +Segments<6> | 11.330(R)|Clk2_BUFGP | 0.000| +------------+------------+------------------+--------+ + +Clock to Setup on destination clock Clk +---------------+---------+---------+---------+---------+ + | Src:Rise| Src:Fall| Src:Rise| Src:Fall| +Source Clock |Dest:Rise|Dest:Rise|Dest:Fall|Dest:Fall| +---------------+---------+---------+---------+---------+ +Clk | | | | 3.763| +---------------+---------+---------+---------+---------+ + +Clock to Setup on destination clock Clk2 +---------------+---------+---------+---------+---------+ + | Src:Rise| Src:Fall| Src:Rise| Src:Fall| +Source Clock |Dest:Rise|Dest:Rise|Dest:Fall|Dest:Fall| +---------------+---------+---------+---------+---------+ +Clk2 | 3.314| | | | +---------------+---------+---------+---------+---------+ + + +Analysis completed Fri Dec 3 00:08:32 2010 +-------------------------------------------------------------------------------- + +Trace Settings: +------------------------- +Trace Settings + +Peak Memory Usage: 208 MB + + + Index: ps2_keyboard_interface/Keyboard_Controller_bitgen.xwbt =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_bitgen.xwbt (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_bitgen.xwbt (revision 2) @@ -0,0 +1,8 @@ +INTSTYLE=ise +INFILE=/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.ncd +OUTFILE=/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.bit +FAMILY=Spartan3 +PART=xc3s200-5ft256 +WORKINGDIR=/home/omar/MyOpenCores/Keyboard_Controller +LICENSE=WebPack +USER_INFO=0_0_316 Index: ps2_keyboard_interface/Keyboard_Controller_summary.xml =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_summary.xml (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_summary.xml (revision 2) @@ -0,0 +1,10 @@ + + + + + + Index: ps2_keyboard_interface/Keyboard_Controller.syr =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.syr (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.syr (revision 2) @@ -0,0 +1,484 @@ +Release 12.3 - xst M.70d (lin64) +Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. +--> +Parameter TMPDIR set to xst/projnav.tmp + + +Total REAL time to Xst completion: 0.00 secs +Total CPU time to Xst completion: 0.04 secs + +--> +Parameter xsthdpdir set to xst + + +Total REAL time to Xst completion: 0.00 secs +Total CPU time to Xst completion: 0.04 secs + +--> +Reading design: Keyboard_Controller.prj + +TABLE OF CONTENTS + 1) Synthesis Options Summary + 2) HDL Compilation + 3) Design Hierarchy Analysis + 4) HDL Analysis + 5) HDL Synthesis + 5.1) HDL Synthesis Report + 6) Advanced HDL Synthesis + 6.1) Advanced HDL Synthesis Report + 7) Low Level Synthesis + 8) Partition Report + 9) Final Report + 9.1) Device utilization summary + 9.2) Partition Resource Summary + 9.3) TIMING REPORT + + +========================================================================= +* Synthesis Options Summary * +========================================================================= +---- Source Parameters +Input File Name : "Keyboard_Controller.prj" +Input Format : mixed +Ignore Synthesis Constraint File : NO + +---- Target Parameters +Output File Name : "Keyboard_Controller" +Output Format : NGC +Target Device : xc3s200-5-ft256 + +---- Source Options +Top Module Name : Keyboard_Controller +Automatic FSM Extraction : YES +FSM Encoding Algorithm : Auto +Safe Implementation : No +FSM Style : LUT +RAM Extraction : Yes +RAM Style : Auto +ROM Extraction : Yes +Mux Style : Auto +Decoder Extraction : YES +Priority Encoder Extraction : Yes +Shift Register Extraction : YES +Logical Shifter Extraction : YES +XOR Collapsing : YES +ROM Style : Auto +Mux Extraction : Yes +Resource Sharing : YES +Asynchronous To Synchronous : NO +Multiplier Style : Auto +Automatic Register Balancing : No + +---- Target Options +Add IO Buffers : YES +Global Maximum Fanout : 500 +Add Generic Clock Buffer(BUFG) : 8 +Register Duplication : YES +Slice Packing : YES +Optimize Instantiated Primitives : NO +Use Clock Enable : Yes +Use Synchronous Set : Yes +Use Synchronous Reset : Yes +Pack IO Registers into IOBs : Auto +Equivalent register Removal : YES + +---- General Options +Optimization Goal : Speed +Optimization Effort : 1 +Keep Hierarchy : No +Netlist Hierarchy : As_Optimized +RTL Output : Yes +Global Optimization : AllClockNets +Read Cores : YES +Write Timing Constraints : NO +Cross Clock Analysis : NO +Hierarchy Separator : / +Bus Delimiter : <> +Case Specifier : Maintain +Slice Utilization Ratio : 100 +BRAM Utilization Ratio : 100 +Verilog 2001 : YES +Auto BRAM Packing : NO +Slice Utilization Ratio Delta : 5 + +========================================================================= + + +========================================================================= +* HDL Compilation * +========================================================================= +Compiling vhdl file "/home/omar/Mano/Mano/SevenSegment.vhd" in Library work. +Architecture behavioral of Entity sevensegment is up to date. +Compiling vhdl file "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.vhd" in Library work. +Entity compiled. +Entity (Architecture ) compiled. + +========================================================================= +* Design Hierarchy Analysis * +========================================================================= +Analyzing hierarchy for entity in library (architecture ). + +Analyzing hierarchy for entity in library (architecture ). + + +========================================================================= +* HDL Analysis * +========================================================================= +Analyzing Entity in library (Architecture ). +Entity analyzed. Unit generated. + +Analyzing Entity in library (Architecture ). +Entity analyzed. Unit generated. + + +========================================================================= +* HDL Synthesis * +========================================================================= + +Performing bidirectional port resolution... + +Synthesizing Unit . + Related source file is "/home/omar/Mano/Mano/SevenSegment.vhd". + Found 16x8-bit ROM for signal . + Found 1-of-4 decoder for signal . + Found 4-bit 4-to-1 multiplexer for signal . + Found 13-bit up counter for signal . + Summary: + inferred 1 ROM(s). + inferred 1 Counter(s). + inferred 4 Multiplexer(s). + inferred 1 Decoder(s). +Unit synthesized. + + +Synthesizing Unit . + Related source file is "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.vhd". +WARNING:Xst:646 - Signal > is assigned but never used. This unconnected signal will be trimmed during the optimization process. + Found 5-bit up counter for signal . + Found 21-bit register for signal >. + Found 8-bit register for signal . + Found 8-bit register for signal . + Found 8-bit up counter for signal . + Summary: + inferred 2 Counter(s). + inferred 37 D-type flip-flop(s). +Unit synthesized. + + +========================================================================= +HDL Synthesis Report + +Macro Statistics +# ROMs : 1 + 16x8-bit ROM : 1 +# Counters : 3 + 13-bit up counter : 1 + 5-bit up counter : 1 + 8-bit up counter : 1 +# Registers : 23 + 1-bit register : 21 + 8-bit register : 2 +# Multiplexers : 1 + 4-bit 4-to-1 multiplexer : 1 +# Decoders : 1 + 1-of-4 decoder : 1 + +========================================================================= + +========================================================================= +* Advanced HDL Synthesis * +========================================================================= + + +========================================================================= +Advanced HDL Synthesis Report + +Macro Statistics +# ROMs : 1 + 16x8-bit ROM : 1 +# Counters : 3 + 13-bit up counter : 1 + 5-bit up counter : 1 + 8-bit up counter : 1 +# Registers : 37 + Flip-Flops : 37 +# Multiplexers : 1 + 4-bit 4-to-1 multiplexer : 1 +# Decoders : 1 + 1-of-4 decoder : 1 + +========================================================================= + +========================================================================= +* Low Level Synthesis * +========================================================================= + +Optimizing unit ... + +Mapping all equations... +Building and optimizing final netlist ... +Found area constraint ratio of 100 (+ 5) on block Keyboard_Controller, actual ratio is 2. + +Final Macro Processing ... + +Processing Unit : + Found 3-bit shift register for signal . + Found 4-bit shift register for signal . +Unit processed. + +========================================================================= +Final Register Report + +Macro Statistics +# Registers : 56 + Flip-Flops : 56 +# Shift Registers : 2 + 3-bit shift register : 1 + 4-bit shift register : 1 + +========================================================================= + +========================================================================= +* Partition Report * +========================================================================= + +Partition Implementation Status +------------------------------- + + No Partitions were found in this design. + +------------------------------- + +========================================================================= +* Final Report * +========================================================================= +Final Results +RTL Top Level Output File Name : Keyboard_Controller.ngr +Top Level Output File Name : Keyboard_Controller +Output Format : NGC +Optimization Goal : Speed +Keep Hierarchy : No + +Design Statistics +# IOs : 23 + +Cell Usage : +# BELS : 97 +# GND : 1 +# INV : 4 +# LUT1 : 19 +# LUT2 : 5 +# LUT2_D : 1 +# LUT3 : 10 +# LUT3_L : 1 +# LUT4 : 11 +# MUXCY : 19 +# MUXF5 : 4 +# VCC : 1 +# XORCY : 21 +# FlipFlops/Latches : 58 +# FD : 13 +# FD_1 : 16 +# FDE : 8 +# FDE_1 : 16 +# FDR : 5 +# Shift Registers : 2 +# SRL16_1 : 2 +# Clock Buffers : 2 +# BUFGP : 2 +# IO Buffers : 21 +# IBUF : 1 +# OBUF : 20 +========================================================================= + +Device utilization summary: +--------------------------- + +Selected Device : 3s200ft256-5 + + Number of Slices: 40 out of 1920 2% + Number of Slice Flip Flops: 58 out of 3840 1% + Number of 4 input LUTs: 53 out of 3840 1% + Number used as logic: 51 + Number used as Shift registers: 2 + Number of IOs: 23 + Number of bonded IOBs: 23 out of 173 13% + Number of GCLKs: 2 out of 8 25% + +--------------------------- +Partition Resource Summary: +--------------------------- + + No Partitions were found in this design. + +--------------------------- + + +========================================================================= +TIMING REPORT + +NOTE: THESE TIMING NUMBERS ARE ONLY A SYNTHESIS ESTIMATE. + FOR ACCURATE TIMING INFORMATION PLEASE REFER TO THE TRACE REPORT + GENERATED AFTER PLACE-and-ROUTE. + +Clock Information: +------------------ +-----------------------------------+------------------------+-------+ +Clock Signal | Clock buffer(FF name) | Load | +-----------------------------------+------------------------+-------+ +Clk | BUFGP | 47 | +Clk2 | BUFGP | 13 | +-----------------------------------+------------------------+-------+ + +Asynchronous Control Signals Information: +---------------------------------------- +No asynchronous control signals found in this design + +Timing Summary: +--------------- +Speed Grade: -5 + + Minimum period: 5.006ns (Maximum Frequency: 199.770MHz) + Minimum input arrival time before clock: 1.778ns + Maximum output required time after clock: 9.978ns + Maximum combinational path delay: No path found + +Timing Detail: +-------------- +All values displayed in nanoseconds (ns) + +========================================================================= +Timing constraint: Default period analysis for Clock 'Clk' + Clock period: 5.006ns (frequency: 199.770MHz) + Total number of paths / destination ports: 229 / 75 +------------------------------------------------------------------------- +Delay: 5.006ns (Levels of Logic = 2) + Source: Counter_1 (FF) + Destination: OutByte1_0 (FF) + Source Clock: Clk falling + Destination Clock: Clk falling + + Data Path: Counter_1 to OutByte1_0 + Gate Net + Cell:in->out fanout Delay Delay Logical Name (Net Name) + ---------------------------------------- ------------ + FDR:C->Q 5 0.626 1.078 Counter_1 (Counter_1) + LUT2_D:I0->O 2 0.479 0.768 OutByte1_cmp_eq0000_SW0 (N14) + LUT4:I3->O 16 0.479 1.051 OutByte1_cmp_eq0000_1 (OutByte1_cmp_eq00001) + FDE_1:CE 0.524 OutByte2_0 + ---------------------------------------- + Total 5.006ns (2.108ns logic, 2.898ns route) + (42.1% logic, 57.9% route) + +========================================================================= +Timing constraint: Default period analysis for Clock 'Clk2' + Clock period: 4.033ns (frequency: 247.964MHz) + Total number of paths / destination ports: 91 / 13 +------------------------------------------------------------------------- +Delay: 4.033ns (Levels of Logic = 13) + Source: Inst_SevenSegment/Counter_1 (FF) + Destination: Inst_SevenSegment/Counter_12 (FF) + Source Clock: Clk2 rising + Destination Clock: Clk2 rising + + Data Path: Inst_SevenSegment/Counter_1 to Inst_SevenSegment/Counter_12 + Gate Net + Cell:in->out fanout Delay Delay Logical Name (Net Name) + ---------------------------------------- ------------ + FD:C->Q 1 0.626 0.976 Inst_SevenSegment/Counter_1 (Inst_SevenSegment/Counter_1) + LUT1:I0->O 1 0.479 0.000 Inst_SevenSegment/Mcount_Counter_cy<1>_rt (Inst_SevenSegment/Mcount_Counter_cy<1>_rt) + MUXCY:S->O 1 0.435 0.000 Inst_SevenSegment/Mcount_Counter_cy<1> (Inst_SevenSegment/Mcount_Counter_cy<1>) + MUXCY:CI->O 1 0.056 0.000 Inst_SevenSegment/Mcount_Counter_cy<2> (Inst_SevenSegment/Mcount_Counter_cy<2>) + MUXCY:CI->O 1 0.056 0.000 Inst_SevenSegment/Mcount_Counter_cy<3> (Inst_SevenSegment/Mcount_Counter_cy<3>) + MUXCY:CI->O 1 0.056 0.000 Inst_SevenSegment/Mcount_Counter_cy<4> (Inst_SevenSegment/Mcount_Counter_cy<4>) + MUXCY:CI->O 1 0.056 0.000 Inst_SevenSegment/Mcount_Counter_cy<5> (Inst_SevenSegment/Mcount_Counter_cy<5>) + MUXCY:CI->O 1 0.056 0.000 Inst_SevenSegment/Mcount_Counter_cy<6> (Inst_SevenSegment/Mcount_Counter_cy<6>) + MUXCY:CI->O 1 0.056 0.000 Inst_SevenSegment/Mcount_Counter_cy<7> (Inst_SevenSegment/Mcount_Counter_cy<7>) + MUXCY:CI->O 1 0.056 0.000 Inst_SevenSegment/Mcount_Counter_cy<8> (Inst_SevenSegment/Mcount_Counter_cy<8>) + MUXCY:CI->O 1 0.056 0.000 Inst_SevenSegment/Mcount_Counter_cy<9> (Inst_SevenSegment/Mcount_Counter_cy<9>) + MUXCY:CI->O 1 0.056 0.000 Inst_SevenSegment/Mcount_Counter_cy<10> (Inst_SevenSegment/Mcount_Counter_cy<10>) + MUXCY:CI->O 0 0.056 0.000 Inst_SevenSegment/Mcount_Counter_cy<11> (Inst_SevenSegment/Mcount_Counter_cy<11>) + XORCY:CI->O 1 0.786 0.000 Inst_SevenSegment/Mcount_Counter_xor<12> (Result<12>) + FD:D 0.176 Inst_SevenSegment/Counter_12 + ---------------------------------------- + Total 4.033ns (3.057ns logic, 0.976ns route) + (75.8% logic, 24.2% route) + +========================================================================= +Timing constraint: Default OFFSET IN BEFORE for Clock 'Clk' + Total number of paths / destination ports: 1 / 1 +------------------------------------------------------------------------- +Offset: 1.778ns (Levels of Logic = 1) + Source: DataIn (PAD) + Destination: Mshreg_data_2 (FF) + Destination Clock: Clk falling + + Data Path: DataIn to Mshreg_data_2 + Gate Net + Cell:in->out fanout Delay Delay Logical Name (Net Name) + ---------------------------------------- ------------ + IBUF:I->O 1 0.715 0.681 DataIn_IBUF (DataIn_IBUF) + SRL16_1:D 0.382 Mshreg_data_2 + ---------------------------------------- + Total 1.778ns (1.097ns logic, 0.681ns route) + (61.7% logic, 38.3% route) + +========================================================================= +Timing constraint: Default OFFSET OUT AFTER for Clock 'Clk2' + Total number of paths / destination ports: 92 / 11 +------------------------------------------------------------------------- +Offset: 9.978ns (Levels of Logic = 4) + Source: Inst_SevenSegment/Counter_11 (FF) + Destination: Segments<6> (PAD) + Source Clock: Clk2 rising + + Data Path: Inst_SevenSegment/Counter_11 to Segments<6> + Gate Net + Cell:in->out fanout Delay Delay Logical Name (Net Name) + ---------------------------------------- ------------ + FD:C->Q 13 0.626 1.290 Inst_SevenSegment/Counter_11 (Inst_SevenSegment/Counter_11) + LUT3:I0->O 1 0.479 0.000 Inst_SevenSegment/Mmux_Chosen_3 (Inst_SevenSegment/Mmux_Chosen_3) + MUXF5:I1->O 7 0.314 1.201 Inst_SevenSegment/Mmux_Chosen_2_f5 (Inst_SevenSegment/Chosen<0>) + LUT4:I0->O 1 0.479 0.681 Inst_SevenSegment/Mrom_Segments111 (Segments_1_OBUF) + OBUF:I->O 4.909 Segments_1_OBUF (Segments<1>) + ---------------------------------------- + Total 9.978ns (6.807ns logic, 3.171ns route) + (68.2% logic, 31.8% route) + +========================================================================= +Timing constraint: Default OFFSET OUT AFTER for Clock 'Clk' + Total number of paths / destination ports: 120 / 15 +------------------------------------------------------------------------- +Offset: 9.540ns (Levels of Logic = 4) + Source: OutByte1_5 (FF) + Destination: Segments<6> (PAD) + Source Clock: Clk falling + + Data Path: OutByte1_5 to Segments<6> + Gate Net + Cell:in->out fanout Delay Delay Logical Name (Net Name) + ---------------------------------------- ------------ + FDE_1:C->Q 1 0.626 0.851 OutByte1_5 (OutByte1_5) + LUT3:I1->O 1 0.479 0.000 Inst_SevenSegment/Mmux_Chosen_41 (Inst_SevenSegment/Mmux_Chosen_41) + MUXF5:I0->O 7 0.314 1.201 Inst_SevenSegment/Mmux_Chosen_2_f5_0 (Inst_SevenSegment/Chosen<1>) + LUT4:I0->O 1 0.479 0.681 Inst_SevenSegment/Mrom_Segments21 (Segments_2_OBUF) + OBUF:I->O 4.909 Segments_2_OBUF (Segments<2>) + ---------------------------------------- + Total 9.540ns (6.807ns logic, 2.733ns route) + (71.4% logic, 28.6% route) + +========================================================================= + + +Total REAL time to Xst completion: 5.00 secs +Total CPU time to Xst completion: 4.77 secs + +--> + + +Total memory usage is 339112 kilobytes + +Number of errors : 0 ( 0 filtered) +Number of warnings : 1 ( 0 filtered) +Number of infos : 0 ( 0 filtered) + Index: ps2_keyboard_interface/Keyboard_Controller.xst =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.xst (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.xst (revision 2) @@ -0,0 +1,56 @@ +set -tmpdir "xst/projnav.tmp" +set -xsthdpdir "xst" +run +-ifn Keyboard_Controller.prj +-ifmt mixed +-ofn Keyboard_Controller +-ofmt NGC +-p xc3s200-5-ft256 +-top Keyboard_Controller +-opt_mode Speed +-opt_level 1 +-iuc NO +-keep_hierarchy No +-netlist_hierarchy As_Optimized +-rtlview Yes +-glob_opt AllClockNets +-read_cores YES +-write_timing_constraints NO +-cross_clock_analysis NO +-hierarchy_separator / +-bus_delimiter <> +-case Maintain +-slice_utilization_ratio 100 +-bram_utilization_ratio 100 +-verilog2001 YES +-fsm_extract YES -fsm_encoding Auto +-safe_implementation No +-fsm_style LUT +-ram_extract Yes +-ram_style Auto +-rom_extract Yes +-mux_style Auto +-decoder_extract YES +-priority_extract Yes +-shreg_extract YES +-shift_extract YES +-xor_collapse YES +-rom_style Auto +-auto_bram_packing NO +-mux_extract Yes +-resource_sharing YES +-async_to_sync NO +-mult_style Auto +-iobuf YES +-max_fanout 500 +-bufg 8 +-register_duplication YES +-register_balancing No +-slice_packing YES +-optimize_primitives NO +-use_clock_enable Yes +-use_sync_set Yes +-use_sync_reset Yes +-iob Auto +-equivalent_register_removal YES +-slice_utilization_ratio_maxmargin 5 Index: ps2_keyboard_interface/Keyboard_Controller_map.ngm =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_map.ngm (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_map.ngm (revision 2) @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$30e5=6>2.Yi{g|inl9$4(5<8$9"9.+109'V`pn{`ee6-?!53"'5>6339:;?95?0157?56?881:86<>40686=75k29x>=>it375)02<<=?H=85;:NWWTPR=Mgki`h}33;2=5>033?:>8959A@C1?3E63>804=:481A153=?2F__\XZ5Sdenakrt4>0;2<;48;MVPUSS2yxn~kk<683:4=F:2K;>6O>4:C25=4=4AEP6?DU^FJ90NXH;;CWEC0=E]OM[==5MUHNG[QGUOL^J^NF7;CWP[LHAG81H>6MJ2:AJ1>ELJ\L87NBD6:AOOKIS9<1H@BMD_EGGMFGSMMUYCXZJ3:AOV<=DGDGBXYKK8:ALJVRFF];:7NAASUCMPZRUIZBHMC94CSGBP@B43Jf`86Mck3c8Gim5WK_MK]h4Cmi1[GSAOY%IYKI>e:Aoo7YE]OM[#O[IG^K3[hsWzogS~gh119@hn4XJ\LL\"GMUGE:?FjlWK_MK]k4Cmi\FP@@X&H^JJ?k;Bnh[GSAOY%IYKIPI1]nq}YtmeUxejh4Cmi\FP@@X&CIYKI8;Bnh[lhqm2IggRgav0]JJSY7i2Idyczjr=2=e>Eh}g~n~1?1a:Alqkrbz585m6M`uovfv959i2Idyczjr=6==>Eh}g~n~R>6;BmvjqcuW830Ob{atdp\6<=Dg|diQ<9:AlqkrbzV>:7I=4D061?AOb3MXHS^[LCDQPBPJ13MkmD`m;EcweLhXAK_M=6K<;D307>C6<;1N895J45:25>C_XHDOIIQMCE]EMIC6<2OS\L@KEE]@KKUSZHCEX^?>;DZSEKBBLVCXIRHFLDc8Akgedly7<3o4Eocah`u;97k0Icomldq?6;eCiikfn1=1e:Gmegjb{V:TCO[Ie:Gmegjb{V;TCO[Ie:Gmegjb{V8TCO[Ie:Gmegjb{V9TCO[I3:D276=A9=?0JLB\E59EEVR53ON>7KJLPD18BAC23ONNS<=4FEP6?CBU[L>0JIQ>2:DE7>@A[=1M^LIm;GPBCFIQM[OOm6H]AF]AEVCCj2LYMJQLOODJCd=AZHMTOB[AT99EVJKX]JL:7J=4G010?B739=1LICK]AUGG$UIT\$LGECZ>2:EFJ@TF\LN+\B][-F137>AIL<1L^B[_1:K1?L653@;97D<=;H17?LDRN<1BNXHH2:KM7>OII:1BBO64IODFVWCC12CEEY][AUG0?LHQ02CEZH\[EEg8MKYIOMUJBIQMCE48MJEHEY<0EBZVPD68MUGC9;1Bb~zPSdtfjVc`eld#0:4eOi{}UXi{kaSdenakr(Kfexh|32?3`?Lht|VYnzh`\efofjq)Dg|di2<>0a8MkusWZo}ic]jglgmp*Eh}g~n~1:11b9JjvrX[l|nb^khmdlw+Firf}oy080>c:KmwqYTmoe_hibeov,Gjsi|lx7:3?l;HlppZUb~ldXijcjnu-@kphsm{6<2=o5Fnrv\W`pbfZolah`{/BmvjqcuW?;i7D`|t^Qfr`hTmngnby!LotlwawY09k1Bb~zPSdtfjVc`eld#Naznugq[=7e3@dxxR]jvdlPabkbf}%Hcx`{es]:63=Nfz~T_hxjnRgdi`hs'DidyczPCnwmp`tXkp6;2?94Ioqw[VcqmgYnk`kat.O`kphsWJe~byk}_b{?5585i2CeyQ\ewgmW`ajmg~$Anaznu]@kphsm{Uhu1??>^pw62=Nfz~T_hxjnRgdi`hs'DidyczPCnwmp`tXkp6:=3Oi{}UXi{kaSdenakr(Eje~byQLotlwawYdq5>5Sz=6:KmwqYTmoe_hibeov,Ifirf}UHcx`{es]`}939:01Bb~zPSdtfjVc`eld#@m`uov\Gjsi|lxTot2:>^pw63=Nfz~T_hxjnRgdi`hs'DidyczPCnwmp`tXkp6=2?74Ioqw[VcqmgYnk`kat.O`kphsWJe~byk}_b{?2;Yu|;<0Ec}{_RguakUbodoex"Clotlw[Firf}oySnw37?0:?Lht|VYnzh`\efofjq)JkfexRM`uovfvZe~4>4T~y<9;HlppZUb~ldXijcjnu-Ngjsi|VIdyczjr^az8=8512CeyQ\ewgmW`ajmg~$Anaznu]@kphsm{Uhu161_sv12>Oi{}UXi{kaSdenakr(Eje~byQLotlwawYdq535>45Fnrv\W`pbfZolah`{/LalqkrXKfexh|Pcx>::Zts:>1Bb~zPSdtfjVc`eld#@m`uov\Gjsi|lxT`xz30?0g?Lht|VYnzh`\efofjq)JkfexRM`uovfvZjr|5:5SD@Y_104?Lht|VYnzh`\efofjq)JkfexRM`uovfvZ~hz5:5>55Fnrv\W`pbfZolah`{/LalqkrXKfexh|Pxnp?558502CeyQ\ewgmW`ajmg~$Anaznu]@kphsm{Usc2>1?0;?Lht|VYnzh`\efofjq)JkfexRM`uovfvZ~hz5;92?l4Ioqw[VcqmgYnk`kat.O`kphsWJe~byk}_ymq8449W{~9;6Gasu]Pasci[lmficz MbmvjqYDg|diQwos>2:71Oi{}UXi{kaSdenakr(Eje~byQLotlwawYg{6>2?94Ioqw[VcqmgYnk`kat.O`kphsWJe~byk}_ymq8385?2CeyQ\ewgmW`ajmg~$Anaznu]@kphsm{Usc28>358MkusWZo}ic]jglgmp*Kdg|dSNaznugq[}iu4149;6Gasu]Pasci[lmficz MbmvjqYDg|diQwos>::7495Fnrv\W`pbfZolah`{/Lov|ZEogzoeS?Qi5^02b>Oi{}UXi{kaSdenakr(EdsSNf`sdl\776?i;HlppZUb~ldXijcjnu-Nip~XKaexicQ;219JjvrX[l|nb^khmdlw+HkrpVIcc~ka_5314>Oi{}UXi{kaSdenakr(EdsSNf`sdl\07473@dxxR]jvdlPabkbf}%FaxvPCimpakY3;;;0Ec}{_RguakUbodoex"C}ol]Pabkbf}y:=?<4Ioqw[VcqmgYnk`kat.OqkhYTmngnby}>1002?Lht|VYnzh`\efofjq)JzfgT_hibeovp64463@dxxR]jvdlPabkbf}%F~bcPSdenakrt;88:7D`|t^Qfr`hTmngnby!Brno\W`ajmg~x8<<>;HlppZUb~ldXijcjnu-NvjkX[lmficz|5002?Lht|VYnzh`\efofjq)JzfgT_hibeovp245JR\;UO86BZT248HPR4WE>0@XZ;5:O-35b03D$<1.M2`>Kdg|dSNaznugq[}iu494:=RGAV^223>Kdg|dSNaznugq[}iu484:=<94MbmvjqYDg|diQwos>1:476?2Ghcx`{_BmvjqcuWqey0>0>1058Ifirf}UHcx`{es]{kw:368;:86Clotlw[utb{zoxSnw30?37?Heh}g~T|k|sdq\g|:668=0Anaznu]sv`utmzUhu1?1_sv20>Kdg|dS}|jsrgp[f;:7;<7@m`uov\twct{lyTot2=>^pw51=JkfexR~}erqfwZe~4:4:;6Clotlw[utb{zoxSnw33?]qp425=:5BcnwmpZvumzynRmv<5<\vq733DidyczPpsgpw`uXkp6>2<94MbmvjqYwzlyxi~Qly=7=[wr6<2Ghcx`{_qpfwvctWjs7:3?8;LalqkrXx{oxh}Pcx>5:Zts9<1Fob{at^rqavub{Vf~x1>11c9Ngjsi|Vzyi~}js^nvp969W@D]S=?:;LalqkrXx{oxh}Pxnp?4;723DidyczPpsgpw`uXpfx7=3?:;LalqkrXx{oxh}Pxnp?6;723DidyczPpsgpw`uXpfx7?3?:;LalqkrXx{oxh}Pxnp?0;723DidyczPpsgpw`uXpfx793?:;LalqkrXx{oxh}Pxnp?2;723DidyczPpsgpw`uXpfx7;3?7;LalqkrXx{oxh}Pxnp?3;Yu|j1Feca}Vdppmjhb3Dyc~hiPd`vb[45692Gxdkh_ecweZ74'JO:96C|hsgd[agsiV;8#^\C17Gg?HuozlmThlzn_333?HuozlmThlzn_3-@A426@>3:L266=I9=90B<;<;O353>HB\^EYG55AOU]SL\U63Fo0C0&'I1(J6,FN9 9i7B3'(K3.-.yA8 #E?$qI2+*/-O6"!C9'sG<)(+*/-O7"!tB='&F2+K0-,/.;?1D1%&qI1(+,{O6"wC9%&&F1+*J6/xN; #"%&&F0+*}M4,/A; B?$'&)3`8K8./v@:!$D?%(H0)M6/.!""B<'&qI0)+zL4,v@9"%$'<6:M>,-xN8#"B='&F2+|J7,/.#!C;&%&qI0(+zL4-v@9"%&&F1+K1-,/.;01D1%&qI1(+M4,/A;!B?$'&+)K3.-.yA8 #E?$F3(+(,L7- @8KrD=&)(+*6g=H5!"uE=$'I0)+M7,yA:#"%&&F0+*J5/.yA; uE>'&)(1`?J;/ wC;&%pF1+*J6/xN; #"'%G?*)*}M4,/A;JuE>'&+)K2.-xN:#C8%$'&)2c8K8./v@:!$sG>*)K1DL5.! !#E=$'(K2.-O5"@9"%&&F1+*J6ExN; #"%$?;;N?+,{O7"@;"'%G?*H0*-423F7#E=NF1(c8K8.yA9!B=$l4O<*}M5-yA8#>7B3qI168KGSA;2EEI95@P@F0?JSSj2E~xOw{e0>3:g=H}}Hrxh?31?`8KprEq}o:0?0m;NwwF|rb9595n6AztC{wa4:36k1DyyLvtd3?1;d<7Ir|KsiIr|Ksi_bos[`w789:T><94OtvA}qc6Wjg{Sh?012\WR65:2E~xOw{e0]`iuYby9:;1=1b:MvpGsm;6?2o5@uu@zp`4;=7h0CxzMyug1838e3FNtzj2=5=e>Ir|Ksi?Q?a:MvpGsm;U:m6AztC{wa7Y5i2E~xOw{e3]0e>Ir|Ksi?Q;a:MvpGsm;U>m6AztC{wa7Y1i2E~xOw{e3]45>V43Y;:?6^>229S56587]?:3:RB@1=WI[^37]FVSHABHd=WAGUIY^GKXc9SMKYE]ZDJAHl4PHL\MVEKGJA>7]AXES18TWCf3YXNHHHFNDF2?T50:PFV@UHD_OT\L\NMR18VJK43[Y_56\jstnw858f3[oxyaz30?3b?Wct}e~7<32:7?`9Qavsk|585=l5]erwop949:01Yi~{ct=1=e>Tb{|f0>0>a:Pfwpjs4:4956\jstnw818f3[oxyaz34?3b?Wct}e~783<6;Sgpqir;=7k0^h}zlu>6:4?`9Qavsk|5<5=45]erwop919i2Xnxb{<6<2=>Tb{|f0506;Sgpqir;17;0_>5\EM18W@R43ZLM56]FG^ALQKR43ZD@?6]]Ce9PVFYOALXJ^NFV6:QQH40B?2YY@<8P169PVIE6>L>0__][4:QPAQ><[]_HGRO[4:QZJF?<[PDHSLZ[Rc9Pabkbf}y7<3l4Sdenakrt484i7^khmdlww949j2Ynk`katr>0:g=Tmngnby}34?`8W`ajmg~x080m;Rgdi`hs{5<5h6]jglgmpv:0294i7^khmdlww919n2Ynk`katr]3[JDRNo1Xijcjnuq\5ZIE]Ol0_hibeovp[7YHJ\Lm7^khmdlwwZ5XGK_Mj6]jglgmpvY3WFH^Jk5\efofjquX=VEIYKh4SdenakrtW?UDNXHi;Rgdi`hs{V=TCO[I2:V:b>RFZNO_S]O]TU[SA==SM[GBBLB9;UKFKC@e3]XJB^^NRDLW0>R^XL<0YC[\EEa8QVCUW_CXEOBJ3:T@G<=QAL]TXT^J1e9[MIOIP$RON->!1!QWQG&7&8*J_NGF3:ZLV0=_G[IR:6V\TMKA3>^T\VMEH:5WSU]UGFd1SheQBaqAlvwTbef|nhY|nsi`8\anXX{cfEivm;Yfk[Utne@d}o6Vkh^RqmhR~xll0TifPPsknR`ttafd<7Ujg_Ucdf>^ceVHbbigag028\akXEh`d~[k}shmm55=_ldUFeca}Vdppmjh43Qy86TJRN:8`drf489546jnt`>20;>720hlzn<05=<>bf|h6:4364d`vb84?902njxl2=0?58`drf4;4<7io{a=1=3>bf|h6?2:5kauc?1;169geqg;17=0hlzn_014?agsiV;?;6jnt`]212=ci}kT=;94d`vb[4103mkmR?77:fbpdY61?1omyoP269geqgX:9<0hlzn_248`drfW=<0hlzn_448`drfW?<0hlzn_648`drfW1<0hlzn_818idv?3gmonxgcd0;8tmtajkgSj|`uq]@hn4XJ\LL\<64pi{pmfgkWnxdy}QLlj]AQCAWi2zyi~}jd=2=e>vumzynh1?1a:rqavubl585m6~}erqf`959i2zyi~}jd=6=e>vumzynh1;1a:rqavubl5<5o6~}erqf`91=87k0|k|sdf?3;c7k0|k|sdq?3;?3yxn~k|_2;8twct{lyT845rdqpavY212zyi~}js^4:?utb{zoxS:64sqcqpdh402rb`d`wuo3;?}jipVk~xbQ?_yfa+fus&qhhhpNOp``4?EFm?0M6:4>{R0f>4c22o<1=>4>;o3f0?0<,8n=663b0l1Xil4=0982>455j1?96>;j909P6g<5810:6<==b971>63b1;1Xil4=0681>455j1?96>;j959Pbd<58>0m97?<2c:66?52m0?0_?l521596?74:k2>>7=:e878``0=83;1>v]=e;3f1?`12899n5;=:27fn5G499mbf<3ko2:4i:4$g`967e<,on1j85yTg;94?7=93hmw^c0=9:8i48<534g;f>"6kh0nh6X>e181p77:3;0y<<;:19~ 4122h1/9?4?;%73>74b3-?:65:4bd494?702jn1n4uG1b:8 4e12l<0V?<53z37>f<6=3we=h?50:k1b?6=3`9;6=44i5;94?=h9k21<7*>7982f2=i9>=1<65`1c494?"6?10:n:5a16595>=h9k?1<7*>7982f2=i9>=1>65`1c694?"6?10:n:5a16597>=h9k91<7*>7982f2=i9>=1865`1c094?"6?10:n:5a16591>=h9k;1<7*>7982f2=i9>=1:65`1c294?"6?10:n:5a16593>=h=>0;6)?88;75?k70?3:07b;::18'52>==?1e=:951:9l11<72-;<47;9;o343?4<3f?86=4+16:913=i9>=1?65`20194?"6?109=?5a16594>=h:8;1<7*>798157=i9>=1=65`20294?"6?109=?5a16596>=h:9l1<7*>798157=i9>=1?65`21g94?"6?109=?5a16590>=h:9n1<7*>798157=i9>=1965`21a94?"6?109=?5a16592>=h:9h1<7*>798157=i9>=1;65m1bd95?7=83:p(dg82a3=#m009>i5a1d395>"6i>0n:6a9f;29 4ba28><76sm1e295?7=83:p(?j4n0g2>7=#9h=1i;5`17g94?"6lo0:8:54}c034?7=>3:1c7852>N6kl1C=n64$9393>"6lo0=;6F>829'a<<5:m1e=h?53:&2e22c9?7>5$0fe>71<@8nn76g;5;29 4ba2>n07b?8d;29 4ba28><76g=4;29 4ba2;>07d?8b;29 4ba28k976g=a;29 4ba282>76sm21395?0=83:p(74c3g;n=7:4$0c4>`0dg813>N6ll10e9;50;&2`c<0l21d=:j50;&2`c<6<>10e?:50;&2`c<5<21b=:l50;&2`c<6i;10e?o50;&2`c<60<10qo5+e8816a=i9l;196*>a68f2>o5;3:1(5$0fe>2b<3f;5$0fe>42032c987>5$0fe>72<3`;5$0fe>4g532c9m7>5$0fe>4>232wi>==51;494?6|,8i=6;84H0af?M7d02.3=794$0fe>31<@8287)k6:30g?k7b93<0(dg84`>=h9>n1<7*>dg8202=1<7*>dg810>=n9>h1<7*>dg82e7=dg82<0=cd9K5f><,1;1;6*>dg853>N60:1/i44=2e9m5`7=?2.:m:4j6:k17?6=,8nm6?94H0ff?>o3=3:1(o5<3:1(o5i3:1({e:9?1=7850;2x 4e12?<0D"?93=0(43-o26?<,8k<6h84i3194?"6lo09;6F>dd98m13=83.:hk48d:9l52b=83.:hk4>4698m72=83.:hk4=4:9j52d=83.:hk4>a398m7g=83.:hk4>8498yg47>3;1:7>50z&2g3<1>2B:oh5G1b:8 =7=?2.:hk497:J2<6=#m009>i5a1d39=>"6i>0n:6g=3;29 4ba2;=0Dt$0a5>35<@8in7E?l8:&2`c<1?2.3=7=4H0:0?!c>2;8o7c?j1;c8 4g02l<0e?=50;&2`c<5?2B:hh54i3694?"6lo09865f4483>!7cn3=o76a>7e83>!7cn3;?;65f16`94?"6lo0:m?54i3c94?"6lo0:4854}c365?7=>3:1c7857>N6kl1C=n64$0fe>31<,1;1?6F>829'a<<5:m1e=h?5b:&2e22c9?7>5$0fe>71<@8nn76g=4;29 4ba2;>07d:::18'5a`=?m10c<9k:18'5a`=9==07d?8b;29 4ba28k976g=a;29 4ba282>76sm14095?0=83:p(dg853>"?9390D<6<;%g:>74c3g;n=7m4$0c4>`0dg813>N6ll10e?:50;&2`c<5<21b884?:%3gb?1c32e:;i4?:%3gb?73?21b=:l50;&2`c<6i;10e?o50;&2`c<60<10qo?:3;392?6=8r.:o;493:J2g`=O9j20(5+e8816a=i9l;1h6*>a68f2>o5;3:1(5$0fe>72<3`>>6=4+1ed93a=5$0fe>4g532c9m7>5$0fe>4>232wi=8:51;494?6|,8i=6;=4H0af?M7d02.:hk497:&;5?5<@8287)k6:30g?k7b93o0(1<7*>dg810>=n<<0;6)?kf;5g?>i6?m0;6)?kf;373>=n9>h1<7*>dg82e7=dg82<0=97?56;294~"6k?0=?6F>cd9K5f><,8nm6;94$9397>N60:1/i44=2e9m5`7=n2.:m:4j6:k17?6=,8nm6?94H0ff?>o5<3:1(o5i3:1({e9<<1=7850;2x 4e12?90D"6lo0=;6*71;18L4>43-o26?5<#9ml1>:5G1eg8?l43290/=ih52598m13=83.:hk48d:9l52b=83.:hk4>4698m41e290/=ih51`08?l4f290/=ih51978?xd6=>0:6;4?:1y'5f0=>:1C=nk4H0a;?!7cn3<<7)6>:29K5=5<,l31>?j4n0g2>47<,8k<6h84i3194?"6lo09;6F>dd98m72=83.:hk4=4:9j00<72-;oj79k;:m23a<72-;oj7?;7:9j52d=83.:hk4>a398m7g=83.:hk4>8498yg7a03;1:7>50z&2g3<1>2B:oh5G1b:8 =7=?2.:hk497:J2<6=#m009>i5a1d3957=#9h=1i;5f2283>!7cn38<7E?ke:9j00<72-;oj79k;:m23a<72-;oj7?;7:9j61<72-;oj7<;;:k23g<72-;oj7?n2:9j6d<72-;oj7?75:9~f4`>280=6=4?{%3`2?013A;hi6F>c99'<4<03-;oj788;I3;7>"b1389h6`>e0827>"6i>0n:6g=3;29 4ba2;=0Dt$0a5>30<@8in7E?l8:&;5?1<,8nm6;94H0:0?!c>2;8o7c?j1;37?!7f?3o=7d<<:18'5a`=:>1C=ik4;h66>5<#9ml1;i54o05g>5<#9ml1=994;h07>5<#9ml1>954i05a>5<#9ml1=l<4;h0b>5<#9ml1=5;4;|`2bg<62?0;6=u+1b4923=O9jo0D2=#9ml1::5G1918 `?=:;n0b:078 4g02l<0e?=50;&2`c<5?2B:hh54i5794?"6lo03:1c7852>N6kl1C=n64$9393>"6lo0=;6F>829'a<<5:m1e=h?5179'5d1=m?1b>>4?:%3gb?403A;oi65f4483>!7cn3=o76a>7e83>!7cn3;?;65f2583>!7cn38?76g>7c83>!7cn3;j>65f2`83>!7cn3;3965rb0dg>4<1290;w)?l6;45?M7dm2B:o55+8084?!7cn3<<7E?73:&f=?45l2d:i<4>7:&2e22c9?7>5$0fe>71<@8nn76g;5;29 4ba2>n07b?8d;29 4ba28><76g=4;29 4ba2;>07d?8b;29 4ba28k976g=a;29 4ba282>76sm1gd95?0=83:p(74c3g;n=7?7;%3b3?c13`886=4+1ed962=O9mo07d:::18'5a`=?m10c<9k:18'5a`=9==07d<;:18'5a`=:=10e<9m:18'5a`=9h807d6782>3<729q/=n85629K5fc<@8i37)?kf;44?!>62:1C=5=4$d;967b`0dg813>N6ll10e?:50;&2`c<5<21b884?:%3gb?1c32e:;i4?:%3gb?73?21b=:l50;&2`c<6i;10e?o50;&2`c<60<10qo?97;392?6=8r.:o;493:J2g`=O9j20(5+e8816a=i9l;1=l5+1`59a3=n::0;6)?kf;04?M7cm21b>94?:%3gb?4332c?97>5$0fe>2b<3f;5$0fe>42032c:;o4?:%3gb?7f:21b>l4?:%3gb?7?=21vn<87:085>5<7s-;h:78<;I3`a>N6k11/=ih5669'<4<43A;3?6*j9;01`>h6m80:n6*>a68f2>o5;3:1(5$0fe>72<3`>>6=4+1ed93a=5$0fe>4g532c9m7>5$0fe>4>232wi=;751;494?6|,8i=6;=4H0af?M7d02.:hk497:&;5?5<@8287)k6:30g?k7b93;h7)?n7;g5?l44290/=ih5269K5ac<3`8?6=4+1ed961=dg84`>=h9>n1<7*>dg8202=:783>5}#9j<1:>5G1bg8L4e?3-;oj788;%:2>6=O9190(h7523f8j4c628n0(1<7*>dg810>=n<<0;6)?kf;5g?>i6?m0;6)?kf;373>=n9>h1<7*>dg82e7=dg82<0=cd9K5f><,8nm6;94$9397>N60:1/i44=2e9m5`7=9l1/=l95e79j66<72-;oj7<8;I3ga>=n:=0;6)?kf;07?>o3=3:1(o6?k0;6)?kf;3b6>=n:h0;6)?kf;3;1>=zj83<87E?le:J2g==#9ml1::5+8080?M7?;2.n57<=d:l2a4<6n2.:m:4j6:k17?6=,8nm6?94H0ff?>o5<3:1(o5i3:1({e9?n1=7850;2x 4e12?90D"6lo0=;6*71;18L4>43-o26?5<#9ml1>:5G1eg8?l43290/=ih52598m13=83.:hk48d:9l52b=83.:hk4>4698m41e290/=ih51`08?l4f290/=ih51978?xd383;147>50z&2g3<1<2B:oh5G1b:8 =7=;2.:hk4>a29K5=5<,l31>?j4n0g2>77<,8k<6h84i3194?"6lo09;65f4483>!7cn3=o76g>7g83>!7cn3;jn65`16f94?"6lo0:8:54i3694?"6lo09865f1`094?"6lo0:m?5G1b58?l7?=3:1(50;&2`c<6ij10qo:>:08;>5<7s-;h:78;;I3`a>N6k11/4<4<;%3gb?7f;2B:4>5+e8816a=i9l;1>?5+1`59a3=n::0;6)?kf;04?>o3=3:1(i6?m0;6)?kf;373>=n:=0;6)?kf;07?>o6i;0;6)?kf;3b6>N6k>10e<6::18'5a`=91?0Dt$0a5>32<@8in7E?l8:&;5?5<,8nm6"b1389h6`>e0817>"6i>0n:6g=3;29 4ba2;=07d:::18'5a`=?m10e<9i:18'5a`=9hh07b?8d;29 4ba28><76g=4;29 4ba2;>07d?n2;29 4ba28k97E?l7:9j5=3=83.:hk4>849K5f1<3`;j<7>5$0fe>4gd32wi8>4>:983>5}#9j<1:95G1bg8L4e?3-2:6>5+1ed95d5<@8287)k6:30g?k7b938?7)?n7;g5?l44290/=ih52698m13=83.:hk48d:9j52`=83.:hk4>ac98k41c290/=ih51558?l43290/=ih52598m4g5290/=ih51`08L4e032c:484?:%3gb?7?=2B:o:54i0c3>5<#9ml1=lm4;|`70?7=03:1c7850>N6kl1C=n64$9397>"6lo0:m>5G1918 `?=:;n0b:378 4g02l<0e?=50;&2`c<5?21b884?:%3gb?1c32c:;k4?:%3gb?7fj21d=:j50;&2`c<6<>10e?:50;&2`c<5<21b=l<50;&2`c<6i;1C=n94;h3;1?6=,8nm6<6:;I3`3>=n9h:1<7*>dg82ef=6F>cd9K5f><,1;1?6*>dg853>N60:1/i44=2e9m5`7=:?1/=l95e79j66<72-;oj7<8;:k10?6=,8nm6?:4;h66>5<#9ml1;i54o05g>5<#9ml1=994;h34f?6=,8nm6t$0a5>34<@8in7E?l8:&;5?5<,8nm6;94H0:0?!c>2;8o7c?j1;04?!7f?3o=7d<<:18'5a`=:>10e?:50;&2`c<5<21b884?:%3gb?1c32e:;i4?:%3gb?73?21b=:l50;&2`c<6i;10e?o50;&2`c<60<10qo<=6;392?6=8r.:o;492:J2g`=O9j20(5?53:&2`c<1?2B:4>5+e8816a=i9l;1>55+1`59a3=n::0;6)?kf;04?>o5<3:1(o5i3:1({e:;=1=7850;2x 4e12?80D"?9390(43-o26?3-;j;7k9;h00>5<#9ml1>:54i3694?"6lo09865f4483>!7cn3=o76a>7e83>!7cn3;?;65f16`94?"6lo0:m?54i3c94?"6lo0:4854}c013:1c7856>N6kl1C=n64$9397>"6lo0=;6F>829'a<<5:m1e=h?52`9'5d1=m?1b>>4?:%3gb?4032c987>5$0fe>72<3`>>6=4+1ed93a=5$0fe>4g532c9m7>5$0fe>4>232wi>?751;494?6|,8i=6;<4H0af?M7d02.3=7=4$0fe>31<@8287)k6:30g?k7b938i7)?n7;g5?l44290/=ih52698m72=83.:hk4=4:9j00<72-;oj79k;:m23a<72-;oj7?;7:9j52d=83.:hk4>a398m7g=83.:hk4>8498yg45i3;1:7>50z&2g3<1:2B:oh5G1b:8 =7=;2.:hk497:J2<6=#m009>i5a1d396f=#9h=1i;5f2283>!7cn38<76g=4;29 4ba2;>07d:::18'5a`=?m10c<9k:18'5a`=9==07d?8b;29 4ba28k976g=a;29 4ba282>76sm23`95?0=83:p(74c3g;n=71<7*>dg810>=n<<0;6)?kf;5g?>i6?m0;6)?kf;373>=n9>h1<7*>dg82e7=dg82<0=3<;7E?le:J2g==#9ml1::5+8080?M7?;2.n57<=d:l2a4<5m2.:m:478:k17?6=,8nm6?94;h66>5<#9ml1;i54o05g>5<#9ml1=994;h07>5<#9ml1>954i05a>5<#9ml1=l<4;h0b>5<#9ml1=5;4;|`:f?7=>3:1c7854>N6kl1C=n64$0fe>31<,1;1?6F>829'a<<5:m1e=h?52g9'5d1=011b>>4?:%3gb?4032c?97>5$0fe>2b<3f;5$0fe>42032c987>5$0fe>72<3`;5$0fe>4g532c9m7>5$0fe>4>232wi5k4>:783>5}#9j<1:=5G1bg8L4e?3-;oj788;%:2>6=O9190(h7523f8j4c62::0(t$0a5>36<@8in7E?l8:&2`c<1?2.3=7=4H0:0?!c>2;8o7c?j1;12?!7f?3237d<<:18'5a`=:>10e9;50;&2`c<0l21d=:j50;&2`c<6<>10e?:50;&2`c<5<21b=:l50;&2`c<6i;10e?o50;&2`c<60<10qoo>:085>5<7s-;h:78?;I3`a>N6k11/=ih5669'<4<43A;3?6*j9;01`>h6m808>6*>a68;<>o5;3:1(50z&2g3<182B:oh5G1b:8 4ba2?=0(5?53:J2<6=#m009>i5a1d3976=#9h=1455f2283>!7cn38<76g;5;29 4ba2>n07b?8d;29 4ba28><76g=4;29 4ba2;>07d?8b;29 4ba28k976g=a;29 4ba282>76sma282>3<729q/=n85619K5fc<@8i37)?kf;44?!>62:1C=5=4$d;967b:4$0c4>=>dg813>=n<<0;6)?kf;5g?>i6?m0;6)?kf;373>=n:=0;6)?kf;07?>o6?k0;6)?kf;3b6>=n:h0;6)?kf;3;1>=zjh>1=7850;2x 4e12?:0D"6lo0=;6*71;18L4>43-o26?5<#9ml1>:54i5794?"6lo04<1290;w)?l6;43?M7dm2B:o55+1ed922=#08087E?73:&f=?45l2d:i<4<6:&2e25$0fe>71<3`>>6=4+1ed93a=cd9K5f><,8nm6;94$9397>N60:1/i44=2e9m5`7=;>1/=l95899j66<72-;oj7<8;:k71?6=,8nm6:j4;n34`?6=,8nm6<:8;:k10?6=,8nm6?:4;h34f?6=,8nm65G1918 `?=:;n0b:2:8 4g02120e?=50;&2`c<5?21b884?:%3gb?1c32e:;i4?:%3gb?73?21b>94?:%3gb?4332c:;o4?:%3gb?7f:21b>l4?:%3gb?7?=21vn4j51;494?6|,8i=6;>4H0af?M7d02.:hk497:&;5?5<@8287)k6:30g?k7b93927)?n7;:;?l44290/=ih52698m13=83.:hk48d:9l52b=83.:hk4>4698m72=83.:hk4=4:9j52d=83.:hk4>a398m7g=83.:hk4>8498yg?b280=6=4?{%3`2?073A;hi6F>c99'5a`=>>1/4<4<;I3;7>"b1389h6`>e080e>"6i>0346g=3;29 4ba2;=07d:::18'5a`=?m10c<9k:18'5a`=9==07d<;:18'5a`=:=10e<9m:18'5a`=9h807d009K5fc<@8i37)?kf;de?!c>2;8o7c?j1;1a?!7f?3237d98:18'5a`=?l10e:650;&2`c<0n21b=l>50;&2`c<6i810c<==:18'5a`=9==07plkd;390?6=8r.:o;4i2:J2g`=O9j20(2;8o7)6>:5g8j4c62:i0(c:l2`a<732c<47>5$0fe>4ede81?>i6;;0;6)?kf;373>=zjm31=7:50;2x 4e12o80D"6lo0:495+e8816a=#080?i6`>e080`>"6i>0346g87;29 4ba28i0b=83.:hk4>c:l2`a<632c<57>5$0fe>4e5<#9ml1=994;|`g0?7=<3:1c78244=O9jo0D5<#9ml1;h54i6:94?"6lo05<#9ml1=994;|`gg?7=<3:1c78e6>N6kl1C=n64$0fe>4>33-o26?1ch4$0c4>=>=1<7*>dg82g>h6lm0;76g88;29 4ba28i0bc:l2`a<532e:??4?:%3gb?73?21vni651;694?6|,8i=6k<4H0af?M7d02.:hk4>859'a<<5:m1/4<4;e:l2a4<382.:m:478:k43?6=,8nm65=21<7*>dg82g>h6lm0:76g89;29 4ba28i0b50z&2g3<6881C=nk4H0a;?!7cn3lm7)k6:30g?k7b93>:7)?n7;:;?l10290/=ih57d98m2>=83.:hk48f:9j5d6=83.:hk4>a098k455290/=ih51558?xdcj3;187>50z&2g362=o0b:508 4g02120e:950;&2`c<6k2d:hi4?;:k44=31<7*>dg82g>h6lm0976a>3383>!7cn3;?;65rbe595?2=83:p(dg82<1=#m009>i5+8087a>h6m80??6*>a68;<>o0?3:1(;:k4=?6=,8nm67=7?54;294~"6k?0:<<5G1bg8L4e?3-;oj7hi;%g:>74c3g;n=7:;;%3b3?>?3`=<6=4+1ed93`=21<7*>dg84b>=n9h:1<7*>dg82e4=6F>cd9K5f><,8nm6<6;;%g:>74c3-2:69k4n0g2>13<,8k<6564i6594?"6lo0:o6`>de83?>o003:1(1<7>t$0a5>c4<@8in7E?l8:&2`c<60=1/i44=2e9'<4<3m2d:i<4;6:&2e25$0fe>4ede82?>o013:1(0b82>1<729q/=n851128L4eb3A;h46*>dg8eb>"b1389h6`>e0873>"6i>0n:6g=5;29 4ba2>l07d:8:18'5a`=?l10e<76sm10`95?5=83:p(?j4n0g2>1><,8k<6h84i3794?"6lo0!7cn3=o76a>3383>!7cn3;?;65rb02g>4<3290;w)?l6;334>N6kl1C=n64$0fe>c`<,l31>?j4n0g2>1?<,8k<6h84i3794?"6lo0!7cn3=n76g>a183>!7cn3;j=65`12094?"6lo0:8:54}c32g?7=;3:1c782ga=O9jo0D5<#9ml1;i54o011>5<#9ml1=994;|`24c<62=0;6=u+1b49556<@8in7E?l8:&2`c5<#9ml1;h54i0c3>5<#9ml1=l?4;n306?6=,8nm6<:8;:a54b=9391<7>t$0a5>4ec3A;hi6F>c99'5a`=9ji0(h7523f8j4c62=i0(4698yg76m3;1?7>50z&2g3<6km1C=nk4H0a;?!7cn3;ho6*j9;01`>h6m80?i6*>a68f2>o5=3:1("6lo0mj6*j9;01`>h6m80?j6*>a68f2>o5=3:1({e98l1=7=50;2x 4e128io7E?le:J2g==#9ml1=nm4$d;967b4$0c4>`0dg84`>=nm10;6)?kf;5g?>i6;;0;6)?kf;373>=zj8;>6<4;:183!7d>3;;<6F>cd9K5f><,8nm6kh4$d;967b`0dg84b>=n<>0;6)?kf;5f?>o6i90;6)?kf;3b5>=h9:81<7*>dg8202=2c997>5$0fe>2b<3`o36=4+1ed93a=:583>5}#9j<1==>4H0af?M7d02.:hk4if:&f=?45l2d:i<4:3:&2e22c997>5$0fe>2`<3`><6=4+1ed93`=7>5$0fe>42032wi=??51;194?6|,8i=6N6k11/=ih51ba8 `?=:;n0b:468 4g02l<0e?;50;&2`c<0l21bi54?:%3gb?1c32e:??4?:%3gb?73?21vn<<=:080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;76?!7f?3o=7d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qoo8:087>5<7s-;h:7??0:J2g`=O9j20(:448 4g02120e?;50;&2`c<0n21b8:4?:%3gb?1b32c:m=4?:%3gb?7f921d=><50;&2`c<6<>10qom?:080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;74?!7f?3237d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qool:087>5<7s-;h:7??0:J2g`=O9j20(:4:8 4g02120e?;50;&2`c<0n21b8:4?:%3gb?1b32c:m=4?:%3gb?7f921d=><50;&2`c<6<>10qom::080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;7:?!7f?3237d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qooj:087>5<7s-;h:7??0:J2g`=O9j20(:4c8 4g02120e?;50;&2`c<0n21b8:4?:%3gb?1b32c:m=4?:%3gb?7f921d=><50;&2`c<6<>10qom9:080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;7a?!7f?3237d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qol?:087>5<7s-;h:7??0:J2g`=O9j20(:4a8 4g02120e?;50;&2`c<0n21b8:4?:%3gb?1b32c:m=4?:%3gb?7f921d=><50;&2`c<6<>10qom8:080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;7g?!7f?3237d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qol=:087>5<7s-;h:7??0:J2g`=O9j20(:4g8 4g02120e?;50;&2`c<0n21b8:4?:%3gb?1b32c:m=4?:%3gb?7f921d=><50;&2`c<6<>10qom7:080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;7e?!7f?3237d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qol;:087>5<7s-;h:7??0:J2g`=O9j20(:728 4g02120e?;50;&2`c<0n21b8:4?:%3gb?1b32c:m=4?:%3gb?7f921d=><50;&2`c<6<>10qom6:080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;42?!7f?3237d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qol9:087>5<7s-;h:7??0:J2g`=O9j20(:708 4g02120e?;50;&2`c<0n21b8:4?:%3gb?1b32c:m=4?:%3gb?7f921d=><50;&2`c<6<>10qomn:080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;40?!7f?3237d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qol7:087>5<7s-;h:7??0:J2g`=O9j20(:768 4g02120e?;50;&2`c<0n21b8:4?:%3gb?1b32c:m=4?:%3gb?7f921d=><50;&2`c<6<>10qomm:080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;46?!7f?3237d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qoln:087>5<7s-;h:7??0:J2g`=O9j20(:748 4g02120e?;50;&2`c<0n21b8:4?:%3gb?1b32c:m=4?:%3gb?7f921d=><50;&2`c<6<>10qoml:080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;44?!7f?3237d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qoll:087>5<7s-;h:7??0:J2g`=O9j20(:7:8 4g02120e?;50;&2`c<0n21b8:4?:%3gb?1b32c:m=4?:%3gb?7f921d=><50;&2`c<6<>10qomk:080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;4:?!7f?3237d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qoo7:087>5<7s-;h:7??0:J2g`=O9j20(:7c8 4g02120e?;50;&2`c<0n21b8:4?:%3gb?1b32c:m=4?:%3gb?7f921d=><50;&2`c<6<>10qom>:080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;4a?!7f?3237d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qoon:087>5<7s-;h:7??0:J2g`=O9j20(:7a8 4g02120e?;50;&2`c<0n21b8:4?:%3gb?1b32c:m=4?:%3gb?7f921d=><50;&2`c<6<>10qom=:080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;4g?!7f?3237d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qom<:080>5<7s-;h:7?ld:J2g`=O9j20(2;8o7c?j1;4f?!7f?3237d<::18'5a`=?m10eh650;&2`c<0l21d=><50;&2`c<6<>10qoj>:080>5<7s-;h:7h?;I3`a>N6k11/=ih51968 `?=:;n0(5?5109m5`7=>o1/=l95899j32<72-;oj7?l;o3g`?6<3`=36=4+1ed95f=i9mn1=65`12094?"6lo0:8:54}cf3>4<4290;w)?l6;d3?M7dm2B:o55+1ed95=2<,l31>?j4$93900=i9l;1;=5+1`59<==n?>0;6)?kf;3`?k7cl3:07d97:18'5a`=9j1e=ij51:9l564=83.:hk4>4698ygea28086=4?{%3`2?`73A;hi6F>c99'5a`=91>0(h7523f8 =7=<<1e=h?5709'5d1=011b;:4?:%3gb?7d3g;oh7>4;h5;>5<#9ml1=n5a1ef95>=h9:81<7*>dg8202=3l;7E?le:J2g==#9ml1=5:4$d;967b<,1;18o5a1d3937=#9h=1455f7683>!7cn3;h7c?kd;28?l1?290/=ih51b9m5ab=921d=><50;&2`c<6<>10qo??8;397?6=8r.:o;4i0:J2g`=O9j20(2;8o7)6>:e9m5`7=?:1/=l95e79j32<72-;oj7?l;o3g`?6<3`=36=4+1ed95f=i9mn1=65`12094?"6lo0:8:54}c33=?7=<3:1c78e6>N6kl1C=n64$0fe>4>33-o26?46`0=1<7*>dg82g>h6lm0;76g88;29 4ba28i0bc:l2`a<532e:??4?:%3gb?73?21vn<>m:087>5<7s-;h:7h=;I3`a>N6k11/=ih51968 `?=:;n0(5?5119m5`7=?<1/=l95e79j32<72-;oj7?l;o3g`?6<3`=36=4+1ed95f=i9mn1=65f7883>!7cn3;h7c?kd;08?j74:3:1({em;0:684?:1y'5f0=n=1C=nk4H0a;?!7cn3;386*j9;01`>"?93h0b:648 4g02120e:950;&2`c<6k2d:hi4?;:k44=31<7*>dg82g>h6lm0976g8a;29 4ba28i0b50z&2g362890b:658 4g02120e:950;&2`c<6k2d:hi4?;:k44=31<7*>dg82g>h6lm0976g8a;29 4ba28i0b50z&2g36211e=h?5799'5d1=011b;:4?:%3gb?7d3g;oh7>4;h5;>5<#9ml1=n5a1ef95>=n?00;6)?kf;3`?k7cl3807d9n:18'5a`=9j1e=ij53:9l564=83.:hk4>4698ygc4280>6=4?{%3`2?`33A;hi6F>c99'5a`=91>0(h7523f8 =7=m2d:i<489:&2e25$0fe>4ede82?>o013:1(t$0a5>c2<@8in7E?l8:&2`c<60=1/i44=2e9'<4<3n2d:i<48a:&2e25$0fe>4ede82?>o013:1(t$0a5>c2<@8in7E?l8:&2`c<60=1/i44=2e9'<4<612d:i<48b:&2e25$0fe>4ede82?>o013:1(t$0a5>c2<@8in7E?l8:&2`c<60=1/i44=2e9'<4<>3g;n=79l;%3b3?>?3`=<6=4+1ed95f=i9mn1<65f7983>!7cn3;h7c?kd;38?l1>290/=ih51b9m5ab=:21b;l4?:%3gb?7d3g;oh7=4;n306?6=,8nm6<:8;:a50>=93?1<7>t$0a5>c2<@8in7E?l8:&2`c<60=1/i44=2e9'<4<13g;n=79k;%3b3?c13`=<6=4+1ed95f=i9mn1<65f7983>!7cn3;h7c?kd;38?l1>290/=ih51b9m5ab=:21b;l4?:%3gb?7d3g;oh7=4;n306?6=,8nm6<:8;:a0d<62;0;6=u+1b493g=O9jo0D7)69:6f8 `?=:;n0b:6g8 4g02l<0e:850;&2`c<0l21d=><50;&2`c<6<>10qo?l0;396?6=8r.:o;4>459K5fc<@8i37)?kf;3f?M>23-2=6<:8;%g:>74c3g;n=79i;%3b3?c13`==6=4+1ed93a=:383>5}#9j<1=9:4H0af?M7d02.:hk4>e:J;1>"?>3;?;6*j9;01`>h6m803<6*>a68f2>o0>3:1({e9ko1=7<50;2x 4e128>?7E?le:J2g==#9ml1=h5G849'<3<6<>1/i44=2e9m5`7=081/=l95e79j33<72-;oj79k;:m277<72-;oj7?;7:9~f4dc28096=4?{%3`2?73<2B:oh5G1b:8 4ba28o0D5;4$949511<,l31>?j4n0g2>=4<,8k<6h84i6494?"6lo0c78201=O9jo0D7)69:064?!c>2;8o7c?j1;:0?!7f?3o=7d99:18'5a`=?m10c<==:18'5a`=9==07pl>bc82>7<729q/=n851568L4eb3A;h46*>dg82a>N?=2.3:7?;7:&f=?45l2d:i<474:&2e22c<:7>5$0fe>2b<3f;8>7>5$0fe>42032wi=oo51;094?6|,8i=6<:;;I3`a>N6k11/=ih51d9K<0=#0?0:8:5+e8816a=i9l;1485+1`59a3=n??0;6)?kf;5g?>i6;;0;6)?kf;373>=zj8h26<4=:183!7d>3;?86F>cd9K5f><,8nm64698yg3e28096=4?{%3`2?73<2B:oh5G1b:8 4ba28o0D5;4$949511<,l31>?j4n0g2>=1<,8k<6h84i6494?"6lo04<5290;w)?l6;370>N6kl1C=n64$0fe>4c<@1?0(5851558 `?=:;n0b:9:8 4g02l<0e:850;&2`c<0l21d=><50;&2`c<6<>10qo;6:081>5<7s-;h:7?;4:J2g`=O9j20(`0<1<7*>dg84`>=h9:81<7*>dg8202=3;?86F>cd9K5f><,8nm64698yg46j3;1>7>50z&2g3<6<=1C=nk4H0a;?!7cn3;n7E6:;%:5>4203-o26?e3-;j;7k9;h55>5<#9ml1;i54o011>5<#9ml1=994;|`15d<62;0;6=u+1b49512<@8in7E?l8:&2`c<6m2B396*76;373>"b1389h6`>e08;g>"6i>0n:6g86;29 4ba2>n07b?<2;29 4ba28><76sm20;95?4=83:p(469'a<<5:m1e=h?58e9'5d1=m?1b;;4?:%3gb?1c32e:??4?:%3gb?73?21vn??7:081>5<7s-;h:7?;4:J2g`=O9j20(`0<1<7*>dg84`>=h9:81<7*>dg8202=128><7)k6:30g?k7b932m7)?n7;g5?l11290/=ih57e98k455290/=ih51558?xd59?0:6?4?:1y'5f0=9=>0D"6lo0:i6F75:&;2?73?2.n57<=d:l2a4<>82.:m:4j6:k42?6=,8nm6:j4;n306?6=,8nm6<:8;:a643=9381<7>t$0a5>4233A;hi6F>c99'5a`=9l1C485+878202=#m009>i5a1d39=4=#9h=1i;5f7783>!7cn3=o76a>3383>!7cn3;?;65rb337>4<5290;w)?l6;370>N6kl1C=n64$0fe>4c<@1?0(5851558 `?=:;n0b:808 4g02l<0e:850;&2`c<0l21d=><50;&2`c<6<>10qo??e;397?6=8r.:o;4jf:J2g`=O9j20(2;8o7)6>:048j4c62090(c:l2`a<732e:??4?:%3gb?73?21b;54?:%3gb?7d3g;oh7?4n0a7>5=cd9K5f><,8nm6<6;;%g:>74c3-2:6<84n0g2><2<,8k<6h84i6594?"6lo0:o6`>de83?>i6;;0;6)?kf;373>=n?10;6)?kf;3`?k7cl3;0b50z&2g3628<0b:878 4g02l<0e:950;&2`c<6k2d:hi4?;:m277<72-;oj7?;7:9j3=<72-;oj7?l;o3g`?7c78fb>N6kl1C=n64$0fe>4>33-o26?40`0=1<7*>dg82g>h6lm0;76a>3383>!7cn3;?;65f7983>!7cn3;h7c?kd;38j4e32910qo?>6;397?6=8r.:o;4jf:J2g`=O9j20(2;8o7)6>:048j4c620=0(c:l2`a<732e:??4?:%3gb?73?21b;54?:%3gb?7d3g;oh7?4n0a7>5=cd9K5f><,8nm6<6;;%g:>74c3-2:6<84n0g2><><,8k<6h84i6594?"6lo0:o6`>de83?>i6;;0;6)?kf;373>=n?10;6)?kf;3`?k7cl3;0bc99'5a`=91>0(h7523f8 =7=9?1e=h?5989'5d1=011b;:4?:%3gb?7d3g;oh7>4;n306?6=,8nm6<:8;:k44=i9j>1<65rb`d95?5=83:p(dg82<1=#m009>i5+80822>h6m802m6*>a68;<>o0?3:1(:283>5}#9j<1ik5G1bg8L4e?3-;oj7?74:&f=?45l2.3=7?9;o3f5??e3-;j;767;h54>5<#9ml1=n5a1ef94>=h9:81<7*>dg8202=21<7*>dg82g>h6lm0:7c?l4;28?xde;3;1?7>50z&2g3628<0b:8a8 4g02120e:950;&2`c<6k2d:hi4?;:m277<72-;oj7?;7:9j3=<72-;oj7?l;o3g`?74<4290;w)?l6;ge?M7dm2B:o55+1ed95=2<,l31>?j4$93953=i9l;15i5+1`59<==n?>0;6)?kf;3`?k7cl3:07b?<2;29 4ba28><76g88;29 4ba28i0b859'a<<5:m1/4<4>6:l2a4<>m2.:m:478:k43?6=,8nm65=c583?>{ej00:6>4?:1y'5f0=mo1C=nk4H0a;?!7cn3;386*j9;01`>"?93;=7c?j1;;e?!7f?3237d98:18'5a`=9j1e=ij50:9l564=83.:hk4>4698m2>=83.:hk4>c:l2`a<63g;h87>4;|`af?7=;3:1c78fb>N6kl1C=n64$0fe>4>33-o26?404$0c4>=>=1<7*>dg82g>h6lm0;76a>3383>!7cn3;?;65f7983>!7cn3;h7c?kd;38j4e32910qolk:080>5<7s-;h:7ki;I3`a>N6k11/=ih51968 `?=:;n0(5?5179m5`7=i81/=l95899j32<72-;oj7?l;o3g`?6<3f;8>7>5$0fe>42032c<47>5$0fe>4e=zjh31=7=50;2x 4e12ll0D"6lo0:495+e8816a=#080::6`>e08b6>"6i>0346g87;29 4ba28i0b?3`=<6=4+1ed95f=i9mn1<65`12094?"6lo0:8:54i6:94?"6lo0:o6`>de82?k7d<3:07pl>2282>6<729q/=n85eg9K5fc<@8i37)?kf;3;0>"b1389h6*71;35?k7b93k?7)?n7;g5?l10290/=ih51b9m5ab=821d=><50;&2`c<6<>10e:650;&2`c<6k2d:hi4>;o3`0?6<3thh87?53;294~"6k?0nj6F>cd9K5f><,8nm6<6;;%g:>74c3-2:6<84n0g2>d3<,8k<6564i6594?"6lo0:o6`>de83?>i6;;0;6)?kf;373>=n?10;6)?kf;3`?k7cl3;0b50z&2g362o1e=h?5a79'5d1=m?1b;:4?:%3gb?7d3g;oh7>4;h5;>5<#9ml1=n5a1ef95>=n?00;6)?kf;3`?k7cl3807d9n:18'5a`=9j1e=ij53:9l564=83.:hk4>4698yg72i3;197>50z&2g362?1e=h?5a69'5d1=m?1b;:4?:%3gb?7d3g;oh7>4;h5;>5<#9ml1=n5a1ef95>=n?00;6)?kf;3`?k7cl3807d9n:18'5a`=9j1e=ij53:9l564=83.:hk4>4698yg72j3;197>50z&2g362?1e=h?5a99'5d1=m?1b;:4?:%3gb?7d3g;oh7>4;h5;>5<#9ml1=n5a1ef95>=n?00;6)?kf;3`?k7cl3807d9n:18'5a`=9j1e=ij53:9l564=83.:hk4>4698yg5229096?4<{%3`2?473A;hi6F>c99'a<<5:m1e=h?5a89'5d1=m?1b;;4?::m277<722hdg812>"?>3=o7E6:;%g:>74c3g;n=7on;%3b3?c13`==6=4+1ed93a=dg812>"b1389h6`>e08bf>"6i>0n:6g86;39 4ba2>n07b?<2;39 4ba28><76s|7783>7}Y??16;n486:p564=838pR<==;<3e>4553ty52z?4g?74:27:j799;|a74<72;096>u+1b4965=O9jo0D74c3g;n=7ol;%3b3?c13`==6=44o011>5<i1=7<50;2x 4e12>i0(i6;;0;6)?kf;373>=zj8l1=7<50;2x 4e128l0(:`g8 4g02l<0e:851;&2`c<0l21d=><51;&2`c<6<>10q~99:181[1134=h6:84}r306?6=:rT:??521g8277=z{>i1<7c78;6>N6kl1C=n64$0fe>4c<,l31>?j4n0g2>d`<,8k<6h84i6494?"6lo07>50z&2g3469K5ac<3th8m7?52;294~"6k?03>6F>cd9K5f><,8nm6`0<1<7*>dg84`>=h9:81<7*>dg8202=O9mo07pl>0682>7<729q/=n85839K5fc<@8i37)?kf;3f?!c>2;8o7c?j1;`1?!7f?3o=7d99:18'5a`=?m10c<==:18'5a`=9==0D=83=1?77t$0a5>4g>3A;hi6F>c99'<4<33A;3?6*j9;01`>h6m80i?6*>a68f2>o6?3:17d?7:188m4g=831b=o4?::k13?6=3`>>6=44o05g>5<3;jm6*>dg82ed=#9>i1:55G1b18L4>43-o26?1=i9l;1n95+1`59a3=n<<0;66g=4;29j4e32810e?950;J23<=>o603:17d?8:188k41c2900c<9j:188yg4?28096=4?{%3gb?7b3g;n=7l:;%3b3?c13`==6=4+1ed93a={t<<0;6?uQ449>5d>=<<1v?950;0xZ71<5;21;;5rs0`94?4|V8h0152z\2<>;6i10:46s|1683>7}Y9>16=l65169~w41c2909wS?8d:?2e=<6?m1v?:50;0x94g?2;>01v3>a9813>;503;8>6srb0df>4<1290;w)?l6;45?M7dm2B:o55+8084?!7cn3<<7E?73:&f=?45l2d:i<4m7:&2e22c9?7>5$0fe>71<@8nn76g;5;29 4ba2>n07b?8d;29 4ba28><76g=4;29 4ba2;>07d?8b;29 4ba28k976g=a;29 4ba282>76sm13794?1=;33p(a`9'52e=>11C=n=4H0:0?!c>2;8o7)6>:49m5`7=j01/=l95e79j00<722c987>5n0a7>4=7898m4d=831b=l4?::k25<4<5290;w)?kf;3f?k7b93hj7)?n7;g5?l11290/=ih57e98k455290/=ih51558L4bb32wi=n751;394?6|,8nm6<::;o3f5?de3-;j;7k9;n35a?6=,8nm6<:8;:p00<72;qU88521`:900=z{;=1<7=??1v5<5sW;j70?n8;3b?xu603:1>vP>8:?2e=<602wx=:4?:3y]52=:9h21=:5rs05g>5<5sW;a9823a=z{;>1<772<58i26<8j;|q15<7s-;h:789;I3`a>N6k11/4<48;%3gb?003A;3?6*j9;01`>h6m80io6*>a68f2>o5;3:1(5$0fe>2b<3f;5$0fe>42032c987>5$0fe>72<3`;5$0fe>4g532c9m7>5$0fe>4>232wi==;51;094?6|,8nm6`e<@8i37c?j1;`g?l11290/=ih57e98k455290/=ih51558?xd68=0:694?:1y'5a`=91>0D"b1389h6*>c78e7>"?93;97c?j1;`f?!7f?3o=7d98:18'5a`=9j1e=ij50:9j3=<72-;oj7?l;o3g`?7<3`=26=4+1ed95f=i9mn1>65`12094?"6lo0:8:54}c36`?7=:3:1dg82a>"6k?0no6F>c99m5`7=jo1b;;4?:%3gb?1c32e:??4?:%3gb?73?21vn<;l:080>5<7s-;oj7?74:J2g==O9jo0(h7523f8 4e12o;0(5?54c9m5`7=k91/=l95e79j32<72-;oj7?l;o3g`?6<3`=36=4+1ed95f=i9mn1=65`12094?"6lo0:8:54}c0e>4<6290;w)?kf;340>N6k11C4=5+8784`>"bj3l37c?j1;a2?l70<3:1(2759K5f><@1:0(5857e9'ag<6k81e=h?5c39j522=83.:hk4>7598yg2>280:6=4?{%3gb?70<2B:o55G819'<3<0l2.nn7h8;o3f5?e43`;<87>5$0fe>41332wi9>4>:083>5}#9ml1=::4H0a;?M>73-2=6<:8;%ga>1e5<#9ml1=::4;|`60?7=93:1dg8231=O9j20D5>4$949511<,lh19i5a1d39g0=h9>>1<7*>dg8231=6<4>:183!7cn3;<86F>c99K<5=#0?0:8:5+ec845>h6m80h:6a>7583>!7cn3;<865rb4595?7=83:p("bj3>=7c?j1;a4?j70<3:1({e9k:1=7?50;2x 4ba28=?7E?l8:J;4>"?>3;?;6*jb;6g?k7b93i37b?84;29 4ba28=?76sm1c395?7=83:p("bj3=;7c?j1;a:?j70<3:1({e9k81=7?50;2x 4ba28=?7E?l8:J;4>"?>3;?;6*jb;31a>h6m80hm6a>7583>!7cn3;<865rb0`0>4<6290;w)?kf;340>N6k11C4=5+878202=#mk0:;>5a1d39gg=h9>>1<7*>dg8231=5<#9ml1=::4;|`2f0<6280;6=u+1ed9522<@8i37E6?;%:5>4203-oi68m4n0g2>fb:083>5}#9ml1=::4H0a;?M>73-2=6<:8;%ga>44a3g;n=7mj;n340?6=,8nm6<9;;:a5g>=93;1<7>t$0fe>4133A;h46F70:&;2?73?2d:i<4lf:m231<72-;oj7?84:9~f76e280:6=4?{%3gb?70<2B:o55G819'<3<6<>1/io4j5:l2a4l:082>5<7s-;oj7?84:J2g==O091/4;4>469'ag<6?;1e=h?5d09l522=83.:hk4>7598yg47l3;1=7>50z&2`c<6?=1C=n64H928 =0=9==0(hl5e69m5`7=l;1d=::50;&2`c<6?=10qo759K5f><@1:0(5851558 `d=9;n0b:e18k413290/=ih51668?xd58o0:6<4?:1y'5a`=9>>0D128><7)km:052?k7b93n?7b?84;29 4ba28=?76sm20295?7=83:p("bj3;9o6`>e08g1>i6?=0;6)?kf;340>=zj;;:6<4>:183!7cn3;<86F>c99K<5=#0?0:8:5+ec8235=i9l;1h;5`16694?"6lo0:;954}c027?7=93:1dg8231=O9j20D5>4$949511<,lh1=;h4n0g2>a153z\1b>;4=3==7075<50l1>>52a1817>;f938870o=:3189d5=::16m94=3:?b1?4434k=6?=4=8a966=:1m09?636e;00?85628997p}<5;2961}::9:1>>52213966=::981>>52211966=::9>1>>52217966=::9<1>>52142966=:9<;1>>52140966=:9<91>>52146966=:9>52144966=:9<=1>>521g:966=:9o31>>521gc966=:9oh1>>521ga966=:9on1>>521gd966=:9?<1>>52175966=:9?21>>5217;966=:9?k1>>5217`966=:9?i1>>5217f966=:;<0:??523`842>;6:109;63>fd817>;6:<09;63>f6817>{t;00;6hu241817>;3938870:=:318915=::16894=3:?161<5;279>84=3:?163<5;279>:4=3:?16=<5;279>44=3:?16d<5;279>o4=3:?0e?74:2wx?o4?:8y>05<6?m16==65799>55?=?016=865799>55g=?h16=8o5799>50d=?116==95779>552=?01v>m50;4x917=9>n01<>7:658946>2>=01<>n:6;894632>201<;l:658yv5c290;68k0<;63>0`843>;6=j0<46s|3g83>0}:<=0:;i5211`93==:9<21;:5214c932=:90<<6?=1v9o50;0x91g=9:801<<7:578yv342908wS;<;<7;>45534?86<9;;|q60?6=;rT>863:9;306>;2<3;<86s|5483>6}Y=<169l4>339>10<6?=1v8950;1xZ01<5<4=45952245534?36:84}r7:>5<5s4im6<==;<7:>2045534?j6:84}r7a>5<5s4n:6<==;<7a>2045534o96:64=d293d=:m=0=01h?5789>``<0?2wx4l4?:9y>`6<6;;16i?48a:?f4?1034o?6:94=d193==:lo0<563j1;54?8bb2>20q~6m:18;8b3289970k=:6;89`6=?016i9489:?f7?1f34nm6:64=d393d=:ll0<56s|8b83>=}:l<0:??52e3843>;b83=370k;:6:89`5=?>16hk48a:?f5?1?34nn6:o4}r:g>5<5s43j6<9k;<`e>2041c34ko6:94}r:f>5<5s43h6<9k;2141c34n=6:94=ec932=:l>0<;63kb;54?8b?2>=01im5769>`<<0?27oh798;21<5m:1;552cg843>;dm3=<70om:658yv?7290jw07j:05g?8b528k;70j<:0c3?8b328k;70j::0c3?8b62>201i>5769>gc<0027hi797;2141c34km6:94}r;0>5<5s4k;6<9k;<`2>2141c34h86:94}r;6>5<5s4k96<9k;<`6>2141c34h<6:94}r;4>5<5s4k?6<9k;<`:>2141c34hi6:94}r;:>5<5s4k=6<9k;<`g>2145534kh6?;4=b7960=z{h21<7=t=`:9564<5hk1>852c3811>{ti00;6>u2a88277=:i10:m=52c08f<>{tih0;6?u2a`8277=:k:0996s|ac83>6}:ik0:??52a`82e5=:k;0n46s|ab83>6}:ij0:??52ad811>;d>38>7p}nd;297~;fl3;8>63nc;3b4>;d=3o37p}ne;297~;fm3;8>63m0;06?8e02;?0q~oi:1808ga289970oj:0c3?8e12l20q~l?:1808d7289970l=:3789f>=:<1vo?50;1x9g7=9:801o>51`289f1=m11vo<50;1x9g4=9:801o:5249>g<<5=2wxn>4?:2y>f6<6;;16n?4>a19>g=f1<6;;16n;4=5:?`e?423tyi97>53z?a1?74:27i87?n0:?`=?c?3tyi:7>53z?a2?74:27i47<:;7345534h=6`>45534hj6?;4=ba960=z{k31<7=t=c;9564<5k21=l>4=b`9a==z{kk1<7=t=cc9564<5ki1>852ce811>{tjk0;6>u2bc8277=:jh0:m=52cb8f<>{tjj0;6>u2bb8277=:i109963l1;06?xuel3:1?v3md;306>;ek3;j<63ld;g;?xuem3:1?v3n7;3b4>;d83o370li:011?xud<3:1>v3l4;306>;d;3o37p}k6;296~;c>3;8>63k2;5;?xuc?3:1>v3k7;306>;c;3=37p}k8;296~;c03;8>63k4;5;?xuc13:1>v3k9;306>;c=3=37p}ka;296~;ci3;8>63k2;54?xucj3:1>v3kb;306>;c;3=<7p}kc;296~;ck3;8>63k4;54?xucl3:1>v3kd;306>;c=3=<7p}>0283>7}:99h1;452117956453z?24f<6;;16==j5249>54e=:<1v<>k:180877l3;8>63>0g811>;69m0996s|11g94?5|58:n6<==;<33`?7f827:=n4j8:p55`=839p1<>i:011?876938>70?>e;06?xu6990;6>u21029564<58:m6547=9:8012;297~;69;0:??5210395d6<58;n6h64}r327?6=;r7:=>4>339>543=:<16=?>5249~w4732908w0?>4;306>;69:0:m=5210d9a==z{8;>6=4<{<321?74:27:=:4=5:?264<5=2wx=<850;1x9471289970?>5;3b4>;6:90n46s|10594?4|58;<6<==;<316?423ty:=54?:2y>54>=9:8011883>6}:99i1=l>4=03a>`><58;j6<==;|q266<72;q6=?=5120894452l20q~?=5;296~;6:<0:;i521g5900=z{8836=4={<31<70o8:558944?28=01<<::0:8yv75l3:18v3>5`84e>;6=k05b8277=:95<5s4;>479n;<36`?74:2wx=9650;0x943728=o70jn:6;8yv7313:1>v3>50823a=:lk0<56s|15c94?4|58?96<9k;2?52z?216<6?m16hi489:p51e=838p1<;;:05g?8bf2>20q~?;d;296~;6=<0:;i52dc84<>{t9=o1<741c34nh6:64}r37b?6=:r7:9:4>7e9>`a<002wx=8650;4x916=9>l019?516d8914=9>l019=516d8912=9>l01<;7:011?xu6=00;645534;=:7<;;<353?4334;=47<;;<35=?4334;=m7<;;<35f?4334;=o7<;;<35`?4334;><7<;;<365?4334;>>7<;;<367?4334;>87<;;<361?4334;>:7<;;<363?433ty:9l4?:8y>50d=9:801?<;:36897422;>01?<9:36897402;>01?<7:368974>2;>01?0q~?:e;296~;6>?0:;i52d784=>{t941c34n<6:74}r354?6=:r7::54>7e9>`=<012wx=;?50;0x940>28=o70j6:6;8yv71:3:1>v3>6`823a=:l?0<46s|17194?4|582>52z?22f<6?m16h5488:p533=838p1<8k:05g?8b>2>20q~?76;296~;383>>70??7;306>{t91=1<713<58;i6<==;|q2<=<72;q65l4;5:?`4?74:2wx=5750;0x9339~w4>f2909w07k:5789f4=9:80q~?7b;296~;>m3>>70m<:011?xu60j0;6?u240871>;6810:??5rs0:g>5<5s48997::;<32g?74:2wx=5k50;0x9339~w4>a2909w0:=:578946>28997p}>9183>7}::;<1885210f956452z?:b?2234i=6<==;|q2=7<72;q68>4;5:?24d<6;;1v<7<:181845?3>>70?>e;306>{t90>1<70:??5rs0;6>5<5s4>?69;4=02a>4553ty:5;4?:3y>67>=<<16=?3:1>v3n1;66?8e?28997p}>9983>7}::;318852132956452z?b6?2234i26<==;|q2=d<72;q6>?o5449>577=9:80q~?6b;296~;f;3>>70mn:011?xu61j0;6?u223`900=:9;81=><4}r3:`?6=:r7j87::;4553ty:5h4?:3y>e0<3=27ho7?<2:p5<`=838p1l85449>ga<6;;1v339>5g6=9>>0q~?m1;297~X6j816=oo5120894d628=?7p}>b383>6}Y9k801;6j:0:;95rs0`7>5<4sW;i863>be8277=:9k>1=::4}r3a1?6=;rT:n8521cg9564<58h>6<9;;|q2f3<72:qU=o84=0`e>45534;i:7?84:p5g>=839pR759~w4d>2909w0jj:011?87e13==7p}>b`83>7}:lo0:??521cc933=z{8hi6=4={45534;in799;|q2ff<72;q6i<4>339>5ge=??1v5<5s4o?6<==;<3ab?113ty:o=4?:0fx94ea2?l01<>l:378947e2;?01<>k:558946a2==01:55894742==01g5<5=27jo7:8;11<5k:18:52b3873>;e<3><70l9:5589g>=<>16nl4;7:?ag?2034k36994=`c902=:9j:1;;5213:95==:9;21=l5213:95g=:9;?1=:5213795d=:9;?1=o5rs0g4>5<4s4;m47::;<352?2234;m;7?8d:p5`>=839p1>70?97;66?xu6m00;6>u21g;952b<58lj69;4=04;>1353z?2bd<6?m16=kl5449>53?=<<1vfb871>;6>h0?96s|1da94?5|58lh6<9k;<3e`?2234;=n7::;|q2aa<72:q6=kj516f894`a2=?01<8l:578yv7bn3:1?v3=01871>;6=90?963>fd823a=z{8on6=4={<3eb?70l27::i4;5:p5c6=839p1?>?:05g?84793>>70?:1;66?xu6n80;6>u2213952b<5;:969;4=071>137>53z?147<6?m16>==5449>505=<<1v;6==0?96s|1g694?5|5;:?6<9k;<031?2234;>97::;|q2b0<72:q6>=;516f897612=?01<;9:578yv7a>3:1?v3=07823a=:9<=18852137900=z{;:i6=4<{_03f>;59=0:??5221`952253z\14f=::8?1=><4=32`>4133ty9=k50;1xZ76b348:;7?<2:?14`<6?=1v?>i:180[47n279=54>339>65`=9>>0q~<>0;297~X59916><751208977728=?7p}=1083>6}Y:8;01??n:011?84693;<86s|20194?5|V;;870<>b;306>;59:0:;95rs33`>5<4s48987?8d:?151<0>27:=l486:p64b=839p1?<::05g?846=3==70??e;54?xu59l0;6>u2234952b<5;;=6:84=033>2153z?162<6?m16><95779>544=?>1v?;69=0<;6s|23394?5|5;826<9k;<02=?1134;::798;|q167<72:q6>?o516f8977f2><017?=ug;n=7>4}o671?6=:rB:o55F16695~7=uS{i<=21=7?tH0a;?k7b93>0(c99m5`7==2we89o50;3xL4e?3g;n=784}o67f?6=9rB:o55a1d393>{i<=i1<7?tH0a;?k7b9320qc:;d;295~N6k11e=h?59:m01c=83;pD{d`9yk7b93k0qc:;f;296~N6k11e=h?5b:m006=83;pD{d`9yk7b93i0qc::1;295~N6k11B=::51z09y_0b28qnn7sa1d39`>{i<<81<7?tH0a;?L70<3;p>7sU6d82`d=ug;n=7k4}o667?6=9rB:o55F16695~4=uS47>:7>51zJ2g==i9l;1=?5rn574>5<6sA;h46`>e0827>{i<<21<7?tH0a;?k7b93;?7p`;5883>4}O9j20b:078yk22i3:1=vF>c99m5`7=9?1vb9;m:182M7d02d:i<4>7:m00e=83;pD:0yK5f>{I3`<>h6m80:n6sa47295?7|@8i37c?j1;3`?xh3>80:677=:7?51zJ2g==i9l;1>?5rn544>4<6sA;h46`>e0817>{i4}O9j20b:378yk21i3:1=vF>c99m5`7=:?1vb98m:082M7d02d:i<4=7:&2`g7?<,8ni65h4}o65a?6=9rB:o55a1d396d=zf={I3`<>h6m809n6*>dc8:5>{i<>:1<7?tH0a;?k7b938h7p`;7082>4}O9j20b:3f8 4be2080qc:82;295~N6k11e=h?52d9~j114280:wE?l8:l2a4<5n2.:ho463:m022=83;pD:0yK5f>?4$0fa><2<:7>51zJ2g==i9l;1??5rn554>4<6sA;h46`>e0807>"6lk0296sa46:94?7|@8i37c?j1;17?xh3?00:6c99m5`7=;?1vb99m:082M7d02d:i<4<7:&2`g<>?2we8:m50;3xL4e?3g;n=7=7;|l73a<628qC=n64n0g2>6?<,8ni6464}o64a?6=9rB:o55a1d397d=zf==m6<4>{I3`<>h6m808n6*>dc8:=>{i<1:1<7?tH0a;?k7b939h7p`;8082>4}O9j20b:2f8 4be20:0qc:72;295~N6k11e=h?53d9~j1>4290:wE?l8:l2a4<4n2we85:50;3xL4e?3g;n=7:?;|l7<0<728qC=n64n0g2>173:7>51zJ2g==i9l;18?5rn5:4>5<6sA;h46`>e0877>{i<121<7?tH0a;?k7b93>?7p`;8883>4}O9j20b:578yk2?i3;1=vF>c99m5`7=c99m5`7=<>1vb96l:182M7d02d:i<4;8:m0=b=93;pD3-;on7<>d:m0=c=83;pD:0yK5f>77b3td?5=4?:0yK5f>{I3`<>h6m80?j6*>dc8165=zf=3?6=4>{I3`<>h6m80><6sa48795?7|@8i37c?j1;72?!7cj389=6sa48494?7|@8i37c?j1;71?xh31>0:60qc:69;395~N6k11e=h?5549'5ad=:;90qc:6a;296~N6k11e=h?5579~j1?e2909wE?l8:l2a4<2?2we84m50;1xL4e?3g;n=7;7;o3b`?72h7?51zJ2g==i9l;1945rn5;f>4<6sA;h46`>e086e>"6lk0:>i5rn5;e>5<6sA;h46`>e086f>{i4}O9j20b:4f8yk2f:3:1=vF>c99m5`7==l1vb9o<:182M7d02d:i<4:f:m0d2=83;pD{I3`<>h6m80=?6sa4`:94?7|@8i37c?j1;47?xh3i00;63?ji7>51zJ2g==i9l;1:l5rn5ce>5<6sA;h46`>e085f>{i4}O9j20b:7f8yk2e:3;1=vF>c99m5`7=>l1/=il53c9~j1d4290:wE?l8:l2a4<1n2we8o:50;3xL4e?3g;n=79?;|l7f0<728qC=n64n0g2>27i:7>51zJ2g==i9l;1;?5rn5`4>5<6sA;h46`>e0847>{i4}O9j20b:678yk2ei3:1=vF>c99m5`7=??1vb9lm:182M7d02d:i<487:m0ge=83;pD{I3`<>h6m80n0qc:l2;295~N6k11e=h?57d9~j1e4290:wE?l8:l2a4<0n2we8n:50;3xL4e?3g;n=76?;|l7g0<728qC=n64n0g2>=7h:7>51zJ2g==i9l;14?5rn5a4>5<6sA;h46`>e08;7>{i4}O9j20b:978yk2di3:1=vF>c99m5`7=0?1vb9mm:182M7d02d:i<477:m0fe=83;pD{d`9yk7b93237p`;ce83>4}O9j20E<9;:0y1>x\1m3;pio4rn0g2>=?hi7>51zJ2g==N9>>1=v<5}[4f>4}bj3we=h?58`9~j1ea290:wE?l8:K231<6s;0vV;k51zga>xh6m803n6sa4e294?7|@8i37D?84;3x6?{]>l0:whl5}o3f5?>d3td?h<4?:0yK5f>:9f8yk2c:3:1=vF>c99J522=9r81qW8j:0yff?{i9l;14h5rn5f0>5<6sA;h46G>758275=zf=n?6=4>{I3`<>h6m802<6sa4e794?7|@8i37c?j1;;2?xh3l?0;6<2we8i750;3xL4e?3g;n=77:;|l7`d<728qC=n64n0g2><0on7>57zJ2g==i9l;15:5a1`f94>{i4}O9j20b:8;8yk2cm3:1=vF>c99m5`7=1h1vb9ji:182M7d02d:i<46b:m0`6=83;pD{I3`<>h6m802j6sa4d694?7|@8i37c?j1;c3?xh3m<0;6d3nm7>51zJ2g==i9l;1m;5rn5ga>5<5sA;h46`>e08b3>{i7sU6d82`d=ug;n=7o7;|l7aa<728qC=n64I057>4}52tP=i7?tec8~j4c62h30qc:je;295~N6k11B=::51z09y_0b28qnn7sa1d39ed=zf=om6=4>{I3`<>O6?=0:w?4rZ7g95~ce2td:i<4nb:m0c6=83;pD{d`9yk7b93kh7p`;f083>4}O9j20E<9;:0y1>x\1m3;pio4rn0g2>dbm>7>51zJ2g==N9>>1=v<5}[4f>4}bj3we=h?5ad9~j1`4290:wE?l8:K231<6s;0vV;k51zga>xh6m80jj6sa4g694?7|@8i37c?j1;`3?xh3n<0:6g3mm7?51zJ2g==i9l;1n;5rn5da>4<6sA;h46`>e08a3>{ig>51zl2a4ae82?xh4l10:65<6sg;n=7lk;o3b`?7=2.:ol4>779'523=i2B<>6Fie:J47>db>3:1=:4m8;c5_452:q:87m5148~L3d<,8i96l5a6e8a2>h6i=0j46`>e083?l4a2900e>>50;9j0<<722e:n54?:%344?:%34;7>5$05;>00:6`>7682?>i2<3:1(<97:448j4102;10c8=50;&23=<2>2d:;:4<;:m156<72-;<47<>2:l232<732e9=<4?:%34;:m155<72-;<47<>2:l232<532e92:l232<332e92:l232<132e9"6i>0n:6*>c782`7=#9hl1=i5+8084?M0>3g;n=7?4i5794?=n:>0;6E6<;:k1e?6=3`;5;h07>5<3:1"6io0:h6*71;58L3?>o5?3:1D5=4;h0b>5<n1<75rb321>4<1290;w)8l:738 4g02l<0(:69K2<=i9l;1?6g;5;29?l40290C4>54i3c94?=n9>h1<75f2583>>i6?m0;66sm21195?0=83:p(;m5609'5d1=m?1/=n851e08 4ga28n0(5?57:J5=>h6m80?7d:::188m71=83B3?65f2`83>>o6?k0;66g=4;29?j70l3:17pl=0582>3<729q/:n491:&2e22.:o;4>d39'5d`=9m1/4<48;I4:?k7b93?0e9;50;9j62<72A2876g=a;29?l70j3:17d<;:188k41c2900qo;%3b3?c13-;h:7?k2:&2ec<6l2.3=794H7;8j4c62?1b884?::k13?6=@1907d9:085>5<7s-`0<,8i=65;h04>594?::m23a<722wi=8>51;494?6|,?i1:<5+1`59a3=#9j<1=i<4$0ce>4b<,1;1?6F99:l2a4>6=44i3594?N?;21b>l4?::k23g<722c987>5;n34`?6=3th:9<4>:783>5}#>j0==6*>a68f2>"6k?0:h?5+1`d95a=#08087E86;o3f5??M>432c9m7>5;h34f?6=3`8?6=44o05g>5<>7?56;294~"1k3<:7)?n7;g5?!7d>3;o>6*>ag82`>"?9390D;74n0g2>d=n<<0;66g=7;29L=5<3`8j6=44i05a>5<1<75`16f94?=zj8?86<49:183!0d2?;0(62:1C:45a1d39f>o3=3:17d<8:18K<6=7e83>>{e9<>1=7850;2x 3e=>81/=l95e79'5f0=9m80(e08`?l222900e?950;J;7>=n:h0;66g>7c83>>o5<3:17b?8d;29?xd6=<0:6;4?:1y'2f<192.:m:4j6:&2g3<6l;1/=lh51e9'<4<43A<27c?j1;f8m13=831b>:4?:I:0?>o5i3:17d?8b;29?l432900c<9k:188yg72>3;1:7>50z&5g?063-;j;7k9;%3`2?7c:2.:mk4>d:&;5?5<@?30b:d9j00<722c9;7>5H918?l4f2900e<9m:188m72=831d=:j50;9~f430280=6=4?{%4`>37<,8k<6h84$0a5>4b53-;jj7?k;%:2>6=O>01e=h?5f:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a5c>=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>0:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a5c?=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>1:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a5cg=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>2:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a5cd=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>3:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a5ce=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>4:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a5cb=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>5:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a5c`=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>6:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a530=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>7:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a531=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>8:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a53>=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>9:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a53?=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>a:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a53g=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>b:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a53d=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>c:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a53e=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>d:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a53b=93<1<7>t$7a924=#9h=1i;5+1b495a4<,8km6N112d:i<4>e:k71?6=3`8<6=4G8298m7g=831b=:l50;9j61<722e:;i4?::a05<62?0;6=u+6b851>"6i>0n:6*>c782`7=#9hl1=lk4$9397>N112d:i<4>f:k71?6=@1907d<8:18K<6=7e83>>{e<80:6;4?:1y'2f<1=2.:m:4j6:&2g3<6l;1/=lh51`g8 =7=;2B=56`>e0814>o3=3:17d<8:18K<6=7e83>>{e<;0:6;4?:1y'2f<1=2.:m:4j6:&2g3<6l;1/=lh51`g8 =7=;2B=56`>e0815>o3=3:17d<8:18K<6=7e83>>{e<:0:6;4?:1y'2f<1=2.:m:4j6:&2g3<6l;1/=lh51`g8 =7=;2B=56`>e0816>o3=3:17d<8:18K<6=7e83>>{e<=0:6;4?:1y'2f<1=2.:m:4j6:&2g3<6l;1/=lh51`g8 =7=;2B=56`>e0817>o3=3:17d<8:18K<6=7e83>>{e:;>1=7850;2x 3e=>81/=l95e79'5f0=9m80(e0810>o3=3:17d<8:18K<6=7e83>>{e:;?1=7850;2x 3e=>81/=l95e79'5f0=9m80(e0811>o3=3:17d<8:18K<6=7e83>>{e:;<1=7850;2x 3e=>81/=l95e79'5f0=9m80(e0812>o3=3:17d<8:18K<6=7e83>>{e:;=1=7850;2x 3e=>81/=l95e79'5f0=9m80(e0813>o3=3:17d<8:18K<6=7e83>>{e:;21=7850;2x 3e=>81/=l95e79'5f0=9m80(e081<>o3=3:17d<8:18K<6=7e83>>{e:;31=7850;2x 3e=>81/=l95e79'5f0=9m80(e081=>o3=3:17d<8:18K<6=7e83>>{e:;k1=7850;2x 3e=>81/=l95e79'5f0=9m80(e081e>o3=3:17d<8:18K<6=7e83>>{e:;h1=7850;2x 3e=>81/=l95e79'5f0=9m80(e081f>o3=3:17d<8:18K<6=7e83>>{e1h0:6;4?:1y'2f<192.:m:478:&2g3<6l;1/=lh51e9'<4<43A<27c?j1;0`?l222900e?950;9j6d<722c:;o4?::k10?6=3f;5;|`:f?7=>3:1"6io0:h6*71;18L3?0;66g=a;29?l70j3:17d<;:188k41c2900qo7i:085>5<7s-=><,8i=65G689m5`7=:l1b884?::k13?6=3`8j6=44i05a>5<1<75`16f94?=zjh:1=7850;2x 3e=>81/=l95899'5f0=9m80(e081b>o3=3:17d<8:188m7g=831b=:l50;9j61<722e:;i4?::ae4<62?0;6=u+6b855>"6i>0346*>c782`7=#9hl1=i5+8080?M0>3g;n=7=?;h66>5<>o6?k0;66g=4;29?j70l3:17pln2;392?6=8r.=o78>;%3b3?>?3-;h:7?k2:&2ec<6l2.3=7=4H7;8j4c62:;0e9;50;9j62<722c9m7>5;h34f?6=3`8?6=44o05g>5<62:1C:45a1d3977=n<<0;66g=7;29?l4f2900e<9m:188m72=831d=:j50;9~fd2=93<1<7>t$7a924=#9h=1455+1b495a4<,8km6N112d:i<4<3:k71?6=3`8<6=44i3c94?=n9>h1<75f2583>>i6?m0;66sma482>3<729q/:n491:&2e2d39'5d`=9m1/4<4<;I4:?k7b939?7d:::188m71=831b>l4?::k23g<722c987>5;n34`?6=3thj:7?56;294~"1k3<:7)?n7;:;?!7d>3;o>6*>ag82`>"?9390D;74n0g2>63>o5i3:17d?8b;29?l432900c<9k:188yg?d280=6=4?{%4`>37<,8k<6564$0a5>4b53-;jj7?k;%:2>6=O>01e=h?5379j00<722c9;7>5;h0b>5<n1<75rb8f95?0=83:p(;m5609'5d1=011/=n851e08 4ga28n0(5?53:J5=>h6m808;6g;5;29?l402900e?o50;9j52d=831b>94?::m23a<722wi5h4>:783>5}#>j0==6*>a68;<>"6k?0:h?5+1`d95a=#08087E86;o3f5?5?3`>>6=44i3594?=n:h0;66g>7c83>>o5<3:17b?8d;29?xdc=3;187>50z&2g3<6l=1/=l95899K2<=i9l;1?45f7683>>o003:17d?n0;29?j74:3:17plkd;390?6=8r.:o;4je:&5g?74k2.:m:478:J5=>h6m808m6g87;29?l1?2900e:750;9l511=831vni751;694?6|,8i=6hk4$7a956e<,8k<6564H7;8j4c62:h0e:950;9j3=<722c<57>5;n373?6=3tho87?54;294~"6k?0:h95+1`59<==O>01e=h?53b9j32<722c<47>5;h3b4?6=3f;8>7>5;|`gg?7=<3:1c78fa>"1k3;8o6*>a68;<>N112d:i<4k4i6594?=n?10;66g89;29?j73?3:17plk3;390?6=8r.:o;4>d59'5d1=011C:45a1d397c=n?>0;66g88;29?l7f83:17b?<2;29?xdcj3;187>50z&2g3e0874>o0?3:17d97:188m2?=831d=9950;9~fa1=93>1<7>t$0a5>`c<,?i1=>m4$0c4>=><@?30b:538m21=831b;54?::k4=?6=3f;?;7>5;|`g6?7=<3:1c782`1=#9h=1455G689m5`7=<;1b;:4?::k45;n306?6=3thom7?54;294~"6k?0ni6*9c;30g>"6i>0346F99:l2a4<3;2c<;7>5;h5;>5<31<75`15594?=zjm<1=7:50;2x 4e12lo0(;m512a8 4g02120D;74n0g2>12=1<75f7983>>o013:17b?;7;29?xd68j0:694?:1y'5f0=9m90(a183>>i6;;0;66sm10`95?5=83:p(4<3290;w)?l6;3g7>"6i>0n:6F99:l2a4<3?2c?;7>5;h06>5<5<01e=h?5499ja=<722c997>5;n306?6=3th::583>5}#9j<1=i=4$0c4>`0<@?30b:5;8m11=831b>84?::k2e5<722e:??4?::a54b=9391<7>t$0a5>4b23-;j;7k9;I4:?k7b93>j7dk7:188m73=831d=><50;9~f476280?6=4?{%3`2?7c;2.:m:4j6:J5=>h6m80?n6g;7;29?l422900ee;397?6=8r.:o;4>d49'5d1=m?1C:45a1d390f=nm10;66g=5;29?j74:3:17pl>1282>1<729q/=n851e18 4g02l<0D;74n0g2>1b>o6i90;66a>3383>>{e98l1=7=50;2x 4e128n>7)?n7;g5?M0>3g;n=7:j;hg;>5<6<4;:183!7d>3;o?6*>a68f2>N112d:i<4;f:k73?6=3`8>6=44i0c3>5<c782`0=#9h=1i;5G689m5`7==91bi54?::k11?6=3f;8>7>5;|`252<62=0;6=u+1b495a5<,8k<6h84H7;8j4c62<;0e9950;9j60<722c:m=4?::m277<722wi=??51;194?6|,8i=65<7s-;h:7?k5:&2e22B=56`>e0867>ob03:17d<::188k4552900qoo8:087>5<7s-;h:7?k3:&2e2e0860>o3?3:17d<::188m4g72900c<==:188yge728086=4?{%3`2?7c=2.:m:478:J5=>h6m80>96gj8;29?l422900c<==:188yggd280?6=4?{%3`2?7c;2.:m:478:J5=>h6m80>:6g;7;29?l422900e5<7s-;h:7?k5:&2e2e0863>ob03:17d<::188k4552900qooj:087>5<7s-;h:7?k3:&2e2e086<>o3?3:17d<::188m4g72900c<==:188yge128086=4?{%3`2?7c=2.:m:478:J5=>h6m80>56gj8;29?l422900c<==:188ygd7280?6=4?{%3`2?7c;2.:m:478:J5=>h6m80>m6g;7;29?l422900e5<7s-;h:7?k5:&2e2e086f>ob03:17d<::188k4552900qol=:087>5<7s-;h:7?k3:&2e2e086g>o3?3:17d<::188m4g72900c<==:188yge?28086=4?{%3`2?7c=2.:m:478:J5=>h6m80>h6gj8;29?l422900c<==:188ygd3280?6=4?{%3`2?7c;2.:m:478:J5=>h6m80>i6g;7;29?l422900e5<7s-;h:7?k5:&2e2e086b>ob03:17d<::188k4552900qol9:087>5<7s-;h:7?k3:&2e2e0854>o3?3:17d<::188m4g72900c<==:188ygef28086=4?{%3`2?7c=2.:m:478:J5=>h6m80==6gj8;29?l422900c<==:188ygd?280?6=4?{%3`2?7c;2.:m:478:J5=>h6m80=>6g;7;29?l422900e5<7s-;h:7?k5:&2e2e0857>ob03:17d<::188k4552900qoln:087>5<7s-;h:7?k3:&2e2e0850>o3?3:17d<::188m4g72900c<==:188yged28086=4?{%3`2?7c=2.:m:478:J5=>h6m80=96gj8;29?l422900c<==:188ygdd280?6=4?{%3`2?7c;2.:m:478:J5=>h6m80=:6g;7;29?l422900e5<7s-;h:7?k5:&2e2e0853>ob03:17d<::188k4552900qoo7:087>5<7s-;h:7?k3:&2e2e085<>o3?3:17d<::188m4g72900c<==:188yge628086=4?{%3`2?7c=2.:m:478:J5=>h6m80=56gj8;29?l422900c<==:188yggf280?6=4?{%3`2?7c;2.:m:478:J5=>h6m80=m6g;7;29?l422900e5<7s-;h:7?k5:&2e2e085f>ob03:17d<::188k4552900qom<:080>5<7s-;h:7?k5:&2e2e085g>ob03:17d<::188k4552900qoj>:080>5<7s-;h:7kj;%4`>4253-;j;767;I4:?k7b93=831d=9950;9~fa6=9391<7>t$0a5>`c<,?i1=9?4$0c4>=><@?30b:7g8m21=831b;54?::m202<722wiok4>:283>5}#9j<1ih5+6b8204=#9h=1455G689m5`7=>o1b;:4?::k45;|``a?7=;3:1c78fa>"1k3;8j6*>a68;<>N112d:i<480:k43?6=3`=36=44o064>5<"6i>0n:6F99:l2a4<092c<;7>5;h5;>5<<6=44}c33=?7=<3:1c78fa>"1k3;8?6*>a68f2>N112d:i<482:k43?6=3`=36=44i6;94?=h9==1<75rb02a>4<3290;w)?l6;gf?!0d28987)?n7;g5?M0>3g;n=79<;h54>5<21<75f7883>M3a32e:8:4?::aa7<62<0;6=u+1b49a`=#>j0:?45+1`59<==O>01e=h?5759j32<722c<47>5;h5:>5<k1<75`15594?=zjl:1=7;50;2x 4e12lo0(;m51258 4g02120D;74n0g2>23=1<75f7983>>o013:17d9n:188k4202900qok;:086>5<7s-;h:7kj;%4`>4523-;j;767;I4:?k7b93==7d98:188m2>=831b;44?::k4e?6=3f;?;7>5;|`f7?7==3:1c78fa>"1k3;886*>a68;<>N112d:i<487:k43?6=3`=36=44i6;94?=n?h0;66a>4683>>{elo0:684?:1y'5f0=ml1/:n4>399'5d1=011C:45a1d393==n?>0;66g88;29?l1>2900e:o50;9l511=831vnh?51;794?6|,8i=6hk4$7a956d<,8k<6564H7;8j4c62>30e:950;9j3=<722c<57>5;h5b>5<<6=44}cff>4<2290;w)?l6;gf?!0d289j7)?n7;:;?M0>3g;n=79n;h54>5<21<75f7883>>o0i3:17b?;7;29?xd6=10:684?:1y'5f0=ml1/:n4>3e9'5d1=m?1C:45a1d393g=n?>0;66g88;29?l1>2900e:o50;J6b>=h9==1<75rb5c95?4=83:p(>i6;;0;66sm1b295?4=83:p(3g;n=79k;h55>5<c78201=#9h=1i;5+878202=O>01e=h?57d9j33<722e:??4?::a5gc=9381<7>t$0a5>4233-;j;7k9;%:5>4203A<27c?j1;5e?l112900c<==:188yg7el3;1>7>50z&2g3<6<=1/=l95e79'<3<6<>1C:45a1d39<5=n??0;66a>3383>>{e9ki1=7<50;2x 4e128>?7)?n7;g5?!>128><7E86;o3f5?>63`==6=44o011>5<459'5d1=m?1/4;4>469K2<=i9l;1495f7783>>i6;;0;66sm5c82>7<729q/=n851568 4g02l<0(5851558L3?3g;n=769;h55>5<4<5290;w)?l6;370>"6i>0n:6*76;373>N112d:i<477:k42?6=3f;8>7>5;|`6c78201=#9h=1i;5+878202=O>01e=h?5899j33<722e:??4?::a64d=9381<7>t$0a5>4233-;j;7k9;%:5>4203A<27c?j1;::?l112900c<==:188yg46i3;1>7>50z&2g3<6<=1/=l95e79'<3<6<>1C:45a1d393383>>{e:831=7<50;2x 4e128>?7)?n7;g5?!>128><7E86;o3f5?>e3`==6=44o011>5<<951;094?6|,8i=6<:;;%3b3?c13-2=6<:8;I4:?k7b932o7d99:188k4552900qo<>6;396?6=8r.:o;4>459'5d1=m?1/4;4>469K2<=i9l;14h5f7783>>i6;;0;66sm20795?4=83:p(3g;n=76i;h55>5<c78201=#9h=1i;5+878202=O>01e=h?5919j33<722e:??4?::a55g=93?1<7>t$0a5>`c<,?i1=>84$0c4>`0<@?30b:838m21=831b;54?::k4=?6=3`=j6=44o064>5<m7?55;294~"6k?0ni6*9c;30`>"6i>0n:6F99:l2a4<>:2c<;7>5;h5;>5<31<75f7`83>>i6<>0;66sm14`95?3=83:p(2b<@?30b:868m20=831d=><50;9~f62=9381<7>t$0a5>2d<,8k<6h84$9493a=O>01e=h?5949j33<722e:??4?::a54g=9381<7>t$0a5>`c<,?i1=9=4$0c4>`0<@?30b:848m21=831d=9950;9~fg`=9381<7>t$0a5>`c<,?i1=9=4$0c4>=><@?30b:858m21=831d=9950;9~f44f28026=4?{%3`2?7fi2.=o7?na:&2e22.3=7:4H7;8j4c62020e9;50;9j62<72A2876g=4;29?l702900e<650;9j5d<722c:n7>5;n34`?6=3f;5;|`2b`<62?0;6=u+6b855>"6i>0n:6*>c782`7=#9hl1=i5+8084?M0>3g;n=776;h66>5<5;|`262<6200;6=u+1b495dg<,?i1=lo4$0c4>`0<,1;196F99:l2a4<>i2c?97>5;h04>55;h3b>5<o1<75rb0d4>4<1290;w)8l:738 4g02l<0(:69K2<=i9l;15o5f4483>>o5?3:1D5=4;h0b>5<n1<75rb027>4<3290;w)?l6;gf?!0d289n7)?n7;g5?M0>3g;n=77l;h54>5<21<75f7883>>i6<>0;66sm14a95?5=83:p(4683>>{e:o0:6<4?:1y'5f0=0>1/4;48d:&ff?`?3A<27c?j1;;f?j7f>3:1(?755d98yg57280:6=4?{%3`2?>03-2=6:j4$d`95f7<@?30b:8d8k4g12900qo:6:082>5<7s-;h:768;%:5>2b<,lh1j:5G689m5`7=i91d=l850;9~f05=93;1<7>t$0a5>4213-2=6<:8;%ga>1e<@?30b:`38m4g22900qo;;:082>5<7s-;h:7?;6:&;2?73?2.nn7;k;I4:?k7b93k97d?n5;29?xd2=3;1=7>50z&2g3<6469'ag<092B=56`>e08b7>o6i<0;66sm5682>4<729q/=n851548 =0=9==0(hl5479K2<=i9l;1m95f1`794?=zj8h;6<4>:183!7d>3;?:6*76;373>"bj3>o7E86;o3f5?g23`;j97>5;|`2f4<6280;6=u+1b49510<,1<1=994$d`935=O>01e=h?5a79j5d3=831vn5<7s-;h:7?;6:&;2?73?2.nn7?=e:J5=>h6m80j;6g>a483>>{e9k91=7?50;2x 4e128>=7)69:064?!ce28=87E86;o3f5?g?3`;j97>5;|`2f1<6280;6=u+1b49510<,1<1=994$d`95=6<@?30b:`;8m4g22900qo?m5;395?6=8r.:o;4>479'<3<6<>1/io4:c:J5=>h6m80jm6g>a483>>{e9k<1=7?50;2x 4e128>=7)69:064?!ce288m7E86;o3f5?ge3`;j97>5;|`2f=<6280;6=u+1b49510<,1<1=994H7;8j4c62hi0e50z&2g3<6469'age08b`>o6i<0;66sm21a95?7=83:p(128><7)km:051?M0>3g;n=7oj;h3b1?6=3th9:083>5}#9j<1=984$949511<,lh1i:5G689m5`7=io1b=l;50;9~f76b280:6=4?{%3`2?73>2.3:7?;7:&ff?75l2B=56`>e08a4>o6i<0;66sm21d95?7=83:p(128><7)km:052?M0>3g;n=7l>;h3b1?6=3th9==4>:083>5}#9j<1=984$949511<,lh1=?m4H7;8j4c62k80e50z&2g3<6469'ag<6?91C:45a1d39f6=n9h?1<75rb330>4<6290;w)?l6;372>"?>3;?;6*jb;35b>N112d:i<4m4:k2e0<722wi>=751;095?5|,8i=6:;4H0a6?k7b93h>7d=;:088k67=931i??4?:583>5}#9j<1=i?4$0c4>`0<@?30b:c48m21=83B>j65f7983>>o6i90;6E6<;:m277<722wx?94?:3y]71=:;;0<;6s|3083>7}Y;816??4>339~w65=83;p1><51`28yxd58h0:6?4>:2y'5f0=?<1C=n;4n0g2>g1>d4>3:187>50z&2g3<6l81/=l95e79K2<=i9l;1n55f7683>M3a32c<47>5;h3b4?6=@1907b?<2;29?xu403:1>vP<8:?02?103ty897>52z\01>;4>3;8>6s|3683>4}:;?0:m=5r}c0g>4<7290;wE?ka:&2g3<5k2B:o>5G1238j4c62k30qo?72;394?6=8rB:hn5+1b495=7<@8i87E?<1:l2a4:52213962=::981>:52211962=::9>1>:52217962=::9<1>:52142962=:9<;1>:52140962=:9<91>:52146962=:9:52144962=:9<=1>:521g:962=:9o31>:521gc962=:9oh1>:521ga962=:9on1>:521gd962=:9?<1>:52175962=:9?21>:5217;962=:9?k1>:5217`962=:9?i1>:5217f962=:<909;63;1;04?8252;=019=5269>01<5?279>94=7:?160<5?279>;4=7:?162<5?279>54=7:?16<<5?279>l4=7:?16g<5?27:>l4=7:?2b`<5?27:>:4=7:?2b2<5?279?:05g?84793>>70?:1;66?xu6n80;6>u2213952b<5;:969;4=071>137>53z?147<6?m16>==5449>505=<<1v;6==0?96s|1g694?5|5;:?6<9k;<031?2234;>97::;|q2b0<72:q6>=;516f897612=?01<;9:578yv7a>3:1?v3=07823a=:9<=18852135900=z{8?26=4>1z?215<5<27:9<4=4:?217<5<27:9>4=4:?211<5<27:984=4:?213<5<27:9:4=4:?223<5<27:::4=4:?22=<5<27::44=4:?22d<5<27::o4=4:?22f<5<27::i4=4:?21d<6<>1v<:7:18187283;5<5s4;>>7?8d:?gg?1>3ty:8o4?:3y>505=9>n01ij5789~w42d2909w0?:4;34`>;ci3=37p}>4e83>7}:9n6=4={<362?70l27oo797;|q20c<72;q6=89516f89ab=?11v>70?96;66?87a?3;f`823a=:9oh1885217;900=z{8oi6=4<{<3ef?70l27:jn4;5:?22d<3=2wx=hm50;1x94`d28=o70?id;66?871j3>>7p}>ee83>6}:9on1=:j4=0de>13<587e9>53b=<<1v<;j:181871>3;5<5s4;=47?8d:?g3ty::<4?:3y>53?=9>n01i75789~w4052909w0?9a;34`>;c>3=37p}>6283>7}:9?h1=:j4=e593==z{8l50;;x916=<<168=4>7e9>55>=?116==75789>50>=?116==o57`9>50g=?116=8l5799>552=?01v<;7:1858272;k019?52`9>07<5i27??77g<58?36<:8;|q21v>m50;4x917=9>n01<>7:658946>2>=01<>n:6;894632>201<;l:658yv7?n3:1>v3;2;66?87713;?;6s|3e83>2}:<;0:;i5211;93==:9<21;45211c93==:91;:5rs0;1>5<5s4>869;4=02b>4203ty8i7>54z?77?70l27:55d=9==0q~=i:18682328=o70??b;5;?87203=<70?:a;54?872j3=<7p}>8683>7}::;>1885210`9564m7>59z?161<5<279>84=4:?163<5<279>:4=4:?16=<5<279>44=4:?16d<5<279>o4=4:?21g<6<>1v??l:180845<3;;69h0<;6s|19f94?4|5;8>69;4=03`>4553ty9=i4?:5y>673=9>n01<>k:0c3?876k3o370<>5;55?xu6190;6?u2234900=:98n1=><4}r02a?6=;4>7e9>55`=9h:01<0q~?63;296~;5:>0?963>1d8277=z{;;m6=4;{<013?70l27:=<4>a19>54c=m116><95779~w4?12909w0<=8;66?876n3;8>6s|23294?2|5;836<9k;<327?7f827:=k4j8:?15=<0>2wx=4650;0x974>2=?01<6?o5449>577=9:80q~<=2;290~;5:h0:;i5210595d6<588:6h64=33b>2052z?16g<3=27:>?4>339~w7442908w0<=b;34`>;6:;0n463=1c842>{t9121<7:529c813>;>n38<70o?:3589d7=:>16m?4=7:?b7?4034k?6?94=`7962=:i?09;636c;04?8?c2;=014k5269>65?=;81v5j50;0x9n01oh5769~w4>b2909w07m:5789f3=9:80q~7>:1808?e28=o70ol:0c3?8e22l20q~?61;296~;>n3>>70m9:011?xu>:3:1?v36f;34`>;fm3;j<63l6;g;?xu61=0;6?u2a1871>;d?3;8>6s|9283>6}:i90:;i52b182e5=:k>0n46s|18594?4|5h;18852c98277=z{0>1<7=t=`3952b<5k81=l>4=b:9a==z{8326=4={13<5j31=><4}r;6>5<4s4k96<9k;<`7>4g734i26h64}r3:f?6=:r7j?7::;4553ty2:7>53z?b7?70l27i:7?n0:?`e?c?3ty:5i4?:3y>e1<3=27hn7?<2:p=2<72:q6m94>7e9>f=<6i916oo4j8:p5gf<6;;1v4650;1x9d3=9>n01oo51`289fe=m11v<7i:1818g12=?01nj51208yv?>2908w0o9:05g?8dd28k;70mk:d:8yv7?13:1>v36c;66?8e628997p}7e;297~;>k3;;d93o37p}>8`83>7}:1m0?963l2;306>{t0o0;6ku29e823a=:lm0<;63k9;54?8bd2>=01i65769>`g<0?27o;798;21<5m<1;:52a`82e5=:k;0n463k1;54?8b72>201nh5769>g`<0?2wx=5l50;0x94>339~w<6=83kp14k516f89a3=9h:01i:51`289a5=9h:01i<51`289f5=m116h<488:?g4?1034im6:64=bg93==z{mn1<7;b<3=370k<:6589a`=?h16i<488:?ga?1f3tyoo7>52z?g0?1034nh6<:8;|qg4203ty3n7>58z?g0?74:27n>796;2?<5l>1;452e284e>;cn3=370k>:6c89ac=?01vil50;0x9a5=?>16ho4>469~wa1=838p1i=5799>`2<6<>1v5o50;:x9a5=9:801h<57`9>a5<0?27n8798;2><5ml1;452e0843>;cm3=37p}ka;296~;c:3=<70jn:064?xuc>3:1>v3k2;5;?8b128><7p}79;29<~;c:3;8>63j2;5;?8c72>k01h:57`9>a6<0127oj798;2?<5mo1;:5rs00a>5<3s4;;o7:8;11<588j6<94=004>4>51by>55e=:<16=55b=<>16==h5469>547=<>16=<=5469>543=<>16=<95469>e2<5=27h<7<:;11<5ho18:52b1873>;e:3><70l;:5589g0=<>16n54;7:?ae?2034hh6994=`:902=:ih0?;63>c1842>;6:h0:463>2`82e>;6:h0:n63>26823>;6:>0:m63>2682f>{t9831<7=t=02`>4g734;:n7k7;<32e?73?2wx==m50;1x946d289970??d;06?876k38>7p}>0e83>6}:99n1=><4=02e>73<58;o6?;4}r33b?6=;r7:339>547=:<16=1;306>;69:09963>1g811>{t9891<7=t=030>45534;:97<:;<314?423ty:=84?:2y>543=9:8017;296~;69>0:??52130960=z{ko1<7=t=`595d6<5j:1i552bg8202=z{h=1<7=t=`59564<5hi1>852c4811>{tij0;6>u2ab8277=:il09963l6;06?xufm3:1?v3ne;306>;e838>70m8:378yvd72908w0l?:011?8d52;?01n65249~wg4=839p1o<512089g2=:<16o44=5:pf1<72:q6n94>339>f3<5=27hm7<:;|qa2?6=;r7i:7?<2:?a5<4s4h36<==;<`b>73<5ji1>85rscc94?5|5kk1=><4=ca960=:km0996s|bb83>6}:jj0:??52a9811>;d938>7p}n8;297~;f03;8>63na;06?8e52;?0q~on:1818gf289970m<:378yv3e2909w0j>:064?83e2><0q~;n:1818b728><70;n:648yv3>2909w0mi:064?83>2><0q~;7:1818eb28><70;7:648yv77>3:1>v3>0c84=>;68=0:8:5rs0`g>5<5s4o96<:8;<3a`?113ty:no4?:3y>a5<6<>16=ol5779~w4da2909w0k;:064?87en3==7p}>bd83>7}:m:0:8:521cg933=z{8hj6=4={42034;im799;|q2ff<72;q6i<4>469>5ge=??1v<70?m9;55?xu6:m0;69u214:93d=:95<4s4>j6:84=5;95d0u21b29564<58h36{t9k<1<7=t=0`e>45534;i:7?n5:\2f3=z{8h>6=4<{<3aa?74:27:n84>a49]5g353z?2fa<6;;16=o:51`78Z4d33ty:n>4?:2y>5ge=9:801X6j;1v:18087ei3;8>63>b082e0=Y9k;0q~?m0;297~;6j00:??521c295d363:7;3b1>X2?2wx984?:2y>1d<6;;16984>a49]10=z{<>1<7=t=4;9564<5<>1=l;4^468yv342908w0;7:011?83428k>7S;<;|q156<72:q6>7S<>3:p647=839p1??n:011?84693;j96P=109~w7772908w0<>9;306>;5990:m85Q2028yv47n3:1?v3=198277=::9l1=l;4^32e?xu58l0;6>u22059564<5;:n6{t:9n1<7=t=335>455348;h7?n5:\14a=z{;:h6=4<{<021?74:279a49]65e53z?151<6;;16>=l51`78Z76e3ty9j7>53z?0v3<8;306>;58h0846s|3183>6}:;=0<:63<0;3b2>X482wx?94?:3y>71<6;;16>=75359~w44>290:w0?=a;07?xu6:10;6?u213c952b<58ln69;4}r312?6=9r7:>:4=4:p573=838p1<<8:05g?87a?3>>7psa97;94?7|f8o:6=5rn84b>5<5sg;n=7?4}o;5f?6=9rd:i<4=;|l:2f<728qe=h?53:m=3b=83;pb:59~j<0b290:wc?j1;78yk?1n3:1=v`>e085?xh>?90;6{i1>;1<7?tn0g2>==zf0=96=4>{o3f5??51zl2a44}i9l;1j6sa96;94?7|f8o:6<>4}o;4e?6=9rd:i<4>1:m=2d=83;pb:008yk?0k3:1=v`>e0827>{i1>n1<7?tn0g2>4251zl2a4<6=2we5:h50;3xj4c628<0qc770;295~h6m80:;6sa99394?7|f8o:6<64}o;;6?6=9rd:i<4>9:m==5=83;pb:0c8yk??<3:1=v`>e082f>{i11?1<7?tn0g2>4e51zl2a4<6l2we55950;3xj4c628o0qc778;295~h6m80:j6sa99;94?7|f8o:6?>4}o;;e?6=9rd:i<4=1:m==d=83;pb:308yk??k3:1=v`>e0817>{i11n1<7?tn0g2>7251zl2a4<5=2we55h50;3xj4c62;<0qc760;295~h6m809;6sa98394?7|f8o:6?64}o;:6?6=9rd:i<4=9:m=<5=83;pb:3c8yk?><3:1=v`>e081f>{i10?1<7?tn0g2>7e51zl2a4<5l2we54950;3xj4c62;o0qc768;295~h6m809j6sa98;94?7|f8o:6>>4}o;:e?6=9rd:i<4<1:m=:208yk?>k3:1=v`>e0807>{i10n1<7?tn0g2>6251zl2a4<4=2we54h50;3xj4c62:<0qc7n0;295~h6m808;6sa9`394?7|f8o:6>64}o;b6?6=9rd:i<4<9:m=d5=83;pb:2c8yk?f<3:1=v`>e080f>{i1h?1<7?tn0g2>6e51zl2a4<4l2we5l950;0xj4c62:o0qc7n8;295~h6m808j6sa9`;94?7|f8o:69>4}o;be?6=9rd:i<4;1:m=dd=83;pb:508yk?fk3:1=v`>e0877>{i1hn1<7?tn0g2>1251zl2a4<3=2we5lh50;3xj4c62=<0qc7m0;295~h6m80?;6sa9c394?7|f8o:6964}o;a6?6=9rd:i<4;9:m=g5=83;pb:5c8yk?e<3:1=v`>e087f>{i1k?1<7?tn0g2>1e51zl2a4<3l2we5o950;3xj4c62=o0qc7m8;295~h6m80?j6sa9c;94?7|f8o:68>4}o;ae?6=9rd:i<4:1:m=gd=83;pb:408yk?ek3:1=v`>e0867>{i1kn1<7?tn0g2>0251zl2a4<2=2we5oh50;3xj4c62<<0qc7l0;295~h6m80>;6sa9b394?7|f8o:6864}o;`6?6=9rd:i<4:9:m=f5=83;pb:4c8yk?d<3:1=v`>e086f>{i1j?1<7?tn0g2>0e51zl2a4<2l2we5n950;3xj4c62j6sa9b;94?7|f8o:6;>4}o;`e?6=9rd:i<491:m=fd=83;pb:708yk?dk3:1=v`>e0857>{i1jn1<7?tn05b>4=i9l;1:95rn8af>5<6sg;4n0g2>3351zl2a4<1>2we5i>50;3xj4c62?=0qc7k1;295~h6m80=46sa9e094?7|f8o:6;74}o;g7?6=9rd:i<49a:m=a2=83;pb:7`8yk?c=3:1=v`>e085g>{i1m<1<7?tn0g2>3b51zl2a4<1m2we5i650;3xj4c62?l0qc7k9;295~h6m80<<6sa9ec94?7|f8o:6:?4}o;gf?6=9rd:i<482:m=ae=83;pb:618yk?cl3:1=v`>e0840>{i1mo1<7?tn0g2>2351zl2a4<0>2we5h>50;3xj4c62>=0qc7j1;295~h6m80<46sa9d094?7|f8o:6:74}o;f7?6=9rd:i<48a:m=`2=83;pb:6`8yk?b=3:1=v`>e084g>{i1l<1<7?tn0g2>2b51zl2a4<0m2we5h650;3xj4c62>l0qc7j9;295~h6m803<6sa9dc94?7|f8o:65?4}o;ff?6=9rd:i<472:m=`e=83;pb:918yk?bl3:1=v`>e08;0>{i1lo1<7?tn0g2>=351zl2a42we5k>50;3xj4c621=0qc7i1;295~h6m80346sa9g094?7|f8o:6574}o;e7?6=9rd:i<47a:m=c2=83;pb:9`8yk?a=3:1=v`>e08;g>{i1o<1<7?tn0g2>=b51zl2a4:818yk?al3:1=v`>e08:0>{i1oo1<7?tn0g2><351zl2a4<>>2wem=>50;3xj4c620=0qco?1;295~h6m80246saa1094?7|f8o:6474}oc37?6=9rd:i<46a:me52=83;pb:8`8ykg7=3:1=v`>e08:g>{ii9<1<7?tn0g2>51zl2a4<>m2wem=650;0xj4c620l0qco?9;295~h6m80j<6saa1c94?4|f8o:6l?4}oc3f?6=9rd:;l4>;o3f5?g53tdjk:182k70i3;0b:`68ykg7m3:1=v`>e08b1>{i14=i9l;1m;5rn845>5<6sg;d11=oihqMNM{e1x5a>=83:1>7;m5;777>{|9m21<7>52;762?32?2wp=i650;296?3fm3??:6st1e:94?6=:3?jj7;;8:x5a>=83:1>7;m0;77e>{|9m21<7>52;7a5?33k2wp=i650;296?3e:3??i6st1e:94?6=:3?i?7;:0:x5a>=83:1>7;>6;71<>{|9m21<7>52;72e?35i2wp=i650;296?36j3?9o6st1e:94?6=:3?:o7;=e:x5a>=83:1>7;>d;704>{|9m21<7>52;72a?34:2wp=i650;296?36n3?886st1e:94?6=:3?9<7;<6:x5a>=83:1>7;=1;70<>{|9m21<7>52;723?35<2wp=i650;296?3603?9:6st1e:94?6=:3?i87;:2:x5a>=83:1>7;>9;70e>{|9m21<7>54;734?3793?i57;mb:x5a>=83:1>7;?2;75f>{|9m=1<7>52;7g2?4>3tq:h:4?:181>0bc2::0qv?k7;294?4==l>1?:5r{0f4>5<72;0>io47;i2;66?x}6l>0;6=4=:4d:>1e50;09256==:1vw7<18>0>m6st1e594?6=:3<;i78>;|y2`2<729096;?::7:8y~7c?3:1<7<560a92c=zs8n<6=4?:38566<0>2wp=i950;296?05i3=o7pu>d683>5<52?9:65:4}z3g3?6=8381:>658c9~4b0290;6?493g8:6>{|9m=1<7>52;472??>3tq:h:4?:181>32c2h:0qv?k7;294?4=><>1m:5r{0f4>5<72;0=9o4ne:x5a1=83:1>7892;`6?x}6l>0;6=4=:74:>ge50;09226=k:1vw7<1?>0hm6st1e594?6=:3<;|y2`2<729096;6::e:8y~7c?3:1<7<569a9`c=zs8n<6=4?:385=62wp=i950;296?0>i3oo7pu>d683>5<52?k:6k:4}z3g3?6=8381:l65fc9~4b0290;6?49ag8241=zs8n<6=4?:385f3<68m1vw7<1jm0:=;5r{0f4>5<72;0=o94>1g9~4b0290;6?49cc826==zs8n<6=4?:385`7<6:o1vw7<1l00:?;5r{0f4>5<72;0=i=4>3e9~4b0290;6?49e68201=zs8n<6=4?:385a`<67<1n<0:9?5r{0f4>5<72;0=jn4>589~4b0290;6?48028225=zs8n<6=4?:3844d<6>>1vw7<0980::h5r{0f4>5<72;0<=54>749~4b0290;6?481g823f=zs8n<6=4?:38463<60:1vw7<0:m0:4l5r{0f4>5<72;0909~4b0290;6?483c82===zs8n<6=4?:38407<61o1vw7<0<00:m;5r{0f4>5<72;0<9=4>ae9~4b0290;6?485682f1=zs8n<6=4?:3841`<6jk1vw7<0>:0:o=5r{0f4>5<72;0<:54>c49~4b0290;6?486e82gd=zs8n<6=4?:38437<6ko1vw7<0?>0:h95r{0f4>5<72;0<;n4>d89~4b0290;6?488082``=zs8n<6=4?:384<3<6m:1vw7<00k0:i55r{0f4>5<72;0<5=4>ee9~4b0290;6?489482b7=zs8n<6=4?:384=d<6n>1vw7<01o0:jn5r{0f4>5<72;04=019~4b0290;6?48a98140=zs8n<6=4?:384ef<5801vw7<0j8095<72;07<0k:09>=5r{0f4>5<72;07<0l<09??5r{0f4>5<72;07<0m?098>5r{0f4>5<72;07<0n109985r{0f4>5<72;0:1vw75<72;0375<72;03><4=7d9~4b0290;6?472481<7=zs8n<6=4?:38;6d<50>1vw75<72;03?>4=919~4b0290;6?473681=1=zs8n<6=4?:38;7f<5101vw75<72;03884=a39~4b0290;6?474881e3=zs8n<6=4?:38;0a<5ih1vw75<72;03984=b39~4b0290;6?475881f3=zs8n<6=4?:38;1a<5jh1vw7809nh5r{0f4>5<72;03:;4=c29~4b0290;6?476c81g==zs8n<6=4?:38;34<5kl1vw709h95r{0f4>5<72;03;i4=d`9~4b0290;6?478281a5=zs8n<6=4?:38;<<<5m?1vw75<72;03584=f39~4b0290;6?479c81b==zs8n<6=4?:38;=`<5nk1vw75<72;03m94<009~4b0290;6?47a68041=zs8n<6=4?:38;ed<48>1vw75<72;03n=4<0e9~4b0290;6?47b28055=zs8n<6=4?:38;f3<49:1vw75<72;03nn4<189~4b0290;6?47bg805f=zs8n<6=4?:38;g7<49o1vw7?5r{0f4>5<72;03o54<249~4b0290;6?47cc806==zs8n<6=4?:38;g`<4:k1vw7h5r{0f4>5<72;03h94<309~4b0290;6?47d68071=zs8n<6=4?:38;`d<40:1vw75<72;03i;4<8g9~4b0290;6?47eb80===zs8n<6=4?:38;ac<4i=1vw75<72;03j847<>8008i55r{0f4>5<72;02=>4;019~4b0290;6?461`874d=zs8n<6=4?:38:5c<39;1vw7<>::0?=;5r{0f4>5<72;02>84;199~4b0290;6?4626875d=zs8n<6=4?:38:6<<39j1vw7<>:k0?=h5r{0f4>5<72;02>i4;219~4b0290;6?462g8767=zs8n<6=4?:38:74<3:=1vw7<>;:0?>;5r{0f4>5<72;02?84;299~4b0290;6?4636876d=zs8n<6=4?:38:7<<3:j1vw7<>;k0?>h5r{0f4>5<72;02?i4;319~4b0290;6?463g8777=zs8n<6=4?:38:04<3;=1vw7<><:0??;5r{0f4>5<72;02884;399~4b0290;6?4646877d=zs8n<6=4?:38:0<<3;j1vw7<>5<72;028i4;419~4b0290;6?464g8707=zs8n<6=4?:38:14<4i>1vw7<>=;08m55r{0f:>5<72;029>47<>=l085i5r{0f4>5<72<02::4d683>5<6i33=47:?7;63b?54?398n7=n7=:f;157?51?39=n7=9f;147?50?397=m6:~DEV|uIJ \ No newline at end of file Index: ps2_keyboard_interface/Keyboard_Controller_pad.csv =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_pad.csv (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_pad.csv (revision 2) @@ -0,0 +1,287 @@ +#Release 12.3 - par M.70d (lin64) +#Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. + +#Fri Dec 3 00:08:30 2010 + +# +## NOTE: This file is designed to be imported into a spreadsheet program +# such as Microsoft Excel for viewing, printing and sorting. The | +# character is used as the data field separator. This file is also designed +# to support parsing. +# +#INPUT FILE: Keyboard_Controller_map.ncd +#OUTPUT FILE: Keyboard_Controller_pad.csv +#PART TYPE: xc3s200 +#SPEED GRADE: -5 +#PACKAGE: ft256 +# +# Pinout by Pin Number: +# +# -----,-----,-----,-----,-----,-----,-----,-----,-----,-----,-----,-----,-----,-----,-----, +Pin Number,Signal Name,Pin Usage,Pin Name,Direction,IO Standard,IO Bank Number,Drive (mA),Slew Rate,Termination,IOB Delay,Voltage,Constraint,IO Register,Signal Integrity, +A1,,,GND,,,,,,,,,,,, +A2,,,TDI,,,,,,,,,,,, +A3,,IOB,IO/VREF_0,UNUSED,,0,,,,,,,,, +A4,,DIFFM,IO_L01P_0/VRN_0,UNUSED,,0,,,,,,,,, +A5,,IOB,IO,UNUSED,,0,,,,,,,,, +A6,,,VCCAUX,,,,,,,,2.5,,,, +A7,,IOB,IO,UNUSED,,0,,,,,,,,, +A8,,DIFFM,IO_L32P_0/GCLK6,UNUSED,,0,,,,,,,,, +A9,,IOB,IO,UNUSED,,1,,,,,,,,, +A10,,DIFFS,IO_L31N_1/VREF_1,UNUSED,,1,,,,,,,,, +A11,,,VCCAUX,,,,,,,,2.5,,,, +A12,,IOB,IO,UNUSED,,1,,,,,,,,, +A13,,DIFFS,IO_L10N_1/VREF_1,UNUSED,,1,,,,,,,,, +A14,,DIFFS,IO_L01N_1/VRP_1,UNUSED,,1,,,,,,,,, +A15,,,TDO,,,,,,,,,,,, +A16,,,GND,,,,,,,,,,,, +B1,,DIFFM,IO_L01P_7/VRN_7,UNUSED,,7,,,,,,,,, +B2,,,GND,,,,,,,,,,,, +B3,,,PROG_B,,,,,,,,,,,, +B4,,DIFFS,IO_L01N_0/VRP_0,UNUSED,,0,,,,,,,,, +B5,,DIFFM,IO_L25P_0,UNUSED,,0,,,,,,,,, +B6,,DIFFM,IO_L28P_0,UNUSED,,0,,,,,,,,, +B7,,DIFFM,IO_L30P_0,UNUSED,,0,,,,,,,,, +B8,,DIFFS,IO_L32N_0/GCLK7,UNUSED,,0,,,,,,,,, +B9,,,GND,,,,,,,,,,,, +B10,,DIFFM,IO_L31P_1,UNUSED,,1,,,,,,,,, +B11,,DIFFS,IO_L29N_1,UNUSED,,1,,,,,,,,, +B12,,DIFFS,IO_L27N_1,UNUSED,,1,,,,,,,,, +B13,,DIFFM,IO_L10P_1,UNUSED,,1,,,,,,,,, +B14,,DIFFM,IO_L01P_1/VRN_1,UNUSED,,1,,,,,,,,, +B15,,,GND,,,,,,,,,,,, +B16,,DIFFS,IO_L01N_2/VRP_2,UNUSED,,2,,,,,,,,, +C1,,DIFFS,IO_L01N_7/VRP_7,UNUSED,,7,,,,,,,,, +C2,,DIFFS,IO_L16N_7,UNUSED,,7,,,,,,,,, +C3,,DIFFM,IO_L16P_7/VREF_7,UNUSED,,7,,,,,,,,, +C4,,,HSWAP_EN,,,,,,,,,,,, +C5,,DIFFS,IO_L25N_0,UNUSED,,0,,,,,,,,, +C6,,DIFFS,IO_L28N_0,UNUSED,,0,,,,,,,,, +C7,,DIFFS,IO_L30N_0,UNUSED,,0,,,,,,,,, +C8,,DIFFM,IO_L31P_0/VREF_0,UNUSED,,0,,,,,,,,, +C9,,DIFFS,IO_L32N_1/GCLK5,UNUSED,,1,,,,,,,,, +C10,,IOB,IO,UNUSED,,1,,,,,,,,, +C11,,DIFFM,IO_L29P_1,UNUSED,,1,,,,,,,,, +C12,,DIFFM,IO_L27P_1,UNUSED,,1,,,,,,,,, +C13,,,TMS,,,,,,,,,,,, +C14,,,TCK,,,,,,,,,,,, +C15,,DIFFS,IO_L16N_2,UNUSED,,2,,,,,,,,, +C16,,DIFFM,IO_L01P_2/VRN_2,UNUSED,,2,,,,,,,,, +D1,,DIFFS,IO_L17N_7,UNUSED,,7,,,,,,,,, +D2,,DIFFM,IO_L17P_7,UNUSED,,7,,,,,,,,, +D3,,DIFFM,IO_L19P_7,UNUSED,,7,,,,,,,,, +D4,,,VCCINT,,,,,,,,1.2,,,, +D5,,IOB,IO/VREF_0,UNUSED,,0,,,,,,,,, +D6,,DIFFM,IO_L27P_0,UNUSED,,0,,,,,,,,, +D7,,DIFFM,IO_L29P_0,UNUSED,,0,,,,,,,,, +D8,,DIFFS,IO_L31N_0,UNUSED,,0,,,,,,,,, +D9,,DIFFM,IO_L32P_1/GCLK4,UNUSED,,1,,,,,,,,, +D10,,DIFFS,IO_L30N_1,UNUSED,,1,,,,,,,,, +D11,,DIFFS,IO_L28N_1,UNUSED,,1,,,,,,,,, +D12,,IOB,IO/VREF_1,UNUSED,,1,,,,,,,,, +D13,,,VCCINT,,,,,,,,1.2,,,, +D14,Enables<3>,IOB,IO_L16P_2,OUTPUT,LVCMOS25*,2,12,SLOW,NONE**,,,LOCATED,NO,NONE, +D15,,DIFFS,IO_L17N_2,UNUSED,,2,,,,,,,,, +D16,,DIFFM,IO_L17P_2/VREF_2,UNUSED,,2,,,,,,,,, +E1,,DIFFS,IO_L20N_7,UNUSED,,7,,,,,,,,, +E2,,DIFFM,IO_L20P_7,UNUSED,,7,,,,,,,,, +E3,,DIFFS,IO_L19N_7/VREF_7,UNUSED,,7,,,,,,,,, +E4,,DIFFM,IO_L21P_7,UNUSED,,7,,,,,,,,, +E5,,,VCCINT,,,,,,,,1.2,,,, +E6,,DIFFS,IO_L27N_0,UNUSED,,0,,,,,,,,, +E7,,DIFFS,IO_L29N_0,UNUSED,,0,,,,,,,,, +E8,,,VCCO_0,,,0,,,,,any******,,,, +E9,,,VCCO_1,,,1,,,,,any******,,,, +E10,,DIFFM,IO_L30P_1,UNUSED,,1,,,,,,,,, +E11,,DIFFM,IO_L28P_1,UNUSED,,1,,,,,,,,, +E12,,,VCCINT,,,,,,,,1.2,,,, +E13,Enables<0>,IOB,IO_L19N_2,OUTPUT,LVCMOS25*,2,12,SLOW,NONE**,,,LOCATED,NO,NONE, +E14,Segments<0>,IOB,IO_L19P_2,OUTPUT,LVCMOS25*,2,12,SLOW,NONE**,,,LOCATED,NO,NONE, +E15,,DIFFS,IO_L20N_2,UNUSED,,2,,,,,,,,, +E16,,DIFFM,IO_L20P_2,UNUSED,,2,,,,,,,,, +F1,,,VCCAUX,,,,,,,,2.5,,,, +F2,,DIFFS,IO_L22N_7,UNUSED,,7,,,,,,,,, +F3,,DIFFM,IO_L22P_7,UNUSED,,7,,,,,,,,, +F4,,DIFFS,IO_L21N_7,UNUSED,,7,,,,,,,,, +F5,,DIFFM,IO_L23P_7,UNUSED,,7,,,,,,,,, +F6,,,GND,,,,,,,,,,,, +F7,,,VCCO_0,,,0,,,,,any******,,,, +F8,,,VCCO_0,,,0,,,,,any******,,,, +F9,,,VCCO_1,,,1,,,,,any******,,,, +F10,,,VCCO_1,,,1,,,,,any******,,,, +F11,,,GND,,,,,,,,,,,, +F12,,DIFFS,IO_L21N_2,UNUSED,,2,,,,,,,,, +F13,Segments<5>,IOB,IO_L21P_2,OUTPUT,LVCMOS25*,2,12,SLOW,NONE**,,,LOCATED,NO,NONE, +F14,Enables<1>,IOB,IO_L22N_2,OUTPUT,LVCMOS25*,2,12,SLOW,NONE**,,,LOCATED,NO,NONE, +F15,,DIFFM,IO_L22P_2,UNUSED,,2,,,,,,,,, +F16,,,VCCAUX,,,,,,,,2.5,,,, +G1,,DIFFM,IO_L40P_7,UNUSED,,7,,,,,,,,, +G2,,DIFFS,IO,UNUSED,,7,,,,,,,,, +G3,,DIFFS,IO_L24N_7,UNUSED,,7,,,,,,,,, +G4,,DIFFM,IO_L24P_7,UNUSED,,7,,,,,,,,, +G5,,DIFFS,IO_L23N_7,UNUSED,,7,,,,,,,,, +G6,,,VCCO_7,,,7,,,,,any******,,,, +G7,,,GND,,,,,,,,,,,, +G8,,,GND,,,,,,,,,,,, +G9,,,GND,,,,,,,,,,,, +G10,,,GND,,,,,,,,,,,, +G11,,,VCCO_2,,,2,,,,,2.50,,,, +G12,,DIFFS,IO_L23N_2/VREF_2,UNUSED,,2,,,,,,,,, +G13,Segments<1>,IOB,IO_L23P_2,OUTPUT,LVCMOS25*,2,12,SLOW,NONE**,,,LOCATED,NO,NONE, +G14,Enables<2>,IOB,IO_L24N_2,OUTPUT,LVCMOS25*,2,12,SLOW,NONE**,,,LOCATED,NO,NONE, +G15,,DIFFM,IO_L24P_2,UNUSED,,2,,,,,,,,, +G16,,DIFFM,IO,UNUSED,,2,,,,,,,,, +H1,,DIFFS,IO_L40N_7/VREF_7,UNUSED,,7,,,,,,,,, +H2,,,GND,,,,,,,,,,,, +H3,,DIFFS,IO_L39N_7,UNUSED,,7,,,,,,,,, +H4,,DIFFM,IO_L39P_7,UNUSED,,7,,,,,,,,, +H5,,,VCCO_7,,,7,,,,,any******,,,, +H6,,,VCCO_7,,,7,,,,,any******,,,, +H7,,,GND,,,,,,,,,,,, +H8,,,GND,,,,,,,,,,,, +H9,,,GND,,,,,,,,,,,, +H10,,,GND,,,,,,,,,,,, +H11,,,VCCO_2,,,2,,,,,2.50,,,, +H12,,,VCCO_2,,,2,,,,,2.50,,,, +H13,,DIFFS,IO_L39N_2,UNUSED,,2,,,,,,,,, +H14,,DIFFM,IO_L39P_2,UNUSED,,2,,,,,,,,, +H15,,DIFFS,IO_L40N_2,UNUSED,,2,,,,,,,,, +H16,Segments<7>,IOB,IO_L40P_2/VREF_2,OUTPUT,LVCMOS25*,2,12,SLOW,NONE**,,,UNLOCATED,NO,NONE, +J1,,DIFFM,IO_L40P_6/VREF_6,UNUSED,,6,,,,,,,,, +J2,,DIFFS,IO_L40N_6,UNUSED,,6,,,,,,,,, +J3,,DIFFM,IO_L39P_6,UNUSED,,6,,,,,,,,, +J4,,DIFFS,IO_L39N_6,UNUSED,,6,,,,,,,,, +J5,,,VCCO_6,,,6,,,,,any******,,,, +J6,,,VCCO_6,,,6,,,,,any******,,,, +J7,,,GND,,,,,,,,,,,, +J8,,,GND,,,,,,,,,,,, +J9,,,GND,,,,,,,,,,,, +J10,,,GND,,,,,,,,,,,, +J11,,,VCCO_3,,,3,,,,,2.50,,,, +J12,,,VCCO_3,,,3,,,,,2.50,,,, +J13,,DIFFM,IO_L39P_3,UNUSED,,3,,,,,,,,, +J14,,DIFFS,IO_L39N_3,UNUSED,,3,,,,,,,,, +J15,,,GND,,,,,,,,,,,, +J16,,DIFFS,IO_L40N_3/VREF_3,UNUSED,,3,,,,,,,,, +K1,,DIFFM,IO,UNUSED,,6,,,,,,,,, +K2,,DIFFM,IO_L24P_6,UNUSED,,6,,,,,,,,, +K3,,DIFFS,IO_L24N_6/VREF_6,UNUSED,,6,,,,,,,,, +K4,,DIFFM,IO_L23P_6,UNUSED,,6,,,,,,,,, +K5,,DIFFS,IO_L23N_6,UNUSED,,6,,,,,,,,, +K6,,,VCCO_6,,,6,,,,,any******,,,, +K7,,,GND,,,,,,,,,,,, +K8,,,GND,,,,,,,,,,,, +K9,,,GND,,,,,,,,,,,, +K10,,,GND,,,,,,,,,,,, +K11,,,VCCO_3,,,3,,,,,2.50,,,, +K12,pressed<0>,IOB,IO_L23N_3,OUTPUT,LVCMOS25*,3,12,SLOW,NONE**,,,LOCATED,NO,NONE, +K13,,DIFFM,IO_L24P_3,UNUSED,,3,,,,,,,,, +K14,,DIFFS,IO_L24N_3,UNUSED,,3,,,,,,,,, +K15,,DIFFS,IO,UNUSED,,3,,,,,,,,, +K16,,DIFFM,IO_L40P_3,UNUSED,,3,,,,,,,,, +L1,,,VCCAUX,,,,,,,,2.5,,,, +L2,,DIFFM,IO_L22P_6,UNUSED,,6,,,,,,,,, +L3,,DIFFS,IO_L22N_6,UNUSED,,6,,,,,,,,, +L4,,DIFFM,IO_L21P_6,UNUSED,,6,,,,,,,,, +L5,,DIFFS,IO_L21N_6,UNUSED,,6,,,,,,,,, +L6,,,GND,,,,,,,,,,,, +L7,,,VCCO_5,,,5,,,,,any******,,,, +L8,,,VCCO_5,,,5,,,,,any******,,,, +L9,,,VCCO_4,,,4,,,,,2.50,,,, +L10,,,VCCO_4,,,4,,,,,2.50,,,, +L11,,,GND,,,,,,,,,,,, +L12,pressed<2>,IOB,IO_L23P_3/VREF_3,OUTPUT,LVCMOS25*,3,12,SLOW,NONE**,,,LOCATED,NO,NONE, +L13,,DIFFS,IO_L21N_3,UNUSED,,3,,,,,,,,, +L14,,DIFFM,IO_L22P_3,UNUSED,,3,,,,,,,,, +L15,,DIFFS,IO_L22N_3,UNUSED,,3,,,,,,,,, +L16,,,VCCAUX,,,,,,,,2.5,,,, +M1,,DIFFM,IO_L20P_6,UNUSED,,6,,,,,,,,, +M2,,DIFFS,IO_L20N_6,UNUSED,,6,,,,,,,,, +M3,,DIFFM,IO_L19P_6,UNUSED,,6,,,,,,,,, +M4,,DIFFS,IO_L19N_6,UNUSED,,6,,,,,,,,, +M5,,,VCCINT,,,,,,,,1.2,,,, +M6,,DIFFM,IO_L28P_5/D7,UNUSED,,5,,,,,,,,, +M7,,DIFFM,IO_L30P_5,UNUSED,,5,,,,,,,,, +M8,,,VCCO_5,,,5,,,,,any******,,,, +M9,,,VCCO_4,,,4,,,,,2.50,,,, +M10,,DIFFS,IO_L29N_4,UNUSED,,4,,,,,,,,, +M11,,DIFFS,IO_L27N_4/DIN/D0,UNUSED,,4,,,,,,,,, +M12,,,VCCINT,,,,,,,,1.2,,,, +M13,,DIFFM,IO_L21P_3,UNUSED,,3,,,,,,,,, +M14,,DIFFS,IO_L19N_3,UNUSED,,3,,,,,,,,, +M15,DataIn,IOB,IO_L20P_3,INPUT,LVCMOS25*,3,,,,NONE,,LOCATED,NO,NONE, +M16,Clk,IOB,IO_L20N_3,INPUT,LVCMOS25*,3,,,,NONE,,LOCATED,NO,NONE, +N1,,DIFFM,IO_L17P_6/VREF_6,UNUSED,,6,,,,,,,,, +N2,,DIFFS,IO_L17N_6,UNUSED,,6,,,,,,,,, +N3,,DIFFM,IO_L16P_6,UNUSED,,6,,,,,,,,, +N4,,,VCCINT,,,,,,,,1.2,,,, +N5,,IOB,IO,UNUSED,,5,,,,,,,,, +N6,,DIFFS,IO_L28N_5/D6,UNUSED,,5,,,,,,,,, +N7,,DIFFS,IO_L30N_5,UNUSED,,5,,,,,,,,, +N8,,DIFFM,IO_L32P_5/GCLK2,UNUSED,,5,,,,,,,,, +N9,,DIFFS,IO_L31N_4/INIT_B,UNUSED,,4,,,,,,,,, +N10,,DIFFM,IO_L29P_4,UNUSED,,4,,,,,,,,, +N11,,DIFFM,IO_L27P_4/D1,UNUSED,,4,,,,,,,,, +N12,pressed<5>,IOB,IO/VREF_4,OUTPUT,LVCMOS25*,4,12,SLOW,NONE**,,,LOCATED,NO,NONE, +N13,,,VCCINT,,,,,,,,1.2,,,, +N14,pressed<3>,IOB,IO_L19P_3,OUTPUT,LVCMOS25*,3,12,SLOW,NONE**,,,LOCATED,NO,NONE, +N15,Segments<2>,IOB,IO_L17P_3/VREF_3,OUTPUT,LVCMOS25*,3,12,SLOW,NONE**,,,LOCATED,NO,NONE, +N16,Segments<6>,IOB,IO_L17N_3,OUTPUT,LVCMOS25*,3,12,SLOW,NONE**,,,LOCATED,NO,NONE, +P1,,DIFFM,IO_L01P_6/VRN_6,UNUSED,,6,,,,,,,,, +P2,,DIFFS,IO_L16N_6,UNUSED,,6,,,,,,,,, +P3,,,M0,,,,,,,,,,,, +P4,,,M2,,,,,,,,,,,, +P5,,DIFFM,IO_L27P_5,UNUSED,,5,,,,,,,,, +P6,,DIFFM,IO_L29P_5/VREF_5,UNUSED,,5,,,,,,,,, +P7,,IOB,IO,UNUSED,,5,,,,,,,,, +P8,,DIFFS,IO_L32N_5/GCLK3,UNUSED,,5,,,,,,,,, +P9,,DIFFM,IO_L31P_4/DOUT/BUSY,UNUSED,,4,,,,,,,,, +P10,,DIFFS,IO_L30N_4/D2,UNUSED,,4,,,,,,,,, +P11,pressed<7>,IOB,IO_L28N_4,OUTPUT,LVCMOS25*,4,12,SLOW,NONE**,,,LOCATED,NO,NONE, +P12,pressed<6>,IOB,IO_L25N_4,OUTPUT,LVCMOS25*,4,12,SLOW,NONE**,,,LOCATED,NO,NONE, +P13,pressed<4>,IOB,IO/VREF_4,OUTPUT,LVCMOS25*,4,12,SLOW,NONE**,,,LOCATED,NO,NONE, +P14,pressed<1>,IOB,IO_L16P_3,OUTPUT,LVCMOS25*,3,12,SLOW,NONE**,,,LOCATED,NO,NONE, +P15,Segments<3>,IOB,IO_L16N_3,OUTPUT,LVCMOS25*,3,12,SLOW,NONE**,,,LOCATED,NO,NONE, +P16,,DIFFS,IO_L01N_3/VRP_3,UNUSED,,3,,,,,,,,, +R1,,DIFFS,IO_L01N_6/VRP_6,UNUSED,,6,,,,,,,,, +R2,,,GND,,,,,,,,,,,, +R3,,DIFFM,IO_L01P_5/CS_B,UNUSED,,5,,,,,,,,, +R4,,DIFFM,IO_L10P_5/VRN_5,UNUSED,,5,,,,,,,,, +R5,,DIFFS,IO_L27N_5/VREF_5,UNUSED,,5,,,,,,,,, +R6,,DIFFS,IO_L29N_5,UNUSED,,5,,,,,,,,, +R7,,DIFFM,IO_L31P_5/D5,UNUSED,,5,,,,,,,,, +R8,,,GND,,,,,,,,,,,, +R9,,DIFFS,IO_L32N_4/GCLK1,UNUSED,,4,,,,,,,,, +R10,,DIFFM,IO_L30P_4/D3,UNUSED,,4,,,,,,,,, +R11,,DIFFM,IO_L28P_4,UNUSED,,4,,,,,,,,, +R12,,DIFFM,IO_L25P_4,UNUSED,,4,,,,,,,,, +R13,,DIFFS,IO_L01N_4/VRP_4,UNUSED,,4,,,,,,,,, +R14,,,DONE,,,,,,,,,,,, +R15,,,GND,,,,,,,,,,,, +R16,Segments<4>,IOB,IO_L01P_3/VRN_3,OUTPUT,LVCMOS25*,3,12,SLOW,NONE**,,,LOCATED,NO,NONE, +T1,,,GND,,,,,,,,,,,, +T2,,,M1,,,,,,,,,,,, +T3,,DIFFS,IO_L01N_5/RDWR_B,UNUSED,,5,,,,,,,,, +T4,,DIFFS,IO_L10N_5/VRP_5,UNUSED,,5,,,,,,,,, +T5,,IOB,IO,UNUSED,,5,,,,,,,,, +T6,,,VCCAUX,,,,,,,,2.5,,,, +T7,,DIFFS,IO_L31N_5/D4,UNUSED,,5,,,,,,,,, +T8,,IOB,IO/VREF_5,UNUSED,,5,,,,,,,,, +T9,Clk2,IOB,IO_L32P_4/GCLK0,INPUT,LVCMOS25*,4,,,,NONE,,LOCATED,NO,NONE, +T10,,IOB,IO/VREF_4,UNUSED,,4,,,,,,,,, +T11,,,VCCAUX,,,,,,,,2.5,,,, +T12,,IOB,IO,UNUSED,,4,,,,,,,,, +T13,,DIFFM,IO_L01P_4/VRN_4,UNUSED,,4,,,,,,,,, +T14,,DIFFS,IO,UNUSED,,4,,,,,,,,, +T15,,,CCLK,,,,,,,,,,,, +T16,,,GND,,,,,,,,,,,, + +# -----,-----,-----,-----,-----,-----,-----,-----,-----,-----,-----,-----,-----,-----,-----, +# +#* Default value. +#** This default Pullup/Pulldown value can be overridden in Bitgen. +#****** Special VCCO requirements may apply. Please consult the device +# family datasheet for specific guideline on VCCO requirements. +# +# +# \ No newline at end of file Index: ps2_keyboard_interface/_ngo/netlist.lst =================================================================== --- ps2_keyboard_interface/_ngo/netlist.lst (nonexistent) +++ ps2_keyboard_interface/_ngo/netlist.lst (revision 2) @@ -0,0 +1,2 @@ +/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.ngc 1291327694 +OK Index: ps2_keyboard_interface/Keyboard_Controller_guide.ncd =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_guide.ncd (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_guide.ncd (revision 2) @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6 +###5460:XlxV32DM 3fff 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###4088:XlxV32DM 3fff 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###4644:XlxV32DM 3fff 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###4956:XlxV32DM 3fff 1344eNqNW0mW5SoO3RKNARFxchm1ABoz/JM6NcqTey9Ako0V+OXPieO+K4QQAkSTOn/p4L9/mcN/lYO+jEP/OvNVHH09fcP3n/9qSF/qy/3+ZcB8hdoZCPSt+I12foegsUcvMiTVl8UiuX3Pr7G5/xH0NGPIHLfMNGjIHHrIGJLRLncZgzKQqOpzlg5cOlANgWuwVw3plsEaAtdwXDVUriFQDZVrqFy6Ug2Va3BcQ1S3DNZQuQZ/1dC4hoo1DHfNGvofWLr/MWvoX6ohXDX4W2bWMGSwhkgycHYR+P3rtF8A378afSJ+2vxo5eb3pE+ZH2hdhesqTos2nmjIiXb8+W9T1++j8hPr7o3S+SJGmxo1qZGehnrapcdfvw897dZTL2LqiaQn0s8R9UTWU67fp5546WkXMfU00sM/N9TTSI9W5iKmosaKjL6IoWj4bWoaf0xi/DF0jS8rg5sa2iZF6uxNDX0nqTtJ24nKzkuXThcx5QvFCjvK6IPGsT57JWpyJ3Nu4XAkGsVcIK7/guUiNXXEbp3BUEZV+cCfs50/j3nAD1WR+hDK/D0eJE6RkDHgf+VC6jP1VQ43MW0qo4T/PTTopjAKx3fMREYbmpJoKsIf3JwixlxETa19ROsx5ZzsuFBvppcdmJl4M34w8WLI2TUTk7nfArWqtpvBMsD12NsCKlNuhi0gBm6GLZhMoqlVA8w46Lio+ZnzwJhRZ6z172x/HJVHlCfBoTB1ZPDjSVrRtxvSC3k7P4SwJWn0cyBdGnUdqEThx83PnG2mLv7OaS2M6DmouPme39HxKGLoOxaQpLG/p+SBFaHqWS3+GCt/yDOwqHez0HQQ8Ie7Y5Eb4TV9p9EZ8zs09u+YiCmwU+L20vg5eCXqcTc8NQPxoM6dsT9+uURwij7ioFDEDhHHa8EYMJaid2oJkbQ4c4ugFudQyxBBLbwmDMaiBGnJrMXdIqQFSEtmLWzuYCxKkJbKWuAWIS2ZtMx4+fPnH3/i5PGP7r6K5/f/dOqB+z0IfRNJrYS5ib7CLIRdiLQSx0LklXALUVbCL0RdibAQD3NhIdpKxKWBj3akhdArkRfCrERZCLsSdSGOlTgXwq1EWwi/EG3tj7ASS3/E1e1t6Y8YV2Lpj7j2R1v6I6790Zb+iGt/tKU/4tofbfRHQ8JdDfyPHkMT7G97WGVTUkGr/s9DNa3/0yoMqHIscYej8mng6PK5wy6i/An5GDhU5LNCzHwkHCHCwEew046gYxnfCqZOuezj/B2UmwVVSKu8xFLfm34g/Qe4E/kYhj01ejOwVbFO+xza33EaWMq/lT9VLJ/abyHbgaX/a1+ssT70t8RSn8TSXqn/dB79AaXsMNvXVNUDQ4yzfqd6+C/+84R/6Cd7k6p+h2V/vuEI7tjhADDb5wOYHZb2vtmvBeZ4yBDrimV7NfH+RR/zUn8V+hnLeDPKHyuW8cQ8YzneFPUHYznemI8iHoHikXnGMl6Zt5InezkeGF/2kb3MS/s53phnLONZ1vc2vtj+t/Jc/1hn21ifMk2U4TFR6rNPlHZMlAFQka9ZrwM/hzkuG/OllrxiloeKAwGgxk/yjD0ZnlQK60D0YMoaWKeYKBPox8AIzbYdlvre9EfSzx1jVD137ZGYHd0nBpxIM+q38BwYQUwkrJ8njqpOu8OyvW+4gNc7zP7oZvsdlva+2W/Iftlf3P4+4MsuHpjXCgP1jfc0kGW88cTA+iXmiYKx1Keuifs5cNge5hnL9nB//dRfq1h4cKCKeOWJ8BQTbRR8FHwQE21Q+/5gnvEc6HEm3XOgh/OZEZnf1tikr+mZel0nXFaULzscIOGoXWtJSy35UYs1Yza5amlUi1dpLn6H9WWHTUizLx2ELWYrzj76Livy3JlNK/Qz+wvdimAT97CCBGuqZ2IyO8yp3pgpnlNpco+lhzBHpIeY14hkXCqmHlmlYyf/b+tj+6W+6YWyeOF4eMF3L/jbC4a08DxWID3GCfOcMGXiJb4XZLRS6rsX1Oc8wfheYJ8867sXeMSzlWOPk2gL8Fy/VF+/9Ghnj1hLMULzkaN5Ptkd9hThjuYbWd6Dw/UkYOL/g6fypkW9w7GXnOUd1iexA5SHmspOv7KOEnhc2CUOPEJz2trL0RioX2V7ef46KBrf2uso8XjjxwbkE98gm4+8inHnD7aP7Zft5Tgpa5yMLa+ONBxeEp2zhYw7qzgb1vo0MxXHgAEv+F4xZti60EKlDDrGwYp7x+YdPq2ihrRzh3tgTv3G0Q5IYGnPm/1sn8RXIKjLkY/2XIGgMBBkee6ogxbSNz4qDATpT65f98zpU/29I+Mn+994rr/QtPlWvgei/8Rz+6V9V6JAE9Zb+4KC81N59s8bf0KMn/QfCvSn9jeFA+2NZ/1v/n+Lj2ugCf+yfXf/h/MTbyHUT7zv9XziFQR1DfR2pyC6flr8+2LpcR8VKA1OZYe9wvQYLC5jEpsAtE/PW9wgTFxd8TvM6XPl6VTga1/3gq99K+HuhS6weKHsEjEuVckLyeEmwajUdphrPURSfIikmfG0Qt8pCOwykDuTTmnNGHrAiUwbeQ2Ul2nMy6T8veWnvE7I35n+c0vM+M78nzzrS9eARTwbae5Ghl28caFKjTCUXB5Yxw/M253SRKNAGEF4SZPi45yB8Js+5jmNA/W5PrZfyk8n2CXe9C7erk2RwloNdc2hyQsCsxVyFFQR9XWN+mOxQn2yAsgK3lprinKJl7Fmd3gZe3fUu3lVNq3w9plqmJmT9pnDNqA9e8GpTcOJO4AyFTF/0NIi5d/KayovsUXxH3ylpScCtBUzbygHY54x8wB8mI0840u/4Kvg+TCL7WP8wx/EMw40CduMOyTpL14aew5at/IR5Vs3eOePv8m/lWf/SHukv9549s+bfvbPDDS/BJp6CbQj82r0DBRHjoy0cebNj5R/K69EICnRUZJ3gneCjyJQogiUU/Cn4As8A5nxPRCegcz4ciyIQCQcNeCp7IGBIP11z8b/Tv6HvS/8bS/e4pSQ9dZforyUfyt/vpSX/piBFu5Ac8+cStsZaNEmTouMLY+IDoo6WmHak3KO665XuZJ3WOp7029IP/POxidPDfnAx519TaM9UfEIfWKp701/pY5W1/F+tvv6nvZcM64IVPYnB+rlX9Fe5hnfM5yYkdVzIIHgQckZXawYIFeMp33mpf9lfW/8Y4GHJRDTMxAPO44x+y6e8+8il1YRKNniiJDyb+U1lTeAvHXpEFN/3clfS6/oKC94L/hTLM2nWJqtWJqtWJqj6MgoOvIU/Cl4I5ZmxlemDxmP+SLOeL6QP8k/tQLs2iP9J+Xf9L3JS3/I/pX+6LtHTwNR7+Rl+/4mL/05A3U5bgf/CFTXM1HXE0DyauUosDgPG3WmT3is6fMrMM/zii9xBOaDc0MH7xLzQXrfU590kN53VUsr7G4Dx61o1AoIaFVTZ9xhTnua0thnAvPY6xuKuMPcqhSOvMPcqtqn4R3mVhpAPFu5Xhc8d3Cxt7IvbcvNdKHjeTzHq/HYYa3wQJYjlI/3FR3Q3ucWiJk3Kj+SV8bXFUzDqVHK/60+PiBOtOZLfV7jXv9USe/kZful/PTiet3gd7HCWhxpURW1HOp5rcebb/YS4+uSRIlLFcJv+piP0UVMwZ/vVVi/tE/Kz1bWZYfZdjtMtrqS71vlVyZolcTXvlZcJlZx2ch4WnEuVpyfrGgcAZXfkmBbJGZfVPW8Uq3i7UVVixXLSRs8r9kOM95YpXvlwZlZ0aamT11lhx2NZtvCFpuKozkBngdKzKP7gGDYSr2chIHZ+YqtzLx+UK2QKbET2MZ0PLeCT8xWBMA8cFqhlx6LOyuu1y2QHz3UAFeZO1oxfbxHB51E/EV+WrEcVWn4NEZ7Y2HVmhTOFJLnMXJSrRJfVsDTSta38GGH7xuCH/zTC7C0cjmLMnoXl/eFGr2UAdTq6OxJYr4gqy3rHV5e3hw7vLwsujIEvZxVGfVpDCvOy6KHNQ+R+H4fJN8nifdLa0S4L/2Vfs/aFSXSeSbS46A8OnpngDueg5pdAiZiEkPEg+tDTKhF4fWK0ajPkT6JeVny9KBwuR6hB5n0zsRl9VgG6fifHcaYHdDrd4/rJMLR4YuGMqpYkoOeA+FCQOWDOB0O4nQYBA+SB8HDk+czo+u+ne89mQfBw5O3ojxj6U8pL/tL1sdhHtqzvPmLfm7fm37pryjay/6V/S3700a+9/bHLh74HY0dVc6Hus/+vtI27ctO3532BPdI80hejg/pLxn/Un4OQD//iwJOA3U3Jd+XmEAJAaU1lGxKfBS8TXfNnzt8386Hj/yh8FLujfe06L7x4w3N1cpwLzzmmbCkeX6k1pQFy3GS6SDEHdYZX21YvusRmKOzx4XdYd7Gtfw8b7oxvkR6w5x8FIXHBNJ+Xgq7p9oOc7QeJC/18WzkVTE7+fvyffEz3H62ancZdS+YdKVK6Wjp+8QdLnQqoxrSEnOKxljq5wU/A+qTmFsVKVqkvntODnonv1wx315YNt8exLn4iLbU7otnulimFy2Ep5a0+NJ8jlmnMOHksRh1iDvMtwrFhrDDGQCvn2hFlZgT5sKXYAIDb4fpDE1inWk7DM+YZfs5Rgv1jsTsfU64pb5re00xLOW5vrT6edl+2+c7Nei9BbeXA1nJiY8CjBGJ+T2rphlJ4hTwPetJzxIk5pHubHxYzfVzDGsayRJf22+Sl/qukU0bBil/J37LNqYsMZ0+xXRkL3GM0zw+tdTF13531LHkUOe65iWKYIn56CFU9K3E3DagJx4HvSVOymFuDfR2FVzcybM9jJPG8plXH6GP+/poIe/kOVb6yC87edl+KT+9eC5ehE+z7MFaKqfqYHeYn/IX3sgKrDO/sHZJzP3nOk57X5cdZq8W8qLUd/J7V9ELRfQC4+mFZfvvy3tE/h+YBziP###4116:XlxV32DM 35e5 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 \ No newline at end of file Index: ps2_keyboard_interface/Keyboard_Controller_summary.html =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_summary.html (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_summary.html (revision 2) @@ -0,0 +1,183 @@ +Xilinx Design Summary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Keyboard_Controller Project Status (12/03/2010 - 00:08:36)
Project File:Keyboard_Controller.xiseParser Errors: No Errors
Module Name:Keyboard_ControllerImplementation State:Programming File Generated
Target Device:xc3s200-5ft256
  • Errors:
+No Errors
Product Version:ISE 12.3
  • Warnings:
3 Warnings (1 new)
Design Goal:Balanced
  • Routing Results:
+All Signals Completely Routed
Design Strategy:Xilinx Default (unlocked)
  • Timing Constraints:
+All Constraints Met
Environment: + +System Settings +
  • Final Timing Score:
0  (Timing Report)
+ + + + 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Device Utilization Summary [-]
Logic UtilizationUsedAvailableUtilizationNote(s)
Number of Slice Flip Flops583,8401% 
Number of 4 input LUTs323,8401% 
Number of occupied Slices421,9202% 
    Number of Slices containing only related logic4242100% 
    Number of Slices containing unrelated logic0420% 
Total Number of 4 input LUTs513,8401% 
    Number used as logic30   
    Number used as a route-thru19   
    Number used as Shift registers2   
Number of bonded IOBs2317313% 
Number of BUFGMUXs2825% 
Average Fanout of Non-Clock Nets2.32   
+ + + + 
+ + + + + + + + + + + + + + + + + +
Performance Summary [-]
Final Timing Score:0 (Setup: 0, Hold: 0)Pinout Data:Pinout Report
Routing Results: +All Signals Completely RoutedClock Data:Clock Report
Timing Constraints: +All Constraints Met  
+ + + + 
+ + + + + + + + + + +
Detailed Reports [-]
Report NameStatusGeneratedErrorsWarningsInfos
Synthesis ReportCurrentFri Dec 3 00:08:14 201001 Warning (1 new)0
Translation ReportCurrentFri Dec 3 00:08:18 2010000
Map ReportCurrentFri Dec 3 00:08:22 2010002 Infos (0 new)
Place and Route ReportCurrentFri Dec 3 00:08:31 201002 Warnings (0 new)4 Infos (1 new)
Power Report     
Post-PAR Static Timing ReportCurrentFri Dec 3 00:08:32 2010005 Infos (0 new)
Bitgen ReportCurrentFri Dec 3 00:08:35 2010001 Info (0 new)

+ + + + +
Secondary Reports [-]
Report NameStatusGenerated
WebTalk ReportOut of DateFri Dec 3 00:08:36 2010
WebTalk Log FileOut of DateFri Dec 3 00:08:36 2010
+ + +
Date Generated: 12/03/2010 - 00:40:06
+ \ No newline at end of file Index: ps2_keyboard_interface/Keyboard_Controller.vhd =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.vhd (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.vhd (revision 2) @@ -0,0 +1,53 @@ +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.numeric_std.all; +use IEEE.std_logic_unsigned.all; +entity Keyboard_Controller is + Port ( Clk : in STD_LOGIC; + Clk2 : in STD_LOGIC; + DataIn : in STD_LOGIC; + Enables : out STD_LOGIC_VECTOR (3 downto 0); + pressed : out STD_LOGIC_VECTOR (7 downto 0); + Segments : out STD_LOGIC_VECTOR (7 downto 0)); +end Keyboard_Controller; +architecture Behavioral of Keyboard_Controller is +signal data : STD_LOGIC_VECTOR (21 downto 0) := "1111111111111111111111"; +signal OutByte1,OutByte2 : STD_LOGIC_VECTOR (7 downto 0); +signal presses,npresses : STD_LOGIC_VECTOR (7 downto 0) := x"00"; +signal Counter,nCounter : STD_LOGIC_VECTOR (4 downto 0) := "00000"; +COMPONENT SevenSegment +PORT( + Clk : IN std_logic; + dataIn : IN std_logic_vector(15 downto 0); + Enables : OUT std_logic_vector(3 downto 0); + Segments : OUT std_logic_vector(7 downto 0)); +END COMPONENT; +begin +pressed <= presses; +npresses <= presses + 1; +nCounter <= Counter + 1; +Inst_SevenSegment: SevenSegment PORT MAP( + Clk => Clk2, + Enables => Enables, + Segments => Segments, + dataIn(15 downto 8) => OutByte1, + dataIn(7 downto 0) => OutByte2); +process (Clk) begin + if (falling_edge(Clk)) then + data(21 downto 1) <= data(20 downto 0); + data(0) <= DataIn; + if (Counter = "10101") then + --if (data(9 downto 2) <= x"0F") then + OutByte1 <= data(9 downto 2); + OutByte2 <= data(20 downto 13); + presses <= npresses; + --end if; + end if; + if (Counter = "10101") then + Counter <= "00000"; + else + Counter <= nCounter; + end if; + end if; +end process; +end Behavioral; \ No newline at end of file Index: ps2_keyboard_interface/Keyboard_Controller.twx =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.twx (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.twx (revision 2) @@ -0,0 +1,339 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> +Release 12.3 Trace (lin64)Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved./home/omar/ISE_DS/ISE/bin/lin64/unwrapped/trce -intstyle ise -v 3 -s 5 -n 3 +-fastpaths -xml Keyboard_Controller.twx Keyboard_Controller.ncd -o +Keyboard_Controller.twr Keyboard_Controller.pcf -ucf Keyboard_Controller.ucf + +Keyboard_Controller.ncdKeyboard_Controller.ncdKeyboard_Controller.pcfKeyboard_Controller.pcfxc3s200-5PRODUCTION 1.39 2010-09-153INFO:Timing:2698 - No timing constraints found, doing default enumeration.INFO:Timing:2752 - To get complete path coverage, use the unconstrained paths option. All paths that are not constrained will be reported in the unconstrained paths section(s) of the report.INFO:Timing:3339 - The clock-to-out numbers in this timing report are based on a 50 Ohm transmission line loading model. For the details of this model, and for more information on accounting for different loading conditions, please see the device datasheet.INFO:Timing:3390 - This architecture does not support a default System Jitter value, please add SYSTEM_JITTER constraint to the UCF to modify the Clock Uncertainty calculation.INFO:Timing:3389 - This architecture does not support 'Discrete Jitter' and 'Phase Error' calculations, these terms will be zero in the Clock Uncertainty calculation. Please make appropriate modification to SYSTEM_JITTER to account for the unsupported Discrete Jitter and Phase Error.ClkDataIn-1.2822.962ClkClk2ClkClk3.763Clk2Clk23.314Fri Dec 3 00:08:32 2010 TraceTrace Settings + +Peak Memory Usage: 208 MB + Index: ps2_keyboard_interface/webtalk_pn.xml =================================================================== --- ps2_keyboard_interface/webtalk_pn.xml (nonexistent) +++ ps2_keyboard_interface/webtalk_pn.xml (revision 2) @@ -0,0 +1,43 @@ + + + + +
+ + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
Index: ps2_keyboard_interface/Keyboard_Controller_usage.xml =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_usage.xml (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_usage.xml (revision 2) @@ -0,0 +1,552 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Index: ps2_keyboard_interface/SevenSegment.vhi =================================================================== --- ps2_keyboard_interface/SevenSegment.vhi (nonexistent) +++ ps2_keyboard_interface/SevenSegment.vhi (revision 2) @@ -0,0 +1,25 @@ + +-- VHDL Instantiation Created from source file SevenSegment.vhd -- 22:52:01 12/02/2010 +-- +-- Notes: +-- 1) This instantiation template has been automatically generated using types +-- std_logic and std_logic_vector for the ports of the instantiated module +-- 2) To use this template to instantiate this entity, cut-and-paste and then edit + + COMPONENT SevenSegment + PORT( + Clk : IN std_logic; + dataIn : IN std_logic_vector(15 downto 0); + Enables : OUT std_logic_vector(3 downto 0); + Segments : OUT std_logic_vector(7 downto 0) + ); + END COMPONENT; + + Inst_SevenSegment: SevenSegment PORT MAP( + Clk => , + Enables => , + Segments => , + dataIn => + ); + + Index: ps2_keyboard_interface/Keyboard_Controller.ut =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.ut (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.ut (revision 2) @@ -0,0 +1,29 @@ +-w +-g DebugBitstream:No +-g Binary:no +-g CRC:Enable +-g ConfigRate:6 +-g CclkPin:PullUp +-g M0Pin:PullUp +-g M1Pin:PullUp +-g M2Pin:PullUp +-g ProgPin:PullUp +-g DonePin:PullUp +-g HswapenPin:PullUp +-g TckPin:PullUp +-g TdiPin:PullUp +-g TdoPin:PullUp +-g TmsPin:PullUp +-g UnusedPin:PullDown +-g UserID:0xFFFFFFFF +-g DCMShutdown:Disable +-g DCIUpdateMode:AsRequired +-g StartUpClk:CClk +-g DONE_cycle:4 +-g GTS_cycle:5 +-g GWE_cycle:6 +-g LCK_cycle:NoWait +-g Match_cycle:Auto +-g Security:None +-g DonePipe:No +-g DriveDone:No Index: ps2_keyboard_interface/usage_statistics_webtalk.html =================================================================== --- ps2_keyboard_interface/usage_statistics_webtalk.html (nonexistent) +++ ps2_keyboard_interface/usage_statistics_webtalk.html (revision 2) @@ -0,0 +1,867 @@ +Device Usage Statistics Report + +

Device Usage Page (usage_statistics_webtalk.html)

This HTML page displays the device usage statistics that will be sent to Xilinx.
 

 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Software Version and Target Device
Product Version:ISE:12.3 (WebPack) - M.70dTarget Family:Spartan3
OS Platform:LIN64Target Device:xc3s200
Project ID (random number)6c3c310e58c04bafad1498b70c4d1fb3.3B4FE3E2530F3D173AEA023E56D4E7AC.11Target Package:ft256
Registration ID0_0_316Target Speed:-5
Date Generated2010-12-03T00:08:36Tool FlowISE

+ + + + + + + + + + + + + + +
User Environment
OS NameUbuntuOS ReleaseUbuntu 10.10
CPU NameIntel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHzCPU Speed2101.000 MHz

+ + + + + + + + + + + + +
Device Usage Statistics
Macro StatisticsMiscellaneous StatisticsNet StatisticsSite Usage
+Counters=3 +
    +
  • 13-bit up counter=1
  • +
  • 5-bit up counter=1
  • +
  • 8-bit up counter=1
  • +
+
+Decoders=1 +
    +
  • 1-of-4 decoder=1
  • +
+
+Multiplexers=1 +
    +
  • 4-bit 4-to-1 multiplexer=1
  • +
+
+ROMs=1 +
    +
  • 16x8-bit ROM=1
  • +
+
+Registers=37 +
    +
  • Flip-Flops=37
  • +
+
+
+MiscellaneousStatistics +
    +
  • AGG_BONDED_IO=23
  • +
  • AGG_IO=23
  • +
  • AGG_SLICE=42
  • +
  • NUM_4_INPUT_LUT=51
  • +
  • NUM_BONDED_IOB=23
  • +
  • NUM_BUFGMUX=2
  • +
  • NUM_CYMUX=19
  • +
  • NUM_LUT_RT=19
  • +
  • NUM_SHIFT=2
  • +
  • NUM_SLICEL=40
  • +
  • NUM_SLICEM=2
  • +
  • NUM_SLICE_FF=58
  • +
  • NUM_XOR=21
  • +
+
+
+NetStatistics +
    +
  • NumNets_Active=115
  • +
  • NumNets_Gnd=1
  • +
  • NumNets_Vcc=1
  • +
  • NumNodesOfType_Active_CLKPIN=30
  • +
  • NumNodesOfType_Active_CNTRLPIN=15
  • +
  • NumNodesOfType_Active_DOUBLE=117
  • +
  • NumNodesOfType_Active_DUMMY=113
  • +
  • NumNodesOfType_Active_DUMMYESC=3
  • +
  • NumNodesOfType_Active_GLOBAL=12
  • +
  • NumNodesOfType_Active_HUNIHEX=9
  • +
  • NumNodesOfType_Active_INPUT=177
  • +
  • NumNodesOfType_Active_IOBOUTPUT=3
  • +
  • NumNodesOfType_Active_OMUX=96
  • +
  • NumNodesOfType_Active_OUTPUT=89
  • +
  • NumNodesOfType_Active_PREBXBY=37
  • +
  • NumNodesOfType_Active_VFULLHEX=6
  • +
  • NumNodesOfType_Active_VUNIHEX=11
  • +
  • NumNodesOfType_Gnd_DOUBLE=8
  • +
  • NumNodesOfType_Gnd_DUMMY=6
  • +
  • NumNodesOfType_Gnd_INPUT=9
  • +
  • NumNodesOfType_Gnd_OMUX=2
  • +
  • NumNodesOfType_Gnd_OUTPUT=4
  • +
  • NumNodesOfType_Gnd_PREBXBY=2
  • +
+
+SiteStatistics +
    +
  • IOB-DIFFM=12
  • +
  • IOB-DIFFS=9
  • +
  • SLICEL-SLICEM=18
  • +
+
+
+SiteSummary +
    +
  • BUFGMUX=2
  • +
  • BUFGMUX_GCLKMUX=2
  • +
  • BUFGMUX_GCLK_BUFFER=2
  • +
  • IOB=23
  • +
  • IOB_INBUF=3
  • +
  • IOB_OUTBUF=20
  • +
  • IOB_PAD=23
  • +
  • SLICEL=40
  • +
  • SLICEL_C1VDD=2
  • +
  • SLICEL_CYMUXF=10
  • +
  • SLICEL_CYMUXG=9
  • +
  • SLICEL_F=24
  • +
  • SLICEL_F5MUX=4
  • +
  • SLICEL_FFX=28
  • +
  • SLICEL_FFY=26
  • +
  • SLICEL_G=25
  • +
  • SLICEL_GNDF=8
  • +
  • SLICEL_GNDG=9
  • +
  • SLICEL_XORF=11
  • +
  • SLICEL_XORG=10
  • +
  • SLICEM=2
  • +
  • SLICEM_FFX=2
  • +
  • SLICEM_FFY=2
  • +
  • SLICEM_G=2
  • +
  • SLICEM_WSGEN=2
  • +
+
+

+ + + + + + + +
Configuration Data
+BUFGMUX +
    +
  • S=[S_INV:2] [S:0]
  • +
+
+BUFGMUX_GCLKMUX +
    +
  • DISABLE_ATTR=[LOW:2]
  • +
  • S=[S_INV:2] [S:0]
  • +
+
+IOB +
    +
  • O1=[O1_INV:0] [O1:20]
  • +
+
+IOB_OUTBUF +
    +
  • IN=[IN_INV:0] [IN:20]
  • +
+
+IOB_PAD +
    +
  • DRIVEATTRBOX=[12:20]
  • +
  • IOATTRBOX=[LVCMOS25:23]
  • +
  • SLEW=[SLOW:20]
  • +
+
+SLICEL +
    +
  • BX=[BX_INV:1] [BX:20]
  • +
  • BY=[BY:14] [BY_INV:0]
  • +
  • CE=[CE:12] [CE_INV:0]
  • +
  • CIN=[CIN_INV:0] [CIN:9]
  • +
  • CLK=[CLK:7] [CLK_INV:21]
  • +
  • SR=[SR:3] [SR_INV:0]
  • +
+
+ +SLICEL_CYMUXF +
    +
  • 0=[0:10] [0_INV:0]
  • +
  • 1=[1_INV:0] [1:10]
  • +
+
+SLICEL_CYMUXG +
    +
  • 0=[0:9] [0_INV:0]
  • +
+
+SLICEL_F5MUX +
    +
  • S0=[S0:4] [S0_INV:0]
  • +
+
+SLICEL_FFX +
    +
  • CE=[CE:12] [CE_INV:0]
  • +
  • CK=[CK:7] [CK_INV:21]
  • +
  • D=[D:27] [D_INV:1]
  • +
  • FFX_INIT_ATTR=[INIT0:22] [INIT1:6]
  • +
  • FFX_SR_ATTR=[SRLOW:28]
  • +
  • LATCH_OR_FF=[FF:28]
  • +
  • SR=[SR:3] [SR_INV:0]
  • +
  • SYNC_ATTR=[ASYNC:25] [SYNC:3]
  • +
+
+SLICEL_FFY +
    +
  • CE=[CE:12] [CE_INV:0]
  • +
  • CK=[CK:6] [CK_INV:20]
  • +
  • D=[D:26] [D_INV:0]
  • +
  • FFY_INIT_ATTR=[INIT0:20] [INIT1:6]
  • +
  • FFY_SR_ATTR=[SRLOW:26]
  • +
  • LATCH_OR_FF=[FF:26]
  • +
  • SR=[SR:2] [SR_INV:0]
  • +
  • SYNC_ATTR=[ASYNC:24] [SYNC:2]
  • +
+
+ +SLICEL_XORF +
    +
  • 1=[1_INV:0] [1:11]
  • +
+
+SLICEM +
    +
  • BX=[BX_INV:0] [BX:2]
  • +
  • BY=[BY:2] [BY_INV:0]
  • +
  • CLK=[CLK:0] [CLK_INV:2]
  • +
  • SR=[SR:2] [SR_INV:0]
  • +
+
+SLICEM_FFX +
    +
  • CK=[CK:0] [CK_INV:2]
  • +
  • D=[D:2] [D_INV:0]
  • +
  • FFX_INIT_ATTR=[INIT1:2]
  • +
  • FFX_SR_ATTR=[SRLOW:2]
  • +
  • LATCH_OR_FF=[FF:2]
  • +
  • SYNC_ATTR=[ASYNC:2]
  • +
+
+SLICEM_FFY +
    +
  • CK=[CK:0] [CK_INV:2]
  • +
  • D=[D:2] [D_INV:0]
  • +
  • FFY_INIT_ATTR=[INIT1:2]
  • +
  • FFY_SR_ATTR=[SRLOW:2]
  • +
  • LATCH_OR_FF=[FF:2]
  • +
  • SYNC_ATTR=[ASYNC:2]
  • +
+
+ +SLICEM_G +
    +
  • DI=[DI:2] [DI_INV:0]
  • +
  • G_ATTR=[SHIFT_REG:2]
  • +
  • LUT_OR_MEM=[RAM:2]
  • +
+
+SLICEM_WSGEN +
    +
  • CK=[CK:0] [CK_INV:2]
  • +
  • SYNC_ATTR=[ASYNC:2]
  • +
  • WE=[WE_INV:0] [WE:2]
  • +
+
+

+ + + + + + + +
Pin Data
+BUFGMUX +
    +
  • I0=2
  • +
  • O=2
  • +
  • S=2
  • +
+
+BUFGMUX_GCLKMUX +
    +
  • I0=2
  • +
  • OUT=2
  • +
  • S=2
  • +
+
+BUFGMUX_GCLK_BUFFER +
    +
  • IN=2
  • +
  • OUT=2
  • +
+
+IOB +
    +
  • I=3
  • +
  • O1=20
  • +
  • PAD=23
  • +
+
+IOB_INBUF +
    +
  • IN=3
  • +
  • OUT=3
  • +
+
+IOB_OUTBUF +
    +
  • IN=20
  • +
  • OUT=20
  • +
+
+IOB_PAD +
    +
  • PAD=23
  • +
+
+SLICEL +
    +
  • BX=21
  • +
  • BY=14
  • +
  • CE=12
  • +
  • CIN=9
  • +
  • CLK=28
  • +
  • COUT=9
  • +
  • F1=24
  • +
  • F2=13
  • +
  • F3=11
  • +
  • F4=6
  • +
  • G1=25
  • +
  • G2=15
  • +
  • G3=11
  • +
  • G4=5
  • +
  • SR=3
  • +
  • X=11
  • +
  • XQ=28
  • +
  • Y=9
  • +
  • YQ=26
  • +
+
+ +SLICEL_C1VDD +
    +
  • 1=2
  • +
+
+SLICEL_CYMUXF +
    +
  • 0=10
  • +
  • 1=10
  • +
  • OUT=10
  • +
  • S0=10
  • +
+
+SLICEL_CYMUXG +
    +
  • 0=9
  • +
  • 1=9
  • +
  • OUT=9
  • +
  • S0=9
  • +
+
+SLICEL_F +
    +
  • A1=24
  • +
  • A2=13
  • +
  • A3=11
  • +
  • A4=6
  • +
  • D=24
  • +
+
+SLICEL_F5MUX +
    +
  • F=4
  • +
  • G=4
  • +
  • OUT=4
  • +
  • S0=4
  • +
+
+SLICEL_FFX +
    +
  • CE=12
  • +
  • CK=28
  • +
  • D=28
  • +
  • Q=28
  • +
  • SR=3
  • +
+
+SLICEL_FFY +
    +
  • CE=12
  • +
  • CK=26
  • +
  • D=26
  • +
  • Q=26
  • +
  • SR=2
  • +
+
+ +SLICEL_G +
    +
  • A1=25
  • +
  • A2=15
  • +
  • A3=11
  • +
  • A4=5
  • +
  • D=25
  • +
+
+SLICEL_GNDF +
    +
  • 0=8
  • +
+
+SLICEL_GNDG +
    +
  • 0=9
  • +
+
+SLICEL_XORF +
    +
  • 0=11
  • +
  • 1=11
  • +
  • O=11
  • +
+
+SLICEL_XORG +
    +
  • 0=10
  • +
  • 1=10
  • +
  • O=10
  • +
+
+SLICEM +
    +
  • BX=2
  • +
  • BY=2
  • +
  • CLK=2
  • +
  • G1=2
  • +
  • G2=2
  • +
  • G3=2
  • +
  • G4=2
  • +
  • SR=2
  • +
  • XQ=2
  • +
  • YQ=2
  • +
+
+SLICEM_FFX +
    +
  • CK=2
  • +
  • D=2
  • +
  • Q=2
  • +
+
+ +SLICEM_FFY +
    +
  • CK=2
  • +
  • D=2
  • +
  • Q=2
  • +
+
+SLICEM_G +
    +
  • A1=2
  • +
  • A2=2
  • +
  • A3=2
  • +
  • A4=2
  • +
  • D=2
  • +
  • DI=2
  • +
  • WS=2
  • +
+
+SLICEM_WSGEN +
    +
  • CK=2
  • +
  • WE=2
  • +
  • WSG=2
  • +
+
+

+ + +
Tool Usage
Command Line History
    +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • ngdbuild -intstyle ise -dd _ngo -nt timestamp -i -p xc3s200-ft256-5 <fname>.ngc <fname>.ngd
  • +
  • map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o <fname>.ncd <fname>.ngd <fname>.pcf
  • +
  • par -w -intstyle ise -ol high -t 1 <fname>.ncd <fname>.ncd <fname>.pcf
  • +
  • trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml <fname>.twx <fname>.ncd -o <fname>.twr <fname>.pcf
  • +
  • bitgen -intstyle ise -f <fname>.ut <fname>.ncd
  • +
  • ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc <fname>.ucf -p xc3s200-ft256-5 <fname>.ngc <fname>.ngd
  • +
  • map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o <fname>.ncd <fname>.ngd <fname>.pcf
  • +
  • par -w -intstyle ise -ol high -t 1 <fname>.ncd <fname>.ncd <fname>.pcf
  • +
  • trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml <fname>.twx <fname>.ncd -o <fname>.twr <fname>.pcf -ucf <fname>.ucf
  • +
  • bitgen -intstyle ise -f <fname>.ut <fname>.ncd
  • +
  • ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc <fname>.ucf -p xc3s200-ft256-5 <fname>.ngc <fname>.ngd
  • +
  • map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o <fname>.ncd <fname>.ngd <fname>.pcf
  • +
  • par -w -intstyle ise -ol high -t 1 <fname>.ncd <fname>.ncd <fname>.pcf
  • +
  • trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml <fname>.twx <fname>.ncd -o <fname>.twr <fname>.pcf -ucf <fname>.ucf
  • +
  • bitgen -intstyle ise -f <fname>.ut <fname>.ncd
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc <fname>.ucf -p xc3s200-ft256-5 <fname>.ngc <fname>.ngd
  • +
  • map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o <fname>.ncd <fname>.ngd <fname>.pcf
  • +
  • par -w -intstyle ise -ol high -t 1 <fname>.ncd <fname>.ncd <fname>.pcf
  • +
  • trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml <fname>.twx <fname>.ncd -o <fname>.twr <fname>.pcf -ucf <fname>.ucf
  • +
  • bitgen -intstyle ise -f <fname>.ut <fname>.ncd
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc <fname>.ucf -p xc3s200-ft256-5 <fname>.ngc <fname>.ngd
  • +
  • map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o <fname>.ncd <fname>.ngd <fname>.pcf
  • +
  • par -w -intstyle ise -ol high -t 1 <fname>.ncd <fname>.ncd <fname>.pcf
  • +
  • trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml <fname>.twx <fname>.ncd -o <fname>.twr <fname>.pcf -ucf <fname>.ucf
  • +
  • bitgen -intstyle ise -f <fname>.ut <fname>.ncd
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc <fname>.ucf -p xc3s200-ft256-5 <fname>.ngc <fname>.ngd
  • +
  • map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o <fname>.ncd <fname>.ngd <fname>.pcf
  • +
  • par -w -intstyle ise -ol high -t 1 <fname>.ncd <fname>.ncd <fname>.pcf
  • +
  • trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml <fname>.twx <fname>.ncd -o <fname>.twr <fname>.pcf -ucf <fname>.ucf
  • +
  • bitgen -intstyle ise -f <fname>.ut <fname>.ncd
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc <fname>.ucf -p xc3s200-ft256-5 <fname>.ngc <fname>.ngd
  • +
  • map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o <fname>.ncd <fname>.ngd <fname>.pcf
  • +
  • par -w -intstyle ise -ol high -t 1 <fname>.ncd <fname>.ncd <fname>.pcf
  • +
  • trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml <fname>.twx <fname>.ncd -o <fname>.twr <fname>.pcf -ucf <fname>.ucf
  • +
  • bitgen -intstyle ise -f <fname>.ut <fname>.ncd
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc <fname>.ucf -p xc3s200-ft256-5 <fname>.ngc <fname>.ngd
  • +
  • map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o <fname>.ncd <fname>.ngd <fname>.pcf
  • +
  • par -w -intstyle ise -ol high -t 1 <fname>.ncd <fname>.ncd <fname>.pcf
  • +
  • trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml <fname>.twx <fname>.ncd -o <fname>.twr <fname>.pcf -ucf <fname>.ucf
  • +
  • bitgen -intstyle ise -f <fname>.ut <fname>.ncd
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc <fname>.ucf -p xc3s200-ft256-5 <fname>.ngc <fname>.ngd
  • +
  • map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o <fname>.ncd <fname>.ngd <fname>.pcf
  • +
  • par -w -intstyle ise -ol high -t 1 <fname>.ncd <fname>.ncd <fname>.pcf
  • +
  • trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml <fname>.twx <fname>.ncd -o <fname>.twr <fname>.pcf -ucf <fname>.ucf
  • +
  • bitgen -intstyle ise -f <fname>.ut <fname>.ncd
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc <fname>.ucf -p xc3s200-ft256-5 <fname>.ngc <fname>.ngd
  • +
  • map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o <fname>.ncd <fname>.ngd <fname>.pcf
  • +
  • par -w -intstyle ise -ol high -t 1 <fname>.ncd <fname>.ncd <fname>.pcf
  • +
  • trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml <fname>.twx <fname>.ncd -o <fname>.twr <fname>.pcf -ucf <fname>.ucf
  • +
  • bitgen -intstyle ise -f <fname>.ut <fname>.ncd
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • xst -intstyle ise -ifn <ise_file>
  • +
  • ngdbuild -intstyle ise -dd _ngo -nt timestamp -uc <fname>.ucf -p xc3s200-ft256-5 <fname>.ngc <fname>.ngd
  • +
  • map -intstyle ise -p xc3s200-ft256-5 -cm area -ir off -pr off -c 100 -o <fname>.ncd <fname>.ngd <fname>.pcf
  • +
  • par -w -intstyle ise -ol high -t 1 <fname>.ncd <fname>.ncd <fname>.pcf
  • +
  • trce -intstyle ise -v 3 -s 5 -n 3 -fastpaths -xml <fname>.twx <fname>.ncd -o <fname>.twr <fname>.pcf -ucf <fname>.ucf
  • +
  • bitgen -intstyle ise -f <fname>.ut <fname>.ncd
  • +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Software Quality
Run Statistics
_impact5500000
bitgen767600000
edif2ngd8800000
map10110100000
netgen424200000
ngc2edif8800000
ngcbuild8800000
ngdbuild11011000000
obngc1100000
par999450000
reportgen262600000
trce969600000
xst38638500000

+ + + + + + + + + + +
Help Statistics
+Help files
/doc/usenglish/isehelp/ite_c_overview.htm ( 1 )/doc/usenglish/isehelp/pn_db_design_properties.htm ( 1 )
/doc/usenglish/isehelp/pn_db_design_view_properties.htm ( 1 )/doc/usenglish/isehelp/pn_db_nsw_select_source_type.htm ( 1 )
/doc/usenglish/isehelp/sse_p_drawing_arc.htm ( 1 )

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Project Statistics
PROP_Enable_Message_Filtering=falsePROP_FitterReportFormat=HTML
PROP_LastAppliedGoal=BalancedPROP_LastAppliedStrategy=Xilinx Default (unlocked)
PROP_ManualCompileOrderImp=falsePROP_PropSpecInProjFile=Store all values
PROP_Simulator=ISim (VHDL/Verilog)PROP_SynthTopFile=changed
PROP_Top_Level_Module_Type=HDLPROP_UseSmartGuide=false
PROP_UserConstraintEditorPreference=Text EditorPROP_intProjectCreationTimestamp=2010-12-02T22:18:44
PROP_intWbtProjectID=3B4FE3E2530F3D173AEA023E56D4E7ACPROP_intWbtProjectIteration=11
PROP_intWorkingDirLocWRTProjDir=SamePROP_intWorkingDirUsed=No
PROP_lockPinsUcfFile=changedPROP_AutoTop=true
PROP_DevFamily=Spartan3PROP_DevDevice=xc3s200
PROP_DevFamilyPMName=spartan3PROP_DevPackage=ft256
PROP_Synthesis_Tool=XST (VHDL/Verilog)PROP_DevSpeed=-5
PROP_PreferredLanguage=VHDLFILE_UCF=1
FILE_VHDL=2

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Unisim Statistics
NGDBUILD_PRE_UNISIM_SUMMARY
NGDBUILD_NUM_BUFGP=2NGDBUILD_NUM_FD=13NGDBUILD_NUM_FDE=8NGDBUILD_NUM_FDE_1=16
NGDBUILD_NUM_FDR=5NGDBUILD_NUM_FD_1=16NGDBUILD_NUM_GND=1NGDBUILD_NUM_IBUF=1
NGDBUILD_NUM_INV=4NGDBUILD_NUM_LUT1=19NGDBUILD_NUM_LUT2=5NGDBUILD_NUM_LUT2_D=1
NGDBUILD_NUM_LUT3=10NGDBUILD_NUM_LUT3_L=1NGDBUILD_NUM_LUT4=11NGDBUILD_NUM_MUXCY=19
NGDBUILD_NUM_MUXF5=4NGDBUILD_NUM_OBUF=20NGDBUILD_NUM_SRL16_1=2NGDBUILD_NUM_VCC=1
NGDBUILD_NUM_XORCY=21
NGDBUILD_POST_UNISIM_SUMMARY
NGDBUILD_NUM_BUFG=2NGDBUILD_NUM_FD=13NGDBUILD_NUM_FDE=8NGDBUILD_NUM_FDE_1=16
NGDBUILD_NUM_FDR=5NGDBUILD_NUM_FD_1=16NGDBUILD_NUM_GND=1NGDBUILD_NUM_IBUF=1
NGDBUILD_NUM_IBUFG=2NGDBUILD_NUM_INV=4NGDBUILD_NUM_LUT1=19NGDBUILD_NUM_LUT2=5
NGDBUILD_NUM_LUT2_D=1NGDBUILD_NUM_LUT3=10NGDBUILD_NUM_LUT3_L=1NGDBUILD_NUM_LUT4=11
NGDBUILD_NUM_MUXCY=19NGDBUILD_NUM_MUXF5=4NGDBUILD_NUM_OBUF=20NGDBUILD_NUM_SRLC16E=2
NGDBUILD_NUM_VCC=1NGDBUILD_NUM_XORCY=21

Index: ps2_keyboard_interface/Keyboard_Controller_map.xrpt =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_map.xrpt (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_map.xrpt (revision 2) @@ -0,0 +1,320 @@ + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+
+
+ + + + + + +
+ +
+ + + + + +
+
+ + + + + + +
+
+ + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + +
+
+ + + + + + + + + +
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
+
+
+
+
+
+ +
+
+ + + + Index: ps2_keyboard_interface/Keyboard_Controller.prj =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.prj (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.prj (revision 2) @@ -0,0 +1,2 @@ +vhdl work "../../Mano/Mano/SevenSegment.vhd" +vhdl work "Keyboard_Controller.vhd" Index: ps2_keyboard_interface/Keyboard_Controller_xst.xrpt =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_xst.xrpt (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_xst.xrpt (revision 2) @@ -0,0 +1,190 @@ + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + +
+
+ + + + + + +
+
+
+
+
+
+
+
+ + + + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + + + + +
+
+
+
+
+ + + +
+ + + Index: ps2_keyboard_interface/xlnx_auto_0_xdb/cst.xbcd =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ps2_keyboard_interface/xlnx_auto_0_xdb/cst.xbcd =================================================================== --- ps2_keyboard_interface/xlnx_auto_0_xdb/cst.xbcd (nonexistent) +++ ps2_keyboard_interface/xlnx_auto_0_xdb/cst.xbcd (revision 2)
ps2_keyboard_interface/xlnx_auto_0_xdb/cst.xbcd Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: ps2_keyboard_interface/Keyboard_Controller_envsettings.html =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_envsettings.html (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_envsettings.html (revision 2) @@ -0,0 +1,481 @@ +Xilinx System Settings Report + +
System Settings

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Environment Settings
Environment Variablexstngdbuildmappar
LD_LIBRARY_PATH/home/omar/ISE_DS/ISE//lib/lin64/home/omar/ISE_DS/ISE//lib/lin64/home/omar/ISE_DS/ISE//lib/lin64/home/omar/ISE_DS/ISE//lib/lin64
PATH/home/omar/ISE_DS/ISE//bin/lin64:
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:
/usr/bin:
/sbin:
/bin:
/usr/games
/home/omar/ISE_DS/ISE//bin/lin64:
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:
/usr/bin:
/sbin:
/bin:
/usr/games
/home/omar/ISE_DS/ISE//bin/lin64:
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:
/usr/bin:
/sbin:
/bin:
/usr/games
/home/omar/ISE_DS/ISE//bin/lin64:
/usr/local/sbin:
/usr/local/bin:
/usr/sbin:
/usr/bin:
/sbin:
/bin:
/usr/games
XILINX/home/omar/ISE_DS/ISE//home/omar/ISE_DS/ISE//home/omar/ISE_DS/ISE//home/omar/ISE_DS/ISE/
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Synthesis Property Settings
Switch NameProperty NameValueDefault Value
-ifn Keyboard_Controller.prj 
-ifmt mixedMIXED
-ofn Keyboard_Controller 
-ofmt NGCNGC
-p xc3s200-5-ft256 
-top Keyboard_Controller 
-opt_modeOptimization GoalSpeedSpeed
-opt_levelOptimization Effort11
-iucUse synthesis Constraints FileNONO
-keep_hierarchyKeep HierarchyNoNO
-netlist_hierarchyNetlist HierarchyAs_OptimizedAs_Optimized
-rtlviewGenerate RTL SchematicYesNO
-glob_optGlobal Optimization GoalAllClockNetsAllClockNets
-read_coresRead CoresYESYES
-write_timing_constraintsWrite Timing ConstraintsNONO
-cross_clock_analysisCross Clock AnalysisNONO
-bus_delimiterBus Delimiter<><>
-slice_utilization_ratioSlice Utilization Ratio100100%
-bram_utilization_ratioBRAM Utilization Ratio100100%
-verilog2001Verilog 2001YESYES
-fsm_extract YESYES
-fsm_encoding AutoAUTO
-safe_implementation NoNO
-fsm_style LUTLUT
-ram_extract YesYES
-ram_style AutoAUTO
-rom_extract YesYES
-shreg_extract YESYES
-rom_style AutoAUTO
-auto_bram_packing NONO
-resource_sharing YESYES
-async_to_sync NONO
-mult_style AutoAUTO
-iobuf YESYES
-max_fanout 500500
-bufg 88
-register_duplication YESYES
-register_balancing NoNO
-optimize_primitives NONO
-use_clock_enable YesYES
-use_sync_set YesYES
-use_sync_reset YesYES
-iob AutoAUTO
-equivalent_register_removal YESYES
-slice_utilization_ratio_maxmargin 50%
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Translation Property Settings
Switch NameProperty NameValueDefault Value
-intstyle iseNone
-dd _ngoNone
-p xc3s200-ft256-5None
-uc Keyboard_Controller.ucfNone
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Map Property Settings
Switch NameProperty NameValueDefault Value
-irUse RLOC ConstraintsOFFOFF
-cmOptimization Strategy (Cover Mode)areaarea
-intstyle iseNone
-o Keyboard_Controller_map.ncdNone
-prPack I/O Registers/Latches into IOBsoffoff
-p xc3s200-ft256-5None
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Place and Route Property Settings
Switch NameProperty NameValueDefault Value
-t 11
-intstyle ise 
-olPlace & Route Effort Level (Overall)highstd
-w truefalse
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Operating System Information
Operating System Informationxstngdbuildmappar
CPU Architecture/SpeedIntel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz/2101.000 MHzIntel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz/1200.000 MHzIntel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz/2100.000 MHzIntel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz/2101.000 MHz
Hostomaromaromaromar
OS NameUbuntuUbuntuUbuntuUbuntu
OS ReleaseUbuntu 10.10Ubuntu 10.10Ubuntu 10.10Ubuntu 10.10
+ \ No newline at end of file Index: ps2_keyboard_interface/_xmsgs/par.xmsgs =================================================================== --- ps2_keyboard_interface/_xmsgs/par.xmsgs (nonexistent) +++ ps2_keyboard_interface/_xmsgs/par.xmsgs (revision 2) @@ -0,0 +1,28 @@ + + + +No user timing constraints were detected or you have set the option to ignore timing constraints ("par -x"). Place and Route will run in "Performance Evaluation Mode" to automatically improve the performance of all internal clocks in this design. Because there are not defined timing requirements, a timing score will not be reported in the PAR report in this mode. The PAR timing summary will list the performance achieved for each clock. Note: For the fastest runtime, set the effort level to "std". For best performance, set the effort level to "high". + + +Partially locked IO Bus is found. + Following components of the bus are not locked: + Comp: Segments<7> + + + +Only a subset of IOs are locked. Out of 23 IOs, 22 are locked and 1 are not locked. If you would like to print the names of these IOs, please set the environment variable XIL_PAR_DESIGN_CHECK_VERBOSE to 1. + + +A clock IOB / clock component pair have been found that are not placed at an optimal clock IOB / clock site pair. The clock component <Clk_BUFGP/BUFG> is placed at site <BUFGMUX1>. The IO component <Clk> is placed at site <PAD89>. This will not allow the use of the fast path between the IO and the Clock buffer. This is normally an ERROR but the CLOCK_DEDICATED_ROUTE constraint was applied on COMP.PIN <Clk.PAD> allowing your design to continue. This constraint disables all clock placer rules related to the specified COMP.PIN. The use of this override is highly discouraged as it may lead to very poor timing results. It is recommended that this error condition be corrected in the design. + + +N/A entries in the Constraints List may indicate that the constraint is not analyzed due to the following: No paths covered by this constraint; Other constraints intersect with this constraint; or This constraint was disabled by a Path Tracing Control. Please run the Timespec Interaction Report (TSI) via command line (trce tsi) or Timing Analyzer GUI. + +N/A entries in the Constraints List may indicate that the constraint is not analyzed due to the following: No paths covered by this constraint; Other constraints intersect with this constraint; or This constraint was disabled by a Path Tracing Control. Please run the Timespec Interaction Report (TSI) via command line (trce tsi) or Timing Analyzer GUI. + + + Index: ps2_keyboard_interface/_xmsgs/ngdbuild.xmsgs =================================================================== --- ps2_keyboard_interface/_xmsgs/ngdbuild.xmsgs (nonexistent) +++ ps2_keyboard_interface/_xmsgs/ngdbuild.xmsgs (revision 2) @@ -0,0 +1,9 @@ + + + + + Index: ps2_keyboard_interface/_xmsgs/bitgen.xmsgs =================================================================== --- ps2_keyboard_interface/_xmsgs/bitgen.xmsgs (nonexistent) +++ ps2_keyboard_interface/_xmsgs/bitgen.xmsgs (revision 2) @@ -0,0 +1,12 @@ + + + +Replacing "Auto" with "NoWait" for option "Match_cycle". Most commonly, bitgen has determined and will use a specific value instead of the generic command-line value of "Auto". Alternately, this message appears if the same option is specified multiple times on the command-line. In this case, the option listed last will be used. + + + + Index: ps2_keyboard_interface/_xmsgs/pn_parser.xmsgs =================================================================== --- ps2_keyboard_interface/_xmsgs/pn_parser.xmsgs (nonexistent) +++ ps2_keyboard_interface/_xmsgs/pn_parser.xmsgs (revision 2) @@ -0,0 +1,15 @@ + + + + + + + + + + +Parsing VHDL file "/home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.vhd" into library work + + + + Index: ps2_keyboard_interface/_xmsgs/map.xmsgs =================================================================== --- ps2_keyboard_interface/_xmsgs/map.xmsgs (nonexistent) +++ ps2_keyboard_interface/_xmsgs/map.xmsgs (revision 2) @@ -0,0 +1,15 @@ + + + +No environment variables are currently set. + + +All of the single ended outputs in this design are using slew rate limited output drivers. The delay on speed critical single ended outputs can be dramatically reduced by designating them as fast outputs. + + + + Index: ps2_keyboard_interface/_xmsgs/trce.xmsgs =================================================================== --- ps2_keyboard_interface/_xmsgs/trce.xmsgs (nonexistent) +++ ps2_keyboard_interface/_xmsgs/trce.xmsgs (revision 2) @@ -0,0 +1,19 @@ + + + +No timing constraints found, doing default enumeration. + +To get complete path coverage, use the unconstrained paths option. All paths that are not constrained will be reported in the unconstrained paths section(s) of the report. + +The clock-to-out numbers in this timing report are based on a 50 Ohm transmission line loading model. For the details of this model, and for more information on accounting for different loading conditions, please see the device datasheet. + +This architecture does not support a default System Jitter value, please add SYSTEM_JITTER constraint to the UCF to modify the Clock Uncertainty calculation. + +This architecture does not support 'Discrete Jitter' and 'Phase Error' calculations, these terms will be zero in the Clock Uncertainty calculation. Please make appropriate modification to SYSTEM_JITTER to account for the unsupported Discrete Jitter and Phase Error. + + + Index: ps2_keyboard_interface/_xmsgs/xst.xmsgs =================================================================== --- ps2_keyboard_interface/_xmsgs/xst.xmsgs (nonexistent) +++ ps2_keyboard_interface/_xmsgs/xst.xmsgs (revision 2) @@ -0,0 +1,12 @@ + + + +Signal <data<21>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. + + + + Index: ps2_keyboard_interface/Keyboard_Controller.xpi =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.xpi (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.xpi (revision 2) @@ -0,0 +1,3 @@ +PROGRAM=PAR +STATE=ROUTED +TIMESPECS_MET=OFF Index: ps2_keyboard_interface/Keyboard_Controller.pad =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.pad (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.pad (revision 2) @@ -0,0 +1,286 @@ +Release 12.3 - par M.70d (lin64) +Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. + +Fri Dec 3 00:08:31 2010 + + +# NOTE: This file is designed to be imported into a spreadsheet program +# such as Microsoft Excel for viewing, printing and sorting. The | +# character is used as the data field separator. This file is also designed +# to support parsing. +# +INPUT FILE: Keyboard_Controller_map.ncd +OUTPUT FILE: Keyboard_Controller.pad +PART TYPE: xc3s200 +SPEED GRADE: -5 +PACKAGE: ft256 + +Pinout by Pin Number: + +-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----| +Pin Number|Signal Name|Pin Usage|Pin Name|Direction|IO Standard|IO Bank Number|Drive (mA)|Slew Rate|Termination|IOB Delay|Voltage|Constraint|IO Register|Signal Integrity| +A1|||GND|||||||||||| +A2|||TDI|||||||||||| +A3||IOB|IO/VREF_0|UNUSED||0||||||||| +A4||DIFFM|IO_L01P_0/VRN_0|UNUSED||0||||||||| +A5||IOB|IO|UNUSED||0||||||||| +A6|||VCCAUX||||||||2.5|||| +A7||IOB|IO|UNUSED||0||||||||| +A8||DIFFM|IO_L32P_0/GCLK6|UNUSED||0||||||||| +A9||IOB|IO|UNUSED||1||||||||| +A10||DIFFS|IO_L31N_1/VREF_1|UNUSED||1||||||||| +A11|||VCCAUX||||||||2.5|||| +A12||IOB|IO|UNUSED||1||||||||| +A13||DIFFS|IO_L10N_1/VREF_1|UNUSED||1||||||||| +A14||DIFFS|IO_L01N_1/VRP_1|UNUSED||1||||||||| +A15|||TDO|||||||||||| +A16|||GND|||||||||||| +B1||DIFFM|IO_L01P_7/VRN_7|UNUSED||7||||||||| +B2|||GND|||||||||||| +B3|||PROG_B|||||||||||| +B4||DIFFS|IO_L01N_0/VRP_0|UNUSED||0||||||||| +B5||DIFFM|IO_L25P_0|UNUSED||0||||||||| +B6||DIFFM|IO_L28P_0|UNUSED||0||||||||| +B7||DIFFM|IO_L30P_0|UNUSED||0||||||||| +B8||DIFFS|IO_L32N_0/GCLK7|UNUSED||0||||||||| +B9|||GND|||||||||||| +B10||DIFFM|IO_L31P_1|UNUSED||1||||||||| +B11||DIFFS|IO_L29N_1|UNUSED||1||||||||| +B12||DIFFS|IO_L27N_1|UNUSED||1||||||||| +B13||DIFFM|IO_L10P_1|UNUSED||1||||||||| +B14||DIFFM|IO_L01P_1/VRN_1|UNUSED||1||||||||| +B15|||GND|||||||||||| +B16||DIFFS|IO_L01N_2/VRP_2|UNUSED||2||||||||| +C1||DIFFS|IO_L01N_7/VRP_7|UNUSED||7||||||||| +C2||DIFFS|IO_L16N_7|UNUSED||7||||||||| +C3||DIFFM|IO_L16P_7/VREF_7|UNUSED||7||||||||| +C4|||HSWAP_EN|||||||||||| +C5||DIFFS|IO_L25N_0|UNUSED||0||||||||| +C6||DIFFS|IO_L28N_0|UNUSED||0||||||||| +C7||DIFFS|IO_L30N_0|UNUSED||0||||||||| +C8||DIFFM|IO_L31P_0/VREF_0|UNUSED||0||||||||| +C9||DIFFS|IO_L32N_1/GCLK5|UNUSED||1||||||||| +C10||IOB|IO|UNUSED||1||||||||| +C11||DIFFM|IO_L29P_1|UNUSED||1||||||||| +C12||DIFFM|IO_L27P_1|UNUSED||1||||||||| +C13|||TMS|||||||||||| +C14|||TCK|||||||||||| +C15||DIFFS|IO_L16N_2|UNUSED||2||||||||| +C16||DIFFM|IO_L01P_2/VRN_2|UNUSED||2||||||||| +D1||DIFFS|IO_L17N_7|UNUSED||7||||||||| +D2||DIFFM|IO_L17P_7|UNUSED||7||||||||| +D3||DIFFM|IO_L19P_7|UNUSED||7||||||||| +D4|||VCCINT||||||||1.2|||| +D5||IOB|IO/VREF_0|UNUSED||0||||||||| +D6||DIFFM|IO_L27P_0|UNUSED||0||||||||| +D7||DIFFM|IO_L29P_0|UNUSED||0||||||||| +D8||DIFFS|IO_L31N_0|UNUSED||0||||||||| +D9||DIFFM|IO_L32P_1/GCLK4|UNUSED||1||||||||| +D10||DIFFS|IO_L30N_1|UNUSED||1||||||||| +D11||DIFFS|IO_L28N_1|UNUSED||1||||||||| +D12||IOB|IO/VREF_1|UNUSED||1||||||||| +D13|||VCCINT||||||||1.2|||| +D14|Enables<3>|IOB|IO_L16P_2|OUTPUT|LVCMOS25*|2|12|SLOW|NONE**|||LOCATED|NO|NONE| +D15||DIFFS|IO_L17N_2|UNUSED||2||||||||| +D16||DIFFM|IO_L17P_2/VREF_2|UNUSED||2||||||||| +E1||DIFFS|IO_L20N_7|UNUSED||7||||||||| +E2||DIFFM|IO_L20P_7|UNUSED||7||||||||| +E3||DIFFS|IO_L19N_7/VREF_7|UNUSED||7||||||||| +E4||DIFFM|IO_L21P_7|UNUSED||7||||||||| +E5|||VCCINT||||||||1.2|||| +E6||DIFFS|IO_L27N_0|UNUSED||0||||||||| +E7||DIFFS|IO_L29N_0|UNUSED||0||||||||| +E8|||VCCO_0|||0|||||any******|||| +E9|||VCCO_1|||1|||||any******|||| +E10||DIFFM|IO_L30P_1|UNUSED||1||||||||| +E11||DIFFM|IO_L28P_1|UNUSED||1||||||||| +E12|||VCCINT||||||||1.2|||| +E13|Enables<0>|IOB|IO_L19N_2|OUTPUT|LVCMOS25*|2|12|SLOW|NONE**|||LOCATED|NO|NONE| +E14|Segments<0>|IOB|IO_L19P_2|OUTPUT|LVCMOS25*|2|12|SLOW|NONE**|||LOCATED|NO|NONE| +E15||DIFFS|IO_L20N_2|UNUSED||2||||||||| +E16||DIFFM|IO_L20P_2|UNUSED||2||||||||| +F1|||VCCAUX||||||||2.5|||| +F2||DIFFS|IO_L22N_7|UNUSED||7||||||||| +F3||DIFFM|IO_L22P_7|UNUSED||7||||||||| +F4||DIFFS|IO_L21N_7|UNUSED||7||||||||| +F5||DIFFM|IO_L23P_7|UNUSED||7||||||||| +F6|||GND|||||||||||| +F7|||VCCO_0|||0|||||any******|||| +F8|||VCCO_0|||0|||||any******|||| +F9|||VCCO_1|||1|||||any******|||| +F10|||VCCO_1|||1|||||any******|||| +F11|||GND|||||||||||| +F12||DIFFS|IO_L21N_2|UNUSED||2||||||||| +F13|Segments<5>|IOB|IO_L21P_2|OUTPUT|LVCMOS25*|2|12|SLOW|NONE**|||LOCATED|NO|NONE| +F14|Enables<1>|IOB|IO_L22N_2|OUTPUT|LVCMOS25*|2|12|SLOW|NONE**|||LOCATED|NO|NONE| +F15||DIFFM|IO_L22P_2|UNUSED||2||||||||| +F16|||VCCAUX||||||||2.5|||| +G1||DIFFM|IO_L40P_7|UNUSED||7||||||||| +G2||DIFFS|IO|UNUSED||7||||||||| +G3||DIFFS|IO_L24N_7|UNUSED||7||||||||| +G4||DIFFM|IO_L24P_7|UNUSED||7||||||||| +G5||DIFFS|IO_L23N_7|UNUSED||7||||||||| +G6|||VCCO_7|||7|||||any******|||| +G7|||GND|||||||||||| +G8|||GND|||||||||||| +G9|||GND|||||||||||| +G10|||GND|||||||||||| +G11|||VCCO_2|||2|||||2.50|||| +G12||DIFFS|IO_L23N_2/VREF_2|UNUSED||2||||||||| +G13|Segments<1>|IOB|IO_L23P_2|OUTPUT|LVCMOS25*|2|12|SLOW|NONE**|||LOCATED|NO|NONE| +G14|Enables<2>|IOB|IO_L24N_2|OUTPUT|LVCMOS25*|2|12|SLOW|NONE**|||LOCATED|NO|NONE| +G15||DIFFM|IO_L24P_2|UNUSED||2||||||||| +G16||DIFFM|IO|UNUSED||2||||||||| +H1||DIFFS|IO_L40N_7/VREF_7|UNUSED||7||||||||| +H2|||GND|||||||||||| +H3||DIFFS|IO_L39N_7|UNUSED||7||||||||| +H4||DIFFM|IO_L39P_7|UNUSED||7||||||||| +H5|||VCCO_7|||7|||||any******|||| +H6|||VCCO_7|||7|||||any******|||| +H7|||GND|||||||||||| +H8|||GND|||||||||||| +H9|||GND|||||||||||| +H10|||GND|||||||||||| +H11|||VCCO_2|||2|||||2.50|||| +H12|||VCCO_2|||2|||||2.50|||| +H13||DIFFS|IO_L39N_2|UNUSED||2||||||||| +H14||DIFFM|IO_L39P_2|UNUSED||2||||||||| +H15||DIFFS|IO_L40N_2|UNUSED||2||||||||| +H16|Segments<7>|IOB|IO_L40P_2/VREF_2|OUTPUT|LVCMOS25*|2|12|SLOW|NONE**|||UNLOCATED|NO|NONE| +J1||DIFFM|IO_L40P_6/VREF_6|UNUSED||6||||||||| +J2||DIFFS|IO_L40N_6|UNUSED||6||||||||| +J3||DIFFM|IO_L39P_6|UNUSED||6||||||||| +J4||DIFFS|IO_L39N_6|UNUSED||6||||||||| +J5|||VCCO_6|||6|||||any******|||| +J6|||VCCO_6|||6|||||any******|||| +J7|||GND|||||||||||| +J8|||GND|||||||||||| +J9|||GND|||||||||||| +J10|||GND|||||||||||| +J11|||VCCO_3|||3|||||2.50|||| +J12|||VCCO_3|||3|||||2.50|||| +J13||DIFFM|IO_L39P_3|UNUSED||3||||||||| +J14||DIFFS|IO_L39N_3|UNUSED||3||||||||| +J15|||GND|||||||||||| +J16||DIFFS|IO_L40N_3/VREF_3|UNUSED||3||||||||| +K1||DIFFM|IO|UNUSED||6||||||||| +K2||DIFFM|IO_L24P_6|UNUSED||6||||||||| +K3||DIFFS|IO_L24N_6/VREF_6|UNUSED||6||||||||| +K4||DIFFM|IO_L23P_6|UNUSED||6||||||||| +K5||DIFFS|IO_L23N_6|UNUSED||6||||||||| +K6|||VCCO_6|||6|||||any******|||| +K7|||GND|||||||||||| +K8|||GND|||||||||||| +K9|||GND|||||||||||| +K10|||GND|||||||||||| +K11|||VCCO_3|||3|||||2.50|||| +K12|pressed<0>|IOB|IO_L23N_3|OUTPUT|LVCMOS25*|3|12|SLOW|NONE**|||LOCATED|NO|NONE| +K13||DIFFM|IO_L24P_3|UNUSED||3||||||||| +K14||DIFFS|IO_L24N_3|UNUSED||3||||||||| +K15||DIFFS|IO|UNUSED||3||||||||| +K16||DIFFM|IO_L40P_3|UNUSED||3||||||||| +L1|||VCCAUX||||||||2.5|||| +L2||DIFFM|IO_L22P_6|UNUSED||6||||||||| +L3||DIFFS|IO_L22N_6|UNUSED||6||||||||| +L4||DIFFM|IO_L21P_6|UNUSED||6||||||||| +L5||DIFFS|IO_L21N_6|UNUSED||6||||||||| +L6|||GND|||||||||||| +L7|||VCCO_5|||5|||||any******|||| +L8|||VCCO_5|||5|||||any******|||| +L9|||VCCO_4|||4|||||2.50|||| +L10|||VCCO_4|||4|||||2.50|||| +L11|||GND|||||||||||| +L12|pressed<2>|IOB|IO_L23P_3/VREF_3|OUTPUT|LVCMOS25*|3|12|SLOW|NONE**|||LOCATED|NO|NONE| +L13||DIFFS|IO_L21N_3|UNUSED||3||||||||| +L14||DIFFM|IO_L22P_3|UNUSED||3||||||||| +L15||DIFFS|IO_L22N_3|UNUSED||3||||||||| +L16|||VCCAUX||||||||2.5|||| +M1||DIFFM|IO_L20P_6|UNUSED||6||||||||| +M2||DIFFS|IO_L20N_6|UNUSED||6||||||||| +M3||DIFFM|IO_L19P_6|UNUSED||6||||||||| +M4||DIFFS|IO_L19N_6|UNUSED||6||||||||| +M5|||VCCINT||||||||1.2|||| +M6||DIFFM|IO_L28P_5/D7|UNUSED||5||||||||| +M7||DIFFM|IO_L30P_5|UNUSED||5||||||||| +M8|||VCCO_5|||5|||||any******|||| +M9|||VCCO_4|||4|||||2.50|||| +M10||DIFFS|IO_L29N_4|UNUSED||4||||||||| +M11||DIFFS|IO_L27N_4/DIN/D0|UNUSED||4||||||||| +M12|||VCCINT||||||||1.2|||| +M13||DIFFM|IO_L21P_3|UNUSED||3||||||||| +M14||DIFFS|IO_L19N_3|UNUSED||3||||||||| +M15|DataIn|IOB|IO_L20P_3|INPUT|LVCMOS25*|3||||NONE||LOCATED|NO|NONE| +M16|Clk|IOB|IO_L20N_3|INPUT|LVCMOS25*|3||||NONE||LOCATED|NO|NONE| +N1||DIFFM|IO_L17P_6/VREF_6|UNUSED||6||||||||| +N2||DIFFS|IO_L17N_6|UNUSED||6||||||||| +N3||DIFFM|IO_L16P_6|UNUSED||6||||||||| +N4|||VCCINT||||||||1.2|||| +N5||IOB|IO|UNUSED||5||||||||| +N6||DIFFS|IO_L28N_5/D6|UNUSED||5||||||||| +N7||DIFFS|IO_L30N_5|UNUSED||5||||||||| +N8||DIFFM|IO_L32P_5/GCLK2|UNUSED||5||||||||| +N9||DIFFS|IO_L31N_4/INIT_B|UNUSED||4||||||||| +N10||DIFFM|IO_L29P_4|UNUSED||4||||||||| +N11||DIFFM|IO_L27P_4/D1|UNUSED||4||||||||| +N12|pressed<5>|IOB|IO/VREF_4|OUTPUT|LVCMOS25*|4|12|SLOW|NONE**|||LOCATED|NO|NONE| +N13|||VCCINT||||||||1.2|||| +N14|pressed<3>|IOB|IO_L19P_3|OUTPUT|LVCMOS25*|3|12|SLOW|NONE**|||LOCATED|NO|NONE| +N15|Segments<2>|IOB|IO_L17P_3/VREF_3|OUTPUT|LVCMOS25*|3|12|SLOW|NONE**|||LOCATED|NO|NONE| +N16|Segments<6>|IOB|IO_L17N_3|OUTPUT|LVCMOS25*|3|12|SLOW|NONE**|||LOCATED|NO|NONE| +P1||DIFFM|IO_L01P_6/VRN_6|UNUSED||6||||||||| +P2||DIFFS|IO_L16N_6|UNUSED||6||||||||| +P3|||M0|||||||||||| +P4|||M2|||||||||||| +P5||DIFFM|IO_L27P_5|UNUSED||5||||||||| +P6||DIFFM|IO_L29P_5/VREF_5|UNUSED||5||||||||| +P7||IOB|IO|UNUSED||5||||||||| +P8||DIFFS|IO_L32N_5/GCLK3|UNUSED||5||||||||| +P9||DIFFM|IO_L31P_4/DOUT/BUSY|UNUSED||4||||||||| +P10||DIFFS|IO_L30N_4/D2|UNUSED||4||||||||| +P11|pressed<7>|IOB|IO_L28N_4|OUTPUT|LVCMOS25*|4|12|SLOW|NONE**|||LOCATED|NO|NONE| +P12|pressed<6>|IOB|IO_L25N_4|OUTPUT|LVCMOS25*|4|12|SLOW|NONE**|||LOCATED|NO|NONE| +P13|pressed<4>|IOB|IO/VREF_4|OUTPUT|LVCMOS25*|4|12|SLOW|NONE**|||LOCATED|NO|NONE| +P14|pressed<1>|IOB|IO_L16P_3|OUTPUT|LVCMOS25*|3|12|SLOW|NONE**|||LOCATED|NO|NONE| +P15|Segments<3>|IOB|IO_L16N_3|OUTPUT|LVCMOS25*|3|12|SLOW|NONE**|||LOCATED|NO|NONE| +P16||DIFFS|IO_L01N_3/VRP_3|UNUSED||3||||||||| +R1||DIFFS|IO_L01N_6/VRP_6|UNUSED||6||||||||| +R2|||GND|||||||||||| +R3||DIFFM|IO_L01P_5/CS_B|UNUSED||5||||||||| +R4||DIFFM|IO_L10P_5/VRN_5|UNUSED||5||||||||| +R5||DIFFS|IO_L27N_5/VREF_5|UNUSED||5||||||||| +R6||DIFFS|IO_L29N_5|UNUSED||5||||||||| +R7||DIFFM|IO_L31P_5/D5|UNUSED||5||||||||| +R8|||GND|||||||||||| +R9||DIFFS|IO_L32N_4/GCLK1|UNUSED||4||||||||| +R10||DIFFM|IO_L30P_4/D3|UNUSED||4||||||||| +R11||DIFFM|IO_L28P_4|UNUSED||4||||||||| +R12||DIFFM|IO_L25P_4|UNUSED||4||||||||| +R13||DIFFS|IO_L01N_4/VRP_4|UNUSED||4||||||||| +R14|||DONE|||||||||||| +R15|||GND|||||||||||| +R16|Segments<4>|IOB|IO_L01P_3/VRN_3|OUTPUT|LVCMOS25*|3|12|SLOW|NONE**|||LOCATED|NO|NONE| +T1|||GND|||||||||||| +T2|||M1|||||||||||| +T3||DIFFS|IO_L01N_5/RDWR_B|UNUSED||5||||||||| +T4||DIFFS|IO_L10N_5/VRP_5|UNUSED||5||||||||| +T5||IOB|IO|UNUSED||5||||||||| +T6|||VCCAUX||||||||2.5|||| +T7||DIFFS|IO_L31N_5/D4|UNUSED||5||||||||| +T8||IOB|IO/VREF_5|UNUSED||5||||||||| +T9|Clk2|IOB|IO_L32P_4/GCLK0|INPUT|LVCMOS25*|4||||NONE||LOCATED|NO|NONE| +T10||IOB|IO/VREF_4|UNUSED||4||||||||| +T11|||VCCAUX||||||||2.5|||| +T12||IOB|IO|UNUSED||4||||||||| +T13||DIFFM|IO_L01P_4/VRN_4|UNUSED||4||||||||| +T14||DIFFS|IO|UNUSED||4||||||||| +T15|||CCLK|||||||||||| +T16|||GND|||||||||||| + +-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----| + +* Default value. +** This default Pullup/Pulldown value can be overridden in Bitgen. +****** Special VCCO requirements may apply. Please consult the device + family datasheet for specific guideline on VCCO requirements. + + Index: ps2_keyboard_interface/Keyboard_Controller.ncd =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.ncd (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.ncd (revision 2) @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6 +###5460:XlxV32DM 3fff 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###4088:XlxV32DM 3fff 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###4644:XlxV32DM 3fff 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###4956:XlxV32DM 3fff 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###4116:XlxV32DM 35e5 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 \ No newline at end of file Index: ps2_keyboard_interface/Keyboard_Controller_ngdbuild.xrpt =================================================================== --- ps2_keyboard_interface/Keyboard_Controller_ngdbuild.xrpt (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller_ngdbuild.xrpt (revision 2) @@ -0,0 +1,109 @@ + + + + + + +
+ + + + + + + + + + + + + + + +
+ + + + + + + + + + + + +
+
+ +
+ + + + +
+
+ +
+ + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + + Index: ps2_keyboard_interface/Keyboard_Controller.bgn =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.bgn (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.bgn (revision 2) @@ -0,0 +1,112 @@ +Release 12.3 - Bitgen M.70d (lin64) +Copyright (c) 1995-2010 Xilinx, Inc. All rights reserved. +Loading device for application Rf_Device from file '3s200.nph' in environment +/home/omar/ISE_DS/ISE/. + "Keyboard_Controller" is an NCD, version 3.2, device xc3s200, package ft256, +speed -5 +Opened constraints file Keyboard_Controller.pcf. + +Fri Dec 3 00:08:34 2010 + +/home/omar/ISE_DS/ISE/bin/lin64/unwrapped/bitgen -intstyle ise -w -g DebugBitstream:No -g Binary:no -g CRC:Enable -g ConfigRate:6 -g CclkPin:PullUp -g M0Pin:PullUp -g M1Pin:PullUp -g M2Pin:PullUp -g ProgPin:PullUp -g DonePin:PullUp -g HswapenPin:PullUp -g TckPin:PullUp -g TdiPin:PullUp -g TdoPin:PullUp -g TmsPin:PullUp -g UnusedPin:PullDown -g UserID:0xFFFFFFFF -g DCMShutdown:Disable -g DCIUpdateMode:AsRequired -g StartUpClk:CClk -g DONE_cycle:4 -g GTS_cycle:5 -g GWE_cycle:6 -g LCK_cycle:NoWait -g Match_cycle:Auto -g Security:None -g DonePipe:No -g DriveDone:No Keyboard_Controller.ncd + +INFO:Bitgen:40 - Replacing "Auto" with "NoWait" for option "Match_cycle". Most + commonly, bitgen has determined and will use a specific value instead of the + generic command-line value of "Auto". Alternately, this message appears if + the same option is specified multiple times on the command-line. In this + case, the option listed last will be used. +Summary of Bitgen Options: ++----------------------+----------------------+ +| Option Name | Current Setting | ++----------------------+----------------------+ +| Compress | (Not Specified)* | ++----------------------+----------------------+ +| Readback | (Not Specified)* | ++----------------------+----------------------+ +| CRC | Enable** | ++----------------------+----------------------+ +| DebugBitstream | No** | ++----------------------+----------------------+ +| ConfigRate | 6** | ++----------------------+----------------------+ +| StartupClk | Cclk** | ++----------------------+----------------------+ +| DCMShutdown | Disable** | ++----------------------+----------------------+ +| DCIUpdateMode | AsRequired** | ++----------------------+----------------------+ +| CclkPin | Pullup** | ++----------------------+----------------------+ +| DonePin | Pullup** | ++----------------------+----------------------+ +| HswapenPin | Pullup** | ++----------------------+----------------------+ +| M0Pin | Pullup** | ++----------------------+----------------------+ +| M1Pin | Pullup** | ++----------------------+----------------------+ +| M2Pin | Pullup** | ++----------------------+----------------------+ +| ProgPin | Pullup** | ++----------------------+----------------------+ +| TckPin | Pullup** | ++----------------------+----------------------+ +| TdiPin | Pullup** | ++----------------------+----------------------+ +| TdoPin | Pullup** | ++----------------------+----------------------+ +| TmsPin | Pullup** | ++----------------------+----------------------+ +| UnusedPin | Pulldown** | ++----------------------+----------------------+ +| GWE_cycle | 6** | ++----------------------+----------------------+ +| GTS_cycle | 5** | ++----------------------+----------------------+ +| LCK_cycle | NoWait** | ++----------------------+----------------------+ +| Match_cycle | NoWait | ++----------------------+----------------------+ +| DONE_cycle | 4** | ++----------------------+----------------------+ +| Persist | No* | ++----------------------+----------------------+ +| DriveDone | No** | ++----------------------+----------------------+ +| DonePipe | No** | ++----------------------+----------------------+ +| Security | None** | ++----------------------+----------------------+ +| UserID | 0xFFFFFFFF** | ++----------------------+----------------------+ +| ActivateGclk | No* | ++----------------------+----------------------+ +| ActiveReconfig | No* | ++----------------------+----------------------+ +| PartialMask0 | (Not Specified)* | ++----------------------+----------------------+ +| PartialMask1 | (Not Specified)* | ++----------------------+----------------------+ +| PartialMask2 | (Not Specified)* | ++----------------------+----------------------+ +| PartialGclk | (Not Specified)* | ++----------------------+----------------------+ +| PartialLeft | (Not Specified)* | ++----------------------+----------------------+ +| PartialRight | (Not Specified)* | ++----------------------+----------------------+ +| IEEE1532 | No* | ++----------------------+----------------------+ +| Binary | No** | ++----------------------+----------------------+ + * Default setting. + ** The specified setting matches the default setting. + +There were 0 CONFIG constraint(s) processed from Keyboard_Controller.pcf. + + +Running DRC. +DRC detected 0 errors and 0 warnings. +Creating bit map... +Saving bit stream in "Keyboard_Controller.bit". +Bitstream generation is complete. Index: ps2_keyboard_interface/Keyboard_Controller.ngc =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.ngc (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.ngc (revision 2) @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$0:44=7<2:;<>:401240>6709;0=<5=4:02042<:1;986:;5B36?1>7K;;=754@UURVP?Ubodoex~28:1<21>>=G\^[YY4rdqpaa:029497L>=;@37?D760;1J>?5N349AQCAW02H^_RGAFN38G7=DM;1HE>5LLJ;8GJKJA]^NH:5LRDCWAA51:d=Dg|di2<>`9@kphsm{6?245LotlwawY712Idyczjr^3:?Firf}oyS?74Cnwmp`tX;01Hcx`{es]75>B53MC=7Io{aHla?Agsi@dTEO[I1:G1?@233L>?4l5Jn``oav:76h1Nbllcer>2:d=Bfhhgi~2=>b9Fjddkmz686=0n;Dlbfict4:4n7H`nbmgp[5YHJ\Ln7H`nbmgp[4YHJ\Ln7H`nbmgp[7YHJ\Ln7H`nbmgp[6YHJ\L97KJ<;GFF1>@CMV;87KJ]4:DG[47?5F359JFP@>3@DBX^ZNTD18MKP6j2CeyQ\ewgmW`ajmg~$Oea|eo>3:4dOi{}UXi{kaSdenakr(Kaexic2=>0`8MkusWZo}ic]jglgmp*Eogzoe0>0>c:KmwqYTmoe_hibeov,Gjsi|lx7<3?k;HlppZUb~ldXijcjnu-@kphsm{6:<3?k;HlppZUb~ldXijcjnu-@kphsm{6:=3?k;HlppZUb~ldXijcjnu-@kphsm{6:>3?l;HlppZUb~ldXijcjnu-@kphsm{6:2::4dOi{}UXi{kaSdenakr(Kfexh|P10a8MkusWZo}ic]jglgmp*Eh}g~n~R??1b9JjvrX[l|nb^khmdlw+Firf}oySc:KmwqYTmoe_hibeov,Gjsi|lxT=??m;HlppZUb~ldXijcjnu-@kphsm{U9=o5Fnrv\W`pbfZolah`{/BmvjqcuW:;i7D`|t^Qfr`hTmngnby!LotlwawY39k1Bb~zPSdtfjVc`eld#Naznugq[07e3@dxxR]jvdlPabkbf}%Hcx`{es]55g=Nfz~T_hxjnRgdi`hs'Je~byk}_63a?Lht|VYnzh`\efofjq)Dg|diQ71c9JjvrX[l|nb^khmdlw+Firf}oyS4<9;HlppZUb~ldXijcjnu-Ngjsi|VIdyczjr^az8585?2CeyQ\ewgmW`ajmg~$Anaznu]@kphsm{Uhu1??>3c8MkusWZo}ic]jglgmp*Kdg|dSNaznugq[f;994T~y<8;HlppZUb~ldXijcjnu-Ngjsi|VIdyczjr^az8479:h1Bb~zPSdtfjVc`eld#@m`uov\Gjsi|lxTot2>1?]qp70Oi{}UXi{kaSdenakr(Eje~byQLotlwawYdq585Sz=6:KmwqYTmoe_hibeov,Ifirf}UHcx`{es]`}959:01Bb~zPSdtfjVc`eld#@m`uov\Gjsi|lxTot2<>^pw63=Nfz~T_hxjnRgdi`hs'DidyczPCnwmp`tXkp6?2?74Ioqw[VcqmgYnk`kat.O`kphsWJe~byk}_b{?0;Yu|;<0Ec}{_RguakUbodoex"Clotlw[Firf}oySnw35?0:?Lht|VYnzh`\efofjq)JkfexRM`uovfvZe~4<4T~y<9;HlppZUb~ldXijcjnu-Ngjsi|VIdyczjr^az838512CeyQ\ewgmW`ajmg~$Anaznu]@kphsm{Uhu181_sv12>Oi{}UXi{kaSdenakr(Eje~byQLotlwawYdq5=5>45Fnrv\W`pbfZolah`{/LalqkrXKfexh|Pcx>4:Zts:?1Bb~zPSdtfjVc`eld#@m`uov\Gjsi|lxTot27>3;8MkusWZo}ic]jglgmp*Kdg|dSNaznugq[f;07Uyx?84Ioqw[VcqmgYnk`kat.O`kphsWJe~byk}_b{?=;4>3@dxxR]jvdlPabkbf}%Fob{at^AlqkrbzVir040Pru04?Lht|VYnzh`\efofjq)JkfexRM`uovfvZjr|5:5>i5Fnrv\W`pbfZolah`{/LalqkrXKfexh|Pltv?4;YNF_U;>:5Fnrv\W`pbfZolah`{/LalqkrXKfexh|Pxnp?4;4?3@dxxR]jvdlPabkbf}%Fob{at^AlqkrbzVrd~1??>3:8MkusWZo}ic]jglgmp*Kdg|dSNaznugq[}iu48;5>55Fnrv\W`pbfZolah`{/LalqkrXKfexh|Pxnp?5785j2CeyQ\ewgmW`ajmg~$Anaznu]@kphsm{Usc2>2?]qp71Oi{}UXi{kaSdenakr(Eje~byQLotlwawYg{6?2?94Ioqw[VcqmgYnk`kat.O`kphsWJe~byk}_ymq8085?2CeyQ\ewgmW`ajmg~$Anaznu]@kphsm{Usc29>358MkusWZo}ic]jglgmp*Kdg|dSNaznugq[}iu4>49;6Gasu]Pasci[lmficz MbmvjqYDg|diQwos>;:71<<=;HlppZUb~ldXijcjnu-N``ehlVOemobjs2316>Oi{}UXi{kaSdenakr(EdsSNf`sdl\6Z`2:=1Bb~zPSdtfjVc`eld#@czx^AkkvciW;Um9R>=4:KmwqYTmoe_hibeov,IhsWJbdh`P2^d6[4433@dxxR]jvdlPabkbf}%FaxvPCimpakY5Wo?T>4Ioqw[VcqmgYnk`kat.Onq}YD`fynbR:=219JjvrX[l|nb^khmdlw+HkrpVIcc~ka_5115>Oi{}UXi{kaSdenakr(E{efS^khmdlww475:2CeyQ\ewgmW`ajmg~$Aab_Rgdi`hs{8;:><5Fnrv\W`pbfZolah`{/LpliZUbodoex~<>209JjvrX[l|nb^khmdlw+HtheVYnk`katr1264=Nfz~T_hxjnRgdi`hs'DxdaR]jglgmpv26:81Bb~zPSdtfjVc`eld#@|`m^Qfchci|z?:><5Fnrv\W`pbfZolah`{/LpliZUbodoex~8>129Ha|dhi{nTOb`{rnnoaw4_HLU[5703DidyczPCnwmp`tXpfx7=3?>169Ngjsi|VIdyczjr^zlv94998;<7@m`uov\Gjsi|lxTtb|33?3252=JkfexRM`uovfvZ~hz5>5=3:420:Zts9=1Fob{at^rqavub{Vir090>7:O`kphsWyxn~k|_b{?0;Yu|8>0Anaznu]sv`utmzUhu1;1169Ngjsi|Vzyi~}js^az808Xz};?7@m`uov\twct{lyTot29>058Ifirf}U{~h}|er]`}909W{~:96Clotlw[utb{zoxSa{{<1<2f>Kdg|dS}|jsrgp[iss494TECXP0078Ifirf}U{~h}|er]{kw:768?0Anaznu]sv`utmzUsc2>>078Ifirf}U{~h}|er]{kw:568?0Anaznu]sv`utmzUsc2<>078Ifirf}U{~h}|er]{kw:368?0Anaznu]sv`utmzUsc2:>078Ifirf}U{~h}|er]{kw:168?0Anaznu]sv`utmzUsc28>0:8Ifirf}U{~h}|er]{kw:06Vxi6C|hsgd[agsiV;8h6C|hsgd[agsiV897C?<;O377>H6>>1EIYY@RJ38K1=HJ\Li7B{{Bxvf5969j2E~xOw{e0>2:g=H}}Hrxh?32?`8KprEq}o:0>0m;NwwF|rb95>5n6AztC{wa4:26k1DyyLvtd3?2;d<6n;NwwF|rb9V;j7B{{Bxvf5Z4f3FNtzj1^1b?JssJp~n=R:n;NwwF|rb9V?j7B{{Bxvf5Z0f3FNtzj1^527>Ir|Ksi0CxzMyug2[fkwWl{;<=>>149LqqD~|l;To`~Pep2345Y69<1DyyLvtd3\ghvXmx:;<=Q=169LqqD~|l;To`~Pep2345YT_9h0CxzMyug1858e3FNtzj2=3=f>Ir|Ksi?2=>c9LqqD~|l87?3l4OtvA}qc54=4i7B{{Bxvf6939j2E~xOw{e3>5:g=H}}Hrxh<37?c8KprEq}o9S=o4OtvA}qc5W8k0CxzMyug1[7gW63[30^h}zlu>3:d=Umzgx1>11`9Qavsk|5:5>l5]erwop9776h1Yi~{ct=32:d=Umzgx1?=>89Qavsk|5;5m6\jstnw8486i2Xnxb{<0<1=>Tb{|f0?0n;Sgpqir;:7;j7_k|umv?6;4>3[oxyaz33?c8V`urd}6827:d=Umzgx1:11`9Qavsk|5>5>45]erwop939i2Xnxb{<4<2=>Tb{|f0;0n;Sgpqir;>7;27_k|umv?3;g0;8V`urd}63245]erwop9?992Y=7^AZRBG4?VTK9?U:n6]jglgmpv:76k1Xijcjnuq?5;d<[lmficz|<3POCWEb>Ubodoex~Q>_N@VBc=Tmngnby}P2^MAQC`<[lmficz|_2]LFP@a3Zolah`{s^6\KGSAn2Ynk`katr]6[JDRNo1Xijcjnuq\2ZIE]Ol0_hibeovp[2YHJ\L?7YW_Eb9VW@TX^@YBNAK<;WA@=>PNM^U_U]K>d:ZJHLH_%QNI,= > RVVF%6)9)KXODG:;YMQG\099geqg;9?437io{a=34:==ci}k7=507;ecwe97>611omyo321<4?agsi585;6jnt`>0:2=ci}k78394d`vb80803mkm1817:fbpd:06>1omyo38?58`drf404<7io{a^303>bf|hU:8:5kauc\501869geqgX90<0hlzn_358`drfW;:=7io{a^15?agsiV>=7io{a^75?agsiV<=7io{a^55?agsiV2=7io{a^;b?utb{zoo0=0n;qpfwvcc484j7}|jsrgg878f3yxn~kk<2d9sv`utmmU;SBLZFd9sv`utmmU:SBLZFd9sv`utmmU9SBLZFd9sv`utmmU8SBLZFd9sv`utmmU?SBLZFd9sv`utmmU>SBLZFd9sv`utmmU=SBLZFd9sv`utmmU1:d=wzlyxi~2<>`9sv`utmz6?2l5rdqpav:26h1{~h}|er>5:d=wzlyxi~28>89sv`utmzU;56~}erqfwZ7>3yxn~k|_3;8twct{lyT?45rdqpavY312zyi~}js^7:?utb{zoxS;74psgpw`uX?o1so>}=01/6)cr5=?wKL}:7b:BC|dd=N381=v]>f;370?d22899n5;=:27f4285?!7393;8o6s\1d8201o6:2;16a=c6<==b971>63b0k1}X<<::182>4455j1?96>;j8c9'56d=il1/==;51948fdd=83;<6o:5b9yK56?<,8936ll4Z0;97~76200:>7sf2183>>o593:17d==:188k44a290/==9513g8j4612910c<9:098k44d290/==9513g8j4612;10c<9:298k44f290/==9513g8j4612=10c<<6:18'551=9;o0b<>9:498k44?290/==9513g8j4612?10c<<8:18'551=9;o0b<>9:698k6d=83.:<:45$024>6g08m6`>0781?>i4?3:1(<>8:2c8j4612:10c<8k:18'551=9?i0b<>9:198k40e290/==9517a8j4612810c<8n:18'551=9?i0b<>9:398k40>290/==9517a8j4612:10c<87:18'551=9?i0b<>9:598k400290/==9517a8j4612<10c<89:18'551=9?i0b<>9:798k402290/==9517a8j4612>10n<=i:182>5<7s-;847:9;I30a>N6;01d884?::a516=83;1<7>t$01;>45f3A;8i6F>389l552=831vn<;j:180>5<7s-;847:;;I30a>N6;01/8i4;;h3b>5<?7E?389'0a<33`;j6=44i2294?=h9921<75rb042>5<4290;w)?<8;67?M74m2B:?45+4e87?l7f2900e>>50;9l55>=831vn<8=:180>5<7s-;847:;;I30a>N6;01/8i4;;h3b>5<?7E?389'0a<33`;j6=44i2294?=h9921<75rbd594?2=83:p(<=7:508L45b3A;856g>a;29?l7e2900e>>50;9l55>=831vnh650;694?6|,89369<4H01f?M7412c:m7>5;h3a>5<o6i3:17d?m:188m66=831d==650;9~f`g=83>1<7>t$01;>14<@89n7E?<9:k2e?6=3`;i6=44i2294?=h9921<75rbd`94?2=83:p(<=7:508L45b3A;856g>a;29?l7e2900e>>50;9l55>=831vnhm50;694?6|,89369<4H01f?M7412c:m7>5;h3a>5<o6i3:17d?m:188m66=831d==650;9~f`c=83>1<7>t$01;>14<@89n7E?<9:k2e?6=3`;i6=44i2294?=h9921<75rb075>5<4290;w)?<8;67?M74m2B:?45+4e87?l7f2900e>>50;9l55>=831vn<;8:180>5<7s-;847:;;I30a>N6;01/8i4;;h3b>5<?7E?29086=4?{%30389'0a<33`;j6=44i2294?=h9921<75rb07b>5<4290;w)?<8;67?M74m2B:?45+4e87?l7f2900e>>50;9l55>=831vn<;m:180>5<7s-;847:;;I30a>N6;01/8i4;;h3b>5<?7E?1<7>t$01;>14<@89n7E?<9:k2e?6=3`;i6=44i2294?=h9921<75rbgf94?2=83:p(<=7:508L45b3A;856g>a;29?l7e2900e>>50;9l55>=831vnkk50;694?6|,89369<4H01f?M7412c:m7>5;h3a>5<o6i3:17d?m:188m66=831d==650;9~f467290?6=4?{%30389j5d<722c:n7>5;h13>5<39876>N6;l1C=>74i0c94?=n9k0;66g<0;29?j7703:17pl>0383>1<729q/=>65439K56c<@8927d?n:188m4d=831b?=4?::m24=<722wi===50;694?6|,89369<4H01f?M7412c:m7>5;h3a>5<"3l3:0en4?:583>5}#9:218>5G12g8L45>3->o6=5f1`83>>o483:17d??9;29?j7703:17pl=d;290?6=8r.:?54;3:J27`=O9:30(9j50:k2e?6=3`9;6=44i02:>5<5<3290;w)?<8;60?M74m2B:?45+4e83?l7f2900e>>50;9j55?=831d==650;9~f7`=83>1<7>t$01;>15<@89n7E?<9:&7`?6>o6800;66a>0983>>{e9>o1<7:50;2x 45?2=;0D<=j;I30=>"3l3:0e5;n335}#9:218<5G12g8L45>3->o6=5f1`83>>o6j3:17d=?:188k46?2900qo?70;290?6=8r.:?54;1:J27`=O9:30(9j50:k2e?6=3`;i6=44i2294?=h9921<75rb0:2>5<3290;w)?<8;62?M74m2B:?45+4e83?l7f2900e1<7>t$01;>17<@89n7E?<9:&7`?6>o483:17b??8;29?xd60:0;694?:1y'56>=<81C=>k4H01:?!2c291b=l4?::k2f?6=3`9;6=44o02;>5<54;294~"6;10?=6F>3d9K56?<,=n1<6g>a;29?l7e2900e>>50;9l55>=831vn<6::187>5<7s-;847:>;I30a>N6;01/8i4?;h3b>5<>i6810;66sm6183>6<729q/=>65419K56c<@8927d?n:188m66=831d==650;9~f37=8391<7>t$01;>16<@89n7E?<9:k2e?6=3`9;6=44o02;>5<6=4<:183!7403>;7E?5<o6i3:17d=?:188k46?2900qo86:180>5<7s-;847:?;I30a>N6;01b=l4?::k04?6=3f;;47>5;|`5e?6=;3:139874>N6;l1C=>74i0c94?=n;90;66a>0983>>{e>k0;6>4?:1y'56>=<91C=>k4H01:?l7f2900e>>50;9l55>=831vn;m50;194?6|,89369>4H01f?M7412c:m7>5;h13>5<5<4290;w)?<8;63?M74m2B:?45f1`83>>o483:17b??8;29?xd1;3:1?7>50z&27=<382B:?h5G12;8m4g=831b?=4?::m24=<722wi:94?:283>5}#9:218=5G12g8L45>3`;j6=44i2294?=h9921<75rb8`94?2=83:p(<=7:c58L45b3A;856g;8;29?l2>2900e<<;:188kab=831vnl=50;694?6|,8936o<4H01f?M7412.?h7=:;h6;>5<>icl3:17pl6f;290?6=8r.:?54m2:J27`=O9:30(9j5349j0=<722c?57>5;h6b>5<2900e<<;:188kab=831vnl<50;694?6|,8936o<4H01f?M7412.?h7=:;h6;>5<>icl3:17pl6e;290?6=8r.:?54m2:J27`=O9:30(9j5349j0=<722c?57>5;h6b>5<2900e<<;:188kab=831vnl?50;694?6|,8936o<4H01f?M7412.?h7=:;h6;>5<>icl3:17pl6d;290?6=8r.:?54m2:J27`=O9:30(9j5349j0=<722c?57>5;h6b>5<2900e<<;:188kab=831vnl>50;694?6|,8936o<4H01f?M7412.?h7=:;h6;>5<>icl3:17pl6c;290?6=8r.:?54m2:J27`=O9:30(9j5349j0=<722c?57>5;h6b>5<c;29?l562900e<<;:188kab=831vnnk50;194?6|,8936<=k;I30a>N6;01b=n4?::kbg?6=3fno6=44}ca3>5<3290;w)?<8;`5?M74m2B:?45f1b83>>o493:17d?=4;29?jbc2900qomi:180>5<7s-;847?5;|``6?6=<3:1398a2>N6;l1C=>74i0a94?=n;80;66g>2583>>icl3:17plk0;297?6=8r.:?54>3e9K56c<@8927d?l:188mde=831dhi4?::ag1<72=0;6=u+12:9f3=O9:o0D<=6;h3`>5<6<729q/=>6512f8L45b3A;856g>c;29?lgd2900cij50;9~ff0=83>1<7>t$01;>g0<@89n7E?<9:k2g?6=3`9:6=44i007>5<>ofk3:17bjk:188yge?290?6=4?{%30389j5f<722c8=7>5;h310?6=3fno6=44}cf0>5<4290;w)?<8;30`>N6;l1C=>74i0a94?=nij0;66akd;29?xddi3:187>50z&27=2B:?h5G12;8m4e=831b?<4?::k261<722eoh7>5;|`g0?6=;3:139827a=O9:o0D<=6;h3`>5<>{el<0;6>4?:1y'56>=9:n0D<=j;I30=>o6k3:17dol:188kab=831vn;j50;694?6|,8936o84H01f?M7412c:o7>5;h12>5<5<7s-;847l9;I30a>N6;01b=n4?::k05?6=3`;987>5;nfg>5<3d9K56?>icl3:17pl84;290?6=8r.:?54m6:J27`=O9:30e94?::mg`?6=3th3o7>53;294~"6;10:?i5G12g8L45>3`;h6=44i`a94?=hlm0;66sm7783>1<729q/=>65b79K56c<@8927d?l:188m67=831b=?:50;9l`a<722wi4i4?:283>5}#9:21=>j4H01f?M7412c:o7>5;hc`>5<c;29?l562900e<<;:188kab=831vn5k50;194?6|,8936<=k;I30a>N6;01b=n4?::kbg?6=3fno6=44}c5b>5<3290;w)?<8;`5?M74m2B:?45f1b83>>o493:17d?=4;29?jbc2900qo6i:180>5<7s-;847?5;|`4g?6=<3:1398a2>N6;l1C=>74i0a94?=n;80;66g>2583>>icl3:17pl60;297?6=8r.:?54>3e9K56c<@8927d?l:188mde=831dhi4?::a3`<72=0;6=u+12:9f3=O9:o0D<=6;h3`>5<6<729q/=>6512f8L45b3A;856g>c;29?lgd2900cij50;9~f=6=83>1<7>t$01;>g0<@89n7E?<9:k2g?6=3`9:6=44i007>5<>ofk3:17bjk:188yg>5290?6=4?{%30389j5f<722c8=7>5;h310?6=3fno6=44}c;0>5<4290;w)?<8;30`>N6;l1C=>74i0a94?=nij0;66akd;29?xd1m3:187>50z&27=2B:?h5G12;8m4e=831b?<4?::k261<722eoh7>5;|`;3?6=;3:139827a=O9:o0D<=6;h3`>5<>{e?90;694?:1y'56>=j?1C=>k4H01:?l7d2900e>?50;9j572=831dhi4?::a<=<72:0;6=u+12:956b<@89n7E?<9:k2g?6=3`kh6=44oef94?=zj131<7=50;2x 45?289o7E?5<7s-;847l?;I30a>N6;01/8i4j;h6;>5<>{e1?0;6>4?:1y'56>=j91C=>k4H01:?!2c2::0e9650;9j0<<722eoh7>5;|`:1?6=;3:1398a4>N6;l1C=>74$5f975=n<10;66g;9;29?jbc2900qo7;:180>5<7s-;847l?;I30a>N6;01/8i4<4:k726=44oef94?=zjkh1<7=50;2x 45?2k:0D<=j;I30=>"3l3k0e9650;9j0<<722eoh7>5;|`ag?6=<3:1398a6>N6;l1C=>74$5f9`>o303:17d:6:188m1g=831dhi4?::af`<72=0;6=u+12:9f7=O9:o0D<=6;%6g>a=n<10;66g;9;29?l2f2900cij50;9~fd>=83?1<7>t$01;>g2<@89n7E?<9:&7`?>>o3i3:17d:m:188kab=831vnl850;794?6|,8936o:4H01f?M7412.?h7??;h6;>5<>o3j3:17bjk:188yggf290>6=4?{%30389'0a<13`>36=44i5;94?=n5<7s-;847l;;I30a>N6;01/8i4m;h6;>5<>o3j3:17bjk:188ygg2290>6=4?{%30389'0a<4>2c?47>5;h6:>5<>icl3:17pln7;291?6=8r.:?54m4:J27`=O9:30(9j5149j0=<722c?57>5;h6b>5<>{ei=0;684?:1y'56>=j=1C=>k4H01:?!2c2>1b854?::k7=?6=3`>j6=44i5`94?=hlm0;66smeg83>0<729q/=>65b59K56c<@8927):k:29j0=<722c?57>5;h6b>5<>{e;:0;6?4?:1y'56>=k4H01:?l202900cij50;9~f45029096=4?{%30389j02<722eoh7>5;|`273<72;0;6=u+12:9``=O9:o0D<=6;h64>5<5<5290;w)?<8;ff?M74m2B:?45f4683>>icl3:17pl>3583>7<729q/=>65dd9K56c<@8927d:8:188kab=831vn<=<:181>5<7s-;847jj;I30a>N6;01b8:4?::mg`?6=3th:??4?:383>5}#9:21hh5G12g8L45>3`><6=44oef94?=zj89:6=4=:183!7403nn7E?0;66akd;29?xd6;90;6?4?:1y'56>=ll1C=>k4H01:?l202900cij50;9~f6`=8381<7>t$01;>ac<@89n7E?<9:k73?6=3fno6=44}c1f>5<5290;w)?<8;ff?M74m2B:?45f4683>>icl3:17pl5}#9:21hh5G12g8L45>3`><6=44oef94?=zj8=>6=4=:183!7403nn7E?0;66akd;29?xd6?=0;6?4?:1y'56>=ll1C=>k4H01:?l202900cij50;9~f41429096=4?{%30389j02<722eoh7>5;|`237<72;0;6=u+12:9``=O9:o0D<=6;h64>5<5<5290;w)?<8;ff?M74m2B:?45f4683>>icl3:17pl>7183>7<729q/=>65dd9K56c<@8927d:8:188kab=831vn<8i:181>5<7s-;847jj;I30a>N6;01b8:4?::mg`?6=3th::h4?:383>5}#9:21hh5G12g8L45>3`><6=44oef94?=zjj;1<7<50;2x 45?2hl0D<=j;I30=>"3l3?0e9650;9l`a<722wio>4?:383>5}#9:21mk5G12g8L45>3->o685f4983>>icl3:17pll5;296?6=8r.:?54nf:J27`=O9:30(9j55:k75<5290;w)?<8;ce?M74m2B:?45+4e86?l2?2900cij50;9~ff?=8381<7>t$01;>d`<@89n7E?<9:&7`?3>{ekk0;6?4?:1y'56>=io1C=>k4H01:?!2c2<1b854?::mg`?6=3th52;294~"6;10jj6F>3d9K56?<,=n196g;8;29?jbc2900qo9::181>5<7s-;847oi;I30a>N6;01/8i4:;h6;>5<=831dhi4?::a3<<72;0;6=u+12:9ec=O9:o0D<=6;%6g>0=n<10;66akd;29?xd0j3:1>7>50z&27=5;nfg>5<7d:7:188kab=831vn:h50;094?6|,8936lh4H01f?M7412.?h7;4i5:94?=hlm0;66sm8083>7<729q/=>65ag9K56c<@8927):k:49j0=<722eoh7>5;|`;7?6=:3:1398bb>N6;l1C=>74$5f91>o303:17bjk:188yg0a29096=4?{%30389'0a<23`>36=44oef94?=zj>;1<7<50;2x 45?2hl0D<=j;I30=>"3l3?0e9650;9l`a<722wih;4?:383>5}#9:21mk5G12g8L45>3->o685f4983>>icl3:17pl7a;296?6=8r.:?54nf:J27`=O9:30(9j55:k75<2290;w)?<8;`7?M74m2B:?45+4e8`?l2?2900e9750;9j0d<722c?n7>5;nfg>5<5<2290;w)?<8;`7?M74m2B:?45+4e80?l2?2900e9750;9j0d<722c?n7>5;nfg>5<0;66akd;29?xd5:3:1>7>50z&27=<602B:?h5G12;8m11=831dhi4?::aga<72;0;6=u+12:90`=O9:o0D<=6;h64>5<5<7s-;847:j;I30a>N6;01b8:4?::mg`?6=3thim7>52;294~"6;10?i6F>3d9K56?>{ej00;694?:1y'56>=j:1C=>k4H01:?!2c2o1b854?::k7=?6=3`>j6=44o`f94?=zjo91<7:50;2x 45?2k;0D<=j;I30=>"3l39?7d:7:188m1?=831dmi4?::mg`?6=3tho47>57;294~"6;10:>;5G12g8L45>3->o6<5f1283>>o6<3:17d?9:188m41=831b=i4?::k04?6=3f;;47>5;|`21f<72:0;6=u+12:901=O9:o0D<=6;%6g>1=n9h0;66g<0;29?j7703:17plk7;293?6=8r.:?54>279K56c<@8927):k:39j56<722c:87>5;h35>5<>o483:17b??8;29?xd6=<0;6>4?:1y'56>=<=1C=>k4H01:?!2c2=1b=l4?::k04?6=3f;;47>5;|q14?6=:rT9<63=3;64?xu593:1>vP=1:?16?203ty9>7>5ez?54?7f34<:6?0:m6397;3b?80?28k01;751`9>2d<6i27=n7?n;<4`>4g<5?81=l526282e>;1<3;j70<=:ef8yv4429098v3>5d82e>;6=o0:m63>6182e>;6>80:m63>6382e>;6>:0:m63>6582e>;b?3;j70k7:0c89`?=9h16il4>a:?ff?7f34oh65782e>;6=>0:m63>5982e>;6=00:m63>5`82e>;6=k0:m63>5e82e>;ak3;j70hk:0c89cc=9h16jk4>a:?245<6i27:<<4>a:?247<6i27:<>4>a:?17?bc348>6994=e:95a=:9;6=<0:m6s|2583>`}::k0:m63=c;3b?84c28k01?k51`9>6c<6i27:;h4>a:?23c<6i27:4=4>a:?2<4<6i27:4?4>a:?2<6<6i27:494>a:?2<0<6i27997jk;|q12?6=1r79n7??8:?af?2>34hh69o4=dd90<=:jm0?n63i1;6:?8`52=301oo5469>f<<3i2wx>:4?:7y>6f<68116no4;8:?ag?2?34ho69o4=c;90<=:n:0?46s|2983>2}::m0:<552bb87=>;bn3>j70lk:5;89c7=54z?1a?77027ii7:7;<`g>1><5o91845rs3c94?3|5;l1==64=cg90<=:mo0?463i1;6;?8`52=20q~==:181[5534986994}r10>5<5s4986ij4=e:975=z{:=1<7650;0xZ6><5:n1hi5rs2;94?4|V:301>k5de9~w6d=838pR>l4=2d9`a=z{:i1<77}:1<0oh63v366;fg?85b2==0q~=i:1818?02mn01>h5469~w1`=832p1465de9>e=<3127j:7:m;1d<5h318l52a487<>;f?3>j70o;:5:8yv372903w076:ef89d>=0?463n4;6:?xu293:14v36a;fg?8g?2=k01l854`9>ed<3i27j57:m;1?<5h=18o52a587e>{t=;0;65u29c8g`>;f03>370o9:5;89dg=<016m44;8:?b1?2e34k<6974=`690g=z{<91<7<51?18:5rs4594?4|5?;1==64=6190==z{<>1<7<5?l1855rs4794?c|5?91==64=8a90==:i90?4636d;6;?8g62=2014k5499>e7<30272j7:7;1><50=185529787=>;>=3>3707;:5:8927=<11v8850;cx932=9920146513689014o51368901495489>=3<3027297:6;<;7>1?<51k1855rs4:94?4|5??1==64=6790==z{<31<7<5>=1855rs4c94?4|5?=1==64=6;90==z{<5>h1855rs4a94?4|5?31==64=6f90==z{<5>l1855rs4g94?4|5?h1==64=9390==z{<5191855rs7f94?5|5?n1hi527382g>;?j3;h7p}9e;297~;1m3no709?:0a89=>=9j1v;h50;1x93`=lm16:h4>259><23544334236lm4}r51>5<4s4=96ij4=6695f=:0j0:o6s|7283>6}:?:0oh6382;310>;?j3kh7p}84;297~;0<3no7099:0a89=b=9j1v:;50;1x923=lm16;94>259>334eab<5><1=?:4=9f9ef=z{>21<7=t=6:9`a=:?h0:o637f;3`?xu013:1?v389;fg?81?288?706j:`a8yv1f2908w09n:ef892e=9j165=4>c:p3g<72:q6;o4kd:?4e?75<273j7ol;|q4g?6=;r74e<50;1=n5rs6f94?5|5>n1hi527b8261=:190jo6s|7d83>6}:?l0oh6370;3`?8?528i0q~9i:18081a2mn01:k513689<7=ij1v5>50;1x9=6=lm164?4>c:?:7?7d3ty3=7>53z?;5?bc342;6<<;;<;1>deab<5?o1=n528682g>{t0:0;6>u2828g`>;?:3;986363;c`?xu?<3:1?v39d;310>;?>3kh706::ef8yv>f2909w06n:ef89=?=ij1v4m50;0x93ty2i7>52z?:a?bc343j6974}r;e>5<5s43m6ij4=8`90<=z{h:1<77}:i80oh6369;6;?xuf:3:1>v3n2;fg?8?f2=20q~o<:1818g42mn014l5499~wg>=838p1ok54`9>f<fc4eab<5j81=n52d182g>{tk80;6>u2c08g`>;d83;9863lf;c`?xud:3:1?v3l2;fg?8e328i01i?51b9~wf5=839p1n=5de9>g7<6:=16h=4nc:pg1<72:q6o94kd:?`2?7d34n965<4s4i>6ij4=b69572<5m;1mn5rsb494?5|5j<1hi52c982g>;c;3;h7p}l7;297~;d?3no70m9:007?8b52hi0q~m7:1808e?2mn01no51b9>`1<6k2wxo44?:2y>g<52z?`e?bc34n>65<4s4ii6ij4=bc9572<5m>1mn5rsba94?5|5kl1=?:4=bg9ef=:km0oh6s|d783>7}:l?0oh63k5;c`?xuc?3:1>v3k7;33<>;6=<08<6s|d983>7}:l10:<55214a975=z{m31<7;t=063>46334hm6>?4=7f974=:l10:?63k7;37?xuci3:1?v3i1;6a?8`52=h01k=5de9~wad=838p1k=5ae9>ac<3j2wxhk4?:3y>a2<68116m=4;a:pa5<72;q6i54>099>e4<3i2wxi<4?:3y>a<<68116m?4;a:pa7<72;q6il4>099>e6<3i2wxi>4?:3y>ag<68116m=4;9:pa1<72;q6in4>099>e4<312wxi84?:3y>aa<68116m?4;9:pa3<72;q6ih4>099>e6<312wxik4?:7y>6g<68016>n4>089>6a<68016>h4>089>6c<68016ik4kd:pb5<728;p1k?5de9>bf<6j27mh7?m;4d<5ol1=o5211295g=:99;1=o5211095g=:9991=o52e682f>;b03;i70k6:0`89`g=9k16io4>b:?fg?7e34oo6o1=o5216d95g=:91:1=o5219395g=:9181=o5219195g=:91>1=o5219795g=z{o>1<7<50i18l5rsg794?4|5on1==64=8f90d=z{o<1<7<50o18l5rsg594?4|5ol1==64=8d90d=z{o21<746?343h6974}rd:>5<5s4;;=7??8:?:`?2>3tymm7>52z?247<681165h4;9:pbg<72;q6===511:89<`=<01v<>n:18184e2::01oo5de9~w46e2909w0?8e;13?8eb2mn0q~??c;296~;1839;7069:ef8yv77l3:1>v392;13?8>02mn0q~??e;296~;1;39;7067:ef8yv77n3:1>v394;13?8>>2mn0q~?>0;296~;5k39;70lm:ef8yv7693:1>v3>7g804>;dn3no7p}>1383>7}:>808<637b;fg?xu69:0;6?u22e804>;ek3no7p}>1583>7}:91:1?=52d18g`>{t98?1<7{t98=1<766<5m;1hi5rs03;>5<5s4<=6>>4=9f9`a=z{8;26=4={<0e>66<5ko1hi5rs03b>5<5s4;3>7=?;ab52z?53?57342n6ij4}r32g?6=:r7:4>4<0:?g7?bc3ty:=i4?:3y>2=<48273j7jk;|q25`<72;q6=5:5319>`1:18180f2::014?5de9~w4452909w08m:2289<4=lm1v<<<:18180d2::014=5de9~w4402909wS?=7:?275ab52z\26d=:9:91hi5rs00a>5<5sW;9n63>358g`>{t9;i1<72e83>7}Y9;n01<=9:ef8yv75n3:1>vP>2g9>561=lm1v<=?:1818g32mn01<=?:558yv7493:1>v3n5;fg?87493><7p}>3383>7}:i?0oh63>33873>{t9:91<75<5s4k36ij4=017>1152z?b=?bc34;897:8;|q273<72;q6ml4kd:?273<3?2wx=>950;3g874n3>>70li:0a89fc=9j16o=4<1:?`6?5634i?6>?4=b4974=:k108=63la;12?80c28i015851b9>37<4927<87=>;<55>67<5>21?<527`805>;0k39:709j:2389=6=;8164?4<1:?5a?5634=;6>?4=014>11<5m21=952d9822>;c03;<70j8:0189a1=9?16h:4>7:p513=839p1<;9:2289ce=;916=8;511:8yv73>3:1?v3>57824==:9<=1?=52fe804>{t9==1<7=t=074>46?34;>47=?;6653z?21=<68116=875319>bc<482wx=9750;1x943>28:370?:a;13?877839;7p}>4`83>6}:966<58::6>>4}r37f?6=;r7:9o4>099>50b=;916==<5319~w42c2908w0?:e;13?8c02::01<;l:02;?xu6<58:86>>4}r37a?6=;r7:9h4>099>50`=;916i54<0:p51`=839p1<;i:02;?871839;70k6:228yv7283:1?v3>61824==:9?;1?=52e`804>{t9<;1<7=t=042>46?34;=>7=?;66>7>53z?227<68116=;=5319>af<482wx=8=50;1x940428:370?94;13?8cc2::0q~?:4;297~;6>=0:<552ed804>;c?39;7p}>6483>7}Y9??01<8j:ef8yv71>3:1>vP>679>53`=lm1v<88:181[71?27:;=4kd:p53>=838pR<87;<345?bc3ty::44?:3y]53?<58=96ij4}r35e?6=:rT::l521619`a=z{8;6?=0oh6s|17f94?4|V8u216g955><585=6=99201<9?:5589f5=<11v<96:18087?93;;463>70873>;d=3>37p}>7`83>6}:9181==64=051>11<5j=1855rs05a>5<4s4;3?7??8:?236<3?27h57:7;|q23f<72:q6=5:511:894132==01nl5499~w41c2908w0?75;33<>;6?<0?;63k6;6;?x{i;8h1<7?tH01:?xh49j0;6389~j67b290:wE?<9:m74`=83;pD<=6;|l065<728qC=>74}o115?6=9rB:?45rn201>5<6sA;856sa33194?7|@8927p`<2583>4}O9:30qc==5;295~N6;01vb><9:182M7412we??950;3xL45>3td8>54?:0yK56?51zJ27<=zf:8j6=4>{I30=>{i;;h1<7?tH01:?xh4:j0;6389~j64b290:wE?<9:m77`=83;pD<=6;|l075<728qC=>74}o105?6=9rB:?45rn211>5<6sA;856sa32194?7|@8927p`<3583>4}O9:30qc=<5;295~N6;01vb>=9:182M7412we?>950;3xL45>3td8?54?:0yK56?51zJ27<=zf:9j6=4>{I30=>{i;:h1<7?tH01:?xh4;j0;6389~j65b290:wE?<9:m76`=83;pD<=6;|l005<728qC=>74}o175?6=9rB:?45rn261>5<6sA;856sa35194?7|@8927p`<4583>4}O9:30qc=;5;295~N6;01vb>:9:182M7412we?9950;3xL45>3td8854?:0yK56?51zJ27<=zf:>j6=4>{I30=>{i;=h1<7?tH01:?xh4389~j62b290:wE?<9:m71`=83;pD<=6;|l015<728qC=>74}o165?6=9rB:?45rn271>5<6sA;856sa34194?7|@8927p`<5583>4}O9:30qc=:5;295~N6;01vb>;9:182M7412we?8950;3xL45>3td8954?:0yK56?57>51zJ27<=zf:?j6=4>{I30=>{i;389~j63b290:wE?<9:m70`=83;pD<=6;|l025<728qC=>74}o155?6=9rB:?45rn241>5<6sA;856sa37194?7|@8927p`<6583>4}O9:30qc=95;295~N6;01vb>89:182M7412we?;950;3xL45>3td8:54?:0yK56?51zJ27<=zf:{I30=>{i;?h1<7?tH01:?xh4>j0;6389~j60b290:wE?<9:m73`=83;pD<=6;|l035<728qC=>74}o145?6=9rB:?45rn251>5<6sA;856sa36194?7|@8927p`<7583>4}O9:30qc=85;295~N6;01vb>99:182M7412we?:950;3xL45>3td8;54?:0yK56?51zJ27<=zf:=j6=4>{I30=>{i;>h1<7?tH01:?xh4?j0;6389~j61b290:wE?<9:m72`=83;pD<=6;|l0<5<728qC=>74}o1;5?6=9rB:?45rn2:1>5<6sA;856sa39194?7|@8927p`<8583>4}O9:30qc=75;295~N6;01vb>69:182M7412we?5950;3xL45>3td8454?:0yK56?51zJ27<=zf:2j6=4>{I30=>{i;1h1<7?tH01:?xh40j0;6389~j6>b290:wE?<9:m7=`=83;pD<=6;|l0=5<728qC=>74}o1:5?6=9rB:?45rn2;1>5<6sA;856sa38194?7|@8927p`<9583>4}O9:30qc=65;295~N6;01vb>79:182M7412we?4950;3xL45>3td8554?:0yK56?51zJ27<=zf:3j6=4>{I30=>{i;0h1<7?tH01:?xh41j0;6l3:1=vF>389~j6?b290:wE?<9:m7<`=83;pD<=6;|l0e5<728qC=>74}o1b5?6=9rB:?45rn2c1>5<6sA;856sa3`194?7|@8927p`4}O9:30qc=n5;295~N6;01vb>o9:182M7412we?l950;3xL45>3td8m54?:0yK56?51zJ27<=zf:kj6=4>{I30=>{i;hh1<7?tH01:?xh4ij0;6389~j6gb290:wE?<9:m7d`=83;pD<=6;|l0f5<728qC=>74}o1a5?6=9rB:?45rn2`1>5<6sA;856sa3c194?7|@8927p`4}O9:30qc=m5;295~N6;01vb>l9:182M7412we?o950;3xL45>3td8n54?:0yK56?51zJ27<=zf:hj6=4>{I30=>{i;kh1<7?tH01:?xh4jj0;6389~j6db290:wE?<9:m7g`=83;pD<=6;|l0g5<728qC=>74}o1`5?6=9rB:?45rn2a1>5<6sA;856sa3b194?7|@8927p`4}O9:30qc=l5;295~N6;01vb>m9:182M7412we?n950;3xL45>3td8o54?:0yK56?51zJ27<=zf:ij6=4>{I30=>{i;jh1<7?tH01:?xh4kj0;6389~j6eb290:wE?<9:m7f`=83;pD<=6;|l0`5<728qC=>74}o1g5?6=9rB:?45rn2f1>5<6sA;856sr}|BCG~2?j3lhm?9n11CDG}7uIJ[wpNO \ No newline at end of file Index: ps2_keyboard_interface/Keyboard_Controller.ngd =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.ngd (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.ngd (revision 2) @@ -0,0 +1,3 @@ +XILINX-XDB 0.1 STUB 0.1 ASCII +XILINX-XDM V1.6e +$0ff5=6>2.Yi{g|inl9$4(5<8$9"9.+1:27?567;=1;<=9;;12;44=6<28:8<:42931g>5t:9:mx?;9-468013D9<1?6B[[PTV9Akgedly7?7>11:47?362<=1=MLO=;7A2?24<09>04=M=179;>JSSX\^1_hibeovp82<768?047AZTQWW>utb{zoo0:4?>09B6>G7:2K:86O>1908E74DRNN?0NXHHP028FPOKLV^J^JK[ASAK<>DR[VCEJB?4C39@A7=DA<1HGO[I3:AOO3=DDBDDX<;4CMM@OZBBL@IJXHJPRNWWA6=DD[30OBCBIUVF@2=DZLK_II=4Cmi7?Fjl:h1H`f3:d=Dg|di2>>`9@kphsm{692l5Lotlwaw:46h1Hcx`{es>7:<=Dg|diQ?9:AlqkrbzV;27Naznugq[7?BNm2NYOR]ZCBGPWCSK>2NjxlGab:FbpdOiW@H^J<5J3:G276=B9=80I9:4E56;<>C_XHDOII?>;DZSEKBBLVHHHRHFLD37?@^WIGNNHRM@NRVQELHS[8;0IU^NNEGG[LUBWOCGIl5Jn``oav:76h1Nbllcer>2:d=Bfhhgi~2=>b9Fjddkmz686=0n;Dlbfict4:4n7H`nbmgp[5YHJ\Ln7H`nbmgp[4YHJ\Ln7H`nbmgp[7YHJ\Ln7H`nbmgp[6YHJ\L87K?<3:D200=AIEYN>6HK3:DGA0=ALLU:?6HKR59E@Z753OL87KH\8:DQKHYRKO;0K>5H1218C4243NDO=6G=;H21?L753@897D=;;H@VB0=NJ\LL>6GA3:KME6=NFK20ECHJRSGG=>OIA]Y_MYK<;HLUa>OIWGMOSL@K_CAG2>OHKFG[:6G@TXRF5g=Nfz~T_hxjnRgdi`hs'Jbdh`30?3a?Lht|VYnzh`\efofjq)D`fynb1?11c9JjvrX[l|nb^khmdlw+Fnh{ld7>3?m;HlppZUb~ldXijcjnu-@ljubf595=n5Fnrv\W`pbfZolah`{/Bmvjqcu494:h6Gasu]Pasci[lmficz Cnwmp`t;994:h6Gasu]Pasci[lmficz Cnwmp`t;984:h6Gasu]Pasci[lmficz Cnwmp`t;9;4:o6Gasu]Pasci[lmficz Cnwmp`t;97;h7D`|t^Qfr`hTmngnby!Lotlwaw:568i0Ec}{_RguakUbodoex"M`uovfv9599j1Bb~zPSdtfjVc`eld#Naznugq8186k2CeyQ\ewgmW`ajmg~$Ob{atdp?1;7d3@dxxR]jvdlPabkbf}%Hcx`{es>5:4eOi{}UXi{kaSdenakr(Kfexh|39?3a?Lht|VYnzh`\efofjq)Dg|diQ?1c9JjvrX[l|nb^khmdlw+Firf}oySOi{}UXi{kaSdenakr(Kfexh|P60`8MkusWZo}ic]jglgmp*Eh}g~n~R9>b:KmwqYTmoe_hibeov,Gjsi|lxT42CeyQ\ewgmW`ajmg~$Anaznu]@kphsm{Uhu1<1289JjvrX[l|nb^khmdlw+Heh}g~TOb{atdp\g|:56Vx>;5Fnrv\W`pbfZolah`{/LalqkrXKfexh|Pcx>0:7?Oi{}UXi{kaSdenakr(Eje~byQLotlwawYdq535Sz=7:KmwqYTmoe_hibeov,Ifirf}UHcx`{es]oqq:76;n0Ec}{_RguakUbodoex"Clotlw[Firf}oySa{{<1<\MKPX8;=0Ec}{_RguakUbodoex"Clotlw[Firf}oySua}<1<1<>Oi{}UXi{kaSdenakr(Eje~byQLotlwawYg{6:<3<7;HlppZUb~ldXijcjnu-Ngjsi|VIdyczjr^zlv9766;20Ec}{_RguakUbodoex"Clotlw[Firf}oySua}<00=6g=Nfz~T_hxjnRgdi`hs'DidyczPCnwmp`tXpfx7=?0Pru04?Lht|VYnzh`\efofjq)JkfexRM`uovfvZ~hz5;5>:5Fnrv\W`pbfZolah`{/LalqkrXKfexh|Pxnp?6;403@dxxR]jvdlPabkbf}%Fob{at^AlqkrbzVrd~1=1269JjvrX[l|nb^khmdlw+Heh}g~TOb{atdp\|jt;<78<7D`|t^Qfr`hTmngnby!BcnwmpZEh}g~n~Rv`r=7=62=Nfz~T_hxjnRgdi`hs'DidyczPCnwmp`tXpfx7:3<8;HlppZUb~ldXijcjnu-Ngjsi|VIdyczjr^zlv919:>1Bb~zPSdtfjVc`eld#@m`uov\Gjsi|lxTtb|38?04?Lht|VYnzh`\efofjq)JkfexRM`uovfvZ~hz535>?5Fnrv\W`pbfZolah`{/LffgjbXMgki`h}?1308MkusWZo}ic]jglgmp*KcmjeoSH`nbmgp54453@dxxR]jvdlPabkbf}%Fhhm`d^Gmegjb{;;9>6Gasu]Pasci[lmficz Meg`kaYBfhhgi~=>239JjvrX[l|nb^khmdlw+HkrpVIcc~ka_3]e17295Fnrv\W`pbfZolah`{/Lov|ZEogzoeS?Qi5^310>Oi{}UXi{kaSdenakr(EdsSNf`sdl\6Z`2W;;m7D`|t^Qfr`hTmngnby!Bmtz\GmitmgU8>=5Fnrv\W`pbfZolah`{/Lov|ZEogzoeS>?=0:KmwqYTmoe_hibeov,IhsWJbdh`P3303?Lht|VYnzh`\efofjq)Je|rTOea|eo]074`?>4Ioqw[VcqmgYnk`kat.Onq}YD`fynbR:<209JjvrX[l|nb^khmdlw+HtheVYnk`katr3267=Nfz~T_hxjnRgdi`hs'DxdaR]jglgmpv769;;0Ec}{_RguakUbodoex"C}ol]Pabkbf}y9=??4Ioqw[VcqmgYnk`kat.OqkhYTmngnby}<1338MkusWZo}ic]jglgmp*KugdUXijcjnuq75775D1330?Nc~jfkyhRM`nuplhicu;2F:>?5CI69OMGTFZP<0@BOKEE18HJE?3EEHMALZF69OKBODIE>0@XZ>4:NVP70JR\:UG86BZT558I+17lVF87@?:3:O226=J]Q?0AXVLY49NQ]@2k2Gjfb|Yesqjkk733DidyczPCnwmp`tXkp692<84MbmvjqYDg|diQly=0=54463DidyczPCnwmp`tXkp69203,K4b7:O`kphsWJe~byk}_ymq878698=0Anaznu]@kphsm{Usc2<>0323>Kdg|dSNaznugq[}iu4=4:=<:4MbmvjqYwzlyxi~Qly=2=51=JkfexR~}erqfwZe~484:;6Clotlw[utb{zoxSnw31?]qp427:Zts9=1Fob{at^rqavub{Vir080>7:O`kphsWyxn~k|_b{?1;Yu|8>0Anaznu]sv`utmzUhu181169Ngjsi|Vzyi~}js^az838Xz};>7@m`uov\twct{lyT`xz30?3a?Heh}g~T|k|sdq\hpr;87UBB[Q?149Ngjsi|Vzyi~}js^zlv9699<1Fob{at^rqavub{Vrd~1?1149Ngjsi|Vzyi~}js^zlv9499<1Fob{at^rqavub{Vrd~1=1149Ngjsi|Vzyi~}js^zlv9299<1Fob{at^rqavub{Vrd~1;1149Ngjsi|Vzyi~}js^zlv9099<1Fob{at^rqavub{Vrd~191199Ngjsi|Vzyi~}js^zlv919W{~h7@gaosTfvvohfl1Fe|jg^fbpdY6;m1Fe|jg^fbpdY5:2D:?6@>229M515<3Ir|KsiIr|Ksim6AztC{wa4Y1i2E~xOw{e0]456=H}}Hrxh?Pclr\at6789;?7B{{Bxvf5ZejxVoz<=>?1078KprEq}o:Snc_ds3456X98?0CxzMyug2[fkwWl{;<=>P2058KprEq}o:Snc_ds3456X[^:9>6AztC{wa4YdeyUn}=>?0^QT4*JR\;UOSO[Ib:MvpGsm;6;2o5@uu@zp`4;97h0CxzMyug1878e3FNtzj2=1=f>Ir|Ksi?2;>c9LqqD~|l8793l4OtvA}qc54?4i7B{{Bxvf6919i2E~xOw{e3]3e>Ir|Ksi?Q>a:MvpGsm;U9m6AztC{wa7Y4i2E~xOw{e3]7e>Ir|Ksi?Q:a:MvpGsm;U=m6AztC{wa7Y092Z87]?>3:R266=W9:90\<:<;Q367>VFL=1[M_Zn;QKM[GSTAMRi7]GA_CWPJDKBj2ZBBRG\CMM@O6=WZLk0\_KKEGKMAA7TT\01Yi~{ct=2=e>Tb{|f0=0>a:Pfwpjs4949m6\jstnw8469i2Xnxb{<03=e>Tb{|f0<<19:Pfwpjs484j7_k|umv?5;7f3[oxyaz31?0:?Wct}e~7>3o4Rdqvhq:568k0^h}zlu>1:7?`9Qavsk|595=l5]erwop959:01Yi~{ct=6=e>Tb{|f090>a:Pfwpjs4=4956\jstnw808f3[oxyaz35?3:?Wct}e~7:3o4Rdqvhq:16830^h}zlu>4:d=Umzgx191189Qavsk|52556\jstnw8<863Z90_HB<;RGW7>UAN?1X^A?9E69PVI71W8=0__BL17G7?VTT\=1X_HZm;Rgdi`hs{5:5n6]jglgmpv:66k1Xijcjnuq?6;d<[lmficz|<22o5\efofjqu;>7n0_hibeovp82<76k1Xijcjnuq?3;`<[lmficz|_1]LFP@a3Zolah`{s^3\KGSAn2Ynk`katr]1[JDRNo1Xijcjnuq\7ZIE]Ol0_hibeovp[1YHJ\Lm7^khmdlwwZ3XGK_Mj6]jglgmpvY1WFH^Jk5\efofjquX?VEIYK<4T8:8P@TJAGKG:6ZFENDE0>R^XL<0YC[\EEa8QVCUW_CXEOBJ3:T@G<=QAL]TXT^J4:Z3]57c3QCGECV"XE@#4+7'[]_I,= > @Q@ML57UA]CX48\VRKAK=0T^ZPGOF4?]USW_IH:6Vkb^Kgf>^c`VZye`Gkxc9[`mYWz`gBb{m4Xej\Twoj\pznj6Vkh^RqmhPbzzcdb<>4Xeo\Idlhz_oydaa119[`hYJageyZh||inl0?]us<2PN^B64d`vb845902njxl2>4?:8`drf48?546jnt`>22;>bf|h69<394d`vb87803mkm1=17:fbpd:36>1omyo35?58`drf4?4<7io{a=5=3>bf|h632:5kauc?=;1569geqgX9?=0hlzn_054?agsiV;3;6jnt`]2=3=ci}kT>:5kauc\65084d`vb[10vumzynh1?1a:rqavubl585m6~}erqf`959i2zyi~}jd=6=e>vumzynh1;1a:rqavubl5<5o6~}erqf`91=87k0|k|sdf?3;c7k0|k|sdq?3;?3yxn~k|_2;8twct{lyT845rdqpavY212zyi~}js^4:?utb{zoxS:64sqcqpdh402rb`d`wuo3;?}jipVk~xbQ?_yfa+fus&qhhhpNOp4`:?EFko0M694>{R0b>4?02mn1=>;o3:2?0<,83;6<6n;|Q1=?7>?3no6<==b971>63b0l1Xh>4>b882>455j1?96>;j909P6<<6j00:6<==b971>63b1;1ook4?:082V4f283<6ij5120a<04=;f;3gf>N4m2|_8;4?:082>g`|[;k1=495de8277d?=;089h6m;%3;s68<0;7p*>3g8:?!2>291/8:4>de9'0=<1n2hhj7>5168``?d>sA;3:6*>858`b>\5839p=>4m:069yl4e2900e?m50;9j7c<722e:;54?:%375?70?2d:8=4?;:m233<72-;?=7?87:l205<632e:;84?:%375?70?2d:8=4=;:m231<72-;?=7?87:l205<432e:;>4?:%375?70?2d:8=4;;:m237<72-;?=7?87:l205<232e:;<4?:%375?70?2d:8=49;:m235<72-;?=7?87:l205<032e?i7>5$062>1b;6=54o5a94?"6<80?h6`>4182?>i3j3:1(<:>:5f8j4272;10c9o50;&204<3l2d:8=4<;:m2g7<72-;?=7?l1:l205<732e:o=4?:%375?7d92d:8=4>;:m2fc<72-;?=7?l1:l205<532e:nh4?:%375?7d92d:8=4<;:m2fa<72-;?=7?l1:l205<332e:nn4?:%375?7d92d:8=4:;:m2fg<72-;?=7?l1:l205<132e:nl4?:%375?7d92d:8=48;:`2<`<7280;6=u+196924=O91n0D<69;%3:7?7>02.o>7?kc:m6a?6=,8386;:a5=`=83;1<7>t$0:7>4>03A;3h6F>879'5<5=98:0(i<51ea8k45?290/=4=51038?xd6j;0;6;4?:1y'5=2==h1C=5j4H0:5?!0c2?1/=4=55c9K51?<,m81=im4i3394?"61:0996F>9398m6d=83.:5>499:9l513=83.:5>4>1098m74=83.:5>4=2:9j515=83.:5>4>6898m7>=83.:5>4>4b98yg7e;3:1:7>50z&2<1<2i2B:4i5G1948 3b=>2.:5>4:b:J20<=#l;0:hn5f2083>!7>;38>7E?62:9j7g<72-;2?786;:m200<72-;2?7?>1:9j67<72-;2?7<=;:k206<72-;2?7?99:9j6=<72-;2?7?;c:9~f4d3290=6=4?{%3;0?3f3A;3h6F>879'2a<13-;2?7;m;I37=>"c:3;oo6g=1;29 4?42;?0D<7=;:k0f?6=,8386;74;n371?6=,8386;:k16?6=,8386?<4;h377?6=,8386<86;:k1t$0:7>0g<@82o7E?76:&5`?0<,83868l4H06:?!b528nh7d<>:18'5<5=:<1C=4<4;h1a>5<#9091:454o066>5<#9091=5<#9091>?54i060>5<#9091=;74;h0;>5<#9091=9m4;|`2f3<72?0;6=u+19691d=O91n0D<69;%4g>3=#90919o5G15;8 a4=9mi0e??50;&2=6<5=2B:5?54i2`94?"61:0=565`15794?"61:0:=<54i3094?"61:09>65f15194?"61:0::454i3:94?"61:0:8n54}c3a3?6=>3:18586e>N60m1C=584$7f92>"61:0>n6F>489'`7<6lj1b><4?:%3:7?423A;2>65f3c83>!7>;3<276a>4483>!7>;3;:=65f2383>!7>;38976g>4283>!7>;3;=565f2983>!7>;3;?o65rb0`;>5<1290;w)?74;7b?M7?l2B:4;5+6e85?!7>;3?i7E?;9:&g6?7ck2c9=7>5$0;0>73<@83976gh76sm10c94?0=83:p(<6;:4:8L4>c3A;3:6*>9286f>"1l380D<:6;%f1>4bd3`8:6=4+181960=O90807d<=:18'5<5=:;10e>l50;&2=6<1121d=9;50;&2=6<69810e<:<:18'5<5=9?307d<7:18'5<5=9=i07pl>1c83>3<729q/=5:5599K5=b<@82=7)?63;7a?!0c2;1C=974$e095ae92811>N61;10e?<50;&2=6<5:21b?o4?:%3:7?0>32e:884?:%3:7?76921b=9=50;&2=6<6>010e?650;&2=6<6c;292?6=8r.:494:8:J2:21b>?4?:%3:7?4532c8n7>5$0;0>3?<3f;?97>5$0;0>47632c:8>4?:%3:7?71121b>54?:%3:7?73k21vn5<7s-;387;7;I3;`>N60?1/=4=55c9'2a<53A;?56*k2;3gg>o593:1(<7<:378L4?532c9>7>5$0;0>74<3`9i6=4+18192<=>6=4+1819547<3`;??7>5$0;0>40>32c947>5$0;0>42d32wi=2.:5>4:b:&5`?4<@8>27)j=:0f`?l46290/=4=5249K5<4<3`896=4+181967=9285=>=h9=?1<7*>928254=86=4+181953?<3`836=4+181951e<3th:=k4?:783>5}#91>1955G19f8L4>13-;2?7;m;%4g>7=O9=30(i<51ea8m77=83.:5>4=5:J2=7=92816>=n;k0;6)?63;4:?>i6<<0;6)?63;325>=n9=91<7*>92822<=92820f=56;294~"60=0>46F>8e9K5=0<,83868l4$7f96>N6<01/h?4>db9j64<72-;2?7<:;I3:6>=n:;0;6)?63;01?>o4j3:1(<7<:7;8?j73=3:1(<7<:032?>o6<:0;6)?63;35=>=n:10;6)?63;37g>=zj88:6=49:183!7?<3?37E?7d:J2<3=#90919o5+6e81?M7312.o>7?kc:k15?6=,8386?;4H0;1?>o5:3:1(<7<:308?l5e290/=4=56898k422290/=4=51038?l73;3:1(<7<:04:?>o503:1(<7<:06`?>{e9hk1<7850;2x 4>32"1l3<0(<7<:4`8L42>3-n965<#9091>85G1808?l5e290/=4=56898k422290/=4=51038?l45290/=4=52398m424290/=4=517;8?l4?290/=4=515a8?xd6ik0;6;4?:1y'5=2==h1C=5j4H0:5?!0c2?1/=4=55c9K51?<,m81=im4i3394?"61:0996F>9398m6d=83.:5>499:9l513=83.:5>4>1098m74=83.:5>4=2:9j515=83.:5>4>6898m7>=83.:5>4>4b98yg7fk3:1:7>50z&2<1<2i2B:4i5G1948 3b=>2.:5>4:b:J20<=#l;0:hn5f2083>!7>;38>7E?62:9j7g<72-;2?786;:m200<72-;2?7?>1:9j67<72-;2?7<=;:k206<72-;2?7?99:9j6=<72-;2?7?;c:9~f4gc290=6=4?{%3;0?3f3A;3h6F>879'2a<13-;2?7;m;I37=>"c:3;oo6g=1;29 4?42;?0D<7=;:k0f?6=,8386;74;n371?6=,8386;:k16?6=,8386?<4;h377?6=,8386<86;:k1t$0:7>0g<@82o7E?76:&5`?0<,83868l4H06:?!b528nh7d<>:18'5<5=:<1C=4<4;h1a>5<#9091:454o066>5<#9091=5<#9091>?54i060>5<#9091=;74;h0;>5<#9091=9m4;|`2ec<72?0;6=u+19691d=O91n0D<69;%4g>3=#90919o5G15;8 a4=9mi0e??50;&2=6<5=2B:5?54i2`94?"61:0=565`15794?"61:0:=<54i3094?"61:09>65f15194?"61:0::454i3:94?"61:0:8n54}c3a5?6=>3:18586e>N60m1C=584$7f92>"61:0>n6F>489'`7<6lj1b><4?:%3:7?423A;2>65f3c83>!7>;3<276a>4483>!7>;3;:=65f2383>!7>;38976g>4283>!7>;3;=565f2983>!7>;3;?o65rb013>5<1290;w)?74;7;?M7?l2B:4;5+18191g=#>m097E?;9:&g6?7ck2c9=7>5$0;0>73<@83976g=2;29 4?42;807d=m:18'5<5=>010c<:::18'5<5=98;07d?;3;29 4?428<276g=8;29 4?428>h76sm12394?0=83:p(<6;:4:8L4>c3A;3:6*>9286f>"1l380D<:6;%f1>4bd3`8:6=4+181960=O90807d<=:18'5<5=:;10e>l50;&2=6<1121d=9;50;&2=6<69810e<:<:18'5<5=9?307d<7:18'5<5=9=i07pl>3383>3<729q/=5:5599K5=b<@82=7)?63;7a?!0c2;1C=974$e095ae92811>N61;10e?<50;&2=6<5:21b?o4?:%3:7?0>32e:884?:%3:7?76921b=9=50;&2=6<6>010e?650;&2=6<6:21b>?4?:%3:7?4532c8n7>5$0;0>3?<3f;?97>5$0;0>47632c:8>4?:%3:7?71121b>54?:%3:7?73k21vn<=;:185>5<7s-;387;7;I3;`>N60?1/=4=55c9'2a<53A;?56*k2;3gg>o593:1(<7<:378L4?532c9>7>5$0;0>74<3`9i6=4+18192<=>6=4+1819547<3`;??7>5$0;0>40>32c947>5$0;0>42d32wi=>;50;494?6|,82?6864H0:g?M7?>2.:5>4:b:&5`?4<@8>27)j=:0f`?l46290/=4=5249K5<4<3`896=4+181967=9285=>=h9=?1<7*>928254=86=4+181953?<3`836=4+181951e<3th:?;4?:783>5}#91>1955G19f8L4>13-;2?7;m;%4g>7=O9=30(i<51ea8m77=83.:5>4=5:J2=7=92816>=n;k0;6)?63;4:?>i6<<0;6)?63;325>=n9=91<7*>92822<=92820f=56;294~"60=0>46F>8e9K5=0<,83868l4$7f96>N6<01/h?4>db9j64<72-;2?7<:;I3:6>=n:;0;6)?63;01?>o4j3:1(<7<:7;8?j73=3:1(<7<:032?>o6<:0;6)?63;35=>=n:10;6)?63;37g>=zj:<1<7650;2x 4>32<30D<6k;I3;2>"1l380(<7<:04b?M7312.o>7?kc:k15?6=,8386?;4;h1a>5<#9091:454i064>5<#9091=;k4;n371?6=,8386;:k16?6=,8386?<4;h35=?6=,8386<86;I3;1>=n9=i1<7*>92820f=O91?07d?97;29 4?428=<729q/=5:5589K5=b<@82=7)8k:39'5<5=9?k0D<:6;%f1>4bd3`8:6=4+181960=9285=>=n9==1<7*>92822`=>6=4+1819547<3`896=4+181967=76g>4b83>!7>;3;?o6F>8498m400290/=4=517d8?xd403:147>50z&2<1<212B:4i5G1948 3b=:2.:5>4>6`9K51?<,m81=im4i3394?"61:09965f3c83>!7>;3<276g>4683>!7>;3;=i65`15794?"61:0:=<54i3094?"61:09>65f17;94?"61:0::45G1978?l73k3:1(<7<:06`?M7?=21b=;950;&2=6<6>o10qo=6:18;>5<7s-;387;6;I3;`>N60?1/:i4=;%3:7?71i2B:845+d382`f=n:80;6)?63;06?>o4j3:1(<7<:7;8?l73?3:1(<7<:04f?>i6<<0;6)?63;325>=n:;0;6)?63;01?>o6>00;6)?63;35=>N60<10e<:l:18'5<5=9=i0D<6:;:k222<72-;2?7?9f:9~f6g=8321<7>t$0:7>0?<@82o7E?76:&5`?4<,8386<8n;I37=>"c:3;oo6g=1;29 4?42;?07d=m:18'5<5=>010e<:8:18'5<5=9?o07b?;5;29 4?428;:76g=2;29 4?42;807d?99;29 4?428<27E?75:9j51e=83.:5>4>4b9K5=3<3`;=;7>5$0;0>40a32wi=i=50;494?6|,82?6894H0:g?M7?>2.=h7<4$0;0>0d<@8>27)j=:0f`?l46290/=4=52498m74=83.:5>4=2:9j7g<72-;2?786;:m200<72-;2?7?>1:9j515=83.:5>4>6898m7>=83.:5>4>4b98yg7c<3:1:7>50z&2<1<2?2B:4i5G1948 3b=:2.:5>4:b:J20<=#l;0:hn5f2083>!7>;38>76g=2;29 4?42;807d=m:18'5<5=>010c<:::18'5<5=98;07d?;3;29 4?428<276g=8;29 4?428>h76sm1e794?0=83:p(<6;:458L4>c3A;3:6*9d;08 4?424bd3`8:6=4+181960=92816>=n;k0;6)?63;4:?>i6<<0;6)?63;325>=n9=91<7*>92822<=92820f=56;294~"60=0>;6F>8e9K5=0<,?n1>6*>9286f>N6<01/h?4>db9j64<72-;2?7<:;:k16?6=,8386?<4;h1a>5<#9091:454o066>5<#9091=t$0:7>01<@82o7E?76:&5`?4<,83868l4H06:?!b528nh7d<>:18'5<5=:<10e?<50;&2=6<5:21b?o4?:%3:7?0>32e:884?:%3:7?76921b=9=50;&2=6<6>010e?650;&2=6<6o5:3:1(<7<:308?l5e290/=4=56898k422290/=4=51038?l73;3:1(<7<:04:?>o503:1(<7<:06`?>{e9m31<7850;2x 4>32<=0D<6k;I3;2>"1l380(<7<:4`8L42>3-n965<#9091>854i3094?"61:09>65f3c83>!7>;3<276a>4483>!7>;3;:=65f15194?"61:0::454i3:94?"61:0:8n54}c3ge?6=>3:185863>N60m1C=584$7f96>"61:0>n6F>489'`7<6lj1b><4?:%3:7?4232c9>7>5$0;0>74<3`9i6=4+18192<=>6=4+1819547<3`;??7>5$0;0>40>32c947>5$0;0>42d32wi4>4?:783>5}#91>19;5G19f8L4>13-;2?7;m;%4g>7=O9=30(i<51ea8m77=83.:5>4=5:9j7g<72-;2?786;:m200<72-;2?7?>1:9j67<72-;2?7<=;:k206<72-;2?7?99:9j6=<72-;2?7?;c:9~f=2=83<1<7>t$0:7>00<@82o7E?76:&2=6<2j2.=h7<4H06:?!b528nh7d<>:18'5<5=:<10e>l50;&2=6<1121d=9;50;&2=6<69810e?<50;&2=6<5:21b=9=50;&2=6<6>010e?650;&2=6<65<7s-;387;9;I3;`>N60?1/=4=55c9'2a<53A;?56*k2;3gg>o593:1(<7<:378?l5e290/=4=56898k422290/=4=51038?l45290/=4=52398m424290/=4=517;8?l4?290/=4=515a8?xd?13:1:7>50z&2<1<2>2B:4i5G1948 4?42!7>;38>76gh76sm8`83>3<729q/=5:5579K5=b<@82=7)?63;7a?!0c2;1C=974$e095ae92811>=n;k0;6)?63;4:?>i6<<0;6)?63;325>=n:;0;6)?63;01?>o6<:0;6)?63;35=>=n:10;6)?63;37g>=zj1h1<7850;2x 4>32<<0D<6k;I3;2>"61:0>n6*9d;08L42>3-n965<#9091>854i2`94?"61:0=565`15794?"61:0:=<54i3094?"61:09>65f15194?"61:0::454i3:94?"61:0:8n54}c:`>5<1290;w)?74;75?M7?l2B:4;5+18191g=#>m097E?;9:&g6?7ck2c9=7>5$0;0>73<3`9i6=4+18192<=>6=4+1819547<3`896=4+181967=86=4+181953?<3`836=4+181951e<3th3h7>56;294~"60=0>:6F>8e9K5=0<,83868l4$7f96>N6<01/h?4>db9j64<72-;2?7<:;:k0f?6=,8386;74;n371?6=,8386;:k16?6=,8386?<4;h377?6=,8386<86;:k132e:884?:%3:7?76921b>?4?:%3:7?4532c:8>4?:%3:7?71121b>54?:%3:7?73k21vn5h50;494?6|,82?6884H0:g?M7?>2.:5>4:b:&5`?4<@8>27)j=:0f`?l46290/=4=52498m6d=83.:5>499:9l513=83.:5>4>1098m74=83.:5>4=2:9j515=83.:5>4>6898m7>=83.:5>4>4b98yg>2290=6=4?{%3;0?313A;3h6F>879'5<5==k1/:i4=;I37=>"c:3;oo6g=1;29 4?42;?07d=m:18'5<5=>010c<:::18'5<5=98;07d<=:18'5<5=:;10e<:<:18'5<5=9?307d<7:18'5<5=9=i07pl76;292?6=8r.:494:6:J2o4j3:1(<7<:7;8?j73=3:1(<7<:032?>o5:3:1(<7<:308?l73;3:1(<7<:04:?>o503:1(<7<:06`?>{e0>0;6;4?:1y'5=2==?1C=5j4H0:5?!7>;3?i7)8k:39K51?<,m81=im4i3394?"61:09965f3c83>!7>;3<276a>4483>!7>;3;:=65f2383>!7>;38976g>4283>!7>;3;=565f2983>!7>;3;?o65rbcg94?2=83:p(<6;:d08L4>c3A;3:6*>928f4>"c:3;oo6g93;29 4?42?k07d8;:18'5<5=>k10e<88:18'5<5=9?207b??e;29 4?428;:76smc783>1<729q/=5:5d`9K5=b<@82=7)?63;37f>"c:3;oo6*9d;67?l04290/=4=51c9m5<7=821b:94?:%3:7?7e3g;2=7?4;h46>5<#9091=o5a18396>=h99o1<7*>928254=!7>;3;i7c?61;28?l03290/=4=51c9m5<7=921b:84?:%3:7?7e3g;2=7<4;n33a?6=,8386;:afa<72=0;6=u+1969a7=O91n0D<69;%3:7?c73-n965<#9091:l54i7694?"61:0=n65f17594?"61:0::554o02f>5<#9091=858ge>N60m1C=584$0;0>42e3-n96129282f>h6180;76g94;29 4?428h0b<7>:098m33=83.:5>4>b:l2=4<532e:2.:5>4>4c9'`7<6lj1/:i4;4:k57?6=,83865=1<7*>9282f>h6180:76g95;29 4?428h0b<7>:398k46b290/=4=51038?xdek3:187>50z&2<149a:9j21<72-;2?78m;:k222<72-;2?7?98:9l55c=83.:5>4>1098yge3290?6=4?{%3;0?bf3A;3h6F>879'5<5=9=h0(i<51ea8 3b=<=1b:>4?:%3:7?7e3g;2=7>4;h47>5<#9091=o5a18395>=n><0;6)?63;3a?k7>93807b??e;29 4?428;:76smc183>1<729q/=5:5d`9K5=b<@82=7)?63;37f>"c:3;oo6*9d;67?l04290/=4=51c9m5<7=821b:94?:%3:7?7e3g;2=7?4;h46>5<#9091=o5a18396>=h99o1<7*>928254=:0;6)?63;4b?>o1<3:1(<7<:7`8?l71?3:1(<7<:04;?>i68l0;6)?63;325>=zjj91<7:50;2x 4>32mk0D<6k;I3;2>"61:0:8o5+d382`f=#>m0?86g93;29 4?428h0b<7>:198m32=83.:5>4>b:l2=4<632c=97>5$0;0>4d5<#9091=858ge>N60m1C=584$0;0>42e3-n96129282f>h6180;76g94;29 4?428h0b<7>:098m33=83.:5>4>b:l2=4<532e:2.:5>4j0:&g6?7ck2c9?7>5$0;0>3d<3`9o6=4+18192d=<3f;;i7>5$0;0>47632wijn4?:283>5}#91>1=5m4H0:g?M7?>2.:5>4>8c9'`7<6lj1b>>4?:%3:7?0>32co=7>5$0;0>3?<3f;;i7>5$0;0>47632wiih4?:583>5}#91>1i<5G19f8L4>13-;2?7k?;%f1>4bd3`886=4+18192g=9285e>=n9?=1<7*>92822==53;294~"60=0:4n5G19f8L4>13-;2?7?7b:&g6?7ck2c9?7>5$0;0>3?<3`n:6=4+18192<=54;294~"60=0n=6F>8e9K5=0<,8386h>4$e095ae9285f>=n;m0;6)?63;4b?>o6>>0;6)?63;35<>=h99o1<7*>928254=8e9K5=0<,8386<6m;%f1>4bd3`886=4+18192<=9285=>=h99o1<7*>928254=o4l3:1(<7<:7c8?l71?3:1(<7<:04;?>i68l0;6)?63;325>=zjol1<7=50;2x 4>3282h7E?7d:J2<3=#9091=5l4$e095ae9285=>=nl80;6)?63;4:?>i68l0;6)?63;325>=zjo>1<7:50;2x 4>32l;0D<6k;I3;2>"61:0n<6*k2;3gg>o5;3:1(<7<:7`8?l5c290/=4=56`98m400290/=4=517:8?j77m3:1(<7<:032?>{e99:1<7=50;2x 4>3282h7E?7d:J2<3=#9091=5l4$e095ae9285=>=nl80;6)?63;4:?>i68l0;6)?63;325>=zjo<1<7:50;2x 4>32l;0D<6k;I3;2>"61:0n<6*k2;3gg>o5;3:1(<7<:7`8?l5c290/=4=56`98m400290/=4=517:8?j77m3:1(<7<:032?>{e99;1<7=50;2x 4>3282h7E?7d:J2<3=#9091=5l4$e095ae9285=>=nl80;6)?63;4:?>i68l0;6)?63;325>=zjo21<7:50;2x 4>32l;0D<6k;I3;2>"61:0n<6*k2;3gg>o5;3:1(<7<:7`8?l5c290/=4=56`98m400290/=4=517:8?j77m3:1(<7<:032?>{e9981<7=50;2x 4>3282h7E?7d:J2<3=#9091=5l4$e095ae9285=>=nl80;6)?63;4:?>i68l0;6)?63;325>=zj8:86=4<:183!7?<3;3o6F>8e9K5=0<,8386<6m;%f1>4bd3`886=4+18192<=9285=>=h99o1<7*>928254=o4l3:1(<7<:7c8?l71?3:1(<7<:04;?>i68l0;6)?63;325>=zjh31<7=50;2x 4>3282h7E?7d:J2<3=#9091=5l4$e095ae9285=>=nl80;6)?63;4:?>i68l0;6)?63;325>=zj0?1<7:50;2x 4>32l;0D<6k;I3;2>"61:0n<6*k2;3gg>o5;3:1(<7<:7`8?l5c290/=4=56`98m400290/=4=517:8?j77m3:1(<7<:032?>{eil0;6>4?:1y'5=2=91i0D<6k;I3;2>"61:0:4o5+d382`f=n::0;6)?63;4:?>oc93:1(<7<:7;8?j77m3:1(<7<:032?>{e1>0;694?:1y'5=2=m81C=5j4H0:5?!7>;3o;7)j=:0f`?l44290/=4=56c98m6b=83.:5>49a:9j531=83.:5>4>6998k46b290/=4=51038?xdfn3:1?7>50z&2<1<60j1C=5j4H0:5?!7>;3;3n6*k2;3gg>o5;3:1(<7<:7;8?lb6290/=4=56898k46b290/=4=51038?xd>13:187>50z&2<149b:9j7a<72-;2?78n;:k222<72-;2?7?98:9l55c=83.:5>4>1098ygd729086=4?{%3;0?7?k2B:4i5G1948 4?4282i7)j=:0f`?l44290/=4=56898ma7=83.:5>499:9l55c=83.:5>4>1098yg?e290?6=4?{%3;0?c63A;3h6F>879'5<5=m91/h?4>db9j66<72-;2?78m;:k0`?6=,8386;o4;h353?6=,8386<87;:m24`<72-;2?7?>1:9~fg7=8391<7>t$0:7>4>d3A;3h6F>879'5<5=91h0(i<51ea8m75=83.:5>499:9j`4<72-;2?786;:m24`<72-;2?7?>1:9~f1<7>t$0:7>`7<@82o7E?76:&2=67?kc:k17?6=,8386;l4;h1g>5<#9091:l54i044>5<#9091=;64;n33a?6=,8386;:af7<72:0;6=u+19695=e<@82o7E?76:&2=6<60k1/h?4>db9j66<72-;2?786;:kg5?6=,8386;74;n33a?6=,8386;:a=c<72=0;6=u+1969a4=O91n0D<69;%3:7?c73-n965<#9091:o54i2f94?"61:0=m65f17594?"61:0::554o02f>5<#9091=85827?kc:k17?6=,8386;74;hf2>5<#9091:454o02f>5<#9091=858f5>N60m1C=584$0;0>`6<,m81=im4i3194?"61:0=n65f3e83>!7>;36683>!7>;3;=465`11g94?"61:0:=<54}c`7>5<4290;w)?74;3;g>N60m1C=584$0;0>4>e3-n965<#9091:454ie394?"61:0=565`11g94?"61:0:=<54}cc0>5<3290;w)?74;g2?M7?l2B:4;5+1819a5=#l;0:hn5f2283>!7>;30d83>!7>;3;:=65rbc794?5=83:p(<6;:0:`?M7?l2B:4;5+18195=d<,m81=im4i3194?"61:0=565fd083>!7>;3<276a>0d83>!7>;3;:=65rb`794?2=83:p(<6;:d38L4>c3A;3:6*>928f4>"c:3;oo6g=3;29 4?42?h07d=k:18'5<5=>h10e<88:18'5<5=9?207b??e;29 4?428;:76smb783>6<729q/=5:519a8L4>c3A;3:6*>9282!7>;3<276gk1;29 4?42?307b??e;29 4?428;:76sm9083>1<729q/=5:5e09K5=b<@82=7)?63;g3?!b528nh7d<<:18'5<5=>k10e>j50;&2=6<1i21b=;950;&2=6<6>110c<>j:18'5<5=98;07plna;297?6=8r.:494>8b9K5=b<@82=7)?63;3;f>"c:3;oo6g=3;29 4?42?307dj>:18'5<5=>010c<>j:18'5<5=98;07pl63;290?6=8r.:494j1:J25<7s-;387?7c:J2010ei?50;&2=6<1121d==k50;&2=6<69810qool:180>5<7s-;387?7c:J2010ei?50;&2=6<1121d==k50;&2=6<69810qoln:180>5<7s-;387j7;I3;`>N60?1/=4=515`8 a4=9mi0(;j5119j26<72-;2?7?m;o3:5?6<3`5<4290;w)?74;f;?M7?l2B:4;5+181951d<,m81=im4$7f97g=n>:0;6)?63;3a?k7>93:07d8;:18'5<5=9k1e=4?51:9l55c=83.:5>4>1098ygd?29086=4?{%3;0?b?3A;3h6F>879'5<5=9=h0(i<51ea8 3b=;k1b:>4?:%3:7?7e3g;2=7>4;h47>5<#9091=o5a18395>=h99o1<7*>928254=!7>;3;i7c?61;28?l03290/=4=51c9m5<7=921d==k50;&2=6<69810qok6:180>5<7s-;387j7;I3;`>N60?1/=4=515`8 a4=9mi0(;j5c:k57?6=,83865=1<7*>9282f>h6180:76a>0d83>!7>;3;:=65rbdc94?2=83:p(<6;:ec8L4>c3A;3:6*>92820g=#l;0:hn5+6e8e?l04290/=4=51c9m5<7=821b:94?:%3:7?7e3g;2=7?4;h46>5<#9091=o5a18396>=h99o1<7*>928254=:198m32=83.:5>4>b:l2=4<632c=97>5$0;0>4d5<#9091=858gg>N60m1C=584$0;0>42e3-n96d=n>:0;6)?63;3a?k7>93:07d8;:18'5<5=9k1e=4?51:9j20<72-;2?7?m;o3:5?4<3`<=6=4+18195g=i90;1?65`11g94?"61:0:=<54}ca:>5<2290;w)?74;f`?M7?l2B:4;5+181951d<,m81=im4$7f957=n>:0;6)?63;3a?k7>93:07d8;:18'5<5=9k1e=4?51:9j20<72-;2?7?m;o3:5?4<3`<=6=4+18195g=i90;1?65`11g94?"61:0:=<54}cag>5<2290;w)?74;f`?M7?l2B:4;5+181951d<,m81=im4$7f93>o1;3:1(<7<:0`8j4?62910e;:50;&2=6<6j2d:5<4>;:k51?6=,83867=9282f>h6180876a>0d83>!7>;3;:=65rbba94?3=83:p(<6;:ea8L4>c3A;3:6*>92820g=#l;0:hn5+6e8g?l04290/=4=51c9m5<7=821b:94?:%3:7?7e3g;2=7?4;h46>5<#9091=o5a18396>=n>?0;6)?63;3a?k7>93907b??e;29 4?428;:76smc983>0<729q/=5:5db9K5=b<@82=7)?63;37f>"c:3;oo6*9d;66?l04290/=4=51c9m5<7=821b:94?:%3:7?7e3g;2=7?4;h46>5<#9091=o5a18396>=n>?0;6)?63;3a?k7>93907b??e;29 4?428;:76smc`83>0<729q/=5:5db9K5=b<@82=7)?63;37f>"c:3;oo6*9d;3;?l04290/=4=51c9m5<7=821b:94?:%3:7?7e3g;2=7?4;h46>5<#9091=o5a18396>=n>?0;6)?63;3a?k7>93907b??e;29 4?428;:76smc683>0<729q/=5:5db9K5=b<@82=7)?63;37f>"c:3;oo6*9d;:8m35=83.:5>4>b:l2=4<732c=87>5$0;0>4d9081?>o1>3:1(<7<:0`8j4?62:10c<>j:18'5<5=98;07pl>2383>0<729q/=5:5db9K5=b<@82=7)?63;37f>"c:3;oo6*9d;78m35=83.:5>4>b:l2=4<732c=87>5$0;0>4d9081?>o1>3:1(<7<:0`8j4?62:10c<>j:18'5<5=98;07pl;0;296?6=8r.:49497:J2;1:45+d382`f=n>;0;6)?63;4:?>i68l0;6)?63;325>=zj82;6=4=:183!7?<3;;j6F>8e9K5=0<,8386499:9l55c=83.:5>4>1098yg70n3:1>7>50z&2<1<68o1C=5j4H0:5?!7>;3;h7E9?;%52>4763-n965<#9091:454o02f>5<#9091="c:3;oo6g92;29 4?42?307b??e;29 4?428;:76sm16f94?4=83:p(<6;:02e?M7?l2B:4;5+18195f=O?91/;<4>109'`7<6lj1b:?4?:%3:7?0>32e:5<7s-;387??f:J2;1=9285=>=h99o1<7*>928254=52;294~"60=0:13-;2?7?l;I53?!1628;:7)j=:0f`?l05290/=4=56898k46b290/=4=51038?xd6?h0;6?4?:1y'5=2=99l0D<6k;I3;2>"61:0:o6F80:&45?7692.o>7?kc:k56?6=,8386;74;n33a?6=,8386;:a52?=8381<7>t$0:7>46a3A;3h6F>879'5<5=9j1C;=5+708254=#l;0:hn5f6383>!7>;3<276a>0d83>!7>;3;:=65rb4094?4=83:p(<6;:02e?M7?l2B:4;5+18195f=O?91/;<4>109'`7<6lj1b:?4?:%3:7?0>32e:i;I3;`>N60?1/=4=51b9K35=#?80:=<5+d382`f=n>;0;6)?63;4:?>i68l0;6)?63;325>=zj<:1<7<50;2x 4>328:m7E?7d:J2<3=#9091=n5G719'34<6981/h?4>db9j27<72-;2?786;:m24`<72-;2?7?>1:9~f1`=8381<7>t$0:7>46a3A;3h6F>879'5<5=9j1C;=5+708254=#l;0:hn5f6383>!7>;3<276a>0d83>!7>;3;:=65rb0ab>5<5290;w)?74;33b>N60m1C=584$0;0>4e<@>:0(:?51038 a4=9mi0e;<50;&2=6<1121d==k50;&2=6<69810qo?l9;296?6=8r.:494>0g9K5=b<@82=7)?63;3`?M173-=:6;%f1>4bd3`<96=4+18192<=5}#91>1==h4H0:g?M7?>2.:5>4>c:J44>"093;:=6*k2;3gg>o1:3:1(<7<:7;8?j77m3:1(<7<:032?>{e9j=1<7<50;2x 4>328:m7E?7d:J2<3=#9091=n5G719'34<6981/h?4>db9j27<72-;2?786;:m24`<72-;2?7?>1:9~f4e129096=4?{%3;0?77n2B:4i5G1948 4?428i0D:>4$639547<,m81=im4i7094?"61:0=565`11g94?"61:0:=<54}c3`1?6=:3:185824c=O91n0D<69;%3:7?7d3A=;7)9>:032?!b528nh7d8=:18'5<5=>010c<>j:18'5<5=98;07pl>c583>7<729q/=5:511d8L4>c3A;3:6*>9282g>N082.<=7?>1:&g6?7ck2c=>7>5$0;0>3?<3f;;i7>5$0;0>47632wi=n=50;094?6|,82?6<>i;I3;`>N60?1/=4=51b9K35=#?80:=<5+d382`f=n>;0;6)?63;4:?>i68l0;6)?63;325>=zjll1<7=50;2x 4>32m=0D<6k;I3;2>"61:0:8o5+d382`f=#>m0:96g93;29 4?428h0b<7>:198k46b290/=4=51038?l03290/=4=51c9m5<7=92d:4>4?;:ab4<72:0;6=u+1969`2=O91n0D<69;%3:7?73j2.o>7?kc:&5`?723`<86=4+18195g=i90;1<65`11g94?"61:0:=<54i7694?"61:0:n6`>9082?k7?;3:07pli3;297?6=8r.:494k7:J24>b:l2=4<732e:5=6=4<:183!7?<3n<7E?7d:J2<3=#9091=9l4$e095ae<,?n1=85f6283>!7>;3;i7c?61;28?j77m3:1(<7<:032?>o1<3:1(<7<:0`8j4?6281e=5=50:9~fc1=8391<7>t$0:7>a1<@82o7E?76:&2=6<6db9'2a<6=2c=?7>5$0;0>4d5<#9091=5<#9091=o5a18395>h60:0;76smf883>6<729q/=5:5d69K5=b<@82=7)?63;37f>"c:3;oo6*9d;36?l04290/=4=51c9m5<7=821d==k50;&2=6<69810e;:50;&2=6<6j2d:5<4>;o3;7?6<3th2:7>53;294~"60=0o;6F>8e9K5=0<,8386<:m;%f1>4bd3-9083?>i68l0;6)?63;325>=n>=0;6)?63;3a?k7>93;0b<6<:198yg??29086=4?{%3;0?b03A;3h6F>879'5<5=9=h0(i<51ea8 3b=9<1b:>4?:%3:7?7e3g;2=7>4;n33a?6=,8386;:k50?6=,83864=i9191<65rb8c94?5=83:p(<6;:e58L4>c3A;3:6*>92820g=#l;0:hn5+6e821>o1;3:1(<7<:0`8j4?62910c<>j:18'5<5=98;07d8;:18'5<5=9k1e=4?51:l2<6<732wi5n4?:283>5}#91>1h:5G19f8L4>13-;2?7?;b:&g6?7ck2.=h7?:;h40>5<#9091=o5a18394>=h99o1<7*>928254=1<7*>9282f>h6180:7c?73;28?xd>m3:1?7>50z&2<1i7)j=:0f`?!0c28?0e;=50;&2=6<6j2d:5<4?;:m24`<72-;2?7?>1:9j21<72-;2?7?m;o3:5?75<4290;w)?74;f4?M7?l2B:4;5+181951d<,m81=im4$7f950=n>:0;6)?63;3a?k7>93:07b??e;29 4?428;:76g94;29 4?428h0b<7>:09m5=5=821vnl<50;194?6|,82?6i94H0:g?M7?>2.:5>4>4c9'`7<6lj1/:i4>5:k57?6=,83865=8283?>{ei=0;6>4?:1y'5=2=l>1C=5j4H0:5?!7>;3;?n6*k2;3gg>"1l3;>7d8<:18'5<5=9k1e=4?50:9l55c=83.:5>4>1098m32=83.:5>4>b:l2=4<63g;3?7>4;|`b2?6=;3:1858g3>N60m1C=584$0;0>42e3-n96439282f>h6180;76a>0d83>!7>;3;:=65f6583>!7>;3;i7c?61;38j4>42910qo7=:180>5<7s-;387j8;I3;`>N60?1/=4=515`8 a4=9mi0(;j5149j26<72-;2?7?m;o3:5?6<3f;;i7>5$0;0>47632c=87>5$0;0>4d=zj0>1<7=50;2x 4>32m=0D<6k;I3;2>"61:0:8o5+d382`f=#>m0:96g93;29 4?428h0b<7>:198k46b290/=4=51038?l03290/=4=51c9m5<7=92d:4>4?;:a552=8391<7>t$0:7>a1<@82o7E?76:&2=6<6db9'2a<6=2c=?7>5$0;0>4d5<#9091=5<#9091=o5a18395>h60:0;76smae83>6<729q/=5:5d69K5=b<@82=7)?63;37f>"c:3;oo6*9d;36?l04290/=4=51c9m5<7=821d==k50;&2=6<69810e;:50;&2=6<6j2d:5<4>;o3;7?6<3thnn7>55;294~"60=0oo6F>8e9K5=0<,8386<:m;%f1>4bd3-!7>;3;i7c?61;28?l03290/=4=51c9m5<7=921b:84?:%3:7?7e3g;2=7<4;h45>5<#9091=o5a18397>=h99o1<7*>928254=55;294~"60=0oo6F>8e9K5=0<,8386<:m;%f1>4bd3-!7>;3;i7c?61;28?l03290/=4=51c9m5<7=921b:84?:%3:7?7e3g;2=7<4;h45>5<#9091=o5a18397>=h99o1<7*>928254=55;294~"60=0oo6F>8e9K5=0<,8386<:m;%f1>4bd3-!7>;3;i7c?61;28?l03290/=4=51c9m5<7=921b:84?:%3:7?7e3g;2=7<4;h45>5<#9091=o5a18397>=h99o1<7*>928254=>i68l0;66l98;296?6=8r.:49498:&2=6<5<2.<=786;I53?!b528nh7d8=:18'5<5=>010c<>j:18'5<5=98;07pl>d;296?6=8r.:494>d:&2=6<5<2.o>7?kc:k56?6=,8386;74;n33a?6=,8386;:p27<72;qU:?5269856>{t99o1<7d;41?x{e:m0;6?4=:2y'5=2=9l1C=5j4H0:5?!b528nh7d8=:188k46b2900n;650;094?6|,82?6;64$0;0>72<,>;1:45G719'`7<6lj1b:?4?:%3:7?0>32e:72<,m81=im4i7094?"61:0=565`11g94?"61:0:=<54}r41>5<5sW<97087:708yv77m3:1>vP>0d9>5a<68l1v;650;0x93>=99o01879'5<5=9j1/h?4>db9j27<72-;2?786;:m24`<72-;2?7?>1:J2=7=;0;6)?63;4:?>i68l0;6)?63;325>N61;10qo=?:181>5<7s-;3878j;I3;`>N60?1/=4=51b9'`7<6lj1b:?4?:%3:7?0>32e:5<5290;w)?74;4f?M7?l2B:4;5+18195f=#l;0:hn5f6383>!7>;3<276a>0d83>!7>;3;:=6F>9398yg77?3:1;7=59z&2<1<6>j1C=5j4H0:5?!0c2:1C=974$e095ae>o613:17d?n:188m73=831b?o4?::m200<722h::o4?:883>5}#91>1=;j4$0;0>40c3-;?87;l;I3;6>N6<01/h?4>db9'2a<43-;?m7?79:k0f?6=3`896=4a19195>=n:<0;6E?;2:9j5d<722c:57>5;h34>5<499:9l55c=83.:5>4>109K5<4<3th:4:4?:083>5}#9091=<>4o01;>5<#9091=6c80f>{t:<0;6?uQ249>63<1:2wx=l4?:3y]5d=:9?h1=l5rs0;94?4|V8301<8m:0;8yv702909wS?8;<35f?703ty::7>52z\22>;6>k0::6s|15794?4|V8>>70?9b;371>{t:;0;6?u217`967=:91=1=>64}r05>5<5s4;=n7<:;<05>46b3twi=o>50;494?6|,82?68o4H0:g?M7?>2.=h784$0;0>0d<@8>27)j=:0f`?l46290/=4=5249K5<4<3`9i6=4+18192<=>6=4+1819547<3`896=4+181967=86=4+181953?<3`836=4+181951e<3th:<;4?:680><}#91>1=;m4H0:g?M7?>2.=h7:4H06:?!b528nh7d?9:188m41=831b=44?::k2e?6=3`8>6=44i2`94?=h9=?1<75m17`94??=83:p(<6;:04g?!7>;3;=h6*>4586g>N60;1C=974$e095ae<,?n186*>4`82<<=n;k0;66g=2;29j4>42810e?;50;J207=>o6?3:17d?9:188k4222900c<:9:188yg4129096=4?{%3:7?7d3`<96=4+18192<={t;k0;6?uQ3c9>53d=;k1v?;50;0xZ73<5;<1:?5rs0c94?4|V8k01<8m:0c8yv7>2909wS?6;<35f?7>3ty:;7>52z\23>;6>k0:;6s|1783>7}Y9?16=;l5179~w4222909wS?;5:?22g<6<<1v?<50;0x940e2;801<68:01;?xu5>3:1>v3>6c811>;5>3;;i6srb0c:>5<1290;w)?74;7b?M7?l2B:4;5+6e85?!7>;3?i7E?;9:&g6?7ck2c9=7>5$0;0>73<@83976gh76sme783>7<729q/=4=51b9'5=2=l<1C=584i7094?"61:0=565`11g94?"61:0:=<54}cg6>5<3290;w)?63;37f>N60?1C=5j4$e095ae<,82?6il4$7f954=n>:0;6)?63;3a?k7>93:07d8;:18'5<5=9k1e=4?51:9j20<72-;2?7?m;o3:5?4<3f;;i7>5$0;0>47632wi=?950;094?6|,8386a3<@82=7d8=:18'5<5=>010c<>j:18'5<5=98;07pl>2783>6<729q/=4=515`8L4>13A;3h6*k2;3gg>"60=0o56*9d;62?l04290/=4=51c9m5<7=821b:94?:%3:7?7e3g;2=7?4;n33a?6=,8386;:a6g<7280;6=u+181956c<@82=7E8l;%52>3?<,m>1hk5f12g94?"61:0:?h5+26861>=zj;i1<7?50;2x 4?4289n7E?76:J5g>"093<27)j;:0:2?l74m3:1(<7<:01f?>{e;o0;6<4?:1y'5<5=9:o0D<69;I4`?!162?30(i:5dd9j56c=83.:5>4>3d98yg2f290:6=4?{%3:7?74m2B:4;5G6b9'34<6981/h94;2:m27`<72-;2?7?t$0;0>45b3A;3:6F9c:&45?7692.o87;;;n30a?6=,8386<=j;:a0f<7280;6=u+181956c<@82=7E8l;%52>4763-n?6;>4o01f>5<#9091=>k4;|`7a?6=93:192827`=O91<0D;m4$639547<,m>1?n5`12g94?"61:0:?h54}c344?6=93:192827`=O91<0D;m4$639547<,m>18>5`12g94?"61:0:?h54}c345?6=93:192827`=O91<0D;m4$639547<,m>19k5`12g94?"61:0:?h54}c346?6=93:192827`=O91<0D;m4$639547<,m>1==l4o01f>5<#9091=>k4;|`236<7280;6=u+181956c<@82=7E8l;%52>4763-n?6<=k;n30a?6=,8386<=j;:a522=83;1<7>t$0;0>45b3A;3:6F9c:&45?7692.o87?;8:m27`<72-;2?7?0b9l56c=83.:5>4>3d98yg7003:1=7>50z&2=6<6;l1C=584H7a8 27=98;0c<=j:18'5<5=9:o07pl>b`83>4<729q/=4=512g8L4>13A:032?!b32jo0c<=j:18'5<5=9:o07pl>bc83>4<729q/=4=512g8L4>13A:032?!b3289h7b?2B=o6*81;325>"c<3n;7b?2B=o6*81;325>"c<3;;m6a>3d83>!7>;3;8i65rb0`f>5<6290;w)?63;30a>N60?1C:n5+708254=#l=0:?o5`12g94?"61:0:?h54}c3ab?6=93:192827`=O91<0D;m4$639547<,m>1==74o01f>5<#9091=>k4;|`2g5<7280;6=u+181956c<@82=7E8l;%52>4763-n?6<=n;n30a?6=,8386<=j;:a5f4=83;1<7>t$0;0>45b3A;3:6F9c:&45?7692.o87?<9:m27`<72-;2?7?6f<6;l1v?j50;gx9=5=:816494=1:?;c2;;015k5209>;<:5>77<51=1><522e824`=z{;o1<7<;{<3a6?4634;i?7<>;<3a0?4634;i97<>;<3a2?4634;i;7<>;<3a;<32f?4634;:o7<>;<32`?4634;:i7<>;<32b?4634;9<7<>;<315?4634;jm7<>;<3bf?4634;jo7<>;<3b`?4634;ji7<>;<3bb?4634;i=7<>;<304?4634;8=7<>;<306?4634;8?7<>;<300?4634;897<>;<302?4634;8;7<>;<0f>46b349;6;<4=024>73<58h;6??4=025>73<58k26??4}r0e>5>511g8yv562902w0=9:066?8c>2?>01ho5649>574=>=16io496:?261<1<27:>8494:?f6;;4}r11>5<1s49<6<::;35<5lk1:>52ec851>;b=3;bi301<<;:77894422??01h;5629~w62=83>p1>7515789`e=>:16io493:?263<1<2wx?84?:4y>7d<6<<16in494:?267<1;27:>9493:?260<1;2wx?k4?:2y]7c=:<90=>63{t<90;6?u241824`=:99=1?o5rs5c94?5|V=k019h511g891g=9:o0q~:m:180[2e34?;6<>j;<6a>45b3ty?o7>53z\7g>;293;;i63;c;30a>{tuQ4d9>17<68l168h4>3d9~w1`=838p1o9511g891`=>;1v8>50;0x9g>=99o018>5639~w07=838p1o7511g8907=>;1v8<50;0x9gg=99o018<5639~w24=832p1ol511g89fd=>=16o4496:?``?0134ih6;;4=b:926=:kh0=963l7;40?xu0;3:14v3mc;33a>;dj3<=70m6:7189fb=>:16on494:?`>1<76t=cf955c<5jh1:852c8851>;dl3<>70ml:7489f>=>=16ol496:?`3?023ty<97>58z?aa?77m27hn78<;32<5jn1:952cb857>;d03<=70mn:7689f1=>?1v:850;0x9=5=9=?01l65639~w2g=838p15:515789<0=>:1v:950;0x9=3=9=?014<5629~w2>=83op158515789g`=>:16o>493:?`4?0434i?6;=4=b3926=:k<0=?63l2;40?8e12?901oo5629>f<<1<27i478<;<`4>35<50>1:>5rs6;94?g|51=1=9;4=c`9531<5ki1=;94=cf9531<5ko1=;94=cc921=:j00=?63m8;47?8d02?>01lj5629~w2d=838p156515789<>=>:1v:m50;0x9=?=9=?014o5629~w2b=838p15o515789:1v:k50;0x9=d=9=?014k5629~w2`=838p15m515789d6=>:1v5>50;0x9=b=9=?01l<5629~w=7=838p15k515789d2=>:1v5<50;0x9=`=9=?01l85629~w<6=839p14>511g89<3=::16mh4=3:p=4<72:q65<4>0d9>=6<5;27jn7<<;|q:6?6=;r72>7??e:?:5?71?27jm7j>;|q:7?6=:r72?7??e:?bg?443ty287>53z?:0?77m272?7?97:?bf?b63ty297>53z?:1?77m272;7<<;7546b343>6<88;a746b34326?=4=c2966=z{021<7=t=8:955c<50=1=;94=`d9`4=z{031<7=t=8;955c<50h1>>52b0817>{t1h0;6>u29`824`=:100:::52b18g5>{t1k0;6>u29c824`=:1m09?63m2;00?xu>k3:1?v36c;33a>;>j3;=;63m1;f2?xu>l3:1?v36d;33a>;>n38870l<:318yv?b2908w07j:02f?8?c28<<70l=:e38yv?a2908w07i:02f?8g62;901o:5229~wd6=839p1l>511g89<`=9?=01o=5d09~wd7=839p1l?511g89d5=::16n84=3:pe7<72:q6m?4>0d9>e4<6>>16n94k1:pe6<72:q6m>4>0d9>e0<5;27i:7<<;|qb0?6=;r7j87??e:?b7?71?27i97j>;|qb1?6=;r7j97??e:?:5?4434kj6?=4}rc5>5<4s4k=6<>j;40034h=6i?4}rc4>5<4s43;6<88;a7<5h21==k4}rcg>5<5s4ko6<>j;a746b34hi6;:4}ra3>5<5s4i;6<>j;<``>3246b34ho6;:4}ra1>5<5s4i96<>j;<`f>3246b34hi6;=4}ra7>5<5s4i?6<>j;<``>356=4={46b34ho6;=4}ra5>5<5s4i=6<>j;<`f>3533<5l<1==k4}rgg>5<4s4oo6<>j;75<5on1>>5rsdg94?5|5lo1==k4=g2966=:nl09?6s|eg83>6}:mo0:6}:n90:;an3887p}i1;297~;a93;;i63i0;353>;am3n:7p}i2;297~;a:3;;i63i4;00?87783887p}i3;297~;a;3;;i63i2;353>;an3n:7p}i4;297~;a<3;;i63i6;00?87793887p}i5;297~;a=3;;i63i4;353>;6890o=6s|f783>6}:n?0:;68;09?6s|f683>6}:n>0:7546b34l36<88;<336?b63tymm7>53z?f`?71?27mo7j>;46b3ty:<94?:3y>552=99o01<><:e38yv77>3:1>v3>078200=:9h31?o5rs024>5<5s4;;;7?;5:?2f5<4j2wx==650;7x94>a289370kk:2f89<6=;m16==95179>550=9>1v<>n:187875<3<=70?=5;45?875>3;;i63>26856>{t99i1<730<588<6<>j;|q257<72;q6=<1v5<5s4;:h7?;5:?`2?023ty:=;4?:3y>54c=9=?01n=5659~w4702909w0?>f;371>;d<31983>7}:9;:1=9;4=b7921=z{8;26=4={<315?73=27h:78;;|q267<72?q6?;4>469>72<6<>16?54>469>7<<6<>16?l4>469>574=99o0q~?=3;2954}:9;>1==k4=013>74<589:6?<4=011>74<58986?<4=017>74<589>6?<4=015>74<589<6?<4=03b>74<58;i6?<4=03`>74<58;o6?<4=03f>74<58;m6?<4=003>74<588:6?<4}r310?6=1r7:>84>0d9>5a5=:;16=i:5239>5a3=:;16=i85239>5a1=:;16=i65239>5a?=:;16=io5239~w44?2909w0?<0;371>;en3<>7p}>2883>7}:9:;1=9;4=b2920=z{88j6=4={<306?73=27h=78:;|q26g<72;q6=>=515789f4=><1v<5<5s4;8:7?;5:?`5?033ty:>k4?:3y>561=9=?01n<5659~w42c2909w0=9:2`89`>=99o0q~?;e;296~;6l:08n63ic;33a>{t9=l1<75<5s42>6>l4=`c955c=7>52z?;2?5e34ki6<>j;|q217<72;q64:40d9~w4332909w0?k4;1a?8`c28:n7p}>5483>7}:0=08n63ne;33a>{t9<<1<75<5s4;o97=m;46b3ty:954?:3y><=<4j27jj7??e:p50?=838p1>753c9>ag<68l1v<;n:18187c>39i70hi:02f?xu6=k0;6?u28880f>;e83;;i6s|14a94?4|5:k1?o52eb824`=z{8?o6=4={<3g3?5e34;;<7??e:p50c=838p15o53c9>f4<68l1v<;i:18187c039i70??1;33a>{t9?:1<75<5s4;o57=m;<336?77m2wx=;<50;0x9=e=;k16n>4>0d9~w4042909w0?ka;1a?877;3;;i6s|17694?4|51n1?o52b5824`=z{8<>6=4={<:f>6d<5k?1==k4}r352?6=:r73j7=m;<`5>46b3ty:;=4?:2y]526<58=26<>j;<344?74m2wx=:?50;1xZ41634;0d9>524=9:o0q~?83;297~X6?:16=:m511g89414289n7p}>7583>6}Y9>>01<9k:02f?870<3;8i6s|16794?5|V8=>70?8e;33a>;6?<0:?h5rs055>5<4sW;<:63>7g824`=:9><1=>k4}r340d9>52?=>;1v<9n:1818e?28:n70?8a;41?xu6?k0;6?u2c8824`=:9>h1:?5rs05`>5<5s4ij6<>j;<34g?053ty:;i4?:3y>gg<68l16=:j5639~w41b2909w0ml:02f?870m3<97p}>7g83>7}:km0:dz?2<`<2m27nh7<<;75<5lo1?i52f180`>;a:39o70h;:2f89c0=;m16j5408h6369;1g?8?e2:n014j53e9>=c<4l27j=7=k;6b<5h?1?i529080`>;>;39o70?70;41?877?3;<70??7;3:?877?3;j70??6;35?877>3;270??6;3b?xu6100;6>u21`c97g=:9::1?o521`;951353z?2ed<6<<16=ll53c9>567=;k1v<7m:18087fj3;?963>ab80f>;6;;08n6s|18a94?5|58kh6<::;<3b`?5e34;8?7=m;|q2=a<72:q6=lj5157894gb2:h01<=;:2`8yv7>m3:1?v3>ad8200=:9hl1?o5212797g=z{83m6=4<{<3bb?73=27:n<4>7p}>a183>7}:9k;1=9;4=014>6d7>53z?2f7<6<<16=o=53c9>54d=;k1vb580f>;69j08n6s|1`694?5|58h?6<::;<3a1?5e34;:h7=m;|q2e0<72:q6=o;5157894d12:h013:1?v3>b78200=:9k=1?o5210d97g=z{8k<6=4<{<3a3?73=27:n54>70?=1;1a?877>39i7p}>b`83>6}Y9kk01;6jk0:?h5rs0``>5<4sW;io63>c4824`=:9ki1=>k4}r3a`?6=;rT:ni521b4955c<58ho6<=j;|q2f`<72:qU=ok4=0a4>46b34;ii7?3d9~w4e72908wS?l0:?2g<<68l16=n>512g8yv7d:3:1?vP>c39>5fg=99o01u21e19513<58i86;<4=g`927=z{8ih6=4<{<3g0?73=27:o9492:?fb?043ty:oi4?:2y>5a3=9=?01:1v3;?963>c7856>;a;3<87p}>cg83>6}:9m=1=9;4=0a4>34<5o?1:>5rs0f3>5<4s4;o47?;5:?2g=<1:27m;78<;|q2`4<72:q6=i75157894e>2?801k75629~w4b52908w0?ka;371>;6kh0=>63>05857>{tm>0;6?u2e4824`=:m?0=>6srn562>5<5sA;3:6G>3d824vj;:359yxh3<;0;6?uG1948M45b28q:6pT:d;3x`1??7>52zJ2<3=zf=>?6=4;{I3;2>{i<=?1<7?tH0:5?xh3879~j12?290:wE?76:m01?=83;pD<69;|l70d<728qC=584}o67f?6=9rB:4;5F12g95~7=uS?o6{e69yxh3?j7>51zJ2<3=N9:o1=v<5}[7g>4}c<3wvb9;?:182M7?>2C:?h4>{38~^0b=9rn?6psa44394?7|@82=7p`;5383>4}O91<0qc::3;295~N60?1vb9;;:182M7?>2we88;50;3xL4>13td?9;4?:0yK5=0>;7>51zJ2<3=zf=?36=4>{I3;2>{i<<31<7?tH0:5?xh3=h0;6879~j13d290:wE?76:m00b=83;pD<69;|l71`<728qC=584}o66b?6=9rB:4;5rn543>5<6sA;3:6sa47394?7|@82=7p`;6383>4}O91<0qc:93;295~N60?1vb98;:182M7?>2we8;;50;3xL4>13td?:;4?:0yK5=0=;7>51zJ2<3=zf=<36=4>{I3;2>{ih0;6879~j10d290:wE?76:m03b=83;pD<69;|l72`<728qC=584}o65b?6=9rB:4;5rn553>5<6sA;3:6sa46394?7|@82=7p`;7383>4}O91<0qc:83;295~N60?1vb99;:182M7?>2we8:;50;3xL4>13td?;;4?:0yK5=0<;7>51zJ2<3=zf==36=4>{I3;2>{i<>31<7?tH0:5?xh3?h0;6879~j11d290:wE?76:m02b=83;pD<69;|l73`<728qC=584}o64b?6=9rB:4;5rn5:3>5<6sA;3:6sa49394?7|@82=7p`;8383>4}O91<0qc:73;295~N60?1vb96;:182M7?>2we85;50;3xL4>13td?4;4?:0yK5=03;7>51zJ2<3=zf=236=4>{I3;2>{i<131<7?tH0:5?xh30h0;6879~j1>d290:wE?76:m0=b=83;pD<69;|l7<`<728qC=584}o6;b?6=9rB:4;5rn5;3>5<6sA;3:6sa48394?7|@82=7p`;9383>4}O91<0qc:63;295~N60?1vb97;:182M7?>2we84;50;3xL4>13td?5;4?:0yK5=02;7>52zJ2<3=zf=336=4={I3;2>{i<031<7=tH0:5?xh31h0;6j3:1=vF>879~j1?d290:wE?76:m05<6sA;3:6sa4`394?7|@82=7p`;a383>4}O91<0qc:n3;295~N60?1vb9o;:182M7?>2we8l;50;3xL4>13td?m;4?:0yK5=0j;7>51zJ2<3=zf=k36=4>{I3;2>{i879~j1gd290:wE?76:m0db=83;pD<69;|l7e`<728qC=584}o6bb?6=9rB:4;5rn5`3>5<6sA;3:6sa4c394?7|@82=7p`;b383>4}O91<0qc:m3;295~N60?1vb9l;:182M7?>2we8o;50;3xL4>13td?n;4?:0yK5=0i;7>51zJ2<3=zf=h36=4>{I3;2>{i879~j1dd290:wE?76:m0gb=83;pD<69;|l7f`<728qC=584}o6ab?6=9rB:4;5rn5a3>5<6sA;3:6sa4b394?7|@82=7p`;c383>4}O91<0qc:l3;295~N60?1vb9m;:182M7?>2we8n;50;3xL4>13td?o;4?:0yK5=0h;7>51zJ2<3=zf=i36=4>{I3;2>{i7sU5e82a2=utd?ol4?:0yK5=0k51z09y_3c28qo87srn5a`>5<6sA;3:6G>3d827{e69yxh3kl0;6hj7>51zJ2<3=N9:o1=v<5}[7g>4}c<3wvb9j?:182M7?>2C:?h4>{38~yk2c93:1=vF>879~j1b5290:wE?76:m0a5=83;pD<69;|l7`1<728qC=584}o6g1?6=9rB:4;5rn5f5>5<6sA;3:6sa4e594?7|@82=7p`;d983>2}O91<0qc:k9;295~N60?1vb9jn:182M7?>2we8il50;3xL4>13td?hn4?:0yK5=0oh7>51zJ2<3=zf=nn6=4>{I3;2>{i879~j1c5290:wE?76:m0`5=83;pD<69;|l7a1<728qC=584}o6f1?6=9rB:4;5rn5g5>5<6sA;3:6sa4d594?7|@82=7p`;e983>7}O91<0qc:j9;295~N60?1B=>k51z09y_3c28qo87srn5gb>5<6sA;3:6G>3d827{e69yxh3mj0;6nh7>51zJ2<3=N9:o1=v<5}[7g>4}c<3wvb9kj:182M7?>2C:?h4>{38~^0b=9rn?6psa4dd94?7|@82=7D?4}52tP>h7?td58~yk2a93:1=vF>879~j1`5290:wE?76:m0c5=83;pD<69;|l7b1<728qC=584}o6e1?6=9rB:4;5rn5d5>5<6sA;3:6sa4g594?7|@82=7p`;f983>4}O91<0qc=6d;295~{i;h31<7?t}o6e=?6=9rwe?i:50;3xyk5c=3:1=vsa3g`94?7|ug9mo7>51z~yxFGKr?i57k=994f<5{GHKq;qMN_{|BC \ No newline at end of file Index: ps2_keyboard_interface/Keyboard_Controller.pcf =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.pcf (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.pcf (revision 2) @@ -0,0 +1,33 @@ +//! ************************************************************************** +// Written by: Map M.70d on Fri Dec 03 00:08:21 2010 +//! ************************************************************************** + +SCHEMATIC START; +COMP "pressed<6>" LOCATE = SITE "P12" LEVEL 1; +COMP "Segments<1>" LOCATE = SITE "G13" LEVEL 1; +COMP "pressed<7>" LOCATE = SITE "P11" LEVEL 1; +COMP "Segments<2>" LOCATE = SITE "N15" LEVEL 1; +COMP "Segments<3>" LOCATE = SITE "P15" LEVEL 1; +COMP "Segments<4>" LOCATE = SITE "R16" LEVEL 1; +COMP "Segments<5>" LOCATE = SITE "F13" LEVEL 1; +COMP "Segments<6>" LOCATE = SITE "N16" LEVEL 1; +COMP "Clk2" LOCATE = SITE "T9" LEVEL 1; +COMP "DataIn" LOCATE = SITE "M15" LEVEL 1; +COMP "Clk" LOCATE = SITE "M16" LEVEL 1; +PIN Clk_pin<0> = BEL "Clk" PINNAME PAD; +PIN "Clk_pin<0>" CLOCK_DEDICATED_ROUTE = FALSE; +COMP "pressed<0>" LOCATE = SITE "K12" LEVEL 1; +COMP "Enables<0>" LOCATE = SITE "E13" LEVEL 1; +COMP "pressed<1>" LOCATE = SITE "P14" LEVEL 1; +COMP "Enables<1>" LOCATE = SITE "F14" LEVEL 1; +COMP "pressed<2>" LOCATE = SITE "L12" LEVEL 1; +COMP "Enables<2>" LOCATE = SITE "G14" LEVEL 1; +COMP "pressed<3>" LOCATE = SITE "N14" LEVEL 1; +COMP "Enables<3>" LOCATE = SITE "D14" LEVEL 1; +COMP "pressed<4>" LOCATE = SITE "P13" LEVEL 1; +COMP "pressed<5>" LOCATE = SITE "N12" LEVEL 1; +COMP "Segments<0>" LOCATE = SITE "E14" LEVEL 1; +NET "Clk_BUFGP/IBUFG" BEL "Clk_BUFGP/BUFG.GCLKMUX" USELOCALCONNECT; +NET "Clk2_BUFGP/IBUFG" BEL "Clk2_BUFGP/BUFG.GCLKMUX" USELOCALCONNECT; +SCHEMATIC END; + Index: ps2_keyboard_interface/pepExtractor.prj =================================================================== --- ps2_keyboard_interface/pepExtractor.prj (nonexistent) +++ ps2_keyboard_interface/pepExtractor.prj (revision 2) @@ -0,0 +1 @@ +work "/home/omar/Mano/Mano//SevenSegment.vhd" Index: ps2_keyboard_interface/Keyboard_Controller.xise =================================================================== --- ps2_keyboard_interface/Keyboard_Controller.xise (nonexistent) +++ ps2_keyboard_interface/Keyboard_Controller.xise (revision 2) @@ -0,0 +1,340 @@ + + + +
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Index: ps2_keyboard_interface/xst/work/hdpdeps.ref =================================================================== --- ps2_keyboard_interface/xst/work/hdpdeps.ref (nonexistent) +++ ps2_keyboard_interface/xst/work/hdpdeps.ref (revision 2) @@ -0,0 +1,15 @@ +V3 7 +FL /home/omar/Mano/Mano/SevenSegment.vhd 2010/11/29.19:15:15 M.70d +EN work/SevenSegment 1291327690 FL /home/omar/Mano/Mano/SevenSegment.vhd \ + PB ieee/std_logic_1164 1284609568 PB ieee/NUMERIC_STD 1284609569 \ + PB ieee/STD_LOGIC_UNSIGNED 1284609570 +AR work/SevenSegment/Behavioral 1291327691 \ + FL /home/omar/Mano/Mano/SevenSegment.vhd EN work/SevenSegment 1291327690 +FL /home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.vhd 2010/12/03.00:08:05 M.70d +EN work/Keyboard_Controller 1291327692 \ + FL /home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.vhd \ + PB ieee/std_logic_1164 1284609568 PB ieee/NUMERIC_STD 1284609569 \ + PB ieee/STD_LOGIC_UNSIGNED 1284609570 +AR work/Keyboard_Controller/Behavioral 1291327693 \ + FL /home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.vhd \ + EN work/Keyboard_Controller 1291327692 CP SevenSegment Index: ps2_keyboard_interface/xst/work/hdllib.ref =================================================================== --- ps2_keyboard_interface/xst/work/hdllib.ref (nonexistent) +++ ps2_keyboard_interface/xst/work/hdllib.ref (revision 2) @@ -0,0 +1,4 @@ +AR sevensegment behavioral /home/omar/Mano/Mano/SevenSegment.vhd sub00/vhpl03 1291327691 +AR keyboard_controller behavioral /home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.vhd sub00/vhpl01 1291327693 +EN keyboard_controller NULL /home/omar/MyOpenCores/Keyboard_Controller/Keyboard_Controller.vhd sub00/vhpl00 1291327692 +EN sevensegment NULL /home/omar/Mano/Mano/SevenSegment.vhd sub00/vhpl02 1291327690 Index: ps2_keyboard_interface/xst/work/sub00/vhpl00.vho =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ps2_keyboard_interface/xst/work/sub00/vhpl00.vho =================================================================== --- ps2_keyboard_interface/xst/work/sub00/vhpl00.vho (nonexistent) +++ ps2_keyboard_interface/xst/work/sub00/vhpl00.vho (revision 2)
ps2_keyboard_interface/xst/work/sub00/vhpl00.vho Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: ps2_keyboard_interface/xst/work/sub00/vhpl01.vho =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ps2_keyboard_interface/xst/work/sub00/vhpl01.vho =================================================================== --- ps2_keyboard_interface/xst/work/sub00/vhpl01.vho (nonexistent) +++ ps2_keyboard_interface/xst/work/sub00/vhpl01.vho (revision 2)
ps2_keyboard_interface/xst/work/sub00/vhpl01.vho Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: ps2_keyboard_interface/xst/work/sub00/vhpl02.vho =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ps2_keyboard_interface/xst/work/sub00/vhpl02.vho =================================================================== --- ps2_keyboard_interface/xst/work/sub00/vhpl02.vho (nonexistent) +++ ps2_keyboard_interface/xst/work/sub00/vhpl02.vho (revision 2)
ps2_keyboard_interface/xst/work/sub00/vhpl02.vho Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Index: ps2_keyboard_interface/xst/work/sub00/vhpl03.vho =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: ps2_keyboard_interface/xst/work/sub00/vhpl03.vho =================================================================== --- ps2_keyboard_interface/xst/work/sub00/vhpl03.vho (nonexistent) +++ ps2_keyboard_interface/xst/work/sub00/vhpl03.vho (revision 2)
ps2_keyboard_interface/xst/work/sub00/vhpl03.vho Property changes : Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.