[Флагманский магазин подлинный] Дисциплинарный Java Multi -Threading Design Model Режим дизайна дизайна платный язык Java Language Programming Введение в разработку учебников компьютерных сети

Цена: 1 353руб. (¥64)
Артикул: 557155652230
Вес товара: ~0.7 кг. Указан усредненный вес, который может отличаться от фактического. Не включен в цену, оплачивается при получении.
Описание товараPHA+PGltZyBjbGFzcz0iZGVzY19hbmNob3IiIGlkPSJkZXNjLW1vZHVsZS0xIiBzcmM9Imh0dHBzOi8vYXNzZXRzLmFsaWNkbi5jb20va2lzc3kvMS4wLjAvYnVpbGQvaW1nbGF6eWxvYWQvc3BhY2ViYWxsLmdpZiI+PHAgc3R5bGU9Im1hcmdpbjogMDtvdmVyZmxvdzogaGlkZGVuOyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTQvVDJzNG1vWEg4WFhYWFhYWFhYLTM1MDQ3NTk5NS5wbmc/cD1oYl92M19jbGllbnRfMTIyNTAwNV9zdGFydF90b3BfMSI+PC9wPjx0YWJsZSBhbGlnbj0iY2VudGVyIiBzdHlsZT0ibWFyZ2luOiAwIGF1dG87Ij48dHI+PHRkPjxpbWcgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2k0LzIxNDU0ODc0MDkvTzFDTjAxaEFxTVF3MjRiTjVsVk5Ba0JfISEyMTQ1NDg3NDA5LnBuZz92PTE2MDc2NDgxNTM1NDAiPjwvdGQ+PC90cj48L3RhYmxlPjxwIHN0eWxlPSJtYXJnaW46IDAgMCA1LjBweCAwO292ZXJmbG93OiBoaWRkZW47Ij48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuYWxpY2RuLmNvbS9pbWdleHRyYS9pNC9UMnM0bW9YSDhYWFhYWFhYWFgtMzUwNDc1OTk1LnBuZz9wPWhiX3YzX2NsaWVudF8xMjI1MDA1X2VuZF90b3BfMSI+PC9wPjxwIHN0eWxlPSJtYXJnaW46IDA7b3ZlcmZsb3c6IGhpZGRlbjsiPjxpbWcgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2k0L1QyczRtb1hIOFhYWFhYWFhYWC0zNTA0NzU5OTUucG5nP3A9aGJfdjNfY2xpZW50XzExNTczMjJfc3RhcnRfdG9wXzIiPjwvcD48dGFibGUgYWxpZ249ImNlbnRlciIgc3R5bGU9Im1hcmdpbjogMCBhdXRvOyI+PHRyPjx0ZD48ZGl2PjxpbWcgdXNlbWFwPSIjMTU4NzY5MTY2Njc0MSIgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2kzLzIxNDU0ODc0MDkvTzFDTjAxa3FjZ21KMjRiTjMwd1F2NmZfISEyMTQ1NDg3NDA5LnBuZz92PTE1ODc2OTE2NjY3NDEiPjwvZGl2PjxtYXAgbmFtZT0iMTU4NzY5MTY2Njc0MSI+PGFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iLTQsLTcsNzk3LjAsMzU4LjQ3NTI4IiBocmVmPSJodHRwczovL21hcmtldC5tLnRhb2Jhby5jb20vYXBwL3RiLXNvdXJjZS1hcHAvc2hvcGFjdC9wYWdlcy9pbmRleD93aF93ZWV4PXRydWUmYW1wO3BhdGhJbmZvPXNob3AvYWN0aXZpdHkmYW1wO3VzZXJJZD0yMTQ1NDg3NDA5JmFtcDtzaG9wSWQ9MTEyMTI3NDA2JmFtcDtwYWdlSWQ9MjM2MTcxMDE4JmFtcDthbGlzaXRlPXRydWUiPjwvbWFwPjwvdGQ+PC90cj48L3RhYmxlPjxwIHN0eWxlPSJtYXJnaW46IDAgMCA1LjBweCAwO292ZXJmbG93OiBoaWRkZW47Ij48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuYWxpY2RuLmNvbS9pbWdleHRyYS9pNC9UMnM0bW9YSDhYWFhYWFhYWFgtMzUwNDc1OTk1LnBuZz9wPWhiX3YzX2NsaWVudF8xMTU3MzIyX2VuZF90b3BfMiI+PC9wPjxwIHN0eWxlPSJtYXJnaW46IDA7b3ZlcmZsb3c6IGhpZGRlbjsiPjxpbWcgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2k0L1QyczRtb1hIOFhYWFhYWFhYWC0zNTA0NzU5OTUucG5nP3A9aGJfdjNfY2xpZW50XzEyMDc2MTNfc3RhcnRfdG9wXzMiPjwvcD48dGFibGUgYWxpZ249ImNlbnRlciIgc3R5bGU9Im1hcmdpbjogMCBhdXRvOyI+PHRyPjx0ZD48ZGl2PjxhIGhyZWY9Imh0dHBzOi8vZGV0YWlsLnRtYWxsLmNvbS9pdGVtLmh0bT9pZD01MzU3MjE4NDA3NjMiIHRhcmdldD0iX2JsYW5rIj48aW1nIHVzZW1hcD0iIzE2MDMzMzg3ODQyMTMiIHNyYz0iaHR0cHM6Ly9pbWcuYWxpY2RuLmNvbS9pbWdleHRyYS9pMy8yMTQ1NDg3NDA5L08xQ04wMWZWNmpueTI0Yk41Nml0aTl0XyEhMjE0NTQ4NzQwOS5wbmc/dj0xNjAzMzM4Nzg0MjE0Ij48L2E+PC9kaXY+PC90ZD48L3RyPjwvdGFibGU+PHAgc3R5bGU9Im1hcmdpbjogMCAwIDUuMHB4IDA7b3ZlcmZsb3c6IGhpZGRlbjsiPjxpbWcgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2k0L1QyczRtb1hIOFhYWFhYWFhYWC0zNTA0NzU5OTUucG5nP3A9aGJfdjNfY2xpZW50XzEyMDc2MTNfZW5kX3RvcF8zIj48L3A+PHAgc3R5bGU9Im1hcmdpbjogMDtvdmVyZmxvdzogaGlkZGVuOyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTQvVDJzNG1vWEg4WFhYWFhYWFhYLTM1MDQ3NTk5NS5wbmc/cD1oYl92M19jbGllbnRfMTE1NzUxNF9zdGFydF90b3BfMyI+PC9wPjx0YWJsZSBhbGlnbj0iY2VudGVyIiBzdHlsZT0ibWFyZ2luOiAwIGF1dG87Ij48dHI+PHRkPjxkaXY+PGltZyB1c2VtYXA9IiMxNTg3NzE5NjcwMzQzIiBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTQvMjE0NTQ4NzQwOS9PMUNOMDF5OHY2Q3MyNGJOMzR3bVlpTV8hITIxNDU0ODc0MDkucG5nP3Y9MTU4NzcxOTY3MDM0NCI+PC9kaXY+PG1hcCBuYW1lPSIxNTg3NzE5NjcwMzQzIj48YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIwLDAsNzkxLjAsMzYwLjkxMjU0IiBocmVmPSJodHRwczovL2RldGFpbC50bWFsbC5jb20vaXRlbS5odG0/c3BtPWExejEwLjMtYi1zLnc0MDExLTIyNDk3MDAwMDg2LjIwLjJmNTI4M2M1V2JKYk9uJmFtcDtpZD02MTMwMjgyMTgyNDUmYW1wO3JuPTFkMGNiNzNkMzJlYmJlMTQxOGI0NmZiMjljN2E3ZGJiJmFtcDthYmJ1Y2tldD0xMyI+PC9tYXA+PC90ZD48L3RyPjwvdGFibGU+PHAgc3R5bGU9Im1hcmdpbjogMCAwIDUuMHB4IDA7b3ZlcmZsb3c6IGhpZGRlbjsiPjxpbWcgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2k0L1QyczRtb1hIOFhYWFhYWFhYWC0zNTA0NzU5OTUucG5nP3A9aGJfdjNfY2xpZW50XzExNTc1MTRfZW5kX3RvcF8zIj48L3A+PHAgc3R5bGU9Im1hcmdpbjogMDtvdmVyZmxvdzogaGlkZGVuOyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTQvVDJzNG1vWEg4WFhYWFhYWFhYLTM1MDQ3NTk5NS5wbmc/cD1oYl92M19jbGllbnRfMTE1NzUxMl9zdGFydF90b3BfMyI+PC9wPjx0YWJsZSBhbGlnbj0iY2VudGVyIiBzdHlsZT0ibWFyZ2luOiAwIGF1dG87Ij48dHI+PHRkPjxkaXY+PGltZyB1c2VtYXA9IiMxNTg3NzE5NTY1ODI0IiBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTQvMjE0NTQ4NzQwOS9PMUNOMDFZNERSUE8yNGJOMzFHTXZuVV8hITIxNDU0ODc0MDkucG5nP3Y9MTU4NzcxOTU2NTgyNCI+PC9kaXY+PG1hcCBuYW1lPSIxNTg3NzE5NTY1ODI0Ij48YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIwLDAsNzkxLjAsMzYwLjkxMjU0IiBocmVmPSJodHRwczovL2RldGFpbC50bWFsbC5jb20vaXRlbS5odG0/c3BtPWExejEwLjMtYi1zLnc0MDExLTIyNDk3MDAwMDg2LjQ2LjMyNjE4M2M1cnFPaGlrJmFtcDtpZD02MTEyNTYzOTMyNzYmYW1wO3JuPTIwNTc3YmQwZmRkYjgyM2U0NjA5MDgzNzA0MmE3ZjIyJmFtcDthYmJ1Y2tldD0xMyI+PC9tYXA+PC90ZD48L3RyPjwvdGFibGU+PHAgc3R5bGU9Im1hcmdpbjogMCAwIDUuMHB4IDA7b3ZlcmZsb3c6IGhpZGRlbjsiPjxpbWcgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2k0L1QyczRtb1hIOFhYWFhYWFhYWC0zNTA0NzU5OTUucG5nP3A9aGJfdjNfY2xpZW50XzExNTc1MTJfZW5kX3RvcF8zIj48L3A+PHAgc3R5bGU9Im1hcmdpbjogMDtvdmVyZmxvdzogaGlkZGVuOyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTQvVDJzNG1vWEg4WFhYWFhYWFhYLTM1MDQ3NTk5NS5wbmc/cD1oYl92M19jbGllbnRfMTE1NzMyNF9zdGFydF90b3BfMyI+PC9wPjx0YWJsZSBhbGlnbj0iY2VudGVyIiBzdHlsZT0ibWFyZ2luOiAwIGF1dG87Ij48dHI+PHRkPjxkaXY+PGltZyB1c2VtYXA9IiMxNTg3NjkxOTY1ODUyIiBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTMvMjE0NTQ4NzQwOS9PMUNOMDE4UGJrNVcyNGJOMzBzQ2hSTV8hITIxNDU0ODc0MDkucG5nP3Y9MTU4NzY5MTk2NTg1MyI+PC9kaXY+PG1hcCBuYW1lPSIxNTg3NjkxOTY1ODUyIj48YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIwLDAsNzk1LjAsMzYyLjczNzY3IiBocmVmPSJodHRwczovL21hcmtldC5tLnRhb2Jhby5jb20vYXBwL3RiLXNvdXJjZS1hcHAvc2hvcGFjdC9wYWdlcy9pbmRleD93aF93ZWV4PXRydWUmYW1wO3BhdGhJbmZvPXNob3AvYWN0aXZpdHkmYW1wO3VzZXJJZD0yMTQ1NDg3NDA5JmFtcDtzaG9wSWQ9MTEyMTI3NDA2JmFtcDtwYWdlSWQ9MjM1ODA3MzczJmFtcDthbGlzaXRlPXRydWUiPjwvbWFwPjwvdGQ+PC90cj48L3RhYmxlPjxwIHN0eWxlPSJtYXJnaW46IDAgMCA1LjBweCAwO292ZXJmbG93OiBoaWRkZW47Ij48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuYWxpY2RuLmNvbS9pbWdleHRyYS9pNC9UMnM0bW9YSDhYWFhYWFhYWFgtMzUwNDc1OTk1LnBuZz9wPWhiX3YzX2NsaWVudF8xMTU3MzI0X2VuZF90b3BfMyI+PC9wPjxwIHN0eWxlPSJtYXJnaW46IDA7b3ZlcmZsb3c6IGhpZGRlbjsiPjxpbWcgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2k0L1QyczRtb1hIOFhYWFhYWFhYWC0zNTA0NzU5OTUucG5nP3A9aGJfdjNfY2xpZW50XzEwMTQ0NzRfc3RhcnRfdG9wXzEiPjwvcD48cCBzdHlsZT0ibWFyZ2luOiAwLjBweDsiPjxpbWcgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2kyLzIxNDU0ODc0MDkvTzFDTjAxY3k5QW9JMjRiTXdxZmkxMjJfISEyMTQ1NDg3NDA5LmpwZyIgYWx0PSIiPjwvcD48cCBzdHlsZT0ibWFyZ2luOiAwIDAgNS4wcHggMDtvdmVyZmxvdzogaGlkZGVuOyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTQvVDJzNG1vWEg4WFhYWFhYWFhYLTM1MDQ3NTk5NS5wbmc/cD1oYl92M19jbGllbnRfMTAxNDQ3NF9lbmRfdG9wXzEiPjwvcD48cCBzdHlsZT0ibWFyZ2luOiAwO292ZXJmbG93OiBoaWRkZW47Ij48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuYWxpY2RuLmNvbS9pbWdleHRyYS9pNC9UMnM0bW9YSDhYWFhYWFhYWFgtMzUwNDc1OTk1LnBuZz9wPWhiX3YzX2NsaWVudF85MTcxMzZfc3RhcnRfdG9wXzEiPjwvcD48dGFibGUgYWxpZ249ImNlbnRlciIgc3R5bGU9Im1hcmdpbjogMCBhdXRvOyI+PHRyPjx0ZD48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuYWxpY2RuLmNvbS9pbWdleHRyYS9pMi8yMTQ1NDg3NDA5L1RCMlpUZEJmNDZJOEtKalNzemZYWGFaVlhYYV8hITIxNDU0ODc0MDkuanBnP3Y9MTUyMzE0OTU2MTE3MyI+PC90ZD48L3RyPjwvdGFibGU+PHAgc3R5bGU9Im1hcmdpbjogMCAwIDUuMHB4IDA7b3ZlcmZsb3c6IGhpZGRlbjsiPjxpbWcgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2k0L1QyczRtb1hIOFhYWFhYWFhYWC0zNTA0NzU5OTUucG5nP3A9aGJfdjNfY2xpZW50XzkxNzEzNl9lbmRfdG9wXzEiPjwvcD48YnI+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtmb250LXNpemU6IDE1LjBweDtmb250LXdlaWdodDogYm9sZDtoZWlnaHQ6IDMwLjBweDtsaW5lLWhlaWdodDogMzAuMHB4OyI+0JrQsNGC0LDQu9C+0LM8L2Rpdj48YnI+0J/RgNC+0LPRgNCw0LzQvNCwIDEg0L3QuNGC0YwgSmF2YSAxPGJyPkkxLjEgSmF2YSBUaHJlYWQgMjxicj5JMS4yINCn0YLQviDRgtCw0LrQvtC1INC90LjRgtGMIDI8YnI+0KfRgtC+0LHRiyDQvtGC0YHQu9C10LbQuNCy0LDRgtGMINC/0YDQvtGG0LXRgdGBINC+0LHRgNCw0LHQvtGC0LrQuCwg0L7QvSDRhNCw0LrRgtC40YfQtdGB0LrQuCDQvtGC0YHQu9C10LbQuNCy0LDQtdGCINC/0L7RgtC+0LogMjxicj7QntC00L3QvtC/0YDQvtC40LfQstC+0LTQuNC80LDRjyDQv9GA0L7Qs9GA0LDQvNC80LAgMzxicj7Qn9GA0L7Qs9GA0LDQvNC80LAg0LzRg9C70YzRgtC40L/QvtC00LHQvtGC0LAgNDxicj7QnNC10YLQvtC0INC30LDQv9GD0YHQutCwINC60LvQsNGB0YHQsCDQv9C+0YLQvtC60LAg0Lgg0LzQtdGC0L7QtCDQvdCw0YfQsNC70LAgNTxicj5JMS4zINCd0LDRh9Cw0LvQviDQv9C+0YLQvtC60LAgOTxicj7QndCw0YfQsNC70L4g0L/QvtGC0L7QutCwICgxKSZhbXA7bWRhc2g7JmFtcDtNREFTSDs8YnI+0J3QsNGH0LDQu9C+INC/0L7RgtC+0LrQsCAoMikmYW1wO21kYXNoOyZhbXA7TURBU0g7PGJyPkkxLjQgUGFyYW1vdW50aW5nIG9mIFRocmVhZCAxMjxicj5JMS41INCe0LHRgNCw0LHQvtGC0LrQsCDQstC30LDQuNC80L3QvtCz0L4g0LjRgdC60LvRjtGH0LXQvdC40Y8gMTM8YnI+0KHQuNC90YXRgNC+0L3QuNC30LjRgNC+0LLQsNC90L3Ri9C5INC80LXRgtC+0LQgMTQ8YnI+0KHQuNC90YXRgNC+0L3QuNC30LjRgNC+0LLQsNC90L3Ri9C5INC60L7QtNC+0LLRi9C5INCx0LvQvtC6IDE3PGJyPtCh0L7RgtGA0YPQtNC90LjRh9C10YHRgtCy0L4g0L3QuNGC0LXQuSAxODxicj7Qn9C+0LTQvtC20LTQuNGC0LUg0L7Rh9C10YDQtdC00YwmYW1wO21kYXNoOyZhbXA7TURBU0g7PGJyPtCc0LXRgtC+0LQg0L7QttC40LTQsNC90LjRjyZhbXA7bWRhc2g7JmFtcDtNREFTSDs8YnI+0KPQstC10LTQvtC80LjRgtGMINC80LXRgtC+0LQmYW1wO21kYXNoOyZhbXA7TURBU0g7PGJyPtCc0LXRgtC+0LQg0YPQstC10LTQvtC80LvQtdC90LjRjyZhbXA7bWRhc2g7JmFtcDtNREFTSDs8YnI+0J/QvtC00L7QttC00LjRgtC1LCDRg9Cy0LXQtNC+0LzQu9C10L3QuNC1LCDRg9Cy0LXQtNC+0LzQu9C10L3QuNC1IC0g0Y3RgtC+INC80LXRgtC+0LQg0L7QsdGK0LXQutGC0LAg0LrQu9Cw0YHRgdCwIDI0PGJyPkkxLjcg0KHQvtGB0YLQvtGP0L3QuNC1INC80LjQs9GA0LDRhtC40Lgg0L3QuNGC0L7QuiAyNDxicj7QlNGA0YPQs9C40LUg0YLQtdC80YssINGB0LLRj9C30LDQvdC90YvQtSDRgSDQv9C+0YLQvtC60LDQvNC4IDI2PGJyPkkxLjkg0JfQvdCw0L3QuNGPLCDQuNC30YPRh9C10L3QvdGL0LUg0LIg0Y3RgtC+0Lkg0LPQu9Cw0LLQtSAyNjxicj5JMS4xMCDQo9C/0YDQsNC20L3QtdC90LjQtSDQktC+0L/RgNC+0YEgMjY8YnI+0JrRgNC40YLQtdGA0LjQuCDQvtGG0LXQvdC60Lgg0LTQu9GPINC80L3QvtCz0L7Qv9C+0YLQvtGH0L3QvtC5INC/0YDQvtCz0YDQsNC80LzRiyAzMTxicj5JMi4xINCa0YDQuNGC0LXRgNC40Lgg0L7RhtC10L3QutC4INC00LvRjyDQvNC90L7Qs9C+0L/QvtGC0L7Rh9C90L7QuSDQv9GA0L7Qs9GA0LDQvNC80YsgMzI8YnI+0LHQtdC30L7Qv9Cw0YHQvdC+0YHRgtGMJmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj7QktGL0LbQuNCy0LDQvdC40LUmYW1wO21kYXNoOyZhbXA7TURBU0g7PGJyPtCg0LXQv9C70LjQutCw0YbQuNGPJmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj7Qv9GA0L7QuNC30LLQvtC00LjRgtC10LvRjNC90L7RgdGC0YwmYW1wO21kYXNoOyZhbXA7TURBU0g7PGJyPtCg0LXQt9GO0LzQtSDRgdGC0LDQvdC00LDRgNGC0L7QsiDQvtGG0LXQvdC60LggMzM8YnI+STIuMiDQl9C90LDQvdC40LUsINC40LfRg9GH0LXQvdC90YvQtSDQsiDRjdGC0L7QuSDQs9C70LDQstC1IDM0PGJyPkkyLjMg0JLQvtC/0YDQvtGBIDM0INGD0L/RgNCw0LbQvdC10L3QuNGPIDM0PGJyPtCT0LvQsNCy0LAgMSDQoNC10LbQuNC8INCy0YvQv9C+0LvQvdC10L3QuNGPINGBINC+0LTQvdC40Lwg0L/QvtGC0L7QutC+0LwmYW1wO21kYXNoOyZhbXA7TURBU0g7PGJyPjEuMSDQoNC10LbQuNC8INCy0YvQv9C+0LvQvdC10L3QuNGPINGBINC+0LTQvdC40Lwg0YDQtdC30YzQsdC+0LwgMzY8YnI+MS4yINCf0YDQuNC80LXRgCDQn9GA0L7Qs9GA0LDQvNC80YsgMTog0J/RgNC+0LPRgNCw0LzQvNCwINC90LUg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8g0L7QtNC90L7Qv9C+0LvQvtGB0L3QvtCz0L4g0YDQtdC20LjQvNCwINCy0YvQv9C+0LvQvdC10L3QuNGPIDM2PGJyPtCT0LvQsNCy0L3Ri9C5INC60LvQsNGB0YEgMzc8YnI+0J3QlSAt0KLQldCg0J/QmNCn0JXQodCa0JjQlSDQl9CQ0JPQoNCj0KHQmtCY0JUg0JPQntCb0J7QktCQIDM3PGJyPlVzZXJUaHJlYWQgQ2xhc3MgMzg8YnI+0JLQt9Cz0LvRj9C90LjRgtC1INC90LAg0Y3RgtC+JmFtcDtoZWxsaXA7JmFtcDtIZWxsaXA7PGJyPtCf0L7Rh9C10LzRgyDQtdGB0YLRjCDQvtGI0LjQsdC60LA/PGJyPjEuMyDQn9GA0LjQvNC10YAg0L/RgNC+0LPRgNCw0LzQvNGLIDI6INCf0YDQvtCz0YDQsNC80LzQsCA0MSDRgSDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdC8INC+0LTQvdC+0L/QvtGC0L7Rh9C90L7Qs9C+INGA0LXQttC40LzQsCDQstGL0L/QvtC70L3QtdC90LjRjyA0MTxicj7QndC40YLRjCDQsdC10LfQvtC/0LDRgdC90YvQtSDQt9Cw0YLQstC+0YDRiyDQutC70LDRgdGBIDQxPGJyPtCh0LjQvdGF0YDQvtC90LjQt9C40YDQvtCy0LDQvdC90LDRjyDRhNGD0L3QutGG0LjRjyA0Mjxicj4xLjQg0KDQtdC20LjQvCDQstGL0L/QvtC70L3QtdC90LjRjyDQvtC00L3QvtC/0L7RgtC+0YfQvdC+0LPQviDQstGL0L/QvtC70L3QtdC90LjRjyA0Mzxicj4xLDUg0L7Rh9C60LAg0LjQtNC10Lkg0YDQsNGB0YjQuNGA0LXQvdC40Y8gNDQ8YnI+0JrQvtCz0LTQsCDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YwgKNGB0LjRgtGD0LDRhtC40Y8g0LIg0YDQtdC20LjQvNC1INCy0YvQv9C+0LvQvdC10L3QuNGPINC+0LTQvdC+0L/QvtGC0L7Rh9C90L7Qs9C+INCy0YvQv9C+0LvQvdC10L3QuNGPKSA0NCA0NDxicj7QktGL0LbQuNCy0LDQvdC40LUg0Lgg0LzQtdGA0YLQstGL0LUg0LfQsNC80LrQuCA0NTxicj7QktGL0YDQsNGJ0LjQstCw0L3QuNC1INC4INC90LDRgdC70LXQtNGB0YLQstC+INCw0L3QvtC80LDQu9C40LggNDY8YnI+0KDQsNC30LzQtdGAINC4INC/0YDQvtC40LfQstC+0LTQuNGC0LXQu9GM0L3QvtGB0YLRjCDQutGA0LjRgtC40YfQtdGB0LrQvtC5INC+0LHQu9Cw0YHRgtC4IDQ2PGJyPjEuNiDQodCy0Y/Qt9Cw0L3QvdGL0Lkg0YDQtdC20LjQvCDQv9GA0L7QtdC60YLQuNGA0L7QstCw0L3QuNGPIDQ3PGJyPtCe0YXRgNCw0L3Rj9C10LzRi9C5INGA0LXQttC40Lwg0L/QvtC00LLQtdGB0LrQuCA0Nzxicj7QoNC10LbQuNC8INCx0LvQvtC60LjRgNC+0LLQutC4INGH0YLQtdC90LjRjy3Qt9Cw0L/QuNGB0LggNDc8YnI+0J3QtdC+0LHRi9GH0L3Ri9C5INGA0LXQttC40LwgNDc8YnI+0KDQtdC20LjQvCDRhdGA0LDQvdC10L3QuNGPINGB0L/QtdGG0LjRhNC40YfQtdGB0LrQvtCz0L4g0LTQu9GPINC/0L7RgtC+0LrQsCA0ODxicj4xLjcg0KfRgtC10L3QuNC1IDE6INC+INGB0LjQvdGF0YDQvtC90LjQt9C40YDQvtCy0LDQvdC90L7QvCA0ODxicj7QodC40L3RhdGA0L7QvdC40LfQuNGA0L7QstCw0L3QvdCw0Y8g0LPRgNCw0LzQvNCw0YLQuNC60LAg0Lgg0LTQvi/Qv9C+0YHQu9C1INGA0LXQttC40LzQsCA0ODxicj7Qp9GC0L4g0YHQuNC90YXRgNC+0L3QuNC30LjRgNC+0LLQsNC90L4/PGJyPtCa0LDQutC+0LUg0YPRgdGC0YDQvtC50YHRgtCy0L4g0LTQvtC70LbQvdC+INCx0YvRgtGMINC30LDRidC40YnQtdC90L4/PGJyPtCa0LDQutCw0Y8g0LfQsNGJ0LjRgtCwINCx0LvQvtC60LjRgNGD0LXRgiA1MDxicj7QkNGC0L7QvNC90LDRjyDQvtC/0LXRgNCw0YbQuNGPIDUxPGJyPtCg0LDQsdC+0YLQsCDQtNC70LjQvdC90L7Qs9C+INC4INC00LLQvtC50L3QvtCz0L4g0L3QtSDRj9Cy0LvRj9C10YLRgdGPINCw0YLQvtC8IDUxPGJyPjEuOCDQp9GC0LXQvdC40LUgMjogamF2YS51dGlsLmNvbmN1cnJlbnQg0J/QsNC60LXRgiDQuCDQv9C+0LTRgdGH0LXRgiBTZW1hcGhvcmUgNTI8YnI+0JrRgNC40YLQuNGH0LXRgdC60L7QtSDQutC+0LvQuNGH0LXRgdGC0LLQviDQuCDRgdC10LzQsNGE0L7RgCDQutC70LDRgdGBIDUyPGJyPtCY0YHQv9C+0LvRjNC30YPQudGC0LUg0LrQu9Cw0YHRgSBTZW1hcGhvcmUsINC90LDQv9GA0LjQvNC10YAsINC/0YDQvtCz0YDQsNC80LzQsCA1Mjxicj4xLjkg0JfQvdCw0L3QuNGPLCDQuNC30YPRh9C10L3QvdGL0LUg0LIg0Y3RgtC+0Lkg0LPQu9Cw0LLQtSA1NTxicj4xLjEwINCj0L/RgNCw0LbQvdC10L3QuNC1INCS0L7Qv9GA0L7RgSA1NTxicj7Qk9C70LDQstCwIDIg0L3QtdC40LfQvNC10L3QvdCw0Y8g0YDQtdC20LjQvCZhbXA7bWRhc2g7JmFtcDtNREFTSDs8YnI+Mi4xINCd0LXQuNC30YDQuNC80YvQuSDRgNC10LbQuNC8IDYyPGJyPjIuMiDQn9GA0LjQvNC10YAg0L/RgNC+0LPRgNCw0LzQvNGLIDYyPGJyPtCn0LXQu9C+0LLQtdC6INC60LvQsNGB0YEgNjIg0YEg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LXQvCDQvdC10LjQt9C80LXQvdC90L7Qs9C+INGA0LXQttC40LzQsCA2Mjxicj7Qk9C70LDQstC90YvQuSDQutC70LDRgdGBIDYzPGJyPlByaW50UGVyc29uVGhyZWFkIENsYXNzIDYzPGJyPjIuMyDQoNC+0LvRjCDQtNC10LHRjtGC0LAg0LIg0L3QtdC40LfQvNC10L3QvdC+0Lwg0YDQtdC20LjQvNC1IDY1PGJyPjIuNCDQntGB0L3QvtCy0L3Ri9C1INC80L7QvNC10L3RgtGLINGN0LrRgdC/0LDQvdGB0LjQvtC90L3Ri9GFINC40LTQtdC5IDY2PGJyPtCa0L7Qs9C00LAg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMICjRgdC40YLRg9Cw0YbQuNGPINCyINC90LXQuNC30LzQtdC90L3QvtC8INGA0LXQttC40LzQtSkgNjYgNjY8YnI+0KDQsNGB0YHQvNC+0YLRgNC40Lwg0L/QsNGA0YMg0LjQt9C80LXQvdGP0LXQvNC+0LPQviDQutC70LDRgdGB0LAg0Lgg0L3QtdC40LfQvNC10L3QvdC+0LPQviDQutC70LDRgdGB0LAgW1BlcmZvcm1hbmNlXSA2Njxicj7Qp9GC0L7QsdGLINC+0LHQtdGB0L/QtdGH0LjRgtGMINC90LXQuNGB0LrRg9GI0LXQvdC90YPRjiBb0L/QvtCy0YLQvtGA0L3Rg9GOINCy0L7Qt9C80L7QttC90L7RgdGC0YxdIDY3PGJyPtCd0LXQvtCx0YvRh9C90YvQuSDRgNC10LbQuNC8IDY3LCDQuNGB0L/QvtC70YzQt9GD0LXQvNGL0Lkg0LIg0YHRgtCw0L3QtNCw0YDRgtC90L7QuSDQsdC40LHQu9C40L7RgtC10LrQtSDQutC70LDRgdGB0L7QsiA2Nzxicj4yLjUg0KHQstGP0LfQsNC90L3Ri9C5INGA0LXQttC40Lwg0L/RgNC+0LXQutGC0LjRgNC+0LLQsNC90LjRjyA2OTxicj7QntC00L3QvtC/0L7Qu9C+0YHQvdGL0Lkg0YDQtdC20LjQvCDQstGL0L/QvtC70L3QtdC90LjRjyA2OTxicj7QoNC10LbQuNC8INCx0LvQvtC60LjRgNC+0LLQutC4INGH0YLQtdC90LjRjy3Qt9Cw0L/QuNGB0LggNjk8YnI+0KDQtdC20LjQvCDQstC10YHQsCA2OTxicj4yLjYg0KfRgtC10L3QuNC1IDE6INGE0LjQvdCw0LsgNjk8YnI+0JfQvdCw0YfQtdC90LjQtSDRhNC40L3QsNC70LAgNjk8YnI+Mi43INCn0YLQtdC90LjQtSAyOiDQutC70LDRgdGBINC60L7Qu9C70LXQutGG0LjQuCDQuCDQvNC90L7Qs9C+IC10aHJlYWQgNzE8YnI+0J/RgNC40LzQtdGAIDE6INC90LUgLXRocmVhZCAtc2FmZSBqYXZhLnV0aWwuYXJyYXlsaXN0IENsYXNzIDcxPGJyPtCf0YDQuNC80LXRgCAyOiDQmNGB0L/QvtC70YzQt9GD0LnRgtC1INGB0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGOIDc0INC/0L4g0YHQsdC+0YDRgyDRgdCx0L7RgNC+0LIuPGJyPtCf0YDQuNC80LXRgCAzOiBqYXZhLnV0aWwuY29uY3VycmVudC5jb3B5b253cml0ZWFycmF5bGlzdCBDbGFzcyA3NSDRgSDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjQtdC8IENvcHktb24gV3JpdGU8YnI+Mi44INCX0L3QsNC90LjRjywg0LjQt9GD0YfQtdC90L3Ri9C1INCyINGN0YLQvtC5INCz0LvQsNCy0LUgNzY8YnI+Mi45INCf0YDQsNC60YLQuNGH0LXRgdC60LjQuSDQstC+0L/RgNC+0YEgNzc8YnI+0JPQu9Cw0LLQsCAzINCe0YXRgNCw0L3Rj9C10LzRi9C5INGA0LXQttC40Lwg0L/QvtC00LLQtdGB0LrQuCZhbXA7bWRhc2g7JmFtcDtNREFTSDs8YnI+My4xINCe0YXRgNCw0L3Rj9C10LzRi9C5INGA0LXQttC40Lwg0L/QvtC00LLQtdGB0LrQuCA4Mjxicj4zLjIg0J/RgNC40LzQtdGAINC/0YDQvtCz0YDQsNC80LzRiyA4Mjxicj7Ql9Cw0L/RgNC+0YHQuNGC0Ywg0LrQu9Cw0YHRgSA4Mzxicj5SZXF1ZXN0UXVldWUgQ2xhc3MgODQ8YnI+Q2xpZW50VGhyZWFkIENsYXNzIDg1PGJyPlNlcnZlclRocmVhZCBDbGFzcyA4NTxicj7Qk9C70LDQstC90YvQuSDQutC70LDRgdGBIDg2PGJyPtCe0L/QtdGA0LDRhtC40Y8gamF2YS51dGlsLnF1ZXVlINC4IGphdmEudXRpbC5saW5rZWRsaXN0IDg3PGJyPkdldFJlcXVlc3Qg0J/QvtC00YDQvtCx0L3QvtC1INC+0LHRitGP0YHQvdC10L3QuNC1IDg3PGJyPtCT0LvQsNCy0L3QvtC1INC/0L7QtNGA0L7QsdC90L7QtSDQvtCx0YrRj9GB0L3QtdC90LjQtSA4OTxicj7QodC40L3RhdGA0L7QvdC40LfQuNGA0L7QstCw0L3QvdC+0LUg0LfQvdCw0YfQtdC90LjQtSA4OTxicj7Qn9C+0LTQvtC20LTQuNGC0LUg0Lgg0LfQsNCx0LvQvtC60LjRgNGD0LnRgtC1IDg5PGJyPjMuMyDQoNC+0LvRjCDQtNC10LHRjtGC0LAg0LIg0YDQtdC20LjQvNC1INC+0YXRgNCw0L3Rj9C10LzQvtC5INC/0L7QtNCy0LXRgdC60LggOTA8YnI+Myw0INCx0LDQu9C70LAg0YDQsNGB0YjQuNGA0LXQvdC40Y8g0LjQtNC10LggOTE8YnI+0KHQuNC90YXRgNC+0L3QuNC30LjRgNC+0LLQsNC90L3Ri9C5IDkxINGBINC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0LzQuCDRg9GB0LvQvtCy0LjRj9C80Lg8YnI+0JzQvdC+0LPQvtC60YDQsNGC0L3QsNGPINCy0LXRgNGB0LjRjywg0LXRgdC70LggOTE8YnI+0JfQsNCx0YvQuyDQuNC30LzQtdC90LjRgtGMINGB0L7RgdGC0L7Rj9C90LjQtSDQuCDQstGL0LbQuNCy0LDQvdC40LUgOTE8YnI+0J7RgtCy0LXRgtGB0YLQstC10L3QvdC+0YHRgtGMINC30LAg0L7QttC40LTQsNC90LjQtSDQuCDRg9Cy0LXQtNC+0LzQu9C10L3QuNC1L9GD0LLQtdC00L7QvNC70LXQvdC40LUgW9C60L7Qv9C40Y8pIDkxPGJyPtCg0LDQt9C70LjRh9C90YvQtSDQuNC80LXQvdCwIDkxPGJyPtCf0YDQuNC80LXRgCDQv9GA0L7Qs9GA0LDQvNC8IDkzINGBINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNC10LwgamF2YS51dGlsLmNvbmN1cnJlbnQubGlua2VkYmxvY2tibG9ja2luZ3F1ZXVlIDkzIDkzPGJyPjMuNSDQodCy0Y/Qt9Cw0L3QvdGL0Lkg0YDQtdC20LjQvCDQtNC40LfQsNC50L3QsCA5NDxicj7QntC00L3QvtC/0L7Qu9C+0YHQvdGL0Lkg0YDQtdC20LjQvCDQstGL0L/QvtC70L3QtdC90LjRjyA5NDxicj7QoNC10LbQuNC8INCx0LDQu9Cw0L3RgdC40YDQvtCy0LrQuCA5NDxicj7QoNC10LbQuNC8INC/0YDQvtC00Y7RgdC10YDQsCA5NDxicj7QkdGD0LTRg9GJ0LjQuSDRgNC10LbQuNC8IDk0PGJyPjMuNiDQl9C90LDQvdC40Y8sINC40LfRg9GH0LXQvdC90YvQtSDQsiDRjdGC0L7QuSDQs9C70LDQstC1IDk1PGJyPjMuNyDQktC+0L/RgNC+0YEg0L4g0YPQv9GA0LDQttC90LXQvdC40LggOTU8YnI+0JPQu9Cw0LLQsCA0INCg0LXQttC40Lwg0LHQsNC70LDQvdGB0LjRgNC+0LLQutC4JmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj40LjEg0KDQtdC20LjQvCDQsdCw0LvQsNC90YHQuNGA0L7QstC60LggMTAwPGJyPjQuMiDQn9GA0LjQvNC10YAg0L/RgNC+0LPRgNCw0LzQvNGLIDEwMDxicj7QmtC70LDRgdGBINC00LDQvdC90YvRhSAxMDA8YnI+U2F2ZXJ0aHJlYWQgQ2xhc3MgMTAyPGJyPkNoYW5nZXJUaHJlYWQgQ2xhc3MgMTAyPGJyPtCT0LvQsNCy0L3Ri9C5INC60LvQsNGB0YEgMTAzPGJyPjQuMyDQoNC+0LvRjCDQtNC10LHRjtGC0LAg0LIg0YDQtdC20LjQvNC1INCx0LDQsdC10L3QuNGPIDEwNTxicj40LDQg0L/Rg9C90LrRgtCwINGA0LDRgdGI0LjRgNC10L3QuNGPINC40LTQtdC5IDEwNjxicj7QmtC+0LPQtNCwINC40YHQv9C+0LvRjNC30L7QstCw0YLRjCAo0YHQuNGC0YPQsNGG0LjRjyDQsiDRgNC10LbQuNC80LUg0LHQsNC70LDQvdGB0LjRgNC+0LLQutC4KSAxMDYgMTA2PGJyPlBoYXJtYSBvZiBCYWxrIFJlc3VsdHMgMTA3PGJyPjQuNSDQodCy0Y/Qt9Cw0L3QvdGL0Lkg0YDQtdC20LjQvCDQtNC40LfQsNC50L3QsCAxMDc8YnI+0J7RhdGA0LDQvdGP0LXQvNGL0Lkg0YDQtdC20LjQvCDQv9C+0LTQstC10YHQutC4IDEwNzxicj7QoNC10LbQuNC8INC90LDQsdC70Y7QtNCw0YLQtdC70Y8gMTA3PGJyPjQuNiDQp9GC0LXQvdC40LUg0YDQsNGB0YjQuNGA0LXQvdC40Y86INGC0LDQudC8IC3QsNGD0YIgMTA4PGJyPtCg0LXQttC40Lwg0LHQsNC70LDQvdGB0LjRgNC+0LLQutC4INC4INC+0YXRgNCw0L3Rj9C10LzRi9C5INGA0LXQttC40Lwg0L/QvtC00LLQtdGB0LrQuCAxMDg8YnI+0JrQvtCz0LTQsCDQutC+0L3QtdGGINC+0LbQuNC00LDQvdC40Y8gMTA4Pzxicj7QntGF0YDQsNC90Y/QtdC80LDRjyDRgNC10LDQu9C40LfQsNGG0LjRjyDQstGA0LXQvNC10L3QuCAo0YEg0L/QvtC80L7RidGM0Y4g0L7QttC40LTQsNC90LjRjykgMTA5PGJyPtCSINGB0LjQvdGF0YDQvtC90LjQt9C40YDQvtCy0LDQvdC90L7QvCDRgdC40L3RhdGA0L7QvdC40LfQsNGG0LjQuCDQvdC10YIg0LLRgNC10LzQtdC90LgsINC4INC10LPQviDQvdC10LvRjNC30Y8g0L/RgNC10YDQstCw0YLRjCAxMTA8YnI+SmF2YS51dGlsLmNvbmN1cnJlbnQ8YnI+NC43INCX0L3QsNC90LjRjywg0LjQt9GD0YfQtdC90L3Ri9C1INCyINGN0YLQvtC5INCz0LvQsNCy0LUgMTExPGJyPjQuOCDQktC+0L/RgNC+0YHRiyDRg9C/0YDQsNC20L3QtdC90LjQuSAxMTI8YnI+0JPQu9Cw0LLQsCA1INCg0LXQttC40Lwg0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70Y8t0L/QvtGC0YDQtdCx0LjRgtC10LvRjCZhbXA7bWRhc2g7JmFtcDtNREFTSDs8YnI+NS4xINCg0LXQttC40LwgUHJvZHVjZXItQ29uc3VtZXIgMTE2PGJyPjUuMiDQn9GA0LjQvNC10YAg0L/RgNC+0LPRgNCw0LzQvNGLIDExNjxicj7QntGB0L3QvtCy0L3QvtC5INC60LvQsNGB0YEgMTE2PGJyPk1ha2VydGhyZWFkIENsYXNzIDExNzxicj5FYXRlclRocmVhZCBDbGFzcyAxMTg8YnI+0KLQsNCx0LvQuNGG0LAg0LrQu9Cw0YHRgdCwIDExODxicj7QmNC90YLQtdGA0L/RgNC10YLQuNGA0L7QstCw0YLRjCDQvNC10YLQvtC0IFBVVCAxMjA8YnI+0JjQvdGC0LXRgNC/0YDQtdGC0LjRgNC+0LLQsNGC0Ywg0LzQtdGC0L7QtCBUYWtlIDEyMTxicj41LjMg0KDQvtC70Ywg0L/QvtGP0LLQu9C10L3QuNGPINCyINGA0LXQttC40LzQtSAxMjIg0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70Y8t0L/QvtGC0YDQtdCx0LjRgtC10LvRjyAxMjI8YnI+NS40INCe0YHQvdC+0LLQvdGL0LUg0LzQvtC80LXQvdGC0Ysg0Y3QutGB0L/QsNC90YHQuNC+0L3QvdGL0YUg0LjQtNC10LkgMTIzPGJyPtCa0LDQvdCw0Lsg0YHQuNC80LLQvtC7ICjQv9C+0LLRgtC+0YDQvdGL0Lkg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LUpIDEyMzxicj7QoNCw0LfQstC1INCy0Ysg0L3QtSDQvNC+0LbQtdGC0LUg0L/RgNC+0LnRgtC4INC/0YDRj9C80L4gMTI0Pzxicj7Qn9GA0L7QsdC70LXQvNGLLCDQstGL0LfQstCw0L3QvdGL0LUg0L7RgdGC0LDQstGI0LjQvNGB0Y8g0L/RgNC+0YHRgtGA0LDQvdGB0YLQstC+0Lwg0L/QtdGA0YHQvtC90LDQttCwINC60LDQvdCw0LvQsCAxMjQ8YnI+0JrQsNC60L7QuSDQt9Cw0LrQsNC3INGP0LLQu9GP0LXRgtGB0Y8g0YHQuNC80LLQvtC70L7QvCDQtNCw0L3QvdGL0YU/PGJyPiAmYW1wO0xEUVVPOyZhbXA7cmRxdW87PGJyPtCn0YLQviDQsdGD0LTQtdGCINGBINC/0L7RgtGA0LXQsdC40YLQtdC70YzRgdC60LjQvCDQv9C10YDRgdC+0L3QsNC20LXQvCwg0LrQvtCz0LTQsCDQtdGB0YLRjCDRgtC+0LvRjNC60L4g0L7QtNC40L0/PGJyPjUuNSDQodCy0Y/Qt9Cw0L3QvdGL0Lkg0YDQtdC20LjQvCDQv9GA0L7QtdC60YLQuNGA0L7QstCw0L3QuNGPIDEyNjxicj7QnNC10LTQuNCw0YLQvtGAINGA0LXQttC40LwgMTI2PGJyPtCg0LXQttC40Lwg0YDQsNCx0L7Rh9C10Lkg0L/QvtGC0L7QutCwIDEyNjxicj7QmtC+0LzQsNC90LTQvdGL0Lkg0YDQtdC20LjQvCAxMjY8YnI+0KHRgtGA0LDRgtC10LPQuNGH0LXRgdC60LjQuSDRgNC10LbQuNC8IDEyNzxicj41LjYg0KfRgtC10L3QuNC1IDE6INCf0L7QvdC40LzQsNC90LjQtSDQv9GA0LXRgNCy0LDQvdC90L7Qs9C+INGN0LrRgtGA0LjRjdC70LXQutGB0LAg0LjRgdC60LvRjtGH0LXQvdC40Y8gMTI3PGJyPtCt0YLQviDQvNC+0LbQtdGCINC30LDQvdGP0YLRjCDQstGA0LXQvNGPLCDQvdC+INGN0YLQviDQvNC+0LbQvdC+INC+0YLQvNC10L3QuNGC0YwgMTI3PGJyPtCc0LXRgtC+0LQg0LTQvtCx0LDQstC70LXQvdC40Y8g0LHRgNC+0YHQutC+0LIg0L/RgNC10YDQstCw0L3QvdC+0Lkg0Y3QutGB0L/RgNC10YHRgdC40LggMTI3PGJyPtCc0LXRgtC+0LQg0YHQvdCwINC4INC80LXRgtC+0LQg0L/RgNC10YDRi9Cy0LDQvdC40Y8gMTI4PGJyPtCc0LXRgtC+0LQg0L7QttC40LTQsNC90LjRjyDQuCDQvNC10YLQvtC0INC/0YDQtdGA0YvQstCw0L3QuNGPIDEyODxicj7QnNC10YLQvtC0INGB0L7QtdC00LjQvdC10L3QuNGPINC4INC80LXRgtC+0LQg0L/RgNC10YDRi9Cy0LDQvdC40Y8gMTI5PGJyPtCc0LXRgtC+0LQg0L/RgNC10YDRi9Cy0LDQvdC40Y8g0L/RgNC+0YHRgtC+INC40LfQvNC10L3Rj9C10YIg0L/RgNC10YDQstCw0L3QvdC+0LUg0YHQvtGB0YLQvtGP0L3QuNC1IDEyOTxicj7Rj9Cy0LvRj9C10YLRgdGPINCx0LXRgdC/0YDQtdC/0Y/RgtGB0YLQstC10L3QvdGL0Lwg0LzQtdGC0L7QtNC+0LwmYW1wO21kYXNoOyZhbXA7TURBU0g7PGJyPlRocmVhZC4g0JzQtdGC0L7QtCZhbXA7bWRhc2g7JmFtcDtNREFTSDs8YnI+0J3QtSDQuNGB0L/QvtC70YzQt9GD0LnRgtC1INC80LXRgtC+0LQg0L7RgdGC0LDQvdC+0LLQutC4INC60LvQsNGB0YHQsCDQv9C+0YLQvtC60LAgMTMwPGJyPjUuNyDQp9GC0LXQvdC40LUgMjogamF2YS51dGlsLmNvbmN1cnJlbnQgQmFnIGFuZCBQcm9kdWNlci1Db25zdW1lINCg0LXQttC40LwgMTMxPGJyPtCe0YfQtdGA0LXQtNGMIDEzMSDQsiBKYXZhLnV0aWwuY29uY3VycmVudCBCYWcgMTMxPGJyPtCf0YDQuNC80LXRgCBqYXZhLnV0aWwuY3VycmVudC5hcnJheWJsb2NraW5ncXVldWUgMTMyPGJyPtCY0YHQv9C+0LvRjNC30YPQudGC0LUgamF2YS51dGlsLmNvbmN1cnJlbnQuZXhjaGFuZ2VyIENsYXNzIENsYXNzIEJ1ZmZlciAxMzM8YnI+NS44INCX0L3QsNC90LjRjywg0LjQt9GD0YfQtdC90L3Ri9C1INCyINGN0YLQvtC5INCz0LvQsNCy0LUgMTM2PGJyPjUuOSDQktC+0L/RgNC+0YEg0L4g0YPQv9GA0LDQttC90LXQvdC40LggMTM3PGJyPtCT0LvQsNCy0LAgNiDQoNC10LbQuNC8INCx0LvQvtC60LjRgNC+0LLQutC4INGH0YLQtdC90LjRjy3Qt9Cw0L/QuNGB0LgmYW1wO21kYXNoOyZhbXA7TURBU0g7PGJyPjYuMSDQoNC10LbQuNC8INCx0LvQvtC60LjRgNC+0LLQutC4INGH0YLQtdC90LjRjyDQt9Cw0L/QuNGB0LggMTQyPGJyPjYuMiDQn9GA0LjQvNC10YAg0L/RgNC+0LPRgNCw0LzQvNGLIDE0Mjxicj7Qk9C70LDQstC90YvQuSDQutC70LDRgdGBIDE0Mzxicj7QmtC70LDRgdGBINC00LDQvdC90YvRhSAxNDM8YnI+0J/QuNGB0LDRgtC10LvRjNGB0LrQuNC5INC60LvQsNGB0YEgMTQ2PGJyPlJlYWRydGhyZWFkIENsYXNzIDE0Njxicj5SZWFkV3JpdGVsb2NrINC60LvQsNGB0YEgMTQ3PGJyPtCS0YvQv9C+0LvQvdC40YLRjCDQtdCz0L4sINGH0YLQvtCx0Ysg0YPQstC40LTQtdGC0YwgMTQ5PGJyPtCf0L7QtNGC0LLQtdGA0LbQtNC10L3QuNC1INGD0YHQu9C+0LLQuNC5INC+0L/QtdC60YPQvdCwIDE1MDxicj42LjMg0KDQvtC70Ywg0LTQtdCx0Y7RgtCwINCyINGA0LXQttC40LzQtSDQsdC70L7QutC40YDQvtCy0LrQuCDRh9GC0LXQvdC40Y8t0LfQsNC/0LjRgdC4IDE1MTxicj42LDQg0L/Rg9C90LrRgtCwINGA0LDRgdGI0LjRgNC10L3QuNGPINC40LTQtdC4IDE1Mzxicj7QstC+0YHQv9C+0LvRjNC30L7QstCw0YLRjNGB0Y8mYW1wO2xkcXVvOyDRh9C40YLQsNGC0YwmYW1wO3JkcXVvOzxicj7Qn9C+0LTRhdC+0LTQuNGCINC00LvRjyDRh9GC0LXQvdC40Y8gMTUzPGJyPtCf0L7QtNGF0L7QtNC40YIg0LTQu9GPINGH0LDRgdGC0L7RgtGLINGH0YLQtdC90LjRjywg0YfQtdC8INGH0LDRgdGC0L7RgtCwINC90LDQv9C40YHQsNC90LjRjyAxNTMgMTUzPGJyPtCX0L3QsNGH0LXQvdC40LUg0LHQu9C+0LrQuNGA0L7QstC60LggMTUzPGJyPjYuNSDQodCy0Y/Qt9Cw0L3QvdGL0Lkg0YDQtdC20LjQvCDQv9GA0L7QtdC60YLQuNGA0L7QstCw0L3QuNGPIDE1NDxicj7QndC10L7QsdGL0YfQvdGL0Lkg0YDQtdC20LjQvCAxNTQ8YnI+0J7QtNC90L7Qv9C+0LvQvtGB0L3Ri9C5INGA0LXQttC40Lwg0LLRi9C/0L7Qu9C90LXQvdC40Y8gMTU0PGJyPtCe0YXRgNCw0L3Rj9C10LzRi9C5INGA0LXQttC40Lwg0L/QvtC00LLQtdGB0LrQuCAxNTQ8YnI+0JTQvi/Qv9C+0YHQu9C1INGA0LXQttC40LzQsCAxNTQ8YnI+0KHRgtGA0LDRgtC10LPQuNGA0L7QstCw0L3QvdGL0Lkg0YDQtdC20LjQvCDQsdC70L7QutC40YDQvtCy0LrQuCAxNTQ8YnI+Ni42INCn0YLQtdC90LjQtTogamF2YS51dGlsLmNvbmN1cnJlbnQubG9ja3MgQmFnINC4INGA0LXQttC40Lwg0LHQu9C+0LrQuNGA0L7QstC60Lgg0YfRgtC10L3QuNGPLdC30LDQv9C40YHQutC4IDE1NDxicj5qYXZhLnV0aWwuY29uY3VycmVudC5sb2NrcyDQn9Cw0LrQtdGCIDE1NDxicj7Qn9GA0LjQvNC10YAg0L/RgNC+0LPRgNCw0LzQvNGLINC00LvRjyDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjyBqYXZhLnV0aWwuY29uY3VycmVudC5sb2NrcyAxNTU8YnI+Ni43INCX0L3QsNC90LjRjywg0LjQt9GD0YfQtdC90L3Ri9C1INCyINGN0YLQvtC5INCz0LvQsNCy0LUgMTU2PGJyPjYuOCDQktC+0L/RgNC+0YEg0L4g0YPQv9GA0LDQttC90LXQvdC40LggMTU3PGJyPtCT0LvQsNCy0LAgNyDQoNC10LbQuNC8INC/0L7RgtC+0LrQsCDQvdCwINC/0L7Qu9GD0LwuJmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj43LjEuPGJyPjcuMiDQn9GA0LjQvNC10YAg0L/RgNC+0LPRgNCw0LzQvNGLIDE2NDxicj7Qk9C70LDQstC90YvQuSDQutC70LDRgdGBIDE2NDxicj7QpdC+0YHRgiDQutC70LDRgdGBIDE2NTxicj7Qn9C+0LzQvtGJ0L3Ri9C5INC60LvQsNGB0YEgMTY2PGJyPjcuMyDQoNC+0LvRjCDQtNC10LHRjtGC0LAg0LIg0YDQtdC20LjQvNC1IFRocmVhZC1QZXItTWVzc2FnZSAxNjg8YnI+Nyw0INC+0YfQutCwINC40LTQtdC5INGA0LDRgdGI0LjRgNC10L3QuNGPIDE2OTxicj7Qo9C70YPRh9GI0LjRgtGMINC+0YLQstC10YIsINGB0L7QutGA0LDRgtC40YLRjCDQstGA0LXQvNGPINC30LDQtNC10YDQttC60LggMTY5PGJyPtCf0YDQuNC80LXQvdC40LzQviDQuiDQvtC/0LXRgNCw0YbQuNC+0L3QvdC+0LzRgyDQt9Cw0LrQsNC30YMg0LHQtdC3INGC0YDQtdCx0L7QstCw0L3QuNC5IDE2OTxicj7QrdGC0L4g0L/QvtC00YXQvtC00LjRgiDQtNC70Y8gMTY5LCDQutC+0LPQtNCwINC10LPQviDQvdC1INC90YPQttC90L4g0LLQvtC30LLRgNCw0YnQsNGC0YwuPGJyPtCf0L7QtNCw0YLRjCDQt9Cw0Y/QstC60YMg0L3QsCDRgdC10YDQstC10YAgMTY5PGJyPtCS0YvQt9C+0LIg0LzQtdGC0L7QtCArINC30LDQv9GD0YHQuiDQv9C+0YLQvtC60LAmYW1wO9Cg0LDRgNGAOzxicj43LjUg0KHQstGP0LfQsNC90L3Ri9C5INGA0LXQttC40Lwg0LTQuNC30LDQudC90LAgMTcwPGJyPtCR0YPQtNGD0YnQuNC5INGA0LXQttC40LwgMTcwPGJyPtCg0LDQsdC+0YfQuNC5INGA0LXQttC40Lwg0L/QvtGC0L7QutCwIDE3MDxicj43LjYg0KfRgtC10L3QuNC1IDE6INC/0YDQvtGG0LXRgdGBINC4INC90LjRgtGMIDE3MTxicj43Ljcg0KfRgtC10L3QuNC1IDI6IGphdmEudXRpbC5jb25jdXJyZW50INGB0YPQvNC60LAg0Lgg0YDQtdC20LjQvCDQv9C+0YLQvtC60LAg0LIgTWVzc2FnZSAxNzE8YnI+SmF2YS5sYW5nLlRocmVhZCBDbGFzcyAxNzE8YnI+SmF2YS5sYW5nLlJ1bm5hYmxlIEludGVyZmFjZSAxNzI8YnI+amF2YS51dGlsLmNvbmN1cnJlbnQudGhyZWFkZmFjdG9yeSDQuNC90YLQtdGA0YTQtdC50YEgMTczPGJyPkphdmEudXRpbC5jb25jdXJyZW50LmV4ZWN1dG9ycywg0L/QvtC70YPRh9C10L3QvdGL0LUg0YEg0L/QvtC80L7RidGM0Y4gVGhyZWFkRmFjdG9yeSAxNzQ8YnI+amF2YS51dGlsLmNvbmN1cnJlbnQuZXhlY3V0b3IgaW50ZXJmYWNlIDE3NTxicj5qYXZhLnV0aWwuY29uY3VycmVudC5leGVjdXRvcnNlcnZpY2Ug0LjQvdGC0LXRgNGE0LXQudGBIDE3Njxicj5qYXZhLnV0aWwuY29uY3VycmVudC5zY2hlZGV4ZWN1dG9yc2VydmljZSDQutC70LDRgdGBIDE3Nzxicj7QoNC10LfRjtC80LUgMTc4PGJyPjcuOCDQl9C90LDQvdC40Y8sINC40LfRg9GH0LXQvdC90YvQtSDQsiDRjdGC0L7QuSDQs9C70LDQstC1IDE4MDxicj43Ljkg0JLQvtC/0YDQvtGBINC+INGD0L/RgNCw0LbQvdC10L3QuNC4IDE4MDxicj7Qk9C70LDQstCwIDgg0KDQtdC20LjQvCDRgNCw0LHQvtGH0LXQuSDQv9C+0YLQvtC60LAmYW1wO21kYXNoOyZhbXA7TURBU0g7PGJyPjguMSDQoNC10LbQuNC8INGA0LDQsdC+0YfQtdC5INC/0L7RgtC+0LrQsCAxODg8YnI+OC4yINCf0YDQuNC80LXRgCDQv9GA0L7Qs9GA0LDQvNC80YsgMTg4PGJyPtCT0LvQsNCy0L3Ri9C5INC60LvQsNGB0YEgMTg5PGJyPkNsaWVudFRocmVhZCBDbGFzcyAxOTA8YnI+0JfQsNC/0YDQvtGB0LjRgtGMINC60LvQsNGB0YEgMTkwPGJyPtCa0LvQsNGB0YEg0LrQsNC90LDQu9CwIDE5MTxicj5Xb3JrcnRocmVhZCBDbGFzcyAxOTI8YnI+OC4zINCg0L7Qu9GMINC00LXQsdGO0YLQsCDQsiDRgNC10LbQuNC80LUgVGhlIFdvcmtlciBUaHJlYWQgMTkzPGJyPjgsNCDQvtGH0LrQsCDQuNC00LXQuSDRgNCw0YHRiNC40YDQtdC90LjRjyAxOTU8YnI+0KPQu9GD0YfRiNC10L3QuNC1INC/0YDQvtC/0YPRgdC60L3QvtC5INGB0L/QvtGB0L7QsdC90L7RgdGC0LggMTk1PGJyPtCa0L7QvdGC0YDQvtC70Ywg0LzQvtGJ0L3QvtGB0YLQuCAxOTU8YnI+0JLRi9C30L7QstCw0YLRjCDQuCDQstGL0L/QvtC70L3Rj9GC0Ywg0YDQsNC30LTQtdC70LXQvdC40LUgMTk2PGJyPtCX0L3QsNGH0LXQvdC40LUg0LfQsNC/0YPRgdC60LDQtdC80L7Qs9C+INC40L3RgtC10YDRhNC10LnRgdCwIDE5Nzxicj7Qn9C+0LvQuNC80L7RgNGE0L3Ri9C5INC30LDQv9GA0L7RgSDRgdC40LzQstC+0LsgMTk4PGJyPtCg0L7Qu9GMINGA0LDQsdC+0YLQvdC40LrQsCDQsiDQvtC00LjQvdC+0YfQutGDIDE5OTxicj44LjUg0KHQstGP0LfQsNC90L3Ri9C5INGA0LXQttC40Lwg0LTQuNC30LDQudC90LAgMTk5PGJyPtCf0YDQvtC00Y7RgdC10YAt0LzQvtC90YHQtdC70YzQvdGL0Lkg0YDQtdC20LjQvCAxOTk8YnI+0KDQtdC20LjQvCBUaHJlYWQtUGVyLU1lc3NhZ2UgMTk5PGJyPtCa0L7QvNCw0L3QtNC90YvQuSDRgNC10LbQuNC8IDE5OTxicj7QkdGD0LTRg9GJ0LjQuSDRgNC10LbQuNC8IDE5OTxicj7QoNC10LbQuNC8INC/0LXRgNC10LzQtdGJ0LXQvdC40Y8gMTk5PGJyPtCh0L/QtdGG0LjRhNC40YfQvdGL0Lkg0LTQu9GPINC/0L7RgtC+0LrQsCDRgNC10LbQuNC8INGF0YDQsNC90LXQvdC40Y8gMjAwPGJyPkFjdGl2ZSBPamJlY3QgTW9kZSAyMDA8YnI+OC42INCn0YLQtdC90LjQtSAxOiDQn9C+0YLQvtC6INGA0LDRgdC/0YDQtdC00LXQu9C10L3QuNGPINGB0L7QsdGL0YLQuNC5IFN3aW5nIDIwMDxicj7Qp9GC0L4g0YLQsNC60L7QtSDQv9C+0YLQvtC60LAg0YDQsNGB0L/RgNC10LTQtdC70LXQvdC40Y8g0YHQvtCx0YvRgtC40LkgMjAwPGJyPtCV0YHRgtGMINGC0L7Qu9GM0LrQviDQvtC00LjQvSDQv9C+0YLQvtC6INGA0LDRgdC/0YDQtdC00LXQu9C10L3QuNGPINGB0L7QsdGL0YLQuNC5Ljxicj7QodGC0L7QuNC80L7RgdGC0Ywg0LTQuNGB0YLRgNC40LHRg9GG0LjQuCDRgdC+0LHRi9GC0LjQuSBTYWxsIE1vbml0b3IgMjAxPGJyPtCX0L3QsNGH0LXQvdC40LUg0LfQsNGA0LXQs9C40YHRgtGA0LjRgNC+0LLQsNC90L3QvtCz0L4g0YHQu9GD0YjQsNGC0LXQu9GPIDIwMTxicj7Qn9C+0YLQvtC6INGA0LDRgdC/0YDQtdC00LXQu9C10L3QuNGPINGB0L7QsdGL0YLQuNC5INGC0LDQutC20LUg0L7RgtCy0LXRh9Cw0LXRgiDQt9CwINC40L3RgtC10YDRhNC10LnRgSDRgNC40YHQvtCy0LDQvdC40Y8gMjAxPGJyPmphdmF4LnN3aW5nLnN3aW5ndWl0eXMgQ2xhc3MgMjAyPGJyPtCe0LTQuNC90L7Rh9C90L7QtSDQv9GA0LDQstC40LvQviAyMDMgU3dpbmc8YnI+OC43INCn0YLQtdC90LjQtSAyOiBqYXZhLnV0aWwuY29uY3VycmVudCDQv9Cw0LrQtdGCINC4INGA0LXQttC40Lwg0L/QvtGC0L7QutCwINGA0LDQsdC+0YLQvdC40LrQsCAyMDQ8YnI+VGhyZWFkUG9vbGV4ZWN1dG9yIENsYXNzIDIwNDxicj7QodC+0LfQtNCw0YLRjCDQsdCw0YHRgdC10LnQvSBUaHJlYWQgMjA1INGH0LXRgNC10LcgamF2YS51dGlsLmNvbmN1cnJlbnQg0YHRg9C80LrQuCAyMDU8YnI+OC44INCX0L3QsNC90LjRjywg0LjQt9GD0YfQtdC90L3Ri9C1INCyINGN0YLQvtC5INCz0LvQsNCy0LUgMjA3PGJyPjguOSDQktC+0L/RgNC+0YEg0L4g0YPQv9GA0LDQttC90LXQvdC40LggMjA4PGJyPtCT0LvQsNCy0LAgOSDQkdGD0LTRg9GJ0LjQuSDRgNC10LbQuNC8JmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj45LjEg0LHRg9C00YPRidC40Lkg0YDQtdC20LjQvCAyMTI8YnI+OS4yINCf0YDQuNC80LXRgCDQv9GA0L7Qs9GA0LDQvNC80YsgMjEyPGJyPtCT0LvQsNCy0L3Ri9C5INC60LvQsNGB0YEgMjE0PGJyPtCa0LvQsNGB0YEg0YXQvtGB0YLQsCAyMTQ8YnI+0JjQvdGC0LXRgNGE0LXQudGBINC00LDQvdC90YvRhSAyMTU8YnI+RnV0dXJlZGF0YSBDbGFzcyAyMTY8YnI+0JrQu9Cw0YHRgSBSZWFsZGF0YSAyMTc8YnI+OS4zINCg0L7Qu9GMINC00LXQsdGO0YLQsCDQsiDQsdGD0LTRg9GJ0LXQvCDRgNC10LbQuNC80LUgMjE4PGJyPjksNCDQsdCw0LvQu9C+0LIg0LjQtNC10Lgg0YDQsNGB0YjQuNGA0LXQvdC40Y8gMjE5PGJyPtCR0YPQtNC10YIg0LvQuCDRg9Cy0LXQu9C40YfQtdC90LjQtSDQv9GA0L7Qv9GD0YHQutC90L7QuSDRgdC/0L7RgdC+0LHQvdC+0YHRgtC4Pzxicj7QkNGB0LjQvdGF0YDQvtC90L3Ri9C5INC80LXRgtC+0LQg0LLRi9C30L7QsiZhbXA7TERRVU87JmFtcDtyZHF1bzsgMjIwPGJyPiAmYW1wO2xkcXVvOyZhbXA7cmRxdW8mYW1wO2xkcXVvOyZhbXA7cmRxdW87PGJyPtCy0LDRgNC40LDQvdGCJmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj7QstCw0YDQuNCw0L3RgiZhbXA7bWRhc2g7JmFtcDtNREFTSDs8YnI+0JrRgtC+INCx0YPQtNC10YIg0LfQsNCx0L7RgtC40YLRjNGB0Y8g0L4g0LzQvdC+0LPQvtC/0L7RgtC+0LrQtT8mYW1wO0xEUVVPOyZhbXA7cmRxdW87IDIyMTxicj7QktC+0LfQstGA0LDRgiDQuCDQsdGD0LTRg9GJ0LjQuSDRgNC10LbQuNC8IDIyMTxicj45LjUg0KHQstGP0LfQsNC90L3Ri9C5INGA0LXQttC40Lwg0L/RgNC+0LXQutGC0LjRgNC+0LLQsNC90LjRjyAyMjI8YnI+0KDQtdC20LjQvCDQv9C+0YLQvtC60LAg0LfQsCBNZXNzYWdlIDIyMjxicj7QoNC10LbQuNC8INGB0YLRgNC+0LjRgtC10LvRjyAyMjI8YnI+0J/RgNC+0LrRgdC4IC3RgNC10LbQuNC8IDIyMjxicj7QntGF0YDQsNC90Y/QtdC80YvQuSDRgNC10LbQuNC8INC/0L7QtNCy0LXRgdC60LggMjIyPGJyPtCg0LXQttC40Lwg0LHQsNC70LDQvdGB0LjRgNC+0LLQutC4IDIyMjxicj45LjYg0KfRgtC10L3QuNC1INGA0LDRgdGI0LjRgNC10L3QuNGPOiBqYXZhLnV0aWwuY29uY3VycmVudCBQYWNrYWdlINC4IEZ1dHVyZSBNb2RlIDIyMjxicj5qYXZhLnV0aWwuY29uY3VycmVudCBQYWNrYWdlIDIyMjxicj7Qn9GA0LjQvNC10YAg0L/RgNC+0LPRgNCw0LzQvNGLINC/0YDQvtCz0YDQsNC80LzRiyAyMjMg0JjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40LUgSmF2YS5VdGlsLmNvbmN1cnJlbnQgUGFja2FnZSAyMjM8YnI+OS43INCX0L3QsNC90LjRjywg0LjQt9GD0YfQtdC90L3Ri9C1INCyINGN0YLQvtC5INCz0LvQsNCy0LUgMjI2PGJyPjksOCDQo9C/0YDQsNC20L3QtdC90LjQtSAyMjY8YnI+0JPQu9Cw0LLQsCAxMCDQlNCy0YPRhdGE0LDQt9C90YvQuSDRgNC10LbQuNC8INC30LDQstC10YDRiNC10L3QuNGPJmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj4xMC4xINCU0LLRg9GF0YTQsNC30L3Ri9C5INGA0LXQttC40Lwg0LfQsNCy0LXRgNGI0LXQvdC40Y8gMjMyPGJyPjEwLjIg0J/RgNC40LzQtdGAINC/0YDQvtCz0YDQsNC80LzRiyAyMzM8YnI+Q291bnR1cHRocmVhZCBDbGFzcyAyMzQ8YnI+0JPQu9Cw0LLQvdGL0Lkg0LrQu9Cw0YHRgSAyMzY8YnI+MTAuMyDQlNCy0YPRhdGE0LDQt9C90YvQuSDRgNC10LbQuNC8INC30LDQstC10YDRiNC10L3QuNGPIDIzNzxicj4xMCw0INCx0LDQu9C70L7QsiDQuNC00LXQuCDRgNCw0YHRiNC40YDQtdC90LjRjyAyMzg8YnI+0J3QtSDQvNC+0LPRgyDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LzQtdGC0L7QtCDQvtGB0YLQsNC90L7QstC60Lgg0LrQu9Cw0YHRgdCwINC/0L7RgtC+0LrQsCAyMzg8YnI+0J/RgNC+0YHRgtC+INC/0YDQvtCy0LXRgNGM0YLQtSDQu9C+0LPQvtGC0LjQvyDQvdC10LTQvtGB0YLQsNGC0L7Rh9C90L4gMjM5PGJyPtCf0YDQvtGB0YLQviDQv9GA0L7QstC10YDRjNGC0LUsINGH0YLQviDRgdC+0YHRgtC+0Y/QvdC40Y8g0L/RgNC10YDRi9Cy0LDQvdC40Y8g0L3QtdC00L7RgdGC0LDRgtC+0YfQvdC+IDIzOTxicj7Ql9Cw0L/RgNC+0YEg0L3QsCDRgtGA0LXQsdC+0LLQsNC90LjQtSAyMzkg0LTQviDQtNC+0LvQs9C+0YHRgNC+0YfQvdC+0Lkg0L7QsdGA0LDQsdC+0YLQutC4IDIzOTxicj7QnNC10YLQvtC0INGB0L7QtdC00LjQvdC10L3QuNGPINC4INC80LXRgtC+0LQgSVNBTElWRSAyNDA8YnI+amF2YS51dGlsLmNvbmN1cnJlbnQuZXhlY3V0b3JzZXJ2aWNlINC4INC00LLRg9GF0YTQsNC30L3Ri9C5INGA0LXQttC40Lwg0LfQsNCy0LXRgNGI0LXQvdC40Y8gMjQwPGJyPtCn0YLQvtCx0Ysg0LfQsNGF0LLQsNGC0LjRgtGMINC+0LHRidC10LUg0L/RgNC10LrRgNCw0YnQtdC90LjQtSDQv9GA0L7RhtC10LTRg9GA0YsgMjQxPGJyPtCt0LvQtdCz0LDQvdGC0L3QsNGPINC90LjRgtGMIDI0Mzxicj4xMC41INCh0LLRj9C30LDQvdC90YvQuSDRgNC10LbQuNC8INC00LjQt9Cw0LnQvdCwIDI0Mzxicj7QlNC+L9C/0L7RgdC70LUg0YDQtdC20LjQvNCwIDI0Mzxicj7QoNC10LbQuNC8INC80L3QvtCz0L7RhNCw0LfQvdC+0LPQviDQvtGC0LzQtdC90YsgMjQzPGJyPtCc0L3QvtCz0L7RhNCw0LfQvdGL0Lkg0YDQtdC20LjQvCDQt9Cw0L/Rg9GB0LrQsCAyNDQ8YnI+0KDQtdC20LjQvCDQsdCw0LvQsNC90YHQuNGA0L7QstC60LggMjQ0PGJyPjEwLjYg0KPQtNC70LjQvdC40YLQtdC70YwuPGJyPtCh0L7RgdGC0L7Rj9C90LjQtSDQv9GA0LXRgNGL0LLQsNC90LjRjyZhbXA70KDQsNGA0YA7PGJyPtCf0LXRgNC10L/Qu9C10YLQtdC90L7QtSDQsNC90L7QvNCw0LvQuNGPJmFtcDvQoNCw0YDRgDs8YnI+0J/QtdGA0LXQv9C70LXRgtC10L3QvtC1INCw0L3QvtC80LDQu9C40Y8mYW1wO9Cg0LDRgNGAOzxicj4xMC43INCn0YLQtdC90LjQtSAyOiBqYXZhLnV0aWwuY29uY3VycmVudCDQv9Cw0LrQtdGCINC4INGB0LjQvdGF0YDQvtC90LjQt9Cw0YbQuNGPINC/0L7RgtC+0LrQvtCyIDI0Njxicj5qYXZhLnV0aWwuY29uY3VycmVudC5jb3VudGRvd25sYXRjaCBDbGFzcyAyNDY8YnI+amF2YS51dGlsLmNvbmN1cnJlbnQuY3ljbGljYmFycmllciBDbGFzcyAyNDk8YnI+MTAuOCDQl9C90LDQvdC40Y8sINC40LfRg9GH0LXQvdC90YvQtSDQsiDRjdGC0L7QuSDQs9C70LDQstC1IDI1Mzxicj4xMC45INCS0L7Qv9GA0L7RgSDQviDRg9C/0YDQsNC20L3QtdC90LjQuCAyNTM8YnI+0JPQu9Cw0LLQsCAxMSDQoNC10LbQuNC8INGF0YDQsNC90LXQvdC40Y8sINGB0L/QtdGG0LjRhNC40YfQvdGL0Lkg0LTQu9GPINC/0L7RgtC+0LrQsCZhbXA7bWRhc2g7JmFtcDtNREFTSDs8YnI+MTEuMSDQoNC10LbQuNC8INGF0YDQsNC90LXQvdC40Y8sINGB0L/QtdGG0LjRhNC40YfQvdGL0Lkg0LTQu9GPINC/0L7RgtC+0LrQsCAyNjQ8YnI+MTEuMiDQviBqYXZhLmxhbmcudGhyZWFkbG9jYWwg0LrQu9Cw0YHRgSAyNjQ8YnI+amF2YS5sYW5nLnRocmVhZGxvY2FsIC0g0Y3RgtC+INC80LXRgdGC0L4g0LTQu9GPINGF0YDQsNC90LXQvdC40Y8gMjY0PGJyPmphdmEubGFuZy50aHJlYWRsb2NhbCDQuCBnZW5lcmljIDI2NTxicj4xMS4zINCf0YDQuNC80LXRgCDQn9GA0L7Qs9GA0LDQvNC80YsgMTog0J/RgNC40LzQtdGAINC90LUg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8g0YDQtdC20LjQvNCwINGF0YDQsNC90LXQvdC40Y8g0YHQv9C10YbQuNGE0LjRh9C90L7Qs9C+INC00LvRjyDQv9C+0YLQvtC60LAgMjY1PGJyPkxvZyBDbGFzcyAyNjY8YnI+0JPQu9Cw0LLQvdGL0Lkg0LrQu9Cw0YHRgSAyNjY8YnI+MTEuNCDQn9GA0LjQvNC10YAg0J/RgNC+0LPRgNCw0LzQvNGLIDI6INCf0YDQuNC80LXRgCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjyDRgNC10LbQuNC80LAg0YXRgNCw0L3QtdC90LjRjyDRgdC/0LXRhtC40YTQuNGH0L3QvtCz0L4g0LTQu9GPINC/0L7RgtC+0LrQsCAyNjc8YnI+0JrQu9Cw0YHRgSBUU0xPRyDRg9C90LjQutCw0LvQtdC9INC00LvRjyDQv9C+0YLQvtC60LAgMjY4PGJyPkxvZyBDbGFzcyAyNjk8YnI+Q2xpZW50VGhyZWFkIENsYXNzIDI3MDxicj7Qk9C70LDQstC90YvQuSDQutC70LDRgdGBIDI3MTxicj4xMS41Ljxicj4xMSw2INCx0LDQu9C70L7QsiDQuNC00LXQuCDRgNCw0YHRiNC40YDQtdC90LjRjyAyNzQ8YnI+0JzQtdGB0YLQvdGL0LUg0L/QtdGA0LXQvNC10L3QvdGL0LUg0LggamF2YS5sYW5nLnRocmVhZGxvY2FsINC60LvQsNGB0YEgMjc0PGJyPtCh0L7RhdGA0LDQvdC40YLQtSDQvNC10YHRgtC+0L/QvtC70L7QttC10L3QuNC1INGD0L3QuNC60LDQu9GM0L3QvtC5INC40L3RhNC+0YDQvNCw0YbQuNC4INC/0L7RgtC+0LrQsCAyNzU8YnI+0J3QtSDQsdC10YHQv9C+0LrQvtC50YLQtdGB0Ywg0L4g0LTRgNGD0LPQvtC8INC00L7RgdGC0YPQv9C1INC6INC/0L7RgtC+0LrQtSAyNzU8YnI+0KPQstC10LvQuNGH0LXQvdC40LUg0L/RgNC+0L/Rg9GB0LrQvdC+0Lkg0YHQv9C+0YHQvtCx0L3QvtGB0YLQuCDQvtGH0LXQvdGMINCx0L7Qu9GM0YjQsNGPINC/0YDQvtGG0LXQtNGD0YDQsCDQt9Cw0LLQuNGB0LjRgiDQvtGCINC80LXRgtC+0LTQsCDRgNC10LDQu9C40LfQsNGG0LjQuCAyNzY8YnI+0J7Qv9Cw0YHQvdC+0YHRgtGMINC60L7QvdGC0LXQutGB0YLQsCAyNzY8YnI+MTEuNyDQodCy0Y/Qt9Cw0L3QvdGL0Lkg0YDQtdC20LjQvCDQv9GA0L7QtdC60YLQuNGA0L7QstCw0L3QuNGPIDI3Nzxicj7QodC40L3Qs9C70YLQvtC9INGA0LXQttC40LwgMjc3PGJyPtCg0LXQttC40Lwg0YDQsNCx0L7Rh9C10Lkg0L/QvtGC0L7QutCwIDI3Nzxicj7QoNC10LbQuNC8INCy0YvQv9C+0LvQvdC10L3QuNGPINGBINC+0LTQvdC40Lwg0YDQtdC30YzQsdC+0LwgMjc3PGJyPtCf0YDQvtC60YHQuCAt0YDQtdC20LjQvCAyNzc8YnI+MTEuOCDQlNCw0LvRjNC90LXQudGI0LXQtSDRh9GC0LXQvdC40LU6INC+0YHQvdC+0LLQsNC90L3Ri9C1INC90LAg0YDQvtC70LUg0Lgg0L7RgdC90L7QstCw0L3QvdGL0LUg0L3QsCDQt9Cw0LTQsNGH0LDRhSAyNzc8YnI+0KLQtdC80LAg0Lgg0L7QsdGK0LXQutGCIDI3Nzxicj7QoNCw0YHRgdC80L7RgtGA0LXQvdC40LUg0L3QsCDQvtGB0L3QvtCy0LUg0YDQvtC70LggMjc4PGJyPtCd0LAg0L7RgdC90L7QstC1INC30LDQtNCw0YfQuCDRgNCw0YHRgdC80L7RgtGA0LXQvdC40LUgMjc4PGJyPtCk0LDQutGC0LjRh9C10YHQutC4LCDQtNCy0LAg0LzQtdGC0L7QtNCwINC40L3RgtC10LPRgNC40YDQvtCy0LDQvdGLIDI3OSDQstC80LXRgdGC0LU8YnI+MTEuOSDQl9C90LDQvdC40Y8sINC40LfRg9GH0LXQvdC90YvQtSDQsiDRjdGC0L7QuSDQs9C70LDQstC1IDI3OTxicj4xMS4xMCDQo9C/0YDQsNC20L3QtdC90LjQtSDQktC+0L/RgNC+0YEgMjgwPGJyPtCT0LvQsNCy0LAgMTIg0KDQtdC20LjQvCDQsNC60YLQuNCy0L3QvtCz0L4g0L7QsdGK0LXQutGC0LAmYW1wO21kYXNoOyZhbXA7TURBU0g7PGJyPjEyLjEg0KDQtdC20LjQvCDQsNC60YLQuNCy0L3QvtCz0L4g0L7QsdGK0LXQutGC0LAgMjg0PGJyPjEyLjIg0J/RgNC40LzQtdGAINC/0YDQvtCz0YDQsNC80LzRiyAxIDI4NDxicj7Ql9Cy0L7QvdGP0LXQvNCw0Y8g0LLQtdGH0LXRgNC40L3QutCwOiDQvtGB0L3QvtCy0L3QvtC5INC60LvQsNGB0YEgMjg3PGJyPtCS0YvQt9GL0LLQsNGO0YnQuNC5INCw0LHQvtC90LXQvdGCOiBNYWtlcmNsaWVudHRocmVhZCBDbGFzcyAyODg8YnI+0JLQq9CX0J7QktCQ0K8g0J/QkNCg0KLQmDogRElTUExBQ0VDTElWRVJUSFJFQUQg0JrQu9Cw0YHRgSAyODk8YnI+QWN0aXZlIE9iamVjdGlzdDogQWN0aXZlT2JqZWN0IEludGVyZmFjZSAyODk8YnI+QWN0aXZlIE9iamVjdGlzdDogQWN0aXZlT2JqZWN0RmFjdG9yeSBDbGFzcyAyOTA8YnI+QWN0aXZlIE9iamVjdGlzdDogUHJveHkgQ2xhc3MgMjkwPGJyPkFjdGl2ZSBUYXJnZXQ6IFNjaGVkdWxlclRocmVhZCBDbGFzcyAyOTE8YnI+QWN0aXZlIE9iamVjdGlzdDogQWN0aXZpdHlxdWV1ZSBDbGFzcyAyOTI8YnI+0JDQutGC0LjQstC90LDRjyDRhtC10LvRjDogTWV0aG9kUmVxdWVzdCBDbGFzcyAyOTM8YnI+QWN0aXZlIE9iamVjdGlzdDogTWFrZXN0cmluZ1JlcXVlc3QgQ2xhc3MgMjk0PGJyPtCQ0LrRgtC40LLQvdCw0Y8g0YbQtdC70Yw6IERpc3BsYXlTdHJpbmdSZXF1ZXN0IENsYXNzIDI5NTxicj7QkNC60YLQuNCy0L3QsNGPINGG0LXQu9GMOiDRgNC10LfRg9C70YzRgtCw0YIg0LrQu9Cw0YHRgSAyOTU8YnI+QWN0aXZlIE9iamVjdGlzdDogRnV0dXJlcmVzdWx0IENsYXNzIDI5Njxicj7QkNC60YLQuNCy0L3QsNGPINGG0LXQu9GMOiBSZWFsUmVzdWx0IENsYXNzIDI5Njxicj7QkNC60YLQuNCy0L3QsNGPINGG0LXQu9GMOiDRgdC70YPQs9CwINC60LvQsNGB0YEgMjk3PGJyPtCX0LDQv9GD0YHQuiDQv9GA0LjQvNC10YDQsCDQv9GA0L7Qs9GA0LDQvNC80YsgMSAyOTc8YnI+MTIuMyDQoNC+0LvRjCDQtNC10LHRjtGC0LAg0LIg0YDQtdC20LjQvNC1IEFjdGl2ZU9iamVjdCAyOTg8YnI+MTIsNCDQsdCw0LvQu9C+0LIg0LjQtNC10Lgg0YDQsNGB0YjQuNGA0LXQvdC40Y8gMzA0PGJyPtCn0YLQviDRgtGLINC00LXQu9Cw0LXRiNGMIDMwNDxicj7Qn9GA0Lgg0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Lgg0YDQtdC20LjQvNCwINGA0LXQttC40LzQsCDQvdC10L7QsdGF0L7QtNC40LzQviDRgNCw0YHRgdC80L7RgtGA0LXRgtGMINGA0LDQt9C80LXRgCDRh9Cw0YHRgtC40YYgMzA0PGJyPtCeINC+0LTQvdC+0LLRgNC10LzQtdC90L3QvtC8IDMwNDxicj7QnNC10YLQvtC0IDMwNTxicj7QoNC+0LvRjCDQv9C10YDRgdC+0L3QsNC20LAg0L/Qu9Cw0L3QuNGA0L7QstGJ0LjQutCwIDMwNTxicj7QktC30LDQuNC80L7QtNC10LnRgdGC0LLQuNC1INC80LXQttC00YMg0LDQutGC0LjQstC90YvQvNC4INC+0LHRitC10LrRgtCw0LzQuCAzMDY8YnI+0KPQutC70LDQtNGL0LLQsNC10YIg0LTQviDRgNCw0YHQv9GA0LXQtNC10LvQtdC90LjRjyZhbXA7bWRhc2g7JmFtcDtNREFTSDs8YnI+MTIuNSDQodCy0Y/Qt9Cw0L3QvdGL0Lkg0YDQtdC20LjQvCDQv9GA0L7QtdC60YLQuNGA0L7QstCw0L3QuNGPIDMwNjxicj7QoNC10LbQuNC8INC/0YDQvtC00Y7RgdC10YDQsCAzMDY8YnI+0JHRg9C00YPRidC40Lkg0YDQtdC20LjQvCAzMDc8YnI+0KDQtdC20LjQvCDRgNCw0LHQvtGH0LXQuSDQv9C+0YLQvtC60LAgMzA3PGJyPtCg0LXQttC40Lwg0YXRgNCw0L3QtdC90LjRjyDRgdC/0LXRhtC40YTQuNGH0LXRgdC60L7Qs9C+INC00LvRjyDQv9C+0YLQvtC60LAgMzA3PGJyPjEyLjYg0KfRgtC10L3QuNC1OiBqYXZhLnV0aWwuY29uY3VycmVudCDQv9Cw0LrQtdGCINC4INGA0LXQttC40LwgQWN0aXZlIE9iamVjdCAzMDc8YnI+0JrQu9Cw0YHRgSDQuCDQuNC90YLQtdGA0YTQtdC50YEgMzA3PGJyPtCX0LLQvtC90Y/QtdC80LDRjyDQstC10YfQtdGA0LjQvdC60LA6INC+0YHQvdC+0LLQvdC+0Lkg0LrQu9Cw0YHRgSAzMDk8YnI+0JLRi9C30YvQstCw0Y7RidC40Lkg0LDQsdC+0L3QtdC90YI6IE1ha2VyY2xpZW50dGhyZWFkIENsYXNzIDMwOTxicj7QktCr0JfQntCS0JDQryDQn9CQ0KDQotCYOiBESVNQTEFDRUNMSVZFUlRIUkVBRCBDTEFTUyAzMTA8YnI+QWN0aXZlIE9iamVjdGlzdDogQWN0aXZlT2JqZWN0IEludGVyZmFjZSAzMTE8YnI+QWN0aXZlIE9iamVjdGlzdDogQWN0aXZlT2JqZWN0RmFjdG9yeSAzMTE8YnI+0JDQutGC0LjQstC90YvQuSDQvtCx0YrQtdC60YI6IEFjdGl2ZU9iamVjdEltcGwgQ2xhc3MgMzEyPGJyPtCX0LDQv9GD0YHQuiDQv9GA0LjQvNC10YDQsCDQv9GA0L7Qs9GA0LDQvNC80YsgMiAzMTM8YnI+MTIuNyDQl9C90LDQvdC40Y8sINC40LfRg9GH0LXQvdC90YvQtSDQsiDRjdGC0L7QuSDQs9C70LDQstC1IDMxNDxicj4xMi44INCS0L7Qv9GA0L7RgSDQviDRg9C/0YDQsNC20L3QtdC90LjQuCAzMTU8YnI+0JPQu9Cw0LLQsCAxMyDQoNC10LfRjtC80LUmYW1wO21kYXNoOyZhbXA7TURBU0g7PGJyPjEzLjEg0JzQvtC00LXQu9C40YDQvtCy0LDQvdC40LUg0Y/Qt9GL0LrQsCDQvNC+0LTQtdC70LggMzIyPGJyPtCv0LfRi9C6INGA0LXQttC40LzQsCDQuCDRgNC10LbQuNC80LAgMzIyPGJyPjEzLjIg0KDQtdC20LjQvCDQstGL0L/QvtC70L3QtdC90LjRjyDRgSDQvtC00L3QuNC8INC/0L7RgtC+0LrQvtC8PGJyPiAmYW1wO21kYXNoOyZhbXA7TURBU0g7PGJyPjEzLjMg0J3QtdC40LfRgNC40LzRi9C5INGA0LXQttC40Lw8YnI+ICZhbXA7bWRhc2g7JmFtcDtNREFTSDs8YnI+MTMuNCDQntGF0YDQsNC90Y/QtdC80YvQuSDRgNC10LbQuNC8INC/0L7QtNCy0LXRgdC60Lg8YnI+ICZhbXA7bWRhc2g7JmFtcDtNREFTSDs8YnI+MTMuNSDQoNC10LbQuNC8INCx0LDQu9Cw0L3RgdC40YDQvtCy0LrQuDxicj4gJmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj4xMy42INCg0LXQttC40Lwg0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70Y8t0L/QvtGC0YDQtdCx0LjRgtC10LvRjDxicj4gJmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj4xMy43INCg0LXQttC40Lwg0LHQu9C+0LrQuNGA0L7QstC60Lgg0YfRgtC10L3QuNGPLdC30LDQv9C40YHQuDxicj4gJmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj4xMy44INCg0LXQttC40Lwg0L/QvtGC0L7QutCwINC30LAgTWVzc2FnZTxicj4gJmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj4xMy45PGJyPiAmYW1wO21kYXNoOyZhbXA7TURBU0g7PGJyPjEzLjEwINCx0YPQtNGD0YnQuNC5INGA0LXQttC40Lw8YnI+ICZhbXA7bWRhc2g7JmFtcDtNREFTSDs8YnI+MTMuMTEg0JTQstGD0YXRhNCw0LfQvdGL0Lkg0YDQtdC20LjQvCDQt9Cw0LLQtdGA0YjQtdC90LjRjzxicj4gJmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj4xMy4xMiDQoNC10LbQuNC8INGF0YDQsNC90LXQvdC40Y8sINGB0L/QtdGG0LjRhNC40YfQvdGL0Lkg0LTQu9GPINC/0L7RgtC+0LrQsDxicj4gJmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj4xMy4xMyDQoNC10LbQuNC8INCw0LrRgtC40LLQvdC+0LPQviDQvtCx0YrQtdC60YLQsDxicj4gJmFtcDttZGFzaDsmYW1wO01EQVNIOzxicj4xMy4xNCDQvdCw0L/QuNGB0LDQvdC+INC/0L7RgdC70LUgWnVpIDMzNTxicj7Qn9GA0LjQu9C+0LbQtdC90LjQtSAzMzc8YnI+0J/RgNC40LvQvtC20LXQvdC40LUgQSDQo9C/0YDQsNC20L3QtdC90LjQtSDQntGC0LLQtdGC0YsgMzM4PGJyPtCf0YDQuNC70L7QttC10L3QuNC1IEIgSmF2YSBNZW1vcnkgTW9kZWwgNDQ3PGJyPtCf0YDQuNC70L7QttC10L3QuNC1IEMg0J/RgNC40L7RgNC40YLQtdGCIEphdmEgVGhyZWFkcyA0Njc8YnI+0J/RgNC40LvQvtC20LXQvdC40LUgRCDQntGB0L3QvtCy0L3Ri9C1IEFQSSwg0YHQstGP0LfQsNC90L3Ri9C1INGBINC/0L7RgtC+0LrQsNC80LggNDY5PGJyPtCf0YDQuNC70L7QttC10L3QuNC1IEUgSmF2YS51dGlsLmNvbmN1cnJlbnQgUGFja2FnZSA0NzU8YnI+0J/QoNCY0JvQntCW0JXQndCY0JUgRiDQl9CwINCy0YvQv9C+0LvQvdC10L3QuNC10Lwg0Y3RgtCw0L/QvtCyINC+0LHRgNCw0LfRhtCwINC/0YDQvtCz0YDQsNC80LzRiyA0ODM8YnI+0J/RgNC40LvQvtC20LXQvdC40LUgRyDQodGB0YvQu9C60LggNDg1PGltZyBjbGFzcz0iZGVzY19hbmNob3IiIGlkPSJkZXNjLW1vZHVsZS0yIiBzcmM9Imh0dHBzOi8vYXNzZXRzLmFsaWNkbi5jb20va2lzc3kvMS4wLjAvYnVpbGQvaW1nbGF6eWxvYWQvc3BhY2ViYWxsLmdpZiI+PGJyPjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7Zm9udC1zaXplOiAxNS4wcHg7Zm9udC13ZWlnaHQ6IGJvbGQ7aGVpZ2h0OiAzMC4wcHg7bGluZS1oZWlnaHQ6IDMwLjBweDsiPtCS0LLQtdC00LXQvdC40LU8L2Rpdj48YnI+0K3RgtCwINC60L3QuNCz0LAg0L7QsdGK0Y/RgdC90Y/QtdGCIDEyINGI0LDQsdC70L7QvdC+0LIg0LTQuNC30LDQudC90LAsINC+0LHRi9GH0L3QviDQuNGB0L/QvtC70YzQt9GD0LXQvNGL0YUg0LIg0LzQvdC+0LPQvtGH0LjRgdC70LXQvdC90L7QuSDQuCDQvtC00L3QvtCy0YDQtdC80LXQvdC90L7QuSDQvtCx0YDQsNCx0L7RgtC60LUg0YEg0L/QvtC80L7RidGM0Y4g0LrQvtC90LrRgNC10YLQvdGL0YUg0L/RgNC+0LPRgNCw0LzQvCBKYXZhLtCh0L7QtNC10YDQttCw0L3QuNC1INCy0LrQu9GO0YfQsNC10YIg0LIg0YHQtdCx0Y8g0LHQsNC30L7QstGL0LUg0LfQvdCw0L3QuNGPINC/0L7RgtC+0LrQsCwg0L3QsNGH0LDQu9C+INC4INC30LDQstC10YDRiNC10L3QuNC1INC/0L7RgtC+0LrQvtCyLCDQstC30LDQuNC80L7QuNGB0LrQu9GO0YfQsNGO0YnQsNGPINC+0LHRgNCw0LHQvtGC0LrQsCDQuCDRgdC+0YLRgNGD0LTQvdC40YfQtdGB0YLQstC+INC80LXQttC00YMg0L/QvtGC0L7QutCw0LzQuCwg0Y3RhNGE0LXQutGC0LjQstC90L7QtSDQv9GA0LjQvNC10L3QtdC90LjQtSDQv9C+0YLQvtC60L7Qsiwg0LrQvtC70LjRh9C10YHRgtCy0L4g0YPQv9GA0LDQstC70LXQvdC40Y8g0L/QvtGC0L7QutCw0LzQuCDQuCDQvNC10YDRiyDQv9GA0LXQtNC+0YHRgtC+0YDQvtC20L3QvtGB0YLQuCDQvtC/0YLQuNC80LjQt9Cw0YbQuNC4INC/0YDQvtC40LfQstC+0LTQuNGC0LXQu9GM0L3QvtGB0YLQuC7QmtGA0L7QvNC1INGC0L7Qs9C+LCDQvdC10LrQvtGC0L7RgNGL0LUg0L7RiNC40LHQutC4LCDQutC+0YLQvtGA0YvQtSDRgdC60LvQvtC90L3RiyDQv9GA0L7QuNGB0YXQvtC00LjRgtGMINCy0L4g0LLRgNC10LzRjyDQvNC90L7Qs9C+0YfQuNGB0LvQtdC90L3QvtCz0L4g0L/RgNC+0LPRgNCw0LzQvNC40YDQvtCy0LDQvdC40Y8sINCwINGC0LDQutC20LUg0L3QsNCy0YvQutC4INGH0YLQtdC90LjRjyDQvNC90L7Qs9C+0YfQuNGB0LvQtdC90L3QvtC5INC/0YDQvtCz0YDQsNC80LzRiy7QktC+INCy0YDQtdC80Y8g0L/RgNC+0YbQtdGB0YHQsCDQvtCx0YrRj9GB0L3QtdC90LjRjyDQvdC1INGC0L7Qu9GM0LrQviDRgtC10LrRgdGCINC4INGC0LXQvtGA0LjRjyDQvtCx0YrQtdC00LjQvdGP0Y7RgiDQv9GA0LjQvNC10YAsINC90L4g0YLQsNC60LbQtSDQv9GA0LXQtNC+0YHRgtCw0LLQu9GP0Y7RgiDQv9GA0LDQutGC0LjQutGD0Y7RidC40LUg0LLQvtC/0YDQvtGB0Ysg0Lgg0L7RgtCy0LXRgtGLINC00LvRjyDRgNC10YjQtdC90LjRjyDQutC+0L3QutGA0LXRgtC90YvRhSDQv9GA0L7QsdC70LXQvCDQsiDRgNC10LbQuNC80LUsINC/0L7QvNC+0LPQsNGPINGH0LjRgtCw0YLQtdC70Y/QvCDRg9Cz0LvRg9Cx0LjRgtGMINC/0L7QvdC40LzQsNC90LjQtSDQvNC90L7Qs9C+0YfQuNGB0LvQtdC90L3QvtC5INC4INC+0LTQvdC+0LLRgNC10LzQtdC90L3QvtC5INC+0LHRgNCw0LHQvtGC0LrQuCDQuCDQvtGB0LLQvtC40YLRjCDQuNGFINC90LDQstGL0LrQuCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjyDQn9C+0LvQtdC8PGltZyBjbGFzcz0iZGVzY19hbmNob3IiIGlkPSJkZXNjLW1vZHVsZS0zIiBzcmM9Imh0dHBzOi8vYXNzZXRzLmFsaWNkbi5jb20va2lzc3kvMS4wLjAvYnVpbGQvaW1nbGF6eWxvYWQvc3BhY2ViYWxsLmdpZiI+PGJyPjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7Zm9udC1zaXplOiAxNS4wcHg7Zm9udC13ZWlnaHQ6IGJvbGQ7aGVpZ2h0OiAzMC4wcHg7bGluZS1oZWlnaHQ6IDMwLjBweDsiPtC+0LEg0LDQstGC0L7RgNC1PC9kaXY+PGJyPtCl0LjRgNC+0Y7QutC4ICjQsNCy0YLQvtGAKSDRgNC+0LTQuNC70YHRjyDQsiAxOTYzINCz0L7QtNGDLCDRgdGC0LDRgNGI0LjQuSDRj9C/0L7QvdGB0LrQuNC5INGC0LXRhdC90LjRh9C10YHQutC40Lkg0L/QuNGB0LDRgtC10LvRjCDQuCDQv9GA0L7Qs9GA0LDQvNC80LjRgdGCLiDQnNC90L7Qs9C40LUg0L/QvtC/0YPQu9GP0YDQvdGL0LUg0LLQstC+0LTQvdGL0LUg0LrQvdC40LPQuCDQsdGL0LvQuCDQvdCw0L/QuNGB0LDQvdGLINCyINC+0LHQu9Cw0YHRgtGP0YUg0Y/Qt9GL0LrQvtCyINC/0YDQvtCz0YDQsNC80LzQuNGA0L7QstCw0L3QuNGPLCDQtNC40LfQsNC50L3QtdGA0YHQutC40YUg0LzQvtC00LXQu9C10LksINC80LDRgtC10LzQsNGC0LjQutC4LCDRgtC10YXQvdC+0LvQvtCz0LjQuCDRiNC40YTRgNC+0LLQsNC90LjRjyDQuCDRgi4g0JQuINCV0LPQviDQv9GA0LXQtNGB0YLQsNCy0LjRgtC10LvRjNC90YvQtSDRgNCw0LHQvtGC0Ysg0LLQutC70Y7Rh9Cw0Y7RgiDRgdC10YDQuNGOIMKr0JzQsNGC0LXQvNCw0YLQuNGH0LXRgdC60LDRjyDQtNC10LLRg9GI0LrQsMK7LCDCq9Cc0LDRgtC10LzQsNGC0LjQutCwINC/0YDQvtCz0YDQsNC80LzQuNGB0YLQsMK7LCDCq9CT0YDQsNGE0LjRh9C10YHQutCw0Y8g0LrRgNC40L/RgtC+0LPRgNCw0YTQuNGH0LXRgdC60LDRjyDRgtC10YXQvdC+0LvQvtCz0LjRj8K7INC4INGCLiDQlC4g0K/Qv9C+0L3RgdC60LDRjyDQutC+0LzQv9Cw0L3QuNGPINC/0L7Qu9C90L7RgdGC0YzRjiDQv9GA0LjQvdCw0LTQu9C10LbQuNGCLiDQr9C9INCS0LXQvdC60YHRg9Cw0L0gKNC/0LXRgNC10LLQvtC00YfQuNC6KSDRgdGC0LXQv9C10L3RjCDQvNCw0LPQuNGB0YLRgNCwINCyINCj0L3QuNCy0LXRgNGB0LjRgtC10YLQtSDQvdCw0YPQutC4INC4INGC0LXRhdC90L7Qu9C+0LPQuNC5INCl0YPQsNC20L7QvdCz0LAg0YHQv9C10YbQuNCw0LvQuNC30LjRgNGD0LXRgtGB0Y8g0L3QsCDRgNCw0LfRgNCw0LHQvtGC0LrQtSBXZWIgMi4wINC4INC40LzQtdC10YIg0LHQvtCz0LDRgtGL0Lkg0L7Qv9GL0YIg0LIg0YDQsNC30LLQuNGC0LjQuCDRj9C/0L7QvdGB0LrQvtCz0L4g0Y/Qt9GL0LrQsC4g0JIg0L3QsNGB0YLQvtGP0YnQtdC1INCy0YDQtdC80Y8g0YDQsNCx0L7RgtCw0LXRgiDQsiBKYXBhbiBGb3VuZGVyIENvLiwgTHRkLiDQn9C10YDQtdCy0L7QtNGLINCy0LrQu9GO0YfQsNGO0YIgwqvQvNC+0LTQtdC70Ywg0LTQuNC30LDQudC90LAg0LPRgNCw0YTQuNGH0LXRgdC60L7QuSDQuNC90YTRgNCw0YHRgtGA0YPQutGC0YPRgNGLwrssIMKrQyDQodC+0LLRgNC10LzQtdC90L3QvtC1INC/0YDQvtCz0YDQsNC80LzQuNGA0L7QstCw0L3QuNC1OiDQuNC90YLQtdCz0YDQuNGA0L7QstCw0L3QvdCw0Y8g0YHRgNC10LTQsCDRgNCw0LfRgNCw0LHQvtGC0LrQuCwg0LzQvtC00LXQu9GMINC00LjQt9Cw0LnQvdCwLCDRjdC60YHRgtGA0LXQvNCw0LvRjNC90L7QtSDQv9GA0L7Qs9GA0LDQvNC80LjRgNC+0LLQsNC90LjQtSwg0YDQsNC30YDQsNCx0L7RgtC60LAg0YLQtdGB0YLQuNGA0L7QstCw0L3QuNGPLCDRgNC10YTQsNC60YLQvtGA0LjQvdCzLCDQvdC10L/RgNC10YDRi9Cy0L3QsNGPINC40L3RgtC10LPRgNCw0YbQuNGPwrsg0LggwqvQnNC+0LTQtdC70Ywg0LPRgNCw0YTQuNGH0LXRgdC60L7Qs9C+INC/0YDQvtC10LrRgtC40YDQvtCy0LDQvdC40Y/Cuy48aW1nIGNsYXNzPSJkZXNjX2FuY2hvciIgaWQ9ImRlc2MtbW9kdWxlLTQiIHNyYz0iaHR0cHM6Ly9hc3NldHMuYWxpY2RuLmNvbS9raXNzeS8xLjAuMC9idWlsZC9pbWdsYXp5bG9hZC9zcGFjZWJhbGwuZ2lmIj48YnI+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtmb250LXNpemU6IDE1LjBweDtmb250LXdlaWdodDogYm9sZDtoZWlnaHQ6IDMwLjBweDtsaW5lLWhlaWdodDogMzAuMHB4OyI+0KDQtdC60L7QvNC10L3QtNGD0LXQvNCw0Y8g0YDQtdC60L7QvNC10L3QtNCw0YbQuNGPPC9kaXY+PGJyPtCd0LXQvtCx0YXQvtC00LjQvNC+INC/0YDQvtGH0LjRgtCw0YLRjCDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0YsgSmF2YSwg0LLRi9Cx0LXRgNC40YLQtSAxMiDRiNCw0LHQu9C+0L3QvtCyINC00LjQt9Cw0LnQvdCwINC4INC70LXQs9C60L4g0LjQt9GD0YfQsNGC0Ywg0LzQvdC+0LPQvtC/0L7RgtC+0YfQvdC+0LUg0L/RgNC+0LPRgNCw0LzQvNC40YDQvtCy0LDQvdC40LU8L3A+
Продавец:人民邮电出版社官方旗舰店
Рейтинг:

