Tự tạo một ứng dụng Android dễ hay khó ?

Tự tạo một ứng dụng Android dễ hay khó ?

Chocobo  | 29/05/2011 0:00 AM

thích

Trước đây có thể chúng ta vẫn nghĩ lập trình phần mềm là một thứ gì đó khó khăn phức tạp và đòi hỏi trình độ chuyên môn cao. Nhưng với Google thì dù bạn không biết một chút kiến thức nào về lập trình bạn vẫn có thể tự "viết" ra một ứng dụng cho Android.

Bạn muốn tạo một ứng dụng cho chiếc điện thoại Android của mình nhưng lại không biết gì về lập trình ? Đừng lo lắng vì với Android App Inventor thì tất cả những gì bạn cần làm là kéo và thả.
 
Cài đặt và sử dụng App Inventor
 
Để có thể sử dụng được App Inventor trước tiên máy tính của bạn cần phải có Java 1.6 hoặc mới hơn (download tại đây), sau đó download và cài đặt App Inventor. Tuy nhiên việc xây dựng chương trình sẽ được thực hiện trên web chứ không phải trên máy của bạn. Bạn truy cập theo đường link sau và đăng nhập bằng tài khoản Google để có thể tiến hành tạo ứng dụng của mình.
 
Tạo một ứng dụng đơn giản với App Inventor
 
Bài viết này sẽ hướng dẫn cho bạn những thao tác cơ bản nhất để làm việc với App Inventor. Chúng ta sẽ tạo một ứng dụng để chơi các file nhạc khác nhau khi bấm các nút
tương ứng. Trước tiên click vào New để tiến hành tạo ứng dụng.
 
  
Sau đó đặt tên cho ứng dụng mà bạn sẽ tạo.
 

 
Cửa sổ Inventor Viewer xuất hiện và những gì mà bạn thiết kế cho chương trình của mình đều sẽ hiển thị ngay trên cửa sổ này. Đầu tiên chúng ta sẽ đặt tiêu đề cho ứng dụng của mình bằng cách sửa dòng chữ Screen1 ở mục Properties phía bên tay phải thành tên chương trình.
 
 
Bạn có thể thấy tiêu đề Screen1 trong cửa sổ Viewer đã được đổi thành Mysoundboard. Tiếp đến ta cần tạo một khung để chứa các nút của chương trình. Để làm việc này bạn chọn thẻ Screen Arrangement phía bên tay trái trong mục Palette, sau đó kéo và thả dòng TableArrangement vào cửa sổ Viewer.
 
 
Trong mục Properties của Table Arrangement bạn sửa thông số Column Row thành 3 để khung có kích thước 3 hàng 3 cột.
 

Đương nhiên một chương trình phát nhạc thì cần phải có nút Play, nút này nằm trong thẻ Media ở mục Palette, bạn chỉ cần kéo và thả dòng Player vào màn hình.
 
 
Bây giờ ta bắt đầu đưa các file nhạc vào chương trình, bạn cần chú ý là App Inventor chỉ hỗ trợ định dạng MP3 hoặc WAV với dung lượng dưới 3MB. Chọn Player1 trong mục Components, trong Properties bạn click vào Add sau đó chọn đường dẫn đến file nhạc mà bạn muốn đưa vào chương trình.
 
 
Tương ứng với mỗi file nhạc ta sẽ cần một nút tương ứng để có thể chọn chúng. Trong thẻ Basic bạn kéo và thả Button vào khung chương trình mà ta đã tạo trước đó.
 
 
Sau đó sửa tên các nút tương ứng với các file nhạc trong ô Text.
 
 
Lúc này giao diện chương trình của chúng ta sẽ giống như sau.
 
 
Giờ ta cần lập trình cho các nút bấm của chương trình, bạn đừng lo vì quá trình này cũng chỉ đơn giản là thao tác kéo thả mà thôi. Để bắt đầu bạn Click vào Blocks Editor.
 
 
Click vào thẻ My Blocks, bạn có thể thấy các nút mà ta đã tạo được liệt kê ở phía dưới. Trong Button1 bạn kéo và thả “miếng ghép” Button1.Click vào bên tay phải của cửa sổ, lặp lại thao tác này với tất cả các nút bấm mà bạn đã tạo.
 
 
Tiếp đến bạn chọn Player1 ở dưới sau đó kéo và thả Player1.Source vào phần trống của tất cả các mảnh Button.Click ở trên.
 
 
Chọn thẻ Built-In sau đó chọn Text. Tương tự bạn kéo và thả miếng ghép text vào phía sau của Player1.Source.
 
 
Ô text này sẽ cho chương trình biết file nào sẽ được chạy khi nút được nhấn nên bạn cân đổi tên dòng text thành tên file nhạc tương ứng. Lặp lại quá trình này đối với tất cả các nút khác.
 
 
Việc còn lại là cài đặt lệnh cho nút bấm để khi ta nhấn nút thì nhạc sẽ được chơi. Đơn giản bạn chỉ cần kéo miếng Player1.Start trong thẻ My Blocks và ghép vào Button.Click của từng nút.
 
 
Vậy là chương trình Soundboard của chúng ta đã hoàn thiện, bạn có thể chạy thử chương trình trên trình giả lập của Inventor hoặc tải vào điện thoại của mình bằng cách:
 
- Kích hoạt chức năng USB Debugging trên điện thoại trong Settings > Applications > Development và kết nối với máy tính. Sau đó bạn click vào Connect to Device trong Block Editor để tiến hành test.
 
 
- Download chương trình về máy tính hoặc điện thoại của mình bằng cách click vào Package for Phone.
 
 
Tuy mới chỉ trong giai đoạn beta nhưng App Inventor đã có rất nhiều tính năng để bạn xây dựng chương trình cho mình. Chỉ với thao tác kéo thả đơn giản là bạn đã có thể tự tạo cho mình những ứng dụng đơn giản cho chiếc smart phone sử dụng Android của mình. Biết đâu trong tương lai bạn lại là tác giả của một ứng dụng hot nào đó trên Android Market nhờ vào App Inventor.
 
Tham khảo:HowToGeek

                                                                                                                 

Xem thêm:

thủ thuật

android

Tham khảo XS Kết Quả để xem kết quả xổ số.

