PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1DcDEyNTIiPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KPGxpbmsgaHJlZj0iZmlsZTovLy9DfC9Eb2N1bWVudHMlMjBhbmQlMjBTZXR0aW5ncy9uYWNpLlBFUEUvRGVza3RvcC9PQkpFQ1RXRUIvdGhlbWUvTWFzdGVyLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+Cjx0aXRsZT5HZXR0aW5nIFN0YXJ0ZWQuaHRtbDwvdGl0bGU+CjwvaGVhZD4KPGJvZHk+CjxIMT5TZXR1cCBhbmQgQ29uZmlndXJhdGlvbjwvSDE+CjxIMj4xLjAgSW50cm9kdWN0aW9uPC9IMj4KPFA+VGhlIHBsdWdpbiBpcyBkaXN0cmlidXRlZCBpbiBaSVAgZm9ybWF0LCB0aGVyZWZvcmUsIHVzaW5nIHlvdXIgWklQIGZpbGUgdXRpbGl0eSwKICB1bnppcCBsb21ib3ouemlwIGZpbGUgaW50byB0aGUgRWNsaXBzZV9Ib21lIGRpcmVjdG9yeS4gVGhpcyB3aWxsIGNyZWF0ZSBhIHNldApvZiBuZXcgcGx1Z2luIGRpcmVjdG9yaWVzIGFzIGZvbGxvd3M6PC9QPgo8UD48aW1nIHNyYz0icGx1Z2lucy5naWYiIHdpZHRoPSIzMDYiIGhlaWdodD0iMjQwIj48L1A+CjxIMj4yLjAgQ3VzdG9taXppbmcgSmF2YSBQZXJzcGVjdGl2ZTwvSDI+CjxQPlNlbGVjdCBtZW51IJFXaW5kb3cmZ3Q7Q3VzdG9taXplIFBlcnNwZWN0aXZlLi4ukiwgaW4gdGhlIFNob3J0Y3V0cyB0YWIgY2hvb3NlICdTdWJtZW51czogTmV3JwoKY2hlY2sgYWxsIExvbWJveiByZWxhdGVkIGl0ZW1zLgoKICAgU2VsZWN0IG1lbnUgV2luZG93PkN1c3RvbWl6ZSBQZXJzcGVjdGl2ZS4uLicsIGluIHRoZSBTaG9ydGN1dHMgdGFiIGNob29zZSAnU3VibWVudXM6IFNob3cgVmlldycKCmNoZWNrIJFMb21ib3ogVmlld3MnLCBKMkVFIFZpZXcuCgpTZWxlY3QgbWVudSBXaW5kb3c+Q3VzdG9taXplIFBlcnNwZWN0aXZlLi4uJywgaW4gdGhlIENvbW1hbmRzIHRhYiBpbiB0aGUgYXZhaWxhYmUgY29tbWFuZHMgdGFiLCBjaGVjayBMb21ib3ogQWN0aW9ucy4KPFA+PGltZyBzcmM9ImN1c3RvbWl6ZS5qcGciIHdpZHRoPSI2NDIiIGhlaWdodD0iNDkxIj4KPFA+Jm5ic3A7CjxIMj4zLjAgTG9tYm96IFByZWZlcmVuY2VzPC9IMj4KPFA+U2VsZWN0IG1lbnUgV2luZG93Jmd0O1ByZWZlcmVuY2VzJywgaW4gdGhlIFdvcmtiZW5jaC0+TGFiZWwgRGVjb3JhdGlvbnMsIGNoZWNrCiAgTG9tYm96IEoyRUUgRGVjb3JhdG9ycy48L1A+CjxQPjxpbWcgc3JjPSJwcmVmczEuanBnIiB3aWR0aD0iNTA2IiBoZWlnaHQ9IjM5MCI+PC9QPgo8UD5UbyB1c2UgTG9tYm96LCBKYXZhIHByb2plY3RzIG5lZWQgdG8gaGF2ZSBzZXBhcmF0ZSBzb3VyY2UgYW5kIGJpbmFyeQogIGZvbGRlcnMuIE9wZW4gdGhlIHByZWZlcmVuY2VzIGRpYWxvZyBmcm9tIFdvcmtiZW5jaCAtUHJlZmVyZW5jZXMgbWVudSBhbmQgRXhwYW5kCiAgdGhlIEphdmEgaXRlbSwgTmV3IFByb2plY3QuIE1ha2Ugc3VyZSB0aGF0IHRoZSAmIzgyMTY7VXNlIGZvbGRlcnMgZm9yIHNvdXJjZQogIGFuZCBvdXRwdXQgbG9jYXRpb24gYXMgZGVmYXVsdCBmb3IgbmV3bHkgY3JlYXRlZCBKYXZhIHByb2plY3RzJiM4MjE3OyBjaGVjawogIGJveCBpcyB0aWNrZWQuIEZpbmFsbHkgZW50ZXIgJiM4MjE2O3NyYyYjODIxNzsgYW5kICYjODIxNjtiaW4mIzgyMTc7IGZvciB0aGUKICBuYW1lcyBvZiB0aGVzZSBmb2xkZXJzLCB3aGljaCBhcmUgdGhlIGRlZmF1bHRzLiBQbGVhc2UgZG8gbm90IG1vZGlmeSB0aGVzZQpuYW1lcyBhcyB0aGV5IGFyZSByZXF1aXJlZCBieSBzb21lIG9mIHRoZSBMb21ib3ogdGFza3MuPC9QPgo8cD48aW1nIHNyYz0icHJlZnMyLmpwZyI+CjwvcD4KPHA+TW9zdCBhcHBsaWNhdGlvbiBzZXJ2ZXJzIHVzZSB0aGUgc3RhbmRhcmQgSmF2YSBjb21waWxlciAoamF2YWMpIHRvIGNvbXBpbGUgSlNQIGZpbGVzLiAgSmF2YWMgaXMgZm91bmQgaW4gdGhlIHRvb2xzLmphciBkaXN0cmlidXRlZCB3aXRoIHN0YW5kYXJkIEphdmEgSkRLcyAoTk9UIEpSRXMpLiAKWW91IG11c3Qgc2VsZWN0IHRoZSB0b29scy5qYXIgdGhhdCB3aWxsIGJlIHVzZWQgYnkgdGhlIGFwcGxpY2F0aW9uIHNlcnZlcnMgaGVyZS4gIEl0IGlzIG5vcm1hbGx5IGZvdW5kIGluc2lkZSB0aGUgk2xpYpQgZm9sZGVyIHVuZGVyIHRoZSBKREsgaW5zdGFsbGF0aW9uLgo8L3A+CjxwPjxpbWcgc3JjPSJwcmVmczMuanBnIiB3aWR0aD0iNjMyIiBoZWlnaHQ9IjM0NCI+PC9wPgo8cD48c3Ryb25nPkVuYWJsZSBKU1AgU3ludGF4PC9zdHJvbmc+IGNoZWNraW5nIGVuYWJsZXMgb3IgZGlzYWJsZXMgSlNQIGNvbXBpbGF0aW9uLiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3UgaGF2ZSB2ZXJ5IGxhcmdlIEpTUCBmaWxlcyBhbmQgeW91IGRvIG5vdCB3YW50IHRvIGNoZWNrIHRoZSBzeW50YXggZXZlcnl0aW1lIHlvdSBzYXZlIHRoZSBmaWxlLiBCeSBkZWZhdWx0IGl0IGlzIGVuYWJsZWQuIElmIHlvdSBkaXNhYmxlIGl0IExvbWJveiB3aWxsIG5vdCBwZXJmb3JtIGFueSBzeW50YXggY2hlY2tpbmcgYW5kIHlvdSB3aWxsIG5vdCBnZXQgYW55IGZlZWRiYWNrIGFib3V0IHRoZSBwb3RlbnRpYWwgcHJvYmxlbXMgaW4gSlNQIGZpbGVzLgogIDxzdHJvbmc+U2VydmVyIHJlc3RhcnQ8L3N0cm9uZz4gaXMgdXNlZnVsIGlmIHlvdXIgYXBwbGljYXRpb24gc2VydmVyIGRvZXMgbm90IGF1dG9tYXRpY2FsbHkgcmVsb2FkIGEgd2ViL2VqYiBtb2R1bGUgYWZ0ZXIgaXQgaGFzIGJlZW4gcmVwbG95ZWQuIElmIHRoaXMgb3B0aW9uIGlzIGVuYWJsZWQsIExvbWJveiB3aWxsIHJlc3RhcnQgdGhlIHNlcnZlciBhZnRlciBhIG1vZHVsZSBpcyByZWRlcGxveWVkLiBUaGlzIG9wdGlvbiBtYXliZSB1c2VmdWwgaWYgeW91IGFyZSB3b3JraW5nIHdpdGggVG9tY2F0LjxzdHJvbmc+IFVwZGF0ZQogIHNlcnZlciBjbGFzc3BhdGg8L3N0cm9uZz4gYW5kIGRlcGxveW1lbnQgcGFyYW1ldGVycyB0ZWxscyBMb21ib3ogdG8gY2hlY2sgYW5kIGZpeCB0aGUgUHJvamVjdCBjbGFzc3BhdGggYW5kIGRlcGxveW1lbnQgcHJvcGVydGllcyBvZiBhIHNlbGVjdGVkIG1vZHVsZSBldmVyeXRpbWUgeW91IExhdW5jaCB0aGUgdGFyZ2V0ZWQgc2VydmVyIG9mIGFuIGVqYiBvciB3ZWIgbW9kdWxlLiBUaGlzIGlzIHZlcnkgdXNlZnVsIGlmIHlvdSBtYWtlIGEgY2hhbmdlIHRvIHRoZSBzZXJ2ZXIgZGVmaW5pdGlvbiBhZnRlciB5b3UgY3JlYXRlIHRoZSBtb2R1bGUuIEJ5IGRlZmF1bHQgaXQgaXMgZW5hYmxlZC4gSWYgeW91IGRpc2FibGUgdGhpcyBvcHRpb24sIHlvdSBoYXZlIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdSBmaXggdGhlIHByb2plY3QgY2xhc3NwYXRoIGFuZCBkZXBsb3ltZW50IHByb3BlcnRpZXMgZXZlcnl0aW1lIHlvdSBtYWtlIHN1Y2ggY2hhbmdlcy4KPHN0cm9uZz5Vc2UgYXBwbGljYXRpb24gc2VydmVyIGNsYXNzcGF0aDwvc3Ryb25nPiwgdGVsbCBMb21ib3ogdG8gdXNlIHRoZSBjbGFzc3BhdGggdGhhdCB5b3Ugd2lsbCBkZWZpbmUgaW4gdGhlIG5leHQgc3RlcCB3aGVuIGl0IGxhdW5jaGVzIGFuIGFwcGxpY2F0aW9uIHNlcnZlci4gSXQgd2lsbCBOT1QgdXNlIHRoZSBjbGFzc3BhdGggb2YgdGhlIEphdmEgUHJvamVjdHMgeW91IHdpbGwgY3JlYXRlLiBJZiB5b3UgZG8gbm90IGVuYWJsZSB0aGlzIGZlYXR1cmUsIExvbWJveiB3aWxsIHVzZSB0aGUgY2xhc3NwdGggb2YgdGhlIEphdmEgcHJvamVjdCB0byBsYXVuY2ggYSBzZXJ2ZXIuIFRoZSBkaXNhZHZhbnRhZ2Ugb2YgdGhpcyB3aWxsIGJlIHRoYXQgYWxsIGVkcGxveWRlIHdlYiBhbmQgZWpiIG1vZHVsZXMgd2lsbCBhcHBlYXIgdHdpY2Ugb24gdGhlIGNsYXNzcGF0aDogT25jZSBmcm9tIHRoZSBlY2xpcHNlIGphdmEgcHJvamVjdCBhbmQgb25jZSBmcm9tIHRoZSBlamIgamFyIG9yIHdlYiAud2FyLiBUaGlzIGNhbiBjYXVzZSB1bmV4cGVjdGVkIGNsYXNzIGxvYWRlciBwcm9ibGVtcy4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgdGhlc2UgcHJvYmxlbXMgbWFrZSBzdXJlIHRoYXQgeW91IGVuYWJsZSB0aGlzIGZlYXR1cmUuIAoKVGhlIHJldmVyc2Ugc2lkZSBvZiB0aGUgY29pbiBpcyB5b3Ugd2lsbCBsb29zZSB5b3VyIGFjYXBhYmlsaXR5IGZvciBkeW5hbWljYWxseSBtb2RpZnlpbmcgeW91ciBKYXZhIGNvZGUgaW4gYSBkZWJ1Z2dlciAoSkRLIDEuNCBmZWF0dXJlKS4KClNvbWUgYXBwbGljYXRpb24gc2VydmVycyBhcmUgbW9yZSBzb3BoaXN0aWNhdGVkIGFib3V0IGhvdyB0aGV5IG1hbmFnZSBjbGFzcyBsb2FkZXJzIGFuZCB0aGV5IHdpbGwgYWxsb3cgeW91IHRvIHVzZSB0aGUgcHJvamVjdCBjbGFzc3BhdGgsIGhvd2V2ZXIgbW9zdCB3aWxsIG5vdCAoaS5lLiBKQm9zcywgVG9tY2F0LCBldGMuKQoKPC9wPgo8cD48aW1nIHNyYz0icHJlZnM0LmdpZiI+PC9wPgo8cD48c3Ryb25nPlNlbGVjdCBDb2RlIEdlbmVyYXRpb24gPC9zdHJvbmc+UGx1Z2luIExvbWJveiBzdXBwb3J0cyBleHRlbnNpYmxlCiAgY29kZSBnZW5lcmF0aW9uIHBsdWdpbnMuIEluIHRoaXMgcGFnZSB5b3UgY2FuIGNob29zZSB0aGUgUGx1Z2luIHRoYXQgd2lsbCBiZQogIHVzZWQgdG8gZ2VuZXJhdGUKICBFSkIgY29kZSBhbmQgYW5ub3RhdGlvbnMgdXNpbmcgTG9tYm96LiBMb21ib3ogcHJvdmlkZXMgYSBkZWZhdWx0IHBsdWdpbiBuYW1lZCAiWERvY2xldCIsCiAgdGhhdCB1c2VzIHhkb2NsZXQgYmFzZWQgY29kZSBnZW5lcmF0aW9uLiA8L3A+CjxwPiZuYnNwOzwvcD4KPEgyPjxBIG5hbWU9IlNlcnZlclJ1bnRpbWVTdXBwb3J0Ij40LjAgU2VydmVyIFJ1bnRpbWUgU3VwcG9ydDwvQT48L0gyPgo8UD5Mb21ib3ogY2FuIHdvcmsgd2l0aCBhbG1vc3QgYWxsIEphdmEgYXBwbGljYXRpb24gc2VydmVycy4gWW91IHdpbGwgaGF2ZSB0bwogIHNldCB0aGVzZSBwYXJhbWV0ZXJzIHNvIHRoYXQgTG9tYm96IGNhbiBjcmVhdGUgc2NyaXB0cyB3aGljaCBwb2ludCB0byB0aGUgcmlnaHQKICBwbGFjZXMuIFRoZSBwYXJhbWV0ZXJzIHlvdSBzZXQgaGVyZSBhcmUgdXNlZCBmb3Igc2V0dGluZyBkZWZhdWx0IHZhbHVlcyBmb3IKICBsYXVuY2hpbmcgdGhlIHNlcnZlcnMgYW5kIGZpbmRpbmcgdGhlIGxvY2F0aW9uIGZvciBkZXBsb3lpbmcgV2ViIGFwcGxpY2F0aW9ucwooLndhciBmaWxlcykgYW5kIEVKQiBqYXIgZmlsZXMuPC9QPgo8UD4gTG9tYm96IG1hbmFnZXMgc2VydmVyIHJ1bnRpbWUgZGVmaW5pdGlvbnMgaW4gWE1MIGZpbGVzLiBUaGlzIHdhcyBkb25lIGluCiAgb3JkZXIgdG8gYWxsb3cgcGVvcGxlIHRvIGVudGVyIHRoZWlyIG93biBzZXJ2ZXIgZGVmaW5pdGlvbnMgb3RoZXIgdGhhbiB0aG9zZQogIHNlcnZlcnMKICB0aGF0CiAgYXJlIHBhY2thZ2VkIHdpdGggTG9tYm96LiAKClRoZXNlIGZpbGVzIGFyZSBzdG9yZWQgaW4gYSBmb2xkZXIgbmFtZWQgInNlcnZlcnMiIGluc2lkZSB0aGUgcGx1Z2luLiBMb21ib3oKc2NhbnMgdGhlIGZvbGRlciBldmVyeXRpbWUgaXQgbmVlZHMgYSBkZWZpbml0aW9uLiBBZGRpbmcgYSBuZXcgc2VydmVyIHR5cGUgaXMKYWRkaW5nIG9uZSBvZiB0aGVzZSBmaWxlcyBpbnRvIHRoaXMgZm9sZGVyLgo8L1A+CjxQPjxpbWcgc3JjPSJzZXJ2ZXJydW50aW1lMS5naWYiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjI1Ij4gPC9QPgo8UD5JbiBvcmRlciB0byB1c2UoYWN0aXZhdGUpIGFueSBvZiB0aGVzZSBkZWZpbml0aW9ucyB5b3UgbXVzdCBBTFdBWVMgdmlzaXQgdGhlIExvbWJveiBwcmVmZXJlbmNlcy4gVGhpcyB3aWxsIGxvYWQgdGhlIGZpbGVzIGluIHRoZSBzZXJ2ZXJzIGZvbGRlciBpbnRvIGVjbGlwc2UuCgpOZXh0IHRhc2sgaXMgdG8gY2hlY2sgYW5kIHNldCB0aGUgcHJvcGVydGllcyBhbmQgY2xhc3NwYXRocyBkZWZpbmVkIGZvciB0aGVzZSBzZXJ2ZXJzLgoKQWx0aG91Z2ggdGhlcmUgYXJlIHByZWRlZmluZWQgdmFsdWVzIGZvciB0aGVzZSBwcm9wZXJ0aWVzLCBpdCBpcyBtb3N0IGxpa2VseSB0aGF0IHRoZXkgYXJlIGluY29ycmVjdCBmb3IgeW91ciBjb25maWd1cmF0aW9uLiAKCklUIElTIFZFUlkgSU1QT1JUQU5UIFRIQVQgWU9VIENMSUNLIEFQUExZIGFmdGVyIHlvdSBtYWtlIGFueSBjaGFuZ2VzLiBZb3VyIGNoYW5nZXMgd2lsbCBiZSB0YWtlbiBpbnRvIGFjY291bnQgb25seSBhZnRlciB0aGlzLgoKSWYgeW91ciBzZXJ2ZXIgaXMgbm90IGluIHRoaXMgbGlzdDoKClRoZSBsaXN0IG9mIHNlcnZlcnMgYXJlIG9idGFpbmVkIGZyb20gdGhlIGNvbnRlbnRzIG9mIGEgZm9sZGVyICBuYW1lZCBzZXJ2ZXIgdW5kZXIgdGhlICZsdDtFY2xpcHNlX0hvbWUmZ3Q7IGRpcmVjdG9yeSBwbHVnaW4gZGlyZWN0b3J5IG5hbWVkIGNvbS5vYmplY3RsZWFybi5qZHQuajJlZS4gICBUaGUgbGlzdCBvZiBwcm9wZXJ0aWVzIHRoYXQgeW91IGFyZSBhc2tlZCB0byBlbnRlciBhcmUgZGVmaW5lZCBpbiB0aGUgZmlsZXMgdGhhdCBjYW4gYmUgZm91bmQgdGhlcmUuICBJZiB5b3UgaGF2ZSBhbiBhcHBsaWNhdGlvbiBzZXJ2ZXIgdGhhdCBpcyBub3QgbGlzdGVkLCBqdXN0IGFkZCB5b3VyIG93biBzZXJ2ZXIgZGVmaW5pdGlvbiBpbnRvIHRoaXMgZm9sZGVyLiAgRXhpc3RpbmcgZmlsZXMgc2hvdWxkIHByb3ZpZGUgeW91IHdpdGggcGxlbnR5IG9mIGV4YW1wbGVzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiByZWFkIHRoZSBzZWN0aW9uIG9uICI8YSBocmVmPSJodHRwOi8vd3d3Lm9iamVjdGxlYXJuLmNvbS9zdXBwb3J0L2RvY3Mvc2VydmVyRGVmcy5qc3AiPkFkZGluZyB5b3VyIG93biBzZXJ2ZXI8L2E+Ii4KPC9QPgo8UD5Vc2UgdGhlIDxzdHJvbmc+UHJvcGVydGllcyBUYWIgPC9zdHJvbmc+dG8gY2hhbmdlIHRoZSBwcm9wZXJ0aWVzIG9wZW4gdGhlCiAgcHJlZmVyZW5jZXMgZGlhbG9nIGZyb20gV29ya2JlbmNoIC1QcmVmZXJlbmNlcyBtZW51IGFuZCBoaWdobGlnaHQgdGhlIExvbWJvegogIHNlcnZlciBkZWZpbml0aW9ucyBpdGVtIGluIHRoZSBsaXN0LiBZb3UgbXVzdAogIGVudGVyIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczoKCkNsYXNzcGF0aCB2YXJpYWJsZXM6IAoKSW4gb3JkZXIgZm9yIExvbWJveiB0byBmaW5kIHRoZSBwcm9wZXIgYXBwbGljYXRpb24gc2VydmVyIGNsYXNzZXMgd2l0aG91dCBoYXJkCiAgY29kaW5nIHRoZW0gaW50byBKYXZhIHByb2plY3RzIHdlIHVzZSBjbGFzc3BhdGggdmFyaWFibGVzLiBUaGVzZSBjbGFzcyB2YXJpYWJsZXMKICBhcmUgYXV0b21hdGljYWxseSBhZGRlZCBpbnRvIHRoZSBFY2xpcHNlIGVudmlyb25tZW50IGVhY2ggdGltZSB5b3UgYXBwbHkgdGhlc2UKICBwcm9wZXJ0aWVzLgoKVG8gdmVyaWZ5IHRoYXQgdGhlc2UgdmFyaWFibGVzIGFyZSBzZXQsIG9wZW4gdGhlIHByZWZlcmVuY2VzIGRpYWxvZyBmcm9tIFdvcmtiZW5jaAogIC1QcmVmZXJlbmNlcyBtZW51IGFuZCBFeHBhbmQgdGhlIEphdmEgaXRlbSBmaXJzdCBoaWdobGlnaHQgdGhlIJFDbGFzc3BhdGggVmFyaWFibGVzkiBpdGVtCiAgdW5kZXIgdGhlIEphdmEgbGlzdC4gWW91IFNIT1VMRCBTRUUgdGhlIHZhbHVlcyBzdWNoIGFzIJFKQk9TUzMwMJIgYW5kIJFUT01DQVQ1kiAgZXRjLAogIHdoaWNoIHdpbGwgcG9pbnQgdG8gdGhlIGFwcGxpY2F0aW9uIHNlcnZlciBkaXJlY3Rvcmllcy4KCkFsbCBzZXJ2ZXIgZGVmaW5pdGlvbnMgaGF2ZSB0aGVzZSB2YXJpYWJsZXMuIFlvdSBjYW4gbm93IGNob29zZSBhIG5hbWUgZm9yIHRoZQogIGNsYXNzcGF0aCB2YXJpYWJsZSB5b3Ugd291bGQgbGlrZSB0byB1c2UgYW5kIHNldCB0aGUgcGF0aCBmb3IgdGhpcyB2YXJpYWJsZS4KICBUaGVzZSBzZXR0aW5ncyB3aWxsIGJlIHVzZWQgdG8gYWRkIGEgY2xhc3NwYXRoIHZhcmlhYmxlLCB3aGljaCB5b3UgY2FuIHZlcmlmeQogIGJ5IGxvb2tpbmcgYXQgdGhlIEphdmEgY2xhc3NwYXRoIHZhcmlhYmxlcyBwYWdlIGFzIGRlc2NyaWJlZCBhYm92ZS4gVGhlIGphcgogIGZpbGVzIGFuZCBsaWJyYXJpZXMgeW91IHdpbGwgY2hvc2UgaW4gdGhlIG5leHQgZmV3IHN0ZXBzIHdpbGwgYmUgcmVsYXRpdmUgdG8KICB0aGlzIGNsYXNzcGF0aCB2YXJpYWJsZS4KPC9QPgo8UD48aW1nIHNyYz0ic2VydmVycnVudGltZTIuanBnIiB3aWR0aD0iNTUzIiBoZWlnaHQ9IjQ0NiI+PC9QPgo8UD5Vc2UgPHN0cm9uZz5DbGFzc3BhdGggVGFiIDwvc3Ryb25nPnRvIGNob29zZSB0aGUgamF2YSBsaWJyYXJpZXMgdGhhdCBhcmUgcmVxdWlyZWQKICB0byBsYXVuY2ggdGhpcyBhcHBsaWNhdGlvbiBzZXJ2ZXIuIENsYXNzcGF0aCB2YXJpYWJsZXMgdGhhdCB3ZSBoYXZlIHNldCBpbgogIHRoZSBwcmV2aW91cyBzZWN0aW9uCiAgd2lsbCBiZSB1c2VkIGhlcmUuIFNlcnZlciBjbGFzc3BhdGggaXNlIHVzZWQgdG8gbGF1bmNoIHRoZSBhcHBsaWNhdGlvbiBzZXJ2ZXIsCiAgd2hlcmUgdGhlIENsaWVudCBwYXRoIGlzIHVzZWQgZm9yIHRoZSBjbGllbnQgYXBwbGljYXRpb25zIChpLmUuIEVqYiBUZXN0IENsaWVudHMpLgogIFlvdSBjYW4gYWRkIG9yIHJlbW92ZSBsaWJyYXJpZXMgZnJvbSB0aGVzZSBsaXN0cy4gQXQgdGhlIGVuZCByZW1lbWJlciB0byBjbGljawogIEFwcGx5Lgo8L1A+CjxQPjxpbWcgc3JjPSJzZXJ2ZXJydW50aW1lMy5qcGciPiA8L1A+CjxQPiZuYnNwOzwvUD4KPC9ib2R5Pgo8L2h0bWw+Cg==