Add Proposal | Add Analysis | Edit Class, Environment, or Release |
Number | 455
|
Category | enhancement
|
Synopsis | Jeda Verification Enhancements
|
State | open
|
Class | enhancement
|
Arrival-Date | Aug 30 2003
|
Originator | atsushi@jedatechnologies.com
|
Release | 2005
|
Environment |
|
Description |
A proposal on extending Verilog to add the verification layer that contains commands and constructs to be used for writting test benchs for verification of hardware designs. It includes object-oriented programming support for writing modular and reusable test benches, procedural code execution with dynamic concurrent programming support, various synchronization/mutex primitives for multi-threaded execution, cycle based test bench construction support, enhanced list and array data types for high level behavior modeling, and aspect-oriented programming support. |
Fix |
|
Audit-Trail |
From: Shalom.Bresticker@motorola.com To: ennis@jedatechnologies.com Cc: btf-bugs@boyd.com Subject: Re: enhancement/455: Jeda Verification Enhancements Date: Sun, 7 Sep 2003 11:24:27 +0300 (IDT) This proposal has an attachment which I, for one, did not receive. The attachment is a detailed description of the proposal. It can be found at http://www.boyd.com/1364_btf/report/full_pr/455.html . Shalom > A proposal on extending Verilog to add the verification > layer that contains commands and constructs to be used > for writting test benchs for verification of hardware > designs. > > It includes object-oriented programming support for > writing modular and reusable test benches, procedural code > execution with dynamic concurrent programming support, > various synchronization/mutex primitives for multi-threaded > execution, cycle based test bench construction support, > enhanced list and array data types for high level behavior > modeling, and aspect-oriented programming support. -- Shalom Bresticker Shalom.Bresticker@motorola.com Design & Reuse Methodology Tel: +972 9 9522268 Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890 POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478 From: Stefen Boyd <stefen@boyd.com> To: etf-bugs@boyd.com Cc: Subject: enhancement/455: Fwd: pdf file attachment for BTF en#455 Date: Wed, 10 Sep 2003 22:32:06 -0700 --=====================_1004346313==_ Content-Type: text/plain; charset="us-ascii"; format=flowed >From: "Ennis Hawk" <ennis@jedatechnologies.com> >To: <stefen@boyd.com> >Subject: pdf file attachment for BTF en#455 >Date: Tue, 9 Sep 2003 19:30:31 -0700 > >hi , > >Jay lawrenece requested a PDF version of the file that we attached with our >donation so its more readable and suggested i send it to you so you can >replace the existing one with this one. > > >regards, > >Ennis Hawk > >Jeda Technologies > --=====================_1004346313==_ Content-Type: application/pdf; name="Jeda_v2005_proposal_1v0.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Jeda_v2005_proposal_1v0.pdf" JVBERi0xLjQNJeLjz9MNCjk0IDAgb2JqDTw8IA0vTGluZWFyaXplZCAxIA0vTyA5OSANL0ggWyAx Mjc5IDMwOSBdIA0vTCAzOTc3OCANL0UgNDk5MCANL04gMTggDS9UIDM3NzgwIA0+PiANZW5kb2Jq DSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB4cmVmDTk0IDIxIA0wMDAwMDAwMDE2IDAwMDAwIG4NCjAwMDAwMDA3NjggMDAwMDAgbg0KMDAw MDAwMDk2MSAwMDAwMCBuDQowMDAwMDAxMTA4IDAwMDAwIG4NCjAwMDAwMDEyMjggMDAwMDAgbg0K MDAwMDAwMTU4OCAwMDAwMCBuDQowMDAwMDAxOTI2IDAwMDAwIG4NCjAwMDAwMDIwMDkgMDAwMDAg bg0KMDAwMDAwMjExMiAwMDAwMCBuDQowMDAwMDAyMjYwIDAwMDAwIG4NCjAwMDAwMDI5NjEgMDAw MDAgbg0KMDAwMDAwMzA2NCAwMDAwMCBuDQowMDAwMDAzMDkzIDAwMDAwIG4NCjAwMDAwMDMyMDAg MDAwMDAgbg0KMDAwMDAwMzIzMCAwMDAwMCBuDQowMDAwMDA0Mjg1IDAwMDAwIG4NCjAwMDAwMDQz MDcgMDAwMDAgbg0KMDAwMDAwNDQxMiAwMDAwMCBuDQowMDAwMDA0NjE5IDAwMDAwIG4NCjAwMDAw MDEyNzkgMDAwMDAgbg0KMDAwMDAwMTU2NiAwMDAwMCBuDQp0cmFpbGVyDTw8DS9TaXplIDExNQ0v SW5mbyA3NyAwIFIgDS9Sb290IDk1IDAgUiANL1ByZXYgMzc3NzAgDS9JRFs8NjFkY2M5YmQwN2Zk YzViMDA4ZjY5NzMwZDU0ZDE0YWQ+PGI4MTFhN2ZjNGMwZDFjODQ1NmFlNmU2YjEzY2FhNmM2Pl0N Pj4Nc3RhcnR4cmVmDTANJSVFT0YNICAgICANOTUgMCBvYmoNPDwgDS9UeXBlIC9DYXRhbG9nIA0v UGFnZXMgNzYgMCBSIA0vTWV0YWRhdGEgNzggMCBSIA0vT3V0bGluZXMgMTAwIDAgUiANL1N0cnVj dFRyZWVSb290IDk3IDAgUiANL1NwaWRlckluZm8gODMgMCBSIA0vTmFtZXMgOTggMCBSIA0vUGFn ZU1vZGUgL1VzZU91dGxpbmVzIA0vQWNyb0Zvcm0gOTYgMCBSIA0+PiANZW5kb2JqDTk2IDAgb2Jq DTw8IA0vRmllbGRzIFsgXSANL0RSIDw8IC9Gb250IDw8IC9aYURiIDUzIDAgUiAvSGVsdiA1NCAw IFIgPj4gL0VuY29kaW5nIDw8IC9QREZEb2NFbmNvZGluZyA1NSAwIFIgPj4gPj4gDS9EQSAoL0hl bHYgMCBUZiAwIGcgKQ0+PiANZW5kb2JqDTk3IDAgb2JqDTw8IA0vVHlwZSAvU3RydWN0VHJlZVJv b3QgDS9DbGFzc01hcCA1NiAwIFIgDS9LIDEwMyAwIFIgDS9QYXJlbnRUcmVlIDU3IDAgUiANL1Bh cmVudFRyZWVOZXh0S2V5IDE4IA0+PiANZW5kb2JqDTk4IDAgb2JqDTw8IA0vSURTIDkyIDAgUiAN L1VSTFMgOTMgMCBSIA0+PiANZW5kb2JqDTExMyAwIG9iag08PCAvUyAyMTMgL08gMjYwIC9WIDI3 NiAvQyAyOTggL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxMTQgMCBSID4+IA1zdHJlYW0N CkiJYmBgYGZgYPnPwMrAwNrEwM2AANxAGRYg5IhAEjyvXJMlcHGKbIuDu1iLjNvkJTW5zpqKmgkM t3O33c79dgWopK10D0FUkfr6RHo0BB1P3cPAkEEcMmtgYIOhDJxuAQITBobajUCaD4j5wS4XY+BW b/ii0f7UT8TBIpRRQIWB1bCIuXEGWDKFgYFtCZBmASJ5IG0K1P6LARw2bDxwz1swMLSwAWkRoIQS RAggwAAcWEk0DWVuZHN0cmVhbQ1lbmRvYmoNMTE0IDAgb2JqDTE3OSANZW5kb2JqDTk5IDAgb2Jq DTw8IA0vVHlwZSAvUGFnZSANL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXSANL1BhcmVudCA4MCAw IFIgDS9TdHJ1Y3RQYXJlbnRzIDAgDS9Db250ZW50cyAxMDggMCBSIA0vUmVzb3VyY2VzIDw8IC9D b2xvclNwYWNlIDw8IC9DUzAgMTA1IDAgUiAvQ1MxIDEwNyAwIFIgPj4gL0ZvbnQgPDwgL1QxXzAg MTA2IDAgUiAvVDFfMSAxMDQgMCBSIC9UMV8yIDExMCAwIFIgPj4gDS9FeHRHU3RhdGUgPDwgL0dT MCAxMTEgMCBSID4+IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdID4+IA0vSUQgMTEyIDAgUiANL0Ny b3BCb3ggWyAwIDAgNjEyIDc5MiBdIA0vUm90YXRlIDAgDT4+IA1lbmRvYmoNMTAwIDAgb2JqDTw8 IA0vQ291bnQgMiANL1R5cGUgL091dGxpbmVzIA0vRmlyc3QgMTAxIDAgUiANL0xhc3QgMTAxIDAg UiANPj4gDWVuZG9iag0xMDEgMCBvYmoNPDwgDS9UaXRsZSAoTG9jYWwgRGlzaykNL1BhcmVudCAx MDAgMCBSIA0vRmlyc3QgMTAyIDAgUiANL0xhc3QgMTAyIDAgUiANL0NvdW50IDEgDT4+IA1lbmRv YmoNMTAyIDAgb2JqDTw8IA0vVGl0bGUgKGZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1 LXByb3Bvc2FsXzF2MC50eHQpDS9EZXN0IFsgOTkgMCBSIC9YWVogMCA3OTIgbnVsbCBdIA0vU0Ug MTAzIDAgUiANL1BhcmVudCAxMDEgMCBSIA0+PiANZW5kb2JqDTEwMyAwIG9iag08PCANL1MgL0Fy dGljbGUgDS9DIC9TcGRyQXJ0IA0vUCA5NyAwIFIgDS9QZyA5OSAwIFIgDS9LIFsgMCA8PCAvVHlw ZSAvTUNSIC9QZyAxIDAgUiAvTUNJRCAwID4+IDw8IC9UeXBlIC9NQ1IgL1BnIDQgMCBSIC9NQ0lE IDAgPj4gDTw8IC9UeXBlIC9NQ1IgL1BnIDcgMCBSIC9NQ0lEIDAgPj4gPDwgL1R5cGUgL01DUiAv UGcgMTAgMCBSIC9NQ0lEIDAgPj4gDTw8IC9UeXBlIC9NQ1IgL1BnIDEzIDAgUiAvTUNJRCAwID4+ IDw8IC9UeXBlIC9NQ1IgL1BnIDE2IDAgUiAvTUNJRCAwID4+IA08PCAvVHlwZSAvTUNSIC9QZyAx OSAwIFIgL01DSUQgMCA+PiA8PCAvVHlwZSAvTUNSIC9QZyAyMiAwIFIgL01DSUQgMCA+PiANPDwg L1R5cGUgL01DUiAvUGcgMjUgMCBSIC9NQ0lEIDAgPj4gPDwgL1R5cGUgL01DUiAvUGcgMjggMCBS IC9NQ0lEIDAgPj4gDTw8IC9UeXBlIC9NQ1IgL1BnIDMxIDAgUiAvTUNJRCAwID4+IDw8IC9UeXBl IC9NQ1IgL1BnIDM0IDAgUiAvTUNJRCAwID4+IA08PCAvVHlwZSAvTUNSIC9QZyAzNyAwIFIgL01D SUQgMCA+PiA8PCAvVHlwZSAvTUNSIC9QZyA0MCAwIFIgL01DSUQgMCA+PiANPDwgL1R5cGUgL01D UiAvUGcgNDMgMCBSIC9NQ0lEIDAgPj4gPDwgL1R5cGUgL01DUiAvUGcgNDYgMCBSIC9NQ0lEIDAg Pj4gDTw8IC9UeXBlIC9NQ1IgL1BnIDQ5IDAgUiAvTUNJRCAwID4+IF0gDT4+IA1lbmRvYmoNMTA0 IDAgb2JqDTw8IA0vVHlwZSAvRm9udCANL1N1YnR5cGUgL1R5cGUxIA0vQmFzZUZvbnQgL0NvdXJp ZXIgDS9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nIA0+PiANZW5kb2JqDTEwNSAwIG9iag0vRGV2 aWNlUkdCIA1lbmRvYmoNMTA2IDAgb2JqDTw8IA0vVHlwZSAvRm9udCANL1N1YnR5cGUgL1R5cGUx IA0vQmFzZUZvbnQgL1RpbWVzLVJvbWFuIA0vRW5jb2RpbmcgL1dpbkFuc2lFbmNvZGluZyANPj4g DWVuZG9iag0xMDcgMCBvYmoNL0RldmljZUdyYXkgDWVuZG9iag0xMDggMCBvYmoNPDwgL0ZpbHRl ciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAxMDkgMCBSID4+IA1zdHJlYW0NCkiJnFZLb9s4EL4L6H+Y m5yi1cOOI8fbLTZ+HFIgQLcVtgc7ECiKlrmRSS1FOzHa/vcdSnL8ku3tyj7Y0sz3GFKcce+U5jNC NXz44N5pTeicJTBxQ5nDozsYyBeY+D0Igh60vcDxrrsQ9AJ8FK5zBu5nknJBNJcCPn4cjIaWB+aj UvzBwXK/sAyfrthQZlLxBdOKU1DcGoSWG/qRBz6EM+u2TLoFQ9TzHD+AcGG1Zjxjfdd1Rz/cT+PR nbtqe17X/cQSEpU/3+dK5rIgWeSvPEe/6Kvwb2scWuOHoeUaWzRjxtXD8H6E8JW+f1AY0tz4bQi6 N6CY9e0tiItC/UqoX9nzy2/QDZzOTafUOpT5WvF0rmHaotMrrJXXASMVQkbnAkFTzgq4F9SBuyyD MrZA+oKpFUscI92D922nDeHIaoVzXkAi6XLBhIY5KSBmTECuWE4Urk+8bgaHmVQ1lF9DUSkKnjBV LRIm6jmD+/F4DH7n5hqepXriIoVUyWUOSERQFJULJE6qlBoyfGu1uKDZsjA3udDyAKnQBFPUkRff QWVayWRJDd6BPIDS62YpIWEFVTxGOwZds0LHTNA5ZGTNlNFywPoXUxz9w/QNe9FMGHEOvHL4NUd9 bXy0HazcBjnOJH1qULXLXsYA6kTXRc4on60P9D1zPediI6dBwoYb4OtaaPJyxAhbtKji6/d/32aZ y36NsAHXVOCby7Eq+0HmmmAdZ2SZ6YgapKjSzGm1oo+NGblUOsp4ofG5/Zt9HPIdVkRxEmcskioy 4QXTUcJoRurd9fMwyY4Zng8NWLhZNDObuzhKwY13kGBubZ2fqSyctV2X86DoAA2xDRtol+VX0O0/ 9tbqOyQKj5moIIscC2kwqrKdtnQUf4qqjsSQ/fr92P+7A3XB5xbwtL0yxgaWpHXkBOziiT3b5oxg KVp+PGvvvxizq6DzLOZWwnI9P8e8z72FO8mMp5KJss9W1BZIdzkqlnhmbMLOyNq+iSdlTVvoUpYv IW4p+93230/z9KqJYp9kE3+KAp8nHFtBubknEHMdKSJShoX+5e3cwL3FPumRi3ypL5RULvXlIC5k HdPUFHaU7R/6lGC/ZLiZTGfTHA+spDzmsUWadoXuywJigxW1FWyfR1aISssuXjjwbY49XMgakTLT UGZyKZJ3B82kOv5j04erRriVqHEue81fYFPNmHM49zSMcwOptVzsTnRd6HR6TtfrgX99epz7EzYT UPt4VHM8/9r/f6Majkk+yBnC4LA0uXVvXZyXOv3pm07Q97vw+eFxx9S/AgwAlELzKQ1lbmRzdHJl YW0NZW5kb2JqDTEwOSAwIG9iag05NzUgDWVuZG9iag0xMTAgMCBvYmoNPDwgDS9UeXBlIC9Gb250 IA0vU3VidHlwZSAvVHlwZTEgDS9CYXNlRm9udCAvSGVsdmV0aWNhIA0vRW5jb2RpbmcgL1dpbkFu c2lFbmNvZGluZyANPj4gDWVuZG9iag0xMTEgMCBvYmoNPDwgDS9UeXBlIC9FeHRHU3RhdGUgDS9T QSBmYWxzZSANL09QIGZhbHNlIA0vb3AgZmFsc2UgDS9PUE0gMCANL0JHMiAvRGVmYXVsdCANL1VD UjIgL0RlZmF1bHQgDS9UUjIgL0RlZmF1bHQgDS9IVCAvRGVmYXVsdCANL0NBIDEgDS9jYSAxIA0v U01hc2sgL05vbmUgDS9BSVMgZmFsc2UgDS9CTSAvTm9ybWFsIA0vVEsgdHJ1ZSANPj4gDWVuZG9i ag0xMTIgMCBvYmoNKADeQjKaGdTu+Tw8Ls1RUecpDWVuZG9iag0xIDAgb2JqDTw8IA0vVHlwZSAv UGFnZSANL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXSANL1BhcmVudCA4MCAwIFIgDS9TdHJ1Y3RQ YXJlbnRzIDEgDS9Db250ZW50cyAyIDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8PCAv Q1MwIDEwNSAwIFIgL0NTMSAxMDcgMCBSID4+IC9Gb250IDw8IC9UMV8wIDEwNiAwIFIgL1QxXzEg MTA0IDAgUiAvVDFfMiAxMTAgMCBSID4+IA0vRXh0R1N0YXRlIDw8IC9HUzAgMTExIDAgUiA+PiAv UHJvY1NldCBbIC9QREYgL1RleHQgXSA+PiANL0lEIDExMiAwIFIgDS9Dcm9wQm94IFsgMCAwIDYx MiA3OTIgXSANL1JvdGF0ZSAwIA0+PiANZW5kb2JqDTIgMCBvYmoNPDwgL0ZpbHRlciAvRmxhdGVE ZWNvZGUgL0xlbmd0aCAzIDAgUiA+PiANc3RyZWFtDQpIiaRWbXPaRhD+zgz/Yb+RZLBewBiMk0wM 9oek9TRtmeaD8TCHtMDVh06VTthM2//evdMJSYjYnRZjRtrb29vn2bdzrxPFVyxQ8P69e60UCzYY wr07kzE8uJOJfIZ7fwTD4Qh63tDxzgcwHA1pabaPEdyvbM0jpriM4OPHyc205YH+S9b0wKHl/oKC Vnc4lUImfIsq4QEkvDWZtdyZv/DAh9mqdWk2XYI+aOQ5/hBm29abFRc4dl335i/3y+3Ntbvred7A /YIhW5jHsziRsUyZWPg7z1HP6u3s99btrHV7N225GlYgUKO6m36+IfO5f3+QY3TMhd+D4eACEmx9 ewfRq476uaN+Ds833+Fg5PQv+sZXAH24B2e+Q4o3WjDbIKSKKdxipFJ44mrDI1giEeZiFELMeAIk UaSnMFVLjIINLIUMHklZCFItjfasUXzGIFMUIabMRmMu4tEa5MoIUr7NRB4QlgJfAVfAU+jwiCvO REdbnL3Tpg6+aScYbGWYCXQaMMoN1xDLRNEJ64iJ73kesAg2bIfE7AoTWkAI9EIXUraNKSDzNovC Bq4wIe4hjTHgKx4Y/1MHvm1QuxbiimVC5YbqShpbiIFgieZk3jaslC4fedfVbCwxkFtMjfeF5brN lUyAUQC0hoY8b1dYyOGnkEUCU2I4CvmOhxkx8oJj6mDLCokFrfUS3bfPhrB0XIrKpyo0qlii5RPR 82h5pKrAcE18PuIT9ArmC2mIsdqQuBEEgPkbAhRnmmpNViTp8X4w9h4gZIrB/C1cNTzWn6pjkCfl Cev649RVGwLMk6MQ0OsBqLXYO1i8hi1ul5jAKosCQ7qBvwgOmUglFFAkKQS0SGA0NJnkwBoO2sRW 0rJIuUIlxPK0c5oFXoddOdqwqCDGhMvQ79qXkF568KEutmW52DGRYZcSTQtD6kV70vQ04Q3UNi/G JwimqDl1PwZe1/zr7+nwlRh+1flLBFSrvDP98afpDx2dzRlljymNTHHB1d6Wo+1rtuxqDpUpSngw caglkp2if1iLRHcgM0KtqOtSWLqAKnBgsi8dK6rU+GIKS2PUDW7cpAdytSMefI8YMD81JnL7xi2b LnKHyVPClSL7y70pWxqOurzruSVEs3ZLMvuOYTHFZpZZuYZBTReDDYt4utU0LLMopDLVR/5GOSLk +tBsKCskqZOI2ouANfUPmcVOJXiflUFgW07ut+CUv6aZHRnUp/FU0pzAehOft0uLq0Ruq/gLEzQo UJwoh0oi7SPFnk8laAF+PP5QL/uOXaFMC2kkURulsrZxzzlf1Ntr56pz3En+NOYXOQW51t9Hp1A7 KQ56pZwbpqzLjZbG5cIUzH1B0CIighYxox77ULj5QsMsaNW7wOyyQO2ICmQUYd7dKGpaIpCt6GeH ZUzSedsEtpoRjUny6iBRdOe7OgmyiFus4NO/HTNGetaz42be7lVLznJnBoym0IwXCDPlmKcTmrp1 mxF3tFaG9P9OpmNlO5uqN8oTF+WJVIoKpXJXHkC/P3IG3gj88+9flH+G4m7Za16CHc8/9//bJZhm eE9fBv0RNbn7S/fS9frQH8/b/eHYH8DXu4cKqH8EGABkI3fcDWVuZHN0cmVhbQ1lbmRvYmoNMyAw IG9iag0xMjAxIA1lbmRvYmoNNCAwIG9iag08PCANL1R5cGUgL1BhZ2UgDS9NZWRpYUJveCBbIDAg MCA2MTIgNzkyIF0gDS9QYXJlbnQgODAgMCBSIA0vU3RydWN0UGFyZW50cyAyIA0vQ29udGVudHMg NSAwIFIgDS9SZXNvdXJjZXMgPDwgL0NvbG9yU3BhY2UgPDwgL0NTMCAxMDUgMCBSIC9DUzEgMTA3 IDAgUiA+PiAvRm9udCA8PCAvVDFfMCAxMDYgMCBSIC9UMV8xIDEwNCAwIFIgL1QxXzIgMTEwIDAg UiA+PiANL0V4dEdTdGF0ZSA8PCAvR1MwIDExMSAwIFIgPj4gL1Byb2NTZXQgWyAvUERGIC9UZXh0 IF0gPj4gDS9JRCAxMTIgMCBSIA0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gDS9Sb3RhdGUgMCAN Pj4gDWVuZG9iag01IDAgb2JqDTw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggNiAwIFIg Pj4gDXN0cmVhbQ0KSImcVm1v2zYQ/m7A/+HQL0kKRy92HDtZWyBvA1osRbYK64coMGjpbHOjRI2k nRjYj9+RkmzFUrphcQBR1PF4zz0P7+hfKcMXLDHw4YN/ZQxLVpjCox/JAp7862v5Ao/hFCaTKQyD iRecjWEyndCnaFsg+A9syXNmuMzh06fr25teAPanljTg0PN/Q0FfN3gjhVQ8Q6N4Aor3rqOeH4Wz AEKIFr0Lt+gC7EbTwAsnEGW94wUXeOn7/u3f/pe72yt/MwyCsf8FUzZzw9NCyUJqJmbhJvDMizmJ /ujdRb27+5ueb2ElAi2q+5vPt+S+jO8vCoy2OQ+HMBmfg8Le9/eQ/2ugYRloWMIL3f9kPPZG5yMX K7g/zFMbQwCnoTeE6Lacp1mD2swxT1a7z+Hus52K3rvxd25WPAezQtitgLmQyZ8DN7mQQshnni+B oC8Vy7JyzDNuY9fAFELcZxvGBZsLbAdjJCDTeLBFInNt1DqxPHrwgxjPPHiod4OUGQaGZKApMNVw J9gWVeVluN/7bXQQH7M8hUQwreF5xWn+mQsBcwR8KQTjOWmS+EEVn8T9AXTgOsjOqxgTlltXa42p 1wLXSD+pYVkSCaencHa6YWKNMOcGNpgYqTq45bnBJapyxWhobaup136Z2Pl1LxumeM1QbWVIdjsr ImolReomD12VhgdGtG/tmqJuLqGA9qiGFao68Pg4x+f4pGlPUrBJLO2rlzreTnu+zEt8NiQiopDW u7LhMXpRxmsue1P+0cpxpBxfCWExSOvdTIoLp4Gd5GjahlUqJkV6KleFWhTFx9/Q6Rou4hPP7qHw SIOWlLFCYe3YOSIh07na8JQm5lsHZR/d76i4kEvQW20wI7/VoFppnbckXyXP4tGkH9xnkygYuFOD LywrqM51EEAP+KlDc3b+I7zLWYbvdgb7TW3CqRLQeSqJKavCWq+ZEFtY0QdB+JiuadKWJ4uVmgDZ VEDj/hJymaLXPmwV33tUrIvxPaCfD2C+rgq1O0vtzC4tIdW52E9/BC5nTgANg6skQe2kUEXvDGxi yziARo14qQqkMkeqLmYFR97XI5AFKhb3CceAKg+JA74Ct+lrwa5PjCuWjM6UWTFDR45UpNG9kqJ4 gYIERZIszKpdbP5rVmwhepxcBk8OTzBwj7Chhq7z40wpTbuUeUGHfkpPTSvyC74PNi/J1vZMQrTh cq1bYUVOJTbjJUBaUx14ynS21sYmWBeY8AUnjdn+jIpER7JYV02HMhT3XY5SyigRlblz6+1hfKs0 VdapnaL8isZdJSKWHJd0UsticOQFFZ/kIe5D1WsELgxpIEWQi1Y2nO61dZ0Rh16HPJvZ/EhtP+hg oQ5+7MEvnLLQcvP5sO25FjkgmW0bNa1WqCtn5RllIKxDq9dW7Ef200wujvb92/uhvrqbXuVl38po MHO7dhWf2nrXJGhwaN0lzvKglnQ6c6KvrkmOxg1nkGE2pwgW69yVbH15eKPruKheS2Nk1ryrjmE0 mnrjYArh2dsX1V+hvtsN25dQLwjPwv93CaXOMCKlkZv4BB4v/As/GMHoMu6PJpfhOTzcPzVA/SPA AFuyXFMNZW5kc3RyZWFtDWVuZG9iag02IDAgb2JqDTExOTAgDWVuZG9iag03IDAgb2JqDTw8IA0v VHlwZSAvUGFnZSANL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXSANL1BhcmVudCA4MCAwIFIgDS9T dHJ1Y3RQYXJlbnRzIDMgDS9Db250ZW50cyA4IDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFj ZSA8PCAvQ1MwIDEwNSAwIFIgL0NTMSAxMDcgMCBSID4+IC9Gb250IDw8IC9UMV8wIDEwNiAwIFIg L1QxXzEgMTA0IDAgUiAvVDFfMiAxMTAgMCBSID4+IA0vRXh0R1N0YXRlIDw8IC9HUzAgMTExIDAg UiA+PiAvUHJvY1NldCBbIC9QREYgL1RleHQgXSA+PiANL0lEIDExMiAwIFIgDS9Dcm9wQm94IFsg MCAwIDYxMiA3OTIgXSANL1JvdGF0ZSAwIA0+PiANZW5kb2JqDTggMCBvYmoNPDwgL0ZpbHRlciAv RmxhdGVEZWNvZGUgL0xlbmd0aCA5IDAgUiA+PiANc3RyZWFtDQpIibRXWW/jNhB+N5D/MI9JEOvw JcfNgcTJwy4QYLsw0KJ2YNASZbOhJC9JX0F/fIeUrcNSnEXRVQJYIGe++eYkZT8IxULiK7i5sR+U Iv6CBjC2R8kSXu3Hx2QLY7cPnteHluNZTqcLXt/DrdFuScH+RuYsJoolMdzdPT4NGw7oPzHHFwYN +zvluLumw4QngkVUCeaDYI3HUcMeuVMHXBiFjWujdA3aUN+xXA9GUeM8ZJwObNt++sf++vz0YK9b jtO1v9KATM1rcymSZSIJn7prx1JbdTH6u/E8ajy/DBu2dsvnVHv1MvzyhPApvx9IDM303BZ43R4I 2vjjEuJPibopUTd1zzX/XrdvtXttwxVAG3eg6Voo+KQXAJYruZicTy7g8Az0mgISA+U0orEClYBa UPxZQhICZ1JlOK0MZ3YM9CEOjYMizuhyTyRZlnhogDktAYQiieqoHCBmxxgnID5gIXH9GEKSiAKR eah+K2oI6lPMSa40+BmbwEIU2V1BImBDJmdMwSpWjEMRuvIQCIgiwCRaJcGuKBuvouneYEplgDJq JWJYJBuIyC5TZbEhU/E8EerI8+8pgJbWu9hzWsk6zTGJ+Q5CdEvQ+RUaU3ROxRVILNYYF5A4r8A8 b0m0xEaq1mfJFIJNjWqaCeiCTgbYtkkNwuNKfbFmEGU8uNWYBjKrHYOHGVQaj8Ca8BX9tGwy3J4F D0KQYmoKr1/SYCoq1YzG/gI42engYCWk6VF6YGGpbSjn+teUiln0saBmFALqT844ETSo9uBKGsox EM1A5yDSGGHCebKRg5ruLydynyvYbsfdV4xD/mBEYkTDzJGDc0ftn2vvduOystYmUiY+M8Mrh6ha fn8ft1/Hrddx5wCButGKKwYBwy6MJQ7xIosqhJTjywr5tPhQJqBbrOJaNuhQK3dotNhvZQ2bJ8CE H0EGR32gxaYojlRguSzF8CiAJ+boEc6PH6Vo1oWyth7LKEIgGwwqRleDHYLaDNhRTH8C6yjANdGt 9dAteFhA13FOC1RDRDSaYQ7DVeyb4xoDjQEPWYyw2NgY/pXE12SNQirL0HpyRgQjM05LKSn5UBmP zeZhPuKWNoqE9wJ1WTHOmeGzn5G5vtlKa+TkYASYnGfDsZLFq1IY07XJxeSsBIn3Hv9taiRw/BEx h7Irrj5W5ogZm0261aRwBOSH0a9mGKAdRY/JRZix/fhUYpdO05oe/v/phBwPhinh/HCyIZ0DH1zN ODEqfz2rwoTxLDzzloJK3XzVevvonNhgs6wEbol9WxixvH9IEDBl2rngAs0MSd1EfoJHLUsvZKjs tnudosiJQ8LDtRci37ADhwiCPSfryGNPC0rNqSV1V/mZLBokePOZ4yik8Ke++vyVnq/ZpSRklAfS qpkaxZw04YbTUN3B7f0t3Ag2X+A73le2V/BubjjGAs4JnNiJWoBkAa2O+Bzm/vYzGC2XwVRp3N5/ om82ywAeMhnu9PX/RCWkAnl6gOp4ESwM09P5+qEQ0dyGocs+T/w38LV6Tpng5SWbFBh9B4jvJyLQ pbO/NyEengzW8VdKzcfXY6IUNkzh+6sL7Xbf6jp9cDsff3z9DofvlVb1w8py3I773z6ssC07utzc Pnb6+Nq+tp02tAeTs7Y3cHvw7eW14NS/AgwAXusdNg1lbmRzdHJlYW0NZW5kb2JqDTkgMCBvYmoN MTI0NyANZW5kb2JqDTEwIDAgb2JqDTw8IA0vVHlwZSAvUGFnZSANL01lZGlhQm94IFsgMCAwIDYx MiA3OTIgXSANL1BhcmVudCA4MCAwIFIgDS9TdHJ1Y3RQYXJlbnRzIDQgDS9Db250ZW50cyAxMSAw IFIgDS9SZXNvdXJjZXMgPDwgL0NvbG9yU3BhY2UgPDwgL0NTMCAxMDUgMCBSIC9DUzEgMTA3IDAg UiA+PiAvRm9udCA8PCAvVDFfMCAxMDYgMCBSIC9UMV8xIDEwNCAwIFIgL1QxXzIgMTEwIDAgUiA+ PiANL0V4dEdTdGF0ZSA8PCAvR1MwIDExMSAwIFIgPj4gL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0g Pj4gDS9JRCAxMTIgMCBSIA0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gDS9Sb3RhdGUgMCANPj4g DWVuZG9iag0xMSAwIG9iag08PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDEyIDAgUiA+ PiANc3RyZWFtDQpIiaxW227bRhB9F+B/mDfagcyLZFmy4hq2ZRdIGqNpwyIPliFsyKG0EcVllitZ QtJ/7+zyIkqi0yao5QeSO5czZ87srnMjFY9YoODy0rlRigUzDOHR8UUKT87trVjDozeAfn8AHbdv u2c96A/6tORvUgTnPZvyhCkuEri6ur0btVzQPzmlBw4t50+MaXWFIxELyReoJA9A8tat33J8b+KC B37UujBOF6ATDVzb64O/aB1HPMah4zh335y393c3zqrjuj3nLYZsYh5PUylSkbF44q1cW63Vif+5 de+37h9GLUeXFcSoq3oYvbmj8Dm+LwSM0px7Hej3zkFi6+MrSP4VqJcD9fLyPPPf7/Xt7nnXYAX4 sEkUWw81BhdOPbsD/p3+DhBsCMgE16nELNNMDYe/aDP/Vb5eWcS4wESBNT62oGb+Faz2zoe/yeTE KjJ1DjMVcYo0e2gArGsLQip3A48m8jNPQvEMT/QaxCKYTzCc4iRLMYCnXZzfdl+t6x+MtAc3d30J 5rbgatmrlutAiqz/Oc4OY3swX+RM94TKqhUEqZBqIuQk49OERLhikrNPu51u7pM/Q8hwwRKSaAYi AkUfTO/qXWYSzUIk4lhQjdPhIQ91Gk7hOme0XTIyPoZLDfgKLos61+kVjE/qWRqrhWfGFSWWRYsM trZGkwDtD8HcAKtF+YSBWGAGSi5xVyOERc14YhymNF9JCc7EtOHjbPuJExkLrhSGVQl7g0KzR0bL DEMbGrpJFPwEB/8PBbyxejWTYjmdiaUy9j9WO7h70b5Tu4lldKSrNDoFo9N64EPIuGLxktHiIQkx RgRa0CY4nSkb/krJI0SFgSItAjPyh1z7JrDECCUmQQlBRDX02sA4FCUAy7Zo28CSkJYzg3rPIsSI LWNVi6WtbHgTQSKqmDkw8iqktq2yDaN3v49+K5GWFI6PoGFb2U7UwIYPiojRO+kBNwNyGYkkWEqp N1pcY7BUhZLKdlXeWTkCJKa581nQU8q4NPOdexLsoIoWb2z4lWSHa7YYH6V0BH4XZ6EMHbtZx8Q9 y+aTgMWxNz4m4b/ec60ZdBoNNOSGYbsJQ24OftKIpW2sNljzhEdomX5aWSpEYkHA9P6Q91SJpvMx ps4XW52cQ1YSZ1fhnnkcA532AVIMzaaeJz2gpMQ6WD2uOg5NHTIakxKC8a8G2mTiMlOFHZG/IJ51 LXZDnWayDBAgZxOxVFG7iJCZZgb0qHu5TEI0WZpqLSRTItRHwYyjZDKYbfKjwECiBHNMVSnnbJMR JzQS9Wr1gpA6V3GElOVoHLoYE734uE2CUUSjkpUAy2iSJTR8FMlSKBf6Ulf2MY8wMS2ud6eBq7pv ZVlNNAmlWgeSWw10lrPWwJjZJfZYa0p9T/OyMy31KTDCavxznJIh72AuXvDaunQOXPItn9ZemrXK oHnWIBfY4YhWvL02+atXpGkwajNJQZSPnf3LcMMd/1YoJRb1a34Put2B3XMH4J29fMf/A8prcefw /m673pn3c/d3Oqx7WoHegJh5vHAuHLcL3eH4qNsfeufw/uGpVtQ/AgwAcjqsgg1lbmRzdHJlYW0N ZW5kb2JqDTEyIDAgb2JqDTExNzUgDWVuZG9iag0xMyAwIG9iag08PCANL1R5cGUgL1BhZ2UgDS9N ZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0gDS9QYXJlbnQgNzkgMCBSIA0vU3RydWN0UGFyZW50cyA1 IA0vQ29udGVudHMgMTQgMCBSIA0vUmVzb3VyY2VzIDw8IC9Db2xvclNwYWNlIDw8IC9DUzAgMTA1 IDAgUiAvQ1MxIDEwNyAwIFIgPj4gL0ZvbnQgPDwgL1QxXzAgMTA2IDAgUiAvVDFfMSAxMDQgMCBS IC9UMV8yIDExMCAwIFIgPj4gDS9FeHRHU3RhdGUgPDwgL0dTMCAxMTEgMCBSID4+IC9Qcm9jU2V0 IFsgL1BERiAvVGV4dCBdID4+IA0vSUQgMTEyIDAgUiANL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBd IA0vUm90YXRlIDAgDT4+IA1lbmRvYmoNMTQgMCBvYmoNPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUg L0xlbmd0aCAxNSAwIFIgPj4gDXN0cmVhbQ0KSImcVltv2zYUfjfQ/3DenBapLnZ8TVsssQOs3bJ1 q4A+xIFBS0cWG4lUKdqxse2/75CyIlVRMGBKEDDkuXzfuZHuldI8ZqGGd+/cK61ZmGAEd24gc7h3 r6/lAe78KUwmUxh4E8e7GMFkOqGj4JgjuJ/ZlgumuRTw4cP1ctHzwPyoLS049Nw/MaXTPS5kKhXP UCseguK966DnBv7aAx+CuDezSjMwjqae408gyHpnMU9x7rru8m/3083yyt0PPG/kfsKIre3yba5k LguWrv295+iDfh18690EvZvbRc81tMIUDavbxcclmS/xfSdg5GbsD2AyGoPC3tc3IP4TqF8C9Ut6 vv2djCbOcDy0WMF+3yQXBoQHbwfOAIJlefCb1Ag6YRrkThc8QoilenCNNOSMK1id6UQhi8BfvYaQ VhoLYCDwEcqDk1G/YTTFPaagJaQ845rkEDCOkRIpY/ufRpWZ3CAUmv5mKLTTAa5felgbNP1aFB55 msIjI9MEFpg4WvCaiYiL7QlWQf47oG0QQpnlKWoqpZ2IUFlA4U4pY/nENeGomAqTYxeqmwMzBuYd 1sFGDzo/162s+0YzeFOpvKxUqwzaKvSVR/7qjBJzWW+/KDkoJdvnD4LH2N6M5LqQVGkJBbRbrZGa 9mFnqU1ptTiasv9S5bEjgFeUyzrPIROQsD2lxypiWm5TYUXUEseysA4Y7myTb1iBURMJ7dncGmUH OjL55Sg0O3Qn0mqtayzz+ft2CPo/9U9A7iBMZfiwxmhLOjmGcF/T6HBsvscEFZ70ObWUAC40bqkg 8ZArLAri5DRdBgn+0AM6qek9xca2xqYKC9U4i3VZ4x0stzRUxAnCKUpfEzxFzRACQwgsIYIoqZnJ 5HllrQJWgyKhnClKA8RKZjQHYpstxbeJJoaRIS1oeuRSaSj4VrCUdJq2ImrMsHJCIzCmIImwgnMa H1adfO2MJ1bUeM+Nk6Y5msGWQks4wpjtUg1qZzh/jEHIJ6MVAkpHm2idmHNY/Pr74peagzX/rMhm DixSVhTPYj9z/PIElhimTNlrqumqPOQl3AzDhAleZCaY5Qw2/pThwQVBjZhmoM2tZ4JcqmSb1StU TZuaFQ9uvBOhbRc79DMym+9SZi8BMxqpBIUunoj4hLOqlufwGtirXupqM+qU0Mj3ge4XQVc6TVfo X/Y7+w7gLwse1XrPFGcb6sKo4eefbg8NNUNzXdHs0K1buI8iKpG16dZyP1MB9s2NV3Az9cHKQ9Mq nu6DLmCldHZcl4vLTsrU9zS8FA3xTmpPGTNyduha4Reit8EtF+1JBbXe+4arpgj+2Dh2o/LcAauK XK0zo9Nbm4FWoZkmK9rvn45n3bXUmoZG42U3guFw6oy8KfgXLz/r/oDqJTR4/mRzPP/C/39PNnr6 jM3E8ad0/93N3JnrDWE4X70aTub+GD7f3jdI/SvAALLfCP4NZW5kc3RyZWFtDWVuZG9iag0xNSAw IG9iag0xMDkxIA1lbmRvYmoNMTYgMCBvYmoNPDwgDS9UeXBlIC9QYWdlIA0vTWVkaWFCb3ggWyAw IDAgNjEyIDc5MiBdIA0vUGFyZW50IDc5IDAgUiANL1N0cnVjdFBhcmVudHMgNiANL0NvbnRlbnRz IDE3IDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8PCAvQ1MwIDEwNSAwIFIgL0NTMSAx MDcgMCBSID4+IC9Gb250IDw8IC9UMV8wIDEwNiAwIFIgL1QxXzEgMTA0IDAgUiAvVDFfMiAxMTAg MCBSID4+IA0vRXh0R1N0YXRlIDw8IC9HUzAgMTExIDAgUiA+PiAvUHJvY1NldCBbIC9QREYgL1Rl eHQgXSA+PiANL0lEIDExMiAwIFIgDS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSANL1JvdGF0ZSAw IA0+PiANZW5kb2JqDTE3IDAgb2JqDTw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTgg MCBSID4+IA1zdHJlYW0NCkiJvFZbj+I2FH5H4j+ct7mIyQWGCczsrsTAPOxKU23btPtARsgkBtx1 bGo7LFT98T12Qrhspt1e1IBQ8OWc73zfOcf2R8qwBUkNvHnjj4wh6YpmMPVjuYYX//FRbmEaDiCK BtANIi+47UM0iHAq3q0p+B/JkglimBTw7t3jZNwKwH7UEl8YtPwfKMfZDR1LLhXLqVEsBcVaj3HL j8NZACHEi9bQbRqCdTQIvDCCOG9dLhin977vT373PzxNRv6mGwR9/wPNyMy93qyVXEtN+CzcBJ7Z mqv4l9ZT3Hp6Hrd8G1bKqY3qefx+guZLfL8iMHRzF3Yh6t+Boq1P1yD+EmhYAg3L8EL3jfqR17vr OayAz0gti5wKo2EhFZgVhZzmc4qvRH/2F4VIHU8pETCnkNGUE4Vcf2FmBaPvfnx/MwadtM0OUdtI ArgJvS7Ek9K63glDtl49E9Yzdii+Lt+ftiRfI23Vsu6RAXA4EJtMLoEJA0Qtww5ojFQs7Z8uJFcN ju0zpyjzsZ/yyeRMS+RqZS08nM9TkZ0O4YCF0IDtJ10QzneA1JCKRWAajCJCL6hliWhg5kLDhvCC ehBL0Cukz9HMZYraJW0pOk3MXWyIugBiMNB5YajeK1BotCsPHv8rbtHd/8IvOA/wFhPy33D/hPmH SeqoV2QHmLucaQMGC7zkSq5t4jqBkLY9c6gIEQ3x1AIa6VixyzLYp79G7VAyaxzkwslXb8gLbY5R 58SkK6Bb7E7omglczSwijQnwughzJ4INYYYODkIouoRp/z54cVpMXzpOqLN1Sbs3vX5BoZoS6U+U 8r5h6G9oMjqqgzMFVpJn2DwWpOCmXuRXtO7/N4Cvkl7mzBjbdVYUfdSGXFnZktPUlKZOZ86lQUsE UpTTEKv0iphDXzNU5Uwgr9hBiXESpzJfM16eEwa76wk3I5d2h1CsJSENrMjmDMZXTA29How50Rp+ JoqRObbOieurpSubeGMLUhUu+Y69fioJSN1uDBwdMUGzTonXjQqS23RH8FgIdhjzXkFGDHH524Gk bT00kM3wEGCOnJSWxqtmT0pDmz1a1/ztamvwlazOd7MSD7aX00o/jaHBX8fZRp1M1VFpvjY7SC5F wXly1UGGknbm1G0Kw6rMXXdF6PMdCsO5bUUXgn65qEs6uSSfq2SwPEuVXL0SiQ3gLeDmhjAsLXam PicRrc2CSpey/PfKZAeROyWqpI24GkKwJjXDvr2rQ3F29mZrNRshO2QnqOos/yZUiAkJxv1NffIY Tmmgui9YTB2XvMb6t5aqKqopts31mEKsN8MIZ7+h/KYxlNHJ9uMScz8E+6MplCg7M56TZ32nIYBy 3/7S0yh4FdY+gR9eaaq2+c6xGT/A+RWu4Wb6KI2R+fHltA+93sDrBwMIb1+/mX4P+8tc9+tbpxeE t+E/u3ViNUX2KAsHeGpMh/7QD3rQu8eTJLoP7+Dj88tRUH8IMADQ8E8hDWVuZHN0cmVhbQ1lbmRv YmoNMTggMCBvYmoNMTEwOSANZW5kb2JqDTE5IDAgb2JqDTw8IA0vVHlwZSAvUGFnZSANL01lZGlh Qm94IFsgMCAwIDYxMiA3OTIgXSANL1BhcmVudCA3OSAwIFIgDS9TdHJ1Y3RQYXJlbnRzIDcgDS9D b250ZW50cyAyMCAwIFIgDS9SZXNvdXJjZXMgPDwgL0NvbG9yU3BhY2UgPDwgL0NTMCAxMDUgMCBS IC9DUzEgMTA3IDAgUiA+PiAvRm9udCA8PCAvVDFfMCAxMDYgMCBSIC9UMV8xIDEwNCAwIFIgL1Qx XzIgMTEwIDAgUiA+PiANL0V4dEdTdGF0ZSA8PCAvR1MwIDExMSAwIFIgPj4gL1Byb2NTZXQgWyAv UERGIC9UZXh0IF0gPj4gDS9JRCAxMTIgMCBSIA0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gDS9S b3RhdGUgMCANPj4gDWVuZG9iag0yMCAwIG9iag08PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVu Z3RoIDIxIDAgUiA+PiANc3RyZWFtDQpIiaRW227bOBB9N+B/mDcn3VQXX2I7bQrYTh5aIEW7ENCH qDBoaWxxVya9En0D+vE7JGVZtuUukI0ThOYMZ86cOby4o0zxOYsUfPzojpRiUYIxvLqBXMFPdzyW O3j1B9DvD6Dt9R2v24P+oE+mYL9CcL+xBRdMcSng06fx06Thgf5kCxpwaLh/YkrWDU5kKjO+RJXx CDLeGAcNN/CnHvgQzBtDs2gIOtHAc/w+BMvGzZyn+OC67tMv98vz08jdtD2v537BmE3N8P0qkyuZ s3TqbzxH7dRt8FfjOWg8v0wari4rSlFX9TL5/EThLb5/CBiluffb0O/dQ4aNH+9A/CdQ3wL1bXm+ +e13+07nvmOwQvEzX4vIsCFwG94AFwp2EN7CB43Ng/e+04bg6egPMENiUFuDd9VpMrAMHmn1B7i0 oojPJ2nqkLzI1T7LVWLTqDJk8VSneAOycu2jAfk2gEcTGaKU5XktbIW5mqGIElgyLq6i1SXNapAs 91MTG+ZS1pivlKidH4sWkkh0/+AKqRSDXGmBc2AlvKn6nwO9IIYmjjWWi3y7qOo6MXVwkSsmIgSe Q8JEnNJuZTkwWEniADNQSSbXi0SuFQ3xyJ8DPxIMm4Jca6CVYcObbcIJCUtTGTFF0XWUmCkGW64S Q8qtTp4rmWmrBCYk+WRVrBuWcTZL8Q7UVoKJpIWXJyzD3ETM2bIIm6tsHal1hk49x9UW3tUKrmzX hcWK1PYeXNcA4GJxDcFv+Sf6hJZ+CpFc7YkozRn1HOT8Mm4Z0pIlEGOM74D4J5Q1/BtuD6zRt5Sy UC6FJqRJSGn0uOyUSpgii1C0LwynYdPkrmI25W1Yusb8CruWIY3KskQk1SQ21FObbQerGb5KVUBR CRVqFtD/WAoEKVJaTYMUN5g68FkVsbVedcqC/bB5wf8RImncRrV4SONC5aQD0je3jCxxOSPhl+xx Hd5KRtElRRoMmwme9LJYYnhO2MYWq/8Ou8hwdmeSX9PMKepDZGa3na34gvGh0y328fOOCsnPzsJR ATtigo4mQO1DurHq+Bv3W5nF0LLTecuBgDJpHqPiaKBdyMOmyvXuraHySFZO8sVdhCsFLb0709bB QHqdZ3IJnKKsqNdCOTAS++O6ZgGuipsOApxzQUjpiDZ9SngaF7DWIkWNTrVIFkhz+thokbvOWvhT prBpctWK1AZa7sujoKDgeDb89l6oPfqNBbHGcnJP5uulDX56Q1y9G7X/o0n5x5Xw/+ty7FTq090v JRKd3g5auMcWnluLFtJc2OQL3bfzp1PNi3AslSJhVB6FPeh0Bk7PG4Dfvf4i/A6HR1T78rXneH7X f9trjyQ80GeTPyDNvg7doet1oPMQNjv9B/8evr38rBT1rwADAHVzESENZW5kc3RyZWFtDWVuZG9i ag0yMSAwIG9iag0xMDQ0IA1lbmRvYmoNMjIgMCBvYmoNPDwgDS9UeXBlIC9QYWdlIA0vTWVkaWFC b3ggWyAwIDAgNjEyIDc5MiBdIA0vUGFyZW50IDc5IDAgUiANL1N0cnVjdFBhcmVudHMgOCANL0Nv bnRlbnRzIDIzIDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8PCAvQ1MwIDEwNSAwIFIg L0NTMSAxMDcgMCBSID4+IC9Gb250IDw8IC9UMV8wIDEwNiAwIFIgL1QxXzEgMTA0IDAgUiAvVDFf MiAxMTAgMCBSID4+IA0vRXh0R1N0YXRlIDw8IC9HUzAgMTExIDAgUiA+PiAvUHJvY1NldCBbIC9Q REYgL1RleHQgXSA+PiANL0lEIDExMiAwIFIgDS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSANL1Jv dGF0ZSAwIA0+PiANZW5kb2JqDTIzIDAgb2JqDTw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5n dGggMjQgMCBSID4+IA1zdHJlYW0NCkiJrFbbbts4EH034H+Yt02KRBc7jp30AiSxC7RAgG4hoA9R ETASFbOlSC1FOzawH79D0pKlSNoWi3UCR+HlzDnDmSP6N0qzjCQa3r3zb7QmyZqm8OBHsoDv/u2t 3MFDuID5fAGTYO4FFzOYL+Y4Fe0LCv4X8swE0UwK+PDhdnk3CsD8qGd8YDDyv1KOs1t6J7lULKda sQQUG91GIz8KHwMIIcpGV3bTFZhAi8AL5xDlo5OMcXrt+/7yb//zannjbydBMPM/05Q82sfzQslC loQ/htvA0zt9Gv0YraLR6v5u5BtZCadG1f3dpyXCO35/ITEMcxlOYD67BEVH396A+CXR0BENnbzQ /s5nc296ObVcAT9MAGV6TRWkTNHEJiU+2RTnCSk1EJFCKl+E/S8+9eCjVMeBM8CNkPB4TMoStMmt URPAeehNIFq6CIlUBlhQXMNKwKNKfuJpEQ1qIzSyBoIT2swJqRGOEgUss9gFUVTgVDwWpSYicQGi NwfuJawlT5l4tovpTlORInTCDR9WbZEOK6Wlro4dg5uhJlgi84JxN21YeZWWSUOLWWfBMykf3RO8 7dFsP57XCoAfpGc3/RvyE1EHZKenGet/C6UxF09UJGvYSzkMe4ycmWWvY0CDLD79YsEAAsVe7Ixa uPcg6MthT1eCo4eLXGTfh6poh9RYCu8PUnB9XcddVpi99hgO1Dk74E8b+N/WVNiKMoyzjXB9ZKqd cE7TM8A/nfmyqsxyU2D/xWObKFr2CcA+OGC52jVftkhX24HIMs+Z1rieiWabnrU7SP9RYmNkZMN1 GyE++bExBsC5TIimsCWKkSdOy/j0qMuDTxnyrsI3kWuglkZXCqmkrtc1+YndL/Yo73mTY6eXGNc4 jGMUjzEs33SavqS4VdY5rTfHp9aRhGVnXMEG9ZBafOJop1JQYHk8LjhLmOb7FjT6nuDWpvRRI7Zh vbhK5ZrxFCrYSqmxx55SHSgN0cnKGm2wluKsleUuNCaipyba6gxbeGH4ZTL7RJ1WY+BHysdAmD67 IR6zdvk31L7gewHM6wop1sTwyA11m56SnnWVZVIhXRxumWsjfEJERVG6EvUgamb1iJWbEkwO54yo Ll0tYAOJNdzadnD3LVV7yJhCDHwTaJrbVwnmXrfXx+MBr39t9UM+2XXfRv2bSPEJxtWwAzynt12z GzLBAegee3JjVcyOdQ2/CX7jnTPkpz3UWqJ7hA7qbJRyYHIExp+Pp28KFg/09VmitZgtY1v/fbC9 2etJXiN38NvJW+0SWuhOA7iWUDSjeHXB2wd2mrNfk8yc5k9YwbUT4b3GlmPftcluKBNsP5AqxfTA DQiC1yXrgETZO6/p0drgrb2bjsfbE3ZYy47lRqQHd6w3H3qhYUIewFeK7suEsU9Suz4yaKKRjpE1 G9yakKIFJ0Y+TjrazZS8vvT23OVvpdYyb17nZzCdLrxZsIDwYvgu/ydU199J957uBeFF+N/u6djE V6biwgUW28OVf+UHU5hex+Pp/Dq8hC/33xui/hFgAGyzpH0NZW5kc3RyZWFtDWVuZG9iag0yNCAw IG9iag0xMTUzIA1lbmRvYmoNMjUgMCBvYmoNPDwgDS9UeXBlIC9QYWdlIA0vTWVkaWFCb3ggWyAw IDAgNjEyIDc5MiBdIA0vUGFyZW50IDc5IDAgUiANL1N0cnVjdFBhcmVudHMgOSANL0NvbnRlbnRz IDI2IDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8PCAvQ1MwIDEwNSAwIFIgL0NTMSAx MDcgMCBSID4+IC9Gb250IDw8IC9UMV8wIDEwNiAwIFIgL1QxXzEgMTA0IDAgUiAvVDFfMiAxMTAg MCBSID4+IA0vRXh0R1N0YXRlIDw8IC9HUzAgMTExIDAgUiA+PiAvUHJvY1NldCBbIC9QREYgL1Rl eHQgXSA+PiANL0lEIDExMiAwIFIgDS9Dcm9wQm94IFsgMCAwIDYxMiA3OTIgXSANL1JvdGF0ZSAw IA0+PiANZW5kb2JqDTI2IDAgb2JqDTw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMjcg MCBSID4+IA1zdHJlYW0NCkiJrFfvb9s2EP1uwP/DoRiQpEj1w47jOC0KxEkKNEC2bjWwD1ER0BIV s5VEj6StGNgfvztSsiVbabdiSeAIFPnuvePdI+1fKSNSFht4986/MobFC57Agz+TS/jiT6fyGR7C CxiPL2AQjL3gbATjizG+mm2WHPxP7EkUzAhZwPv305vrXgD0q57wQUDP/4Nn+HbNr2Umlci5USIG JXrTWc+fhY8BhDBLexO7aAIU6CLwwjHM8t5xKjJ+6fv+zd/+3e3Nlb8eBMHIv+MJe7SPb5ZKLqVm 2WO4DjzzbE5mX3u3s97t/XXPJ1lxxknV/fXHG4R3/P5CYhjmPBzAeHQOivf+fA3FD4mGjmjo5IX2 bzwae8PzoeUK+GMWHHKez7mCUpiFKOxIvBBZAqLQhhUx9+BXaTi+YAY/hAYt8mXGiXkAb0JvALMb h6Z4wlNRCJvbUmQZFNLg6DJjMbfI6aqI6a3G0ZQrjvBJIzJhzl47ML1aIqs4Y1qDMJpnqQefOYeJ N4Lf1lyVSiCrDxUgpFJVauIFK4TOm1hGtlhYaIdcE9rx0R5U0gY7aRT0aq6Noqq7ppVN+O2biq0G Vj0mHP+rSiMcsWriETCDuzVfGX4KrMBcm6gPHRklqCyTJSKghlgWhmGmapgt++hYRydQLkS8cEu0 3IWO+jZ4k3AXEczuCpezXUrylTYw520RcmVsDlnUj82KZS3c7dK5TDZWmJ3qJtqxA0yUg7tblRwl LepXO1CDzgiinWFbi1U29GE6IDquqVJQTA2SZciqVWAr7bKqlzwWKdIFw7GwGVaVTF0fUDDPEXAa 2gLNIuojkSZoLJXieimLRBO2aXLvSCx2y2EOEFTv5eBj1YvETNttaifEqdtm9RRwR3Ewy0TxBAUv o+PopKqwGjIRisdGqg3xpCKLmXHtUTc+lRI1cFWBVSLcTJJhJEJaNk3cPWZbMI37gfJkkW0sVVlw mGPWtRZPBdHcpUBE/WrVXhMLg1u7WqIybaKTrkY9JIBmkOPOve3ortZsw/Q3mDP1Dd629BxOSqVM DibxIolrXzigVJmBfAL+bDjVxg9YNcjscwHMHh5gh8MAvyRCYwFvomN4NZUllLJ8BVj9h4Is3/1B HKK4nQqgKf0F0v+S2S0zLhcE9l/41QS/n/nQCxustmLqwYl33nF8dGhu2c72VMENRB22a9lcrm2P oJGkqwztl7vjc4ktWBh6g9aLYXDHu7zddo51MmEPSfQNXEalsYu7FryknmeguaEHOf+KXYvu8Fni gY+NktMJ0rag7SGUKc7QpmoOtSc6A9lFoV5GC8pFkbjTqOTY2DnbtGBLhpqwB10FE2d7rHwlL1Oc YlATU1fXPufBHb5sYtQXBJzIyJZ2lljdPBw4Txq2hnlPMr5/O6CJqsAOIpOrnXYXeIoyRdrcjW1W alck8+bQeXydVouOcLZM7B5rQ9eZ3Vp0YiXoHpm1NNA5jquaoO561elVH/DOwp8Z3aYu4aB821Xu +Fdivmsb2FY/7RoVPkGQVv5/9Cfs7KyL18vEnJKO2HXw5sW54/vAVBoj8+ZXghEMz4beCC/S4dnL 3wd+h/oKPTi863tBeBb+3F0fz64woCYOLzCpDxN/4gdDGEb9y+H4MjyHT/dfGqr+EWAAPpnK/Q1l bmRzdHJlYW0NZW5kb2JqDTI3IDAgb2JqDTEyMzYgDWVuZG9iag0yOCAwIG9iag08PCANL1R5cGUg L1BhZ2UgDS9NZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0gDS9QYXJlbnQgODEgMCBSIA0vU3RydWN0 UGFyZW50cyAxMCANL0NvbnRlbnRzIDI5IDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8 PCAvQ1MwIDEwNSAwIFIgL0NTMSAxMDcgMCBSID4+IC9Gb250IDw8IC9UMV8wIDEwNiAwIFIgL1Qx XzEgMTA0IDAgUiAvVDFfMiAxMTAgMCBSID4+IA0vRXh0R1N0YXRlIDw8IC9HUzAgMTExIDAgUiA+ PiAvUHJvY1NldCBbIC9QREYgL1RleHQgXSA+PiANL0lEIDExMiAwIFIgDS9Dcm9wQm94IFsgMCAw IDYxMiA3OTIgXSANL1JvdGF0ZSAwIA0+PiANZW5kb2JqDTI5IDAgb2JqDTw8IC9GaWx0ZXIgL0Zs YXRlRGVjb2RlIC9MZW5ndGggMzAgMCBSID4+IA1zdHJlYW0NCkiJzFdtb9s2EP5uwP/hUAxwGth6 sZPITooCTpwBLRCgW4X1QxQEtEzb3CTSIyknAfbjd6ReTNtKuxYDtiQfFPL43PPcHe8kfyo1W5JU w7t3/lRrkq7pAu79WGzgwb++Fs9wH44hisYwDCIvODuHaBzhVvyyoeB/IivGiWaCw/v317ObTgDm V67wgUHH/5VmuLulNyITkuVUS5aCZJ3ruOPH4WMAIcTLzsQemoBxNA68MII475wsWUYvfd+f/eV/ vJ1N/e0wCM79j3RBHu3jYCPFRiiSPYbbwNPP+m38e+c27tze3XR8IyvNqFF1d/NhhvAlvz+RGLq5 CIcQnV+ApJ0vp8C/STQsiYalvND+ReeRN7oYWa5Q/1C+0ET9YagEMAi9IcSzehv30owoBb5vnkEs ofx/QyTlGqpDw71DpUW6ZtkC6LPGc439VasXAEMAlkKUBvGpQw/mFBN2vAzw04KpTUZekhN4U3oz CCnJMrp4A8lbuILjY8jmcNEJwG65Vt6i8MuaciCVQMaVJjyllV/QawrLgqe2wOZE9u1KJd8i9hTy TLoiOUGKTLVEpIJaSpHb0whjjRtcukUGpf81MXBif1/SRdKl6A0fvL0gVNwbS6aMcWUKT0yvoSe2 VD5JpmkPiMaqmhealjKsy17SVXuY+2BLilLTmj7TvSb5yPSJZpn3zap5JP+0bhqq//8KGjnUP3AM J0YrJQoj+2RyUgrFYB0l29rtCqKKUJOFg6jU9dh381oXyAHUoSsPPhfpGkjS5bvItmY6L5TG0ttS WxaK5BSIXBU5SlAmz2a1RmB85YjhSdfsuqildO+oKiZeBL8RyUShYFoXoql2CTe2WGZWn+3lLt60 riWCN5DCfnXb+ymyTDwZXk19q8uDTJ8CmSstzZgBGAyqfFlcfGj2yhWCrTEnL5AKrglmwO4nXWtR S29jmNN8TiVsUSSZZ/S7KOMFV0ecM4H5Lf+pOdfghrbg2QsUqgJm3FHVesFOAQeWpqnGE62AzXbf xsDiOy2gynYTOcxc2zV07pa99niy4eSqW+Lg/oq6ctvwKGFMtHaVwAWGzGkYTLe0oYPENGX7PaV0 2B5fyYt7v/+VvLiA/3leXDI/khcXfrd3DO8MgGbMYhNNhZRUbYR1hvDuJXR6cRhgy3tRmuYQY/8u L/LPle1x6CtTDO6WmWCYnq/8Gru5vTaRBYZLWlLYXPQc474GnDRUekn3qPCQRwh3MUj0j315+SoD d9jiWDT2OU5HXN8PmqS6kMiICz7gdGXfE42DOQ6cykv7BEfQokS9akccDQdzhkZcsRVHnRXlhmlY Md2dRnFD+IyXA9O+RuvMHQhflajKQ6qYV084p+u1vuWKs05quO+bZ6ysBzuzD1+qW74VroXWyNr5 XDiH0dnYiy7GEJ69/q3wC9Sv18Pj7wAvCM/CH/sOQGVhaN6uwzEquJ/4Ez8YwSjpXo6iy/ACPt09 OKr+FmAA2Gva7Q1lbmRzdHJlYW0NZW5kb2JqDTMwIDAgb2JqDTExMTMgDWVuZG9iag0zMSAwIG9i ag08PCANL1R5cGUgL1BhZ2UgDS9NZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0gDS9QYXJlbnQgODEg MCBSIA0vU3RydWN0UGFyZW50cyAxMSANL0NvbnRlbnRzIDMyIDAgUiANL1Jlc291cmNlcyA8PCAv Q29sb3JTcGFjZSA8PCAvQ1MwIDEwNSAwIFIgL0NTMSAxMDcgMCBSID4+IC9Gb250IDw8IC9UMV8w IDEwNiAwIFIgL1QxXzEgMTA0IDAgUiAvVDFfMiAxMTAgMCBSID4+IA0vRXh0R1N0YXRlIDw8IC9H UzAgMTExIDAgUiA+PiAvUHJvY1NldCBbIC9QREYgL1RleHQgXSA+PiANL0lEIDExMiAwIFIgDS9D cm9wQm94IFsgMCAwIDYxMiA3OTIgXSANL1JvdGF0ZSAwIA0+PiANZW5kb2JqDTMyIDAgb2JqDTw8 IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMzMgMCBSID4+IA1zdHJlYW0NCkiJnFdtb9tG DP5uwP+BKDDMCVLJsuPYSV+AxAmGdgvWtQL6oSqCs0TJt0p36t3JiYf9+PFOkl9ip17qxIDto/g8 JB9SlH+pDE9ZbOD1a//SGBbPMYEvfihL+OpfXckH+BJMYDyewKA/9vqnIxhPxnQULksE/wPLuGCG SwFv315dTzt9sH8qow8cOv5HzOl0gVOZS8ULNIrHoHjnKuz4YXDXhwDCtHPuLjoHCzTpe8EYwqLT S3mOF77vX//rv7+5vvQXg35/5L/HhN25jy9LJUupWX4XLPqeeTBH4d+dm7Bzczvt+DasOEcb1e30 3TW5r/l9J2IEcxYMYDw6A4Wdz8cgDhINaqJBHV7g/sejsTc8GzquUL8UmkoJDQx0NdPkQ2TARYIP lNPZErRhygATCSC9S8mF8eDzHIX7zjXIqFtwYzA5AW5ghrEsUIOZozWw4fXhZeANILxeQcrUnddg 1iQ8rs/SSsSuMIRij3MUUa+xAw3REbzaNN9gb/2RdWbm2969J90zI/kB57EUC7TRt1ZG2ksxQwUL lle417nCDNiMm8GMH2K/BiD7DRD7bYGxkQdx5vjwLByy/ykcGT8vHrJn+QEkEsZgJYyg7w1hurT6 b5H3iGerghmau9hd8YjHpijiSikk49ow6jFNLCthLC/qREwytIqZ/vHn9Hf6QZno6BG3IPDg01Ib LGCaM61R7xALCcigNjMU8RxytiSBxExApZHCVVxWGnTtggbAgifUW3Hty9vNROAFcBvCR2o6WdR2 e/vIorpTUM70rrA5EagYcYFSY5XI5sixYDPKwIxRzEAZvEWloy4KgRDec+Km4DLPaJCYeeHBdkKj 3idWILAaqTBRj4rf1oI+WiapzHN5b9NaYDEjb+05jRaFUXcV+QWsogmaaFY5CDbHBByv6y3wnrTn xgIS/zc00Vr97c4X95oSslGVk1zrpplcKxc0vjIaoOLESSXBlFW5RaC8JLVO4Z7nOU01W8rkcVq2 GFpuTbIft0VTLUJbWbd1olYRLrzMjfJ1uQj7IFxVW9tqPAuxEppngkLcQmtyOdzK5c0DK0q6p+2o tOm0lfAUvV/tELa/vmmKNzo/nYyGrmy7dlgiI1nRGLCFfbKsJc0Tk5Ldi32S/yV5cWIhvXVe1nBb gqtfmywCC3ZDWjB7wd1J0222sxtFkOoVdTZ1vZKC/1NvFayQdujNFbJEe7A3dXs7xjD9TftbfXOo a7bVYR0AzdzM3qGebo7f1lJojL1aLO2lrehpx7KivKeZwEU7TqOuG6iaF1VeB2xo+QCdS7OrwqhX iRwpadz8SpnLkWJKoqMGL6sYlcqgWxgYiQhjJEBFl/GUlo6ou6T6OTY07B2BhuIuEt2mmEocVrMB SJWQq+YL7TNx5dg2P9T18Z6b1jsaeL0fKHQ3t255+oZY2v2IgiQKtFQZfJRzhQXjUdeWvc66vUnl 9prdWPkqlT/BP01/II2pdbvBncrgKqfRPB+qrHKapf8vWzTRCmf/hCTtpinyJWCaYp0fQ5vnRiVr BZFZS4rl9uflbvbuGTf1llsrw7V2e4P04J3Th0KKWsjG+clae3RvUJBwzcrSpooXBSacQsiXdYI2 t/k9DylX0hgauRvPKSMYnk688dkEgtOnH1L+gnavH+w+gHj94DT4uQcQajV6rqCeCCbUal/O/XO/ P4Rh1L0Yji+CM/hw+3Ujqv8EGABGI/FiDWVuZHN0cmVhbQ1lbmRvYmoNMzMgMCBvYmoNMTI4NiAN ZW5kb2JqDTM0IDAgb2JqDTw8IA0vVHlwZSAvUGFnZSANL01lZGlhQm94IFsgMCAwIDYxMiA3OTIg XSANL1BhcmVudCA4MSAwIFIgDS9TdHJ1Y3RQYXJlbnRzIDEyIA0vQ29udGVudHMgMzUgMCBSIA0v UmVzb3VyY2VzIDw8IC9Db2xvclNwYWNlIDw8IC9DUzAgMTA1IDAgUiAvQ1MxIDEwNyAwIFIgPj4g L0ZvbnQgPDwgL1QxXzAgMTA2IDAgUiAvVDFfMSAxMDQgMCBSIC9UMV8yIDExMCAwIFIgPj4gDS9F eHRHU3RhdGUgPDwgL0dTMCAxMTEgMCBSID4+IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdID4+IA0v SUQgMTEyIDAgUiANL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIA0vUm90YXRlIDAgDT4+IA1lbmRv YmoNMzUgMCBvYmoNPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAzNiAwIFIgPj4gDXN0 cmVhbQ0KSImkV9tS20gQfVeV/qHfFlJEFxuwYQlV+JJa2JCwibbygFKuQR7Zs5E0yszIxlv5+O0Z SbYFghgWeJDlme7Tp09fcC+EYjGJFJyduRdKkWhOp3DrBjyHb+5gwO/h1u9Dr9eHjtdzvMMj6PV7 +FWwyim4N2TGMqIYz+D8fDAaWh7oXzHDBwaW+5km+O2CDnnCBUupEiwCwaxBYLmBP/HAhyC2Tsyl E9CO+p7j9yBIrb2YJfTUdd3RT/dqPLpwFx3PO3Kv6JRMzOPbXPCcS5JM/IXnqHu1H/xjjQNrfD20 XB1WlFAd1fXwcoTmS3w/EBi6OfY70Ds6BkGtr28g+yVQvwTql+H55q931He6x12DFUA79+Ct7+DB kX5R/ryBuMgiQxDLFMhVFsHv67OdxlmAJWEKYi6AAAKYzahwIJhTUHNByRSWLEngjiJqWaSYpuWc ZpujENpMgqToRnG8QoEu8IN2FrzZ9rIggpG7hDpwqdCWKkQmMb4iR5CCRpQtWDYzBtYgtg6Gtlc6 VkgT8EIBj6JCSOcxBQ9dt5AxwSQREe6F+y8i5asGgK8x4IqMA/3RGJPb0BGu1GQQhJklK3xisqbz MTNl9FQ2gw/0nYgg9xHJNP+FRPKR4wjNKIq45iSbynlok+8UUhrhRybTlxOCtRd9f5YLA2V9x5yX gM630sjiRvws20ghtDVhWOwY4wFwfC+WTNI2Hkpr3g4xtAaxQ1pfE0sN3sG0XjbSXb5vSen68rKS zIwq+aS4PeNy4y60M67WTnfhQhH53ZQGVka4VzKyQqCTiBf4vDshkqoSZl1mCUu14st8ZkV6hxB5 DMMPn4Z/QhTa2osDX6hSuny9ip02RratLkhSUKcC1dkC5ftOF62lJJ9zQVtRr79FX0TKRnnogk0L Re+BpNy0E11z8sBkWFf+XPCMhfa/Znqsue00HOjeF/Mk4UsdEpaWCbqmCNWArnEKLNiUTk+fq66M LqtkFBmS+A619UwmhmhbiSJSfOPMgWFd7XIdNsNzJIsodmY1N7zO2CK0UWjajQMjGpMiqZxicmuE /st7A8r2BRE0pUSUommuZc+1nRpoBRNiwVPzrg4MI8CqMLUn6G8SaMaL2bw8/FhPOvZKlWtmDszH OmxZ3CmBRaS7tE6//q4Gp3tSiv2bIbfYn9e177R42oKky3IbVjsA3bRZLb7Q3kzQvNBXkA4C7y/f f2rx9aOgBS3FWsicZqgw9KRYYgwL+qNgwrwqQyQLwpJyqOrZhFE1qswMZlVG/9iXPiZgxnHw8DjG ToWbjxl7iN3MtZf04/aZ8krlVF15k8wHND+USWjXGTloZLkl6FoUv1QjbQ6F0mVoPxKCYeqZWWaE qpNRMbsTl6ad58Xra08r7UGE1XbWTmJoV/DqLUUHX3HfopwGT2xdqrr7qq3FsTJJqpGCyz2vSCyF XmarPlb7eXJP2iyiOGN0tyexomIjkzq32539lyy3DM3/Py6J3G1clu7eoUpaBuaUSV3asuHgiZl5 CJ/prEiIgPF9jrup1ODGGf6bRGGop2TTvp5w5fAUdEbvc2CyajClEboxkus2LjJIiYrmGjM1VkO7 3lCNGXy4Mympiu4Rd09YL43BFBfFhOd4/24Ff2coWiGZWmnmAo4TG7WLW529FAzBZPrQHzQTK/iC LTKioszXJjwzFyVHxm6oSI7QId6SZnaHe3j5AxF4+Su26XD/Ycf/yBUtN/ePnwLQ67eGXtqJcRQX CN1sALLIcy5wupTtqaZCL4k7bBWvXyq0TE0yULK4L2hjkhciwmqqPlY5Dfef+Z+vKWO8R59UgHF2 0GiHoW22ZFlEEaVTPWC1o3Fgja+HlnshFIt1jz07cy+UItjOp3DrDrhS2GS/uYMBv4dbvw9H0D3s O73jPviH+D5Y5RTcG4KSMOsZnJ8PRkPrL7AGgeUG/qSDLTCIrROsFw9OAC30HM8/xJeptRfj+Dp1 XXf0070ajy7cRcfzjtwrOiUT8/gW2c25JMnEX3iOuseteM/vaon5faTq9sQ9cb0udEP7tNs79Y/h 5vrbVlT/CTAAQ4v8eQ1lbmRzdHJlYW0NZW5kb2JqDTM2IDAgb2JqDTE1NDYgDWVuZG9iag0zNyAw IG9iag08PCANL1R5cGUgL1BhZ2UgDS9NZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0gDS9QYXJlbnQg ODEgMCBSIA0vU3RydWN0UGFyZW50cyAxMyANL0NvbnRlbnRzIDM4IDAgUiANL1Jlc291cmNlcyA8 PCAvQ29sb3JTcGFjZSA8PCAvQ1MwIDEwNSAwIFIgL0NTMSAxMDcgMCBSID4+IC9Gb250IDw8IC9U MV8wIDEwNiAwIFIgL1QxXzEgMTA0IDAgUiAvVDFfMiA1MiAwIFIgL1QxXzMgMTEwIDAgUiA+PiAN L0V4dEdTdGF0ZSA8PCAvR1MwIDExMSAwIFIgPj4gL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gPj4g DS9JRCAxMTIgMCBSIA0vQ3JvcEJveCBbIDAgMCA2MTIgNzkyIF0gDS9Sb3RhdGUgMCANPj4gDWVu ZG9iag0zOCAwIG9iag08PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDM5IDAgUiA+PiAN c3RyZWFtDQpIiaRX227bRhB9F6B/mIcCllOLF8m6ODVc6OIACeDWSVQEqOkaK3IoMSF3meXSlIt+ fGdJUaIp2nGStR8ocubM2Zmdy5oTqQKfuQrOz82JUsxdowc35kLEcGtOp2IDN/YYRqMx9KyRYZ0O YDQe0afFQ4xgXrNVwJkKBIeLi+l81rJA/8kVPQTQMj9gSF/vcSZCIYMIlQxckEFrumiZC/vOAhsW fussVzoDbWhsGfYIFlGr4wchvjZNc/6f+e5yPjHve5Y1MN+hx+7yx24sRSwSFt7Z95ahNup48bl1 uWhdXs1apt6WG6Le1dXs7ZzgC35fiRiZGdo9GA2GILH16RXwbxK1C6J2sT07/x8NRkZ/2M+5wm4J SQJCrVFmQYIGaFIWdG2DAOZaUL9YvNqrvAI/5W7uwoSs8hXEEiOm3LXTcY7htx1AbwtQrsU6SPa6 ElUqeQJkeQdQAvpSROWH+0CkCUTMaZcWXBaGP8ZTJOoniZYIzzB12uynmSpi8HNMc23KjGc8qpx2 lefWSK9m5JDckrlfJPpOBwKugKcROMc/ypAgClpMIqeHBJMqV6e9Z9vAtV81tyAN5JTeCGQSNwq5 Rw7IAkXREhGC8HPUa5ThgJis0pBJkiOPJIkm56MOXUo/KzGrGfBFGIpMeyGJ0Q1YCO6aSSpHKEm/ 0AbaCyRpHAup0Nth1R07Ex5CdV3lIUsabdMyoLYm/KFi3ekE3A1Twjwy+RE5qn7KHIfVAcgBFLzO EjFuVOA1hT8wg1A7+FBU1kRnTMqArXAb8gYNVdNYsGWDlF+TeiOIso8U2ENZrMleJi6Lm8h6dUeA F6wCdQIJo3PCErixume3DYrzA0VOBydXbpDODqQzIb19zJwOC+M1owxCqt7OccU+6/7rtCfdv++e IPKpichj9Mo5GuuqP6/qJ4fU1oHCJGYu7iEqhHI03Vl6RWfpOL1Tq3y37Tb9gTEcUDdZeK2OeoG8 ZYxLcf594vL7xP3Chd3+mHKqSCyv6o2PTd7sNnnkqeR0HKuGwdMwrOk9DuF5QmWEOn5+ei7AFZJq Ryy4l7eqSj0kgJSK3sOupjdgqUzoTq7WEqnQuYoKU4m7o5BXQl0Bi+/3LEybkmNzLijDNRhhrnHz DJD++hSMe/6x2N+s1Lugklfdoyu4kqLupIZK+bGspTBJEpS6kyQHFmH/cffmChnXlp7sTgD/PApa WYKZyve3RGonOcK2d2w74KFtgF+eA6JW1ADRnJyF+5ZPoOU5vhQp95h8yGu3yhD5i9JzaPTKjMiA ce9FSvssyrY9ontKI+9hGhW8p028ceNirA7pfzPe71PGadwPUDYFfP919+oD4yt8Lt40z1SXpQ96 JKhhKxqim4zQ+vXRL/slKr8fWrFz+ZJbObrYPYMOLs0S6oB08ZpUAyoF5Ay6PqwkiyJ9fJzO5M9r igdNOgw4tWVKptzHxTy151RVoqLCKJkjA97yfMSEBPO57CQ/maywFyElJKf5k/KcStiSTu/Gacch o8a/nWYK6Dd5waEChorR1cfbcaCTTuxOqPXTHYXeB9ynrs0KS3GILNFjgY9yj1Xs9Z2m+1mTyHBJ IxTVX9pplmVGwe2zIeTKOW4Yqf7iYfAFS5gT0nJTqUso+Yi4VDa1HTipsqslcppAQ/ZAByhIDvwv t1csqrxJEBFv8pui+ZMD8zw9YEpGW6aBS4+ktM0j5t0HLh6BEo9jEAq3uHKSY9h+GNZqJEhZEW3z pFAsRks61l79gthw750KpWhcvjWnU7GBG7oqDqB/OjZGwzHYp0/fe99DeVXsH95pDcs+tX/sTkue J7O0UXtMrr85M89Mqw99p/26P3ptD+H66rayq/8FGACvd0sjDWVuZHN0cmVhbQ1lbmRvYmoNMzkg MCBvYmoNMTM5NiANZW5kb2JqDTQwIDAgb2JqDTw8IA0vVHlwZSAvUGFnZSANL01lZGlhQm94IFsg MCAwIDYxMiA3OTIgXSANL1BhcmVudCA4MSAwIFIgDS9TdHJ1Y3RQYXJlbnRzIDE0IA0vQ29udGVu dHMgNDEgMCBSIA0vUmVzb3VyY2VzIDw8IC9Db2xvclNwYWNlIDw8IC9DUzAgMTA1IDAgUiAvQ1Mx IDEwNyAwIFIgPj4gL0ZvbnQgPDwgL1QxXzAgMTA2IDAgUiAvVDFfMSAxMDQgMCBSIC9UMV8yIDEx MCAwIFIgPj4gDS9FeHRHU3RhdGUgPDwgL0dTMCAxMTEgMCBSID4+IC9Qcm9jU2V0IFsgL1BERiAv VGV4dCBdID4+IA0vSUQgMTEyIDAgUiANL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIA0vUm90YXRl IDAgDT4+IA1lbmRvYmoNNDEgMCBvYmoNPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA0 MiAwIFIgPj4gDXN0cmVhbQ0KSIm0Vl2P4jYUfUfa/3C16gOzYvMBAwFmOhIM87ArTTWtIvVhWCGT XMDdYFPHsLDqj++149Dwke6oUgHNJP4495zr62P7I6X5giUa7u/9kdYsWWEKr34sN/DFH4/lHl7D PkRRH9pB5AW3XYj6EXXFhw2C/8KWXDDNpYCHh/HksRGA+aolPXBo+L9hRr07fJSZVHyNWvEEFG+M 44Yfh7MAQogXjYGdNAATqB94YQTxutFc8AyHvu9P/vI/P01G/q4dBF3/M6ZsZh8/bpTcyJxls3AX eHqvb+I/Gk9x4+n5seEbWUmGRtXz46cJwRf8/iRiFKYXtiHq9kBh4/cPIH5INCyIhoW80P6ibuR1 eh3LFWDDtEYlPIhXPC/fgB4TlmWU0o3kQidbbQYgLLYisVkzvWaUFNkB9Gr6Do2KAD6GXhviiUHW TC1Rw0IqGoBHoGOMNdPJioul52a2jzPDthfCKN9gYnMTfzCNYAkw2wrzTCZfTXyDvBVcg5aQyBRt gxtETSbrtt3Sv6AIp3grlkPO1zxjiuuDmW/Qkozl+bSZ4oILSggXkGORhMH0plUlOCd1CRNC0j+F TBMTSqXINRMJUqqAa8rYN5vsbd6i13L4iu0QbASXyRLSsCcAtU20VB78gjtURCrD3MwXOU9tkEJG C9a4nqOCHQlgcxp0Qs91lmtIAEykwNIdJ3aJQaE1nRseJFlh6sHFylRSRgsrZ/QMcAdXEms+tOCw b8GhBd//GdQ+G6RZ/tViGV5wVwNFyUXaslU55WcPP1NZBy7Cee+Betu1vd+pt1PTiyI9b6QmQ7dG icvkTvK0SE76L3LMBpo2gctZqmj/evbvLGWawfQGiomnfGoT8FPK803GDgT3/hrecTO/N9Bvl+r0 XFVruq9u0PMKtDXmGk3u/IqFCFNtCheokDZICt+4cZJr1XRfBJsJtsYH777Ac2/wSVR3PZvLHV7s hCrNfRmaJQntIwq8UHINcqvtdpKLE7h8WFO5rv49U3/dixqqyD4qLqt82qR1cByKlRmeL0oJfjKl UhShITOyC3RhkcWyOXM0KjjLAPdI5mtSUfhlactOJh0eKDSmV3JPx9VSsfXaWLULacCdURqXPNdJ FmlNkwKwkwIpSGDBrLDlMXlmxYKMGR6zAilXRI5OGLNAVSBJABUn886EuzhkbtqFEim31Gw6FhxP 6n1+OD2h7MmEDvXYSkdEcWOgAOVhUODXM7NCCAiet5nmm6wC55gUmLkrhypSacN2qYw7W3mE9SZX rnOeN3nypZPt6jz+R052B+D7xXXhKL3G26469P9rbqcdJ6Z2fiPpwIvjf35fu3INHUutyVIqN9Eu dG77XtTrQ3hbfw39FcqbW/vyiukF4W34366YMG2GXeNsYZ+y9DrwB37Qgc703bATDcMevDx/qaj6 W4ABAOHBQQYNZW5kc3RyZWFtDWVuZG9iag00MiAwIG9iag0xMDczIA1lbmRvYmoNNDMgMCBvYmoN PDwgDS9UeXBlIC9QYWdlIA0vTWVkaWFCb3ggWyAwIDAgNjEyIDc5MiBdIA0vUGFyZW50IDgxIDAg UiANL1N0cnVjdFBhcmVudHMgMTUgDS9Db250ZW50cyA0NCAwIFIgDS9SZXNvdXJjZXMgPDwgL0Nv bG9yU3BhY2UgPDwgL0NTMCAxMDUgMCBSIC9DUzEgMTA3IDAgUiA+PiAvRm9udCA8PCAvVDFfMCAx MDYgMCBSIC9UMV8xIDEwNCAwIFIgL1QxXzIgMTEwIDAgUiA+PiANL0V4dEdTdGF0ZSA8PCAvR1Mw IDExMSAwIFIgPj4gL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gPj4gDS9JRCAxMTIgMCBSIA0vQ3Jv cEJveCBbIDAgMCA2MTIgNzkyIF0gDS9Sb3RhdGUgMCANPj4gDWVuZG9iag00NCAwIG9iag08PCAv RmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDQ1IDAgUiA+PiANc3RyZWFtDQpIiaxX227bOBB9 N5B/GPTJuUmW7UTOpQGSOAW2QIrsroA+RIXBSGObW0lUKcpOgP34DklZlm0Z6RbrXCWSM+fMmRmS 7q1UfMoiBdfX7q1SLJpjDM9uIHL45t7diVd49kbg+yPo93ynNzwDf+TTUPCWI7hPbMYzprjI4Obm bnzf6YH+kjP6h0PH/QsTGl3gvUiE5CkqySOQvHMXdNzAm/TAg2DauTCLLkA7GvUcz4cg7XSnPMFL 13XH/7qfH8a37qLf6525nzFmE/PvaS5FLgqWTLxFz1Gv6jD4p/MQdB4e7zuuphUlqFk93v8xJvMW 3w8CRm7OvT74Z+cgsfP1CLJ3gXoWqGfpeebbH/rO4HxgsAJ9gjlCLnimolIBL0DR85K9gRKQ8+i7 eU5EZKPFshgUT3k2o/dM6UENvwenntOHYGxNsnjBI9TG8BXJLMaOdiMRGP2ouUSEFKM5y3iRakcx RokdMuaCI2unhlXkGPEptyCKS4DKab/hFOAIIpYkYReuc6YUyuwGwsMWePqjZ27QLgtKIIJiXb0Z 2ha95i2m5oUl1oRo6Jo4WJNh9wWnQjbWhodmNSu+u9Myi8yrbkFvdQC3TaVMUSZbESoSTs3WczzL YXPVEaWDKmX2a8Tt3P+ZemV0KkVqnneJtjPbI6NYoFxKrvDXKNXT/zOrHTo2cVlRscoTRo9VBPZI 2GQWHtTctjWDDdWCdRSAZzYorclOWZUBcpog4YWQ0cMrtb2WSBgYK6wZS9FCLAtdrLSOx5hRz+Rk KOyiM3OAi0ksqXk45vckZio8YLSkCVRIKKipkIkV3O3FH8yfMFwefSCJnBZJv87RUqwsVeKcUIBn JdU9UcolFoWmixl1Zmzo18I0RoWRTTxDuoGOiiXs/o1o9SsTkoXCu+unSZFaT6E7FYlt9wRisSFQ WhZKBz8Wy0xnVDPDTaSb1sLuOmTr9NDLNpaQNCfwQmpb7/qVbq5NSymmLyTWgknOXhKraWHygbBs Z/cqiSrINoM3eilTc8tgm4IDn4SODUvzBE/skEgSsdQUIhFvmIkaZRy9RTrAq/Kgts7igvYOrvRK 6oJWdExZPqeWuKfcmaagYC6Wk0TQuivYU+ZUHpWTSSRKevhIe9oVbNewnmaQVbPenfajxOubtdv+ ltuqJ+jqN9wmRCjsUplUm81WFdGoM0NFpQBXe4gACUhZvgNJf5oEj49bcBsRVridArOYMJDDiXlp gGnXLetwM72qV+u+/g73mVhTrzec3yHfFOf4I+zAP23wkxih7i57adUM9slXV50WnBFGreF70rQF nU8J6Ub+1YFoUnI3prTrh0lR75ltublPK82FK7EFT4fA1FBLBL4IhZf7Cspz4Gm16dSNlDqvyJI3 ahUZmhpeBbAwhz/blFpIradRPzBNDQsHdqj1qdusFNH2KvHKLKZWV7UCfRLMhKo2XakTqn27huYR EZmM5rpxE4Ml16c7iQva8kj4Kc/06YCSqZQFpdPKa3iga3h3y/L6zhDGTDFQ+rpAzlcHA0Jc6bZg SUn7j4jrrbqJzmx5derFtSnCVp11Y9ARMGZtzzXjZqvZvhC03HPuhFJ01mpcdc5gMBw5/vkIvOH+ e86fsLoa9HfvME7PG3q/d4ehKvbOdaC8EVXF84V74fYGMAgPLgf+JY08PX5rsPopwABYpRBhDWVu ZHN0cmVhbQ1lbmRvYmoNNDUgMCBvYmoNMTI2MSANZW5kb2JqDTQ2IDAgb2JqDTw8IA0vVHlwZSAv UGFnZSANL01lZGlhQm94IFsgMCAwIDYxMiA3OTIgXSANL1BhcmVudCA4MSAwIFIgDS9TdHJ1Y3RQ YXJlbnRzIDE2IA0vQ29udGVudHMgNDcgMCBSIA0vUmVzb3VyY2VzIDw8IC9Db2xvclNwYWNlIDw8 IC9DUzAgMTA1IDAgUiAvQ1MxIDEwNyAwIFIgPj4gL0ZvbnQgPDwgL1QxXzAgMTA2IDAgUiAvVDFf MSAxMDQgMCBSIC9UMV8yIDExMCAwIFIgPj4gDS9FeHRHU3RhdGUgPDwgL0dTMCAxMTEgMCBSID4+ IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdID4+IA0vSUQgMTEyIDAgUiANL0Nyb3BCb3ggWyAwIDAg NjEyIDc5MiBdIA0vUm90YXRlIDAgDT4+IA1lbmRvYmoNNDcgMCBvYmoNPDwgL0ZpbHRlciAvRmxh dGVEZWNvZGUgL0xlbmd0aCA0OCAwIFIgPj4gDXN0cmVhbQ0KSImcV1tv2zYUfjfg/3De7BSpZDnx JWkWIIlToAUCdJuGPkSFwciUzVYWNZJyHGA/foekJFOyvHVLgsTh5ZzvfOdK/04olpBYwc2Nf6cU iTd0Bc9+yHP45t/f8z08B3OYzeYwHs280eUEZvMZboVvOQX/C1mzjCjGM7i9vV889Eagv8UaPzDo +b/RFHd39IGnXLAtVYLFIFjvPuz5YbAcQQBh0rsyl65AK5qPvGAG4bY3TFhKr33fX/zlf35c3Pm7 8Wg08T/TFVmaj+9zwXMuSboMdiNP7dVZ+L33GPYenx56vjYrTqm26unh0wLFW3x/IjBUMw3GMJtM QdDe13eQ/SvQwAINrHmB+ZlNZt7F9MJgBfzaEhVvQG0oJEUWa06ioYzOQGmmiDI7OWeZigvlwafE LOhNjXsE7wNvDOHCylqxFWRcWZnn5iRZ7VhMISZpCq8Mf+n9Fy25dJri+pwWFr6zUiocwISgMqex thB4AnRHcdEiyMiWWj21jBqmKyxHRVRkHnzd4GUHkbGPSdhxtmpANShfauGusFemNkCyN3sZEVVQ JTKjpaO8mEhq5QmqCpHBjqSFJiBDy11hqEJSZWQyF5kHJbNjh9mPXMBAkzg4MKr1MCWbepA21w7L doerSJIgscgdkQ3uDuxXPGit+lyCPDZdGvXT9DRavqPiVTBFW5AbcLeFVBUTL29VJLSx2uuSH/mv ul4FgnHQqVCoLPMg1N4pMoUZA1QIRFsZu6LK0oJhVipacSqh5bvSBq3J2sEc73twkhN7r0VIIVm2 diNGKqLolmY2OKyGDloM5prl45BLBN/+BBl/5CusISWC2vs7Ihh5SamFkNHXUqhRWugrFKK+K7Gt 3+sgofblIcfRynhDsjVd4uUl3oyGZnEPWISsPFxJOPfWuK9Xoz586KDD5hQWdheU/WIJitjDLda/ kRbbVAi/mPUPeND3YctXLHlzrYn61vS2XJqtmku4YM37rylx5Do3LWyB6DDYLRlYlw+R0Arco2g9 b1fc7lwQNOfCKRG1z04Hebd/t0zqENd8t/xbY3ZcHPXN1ikX67s5OqvtjROuz9G7+47j1tcWWEXQ jWHn9pB/55aLmBSyXTCasf/P4XDMVDD2JnAn1oXWIg9F2xUQui1J5yAHUt6wsGznNntO0bYdqquK VurKXsWlDT/ZatS6T2Hg2YJSX8L/SKOAYLHLiZSH7ls3YyJ/+I1ZojtWDg251GHnDiIw7LHps4Sh sGj4umFopUkIx2CNBhuw9ULL0KNWFp21TUSPJ1U3c7WbRCKNMKo5R4MHWBUHpvMcCSzLBtNpm3C0 AT9Zfho1smxhsSqw7hxqcFeATOF3TQOeo/scByGp5wzdaI5DRZ/2AtOBmiFoOB7o9YHGX8iyR9ZS zm3bOmgoc0GeaMU6/zA9stiMP2YUxJE7TtHSaqGmv/RiTKyNBgtp4vuOZ+0FGCwEjnnCW+k/NVqL LxrWvcCWogpEUxoCsEJKQEfTa9jAa0dIW2mbgvQUILYsYxLHce00nf8ljQ5VDSaN9KaYbiak1YkG iLLBExdQNNT51+JJ4mCfrXUckwzrMSa/NuzYDLMs9QLOL9siVSxPfxJUI+86pzqnvOuhGbsojX8s jb9stXZfMR2Ps3uuFE4kzvtsAheXc282nUNwefpx9itU75nx8cPLGwWXwf97eCHV+GbDoAnmGF7P V/6VP7qAi6h/fTG7Dqbw5embY9XfAgwAOP9ttQ1lbmRzdHJlYW0NZW5kb2JqDTQ4IDAgb2JqDTEz MDMgDWVuZG9iag00OSAwIG9iag08PCANL1R5cGUgL1BhZ2UgDS9NZWRpYUJveCBbIDAgMCA2MTIg NzkyIF0gDS9QYXJlbnQgODEgMCBSIA0vU3RydWN0UGFyZW50cyAxNyANL0NvbnRlbnRzIDUwIDAg UiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8PCAvQ1MwIDEwNSAwIFIgPj4gL0ZvbnQgPDwg L1QxXzAgMTA2IDAgUiAvVDFfMSAxMDQgMCBSIC9UMV8yIDExMCAwIFIgPj4gDS9FeHRHU3RhdGUg PDwgL0dTMCAxMTEgMCBSID4+IC9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdID4+IA0vSUQgMTEyIDAg UiANL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIA0vUm90YXRlIDAgDT4+IA1lbmRvYmoNNTAgMCBv YmoNPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCA1MSAwIFIgPj4gDXN0cmVhbQ0KSImc Vttu2zgQfRfgfxgELZCkiS52bDlpUyCOs8AWG6C7ENCHqDBoiXLY0qKWpHwB9uN3KEqKLzKw28RG FHHmzJnLIek9SM0ykmj49Ml70JokrzSFFy8SBXz3JhOxgZdgDGE4hr4fuv7NEMJxiEvRtqDgfSUL lhPNRA6fP0+mj44P5lcu8IGB4/1FOa6u6KPgQrIl1ZIlIJkziRwvCmY+BBBlzm3ldAsm0Nh3gxCi pXOeMU7vPM+b/uN9eZo+eKu+7w+9LzQls+rxupCiEIrwWbDyXb3RF9EP5ylynp4fHc+klXBqsnp+ /H2K8Jbf30gMw4yCPoTDEUjqfLuEvOETWD6BzSKoPuEwdAejQUUJ2p+EcB6fw1RictJNzR+IL8BQ 8OE6cPsQTU/bS5pQfECHj8Yjutw1tTaQCdG1OqdY8ePXUNnfg35lCj42PPpHPGienuCIKyRdsYS+ JRHUBi1a0HoEfXeE/0qqS5l3IkaGiSpowggHuikkVcrMiXVRyJTWz7AivKQgsurdD3GYX4FvNGRl nphBcy0yfkTOt8aXpbB+pXnlXaegzXQytY9TkckYTa+A5Cm2JLcQcwqlwqlnDTkbMSl1DefCN4sf 9w4xdxJDRg1MLvLrmsmci+TnFTANa8Y5BlAl18aGQCKWBeNxjx5ASilkGxJRT8c4oLuPYwm8hU4I umJYWeYapdjEibBqKdHE1sw2YR+ojrJPwxRbEYQharfwLZIL3UNY25mOkjSdibyZAlQHjrA7JxIa XXRMqfGT2PNjaZwQRmV83+RglXFs8eFD51LD8L6OeWRSy2mneYcqesseJRPCg12s9kXs42/1UO9N FXZEYkHxq9eilZDaKk2XrQxM1YmuhriZ3zXDccHBwk8a90ycu31yl613VcdmbGac5TQ+jy9O1LzS W+u5q9+klJIikgGAvFzOcd+qZdxKiIu4lxCr3KOdBU4SVHhU5Is3juY0+CWOxhFyM6nHzGpeHYOK PVC2B6+4V2xBCzMMoATipHReLhaGHcszIZf2/EMdkK6dkJgGaquzTHAu1saTbsiy4LQCpRstia2h 2ZcqwgVmrwWS1GK3RCTf2qWsOlGalpu06mMj4USpbvFZJoBWc4HJdUus2UCJ+tlYzlKmCk62B4fY mXt55r5r1urD7z8o8t1aMo29hLM/TMrvq93svTq7Oh7Iq+P+x71qe/gfStx9bV5WVTi8K3RcgSZC a7HcvQUNYXAzdsPRGIKb01egP6G5TvSPrzeuH9wEv3a9gfgcEXCIgzFW4OXWu/X8AQzi3t0gvAtG 8PX5+05W/wowAMT20AMNZW5kc3RyZWFtDWVuZG9iag01MSAwIG9iag05ODYgDWVuZG9iag01MiAw IG9iag08PCANL1R5cGUgL0ZvbnQgDS9TdWJ0eXBlIC9UeXBlMSANL0Jhc2VGb250IC9TeW1ib2wg DT4+IA1lbmRvYmoNNTMgMCBvYmoNPDwgDS9UeXBlIC9Gb250IA0vTmFtZSAvWmFEYiANL0Jhc2VG b250IC9aYXBmRGluZ2JhdHMgDS9TdWJ0eXBlIC9UeXBlMSANPj4gDWVuZG9iag01NCAwIG9iag08 PCANL1R5cGUgL0ZvbnQgDS9OYW1lIC9IZWx2IA0vQmFzZUZvbnQgL0hlbHZldGljYSANL1N1YnR5 cGUgL1R5cGUxIA0vRW5jb2RpbmcgNTUgMCBSIA0+PiANZW5kb2JqDTU1IDAgb2JqDTw8IA0vVHlw ZSAvRW5jb2RpbmcgDS9EaWZmZXJlbmNlcyBbIDI0IC9icmV2ZSAvY2Fyb24gL2NpcmN1bWZsZXgg L2RvdGFjY2VudCAvaHVuZ2FydW1sYXV0IC9vZ29uZWsgL3JpbmcgDS90aWxkZSAzOSAvcXVvdGVz aW5nbGUgOTYgL2dyYXZlIDEyOCAvYnVsbGV0IC9kYWdnZXIgL2RhZ2dlcmRibCANL2VsbGlwc2lz IC9lbWRhc2ggL2VuZGFzaCAvZmxvcmluIC9mcmFjdGlvbiAvZ3VpbHNpbmdsbGVmdCAvZ3VpbHNp bmdscmlnaHQgDS9taW51cyAvcGVydGhvdXNhbmQgL3F1b3RlZGJsYmFzZSAvcXVvdGVkYmxsZWZ0 IC9xdW90ZWRibHJpZ2h0IC9xdW90ZWxlZnQgDS9xdW90ZXJpZ2h0IC9xdW90ZXNpbmdsYmFzZSAv dHJhZGVtYXJrIC9maSAvZmwgL0xzbGFzaCAvT0UgL1NjYXJvbiANL1lkaWVyZXNpcyAvWmNhcm9u IC9kb3RsZXNzaSAvbHNsYXNoIC9vZSAvc2Nhcm9uIC96Y2Fyb24gMTYwIC9FdXJvIA0xNjQgL2N1 cnJlbmN5IDE2NiAvYnJva2VuYmFyIDE2OCAvZGllcmVzaXMgL2NvcHlyaWdodCAvb3JkZmVtaW5p bmUgDTE3MiAvbG9naWNhbG5vdCAvLm5vdGRlZiAvcmVnaXN0ZXJlZCAvbWFjcm9uIC9kZWdyZWUg L3BsdXNtaW51cyANL3R3b3N1cGVyaW9yIC90aHJlZXN1cGVyaW9yIC9hY3V0ZSAvbXUgMTgzIC9w ZXJpb2RjZW50ZXJlZCAvY2VkaWxsYSANL29uZXN1cGVyaW9yIC9vcmRtYXNjdWxpbmUgMTg4IC9v bmVxdWFydGVyIC9vbmVoYWxmIC90aHJlZXF1YXJ0ZXJzIA0xOTIgL0FncmF2ZSAvQWFjdXRlIC9B Y2lyY3VtZmxleCAvQXRpbGRlIC9BZGllcmVzaXMgL0FyaW5nIC9BRSAvQ2NlZGlsbGEgDS9FZ3Jh dmUgL0VhY3V0ZSAvRWNpcmN1bWZsZXggL0VkaWVyZXNpcyAvSWdyYXZlIC9JYWN1dGUgL0ljaXJj dW1mbGV4IA0vSWRpZXJlc2lzIC9FdGggL050aWxkZSAvT2dyYXZlIC9PYWN1dGUgL09jaXJjdW1m bGV4IC9PdGlsZGUgL09kaWVyZXNpcyANL211bHRpcGx5IC9Pc2xhc2ggL1VncmF2ZSAvVWFjdXRl IC9VY2lyY3VtZmxleCAvVWRpZXJlc2lzIC9ZYWN1dGUgDS9UaG9ybiAvZ2VybWFuZGJscyAvYWdy YXZlIC9hYWN1dGUgL2FjaXJjdW1mbGV4IC9hdGlsZGUgL2FkaWVyZXNpcyANL2FyaW5nIC9hZSAv Y2NlZGlsbGEgL2VncmF2ZSAvZWFjdXRlIC9lY2lyY3VtZmxleCAvZWRpZXJlc2lzIC9pZ3JhdmUg DS9pYWN1dGUgL2ljaXJjdW1mbGV4IC9pZGllcmVzaXMgL2V0aCAvbnRpbGRlIC9vZ3JhdmUgL29h Y3V0ZSAvb2NpcmN1bWZsZXggDS9vdGlsZGUgL29kaWVyZXNpcyAvZGl2aWRlIC9vc2xhc2ggL3Vn cmF2ZSAvdWFjdXRlIC91Y2lyY3VtZmxleCANL3VkaWVyZXNpcyAveWFjdXRlIC90aG9ybiAveWRp ZXJlc2lzIF0gDT4+IA1lbmRvYmoNNTYgMCBvYmoNPDwgDS9TcGRyQXJ0IDw8IC9PIC9XZWJDYXB0 dXJlID4+IA0+PiANZW5kb2JqDTU3IDAgb2JqDTw8IA0vTnVtcyBbIDAgNTggMCBSIDEgNTkgMCBS IDIgNjAgMCBSIDMgNjEgMCBSIDQgNjIgMCBSIDUgNjMgMCBSIDYgNjQgMCBSIDcgDTY1IDAgUiA4 IDY2IDAgUiA5IDY3IDAgUiAxMCA2OCAwIFIgMTEgNjkgMCBSIDEyIDcwIDAgUiAxMyA3MSAwIFIg DTE0IDcyIDAgUiAxNSA3MyAwIFIgMTYgNzQgMCBSIDE3IDc1IDAgUiBdIA0+PiANZW5kb2JqDTU4 IDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTU5IDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2Jq DTYwIDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTYxIDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5k b2JqDTYyIDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTYzIDAgb2JqDVsgDTEwMyAwIFIgDV0N ZW5kb2JqDTY0IDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTY1IDAgb2JqDVsgDTEwMyAwIFIg DV0NZW5kb2JqDTY2IDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTY3IDAgb2JqDVsgDTEwMyAw IFIgDV0NZW5kb2JqDTY4IDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTY5IDAgb2JqDVsgDTEw MyAwIFIgDV0NZW5kb2JqDTcwIDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTcxIDAgb2JqDVsg DTEwMyAwIFIgDV0NZW5kb2JqDTcyIDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTczIDAgb2Jq DVsgDTEwMyAwIFIgDV0NZW5kb2JqDTc0IDAgb2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTc1IDAg b2JqDVsgDTEwMyAwIFIgDV0NZW5kb2JqDTc2IDAgb2JqDTw8IA0vVHlwZSAvUGFnZXMgDS9LaWRz IFsgODAgMCBSIDc5IDAgUiA4MSAwIFIgXSANL0NvdW50IDE4IA0+PiANZW5kb2JqDTc3IDAgb2Jq DTw8IA0vTW9kRGF0ZSAoRDoyMDAzMDkwOTE1MzgzNi0wNicwMCcpDS9DcmVhdGlvbkRhdGUgKEQ6 MjAwMzA5MDkxNTM3MTFaKQ0vUHJvZHVjZXIgKEFjcm9iYXQgV2ViIENhcHR1cmUgNS4wKQ0vVGl0 bGUgKGZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1LXByb3Bvc2FsXzF2MC50eHQpDT4+ IA1lbmRvYmoNNzggMCBvYmoNPDwgL1R5cGUgL01ldGFkYXRhIC9TdWJ0eXBlIC9YTUwgL0xlbmd0 aCAxMjUwID4+IA1zdHJlYW0NCjw/eHBhY2tldCBiZWdpbj0nJyBpZD0nVzVNME1wQ2VoaUh6cmVT ek5UY3prYzlkJyBieXRlcz0nMTI1MCc/PgoKPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3 LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjJwogeG1sbnM6aVg9J2h0dHA6Ly9ucy5h ZG9iZS5jb20vaVgvMS4wLyc+CgogPHJkZjpEZXNjcmlwdGlvbiBhYm91dD0nJwogIHhtbG5zPSdo dHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvJwogIHhtbG5zOnBkZj0naHR0cDovL25zLmFkb2Jl LmNvbS9wZGYvMS4zLyc+CiAgPHBkZjpNb2REYXRlPjIwMDMtMDktMDlUMTU6Mzg6MzYtMDY6MDA8 L3BkZjpNb2REYXRlPgogIDxwZGY6Q3JlYXRpb25EYXRlPjIwMDMtMDktMDlUMTU6Mzc6MTFaPC9w ZGY6Q3JlYXRpb25EYXRlPgogIDxwZGY6UHJvZHVjZXI+QWNyb2JhdCBXZWIgQ2FwdHVyZSA1LjA8 L3BkZjpQcm9kdWNlcj4KICA8cGRmOlRpdGxlPmZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3Yy MDA1LXByb3Bvc2FsXzF2MC50eHQ8L3BkZjpUaXRsZT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxy ZGY6RGVzY3JpcHRpb24gYWJvdXQ9JycKICB4bWxucz0naHR0cDovL25zLmFkb2JlLmNvbS94YXAv MS4wLycKICB4bWxuczp4YXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4YXA6 TW9kaWZ5RGF0ZT4yMDAzLTA5LTA5VDE1OjM4OjM2LTA2OjAwPC94YXA6TW9kaWZ5RGF0ZT4KICA8 eGFwOkNyZWF0ZURhdGU+MjAwMy0wOS0wOVQxNTozNzoxMVo8L3hhcDpDcmVhdGVEYXRlPgogIDx4 YXA6TWV0YWRhdGFEYXRlPjIwMDMtMDktMDlUMTU6Mzg6MzYtMDY6MDA8L3hhcDpNZXRhZGF0YURh dGU+CiAgPHhhcDpUaXRsZT4KICAgPHJkZjpBbHQ+CiAgICA8cmRmOmxpIHhtbDpsYW5nPSd4LWRl ZmF1bHQnPmZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1LXByb3Bvc2FsXzF2MC50eHQ8 L3JkZjpsaT4KICAgPC9yZGY6QWx0PgogIDwveGFwOlRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+ CgogPHJkZjpEZXNjcmlwdGlvbiBhYm91dD0nJwogIHhtbG5zPSdodHRwOi8vcHVybC5vcmcvZGMv ZWxlbWVudHMvMS4xLycKICB4bWxuczpkYz0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu MS8nPgogIDxkYzp0aXRsZT5maWxlOi8vL0R8L0pFREEvdjIwMDUvSmVkYV92MjAwNS1wcm9wb3Nh bF8xdjAudHh0PC9kYzp0aXRsZT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKPC9yZGY6UkRGPgo8P3hw YWNrZXQgZW5kPSdyJz8+DWVuZHN0cmVhbQ1lbmRvYmoNNzkgMCBvYmoNPDwgDS9UeXBlIC9QYWdl cyANL0tpZHMgWyAxMyAwIFIgMTYgMCBSIDE5IDAgUiAyMiAwIFIgMjUgMCBSIF0gDS9Db3VudCA1 IA0vUGFyZW50IDc2IDAgUiANPj4gDWVuZG9iag04MCAwIG9iag08PCANL1R5cGUgL1BhZ2VzIA0v S2lkcyBbIDk5IDAgUiAxIDAgUiA0IDAgUiA3IDAgUiAxMCAwIFIgXSANL0NvdW50IDUgDS9QYXJl bnQgNzYgMCBSIA0+PiANZW5kb2JqDTgxIDAgb2JqDTw8IA0vVHlwZSAvUGFnZXMgDS9LaWRzIFsg MjggMCBSIDMxIDAgUiAzNCAwIFIgMzcgMCBSIDQwIDAgUiA0MyAwIFIgNDYgMCBSIDQ5IDAgUiBd IA0vQ291bnQgOCANL1BhcmVudCA3NiAwIFIgDT4+IA1lbmRvYmoNODIgMCBvYmoNKGZpbGU6Ly8v RHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1LXByb3Bvc2FsXzF2MC50eHQpDWVuZG9iag04MyAwIG9i ag08PCANL1YgMS4yNSANL0MgODcgMCBSIA0+PiANZW5kb2JqDTg0IDAgb2JqDTw8IA0vVVJMIChm aWxlOi8vL0R8L0pFREEvdjIwMDUvSmVkYV92MjAwNS1wcm9wb3NhbF8xdjAudHh0KQ0vUyA4NSAw IFIgDT4+IA1lbmRvYmoNODUgMCBvYmoNPDwgDS9HIDg2IDAgUiANDT4+IA1lbmRvYmoNODYgMCBv YmoNPDwgDS9DQiAwIA0vQUggMCANL1BPIDAgDS9TIDAgDS9BTCAwIA0vQVQgNzAgDS9BUyAxIA0v U1UgMSANL1BTIFsgNzkyIDYxMiBdIA0vTSBbIDEwLjA4IDEwLjA4IDI2IDM2IF0gDT4+IA1lbmRv YmoNODcgMCBvYmoNWyANODQgMCBSIA1dDWVuZG9iag04OCAwIG9iag0oZmlsZTovLy9EfC9KRURB L3YyMDA1L0plZGFfdjIwMDUtcHJvcG9zYWxfMXYwLnR4dCkNZW5kb2JqDTg5IDAgb2JqDTw8IA0v UyAvU1BTIA0vSUQgMTEyIDAgUiANL1RJRCA5MSAwIFIgDS9UIDgyIDAgUiANL0NUICh0ZXh0L3Bs YWluKQ0vVFMgKEQ6MjAwMzA5MDkyMjM3MTYpDS9PIFsgOTkgMCBSIDEgMCBSIDQgMCBSIDcgMCBS IDEwIDAgUiAxMyAwIFIgMTYgMCBSIDE5IDAgUiAyMiAwIFIgMjUgMCBSIA0yOCAwIFIgMzEgMCBS IDM0IDAgUiAzNyAwIFIgNDAgMCBSIDQzIDAgUiA0NiAwIFIgNDkgMCBSIF0gDS9TSSA5MCAwIFIg DT4+IA1lbmRvYmoNOTAgMCBvYmoNPDwgDS9BVSA4OCAwIFIgDS9UUyAoRDoyMDAzMDkwOTIyMzcx NikNPj4gDWVuZG9iag05MSAwIG9iag0oc5AddNMHXUkB6gBh03G+2SkNZW5kb2JqDTkyIDAgb2Jq DTw8IA0vTmFtZXMgWyAxMTIgMCBSIDg5IDAgUiBdIA0+PiANZW5kb2JqDTkzIDAgb2JqDTw8IA0v TmFtZXMgWyA4OCAwIFIgODkgMCBSIF0gDT4+IA1lbmRvYmoNeHJlZg0wIDk0IA0wMDAwMDAwMDAw IDY1NTM1IGYNCjAwMDAwMDQ2NTUgMDAwMDAgbg0KMDAwMDAwNDk5MCAwMDAwMCBuDQowMDAwMDA2 MjY3IDAwMDAwIG4NCjAwMDAwMDYyODggMDAwMDAgbg0KMDAwMDAwNjYyMyAwMDAwMCBuDQowMDAw MDA3ODg5IDAwMDAwIG4NCjAwMDAwMDc5MTAgMDAwMDAgbg0KMDAwMDAwODI0NSAwMDAwMCBuDQow MDAwMDA5NTY4IDAwMDAwIG4NCjAwMDAwMDk1ODkgMDAwMDAgbg0KMDAwMDAwOTkyNiAwMDAwMCBu DQowMDAwMDExMTc5IDAwMDAwIG4NCjAwMDAwMTEyMDEgMDAwMDAgbg0KMDAwMDAxMTUzOCAwMDAw MCBuDQowMDAwMDEyNzA3IDAwMDAwIG4NCjAwMDAwMTI3MjkgMDAwMDAgbg0KMDAwMDAxMzA2NiAw MDAwMCBuDQowMDAwMDE0MjUzIDAwMDAwIG4NCjAwMDAwMTQyNzUgMDAwMDAgbg0KMDAwMDAxNDYx MiAwMDAwMCBuDQowMDAwMDE1NzM0IDAwMDAwIG4NCjAwMDAwMTU3NTYgMDAwMDAgbg0KMDAwMDAx NjA5MyAwMDAwMCBuDQowMDAwMDE3MzI0IDAwMDAwIG4NCjAwMDAwMTczNDYgMDAwMDAgbg0KMDAw MDAxNzY4MyAwMDAwMCBuDQowMDAwMDE4OTk3IDAwMDAwIG4NCjAwMDAwMTkwMTkgMDAwMDAgbg0K MDAwMDAxOTM1NyAwMDAwMCBuDQowMDAwMDIwNTQ4IDAwMDAwIG4NCjAwMDAwMjA1NzAgMDAwMDAg bg0KMDAwMDAyMDkwOCAwMDAwMCBuDQowMDAwMDIyMjcyIDAwMDAwIG4NCjAwMDAwMjIyOTQgMDAw MDAgbg0KMDAwMDAyMjYzMiAwMDAwMCBuDQowMDAwMDI0MjU2IDAwMDAwIG4NCjAwMDAwMjQyNzgg MDAwMDAgbg0KMDAwMDAyNDYyOSAwMDAwMCBuDQowMDAwMDI2MTAzIDAwMDAwIG4NCjAwMDAwMjYx MjUgMDAwMDAgbg0KMDAwMDAyNjQ2MyAwMDAwMCBuDQowMDAwMDI3NjE0IDAwMDAwIG4NCjAwMDAw Mjc2MzYgMDAwMDAgbg0KMDAwMDAyNzk3NCAwMDAwMCBuDQowMDAwMDI5MzEzIDAwMDAwIG4NCjAw MDAwMjkzMzUgMDAwMDAgbg0KMDAwMDAyOTY3MyAwMDAwMCBuDQowMDAwMDMxMDU0IDAwMDAwIG4N CjAwMDAwMzEwNzYgMDAwMDAgbg0KMDAwMDAzMTQwMSAwMDAwMCBuDQowMDAwMDMyNDY1IDAwMDAw IG4NCjAwMDAwMzI0ODYgMDAwMDAgbg0KMDAwMDAzMjU1OSAwMDAwMCBuDQowMDAwMDMyNjUxIDAw MDAwIG4NCjAwMDAwMzI3NTggMDAwMDAgbg0KMDAwMDAzNDEwNyAwMDAwMCBuDQowMDAwMDM0MTYy IDAwMDAwIG4NCjAwMDAwMzQzNjkgMDAwMDAgbg0KMDAwMDAzNDM5OSAwMDAwMCBuDQowMDAwMDM0 NDI5IDAwMDAwIG4NCjAwMDAwMzQ0NTkgMDAwMDAgbg0KMDAwMDAzNDQ4OSAwMDAwMCBuDQowMDAw MDM0NTE5IDAwMDAwIG4NCjAwMDAwMzQ1NDkgMDAwMDAgbg0KMDAwMDAzNDU3OSAwMDAwMCBuDQow MDAwMDM0NjA5IDAwMDAwIG4NCjAwMDAwMzQ2MzkgMDAwMDAgbg0KMDAwMDAzNDY2OSAwMDAwMCBu DQowMDAwMDM0Njk5IDAwMDAwIG4NCjAwMDAwMzQ3MjkgMDAwMDAgbg0KMDAwMDAzNDc1OSAwMDAw MCBuDQowMDAwMDM0Nzg5IDAwMDAwIG4NCjAwMDAwMzQ4MTkgMDAwMDAgbg0KMDAwMDAzNDg0OSAw MDAwMCBuDQowMDAwMDM0ODc5IDAwMDAwIG4NCjAwMDAwMzQ5MDkgMDAwMDAgbg0KMDAwMDAzNDk5 MCAwMDAwMCBuDQowMDAwMDM1MTc4IDAwMDAwIG4NCjAwMDAwMzY1MTMgMDAwMDAgbg0KMDAwMDAz NjYyMyAwMDAwMCBuDQowMDAwMDM2NzMwIDAwMDAwIG4NCjAwMDAwMzY4NjEgMDAwMDAgbg0KMDAw MDAzNjkyOSAwMDAwMCBuDQowMDAwMDM2OTczIDAwMDAwIG4NCjAwMDAwMzcwNjUgMDAwMDAgbg0K MDAwMDAzNzEwMSAwMDAwMCBuDQowMDAwMDM3MjI0IDAwMDAwIG4NCjAwMDAwMzcyNTMgMDAwMDAg bg0KMDAwMDAzNzMyMSAwMDAwMCBuDQowMDAwMDM3NTc1IDAwMDAwIG4NCjAwMDAwMzc2MzQgMDAw MDAgbg0KMDAwMDAzNzY2OSAwMDAwMCBuDQowMDAwMDM3NzIwIDAwMDAwIG4NCnRyYWlsZXINPDwN L1NpemUgOTQNL0lEWzw2MWRjYzliZDA3ZmRjNWIwMDhmNjk3MzBkNTRkMTRhZD48YjgxMWE3ZmM0 YzBkMWM4NDU2YWU2ZTZiMTNjYWE2YzY+XQ0+Pg1zdGFydHhyZWYNMTczDSUlRU9GDTc3IDAgb2Jq DTw8IA0vTW9kRGF0ZSAoRDoyMDAzMDkwOTE1MzkwNS0wNicwMCcpDS9DcmVhdGlvbkRhdGUgKEQ6 MjAwMzA5MDkxNTM3MTFaKQ0vUHJvZHVjZXIgKEFjcm9iYXQgV2ViIENhcHR1cmUgNS4wKQ0vVGl0 bGUgKGZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1LXByb3Bvc2FsXzF2MC50eHQpDT4+ IA1lbmRvYmoNOTUgMCBvYmoNPDwgDS9UeXBlIC9DYXRhbG9nIA0vUGFnZXMgNzYgMCBSIA0vTWV0 YWRhdGEgMTc0IDAgUiANL091dGxpbmVzIDEwMCAwIFIgDS9TdHJ1Y3RUcmVlUm9vdCA5NyAwIFIg DS9TcGlkZXJJbmZvIDgzIDAgUiANL05hbWVzIDk4IDAgUiANL1BhZ2VNb2RlIC9Vc2VPdXRsaW5l cyANL0Fjcm9Gb3JtIDk2IDAgUiANPj4gDWVuZG9iag05OSAwIG9iag08PCANL1R5cGUgL1BhZ2Ug DS9NZWRpYUJveCBbIDAgMCA2MTIgNzkyIF0gDS9QYXJlbnQgODAgMCBSIA0vU3RydWN0UGFyZW50 cyAwIA0vQ29udGVudHMgMTcyIDAgUiANL1Jlc291cmNlcyA8PCAvQ29sb3JTcGFjZSA8PCAvQ1M1 NCAxMTYgMCBSIC9DUzU1IDExNyAwIFIgL0NTNTIgMTE2IDAgUiAvQ1M1MyAxMTcgMCBSIC9DUzUw IDExNiAwIFIgDS9DUzUxIDExNyAwIFIgL0NTNDggMTE2IDAgUiAvQ1M0OSAxMTcgMCBSIC9DUzQ2 IDExNiAwIFIgL0NTNDcgMTE3IDAgUiANL0NTNDQgMTE2IDAgUiAvQ1M0NSAxMTcgMCBSIC9DUzQy IDExNiAwIFIgL0NTNDMgMTE3IDAgUiAvQ1M0MCAxMTYgMCBSIA0vQ1M0MSAxMTcgMCBSIC9DUzM4 IDExNiAwIFIgL0NTMzkgMTE3IDAgUiAvQ1MzNiAxMTYgMCBSIC9DUzM3IDExNyAwIFIgDS9DUzM0 IDExNiAwIFIgL0NTMzUgMTE3IDAgUiAvQ1MzMiAxMTYgMCBSIC9DUzMzIDExNyAwIFIgL0NTMzAg MTE2IDAgUiANL0NTMzEgMTE3IDAgUiAvQ1MyOCAxMTYgMCBSIC9DUzI5IDExNyAwIFIgL0NTMjYg MTE2IDAgUiAvQ1MyNyAxMTcgMCBSIA0vQ1MyNCAxMTYgMCBSIC9DUzI1IDExNyAwIFIgL0NTMjIg MTE2IDAgUiAvQ1MyMyAxMTcgMCBSIC9DUzIwIDExNiAwIFIgDS9DUzIxIDExNyAwIFIgL0NTMTgg MTE2IDAgUiAvQ1MxOSAxMTcgMCBSIC9DUzE2IDExNiAwIFIgL0NTMTcgMTE3IDAgUiANL0NTMTQg MTE2IDAgUiAvQ1MxNSAxMTcgMCBSIC9DUzEyIDExNiAwIFIgL0NTMTMgMTE3IDAgUiAvQ1MxMCAx MTYgMCBSIA0vQ1MxMSAxMTcgMCBSIC9DUzggMTE2IDAgUiAvQ1M5IDExNyAwIFIgL0NTNiAxMTYg MCBSIC9DUzcgMTE3IDAgUiANL0NTNCAxMTYgMCBSIC9DUzUgMTE3IDAgUiAvQ1MyIDExNiAwIFIg L0NTMyAxMTcgMCBSIC9DUzAgMTE2IDAgUiANL0NTMSAxMTcgMCBSID4+IA0vRm9udCA8PCAvVDFf ODEgMTA2IDAgUiAvVDFfODIgMTA0IDAgUiAvVDFfODMgMTEwIDAgUiA+PiAvRXh0R1N0YXRlIDw8 IC9HUzI3IDExNSAwIFIgPj4gDS9Qcm9jU2V0IFsgL1BERiAvVGV4dCBdID4+IA0vSUQgMTEyIDAg UiANL0Nyb3BCb3ggWyAwIDAgNjEyIDc5MiBdIA0vUm90YXRlIDAgDT4+IA1lbmRvYmoNMTE1IDAg b2JqDTw8IA0vVHlwZSAvRXh0R1N0YXRlIA0vU0EgZmFsc2UgDS9PUCBmYWxzZSANL29wIGZhbHNl IA0vT1BNIDAgDS9CRzIgL0RlZmF1bHQgDS9VQ1IyIC9EZWZhdWx0IA0vVFIyIC9EZWZhdWx0IA0v SFQgL0RlZmF1bHQgDS9DQSAxIA0vY2EgMSANL1NNYXNrIC9Ob25lIA0vQUlTIGZhbHNlIA0vQk0g L05vcm1hbCANL1RLIHRydWUgDT4+IA1lbmRvYmoNMTE2IDAgb2JqDS9EZXZpY2VSR0IgDWVuZG9i ag0xMTcgMCBvYmoNL0RldmljZUdyYXkgDWVuZG9iag0xMTggMCBvYmoNPDwgL0ZpbHRlciAvRmxh dGVEZWNvZGUgL0xlbmd0aCAxMTkgMCBSID4+IA1zdHJlYW0NCkiJnFbdc9o4EH/3TP+HfTPptP6A EBOu17lAeEhnMtNrPdcHyHhkWdi6GMknCxKm7f9+K9uEL0OuZ3gAe/f3sZK1694ozeeEavjwwb3R mtCMJTB1Q1nAgzsayWeY+gMIggF0vcDxLvsQDAJ8FK4LBu5nknJBNJcCPn4c3Y4tD8xHpfiDg+V+ YTk+XbGxzKXiC6YVp6C4NQotN/QjD3wI59Z1lXQNhmjgOX4A4cLqzHnOhq7r3v5wP01ub9xV1/P6 7ieWkKj6+b5QspAlySN/5Tn6+SL825qE1uR+bLnGFc2ZMXU/vrtF9FreP6gLWa78LgT9K1DM+vYW xEaOX8vxaxN+9Q36gdO76lWKxrJYK55mGmYdOrvAing9MIIgZDQT6DHlrIQ7QR24yXOoYktkKZla scQxCj1433W6EN5anTDjJSSSLhdMaMhICTFjAgrFCqJwFeJ1OzjMpWqg/AaKSlHyhKl6KTBRZwzu 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 hBHnwJbDrznqa+Oj7WDlNshxJulTg6p99jIGUCe6LnJG+Wx9pO+Z6zkXGzkNEjbcAP+shSYvJ4yw Q4sqvn7/j12WuexthA34TAW+iByrchhkrgnWcUaWmY6oQYoqzZxWT/SxMSOXSkcZLzSu2x/s05Bv sCKKkzhjkVSRCS+YjhJGM1Lvrh/HSXbM8HVvwMLNopnZ3MVJCm68owRza+f8QmXhou26nEdFB2iI bdhA+yy/g27/efCsvkGi8HiLCrLIsZAGoyrbeUsn8eeo6kgMOazf98O/e1Cv+NwBnrdXxtjAkrSO nIBdPLFn25wRLEXLjxft/Yoxuwq6zGJuJSzX80vMh9w7uLPMeCqZKPtiRW2BdK9HxRLPjE3YBVm7 N/GsrGkLXcryJcQtZb/b/fthVq+aKA5JNvHnKHA94dgKys09gZjrSBGRMiz0b2/nBu4d9lmPXORL /UpJ5VK/HsSFrGOamsKessNDnxLslww3k+lsmuOBlZTHPLZI067QfVlAbLCitoLt88QKUWnZxQsH vs6xhwtZI1JmGspMLkXy7qiZVMd/bPpw1Qh3EjWOWdv8BTbVjDnH803DdDaQWsvF/oDWhU6n53S9 HvjX56ezv2A7AnVOJy/H86/9cv6Z8Yz1XdcdfXc/j0d3bjmEuWfmMUe/mDnJBzlDGJyWJrfurYsD U6c/fdMJ+n4Xvjw87rn6KcAAYRPi5Q1lbmRzdHJlYW0NZW5kb2JqDTE3MyAwIG9iag05NzUgDWVu ZG9iag0xNzQgMCBvYmoNPDwgL1R5cGUgL01ldGFkYXRhIC9TdWJ0eXBlIC9YTUwgL0xlbmd0aCAx MjUwID4+IA1zdHJlYW0NCjw/eHBhY2tldCBiZWdpbj0nJyBpZD0nVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkJyBieXRlcz0nMTI1MCc/PgoKPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3Lncz Lm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjJwogeG1sbnM6aVg9J2h0dHA6Ly9ucy5hZG9i ZS5jb20vaVgvMS4wLyc+CgogPHJkZjpEZXNjcmlwdGlvbiBhYm91dD0nJwogIHhtbG5zPSdodHRw Oi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvJwogIHhtbG5zOnBkZj0naHR0cDovL25zLmFkb2JlLmNv bS9wZGYvMS4zLyc+CiAgPHBkZjpNb2REYXRlPjIwMDMtMDktMDlUMTU6Mzk6MDUtMDY6MDA8L3Bk ZjpNb2REYXRlPgogIDxwZGY6Q3JlYXRpb25EYXRlPjIwMDMtMDktMDlUMTU6Mzc6MTFaPC9wZGY6 Q3JlYXRpb25EYXRlPgogIDxwZGY6UHJvZHVjZXI+QWNyb2JhdCBXZWIgQ2FwdHVyZSA1LjA8L3Bk ZjpQcm9kdWNlcj4KICA8cGRmOlRpdGxlPmZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1 LXByb3Bvc2FsXzF2MC50eHQ8L3BkZjpUaXRsZT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6 RGVzY3JpcHRpb24gYWJvdXQ9JycKICB4bWxucz0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4w LycKICB4bWxuczp4YXA9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8nPgogIDx4YXA6TW9k aWZ5RGF0ZT4yMDAzLTA5LTA5VDE1OjM5OjA1LTA2OjAwPC94YXA6TW9kaWZ5RGF0ZT4KICA8eGFw OkNyZWF0ZURhdGU+MjAwMy0wOS0wOVQxNTozNzoxMVo8L3hhcDpDcmVhdGVEYXRlPgogIDx4YXA6 TWV0YWRhdGFEYXRlPjIwMDMtMDktMDlUMTU6Mzk6MDUtMDY6MDA8L3hhcDpNZXRhZGF0YURhdGU+ CiAgPHhhcDpUaXRsZT4KICAgPHJkZjpBbHQ+CiAgICA8cmRmOmxpIHhtbDpsYW5nPSd4LWRlZmF1 bHQnPmZpbGU6Ly8vRHwvSkVEQS92MjAwNS9KZWRhX3YyMDA1LXByb3Bvc2FsXzF2MC50eHQ8L3Jk ZjpsaT4KICAgPC9yZGY6QWx0PgogIDwveGFwOlRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+Cgog PHJkZjpEZXNjcmlwdGlvbiBhYm91dD0nJwogIHhtbG5zPSdodHRwOi8vcHVybC5vcmcvZGMvZWxl bWVudHMvMS4xLycKICB4bWxuczpkYz0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8n PgogIDxkYzp0aXRsZT5maWxlOi8vL0R8L0pFREEvdjIwMDUvSmVkYV92MjAwNS1wcm9wb3NhbF8x djAudHh0PC9kYzp0aXRsZT4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKPC9yZGY6UkRGPgo8P3hwYWNr ZXQgZW5kPSdyJz8+DWVuZHN0cmVhbQ1lbmRvYmoNeHJlZg0wIDEgDTAwMDAwMDAwMDAgNjU1MzUg Zg0KNzcgMSANMDAwMDAzOTc3OCAwMDAwMCBuDQo5NSAxIA0wMDAwMDM5OTY2IDAwMDAwIG4NCjk5 IDEgDTAwMDAwNDAxNjAgMDAwMDAgbg0KMTE1IDYwIA0wMDAwMDQxMjYyIDAwMDAwIG4NCjAwMDAw NDE0NjkgMDAwMDAgbg0KMDAwMDA0MTQ5OCAwMDAwMCBuDQowMDAwMDQxNTI4IDAwMDAwIG4NCjAw MDAwNDI1ODIgMDAwMDAgbg0KMDAwMDA0MjYwNCAwMDAwMCBuDQowMDAwMDQzNjU4IDAwMDAwIG4N CjAwMDAwNDM2ODAgMDAwMDAgbg0KMDAwMDA0NDczMyAwMDAwMCBuDQowMDAwMDQ0NzU1IDAwMDAw IG4NCjAwMDAwNDU4MTAgMDAwMDAgbg0KMDAwMDA0NTgzMiAwMDAwMCBuDQowMDAwMDQ2ODg1IDAw MDAwIG4NCjAwMDAwNDY5MDcgMDAwMDAgbg0KMDAwMDA0Nzk2MSAwMDAwMCBuDQowMDAwMDQ3OTgz IDAwMDAwIG4NCjAwMDAwNDkwNDAgMDAwMDAgbg0KMDAwMDA0OTA2MiAwMDAwMCBuDQowMDAwMDUw MTE5IDAwMDAwIG4NCjAwMDAwNTAxNDEgMDAwMDAgbg0KMDAwMDA1MTE5OSAwMDAwMCBuDQowMDAw MDUxMjIxIDAwMDAwIG4NCjAwMDAwNTIyODAgMDAwMDAgbg0KMDAwMDA1MjMwMiAwMDAwMCBuDQow MDAwMDUzMzU5IDAwMDAwIG4NCjAwMDAwNTMzODEgMDAwMDAgbg0KMDAwMDA1NDQzNyAwMDAwMCBu DQowMDAwMDU0NDU5IDAwMDAwIG4NCjAwMDAwNTU1MTYgMDAwMDAgbg0KMDAwMDA1NTUzOCAwMDAw MCBuDQowMDAwMDU2NTk2IDAwMDAwIG4NCjAwMDAwNTY2MTggMDAwMDAgbg0KMDAwMDA1NzY3NSAw MDAwMCBuDQowMDAwMDU3Njk3IDAwMDAwIG4NCjAwMDAwNTg3NTMgMDAwMDAgbg0KMDAwMDA1ODc3 NSAwMDAwMCBuDQowMDAwMDU5ODMxIDAwMDAwIG4NCjAwMDAwNTk4NTMgMDAwMDAgbg0KMDAwMDA2 MDkxMCAwMDAwMCBuDQowMDAwMDYwOTMyIDAwMDAwIG4NCjAwMDAwNjE5ODggMDAwMDAgbg0KMDAw MDA2MjAxMCAwMDAwMCBuDQowMDAwMDYzMDY2IDAwMDAwIG4NCjAwMDAwNjMwODggMDAwMDAgbg0K MDAwMDA2NDE0MyAwMDAwMCBuDQowMDAwMDY0MTY1IDAwMDAwIG4NCjAwMDAwNjUyMTkgMDAwMDAg bg0KMDAwMDA2NTI0MSAwMDAwMCBuDQowMDAwMDY2Mjk4IDAwMDAwIG4NCjAwMDAwNjYzMjAgMDAw MDAgbg0KMDAwMDA2NzM3NyAwMDAwMCBuDQowMDAwMDY3Mzk5IDAwMDAwIG4NCjAwMDAwNjg0NTUg MDAwMDAgbg0KMDAwMDA2ODQ3NyAwMDAwMCBuDQowMDAwMDY5NTMzIDAwMDAwIG4NCjAwMDAwNjk1 NTUgMDAwMDAgbg0KMDAwMDA3MDYxMiAwMDAwMCBuDQowMDAwMDcwNjM0IDAwMDAwIG4NCjAwMDAw NzE2ODkgMDAwMDAgbg0KMDAwMDA3MTcxMSAwMDAwMCBuDQp0cmFpbGVyDTw8DS9TaXplIDE3NQ0v SW5mbyA3NyAwIFIgDS9Sb290IDk1IDAgUiANL1ByZXYgMTczIA0vSURbPDYxZGNjOWJkMDdmZGM1 YjAwOGY2OTczMGQ1NGQxNGFkPjwxY2NmM2ZjYzQ0OTAyZGNhMjJiYTNlOGJjZDBkODI4Mj5dDT4+ DXN0YXJ0eHJlZg03MzA0Nw0lJUVPRg0= --=====================_1004346313==_-- |
Unformatted |
----web-attachment---- Jeda_v2005-proposal.txt Copyright (c) 2003 Jeda Technologies Inc. All rights reserved. This document has been prepared by Jeda Technologies Inc for consideration by the IEEE 1364 working group as a recommendation for inclusion into the IEEE 1364 standard. 1. Introduction This proposal describes the testbench layer for the IEEE 1364 Verilog extension. 2. Testbench block The testbench block is to specify the testbench within Verilog. Syntax testbench_block ::= 'testbench' identifier [ default_clock_specification ] [ port_list ] ';' { variable_or_portset_declaration } 'begin' statements 'end' 'endtestbench' default_clock_specification ::= clock_specification clock_specification ::= '@' identifier { drive_sample_spec } drive_sample_spec ::= drive_spec | sample_spec drive_spec ::= 'drive' edge_spec [ 'skew' integer ] sample_spec ::= 'sample' edge_spec [ 'skew' integer ] [ 'depth' integer ] edge_spec ::= 'posedge' | 'negedge' | 'bothedge' port_list ::= '(' io_port { ',' io_port } ')' io_port ::= io_direction [ bit_range ] identifier { drive_sample_spec } io_direction ::= 'input' | 'output' | 'inout' The testbench can be instantiated with a proper port connection as arguments. When no instance is found, the testbench block becomes the top instance module. The statements within begin/end pair in the testbench block will be executed at the beginning of the simulation as if it is 'initial' statement in a module. A port signal in the testbench block can have reference clock, sample and drive specifications. When a default clock specification is declared at the testbench block, it becomes the default specification for all the port signals unless individual specification is declared at the port declaration. Examples: testbench check @ clk drive posedge skew 2 sample posedge depth 2 ( input clk, inout [5:0] data ) ; begin . . end endtestbench A member function drive_clock can be called on output or inout signal to drive it as a clock. drive_clock( int period1, int pediod2 = period1, int initial_value, int delay = 0 ) Example: clk.drive_clock( 50, 50, 0, 0 ) ; Special port signal 'CLOCK' is used for utility clock within the testbench layer. This signal is used to count timeout, etc. By default CLOCK is driven as: CLOCK.drive_clock( 100, 100, 0, 0 ) ; This can be overwritten by the actual drive_clock call. 3. portset portset is a mechanism to bundle the Verilog signals into a logical group. It can declare the alias for a Verilog signal to isolate the testbench from the actual Verilog model. Syntax: portset ::= 'portset' identifier default_clock_specification ';' { port_declaration } 'endportset' port_declaration ::= io_port [ Verilog_node_path ] ';' Verilog node path specifies the connection to the leaf level Verilog signal. Example: testbench top ; portset pt @clk drive posedge skew 2 sample posedge skew -2 depth 2 ; inout io_data dut.data ; input clk ; endportset begin . . end endtestbench Within the testbench block, the following programming primitives are available to ease the testbench construction. 4. Primitive data types for testbench layer Within the testbench block (and class which will be explained later), the following primitive data can be used. reg -- 4-value bit vector integer -- 32bit integer real -- real variable time -- to hold time realtime -- to hold time in real value int -- 2-value integer (new) string -- string variable (new) signal -- the pointer to a port. (new) The user can create a user defined data type using class declaration (Section 9). There's some predefined classes provided by the Verilog system (system classes). string can store string value, for example: string str ; str = "name" ; ports and signals are usually handled as pointers to the actual Verilog node. signal can store a pointer to a port. For example: signal data_port ; data_port = io_data ; Accessing actual data for a port or signal can be done with '.N' operator, where N is an integer constant that represent the pipeline depth. For example: reg [7:0] data0, data1 ; data0 = data_port.0 ; data1 = data_port.1 ; // one cycle previous The access depth on the port must be specified properly to use the pipelined information. Store a value to a port/signal variable is done by using '.0' operator in the left side of the assignment. data_port.0 = 100 ; 5. List In the testbench layer, any data type can be declared as a list with 'list_of' construct. For example: list_of integer int_list ; list_of string str_list ; Access to a list is usually done via member functions: push() : put an element to the top of list bpush() : put an element to the end of list pop() : get an element from the top of list bpop() : get an element from the end of list send() : same as push() ; receive() : get an element from the end of list if any, or wait until a data is ready num_element() : return how may data is in the list sort() : Return the sorted list. only for reg, integer, string, real list. Example: int_list.push( 5 ) ; // pushing 5 to the top of list i = intlist.bpop() ; // getting a value from the end of list 6. Array In the testbench layer, any data type as well as list type can be declared using an array form as follows: integer xx[5] ; // normal array integer yy[] ; // associative array integer zz[3][2][4] ; // multi diamensional array integer ss[*] ; // string indexed associative array The array of list can be declared as: list_of int pp[5] ; // normal array of list list_of int qq[] ; // associative array of list list_of int rr[5][4][3] ; // multi-dimensional array of list list_of int ss[*] ; // string indexed array of list The following member function are defined to be used over the array variables: num_element() -- return number of element index_list() -- return index list (only for associative array, string index array) check_index( arg ) -- return 1 if given arg exist as an element (only for associative array, string index array) delete( arg ) -- remove the entry from array (only for associative array, string index array) flush_all() -- remove all the entries from array (only for associative array, string index array) 7. Expression In the testbench layer, we further define the following additional expressions to compliment the 1364 expressions 7.1 Masked Comparison Three types of comparison that ignore X or Z values in the fields. - <left> =?= <right> : x, z is ignored on both side - <left> ?== <right> : x, z is ignored on left side - <left> ==? <right> : x, z is ignored on right side 7.2 Cycle Expression Cycle expression evaluates an expression associated with clock cycle and return 1 or 0 according to the result. Syntax: cycle_expression ::= cycle_element '(' expression { ',' expression } ')' cycle_element ::= '@' delay [ ',' window ] [ clock_edge_spec ] | '@@' delay [ ',' window ] [ clock_edge_spec ] delay ::= expression window ::= expression clock_edge_spec ::= '(' [ edge_spec ] port_or_signal_variable_expression ')' The semantics of the cycle expression are the following: - @ delay, window ( <edge> <clock_exp> ) expression wait for delay cycle, then check the expression becomes true within the given window cycle. When window is omitted, window = 0 is used. - @@ delay, window ( <edge> <clock_exp> ) expression wait for delay cycle, then check the expression is true throughout the window cycle. When window is omitted, window = 0 is used. When the clock edge spec is omitted, the expression is evaluated left to right. Upon detecting a port signal the reference clock of the port is used as the clock, and posedge is used as the default edge. If no port is detected in the expression, CLOCK signal is used. 8. Statement 8.1 Concurrent execution Statements within fork/join pair are executed concurrently. For example: fork task_call1() ; task_call2() ; join Addition to 'join', 'knife' and 'spoon' can be used to close the fork statement. 'knife' will proceed without waiting for the thread. 'spoon' will wait for the first thread completion. When knife or spoon is used, threads are created under the current thread. The hierarchy of thread is kept in the system as the order of the thread creation. The thread hierarchy effects the range of 'terminate' and 'thread_join' statement. 'terminate' statement is used to terminate all the threads under the current thread. Example: fork // thread 1 fork // thread 2 thread1() ; thread2() ; spoon terminate ; // terminate either thread1 or thread2 join Note that outside fork/join pair (thread 1) creates a new thread level to limit the effect of the terminate statement. 'thread_join' statement will wait for any outstanding threads to be completed under the current thread hierarchy. Example: fork // thread 1 fork // thread 2 thread1() ; thread2() ; knife do_something() ; thread_join ; join 8.2 Cycle Statement Any statement can have cycle element to delay the execution based on the cycle. Syntax: cycle_statement ::= '@' delay [ clock_edge_spec ] statement where delay is an integer expression. The statement with the cycle element will be executed after the given delay cycle. When the clock edge spec is omitted, the statement is parsed from left to right and when a port signal is detected, the reference clock of the port is used as the clock, and posedge is used as the default rule. If no port is detected in the expression, CLOCK signal is used. 9. Class 9.1 Class Declaration Class is the mechanism to create user defined data type and the member task/function that manipulate the contents. Class Declaration Syntax: 'class' identifier ';' { member_variable_declaration } { member_task_function_declaration } 'endclass' Here's a simple class declaration example: class my_class ; int bar ; function int read_bar ; begin read_bar = bar ; end endfunction endclass 9.2 Member task/function rules Arguments for the member task/function can be declared with ANSI-C style syntax. Example: task foo( int arg1, string arg2 ) begin do_something ; end endtask Usually an argument is transfered as it's value. To share the location, 'var' attributes can be used on argument. Example: task foo( var int arg1, string arg2 ) begin do_something ; arg1 = 0 ; end endtask Either an array or list types can optionally be be used as an argument to tasks and functions. The type of the argument must match exactly in this case. task boo( list_of int arg1, reg [5:0] arg2[], var list_of int arg3[*] ) begin . . end endtask An argument can optionally hold default argument/s. The argument can be omitted when a default value is set. The default value must be a constant that can be deterministic at the compilation time. Array argument/s cannot have default value 9.3 Class Variable Declaration and Construction When a class is defined, the class name becomes the user data type, and its instance is declared as the variable with its type. my_class foo ; When a class instance is declared, its content is empty (null), and must be allocated by calling 'new' function(aka constructor). foo = new ; When the new function is not defined in the class declaration, calling new simply allocate the defined data type. When new function can be defined in the class declaration, calling new allocate the class member data, and then call the constructor to initialize it. A constructor cannot have have a return type but can optionally have arguments class my_class ; int bar ; function new( int x ) ; begin bar = x ; end endfunction function int read_bar ; begin read_bar = bar ; end endfunction endclass testbench main ; int b ; my_class foo ; begin foo = new( 56 ) ; b = foo.read_bar() ; end endtestbench Class instance is handled as a pointer throughout the testbench. When a instance (which allocated the data with new) is stored to another variable, two location shares the same data structure. my_class foo, bar ; foo = new ; bar = foo ; // sharing the same data structure When real copy (instead of sharing the same structure) is needed, new with variable will create the copy of the instance that contains the same data values. bar = new foo ; // create the copy of foo, not share Note that this copy is done only one level. It creates a new data structure and copy the contents, but if the member variable is a class type, the member will have the the pointer value, and sharing the same data structure at the level. 9.4 Class Extension A class can be extended with keyword 'extends'. The new class inherits all the members (except 'local' members) from its parent. Any members can be redefined in the child class unless it's declared 'final' in the parent. class mymy_class extends my_class ; int boo ; int bee ; function int sum ; begin sum = boo + bee ; end endfunction endclass The extended class instance and its parent class instance can be assigned in either direction (up-cast and down-cast). For down-cast, the class type correctness is checked at runtime as it is not clear if the parent instance is holding the extended class instance of the destination at the compilation time. class foo_class ; .. endclass class bar_class extends foo_class ; .. endclass testbench yoo ; foo_class foo ; bar_class bar ; bar_class boo ; begin bar = new ; foo = bar ; // up-cast boo = foo ; // down-cast end endtestbench When the new function is called, all the new functions of the super classes are called at that time. Even the new function is ommitted in the class, it's default new function (just allocate variables) is called. If the new function of the super class does not take any arguments (or default value is set to all the arguments), then calling super.new() is done implicitly (unless it is called explicitly in the child new() function). When the new function in the super class has arguments, the implicit super.new() call will not be done and the child class has to call it explicitly with proper arguments. In this case, the new function for the child class can not be omitted. The child new function must call the super class's new function at the very first statement in its new function. class foo_class ; .. function new ( int x ) ; begin .. end endfunction endclass class bar_class extends foo_class ; .. function new ; begin super.new(0) ; // must call as the first statement of new() .. end endfunction endclass Except the new function, the reference to the class member is done in its class scope order. A name is searched within the class, and if not found, then searched in its super class. Redefining a variable or a function in the child class will replace the name reference to the member within the child instance. Note that this simple redefinition will not replace the functions referenced within the super class itself. See 9.5 Overwrite Function for the mechanism to replace the superclass function references. 9.5 Abstract Class Abstract class is a class declared with 'abstract' attribute, and it is allowed to contain abstract function(s) which is also declared with 'abstract' attribute. Such a function must be declared without the actual function body and the actual body must be declared in its child class. The abstract class that contains abstract function (without body) can be used to specify a template of the class. The actual function body that corresponds to the abstract function must be defined in its child class. Instance of such abstract class can be declared, but calling new() directory to allocate the instance is not allowed. The allocation to such abstract class instance should only be done by assigning its child instance to it (up cast). abstract class animal ; abstract task bark ; abstract task food ; endclass class dog extends animal ; task bark ; begin $display( "Bow wow€n" ) ; end endtask task food ; begin $display( "Eats dog food€n" ) ; end endtask endclass 9.6 Overwrite Function The abstract mechanism explained above is useful when the parent is written such that it represents an abstract view of a set of objects. Sometime, a class is already written without such an abstraction in mind, and we may want to extend it with just rewriting one function. Just redefining a new function in the extended class can handle the external call to the function. But if the parent class is calling the function, parent's code is still calling the original function in it's member. For example: class parent ; task foo ; begin $display( "parent foo called€n" ) ; end endtask task bar ; begin foo ; end endtask endclass // end of class parent class child extends parent ; task foo ; begin $display( "child foo called€n" ) ; end endtask endclass When a child instance called the function bar, the parent class's foo() is called from the bar() function even child has foo() function redeclared. When a function is redeclared with 'overwrite' attribute, the child's function is referenced from it's parent as well. class child_a extends parent ; overwrite task foo ; begin $display( "child foo called€n" ) ; end endtask endclass In this case, when parent's bar() function is called from child_a's instance, redeclared foo() is called from bar() function. Such an overwrite function must have the same arguments as the overwriting function in the parent. 9.7 Various Attributes for Class Declaration A class can be declared with the following attributes: * abstract -- this class is abstract class and may contains abstract function A class member variables can be declared with the following attributes * local -- this variable is only used within this class * protected -- this variable is protected, and only referenced in this class or extended class * final -- this variable is final and extending class can not overwrite it A class member function can be declared with the following attributes * local -- this function is only used within this class * protected -- this function is protected, and only referenced in this class or extended class * final -- this function is final and extending class can not overwrite it * overwrite -- this function overwrite the parent's corresponding function 10. System Tasks and Functions System provided tasks/functions can be used under the testbench layer. 10.1 MT random functions function int randmt ; returns non-negative MT base random function int urandmt; returns 32-bit unsigned random 10.2 String handling functions function string substring ( string s, int start [,int end] ) ; returns a substring indexed by start and end point. When end is omitted, it becomes the end of the string function int strlen( string s ) ; returns the length of the string. function int atoi( string s ) ; convert a string to integer value function reg abit2bin( string s ) ; convert a bit string to bit vector value function reg ahex2bin( string s ) ; convert a hex string to bit vector value function reg aoct2bin( string s ) ; convert a octal string to bit vector value 10.3 Cycle function function int get_cycle ; returns the current cycle (as counting posedge of CLOCK port) 11. System Classes The testbench layer can use various system provided classes. 11.1 MT Random class The class random_mt generates pseudo random variable based on Mersenne Twister Algorithm. (Same as randmt() function) The following member functions are provided: * function new( int seed = 0 ) ; Constructor function. When seed = 0 is given, the default seed value will be used. * function int random ; This function generate a non negative random value. * function int urandom() This function generate a unsigned random value. Example: random_mt rmt ; rmt = new( 594853 ) ; repeat( 100 ) printf( "random_mt generates %d€n", rmt.random() ) ; 11.2 Event Event class can be used for synchronization among threads. The following member tasks/functions are provided: * task trigger ; Generate a trigger. This trigger will be active within the current simulation time slot (unless it's cleared). This guarantees that receiver (if any) will get the trigger regardless of the order of the execution of the thread. * task trigger_on() Generate a trigger and keep it at on state. This trigger remains active until it is cleared. * task trigger_off ; Clear a trigger if it's set. * task trigger_pulse() Generate an impulse trigger. This trigger is only effective to the thread that is already waiting in the event variable. If there's no thread, the trigger disappear immediately. * function int sync ; wait for a trigger. The thread will be resumed when a trigger is sent to the event variable. It returns 1 upon receiving the trigger. It returns 0 when time out occurs. * function int sync_clear() wait for a trigger. When it is resumed, it clears the trigger so that only this thread receives the trigger. This call can be used to create a handshake mechanism. * function int check() This function checks and returns 1 if the trigger in the event is active, otherwise returns 0. * function int check_clear() This function checks and returns 1 if the trigger is active. It clears the active trigger when it gets the trigger. It returns 0 if trigger is not active. * task timeout( int cycle_count ) This function set the time out limit in the number of CLOCK cycle. Setting 0 clears the time out value. 11.3 Semaphore Semaphore class can be used for mutex among threads, and synchronization. The following member functions are provided: * function new( int unit = 1 ) Constructor function. Create a semaphore instance with the given unit. Default unit is 1. * function int get( int unit = 1 ) This function attempts to get the given unit from the semaphore. If there's enough unit within the semaphore, the unit is subtracted, and the function immediately returns 1. If there's not enough unit in the semaphore, the calling thread will be put into a FIFO queue and suspended until the required unit is available. When the time out is set, and timer goes off while waiting, it returns 0. * function int check( int unit = 1 ) This function checks the unit in the semaphore. If there's enough unit, the function subtract the given unit from the semaphore and returns 1. If there's not enough, it returns 0 without waiting. * task put( int unit = 1 ) This function put the given unit to the semaphore. If there's waiting thread and unit in the semaphore is enough for the thread waiting at the top of the queue, the waiting thread will be released after the unit subtraction. * task timeout( int cycle ) This function set the time out limit as the number of CLOCK cycle. Setting cycle = 0 disables the time out. 11.4 Regular Expression Engine Class The class regexp is the regular expression pattern matching engine. This class is based on the regular expression engine developed by University of Toronto (written by Henry Spencer) with some Perl5 extensions (by Larry Wall). Note that NOT all the Perl5 features are supported in this class. The following member functions are provided: * function int match( string source, string regexp ) ; This function tries the regular expression match, and returns 1 if succeeded, or 0 otherwise. * function string prematch() ; This function returns the prematch string from the previous match() call. * function string postmatch() ; This function returns the postmatch string from the previous match() call. * function string thismatch() ; This function returns the matched string from the previous match() call. * function string backref( int num ) This function returns the match in the parentheses from the previous match() call. The engine is extended with some of the Perl5 regular expression features. The following special character features are supported. Code Matches . Any character (include '/n') \a Alarm (beep) \n New line \r Carriage return \t Tab \f Form feed \e Escape \d A digit, same as [0-9] \D A non digit \w A word character(alphanumeric), same as [a-zA-Z_0-9] \W A nonword character \s A whitespace character, same as [ €t€n€r€f] \S A non-whitespace character \0 null character \<single digit> corresponding parentheses actually matched \<two or three octal digit> character with the octal value \x<one or two hex digit> character with the hex value \c<Single Character> Corresponding control character Supported Assertions Assertion Meaning ^ Matches at the beginning of the string $ Matches at the end of the string \b Matches at word boundary (between €w and €w) \B Matches except at word boundary Supported Quantifiers Quantifier Range * 0 or more times + 1 or more times ? 0 or 1 time 12. Aspect Aspect oriented programming (AOP) is a new concept in the programming paradigm. In this section, the aspect mechanism will be explained. For the detailed concept of AOP, related information, please refer AspectJ project web suite (www.aspectj.org). Unlike AspectJ, (current) AOP mechanism in the testbench layer is relatively simple. It can add extra code called 'advice' to the location of a function call that matches to the specified pattern. This pattern is called pointcut. The function call is only the target for the pointcut pattern matching. 12.1 Aspect The aspect block is the unit to code the aspect to Jeda code. The aspect block has similarity to the class(defined in section 9), but cannot create an instance on its own. Thus, it cannot have define a constructor. Nevertheless, inside an aspect, member variables, member functions, and advice can all be declared. aspect foo_asp ; int x, y, z ; task foo_func ; begin x = 100 ; y = 200 ; z = 300 ; end endtask advice void foo_ad ; call( io_drive.drive_data ) ; begin $display( "io_drive.drive_data is called€n" ) ; end endadvice endaspect The member variables and member task/function can be referenced with <aspect_name>.<member_name>. In the aspect above, member variable x can be accessed from outside of the aspect as: foo_asp.x = 500 ; and member function foo_func() can be called: foo_asp.foo_func() ; 12.2 Advice The advice is the special executable unit for the aspect oriented programming. Advice is similar to member function in class that executes the code. But advice can not be called directly from other functions. The advice is executed at the condition specified by the pointcut matches. The pointcut location is defined at the other function calls. Multiple pointcut specifications can be declared for an advice. aspect foo_asp ; int x, y, z ; advice void foo_adv call( io_drive.drive_data ) ; // call pointcut begin $display( "io_drive.drive_data is called€n" ) ; end endadvice endaspect 12.3 Pointcut The pointcut is the way to pick the location and timing that the advice is executed. There are three mechanism to declare the pointcut specifications: * call( <pattern> ) call pointcut is used to specify the execution of the advice at the call (before execution) of task/function(s) that matches the pattern. * return( <pattern> ) return pointcut is used to specify the execution of the advice at the return from the function(s) that matches the pattern. * overwrite( <pattern> ) overwrite pointcut is used to specify the execution of the advice as the replace of the task/function(s) that matches the pattern. The pattern in the pointcut specification can either be an exact match of the name(s) using an identifier (e.g. io_drive.drive_data) or string pattern (e.g. io_drive."drive\w*" ). When the string is used, regular expression engine is used to detect the matching pattern. (See the rules in regular expression class explanation). The pattern must be down to the function name (or string that match to function names), but class name and member variable names can be used to specify in the pattern as the path down to the function. For example, the following code catches the cycles of the threads waiting for the semaphore. aspect how_long ; int thread_count = 0 ; int cycle_count = 0 ; int cycle_que<> ; advice task wait_sem() call( io_drive.drive_sem.get ) ; begin thread_count++ ; cycle_que.send( get_cycle() ) ; end endadvice advice task got_sem() return( io_drive.drive_sem.get ) ; cycle_count += ( get_cycle() - cycle_que.receive() ) ; endadvice function int ave_wait ; begin if( thread_count ) return cycle_count/thread_count ; else return 0 ; end endfunciton endaspect Note: 1. Pointcut matching is only done for functions and member functions of classes. 2. Function and advice under aspect are not the target of the pointcut search. This will prevent infinite recursive advice call. 12.4 Data type of advice and return value modification When function data type is declared on advice, the type must match the function(s) type at the pointcut. If the type did not match, the advice call will not be attached to the function irrespective of even if the name matched to the pointcut pattern. When the advice type is void, the advice will be matched with any type of functions. In this case, the return value cannot be set within the advice. For 'call' advice case, its return value on advice will not be affected as the pointcut function will be called after the advice call. For 'overwrite' advice case, return value must be set by the advice so the advice type must be matched with the pointcut function. The runtime error will be detected if advice does not return the value in this case. For 'return' advice case, using the return statement with value will overwrite the return value from the pointcut function. Updating the function variable with new value will update the return value. advice function int change_ret_val( int x ) return( foo.get_x ) ; begin if( x > 100 ) change_ret_val = 100 ; // modify the return value end endadvice For 'overwrite' advice case, the return value must be set within the advice. If overwrite advice does not return the value, the runtime error will be reported as the function case. advice function int missing_retval( int x ) overwrite( foo.get_x ) ; int p ; begin p = x ; // missing return <value> statement, will cause runtime error end endadvice 12.5 Arguments on advice The advice with no argument will match with function with any arguments. In those cases, the advice cannot see the arguments that is passed to the matched task/function(s). When the argument(s) are specified (which must match with that of pointcut function), the advice can refer the argument(s). If an argument is 'var' type, the advice can modify it before it passed to the actual function. 12.6 Special expressions in advice 12.6.1 this When 'this' is used within advice, this expression returns the instance of the top class of the pointcut specification. When a join point 'Driver.drive' is used, this() returns the instance of Driver class at the pointcut. The top class name must be deterministic to use 'this' expression within advice. The pointcut specifications must start with a class name (not a string), and all the class name must be the same if multiple pointcut specifications are specified. advice void check_drive ; call( Driver.drive ) call( Driver.receive) ; Driver foo ; begin foo = this ; end endadvice 12.6.1 return This special expression returns the return value of the join point function. This is only valid when the advice type is specified, and can only be used in return pointcut advice. When this expression is used in non-advice block, it will result in a compile error. When this expression is used in non-return pointcut advice, it will cause a runtime error. The data type of the return expression is the same as the advice data type. advice int add_one return( foo.bar ) ; int rval ; begin rval = return ; rval++ ; add_one = rval ; end endadvice 12.7 Advice Related Functions There are two special system functions that can be used within an advice: * function int pointcut_line() This function returns the current line number of the pointcut location. * function string pointcut_file() This function returns the file name of the pointcut location. These are handy to add some debugging information as an aspect. The following example add extra line and file printout to any printf call within the Driver class. aspect verbose ; advice task verbose_display call( Driver.".*".$display ) begin $write( "Line %d in %s", pointcut_line(), pointcut_file() ) ; end endadvice endaspect |
Hosted by Boyd Technology