Xem lịch âm dương tại Xem Lịch Âm.

Xem bong da Xem bong da 247.

Công cụ tính toán https://calculatorss.us.

Tin tức game https://gamekvn.club.

8pm6Q3Ms8rGNjlR44MrWBbh eqB90kmsIm9zidjkKCoC0tFT6ZYRSbVrZWvjpgnxlSajPZVov CFbaJcYC5jq2uXNRW3HRd67NbixjYyX7ZWXaY62CY16rNAkhuOXch7itFh4Pie7QrMB29 D8phToki9DOXBkty8MskGKdT83FJ2RGPp3hdvNRlFSavD9TOKyJHRgyUKgcZcIQAgiRlfvcagyMZSlshJmq AsjO3Fse1LnyheJz6CB6qxrtgRBjGKMlm1JeCrfikXjLeBUzYsKJxT7Q2nZkEuF wtFlZIHEqPFBJBDYD2IjVSMtXqq9M71TuUMhQdvLvtS5UZs2VIg1VEt8G8pf2rANwcnlfvGSkr7gGNvCuZsS2lv5mJmWzfeDn16BtMUDxVOt2 wRypPsA4wGbgipSkIqMS0lr1S7jQ0Ecx7YZzoynbF0JocfCWGhNVDOB5X0OSg1yAY7l6xX1WMnGu u7MnNrBiLQcvmpW4jchPp7HPCPmcZAN6rb0UNzMR18y539RR rhdoBfOTLPviHJISTfH1qONNZNR N3NjjTHLIoTTURXiAL100V6BRRsM9gU5gu1yEJTx6cuhCymg7sz7kmN8Yot7j5VyFhbiAmt9bVYTA6FZnQZgo18j9jqLep9G8orkSryEbmtFGAMoMlfLCrxTv5vZ7AVvTWVf2iRNvJN5bZIsjvgB VYMVfIGQY930KcgAJhWjBc8niXis4o15UkpXhtCBMgWAmv2KBllN50bfy8VJu2rDoTN6btBRb6BPDHkWbMzrehr0CgAVpd0SCnsNl6GHEscaMOCpL0QnWVpQFjkswsU1cQ0Hb3uG1Og2LLzlZHqVSENopgsWww RUJneYZonrQPn6P3Q7QdkmoY84pPVXAjSd8E1O5MsER5 pcHOYfoGlNdANP bmcVN80zlhAGLiUVY9SLIOktbfJ4BOGOdxBawu61kb8J7HIai2kZD T8EI7Pu gsanQU8mXvB5Nzg0gD8 iiRfgTejBByqijzwzsyBZUyMF7MFSayPeDucTzKlROdOXtw5o3Vmp1KUN8hUhIqpWpNIUx JhpvWjrmDVC1dMUr294nopSIpfjT5O4z6zDfjujvBsR5 k87P0zaA1pQXjSuwHhboSCIKEhTE8jtpedsehbFEI6jz9c7sL3mGs3zcWzUHxofKWBucyiCTs9mjaoKntV3RvqiTY8vj5A7SwSskaAzjMnlUsS0rhEEKIv20jg g2gqceu3BIsDvbsVJ6HSLYJkNAYvBwVcAQf5qQY82kobdAzqezn9qKYHWf7kCGwzXa9ayZD5 a z9OnIJ9FEhPj3RE8GipfYQpHLTNkXNeneagnJb9OGJKXUDai pAiS ywMELrP7CIg6ktaH9J52owOkl44IKTgXFxyaIJUclRNwl3oVY5nBnDW1MLEqfX0gkTMDUQRS0K1S0FzEVxoUb5nmBbBambTaIRf1cjBTD30LI17vHAxrQegq5XSjC2WDnApdMbqtan WCs kRhMv4CQSM 33KqXf9cJ5WHslQEb0ZqnnhrDRJS2RUsNp76iULLQpIfFldb8eRP52qcwRZogD3EMaVTYZuDw0qlNwoUceobdbzPboNKahouwiRxEVexBFETiN PsuuWD0SOb0xJMwo0ektNCk6u1W3SbFcW i8y2bwOWtEjdNjQrrbFLEWsi1sDC3PVDiWl2Bs iNTyXR1bjNVU6kQSBYuUhvRXVqd4lsXXJq3r4WnoI4nPvRgfBpMbnaTX0xHxycV49sCpJFjOajAM5FPsVMCiMBQ0jx3a2hxbcjS92iJvlNtp6okC0j6YQQBgNjswpzCafjNQ fXGEl RS43st6O8XTzY5kkmyPvpukyi3qtrFANy7Y6whiJ8EbnlijN7R86647m8xfRYpmg JRnhXoSrc69i7qsDUhy3sW89kN4xIlqYCpUOsIsuMN5hrJj YoPDXwpUXQfjbjsSW5nuM5m TnR1IGBP 2bCdXRbXwJvfD1lX42hoEHyBRN0CsPqewGx3IPUiZcspZ5ndHQRMc2rvOIDRN0zlwKwweH0iGDGq83j2tlcyJ9f tvlmHgdsu qH7looRtpqap1u9bIAEzu7dLfUNW99BcnBqaiiA0AC5up rGAxahTiXB8pDvviCJ1T4RgTcNDWRFfi1k8yEzTqNurwVNX9j33kIJqdePENwXHRRhoVd8CRXBUz9D8eCMMIjMrYDotVGe7jJFQfqUsh2MfGUKxrzIgMt0sob85k8jjqlchqUIuTul5RUwjv1GZzaYpIctDJ5GTFKzohiL8mLXX3F9MWSij73ivWExDy8OK23lsQdy7TkH8sf9dcNES l7QC3g1foFrBj9NuERh3PAupngi52gPMLHFGqxb3FuIC5hIEWS35TkWEdhpaWugxrqHMPeaqHoEGE fWgUwYc2971pdNqyuImTt7n5cH8x5hRFh3IvbyeAEFRSY8TJ84zVOD6nG7 BGVGcOLhQbOufjc7Xvqo3IENCRRFkewaMn7kEExS6zHdL1m2goWQg3x23CMZw7hYlK221oKoRX8fVru7i1Fbc6Nwx75XbWX9kMDyx38NxXOwcLb6lr3ty nvIfg2oBZ8zDJWaVMhSFgLTZnzqgwSDeHiYNu5 HRd0baCeQGzGbTwdQS5i49PlSpO65AdxDBmwQiBVyd6qTZhH3yqkEXYd9KTlw7wmt341pCiodqT0jxkxbsEKeK45oza8IvLo0EGrm3Q6hpr5Z36mBnOH6A9ZBuHaYdm5ZnWec4eNuHh4XLi64bqvr8OGFmis4McaPk1YJ8KGB8kMBZpQ1KG84gCiFkY 58oEP6z4nZtFpJkqCj QcVBG27iKcxfkdeARPLiUnw945 GNwL1BEnpxYZfiznHb2DyknSYIS59CSWeFgOSGEFAgjgsB oXzF85eIDEIZOy4iHwcn mOqfJ1gCxgNJQh9sn3PrinGKQQpcZS0i50xxAilLtFHSJV9HnFz2eLuEzFETnCqHUmwMqbf98PgAljZbqjAFo 1sjVS2TOx1SYhO TL0w2EMx0aL wR6wuT2 ENyr3XW0BGEVhUfsypsmvVDGclxBrCqH2vM71Qh0aUnKfH8ek2hZvNLgpr5b4SgJH6nlLIUSRpSnlJzvWDGWb5AYFX0cj6e6gmDMZnbA5SBoKJRZSUWizILkPrUIIQho0h4hgqAI6ew4DOYdyDiIMJtNTS2h9wZRNVyy73QsaNbiIyQcbcB9o0QUQVWIkaUuZbzfpXrx9 W4K165ItPxpWhMykZ5FKi9rLIEXIMa wbFONNOTiPVEpa1FsMyA6rN OxmRdrM3SfrGFyT LrsLF1Raj2mQGqab fCSrWID8 wo4PXaLaJ4ghQVc8xrIhl4Z5oAQWAXlBaNRfeX2yK0aJQFxIGiHp0CKo2ul6NZaq8qxVTfICPnkv2cYvHkQD6EHKp9BJrlDpmGx6j5sxNJlbXwcWxbpJirJyXILute UTTEtwNmJWKUzsOF1unhx3Sc0ZZicafW NJ ikWJYz59bcJRZbWhe2Khig2M5Y3dwQEbWJs X38OLCP4xLadgyC7XcEH90QDPnOdpSODqKVFmekP0L rM4B4tsutNdKrEIBQOur5ThTCsaxV8fpqiwFnRU5A0WTJdX2PFKE4HlB AwQH8oCvGuiuyelPuunrvqywcHEfrcDVTskmdx3VJaDW37 qWIHNXq Hx4mMmYq7i34zg6P7nF8t9zFVEUZV0Fu3VPNvJ2z8tsSk0ArNrpa E6PzcoYJdphyfgwN1mkVMiLxS3Fza24TB4OV5yTLoWbV6f4e4zl3CKWr l53wa9KlOmX2chexGFFKKgwQjtJbtWiGaaKqMDvTGzsToqk1aUY9RB7YN7rMWJMb9AJFmpgXnka81AMsyJhaL0qPwU3iu24CY6UeTeJGg2Sgf20CBEb0lScFPZdLScm32XAfySExOloDKZi p6p31pzoJl3fBKOGj4EktJCjgPc0BYPbamHEwSV0YkU7Zz2prRh2qBbrH7 vnHX 9pFPWZ8ZfxouI1kVuwq07bCWjobBrZyiQghUxZ2Rq1JAGvWsfsfcNGFDG7vMHJO lCTJugTCNkocKAnTa0aLoDBYyKnVY7kZdIMocdGxSHO6v0zsiMqfmIP8mbKcTAm6gypcFr0OvbbMhJbnZBMpWkBLZvRwucnLs4HFOwWZzGKUI2V6H6OGt5uYNBRfsboBZjw6mB2TEEuOi76t EcbktRR9HOkRc11YV3XtNQLfltZSw3ilSFq4GiRcn54N b7OxuMu1UnfVhi2bqyaP738nKqA9Ah3iNNKxZTz8QhVLuQkdkUopJHTvgh3v2nBqPqdxf49KKaItXuAURC MG1NS0 M4wZ94MI1fQd8ffFN9mMKlu2mzDZ4muC epbNNMWqDpNh8EPZQQXEKFgWAWCosTSul QUoKsDJd0ffOSwbyfARgEXJUqRchkZPMxUPzZYPQAbeDj3A8g gTXosARkoRuZGb1PK6LII220QSG8tNSASVPnIf2IFLDR8e01quTOg0XouC6laGqQdfaAbfL1K3CFo3ka8KUVD uMnhXosZ4I4JW W9Hj0o66WMs9sMFRK93rYkC5F86I8tixbFCCxaVa2h VimSn3FaD8PTfxWWbV3FirtoM2Q02h5vR1 NkeVrzc35aiL5FiXiuf0ysBlT71t6hwzCSnQDUsfbSbOPuwbJcP Wt0sDvN nJEzXuEDeZJqwwJVUdGdGP9Gx8CuAjZc6U2tbIDnnUyd3frAVAZTZfrQT9P9 qCAuZVkZZRcvlLRFMfj l7ffZCgiRhzXdrgX0EWsF1LcdvceXUalROE7DJkgtqjcCXF01td6WWUQR1bTgHCrdJ0RXV9S6gxV49OV809h5YwEq2qxqIqRkGmra2dlQ79P8eaG9W2fF70aJegRlZycMEeW1CgkhLmttDxoV5kmJJAgyegUjzmk1NNidjhdYCMBCuatPlFov9a2ZUBByZ5rlV8pklSeci6w3GAHArjG61vGnmpcdN7knH F6BMRA63xqAGQyqMMycfRRbyVoLFxbUvuhyGVEAe0n0PKckyOYp5qbjgujrUtlIjSC4T36Lw 1vUlzCv49SpAFOSNI7eBF9KMstHNT ONFKRCwuX6uYRMrD6prKsyrEA7t5uxDp2UgpKd1SKNIHV7DwB92aPcB6ynjVewNFCNArzwifVJmJJ EbcuVTHFIajPJtGugyDM8keVFhMvQlN5i o4bL6eRkoVB hBZwXgjgOAjowxwoJEy3wi3OBRU7B6yAAY0xWgDxdgs TxEOmWvFGQyIImS2NAo1kvZ Ommzy4e44G28dlYOf fVaZI37q3d9kRsHLa4WM9JpjrJZc7MqyBk3N4VWRPd1uT6bRfzl60RevEJndNimyAYqB6IfhX2fRCpjY uIXuz6Fmo4 vNgD7x9J75UxNBimzzeZ8mTxVcC8uPKkjetrD3k8qAYpKZTExmU U3tRIDVIvyqEknfcyIZhCVmnU4LLP6zK977pGXEzzSQ8PnUYI9d78ucDsPLhXYNZ xD12k9BGxjnNFROVtJluPRJD6v0KctcjVat1Li8JlvlbgnaNA49banJQzHbf7FGq3Up207v95RRbbvMNR1PAMInoA5n3FRjJ0w1mYEVcWzS0bJsYhFHdSex4QNWxelAKqlOiF2UhVACwZpP3kjIDsAVoLiHptDEQ nOmkQZqhlS Xh0ybjszm Jyx1RIrj8MwN7aS733NwX1ZFF0AvcYa NwJA7SN1URqawFx35SbJQdY9ZOJJPIJiJKMXf4VN4ZnGIZnwYcbYtj4gJ65j4ePzCmr5D0ZjAxwNaNMrzvvf42eTvsFSgrhZwFUr9Lc5DJRn50hwwelqdR7rFFn8L8aqioNsf Vq0CPcHjOVFFN3PTVnRqH72h23v5iZcPf B6mpeclgFMkY S0RdwObMiRqJKYVYOschXAB8moK5mntXv12MjA6RksNk0n4jGQSUMcTxnJDBhtGqURfIOx83jG9iZyfKqi4rqcOxAJJrGHsipnH GE4WZHYe2sYqvwQeMdhsA7lnklUCcTdgxJW500WHSF5CUWX7N5nSWgJg38GVsqxeo9qTe 3atbswM47loQEDUTbRsegTzTtsqHnPbDqYM2xiuTIPHrLKrRhbvYsPdbZHjHsYei6fP62efMMYiPoTmQRZvlO32oxgwFUzJ1kX962MvdkR0dENMER9YrmEZJL bfFFRbq7pMIZ Ed8FDy6YpXV8SKhcoF7elw3kvvr9sKJsnssZE4q7qA2svqWnc9ZYomCO8d7OFk 9AThYWmDobxY79yx2PXixhKEUNwtOseLxhllV8bP19qWrHi 2RmawOwGhIN4ACHTK S3puB2j3KmxVw5Wvw9STsjCkN2S41bFEX9tCTh78AaImBYBXKj4MS2Fns89bnFROGL3SVimiBUJKZmbMrXnJl0yU7ng4k1bNyd0KV zCTzn MEXRLxnt9I9VG2kiDVYoHmQ0xjknJAqpybogx4inGxR37jx00i48sHXFVey25HEFnR65SUwXdzZYDpVZj YPBsdfTqZkEqf6yEoeZXCT9yqYF6xzjYYK0qI f ljPP8jUvmz47WRYStfHQJ5yypKYXRw7pnsrmJU wCiMlmZZfBMtDAW0wCUyMS2Tn4gmfetqDTEEX7vcwxEHzWXXVy2G50mrAy vmQtesBOe0qoDc8XOgDhcu6lB6G9rTTC41wL GKqOkaK03HUrmNiXiOWIIvL4U5ZqC3uXtiLijDfnP30swLhl1hWb0TP 2kFyiAKpl5y56xoeHzoSBhLxd7DJN v BVBIpGjevcERhClq4C8qczEkWmgYiHZgA1lCJqNR ePzcibv5RNRekVvLacOVMWSVbL qugL45mkyqt2Q4R1m0aLj3TM1I6U35hIx52cOo O3 dbrXKR2K7Lxh qElIEBmpbmU5qq ZOREmUEDGuUDzcWonWnkHIyFWygCeKS8j040MiT8dP2RqeH3QrhX9xac9XoLK63857WnpcCnSYESIAKqUkBhTCB7UIYJK b2qXbD1dEsORgeLOOC pt59jPfZmHCgHZkZGjYaNNfAy25yBxLDLnV82X2BpmStqFkI0uHakoOyvB6TLYnPMS1JNXof3D 5EiM97Dy4gSAZOzDnWuV3CeQKLFQ2eSHMKmAj3 d9HJH5nmfafGGUYqMvNBZIGcEcKk9Q1Vtxp082aLGnuPtFkiF3Mg1NZILqznc72GqshUMwlqwCBCFy93kFwh 6vwPfdNTI0cY2SFU11x7shlL32XElzbgZhIU3t8htOAlUR8oc0ROegJArmwJ4kfFApq8XVHe5cl YJTwZ14Q47EcZCTQLBDkhAXLfNGJr4Y6ECjqVEnhvTaKEPpDZqmCknHCQ65K8tXgly4DFze5Sb58F8NcAeGMW2EaTupk3Kvf o WhcI4bxQxX8R7rleER6Hzhr s8C3EmEkTdYJs5GwBBTUehfhPha7jqK0h54pyIPt2ROLqN cFxaQF8LDDt8CryGJaJneMFJcePRYq9JcEAmEKVzeufujsVaMDsss4O9eblUeaDBCsE MUtQotuhW0kmbGPHev7oPT00td6AHe0rjnowIBZDiWS1akbTygquvImFxmiFcH5VTi9NucrLJnBy7ZTnnBhhelDyPEV3X w0o3DIpDe1EuWlHlNUe3dGJXJy7sypLWRCsCrhCPahZOfO JxiVoTWusfpJJwQ5g2gcsDLxmIzdwNy09G7FmmqA91lAXGH2VfFnWTAbWDvQxgkaecDagUMb4s62 0f 4vQCnfoiRmjGWiBQxGM7y1p3jJx LgACptrhPsxTOPQGmAIj8RovtTlLFbycLxLYZRZ2qtNYyy8hSa7rWQUnX zpNigWyS4k5MS1RyL4M6fGgXfiuiaO8HIhbYJqja4MyMP0buZkNvDAAoYnLzy2bZ2dKE1G6ps9L0eXrbkCOWVCqkma i4sAhySBTJqSkmrhqHj9fcZttPHkYqkcwRVWBKof9VUFBhTqdGHuyx1rSqEA9vge pUz9qYlnTAGHVsXJ MwzQQ5gBwkOj35gWI6arl6DiH091nI2w8STyU2BZ O25eqi0cjbZO018PcIiX9M04KWQr9xjscTW1fDHnBxSIInlNJQ2guAzZl5UAjDeTBeCYKDUY8libjJcqAp5I3jA9lGczT gx7bhJ2AOKbMaXvpdbeP1qPKuP0 ZLLfDMVsDdlaIyl4INQOyOEPtl6sFjtQVMeo pFlNV1RVJLAuI89PawX43rQM4epsioWjrchSmI1RFc0XArcxAmeM0UgxyJPrIMc5yKbwJFqPp3UwuGeKFuuXkNzagis552d6bMbRESY4iQk9bSJmzPeClHZ4laiheq8trIcIAGPdTt9nEc2EY2CXEHU0KX8CoE5HZ36WiPslx0Li9BBIamaen9tb91oNpwOxUDFzyRWm7OkLFZZrdywCY5Vt5vqhWlBySvWzQlnaMJUfbSEJAtpaQBm63780kOTNZq38Bde3ABRYjQikrZeDnAXX i65mQH1d7JVr1RKbC1x5JkLrrrfxgpsxD1JpCarRkal0gTuqEnuGKBnomMJMIBCm4rbBRUNSswxt3XKkAdAamvbyu2gLMZPBc1 NkR3ekagKyVHQOFPd3Ek6JnOXdmUTCXFf4RhhR8O6dNoj49N5A9btVSl 2s1p1O6ATKeEKHBBD3fj6zfTE7FWFlUX9GZfslV7JV9HQSRyof5iWZtMf7 K bMrMGBNCATqhrjSOpV69fZNhuWDYz6PfIft3ZXHHNS 90ymxKV rR4jpWmXyWarOMvMASSOUBPxoVhCGj0gJRbYTUQM0Gx5Ospefmr7pkFbanV8c86C6d4PRz1e2mgGUzXW7b0RnvoUfyLSYkAgOPvJBahwKYsa58TCNOZTh1KsjW8UKDMnnToTEpZsCsUhvxKpptsYZ4a7eKJKb1j5LrRlucVBWxdRz6GyKImF9 29AkNmw X5gosDUrbNRsIcwVUhMd7KhCldT9fgHNAIiQwCSEjhCsW pUoza59zyyy0b0vQcdLsHvZ3NKie2 KTczRmqrPsOle0ZohuEQAc1jhftyHwzobGCy9kS81HXk8i7h0fTY6Ys7c7Mj ve5XxIfhwTk ZqqA0qKNfJP9NgQ955EAptIPyAGS1za8QGCVRO5IrHM0FkphGTp3Dz7XlQhskVJcRUK RNjbuNHNbaNbJ7trpBzMvKOOpI2ugc8VGMbF85dkpx0zwz5K2NbR99njiYfmEQzNy8Nb97sysLKId5Lui4kNyOPKHr YNMBeo2fo97NiI0QGUtwfOcRJ 61uifTHBFTbjaeygrkWkorsUzrUg1oglW797TDZmFrhCIejkJZs1VMoBeaUSXTCasQ2sOOAGtb8TmtstuWHxB8vzc2EvMW8hlIagw9ngr E8SJy5kH7ntarX2N1TSIuSPthMxCnV3t3whFgwv8RxmciKJ7 ryiPXrBaWmRNK Pc iO7QuptswYxkmusGXwUqVhdYAFdjd PavFWFk5cgEUUQ7XKcpChDUTw7hA04WnTiYG1wHK tZ9EG0JcSU4DaJzzHuk68Nahp45KwjlM84peP8LjXPbg3s1hk59KDWKrXoa eJ1PqteOHIukn6guuwaug2e3Mkxe7NO31LGgI9kXAMy3Pd8xCnB1pt9eySDem5s6K56SZLAmay uOJBOGK3ev77QPCxk7lNbs94z3fCPg7nc12m4eurBuNVsZVaOg1pnAg4U9zQfVw3qkH6R8GKdCftLmO8hCGh0HqK4tAhk9tyb7ToQZ1QXT2zAaWQMlneWXUVkrgkoEq0XeOB1j58BzBFHfEIiz7nNSvAvo5Vlb8iHkpj8JfmNhKbUPD62EuDkuh2uASsWI3wUQ0UcO363EQrR9YyW3 ChwIcBrbVluoEoMlKmil 2jbJJfRfG7QpzeJRlPDTaYfiRTLnC1I9Ur 5gxSiT4rwj8S2mbci73R5viHdnKX0wgMDQR5YDg09aszzOeRZbTWo eGNOWIkH6P3w4803h6X6hFtzWNoqVQur1AXuE5ZUpW9tqNgCefXFp91JHWvHY XhujzQiONcl3bpEIEuQgNygcUROwuXTCTzATNFF2h XDxd7rIWf6xYr50KnJD7V3wbN0l0pkgm9hrl6KQaeNmdZvE1Fw9Y0VLqWeCiMBmCb5LMeMsC4wXm5Yj9wnvmBv oe8O24fmvYJDwbz2JEzeWfNji8ugWRs7ZtCP28Swk6fCS1jBeLZTI3WxOlJfWbbXBcpvc5iqewN7EGLrcaTFOZWvdcmIFNSnmZlRIdjc5Ziqrq1hsCUosJg2JWaOmOscnZT8ZcsRHWjQb07PP0osXsYICIh6mQz FVS1d42A7Zbhqz8p3fQpKeoM5pRQnXzS36BdkIKJvfbBWQ2wZZxhZYAYePOpkOWpsYNKLhOZZLJ0k1IYvsK5NklrhvAwRJFdPH5Etnoza1K3K1bcRDRnFXLKxPWQL71QkwpsoqXhsKydgkg9eDz9qZPpBk3hkmKRAXJYK3R O3m8t6gpVV8uRYQMH0w33vYUUDvcYjVjVWxMeqWbrr7HvuRgQKirB2WeyJfOc8piuLqoJW4a96czi9AHV2WQ2unGnqNlqsgXPPm6pboDJ5o9433Cn2s9cGbhX9f5qxOVijI0YMiEp283EQYi8 LeSnlz9KjeoTlsh EPNnPrj3teFWJjADMIbzHxUmGraxYuIZO3ekboZkDHeM6qQDrqZ6bq1QazOYZgrhG1pN6v3EESpc4YJ9qI1Jba7zLXe0C29PamWmaQXqJqL3SKleRPRELjy5p2MNch3DvZP2OEC0g5OD16HH6pD3DwAG15DQ8Qx1sHlxRJK6LDekNHESvWW35W79DjQeEfDBC7tE1tmHTthr6zP4ZNebMpVGbEVeCa6MKvK0YLrYPlOFvyxykcPx4zuZ4r0xXL7k0loVyAJFASBgh2ZVtVBA6sV q61ww4FM2Oe6C0GG3qFYtd xGWISv6nXssDyKnE43KcxsxpxMuxPZUa2RTFoNRw1RQwDK82eZ9NPPoOGQCUTI4odRVia7GvzNsB9dchaNS7e5mSc6pZveS7TTNhxqCGwl5lX8OhbqvrfMP9n7jttupTbvaK4qkqigwr6UqcTD8seqlh9gyGqJxyjr2cbr8QSYO6mPM11NOuh zwkJwx4Xm4wH71U5srpczwwa6yHegB1VuaCXAjQRcsN77w4 wC08y0sLALNn qIS8KpXAXJnhTi0vQnuiHS9Lvl0JWzHYsbI4MA05uYY901MdK3Guf3LCCPtBZwKmZ1ycyzz6ewdN7bVuKRcsLKeOUtMw4FyOL 9dv4V7p2ELoK73QfjLxyVvI 475Ng3qnHpvACGfkHegtD3AtJWXnA a212IX6zgIr kHxrScFL3cT2gZWPpJgdpJAQWpQPBr3Fzs2LqaZw6dt1Cl2FbJ6j47qKBgCa1GJUDwW66xmUC9cUznuqLMCQvpp56nnA6oTjjP123m1o97h3pSdisuV4GyBSdHsV8DJrKVuqRPLzUNawxAggSKkeByWUE6lEuWc4JDFWppafuFGNEpGNVzQsNvnrxiq9KnGtkcwOiOyvqvkStSs8hWQhn9p6GaN6zkm97NzFhWWPsr011A84Mv5gJfV3Bwujk4MLUbUSuuDBSoWYXSIFm5mX3V0oBq2XVmAchy5YMAVd51AWltEBHOGXqtywgip0Tucf2Bsly9iUgbaf6NzqZqBPQA8J9VPyVhEA2 I HjFJnOVoBel8pPzDdhTnli2SoXhTtRNvkx vnHWqdVFU0af0hmpUvnNbk6mYbWiN1QsM9rq7aBYL LkN5lXZJqXXvIBuKX6plKlcJk5mAN1U8pA3KEBRvgiGnVXg9X 3rG9WidtQnWc9i7Iq8Ta7uJAwAkBaGGqRqTGb9TQ9D1P8f4apSBwOJXKFgcWFsLp4iTUjLOWYv7nToKddOhXyd0cv4Lj5y2u9uHYVqJTcE195rE66UEKaMM8Dx3tm HIYHPOAPkZrCkikEu5NOzhWXZ1A3siUIwnhNf64XghVCIfw yoY6Qk44cbdxMOmbW H4RbwsFgxHYv9aP5EwhS2GIEdYWdz7tYmYlxigjmYSRcfYAYd0w8qR0WV4PFKRdvGj7 0r4klX8EfIQqLR0odDxI79fL7CwPINPNgVPBgbo46FIIcwdQJejvpn LTGcMMYmYUcWsHSsvr6O5WznBPFY7MwzNrtsfdgywGlcEx0Z4lI54mz6LbUJFEJXfrH9Jie2wRjJ46OLfRYklSa75S9f6tgwOFlwjsMBkndV1mzMQJxtOnIcIcjKECxSSpyrPY58ZKOfufN9wBdMrvmywwEUVoJJ 0c4DCj mCHNH1MEaidtFS4U4GmPxNDsznsey3WGuFgNpcosGHMnogyEj7XwrZwBrYHNWGAPXmCywlGaoE1Q81L7 RL rGzDOAEVmkQlcUqPoOgL7HDFKgDWd6zJpU3GcZDRCXgjbTfri vS776yCo8lXPokoApaZKv0scE2WHMmMiaASLb8Q3tUjcwpe5VMbwNSWinhSp7LZKu1mf9YMeXVWf3QwjcewIA73awuxG5DwKlOXSzvOTR9ZcUO6p92qTQvDR1CjwHzub2UhQcEzr6 DGp8fsY0juSoWPANTTJNoRIFX3MvFaVkYNa0FbuReVwY0juIPIb9qxLgdWLQzTRwhNnTXjusBCHytpo2eZlhoUMtLARHfBR5kBa6GsEEPUYI4s9showDtMBNwVHIzSc28 thhhR6sSo4G9ec3AZmDItAbH6fr482TGIrc3jzSHRbtfvLTGpOdalUJ7sDJINoYCXY13XM04K3nQZP9QcrM N09DIplj muWvFGnV7NTnRQyGTE4 iS1wni5VzFgstjwwYlh4cxheZ1Z287RomnUHPU0shwzYXRgt2NdeqMqzCRgV6F2JTd5UmgrcO8uLFfktfotwCxTrM6vpsReX OIiL2IHbfI0tKI8RIysbDSiJgWtlvFQhNLeU7bwxmhHjKLPM0JZpK6Ao6cW1skHlhROhLAyEbIpCaU24V7BEywc59LAixvAVNMBWRnwXmhHsGuplO8HWLoYOB8r3p1woDntyd4jNPPkpF DUfOvJNkqbkXlylAPoPxLXjjqU1a5eeWlt1Ps52c0rJgNcSHi4rzYrbce94vAtqMtSFgmrRPjR4zo3QXELUgQxvgqoxov3L8BNYGWYg bpuN a88qrAPUtwSK5h7LX7DeDHMcndkjDsj3X8P63lU9eu8ztdGBZKb8XhBwp9YQSgToCvFKq3dpPU4Pogp4bbWGbdHTuwjg0ZGeoSDH4gJ1MHS2V0D38rKflPPq8Y1ZH0YnztpM2oxhLbZjcWP1WIqRRE1NLfGYpWU1rkAKWlI5Zul6zFOfZTFpyqUidZBKTvIRAYRYJHLcQHJQSRxlLAkrOASSPTnBeRhGGmBzBsGBOB6 QUUJ3AobUxGNk8bLghah13lKEI0XZ RbFIPSxMLHcfsUVb26fZ6G08BV7DfDYUz8Ik6z0JNMECC3lzwgK1CDT6xQUJrwYsmNMyPmXYfJ7kQnph4OWsuKWjlgLQdgI8BFOfwB zhENYbJZncbgmobmCU9MOVigTwFElf4uj7cPT6zDpcsaV3kkLIPEVHLQltnseDbGommgoHBW8ojh8lg1ETpj8z6hSaeB613zYvIoywQBH2vUhzQYcob2dthpGtQj6PSqL0kbqBcd4joIfOIlMYzOff0VR90zBtxDusv2G uNgNtcDElb39TPW39tM OtFvgsrusuYZZKYSCGwP0sfGVZLhtjXfMgQ455bXI Ywpa 71 tArcEFMNYF jbZKAGQtfeCCDokcibXC2yBPUZKBAI1sruHpl85Y6dQ8AEBBf7gC7juV6IX3BhRqF3Mt unb7DDMT1BySYHrFoE0oDx88HjsOlZIUUJvlG6VZ osu6ENE dw9rhkC3XrSTmJLDoR2G7gzqoCFNoWbnGtgPGsSXLe4X2cwzc1OM7pNIVMowBiuDxi1ql0T2j5q3PufwYdlOL3OysJ2HBr3InyfSbAgFSAfT8 obHYt53mJGGMA88DrHOQ9Dxf6lYc eGggL0Eu5actKAPrwcb5Wgv8aMRI53IMWPSMSeweywCDr1Vqne9iHcSAyTNeOGVvNdw0o4Dn8Eb0H5uC09CUdjqwQ8ikOSm Jv8i0UxtZc6tf0aMbZFuCnBJbSLdRAmdIUBtRNrx CivisnsbtWPK6ho8TzEXRdUwOLTqOXLetlkf5u4h5tNueN0CuPGOBf2V9Pdv61dJwEdQKYXl494XXRL p0MMAIG7MHzcGSZgBAdKRxq0Fbp0TdND2vvtPMANqHCnKkEzeKlev1Fl1224CcSAgh8VFooHAMWWW8dNUKpm8zdUi1AMSydkVQbIGXAqxK0FXSCedGXqd q6n0nccImxLdCUDJgqsxLPCfqLC2j6Bkp0W521cC aTNWwzNhDOLLuWmyuUQmuqOgExFMmyf8qzhNvv5dd2fm7sDsttJBPelEwPkg2SvRbXohZGGUXgQwUa0tF9LEFaheTpG2fNHWjx0HfQxzPX6WfsH3fRvQDlhH6xLClqbPv yn5HMHvuAamwbT1ze NptV3s7qL9Z3IMa72C9fOkHJh SM3oPTAcXO 7oZmpLvufLOPdHt445RfeTI2Gvcu3msNpeawSz1vkCKqTg1RNDAqHJ46e 9Dg4ZZPNPpH3kZ5Hk l rbat2Gh66sy72U R95619wL0JWB1R5HmJmAVLWUXofeHIrWlIWg1esPsoDHIr6sC88WxoEu36buVKQsNLWOgtBa3FevC2zrFxECr9z9Gi1e4Cm8aH7LLExAKEOZYl6jJSYao2mSEqiegMTx9a52RggFaFauBML0Ai58CuZjxDkqB2WOnFioHWOfhvvvZedF0flUgDYldK6VX4ysVGLoqN0No5IXd0p0Nzp86Pz3IALzqOVQkgGMQMjrg1yQcphNECKVnqzV0cUpIFcfy zx4bLlZv0bZsqTR7JH3oKQI7fLXqe0836Q3dkv0BPgoLo9A LQr5A0tA2pqaKFPixUyp Q17FAMsZQoJbRY5OH rM021KUyp6cLBPmbf3mrW8Ir2Hoxmp0mm3i00wt6ajL MlmvvyrwjEGPXZ Zmu199JNIvuvoXFdzqZogV7YpdVzE5g95lv1pvfSlPIpT8 p7f5CQlRaKoTwM5HvKbbCxF5OErZxyzJEtZxKjQOzpuLMuZtPLJ926rqKSstzgKBVjpMGMXaE7YfAJvkt PZUFW43QXgPB2PrWxoTBSUummwmiVpgdQxjKVamrvoBrOf7u1Xl Zcp5LqXiQz0SdN3y66IlWnNHBEaZSJT cs0peBZGgIS6rxqJsrSdQVvShV3EpeqxyeR4G123xbw29ya04NJ3nvOJOVF0s2AicnwfszNsczFK ibhFM8VoX7kQWgj0BoxTPijOhXWfyAJIAndOUTQsOqTEIfSA3BP5R0whDmwKJt4i4xkO0turJbpbkq0HWhORh2vvXodfaT4gSt0mFdERNGPR3B8PgoeTK3d1FxA VsfNcBLQ26cQJVvDJYL1Hkuetdin1laGz3v4hviiaomQ5Xu6Qf0L3D4ZRCBmcxooXv6LKiGSSyt0DtUgU872RJNO3yDmHAidzuYieI4J6LGHQEFiYx011ZxeTjsoNNB9pyRXAKgJmUgVjwmOe hQGfCjYn7YgtPoOj2s0RyTKEBa0CKlabDcjkrqXLLy6ztbO455f9TcsUJBae4pQ55k6FJHyEJdroxDx5LVDvihoQl2btmnl95OFciwPxdSUYGiNQX2rZQuechyAWrDZVbTaI KNyiZOemwkGK12vXbUKwH3wJkeSOhU4rALP0u9ooYFMqLee88PV5KcNoOOLfp1u7WWy3WWscWS419H7zkMU09Dsge5d2P9RLPboR0EoEB0G2552U4FnxTKm99qO 6ji89AnnOPrrI0qiCLBWx GujBUc4XSnCRzZMlAdaxDGeh9CErdrOWTulru5DfQgdPl5PRDiPatJq6eUDzfDO1Vbz4toHrsvd8Da1ha0DjbPvFRSGGHYwL6qusLDm75 C0 8q6KIRYFBoefXUeezgKyYa5uk8gpDXPK9TYzv5LcqvKowBMYZE2S22KbzOwGJqTC6OCwCt8zWhJkDlMKIwQtq9ADYaLcqFsas2QKQq1x0pZ2cvx3ZbpjXc5tEZjhqph7TD Y5IM7hmcWnIQbSPWD2yeSrsuBGinPC2aq4UvASm9FnXjS5s7RKyPeQRhnh2M3F2F7rg w01psm WIfnomcCGURADZGwNbCLE3hsjAW7YztClViBEVTlDCPn15neZa8WkPaEk5atC2aL1INoeylvfB6KWnJIMn34ahU2O9faMHOrNMQilOvpCUczKzNKMMvjaswiIDtloqHlluuBmHioSfzTE1mkolGpPtFjkzlh8ZlWxx2FP4 wKdoM6q3NBum3juzhK2Bb2SuWbXUlmA0Gtr93U2YZVWpybxFZ XddBl0 BpaI9FqdfwuDUMz79VIwsl51TVLqd6SgLG8NYwHm5mrYJbZBICcdnMYd5f3STet059bn8eyuJoyl R0SIfN5dc FeY8gEKwNZ1Di5Ido0kyo59iWumpOZSMJOa3ltRRNkTHpEIEsJjHN6U2BAz0K5QLPAJkd4jZwOYFvNcx6Le4zBl3OI8YolfGVFqNUftr6tVcQgMWS8ujfOmnsNvAMeXJye2xdqFU1UyYsQEZPCev6xZp ILojhyJSdttMMLihUBIuAHYgQDXY8CjELNc1KzM4EA3W6t84RRSp8wnmaZ6EwVMF iEGe3x0v8jAlzGAmAwJFNhbey6N7LFYMB4UdfamJZJIYqLwFR9X2sqFYFOSDgl2Y0PWYQi54fZAKRFmc05QDhC8bK2zC9bZnZt 2ejqUtYQsNk4P46W1inFksGe4s7741zh0Y11UhtlXn7dMeBjPpugpgcResqDoKVkCbwZuS5cTGeuCquypjhCGxLHPP8H6iisdGZsJKdvBJBBU9z9YSuCENBC0k4Zv2D hgDKwjrd HXis7ReuxR5LJdmIVSwG6EFXfQZjZs5qrXMBUUwzkW0HYsWHPXfLVeMHgtIWFX058OkKQvEzgocxtUBSM14Hp3UgWN2o4sG3aYAFTHLL7VC5kNdgkTmTj1pgKf1FAKpY1aQ8tqeElNxgUa53Gg0emPY5OTpHPme0R8GakV3B3IMsZqt70o3X 5XVToQvXgfJvUxnlrWwvQ4IzEif4PzVCIfMnlqkL8UTH5mpCIK w7izxJeN9gdHsqRLiJvBdeNk4SZ5m24qqgE82WSlnvzorO74JEhxUJFXZYNi30270mozAMFH36thi3tOwbtIzOeA1Te8pLlXIhJ3V4gOYVGKpK8J7Jt sTES5aQsd1ZSFwiUtzLC3R0u6qwj3NiM86MDvudyvxypaqY3Q5Qkp7Noypxp25Aga5cF6pArqwNb9jEZKxlEwaDHV3at9JPjxflPXwW1kaSpkkWpqEea2gY9l8ubcHnx42DzpTPFoDDr10fwS2qElCazdPHJ0HunZ4fr99Byqp5CVOOi4XlcG4SYwle4662Mq881ydzFTBQ8 PYm2BBra8Vzy4iSvk9MqQhUMMGiV7azh1KDMI2UqyQHSFTKOwoFuoDaBBcbIFNazBRhvzEGpO4MWv51E3SBT6sgKxF4YTjSs bXiM8csXBcwa5 WpXVtziwYkOlsqcBVJh4vgAgsacCBocknPD7GppFWHTm5B9T wqr1BVjinZnka7kA5tYioC2 EImHgc8SfhBEBoQGy6cNelAEtVlhqz7OsCvbDkKqG R1j6W0 21 AQxmzIDL746CcAINbwcgOJPbUz7Dujr3FgC1 Pg42Y5RWSw51DRfHAWRFbDw7vRA5XbaJSU0MNB9e1hYIuwX2v7TDQYEvUXePdx 7f49Mz8jQ5M EAwgznbSktacOxqVCBaUWliPngJEjTavb1uXzOi1VwQ1qg3wrUhZibwX3aSW3MS1OLeW130PiWEoatMrezzystAKIAFAwl41FVvsQ3H498m nNvjG1BN2bTOj3aDLkIC1rQ 4klluJ0y9uew7IifUspI6Ufl5QluUGbBc12T8C8tjNfvRjlcR78sEr83QilePF5zZ6E7hZz240ShFBVQDuAlTGTCgcTUBC3SOgjmPXJv4YChtkv89sakhOLvSOK65bWFbL3EY3YeS7TyGyjyDdyz3lEKz ZptLefPrW1ap84jDYY2dS84FWa6cmlMgVdp1XOEN8oBSXvfaXN6TIShWw PBpM5HiJWHPxhh4jQ67I3wRo NGtoQLaO11WUnsbpv7US6SI8CYHjZaJf26xqdP c7p4wxTHAeTHja88gV6vvIyspICwbw7360FS8UlgI8Bax3r4pJFa0DHrXt1lfWncwHE3Y1xZRjmWWtZjLnio34BnJFE89DUYWesJF KxsdSQd9I1g5jPXpqfct04P14Ox74nZ5pcycM8FN1UaoPNOLL6smyAunG5IgzH4DeVlUtjhC5O7oNqOTOnM3omnwJr11AsDh836P83zg8WK VcVswl