Всего отзывов:0
Положительных:0
Добавить в корзину
- Информация о товаре
- Фотографии


![]() |


![]() |




![]() |


![]() |


![]() |





![]() |

Каталог
Программа 1 нить Java 1
I1.1 Java Thread 2
I1.2 Что такое нить 2
Чтобы отслеживать процесс обработки, он фактически отслеживает поток 2
Однопроизводимая программа 3
Программа мультиподбота 4
Метод запуска класса потока и метод начала 5
I1.3 Начало потока 9
Начало потока (1)——
Начало потока (2)——
I1.4 Paramounting of Thread 12
I1.5 Обработка взаимного исключения 13
Синхронизированный метод 14
Синхронизированный кодовый блок 17
Сотрудничество нитей 18
Подождите очередь——
Метод ожидания——
Уведомить метод——
Метод уведомления——
Подождите, уведомление, уведомление - это метод объекта класса 24
I1.7 Состояние миграции ниток 24
Другие темы, связанные с потоками 26
I1.9 Знания, изученные в этой главе 26
I1.10 Упражнение Вопрос 26
Критерии оценки для многопоточной программы 31
I2.1 Критерии оценки для многопоточной программы 32
безопасность——
Выживание——
Репликация——
производительность——
Резюме стандартов оценки 33
I2.2 Знание, изученные в этой главе 34
I2.3 Вопрос 34 упражнения 34
Глава 1 Режим выполнения с одним потоком——
1.1 Режим выполнения с одним резьбом 36
1.2 Пример Программы 1: Программа не использования однополосного режима выполнения 36
Главный класс 37
НЕ -ТЕРПИЧЕСКИЕ ЗАГРУСКИЕ ГОЛОВА 37
UserThread Class 38
Взгляните на это…&Hellip;
Почему есть ошибка?
1.3 Пример программы 2: Программа 41 с использованием однопоточного режима выполнения 41
Нить безопасные затворы класс 41
Синхронизированная функция 42
1.4 Режим выполнения однопоточного выполнения 43
1,5 очка идей расширения 44
Когда использовать (ситуация в режиме выполнения однопоточного выполнения) 44 44
Выживание и мертвые замки 45
Выращивание и наследство аномалии 46
Размер и производительность критической области 46
1.6 Связанный режим проектирования 47
Охраняемый режим подвески 47
Режим блокировки чтения-записи 47
Необычный режим 47
Режим хранения специфического для потока 48
1.7 Чтение 1: о синхронизированном 48
Синхронизированная грамматика и до/после режима 48
Что синхронизировано?
Какое устройство должно быть защищено?
Какая защита блокирует 50
Атомная операция 51
Работа длинного и двойного не является атом 51
1.8 Чтение 2: java.util.concurrent Пакет и подсчет Semaphore 52
Критическое количество и семафор класс 52
Используйте класс Semaphore, например, программа 52
1.9 Знания, изученные в этой главе 55
1.10 Упражнение Вопрос 55
Глава 2 неизменная режим——
2.1 Неизримый режим 62
2.2 Пример программы 62
Человек класс 62 с использованием неизменного режима 62
Главный класс 63
PrintPersonThread Class 63
2.3 Роль дебюта в неизменном режиме 65
2.4 Основные моменты экспансионных идей 66
Когда использовать (ситуация в неизменном режиме) 66 66
Рассмотрим пару изменяемого класса и неизменного класса [Performance] 66
Чтобы обеспечить неискушенную [повторную возможность] 67
Необычный режим 67, используемый в стандартной библиотеке классов 67
2.5 Связанный режим проектирования 69
Однополосный режим выполнения 69
Режим блокировки чтения-записи 69
Режим веса 69
2.6 Чтение 1: финал 69
Значение финала 69
2.7 Чтение 2: класс коллекции и много -thread 71
Пример 1: не -thread -safe java.util.arraylist Class 71
Пример 2: Используйте синхронизацию 74 по сбору сборов.
Пример 3: java.util.concurrent.copyonwritearraylist Class 75 с использованием Copy-on Write
2.8 Знания, изученные в этой главе 76
2.9 Практический вопрос 77
Глава 3 Охраняемый режим подвески——
3.1 Охраняемый режим подвески 82
3.2 Пример программы 82
Запросить класс 83
RequestQueue Class 84
ClientThread Class 85
ServerThread Class 85
Главный класс 86
Операция java.util.queue и java.util.linkedlist 87
GetRequest Подробное объяснение 87
Главное подробное объяснение 89
Синхронизированное значение 89
Подождите и заблокируйте 89
3.3 Роль дебюта в режиме охраняемой подвески 90
3,4 балла расширения идеи 91
Синхронизированный 91 с дополнительными условиями
Многократная версия, если 91
Забыл изменить состояние и выживание 91
Ответственность за ожидание и уведомление/уведомление [копия) 91
Различные имена 91
Пример программ 93 с использованием java.util.concurrent.linkedblockblockingqueue 93 93
3.5 Связанный режим дизайна 94
Однополосный режим выполнения 94
Режим балансировки 94
Режим продюсера 94
Будущий режим 94
3.6 Знания, изученные в этой главе 95
3.7 Вопрос о упражнении 95
Глава 4 Режим балансировки——
4.1 Режим балансировки 100
4.2 Пример программы 100
Класс данных 100
Saverthread Class 102
ChangerThread Class 102
Главный класс 103
4.3 Роль дебюта в режиме бабения 105
4,4 пункта расширения идей 106
Когда использовать (ситуация в режиме балансировки) 106 106
Pharma of Balk Results 107
4.5 Связанный режим дизайна 107
Охраняемый режим подвески 107
Режим наблюдателя 107
4.6 Чтение расширения: тайм -аут 108
Режим балансировки и охраняемый режим подвески 108
Когда конец ожидания 108?
Охраняемая реализация времени (с помощью ожидания) 109
В синхронизированном синхронизации нет времени, и его нельзя прервать 110
Java.util.concurrent
4.7 Знания, изученные в этой главе 111
4.8 Вопросы упражнений 112
Глава 5 Режим производителя-потребитель——
5.1 Режим Producer-Consumer 116
5.2 Пример программы 116
Основной класс 116
Makerthread Class 117
EaterThread Class 118
Таблица класса 118
Интерпретировать метод PUT 120
Интерпретировать метод Take 121
5.3 Роль появления в режиме 122 производителя-потребителя 122
5.4 Основные моменты экспансионных идей 123
Канал символ (повторный использование) 123
Разве вы не можете пройти прямо 124?
Проблемы, вызванные оставшимся пространством персонажа канала 124
Какой заказ является символом данных?
“”
Что будет с потребительским персонажем, когда есть только один?
5.5 Связанный режим проектирования 126
Медиатор режим 126
Режим рабочей потока 126
Командный режим 126
Стратегический режим 127
5.6 Чтение 1: Понимание прерванного эктриэлекса исключения 127
Это может занять время, но это можно отменить 127
Метод добавления бросков прерванной экспрессии 127
Метод сна и метод прерывания 128
Метод ожидания и метод прерывания 128
Метод соединения и метод прерывания 129
Метод прерывания просто изменяет прерванное состояние 129
является беспрепятственным методом——
Thread. Метод——
Не используйте метод остановки класса потока 130
5.7 Чтение 2: java.util.concurrent Bag and Producer-Consume Режим 131
Очередь 131 в Java.util.concurrent Bag 131
Пример java.util.current.arrayblockingqueue 132
Используйте java.util.concurrent.exchanger Class Class Buffer 133
5.8 Знания, изученные в этой главе 136
5.9 Вопрос о упражнении 137
Глава 6 Режим блокировки чтения-записи——
6.1 Режим блокировки чтения записи 142
6.2 Пример программы 142
Главный класс 143
Класс данных 143
Писательский класс 146
Readrthread Class 146
ReadWritelock класс 147
Выполнить его, чтобы увидеть 149
Подтверждение условий опекуна 150
6.3 Роль дебюта в режиме блокировки чтения-записи 151
6,4 пункта расширения идеи 153
воспользоваться“ читать”
Подходит для чтения 153
Подходит для частоты чтения, чем частота написания 153 153
Значение блокировки 153
6.5 Связанный режим проектирования 154
Необычный режим 154
Однополосный режим выполнения 154
Охраняемый режим подвески 154
До/после режима 154
Стратегированный режим блокировки 154
6.6 Чтение: java.util.concurrent.locks Bag и режим блокировки чтения-записки 154
java.util.concurrent.locks Пакет 154
Пример программы для использования java.util.concurrent.locks 155
6.7 Знания, изученные в этой главе 156
6.8 Вопрос о упражнении 157
Глава 7 Режим потока на полум.——
7.1.
7.2 Пример программы 164
Главный класс 164
Хост класс 165
Помощный класс 166
7.3 Роль дебюта в режиме Thread-Per-Message 168
7,4 очка идей расширения 169
Улучшить ответ, сократить время задержки 169
Применимо к операционному заказу без требований 169
Это подходит для 169, когда его не нужно возвращать.
Подать заявку на сервер 169
Вызов метод + запуск потока&Рарр;
7.5 Связанный режим дизайна 170
Будущий режим 170
Рабочий режим потока 170
7.6 Чтение 1: процесс и нить 171
7.7 Чтение 2: java.util.concurrent сумка и режим потока в Message 171
Java.lang.Thread Class 171
Java.lang.Runnable Interface 172
java.util.concurrent.threadfactory интерфейс 173
Java.util.concurrent.executors, полученные с помощью ThreadFactory 174
java.util.concurrent.executor interface 175
java.util.concurrent.executorservice интерфейс 176
java.util.concurrent.schedexecutorservice класс 177
Резюме 178
7.8 Знания, изученные в этой главе 180
7.9 Вопрос о упражнении 180
Глава 8 Режим рабочей потока——
8.1 Режим рабочей потока 188
8.2 Пример программы 188
Главный класс 189
ClientThread Class 190
Запросить класс 190
Класс канала 191
Workrthread Class 192
8.3 Роль дебюта в режиме The Worker Thread 193
8,4 очка идей расширения 195
Улучшение пропускной способности 195
Контроль мощности 195
Вызовать и выполнять разделение 196
Значение запускаемого интерфейса 197
Полиморфный запрос символ 198
Роль работника в одиночку 199
8.5 Связанный режим дизайна 199
Продюсер-монсельный режим 199
Режим Thread-Per-Message 199
Командный режим 199
Будущий режим 199
Режим перемещения 199
Специфичный для потока режим хранения 200
Active Ojbect Mode 200
8.6 Чтение 1: Поток распределения событий Swing 200
Что такое потока распределения событий 200
Есть только один поток распределения событий.
Стоимость дистрибуции событий Sall Monitor 201
Значение зарегистрированного слушателя 201
Поток распределения событий также отвечает за интерфейс рисования 201
javax.swing.swinguitys Class 202
Одиночное правило 203 Swing
8.7 Чтение 2: java.util.concurrent пакет и режим потока работника 204
ThreadPoolexecutor Class 204
Создать бассейн Thread 205 через java.util.concurrent сумки 205
8.8 Знания, изученные в этой главе 207
8.9 Вопрос о упражнении 208
Глава 9 Будущий режим——
9.1 будущий режим 212
9.2 Пример программы 212
Главный класс 214
Класс хоста 214
Интерфейс данных 215
Futuredata Class 216
Класс Realdata 217
9.3 Роль дебюта в будущем режиме 218
9,4 баллов идеи расширения 219
Будет ли увеличение пропускной способности?
Асинхронный метод вызов“” 220
“&rdquo“”
вариант——
вариант——
Кто будет заботиться о многопотоке?“” 221
Возврат и будущий режим 221
9.5 Связанный режим проектирования 222
Режим потока за Message 222
Режим строителя 222
Прокси -режим 222
Охраняемый режим подвески 222
Режим балансировки 222
9.6 Чтение расширения: java.util.concurrent Package и Future Mode 222
java.util.concurrent Package 222
Пример программы программы 223 Использование Java.Util.concurrent Package 223
9.7 Знания, изученные в этой главе 226
9,8 Упражнение 226
Глава 10 Двухфазный режим завершения——
10.1 Двухфазный режим завершения 232
10.2 Пример программы 233
Countupthread Class 234
Главный класс 236
10.3 Двухфазный режим завершения 237
10,4 баллов идеи расширения 238
Не могу использовать метод остановки класса потока 238
Просто проверьте логотип недостаточно 239
Просто проверьте, что состояния прерывания недостаточно 239
Запрос на требование 239 до долгосрочной обработки 239
Метод соединения и метод ISALIVE 240
java.util.concurrent.executorservice и двухфазный режим завершения 240
Чтобы захватить общее прекращение процедуры 241
Элегантная нить 243
10.5 Связанный режим дизайна 243
До/после режима 243
Режим многофазного отмены 243
Многофазный режим запуска 244
Режим балансировки 244
10.6 Удлинитель.
Состояние прерывания&Рарр;
Переплетеное аномалия&Рарр;
Переплетеное аномалия&Рарр;
10.7 Чтение 2: java.util.concurrent пакет и синхронизация потоков 246
java.util.concurrent.countdownlatch Class 246
java.util.concurrent.cyclicbarrier Class 249
10.8 Знания, изученные в этой главе 253
10.9 Вопрос о упражнении 253
Глава 11 Режим хранения, специфичный для потока——
11.1 Режим хранения, специфичный для потока 264
11.2 о java.lang.threadlocal класс 264
java.lang.threadlocal - это место для хранения 264
java.lang.threadlocal и generic 265
11.3 Пример Программы 1: Пример не использования режима хранения специфичного для потока 265
Log Class 266
Главный класс 266
11.4 Пример Программы 2: Пример использования режима хранения специфичного для потока 267
Класс TSLOG уникален для потока 268
Log Class 269
ClientThread Class 270
Главный класс 271
11.5.
11,6 баллов идеи расширения 274
Местные переменные и java.lang.threadlocal класс 274
Сохраните местоположение уникальной информации потока 275
Не беспокойтесь о другом доступе к потоке 275
Увеличение пропускной способности очень большая процедура зависит от метода реализации 276
Опасность контекста 276
11.7 Связанный режим проектирования 277
Синглтон режим 277
Режим рабочей потока 277
Режим выполнения с одним резьбом 277
Прокси -режим 277
11.8 Дальнейшее чтение: основанные на роле и основанные на задачах 277
Тема и объект 277
Рассмотрение на основе роли 278
На основе задачи рассмотрение 278
Фактически, два метода интегрированы 279 вместе
11.9 Знания, изученные в этой главе 279
11.10 Упражнение Вопрос 280
Глава 12 Режим активного объекта——
12.1 Режим активного объекта 284
12.2 Пример программы 1 284
Звоняемая вечеринка: основной класс 287
Вызывающий абонент: Makerclientthread Class 288
ВЫЗОВАЯ ПАРТИ: DISPLACECLIVERTHREAD Класс 289
Active Objectist: ActiveObject Interface 289
Active Objectist: ActiveObjectFactory Class 290
Active Objectist: Proxy Class 290
Active Target: SchedulerThread Class 291
Active Objectist: Activityqueue Class 292
Активная цель: MethodRequest Class 293
Active Objectist: MakestringRequest Class 294
Активная цель: DisplayStringRequest Class 295
Активная цель: результат класс 295
Active Objectist: Futureresult Class 296
Активная цель: RealResult Class 296
Активная цель: слуга класс 297
Запуск примера программы 1 297
12.3 Роль дебюта в режиме ActiveObject 298
12,4 баллов идеи расширения 304
Что ты делаешь 304
При использовании режима режима необходимо рассмотреть размер частиц 304
О одновременном 304
Метод 305
Роль персонажа планировщика 305
Взаимодействие между активными объектами 306
Укладывает до распределения——
12.5 Связанный режим проектирования 306
Режим продюсера 306
Будущий режим 307
Режим рабочей потока 307
Режим хранения специфического для потока 307
12.6 Чтение: java.util.concurrent пакет и режим Active Object 307
Класс и интерфейс 307
Звоняемая вечеринка: основной класс 309
Вызывающий абонент: Makerclientthread Class 309
ВЫЗОВАЯ ПАРТИ: DISPLACECLIVERTHREAD CLASS 310
Active Objectist: ActiveObject Interface 311
Active Objectist: ActiveObjectFactory 311
Активный объект: ActiveObjectImpl Class 312
Запуск примера программы 2 313
12.7 Знания, изученные в этой главе 314
12.8 Вопрос о упражнении 315
Глава 13 Резюме——
13.1 Моделирование языка модели 322
Язык режима и режима 322
13.2 Режим выполнения с одним потоком
——
13.3 Неизримый режим
——
13.4 Охраняемый режим подвески
——
13.5 Режим балансировки
——
13.6 Режим производителя-потребитель
——
13.7 Режим блокировки чтения-записи
——
13.8 Режим потока за Message
——
13.9
——
13.10 будущий режим
——
13.11 Двухфазный режим завершения
——
13.12 Режим хранения, специфичный для потока
——
13.13 Режим активного объекта
——
13.14 написано после Zui 335
Приложение 337
Приложение A Упражнение Ответы 338
Приложение B Java Memory Model 447
Приложение C Приоритет Java Threads 467
Приложение D Основные API, связанные с потоками 469
Приложение E Java.util.concurrent Package 475
ПРИЛОЖЕНИЕ F За выполнением этапов образца программы 483
Приложение G Ссылки 485

