aaarticlea/jpeg;base64,/9j/4AAQSkZJRgABAQAAkACQAAD/4QB0RXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAKgAgAEAAAAAQAAA0igAwAEAAAAAQAAAs4AAAAA/+0AOFBob3Rvc2hvcCAzLjAAOEJJTQQEAAAAAAAAOEJJTQQlAAAAAAAQ1B2M2Y8AsgTpgAmY7PhCfv/iD0BJQ0NfUFJPRklMRQABAQAADzBhcHBsAhAAAG1udHJSR0IgWFlaIAfhAAUABQAEAAgABGFjc3BBUFBMAAAAAEFQUEwAAAAAAAAAAAAAAAAAAAAAAAD21gABAAAAANMtYXBwbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWRlc2MAAAFQAAAAYmRzY20AAAG0AAAEGGNwcnQAAAXMAAAAI3d0cHQAAAXwAAAAFHJYWVoAAAYEAAAAFGdYWVoAAAYYAAAAFGJYWVoAAAYsAAAAFHJUUkMAAAZAAAAIDGFhcmcAAA5MAAAAIHZjZ3QAAA5sAAAAMG5kaW4AAA6cAAAAPmNoYWQAAA7cAAAALG1tb2QAAA8IAAAAKGJUUkMAAAZAAAAIDGdUUkMAAAZAAAAIDGFhYmcAAA5MAAAAIGFhZ2cAAA5MAAAAIGRlc2MAAAAAAAAACERpc3BsYXkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbHVjAAAAAAAAACIAAAAMaHJIUgAAABQAAAGoa29LUgAAAAwAAAG8bmJOTwAAABIAAAHIaWQAAAAAABIAAAHaaHVIVQAAABQAAAHsY3NDWgAAABYAAAIAZGFESwAAABwAAAIWdWtVQQAAABwAAAIyYXIAAAAAABQAAAJOaXRJVAAAABQAAAJicm9STwAAABIAAAJ2bmxOTAAAABYAAAKIaGVJTAAAABYAAAKeZXNFUwAAABIAAAJ2ZmlGSQAAABAAAAK0emhUVwAAAAwAAALEdmlWTgAAAA4AAALQc2tTSwAAABYAAALeemhDTgAAAAwAAALEcnVSVQAAACQAAAL0ZnJGUgAAABYAAAMYbXMAAAAAABIAAAMuY2FFUwAAABgAAANAdGhUSAAAAAwAAANYZXNYTAAAABIAAAJ2ZGVERQAAABAAAANkZW5VUwAAABIAAAN0cHRCUgAAABgAAAOGcGxQTAAAABIAAAOeZWxHUgAAACIAAAOwc3ZTRQAAABAAAAPSdHJUUgAAABQAAAPiamFKUAAAAAwAAAP2cHRQVAAAABYAAAQCAEwAQwBEACAAdQAgAGIAbwBqAGnO7LfsACAATABDAEQARgBhAHIAZwBlAC0ATABDAEQATABDAEQAIABXAGEAcgBuAGEAUwB6AO0AbgBlAHMAIABMAEMARABCAGEAcgBlAHYAbgD9ACAATABDAEQATABDAEQALQBmAGEAcgB2AGUAcwBrAOYAcgBtBBoEPgQ7BEwEPgRABD4EMgQ4BDkAIABMAEMARCAPAEwAQwBEACAGRQZEBkgGRgYpAEwAQwBEACAAYwBvAGwAbwByAGkATABDAEQAIABjAG8AbABvAHIASwBsAGUAdQByAGUAbgAtAEwAQwBEIA8ATABDAEQAIAXmBdEF4gXVBeAF2QBWAOQAcgBpAC0ATABDAERfaYJyACAATABDAEQATABDAEQAIABNAOAAdQBGAGEAcgBlAGIAbgD9ACAATABDAEQEJgQyBDUEQgQ9BD4EOQAgBBYEGgAtBDQEOARBBD8EOwQ1BDkATABDAEQAIABjAG8AdQBsAGUAdQByAFcAYQByAG4AYQAgAEwAQwBEAEwAQwBEACAAZQBuACAAYwBvAGwAbwByAEwAQwBEACAOKg41AEYAYQByAGIALQBMAEMARABDAG8AbABvAHIAIABMAEMARABMAEMARAAgAEMAbwBsAG8AcgBpAGQAbwBLAG8AbABvAHIAIABMAEMARAOIA7MDxwPBA8kDvAO3ACADvwO4A8wDvQO3ACAATABDAEQARgDkAHIAZwAtAEwAQwBEAFIAZQBuAGsAbABpACAATABDAEQwqzDpMPwATABDAEQATABDAEQAIABhACAAQwBvAHIAZQBzdGV4dAAAAABDb3B5cmlnaHQgQXBwbGUgSW5jLiwgMjAxNwAAWFlaIAAAAAAAAPMWAAEAAAABFspYWVogAAAAAAAAgrkAAD1J////vFhZWiAAAAAAAABLuwAAs4wAAArXWFlaIAAAAAAAAChiAAAPLAAAyJpjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgALQAyADYAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8AowCoAK0AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//3BhcmEAAAAAAAMAAAACZmYAAPKnAAANWQAAE9AAAAoOdmNndAAAAAAAAAABAAEAAAAAAAAAAQAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAQAAbmRpbgAAAAAAAAA2AACuAAAAUgAAAEPAAACwwAAAJsAAAA4AAABQAAAAVEAAAjMzAAIzMwACMzMAAAAAAAAAAHNmMzIAAAAAAAEMcgAABfj///MdAAAHugAA/XL///ud///9pAAAA9kAAMBxbW1vZAAAAAAAAAYQAACgNAAAAADSFniAAAAAAAAAAAAAAAAAAAAAAP/AABEIAs4DSAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2wBDAAICAgICAgMCAgMFAwMDBQYFBQUFBggGBgYGBggKCAgICAgICgoKCgoKCgoMDAwMDAwODg4ODg8PDw8PDw8PDw//2wBDAQICAgQEBAcEBAcQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/3QAEADX/2gAMAwEAAhEDEQA/AP38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/0P38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/0f38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKQnHNLUEjKB+8+7+VAEoJxk8GlBBqEbfvHvUqHK5oAdRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUe1ACE0bvWgjtiuQ8Z+Jbfwno8mrT/P5ePlHU5NGoXR129c7e9IrqzFR1HWuS8K+KLPxZo0WqWgwJOq9xiuriwc7elFu4rktFFFAwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9L9/KKKKACiiigAooooAKKKKACiiigAooooAKY77SB1JpxOKikycccUAOZ8Zz2r54+JfirW77Vk0DwrMY/sh3XcgGdo6j65r2HxN4gtfD2iXGo3bbY0GAe5LcD9a8R8O20xgbVL8bZ70kvnkkfw/pXVh6HMcmJr8h7F4M8RReJtFgvM/vEG117gjj9a7CLOWx93tXzj4av08LeL101/3drrJOwn7q7Bz+dfRltjZwd3vWFak4yNqNXmRYoooqDUKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKaTginVG4JxzxQ2BH5wRWduFHevnXxFqNz4w8XCyVdum6ZkOeol3D+lel+PfFaeG9CklC77mX5Y0HVsnB/KvNdCszp9lGt1zLJlmPru5/Su7B0OZ3ZwY2vyx0HeFL+Pwr4tOmA7LLU+Ix/Cu0c19DQGMLhK+dfEGlJqenNGD5cseGDjqu3nj616t4A14634fhmdgZkyrL3G3gZ+tTjqXLLQMDW5lqd5k4zikBzwetMDbxlTginqcjNcZ3jqKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//0/38ooooAKKKKACiiigAooooAKKKKACiiigBCM1GwGeTT2bbXHeN/EcXh7Q5rsfNKw2oO+W4/SnFXegnKyueR+Orv/hJvEa6Ez7rXTiDMB0fdyPyrYaOJRiJcYAGPpXN+GtJm0yxaS8bzry5O5pD1wTkD8q6YHnYRtA6ivdwtHlWp8/iqvNIxde0j+19PFq33h8yEcEFeetel+AfET6rokS3Jzdx5Vh3wvAzXGfJs8ljkP8Aeb0rndOuJvCPilL63b/iW6kcT+iFeB+ZrPHUdOZHTga1nys+llcsenFOBz1qpbsjxrIjfKwBx9atKwYbh3rxT2B1FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU0ttp1IcHr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7PsP+fWL/vhf8KUabYHn7LF/3wv+FaFGcUtRfIzhplh1a1iP/bNf8Kki0+yhfzYoER/VVAP6VeyaXrTUhaESxAH5TgelSou0YpQMUtAwooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9L9/KKKKACiiigAooooAKCM8UUUANCgdKUUtFABRRRQAUUUUAFZ2r86Te/9cJP/AEE1o1n6v/yCb3/rhJ/6CaAPmD9lbjw5fj/ptJ/6Ga+r6+UP2V/+Rdv/APrtJ/6Ga+rh1NAC0UUUAFFFFACYxS0UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAmD60tFFABSYzS0UAJgUYFLRQAmBRgUtFAHx18H8H9pf4wj/AK8P/QK+wwAa+PPg9/ycx8Yf+3D/ANAr7EFABgUYFLRQAmBRj0paKAEwfWloooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//T/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigArP1f/kE3v/XCT/0E1oVn6v8A8gm9/wCuEn/oJoA+YP2V/wDkXb//AK7Sf+hmvq4dTXyj+yv/AMi7f/8AXaT/ANDNfVw6mgBaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA+Ovg9/wAnMfGH/tw/9Ar7EFfHfwe/5OY+MP8A24f+gV9iCgBaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//U/fyiiigAooooAKKKKACmk4NOpCCaGAZpCwHWjGAe1QNPADhpVBHqRSQE4YGlz3qEXFv/AM9F/MUfaIB1lX8xTAm3Ck3CovtEH/PVfzFJ9og/56r+YoAm3Cs7V3H9lXg7mCT/ANBNW/tF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rTiuRinUUARLHtPBpGt4H/1kat9VBqakOe1AFYWVoDkQIPcKKl8pRxGAo9qd82acM96WoWGhMc5p9FFOwERiDE56Gnqu33NOooAKKKKACiiigAooooAKKKKACiiigAoxRRQAYyMUm0YxS0UAJjjAqMxLn61LTWOBmgD46+EEG39pj4wStzn7Dj/vivsNACM18mfCsCL9oz4qtj/W/Yv0WvrRBxQA7HOaWiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//0P38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigArJ1rDaNqAx/y7y/+gGtasfW+NG1A/wDTvL/6AaAPnj9lCQv8MYhjpcXH/ow19PA55r5X/ZIfd8M0HpcXH/ow19U0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU1hkYp1FAHyh8OAI/wBob4ikj/W/Zf0Wvq1eRXy34KUQ/tBeNW/56/Z/0WvqRPu0AOooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//R/fyiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAE6CsvWedHvwB1t5f8A0A1q1mar/wAgy8T1hk/9BNAHzJ+yV+68BSWp6xTz8/WQ19WA5Jr5S/ZaxFoupWn/ADzmf9XNfVqrgmgB1FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUh6UtFAHy54ZG34+eJm/56eT+i19QJnHNfNOkoIPjtqzf89dn6LX0wOlAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/9L9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACjpRTWByCO1AC5ozUW5S3H3h2qtcX1naruuZliPuwoAvZrO1L5rG5wOPKf/wBBNcdqXxI8GafmK7vwCOuBn+VcXqHxz8AwxSW0d2XZlYD5T3FAHDfs2Yin8QWwPMcv82NfViuf4hgmvhb4QfEHw14V13X7rVbgpFqDqYflPYnNfTtj8T/BV/tSO/GZOgIIoA9MMqhtp61JWPZappl8B9iuUkHoGBNaoA/CgB9FJkCgHNAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFNZtvHUmlyKa3I45oAUtge9NWRW6ViaxrWlaKn2rUrhYgBwCa8D8U/tDaZZlrLwvanUrnkHkoFPbk0AfTO4DrxUb3NvH9+RV+pFfBl98VfiLqQaSS8/s7d0iAD/AK1ztz4m8YakgW91dn+gxigD6AjlhX42zTpIpSXHOR2WvpSOVOgYH8a/MyFL2C+/tKK7YXP9/k111v448e25WOHWCVX1UUAfoQsqMdo7U7dz04r4o0v45eL9HlVdUtf7Uh7vuCbR9K988KfGDwj4lARLoQ3HG6NgRgn3NAHrO8bgPWpM1WV451EkLB0Poc5qWMjG0cYoAkooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//0/38ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApCwBx3NLTHOOgyaAFLAYB6msvUtUs9Mhe6vZBFFEMliaz/EfiXS/C+my6jqswjiiGffPYAV8M+LvHut+Pb2SWR2t9NUkJCD98fWgD2nxd8fraBpbTwlbfbX6GXO3b+Br561LW/EniO4e91zUHmDH5Ix8uz2461UW3igVUiXA7L/9epGxuPr3oAri1twM4Yv6liad5KMMOobHTipaKAIzEhG0qMDpx0pBEgZWOcj0OKloxQAlpc6po8pvfD969rcZzySw/I17j4S+Peo2aRWXiy3LKvDXOev/AAEV4cefuil2swKnDjuKAP0N0LxDpXiC0S90u4WaNx2PI/CugU8e9fm74d17VvBV8NQ0KZkSQjfFksDj619teA/H2meMrASwuEvEA8yMnoaAPS80VDEZDnfUoORmgBaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAprMFGTTqjkzjcO1AEZPOG4z0rx74gfFrSvCUclrZgXeoKMCMHGCfeqfxY+Ji+ELAadp5Euo3QIQD+H1zXx2DJLOb3UGM9xISS596ANLWdZ1/wAXXZ1HxLctMrHMcAO0J+I61U2hMImAV9ufzp7bl+bru6Ug9D170AB9V+960o29SMk9aSigBQcHH8PpTTk5HY0tFAAeVwKgkt4pVwwO8dCp2/yqejJByKAPQ/APxY8Q+D5vsWtym/0tiBGTwYR39zmvszQPEel+I7CPUNJlE0TjPuK/O0LGwZMZHcGun8GeNr/wBqSXGS+mOwEseemelAH6DrKDk4+X1qQHNYmiaxZa5p8Wp6fIJYJ1BGO1bEfcE5NAElFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB/9T9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoziikNACbs8gcVnahqdrptm99dMFSME5PtV8plMZxXy/8e/GLW9tB4R0x/nuyfNIPK7ef1oA8Y8feNbjx9rhuWJTS7diIlB4bsf1rmz1MZ7YwPSo4oljj8qHjHb+dOG7HPTsaAAKB0pec9eKKKACiiigAo470UUALmmhVBzjmlooAXcwB28E1c0TW73wtq8Gq6cTwcyoDw4/+tVKg7dpyMmgD9BvCPinT/FmiwatpzhlccjuCODXTBjnmvin4KeKBoniH+xJ22W2o/cUnhStfaURIGSc5oAsUUDmkAxQAtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFNbOOOtACFj2GTXL+LfEVt4d0G61a4+7CvAzjJPSunIxnHU18gfH7xPJfana+ELJsQxkm5x+a0AeJ6jqt94i1G58QalkzXbfdP8IU4GPwpThTs6rTT8o6YAAApBkDB60AOHHHakoooAKKKKACiiigApCNw2npS0UAI3zgqfu+lK251KHlfSikO4crQB7J8EfFo0nX28KPLttrn/Uox4XHLcn1r7IiYMSR+dfmZMsqTW91YsYruFgyuPQHJ/Sv0F8A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uenB619Z6V8G/BmnssrW/muvck16hZ6fZ2EYgtIliQdMAUAeK+BfhBp/h0jVNbk+2ag3IJGAv4dK91SGMxCMABPQcU8RgfeOakGO1ACbRjHpSgEDmlooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/9L9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACkxS0UARPFv5J5HSmtbo67HAZPQjNT0UAY82haZOhikt4yh7bRWBL8O/CUxy9iua7eigDhY/hv4QibctiufrW1a+GtJs/9RboMdPlFdBRnFAFNbcRcQhUHcAAVMqE8E8VNRQAzYMcU4DFLRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAIBiloooAaVDDDUbQBgU6igBpUGm+WucipKKAI/LPY0qpjOec0+igBm3n2pcY6U6igBpUE5NKAR3paKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/9P9/KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACjGaKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP/Z" alt="" width="353" />
go并发调度模型如上图
M指的是Machine,一个M直接关联了一个线程。
P指的是Processor,代表了M所需的上下文环境,也是处理用户级代码逻辑的处理器。
G指的是Goroutine,其实本质上也是一种轻量级的线程。
⾸先是 Processor(简称 P),其作⽤类似 CPU 核,⽤来控制可同时并发执⾏的任务数量。每个⼯作线程都必须绑定⼀个有效 P 才被允许执⾏任务,否则只能休眠,直到有空闲 P 时被唤醒。P 还为线程提供执⾏资源,⽐如对象分配内存、本地任务队列等。线程独享所绑定的 P 资源,可在⽆锁状态下执⾏⾼效操作。
进程内的⼀切都在以G⽅式运⾏,包括运⾏时相关服务,以及main.main ⼊口函数。需要指出,G 并⾮执⾏体,它仅仅保存并发任务状态,为任务执⾏提供所需栈内存空间。G 任务创建后被放置在 P 本地队列或全局队列,等待⼯作线程调度执⾏。
实际执⾏体是系统线程(简称 M),它和 P 绑定,以调度循环⽅式不停执⾏ G 并发任务。M 通过修改寄存器,将执⾏栈指向 G ⾃带栈内存,并在此空间内分配堆栈帧,执⾏任函数。当需要中途切换时,只要将相关寄存器值保存回 G 空间即可维持状态,任何 M 都可据此恢复执⾏。线程仅负责执⾏,不再持有状态,这是并发任务跨线程调度,实现多路复⽤的根本所在。
G自己提供内存栈在M上执行
P保存P执行过程中的数据行,当G被暂停时,SP,SC等寄存器信息会保存在G.sched中,当G被唤醒继续执行时,从之前暂停的位置继续执行,因为G提供内存栈,并记录了上次执行到的位置,G数量很多,P相对较少,在垃圾回收的时候方便定位
P中有一个对列保存G的指针,其实就是一个256个元素的数组,通过两个变量指向对首和对尾,所以这个队列是会出现满的情况的,满了新加的G就只能放到全局队列中
type g struct {
stack stack //栈,两个能容纳任何变量地址的变量
stackguard0 uintptr // offset known to liblink
stackguard1 uintptr // offset known to liblink
_panic *_panic // innermost panic - offset known to liblink
_defer *_defer // innermost defer
m *m // current m; offset known to arm liblink
sched gobuf //存放g上下文信息,g被停止调度时,会将上线文信息存在这里,唤醒后可继续调度
syscallsp uintptr // if status==Gsyscall, syscallsp = sched.sp to use during gc
syscallpc uintptr // if status==Gsyscall, syscallpc = sched.pc to use during gc
stktopsp uintptr // expected sp at top of stack, to check in traceback
param unsafe.Pointer // passed parameter on wakeup
atomicstatus uint32
stackLock uint32 // sigprof/scang lock; TODO: fold in to atomicstatus
goid int64 //就像线程有id,g也有id
waitsince int64 // approx time when the g become blocked
waitreason string // if status==Gwaiting
schedlink guintptr //指向另一个G,全局G就是通过这个字段连在一起的
preempt bool // preemption signal, duplicates stackguard0 = stackpreempt
paniconfault bool // panic (instead of crash) on unexpected fault address
preemptscan bool // preempted g does scan for gc
gcscandone bool // g has scanned stack; protected by _Gscan bit in status
gcscanvalid bool // false at start of gc cycle, true if G has not run since last scan; TODO: remove?
throwsplit bool // must not split stack
raceignore int8 // ignore race detection events
sysblocktraced bool // StartTrace has emitted EvGoInSyscall about this goroutine
sysexitticks int64 // cputicks when syscall has returned (for tracing)
traceseq uint64 // trace event sequencer
tracelastp puintptr // last P emitted an event for this goroutine
lockedm *m
sig uint32
writebuf []byte
sigcode0 uintptr
sigcode1 uintptr
sigpc uintptr
gopc uintptr // pc of go statement that created this goroutine
startpc uintptr // 被执行的函数
racectx uintptr
waiting *sudog // sudog structures this g is waiting on (that have a valid elem ptr); in lock order
cgoCtxt []uintptr // cgo traceback context
labels unsafe.Pointer // profiler labels
timer *timer // cached timer for time.Sleep
gcAssistBytes int64
}
go func()到底做了什么?
对应函数runtime.newproc
1:从执行当前方法的G所在P的空闲G列表中取一个G,如果没有就从全局list中取一个,毕竟G还是经常使用,用完的G并不是马上释放,而是放回P的空闲列表中反复利用,如果还是没有空闲的G,就new一个malg(2048),G的栈大小为2K
2:如果有参数会将参数拷贝到G的栈上,将G状态改成可运行状态
3:如果P的G队列没满,将G加入队尾
4:如果P的G队列满了,就取出G队列的前面一半+当前G,共129个G加入全局队列
加入队列后,等待被调度
全局队列G存取
G本身有个字段schedlink指向另一个G,天生就是链表的一个节点,全局队列其实就是两个指针,一个指向队首,一个指向队尾,队尾的存在就是方便入队列
入全局队列:前面说过将P中的一半+1个G(129)加入全局队列,并不是一个个入队列,而是将这个129个G的首接入全局队列的尾,将全局队列的尾改成这129个G的尾
出全局队列:当系统开始调度的时候,会从P本地G队列取一个可用G执行,如果没有,则从全局队列中取,最多取128个,返回第一个用于执行,剩余的存入本地G队列中,毕竟操作本地队列不用加锁,操作全局队列需要加锁
findrunnable查找可执行的G
1:本地队列:从M对应的P的G队列中找(runqget),队列不为空,返回对列首个元素,对首指针指向下一个元素,当对首和对尾指向同一个元素时表示队列为空,访问本地队列中的G不需要加锁
2:全局队列:从全局队列中找(globrunqget),从全局队列中取G不是一次取一个,毕竟访问全局队列是要加锁的,所以全局队列有多少取多少,最多取P队列容量一半128个,将这些G存入P的G队列中
3:⽹络任务(netpoll)
4:从其他P任务队列取,拿一半
所有目的就是多核齐心协力以最快的速度完成任务,总不能出现某个P的本地队列还有多个人,其他P都在睡大觉吧,最后如果还是没找到一个可用的G,那就大家一起睡大觉,等着被叫醒
type p struct {
lock mutex
id int32
status uint32 // one of pidle/prunning/...
link puintptr
schedtick uint32 // incremented on every scheduler call
syscalltick uint32 // incremented on every system call
sysmontick sysmontick // last tick observed by sysmon
m muintptr // back-link to associated m (nil if idle)
mcache *mcache //方便小对象的分配,一个p一个,不需要加锁
racectx uintptr
deferpool [][]*_defer // pool of available defer structs of different sizes (see panic.go)
deferpoolbuf [][]*_defer
// Cache of goroutine ids, amortizes accesses to runtime·sched.goidgen.
goidcache uint64
goidcacheend uint64
// Queue of runnable goroutines. Accessed without lock.
runqhead uint32 //队头
runqtail uint32 //队尾
runq []guintptr //G循环队列
runnext guintptr //高优先级的G,会先执行
// Available G's (status == Gdead)
gfree *g //空闲G列表
gfreecnt int32 //空闲G数量
sudogcache []*sudog
sudogbuf []*sudog
tracebuf traceBufPtr
// traceSweep indicates the sweep events should be traced.
// This is used to defer the sweep start event until a span
// has actually been swept.
traceSweep bool
// traceSwept and traceReclaimed track the number of bytes
// swept and reclaimed by sweeping in the current sweep loop.
traceSwept, traceReclaimed uintptr
palloc persistentAlloc // per-P to avoid mutex
// Per-P GC state
gcAssistTime int64 // Nanoseconds in assistAlloc
gcBgMarkWorker guintptr
gcMarkWorkerMode gcMarkWorkerMode
gcw gcWork
runSafePointFn uint32 // if 1, run sched.safePointFn at next safe point
pad [sys.CacheLineSize]byte
}
永远不会退出的调度(schedule)
当一个G执行完成后,会继续调用调度函数schedule,死循环就产生了
// goexit continuation on g0.
func goexit0(gp *g) {
_g_ := getg()
casgstatus(gp, _Grunning, _Gdead)
dropg()
_g_.m.locked =
gfput(_g_.m.p.ptr(), gp)
schedule()
}
整体执行流程
mstart() => schedule() => findrunnable() => execute() => func() => goexit() => schedule()
M就绪 =>调度 => 查找可调度G => 执行G => 具体方法 => 执行完成 => 继续调度
入口函数是 _rt0_amd64_linux,需要说明的是,不同平台的入口函数名称会有所不同,该方法会调用runtime.rt0_go汇编。
rt0_go 做了大量的初始化工作,runtime.args 读取命令行参数、runtime.osinit 读取 CPU 数目,runtime.schedinit初始化Processor数目,最大的Machine数目等等。
除此之外,我们还看到了两个奇怪的 g0 和 m0 变量。m0 Machine 代表着当前初始化线程,而 g0 代表着初始化线程 m0 的 system stack,似乎还缺一个 p0 ?
实际上所有的 Processor 都会放到 allp 里。runtime.schedinit 会在调用 procresize 时为 m0 分配上 allp[0] 。所以到目前为止,初始化线程运行模式是符合上文提到的 G/P/M 模型的。
大量的初始化工作做完之后,会调用 runtime.newproc 为 mainPC 方法生成一个 Goroutine。 虽然 mainPC 并不是我们平时写的那个 main 函数,但是它会调用我们写的 main 函数,所以 main 函数是会以 Goroutine 的形式运行。
TEXT _rt0_amd64_linux(SB),NOSPLIT,$-
LEAQ (SP), SI // argv
MOVQ (SP), DI // argc
MOVQ $main(SB), AX
JMP AX
TEXT main(SB),NOSPLIT,$-
MOVQ $runtime·rt0_go(SB), AX
JMP AX
TEXT runtime·rt0_go(SB),NOSPLIT,$
LEAQ runtime·g0(SB), CX
MOVQ CX, g(BX)
LEAQ runtime·m0(SB), AX
// save m->g0 = g0
MOVQ CX, m_g0(AX)
// save m0 to g0->m
MOVQ AX, g_m(CX)
CALL runtime·args(SB)
CALL runtime·osinit(SB) //获取cpu数量,页大小
CALL runtime·schedinit(SB) //调度初始化
// create a new goroutine to start program
MOVQ $runtime·mainPC(SB), AX // entry,执行runtime.main
CALL runtime·newproc(SB)
// start this M
CALL runtime·mstart(SB)
MOVL $0xf1, 0xf1 // crash
RET
DATA runtime·mainPC+(SB)/,$runtime·main(SB)
GLOBL runtime·mainPC(SB),RODATA,$
package runtime
// The main goroutine.
func main() {
// Allow newproc to start new Ms.
mainStarted = true
gcenable()
fn := main_init // make an indirect call, as the linker doesn't know the address of the main package when laying down the runtime
fn()
fn = main_main // make an indirect call, as the linker doesn't know the address of the main package when laying down the runtime
fn()
exit()
}
参考
- Go的并发调度原理
Go语言是为并发而生的语言,Go语言是为数不多的在语言层面实现并发的语言:也正是Go语言的并发特性,吸引了全球无数的开发者. 并发(concurrency)和并行(parallellism) 并发 ...
- 并发编程原理学习:synchronized关键字
概述 关键字synchronized可以修饰方法或者以同步代码块的形式来进行使用,它主要确保多个线程在同一时刻只能有一个线程处于方法或者同步块中,它保证了线程对变量访问的可见性和排他性. 同步代码块 ...
- 并发编程原理学习-reentrantlock源码分析
ReentrantLock基本概念 ReentrantLock是一个可重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁,并且在获取锁时支持选择公平模式或者非公平模式 ...
- python并发编程之进程、线程、协程的调度原理(六)
进程.线程和协程的调度和运行原理总结. 系列文章 python并发编程之threading线程(一) python并发编程之multiprocessing进程(二) python并发编程之asynci ...
- Goroutine并发调度模型深度解析之手撸一个协程池
golanggoroutine协程池Groutine Pool高并发 并发(并行),一直以来都是一个编程语言里的核心主题之一,也是被开发者关注最多的话题:Go语言作为一个出道以来就自带 『高并发』光环 ...
- Atitit.并发编程原理与概论 attilax总结
Atitit.并发编程原理与概论 attilax总结 1. 并发一般涉及如下几个方面:2 2. 线程安全性 ( 2.2 原子性 2.3 加锁机制2 2.1. 线程封闭3.3.1Ad-hoc线程封闭 3 ...
- golang channel的使用以及调度原理
golang channel的使用以及调度原理 为了并发的goroutines之间的通讯,golang使用了管道channel. 可以通过一个goroutines向channel发送数据,然后从另一个 ...
- 弄懂goroutine调度原理
goroutine简介 golang语言作者Rob Pike说,"Goroutine是一个与其他goroutines 并发运行在同一地址空间的Go函数或方法.一个运行的程序由一个或更多个go ...
- go--->共享内存和通信两种并发模式原理探究
共享内存和通信两种并发模式原理探究 并发理解 人类发明计算机编程的本质目的是为了什么呢?毫无疑问是为了解决人类社会中的各种负责业务场景问题.ok,有了这个出发点,那么想象一下,比如你既可以一心一意只做 ...
随机推荐
- 【功耗测试环境预置自动化脚本开发】【切换wifi模式为siso模式】【用到方法*args】
import os,reimport logginglogging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[ ...
- 零基础入门学习javase,应该怎么学?这是我给你的一个建议
我们知道Java有三个方向,JavaSE,JavaME,JavaEE(老程序员可能会叫J2EE等,不过SUN已经改名了).JavaME主要是嵌入式与游戏开发.那我们先看JavaSE,因为只有学好了Ja ...
- ShortcutBadgerDemo【安卓应用角标(badge)实现方案】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 本文主要使用的开源库是 leolin310148/ShortcutBadger,但是在其基础上做了一些修改. 什么是应用角标? 1. ...
- HashMap?面试?我是谁?我在哪
现在是晚上11点了,学校屠猪馆的自习室因为太晚要关闭了,勤奋且疲惫的小鲁班也从屠猪馆出来了,正准备回宿舍洗洗睡,由于自习室位置比较偏僻所以是接收不到手机网络信号的,因此小鲁班从兜里掏出手机的时候,信息 ...
- java到底是引用传递还是值传递?
今天我们来讲讲一个在学习中容易误解的问题,面试中也偶尔问到,java方法调用时到底是值传递还是引用传递? 首先,请大家来做一个判断题,下面的3个问题是否描述正确 1. java基本数据类型传递是值传递 ...
- Spring Cloud Alibaba基础教程:Nacos的集群部署
继续说说生产环境的Nacos搭建,通过上一篇<Spring Cloud Alibaba基础教程:Nacos的数据持久化>的介绍,我们已经知道Nacos对配置信息的存储原理,在集群搭建的时候 ...
- DSAPI中TCP、UDP、HTTP的选择
在DSAPI中,网络通讯主要有以下几种:1 [TCP] TCP服务端 TCP客户端 2 [UDP] UDP服务端 UDP客户端 UDP指令版服务端 UDP指令版客户端 3 [HTTP] HTTP服务端 ...
- 抽象工厂模式(Abstract Factory Pattern)
抽象工厂模式概述 定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类 抽象工厂抽象工厂,顾名思义,就是比工厂模式更抽象的工厂模式.在工厂模式中,一个具体工厂只负责生产一个具体产品 ...
- Liunx-mv命令
mv要是不明白什么意思,你就把它想象成Windows里面剪切文件夹/文件,然后再去粘贴的操作,你就会明白的. 1. 移动一个文件夹(rightr文件夹,移动到/201904/a目录) 出现这个错误的原 ...
- c# word文档的操作
参考https://blog.csdn.net/ruby97/article/details/7406806 Word对象模型 (.Net Perspective) 本文主要针对在Visual St ...