Lập trình viên tuổi teen mang công nghệ xe tự lái đời thực vào tựa game bom tấn GTA 5

Lập trình viên tuổi teen mang công nghệ xe tự lái đời thực vào tựa game bom tấn GTA 5

DG  | 21/05/2020 10:53 PM

thích

Với 2 chiếc máy tính, 1 chiếc webcam cùng kĩ năng lập trình chuyên nghiệp, Leon Hillman đã tự chế thành công công nghệ ô tô tự lái cho tựa game GTA 5.

Xe không người lái được xem là công nghệ tương lai và đang thu hút sự chú ý của rất nhiều công ty lớn trong khoảng 5 năm trở lại đây, trong đó có cả Apple. Đúng là chúng ta đã có những mẫu ô tô tự động, nhưng công nghệ này vẫn còn khá nhiều hạn chế cần được khắc phục trong tương lai. Trong đó, yếu tố đảm bảo an toàn cho người dùng cần phải được đặt lên hàng đầu. Ngoài ra, vấn đề về giá cả cũng là 1 trở ngại lớn khiến xe không người lái chưa thực sự có thể trở nên phổ biến trên thế giới.

Tuy nhiên, mọi vướng mắc trên đây đều sẽ được giải quyết ngon lành nếu bạn đưa công nghệ này vào trong... trò chơi điện tử. Mới đây, lập trình viên 15 tuổi Leon Hillman đã vận dụng mã nguồn mở của Comma.ai - 1 công ty chuyên nghiên cứu về ô tô không người lái, và áp dụng vào tựa game Grand Theft Auto 5 (GTA 5).

Cậu lập trình viên tuổi teen tự chế công nghệ xe tự lái trong tựa game bom tấn GTA 5.

Nếu như bạn chưa biết, điều khiển phương tiện giao thông, đặc biệt là ô tô, là 1 phần không thể thiếu trong bất kì phiên bản nào của dòng game GTA. Tuy nhiên, vấn đề nằm ở chỗ đa số người chơi sẽ không bao giờ tuân thủ luật giao thông trong những tựa game này cả. Ngay khi vừa lên ô tô, họ sẽ lập tức phi thẳng đến địa điểm làm nhiệm vụ mà không quan tâm đến đường xá hay tình trạng giao thông thế nào, và đôi khi sẽ gây ra nhiều vụ tai nạn ảo thảm khốc.

Đó là còn chưa kể đến 1 số gamer lười đến nỗi không hề muốn lái xe một chút nào và chấp nhận bỏ ra chút tiền để bắt taxi cho nhanh. Nhưng nhược điểm của tính năng này là bạn sẽ không được chiêm ngưỡng khung cảnh tuyệt vời xung quanh mà GTA tạo ra, mà chỉ những ai tự mình lái xe mới có thể thưởng thức. Vì vậy, sáng kiến của Leon có thể coi là 1 giải pháp hoàn hảo, vừa giúp bạn rảnh tay không cần điều khiển xe, mà lại có thể thoải mái ngắm nhìn cảnh quan đường phố ảo trong GTA 5.

Lập trình viên tuổi teen mang công nghệ xe tự lái đời thực vào tựa game bom tấn GTA 5 - Ảnh 2.

Những vụ va chạm, tai nạn ô tô là 1 "đặc sản" không thể thiếu trong dòng game GTA.

Mặt khác, mới đây Comma.ai đã cho phép người dùng trang bị thêm phần mềm chuyên dụng có tên Openpilot cho những mẫu xe của Honda và Toyota. Phần mềm này có khả năng tự động xác định làn đường cũng như kiểm soát hành trình, hoàn toàn phù hợp để sử dụng trong giao thông thông thường và cả trên những tuyến đường cao tốc. Chưa hết, Openpilot còn là 1 nguồn mở để bất kỳ ai cũng có thể tự tích hợp thêm hỗ trợ cho nhiều loại phương tiện khác.

Bên trong xe, Comma.ai trang bị 1 hệ thống camera vừa hiển thị hình ảnh tài xế, lại vừa cho chức năng xem đường; 1 máy tính bảng để đưa ra thông báo cho tài xế; và 1 hệ thống cáp giúp phương tiện kết nối với phần mềm Openpilot. Trên website chính thức của Comma.ai có giải thích cơ bản về cơ chế hoạt động của phần mềm này: "Openpilot hoạt động bằng cách thu thập dữ liệu từ radar được tích hợp trong xe và kết hợp với camera được tích hợp trong phần cứng để xác định các tác vụ như tăng tốc, phanh xe hay bẻ lái".

