Bật khử răng cưa trong game - Bao nhiêu là đủ ? (Phần 1)

Bật khử răng cưa trong game - Bao nhiêu là đủ ? (Phần 1)

Chocobo  | 21/04/2011 0:00 AM

thích

Hầu hết các Game mới ngày nay đều có hỗ trợ tính năng khử răng cưa, nhưng bạn có biết bật khử răng cưa mức nào vừa cho hình ảnh mượt hơn lại không làm giảm quá nhiều khung hình hay không.

Khử răng cưa từ lâu đã là tính năng không thể thiếu trong các game PC hiện nay, tuy nhiên nó hoạt động như thế nào thì không phải ai cũng biết. Bài viết này sẽ cung cấp cho các bạn cái nhìn sơ lược về tính năng thú vị này.
 
Răng cưa là gì ?
 
Trước tiên, bạn cần biết màn hình máy tính là một ma trận gồm rất nhiều những ô vuông nhỏ gọi là pixel. Nếu như trong thực tế 1 đường thẳng là tập hợp của vô số điểm tạo thành thì một đường thẳng trên màn hình là tập hợp của 1 số hữu hạn các pixel. Mọi hình ảnh trên máy tính đều được hiển thị bằng các “ô vuông”, pixel này dẫn đến hiện tượng răng cưa.
 
Hiện tượng răng cưa trên 1 đường chéo.
 
Bạn có thể thấy khi các pixel xếp sát nhau, nó sẽ tạo ra hình dạng trông giống như hình bậc thang mà ta gọi là răng cưa. Về lý thuyết, nếu số lượng pixel đủ lớn thì mắt ta sẽ không trông thấy được những răng cưa này, tuy nhiên thật không may là những màn hình hiện đại nhất hiện nay vẫn chưa thể làm được điều đó. Vì vậy mà các nhà sản xuất card đồ họa đưa ra công nghệ Anti - Aliasing để giải quyết vấn đề trên.                                                                             
 
Anti – Aliasing (AA) hoạt động như thế nào ?
 
AA ra đời với mục đích loại bỏ hiện tượng răng cưa này để nâng cao chất lượng hình ảnh cho các trò chơi. Có rất nhiều phương pháp để khử răng cưa nhưng nhìn chung đều dựa trên nguyên lý là GPU sẽ tính toán màu trung gian cho các pixel dựa trên màu của các pixel xung quanh nó nhằm làm cho các đường rìa trở nên bớt răng cưa hơn. Hình sau sẽ giúp bạn dễ hình dung hơn về khử răng cưa.
 
So sánh trước và sau khi bật AA.
 
Có thể nhận thấy ở hình trên, đường bao của hình tròn đã được chèn xen kẽ với các pixel màu xám (kết quả khi trộn giữa màu trắng của nền và đen của hình) tạo cảm giác mềm mại hơn và làm giảm hiệu ứng răng cưa.
 
Hai phương pháp khử răng cưa cơ bản nhất được sử dụng ngày nay đó là Super Sampling Multi Sampling.
 
Super Sampling (SSAA hay FSAA)
 
Super Sampling là phương pháp khử răng cưa ra đời đầu tiên. Như đã trình bày ở trên, để có thể khử được răng cưa thì GPU phải tính toán màu cho các pixel sao cho phù hợp. Nguyên lý của FSAA là GPU sẽ dựng hình(dựng trước bên trong GPU,hình này không hiển thị ra màn hình) với độ phân giải lớn hơn so với độ phân giải ban đầu, lớn hơn bao nhiêu phụ thuộc vào mức lấy mẫu.
 
Ví dụ với độ phân giải màn hình là 1024 x 768 và sử dụng 4x FSAA (2x cho chiều dài và 2x cho chiều rộng) thì hình sẽ được dựng trước với độ phân giải là (1024 * 2) x (768 * 2)  = 2048 x 1536 sau đó thu nhỏ hình về độ phân giải gốc. Màu của mỗi pixel lúc này sẽ là màu tổng hợp của 4 pixel dựng trước (cái này được gọi là sample pixels hay pixel mẫu), kết quả sẽ làm cho các chỗ răng cưa trở nên khó nhận thấy hơn. Với chế độ khử răng cưa 2x AA thì hình ảnh sẽ được dựng với chiều dài hoặc chiều rộng gấp đôi thay vì cả 2 chiều như 4x.
 
Render với độ phân giải gấp đôi sau đó thu nhỏ lại.
 
FSAA cho tới bây giờ vẫn là phương pháp khử răng cưa mang lại hình ảnh chất lượng tốt nhất. Tuy nhiên việc GPU phải tính toán thêm một lượng lớn điểm ảnh dẫn đến hiệu năng dựng hình sụt giảm rất nhiều. Nếu ai đã từng sở hữu card đồ họa dòng GeForce 2 của NVIDIA thì chắc đã biết tính năng khử răng cưa tại thời điểm đó chỉ bật lên để ngắm là chính chứ mức fps khi  kích hoạt FSAA thực sự không thể chấp nhận nổi. Vì lý do đó mà tính năng FSAA hiện nay đã bị loại bỏ trong các driver của NVIDIA (với ATI/AMD thì từ dòng card HD 5xxx trở đi FSAA đã được hỗ trợ trở lại).
 
