# Name: smd_if v0.82 # Type: Client side plugin # Generic multiple if condition tests # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjY6InNtZF9pZiI7czo2OiJhdXRob3IiO3M6MTE6IlN0ZWYg RGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nvbi5jb20v IjtzOjc6InZlcnNpb24iO3M6NDoiMC44MiI7czoxMToiZGVzY3JpcHRpb24iO3M6MzU6Ikdl bmVyaWMgbXVsdGlwbGUgaWYgY29uZGl0aW9uIHRlc3RzIjtzOjQ6ImNvZGUiO3M6MTM5ODk6 ImZ1bmN0aW9uIHNtZF9pZigkYXR0cywkdGhpbmcpIHsNCglnbG9iYWwgJHRoaXNhcnRpY2xl LCAkcHJldGV4dCwgJHRoaXNmaWxlLCAkdGhpc2xpbmssICR0aGlzaW1hZ2UsICR2YXJpYWJs ZTsNCg0KCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCSdmaWVsZCcgPT4gJycsDQoJCSdvcGVy YXRvcicgPT4gJycsDQoJCSd2YWx1ZScgPT4gJycsDQoJCSdsb2dpYycgPT4gJ2FuZCcsDQoJ CSdjYXNlX3NlbnNpdGl2ZScgPT4gMCwNCgkJJ2ZpbHRlcicgPT4gJycsDQoJCSdyZXBsYWNl JyA9PiAnJywNCgkJJ2ZpbHRlcl90eXBlJyA9PiAnYWxsJywNCgkJJ2ZpbHRlcl9vbicgPT4g J2ZpZWxkJywNCgkJJ3BhcmFtX2RlbGltJyA9PiAnLCcsDQoJCSdtb2RfZGVsaW0nID0+ICc6 JywNCgkJJ2xpc3RfZGVsaW0nID0+ICcvJywNCgkJJ2RlYnVnJyA9PiAnMCcsDQoJKSwgJGF0 dHMpKTsNCg0KCS8vIFNwZWNpYWwgZmllbGQgbmFtZXMgdGhhdCByZWZlciB0byAkcHJldGV4 dCBvciBlbHNld2hlcmUgLSBldmVyeXRoaW5nIGVsc2UgaXMgYXNzdW1lZCB0bw0KCS8vIGV4 aXN0IGluICR0aGlzYXJ0aWNsZSBzbyBjdXN0b20gZmllbGRzIGNhbiBiZSB1c2VkDQoJJGFs bFB0eHQgPSBhcnJheSgNCgkJImlkIiA9PiAnJHByZXRleHRbImlkIl0nLA0KCQkic2VjdGlv biIgPT4gJyRwcmV0ZXh0WyJzIl0nLA0KCQkiY2F0ZWdvcnkiID0+ICckcHJldGV4dFsiYyJd JywNCgkJInF1ZXJ5IiA9PiAnJHByZXRleHRbInEiXScsDQoJCSJwZyIgPT4gJyRwcmV0ZXh0 WyJwZyJdJywNCgkJIm1vbnRoIiA9PiAnJHByZXRleHRbIm1vbnRoIl0nLA0KCQkiYXV0aG9y IiA9PiAnJHByZXRleHRbImF1dGhvciJdJywNCgkJInN0YXR1cyIgPT4gJyRwcmV0ZXh0WyJz dGF0dXMiXScsDQoJCSJwYWdlIiA9PiAnJHByZXRleHRbInBhZ2UiXScsDQoJCSJuZXh0X2lk IiA9PiAnJHByZXRleHRbIm5leHRfaWQiXScsDQoJCSJuZXh0X3RpdGxlIiA9PiAnJHByZXRl eHRbIm5leHRfdGl0bGUiXScsDQoJCSJuZXh0X3V0aXRsZSIgPT4gJyRwcmV0ZXh0WyJuZXh0 X3V0aXRsZSJdJywNCgkJInByZXZfaWQiID0+ICckcHJldGV4dFsicHJldl9pZCJdJywNCgkJ InByZXZfdGl0bGUiID0+ICckcHJldGV4dFsicHJldl90aXRsZSJdJywNCgkJInByZXZfdXRp dGxlIiA9PiAnJHByZXRleHRbInByZXZfdXRpdGxlIl0nLA0KCQkicGVybWxpbmtfbW9kZSIg PT4gJyRwcmV0ZXh0WyJwZXJtbGlua19tb2RlIl0nLA0KCSk7DQoJLy8gRWFjaCBlbnRyeSBo YXMgdGhlIG9wZXJhdGlvbiB0byBiZSBldmFsKClkIGxhdGVyIGFuZCBhIGxpc3Qgb2YgZGlz YWxsb3dlZCBmaWVsZHMNCgkkYWxsT3BzID0gYXJyYXkoDQoJCSdlcScgPT4gYXJyYXkoJ2lz c2V0KFZBUk5BTUUpICYmIENBU1QgRklFTEQgPT09IENBU1QgVkFMVUUnLCAnJyksDQoJCSdu b3QnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJRUxEICE9PSBDQVNUIFZB TFVFJywgJycpLA0KCQknZ3QnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJ RUxEID4gQ0FTVCBWQUxVRScsICcnKSwNCgkJJ2dlJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFN RSkgJiYgQ0FTVCBGSUVMRCA+PSBDQVNUIFZBTFVFJywgJycpLA0KCQknbHQnID0+IGFycmF5 KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJRUxEIDwgQ0FTVCBWQUxVRScsICcnKSwNCgkJ J2xlJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgQ0FTVCBGSUVMRCA8PSBDQVNUIFZB TFVFJywgJycpLA0KCQknYmV0d2VlbicgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmICgk dHdlZW49ZXhwbG9kZSgiJy4kbGlzdF9kZWxpbS4nIiwgVkFMVUUpKSAmJiBDQVNUIEZJRUxE ID4gJHR3ZWVuWzBdICYmIENBU1QgRklFTEQgPCAkdHdlZW5bMV0nLCAnJyksDQoJCSdyYW5n ZScgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmICgkcm5nPWV4cGxvZGUoIicuJGxpc3Rf ZGVsaW0uJyIsIFZBTFVFKSkgJiYgQ0FTVCBGSUVMRCA+PSAkcm5nWzBdICYmIENBU1QgRklF TEQgPD0gJHJuZ1sxXScsICcnKSwNCgkJJ2RpdmlzaWJsZScgPT4gYXJyYXkoJ2lzc2V0KFZB Uk5BTUUpICYmIENBU1QgRklFTEQgJSBDQVNUIFZBTFVFID09PSAwJywgJycpLA0KCQknaW4n ID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBpbl9hcnJheShGSUVMRCwgZXhwbG9kZSgi Jy4kbGlzdF9kZWxpbS4nIiwgVkFMVUUpKSAhPT0gZmFsc2UnLCAnJyksDQoJCSdub3Rpbicg PT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGluX2FycmF5KEZJRUxELCBleHBsb2RlKCIn LiRsaXN0X2RlbGltLiciLCBWQUxVRSkpID09PSBmYWxzZScsICcnKSwNCgkJJ2JlZ2lucycg PT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIHN0cnBvcyhGSUVMRCwgVkFMVUUpID09PSAw JywgJycpLA0KCQknY29udGFpbnMnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBzdHJw b3MoRklFTEQsIFZBTFVFKSAhPT0gZmFsc2UnLCAnJyksDQoJCSdlbmRzJyA9PiBhcnJheSgn aXNzZXQoVkFSTkFNRSkgJiYgc3Vic3RyKEZJRUxELCBzdHJsZW4oRklFTEQpIC0gc3RybGVu KFZBTFVFKSkgPT09IFZBTFVFJywgJycpLA0KCQknZGVmaW5lZCcgPT4gYXJyYXkoJ2lzc2V0 KFZBUk5BTUUpJywgJ3BhcmVudCcpLA0KCQkndW5kZWZpbmVkJyA9PiBhcnJheSgnIWlzc2V0 KFZBUk5BTUUpJywgJ3BhcmVudCcpLA0KCQknaXNlbXB0eScgPT4gYXJyYXkoJ2lzc2V0KFZB Uk5BTUUpICYmIEZJRUxEID09ICIiJywgJycpLA0KCQknaXN1c2VkJyA9PiBhcnJheSgnaXNz ZXQoVkFSTkFNRSkgJiYgRklFTEQgIT0gIiInLCAnJyksDQoJCSdpc251bScgPT4gYXJyYXko J2lzc2V0KFZBUk5BTUUpICYmIGN0eXBlX2RpZ2l0KChzdHJpbmcpRklFTEQpJywgJycpLA0K CQknaXNhbHBoYScgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGN0eXBlX2FscGhhKChz dHJpbmcpRklFTEQpJywgJycpLA0KCQknaXNhbG51bScgPT4gYXJyYXkoJ2lzc2V0KFZBUk5B TUUpICYmIGN0eXBlX2FsbnVtKChzdHJpbmcpRklFTEQpJywgJycpLA0KCQknaXNsb3dlcicg PT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGN0eXBlX2xvd2VyKChzdHJpbmcpRklFTEQp JywgJycpLA0KCQknaXN1cHBlcicgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGN0eXBl X3VwcGVyKChzdHJpbmcpRklFTEQpJywgJycpLA0KCQknaXNwdW5jdCcgPT4gYXJyYXkoJ2lz c2V0KFZBUk5BTUUpICYmIGN0eXBlX3B1bmN0KChzdHJpbmcpRklFTEQpJywgJycpLA0KCQkn aXNzcGFjZScgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGN0eXBlX3NwYWNlKChzdHJp bmcpRklFTEQpJywgJycpLA0KCSk7DQoNCgkkbnVtZXJpY09wcyA9ICJndCwgZ2UsIGx0LCBs ZSwgZXEsIG5vdCwgZGl2aXNpYmxlLCByYW5nZSwgYmV0d2VlbiI7DQoJJGNhc2VPcHMgPSAi aXNsb3dlciwgaXN1cHBlciI7DQoJJHNwYWNlT3BzID0gImlzbnVtLCBpc2FscGhhLCBpc2Fs bnVtLCBpc2xvd2VyLCBpc3VwcGVyLCBpc3B1bmN0LCBiZWdpbnMsIGNvbnRhaW5zLCBlbmRz IjsNCgkkZmllbGRzID0gZG9fbGlzdCgkZmllbGQsICRwYXJhbV9kZWxpbSk7DQoJJG51bUZs ZHMgPSBjb3VudCgkZmllbGRzKTsNCgkkb3BzID0gZG9fbGlzdCgkb3BlcmF0b3IsICRwYXJh bV9kZWxpbSk7DQoJJG51bU9wcyA9IGNvdW50KCRvcHMpOw0KCSR2YWxzID0gZG9fbGlzdCgk dmFsdWUsICRwYXJhbV9kZWxpbSk7DQoJJG51bVZhbHMgPSBjb3VudCgkdmFscyk7DQoJJHBh cmVudENhdHMgPSAnJzsgLy8gUGxhY2Vob2xkZXIgZm9yIHRoZSBjb25jYXRlbmF0ZWQgbGlz dCBvZiBjYXRlZ29yeSBsZWFmIG5vZGVzDQoJJHJlcGxhY2VtZW50cyA9IGFycmF5KCk7DQoJ JHR5cGUgPSAoJHRoaXNmaWxlKSA/ICJmaWxlIiA6ICgoJHRoaXNsaW5rKSA/ICJsaW5rIiA6 ICgoJHRoaXNpbWFnZSkgPyAiaW1hZ2UiIDogImFydGljbGUiKSk7DQoJJG91dCA9IGFycmF5 KCk7DQoJJGl0ZXJhdGlvbnMgPSAoJG51bUZsZHMgPiAkbnVtT3BzKSA/ICRudW1GbGRzIDog JG51bU9wczsNCgkkZmlsdGVyID0gKCFlbXB0eSgkZmlsdGVyKSkgPyBkb19saXN0KCRmaWx0 ZXIsICRwYXJhbV9kZWxpbSkgOiBhcnJheSgpOw0KCSRyZXBsYWNlID0gKCFlbXB0eSgkcmVw bGFjZSkpID8gZG9fbGlzdCgkcmVwbGFjZSwgJHBhcmFtX2RlbGltKSA6IGFycmF5KCk7DQoJ JG51bUZpbHRlcnMgPSBjb3VudCgkZmlsdGVyKTsNCgkkbnVtUmVwbGFjZSA9IGNvdW50KCRy ZXBsYWNlKTsNCgkkZmlsdGVyX29uID0gKCFlbXB0eSgkZmlsdGVyX29uKSkgPyBkb19saXN0 KCRmaWx0ZXJfb24sICRwYXJhbV9kZWxpbSkgOiBhcnJheSgpOw0KCSRmaWx0ZXJfdHlwZSA9 ICghZW1wdHkoJGZpbHRlcl90eXBlKSkgPyBkb19saXN0KCRmaWx0ZXJfdHlwZSwgJHBhcmFt X2RlbGltKSA6IGFycmF5KCk7DQoJaWYgKCRkZWJ1ZyA+IDEgJiYgKCRmaWx0ZXIgfHwgJHJl cGxhY2UpKSB7DQoJCWVjaG8gIisrIEZJTFRFUlMgKysiOw0KCQlkbXAoJGZpbHRlcik7DQoJ CWRtcCgkcmVwbGFjZSk7DQoJfQ0KDQoJZm9yICgkaWR4ID0gMDsgJGlkeCA8ICRpdGVyYXRp b25zOyAkaWR4KyspIHsNCgkJJGZsZCA9ICgkaWR4IDwgJG51bUZsZHMpID8gJGZpZWxkc1sk aWR4XSA6ICRmaWVsZHNbMF07IC8vIEFsbG93IHNob3J0LWNpcmN1aXQNCgkJJGZsZFBhcnRz ID0gZXhwbG9kZSgkbW9kX2RlbGltLCAkZmxkKTsNCgkJJHZhbCA9ICgkaWR4IDwgJG51bVZh bHMpID8gJHZhbHNbJGlkeF0gOiAnJzsNCgkJJHZhbFBhcnRzID0gZXhwbG9kZSgkbW9kX2Rl bGltLCAkdmFsKTsNCgkJJG9wID0gKCRpZHggPCAkbnVtT3BzICYmICRvcHNbJGlkeF0gIT0g JycpID8gJG9wc1skaWR4XSA6ICgoJGZsZFBhcnRzWzBdPT0icGFyZW50IikgPyAiY29udGFp bnMiIDogImVxIik7DQoJCSRvcFBhcnRzID0gZXhwbG9kZSgkbW9kX2RlbGltLCAkb3ApOw0K CQkkb3AgPSAoYXJyYXlfa2V5X2V4aXN0cygkb3BQYXJ0c1swXSwgJGFsbE9wcykpID8gJG9w UGFydHNbMF0gOiAiZXEiOw0KCQkkY2FzdCA9ICgoY291bnQoJG9wUGFydHMpID09IDIpICYm ICgkb3BQYXJ0c1sxXSA9PT0gIk5VTSIpICYmIChpbl9saXN0KCRvcCwgJG51bWVyaWNPcHMp KSkgPyAnKGludCknIDogJyc7DQoJCSRsZW5ndGggPSAoKGNvdW50KCRvcFBhcnRzKSA9PSAy KSAmJiAoJG9wUGFydHNbMV0gPT09ICJMRU4iKSAmJiAoaW5fbGlzdCgkb3AsICRudW1lcmlj T3BzKSkpID8gJ3N0cmxlbihGSUVMRCknIDogJyc7DQoJCSRraWxsU3BhY2VzID0gKChjb3Vu dCgkb3BQYXJ0cykgPT0gMikgJiYgKCRvcFBhcnRzWzFdID09PSAiTk9TUEFDRSIpICYmIChp bl9saXN0KCRvcCwgJHNwYWNlT3BzKSkpID8gdHJ1ZSA6IGZhbHNlOw0KCQkkc3RyaXBGbGQg PSAoKGNvdW50KCRmbGRQYXJ0cykgPiAxKSAmJiAoaW5fYXJyYXkoIk5PVEFHUyIsICRmbGRQ YXJ0cykpKSA/IHRydWUgOiBmYWxzZTsNCgkJJHN0cmlwVmFsID0gKChjb3VudCgkdmFsUGFy dHMpID4gMSkgJiYgKGluX2FycmF5KCJOT1RBR1MiLCAkdmFsUGFydHMpKSkgPyB0cnVlIDog ZmFsc2U7DQoJCSR0cmltRmxkID0gKChjb3VudCgkZmxkUGFydHMpID4gMSkgJiYgKGluX2Fy cmF5KCJUUklNIiwgJGZsZFBhcnRzKSkpID8gdHJ1ZSA6IGZhbHNlOw0KCQkkdHJpbVZhbCA9 ICgoY291bnQoJHZhbFBhcnRzKSA+IDEpICYmIChpbl9hcnJheSgiVFJJTSIsICR2YWxQYXJ0 cykpKSA/IHRydWUgOiBmYWxzZTsNCgkJJGNhc2Vfc2Vuc2l0aXZlID0gKGluX2xpc3QoJG9w LCAkY2FzZU9wcykpID8gMSA6ICRjYXNlX3NlbnNpdGl2ZTsNCgkJJHBhdCA9ICgkaWR4IDwg JG51bUZpbHRlcnMpID8gJGZpbHRlclskaWR4XSA6ICgoJGZpbHRlcikgPyAkZmlsdGVyWzBd IDogJycpOw0KCQkkcmVwID0gKCRpZHggPCAkbnVtUmVwbGFjZSkgPyAkcmVwbGFjZVskaWR4 XSA6ICgoJHJlcGxhY2UpID8gJHJlcGxhY2VbMF0gOiAnJyk7DQoJCWlmICgkZGVidWcpIHsN CgkJCWVjaG8gJ1RFU1QgJy4oJGlkeCsxKS5uOw0KCQkJZG1wKCRmbGRQYXJ0cywgJG9wUGFy dHMsICR2YWxQYXJ0cyk7DQoJCX0NCgkJLy8gR2V0IHRoZSBvcGVyYXRvciByZXBsYWNlbWVu dCBjb2RlDQoJCSRleGNsdWRlID0gZG9fbGlzdCgkYWxsT3BzWyRvcF1bMV0pOw0KCQkkb3Ag PSAkYWxsT3BzWyRvcF1bMF07DQoNCgkJLy8gQXMgbG9uZyBhcyB0aGUgY3VycmVudCBvcGVy YXRvciBhbGxvd3MgdGhpcyBmaWVsZC4uLg0KCQlpZiAoIWluX2FycmF5KCRmbGRQYXJ0c1sw XSwgJGV4Y2x1ZGUpKSB7DQoJCQkvLyBNYWtlIHVwIHRoZSB0ZXN0IGZpZWxkIHZhcmlhYmxl DQoJCQlpZiAoaXNzZXQoJHRoaXNmaWxlWyRmbGRQYXJ0c1swXV0pKSB7DQoJCQkJJHJmbGQg PSAkZmxkUGFydHNbMF07DQoJCQkJJGZsZCA9ICckdGhpc2ZpbGVbIicuJHJmbGQuJyJdJzsN CgkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNsaW5rWyRmbGRQYXJ0c1swXV0pKSB7DQoJCQkJ JHJmbGQgPSAkZmxkUGFydHNbMF07DQoJCQkJJGZsZCA9ICckdGhpc2xpbmtbIicuJHJmbGQu JyJdJzsNCgkJCX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNpbWFnZVskZmxkUGFydHNbMF1dKSkg ew0KCQkJCSRyZmxkID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRmbGQgPSAnJHRoaXNpbWFnZVsi Jy4kcmZsZC4nIl0nOw0KCQkJfSBlbHNlIGlmIChhcnJheV9rZXlfZXhpc3RzKCRmbGRQYXJ0 c1swXSwgJGFsbFB0eHQpKSB7DQoJCQkJJHJmbGQgPSAkZmxkUGFydHNbMF07DQoJCQkJJGZs ZCA9ICRhbGxQdHh0WyRyZmxkXTsNCgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJw YXJlbnQiKSB7DQoJCQkJJHRyZWVGaWVsZCA9ICduYW1lJzsNCgkJCQkkbGV2ZWwgPSAnJzsN CgkJCQlmb3JlYWNoICgkZmxkUGFydHMgYXMgJHBhcnQpIHsNCgkJCQkJaWYgKCRwYXJ0ID09 ICJwYXJlbnQiKSB7DQoJCQkJCQkkdGhlQ2F0ID0gKCR0aGlzZmlsZSkgPyAkdGhpc2ZpbGVb J2NhdGVnb3J5J10gOiAoKCR0aGlzbGluaykgPyAkdGhpc2xpbmtbJ2NhdGVnb3J5J10gOiAo KCR0aGlzaW1hZ2UpID8gJHRoaXNpbWFnZVsnY2F0ZWdvcnknXSA6ICRwcmV0ZXh0WydjJ10p KTsNCgkJCQkJfSBlbHNlIGlmIChzdHJwb3MoJHBhcnQsICJDQVQiKSA9PT0gMCkgew0KCQkJ CQkJJHRoZUNhdCA9ICR0aGlzYXJ0aWNsZVsiY2F0ZWdvcnkiLnN1YnN0cigkcGFydCwgMyld Ow0KCQkJCQl9IGVsc2UgaWYgKHN0cnBvcygkcGFydCwgIkxWTCIpID09PSAwKSB7DQoJCQkJ CQkkbGV2ZWwgPSBzdWJzdHIoJHBhcnQsIDMpOw0KCQkJCQl9IGVsc2UgaWYgKHN0cnBvcygk cGFydCwgIlRUTCIpID09PSAwKSB7DQoJCQkJCQkkdHJlZUZpZWxkID0gJ3RpdGxlJzsNCgkJ CQkJfSBlbHNlIGlmIChzdHJwb3MoJHBhcnQsICJLSURTIikgPT09IDApIHsNCgkJCQkJCSR0 cmVlRmllbGQgPSAnY2hpbGRyZW4nOw0KCQkJCQl9DQoJCQkJfQ0KDQoJCQkJJHRyZWUgPSBn ZXRUcmVlUGF0aChkb1NsYXNoKCR0aGVDYXQpLCAkdHlwZSk7DQoJCQkJaWYgKCRkZWJ1ZyAm JiAkdHJlZSkgew0KCQkJCQllY2hvICJDQVRFR09SWSBUUkVFOiI7DQoJCQkJCWRtcCgkdHJl ZSk7DQoJCQkJfQ0KCQkJCSRpdGVtcyA9IGFycmF5KCk7DQoJCQkJZm9yZWFjaCAoJHRyZWUg YXMgJGxlYWYpIHsNCgkJCQkJaWYgKCRsZWFmWyduYW1lJ10gPT0gInJvb3QiIHx8ICRsZWFm WyduYW1lJ10gPT0gJHRoZUNhdCkgew0KCQkJCQkJY29udGludWU7DQoJCQkJCX0gZWxzZSBp ZiAoJGxldmVsID09ICcnIHx8ICRsZXZlbCA9PSAkbGVhZlsnbGV2ZWwnXSkgew0KCQkJCQkJ JGl0ZW1zW10gPSAkbGVhZlskdHJlZUZpZWxkXTsNCgkJCQkJfQ0KCQkJCX0NCgkJCQkkcGFy ZW50Q2F0cyA9IGltcGxvZGUoIiAiLCAkaXRlbXMpOw0KCQkJCSRyZmxkID0gc2FuaXRpemVG b3JVcmwoJHBhcmVudENhdHMpOw0KCQkJCWlmICgkZGVidWcgJiYgJHBhcmVudENhdHMpIHsN CgkJCQkJZWNobyAiKysgUEFSRU5UIElORk8gKysiOw0KCQkJCQlkbXAoJHBhcmVudENhdHMp Ow0KCQkJCX0NCgkJCQkkZmxkID0gJyRwYXJlbnRDYXRzJzsNCgkJCX0gZWxzZSBpZiAoJGZs ZFBhcnRzWzBdID09ICJ0eHB2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCRmbGRQYXJ0cykgPiAx KSB7DQoJCQkJCSRyZmxkID0gJGZsZFBhcnRzWzFdOw0KCQkJCQkkZmxkID0gJyR2YXJpYWJs ZVsiJy4kcmZsZC4nIl0nOw0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09 ICJ1cmx2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCRmbGRQYXJ0cykgPiAxKSB7DQoJCQkJCSRy ZmxkID0gJGZsZFBhcnRzWzFdOw0KCQkJCQkkZmxkID0gJyRfR0VUWyInLiRyZmxkLiciXSc7 DQoJCQkJfQ0KCQkJfSBlbHNlIGlmICgkZmxkUGFydHNbMF0gPT0gInBvc3R2YXIiKSB7DQoJ CQkJaWYgKGNvdW50KCRmbGRQYXJ0cykgPiAxKSB7DQoJCQkJCSRyZmxkID0gJGZsZFBhcnRz WzFdOw0KCQkJCQkkZmxkID0gJyRfUE9TVFsiJy4kcmZsZC4nIl0nOw0KCQkJCX0NCgkJCX0g ZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJzdnJ2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCRm bGRQYXJ0cykgPiAxKSB7DQoJCQkJCSRyZmxkID0gJGZsZFBhcnRzWzFdOw0KCQkJCQkkZmxk ID0gJyRfU0VSVkVSWyInLiRyZmxkLiciXSc7DQoJCQkJfQ0KCQkJfSBlbHNlIGlmICgkZmxk UGFydHNbMF0gPT0gInBocHZhciIpIHsNCgkJCQlpZiAoY291bnQoJGZsZFBhcnRzKSA+IDEp IHsNCgkJCQkJJHJmbGQgPSAkZmxkUGFydHNbMV07DQoJCQkJCSRmbGQgPSAnJEdMT0JBTFNb IicuJHJmbGQuJyJdJzsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzYXJ0aWNs ZVskZmxkUGFydHNbMF1dKSkgew0KCQkJCSRyZmxkID0gc3RydG9sb3dlcigkZmxkUGFydHNb MF0pOw0KCQkJCSRmbGQgPSAnJHRoaXNhcnRpY2xlWyInLiRyZmxkLiciXSc7DQoJCQl9IGVs c2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAiTlVMTCIpIHsNCgkJCQkkc21kX2lmX3ZhciA9ICcn Ow0KCQkJCSRmbGQgPSAnJHNtZF9pZl92YXInOw0KCQkJCSRyZmxkID0gIk5VTEwiOw0KCQkJ fSBlbHNlIHsNCgkJCQkkc21kX2lmX3ZhciA9ICRmbGRQYXJ0c1swXTsNCgkJCQkkZmxkID0g JyRzbWRfaWZfdmFyJzsNCgkJCQkkcmZsZCA9ICJmaWVsZCIuKCRpZHgqMSsxKTsNCgkJCX0N CgkJCSRybGZsZCA9ICJzbWRfaWZfbGVuXyIuJHJmbGQ7DQoJCQkkcmZsZCA9ICJzbWRfaWZf Ii4kcmZsZDsNCg0KCQkJLy8gVGFrZSBhIGNvcHkgb2YgJGZsZCB0byB1c2UgaW4gYW55IGlz c2V0KCkgcmVxdWVzdHMNCgkJCSRmbGRDbGVhbiA9ICRmbGQ7DQoNCgkJCS8vIEFwcGx5IHVz ZXItZGVmaW5lZCBmaWVsZCBmaWx0ZXJzDQoJCQlpZiAoJGtpbGxTcGFjZXMpIHsNCgkJCQkk ZmxkID0gJ3ByZWdfcmVwbGFjZSgiL1xzKy8iLCIiLCcuJGZsZC4nKSc7DQoJCQl9DQoJCQlp ZiAoJHN0cmlwRmxkKSB7DQoJCQkJJGZsZCA9ICd0cmltKHN0cmlwX3RhZ3MoJy4kZmxkLicp KSc7DQoJCQl9DQoJCQlpZiAoJHRyaW1GbGQpIHsNCgkJCQkkZmxkID0gJ3RyaW0oJy4kZmxk LicpJzsNCgkJCX0NCgkJCSRkb19mZmlsdCA9ICgkcGF0ICYmIGluX2FycmF5KCdmaWVsZCcs ICRmaWx0ZXJfb24pICYmIChpbl9hcnJheSgkZmxkUGFydHNbMF0sICRmaWx0ZXJfdHlwZSkg fHwgaW5fYXJyYXkoJ2FsbCcsICRmaWx0ZXJfdHlwZSkpICkgPyB0cnVlIDogZmFsc2U7DQoN CgkJCS8vIEZpbmQgdGhlIHJlYWwgdmFsdWUgdG8gY29tcGFyZSBhZ2FpbnN0IChtYXkgYmUg YW5vdGhlciBmaWVsZCkNCgkJCWlmICgkdmFsUGFydHNbMF0gPT0gInVybHZhciIpIHsNCgkJ CQlpZiAoY291bnQoJHZhbFBhcnRzKSA+IDEpIHsNCgkJCQkJJHZmbGQgPSAkdmFsUGFydHNb MV07DQoJCQkJCSR2YWwgPSAoaXNzZXQoJF9HRVRbJHZmbGRdKSAmJiAkX0dFVFskdmZsZF0g IT0gIiIpID8gJyRfR0VUWyInLiR2ZmxkLiciXScgOiBkb1F1b3RlKHN0cl9yZXBsYWNlKCci JywgJ1wiJywgJHZmbGQpKTsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKCR2YWxQYXJ0c1swXSA9 PSAicG9zdHZhciIpIHsNCgkJCQlpZiAoY291bnQoJHZhbFBhcnRzKSA+IDEpIHsNCgkJCQkJ JHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJCSR2YWwgPSAoaXNzZXQoJF9QT1NUWyR2Zmxk XSkgJiYgJF9QT1NUWyR2ZmxkXSAhPSAiIikgPyAnJF9QT1NUWyInLiR2ZmxkLiciXScgOiBk b1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQl9DQoJCQl9IGVs c2UgaWYgKCR2YWxQYXJ0c1swXSA9PSAic3ZydmFyIikgew0KCQkJCWlmIChjb3VudCgkdmFs UGFydHMpID4gMSkgew0KCQkJCQkkdmZsZCA9ICR2YWxQYXJ0c1sxXTsNCgkJCQkJJHZhbCA9 IChpc3NldCgkX1NFUlZFUlskdmZsZF0pICYmICRfU0VSVkVSWyR2ZmxkXSAhPSAiIikgPyAn JF9TRVJWRVJbIicuJHZmbGQuJyJdJyA6IGRvUXVvdGUoc3RyX3JlcGxhY2UoJyInLCAnXCIn LCAkdmZsZCkpOw0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoJHZhbFBhcnRzWzBdID09ICJ0eHB2 YXIiKSB7DQoJCQkJaWYgKGNvdW50KCR2YWxQYXJ0cykgPiAxKSB7DQoJCQkJCSR2ZmxkID0g JHZhbFBhcnRzWzFdOw0KCQkJCQkkdmFsID0gKGlzc2V0KCR2YXJpYWJsZVskdmZsZF0pICYm ICR2YXJpYWJsZVskdmZsZF0gIT0gIiIpID8gJyR2YXJpYWJsZVsiJy4kdmZsZC4nIl0nIDog ZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2ZmxkKSk7DQoJCQkJfQ0KCQkJfSBl bHNlIGlmICgkdmFsUGFydHNbMF0gPT0gInBocHZhciIpIHsNCgkJCQlpZiAoY291bnQoJHZh bFBhcnRzKSA+IDEpIHsNCgkJCQkJJHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJCSR2YWwg PSAoaXNzZXQoJEdMT0JBTFNbJHZmbGRdKSAmJiAkR0xPQkFMU1skdmZsZF0gIT0gIiIpID8g JyRHTE9CQUxTWyInLiR2ZmxkLiciXScgOiBkb1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wi JywgJHZmbGQpKTsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKHN0cnBvcygkdmFsUGFydHNbMF0s ICI/IikgPT09IDApIHsNCgkJCQkkdmFsUGFydHNbMF0gPSBzdWJzdHIoc3RydG9sb3dlcigk dmFsUGFydHNbMF0pLCAxKTsNCgkJCQkkdmZsZCA9ICR2YWxQYXJ0c1swXTsNCgkJCQlpZiAo aXNzZXQoJHRoaXNmaWxlWyR2ZmxkXSkgJiYgJHRoaXNmaWxlWyR2ZmxkXSAhPSAiIikgew0K CQkJCQkkdmFsID0gJyR0aGlzZmlsZVsiJy4kdmZsZC4nIl0nOw0KCQkJCX0gZWxzZSBpZiAo aXNzZXQoJHRoaXNsaW5rWyR2ZmxkXSkgJiYgJHRoaXNsaW5rWyR2ZmxkXSAhPSAiIikgew0K CQkJCQkkdmFsID0gJyR0aGlzbGlua1siJy4kdmZsZC4nIl0nOw0KCQkJCX0gZWxzZSBpZiAo aXNzZXQoJHRoaXNpbWFnZVskdmZsZF0pICYmICR0aGlzaW1hZ2VbJHZmbGRdICE9ICIiKSB7 DQoJCQkJCSR2YWwgPSAnJHRoaXNpbWFnZVsiJy4kdmZsZC4nIl0nOw0KCQkJCX0gZWxzZSBp ZiAoYXJyYXlfa2V5X2V4aXN0cygkdmZsZCwgJGFsbFB0eHQpICYmICRhbGxQdHh0WyR2Zmxk XSAhPSAiIikgew0KCQkJCQkkdmFsID0gJGFsbFB0eHRbJHZmbGRdOw0KCQkJCX0gZWxzZSBp ZiAoaXNzZXQoJHRoaXNhcnRpY2xlWyR2ZmxkXSkgJiYgJHRoaXNhcnRpY2xlWyR2ZmxkXSAh PSAiIikgew0KCQkJCQkkdmFsID0gJyR0aGlzYXJ0aWNsZVsiJy4kdmZsZC4nIl0nOw0KCQkJ CX0gZWxzZSB7DQoJCQkJCSR2YWwgPSBkb1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywg JHZmbGQpKTsNCgkJCQl9DQoJCQl9IGVsc2Ugew0KCQkJCSR2ZmxkID0gInZhbCIuKCRpZHgq MSsxKTsNCgkJCQkkdmFsID0gZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2YWxQ YXJ0c1swXSkpOw0KCQkJfQ0KCQkJJHZsZmxkID0gInNtZF9pZl9sZW5fIi4kdmZsZDsNCgkJ CSR2ZmxkID0gInNtZF9pZl8iLiR2ZmxkOw0KDQoJCQkvLyBBcHBseSB1c2VyLWRlZmluZWQg dmFsdWUgZmlsdGVycw0KCQkJaWYgKCRzdHJpcFZhbCkgew0KCQkJCSR2YWwgPSAndHJpbShz dHJpcF90YWdzKCcuJHZhbC4nKSknOw0KCQkJfQ0KCQkJaWYgKCR0cmltVmFsKSB7DQoJCQkJ JHZhbCA9ICd0cmltKCcuJHZhbC4nKSc7DQoJCQl9DQoJCQkkZG9fdmZpbHQgPSAoJHBhdCAm JiBpbl9hcnJheSgndmFsdWUnLCAkZmlsdGVyX29uKSAmJiAoaW5fYXJyYXkoJHZhbFBhcnRz WzBdLCAkZmlsdGVyX3R5cGUpIHx8IGluX2FycmF5KCdhbGwnLCAkZmlsdGVyX3R5cGUpKSAp ID8gdHJ1ZSA6IGZhbHNlOw0KDQoJCQkvLyBSZXBsYWNlIHRoZSBzdHJpbmcgcGFydHMuLi4N CgkJCSRmaWx0X2ZsZCA9ICgkZG9fZmZpbHQpID8gInByZWdfcmVwbGFjZSgnJHBhdCcsICck cmVwJywgJGZsZCkiIDogJGZsZDsNCgkJCSRmaWx0X3ZhbCA9ICgkZG9fdmZpbHQpID8gInBy ZWdfcmVwbGFjZSgnJHBhdCcsICckcmVwJywgJHZhbCkiIDogJHZhbDsNCgkJCSRjbWQgPSBz dHJfcmVwbGFjZSgiQ0FTVCIsICRjYXN0LCAkb3ApOw0KCQkJJGNtZCA9ICgkbGVuZ3RoKSA/ IHN0cl9yZXBsYWNlKCJGSUVMRCIsICRsZW5ndGgsICRjbWQpIDogJGNtZDsNCgkJCSRjbWQg PSBzdHJfcmVwbGFjZSgiRklFTEQiLCAoKCRjYXNlX3NlbnNpdGl2ZSkgPyAkZmlsdF9mbGQg OiAnc3RydG9sb3dlcignLiRmaWx0X2ZsZC4nKScpLCAkY21kKTsNCgkJCSRjbWQgPSBzdHJf cmVwbGFjZSgiVkFSTkFNRSIsICRmbGRDbGVhbiwgJGNtZCk7DQoJCQkkY21kID0gc3RyX3Jl cGxhY2UoIlZBTFVFIiwgKCgkY2FzZV9zZW5zaXRpdmUpID8gJ1ZBTFVFJyA6ICdzdHJ0b2xv d2VyKFZBTFVFKScpLCAkY21kKTsNCg0KCQkJLy8gV291bGQgbG92ZSB0byBkbyB0aGlzIGlu IG9uZSBnbywgYnV0IGl0IGFwcGVhcnMgaXQncyBub3QgcG9zc2libGUgdG8NCgkJCS8vIGRl Y2xhcmUgYSB2YXJpYWJsZSBhbmQgdXNlIGl0IHdpdGhpbiB0aGUgc2FtZSBldmFsKCkgc3Rh dGVtZW50IDotKA0KCQkJZXZhbCAoIlwkc21kX3ByZWZpbHRlciA9IGRvUXVvdGUoIi4kZmls dF92YWwuIik7Iik7DQoJCQkkY21kID0gIkBcJHJlcGxhY2VtZW50c1sneyIuJHJmbGQuIn0n XSA9ICIuJGZpbHRfZmxkLiI7IFxuQFwkcmVwbGFjZW1lbnRzWyd7Ii4kcmxmbGQuIn0nXSA9 IHN0cmxlbigiLiRmaWx0X2ZsZC4iKTsgXG5AXCRyZXBsYWNlbWVudHNbJ3siLiR2ZmxkLiJ9 J10gPSAiLiRmaWx0X3ZhbC4iOyBcbkBcJHJlcGxhY2VtZW50c1sneyIuJHZsZmxkLiJ9J10g PSBzdHJsZW4oIi4kZmlsdF92YWwuIik7IFxuXCRvdXRbIi4kaWR4LiJdID0gKCIuc3RyX3Jl cGxhY2UoIlZBTFVFIiwgKCgkc21kX3ByZWZpbHRlcj09PSInJyIgJiYgc3RycG9zKCRvcCwg InN0cnBvcyIpICE9PSBmYWxzZSkgPyAiJyAnIiA6ICRzbWRfcHJlZmlsdGVyKSwgJGNtZCku IikgPyAndHJ1ZScgOiAnZmFsc2UnOyI7DQoJCQlpZiAoJGRlYnVnKSB7DQoJCQkJZG1wKCRj bWQpOw0KCQkJfQ0KCQkJLy8gLi4uIGFuZCBldmFsdWF0ZSB0aGUgZXhwcmVzc2lvbg0KCQkJ ZXZhbCgkY21kKTsNCgkJfQ0KCX0NCglpZiAoJGRlYnVnKSB7DQoJCWVjaG8gIlJFU1VMVDoi Ow0KCQlkbXAoJG91dCk7DQoJCWVjaG8gIlJFUExBQ0VNRU5UUzoiOw0KCQlkbXAoJHJlcGxh Y2VtZW50cyk7DQoJfQ0KCWlmICgkZGVidWcgPiAyKSB7DQoJCWVjaG8gIlBSRVRFWFQ6IjsN CgkJZG1wKCRwcmV0ZXh0KTsNCgkJZWNobyAiVEhJUyBBUlRJQ0xFOiI7DQoJCWRtcCgkdGhp c2FydGljbGUpOw0KCQllY2hvICJUSElTIEZJTEU6IjsNCgkJZG1wKCR0aGlzZmlsZSk7DQoJ CWVjaG8gIlRISVMgTElOSzoiOw0KCQlkbXAoJHRoaXNsaW5rKTsNCgkJZWNobyAiVEhJUyBJ TUFHRToiOw0KCQlkbXAoJHRoaXNpbWFnZSk7DQoJfQ0KCS8vIENoZWNrIGxvZ2ljDQoJJHJl c3VsdCA9ICgkb3V0KSA/IHRydWUgOiBmYWxzZTsNCglpZiAoc3RydG9sb3dlcigkbG9naWMp ID09ICJhbmQiICYmIGluX2FycmF5KCJmYWxzZSIsICRvdXQpKSB7DQoJCSRyZXN1bHQgPSBm YWxzZTsNCgl9DQoJaWYgKHN0cnRvbG93ZXIoJGxvZ2ljKSA9PSAib3IiICYmICFpbl9hcnJh eSgidHJ1ZSIsICRvdXQpKSB7DQoJCSRyZXN1bHQgPSBmYWxzZTsNCgl9DQoNCglyZXR1cm4g cGFyc2UoRXZhbEVsc2Uoc3RydHIoJHRoaW5nLCAkcmVwbGFjZW1lbnRzKSwgJHJlc3VsdCkp Ow0KfSI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToib3JkZXIiO3M6MToiNSI7czo1OiJmbGFn cyI7czoxOiIwIjtzOjQ6ImhlbHAiO3M6NDMzNzg6IjxkaXYgaWQ9InNtZF9oZWxwIj4KCgk8 aDE+c21kX2lmPC9oMT4KCgk8cD5BIGdlbmVyaWMgJiM4MjE2O2lmIGNvbmRpdGlvbiYjODIx NzsgdGVzdGVyLiBDYW4gdGVzdCBhbnkgZmllbGQgb3IgdmFyaWFibGUgaW4gdGhlIGN1cnJl bnQgYXJ0aWNsZSwgZmlsZSwgaW1hZ2UsIGxpbmssIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8 L3NwYW4+IHZhciwgPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29kZT4gb3IgPHNw YW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gY29udGV4dCBmb3IgYSB2YXJpZXR5IG9mIGF0 dHJpYnV0ZXMgYW5kIHRha2UgYWN0aW9uIGlmIDxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9z cGFuPiBvciA8c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+LjwvcD4KCgk8aDI+RmVh dHVyZXM8L2gyPgoKCTx1bD4KCQk8bGk+U3VwcG9ydHMgbW9zdCBtYWpvciBhcnRpY2xlLCBm aWxlLCBpbWFnZSBhbmQgbGluayB2YXJpYWJsZXMgc3VjaCBhcyBzZWN0aW9uLCBjYXRlZ29y eSwgY3VzdG9tIGZpZWxkcywgaWQsIHF1ZXJ5IHN0cmluZywgYXV0aG9yLCBib2R5LCBleGNl cnB0LCB5YWhkZSB5YWhkZSwgcGx1cyB1cmwgdmFycywgc2VydmVyIHZhcnMsIHR4cCB2YXJz LCBwaHAgdmFycywgYW5kIHN1Yi1jYXRlZ29yeS9wYXJlbnQgY2hlY2tpbmc8L2xpPgoJCTxs aT5UZXN0cyBpbmNsdWRlIGVxdWFsaXR5LCBpbmVxdWFsaXR5LCBsZXNzIHRoYW4sIGdyZWF0 ZXIgdGhhbiwgZGl2aXNpYmxlIGJ5LCBlbXB0eSwgdXNlZCwgZGVmaW5lZCwgYmVnaW5zLCBl bmRzLCBjb250YWlucywgaXMgbnVtZXJpYyAvIGFscGhhIC8gYWxwaGFudW1lcmljIC8gbG93 ZXJjYXNlIC8gdXBwZXJjYXNlLCBhbW9uZyBvdGhlcnM8L2xpPgoJCTxsaT5UZXN0cyBmb3Ig bW9yZSB0aGFuIG9uZSBjb25kaXRpb24gYXQgb25jZSBhbmQgYXBwbGllcyBlaXRoZXIgPHNw YW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gbG9naWMgKGFsbCB0ZXN0cyBtdXN0IHBhc3Mp IG9yIE9SIGxvZ2ljIChhbnkgdGVzdCBtdXN0IHBhc3MpPC9saT4KCQk8bGk+QWxsIHRlc3Rl ZCBmaWVsZHMgYW5kIHZhbHVlcyBhcmUgYXZhaWxhYmxlIHRvIHRoZSBjb250YWluZXIgc28g eW91IGNhbiBkaXNwbGF5IHRoZW08L2xpPgoJCTxsaT5DdXN0b20gcmVndWxhci1leHByZXNz aW9uIGZpbHRlcnMgYXJlIGF2YWlsYWJsZSB0byBoZWxwIHdlZWQgb3V0IGJhZCBkYXRhPC9s aT4KCQk8bGk+VWdseSBhbmQgdmVyeSBkaXJ0eS4gVXNlcyA8c3BhbiBjbGFzcz0iY2FwcyI+ UEhQPC9zcGFuPiYjODIxNztzIDxjb2RlPmV2YWwoKTwvY29kZT4gY29tbWFuZCB3aGljaCBt b3N0IHByb2dyYW1tZXJzIGNvbmN1ciBzaG91bGQgYmUgcmVuYW1lZCA8Y29kZT5ldmlsKCk8 L2NvZGU+PC9saT4KCTwvdWw+CgoJPGgyPkF1dGhvcjwvaDI+CgoJPHA+PGEgaHJlZj0iaHR0 cDovL3N0ZWZkYXdzb24uY29tL2NvbW1lbnRGb3JtIj5TdGVmIERhd3NvbjwvYT4uIEJhc2Vk IG9uIGFuIGlkZWEgYnJld2luZyBpbiB0aGUgYmFjayBvZiBteSBtaW5kIHdoaWxlIGhhY2tp bmcgY2hzX2lmX3VybHZhci48L3A+CgoJPGgyPkluc3RhbGxhdGlvbiAvIFVuaW5zdGFsbGF0 aW9uPC9oMj4KCgk8cD5Eb3dubG9hZCB0aGUgcGx1Z2luIGZyb20gZWl0aGVyIDxhIGhyZWY9 Imh0dHA6Ly90ZXh0cGF0dGVybi5vcmcvcGx1Z2lucy85MzAvc21kX2lmIj50ZXh0cGF0dGVy bi5vcmc8L2E+LCBvciB0aGUgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL3N3Ij5z b2Z0d2FyZSBwYWdlPC9hPiwgcGFzdGUgdGhlIGNvZGUgaW50byB0aGUgPHNwYW4gY2xhc3M9 ImNhcHMiPlRYUDwvc3Bhbj4gQWRtaW4gLSZndDsgUGx1Z2lucyBwYW5lLCBpbnN0YWxsIGFu ZCBlbmFibGUgdGhlIHBsdWdpbi4gVmlzaXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50 ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9pZD0yNTM1NyI+Zm9ydW0gdGhyZWFkPC9h PiBmb3IgbW9yZSBpbmZvIG9yIHRvIHJlcG9ydCBvbiB0aGUgc3VjY2VzcyBvciBvdGhlcndp c2Ugb2YgdGhlIHBsdWdpbi48L3A+CgoJPHA+VG8gdW5pbnN0YWxsLCBzaW1wbHkgZGVsZXRl IGZyb20gdGhlIEFkbWluIC0mZ3Q7IFBsdWdpbnMgcGFnZS48L3A+CgoJPGgyPlVzYWdlPC9o Mj4KCgk8cD5Vc2UgdGhlIHRhZyBpbiBhbnkgcGFnZSwgZm9ybSBvciBhcnRpY2xlIGNvbnRl eHQuIENhbiBhbHNvIGJlIHVzZWQgaW5zaWRlIGZpbGUsIGltYWdlIChpbiB0aGUgZnV0dXJl KSBvciBsaW5rIGxpc3RzIHRvIHRha2UgYWN0aW9uIGRlcGVuZGluZyBvbiBhdHRyaWJ1dGVz IG9mIHRoZSBjdXJyZW50IGl0ZW0uPC9wPgoKCTxoMyBjbGFzcz0idGFnIj5zbWRfaWY8L2gz PgoKCTxwIGNsYXNzPSJ0YWctc3VtbWFyeSI+QXQgdGhlIHBsYWNlIHlvdSB3aXNoIHRvIGNv bXBhcmUgYSBmaWVsZCB3aXRoIGFub3RoZXIgdmFsdWUsIHB1dCB0aGlzIHRhZyB3aXRoIHRo ZSBmaXJzdCB0aHJlZSBtYW5kYXRvcnkgYXR0cmlidXRlcy4gRWFjaCB0YWtlIGEgc2VyaWVz IG9mIGNvbW1hLXNlcGFyYXRlZCBsaXN0cyAmIzgyMTI7IHRob3VnaCB0aGUgPGEgaHJlZj0i I3BhcmFtZGVsaW0iPmNvbW1hIGlzIG92ZXJyaWRhYmxlIHdpdGggcGFyYW1fZGVsaW08L2E+ LiBJZiB0aGUgcmVzdWx0IG9mIGFsbCB0aGUgY29tcGFyaXNvbiB0ZXN0cyBpcyA8c3BhbiBj bGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gdGhlIGNvbnRhaW5lZCBibG9jayB3aWxsIGJlIGV4 ZWN1dGVkLiBJZiB0aGUgcmVzdWx0IGlzIDxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bh bj4sIGFueSA8Y29kZT4mbHQ7dHhwOmVsc2UgLyZndDs8L2NvZGU+IHdpbGwgYmUgZXhlY3V0 ZWQgaW5zdGVhZC4gV2l0aG91dCBhbnkgPGNvZGU+Jmx0O3R4cDplbHNlIC8mZ3Q7PC9jb2Rl PiBibG9jaywgbm90aGluZyBpcyBvdXRwdXQgaWYgdGhlIHJlc3VsdCBpcyA8c3BhbiBjbGFz cz0iY2FwcyI+RkFMU0U8L3NwYW4+LjwvcD4KCgk8aDQgY2xhc3M9ImF0dHMgIiBpZD0iYXR0 cmlidXRlcyI+QXR0cmlidXRlczwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0 LW5hbWUgbWFuZCI+ZmllbGQ8L3NwYW4+IDogdGhlIDxhIGhyZWY9IiNmaWVsZCI+ZmllbGRz PC9hPiB0byB0ZXN0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIG1hbmQiPm9w ZXJhdG9yPC9zcGFuPiA6IHRoZSA8YSBocmVmPSIjb3BlcmF0b3IiPm9wZXJhdGlvbnM8L2E+ IGZvciBjb21wYXJpc29uIHdpdGggdGhhdCBmaWVsZCAoZS5nLiA8Y29kZT5lcTwvY29kZT4s IDxjb2RlPm5vdDwvY29kZT4sIDxjb2RlPmJlZ2luczwvY29kZT4sIGV0YykuIERlZmF1bHQg aXMgdXN1YWxseSA8Y29kZT5lcTwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0 LW5hbWUgbWFuZCI+dmFsdWU8L3NwYW4+IDogdGhlIDxhIGhyZWY9IiN2YWx1ZSI+dmFsdWVz PC9hPiB3aXRoIHdoaWNoIHRvIGNvbXBhcmUgdGhlIGZpZWxkczwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdHQtbmFtZSI+bG9naWM8L3NwYW4+IDogaG93IG11bHRpcGxlIHRlc3RzIGFy ZSBqb2luZWQ6IDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+IG9yIE9SLiBEZWZhdWx0 IGlzIDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0dC1uYW1lIj5jYXNlX3NlbnNpdGl2ZTwvc3Bhbj4gOiAxID0gY2FzZS1zZW5zaXRp dmUgY29tcGFyaXNvbjsgMCA9IGlnbm9yZSBjYXNlLiBEZWZhdWx0IGlzIDA8L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmZpbHRlcjwvc3Bhbj4gOiBsaXN0IG9mIHJlZ3Vs YXIgZXhwcmVzc2lvbnMgd2l0aCB3aGljaCB0byBmaWx0ZXIgb25lIG9yIG1vcmUgZmllbGRz L3ZhbHVlcy4gU2VlIDxhIGhyZWY9IiNmaWx0ZXJpbmciPmZpbHRlcmluZzwvYT48L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPnJlcGxhY2U8L3NwYW4+IDogbGlzdCBvZiBp dGVtcyB3aXRoIHdoaWNoIHRvIHJlcGxhY2UgZWFjaCBvZiB0aGUgbWF0Y2hpbmcgZmlsdGVy czwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+ZmlsdGVyX3R5cGU8L3NwYW4+ IDogbGltaXQgdGhlIGZpbHRlciB0byBjZXJ0YWluIHR5cGVzIG9mIHRlc3QuIENob29zZSBm cm9tIDxjb2RlPmFsbDwvY29kZT4gKHRoZSBkZWZhdWx0KSwgPGNvZGU+dXJsdmFyPC9jb2Rl PiwgPGNvZGU+cG9zdHZhcjwvY29kZT4sIDxjb2RlPnN2cnZhcjwvY29kZT4sIDxjb2RlPnR4 cHZhcjwvY29kZT4sIDxjb2RlPnBocHZhcjwvY29kZT4sIG9yIGFueSBmaWVsZCBuYW1lPC9s aT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5maWx0ZXJfb248L3NwYW4+IDogZWl0 aGVyIGFwcGx5IHRoZSBmaWx0ZXIgdG8gdGhlIDxjb2RlPmZpZWxkPC9jb2RlPiwgdGhlIDxj b2RlPnZhbHVlPC9jb2RlPiBvciBib3RoLiBEZWZhdWx0OiA8Y29kZT5maWVsZDwvY29kZT4u IFBsZWFzZSBzZWUgdGhlIDxhIGhyZWY9IiNmY2F2ZWF0Ij5maWx0ZXJpbmcgY2F2ZWF0PC9h PiBiZWxvdyBmb3IgaW1wb3J0YW50IGluZm9ybWF0aW9uIGFib3V0IHRoaXMgYXR0cmlidXRl PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5wYXJhbV9kZWxpbTwvc3Bhbj4g OiBkZWxpbWl0ZXIgdXNlZCBiZXR3ZWVuIGVhY2ggZmllbGQsIG9wZXJhdG9yIG9yIHZhbHVl IGluIGEgbXVsdGktdGVzdC4gRGVmYXVsdCBpcyBhIGNvbW1hICgsKTwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSI+bW9kX2RlbGltPC9zcGFuPiA6IGRlbGltaXRlciB1c2Vk IHdoZW4gc3BlY2lmeWluZyBmaWVsZCBvciBvcGVyYXRvciBtb2RpZmllcnMgZm9yIHVybHZh ciwgcG9zdHZhciwgc3ZydmFyIGFuZCB0eHB2YXIuIERlZmF1bHQgaXMgYSBjb2xvbiAoOik8 L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmxpc3RfZGVsaW08L3NwYW4+IDog ZGVsaW1pdGVyIHVzZWQgd2hlbiBzcGVjaWZ5aW5nIGEgbGlzdCBvZiB2YWx1ZXMgdG8gY2hl Y2sgdmlhIHRoZSA8Y29kZT5pbjwvY29kZT4gb3IgPGNvZGU+bm90aW48L2NvZGU+IG9wZXJh dG9ycy4gRGVmYXVsdCBpcyBhIGZvcndhcmQtc2xhc2ggKC8pPC9saT4KCTwvdWw+CgoJPHA+ VGhlIGxpc3RzIGFyZSBwcm9jZXNzZWQgaW4gb3JkZXIsIGkuZS4gdGhlIDFzdCBmaWVsZCB1 c2VzIHRoZSAxc3Qgb3BlcmF0b3IgaW4gdGhlIGxpc3QgYW5kIGNvbXBhcmVzIGl0IHRvIHRo ZSAxc3QgdmFsdWU7IHRoZSAybmQgZmllbGQgdXNlcyB0aGUgMm5kIG9wZXJhdG9yIGluIHRo ZSBsaXN0IGFuZCBjb21wYXJlcyBpdCB0byB0aGUgMm5kIHZhbHVlLCBhbmQgc28gb24uIFZh bHVlcyBzaG91bGQgdXN1YWxseSBiZSBzcGVjaWZpZWQgd2l0aCBwbGFjZWhvbGRlcnMgdG8g bWFpbnRhaW4gb3JkZXI6IGUuZy4gPGNvZGU+dmFsdWU9JnF1b3Q7LCA0LCwgdG9wJnF1b3Q7 PC9jb2RlPjwvcD4KCgk8cD5Ob3RlIHRoYXQsIGFsdGhvdWdoIHRoZSBmaXJzdCB0aHJlZSBh dHRyaWJ1dGVzIGFyZSBjb25zaWRlcmVkIG1hbmRhdG9yeSwgaWYgeW91IGhhcHBlbiB0byBy ZXF1aXJlIHRoZSBkZWZhdWx0IG9wZXJhdG9yIGZvciBhbGwgeW91ciB0ZXN0cywgeW91IGNh biBzYWZlbHkgb21pdCA8Y29kZT5vcGVyYXRvcjwvY29kZT4uIFNpbWlsYXJseSB3aXRoIHZh bHVlczogaWYgeW91IGFyZSBlbnRpcmVseSB0ZXN0aW5nIHRoZSBleGlzdGVuY2Ugb3IgdHlw ZSBvZiB2YXJpYWJsZXMsIHlvdSBjYW4gb21pdCB0aGUgPGNvZGU+dmFsdWU8L2NvZGU+IHBh cmFtZXRlciBpZiB5b3Ugd2lzaC4gQW5kIGlmIHlvdSBhcmUgdGVzdGluZyB0aGUgc2FtZSA8 Y29kZT5maWVsZDwvY29kZT4gYWdhaW4gYW5kIGFnYWluIGZvciBkaWZmZXJpbmcgY29uZGl0 aW9ucywgeW91IGNhbiBsaXN0IGl0IGp1c3Qgb25jZSBhcyBhIGNvbnZlbmllbnQgc2hvcnRj dXQuPC9wPgoKCTxoNCBjbGFzcz0iYXR0LW5hbWUgIiBpZD0iZmllbGQiPmZpZWxkPC9oND4K Cgk8cD5MaXN0IG9mIGZpZWxkIGxvY2F0aW9ucyB0byBsb29rIGF0LiBTb21lIHVzZWZ1bCB2 YWx1ZXMgYXJlOjwvcD4KCgk8dWw+CgkJPGxpPjxjb2RlPnNlY3Rpb248L2NvZGU+PC9saT4K CQk8bGk+PGNvZGU+Y2F0ZWdvcnk8L2NvZGU+IChvciA8Y29kZT5jYXRlZ29yeTE8L2NvZGU+ LCBvciA8Y29kZT5jYXRlZ29yeTI8L2NvZGU+IGlmIG9uIGFuIGFydGljbGUgcGFnZSk8L2xp PgoJCTxsaT48Y29kZT5hdXRob3JpZDwvY29kZT4gb3IgPGNvZGU+YXV0aG9yPC9jb2RlPjwv bGk+CgkJPGxpPjxjb2RlPmlkPC9jb2RlPiAoZmlsZS9saW5rL2ltYWdlL2FydGljbGUgSUQp LiBJbiBhbiBpbmRpdmlkdWFsIGFydGljbGUgY29udGV4dCwgdXNlIDxjb2RlPnRoaXNpZDwv Y29kZT4gaW5zdGVhZDwvbGk+CgkJPGxpPjxjb2RlPnF1ZXJ5PC9jb2RlPiAodGhlIHF1ZXJ5 IHN0cmluZyBmcm9tIHRoZSBzZWFyY2ggZm9ybSk8L2xpPgoJCTxsaT48Y29kZT5wZzwvY29k ZT4gKHRoZSBjdXJyZW50IHBhZ2UgbnVtYmVyIGluIGxpc3RzKTwvbGk+CgkJPGxpPjxjb2Rl Pm1vbnRoPC9jb2RlPiAoY3VycmVudCBtb250aCBmaWVsZCBmcm9tIHRoZSBhZGRyZXNzIGJh cik8L2xpPgoJCTxsaT48Y29kZT5zdGF0dXM8L2NvZGU+IChkb2N1bWVudCBzdGF0dXM6IDIw MCwgNDA0LCA0MDMsIGV0Yyk8L2xpPgoJCTxsaT48Y29kZT5wYWdlPC9jb2RlPiAodGhlIDxz cGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IFBhZ2UgdGVtcGxhdGUgdXNlZCBieSB0aGlz IHNlY3Rpb24pPC9saT4KCQk8bGk+PGNvZGU+bmV4dF9pZDwvY29kZT4gLyA8Y29kZT5wcmV2 X2lkPC9jb2RlPiAoSUQgb2YgbmV4dC9wcmV2IGRvY3VtZW50IGlmIG9uIGFydGljbGUgcGFn ZSk8L2xpPgoJCTxsaT48Y29kZT5uZXh0X3RpdGxlPC9jb2RlPiAvIDxjb2RlPnByZXZfdGl0 bGU8L2NvZGU+KFRpdGxlIG9mIG5leHQvcHJldiBkb2N1bWVudCBpZiBvbiBhcnRpY2xlIHBh Z2UpPC9saT4KCQk8bGk+PGNvZGU+bmV4dF91dGl0bGU8L2NvZGU+IC8gPGNvZGU+cHJldl91 dGl0bGU8L2NvZGU+ICh1cmwtdGl0bGUgb2YgbmV4dC9wcmV2IGRvY3VtZW50IGlmIG9uIGFy dGljbGUgcGFnZSk8L2xpPgoJCTxsaT48Y29kZT5wZXJtbGlua19tb2RlPC9jb2RlPiAodGFr ZSBhY3Rpb24gYmFzZWQgb24gb25lIG9mIHRoZSBtZXNzeS9jbGVhbiA8c3BhbiBjbGFzcz0i Y2FwcyI+VVJMPC9zcGFuPiBzY2hlbWVzKTwvbGk+CgkJPGxpPjxjb2RlPm90aGVyIGFydGlj bGUvZmlsZS9saW5rIGZpZWxkPC9jb2RlPiAoZS5nLiBib2R5LCBleGNlcnB0LCBhcnRpY2xl X2ltYWdlLCBrZXl3b3JkcywgbGlua2FubWUsIGZpbGVuYW1lLCBkb3dubG9hZHMsICYjODIz MDspPC9saT4KCQk8bGk+PGNvZGU+bXlfY3VzdG9tX2ZpZWxkX25hbWU8L2NvZGU+IChhbnkg Y3VzdG9tIGZpZWxkcyB5b3UgaGF2ZSBkZWZpbmVkKTwvbGk+CgkJPGxpPjxjb2RlPnVybHZh cjp2YXJfbmFtZTwvY29kZT4gKGFueSB2YXJpYWJsZSBpbiB0aGUgYWRkcmVzcyBiYXIgYWZ0 ZXIgdGhlIDxjb2RlPj88L2NvZGU+KTwvbGk+CgkJPGxpPjxjb2RlPnBvc3R2YXI6dmFyX25h bWU8L2NvZGU+IChhbnkgdmFyaWFibGUgcG9zdGVkIGZyb20gYW4gPHNwYW4gY2xhc3M9ImNh cHMiPkhUTUw8L3NwYW4+IGZvcm0pPC9saT4KCQk8bGk+PGNvZGU+c3ZydmFyOnZhcl9uYW1l PC9jb2RlPiAoYW55IHN0YW5kYXJkIHNlcnZlciB2YXJpYWJsZSwgZS5nLiA8c3BhbiBjbGFz cz0iY2FwcyI+SFRUUDwvc3Bhbj5fVVNFUl9BR0VOVCk8L2xpPgoJCTxsaT48Y29kZT50eHB2 YXI6bXlfdmFyPC9jb2RlPiAoYW55IFRleHRwYXR0ZXJuIHZhcmlhYmxlIHNldCB3aXRoIDxj b2RlPiZsdDt0eHA6dmFyaWFibGUgbmFtZT0mcXVvdDtteV92YXImcXVvdDsgLyZndDs8L2Nv ZGU+KTwvbGk+CgkJPGxpPjxjb2RlPnBocHZhcjpteV92YXI8L2NvZGU+IChhbnkgPHNwYW4g Y2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gdmFyaWFibGUgPGVtPmluIHRoZSBnbG9iYWwgc2Nv cGU8L2VtPik8L2xpPgoJCTxsaT48Y29kZT5wYXJlbnQ6b3B0aW9uYWxfbW9kaWZpZXJzPC9j b2RlPiAod2hldGhlciB0aGUgZ2l2ZW4gY2F0ZWdvcnkgaXMgYSBkZXNjZW5kZW50IG9mIGFu b3RoZXIgY2F0ZWdvcnkpPC9saT4KCQk8bGk+PGNvZGU+TlVMTDwvY29kZT4gKHVzZWZ1bCB3 aGVuIGNvbXBhcmluZyBhcmJpdHJhcnkgdmFsdWVzIGZvciBlbXB0aW5lc3MpPC9saT4KCTwv dWw+CgoJPHA+SWYgeW91IHNwZWNpZnkgYSBmaWVsZCBuYW1lIHRoYXQgZG9lcyBub3QgZXhp c3QsIHRoZSB0ZXh0IHlvdSB1c2Ugd2lsbCBiZSB0YWtlbiB2ZXJiYXRpbSBpbiBtb3N0IGNh c2VzLjwvcD4KCgk8cD5JZiB5b3Ugd2lzaCB0byBjb21wYXJlIGEgZmllbGQgdGhhdCBtaWdo dCBjb250YWluIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiAoZS5nIDxjb2RlPmJv ZHk8L2NvZGU+KSwgYWRkIHRoZSBtb2RpZmllciA8Y29kZT46Tk9UQUdTPC9jb2RlPiB0byB0 aGUgZW5kIG9mIHRoZSBmaWVsZC4gSXQgd2lsbCBoYXZlIGl0cyA8c3BhbiBjbGFzcz0iY2Fw cyI+SFRNTDwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3NwYW4+IHRhZ3Mg c3RyaXBwZWQgZnJvbSBpdCBhbmQgd2lsbCBhbHNvIGJlIHRyaW1tZWQgdG8gcmVtb3ZlIGxl YWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlcy4gWW91IG1heSBjaG9vc2UgdG8gc29sZWx5IHJl bW92ZSBzcGFjZXMgZnJvbSBib3RoIHRoZSBzdGFydCBhbmQgZW5kIG9mIGFueSBmaWVsZCBi eSBhZGRpbmcgPGNvZGU+OlRSSU08L2NvZGU+IHRvIHRoZSBlbmQgb2YgdGhlIGZpZWxkLjwv cD4KCgk8cD5UaGUgc3BlY2lhbCBmaWVsZCA8Y29kZT5wYXJlbnQ8L2NvZGU+IGNoZWNrcyB0 aGUgcGFyZW50IGNhdGVnb3J5IGZvciBhIG1hdGNoLiBVbmxpa2UgdGhlIG90aGVyIGZpZWxk IHR5cGVzLCB0aGUgZGVmYXVsdCA8YSBocmVmPSIjb3BlcmF0b3IiPm9wZXJhdG9yPC9hPiBm b3IgcGFyZW50IGlzICYjODIxNjtjb250YWlucyYjODIxNzsuIFRoaXMgaXMgYmVjYXVzZSB0 aGUgZW50aXJlIHRyZWUgaXMgY2hlY2tlZCBmb3IgYSBtYXRjaCwgc3RhcnRpbmcgZnJvbSB0 aGUgdG9wIG9mIHRoZSB0cmVlIGRvd24gdG8gdGhlIGN1cnJlbnQgY2F0ZWdvcnkuIEludGVy bmFsbHksIHRoZSBwbHVnaW4gbWFrZXMgdXAgYSAmIzgyMjA7YnJlYWRjcnVtYiB0cmFpbCYj ODIyMTsgb2YgY2F0ZWdvcmllcyBpbiB0aGUgY3VycmVudCBicmFuY2gsIGVhY2ggc2VwYXJh dGVkIGJ5IGEgc3BhY2UsIHNvIHRlc3RpbmcgZm9yIGVxdWFsaXR5IHdvdWxkIHJlcXVpcmUg cHV0dGluZyB0aGVtIGFsbCBpbiB0aGUgPGEgaHJlZj0iI3ZhbHVlIj52YWx1ZTwvYT4gcGFy YW1ldGVyLjwvcD4KCgk8cD5Zb3UgYXJlIG9mIGNvdXJzZSBmcmVlIHRvIGNob29zZSBhbiBh bHRlcm5hdGl2ZSBvcGVyYXRvcjsgPGNvZGU+YmVnaW5zPC9jb2RlPiBpcyB2ZXJ5IHVzZWZ1 bCBmb3IgdGVzdGluZyBpZiB0aGUgdG9wIGxldmVsIGNhdGVnb3J5IG1hdGNoZXMgdGhlIG9u ZSBnaXZlbiBpbiB0aGUgPGNvZGU+dmFsdWU8L2NvZGU+IGZpZWxkLjwvcD4KCgk8cD5JZiB5 b3UgdXNlIDxjb2RlPnBhcmVudDpMVkxuPC9jb2RlPiwgdGhlIGNvbXBhcmlzb24gd2lsbCBi ZSByZXN0cmljdGVkIHRvIHRoYXQgJiM4MjIwO2xldmVsJiM4MjIxOyBvZiBzdWItY2F0ZWdv cnk7IExWTDEgaXMgdGhlICYjODIyMDt0b3AmIzgyMjE7IGxldmVsLCBMVkwyIGlzIHRoZSBu ZXh0IHN1Yi1jYXRlZ29yeSBsZXZlbCwgYW5kIHNvIG9uLiBXaGVuIHVzaW5nIHRoZXNlIG1v ZGlmaWVycywgdGhlICYjODIxNjtlcSYjODIxNzsgb3BlcmF0b3IgYmVjb21lcyBtb3JlIHVz ZWZ1bCBiZWNhdXNlIHlvdSBhcmUgY29tcGFyaW5nIGEgc2luZ2xlIHBhcmVudCBjYXRlZ29y eS48L3A+CgoJPHA+SWYgeW91IHdpc2ggdG8gY29tcGFyZSBhZ2FpbnN0IHRoZSBjYXRlZ29y eSYjODIxNztzIHRpdGxlIGluc3RlYWQgb2YgaXRzIG5hbWUsIGFkZCB0aGUgPGNvZGU+OlRU TDwvY29kZT4gbW9kaWZpZXIuIFRvIHRlc3QgdGhlIG51bWJlciBvZiBjaGlsZHJlbiB0aGUg Z2l2ZW4gY2F0ZWdvcnkgaGFzLCBzcGVjaWZ5IDxjb2RlPjpLSURTPC9jb2RlPi4gTm90ZSB0 aGF0IDxzcGFuIGNsYXNzPSJjYXBzIj5UVEw8L3NwYW4+IGFuZCA8c3BhbiBjbGFzcz0iY2Fw cyI+S0lEUzwvc3Bhbj4gYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBhbmQgaWYgdGhleSBhcmUg Ym90aCBlbXBsb3llZCwgdGhlIGxhc3Qgb25lIHVzZWQgdGFrZXMgcHJpb3JpdHkuPC9wPgoK CTxwPldoZW4gdXNpbmcgYXJ0aWNsZXMsIHlvdSBjYW4gZnVydGhlciBtb2RpZnkgdGhlIGJl aGF2aW91ciBvZiB0aGUgcGFyZW50IHVzaW5nIHRoZSA8Y29kZT5DQVRuPC9jb2RlPiBzeW50 YXggKHdoZXJlICYjODIxNjtuJiM4MjE3OyBpcyAxIG9yIDIpLiBTcGVjaWZ5aW5nICYjODIy MDtwYXJlbnQmIzgyMjE7IHdpdGhvdXQgPGNvZGU+Q0FUbjwvY29kZT4gd2lsbCB1c2UgdGhl IGdsb2JhbCBjYXRlZ29yeSAoPGNvZGU+P2M9PC9jb2RlPikuIElmIHlvdSBhZGQgPGNvZGU+ OkNBVG48L2NvZGU+IGl0IHdpbGwgaW5zdGVhZCBjb21wYXJlIHRoZSBhcnRpY2xlJiM4MjE3 O3MgY2F0ZWdvcnkxIG9yIGNhdGVnb3J5MiByZXNwZWN0aXZlbHkuPC9wPgoKCTxwPllvdSBj YW4gdXNlIDxzcGFuIGNsYXNzPSJjYXBzIj5DQVQ8L3NwYW4+LCA8c3BhbiBjbGFzcz0iY2Fw cyI+TFZMPC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9ImNhcHMiPlRUTDwvc3Bhbj4vS0lEUyBp biBjb21iaW5hdGlvbiwgaW5kZXBlbmRlbnRseSBvciBub3QgYXQgYWxsLiBUaGlzIGFsbG93 cyBjb21wYXJpc29ucyBzdWNoIGFzICYjODIyMDtpZiB0aGUgMm5kIHN1Yi1jYXRlZ29yeSBv ZiBjYXRlZ29yeTEgZXF1YWxzIGJsYWhibGFoJiM4MjIxOyBvciAmIzgyMjA7aWYgY2F0ZWdv cnkyIGlzIGEgY2hpbGQgb2YgYmxhaGJsYWgmIzgyMjE7LiBTZWUgPGEgaHJlZj0iI2VnNCI+ RXhhbXBsZSA0PC9hPi48L3A+CgoJPHA+T25lIG90aGVyIHNwZWNpYWwgZmllbGQgaXMgPGNv ZGU+TlVMTDwvY29kZT4uIFRoaXMgaXMgZXhhY3RseSB3aGF0IGl0IHNheXMgaXQgaXM6IGVt cHR5LiBUaGUgcmVhc29uIGZvciBpdHMgaW5jbHVzaW9uIGlzIHRoYXQgc29tZXRpbWVzIHlv dSB3aXNoIHRvIHRlc3Qgc29tZXRoaW5nIHRoYXQgaXNuJiM4MjE3O3QgYSB0cnVlIHZhcmlh YmxlICYjODIxMjsgZS5nLiBhIHJlcGxhY2VtZW50IHZhcmlhYmxlIGZyb20gc21kX3ZhcnMg b3Igc21kX2VhY2ggJiM4MjEyOyB0byBzZWUgaWYgaXQmIzgyMTc7cyBlbXB0eSBvciBub3Qu PC9wPgoKCTxwPklmIHlvdSB3ZXJlIHRvIHB1dCB0aGlzOjwvcD4KCgk8cD48Y29kZT4mbHQ7 dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt7cmVzdWx0fSZxdW90OyBvcGVyYXRvcj0mcXVvdDtp c2VtcHR5JnF1b3Q7Jmd0OzwvY29kZT48L3A+CgoJPHA+eW91IHdvdWxkIG5vdCBnZXQgdGhl IHJlc3VsdCB5b3UgZXhwZWN0IChpdCYjODIxNztzIHByZXR0eSBlc290ZXJpYyBidXQgaXQg cmV2b2x2ZXMgYXJvdW5kIHRoZSBmYWN0IHRoYXQgPGNvZGU+JnF1b3Q7JnF1b3Q7PC9jb2Rl PiAoYXMgYSB2YXJpYWJsZSBuYW1lKSBpcyBub3QgZW1wdHksIGl0JiM4MjE3O3MgaW52YWxp ZCkuIFRvIGdldCByb3VuZCB0aGlzIHlvdSBtYXkgdXNlIDxzcGFuIGNsYXNzPSJjYXBzIj5O VUxMPC9zcGFuPiBhcyBhIHBsYWNlaG9sZGVyIGFuZCBtb3ZlIHRoZSB0aGluZyB5b3Ugd2Fu dCB0byBjaGVjayBpbnRvIHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gaW5zdGVhZCwgZS5nOjwv cD4KCgk8cD48Y29kZT4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDtOVUxMJnF1b3Q7IG9w ZXJhdG9yPSZxdW90O2VxJnF1b3Q7IHZhbHVlPSZxdW90O3tyZXN1bHR9JnF1b3Q7Jmd0Ozwv Y29kZT48L3A+CgoJPHA+d2lsbCB0ZXN0IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+TlVMTDwv c3Bhbj4gb2JqZWN0IChpLmUuICYjODIxNjtlbXB0aW5lc3MmIzgyMTc7KSB0byBzZWUgaWYg aXQmIzgyMTc7cyBlcXVhbCB0byB0aGUgPGNvZGU+e3Jlc3VsdH08L2NvZGU+IHJlcGxhY2Vt ZW50IHZhcmlhYmxlLiBZb3UgY2FuIHVzZSBzaW1pbGFyIGxvZ2ljIHRvIHRlc3QgZm9yIG9w dGlvbmFsIHZhcmlhYmxlcyBieSBzd2FwcGluZyB0aGUgZmllbGQgYW5kIHZhbHVlLCBsaWtl IHRoaXM6PC9wPgoKCTxwPjxjb2RlPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90OzcmcXVv dDsgb3BlcmF0b3I9JnF1b3Q7Z3QmcXVvdDsgdmFsdWU9JnF1b3Q7e3Jlc3VsdH0mcXVvdDsm Z3Q7PC9jb2RlPjwvcD4KCgk8cD5UaGF0IHdvdWxkIHNlZSBpZiB0aGUgcmVwbGFjZW1lbnQg dmFyaWFibGUgPGNvZGU+e3Jlc3VsdH08L2NvZGU+IHdhcyBsZXNzIHRoYW4gb3IgZXF1YWwg dG8gNyAodGhhdCYjODIxNztzIG5vdCBhIHR5cG8sIHRoZSBsb2dpYyBpcyByZXZlcnNlZCBp biB0aGlzIGNhc2U6IGl0IGlzIGludGVycHJldGVkIGFzOiAmIzgyMjA7aXMgNyBncmVhdGVy IHRoYW4ge3Jlc3VsdH0mIzgyMjE7LCB3aGljaCBpcyB0aGUgc2FtZSBhcyAmIzgyMjA7aXMg e3Jlc3VsdH0gbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDcmIzgyMjE7ISk8L3A+CgoJPGg0IGNs YXNzPSJhdHQtbmFtZSAiIGlkPSJvcGVyYXRvciI+b3BlcmF0b3I8L2g0PgoKCTxwPkxpc3Qg b2Ygb3BlcmF0b3JzIHRvIGFwcGx5LCBpbiBvcmRlciwgdG8gZWFjaCBmaWVsZC4gQ2hvb3Nl IGZyb206PC9wPgoKCTx1bD4KCQk8bGk+PGNvZGU+ZXE8L2NvZGU+IEVxdWFsICh0aGUgZGVm YXVsdCBmb3IgYWxsIGV4Y2VwdCAmIzgyMTY7cGFyZW50JiM4MjE3Oyk8L2xpPgoJCTxsaT48 Y29kZT5ub3Q8L2NvZGU+IE5vdCBlcXVhbDwvbGk+CgkJPGxpPjxjb2RlPmx0PC9jb2RlPiBM ZXNzIHRoYW48L2xpPgoJCTxsaT48Y29kZT5ndDwvY29kZT4gR3JlYXRlciB0aGFuPC9saT4K CQk8bGk+PGNvZGU+bGU8L2NvZGU+IExlc3MgdGhhbiBvciBlcXVhbCB0bzwvbGk+CgkJPGxp Pjxjb2RlPmdlPC9jb2RlPiBHcmVhdGVyIHRoYW4gb3IgZXF1YWwgdG88L2xpPgoJCTxsaT48 Y29kZT5pbjwvY29kZT4gRmllbGQgaXMgb25lIG9mIGEgbGlzdCBvZiB2YWx1ZXMgKHVzZSA8 Y29kZT5saXN0X2RlbGltPC9jb2RlPiB0byBzZXBhcmF0ZSB2YWx1ZXMpPC9saT4KCQk8bGk+ PGNvZGU+bm90aW48L2NvZGU+IEZpZWxkIGlzIG5vdCBvbmUgb2YgdGhlIGdpdmVuIGxpc3Qg b2YgdmFsdWVzICh1c2UgPGNvZGU+bGlzdF9kZWxpbTwvY29kZT4gdG8gc2VwYXJhdGUgdmFs dWVzKTwvbGk+CgkJPGxpPjxjb2RlPmRpdmlzaWJsZTwvY29kZT4gRmllbGQgaXMgZXhhY3Rs eSBkaXZpc2libGUgYnkgdGhlIHZhbHVlPC9saT4KCQk8bGk+PGNvZGU+YmV0d2VlbjwvY29k ZT4gRmllbGQgbGllcyBiZXR3ZWVuIHRoZSBnaXZlbiB2YWx1ZXMsIGV4Y2x1c2l2ZSAodXNl IDxjb2RlPmxpc3RfZGVsaW08L2NvZGU+IHRvIHNlcGFyYXRlIHZhbHVlcyk8L2xpPgoJCTxs aT48Y29kZT5yYW5nZTwvY29kZT4gRmllbGQgaXMgd2l0aGluIHRoZSByYW5nZSBvZiBnaXZl biB2YWx1ZXMsIGluY2x1c2l2ZSAodXNlIDxjb2RlPmxpc3RfZGVsaW08L2NvZGU+IHRvIHNl cGFyYXRlIHZhbHVlcyk8L2xpPgoJCTxsaT48Y29kZT5iZWdpbnM8L2NvZGU+IEZpZWxkIGJl Z2lucyB3aXRoIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVyczwvbGk+CgkJPGxpPjxjb2RlPmNv bnRhaW5zPC9jb2RlPiBGaWVsZCBjb250YWlucyBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMg KGRlZmF1bHQgZm9yICYjODIxNjtwYXJlbnQmIzgyMTc7KTwvbGk+CgkJPGxpPjxjb2RlPmVu ZHM8L2NvZGU+IEZpZWxkIGVuZHMgd2l0aCBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnM8L2xp PgoJCTxsaT48Y29kZT5pc2VtcHR5PC9jb2RlPiBGaWVsZCBpcyBlbXB0eSAoY29udGFpbnMg bm90aGluZyk8L2xpPgoJCTxsaT48Y29kZT5pc3VzZWQ8L2NvZGU+IEZpZWxkIGhhcyBzb21l IHZhbHVlPC9saT4KCQk8bGk+PGNvZGU+ZGVmaW5lZDwvY29kZT4gRmllbGQgaXMgc2V0ICh1 c2VmdWwgd2l0aCB1cmx2YXIgdmFyaWFibGVzKTwvbGk+CgkJPGxpPjxjb2RlPnVuZGVmaW5l ZDwvY29kZT4gRmllbGQgaXMgbm90IHNldCwgb3IgbWlzc2luZyBmcm9tIHRoZSA8c3BhbiBj bGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBsaW5lPC9saT4KCQk8bGk+PGNvZGU+aXNudW08L2Nv ZGU+IEZpZWxkIGlzIGEgbnVtYmVyPC9saT4KCQk8bGk+PGNvZGU+aXNhbHBoYTwvY29kZT4g RmllbGQgY29udGFpbnMgY2hhcmFjdGVycyBvbmx5PC9saT4KCQk8bGk+PGNvZGU+aXNhbG51 bTwvY29kZT4gRmllbGQgY29udGFpbnMgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgb25seTwv bGk+CgkJPGxpPjxjb2RlPmlzbG93ZXI8L2NvZGU+IEV2ZXJ5IGNoYXJhY3RlciBpbiB0aGUg ZmllbGQgaXMgbG93ZXIgY2FzZTwvbGk+CgkJPGxpPjxjb2RlPmlzdXBwZXI8L2NvZGU+IEV2 ZXJ5IGNoYXJhY3RlciBpbiB0aGUgZmllbGQgaXMgdXBwZXIgY2FzZTwvbGk+CgkJPGxpPjxj b2RlPmlzcHVuY3Q8L2NvZGU+IEV2ZXJ5IGNoYXJhY3RlciBpbiB0aGUgZmllbGQgaXMgc29t ZSBwdW5jdHVhdGlvbiBtYXJrPC9saT4KCQk8bGk+PGNvZGU+aXNzcGFjZTwvY29kZT4gRXZl cnkgY2hhcmFjdGVyIGluIHRoZSBmaWVsZCBpcyBhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIChv ciB0YWIsIG5ld2xpbmUsIGV0Yyk8L2xpPgoJPC91bD4KCgk8cD5XaXRoIHRoZSBjb21wYXJp c29uIG9wZXJhdG9ycyAocHJpbWFyaWx5IGd0LCBsdCwgZ2UsIGxlKSB5b3UgbWF5IGZpbmQg b2RkIGJlaGF2aW91ciB3aGVuIGNvbXBhcmluZyBudW1iZXJzLiBGb3IgZXhhbXBsZSwgPGNv ZGU+dXJsdmFyOnBpYyBndCA2PC9jb2RlPiB3aWxsIHJldHVybiA8c3BhbiBjbGFzcz0iY2Fw cyI+VFJVRTwvc3Bhbj4gaWYgPGNvZGU+cGljPC9jb2RlPiBpcyBzZXQgdG8gJiM4MjIwO2Zy ZWQmIzgyMjE7LiBUaGlzIGlzIGJlY2F1c2UgdGhlIHdvcmQgJiM4MjIwO2ZyZWQmIzgyMjE7 IChvciBhdCBsZWFzdCB0aGUgJiM4MjIwO2NoYXJhY3RlciBmJiM4MjIxOykgaXMgZ3JlYXRl ciBpbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPkFTQ0lJPC9zcGFuPiB0YWJsZSB0aGFuIHRo ZSAmIzgyMjA7Y2hhcmFjdGVyIDYmIzgyMjE7LjwvcD4KCgk8cD5UbyBjaXJjdW12ZW50IHRo aXMgcHJvYmxlbSwgeW91IG1heSBhcHBlbmQgPGNvZGU+Ok5VTTwvY29kZT4gdG8gdGhlIGVu ZCBvZiBhbnkgb2YgdGhlc2Ugb3BlcmF0b3JzIHRvIGZvcmNlIHRoZSBwbHVnaW4gdG8gY2hl Y2sgdGhhdCB0aGUgdmFsdWVzIGFyZSBpbnRlZ2Vycy48L3A+CgoJPHA+SWYgeW91IHdpc2gg dG8gY29tcGFyZSB0aGUgbGVuZ3RoIG9mIGEgZmllbGQgb3IgdmFsdWUsIGFwcGVuZCA8Y29k ZT46TEVOPC9jb2RlPiB0byBhbnkgb2YgdGhlIG51bWVyaWNhbCBjb21wYXJpc29uIG9wZXJh dG9ycy4gSXQgZG9lc24mIzgyMTc7dCBtYWtlIHNlbnNlIHRvIHVzZSBib3RoIDxjb2RlPjpO VU08L2NvZGU+IGFuZCA8Y29kZT46TEVOPC9jb2RlPiB0b2dldGhlciwgc28gdGhleSBhcmUg bXV0dWFsbHkgZXhjbHVzaXZlLjwvcD4KCgk8cD5UaGVyZSBpcyBhIHN1YnRsZSBkaWZmZXJl bmNlIGJldHdlZW4gdGhlIG9wZXJhdG9ycyA8Y29kZT5iZXR3ZWVuPC9jb2RlPiBhbmQgPGNv ZGU+cmFuZ2U8L2NvZGU+OyB0aGUgZm9ybWVyIGRvZXMgbm90IGluY2x1ZGUgdGhlIGVuZHBv aW50IHZhbHVlcyB5b3Ugc3BlY2lmeSB3aGVyZWFzIHRoZSBsYXR0ZXIgZG9lcy4gRm9yIGV4 YW1wbGUsIHRoZSB2YWx1ZSA8Y29kZT4xMDwvY29kZT4gaXMgaW4gdGhlIHJhbmdlIDxjb2Rl PjEwLzIwPC9jb2RlPiBidXQgaXQgaXMgPGVtPm5vdDwvZW0+IGJldHdlZW4gPGNvZGU+MTAv MjA8L2NvZGU+LiBUaGUgdmFsdWUgPGNvZGU+MTE8L2NvZGU+LCBob3dldmVyLCBzYXRpc2Zp ZXMgYm90aC4gWW91IGNhbiB1c2UgdGhlIDxjb2RlPjpOVU08L2NvZGU+IG1vZGlmaWVyIGZv ciB0aGVzZSB0d28gb3BlcmF0b3JzLCB0aG91Z2ggbW9zdCB0ZXN0cyB3aWxsIHdvcmsgZmlu ZSB3aXRob3V0IGl0LiBZb3UgY2FuIGFsc28gY29tcGFyZSBub24taW50ZWdlciB2YWx1ZXMg d2l0aCB0aGVzZSBvcGVyYXRvcnMuPC9wPgoKCTxwPlRoZSA8Y29kZT5iZWdpbnM8L2NvZGU+ LCA8Y29kZT5lbmRzPC9jb2RlPiBhbmQgPGNvZGU+Y29udGFpbnM8L2NvZGU+IG9wZXJhdG9y cywgYWxvbmcgd2l0aCBhbnkgb2YgdGhlIDxjb2RlPmlzPC9jb2RlPiBvcGVyYXRvcnMgKGV4 Y2VwdCA8Y29kZT5pc3NwYWNlPC9jb2RlPiksIGNhbiB0YWtlIGFuIGV4dHJhIHBhcmFtZXRl ciBhcyB3ZWxsLiBTaW5jZSB0aGV5IGNvbXBhcmUgZXZlcnkgY2hhcmFjdGVyIGFnYWluc3Qg dGhlIGdpdmVuIGJlaGF2aW91ciwgc3BhY2UgY2hhcmFjdGVycyBjYW4gbWVzcyB0aGluZ3Mg dXAgYSBiaXQuIEZvciBleGFtcGxlIDxjb2RlPmZpZWxkPSZxdW90O2N1c3RvbTEmcXVvdDsg b3BlcmF0b3I9JnF1b3Q7aXNsb3dlciZxdW90OzwvY29kZT4gd2lsbCBmYWlsIGlmIGN1c3Rv bTEgY29udGFpbnMgJiM4MjIwO3RoaXMgaXMgYSB0ZXN0JiM4MjIxOy4gT3IgY29tcGFyaW5n IHNvbWV0aGluZyB0byA8Y29kZT5ib2R5PC9jb2RlPiBjYW4gZmFpbCBiZWNhdXNlIHRoZSBi b2R5IG9mdGVuIHN0YXJ0cyB3aXRoIGEgbnVtYmVyIG9mIHNwYWNlIGNoYXJhY3RlcnMuIFRv IGNpcmN1bXZlbnQgdGhpcywgYWRkIDxjb2RlPjpOT1NQQUNFPC9jb2RlPiB0byB0aGUgb3Bl cmF0b3Igd2hpY2ggd2lsbCByZW1vdmUgYWxsIHNwYWNlcyBmcm9tIHRoZSBzdHJpbmcgYmVm b3JlIHRlc3RpbmcgaXQuPC9wPgoKCTxwPk5vdGUgYWxzbyB0aGF0IHdoaWxlIDxjb2RlPmRl ZmluZWQ8L2NvZGU+IGFuZCA8Y29kZT51bmRlZmluZWQ8L2NvZGU+IGRpZmZlciBzZW1hbnRp Y2FsbHkgZnJvbSA8Y29kZT5pc3VzZWQ8L2NvZGU+IGFuZCA8Y29kZT5pc2VtcHR5PC9jb2Rl PiAocmVzcGVjdGl2ZWx5KSwgdGhlIHdheSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFu PiBhc3NpZ25zIHZhcmlhYmxlcyBtZWFucyB0aGF0LCBmb3IgdGhlIG1vc3QgcGFydCwgdGhl IHRlcm1zIGFyZSBpbnRlcmNoYW5nZWFibGUuIFdoZW4gZGVhbGluZyB3aXRoIHVybHZhcnMs IHBvc3R2YXJzIGFuZCBzdnJ2YXJzLCB0aGUgdHdvIHNldHMgb2Ygb3BlcmF0b3JzIGJlaGF2 ZSBpbmRlcGVuZGVudGx5LCBhcyB5b3Ugd291bGQgZXhwZWN0LiBTZWUgPGEgaHJlZj0iI2Vn NSI+RXhhbXBsZSA1PC9hPiBmb3IgbW9yZS4gTmVpdGhlciA8Y29kZT5kZWZpbmVkPC9jb2Rl PiBub3IgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBtYWtlIHNlbnNlIHdpdGggPGNvZGU+cGFy ZW50PC9jb2RlPiwgc28gdGhleSBhcmUgZm9yYmlkZGVuLjwvcD4KCgk8aDQgY2xhc3M9ImF0 dC1uYW1lICIgaWQ9InZhbHVlIj52YWx1ZTwvaDQ+CgoJPHA+TGlzdCBvZiB2YWx1ZXMgdG8g Y29tcGFyZSBlYWNoIGZpZWxkIGluIHR1cm4gdG8uIENhbiBiZSBzdGF0aWMgdmFsdWVzL3Rl eHQgb3IgdGhlIG5hbWUgb2YgYW55IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGZp ZWxkLCBsaWtlIHRob3NlIGdpdmVuIGluIDxhIGhyZWY9IiNmaWVsZCI+ZmllbGQ8L2E+IChl eGNlcHQgJiM4MjIwO3BhcmVudCYjODIyMTspLjwvcD4KCgk8cD5UbyBkaXN0aW5ndWlzaCBh IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGZpZWxkIGZyb20gc3RhdGljIHRleHQs IHByZWZpeCB0aGUgZmllbGQgbmFtZSB3aXRoIDxjb2RlPj88L2NvZGU+LiBGb3IgZXhhbXBs ZTogPGNvZGU+dmFsdWU9JnF1b3Q7dGl0bGUmcXVvdDs8L2NvZGU+IHdpbGwgY29tcGFyZSB5 b3VyIGNob3NlbiBmaWVsZCBhZ2FpbnN0IHRoZSB3b3JkICYjODIyMDt0aXRsZSYjODIyMTss IHdoZXJlYXMgPGNvZGU+dmFsdWU9JnF1b3Q7P3RpdGxlJnF1b3Q7PC9jb2RlPiB3aWxsIGNv bXBhcmUgeW91ciBmaWVsZCBhZ2FpbnN0IHRoZSBjdXJyZW50IGFydGljbGUmIzgyMTc7cyB0 aXRsZS48L3A+CgoJPHA+SWYgeW91IHdpc2ggdG8gY29tcGFyZSBhIHZhbHVlIHRoYXQgbWln aHQgY29udGFpbiA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gKGUuZyA8Y29kZT4/ Ym9keTwvY29kZT4pLCBhZGQgdGhlIG1vZGlmaWVyIDxjb2RlPjpOT1RBR1M8L2NvZGU+IHRv IHRoZSBlbmQgb2YgdGhlIHZhbHVlLiBJdCB3aWxsIGhhdmUgYW55IDxzcGFuIGNsYXNzPSJj YXBzIj5IVE1MPC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gdGFn cyBzdHJpcHBlZCBmcm9tIGl0IGFuZCB3aWxsIGFsc28gYmUgdHJpbW1lZCB0byByZW1vdmUg bGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzLiBZb3UgbWF5IGNob29zZSB0byBzb2xlbHkg cmVtb3ZlIHNwYWNlcyBmcm9tIGJvdGggdGhlIHN0YXJ0IGFuZCBlbmQgb2YgYW55IHZhbHVl IGJ5IGFkZGluZyA8Y29kZT46VFJJTTwvY29kZT4gdG8gdGhlIGVuZCBvZiB0aGUgdmFsdWUu PC9wPgoKCTxwPk5vdGUgdGhhdCB5b3UgbWF5IGZpbmQgdXNpbmcgZG91YmxlLXF1b3RlcyBp biBmaWVsZHMgZ2l2ZXMgdW5leHBlY3RlZCByZXN1bHRzLiBUaGV5IGFyZSBiZXN0IGF2b2lk ZWQsIG9yIHdvcmtlZCBhcm91bmQgYnkgdXNpbmcgPGNvZGU+Y29udGFpbnM8L2NvZGU+IGlu c3RlYWQgb2YgPGNvZGU+ZXE8L2NvZGU+LjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIg aWQ9ImxvZ2ljIj5sb2dpYzwvaDQ+CgoJPHA+Q2FuIGJlIG9uZSBvZiA8Y29kZT5hbmQ8L2Nv ZGU+ICh0aGUgZGVmYXVsdCkgb3IgPGNvZGU+b3I8L2NvZGU+LiBJZiB1c2luZyA8Y29kZT5h bmQ8L2NvZGU+LCBhbGwgY29uZGl0aW9ucyBtdXN0IGJlIG1ldCBmb3IgYSA8c3BhbiBjbGFz cz0iY2FwcyI+VFJVRTwvc3Bhbj4gcmVzdWx0LiBJZiB1c2luZyA8Y29kZT5vcjwvY29kZT4s IGFueSBvZiB0aGUgY29uZGl0aW9ucyB0aGF0IG1hdGNoIHdpbGwgZ2l2ZSBhIDxzcGFuIGNs YXNzPSJjYXBzIj5UUlVFPC9zcGFuPiByZXN1bHQuPC9wPgoKCTxoNCBjbGFzcz0iYXR0LW5h bWUgIiBpZD0iY2FzZXNlbnNlIj5jYXNlX3NlbnNpdGl2ZTwvaDQ+CgoJPHA+QnkgZGVmYXVs dCwgYWxsIGNvbXBhcmlzb25zIGFyZSBjYXNlLWluc2Vuc2l0aXZlICgwKS4gSWYgeW91IHdp c2ggdG8gbWFrZSB0aGVtIHNlbnNpdGl2ZSB0byBjYXB0aWxpc2F0aW9uLCBzcGVjaWZ5IDxj b2RlPmNhc2Vfc2Vuc2l0aXZlPSZxdW90OzEmcXVvdDs8L2NvZGU+LiBOb3RlIHRoYXQgaWYg dXNpbmcgPGNvZGU+aXNsb3dlcjwvY29kZT4gb3IgPGNvZGU+aXN1cHBlcjwvY29kZT4gaW4g YSBjb21wYXJpc29uLCBjYXNlIHNlbnNpdGl2aXR5IHdpbGwgYXV0b21hdGljYWxseSBiZSBz d2l0Y2hlZCBvbiB3aGlsZSB0aGUgdGVzdCBpcyB0YWtpbmcgcGxhY2UuPC9wPgoKCTxoNCBj bGFzcz0iYXR0LW5hbWUgIiBpZD0icGFyYW1kZWxpbSI+cGFyYW1fZGVsaW08L2g0PgoKCTxw PllvdSBub3JtYWxseSBzcGVjaWZ5IGNvbW1hLXNlcGFyYXRlZCBsaXN0cyB0byB0aGUgPGNv ZGU+ZmllbGQ8L2NvZGU+LCA8Y29kZT5vcGVyYXRvcjwvY29kZT4gYW5kIDxjb2RlPnZhbHVl PC9jb2RlPiBwYXJhbWV0ZXJzLiBTb21ldGltZXMgdGhpcyBtaWdodCBub3QgYmUgZGVzaXJh YmxlIGlmIHlvdSBoYXZlIHVzZWQgdGhhdCBjaGFyYWN0ZXIgaW4gdGhlIG5hbWUgb2YgYSBj dXN0b20gZmllbGQsIGZvciBleGFtcGxlLiBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGNo YW5nZSB0aGUgZGVsaW1pdGVyIHRvIGFsbW9zdCBhbnl0aGluZyB5b3UgbGlrZSwgZS5nLiBz cGVjaWZ5aW5nIDxjb2RlPnBhcmFtX2RlbGltPSZxdW90Oy8vJnF1b3Q7PC9jb2RlPiBtZWFu cyB5b3Ugd291bGQgc3BlY2lmeSA8ZW0+YWxsPC9lbT4geW91ciBwYXJhbWV0ZXIgbGlzdHMg bGlrZSB0aGlzOjwvcD4KCgk8cD48Y29kZT5maWVsZD0mcXVvdDtzZWN0aW9uIC8vIHVybHZh cjp0eXBlJnF1b3Q7IG9wZXJhdG9yPSZxdW90O2VxIC8vIGJlZ2lucyZxdW90OyB2YWx1ZT0m cXVvdDthbmltYWxzIC8vIHRpZ2VyJnF1b3Q7PC9jb2RlPjwvcD4KCgk8aDQgY2xhc3M9ImF0 dC1uYW1lICIgaWQ9Im1vZGRlbGltIj5tb2RfZGVsaW08L2g0PgoKCTxwPlZlcnkgc2ltaWxh ciB0byA8YSBocmVmPSIjcGFyYW1kZWxpbSI+cGFyYW1fZGVsaW08L2E+LCB0aGlzIGdvdmVy bnMgdGhlIGRlbGltaXRlciB0byB1c2UgYmV0d2VlbiBhbiBvcHRpb24gYW5kIGl0cyBtb2Rp ZmllciAoZS5nLiB0aGUgdGhpbmcgc2VwYXJhdGluZyB1cmx2YXIsIHBvc3R2YXIsIHN2cnZh ciBvciB0eHB2YXIgZnJvbSB0aGUgdmFyaWFibGUgbmFtZSwgb3IgcGFyZW50IGZyb20gPGNv ZGU+TFZMPC9jb2RlPiBhbmQgPGNvZGU+Q0FUPC9jb2RlPiwgYW5kIGFsc28gdGhlIGNoYXJh Y3RlcihzKSB0aGF0IHNlcGFyYXRlIGFuIG9wZXJhdG9yIGZyb20gdGhlIDxzcGFuIGNsYXNz PSJjYXBzIj5OVU08L3NwYW4+IG9yIDxzcGFuIGNsYXNzPSJjYXBzIj5OT1NQQUNFPC9zcGFu PiBtb2RpZmllcnMpLiBJdCBpcyB0aGUgY29sb24gKDopIGJ5IGRlZmF1bHQuPC9wPgoKCTxo NCBjbGFzcz0iYXR0LW5hbWUgIiBpZD0ibGlzdGRlbGltIj5saXN0X2RlbGltPC9oND4KCgk8 cD5Gb3IgdXNlIHdpdGggdGhlIDxjb2RlPmluPC9jb2RlPiwgPGNvZGU+bm90aW48L2NvZGU+ LCA8Y29kZT5iZXR3ZWVuPC9jb2RlPiBhbmQgPGNvZGU+cmFuZ2U8L2NvZGU+IG9wZXJhdG9y cywgdGhpcyBpcyB0aGUgZGVsaW1pdGVyIGJldHdlZW4gdmFsdWVzLiBJdCBpcyB0aGUgZm9y d2FyZC1zbGFzaCAoLykgYnkgZGVmYXVsdC4gQSBjb250cml2ZWQgZXhhbXBsZTo8L3A+Cgo8 cHJlPjxjb2RlPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3R4cHZhcjpsZXZlbCZxdW90 OyBvcGVyYXRvcj0mcXVvdDtpbiZxdW90OwogICAgIHZhbHVlPSZxdW90OzEvMi8zLzUvOC8x My8yMS8zNCZxdW90OyZndDsKICAmbHQ7cCZndDtSZXN1bHQgaXMgYSBGaWJvbmFjY2kgdmFs dWUhJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5O b3RlIHRoYXQgaW4gYWxsICYjODIxNjtkZWxpbSYjODIxNzsgYXR0cmlidXRlcywgc29tZSBj aGFyYWN0ZXIgc2VxdWVuY2VzIG1heSBjYXVzZSBwcm9ibGVtcyAocXVvdGVzICYjODIxMjsg c2luZ2xlIG9yIGRvdWJsZSAmIzgyMTI7IHNwcmluZyB0byBtaW5kOyBvdGhlcnMgbGlrZSBw YXJlbnRoZXNlcyBtYXkgYWxzbyBjYXVzZSB0aGUgcGx1Z2luIHRvIGV4cGxvZGUpLjwvcD4K Cgk8aDM+UmVwbGFjZW1lbnQgdGFnczwvaDM+CgoJPHA+RXZlcnkgZmllbGQgb3IgdmFsdWUg dGhhdCB5b3UgcmVmZXIgdG8gaW4geW91ciBzbWRfaWYgdGFnIGJlY29tZXMgYXZhaWxhYmxl IHdpdGhpbiB0aGUgY29udGFpbmluZyBibG9jayBzbyB5b3UgY2FuIGRpc3BsYXkgaXRzIGNv bnRlbnRzIGlmIHlvdSB3aXNoLiBNb3N0IG9mIHRoZSB0aW1lIHRoaXMgaXMgbm90IG11Y2gg dXNlIGJ1dCBpdCBjYW4gYmUgdmVyeSB1c2VmdWwgd2l0aCB0aGUgPGNvZGU+aW48L2NvZGU+ IG9wZXJhdG9yIG9yIHRoZSA8Y29kZT46TEVOPC9jb2RlPiBtb2RpZmllciAuIEZvciBpbnN0 YW5jZSwgaWYgeW91IGhhdmUgYXNrZWQgc21kX2lmIHRvIHRlc3QgdGhlIDxzcGFuIGNsYXNz PSJjYXBzIj5VUkw8L3NwYW4+IHZhcmlhYmxlIG5hbWVkICYjODIxNjtsZXZlbCYjODIxNzsg YW5kIHRvbGQgaXQgdG8gY29tcGFyZSBpdCB0byB0aGUgY3VzdG9tIGZpZWxkIGxhYmVsbGVk ICYjODIxNjthbGxvd2FibGVfbGV2ZWxzJiM4MjE3OywgdHdvIHRhZ3MgYmVjb21lIGF2YWls YWJsZSB3aGljaCB5b3UgY2FuIHVzZSB3aXRoaW4gdGhlIGNvbnRhaW5pbmcgYmxvY2s6PC9w PgoKCTx1bD4KCQk8bGk+PGNvZGU+e3NtZF9pZl9sZXZlbH08L2NvZGU+IHdvdWxkIGRpc3Bs YXkgdGhlIHZhbHVlIG9mIHRoZSAmIzgyMTY7bGV2ZWwmIzgyMTc7IDxzcGFuIGNsYXNzPSJj YXBzIj5VUkw8L3NwYW4+IHZhcmlhYmxlPC9saT4KCQk8bGk+PGNvZGU+e3NtZF9pZl9hbGxv d2FibGVfbGV2ZWxzfTwvY29kZT4gd291bGQgZGlzcGxheSB0aGUgY29udGVudHMgb2YgdGhl IGN1cnJlbnQgYXJ0aWNsZSYjODIxNztzIGN1c3RvbSBmaWVsZDwvbGk+Cgk8L3VsPgoKCTxw PlRoZSByZXBsYWNlbWVudCB0YWdzIGFyZSBhbHdheXMgcHJlZml4ZWQgd2l0aCA8Y29kZT5z bWRfaWZfPC9jb2RlPiBzbyB0aGV5IGRvbiYjODIxNzt0IGNsYXNoIHdpdGggdGhlIG9uZXMg aW4gc21kX2dhbGxlcnkgKGZvciBleGFtcGxlLCB3aGVuIHVzaW5nIHNtZF9pZiBpbnNpZGUg YW4gc21kX2dhbGxlcnkgdGFnKS4gSWYgeW91IGFyZSBjb21wYXJpbmcgYSBmaXhlZC12YWx1 ZSBmaWVsZCAoc3VjaCBhcyA8Y29kZT5maWVsZD0mcXVvdDtOVUxMJnF1b3Q7PC9jb2RlPiBv ciA8Y29kZT52YWx1ZT0mcXVvdDsxMiZxdW90OzwvY29kZT4gb3Igc21kX2dhbGxlcnkmIzgy MTc7cyA8Y29kZT52YWx1ZT0mcXVvdDt7Y2F0ZWdvcnl9JnF1b3Q7PC9jb2RlPikgdGhlIG5h bWUgb2YgdGhlIHJlcGxhY2VtZW50IHRhZ3MgYXJlIDxjb2RlPntzbWRfaWZfZmllbGROfTwv Y29kZT4gZm9yIGZpZWxkcyBhbmQgPGNvZGU+e3NtZF9pZl92YWxOfTwvY29kZT4gZm9yIHZh bHVlcywgd2hlcmUgTiBpcyB0aGUgdGVzdCBudW1iZXIgc3RhcnRpbmcgZnJvbSAxLjwvcD4K Cgk8cD5UaGVyZSBhcmUgYWxzbyB0d28gJiM4MjE2O2xlbmd0aCYjODIxNzsgcmVwbGFjZW1l bnQgdGFncy4gRm9sbG93aW5nIGEgc2ltaWxhciBjb252ZW50aW9uIHRvIGFib3ZlLCB0aGVz ZSBhcmUgcHJlZml4ZWQgd2l0aCA8Y29kZT5zbWRfaWZfbGVuXzwvY29kZT4uIElmIHlvdSBn ZXQgc3R1Y2ssIHRlbXBvcmFyaWx5IHN3aXRjaCA8Y29kZT5kZWJ1Zz0mcXVvdDsxJnF1b3Q7 PC9jb2RlPiBvbiB0byBzZWUgdGhlIHJlcGxhY2VtZW50cyBhdmFpbGFibGUgYW5kIHRoZWly IGFzc29jaWF0ZWQgbmFtZXMvdmFsdWVzLjwvcD4KCgk8cD5TZWUgPGEgaHJlZj0iI2VnOCI+ RXhhbXBsZSA4PC9hPiBhbmQgPGEgaHJlZj0iI2VnOSI+OTwvYT4gZm9yIG1vcmUuPC9wPgoK CTxoMiBpZD0iZmlsdGVyaW5nIj5GaWx0ZXJpbmc8L2gyPgoKCTxwPkFsbCB1c2VyIGlucHV0 IGlzIHRhaW50ZWQgYnkgZGVmYXVsdC48L3A+CgoJPHA+QW55IHRpbWUgeW91IHJlbHkgb24g c29tZW9uZSB0byBlbnRlciBzb21ldGhpbmcsIGF0IGxlYXN0IG9uZSBwZXJzb24gd2lsbCBp bnZhcmlhYmx5IGNhdGNoIHlvdSBvdXQ7IGVpdGhlciBhY2NpZGVudGFsbHkgb3IgbWFsaWNp b3VzbHkuIEZvciB0aGlzIHJlYXNvbiwgc21kX2lmIHN1cHBvcnRzIHBvd2VyZnVsIGZpbHRl cmluZyBydWxlcyBzbyB5b3UgY2FuIHRyYXAgYW5kIHJlbW92ZSBzdXNwZWN0IGlucHV0LiBJ dCBhbHJlYWR5IGRvZXMgc29tZSBvZiB0aGlzIGZvciB5b3Ugd2l0aCB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPk5PVEFHUzwvc3Bhbj4gbW9kaWZpZXIsIGJ1dCBmaWx0ZXJpbmcgZ2l2ZXMg YW5vdGhlciBsZXZlbCBvZiBjb250cm9sIGFib3ZlIHRoYXQuPC9wPgoKCTxwPkxldCYjODIx NztzIHNheSB5b3UgYXJlIGFza2luZyB0aGUgdXNlciB0byBlbnRlciBhIHZhbHVlIGFuZCB5 b3UgbmVlZCB0byBjb21wYXJlIGl0IHRvIGEgcmFuZ2UuIFdoYXQgaWYsIGluc3RlYWQgb2Yg YSBudW1iZXIsIHRoZXkgZW50ZXJlZCA8Y29kZT5mcjNkPC9jb2RlPiBvciA8Y29kZT47cm0g LXJmIDEqOzwvY29kZT4uIFRoZSBwbHVnaW4gbWlnaHQganVzdCBmYWxsIG92ZXIgKHByb2Jh Ymx5IHdpdGggYW4gZXJyb3IsIHdoaWNoIGlzIG5vdCB2ZXJ5IHBsZWFzYW50IGZvciB1c2Vy cyksIG9yIGl0IG1pZ2h0IGNhdXNlIGhhcm0gdG8gdGhlIGZpbGVzeXN0ZW0gaWYgYSBwZXJz b24gdHJ5aW5nIHRvIGhhY2sgeW91ciBzaXRlIHdhcyBza2lsbGVkIGVub3VnaCAoaXQmIzgy MTc7cyB1bmxpa2VseSwgYnV0IHBvc3NpYmxlKS48L3A+CgoJPHA+SW4gYm90aCBjYXNlcywg ZmlsdGVyaW5nIGNvbWVzIHRvIHRoZSByZXNjdWUuIFlvdSBjYW4gc3BlY2lmeSB0aGF0IHlv dSA8ZW0+ZXhwZWN0PC9lbT4gb25seSBkaWdpdHMgZnJvbSAwIHRvIDkgaW4geW91ciBmaWVs ZHMgYW5kIGNhbiB0ZWxsIHRoZSBwbHVnaW4gdG8gY2hvcCBvdXQgYW55dGhpbmcgdGhhdCBp cyBub3QgbnVtZXJpYy4gU28gaW4gdGhlIGZpcnN0IGNhc2UgYWJvdmUsIGFsbCB5b3Ugd291 bGQgc2VlIGlmIHRoZSB1c2VyIGVudGVyZWQgJiM4MjE2O2ZyM2QmIzgyMTc7IHdvdWxkIGJl ICYjODIxNjszJiM4MjE3Oy48L3A+CgoJPHA+Rm9ydHVuYXRlbHkgJiM4MjEyOyBhbmQgdW5m b3J0dW5hdGVseSAmIzgyMTI7IGl0JiM4MjE3O3MgYnVpbHQgYXJvdW5kIDxhIGhyZWY9Imh0 dHA6Ly93d3cucmVndWxhci1leHByZXNzaW9ucy5pbmZvLyI+cmVndWxhciBleHByZXNzaW9u czwvYT4gd2hpY2ggYXJlIGZpZW5kaXNobHkgcG93ZXJmdWwgYnV0IGNhbiBhbHNvIGJlIGZp ZW5kaXNobHkgdHJpY2t5IHRvIGxlYXJuIGlmIHlvdSBhcmUgbm90IGZhbWlsaWFyLiBUaGV5 IGFyZSB3b3J0aCBsZWFybmluZy48L3A+CgoJPHA+TGV0JiM4MjE3O3MgZGl2ZSBpbiBhdCB0 aGUgZGVlcCBlbmQgYW5kIHRlbGwgdGhlIHBsdWdpbiB0aGF0LCB1bmRlciBubyBjaXJjdW1z dGFuY2VzLCBtdXN0IHdlIGFsbG93IGFueSBpbnB1dCB0aGF0IGlzIG5vbi1udW1lcmljOjwv cD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6dmFy aWFibGUgbmFtZT0mcXVvdDtoaWdoZXN0JnF1b3Q7IHZhbHVlPSZxdW90OzEwMCZxdW90OyAv Jmd0OwombHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt1cmx2YXI6bG93JnF1b3Q7IG9wZXJh dG9yPSZxdW90O2dlLCBsZSZxdW90OwogICAgIHZhbHVlPSZxdW90OzEsIHR4cHZhcjpoaWdo ZXN0JnF1b3Q7IGZpbHRlcj0mcXVvdDsvW14wLTldKy8mcXVvdDsmZ3Q7CiAgICZsdDtwJmd0 O3tzbWRfaWZfbG93fSBpcyB2YWxpZCBhbmQgaXMgYmV0d2VlbgogICAxIGFuZCAmbHQ7dHhw OnZhcmlhYmxlIG5hbWU9JnF1b3Q7aGlnaGVzdCZxdW90OyAvJmd0Oy4mbHQ7L3AmZ3Q7CiZs dDt0eHA6ZWxzZSAvJmd0OwogICAmbHQ7cCZndDtTb3JyeSwgdmFsdWUgbm90IHdpdGhpbiBy YW5nZS4mbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxw PlsgRWFnbGUtZXllZCBwZW9wbGUgbWF5IG5vdGljZSB0aGF0IHNvbWV0aGluZyBzaW1pbGFy IGNhbiBiZSBhY2hpZXZlZCB3aXRoIHRoZSA8Y29kZT46TlVNPC9jb2RlPiBtb2RpZmllci4g VGhlIGRpZmZlcmVuY2UgaGVyZSBpcyB0aGF0IHRoZSByZXBsYWNlbWVudCB2YXJpYWJsZXMg YXJlIGFsc28gZmlsdGVyZWQsIHdoZXJlYXMgd2l0aCA8Y29kZT46TlVNPC9jb2RlPiB0aGV5 IGNvbnRhaW4gdGhlIG9yaWdpbmFsIChwb3NzaWJseSBpbnZhbGlkKSBpbnB1dCBdPC9wPgoK CTxwPkFsdGhvdWdoIG91dCBvZiB0aGUgc2NvcGUgb2YgdGhpcyBkb2N1bWVudGF0aW9uLCBp dCYjODIxNztzIHdvcnRoIGp1c3QgdGFraW5nIGEgbW9tZW50IHRvIHNlZSB3aGF0IHRoZSBm aWx0ZXIgaXMgZG9pbmc6PC9wPgoKPHByZT48Y29kZT4vW14wLTldKy8KPC9jb2RlPjwvcHJl PgoKCTx1bD4KCQk8bGk+VGhlIGZvcndhcmQgc2xhc2hlcyBhcmUgc3RhcnQgYW5kIGVuZCBk ZWxpbWl0ZXJzIGFuZCBzaG91bGQgYWx3YXlzIGJlIHByZXNlbnQgKHVubGVzcyB5b3Uga25v dyB3aGF0IHlvdXJlIGRvaW5nISk8L2xpPgoJCTxsaT5UaGUgc3F1YXJlIGJyYWNrZXRzIDxj b2RlPltdPC9jb2RlPmRlbm90ZSBhIGNoYXJhY3RlciBjbGFzcywgb3IgZ3JvdXAgb2YgY2hh cmFjdGVycy4gSW4gdGhpcyBjYXNlIHRoZXkgY29udGFpbiB0aGUgcmFuZ2Ugb2YgZGlnaXRz IDAgdG8gOTwvbGk+CgkJPGxpPlRoZSBjaXJjdW1mbGV4IDxjb2RlPl48L2NvZGU+IG5lZ2F0 ZXMgdGhlIGNsYXNzIChpLmUuIG5vbi1kaWdpdHMpPC9saT4KCQk8bGk+VGhlIHBsdXMgPGNv ZGU+KzwvY29kZT4gbWVhbnMgJiM4MjE2O29uZSBvciBtb3JlIG9mIHRoZSB0aGluZ3MgSSYj ODIxNzt2ZSBqdXN0IHNlZW4mIzgyMTc7PC9saT4KCTwvdWw+CgoJPHA+U28gcHV0dGluZyBp dCBhbGwgdG9nZXRoZXIsIGl0IHJlYWRzICYjODIyMDtGaW5kIGV2ZXJ5IG9jY3VycmVuY2Ug b2Ygb25lIG9yIG1vcmUgbm9uLWRpZ2l0cyYjODIyMTsuIFRodXMgaXQgbG9va3MgYXQgZXZl cnkgZmllbGQgYW5kIGZpbmRzIGFueXRoaW5nIG5vbi1udW1lcmljLiBUaGVuIGl0IHJlcGxh Y2VzIHdoYXRldmVyIGl0IGZpbmRzIHdpdGggPGNvZGU+JiMzOTsmIzM5OzwvY29kZT4sIGku ZS4gbm90aGluZywgbmFkYSwgemlwLiBFZmZlY3RpdmVseSwgaXQgZGVsZXRlcyB3aGF0ZXZl ciBub24tZGlnaXRzIGl0IGZpbmRzIGFuZCBsZWF2ZXMgdGhlIGdvb2Qgc3R1ZmYgKHRoZSBu dW1iZXJzKSBiZWhpbmQuPC9wPgoKCTxoMyBpZD0iZnJlcGxhY2luZyI+UmVwbGFjaW5nIGJh ZCBkYXRhPC9oMz4KCgk8cD5Gb3IgZWFjaCBtYXRjaGluZyBmaWx0ZXIgdGhlcmUmIzgyMTc7 cyBhbiBlcXVpdmFsZW50IDxjb2RlPnJlcGxhY2U8L2NvZGU+IHN0cmluZy4gQnkgZGVmYXVs dCB0aGlzIGlzIHNldCB0byA8Y29kZT5yZXBsYWNlPSZxdW90OyZxdW90OzwvY29kZT4gd2hp Y2ggbWVhbnMgJiM4MjIwO3JlcGxhY2Ugd2hhdGV2ZXIgeW91IGZpbmQgd2l0aCBub3RoaW5n JiM4MjIxOzsgb3IgaW4gb3RoZXIgd29yZHMgJiM4MjIwO2RlbGV0ZSBldmVyeXRoaW5nIHRo YXQgbWF0Y2hlcyB0aGUgZmlsdGVyJiM4MjIxOy4gWW91IG1heSBlbGVjdCB0byByZXBsYWNl IHlvdXIgZmlsdGVyZWQgZGF0YSB3aXRoIHNvbWV0aGluZyBlbHNlLCBzYXksIDxjb2RlPnJl cGxhY2U9JnF1b3Q7dHhwJnF1b3Q7PC9jb2RlPi4gU28gaWYgc29tZW9uZSBlbnRlcmVkICYj ODIyMDtmcjNkJiM4MjIxOyB5b3Ugd291bGQgc2VlIHRoZSByZXBsYWNlbWVudCB2YXJpYWJs ZSBoYXMgYSB2YWx1ZSAmIzgyMjA7dHhwM3R4cCYjODIyMTsgKHRoZSByZWFzb24geW91IG9u bHkgZ2V0IG9uZSAmIzgyMTY7dHhwJiM4MjE3OyBiZWZvcmUgdGhlIG51bWJlciBpcyBkdWUg dG8gdGhlIGV4cHJlc3Npb24gYmVpbmcgPGVtPmdyZWVkeTwvZW0+IGFuZCBnb2JibGluZyB1 cCBhcyBtYW55IGNoYXJhY3RlcnMgYXMgaXQgY2FuIGluIGEgZ3JvdXAgYmVmb3JlIHJlcGxh Y2luZyB0aGVtLiBTZWUgYW55IHJlZ2V4IHR1dG9yaWFsIGZvciBtb3JlIG9uIHRoaXMgdG9w aWMpLjwvcD4KCgk8cD5VbmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcyB5b3Ugd29uJiM4MjE3 O3Qgd2FudCB0byBtZXNzIHdpdGggPGNvZGU+cmVwbGFjZTwvY29kZT4gYXMgaXQmIzgyMTc7 bGwgZG8gd2hhdCB5b3Ugd2FudCB3aXRoIHRoZSBkZWZhdWx0ICYjODIxNjtkZWxldGUmIzgy MTc7IG9wZXJhdGlvbi48L3A+CgoJPGgzIGlkPSJmb3B0aW9ucyI+RmlsdGVyaW5nIG9wdGlv bnM8L2gzPgoKCTxwPkJ5IGRlZmF1bHQsIHRoZSBwbHVnaW4gb25seSBsb29rcyBhdCA8Y29k ZT5maWVsZDwvY29kZT4gZGF0YS4gSWYgeW91IHdpc2ggdG8gY2hhbmdlIHRoYXQsIHVzZSB0 aGUgPGNvZGU+ZmlsdGVyX2luPC9jb2RlPiBhdHRyaWJ1dGUuPC9wPgoKCTxwPlRoZSBwbHVn aW4gYWxzbyBhcHBsaWVzIHRoZSBmaWx0ZXIgdG8gYWxsIGZpZWxkcyAoPGNvZGU+ZmlsdGVy X3R5cGU9JnF1b3Q7YWxsJnF1b3Q7PC9jb2RlPikuIFlvdSBtYXkgd2lzaCB0byBvbmx5IHRh cmdldCBhIGZpbHRlciBhdCB1cmwgYW5kIHNlcnZlciB2YXJzLCBpbiB3aGljaCBjYXNlIHlv dSB3b3VsZCBzcGVjaWZ5IDxjb2RlPmZpbHRlcl90eXBlPSZxdW90O3VybHZhciwgc3ZydmFy JnF1b3Q7PC9jb2RlPi4gT3IgbWF5YmUgeW91IHdpc2ggdG8gdmFsaWRhdGUgdGhlIGFydGlj bGUgaW1hZ2UgZmllbGQgaW4gY2FzZSBzb21lb25lIGVudGVyZWQgc29tZSByb2d1ZSBkYXRh IHRoZXJlOiA8Y29kZT5maWx0ZXJfdHlwZT0mcXVvdDthcnRpY2xlX2ltYWdlJnF1b3Q7PC9j b2RlPi48L3A+CgoJPGgzIGlkPSJmY2F2ZWF0Ij5GaWx0ZXJpbmcgY2F2ZWF0PC9oMz4KCgk8 cD5JZiB5b3Ugc3BlY2lmeSA8Y29kZT5maWx0ZXJfb249JnF1b3Q7ZmllbGQsIHZhbHVlJnF1 b3Q7PC9jb2RlPiBpdCBpcyBpbXBvcnRhbnQgdG8gbm90ZSB0aGF0IHRoZSA8ZW0+c2FtZSBm aWx0ZXI8L2VtPiB3aWxsIGJlIGFwcGxpZWQgdG8gZWFjaCBjb3JyZXNwb25kaW5nIGZpZWxk IGFuZCB2YWx1ZS4gSWYgeW91ciBmaWx0ZXIgaXMgdG9vIHN0cmljdCB0aGVyZSYjODIxNztz IGEgY2hhbmNlIGl0IG1heSBmaWx0ZXIgZXZlcnkgY2hhcmFjdGVyIG91dCBvZiBib3RoIDxj b2RlPmZpZWxkPC9jb2RlPiBhbmQgPGNvZGU+dmFsdWU8L2NvZGU+LCB0aHVzIGlmIHlvdXIg dGVzdCB3YXMgZm9yIGVxdWFsaXR5IHRoZSB0ZXN0IHdvdWxkIHJldHVybiAmIzgyMTY7dHJ1 ZSYjODIxNzsuIEhlcmUmIzgyMTc7cyBhbiBleGFtcGxlOjwvcD4KCjxwcmUgY2xhc3M9ImJs b2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3Vy bHZhcjpjb21wMSZxdW90OyBvcGVyYXRvcj0mcXVvdDtlcSZxdW90OwogICAgIHZhbHVlPSZx dW90O3VybHZhcjpjb21wMiZxdW90OyBmaWx0ZXI9JnF1b3Q7L1teYS16QS1aXSsvJnF1b3Q7 CiAgICAgZmlsdGVyX29uPSZxdW90O2ZpZWxkLCB2YWx1ZSZxdW90OyZndDsKICAgLy8gSSYj Mzk7bSBOT1QgbmVjZXNzYXJpbHkgdmFsaWQKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+ PC9wcmU+CgoJPHA+SWYgeW91ciB1c2VyIHR5cGVkIGluIHRoZSA8c3BhbiBjbGFzcz0iY2Fw cyI+VVJMPC9zcGFuPiA8Y29kZT5zaXRlLmNvbS9hcnRpY2xlP2NvbXAxPTEyMzQ1JmFtcDtj b21wMj02Nzg5MDwvY29kZT4gdGhlIHBsdWdpbiB3b3VsZCBkbyB0aGUgZm9sbG93aW5nOjwv cD4KCgk8b2w+CgkJPGxpPkZpbHRlciBjb21wMSBhbmQgcmVtb3ZlIGFsbCBub24tbGV0dGVy IGNoYXJhY3RlcnM8L2xpPgoJCTxsaT5GaWx0ZXIgY29tcDIgYW5kIHJlbW92ZSBhbGwgbm9u LWxldHRlciBjaGFyYWN0ZXJzPC9saT4KCQk8bGk+TG9vayBhdCBjb21wMSAod2hpY2ggaXMg bm93IGVtcHR5KSBhbmQgY29tcDIgKHdoaWNoIGlzIGFsc28gZW1wdHkpLCB0aGVuIGNvbXBh cmUgdGhlbTwvbGk+Cgk8L29sPgoKCTxwPllvdSBjYW4gc2VlIHdoYXQmIzgyMTc7cyBnb2lu ZyB0byBoYXBwZW46IHRoZSB0ZXN0IHJlc3VsdCBpcyBnb2luZyB0byBiZSAmIzgyMTY7dHJ1 ZSYjODIxNzsgYmVjYXVzZSAmIzgyMjA7bm90aGluZyYjODIyMTsgZG9lcyBpbmRlZWQgZXF1 YWwgJiM4MjIwO25vdGhpbmcmIzgyMjE7LiBTbyB0aGUgYWN0IG9mIHRoZSB1c2VyIGVudGVy aW5nIHR3byBub25zZW5zaWNhbCwgY29tcGxldGVseSBudW1lcmljIHN0cmluZ3Mgb2YgZGF0 YSBoYXMgYnJva2VuIHlvdXIgbG9naWMuPC9wPgoKCTxwPkZvciB0aGlzIHJlYXNvbiwgaWYg eW91IGFyZSBmaWx0ZXJpbmcgb24gYm90aCBmaWVsZCBhbmQgdmFsdWUsIHlvdSBzaG91bGQg cGVyZm9ybSA8ZW0+YWRkaXRpb25hbDwvZW0+IHRlc3RzIHRvIHNlZSBpZiBlaXRoZXIgZmll bGQgLyB2YWx1ZSBpcyBzZXQgYXQgYWxsLiBUaGlzIGlzIGJldHRlcjo8L3A+Cgo8cHJlIGNs YXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0m cXVvdDt1cmx2YXI6Y29tcDEsIHVybHZhcjpjb21wMSwgdXJsdmFyOmNvbXAyJnF1b3Q7CiAg ICAgb3BlcmF0b3I9JnF1b3Q7ZXEsIGlzdXNlZCwgaXN1c2VkJnF1b3Q7IHZhbHVlPSZxdW90 O3VybHZhcjpjb21wMiZxdW90OwogICAgIGZpbHRlcj0mcXVvdDsvW15hLXpBLVpdKy8mcXVv dDsKICAgICBmaWx0ZXJfb249JnF1b3Q7ZmllbGQsIHZhbHVlJnF1b3Q7Jmd0OwogICAvLyBJ JiMzOTttIG5vdyBhY3R1YWxseSB2YWxpZAombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48 L3ByZT4KCgk8cD5TbyBub3csIGlmIHlvdXIgZmlsdGVyIHJlbW92ZXMgZXZlcnl0aGluZyBm cm9tIGJvdGggPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFycywgaXQgc3RpbGwg ZmFpbHMgdGhlICYjODIxNjtoYXMgdGhlIHVzZXIgZW50ZXJlZCBhbnl0aGluZyBhdCBhbGwm IzgyMTc7IHRlc3RzIGJlY2F1c2UgYXMgZmFyIGFzIHRoZSBwbHVnaW4gaXMgY29uY2VybmVk LCB0aGUgdmlzaXRvciBoYXMgc3VibWl0dGVkIHJ1YmJpc2guPC9wPgoKCTxoMyBpZD0iZmZ1 cnRoZXIiPkdvaW5nIGZ1cnRoZXI8L2gzPgoKCTxwPlRoZSBhYm92ZSBleGFtcGxlcyBhbGwg dXNlIGEgc2luZ2xlIGZpbHRlci4gWW91IGNhbiBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgZmls dGVyIGFuZCByZXBsYWNlbWVudCBpZiB5b3Ugd2lzaCwganVzdCBjb21tYS1kZWxpbWl0IHRo ZW0gKHVubGVzcyB5b3UmIzgyMTc7dmUgb3ZlcnJpZGVuIHRoZSA8Y29kZT5wYXJhbV9kZWxp bTwvY29kZT4gb2YgY291cnNlKS48L3A+CgoJPHA+V2hlbiB5b3Ugc3BlY2lmeSBtb3JlIHRo YW4gb25lIGZpbHRlciwgdGhleSBpZ25vcmUgdGhlIDxjb2RlPmZpbHRlcl90eXBlPC9jb2Rl PiBhdHRyaWJ1dGUgYmVjYXVzZSB0aGUgZmlsdGVycyBhcmUgYXBwbGllZCBpbiBvcmRlcjsg b25lIHBlciB0ZXN0LiBJZiB5b3Ugd2lzaCB0byBza2lwIGEgcGFydGljdWxhciBmaWVsZCBh bmQgbm90IGFwcGx5IGEgZmlsdGVyLCBzaW1wbHkgbGVhdmUgYW4gZW1wdHkgY29tbWEgYXMg YSBwbGFjZWhvbGRlciwgZS5nLiA8Y29kZT5maWx0ZXI9JnF1b3Q7LCAvW15hLXpBLVowLTlc LV0rLywgLCAvW14wLTldKy8mcXVvdDs8L2NvZGU+IHdvdWxkIGFwcGx5IHRoZSByZXNwZWN0 aXZlIGZpbHRlcnMgdG8gdGhlIDJuZCBhbmQgNHRoIHRlc3RzIG9ubHkuPC9wPgoKCTxoMj5F eGFtcGxlczwvaDI+CgoJPGgzIGlkPSJlZzEiPkV4YW1wbGUgMTogc3RhbmRhcmQgY29tcGFy aXNvbjwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7 dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDtzZWN0aW9uLCBpZCZxdW90OwogICAgIG9wZXJhdG9y PSZxdW90O2JlZ2lucywgZ3QmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDtsaW9uLCAxMiZxdW90 OyZndDsKICZsdDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICZsdDtw Jmd0O05vdCB0b2RheSwgdGhhbmtzJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7Cjwv Y29kZT48L3ByZT4KCgk8cD5DaGVja3MgaWYgdGhlIGN1cnJlbnQgc2VjdGlvbiBuYW1lIGJl Z2lucyB3aXRoIHRoZSB3b3JkICYjODIyMDtsaW9uJiM4MjIxOyBhbmQgdGhlIGFydGljbGUg SUQgaXMgZ3JlYXRlciB0aGFuIDEyLiBEaXNwbGF5cyB0aGUgYXJ0aWNsZSBpZiBib3RoIGNv bmRpdGlvbnMgYXJlIG1ldCBvciBkaXNwbGF5cyB0aGUgdGV4dCAmIzgyMjA7Tm90IHRvZGF5 LCB0aGFua3MmIzgyMjE7IGlmIG5vdC48L3A+CgoJPGgzIGlkPSJlZzIiPkV4YW1wbGUgMjog b3RoZXIgdHlwZXMgb2YgZmllbGQ8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNs YXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7c3VtbWFyeSwgY2F0ZWdv cnksIHVybHZhcjpwaWMmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtpc3VzZWQsIGVxLCBp c251bSZxdW90OwogICAgIHZhbHVlPSZxdW90OywgYW5pbWFsICwmcXVvdDsgJmd0OwogJmx0 O3R4cDphcnRpY2xlIC8mZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwogJmx0O3AmZ3Q7Tm90IHRv ZGF5LCB0aGFua3MmbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJl PgoKCTxwPkNoZWNrcyBpZiB0aGUgY3VzdG9tIGZpZWxkIGxhYmVsbGVkICYjODIyMDtzdW1t YXJ5JiM4MjIxOyBoYXMgc29tZSBkYXRhIGluIGl0LCBjaGVja3MgaWYgdGhlIGdsb2JhbCBj YXRlZ29yeSBlcXVhbHMgJiM4MjIwO2FuaW1hbCYjODIyMTsgYW5kIHRlc3RzIGlmIHRoZSB1 cmx2YXIgPGNvZGU+cGljPC9jb2RlPiBpcyBudW1lcmljIChlLmcuIDxjb2RlPj9waWM9NTwv Y29kZT4pLjwvcD4KCgk8cD5JZiBhbGwgdGhlc2UgY29uZGl0aW9ucyBhcmUgbWV0IHRoZSBh cnRpY2xlIGlzIGRpc3BsYXllZCwgZWxzZSB0aGUgbWVzc2FnZSBpcyBzaG93bi4gTm90ZSB0 aGF0IDxjb2RlPmlzdXNlZDwvY29kZT4gYW5kIDxjb2RlPmlzbnVtPC9jb2RlPiBkb24mIzgy MTc7dCB0YWtlIGFyZ3VtZW50cyBmb3IgPGNvZGU+dmFsdWU8L2NvZGU+IGFuZCB0aGVpciBw b3NpdGlvbnMgYXJlIGhlbGQgYnkgZW1wdHkgY29tbWFzICh0ZWNobmljYWxseSB0aGUgbGFz dCBjb21tYSBpc24mIzgyMTc7dCBuZWVkZWQgYnV0IGl0IGhlbHBzIGtlZXAgZXZlcnl0aGlu ZyBuZWF0IGlmIHlvdSBhZGQgZnVydGhlciB0ZXN0cyBsYXRlciBvbikuPC9wPgoKCTxoMyBp ZD0iZWczIj5FeGFtcGxlIDM6IHVzaW5nICYjODIxNjtvciYjODIxNzsgbG9naWM8L2gzPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYg ZmllbGQ9JnF1b3Q7YXJ0aWNsZV9pbWFnZSwgc3ZydmFyOkhUVFBfVVNFUl9BR0VOVCZxdW90 OwogICAgIG9wZXJhdG9yPSZxdW90O2VxLCBjb250YWlucyZxdW90OwogICAgIHZhbHVlPSZx dW90O3VybHZhcjpwaWMsIFNhZmFyaSZxdW90OwogICAgIGxvZ2ljPSZxdW90O29yJnF1b3Q7 Jmd0OwogJmx0O3R4cDphcnRpY2xlIC8mZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwogJmx0O3Am Z3Q7Tm90IHRvZGF5LCB0aGFua3MmbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9j b2RlPjwvcHJlPgoKCTxwPkNvbXBhcmVzIChmb3IgZXF1YWxpdHkpIHRoZSBjdXJyZW50IGFy dGljbGUgaW1hZ2UgaWQgd2l0aCB0aGUgdmFsdWUgb2YgdGhlIHVybCB2YXJpYWJsZSA8Y29k ZT5waWM8L2NvZGU+IGFuZCBjaGVja3MgaWYgdGhlIHZhbHVlIG9mIHRoZSA8c3BhbiBjbGFz cz0iY2FwcyI+SFRUUDwvc3Bhbj5fVVNFUl9BR0VOVCBzdHJpbmcgY29udGFpbnMgJiM4MjIw O1NhZmFyaSYjODIyMTsuIFRoaXMgZXhhbXBsZSB1c2VzIHRoZSAmIzgyMTY7b3ImIzgyMTc7 IGxvZ2ljLCBoZW5jZSBpZiA8ZW0+ZWl0aGVyPC9lbT4gY29uZGl0aW9uIGlzIG1ldCB0aGUg YXJ0aWNsZSBpcyBzaG93biwgb3RoZXJ3aXNlIHRoZSAmIzgyMTY7bm90IHRvZGF5JiM4MjE3 OyBtZXNzYWdlIGlzIGRpc3BsYXllZC48L3A+CgoJPGgzIGlkPSJlZzQiPkV4YW1wbGUgNDog c3ViLWNhdGVnb3J5IHRlc3Rpbmc8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNs YXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7cGFyZW50OkxWTDImcXVv dDsKICAgICBvcGVyYXRvcj0mcXVvdDtlcSZxdW90OwogICAgIHZhbHVlPSZxdW90O21hbW1h bCZxdW90OyZndDsKICZsdDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsK ICZsdDtwJmd0O05vdCB0b2RheSwgdGhhbmtzJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYm Z3Q7CjwvY29kZT48L3ByZT4KCgk8cD5DaGVja3MgdGhlIDJuZCBzdWItY2F0ZWdvcnkgb2Yg dGhlIGdsb2JhbCBjYXRlZ29yeSYjODIxNztzIHRyZWUgdG8gc2VlIGlmIGl0IGVxdWFscyAm IzgyMjA7bWFtbWFsJiM4MjIxOy4gSWYgaXQgZG9lcywgc2hvdyB0aGUgYXJ0aWNsZTsgaWYg bm90IHNob3cgdGhlIG1lc3NhZ2UuIFJlbW92aW5nIHRoZSA8Y29kZT46TFZMMjwvY29kZT4g KHdoaWNoIGFsbG93cyB5b3UgdG8gYWxzbyByZW1vdmUgdGhlIG9wZXJhdG9yIHBhcmFtZXRl ciB0byBmb3JjZSB0aGUgY29tcGFyaXNvbiB0byBiZSB0aGUgZGVmYXVsdCAmIzgyMjA7Y29u dGFpbnMmIzgyMjE7KSBjaGVja3MgaWYgdGhlIGN1cnJlbnQgZ2xvYmFsIGNhdGVnb3J5IGlz IGEgY2hpbGQgb2YgJiM4MjE2O21hbW1hbCYjODIxNzsgKGF0IGFueSBsZXZlbCkuPC9wPgoK CTxwPkNoYW5nZSB0aGUgZmllbGQgdG8gPGNvZGU+cGFyZW50OkNBVDE8L2NvZGU+IHRvIHNl ZSBpZiB0aGUgYXJ0aWNsZSYjODIxNztzIGNhdGVnb3J5MSBtYXRjaGVzICYjODIxNjttYW1t YWwmIzgyMTc7IGF0IGFueSBsZXZlbCwgb3IgdXNlIDxjb2RlPmZpZWxkPSZxdW90O3BhcmVu dDpDQVQxOkxWTDImcXVvdDs8L2NvZGU+IHRvIGNvbWJpbmUgdGhlIGNoZWNrcy48L3A+CgoJ PGgzIGlkPSJlZzUiPkV4YW1wbGUgNTogbXVsdGlwbGUgdGVzdHM8L2gzPgoKPHByZSBjbGFz cz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1 b3Q7dXJsdmFyOnBpYywgdXJsdmFyOnBhZ2UmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtn dDpOVU0sIHVuZGVmaW5lZCZxdW90OwogICAgIHZhbHVlPSZxdW90Oz9hcnRpY2xlX2ltYWdl LCZxdW90OyZndDsKICZsdDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsK ICZsdDtwJmd0O05vdCB0b2RheSwgdGhhbmtzJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYm Z3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UZXN0cyBpZiB0aGUgdXJsIHZhcmlhYmxlIDxjb2Rl PnBpYzwvY29kZT4gaXMgc3RyaWN0bHkgbnVtZXJpY2FsbHkgZ3JlYXRlciB0aGFuIHRoZSB2 YWx1ZSBpbiB0aGUgY3VycmVudCBhcnRpY2xlJiM4MjE3O3MgPGNvZGU+YXJ0aWNsZV9pbWFn ZTwvY29kZT4gZmllbGQgYW5kIHRoYXQgdGhlIHVybCB2YXJpYWJsZSA8Y29kZT5wYWdlPC9j b2RlPiBpcyBtaXNzaW5nIGZyb20gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+ IGFkZHJlc3MuIENvbXBhcmUgdGhlIG91dGNvbWUgb2YgdGhpcyB0ZXN0IHdpdGggdGhlIG90 aGVyIG9wZXJhdG9ycyB1c2luZyB0aGUgZm9sbG93aW5nIHRhYmxlIHdoZW4gdGVzdGluZyB0 aGUgPGNvZGU+cGFnZTwvY29kZT4gdXJsdmFyOjwvcD4KCgk8dGFibGU+CgkJPHRyPgoJCQk8 dGg+PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+PC9z cGFuPiA8L3RoPgoJCQk8dGg+ZGVmaW5lZCA8L3RoPgoJCQk8dGg+dW5kZWZpbmVkIDwvdGg+ CgkJCTx0aD5pc3VzZWQgPC90aD4KCQkJPHRoPmlzZW1wdHkgPC90aD4KCQk8L3RyPgoJCTx0 cj4KCQkJPHRkPiBpbmRleC5waHA/cGFnIDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNh cHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0 ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPjwv c3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNh cHMiPkZBTFNFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2Fw cyI+PHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQk8L3Ry PgoJCTx0cj4KCQkJPHRkPiBpbmRleC5waHA/cGFnZT0gPC90ZD4KCQkJPHRkPiA8c3BhbiBj bGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+PC9zcGFuPiA8L3Rk PgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8 L3NwYW4+PC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBj bGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+PC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNs YXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj48L3NwYW4+IDwvdGQ+ CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gaW5kZXgucGhwP3BhZ2U9NCA8L3RkPgoJCQk8dGQ+ IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj48L3Nw YW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBz Ij5GQUxTRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMi PjxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8 c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPjwvc3Bh bj4gPC90ZD4KCQk8L3RyPgoJPC90YWJsZT4KCgk8aDMgaWQ9ImVnNiI+RXhhbXBsZSA2OiBz aG9ydCBjaXJjdWl0aW5nIHRoZSA8Y29kZT5maWVsZDwvY29kZT48L2gzPgoKCTxwPlB1dCB0 aGlzIGluc2lkZSB5b3VyIDxjb2RlPnBsYWlubGlua3M8L2NvZGU+IGZvcm0gYW5kIGV4ZWN1 dGUgYSA8Y29kZT4mbHQ7dHhwOmxpbmtsaXN0IC8mZ3Q7PC9jb2RlPiBmcm9tIGFuIGFydGlj bGUgcGFnZS9mb3JtOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxv Y2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O2lkJnF1b3Q7CiAgICAgb3BlcmF0b3I9 JnF1b3Q7Z2U6TlVNLCBsZTpOVU0mcXVvdDsKICAgICB2YWx1ZT0mcXVvdDt1cmx2YXI6bWlu LCB1cmx2YXI6bWF4JnF1b3Q7Jmd0OwogICZsdDt0eHA6bGlua2Rlc2N0aXRsZSAvJmd0OyZs dDticiAvJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UaGF0 IHdpbGwgbGlzdCBvbmx5IHRoZSBsaW5rcyB0aGF0IGhhdmUgSURzIGJldHdlZW4gdGhlIDxj b2RlPm1pbjwvY29kZT4gYW5kIDxjb2RlPm1heDwvY29kZT4gdmFyaWFibGVzIHNwZWNpZmll ZCBvbiB0aGUgYWRkcmVzcyBiYXIuIE5vdGljZSB0aGF0IHRoZSBpZCBmaWVsZCBpcyBvbmx5 IGxpc3RlZCBvbmNlIGFuZCBlYWNoIG9wZXJhdG9yIGlzIGFwcGxpZWQgdG8gaXQgaW4gdHVy bi48L3A+CgoJPGgzIGlkPSJlZzciPkV4YW1wbGUgNzogYWxwaGFudW1lcmljIHRlc3Rpbmc8 L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpz bWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFyOnByb2R1Y3RfY29kZSZxdW90OwogICAgIG9wZXJh dG9yPSZxdW90O2lzYWxudW0mcXVvdDsmZ3Q7CiAgJmx0O3R4cDpvdXRwdXRfZm9ybSBmb3Jt PSZxdW90O3Nob3dfcHJvZHVjdCZxdW90OyAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICZs dDtwJmd0O0ludmFsaWQgcHJvZHVjdCBjb2RlJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYm Z3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UZXN0cyB0byBzZWUgaWYgdGhlIHByb2R1Y3RfY29k ZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXJpYWJsZSBpcyBhbHBoYW51bWVy aWMgYW5kIGRpc3BsYXlzIGEgZm9ybSBpZiBzby48L3A+CgoJPGgzIGlkPSJlZzgiPkV4YW1w bGUgODogZGlzcGxheWluZyB1c2VkIHZhbHVlczwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+ PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt1cmx2YXI6 c29ydF9vcmRlciZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O2luJnF1b3Q7CiAgICAgdmFs dWU9JnF1b3Q7aWQvcHJpY2Uvc2l6ZS9jb2xvdXImcXVvdDsmZ3Q7CiAgJmx0O3AmZ3Q7U29y dGluZyB2YWx1ZXMgYnkge3NtZF9pZl9zb3J0X29yZGVyfSZsdDsvcCZndDsKICAvLyBEbyBz b21lIHN0dWZmCiZsdDt0eHA6ZWxzZSAvJmd0OwogIC8vIFVzZSBhIGRlZmF1bHQgc29ydCwg b3Igc2hvdyBhbiBlcnJvciBoZXJlCiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJl PgoKCTxwPkJ5IHVzaW5nIHRoZSByZXBsYWNlbWVudCB0YWcge3NtZF9pZl9zb3J0X29yZGVy fSB5b3UgaGF2ZSBwbHVja2VkIHRoZSB2YWx1ZSBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2Fw cyI+VVJMPC9zcGFuPiBiYXIgYW5kIGluc2VydGVkIGl0IGludG8gdGhlIGFydGljbGUuIFVz ZWZ1bCB3aGVuIHVzaW5nIHRoZSA8Y29kZT5pbjwvY29kZT4gb3IgPGNvZGU+bm90aW48L2Nv ZGU+IG9wZXJhdG9ycyBiZWNhdXNlLCBhbHRob3VnaCB5b3Uga25vdyB0aGF0IHRoZSBmaWVs ZCBtYXRjaGVkIG9uZSBvZiB0aGUgdmFsdWVzIGluIHlvdXIgbGlzdCwgeW91IHdvdWxkIG90 aGVyd2lzZSBub3Qga25vdyB3aGljaCBvbmUgaGFzIGJlZW4gZ2l2ZW4gb24gdGhlIGFkZHJl c3MgYmFyLjwvcD4KCgk8aDMgaWQ9ImVnOSI+RXhhbXBsZSA5OiB1c2luZyBwaHB2YXI8L2gz PgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpwaHAm Z3Q7Cmdsb2JhbCAkYm9keWV4OwokYm9keWV4ID0gYm9keShhcnJheSgpKSAuIGV4Y2VycHQo YXJyYXkoKSk7CiZsdDsvdHhwOnBocCZndDsKJmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7 cGhwdmFyOmJvZHlleCZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O2d0OkxFTiZxdW90Owog ICAgIHZhbHVlPSZxdW90OzUwMCZxdW90OyZndDsKICAmbHQ7cCZndDtZb3UgYXJlIGEgYmln IGJveSBhdCB7c21kX2lmX2xlbl9ib2R5ZXh9CiAgICAgY2hhcmFjdGVycyBsb25nISZsdDsv cCZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlkPSJlZzEw Ij5FeGFtcGxlIDEwOiA8Y29kZT5iZXR3ZWVuPC9jb2RlPiBhbmQgPGNvZGU+cmFuZ2U8L2Nv ZGU+PC9oMz4KCgk8cD5DaGVjayB0aGF0IHRoZSBnaXZlbiA8c3BhbiBjbGFzcz0iY2FwcyI+ VVJMPC9zcGFuPiBwYXJhbXMgPGNvZGU+ZGF5PC9jb2RlPiBhbmQgPGNvZGU+bW9udGg8L2Nv ZGU+IGFyZSB3aXRoaW4gcmVhc29uYWJsZSB0b2xlcmFuY2UuIE5vdGUgdGhhdCBpdCYjODIx NztzIHN0aWxsIHBvc3NpYmxlIHRvIHNwZWNpZnkgdGhlIDMxc3QgRmVicnVhcnkgc28geW91 IG1heSByZXF1aXJlIGV4dHJhIGNoZWNrcyBpbiB0aGUgY29udGFpbmVyLjwvcD4KCjxwcmUg Y2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxk PSZxdW90O3VybHZhcjpkYXksIHVybHZhcjptb250aCZxdW90OwogICAgIG9wZXJhdG9yPSZx dW90O2JldHdlZW4sIGJldHdlZW4mcXVvdDsgdmFsdWU9JnF1b3Q7MC8zMiwgMC8xMyZxdW90 OyZndDsKICAgLy8gTGlrZWx5IGEgdmFsaWQgZGF0ZSBzdXBwbGllZAombHQ7L3R4cDpzbWRf aWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UaGlzIGlzIGZ1bmN0aW9uYWxseSBlcXVpdmFs ZW50LCBhbmQgcHJvYmFibHkgbW9yZSBvYnZpb3VzIHRvIGFueW9uZSBlbHNlIHJlYWRpbmcg dGhlIGNvZGU6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+ Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFyOmRheSwgdXJsdmFyOm1vbnRoJnF1 b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7cmFuZ2UsIHJhbmdlJnF1b3Q7IHZhbHVlPSZxdW90 OzEvMzEsIDEvMTImcXVvdDsmZ3Q7CiAgIC8vIExpa2VseSBhIHZhbGlkIGRhdGUgc3VwcGxp ZWQKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgyIGNsYXNzPSJjaGFu Z2Vsb2ciPkNoYW5nZWxvZzwvaDI+CgoJPHVsPgoJCTxsaT4zMCBEZWMgMDcgfCAwLjEgfCBJ bml0aWFsIHJlbGVhc2U8L2xpPgoJCTxsaT4zMCBEZWMgMDcgfCAwLjIgfCBBZGRlZCBwYXJl bnQgY2F0ZWdvcnkgY2hlY2tpbmcgKHRoYW5rcyB0aGVfZ2hvc3QpPC9saT4KCQk8bGk+MDIg SmFuIDA4IHwgMC4zIHwgQWRkZWQgZGVmaW5lZC91bmRlZmluZWQgYW5kIHN0cmljdCBudW1l cmljIGNvbXBhcmlzb25zPC9saT4KCQk8bGk+MDYgSmFuIDA4IHwgMC40IHwgQWRkZWQgPGNv ZGU+PzwvY29kZT4gbm90YXRpb24gdG8gYWxsb3cgdGhlIHZhbHVlIHRvIHJlYWQgPHNwYW4g Y2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gZmllbGRzOyBiZXR0ZXIgcXVvdGUgc3VwcG9ydCAo Ym90aCB0aGFua3MgTmVpbEEpPC9saT4KCQk8bGk+MDYgSmFuIDA4IHwgMC40MSB8IEZpeGVk IGxvd2VyIGNhc2UgZmllbGQgbmFtZXMgYW5kIHVuZGVmaW5lZCBpbmRleCBlcnJvciAodGhh bmtzIHBldGVyaik8L2xpPgoJCTxsaT4xNCBKYW4gMDggfCAwLjUgfCBBZGRlZCBjYXNlX3Nl bnNpdGl2ZSBvcHRpb247IG1hZGUgJiM4MjE2O2NvbnRhaW5zJiM4MjE3OyB0aGUgZGVmYXVs dCBmb3IgJiM4MjE2O3BhcmVudCYjODIxNzsgdGVzdHM7IGltcHJvdmVkIGhlbHAgKGFsbCB0 aGFua3MgdGhlX2dob3N0KTsgYWRkZWQgZGVsaW0gb3B0aW9uczwvbGk+CgkJPGxpPjE1IEph biAwOCB8IDAuNTEgfCBGaXhlZCBkZWZpbmVkL3VuZGVmaW5lZCBzeW50YXggZXJyb3I7IHRp Z2h0ZW5lZCBpc3VzZWQvaXNlbXB0eSB0byBkaXN0aW5ndWlzaCB0aGVtIGZyb20gZGVmaW5l ZC91bmRlZmluZWQ8L2xpPgoJCTxsaT4yNSBNYXkgMDggfCAwLjYgfCBGaXhlZCAmIzgyMTY7 dW5kZWZpbmVkIGluZGV4JiM4MjE3OyBlcnJvcnMgKHRoYW5rcyByZWRib3QgYW5kIHRoZV9n aG9zdCkgOyBhZGRlZCBtb3JlIHByZXRleHQgdmFyaWFibGVzIDsgYWRkZWQgbW9yZSA8Y29k ZT5pczwvY29kZT4gY2hlY2tzIChhbmQgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5OT1NQQUNF PC9zcGFuPiBtb2RpZmllcikgOyBhbGxvd2VkIGZpbGUgYW5kIGxpbmsgdGVzdHMgKGluY2x1 ZGluZyBwYXJlbnQgY2F0ZWdvcmllcyk8L2xpPgoJCTxsaT4yNiBNYXkgMDggfCAwLjYxIHwg Rml4ZWQgc3R1cGlkIG92ZXJzaWdodCBpbiBmaWVsZCBuYW1lIGdlbmVyYXRpb24gdG8gYWxs b3cgYXJiaXRyYXJ5IG5hbWVzIGluc3RlYWQgb2YgZm9yY2luZyAkdGhpc2FydGljbGUgKHRo YW5rcyB0byBKb2FuYSBDYXJ2YWxobyBmb3IgbGVhZGluZyBtZSB0byB0aGlzKTwvbGk+CgkJ PGxpPjExIEp1biAwOCB8IDAuNjIgfCBGaXhlZCBpbmNvcnJlY3QgcmVzdWx0IGlmIGV2YWwo KSBpcyBlbXB0eSA7IGFkZGVkIDxzcGFuIGNsYXNzPSJjYXBzIj5OVUxMPC9zcGFuPiBmaWVs ZCBvYmplY3Q8L2xpPgoJCTxsaT4xMCBTZXAgMDggfCAwLjcgfCBGaXhlZCB3YXJuaW5nIGlm IGVtcHR5IGN1c3RvbSBmaWVsZCBpbiB2YWx1ZSAodGhhbmtzIHZpc3VhbHBlb3BsZSkgOyBh ZGRlZCB0eHB2YXIgc3VwcG9ydCAodGhhbmtzIHRoZV9naG9zdCkgOyBhZGRlZCB0aGlzaW1h Z2Ugc3VwcG9ydCAoZm9yIHRoZSBmdXR1cmUpIDsgYWRkZWQgb3BlcmF0b3JzIDxjb2RlPmlu PC9jb2RlPiwgPGNvZGU+bm90aW48L2NvZGU+IGFuZCB0aGUgPGNvZGU+bGlzdF9kZWxpbTwv Y29kZT4gYXR0cmlidXRlOyBlbmFibGVkIHJlcGxhY2VtZW50IHRhZ3MgZm9yIG1hdGNoZWQg dmFyaWFibGVzPC9saT4KCQk8bGk+MDEgT2N0IDA4IHwgMC43MSB8IEZpeGVkIHRoZSBmaXgg Zm9yIGVtcHR5IGN1c3RvbSBmaWVsZHMgaW1wbGVtZW50ZWQgaW4gMC43ICh0aGFua3MgbWFw dS92aXN1YWxwZW9wbGUpPC9saT4KCQk8bGk+MDEgT2N0IDA4IHwgMC43MiB8IEFkZGVkIDxj b2RlPjpOT1RBR1M8L2NvZGU+ICh0aGFua3MgbWFwdSk8L2xpPgoJCTxsaT4xMyBPY3QgMDgg fCAwLjczIHwgQWRkZWQgPGNvZGU+Ok5PU1BBQ0U8L2NvZGU+IHRvIDxjb2RlPmJlZ2luczwv Y29kZT4sIDxjb2RlPmVuZHM8L2NvZGU+IGFuZCA8Y29kZT5jb250YWluczwvY29kZT4gKHRo YW5rcyBtYXB1KSwgYWRkZWQgcGhwdmFyIHN1cHBvcnQsIDxjb2RlPjpMRU48L2NvZGU+IG1v ZGlmaWVyIGFuZCBsZW5ndGggcmVwbGFjZW1lbnQgdGFncyAoYWxsIHRoYW5rcyB0aGVfZ2hv c3QpPC9saT4KCQk8bGk+MTMgT2N0IDA4IHwgMC43NCB8IEJ1ZyBmaXggdGhlIHNtZF9pZl8g bmFtZXMgb2YgdmFscyBhbmQgZmllbGRzIHRvIGF2b2lkIGNsYXNoZXMuIE5vdyBudW1lcmlj YWxseSBpbmRleGVkPC9saT4KCQk8bGk+MDIgRGVjIDA4IHwgMC43NSB8IEFkZGVkIDxjb2Rl PmRpdmlzaWJsZTwvY29kZT4gb3BlcmF0b3IgKHRoYW5rcyBnb21lZGlhKSA7IGFsbG93IHNo b3J0LWNpcmN1aXQgb2YgZmllbGRzICh0aGFua3MgcmVkYm90KTwvbGk+CgkJPGxpPjIwIE1h ciAwOSB8IDAuNzYgfCBBZGRlZCA8Y29kZT5wb3N0dmFyPC9jb2RlPiBmaWVsZCB0eXBlICh0 aGFua3Mga29zdGFzNDUpPC9saT4KCQk8bGk+MjIgTWFyIDA5IHwgMC43NyB8IEFkZGVkIDxj b2RlPjpUUklNPC9jb2RlPiBtb2RpZmllciAodGhhbmtzIGdvbWVkaWEpPC9saT4KCQk8bGk+ MDUgQXByIDA5IHwgMC44IHwgQWRkZWQgZmlsdGVyaW5nIGNhcGFiaWxpdHk8L2xpPgoJCTxs aT4yNiBTZXAgMDkgfCAwLjgxIHwgQWRkZWQgcGFyZW50IDxjb2RlPlRUTDwvY29kZT4gYW5k IDxjb2RlPktJRFM8L2NvZGU+IG1vZGlmaWVycyAodGhhbmtzIHBob3Rvbm9tYWQpIDsgaW1w cm92ZWQgcGFyZW50IGRlYnVnIG91dHB1dDwvbGk+CgkJPGxpPjAyIE1hciAxMCB8IDAuODIg fCBBZGRlZCA8Y29kZT5iZXR3ZWVuPC9jb2RlPiBhbmQgPGNvZGU+cmFuZ2U8L2NvZGU+ICh0 aGFua3Mgc3BlZWtlKTwvbGk+Cgk8L3VsPgoKPC9kaXY+CjwhLS0gKioqIEJFR0lOIFBMVUdJ TiBDU1MgKioqIC0tPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojc21kX2hlbHAgeyBsaW5l LWhlaWdodDoxLjMgO30KI3NtZF9oZWxwIGNvZGUgeyBmb250LXdlaWdodDpib2xkOyBmb250 OiAxMDUlLzEzMCUgIkNvdXJpZXIgTmV3IiwgY291cmllciwgbW9ub3NwYWNlOyBiYWNrZ3Jv dW5kLWNvbG9yOiAjRkZGRkNDO30KI3NtZF9oZWxwIGNvZGUuYmxvY2sgeyBmb250LXdlaWdo dDpub3JtYWw7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IGJhY2tncm91bmQtY29sb3I6ICNm MGU2OGM7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjoxMHB4IDEwcHggMjBweDsgcGFkZGluZzox MHB4OyB9CiNzbWRfaGVscCBhOmxpbmssICNzbWRfaGVscCBhOnZpc2l0ZWQgeyBjb2xvcjog Ymx1ZTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiAxcHggc29saWQg Ymx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGE6aG92ZXIsICNzbWRfaGVs cCBhOmFjdGl2ZSB7IGNvbG9yOiBibHVlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRl ci1ib3R0b206IDJweCBzb2xpZCBibHVlOyBwYWRkaW5nLWJvdHRvbToxcHg7fQojc21kX2hl bHAgaDEgeyBjb2xvcjogIzM2OTsgZm9udDogMjBweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBt YXJnaW46IDA7IHRleHQtYWxpZ246IGNlbnRlcjsgfQojc21kX2hlbHAgaDIgeyBib3JkZXIt Ym90dG9tOiAxcHggc29saWQgYmxhY2s7IHBhZGRpbmc6MTBweCAwIDA7IGNvbG9yOiAjMzY5 OyBmb250OiAxN3B4IEdlb3JnaWEsIHNhbnMtc2VyaWY7IH0KI3NtZF9oZWxwIGgzIHsgY29s b3I6ICM2OTM7IGZvbnQ6IGJvbGQgMTJweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNw YWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNl O30KI3NtZF9oZWxwIGg0IHsgZm9udDogYm9sZCAxMXB4IEFyaWFsLCBzYW5zLXNlcmlmOyBs ZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwIDt0ZXh0LXRyYW5zZm9ybTog dXBwZXJjYXNlOyB9CiNzbWRfaGVscCAuYXR0LW5hbWUgeyBmb250LXdlaWdodDpib2xkOyB9 CiNzbWRfaGVscCAubWFuZCB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQg Izk5OTsgfQojc21kX2hlbHAgdGFibGUge3dpZHRoOjEwMCU7IHRleHQtYWxpZ246Y2VudGVy OyBwYWRkaW5nLWJvdHRvbToxZW07IGJvcmRlcjoxcHggc29saWQgIzY2Njt9CiNzbWRfaGVs cCB0ZCwgI3NtZF9oZWxwIHRoIHtib3JkZXI6MXB4IHNvbGlkICM5OTk7IHBhZGRpbmc6LjVl bSAwO30KPC9zdHlsZT4KPCEtLSAqKiogRU5EIFBMVUdJTiBDU1MgKioqIC0tPgoiO3M6Mzoi bWQ1IjtzOjMyOiJlMmM3ZGM3MjY0MmEyMjM3MTI4OGQ3ZjZmMWE0MWQwYSI7fQ==