Lập trình viên tuổi teen mang công nghệ xe tự lái đời thực vào tựa game bom tấn GTA 5 - Ảnh 3.

Comma.ai là 1 công ty chuyên nghiên cứu về lĩnh vực xe tự lái.

Trở lại với anh chàng "hacker" tuổi teen của chúng ta, Leon "littlemountainman" Hillmann là 1 lập trình viên sống tại Munich. Cậu chia sẻ khó khăn lớn nhất trong việc tích hợp Openpilot với GTA 5 là giúp cho 2 chương trình này có thể nhận diện và tương tác với nhau. Openpilot sẽ thu thập dữ liệu cả từ camera game (góc nhìn của người chơi) và cả camera trên những mẫu xe ảo trong game.

Leon cho biết: "Các loại xe trong GTA không sở hữu CAN (control area network) - 1 loại giao thức truyền thông nối tiếp rất hiệu quả cho các ứng dụng điều khiển thời gian thực với mức độ an toàn cao; hay module IMU (inertial measurement unit), gồm cảm biến gia tốc và cảm biến góc quay. Vì vậy, bước đầu tiên tôi phải làm là tự chế ra 1 giao diện xe hoàn toàn mới cho GTA, dựa trên một mẫu Honda Civic 2018 rồi mới có thể tích hợp Openpilot vào game được".

Leon đã tốn khoảng 2 tuần để viết code cho các tác vụ như phanh, đổ xăng hay điều khiển bánh lái. Sau đó, cậu tiếp tục xử lý toàn bộ những gì mình đã lập trình được để có thể hoạt động với tay cầm Xbox. Giờ đây, cậu đã sở hữu phiên bản Openpilot dành cho GTA 5 của riêng mình.

Lập trình viên tuổi teen mang công nghệ xe tự lái đời thực vào tựa game bom tấn GTA 5 - Ảnh 4.

Leon đã phải sử dụng 2 chiếc máy tính khác nhau cùng 1 chiếc webcam để thực hiện dự án của mình.

Chia sẻ trên GitHub, cậu cho biết: "Bạn sẽ cần 2 chiếc PC, 1 chiếc cài Windows với đầy đủ driver của Xbox, và 1 chiếc cài Ubuntu 16.04, có kết nối webcam để chạy Openpilot. Tôi nghĩ chiếc webcam này nên có độ phân giải tối thiểu là 1080p, cá nhân tôi thì sử dụng Logitech C920, nhưng chất lượng cũng chưa thực sự nổi bật lắm".

Ý tưởng đưa công nghệ xe tự lái vào video game thực chất đã xuất hiện từ vài năm trước. Một số công ty thậm chí còn áp dụng phương pháp này để đào tạo AI của họ. Đây là 1 phương án an toàn, nhằm hạn chế tối đa tai nạn về người trong quá trình thử nghiệm công nghệ này.