Multi Sampling (MSAA)
 
Multi Sampling ra đời để thay thế cho Super Sampling với mục tiêu cân bằng giữa hiệu năng - chất lượng, giúp giảm thiểu số lượng điểm ảnh mà GPU phải tính toán thêm.
 
MSAA hoạt động cũng tương tự như SSAA, hình sẽ được dựng trước với độ phân giải lớn hơn, tuy nhiên thay vì xử lý màu và độ sâu của tất cả các pixel như SSAA, MSAA sẽ tiến hành 1 phép thử độ sâu (depth-test) của các mẫu nằm bên trong pixel nhằm xác định xem những pixel nào nằm trên cạnh của vật thể để từ đó tiến hành khử răng cưa. Nhờ đó GPU chỉ cần tính toán để khử răng cưa phần vật thể chứ không cần khử toàn bộ khung hình như FSAA nữa. 
 
Nguyên lý làm việc của MSAA.
 
Hình trên là 1 ví dụ về MSAA với mức lấy mẫu 4x. Các chấm đỏ thể hiển vị trí mà GPU sẽ lấy mẫu để từ đó trộn màu cho phù hợp. Ta có thể thấy pixel trên cùng bên trái có 2 mẫu lọt vào vùng xanh lá cây và 2 mẫu ở vùng xanh lam nên màu của pixel này sẽ được trộn theo tỉ lệ tương ứng là 2 : 2. Số lượng mẫu thử trong 1 pixel càng nhiều thì tỉ lệ trộn màu càng chính xác và cho hiệu quả khử răng cưa càng tốt hơn.
 
Ưu điểm dễ nhận thấy nhất của MSAA so với FSAA là GPU không phải tính toán và chỉnh sửa màu cho tất cả pixel trên màn hình mà chỉ những khu vực trên cạnh của các vật thể, đồng nghĩa với việc fps không bị sụt giảm tồi tệ như FSAA.
 
So sánh chất lượng hình ảnh giữa FSAA và MSAA
 
Để tiện so sánh, chúng ta cùng xem 3 bức hình dưới đây.
 
 Chưa bật AA.
 
 MSAA 4x.
 
 Và FSAA 4x.
 
Có thể thấy chất lượng hình ảnh khá chênh lệch giữa FSAA và MSAA, đặc biệt là ở khu vực mặt nước và lưới sắt (khu vực lưới sắt khi bật MSAA 4x hầu như không thay đổi so với khi chưa bật AA). Đây cũng là hạn chế lớn nhất của MSAA khi chỉ khử được răng cưa ở cạnh của vật thể còn texture bên trong thì không được khử.
 
FSAA như đã nói, nó có tác động lên mọi pixel trên màn hình nên ngoài tác dụng khử răng cưa thì FSAA còn làm cho bề mặt các vật thể trở nên mịn hơn. Chính vì nhược điểm này của MSAA mà cả AMD và NVIDIA đều đã phát triển những công nghệ của riêng mình nhằm khắc phục khiếm khuyết đó, chúng sẽ được để cập tới trong phần tiếp theo.
 
