cropper

VIRTUAL HANDSHAKE AFRICA

  • Home
  • About Us
    • Discover
    • Gallery
  • Digital Empire
  • Pricing
    • Order Professional
    • Oder Essential
    • Order Group
    • Order Bundles
  • Order Essential
  • Beta Partners
  • Connect
    • Thank You
{"js":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MS4wIj4KICA8dGl0bGU+SGFuZHNoYWtlLmFmcmljYSAtIFByb2Zlc3Npb25hbCBEaWdpdGFsIEJ1c2luZXNzIENhcmRzIGZvciBBZnJpY2FuIEVudHJlcHJlbmV1cnM8L3RpdGxlPgogIDxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJTdG9wIGhhbmRpbmcgb3V0IHBhcGVyIGNhcmRzLiBDcmVhdGUgeW91ciBzdHVubmluZyBkaWdpdGFsIGJ1c2luZXNzIGNhcmQgdGhhdCBnZXRzIHNoYXJlZCwgcmVtZW1iZXJlZCwgYW5kIGJyaW5ncyByZXN1bHRzLiBCdWlsdCBmb3IgQWZyaWNhbiBlbnRyZXByZW5ldXJzIHdobyBzdGFuZCBvdXQuIj4KICA8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0iZGlnaXRhbCBidXNpbmVzcyBjYXJkcyBBZnJpY2EsIHZpcnR1YWwgYnVzaW5lc3MgY2FyZHMgS2VueWEsIFVnYW5kYSwgVGFuemFuaWEsIHByb2Zlc3Npb25hbCBjYXJkcywgUVIgY29kZSBidXNpbmVzcyBjYXJkcyI+CiAgCiAgPCEtLSBEaXNhYmxlIGluZGV4aW5nIHVudGlsIGxhdW5jaCAtLT4KICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im5vaW5kZXgsIG5vZm9sbG93Ij4KICAKICA8IS0tIEZvbnRzIC0tPgogIDxsaW5rIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9SW50ZXI6d2dodEAzMDA7NDAwOzYwMDs3MDA7ODAwJmZhbWlseT1QbGF5ZmFpcitEaXNwbGF5OndnaHRANzAwOzkwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CiAgCiAgPHN0eWxlPgogICAgLyogQ1NTIFZBUklBQkxFUyAtIEFGUklDQU4gRU5FUkdZIFBBTEVUVEUgKi8KICAgIDpyb290IHsKICAgICAgLS1uYXZ5OiAjMDAxRjNGOwogICAgICAtLXJveWFsLWJsdWU6ICMwMDQ3QUI7CiAgICAgIC0tZ29sZDogI0ZGRDcwMDsKICAgICAgLS1nb2xkLXdhcm06ICNGRkMxMDc7CiAgICAgIC0td2hpdGU6ICNGRkZGRkY7CiAgICAgIC0tbGlnaHQtYmc6ICNGN0Y5RkM7CiAgICAgIC0tZ3JheTogIzZCNzI4MDsKICAgICAgLS10ZWFsOiAjMDBDOUE3OwogICAgICAtLW9yYW5nZTogI0ZGNkIzNTsKICAgICAgLS1wdXJwbGU6ICM3QjY4RUU7CiAgICB9CiAgICAKICAgIC8qIFJFU0VUICYgQkFTRSAqLwogICAgKiB7CiAgICAgIG1hcmdpbjogMDsKICAgICAgcGFkZGluZzogMDsKICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIH0KICAgIAogICAgYm9keSB7CiAgICAgIGZvbnQtZmFtaWx5OiAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKICAgIH0KICAgIAogICAgLyogVFlQT0dSQVBIWSAqLwogICAgaDEsIGgyLCBoMyB7CiAgICAgIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmOwogICAgICBmb250LXdlaWdodDogOTAwOwogICAgICBsaW5lLWhlaWdodDogMS4yOwogICAgfQogICAgCiAgICBoMSB7CiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMi41cmVtLCA2dncsIDQuNXJlbSk7CiAgICB9CiAgICAKICAgIGgyIHsKICAgICAgZm9udC1zaXplOiBjbGFtcCgycmVtLCA1dncsIDMuNXJlbSk7CiAgICB9CiAgICAKICAgIGgzIHsKICAgICAgZm9udC1zaXplOiBjbGFtcCgxLjVyZW0sIDN2dywgMnJlbSk7CiAgICB9CiAgICAKICAgIC8qIE5BVklHQVRJT04gKi8KICAgIC5uYXYgewogICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgIHRvcDogMDsKICAgICAgd2lkdGg6IDEwMCU7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMzEsIDYzLCAwLjk1KTsKICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOwogICAgICB6LWluZGV4OiAxMDAwOwogICAgICBwYWRkaW5nOiAxcmVtIDJyZW07CiAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDIwcHggcmdiYSgwLDAsMCwwLjEpOwogICAgfQogICAgCiAgICAubmF2LWNvbnRhaW5lciB7CiAgICAgIG1heC13aWR0aDogMTQwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwogICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgfQogICAgCiAgICAubG9nbyB7CiAgICAgIGZvbnQtc2l6ZTogMS41cmVtOwogICAgICBmb250LXdlaWdodDogODAwOwogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICB9CiAgICAKICAgIC5uYXYtbGlua3MgewogICAgICBkaXNwbGF5OiBmbGV4OwogICAgICBnYXA6IDJyZW07CiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICB9CiAgICAKICAgIC5uYXYtbGlua3MgYSB7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgICAgZm9udC1zaXplOiAwLjk1cmVtOwogICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzOwogICAgfQogICAgCiAgICAubmF2LWxpbmtzIGE6aG92ZXIgewogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICB9CiAgICAKICAgIC8qIE1vYmlsZSBtZW51IHRvZ2dsZSAqLwogICAgLm1vYmlsZS1tZW51IHsKICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgYmFja2dyb3VuZDogbm9uZTsKICAgICAgYm9yZGVyOiBub25lOwogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgfQogICAgCiAgICBAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsKICAgICAgLm5hdi1saW5rcyB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgIHRvcDogMTAwJTsKICAgICAgICBsZWZ0OiAwOwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLW5hdnkpOwogICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgcGFkZGluZzogMnJlbTsKICAgICAgICBnYXA6IDFyZW07CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwogICAgICB9CiAgICAgIAogICAgICAubmF2LWxpbmtzLmFjdGl2ZSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOwogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgcG9pbnRlci1ldmVudHM6IGFsbDsKICAgICAgfQogICAgICAKICAgICAgLm1vYmlsZS1tZW51IHsKICAgICAgICBkaXNwbGF5OiBibG9jazsKICAgICAgfQogICAgfQogICAgCiAgICAvKiBIRVJPIFNFQ1RJT04gLSBXSVRIIE1PVElPTiAqLwogICAgLmhlcm8gewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1uYXZ5KSAwJSwgdmFyKC0tcm95YWwtYmx1ZSkgMTAwJSk7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgIHBhZGRpbmc6IDE0MHB4IDJyZW0gODBweDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogICAgCiAgICAvKiBBbmltYXRlZCBiYWNrZ3JvdW5kIHBhdHRlcm4gKi8KICAgIC5oZXJvOjpiZWZvcmUgewogICAgICBjb250ZW50OiAnJzsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB0b3A6IC01MCU7CiAgICAgIGxlZnQ6IC01MCU7CiAgICAgIHdpZHRoOiAyMDAlOwogICAgICBoZWlnaHQ6IDIwMCU7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgdHJhbnNwYXJlbnQgMzAlLCByZ2JhKDI1NSwgMjE1LCAwLCAwLjA1KSA1MCUsIHRyYW5zcGFyZW50IDcwJSk7CiAgICAgIGFuaW1hdGlvbjogcm90YXRlIDIwcyBsaW5lYXIgaW5maW5pdGU7CiAgICB9CiAgICAKICAgIEBrZXlmcmFtZXMgcm90YXRlIHsKICAgICAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQogICAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfQogICAgfQogICAgCiAgICAuaGVyby1jb250YWluZXIgewogICAgICBtYXgtd2lkdGg6IDE0MDBweDsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgei1pbmRleDogMjsKICAgIH0KICAgIAogICAgLmhlcm8tY29udGVudCB7CiAgICAgIG1heC13aWR0aDogNzAwcHg7CiAgICB9CiAgICAKICAgIC5oZXJvIGgxIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOwogICAgICBhbmltYXRpb246IHNsaWRlSW5MZWZ0IDAuOHMgZWFzZS1vdXQ7CiAgICB9CiAgICAKICAgIC5oZXJvIGgxIHNwYW4gewogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgfQogICAgCiAgICAuaGVyby1zdWJ0aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogY2xhbXAoMS4xcmVtLCAyLjV2dywgMS40cmVtKTsKICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOwogICAgICBvcGFjaXR5OiAwLjk1OwogICAgICBhbmltYXRpb246IHNsaWRlSW5MZWZ0IDAuOHMgZWFzZS1vdXQgMC4ycyBiYWNrd2FyZHM7CiAgICB9CiAgICAKICAgIEBrZXlmcmFtZXMgc2xpZGVJbkxlZnQgewogICAgICBmcm9tIHsKICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTBweCk7CiAgICAgIH0KICAgICAgdG8gewogICAgICAgIG9wYWNpdHk6IDE7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOwogICAgICB9CiAgICB9CiAgICAKICAgIC5oZXJvLWN0YSB7CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGdhcDogMS41cmVtOwogICAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICAgIGFuaW1hdGlvbjogc2xpZGVJbkxlZnQgMC44cyBlYXNlLW91dCAwLjRzIGJhY2t3YXJkczsKICAgIH0KICAgIAogICAgLyogQlVUVE9OUyAtIFZJQlJBTlQgJiBDTElDS0FCTEUgKi8KICAgIC5idG4gewogICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgIHBhZGRpbmc6IDFyZW0gMi41cmVtOwogICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICBmb250LXdlaWdodDogNzAwOwogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgICBib3JkZXI6IDNweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgICAgY3Vyc29yOiBwb2ludGVyOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CiAgICAKICAgIC5idG46OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogNTAlOwogICAgICBsZWZ0OiA1MCU7CiAgICAgIHdpZHRoOiAwOwogICAgICBoZWlnaHQ6IDA7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjMpOwogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC42cywgaGVpZ2h0IDAuNnM7CiAgICB9CiAgICAKICAgIC5idG46aG92ZXI6OmJlZm9yZSB7CiAgICAgIHdpZHRoOiAzMDBweDsKICAgICAgaGVpZ2h0OiAzMDBweDsKICAgIH0KICAgIAogICAgLmJ0biBzcGFuIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB6LWluZGV4OiAxOwogICAgfQogICAgCiAgICAuYnRuLXByaW1hcnkgewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1nb2xkKSAwJSwgdmFyKC0tZ29sZC13YXJtKSAxMDAlKTsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDI1NSwgMjE1LCAwLCAwLjMpOwogICAgfQogICAgCiAgICAuYnRuLXByaW1hcnk6aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTNweCk7CiAgICAgIGJveC1zaGFkb3c6IDAgMTVweCA0MHB4IHJnYmEoMjU1LCAyMTUsIDAsIDAuNCk7CiAgICB9CiAgICAKICAgIC5idG4tc2Vjb25kYXJ5IHsKICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLWdvbGQpOwogICAgfQogICAgCiAgICAuYnRuLXNlY29uZGFyeTpob3ZlciB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWdvbGQpOwogICAgICBjb2xvcjogdmFyKC0tbmF2eSk7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtM3B4KTsKICAgIH0KICAgIAogICAgLyogQ09NUEFSSVNPTiBTRUNUSU9OIC0gUEFQRVIgVlMgRElHSVRBTCAqLwogICAgLmNvbXBhcmlzb24gewogICAgICBwYWRkaW5nOiA4MHB4IDJyZW07CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXdoaXRlKTsKICAgIH0KICAgIAogICAgLmNvbXBhcmlzb24tY29udGFpbmVyIHsKICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAuY29tcGFyaXNvbi1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzMDBweCwgMWZyKSk7CiAgICAgIGdhcDogM3JlbTsKICAgICAgbWFyZ2luLXRvcDogNHJlbTsKICAgIH0KICAgIAogICAgLmNvbXBhcmlzb24tY2FyZCB7CiAgICAgIHBhZGRpbmc6IDNyZW07CiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7CiAgICB9CiAgICAKICAgIC5jb21wYXJpc29uLWNhcmQ6aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOwogICAgfQogICAgCiAgICAuY29tcGFyaXNvbi1iYWQgewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjRkZFNUU1IDAlLCAjRkZGMEYwIDEwMCUpOwogICAgICBib3JkZXI6IDNweCBzb2xpZCAjRkY2QjZCOwogICAgfQogICAgCiAgICAuY29tcGFyaXNvbi1nb29kIHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI0U1RjlGNSAwJSwgI0YwRkRGNCAxMDAlKTsKICAgICAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tdGVhbCk7CiAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwgMjAxLCAxNjcsIDAuMik7CiAgICB9CiAgICAKICAgIC5jb21wYXJpc29uLWljb24gewogICAgICBmb250LXNpemU6IDRyZW07CiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICAgIH0KICAgIAogICAgLmNvbXBhcmlzb24tY2FyZCBoMyB7CiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICAgICAgZm9udC1zaXplOiAycmVtOwogICAgfQogICAgCiAgICAuY29tcGFyaXNvbi1saXN0IHsKICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgIH0KICAgIAogICAgLmNvbXBhcmlzb24tbGlzdCBsaSB7CiAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMDsKICAgICAgZGlzcGxheTogZmxleDsKICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICAgIGdhcDogMXJlbTsKICAgICAgZm9udC1zaXplOiAxLjA1cmVtOwogICAgfQogICAgCiAgICAuY29tcGFyaXNvbi1saXN0IGxpOjpiZWZvcmUgewogICAgICBjb250ZW50OiAn4p2MJzsKICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgfQogICAgCiAgICAuY29tcGFyaXNvbi1nb29kIC5jb21wYXJpc29uLWxpc3QgbGk6OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICfinIUnOwogICAgfQogICAgCiAgICAvKiBTVEFUUyBTRUNUSU9OIC0gQU5JTUFURUQgQ09VTlRFUlMgKi8KICAgIC5zdGF0cyB7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLW5hdnkpIDAlLCB2YXIoLS1yb3lhbC1ibHVlKSAxMDAlKTsKICAgICAgcGFkZGluZzogODBweCAycmVtOwogICAgICBjb2xvcjogdmFyKC0td2hpdGUpOwogICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICB9CiAgICAKICAgIC5zdGF0czo6YmVmb3JlIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgICByaWdodDogMDsKICAgICAgYm90dG9tOiAwOwogICAgICBiYWNrZ3JvdW5kOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSIzMCIgY3k9IjMwIiByPSIyIiBmaWxsPSJyZ2JhKDI1NSwyMTUsMCwwLjEpIi8+PC9zdmc+Jyk7CiAgICAgIG9wYWNpdHk6IDAuMzsKICAgIH0KICAgIAogICAgLnN0YXRzLWNvbnRhaW5lciB7CiAgICAgIG1heC13aWR0aDogMTIwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICB6LWluZGV4OiAyOwogICAgfQogICAgCiAgICAuc3RhdHMtZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjAwcHgsIDFmcikpOwogICAgICBnYXA6IDNyZW07CiAgICAgIG1hcmdpbi10b3A6IDNyZW07CiAgICB9CiAgICAKICAgIC5zdGF0LWJveCB7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgcGFkZGluZzogMnJlbTsKICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOwogICAgICBib3JkZXItcmFkaXVzOiAyMHB4OwogICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjU1LCAyMTUsIDAsIDAuMyk7CiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOwogICAgfQogICAgCiAgICAuc3RhdC1ib3g6aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpOwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpOwogICAgICBib3JkZXItY29sb3I6IHZhcigtLWdvbGQpOwogICAgfQogICAgCiAgICAuc3RhdC1udW1iZXIgewogICAgICBmb250LXNpemU6IDRyZW07CiAgICAgIGZvbnQtd2VpZ2h0OiA5MDA7CiAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07CiAgICB9CiAgICAKICAgIC5zdGF0LWxhYmVsIHsKICAgICAgZm9udC1zaXplOiAxLjFyZW07CiAgICAgIG9wYWNpdHk6IDAuOTsKICAgIH0KICAgIAogICAgLyogQkVORUZJVFMgR1JJRCAtIENPTE9SRlVMIENBUkRTICovCiAgICAuYmVuZWZpdHMgewogICAgICBwYWRkaW5nOiA4MHB4IDJyZW07CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0LWJnKTsKICAgIH0KICAgIAogICAgLmJlbmVmaXRzLWNvbnRhaW5lciB7CiAgICAgIG1heC13aWR0aDogMTQwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgIAogICAgLnNlY3Rpb24taGVhZGVyIHsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICBtYXJnaW4tYm90dG9tOiA0cmVtOwogICAgfQogICAgCiAgICAuc2VjdGlvbi1oZWFkZXIgaDIgewogICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOwogICAgfQogICAgCiAgICAuc2VjdGlvbi1zdWJ0aXRsZSB7CiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgICBjb2xvcjogdmFyKC0tZ3JheSk7CiAgICAgIG1heC13aWR0aDogNjAwcHg7CiAgICAgIG1hcmdpbjogMCBhdXRvOwogICAgfQogICAgCiAgICAuYmVuZWZpdHMtZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMzAwcHgsIDFmcikpOwogICAgICBnYXA6IDJyZW07CiAgICB9CiAgICAKICAgIC5iZW5lZml0LWNhcmQgewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS13aGl0ZSk7CiAgICAgIHBhZGRpbmc6IDIuNXJlbTsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweDsKICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDQwcHggcmdiYSgwLDAsMCwwLjA4KTsKICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIH0KICAgIAogICAgLmJlbmVmaXQtY2FyZDo6YmVmb3JlIHsKICAgICAgY29udGVudDogJyc7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgdG9wOiAwOwogICAgICBsZWZ0OiAwOwogICAgICB3aWR0aDogMTAwJTsKICAgICAgaGVpZ2h0OiA2cHg7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tZ29sZCksIHZhcigtLXRlYWwpLCB2YXIoLS1wdXJwbGUpLCB2YXIoLS1vcmFuZ2UpKTsKICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMCk7CiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7CiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzOwogICAgfQogICAgCiAgICAuYmVuZWZpdC1jYXJkOmhvdmVyOjpiZWZvcmUgewogICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTsKICAgIH0KICAgIAogICAgLmJlbmVmaXQtY2FyZDpob3ZlciB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCk7CiAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwwLDAsMC4xMik7CiAgICB9CiAgICAKICAgIC5iZW5lZml0LWljb24gewogICAgICBmb250LXNpemU6IDNyZW07CiAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsKICAgICAgZGlzcGxheTogYmxvY2s7CiAgICB9CiAgICAKICAgIC5iZW5lZml0LWNhcmQgaDMgewogICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOwogICAgICBmb250LXNpemU6IDEuNXJlbTsKICAgIH0KICAgIAogICAgLmJlbmVmaXQtY2FyZCBwIHsKICAgICAgY29sb3I6IHZhcigtLWdyYXkpOwogICAgICBsaW5lLWhlaWdodDogMS43OwogICAgfQogICAgCiAgICAvKiBDVEEgU0VDVElPTiAtIEJJRyBCT0xEIEFDVElPTiAqLwogICAgLmN0YS1zZWN0aW9uIHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tZ29sZCkgMCUsIHZhcigtLWdvbGQtd2FybSkgMTAwJSk7CiAgICAgIHBhZGRpbmc6IDEwMHB4IDJyZW07CiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgfQogICAgCiAgICAuY3RhLXNlY3Rpb246OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICcnOwogICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgIHRvcDogLTUwJTsKICAgICAgcmlnaHQ6IC01MCU7CiAgICAgIHdpZHRoOiAxMDAlOwogICAgICBoZWlnaHQ6IDIwMCU7CiAgICAgIGJhY2tncm91bmQ6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIHJnYmEoMjU1LDI1NSwyNTUsMC4yKSAwJSwgdHJhbnNwYXJlbnQgNzAlKTsKICAgICAgYW5pbWF0aW9uOiBwdWxzZSA0cyBlYXNlLWluLW91dCBpbmZpbml0ZTsKICAgIH0KICAgIAogICAgQGtleWZyYW1lcyBwdWxzZSB7CiAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMC41OyB9CiAgICAgIDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4xKTsgb3BhY2l0eTogMC44OyB9CiAgICB9CiAgICAKICAgIC5jdGEtY29udGFpbmVyIHsKICAgICAgbWF4LXdpZHRoOiA4MDBweDsKICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgei1pbmRleDogMjsKICAgIH0KICAgIAogICAgLmN0YS1zZWN0aW9uIGgyIHsKICAgICAgY29sb3I6IHZhcigtLW5hdnkpOwogICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07CiAgICB9CiAgICAKICAgIC5jdGEtc2VjdGlvbiBwIHsKICAgICAgZm9udC1zaXplOiAxLjNyZW07CiAgICAgIGNvbG9yOiB2YXIoLS1uYXZ5KTsKICAgICAgbWFyZ2luLWJvdHRvbTogMi41cmVtOwogICAgICBvcGFjaXR5OiAwLjk7CiAgICB9CiAgICAKICAgIC5jdGEtc2VjdGlvbiAuYnRuLXByaW1hcnkgewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXZ5KTsKICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICBmb250LXNpemU6IDEuM3JlbTsKICAgICAgcGFkZGluZzogMS4zcmVtIDNyZW07CiAgICB9CiAgICAKICAgIC5jdGEtc2VjdGlvbiAuYnRuLXByaW1hcnk6aG92ZXIgewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1yb3lhbC1ibHVlKTsKICAgIH0KICAgIAogICAgLyogRk9PVEVSIC0gV0lUSCBESVNDTEFJTUVSICovCiAgICAuZm9vdGVyIHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tbmF2eSk7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgIHBhZGRpbmc6IDYwcHggMnJlbSAyMHB4OwogICAgfQogICAgCiAgICAuZm9vdGVyLWNvbnRhaW5lciB7CiAgICAgIG1heC13aWR0aDogMTQwMHB4OwogICAgICBtYXJnaW46IDAgYXV0bzsKICAgIH0KICAgIAogICAgLmZvb3Rlci1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMDBweCwgMWZyKSk7CiAgICAgIGdhcDogM3JlbTsKICAgICAgbWFyZ2luLWJvdHRvbTogM3JlbTsKICAgIH0KICAgIAogICAgLmZvb3Rlci1jb2x1bW4gaDQgewogICAgICBjb2xvcjogdmFyKC0tZ29sZCk7CiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgfQogICAgCiAgICAuZm9vdGVyLWNvbHVtbiB1bCB7CiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICB9CiAgICAKICAgIC5mb290ZXItY29sdW1uIHVsIGxpIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTsKICAgIH0KICAgIAogICAgLmZvb3Rlci1jb2x1bW4gYSB7CiAgICAgIGNvbG9yOiB2YXIoLS13aGl0ZSk7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICAgICAgb3BhY2l0eTogMC45OwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zczsKICAgIH0KICAgIAogICAgLmZvb3Rlci1jb2x1bW4gYTpob3ZlciB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICAgIGNvbG9yOiB2YXIoLS1nb2xkKTsKICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7CiAgICB9CiAgICAKICAgIC5mb290ZXItZGlzY2xhaW1lciB7CiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyMTUsMCwwLjMpOwogICAgICBwYWRkaW5nLXRvcDogMnJlbTsKICAgICAgbWFyZ2luLXRvcDogMnJlbTsKICAgIH0KICAgIAogICAgLmZvb3Rlci1kaXNjbGFpbWVyIGg0IHsKICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDsKICAgIH0KICAgIAogICAgLmZvb3Rlci1kaXNjbGFpbWVyIHAgewogICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY7CiAgICAgIG9wYWNpdHk6IDAuODsKICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsKICAgIH0KICAgIAogICAgLmZvb3Rlci1ib3R0b20gewogICAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsMjE1LDAsMC4zKTsKICAgICAgcGFkZGluZy10b3A6IDJyZW07CiAgICAgIG1hcmdpbi10b3A6IDJyZW07CiAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgZmxleC13cmFwOiB3cmFwOwogICAgICBnYXA6IDFyZW07CiAgICB9CiAgICAKICAgIC5mb290ZXItYm90dG9tIHAgewogICAgICBmb250LXNpemU6IDAuOXJlbTsKICAgICAgb3BhY2l0eTogMC44OwogICAgfQogICAgCiAgICAuZm9vdGVyLWJvdHRvbSBhIHsKICAgICAgY29sb3I6IHZhcigtLWdvbGQpOwogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICB9CiAgICAKICAgIC8qIFJFU1BPTlNJVkUgKi8KICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgewogICAgICAuaGVybyB7CiAgICAgICAgcGFkZGluZzogMTIwcHggMS41cmVtIDYwcHg7CiAgICAgIH0KICAgICAgCiAgICAgIC5oZXJvLWN0YSB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgfQogICAgICAKICAgICAgLmJ0biB7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICB9CiAgICAgIAogICAgICAuY29tcGFyaXNvbi1ncmlkLAogICAgICAuc3RhdHMtZ3JpZCwKICAgICAgLmJlbmVmaXRzLWdyaWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyOwogICAgICB9CiAgICAgIAogICAgICAuZm9vdGVyLWJvdHRvbSB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgIH0KICAgIH0KICAgIAogICAgLyogU0NST0xMIEFOSU1BVElPTlMgKi8KICAgIC5mYWRlLWluIHsKICAgICAgb3BhY2l0eTogMDsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpOwogICAgICB0cmFuc2l0aW9uOiBhbGwgMC42cyBlYXNlLW91dDsKICAgIH0KICAgIAogICAgLmZhZGUtaW4udmlzaWJsZSB7CiAgICAgIG9wYWNpdHk6IDE7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgIH0KICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKICA8IS0tIE5BVklHQVRJT04gLS0+CiAgPG5hdiBjbGFzcz0ibmF2Ij4KICAgIDxkaXYgY2xhc3M9Im5hdi1jb250YWluZXIiPgogICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibG9nbyI+SGFuZHNoYWtlLmFmcmljYTwvYT4KICAgICAgPGJ1dHRvbiBjbGFzcz0ibW9iaWxlLW1lbnUiIG9uY2xpY2s9InRvZ2dsZU1lbnUoKSI+4piwPC9idXR0b24+CiAgICAgIDx1bCBjbGFzcz0ibmF2LWxpbmtzIiBpZD0ibmF2TGlua3MiPgogICAgICAgIDxsaT48YSBocmVmPSIvZ2FsbGVyeSI+R2FsbGVyeTwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIvcHJpY2luZyI+UHJpY2luZzwvYT48L2xpPgogICAgICAgIDxsaT48YSBocmVmPSIvYWJvdXQiPkFib3V0PC9hPjwvbGk+CiAgICAgICAgPGxpPjxhIGhyZWY9Ii9jb250YWN0Ij5Db250YWN0PC9hPjwvbGk+CiAgICAgIDwvdWw+CiAgICA8L2Rpdj4KICA8L25hdj4KCiAgPCEtLSBIRVJPIFNFQ1RJT04gLS0+CiAgPHNlY3Rpb24gY2xhc3M9Imhlcm8iPgogICAgPGRpdiBjbGFzcz0iaGVyby1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJoZXJvLWNvbnRlbnQiPgogICAgICAgIDxoMT4KICAgICAgICAgIFN0b3AgSGFuZGluZyBPdXQgUGFwZXIuCiAgICAgICAgICA8c3Bhbj5TdGFydCBTdGFuZGluZyBPdXQuPC9zcGFuPgogICAgICAgIDwvaDE+CiAgICAgICAgPHAgY2xhc3M9Imhlcm8tc3VidGl0bGUiPgogICAgICAgICAgQ3JlYXRlIHlvdXIgc3R1bm5pbmcgZGlnaXRhbCBidXNpbmVzcyBjYXJkIHRoYXQgZ2V0cyBzaGFyZWQsIHJlbWVtYmVyZWQsIGFuZCBicmluZ3MgcmVzdWx0cy4gTW9iaWxlLW9wdGltaXplZCwgUVItZW5hYmxlZCwgYW5kIGJ1aWx0IGZvciBBZnJpY2FuIGVudHJlcHJlbmV1cnMgd2hvIHJlZnVzZSB0byBibGVuZCBpbi4KICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVyby1jdGEiPgogICAgICAgICAgPGEgaHJlZj0iL3ByaWNpbmciIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiPjxzcGFuPlNlZSBQcmljaW5nIOKGkjwvc3Bhbj48L2E+CiAgICAgICAgICA8YSBocmVmPSIvZ2FsbGVyeSIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5Ij48c3Bhbj5WaWV3IEV4YW1wbGVzPC9zcGFuPjwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L3NlY3Rpb24+CgogIDwhLS0gQ09NUEFSSVNPTiBTRUNUSU9OIC0tPgogIDxzZWN0aW9uIGNsYXNzPSJjb21wYXJpc29uIj4KICAgIDxkaXYgY2xhc3M9ImNvbXBhcmlzb24tY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgIDxoMj5QYXBlciBDYXJkcyB2cyBEaWdpdGFsIENhcmRzPC9oMj4KICAgICAgICA8cCBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+T25lIGdldHMgdGhyb3duIGF3YXkuIE9uZSBnZXRzIHNoYXJlZCBldmVyeXdoZXJlLjwvcD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJjb21wYXJpc29uLWdyaWQiPgogICAgICAgIDwhLS0gUGFwZXIgQ2FyZHMgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0iY29tcGFyaXNvbi1jYXJkIGNvbXBhcmlzb24tYmFkIGZhZGUtaW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29tcGFyaXNvbi1pY29uIj7wn5OEPC9kaXY+CiAgICAgICAgICA8aDM+UGFwZXIgQnVzaW5lc3MgQ2FyZHM8L2gzPgogICAgICAgICAgPHVsIGNsYXNzPSJjb21wYXJpc29uLWxpc3QiPgogICAgICAgICAgICA8bGk+ODglIHRocm93biBhd2F5IHdpdGhpbiBhIHdlZWs8L2xpPgogICAgICAgICAgICA8bGk+R2V0cyBsb3N0LCBkYW1hZ2VkLCBmb3Jnb3R0ZW48L2xpPgogICAgICAgICAgICA8bGk+Q2FuJ3QgdXBkYXRlIGluZm9ybWF0aW9uPC9saT4KICAgICAgICAgICAgPGxpPlplcm8gdHJhY2tpbmcgb3IgYW5hbHl0aWNzPC9saT4KICAgICAgICAgICAgPGxpPkxpbWl0ZWQgc3BhY2UgKDUwIHdvcmRzIG1heCk8L2xpPgogICAgICAgICAgICA8bGk+Q29zdHMgbW9uZXkgdG8gcmVwcmludDwvbGk+CiAgICAgICAgICAgIDxsaT5Ob3QgbW9iaWxlLWZyaWVuZGx5PC9saT4KICAgICAgICAgICAgPGxpPkVudmlyb25tZW50YWxseSB3YXN0ZWZ1bDwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDwhLS0gRGlnaXRhbCBDYXJkcyAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJjb21wYXJpc29uLWNhcmQgY29tcGFyaXNvbi1nb29kIGZhZGUtaW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0iY29tcGFyaXNvbi1pY29uIj7wn5OxPC9kaXY+CiAgICAgICAgICA8aDM+RGlnaXRhbCBIYW5kc2hha2UgQ2FyZHM8L2gzPgogICAgICAgICAgPHVsIGNsYXNzPSJjb21wYXJpc29uLWxpc3QiPgogICAgICAgICAgICA8bGk+TmV2ZXIgZ2V0cyBsb3N0IG9yIHRocm93biBhd2F5PC9saT4KICAgICAgICAgICAgPGxpPlVwZGF0ZSBhbnl0aW1lIGluIDUgbWludXRlczwvbGk+CiAgICAgICAgICAgIDxsaT5TZWUgd2hvIHZpZXdzIHlvdXIgY2FyZCAmIHdoZW48L2xpPgogICAgICAgICAgICA8bGk+VW5saW1pdGVkIGluZm9ybWF0aW9uIHNwYWNlPC9saT4KICAgICAgICAgICAgPGxpPkFkZCB2aWRlbywgbGlua3MsIHNvY2lhbCBtZWRpYTwvbGk+CiAgICAgICAgICAgIDxsaT5TaGFyZSBldmVyeXdoZXJlIGluc3RhbnRseTwvbGk+CiAgICAgICAgICAgIDxsaT5Xb3JrcyBwZXJmZWN0bHkgb24gbW9iaWxlPC9saT4KICAgICAgICAgICAgPGxpPlByb2Zlc3Npb25hbCAmIGVjby1mcmllbmRseTwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogIDwvc2VjdGlvbj4KCiAgPCEtLSBTVEFUUyBTRUNUSU9OIC0tPgogIDxzZWN0aW9uIGNsYXNzPSJzdGF0cyI+CiAgICA8ZGl2IGNsYXNzPSJzdGF0cy1jb250YWluZXIiPgogICAgICA8ZGl2IGNsYXNzPSJzZWN0aW9uLWhlYWRlciI+CiAgICAgICAgPGgyIHN0eWxlPSJjb2xvcjogdmFyKC0td2hpdGUpOyI+VGhlIE51bWJlcnMgRG9uJ3QgTGllPC9oMj4KICAgICAgICA8cCBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSIgc3R5bGU9ImNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOSk7Ij4KICAgICAgICAgIFJlYWwgZGF0YSBmcm9tIHJlYWwgQWZyaWNhbiBlbnRyZXByZW5ldXJzIHVzaW5nIGRpZ2l0YWwgY2FyZHMKICAgICAgICA8L3A+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0ic3RhdHMtZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1ib3ggZmFkZS1pbiI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LW51bWJlciI+ODglPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5QYXBlciBjYXJkcyBkaXNjYXJkZWQgd2l0aGluIGEgd2VlazwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0YXQtYm94IGZhZGUtaW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1udW1iZXIiPjEweDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1sYWJlbCI+TW9yZSBsaWtlbHkgdG8gYmUgc2hhcmVkIG9uIHNvY2lhbCBtZWRpYTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9InN0YXQtYm94IGZhZGUtaW4iPgogICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdC1udW1iZXIiPjEwMCU8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtbGFiZWwiPlRyYWNrYWJsZSBpbnRlcmFjdGlvbnMgJiBhbmFseXRpY3M8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWJveCBmYWRlLWluIj4KICAgICAgICAgIDxkaXYgY2xhc3M9InN0YXQtbnVtYmVyIj4yNC83PC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5Xb3JraW5nIGZvciB5b3UsIGV2ZW4gd2hlbiB5b3Ugc2xlZXA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L3NlY3Rpb24+CgogIDwhLS0gQkVORUZJVFMgU0VDVElPTiAtLT4KICA8c2VjdGlvbiBjbGFzcz0iYmVuZWZpdHMiPgogICAgPGRpdiBjbGFzcz0iYmVuZWZpdHMtY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0ic2VjdGlvbi1oZWFkZXIiPgogICAgICAgIDxoMj5XaHkgQWZyaWNhbiBFbnRyZXByZW5ldXJzIExvdmUgSGFuZHNoYWtlIENhcmRzPC9oMj4KICAgICAgICA8cCBjbGFzcz0ic2VjdGlvbi1zdWJ0aXRsZSI+CiAgICAgICAgICBNb3JlIHRoYW4ganVzdCBhIGRpZ2l0YWwgY2FyZC4gSXQncyB5b3VyIHByb2Zlc3Npb25hbCBpZGVudGl0eSB0aGF0IHdvcmtzIGFzIGhhcmQgYXMgeW91IGRvLgogICAgICAgIDwvcD4KICAgICAgPC9kaXY+CiAgICAgIAogICAgICA8ZGl2IGNsYXNzPSJiZW5lZml0cy1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJiZW5lZml0LWNhcmQgZmFkZS1pbiI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmVuZWZpdC1pY29uIj7wn46oPC9zcGFuPgogICAgICAgICAgPGgzPkJlIFVuaXF1ZWx5IFlPVTwvaDM+CiAgICAgICAgICA8cD5DaG9vc2UgY29sb3JzIHRoYXQgcmVwcmVzZW50IHlvdXIgYnJhbmQuIEFkZCB5b3VyIHBlcnNvbmFsaXR5LiBTdGFuZCBvdXQgaW4gYSBzZWEgb2YgYm9yaW5nIGJ1c2luZXNzIGNhcmRzLiBBZnJpY2FuIGNyZWF0aXZpdHkgZGVzZXJ2ZXMgdG8gc2hpbmUuPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJlbmVmaXQtY2FyZCBmYWRlLWluIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJiZW5lZml0LWljb24iPvCfk7E8L3NwYW4+CiAgICAgICAgICA8aDM+TW9iaWxlLUZpcnN0IERlc2lnbjwvaDM+CiAgICAgICAgICA8cD5CdWlsdCBmb3IgaG93IEFmcmljYSB1c2VzIHBob25lcy4gT25lIHRhcCBvcGVucyB5b3VyIGNvbXBsZXRlIHByb2ZpbGUuIE5vIHR5cGluZywgbm8gc2VhcmNoaW5nLCBubyBoYXNzbGUuIEp1c3QgaW5zdGFudCBjb25uZWN0aW9uLjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJiZW5lZml0LWNhcmQgZmFkZS1pbiI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmVuZWZpdC1pY29uIj7wn5SEPC9zcGFuPgogICAgICAgICAgPGgzPlVwZGF0ZSBBbnl0aW1lPC9oMz4KICAgICAgICAgIDxwPkNoYW5nZWQgeW91ciBudW1iZXI/IE5ldyBidXNpbmVzcz8gSnVzdCB1cGRhdGUgeW91ciBjYXJkIGluIDUgbWludXRlcy4gRXZlcnlvbmUgd2l0aCB5b3VyIFFSIGNvZGUgc2VlcyB0aGUgbmV3IGluZm8gaW5zdGFudGx5LiBObyByZXByaW50aW5nLjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJiZW5lZml0LWNhcmQgZmFkZS1pbiI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iYmVuZWZpdC1pY29uIj7wn5OKPC9zcGFuPgogICAgICAgICAgPGgzPlNlZSBSZWFsIFJlc3VsdHM8L2gzPgogICAgICAgICAgPHA+S25vdyBleGFjdGx5IHdobyB2aWV3ZWQgeW91ciBjYXJkLCB3aGVuIHRoZXkgdmlld2VkIGl0LCBhbmQgd2hhdCB0aGV5IGNsaWNrZWQuIFR1cm4gbmV0d29ya2luZyBpbnRvIGRhdGEgeW91IGNhbiBhY3R1YWxseSB1c2UuPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJlbmVmaXQtY2FyZCBmYWRlLWluIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJiZW5lZml0LWljb24iPvCfjqU8L3NwYW4+CiAgICAgICAgICA8aDM+QWRkIFZpZGVvICYgTWVkaWE8L2gzPgogICAgICAgICAgPHA+TGV0IHRoZW0gc2VlIHlvdXIgZmFjZSwgaGVhciB5b3VyIHZvaWNlLCB3YXRjaCB5b3VyIHdvcmsuIFZpZGVvIGludHJvZHVjdGlvbnMgYnVpbGQgdHJ1c3QgaW5zdGFudGx5LiBZb3VyIHBlcnNvbmFsaXR5IGJlY29tZXMgeW91ciBhZHZhbnRhZ2UuPC9wPgogICAgICAgIDwvZGl2PgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImJlbmVmaXQtY2FyZCBmYWRlLWluIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJiZW5lZml0LWljb24iPvCfkrA8L3NwYW4+CiAgICAgICAgICA8aDM+QWZmb3JkYWJsZSBFeGNlbGxlbmNlPC9oMz4KICAgICAgICAgIDxwPkZyb20gJDk3L3llYXIuIFRoYXQncyBsZXNzIHRoYW4gcHJpbnRpbmcgNTAwIHBhcGVyIGNhcmRzLCBhbmQgdGhlc2Ugd29yayBmb3JldmVyLiBQbHVzLCB3ZSBhY2NlcHQgbW9iaWxlIG1vbmV5IGFuZCBsb2NhbCBwYXltZW50cy48L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9zZWN0aW9uPgoKICA8IS0tIENUQSBTRUNUSU9OIC0tPgogIDxzZWN0aW9uIGNsYXNzPSJjdGEtc2VjdGlvbiI+CiAgICA8ZGl2IGNsYXNzPSJjdGEtY29udGFpbmVyIj4KICAgICAgPGgyPlJlYWR5IHRvIFN0b3AgQmVpbmcgRm9yZ290dGVuPzwvaDI+CiAgICAgIDxwPkpvaW4gaHVuZHJlZHMgb2YgQWZyaWNhbiBlbnRyZXByZW5ldXJzIHdobyd2ZSBkaXRjaGVkIHBhcGVyIGFuZCBzdGFydGVkIHN0YW5kaW5nIG91dC48L3A+CiAgICAgIDxhIGhyZWY9Ii9wcmljaW5nIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5Ij48c3Bhbj5DaG9vc2UgWW91ciBDYXJkIOKGkjwvc3Bhbj48L2E+CiAgICA8L2Rpdj4KICA8L3NlY3Rpb24+CgogIDwhLS0gRk9PVEVSIC0tPgogIDxmb290ZXIgY2xhc3M9ImZvb3RlciI+CiAgICA8ZGl2IGNsYXNzPSJmb290ZXItY29udGFpbmVyIj4KICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb2x1bW4iPgogICAgICAgICAgPGg0PkhhbmRzaGFrZS5hZnJpY2E8L2g0PgogICAgICAgICAgPHAgc3R5bGU9Im9wYWNpdHk6IDAuOTsgbGluZS1oZWlnaHQ6IDEuNzsiPgogICAgICAgICAgICBQcm9mZXNzaW9uYWwgZGlnaXRhbCBidXNpbmVzcyBjYXJkcyBmb3IgQWZyaWNhbiBlbnRyZXByZW5ldXJzLiBTdGFuZCBvdXQsIGdldCBzaGFyZWQsIG1ha2UgY29ubmVjdGlvbnMgdGhhdCBjb3VudC4KICAgICAgICAgIDwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItY29sdW1uIj4KICAgICAgICAgIDxoND5RdWljayBMaW5rczwvaDQ+CiAgICAgICAgICA8dWw+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Ib21lPC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSIvZ2FsbGVyeSI+R2FsbGVyeTwvYT48L2xpPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iL3ByaWNpbmciPlByaWNpbmc8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9idW5kbGVzIj5CdW5kbGVzPC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSIvYWJvdXQiPkFib3V0IFVzPC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSIvY29udGFjdCI+Q29udGFjdDwvYT48L2xpPgogICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgICAKICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXItY29sdW1uIj4KICAgICAgICAgIDxoND5SZXNvdXJjZXM8L2g0PgogICAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2dyb3VwLXByaWNpbmciPkdyb3VwIFByaWNpbmc8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9jb2xvci1ndWlkZSI+Q29sb3IgR3VpZGU8L2E+PC9saT4KICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii9yZWZlcnJhbC1wcm9ncmFtIj5SZWZlcnJhbCBQcm9ncmFtPC9hPjwvbGk+CiAgICAgICAgICAgIDxsaT48YSBocmVmPSIvZmFxIj5GQVE8L2E+PC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWNvbHVtbiI+CiAgICAgICAgICA8aDQ+R2V0IEluIFRvdWNoPC9oND4KICAgICAgICAgIDxwIHN0eWxlPSJvcGFjaXR5OiAwLjk7IG1hcmdpbi1ib3R0b206IDAuNXJlbTsiPvCfk6cgaGVsbG9AaGFuZHNoYWtlLmFmcmljYTwvcD4KICAgICAgICAgIDxwIHN0eWxlPSJvcGFjaXR5OiAwLjk7IG1hcmdpbi1ib3R0b206IDAuNXJlbTsiPvCfk7EgV2hhdHNBcHA6ICtbWW91ciBOdW1iZXJdPC9wPgogICAgICAgICAgPHAgc3R5bGU9Im9wYWNpdHk6IDAuOTsiPvCflZIgTW9uLUZyaSwgOUFNLTVQTSBFQVQ8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICAKICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWRpc2NsYWltZXIiPgogICAgICAgIDxoND5MZWdhbCBEaXNjbGFpbWVyPC9oND4KICAgICAgICA8cD48c3Ryb25nPkNvbnRlbnQgUHJvdGVjdGlvbjo8L3N0cm9uZz4gQWxsIGNvbnRlbnQsIGRlc2lnbnMsIGFuZCBtYXRlcmlhbHMgYXJlIHByb3RlY3RlZCBieSBjb3B5cmlnaHQuIFVuYXV0aG9yaXplZCByZXByb2R1Y3Rpb24gb3IgY29tbWVyY2lhbCB1c2UgaXMgcHJvaGliaXRlZC48L3A+CiAgICAgICAgPHA+PHN0cm9uZz5TZXJ2aWNlIFRlcm1zOjwvc3Ryb25nPiBCeSB1c2luZyBoYW5kc2hha2UuYWZyaWNhLCB5b3UgYWdyZWUgdG8gb3VyIHRlcm1zIG9mIHNlcnZpY2UuIDMwLWRheSBzYXRpc2ZhY3Rpb24gZ3VhcmFudGVlIG9uIGluaXRpYWwgcHVyY2hhc2UuIFdlIHJlc2VydmUgdGhlIHJpZ2h0IHRvIG1vZGlmeSBwcmljaW5nIHdpdGggMzAgZGF5cyBub3RpY2UuPC9wPgogICAgICAgIDxwPjxzdHJvbmc+Tm8gR3VhcmFudGVlczo8L3N0cm9uZz4gUmVzdWx0cyB2YXJ5IGJ5IGluZGl2aWR1YWwgZWZmb3J0LiBXaGlsZSB3ZSBzdHJpdmUgZm9yIDk5LjklIHVwdGltZSwgd2UgY2Fubm90IGd1YXJhbnRlZSB1bmludGVycnVwdGVkIHNlcnZpY2UuPC9wPgogICAgICAgIDxwIHN0eWxlPSJtYXJnaW4tdG9wOiAxcmVtOyI+CiAgICAgICAgICA8YSBocmVmPSIvdGVybXMiIHN0eWxlPSJjb2xvcjogdmFyKC0tZ29sZCk7IG1hcmdpbi1yaWdodDogMXJlbTsiPlRlcm1zIG9mIFNlcnZpY2U8L2E+CiAgICAgICAgICA8YSBocmVmPSIvcHJpdmFjeSIgc3R5bGU9ImNvbG9yOiB2YXIoLS1nb2xkKTsgbWFyZ2luLXJpZ2h0OiAxcmVtOyI+UHJpdmFjeSBQb2xpY3k8L2E+CiAgICAgICAgICA8YSBocmVmPSIvcmVmdW5kLXBvbGljeSIgc3R5bGU9ImNvbG9yOiB2YXIoLS1nb2xkKTsiPlJlZnVuZCBQb2xpY3k8L2E+CiAgICAgICAgPC9wPgogICAgICA8L2Rpdj4KICAgICAgCiAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1ib3R0b20iPgogICAgICAgIDxkaXY+CiAgICAgICAgICA8cD7CqSAyMDI1IEhhbmRzaGFrZS5hZnJpY2Eg4oCiIEFsbCBSaWdodHMgUmVzZXJ2ZWQ8L3A+CiAgICAgICAgICA8cCBzdHlsZT0iZm9udC1zaXplOiAwLjg1cmVtOyBvcGFjaXR5OiAwLjc7IG1hcmdpbi10b3A6IDAuNXJlbTsiPkEgRGlnaXRhbCBJbmZyYXN0cnVjdHVyZSBTb2x1dGlvbjwvcD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsiPgogICAgICAgICAgPHA+UG93ZXJlZCBieSA8YSBocmVmPSJodHRwczovL2R5bmFtaWNwYXJhZGlnbXMuaW8iPkR5bmFtaWMgUGFyYWRpZ21zPC9hPjwvcD4KICAgICAgICAgIDxwIHN0eWxlPSJmb250LXNpemU6IDAuODVyZW07IG9wYWNpdHk6IDAuNzsgbWFyZ2luLXRvcDogMC41cmVtOyI+Q29tcGxldGUgRGlnaXRhbCBCdXNpbmVzcyBTb2x1dGlvbnM8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9mb290ZXI+CgogIDwhLS0gU0NSRUVOU0hPVCBQUk9URUNUSU9OIC0tPgogIDxzY3JpcHQ+CiAgICAvLyBEaXNhYmxlIHJpZ2h0LWNsaWNrCiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIGZ1bmN0aW9uKGUpIHsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9KTsKICAgIAogICAgLy8gRGlzYWJsZSBrZXlib2FyZCBzaG9ydGN1dHMKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgIGlmIChlLmtleUNvZGUgPT09IDEyMyB8fCAKICAgICAgICAgIChlLmN0cmxLZXkgJiYgZS5zaGlmdEtleSAmJiBlLmtleUNvZGUgPT09IDczKSB8fAogICAgICAgICAgKGUuY3RybEtleSAmJiBlLmtleUNvZGUgPT09IDg1KSB8fAogICAgICAgICAgKGUuY3RybEtleSAmJiBlLmtleUNvZGUgPT09IDgzKSB8fAogICAgICAgICAgZS5rZXlDb2RlID09PSA0NCB8fAogICAgICAgICAgKGUuY3RybEtleSAmJiBlLmtleUNvZGUgPT09IDgwKSkgewogICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0pOwogICAgCiAgICAvLyBNb2JpbGUgbWVudSB0b2dnbGUKICAgIGZ1bmN0aW9uIHRvZ2dsZU1lbnUoKSB7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCduYXZMaW5rcycpLmNsYXNzTGlzdC50b2dnbGUoJ2FjdGl2ZScpOwogICAgfQogICAgCiAgICAvLyBTY3JvbGwgYW5pbWF0aW9ucwogICAgY29uc3Qgb2JzZXJ2ZXJPcHRpb25zID0gewogICAgICB0aHJlc2hvbGQ6IDAuMSwKICAgICAgcm9vdE1hcmdpbjogJzBweCAwcHggLTEwMHB4IDBweCcKICAgIH07CiAgICAKICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGVudHJpZXMpIHsKICAgICAgZW50cmllcy5mb3JFYWNoKGVudHJ5ID0+IHsKICAgICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcpIHsKICAgICAgICAgIGVudHJ5LnRhcmdldC5jbGFzc0xpc3QuYWRkKCd2aXNpYmxlJyk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sIG9ic2VydmVyT3B0aW9ucyk7CiAgICAKICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5mYWRlLWluJykuZm9yRWFjaChlbCA9PiBvYnNlcnZlci5vYnNlcnZlKGVsKSk7CiAgICAKICAgIC8vIENvbnNvbGUgcHJvdGVjdGlvbgogICAgY29uc29sZS5jbGVhcigpOwogICAgY29uc29sZS5sb2coJyVj8J+boe+4jyBQUk9URUNURUQgQ09OVEVOVCDwn5uh77iPJywgJ2NvbG9yOiAjMDAxRjNGOyBmb250LXNpemU6IDI0cHg7IGZvbnQtd2VpZ2h0OiBib2xkOycpOwogICAgY29uc29sZS5sb2coJyVjwqkgMjAyNSBIYW5kc2hha2UuYWZyaWNhJywgJ2NvbG9yOiAjRkZENzAwOyBmb250LXNpemU6IDE2cHg7Jyk7CiAgPC9zY3JpcHQ+Cgo8L2JvZHk+CjwvaHRtbD4=","embed":""}
Handshake.africa - Professional Digital Business Cards for African Entrepreneurs
Handshake.africa
  • Gallery
  • Pricing
  • About
  • Contact

Stop Handing Out Paper. Start Standing Out.

Create your stunning digital business card that gets shared, remembered, and brings results. Mobile-optimized, QR-enabled, and built for African entrepreneurs who refuse to blend in.

See Pricing → View Examples

Paper Cards vs Digital Cards

One gets thrown away. One gets shared everywhere.

šŸ“„

Paper Business Cards

  • 88% thrown away within a week
  • Gets lost, damaged, forgotten
  • Can't update information
  • Zero tracking or analytics
  • Limited space (50 words max)
  • Costs money to reprint
  • Not mobile-friendly
  • Environmentally wasteful
šŸ“±

Digital Handshake Cards

  • Never gets lost or thrown away
  • Update anytime in 5 minutes
  • See who views your card & when
  • Unlimited information space
  • Add video, links, social media
  • Share everywhere instantly
  • Works perfectly on mobile
  • Professional & eco-friendly

The Numbers Don't Lie

Real data from real African entrepreneurs using digital cards

88%
Paper cards discarded within a week
10x
More likely to be shared on social media
100%
Trackable interactions & analytics
24/7
Working for you, even when you sleep

Why African Entrepreneurs Love Handshake Cards

More than just a digital card. It's your professional identity that works as hard as you do.

šŸŽØ

Be Uniquely YOU

Choose colors that represent your brand. Add your personality. Stand out in a sea of boring business cards. African creativity deserves to shine.

šŸ“±

Mobile-First Design

Built for how Africa uses phones. One tap opens your complete profile. No typing, no searching, no hassle. Just instant connection.

šŸ”„

Update Anytime

Changed your number? New business? Just update your card in 5 minutes. Everyone with your QR code sees the new info instantly. No reprinting.

šŸ“Š

See Real Results

Know exactly who viewed your card, when they viewed it, and what they clicked. Turn networking into data you can actually use.

šŸŽ„

Add Video & Media

Let them see your face, hear your voice, watch your work. Video introductions build trust instantly. Your personality becomes your advantage.

šŸ’°

Affordable Excellence

From $97/year. That's less than printing 500 paper cards, and these work forever. Plus, we accept mobile money and local payments.

Ready to Stop Being Forgotten?

Join hundreds of African entrepreneurs who've ditched paper and started standing out.

Choose Your Card →

Handshake.africa

Professional digital business cards for African entrepreneurs. Stand out, get shared, make connections that count.

Quick Links

  • Home
  • Gallery
  • Pricing
  • Bundles
  • About Us
  • Contact

Resources

  • Group Pricing
  • Color Guide
  • Referral Program
  • FAQ

Get In Touch

šŸ“§ hello@handshake.africa

šŸ“± WhatsApp: +[Your Number]

šŸ•’ Mon-Fri, 9AM-5PM EAT

Legal Disclaimer

Content Protection: All content, designs, and materials are protected by copyright. Unauthorized reproduction or commercial use is prohibited.

Service Terms: By using handshake.africa, you agree to our terms of service. 30-day satisfaction guarantee on initial purchase. We reserve the right to modify pricing with 30 days notice.

No Guarantees: Results vary by individual effort. While we strive for 99.9% uptime, we cannot guarantee uninterrupted service.

Terms of Service Privacy Policy Refund Policy

Ā© 2025 Handshake.africa • All Rights Reserved

A Digital Infrastructure Solution

Powered by Dynamic Paradigms

Complete Digital Business Solutions

Image Gallery Grid
T
Please Check Your Email
We Will Be Following Up Shortly
*
*
*

warning