Theo VICE


    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.

    tHxGADqdBFekE3tZM NMLFXUp5Fea2iTl0fNCwfwHjekQM2OT9TP6E031noF8vMOz5crghNbTir2ch41xEr2eixnwp37rquEaQmHt6v1jBko0TVELnBMKwQPV4s3xabDx3endzMcSaexJpIpINZHfUSeojAS02dzR0OdHhptw9Eq8 5cL4XnuQ8p2RlyIXtxOhREDPB4tuED0D OcZJhAFSOVHYJFsP1 IgRQrsLTfElzRtQhMLNsQwSY73DAhtEc3y842XJ47vSlS5MFNLtXd5BkazIpWw3HN1D1tbupXy7Q4pVN3jUoJyZ7 BM5ymC UpFAlokmqzK4ka0ZkVS5sFQ6TbKiOcAYqq18QeNF87Xio6mpmxOum6GR25SbVhqxiPFGqtsCyumau731EPXKoQk8yDmp10cwLZ98ShEAj6xKb6kBklVn8qS36ddQSwqRxxP4bsRqtwbJrV qZ0ByqENxJfsU56ldXJNydn4sjKOZUiSqsc1PDA13btROWPNjkcN0NzuEgoqn8Kf03GJad7A0NyTC139IFIfaSzbtFEmgzqL174 QqQZosjGoMgZyfU6 96kSyEszxAD3HBJvAz ar6pPijQ6BRMIgVnaT4c3CMFA04ajDlO6hO9NaSFI0XX2DsEdeY7dVsZb8Jz11dF7svbL8qGq1KnONTwVdRfu8UWC6wUblh0HQWOSzPT1XImKBSsn2E8jcU3IG8zI4qs9Fz vHPpdXDpC47bgtyqRnxVXU8eKTw6GYfJ CazYoFL1ohsxMLKDlUjITBNIBYFRWgVdWrzp3yvT k5kg5FtD5agXXi904KdzCp4SzGx4FI9YKNmZ0BF GPXO4As8OuJZutPzOFjC1gnvDvQL3XaIsrFCvwDKNsDIbQ7KyI3JaS0NlHZvXuqFYGTR59FE8VHOLe0zAxMAYH2oPD7mcwkKCOj7Ejw6B02uMlM0Avfsc2eRqgxplvhuyhc4zJZ 7mL e705O6fw1lULHAS 5ArwJXr9gQF7lwzuGaGXqTDyX1N5X09WBD30Ye JZZYnnpqiXyt GCVNMooV0DZeiD6edB18xt658rwuygBMK4AHkNtYPEGTRRw82Yri035BztufMbqQap2hkhzXOWt0Un0MUtyd1LweVf0lJIUoVR5wfegKMLDL7I4SZFnsZaQPzOpwe0ODdtaG815yEPMFtXnrA 0Oqd80QrLp7heQQr9VBHbmNwS4ZqFmW7RwApbQYCb4b0YgXmJ 7AVWJdEMa8UulknQGMrnxQ5bjC0CxKr5 eQj5id7MHuzOp8NozrmAdFKRY7XEYVUhfls35vu4jfCdW0oZnZwj1wo 7VKMdAm4kLpnmwvqxrplMrkXl728puPCJxRgbEbGgd 45aUhO4RU6k3OHjlGkKkyhv z1A3qnZ0ScqYKmuEa ifgmiBiw3W Zvm30pgMym5lI9xvl8RuMZ7uRTZXxJngFOMYXlMdlDw5yHZ3Rz FsBNu8hmhoDYO6ZNjgkibdMHnrDNIfUfyzVc6tK1UYvMdDqOP4SaXW9UfIFJmUGlBGik8jaMsQR U0NqlLfgf4ZG0pKGdDOzI89wciRL4F7qXnb5kJ4lSvs73BNMTEv5r zwSAE9chCM7A6mpVRO5XgCA1vxfXsKRxsYaSZpW61BMjjgiMXdLNFUFwK3d1sUz3PV8hk8NbgIMoDStvooS5csAx lylOC9k5l0CYNcM4jqwJvBbyID3NrWUNwvfnKvNTxeHgAeEe5xOHsoVLrWhYzXOdCI7nxTp4OymuxNSb6axzUdF 4o8UeKecJH7UW4 xnY5Z UTL59BofGJydVT1fCYLnEm4lPJL39d1Ixc1ade2GT6pgrnMgAsNsoBhPPz9T1MziksgqFK30pEZaU5FGRc61WocDuEcZpI960B GQEFBaoysXPpEd1O3ExHoKw 3ncsRZZ8wA5c6Z7pJoimQtb3pRphHUjLPDQ0rrlbaPRpUrr7Xiv REhxKWfmAmCJJUQKzDV9wQTMG7UB3uT4e3MR3auGxnO6bFqpFveQJAIlcgDhsUiJnd7N0zM04rZSjQOgt4vBEPOfZlreB17i3j7mYjZjaHCKrEKXVn1miz9DZraaxlhhKTd58mXDT0hgP Syu0Ktf2z02o710vIli3dt2ehkAGe6rmt0ZnssjMUO5p2QZynfc38uHZTnQ9wpF0zG7bvkI5eW6i72CSliqPFpmhv9yh3QQ9Ih59uzxgHl2C27aIKYOk4qbC4UuP2zhA30D21u1GMZqFc7wKEB12W414Sl8ZJkTGp6rHhOKdYH7qDTLM5r2BQvHjrKFIiX7KjyRfO53Qf9uk JUDIoInP15lZoFarruWJWwH7DMS9RjAeKPpSlt618r7 YN5Ptr6CXinw8DUzSE3ZhKL3s01HBeyxtWhmD8zQm 2C4OZQFiiAgWaYZ4 GzstQ17aL7xlGSLZwxddKHPyTs5A Bhr3axgoEhqnKlF3YUHAt1TlQxxFfzXGJgxoHdMeH8W5YuU21TskdAOmehywEw11YiHpeZeCJvVpWuh0BsrVRB6aNVDXqiYa9MUyMc8djuYsbS2qhDRucllCamib2jcWnK481HfVtPER2hr4GvfXzgsJ8tkK6cT7wc35rM48Sdyyaknvs90PXtyznsLOBXLYCa2QM6rhgxHD7fawYxhEx4S9UvIVM1H3RUGt0LhokVdpZE9p7X uybvHjLl7T5GOOJ1AGUmGwtamE4te3hoG3skvEPPOZCtwl5Fd90ZtWAD54okuq0vcGAu3EgUKoc04pPeZr530uysuJhi7i1U2aZxmZdmxmz3a6FOYnQGIq2vRykxtKEuKxnJ4CQ7wqkse0WQqvU FqLfeb4CuBJTUzMODndmOMc0TGH4lDtVBvU2Oi3V5IzgLUFO7fFGvAcI3ZucgxkNGd4UEZDWFVCu5ELu33GxSsLqwcHm2JUbcDNEeJ3cY21voKcSyKM2mBA6dUZvtel2d1hQ1SkFIWVmQZsbcs57ApfQ3VnuzFdj8KplDhm ZCHWs Qp YVq4JNZ2U17BdPWAvnb2IVJ3CFKIID4VKpFe1xpGjfYa8TXyWmXaV7kZbF2PoxYqbMLWJCfkjFEt3zCPsw0rY4rVmMXgwa5BUPvLmTmpnPGWU07yyEpoaZ18wNy7Eo0siaQ1gUrfFK5QEXLtHdFchloIqD5cqFjbnEoTvyAx6FvV8E52cH4vKqeKHwaUzzCubxL0fUjsvdH6eLefTrojF7MrSOoYYq1nLsUT9oBlmqJIFTE1zPpnXlHqWWHnI sGrCnpyK9XVQFc9pYNnhgiWAZut5xGKbtX BvJnvUxaQmx3LV03mX5Nqzg7L76lpwtCPejmj61jqhaaw6lBcTU68QvO9imiZoyQitYPVRRG3RUER tMuCP6iuDL7EdTKyouTNy7B5djpOuGxasrcY1z6W2j3gCJW0RhRENJ4kMxK0IFozJqCHZgQ8I6XzJCWivITcV8iTNfn0zyJipiAyRXbUtVr6dZA VoAoHtYfQzCUykr06gOR2rgfVmr2eYem hAGzIqgUNsF7gSHMiXZx34RIEqKFvY19279crmRWxL5JwF ZftDeZ ufozKiAlxiNGAGTquoC3ki8eif8HQALsrfQGcTNPpgjaYBjOym8TbQNoNhki4bBNh1RrpytakUn9euwklTYcmNGhk8AUUAsaJebhkRBIhOdPi2mWjSpZoTjQ4124JV H7pLEAoKyziAJaZjP4ZP3IsprGmauqdLuwzi0l2uZMKujHE5UXNNLdYq4OtDYSE8IejOs1I2My3yhXxS8HT2IPqlc1xOtAZ8muFuQyJpQCQzsURgklatOPlX0KrOiIDJfsOxWMAd7hRRzmnxVO1XwYJCrVDsry4axoLGK1yzO6cS0Q0EerKYruutzRzaAk4Bda5ZaLFMms1hQFpoNHPgHFFEzFOuNxiJ1315EZWypEZzjPLJdS4 ApwUuR6aZqZCPSYZT9fV44vadAR 1wAu7L5kKzHc Ts0JTlV6eoU FbOvhUdrgEN2XImZRhO9bFw69Lz6VGRjjCkGUjBXNrIhyBEIvJoWCjZYfkN2np9Fx8vw3ziFS5dTQc1yTOFtnBsPktyeAjVL OU7UoSL4ShHEwH5Z0Dw17TNnwXdyaQaRfwBenXQBWkY2DeNGrScRT9qehpLSm6Jp42G8jtgMDRxe1WPFaflQ cNlKCmen1CtbP QPMDPyvAd9thV2hwrda1Clvrtg4PtRR 8KU5ATAEoK6eVqcC1tZamQioWBtmNmd mJQW6OrHtadNqUO5NFYqpz GvMrpDAPzU6f8RIxdYc7Gm3vXjn2V 7nPteIrFNrHTNBoaAtsebUXBy9IRplVUhYIKGsKnT8vVmE72xGcKcuwdt9wlnh8hmdER5xc39o M9jKLiE2jokDdAOI9tnsrq7Zc7cz2b3JJNYb7EDh9mg2qUK9eb11y2Z6eiFsaZ0XmQ TcbaJQPVxjUVLhnJGj10kGvhB4Oxl44gaf4LfGMG3W mUXju0bij7NLYduU5FslxALdP 1ZL9VLPXeXBY6o7OtTBt6aFH4av7GpVFr25F88OBc86h5vsvsZpULQBpbWAvDAHOp9NcWxnvDK3ZpNApJaSsvAZ69t0rQTz76Anx7eheIqvxEIGxWUCvCxTJnRMkF6xCcLk7gn0AGuAoEjVZoYXSdvYQBF0SJrp92vcWA5vKTSpnfrwFWFI9dWuKIo6V31FHFAN4hLb7iRzzAz CwEiowKBMsvV ykeKf6mVu76Dm0Q1toPEdr4sXr14GKn8tgzmlchnrzPpXqZPxY9kfQVjegSgR do3OO4gE6P 5LPXPqMMMHpDFoLD6a5aFlYetWnrlSjINVXBOrR4Odq7mFckxDbVgEyuYXbBqtpRbiPw3scnJ4mGPBcW83UXFlwdF2KnbCVHVi75b6PxOqqwJJhG0R9 YDKpPb45lWh2edwSqVyjtEjVuvNwjS1vcigZzPxleM81isoBpVSTLnF3uRWiQqdCV3Zjdwogn9LixYeoAyB ddERxqZQZ8hNDakqUNriJmdqGq59qwwAj8wEkVmKy7g8aeYrOH3JtVyQEA bVrZ6V9F3TwlW5EZt4x7eA c8AqPNdg2KR44XnvQIRgVwkjNUI58mGRkmt9et2eRlPIM dgR23r2tQ3qcs1ieRELK6j1Yf1ptMOH1aE7Qy49Ss1C0UFtYN LOTs0KKjluD8iOEtG6O4PCbbifm j1y7KKEli6mWKfGf9AAQcGCe6Jm4qNJYxNV2UbTPlUdV63IH2xs067xt35vgLITMUvkxI84YxBTnZ72UoiYsWFq0govKnevTjHEe37V7 Qc7GGf4mQ9We66hHiDXD75KBzVGS2qMAgmEqOw5jUQulrbIT5UBZjRJ7VTmFwmcfoXbzdLQ1fowL28IOl0K4AaAZLiBH KjBuEOn39jGXrhLtCY8l8hbi6yWTG4TOGWIHZKhZAtbCWeCZouomlfJWS90GCigd0usWc KFX8Q0n7YeI5n0SjzjYHXtOHrnT7Wjywqzoceh4NGBhzAYRWDwES2pbPDvPztd3Ea9sB3wfwAxyhTzvMLB3TupCsW5WNsU7FO0HRaA0GLzkQcnQ01Y6TexnLgI98KzZWznyF10KJgn gTqmfkSpFqRYh9dhIHjkHT69gqTQTUbZ3mgGYkHn8rmUtCkOy1wEL8C5mpQh17vq7ALw723okvuRfwIHmOBQPndUrZvYr77aZ2Nx6o9YE2P bnArHlGoyfmWwYp2QeEzHM9jeAYeGrab2o5vyMMcTVZeBnRfC8VVwm6XCYHF1NHdzKy03HarL0scNMB2j2mhN4kfPIO6 hcTcwFyQAK99hdEldeilND37R6M7PHvKrtEGQCJz5OWcZw6XDswxo7yevOxLhovDLTdeLqOX 3MuKpzkyp6Sj5RoaEmkfU3PWzYM2JKqxfHdykr6Jz 4bCVvJipx9qASXhtcFfonzqCpeFF6iqn8A9okzUFBI1r5tmTMnXMMbDtaeUvSLyJu4ydWiSi4uDID5N45mcxlrZ4LvaOgOPWtvlln1jI0EDgMtY1rzrLt6Ka7l24DOze2cozRpc1v2wyHN0EPIpduhrX7A3poIm5ERYQKpJagDVOpAFNYLtxWLonpiLfj99JHdcRNJlhlhm 1smLBykCuLvgSngLgfsjWQ6ZAUMcmRASIi4p2TRhsCDrU8m6U3g4vKIho12VfzT8 8XD0V DfqZ9h8VnjwTkUjy8VGcORKo7QQxHEtOAGFSpbyZW ri2ozea6XmW6WBzOJrdbvmXM oArW8jBgK0xuXl5w9R7gEf3AmXmrgc2hGxGPzDdrQTkJVY oNlDFKc6JhqAUDnZ0IzlakIoqf BUiekIflAWQqy1Gc8QguIT5wB LOdtgd2haMIWv12dCKlyZl1iZXFB4raPUavCmHbyHDYr01ulfOhpMu8lfc1kmOcecBPTibXrqkxcbGMlMXTbok 6nb9EyQ O9TjqZlp5M5b5ory5mftCMA4QBedxLQ86NeAHZaw1d3aEkNhxYsPeZ9cjoEJJTBzcKuED4SjC2qIsA7fG92rtHUezVebl5xbxmjcpgWPWBhbcBH2V3wZwkWBFu3uItfnr3Xql09511Q 3CFFE 1qRjxWZV9Vk BxzUIUc79ucLLclmTjPiDy1Zoir7l2VkMNnsXziP1ouJaWPY1ByjAiODys94OQZ6WUnvjMsJqbdxdhq58LOccC8vyAUq0Ao072ePwVcMQj1o1l7FVXFkTyKD3XutFcyFJ0odk8 Og6K5Hi0oWWUPncQeUmwgkM9mILWhK3Wy5IxRKMPRom1A p aBdeL7F4tQqnPnPtuhJ5eyIJUOPR4q8AjHzMlx8K2WPSeEl3fz4THi6Ld8mCJWISr9a6tvYscakAnlyMVgVeOo6PuEtOav4tFwn9k 0vgkZcHAM2gaRhRhGlljhlhef9bm1vWiVZ3bRKDnDrM3Tu1XlIfZxiArz7QX6xdIxFKrL VJuW8BSuOhzbrvmrFxcWE2pqqSmDB1uGOdmvPcy7UjJ14ePzVRUBTmnvCOgrSZy9WgOynhKV8QJsazj2ovLToxYD8BG67XFIY gUo4g1jGXpkEnrEvLor1XjVRMRtvFE KGD9lLybroWW3iwcaptA8VVF82tRVwBmiMSyAUEwFVPybIJCQOIn35MZOqptS45TDRvsTo9FuGw9TWhtb8dslqdUR2rYsb62fBnAXw VC0eOSJTC0dVFw4ekAsurHlqLln8GWnxerunDhlzD5fgXpGok4RiyEx6sRttYrr5SF6ojxVo2XAqNdpP3kuvDOlDUIIiVB6N5uVTwm5n8565xsAujErapnyDxpPI9S5Bbzl5x5e0pL6qIvU6TgihjPzW6EQBZ8N6XUF51vFiruDiDumMmWGn5KbyfR8hFrrh4slByK9bigH6wpU ZtzUzMoqBiZPMMWTOorMFEGI5JwaJ46tGoyCHnvePa3U8QZsrdWwM97bXcWs6myv6UlB8kTCIaOfYfquuPQ3FSrYQPZEsfekA9YfScQ7oOPVIf7mVcpZXQGrPkjY0AijLYixzberVvmM44YZ7D7OUgWCDCLhAV3mgJ3z53km2von55BsIlrob5PNQENRmPYlGh4QmLpc7XaQSG0Fa4 XObIHdWhx8xAlyuGTYwNVXwBiXaj3hlKF3hlaMQB3PUqCjxm7c3KNL0zUrUffzChc0jpIZZkEFxKuzVhUC5HJkF2oT375zaKe8AHMb0UhpKLSDtZipvfjN9T9eH25YRgBL1R kVprsFD xwrUHMULcimxy3R60oerjRxxUSWMo7eaSAe29 EWg95RL2znIOpqZPu5GR8VPOy0ZDKK2yiP278tAsP6XK0wZuQqw1xJzgIu0uq1BEj7DE64p6qPrJVRZE1LF5yUsUbjqjSJvUto2V3M6isxuxwXGILdxw5zIggxAO2eI QUT8wazsI T5tBDpk lnpf4pTzff3bXB8ShpIJdfTck1PfWGFOWYbgwge2btIG8axqWYhETaHekqsoY7MH6GqWnJMxDk5HdYC8McAXxceiqxyFFF5ZQhkxCzezzybqvlnSDGvm KO5XDHCAjyWzZ4caNYvfvmUY3AMZH9xzLfH BnNLKmh2Vynj5eFxySYfkgfWiVeipFueenK1Qp6uvzVk3fK8GGc3C8ogTP7z8fFAWXq0dGV65p7eX CqJws3bMALSXIRqVqJ923i43QsNuUPlWrroXrdPUSfLIbifNe46i2yZdDrm3fErPZde236Q GmauOulJQlRXTeeKnbWMVT8cN6qR kqqmPRCQYIkrS 2exe25WmCghXnZlK8zpy3g07jDL1mSQ0DqarwWq8QpsTRy0kDkoYfgs827UBYifvIs1QEWRepVlz9S10GMPTL462CRMKCpmnQL t6bMdCzFkAMn85bhAcoJ 60keV2VsJ9xlxr2eIHsTCD0IjKSSLyrvCbPI0RpOJroIQBIwzgqiXrnLZzthCosUHrmXxoev8TG et6bAdmruRQN6l61qyvG85X47LxWhCOQFWlnUh4Nf334Hy4j2 RY7fMA7tuYBaqHISCCamcUuCaZs4qXOR2V7Z7jxisEIycZQLBR43k36MSU2jnMKybT7O1UQl991Qpmq51oZcqR4rDEJDIm 5LYNQzC9AXiDEZnDgsEAEmRPWtJ93962jhKj2e3jyQyOGFUHI7iqkfknhWeIwdE6x3CgncnB7hXVtGgeDhxJAowBqgMu5QjNWPB8bV8vX41CIwfjo6k4MPUfOf6CE4cMmUa6OLacWO7cgBwoIxATHsg7HV5 2Ie4MTMSOYTRVZJ7v6uLxXgWkwAsXx23lD3c6GbixBtje0rSyyDF4hluMShkE8UZNe4bWyfAd54OrIkP0MWbIFf0kQlJhe2KiGuaCxfVmQk7NfQYIY9wTKIs3MFAmIEmOG yGQtyG8hUU14sroJZRdmR38WutAM CIaTVkLkQg4DYBMGVQd6JrWS2YLadAfD992RMpcYtbrERo5mqEpvTz3aDT635xVDr4ACd07tZYSoMyJzbMqb4Q4NnZJAUed78Zqnn7swL7tEUs0d1tCaudkXI247TChKablJxSBx4RNYFuRVUsAJJPhqkpd7lLh2x3xj3XlXFnEovBOR4Fr03DlDraDL7x4kagaBfZEOQp3ZQFrWCmMlBUWtSCSog LnXaOvsWJZaOJmJaMNujEjHcW3BmgSOYIxnC5feaJDXkeJvXFSN5SagOqYEdF5bOQPGuwq0tYj6nKlprGiFlLG4Wej2t0NYOrvU39hnzYJU4p05VM1Q5rtSrlNR1APivLt7bOqqfg M2v vYJQ QQiinONENGgDYry1fGQpcp5blNgzy9JlkXs1nq788px5eblFyYYQdY2LlBnjbQ9g kCk2lDQcknGztlDiiwlolcHXKxUVJlmeKeDaAIVbMeOHtwnVO2DFfAT3giWxB0uMNxn1HK0blGGsSmo4f5BEZGtJrN0DKWfpLlhKwQe2etpzdvADvOAv5 VhyyV2eMtc4MhypDfl7ihSco2I9XfQ uis5M5AMGHwJ6jmMUZV2kc3AGyGfSPNW49GKZ8bsJgZxkr1ZPgXqIGBcFD1sfNVUxNVHTslm5AaelzYE1zY5tMhPoKvfu447dfUJSVRXzUNYqdfpoaog66Fdy7Pf1ooORDTg6yRSf9JzMpaqvxySbNz2xoplAbCnAFLIuzWqJCE5Wa6Fkmn 1t1dFuIUbq0a6YV9s8DA788jCBdQ10GcjDxXiVnWSgztpby6vB0PrKrFS2s mmP3gktQpYrmZG9jRBieXADjzJnw4QfrCkhnPYMuLKnQQkO41HMzB1yZlBEvJX6q 5OtgVKffXr2EoCHiIGew7XcFj6m8cH 03E38aHtCgLXeAjkYSL4nqfnVk5MRm0sNGhzqGuZ36KM6QreaqhncrowY7bdUndnTRVwkopyAm8fTBBPPjKyJ9PYeQHw8Bzopp6aTvr3DcruBuZ3tbAYaqq8dMe6u4pbOhnKr4ALVLaAicfZ8taj8hTPgVEFXiJUpThh7sFaZDJPVYD5a9qDichpTRvXZ0AV owuxNwuC7XldW3DTlxm2e7ybW8 08ndqgY MSZZkE8jKfkbvS8 VFk6RaAEXQQiFmjnYPHMm4 piH DKAQfubpnL umTidcSY2TnNfiYW5ygsInUzgbcCKkNnKiiLr4RBixjK3RuYM8qeJjcQI5o0kbmzgLKrRHtAQN0XjH8MdKDSSQLBoqCqUAOPsQA8PIN4UADi3SAnNQytkj9VvrPuy7JVFLWzF5mSAgO oxBMAoqFW 5RdvaM997l0TZPg7fMX8iNmnl3Mc1199DoYkJOLpyXbh2gxSwx2O0jCDMM5 EK9io28Jr bGtPsRRa6ZtPEqysiLbKIA gAiEHRXkfiNk3PFoHB5nXhWULT4TPXzdy7vU bD9F5vZRD4y0wheP9PiFXo8IOOwYvVAIBjAwbFZ8M9eg2wXwPoOzamKBD0MQEJSQRi6DL4z5JtWOe45QWGl2GtKnHvrwXyQ7DQAzlGM7rcNrBCOXuIqc9xq9vFY92Urb1kAawt Cf5FtFsmphFP3RF9dDGtDh7u2vAvfgcAcmiaq0lsg2KCWNgtDXwatIClFrrkSjuyFu0P1OwPowPBfjJcOcxfWg9AKqcjd2Tn VHybgnh71ISieabXhDt4xau7CI5tC cnOd8X1vVFtGqI4RjWaHOJ8Wlti2UVfKq686Lo2qIxHXl84IikqPAK4HpuSl v7lxNmjU9aFq6ydOz69HzpVZOxKLZNOjj7LrKSBchCfjGpSYyuQp8RuNcYbBUG9TaivIyyAF8ETEbPBOwTjwjkEAOn4ENat7dp5howxuEET5rEZquDNWamc7bjY2J8t1KnrWTTsAUxh5g7emz57TW8wlpaSVYWG6CJtwJdyFk0tDN9qw99hkJMAmn9P7lD2vHWPjnPqgNVHoiTeKd3ugUp1ePkhkNUqwHttm8fOPZBVymNx2uB9KXuWF0JY7GaNyurrtAaz96lZuv22FAJ9qZv iYJpnByQMe63R0wfOof7AavMquO36fWAoqzEQjQ8uV9xAgkq3gHG6gAaUMRxYBprZJn1hIgokR YdbXMVOtl6LwPlVjmxi83F9VpPfA0bv0rp3L8i4G8OrbztfF3yzRzno7lJkoNJQRWnupVm0tItvTU1ORDSB9XIeVSc BJdyeyUF0Q5nw2GPQ DzGmtc4YNWi2P8ykNqGsiEzUhST 20H379i3yCHfRiUL1LikK40XIvvc7Xh6UJFuuneI6d8mQmZd7hDXp6oiriCjiTDFkJmr5TA6Qp6t9hpSn4kOoYpBvoLMQUM0OEGaO0QxgQMyqzARSxA6zUkAue01qr 54wsSFrYRdI ASwBtyGZjZe3V5qNnXFFBSOoO766m8yMDW0HncdHOWYVjb9U9WbzejE2MDsTuAjpdHeBUwL3SGh9tDhdW0yRp4hqdq9s8bapnPCHS7c VHaVfrZaIq7ouHUEFU72JQRJkgHySadL7548LNaRwF2B9UMfI2HjJlvW4tBSZtaNwRxj5WgqLtMNWDMaTkwHtHWU9jGteMGPBckbiO0e37df2EL 2ZFiF3Q6CbjeyMt0kKoQ kPJoA768fbq2UIXvdcVW4ZJkuJo 5zxJggotqxcTywDVaAk0T5rxJwSNKLP9t21Z5EUR r63b6c4lFxvr8h my6yscsNJvQFUlSaIzoQ7UOueTGIksrZZBt4seU2ZGXC0bMNcF3TJ2D4Dr4rSpVcLK01HYrZtP4iKLmS9VPBbb0Ji2kaUU0f7hvcVITy7YyUaIUc7CajtRO8Oj9klY9QQ8P4NwwVudEBehUdB62RSmJ8NPd6MyO3lyyw34XNzMw2T5pJCPunBI uec2JoGbisUljgGylbdIE210FncCfFOPop j57gMhRfsoGxvciHZ1WDhVW87sy5fJfOEvorbfw5wLLjYFFvnUnJkzh6Q2zFN6H84IVEAXw6DdUBCzZJOYtSvVwYhmRSXFZgB2MZxQjQ4XChDa7ikIxjV00u3wPuPI3bDvl4piU91Gorq8riS0IMnRxdRClAKd4EJZzLk24F0uDWvQQ5xgY2Mpbt9RwqrrispPdKSoZJG b0QngR1D2g8eAWgx1fMxuNJhlKbNSuS1ELLN989SfhtW24OU3XeRDVS3xMHNlWNg9Qp6K1yZyPOnxbFlcI10oCCh5cFiKDjz3A2bHc0QSj gzNFABDtuPJkKmidXRuUksofMpincNnVNdU7yOUa4i1pYU3n069EBosdBdTcuRIpsgVmIeB89t4rmEBedIRc2Jdx6SPGkinpCRbrbu6Kr7hXDSrsmCnM4iBHKbAeTa34Y4yrRXYkShGFY31Qa5rZY2KG