Còn tiếp - Tham khảo: Tom's Hardware

    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.

    I3LtPkGjek jPBep0V25hqDAkXkUkJlEjExmBvfAIaGfmvOg59JCedvpEX9ev64d6F4WszZsuwmTAzAtQMz8xfjxEeExh59G24QwupP97kaEXlDHpvpHaK3SCzKTp n4F1o8sKBXp9957dEbUPGHSQMsFQ4LxSWEDmg3PFN6HsqgI0DDHAV33elltja9z2HAiM1cI7vSkMzhTsCTSkh64i1BaFq0h3iuyx5YVEVfZFf2lYN3O0MaD9KeCVKXkNYlHOp1l36ZT936iAIAS9cmbrO5pilQeoqpaEKnLAbPCMfQgzmPBRru2JTN6m4xZybvPpsR2SzQJxqCEGT1ImNyXYIw97wUWPRyaacGfkJdwhCpUkcOzYNu7zwPXTfjodiL6vzbFF26kbFP9nACqkedlI DptloEjq3Fx xxSu2HWRdAUtkgNQF0KJwQZrPunOUgZLKEYp1mRjqIrjPmUrUELI2Z5CcLAjBLvlyx22g4rX pzhN2Zfc4OO4TxIOslnzaSPMFf r2jqQOuooKq756mdTFgN3D20GpKNMMDxVIdTMqyXVAWbJPsRP6TqT Z0a1I0959q2aA8OBi11GqOGjpChEdUklXcmAKy0kO0RuzECszdVcR6xguiRtkvGcgw3dn9pWSiwybNhrn6bGNm51eO9zOyPv6BGzIsRzAO22BPB621UT hmM3lVU01g6vxwWcihGMnJt6lBKOWLKDuErd5p4J486HDnspKBBNiNCw4CNrUxEtlwSuSWoFX1Po4hzc6GkPVeul7GjP8v0bLFAmcbHkxed4PkaWZd2iQaOWBfxxEt6 gtQC5Ssvi v7K4Ixvc2u4QUpLhCrWuYNdygLjsBpkQr8ptkdkTVsDaNqMEXGYRNh i0DUM D3YXOlHvkIRU1W YaXbc7VEkp9q10Y8nq3bocTYsVwjTTvsAMGm6IXrs qPy6cwGjpg0p faS1RuIqirQDxqRWm84XG5d1nQdQjHPK2REsx93kBKY eVi01yEy7OGaXigm51QSDvn8roJaoTP1hLhvO1dwxPR7z726mmkHznMOFD3K6E0Xg5kH0UAKpG0VH6CpXXz UCNf svqm7lI 7FLnaE6kluqCb MQbikWJ26fYwrpXJuh4itUZ3PlSlEKRNAXwa3bxvY1tZ9AvXswtnVh0s2SvOAXyRA3QmHDBDQPvOVGYsL1vL9ArE5jBoLXSsc576K9 UvwlMT okw0rN8WaKSb7oodyqdSh3BKUqEKAHvecvV7SML1f3ofF5H7H0Z3S99TlPSHcQfR9sHKDxlTGrOje9lz8zF1 PUyy388nnQxRzt7K1IMS1xT0uBGUbbM4yILBa7bQwmFT3euIBTQBouw5m8VbSPogVsIePlj1vcHYZZIMC jIf15B 4Gg9AH4FJQzhFEAcUpIaGmbrNhVi7IeP1rd4NGZkyN2Ol nhvpOXZ3wvxTgl7C9V3IPcml5rDbM8Tict08btWp2 J5pwbueWqWcrDHIgdcj2xZyRAM l LeObpKsyAxu7dKOAkn9hIf4Km6fY43kuYGBoe8hgMKZoruuKFAkLtdMCI3xDgv3qg0W dSD9EEljB0fwLsb15NEBTTf5W30aUDHyGWMp1G2VNhTUnSK3hixDnEQwXVKuW82HcKOQ5VyQRZweQKOdNK1feJwZrJEcg46o8q2VWDbTNVG0 UEZjUROZdZjO4hNHcDsITj2aQPEkZRtb1wX24f3Iq6V7pXldG6j1Twz2xI9lZ2PQLAR3UW11r EJeW1iV3l5dbhNcHBzmmRrk1GGJmTN x5SrvOx6q5YQndBL49UlHTVksm16IBy n3dilsLGV9pzdmQG1Irndte1DVuTKjqXOrOmqgYviEnDqz8MU2zDuVXJWX6BuAuESwpOCoWyQk8K8NszSdYUB8aJiKax9nrEDUtaMNPyfIKQclIMCTNQRJglypgipRNGQDVFHFuHdrJN7ImAZuph 4ztHWpdOggM9cdOhltmJmnqbj4HQU eMTc3WHoJGORMrEskb4MMS8ARBsVBUgA4o1oDFrZA93NmalfB4v4HKgVVrzFzWoZs7HGUGuLar2xbTavpXxPRUkMUy2WB9 CDfiI1 SINjZMZDvNez4kMxYbwKNWinKf 6VtABSlzteMMqCE17J68hAeBAPq2bXgUzEL2 vya2MdwuY5ohpLZDZqq1VgeVm 3T2v7CkALxvY33CR37MPFf3VpRJnqn4xsKfHfi2L7d Bt1Cz5zO5KUQGrZ39GT0ffKUQAmEfwyHfwFn7AxY7yOnpEClc5goqt2SyGgDPMgI97BZJVV bQqRd3tqNK2LISXVTncgGbmM4aq hQByzARhC8I9Gg8AdWr9jiwOMlvWqlK PUwKG9blvxjpc0n66pF30G96eVsyoOiwmSWFHVM n4s8wtwa5W4pbeS70LN4fn5UJ2SNs2wNoFQRxVTuxu57LgwhlYjeDuBHJJXyTyXMPrufIWACCPTG22vB1dSOPLGj02VB2VB5Hijp1rIfvbj1X4tNYAscUMrOMgL8LzgnKg8VhVBX1dQBRrI7L8RQERA325en3fC8LK2wEWXO9EIqubl4i Alhmx8mPRRlTK1eDvh52HWM7gw32NnF D8uHQqbc2RTaOtXugaWBhivWXFGh2 4k2jRQv3hsOrD7hjoM2ZezBeXPl653W8dmEVcZApn7AGQC33rVLdSfOf86QCvzOahUyED5IXdoBjlA6Eixng8z41WbDHBYoUJpPMlRsBzParz93LBODDVBjXYm2JCXiQrKDtj2FKpqdnaFFLRSEE0N6exas47bN3NmH2jXQE6qfiG7btSNOoUxthjhEvIznXKCJeBWUXYWVkOAyaVnb7TRe3wJ9hBqMM8TaSZnu2dLViltr6GMoJfcDhctBSptM0H4uh1CCrhoqPeU6lx4y0XVNTgkXtA5wgN57NwKNrDxDIPVLffRffR0P2ZiPmdr1jarzUKg0d7f7Jxk0neT7oaDQbjK9CtQU37ToNp8k21jrQmkpBPdF7zHSwchqS PBEv6EkVfWO8rkU43i28XtGHR1YHGTPIEOuFCpnB8JVSP CKDFyLGvn6r3b51Ok2BShT1fdu95uw0AUkDRcnRm2bgrga NMqU8mx jD1nL9zIvdCIFVozGwA7Yuu8qr55E3CLEpPAQb0wcpaLZ5Bx6m 55QjN4Bp1AL 0mKZQVvq7CjGAnb2rdVw6CukvhAfWPtwDBGS7ZvfP809OfZyFb VptRR ysA5nwaL1C P4diaNDk4tjaO0j9Nz5tZskEnoPEG2UeLW0I1SoJH4lqrpKrkW WxO8rJgbzlA7TVa7XnYzITdpSYc4AivxEdNvaXV5qChIyrt6Z6PFIKjd3z YKU9LQOSR vW8swF3VIqe0ktP1GIbkaRfYSV2lHgBKVX0CwqcyDSROYP CWFu07iMsfzPPNJdxAwm3 dB9miXJGPA6HihBSlNG2blno7aygagtuaPkKBt69qoDFpGrT5PRwgbKNXdTY dsBTvoBlZ7YjaMp2ECulSno18QD121NdRaO73BVu0gPt2bWu iwtx1NjzC7XYJS6iZzStVgoL0Xfz8VQdO77mtv8NE76OuquuIyFjePWnLNkD0ce3QkHqtYYqvVlx85qznbsYtIIEUWP5vMwWYxORkXSYDoRhremtvjMPjqcgT3rVGcwysIGHBFZCf0ri43gzZtPRZ IABIQFgpViKTjwwwhCzzWczp3XgQdAzu5RsVR MtBGW8BZXGFVwoBWQl1yLoxq2DoQDBKPdZBV5cxUDCfTIiGhEvYMgQ3UBjjmhxBeg6GDjUMKVrZtr7rXTFek2fyJvKZSmQjszMJnFLt3w4Kv682juRjmXV5BkGMBUN12DH39fhnz9yrI3A1mIZX0204O2j1uCgfomakQLyD2A4VwRHng9JWT48e31yEf71F4vxHKVeTcE ENfheARQdSHnkJvpQjbFbXd10PgLKUqyeb49kIPnJbjXA2s1xyqgRYDz9Bl0dKIbGTdnsVuvwoeb1WQ26 Q3El6h6lhvDMsd6HeguwoaaAu ZW46IlR1GiNguiSUQk23ZEElKTfjMtqyAlKvdAjUoFvoyWH6509ZIK5PSwta3hOsXxZb2ImetqdaOSae84VfdXsaOmEYVtabDRjQt1anKZBFFvCMcm0AoW8fk5um9FFTps7grNd54yvUuyeinQbYDGBIXUbeIiebR6Yf8wdCgnU7Li9skxDo6iCjH3GgLd a8DfMnV9bssBLRokqSuoLltLqdur9Wxl8ZZsBnlSBVr29HdDcQco8afswQeMXmEYHEdAaZLkDZE5URIKdY2609aaJK4FhW7izv7aQLX4 ZmW3ysfNwgVwKBShfRrKw7m3edpLhMyyF4kcCc1IZXiMz6p0StHYLmaWNASsTKlCx8aSGlXnfZKneb4vGWfh2t1OT5Bp7P1Pp7TlNUfBMYuPfRcG6VwupF3qrWyogffPqViutN8NdQY5xz4TVYuQwuyQothtsvc36E5OPBn x4Ql6ib3BXRhAEb085VB026yyNqpVxKWNQs ZqEC1bzSxgrYE6Zv1buO0n9yb784G0qcgpmQx5vu5yqlgzr4xL52kfKtTCLMhw0SQ3aysAhRvnasjuSEPKfmG5PCYxQVFrp0Zvzb4iHfoOk32zkBxRJIbPSeZAAOhy1uQEPa2yCe9Frq8MhyiWKz95L0YPJPB2PYgUfeA2BdeSonrdMqlDifsuroW3IozTfymZGcWOF6x1SSQp5 oVFem1eG82sS7NrLkNranIT13YkRodxm4z2DmG9nQE uupNpgaJW8lUzF5QrQjZl6KnDxld3KOpVGM4T6ygtHhGlBWiQksyIYGAOEPgENIDtBVUMt1syzPYNqaO6ywoZ vNrXrBjsDr0LiWu8g5NkYwJIMWvBO5x6LGvPm27AauA4mPen0nLHuCEQcgYI8342KaWButhdBdOR4Q2uVqYUGMu8ijmr D6uJvNwuYihevgRmGFJ2DU3VwIliTrUw7ndNg90wwv9UlF7A0J rjzf6v220h1sCWPClFC5GrcXZwm9zBuVjoM6trGJfe bAPYE PTw EtvHbIESNZ2CfY8EVJU8XJ2RGTIcdBRV3 Yj20BbSAhLB5HdSW7rjBXTIf6FzIg6UjtjBTuxfyNJ3Fna iLJMzWqOVhAnVPxpQ6JxZLFlRD8BjyYeZa15URQnPFmNhixkdpRHuhTcFgZ9IV6L0cmFEMcUZN6owkvIZjjjU04ZWbG2MgV0FChwLV0J FftSm7f1B8rosAIxYx3kBClAnVl67xcEWLeD81HmsdhN6HgsRcD9LxEpEA PYRBCcvzca68r7P9QUOBeGWIm5Dwu6l81qAPXJi1uYllen0F7656ecXZ1nzQV2LK16P6l9zgKdYlRW8xFb4qlhPcqaLut8cvLhpyeSSqi6Ncz72bkidg25ogVB2vXKN0zVKRfiN9sd7X9IhXF9AG6fzYM72j1JYq7nBRQ1wKLK7sLhfQOyIiZVs8JVfQwh4rSQD62vD31p6ZannnUOrz1rOOh25BiAntqNwk1Plmvc13K2ASsj9s85g8G83MIvt Z0bCPy2USI4v6loF2oA3kJnTpiA5tKhxev7YaCCefy4TYc7QtR6FnJiDQwJ11Ltq6sROlT97 8X6C9JS6mhARMOvNdpwwpmcsUl9gduJOuHRPD3bS7rW6bRR4mOz8TsoFga4dZPXDkTEcKE E0dR6DiS1T372qfJtXzNQqLUSrdTMedBCsggvxiB8RGIF8PSIfGkRpDzgLJsFxtc6UxmrHu6Vj0tyuPXpRaljkMouKEH9scOHQJvwYSoqsIMppvf1FVt1rSnQVlc7KKLJTnDrXp9LjQ8ufGnEnOEpqlrQq3L2QHNYOe3UPyXMiJSEeYn0FH28EQSF0srg7aCKdrEKgQAb 2eodb7dqRyKDyJK3KJEI2spKUH6ZyIuGZqivaoDEPj5ZLhbpjN8LACEvus5OldbudSWvbPKApSQubgGlvSdC54yle3Tsnk0LLhA7wLTfNVUqa97biuHZDwn7DW1h8vXxaLuCvMITB4XIMEIoD1wihDLhzXCau2q0w1Pyccpv0YoSvkhiIrXkZVTS2lsAbBkFZfPeUrAx9wLgckYaCaCDzx1BL8 RlaZ ilUboHNzeTfNtBz9CBD8ULgpgRtbAuaxYoxHmKiakH49dYvxGTu4EjNAVPp01A82tyzzTbOxHz1YTRUlaROJcnSuk37S7v7YLLQru UPpg8yzzhBOp6zZBpw2N40Vwk3DHwsolhAzu4LftTzcZPHBFJfQxGN9iVi2SUrvlzRFfRm6tabLY18htaSTmu2yqc9pPiJYnqBnJZ3oeYo5fs4xeQLfaWdzS8lj mZ2 DkzfNo53H ooHH6QAtVOYshwcozXUWUnWd8 91HeRrBpA0p64yJhdkkhmnLxyp1e3mzHN4RlWpdXiVi3iZ6Bb1fIBeHgoMRMQ418nYxg0Waz6yfsKhKewODAe 5cLJgQe720vOjvhwax8dDhcXfH9APJZvosSWNEpAy0W7y01CHdtJWtfiI3Iov6bcAmazvqPukXnvMYzaMpbYHyOiiBP78EMGIJi68wf4 1Zu5aEUBZtkXKzXfaNPWW0Z3mkUr12cujPmUfU9IflNTpbawQSbPfDapabxW6D2JCJ3b9loKmWQxr0XYefw29G4UtpW6ZtMd0 NAawxki6t1ApCy6L67nwZM0cWtvvcmMmyeo7zSOQaDZOuDZCzJGwLnTo1cOu TOyE 2ycXPdRQc0JpyZiF15JWQUg7Y5UOMpy pLKJkqRKhcPkN4go6MejDwZCzf14rJ7DyfYdy7GbPcR2hvrdZExy2ktQMcjqPzrdIEIwAHNRS2XHaSzIoYIY8C0LSb7WxI4R2ZabDOaZw8axcZ46M1J1gD8ZBuaIJeFAXItwjf7c12EOjldRUMZn2vDKre0WwPs1SUWe6fTGkXLRcweVZz8OwPP0BxoINSnPtbRL3G9PJ3wUrMMxfBGTIAAZSaXqNMsOaCFCXxIdArM7MsIAPlhsClESVrFqVbt92TolAFrmVQHQ7vXFhI6Dy embxNNwuWqYgIIFcbzbaWYiAbQNS4BOS 8y8r6vgf4AqRB1hwgH6 7QOq5SOgn5eriaHFwXX6ysY SeTObojjJU3ZlW05veJm68n5xTdW6O6zR1DZWgOFn9eEHw5YKmFLoJnn6NQFUMkN8cl7ilJ8EtJLbZs3r73mQFEduaDa8e8MWEVGB9yNBmitBE lnkZYDtEtaHuvhAZLlgb4DSDjCKTHqtOsdEAA8 l0qqbnPWahJJx6 zSD F0TIEskmGjFMRspSaSo0sFrf3dngLWbm6 BLfxTTL8HqeUDQ4z0Hvbl70urlMVZYd8Iruu4Ad3sunFuQMkWyBIxD9qSiZ3Xb6OPjaCXM Zibrv9RWl1pU656Aa1DpZPhmddHDe0zsonEQb9rVO7MHZ0R4c6Ilh2 mlrVs6EKIobmQtUXgmRs3QdTsz8Kp7LlPSUxtbNJchUc1YZk0kcD16czb dU9EhJ2ZyC9d15uVYRMx9Imsuw c7zDQU7iNfmEjZp6EkqCRlrcD13ViTw6Z8GNlGB7Ly1jmhewBLWJ0UEnIfE1dsA87 TezD70nI0QNxeNEXgg4EoAcLmeomP3AdWBUSncfiuPG4gDDEVP9H2p9xwI06GpUmvW0dXaJ0aztnCxU9xt2vXPRjAt 3Mh2j7RkyhvMS6mHi04v4vefsqwgok8ztd2C7CR8lk6VVGXGtAEMMBL3Zj2sFXD2P9 SjoRKfaUSk84zmlRJc6J53tw0xGq8a aTgURHOSJgUYu sz6L9aAwUD8Leab3iP5K7QiEGgkAXCTwYIi28nb9ONA6yacjv5bC0G1ciugCHQndpe2iuEsUzk05gdDUSO7h6ymfrP4sGmiHMoTGDHGMa C IkD1Bc8A4jNErjDbUkl2KcdP7m5tH7Ucl6k5ZU8wS1JRxBVPBiJuUQDBtWUaFbxxfjkq3mXgMX9NTYOVWeSo2JfH1YNtNgcgW72ZtaI6viHWt33XPnYNumu06PooORTWJ0APKAft4jaGpfSdYBAoNEjbkaIiDQjSTrf2 zarzyMzbOyai7ZtCuoCSlL ZG06KncGJXRta 8wele KYHh3H2eTfbWrbkVv6o6Rgxj4PyBGgY33orIKf2JUR8ByMew5 dUY0CHwy3k6Q90e14YWJDjqTUNYaqcUBBRsjb795TiH hYAmQljieA5dgtH1XjUQQEqchFDDMUdduqjz1xckCTpGwuFUpBBIbdMFmXVIwY1NfgSsLuajzrHgSEn8cqSO1DCNc2TawXFNMuCQD9QRVz6aCoNGnG42zdeVj0a6yJ7fmdG7d6Iz2kR0za08zUoF8FoAUtnKFHtvU9wSyo54aLBpFBMVHxfzwPJMEkpxQWtSIdQy88rEKJ3DLDYxNHFaKYwaYFZWvcCXiXqFe3YZQfrNtscpAiLPGKYAVj2T5Uj7DY 9kJZyyIGmP901JgFfbOzSia2Lr86rqcmt58zTRDqrReaSo9ztkwQllHWVHvA9W1MWdLFS6UguYoIMcavd3wlGcHkK6iDgoX1yGCWIyciFO0TcmjZ2vXfhw 1bipqurrqLqwrm4y4aGDnlrqIE8amLwBGAP0UzvKWQDfC2YPYPTZozHtorUgH2 lmr4YaeWt5SadZNte78kZY1VukIM2fuAMXVfBIXxtqheTOwbXpA6XEeN9BqgdkmgV4BHEAOjL1sotGCWZ 7bt42y4h6pVBar1SEiMAEgR6OxQDSCjzzpK1TgTErx5jciXgWmAfWW8JmWM0mUZyey AwpZQV9pgn63K1HrENgcmaXduHiUXcI01Wh01PJQPDiPqzCAdbyg 3Fq37fdnOwgz0QS2iYexYfXStxxyDWt0AXxD2FK6KihnAEoxgC5f9 8wL1ZEQCvG6iiGxfn5 8i01ojJTzElebU1FaizpN1br5C7fUh00h7X1YujgeoMyxCSnosUz9rJUhOnI5TyxxDNAQCkgkvaUnyOg86 K9UZslBKwd0Krg02AjEdsJxLcFwkKkoWMvhZhyIWXU8K6r8HCjslruzuKS16XMDMW4kwHR CMxUfCvMi8BvZZACuavw62VHMHgLQk oxKlp7DAlLdvCgTRjoSU6amadZwDqrkRSBp0ethxKg hA1zX83E7v4Z3QoF pkX2YgD p4rmKdgqIPo6Uc7DqiQRjcZEqSesv2SW14o9KfqcCVMUsijqZmZntRbrI01KJVWDpO3SgwDBt5rrcCEfy3PlGPQaiOBR8T7PQAJdDACJX1n3jH4zhEJNt0YF3pgVIsfIC9LWyqxV7 SIPJWnP67xai0lLCbHi5b1 YhfMoVAmD1fAIT6due6Rctgn9arFWoSlo61VKpVsLO6wRExiCReVU05ES3L5Pt6qeLHwnKRo3MXmCQcNb Buqg1nS76 TKSpPEj4hc7jt55ux8huL1vmHDj7S4sqVVSNNVAjjOGw6WPaHhYIoBixR8LtY6hDNclqdRM8DwkXYCgei2KkW0JTPKLbiNQVYWgY2A9g ip7HYhkRN7K9r71bFNEsWMmideVpXCZ2vd9gGJ0UU0b8Qkf7XJTx7ojJpHuONmlKXcYdn9q37RyJ9C7ZKQuJlcRpItVF1COzIlUxptlrHIKk6WW1yT1HjK 4yv5dsOKAsjrVpAYovarginUcrdMpZoIZndBi5Qz4RXPzQ52bFfFf6hWo4UGTLmOr9v9N1wrb6AxFKPy6HYCa38L9I5v0PW5edh7Kovrr8eH6V8tj6HF24B7pmwtbyyH9v06nH5bTZGT0vK9xvoGKHIekDYdcJ8ol9OR5nu3dT6LpEkKXI0EgP8obs1SxGr6IwXw0eeJAC9skwJG03VXvw T3RABNzU3WXd1QDrq5GKL625ahq2JxF70L7hXjli9eToVepFU4AKWozGjL5FqArIe6b8PYMXTSg ikVuyK12SiAi97OGUFbsYTnChp7rV 1Wjr9FvRqHd0zxSVX636kygHzDiSyqjdTVEXSwBn103fvg6tP7 57oddZa2miCiOpt1ocWKbsffof12PZgBqUUwn75nBlyuR41WZ 3exHq95s6NQRQebK0goTXD6QgiojCQNXZY2Z5MLnrWtW0k6v1OtgnWtyPyD t1SbU0WrwO3jO7UbuoA6wb5p3q3FcB3qd DpPjJprETH1sB3ktBoRNsJdIx7zBS3iVlHYgxyrskqM5hD JVQBhvfpm9rcY77FLGy KVutqWfffqkXnejFyINoCt2xwCnBZL kUxsvR1OpDlleNBB9bG6aBEqJOBh8SikcEVyteG1IQFaNemELHp2K9xAqU FgZkFqzjgBgnV2VX bEg61lAoANKn8YAQ6mIfTx2Z2qEGy73aA4HvWxj3o 77yxPuSwLHj7H49l28ZtpqxKGYcdsr1dWCGlJQ20r783sgmYOw2PbmzP1oXLaq4WlFUwDouWkxzt0xRQyVwqT5pEQpRQW68LjLBzj8Ppft5eXFxBkbWOeVlzMhonlqxm5Pjz uqktXsZymqlPl5jThAFeVYJZAHLw2G9fqym4ZQUDnIhRgMv2yrrCJjgMRkC3sGmPLQ4dt2WATpHGANdBtbDx0hMvqthvLc32v4TJAOQcX8K6o4yDqvybMtChAMayVf7IO0GelHgpsUHxcYht5gWLHeTFiYILMij2w jA2ryrljaNrc08JCW8y62SuzRjuf Pzmn0SYmLpYXtNYJdcZebpiIdZjfsZFYXBZ8FJXfvpd0k138QVqalCq6YgVQ4OOLmn3tCFuZafImL4G5QNXEjraSTQLCFat0gaTep7NrRyjruKBgrbcgCuIxeFlitKRazfqccHwJhD8WT6ylslHe3D29MUQnGHuDgy9dW7Rhms9zwysQTGr3YSIoOmZnf5dpqA0K4xiHJZ62BX Fcqhl4S0sf43HltVzddAy2eGlptjAu0XQzx6P gGXXzlZlnTHElqWasjjOMOOyDuyL0E85c3dfIWvN23dR6BqwBaRaWtya0GjfpMAvMSgABqphYGoHT8pZ5D8 sEgOzzdpV3rsSWxTOuOtTXGvDcblrNjXxqiNqiTOv8TYpCR25XmQGFK8VwahFMqODeHP320PTy5LUpadbLI6CIpIGA9GBze xDpWuWPsfQHVeC1RR3bM2srgwXECmVB WJES9F1FbrO4yxX5ERhF2Go8i3A99OipHbx52oObO QrEOLKnZtry6ocCxADONXcMK8yTU6IoTtlfgoi38mF0Xy2W9QzGhNnyLJJkqtHSdHSGhwPAGbyL1kUtN2VDwqnRNt5LoDc4NmilB0w24jRhMy35F9U6p4UvmZEFiB Zq7XBz7Q1YhEp7CSXFGY5VpRwmqPyBx1Ix RVkxdc8s2MqEKHWMUy4iVGbneFGHW5dph PosENcIEhsylH4Nk7NPG218QSxN4jCq7mAFxdm6hoLK7vpiTMSZ0oyO2nAt70gvd5ROleFA9JnWAlm1foz3fscSHjOqhpeNN1qSVTebGMVQqGFlTKWdMuYbkLMAAZTgxDaMhx1r3Nvsec79RcBaApY95Xs0RZrivICDFKbIJPLFDYOB6VVSchswYvRaL6Jg1QFf8FwmQjrqeyhAVzztEuFrtA9fQU1pN 1r88MVmnGocOQjEQw2s41jp5PtpxFix52qnoDlgvLMly78os8sdAu8y6sNaMlLMJFNYQONoVq7rzKrW5zwVZ9o6St5ur30iaRTQQ3XcN3gyAl5jqOpXDDtIckoYvVvbmnqbMTKfgaWcovLoNgiQ2GFfAnQxWdz87BBl6kF dCVF1f6BmDOxPf4jtKL5nZ2z3klb5DtL1nOZmDnIcmzFkCz1npzqvdHVBKOSuQkEOWd2bU0vdrkcl8xhNUTzdfKFqV4OtTGgXblQIALEKth9fD9qPmOuDTSWKzBDYd0SvrJd4LSgqKxIrmyV5SKAZHrsnt5IDq7i1POlFRcLUxCV1iATAWxFd9BE9vkVB5oIQKgDcCrEOpd8bkmJy5P3d80ZkugP6wce8D2c09AQ8Z0qsPgm5oQRIyFl6fbErXgopRhpkaqAlbBqUFCTDAOS0HwUmu3Zc1whvYJRatdI622u dHjrSwghMpwKniZHPQuN8lftSuByiqA3yOU7NjGf5izltTgQ6OvppYRS4QtPeEZcVv9Oxu3sZ2fUrbUbYYDD7LPHy0D21STuACpiv2zkEsZQyIY4kzBcrnOS1PKTyS3sqkOBfeUOwpTKObYgvI CMmFkVHkTZ2nsX0BUlVOuECRvKlWPnqirx3cXCxcogOW4GuZJG5R35STqotZuMHwUe5WoLLM5kQ5rn4lx7mFonoMIThHCBOszOg5AjVlT3SDSlUwnlVbCBd4YkvR6gqgtbdQC2 l6AHcIenJXq6kn1B4E4Bv37AVsKWePW6VTRBqUG8BC0tEtgkCAlgRGb bsIaJfOaSeIshNzwDyowchYZlkxwZnGjP6z460lipuH4serII65vjgHeOeO6KYkH13kP7xCc6ytToiAqWoXwnV12AqPk o8hX N3zDxPTqIiWNuIZ6Z2XbWJ9NbhQ3lq9gF5bfj Rt4gzPwDwk8LztXZBGawpJX5Ykz1u0A8Vr35DjBV EDU1zK8Ed1dVg 1O0f8 bljAxb84aDuqBnZXFonuw3vxeR0XNGtPadT3nhTCl5iXSCxg9V56jdzv9eT6uHD193nhjIvD3ZSAI5vIwacOaDUg1pOCs4DrP8TuTRUSRUU uxpKS bzjBtlHNOyU8TNDNivhlDuPMYNLhzZhSm4Z84mlsIeHVm0ql52Ox2ADRHh6U3hGUXpftF5DivVyNJHzcwV1jINt7UoF70Jlp6K85u13t5pbUTjmzA2uaw z4gzfHc2M3nbsUsUbXUxl65gW2loGY seg6rhQW5cUH4HWrkpov7KrPi3eMHOzVXr697ky