Введение
Эта книга объясняет 12 шаблонов дизайна, обычно используемых в многочисленной и одновременной обработке с помощью конкретных программ Java.Содержание включает в себя базовые знания потока, начало и завершение потоков, взаимоисключающая обработка и сотрудничество между потоками, эффективное применение потоков, количество управления потоками и меры предосторожности оптимизации производительности.Кроме того, некоторые ошибки, которые склонны происходить во время многочисленного программирования, а также навыки чтения многочисленной программы.Во время процесса объяснения не только текст и теория объединяют пример, но также предоставляют практикующие вопросы и ответы для решения конкретных проблем в режиме, помогая читателям углубить понимание многочисленной и одновременной обработки и освоить их навыки использования Полем

об авторе
Хироюки (автор) родился в 1963 году, старший японский технический писатель и программист. Многие популярные вводные книги были написаны в областях языков программирования, дизайнерских моделей, математики, технологии шифрования и т. Д. Его представительные работы включают серию «Математическая девушка», «Математика программиста», «Графическая криптографическая технология» и т. Д. Японская компания полностью принадлежит. Ян Венксуан (переводчик) степень магистра в Университете науки и технологий Хуажонга специализируется на разработке Web 2.0 и имеет богатый опыт в развитии японского языка. В настоящее время работает в Japan Founder Co., Ltd. Переводы включают «модель дизайна графической инфраструктуры», «C Современное программирование: интегрированная среда разработки, модель дизайна, экстремальное программирование, разработка тестирования, рефакторинг, непрерывная интеграция» и «Модель графического проектирования».

Рекомендуемая рекомендация
Необходимо прочитать программисты Java, выберите 12 шаблонов дизайна и легко изучать многопоточное программирование










