mountebank

mountebank - over the wire test doubles

Fork me on GitHub

the apothecary

tcp

Imposter Creation Parameters

Parameter Options Required? Default Description
protocol tcp Yes N/A  
port Any valid port number No A randomly assigned port. mountebank will return the actual value in the POST response. The port to run the imposter on.
mode text or binary. No text Defines the encoding used for request and response stings. text strings will use utf8 encoding, and binary strings will use base64 encoding. See examples on the predicates page.
name Any string No empty string Included in the logs, useful when multiple imposters are set up.
stubs A stub request. No An empty array The list of stubs responsible for matching a request and returning a response
defaultResponse A valid response, see below for response fields No

{ "is": { "data": "" } }
    
...which does not respond.
The default response to send if no predicate matches. Also represents the default values that get merged into a response that doesn't specify every field
endOfRequestResolver See below No Assumes each packet represents a separate request. Determines if the request has finished or not, since this depends on the specific TCP protocol being used. See below for further explanation.

TCP Requests

Field Descripion Type
requestFrom The client socket, primarily used for logging and debugging. string
data The request data. string - the imposter mode defines how the string is encoded.

TCP Responses

Field Type Default
data string an empty string, which does not respond with data, but does send the FIN bit.

Determining the end of a request

The tricky bit about using the raw TCP protocol is knowing when a request ends. Application protocols give some way of determining this, such as the Content-Length header in HTTP or by embedding the message length in binary protocols. By default, mountebank assumes each packet represents a separate request, which typically limits the size of each request to somewhere between 1500 and 64k bytes (you'll get a larger payload using the loopback interface on localhost, but lower level protocols like Ethernet will force a smaller payload over the network). This strategy works for many scenarios as simple serialized requests tend to fall below this size, but breaks down with large requests.

mountebank allows you the flexibility to determine when a request ends using the endOfRequestResolver at the imposter level. The value is a JavaScript function that takes a parameter that represents all request data captured from all packets so far. If the imposter is in text mode, the parameter will be a string; in binary it will be a node.js Buffer object. mountebank's logger object is also passed as an optional second parameter to assist in troubleshooting. Like all JavaScript injection, it requires the --allowInjection command line flag to execute.

Of course, the best option is to have native support for the protocol you're trying to use. Let mountebank know what you're trying to do, and he will try and help you set up your endOfRequestResolver and consider adding your protocol to the built-in protocols.

Let's look at both a binary and a text example:

Supporting large binary requests

The application protocols used for RPC are generally message based and requires some metadata to define the boundaries of the message. For this example, we'll emulate a Mule TCP connector, which adds a four byte length prefix to each message in case it spans multiple packets. Since the message content itself isn't particularly important for this example, we'll simply add enough text to guarantee it will split into multiple packets. Here's the endOfRequestResolver we'll use and the API call to create the imposter:


function (requestData, logger) {
    var messageLength = requestData.readInt32BE(0);
    logger.info('Message length: ' + messageLength + ', so far: ' + requestData.length);
    return requestData.length >= messageLength;
}

POST /imposters HTTP/1.1
Host: localhost:44762
Accept: application/json
Content-Type: application/json

{
  "port": 5555,
  "protocol": "tcp",
  "mode": "binary",
  "stubs": [
    {
      "responses": [{ "is": { "data": "SGVsbG8sIHdvcmxkIQ==" } }]
    }
  ],
  "endOfRequestResolver": {
    "inject": "function (requestData, logger) { var messageLength = requestData.readInt32BE(0); logger.info('Message length: ' + messageLength + ', so far: ' + requestData.length); return requestData.length === messageLength; }"
  }
}

We'll send a large request with the total message size written as a big-endian integer in the first four bytes:


echo "AAEK/0Jvb2sgSQ0KDQpUZWxsIG1lLCBPIG11c2UsIG9mIHRoYXQgaW5nZW5pb3VzIGhlcm8gd2hvIHRyYXZlbGxlZCBmYXIgYW5kIHdpZGUgYWZ0ZXIgaGUgaGFkIHNhY2tlZCB0aGUgZmFtb3VzIHRvd24gb2YgVHJveS4gTWFueSBjaXRpZXMgZGlkIGhlIHZpc2l0LCBhbmQgbWFueSB3ZXJlIHRoZSBuYXRpb25zIHdpdGggd2hvc2UgbWFubmVycyBhbmQgY3VzdG9tcyBoZSB3YXMgYWNxdWFpbnRlZDsgbW9yZW92ZXIgaGUgc3VmZmVyZWQgbXVjaCBieSBzZWEgd2hpbGUgdHJ5aW5nIHRvIHNhdmUgaGlzIG93biBsaWZlIGFuZCBicmluZyBoaXMgbWVuIHNhZmVseSBob21lOyBidXQgZG8gd2hhdCBoZSBtaWdodCBoZSBjb3VsZCBub3Qgc2F2ZSBoaXMgbWVuLCBmb3IgdGhleSBwZXJpc2hlZCB0aHJvdWdoIHRoZWlyIG93biBzaGVlciBmb2xseSBpbiBlYXRpbmcgdGhlIGNhdHRsZSBvZiB0aGUgU3VuLWdvZCBIeXBlcmlvbjsgc28gdGhlIGdvZCBwcmV2ZW50ZWQgdGhlbSBmcm9tIGV2ZXIgcmVhY2hpbmcgaG9tZS4gVGVsbCBtZSwgdG9vLCBhYm91dCBhbGwgdGhlc2UgdGhpbmdzLCBPIGRhdWdodGVyIG9mIEpvdmUsIGZyb20gd2hhdHNvZXZlciBzb3VyY2UgeW91IG1heSBrbm93IHRoZW0uDQoNClNvIG5vdyBhbGwgd2hvIGVzY2FwZWQgZGVhdGggaW4gYmF0dGxlIG9yIGJ5IHNoaXB3cmVjayBoYWQgZ290IHNhZmVseSBob21lIGV4Y2VwdCBVbHlzc2VzLCBhbmQgaGUsIHRob3VnaCBoZSB3YXMgbG9uZ2luZyB0byByZXR1cm4gdG8gaGlzIHdpZmUgYW5kIGNvdW50cnksIHdhcyBkZXRhaW5lZCBieSB0aGUgZ29kZGVzcyBDYWx5cHNvLCB3aG8gaGFkIGdvdCBoaW0gaW50byBhIGxhcmdlIGNhdmUgYW5kIHdhbnRlZCB0byBtYXJyeSBoaW0uIEJ1dCBhcyB5ZWFycyB3ZW50IGJ5LCB0aGVyZSBjYW1lIGEgdGltZSB3aGVuIHRoZSBnb2RzIHNldHRsZWQgdGhhdCBoZSBzaG91bGQgZ28gYmFjayB0byBJdGhhY2E7IGV2ZW4gdGhlbiwgaG93ZXZlciwgd2hlbiBoZSB3YXMgYW1vbmcgaGlzIG93biBwZW9wbGUsIGhpcyB0cm91YmxlcyB3ZXJlIG5vdCB5ZXQgb3ZlcjsgbmV2ZXJ0aGVsZXNzIGFsbCB0aGUgZ29kcyBoYWQgbm93IGJlZ3VuIHRvIHBpdHkgaGltIGV4Y2VwdCBOZXB0dW5lLCB3aG8gc3RpbGwgcGVyc2VjdXRlZCBoaW0gd2l0aG91dCBjZWFzaW5nIGFuZCB3b3VsZCBub3QgbGV0IGhpbSBnZXQgaG9tZS4NCg0KTm93IE5lcHR1bmUgaGFkIGdvbmUgb2ZmIHRvIHRoZSBFdGhpb3BpYW5zLCB3aG8gYXJlIGF0IHRoZSB3b3JsZCdzIGVuZCwgYW5kIGxpZSBpbiB0d28gaGFsdmVzLCB0aGUgb25lIGxvb2tpbmcgV2VzdCBhbmQgdGhlIG90aGVyIEVhc3QuIEhlIGhhZCBnb25lIHRoZXJlIHRvIGFjY2VwdCBhIGhlY2F0b21iIG9mIHNoZWVwIGFuZCBveGVuLCBhbmQgd2FzIGVuam95aW5nIGhpbXNlbGYgYXQgaGlzIGZlc3RpdmFsOyBidXQgdGhlIG90aGVyIGdvZHMgbWV0IGluIHRoZSBob3VzZSBvZiBPbHltcGlhbiBKb3ZlLCBhbmQgdGhlIHNpcmUgb2YgZ29kcyBhbmQgbWVuIHNwb2tlIGZpcnN0LiBBdCB0aGF0IG1vbWVudCBoZSB3YXMgdGhpbmtpbmcgb2YgQWVnaXN0aHVzLCB3aG8gaGFkIGJlZW4ga2lsbGVkIGJ5IEFnYW1lbW5vbidzIHNvbiBPcmVzdGVzOyBzbyBoZSBzYWlkIHRvIHRoZSBvdGhlciBnb2RzOg0KDQoiU2VlIG5vdywgaG93IG1lbiBsYXkgYmxhbWUgdXBvbiB1cyBnb2RzIGZvciB3aGF0IGlzIGFmdGVyIGFsbCBub3RoaW5nIGJ1dCB0aGVpciBvd24gZm9sbHkuIExvb2sgYXQgQWVnaXN0aHVzOyBoZSBtdXN0IG5lZWRzIG1ha2UgbG92ZSB0byBBZ2FtZW1ub24ncyB3aWZlIHVucmlnaHRlb3VzbHkgYW5kIHRoZW4ga2lsbCBBZ2FtZW1ub24sIHRob3VnaCBoZSBrbmV3IGl0IHdvdWxkIGJlIHRoZSBkZWF0aCBvZiBoaW07IGZvciBJIHNlbnQgTWVyY3VyeSB0byB3YXJuIGhpbSBub3QgdG8gZG8gZWl0aGVyIG9mIHRoZXNlIHRoaW5ncywgaW5hc211Y2ggYXMgT3Jlc3RlcyB3b3VsZCBiZSBzdXJlIHRvIHRha2UgaGlzIHJldmVuZ2Ugd2hlbiBoZSBncmV3IHVwIGFuZCB3YW50ZWQgdG8gcmV0dXJuIGhvbWUuIE1lcmN1cnkgdG9sZCBoaW0gdGhpcyBpbiBhbGwgZ29vZCB3aWxsIGJ1dCBoZSB3b3VsZCBub3QgbGlzdGVuLCBhbmQgbm93IGhlIGhhcyBwYWlkIGZvciBldmVyeXRoaW5nIGluIGZ1bGwuIg0KDQpUaGVuIE1pbmVydmEgc2FpZCwgIkZhdGhlciwgc29uIG9mIFNhdHVybiwgS2luZyBvZiBraW5ncywgaXQgc2VydmVkIEFlZ2lzdGh1cyByaWdodCwgYW5kIHNvIGl0IHdvdWxkIGFueSBvbmUgZWxzZSB3aG8gZG9lcyBhcyBoZSBkaWQ7IGJ1dCBBZWdpc3RodXMgaXMgbmVpdGhlciBoZXJlIG5vciB0aGVyZTsgaXQgaXMgZm9yIFVseXNzZXMgdGhhdCBteSBoZWFydCBibGVlZHMsIHdoZW4gSSB0aGluayBvZiBoaXMgc3VmZmVyaW5ncyBpbiB0aGF0IGxvbmVseSBzZWEtZ2lydCBpc2xhbmQsIGZhciBhd2F5LCBwb29yIG1hbiwgZnJvbSBhbGwgaGlzIGZyaWVuZHMuIEl0IGlzIGFuIGlzbGFuZCBjb3ZlcmVkIHdpdGggZm9yZXN0LCBpbiB0aGUgdmVyeSBtaWRkbGUgb2YgdGhlIHNlYSwgYW5kIGEgZ29kZGVzcyBsaXZlcyB0aGVyZSwgZGF1Z2h0ZXIgb2YgdGhlIG1hZ2ljaWFuIEF0bGFzLCB3aG8gbG9va3MgYWZ0ZXIgdGhlIGJvdHRvbSBvZiB0aGUgb2NlYW4sIGFuZCBjYXJyaWVzIHRoZSBncmVhdCBjb2x1bW5zIHRoYXQga2VlcCBoZWF2ZW4gYW5kIGVhcnRoIGFzdW5kZXIuIFRoaXMgZGF1Z2h0ZXIgb2YgQXRsYXMgaGFzIGdvdCBob2xkIG9mIHBvb3IgdW5oYXBweSBVbHlzc2VzLCBhbmQga2VlcHMgdHJ5aW5nIGJ5IGV2ZXJ5IGtpbmQgb2YgYmxhbmRpc2htZW50IHRvIG1ha2UgaGltIGZvcmdldCBoaXMgaG9tZSwgc28gdGhhdCBoZSBpcyB0aXJlZCBvZiBsaWZlLCBhbmQgdGhpbmtzIG9mIG5vdGhpbmcgYnV0IGhvdyBoZSBtYXkgb25jZSBtb3JlIHNlZSB0aGUgc21va2Ugb2YgaGlzIG93biBjaGltbmV5cy4gWW91LCBzaXIsIHRha2Ugbm8gaGVlZCBvZiB0aGlzLCBhbmQgeWV0IHdoZW4gVWx5c3NlcyB3YXMgYmVmb3JlIFRyb3kgZGlkIGhlIG5vdCBwcm9waXRpYXRlIHlvdSB3aXRoIG1hbnkgYSBidXJudCBzYWNyaWZpY2U/IFdoeSB0aGVuIHNob3VsZCB5b3Uga2VlcCBvbiBiZWluZyBzbyBhbmdyeSB3aXRoIGhpbT8iDQoNCkFuZCBKb3ZlIHNhaWQsICJNeSBjaGlsZCwgd2hhdCBhcmUgeW91IHRhbGtpbmcgYWJvdXQ/IEhvdyBjYW4gSSBmb3JnZXQgVWx5c3NlcyB0aGFuIHdob20gdGhlcmUgaXMgbm8gbW9yZSBjYXBhYmxlIG1hbiBvbiBlYXJ0aCwgbm9yIG1vcmUgbGliZXJhbCBpbiBoaXMgb2ZmZXJpbmdzIHRvIHRoZSBpbW1vcnRhbCBnb2RzIHRoYXQgbGl2ZSBpbiBoZWF2ZW4/IEJlYXIgaW4gbWluZCwgaG93ZXZlciwgdGhhdCBOZXB0dW5lIGlzIHN0aWxsIGZ1cmlvdXMgd2l0aCBVbHlzc2VzIGZvciBoYXZpbmcgYmxpbmRlZCBhbiBleWUgb2YgUG9seXBoZW11cyBraW5nIG9mIHRoZSBDeWNsb3Blcy4gUG9seXBoZW11cyBpcyBzb24gdG8gTmVwdHVuZSBieSB0aGUgbnltcGggVGhvb3NhLCBkYXVnaHRlciB0byB0aGUgc2VhLWtpbmcgUGhvcmN5czsgdGhlcmVmb3JlIHRob3VnaCBoZSB3aWxsIG5vdCBraWxsIFVseXNzZXMgb3V0cmlnaHQsIGhlIHRvcm1lbnRzIGhpbSBieSBwcmV2ZW50aW5nIGhpbSBmcm9tIGdldHRpbmcgaG9tZS4gU3RpbGwsIGxldCB1cyBsYXkgb3VyIGhlYWRzIHRvZ2V0aGVyIGFuZCBzZWUgaG93IHdlIGNhbiBoZWxwIGhpbSB0byByZXR1cm47IE5lcHR1bmUgd2lsbCB0aGVuIGJlIHBhY2lmaWVkLCBmb3IgaWYgd2UgYXJlIGFsbCBvZiBhIG1pbmQgaGUgY2FuIGhhcmRseSBzdGFuZCBvdXQgYWdhaW5zdCB1cy4iDQoNCkFuZCBNaW5lcnZhIHNhaWQsICJGYXRoZXIsIHNvbiBvZiBTYXR1cm4sIEtpbmcgb2Yga2luZ3MsIGlmLCB0aGVuLCB0aGUgZ29kcyBub3cgbWVhbiB0aGF0IFVseXNzZXMgc2hvdWxkIGdldCBob21lLCB3ZSBzaG91bGQgZmlyc3Qgc2VuZCBNZXJjdXJ5IHRvIHRoZSBPZ3lnaWFuIGlzbGFuZCB0byB0ZWxsIENhbHlwc28gdGhhdCB3ZSBoYXZlIG1hZGUgdXAgb3VyIG1pbmRzIGFuZCB0aGF0IGhlIGlzIHRvIHJldHVybi4gSW4gdGhlIG1lYW50aW1lIEkgd2lsbCBnbyB0byBJdGhhY2EsIHRvIHB1dCBoZWFydCBpbnRvIFVseXNzZXMnIHNvbiBUZWxlbWFjaHVzOyBJIHdpbGwgZW1ib2xkZW4gaGltIHRvIGNhbGwgdGhlIEFjaGFlYW5zIGluIGFzc2VtYmx5LCBhbmQgc3BlYWsgb3V0IHRvIHRoZSBzdWl0b3JzIG9mIGhpcyBtb3RoZXIgUGVuZWxvcGUsIHdobyBwZXJzaXN0IGluIGVhdGluZyB1cCBhbnkgbnVtYmVyIG9mIGhpcyBzaGVlcCBhbmQgb3hlbjsgSSB3aWxsIGFsc28gY29uZHVjdCBoaW0gdG8gU3BhcnRhIGFuZCB0byBQeWxvcywgdG8gc2VlIGlmIGhlIGNhbiBoZWFyIGFueXRoaW5nIGFib3V0IHRoZSByZXR1cm4gb2YgaGlzIGRlYXIgZmF0aGVyLSBmb3IgdGhpcyB3aWxsIG1ha2UgcGVvcGxlIHNwZWFrIHdlbGwgb2YgaGltLiINCg0KU28gc2F5aW5nIHNoZSBib3VuZCBvbiBoZXIgZ2xpdHRlcmluZyBnb2xkZW4gc2FuZGFscywgaW1wZXJpc2hhYmxlLCB3aXRoIHdoaWNoIHNoZSBjYW4gZmx5IGxpa2UgdGhlIHdpbmQgb3ZlciBsYW5kIG9yIHNlYTsgc2hlIGdyYXNwZWQgdGhlIHJlZG91YnRhYmxlIGJyb256ZS1zaG9kIHNwZWFyLCBzbyBzdG91dCBhbmQgc3R1cmR5IGFuZCBzdHJvbmcsIHdoZXJld2l0aCBzaGUgcXVlbGxzIHRoZSByYW5rcyBvZiBoZXJvZXMgd2hvIGhhdmUgZGlzcGxlYXNlZCBoZXIsIGFuZCBkb3duIHNoZSBkYXJ0ZWQgZnJvbSB0aGUgdG9wbW9zdCBzdW1taXRzIG9mIE9seW1wdXMsIHdoZXJlb24gZm9ydGh3aXRoIHNoZSB3YXMgaW4gSXRoYWNhLCBhdCB0aGUgZ2F0ZXdheSBvZiBVbHlzc2VzJyBob3VzZSwgZGlzZ3Vpc2VkIGFzIGEgdmlzaXRvciwgTWVudGVzLCBjaGllZiBvZiB0aGUgVGFwaGlhbnMsIGFuZCBzaGUgaGVsZCBhIGJyb256ZSBzcGVhciBpbiBoZXIgaGFuZC4gVGhlcmUgc2hlIGZvdW5kIHRoZSBsb3JkbHkgc3VpdG9ycyBzZWF0ZWQgb24gaGlkZXMgb2YgdGhlIG94ZW4gd2hpY2ggdGhleSBoYWQga2lsbGVkIGFuZCBlYXRlbiwgYW5kIHBsYXlpbmcgZHJhdWdodHMgaW4gZnJvbnQgb2YgdGhlIGhvdXNlLiBNZW4tc2VydmFudHMgYW5kIHBhZ2VzIHdlcmUgYnVzdGxpbmcgYWJvdXQgdG8gd2FpdCB1cG9uIHRoZW0sIHNvbWUgbWl4aW5nIHdpbmUgd2l0aCB3YXRlciBpbiB0aGUgbWl4aW5nLWJvd2xzLCBzb21lIGNsZWFuaW5nIGRvd24gdGhlIHRhYmxlcyB3aXRoIHdldCBzcG9uZ2VzIGFuZCBsYXlpbmcgdGhlbSBvdXQgYWdhaW4sIGFuZCBzb21lIGN1dHRpbmcgdXAgZ3JlYXQgcXVhbnRpdGllcyBvZiBtZWF0Lg0KDQpUZWxlbWFjaHVzIHNhdyBoZXIgbG9uZyBiZWZvcmUgYW55IG9uZSBlbHNlIGRpZC4gSGUgd2FzIHNpdHRpbmcgbW9vZGlseSBhbW9uZyB0aGUgc3VpdG9ycyB0aGlua2luZyBhYm91dCBoaXMgYnJhdmUgZmF0aGVyLCBhbmQgaG93IGhlIHdvdWxkIHNlbmQgdGhlbSBmbHlpbmcgb3V0IG9mIHRoZSBob3VzZSwgaWYgaGUgd2VyZSB0byBjb21lIHRvIGhpcyBvd24gYWdhaW4gYW5kIGJlIGhvbm91cmVkIGFzIGluIGRheXMgZ29uZSBieS4gVGh1cyBicm9vZGluZyBhcyBoZSBzYXQgYW1vbmcgdGhlbSwgaGUgY2F1Z2h0IHNpZ2h0IG9mIE1pbmVydmEgYW5kIHdlbnQgc3RyYWlnaHQgdG8gdGhlIGdhdGUsIGZvciBoZSB3YXMgdmV4ZWQgdGhhdCBhIHN0cmFuZ2VyIHNob3VsZCBiZSBrZXB0IHdhaXRpbmcgZm9yIGFkbWl0dGFuY2UuIEhlIHRvb2sgaGVyIHJpZ2h0IGhhbmQgaW4gaGlzIG93biwgYW5kIGJhZGUgaGVyIGdpdmUgaGltIGhlciBzcGVhci4gIldlbGNvbWUsIiBzYWlkIGhlLCAidG8gb3VyIGhvdXNlLCBhbmQgd2hlbiB5b3UgaGF2ZSBwYXJ0YWtlbiBvZiBmb29kIHlvdSBzaGFsbCB0ZWxsIHVzIHdoYXQgeW91IGhhdmUgY29tZSBmb3IuIg0KDQpIZSBsZWQgdGhlIHdheSBhcyBoZSBzcG9rZSwgYW5kIE1pbmVydmEgZm9sbG93ZWQgaGltLiBXaGVuIHRoZXkgd2VyZSB3aXRoaW4gaGUgdG9vayBoZXIgc3BlYXIgYW5kIHNldCBpdCBpbiB0aGUgc3BlYXItIHN0YW5kIGFnYWluc3QgYSBzdHJvbmcgYmVhcmluZy1wb3N0IGFsb25nIHdpdGggdGhlIG1hbnkgb3RoZXIgc3BlYXJzIG9mIGhpcyB1bmhhcHB5IGZhdGhlciwgYW5kIGhlIGNvbmR1Y3RlZCBoZXIgdG8gYSByaWNobHkgZGVjb3JhdGVkIHNlYXQgdW5kZXIgd2hpY2ggaGUgdGhyZXcgYSBjbG90aCBvZiBkYW1hc2suIFRoZXJlIHdhcyBhIGZvb3RzdG9vbCBhbHNvIGZvciBoZXIgZmVldCwgYW5kIGhlIHNldCBhbm90aGVyIHNlYXQgbmVhciBoZXIgZm9yIGhpbXNlbGYsIGF3YXkgZnJvbSB0aGUgc3VpdG9ycywgdGhhdCBzaGUgbWlnaHQgbm90IGJlIGFubm95ZWQgd2hpbGUgZWF0aW5nIGJ5IHRoZWlyIG5vaXNlIGFuZCBpbnNvbGVuY2UsIGFuZCB0aGF0IGhlIG1pZ2h0IGFzayBoZXIgbW9yZSBmcmVlbHkgYWJvdXQgaGlzIGZhdGhlci4NCg0KQSBtYWlkIHNlcnZhbnQgdGhlbiBicm91Z2h0IHRoZW0gd2F0ZXIgaW4gYSBiZWF1dGlmdWwgZ29sZGVuIGV3ZXIgYW5kIHBvdXJlZCBpdCBpbnRvIGEgc2lsdmVyIGJhc2luIGZvciB0aGVtIHRvIHdhc2ggdGhlaXIgaGFuZHMsIGFuZCBzaGUgZHJldyBhIGNsZWFuIHRhYmxlIGJlc2lkZSB0aGVtLiBBbiB1cHBlciBzZXJ2YW50IGJyb3VnaHQgdGhlbSBicmVhZCwgYW5kIG9mZmVyZWQgdGhlbSBtYW55IGdvb2QgdGhpbmdzIG9mIHdoYXQgdGhlcmUgd2FzIGluIHRoZSBob3VzZSwgdGhlIGNhcnZlciBmZXRjaGVkIHRoZW0gcGxhdGVzIG9mIGFsbCBtYW5uZXIgb2YgbWVhdHMgYW5kIHNldCBjdXBzIG9mIGdvbGQgYnkgdGhlaXIgc2lkZSwgYW5kIGEgbWFuLXNlcnZhbnQgYnJvdWdodCB0aGVtIHdpbmUgYW5kIHBvdXJlZCBpdCBvdXQgZm9yIHRoZW0uDQoNClRoZW4gdGhlIHN1aXRvcnMgY2FtZSBpbiBhbmQgdG9vayB0aGVpciBwbGFjZXMgb24gdGhlIGJlbmNoZXMgYW5kIHNlYXRzLiBGb3J0aHdpdGggbWVuIHNlcnZhbnRzIHBvdXJlZCB3YXRlciBvdmVyIHRoZWlyIGhhbmRzLCBtYWlkcyB3ZW50IHJvdW5kIHdpdGggdGhlIGJyZWFkLWJhc2tldHMsIHBhZ2VzIGZpbGxlZCB0aGUgbWl4aW5nLWJvd2xzIHdpdGggd2luZSBhbmQgd2F0ZXIsIGFuZCB0aGV5IGxhaWQgdGhlaXIgaGFuZHMgdXBvbiB0aGUgZ29vZCB0aGluZ3MgdGhhdCB3ZXJlIGJlZm9yZSB0aGVtLiBBcyBzb29uIGFzIHRoZXkgaGFkIGhhZCBlbm91Z2ggdG8gZWF0IGFuZCBkcmluayB0aGV5IHdhbnRlZCBtdXNpYyBhbmQgZGFuY2luZywgd2hpY2ggYXJlIHRoZSBjcm93bmluZyBlbWJlbGxpc2htZW50cyBvZiBhIGJhbnF1ZXQsIHNvIGEgc2VydmFudCBicm91Z2h0IGEgbHlyZSB0byBQaGVtaXVzLCB3aG9tIHRoZXkgY29tcGVsbGVkIHBlcmZvcmNlIHRvIHNpbmcgdG8gdGhlbS4gQXMgc29vbiBhcyBoZSB0b3VjaGVkIGhpcyBseXJlIGFuZCBiZWdhbiB0byBzaW5nIFRlbGVtYWNodXMgc3Bva2UgbG93IHRvIE1pbmVydmEsIHdpdGggaGlzIGhlYWQgY2xvc2UgdG8gaGVycyB0aGF0IG5vIG1hbiBtaWdodCBoZWFyLg0KDQoiSSBob3BlLCBzaXIsIiBzYWlkIGhlLCAidGhhdCB5b3Ugd2lsbCBub3QgYmUgb2ZmZW5kZWQgd2l0aCB3aGF0IEkgYW0gZ29pbmcgdG8gc2F5LiBTaW5naW5nIGNvbWVzIGNoZWFwIHRvIHRob3NlIHdobyBkbyBub3QgcGF5IGZvciBpdCwgYW5kIGFsbCB0aGlzIGlzIGRvbmUgYXQgdGhlIGNvc3Qgb2Ygb25lIHdob3NlIGJvbmVzIGxpZSByb3R0aW5nIGluIHNvbWUgd2lsZGVybmVzcyBvciBncmluZGluZyB0byBwb3dkZXIgaW4gdGhlIHN1cmYuIElmIHRoZXNlIG1lbiB3ZXJlIHRvIHNlZSBteSBmYXRoZXIgY29tZSBiYWNrIHRvIEl0aGFjYSB0aGV5IHdvdWxkIHByYXkgZm9yIGxvbmdlciBsZWdzIHJhdGhlciB0aGFuIGEgbG9uZ2VyIHB1cnNlLCBmb3IgbW9uZXkgd291bGQgbm90IHNlcnZlIHRoZW07IGJ1dCBoZSwgYWxhcywgaGFzIGZhbGxlbiBvbiBhbiBpbGwgZmF0ZSwgYW5kIGV2ZW4gd2hlbiBwZW9wbGUgZG8gc29tZXRpbWVzIHNheSB0aGF0IGhlIGlzIGNvbWluZywgd2Ugbm8gbG9uZ2VyIGhlZWQgdGhlbTsgd2Ugc2hhbGwgbmV2ZXIgc2VlIGhpbSBhZ2Fpbi4gQW5kIG5vdywgc2lyLCB0ZWxsIG1lIGFuZCB0ZWxsIG1lIHRydWUsIHdobyB5b3UgYXJlIGFuZCB3aGVyZSB5b3UgY29tZSBmcm9tLiBUZWxsIG1lIG9mIHlvdXIgdG93biBhbmQgcGFyZW50cywgd2hhdCBtYW5uZXIgb2Ygc2hpcCB5b3UgY2FtZSBpbiwgaG93IHlvdXIgY3JldyBicm91Z2h0IHlvdSB0byBJdGhhY2EsIGFuZCBvZiB3aGF0IG5hdGlvbiB0aGV5IGRlY2xhcmVkIHRoZW1zZWx2ZXMgdG8gYmUtIGZvciB5b3UgY2Fubm90IGhhdmUgY29tZSBieSBsYW5kLiBUZWxsIG1lIGFsc28gdHJ1bHksIGZvciBJIHdhbnQgdG8ga25vdywgYXJlIHlvdSBhIHN0cmFuZ2VyIHRvIHRoaXMgaG91c2UsIG9yIGhhdmUgeW91IGJlZW4gaGVyZSBpbiBteSBmYXRoZXIncyB0aW1lPyBJbiB0aGUgb2xkIGRheXMgd2UgaGFkIG1hbnkgdmlzaXRvcnMgZm9yIG15IGZhdGhlciB3ZW50IGFib3V0IG11Y2ggaGltc2VsZi4iDQoNCkFuZCBNaW5lcnZhIGFuc3dlcmVkLCAiSSB3aWxsIHRlbGwgeW91IHRydWx5IGFuZCBwYXJ0aWN1bGFybHkgYWxsIGFib3V0IGl0LiBJIGFtIE1lbnRlcywgc29uIG9mIEFuY2hpYWx1cywgYW5kIEkgYW0gS2luZyBvZiB0aGUgVGFwaGlhbnMuIEkgaGF2ZSBjb21lIGhlcmUgd2l0aCBteSBzaGlwIGFuZCBjcmV3LCBvbiBhIHZveWFnZSB0byBtZW4gb2YgYSBmb3JlaWduIHRvbmd1ZSBiZWluZyBib3VuZCBmb3IgVGVtZXNhIHdpdGggYSBjYXJnbyBvZiBpcm9uLCBhbmQgSSBzaGFsbCBicmluZyBiYWNrIGNvcHBlci4gQXMgZm9yIG15IHNoaXAsIGl0IGxpZXMgb3ZlciB5b25kZXIgb2ZmIHRoZSBvcGVuIGNvdW50cnkgYXdheSBmcm9tIHRoZSB0b3duLCBpbiB0aGUgaGFyYm91ciBSaGVpdGhyb24gdW5kZXIgdGhlIHdvb2RlZCBtb3VudGFpbiBOZXJpdHVtLiBPdXIgZmF0aGVycyB3ZXJlIGZyaWVuZHMgYmVmb3JlIHVzLCBhcyBvbGQgTGFlcnRlcyB3aWxsIHRlbGwgeW91LCBpZiB5b3Ugd2lsbCBnbyBhbmQgYXNrIGhpbS4gVGhleSBzYXksIGhvd2V2ZXIsIHRoYXQgaGUgbmV2ZXIgY29tZXMgdG8gdG93biBub3csIGFuZCBsaXZlcyBieSBoaW1zZWxmIGluIHRoZSBjb3VudHJ5LCBmYXJpbmcgaGFyZGx5LCB3aXRoIGFuIG9sZCB3b21hbiB0byBsb29rIGFmdGVyIGhpbSBhbmQgZ2V0IGhpcyBkaW5uZXIgZm9yIGhpbSwgd2hlbiBoZSBjb21lcyBpbiB0aXJlZCBmcm9tIHBvdHRlcmluZyBhYm91dCBoaXMgdmluZXlhcmQuIFRoZXkgdG9sZCBtZSB5b3VyIGZhdGhlciB3YXMgYXQgaG9tZSBhZ2FpbiwgYW5kIHRoYXQgd2FzIHdoeSBJIGNhbWUsIGJ1dCBpdCBzZWVtcyB0aGUgZ29kcyBhcmUgc3RpbGwga2VlcGluZyBoaW0gYmFjaywgZm9yIGhlIGlzIG5vdCBkZWFkIHlldCBub3Qgb24gdGhlIG1haW5sYW5kLiBJdCBpcyBtb3JlIGxpa2VseSBoZSBpcyBvbiBzb21lIHNlYS1naXJ0IGlzbGFuZCBpbiBtaWQgb2NlYW4sIG9yIGEgcHJpc29uZXIgYW1vbmcgc2F2YWdlcyB3aG8gYXJlIGRldGFpbmluZyBoaW0gYWdhaW5zdCBoaXMgd2lsbCBJIGFtIG5vIHByb3BoZXQsIGFuZCBrbm93IHZlcnkgbGl0dGxlIGFib3V0IG9tZW5zLCBidXQgSSBzcGVhayBhcyBpdCBpcyBib3JuZSBpbiB1cG9uIG1lIGZyb20gaGVhdmVuLCBhbmQgYXNzdXJlIHlvdSB0aGF0IGhlIHdpbGwgbm90IGJlIGF3YXkgbXVjaCBsb25nZXI7IGZvciBoZSBpcyBhIG1hbiBvZiBzdWNoIHJlc291cmNlIHRoYXQgZXZlbiB0aG91Z2ggaGUgd2VyZSBpbiBjaGFpbnMgb2YgaXJvbiBoZSB3b3VsZCBmaW5kIHNvbWUgbWVhbnMgb2YgZ2V0dGluZyBob21lIGFnYWluLiBCdXQgdGVsbCBtZSwgYW5kIHRlbGwgbWUgdHJ1ZSwgY2FuIFVseXNzZXMgcmVhbGx5IGhhdmUgc3VjaCBhIGZpbmUgbG9va2luZyBmZWxsb3cgZm9yIGEgc29uPyBZb3UgYXJlIGluZGVlZCB3b25kZXJmdWxseSBsaWtlIGhpbSBhYm91dCB0aGUgaGVhZCBhbmQgZXllcywgZm9yIHdlIHdlcmUgY2xvc2UgZnJpZW5kcyBiZWZvcmUgaGUgc2V0IHNhaWwgZm9yIFRyb3kgd2hlcmUgdGhlIGZsb3dlciBvZiBhbGwgdGhlIEFyZ2l2ZXMgd2VudCBhbHNvLiBTaW5jZSB0aGF0IHRpbWUgd2UgaGF2ZSBuZXZlciBlaXRoZXIgb2YgdXMgc2VlbiB0aGUgb3RoZXIuIg0KDQoiTXkgbW90aGVyLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgdGVsbHMgbWUgSSBhbSBzb24gdG8gVWx5c3NlcywgYnV0IGl0IGlzIGEgd2lzZSBjaGlsZCB0aGF0IGtub3dzIGhpcyBvd24gZmF0aGVyLiBXb3VsZCB0aGF0IEkgd2VyZSBzb24gdG8gb25lIHdobyBoYWQgZ3Jvd24gb2xkIHVwb24gaGlzIG93biBlc3RhdGVzLCBmb3IsIHNpbmNlIHlvdSBhc2sgbWUsIHRoZXJlIGlzIG5vIG1vcmUgaWxsLXN0YXJyZWQgbWFuIHVuZGVyIGhlYXZlbiB0aGFuIGhlIHdobyB0aGV5IHRlbGwgbWUgaXMgbXkgZmF0aGVyLiINCg0KQW5kIE1pbmVydmEgc2FpZCwgIlRoZXJlIGlzIG5vIGZlYXIgb2YgeW91ciByYWNlIGR5aW5nIG91dCB5ZXQsIHdoaWxlIFBlbmVsb3BlIGhhcyBzdWNoIGEgZmluZSBzb24gYXMgeW91IGFyZS4gQnV0IHRlbGwgbWUsIGFuZCB0ZWxsIG1lIHRydWUsIHdoYXQgaXMgdGhlIG1lYW5pbmcgb2YgYWxsIHRoaXMgZmVhc3RpbmcsIGFuZCB3aG8gYXJlIHRoZXNlIHBlb3BsZT8gV2hhdCBpcyBpdCBhbGwgYWJvdXQ/IEhhdmUgeW91IHNvbWUgYmFucXVldCwgb3IgaXMgdGhlcmUgYSB3ZWRkaW5nIGluIHRoZSBmYW1pbHktIGZvciBubyBvbmUgc2VlbXMgdG8gYmUgYnJpbmdpbmcgYW55IHByb3Zpc2lvbnMgb2YgaGlzIG93bj8gQW5kIHRoZSBndWVzdHMtIGhvdyBhdHJvY2lvdXNseSB0aGV5IGFyZSBiZWhhdmluZzsgd2hhdCByaW90IHRoZXkgbWFrZSBvdmVyIHRoZSB3aG9sZSBob3VzZTsgaXQgaXMgZW5vdWdoIHRvIGRpc2d1c3QgYW55IHJlc3BlY3RhYmxlIHBlcnNvbiB3aG8gY29tZXMgbmVhciB0aGVtLiINCg0KIlNpciwiIHNhaWQgVGVsZW1hY2h1cywgImFzIHJlZ2FyZHMgeW91ciBxdWVzdGlvbiwgc28gbG9uZyBhcyBteSBmYXRoZXIgd2FzIGhlcmUgaXQgd2FzIHdlbGwgd2l0aCB1cyBhbmQgd2l0aCB0aGUgaG91c2UsIGJ1dCB0aGUgZ29kcyBpbiB0aGVpciBkaXNwbGVhc3VyZSBoYXZlIHdpbGxlZCBpdCBvdGhlcndpc2UsIGFuZCBoYXZlIGhpZGRlbiBoaW0gYXdheSBtb3JlIGNsb3NlbHkgdGhhbiBtb3J0YWwgbWFuIHdhcyBldmVyIHlldCBoaWRkZW4uIEkgY291bGQgaGF2ZSBib3JuZSBpdCBiZXR0ZXIgZXZlbiB0aG91Z2ggaGUgd2VyZSBkZWFkLCBpZiBoZSBoYWQgZmFsbGVuIHdpdGggaGlzIG1lbiBiZWZvcmUgVHJveSwgb3IgaGFkIGRpZWQgd2l0aCBmcmllbmRzIGFyb3VuZCBoaW0gd2hlbiB0aGUgZGF5cyBvZiBoaXMgZmlnaHRpbmcgd2VyZSBkb25lOyBmb3IgdGhlbiB0aGUgQWNoYWVhbnMgd291bGQgaGF2ZSBidWlsdCBhIG1vdW5kIG92ZXIgaGlzIGFzaGVzLCBhbmQgSSBzaG91bGQgbXlzZWxmIGhhdmUgYmVlbiBoZWlyIHRvIGhpcyByZW5vd247IGJ1dCBub3cgdGhlIHN0b3JtLXdpbmRzIGhhdmUgc3Bpcml0ZWQgaGltIGF3YXkgd2Uga25vdyBub3Qgd2l0aGVyOyBoZSBpcyBnb25lIHdpdGhvdXQgbGVhdmluZyBzbyBtdWNoIGFzIGEgdHJhY2UgYmVoaW5kIGhpbSwgYW5kIEkgaW5oZXJpdCBub3RoaW5nIGJ1dCBkaXNtYXkuIE5vciBkb2VzIHRoZSBtYXR0ZXIgZW5kIHNpbXBseSB3aXRoIGdyaWVmIGZvciB0aGUgbG9zcyBvZiBteSBmYXRoZXI7IGhlYXZlbiBoYXMgbGFpZCBzb3Jyb3dzIHVwb24gbWUgb2YgeWV0IGFub3RoZXIga2luZDsgZm9yIHRoZSBjaGllZnMgZnJvbSBhbGwgb3VyIGlzbGFuZHMsIER1bGljaGl1bSwgU2FtZSwgYW5kIHRoZSB3b29kbGFuZCBpc2xhbmQgb2YgWmFjeW50aHVzLCBhcyBhbHNvIGFsbCB0aGUgcHJpbmNpcGFsIG1lbiBvZiBJdGhhY2EgaXRzZWxmLCBhcmUgZWF0aW5nIHVwIG15IGhvdXNlIHVuZGVyIHRoZSBwcmV0ZXh0IG9mIHBheWluZyB0aGVpciBjb3VydCB0byBteSBtb3RoZXIsIHdobyB3aWxsIG5laXRoZXIgcG9pbnQgYmxhbmsgc2F5IHRoYXQgc2hlIHdpbGwgbm90IG1hcnJ5LCBub3IgeWV0IGJyaW5nIG1hdHRlcnMgdG8gYW4gZW5kOyBzbyB0aGV5IGFyZSBtYWtpbmcgaGF2b2Mgb2YgbXkgZXN0YXRlLCBhbmQgYmVmb3JlIGxvbmcgd2lsbCBkbyBzbyBhbHNvIHdpdGggbXlzZWxmLiINCg0KIklzIHRoYXQgc28/IiBleGNsYWltZWQgTWluZXJ2YSwgInRoZW4geW91IGRvIGluZGVlZCB3YW50IFVseXNzZXMgaG9tZSBhZ2Fpbi4gR2l2ZSBoaW0gaGlzIGhlbG1ldCwgc2hpZWxkLCBhbmQgYSBjb3VwbGUgbGFuY2VzLCBhbmQgaWYgaGUgaXMgdGhlIG1hbiBoZSB3YXMgd2hlbiBJIGZpcnN0IGtuZXcgaGltIGluIG91ciBob3VzZSwgZHJpbmtpbmcgYW5kIG1ha2luZyBtZXJyeSwgaGUgd291bGQgc29vbiBsYXkgaGlzIGhhbmRzIGFib3V0IHRoZXNlIHJhc2NhbGx5IHN1aXRvcnMsIHdlcmUgaGUgdG8gc3RhbmQgb25jZSBtb3JlIHVwb24gaGlzIG93biB0aHJlc2hvbGQuIEhlIHdhcyB0aGVuIGNvbWluZyBmcm9tIEVwaHlyYSwgd2hlcmUgaGUgaGFkIGJlZW4gdG8gYmVnIHBvaXNvbiBmb3IgaGlzIGFycm93cyBmcm9tIElsdXMsIHNvbiBvZiBNZXJtZXJ1cy4gSWx1cyBmZWFyZWQgdGhlIGV2ZXItbGl2aW5nIGdvZHMgYW5kIHdvdWxkIG5vdCBnaXZlIGhpbSBhbnksIGJ1dCBteSBmYXRoZXIgbGV0IGhpbSBoYXZlIHNvbWUsIGZvciBoZSB3YXMgdmVyeSBmb25kIG9mIGhpbS4gSWYgVWx5c3NlcyBpcyB0aGUgbWFuIGhlIHRoZW4gd2FzIHRoZXNlIHN1aXRvcnMgd2lsbCBoYXZlIGEgc2hvcnQgc2hyaWZ0IGFuZCBhIHNvcnJ5IHdlZGRpbmcuDQoNCiJCdXQgdGhlcmUhIEl0IHJlc3RzIHdpdGggaGVhdmVuIHRvIGRldGVybWluZSB3aGV0aGVyIGhlIGlzIHRvIHJldHVybiwgYW5kIHRha2UgaGlzIHJldmVuZ2UgaW4gaGlzIG93biBob3VzZSBvciBubzsgSSB3b3VsZCwgaG93ZXZlciwgdXJnZSB5b3UgdG8gc2V0IGFib3V0IHRyeWluZyB0byBnZXQgcmlkIG9mIHRoZXNlIHN1aXRvcnMgYXQgb25jZS4gVGFrZSBteSBhZHZpY2UsIGNhbGwgdGhlIEFjaGFlYW4gaGVyb2VzIGluIGFzc2VtYmx5IHRvLW1vcnJvdyAtbGF5IHlvdXIgY2FzZSBiZWZvcmUgdGhlbSwgYW5kIGNhbGwgaGVhdmVuIHRvIGJlYXIgeW91IHdpdG5lc3MuIEJpZCB0aGUgc3VpdG9ycyB0YWtlIHRoZW1zZWx2ZXMgb2ZmLCBlYWNoIHRvIGhpcyBvd24gcGxhY2UsIGFuZCBpZiB5b3VyIG1vdGhlcidzIG1pbmQgaXMgc2V0IG9uIG1hcnJ5aW5nIGFnYWluLCBsZXQgaGVyIGdvIGJhY2sgdG8gaGVyIGZhdGhlciwgd2hvIHdpbGwgZmluZCBoZXIgYSBodXNiYW5kIGFuZCBwcm92aWRlIGhlciB3aXRoIGFsbCB0aGUgbWFycmlhZ2UgZ2lmdHMgdGhhdCBzbyBkZWFyIGEgZGF1Z2h0ZXIgbWF5IGV4cGVjdC4gQXMgZm9yIHlvdXJzZWxmLCBsZXQgbWUgcHJldmFpbCB1cG9uIHlvdSB0byB0YWtlIHRoZSBiZXN0IHNoaXAgeW91IGNhbiBnZXQsIHdpdGggYSBjcmV3IG9mIHR3ZW50eSBtZW4sIGFuZCBnbyBpbiBxdWVzdCBvZiB5b3VyIGZhdGhlciB3aG8gaGFzIHNvIGxvbmcgYmVlbiBtaXNzaW5nLiBTb21lIG9uZSBtYXkgdGVsbCB5b3Ugc29tZXRoaW5nLCBvciAoYW5kIHBlb3BsZSBvZnRlbiBoZWFyIHRoaW5ncyBpbiB0aGlzIHdheSkgc29tZSBoZWF2ZW4tc2VudCBtZXNzYWdlIG1heSBkaXJlY3QgeW91LiBGaXJzdCBnbyB0byBQeWxvcyBhbmQgYXNrIE5lc3RvcjsgdGhlbmNlIGdvIG9uIHRvIFNwYXJ0YSBhbmQgdmlzaXQgTWVuZWxhdXMsIGZvciBoZSBnb3QgaG9tZSBsYXN0IG9mIGFsbCB0aGUgQWNoYWVhbnM7IGlmIHlvdSBoZWFyIHRoYXQgeW91ciBmYXRoZXIgaXMgYWxpdmUgYW5kIG9uIGhpcyB3YXkgaG9tZSwgeW91IGNhbiBwdXQgdXAgd2l0aCB0aGUgd2FzdGUgdGhlc2Ugc3VpdG9ycyB3aWxsIG1ha2UgZm9yIHlldCBhbm90aGVyIHR3ZWx2ZSBtb250aHMuIElmIG9uIHRoZSBvdGhlciBoYW5kIHlvdSBoZWFyIG9mIGhpcyBkZWF0aCwgY29tZSBob21lIGF0IG9uY2UsIGNlbGVicmF0ZSBoaXMgZnVuZXJhbCByaXRlcyB3aXRoIGFsbCBkdWUgcG9tcCwgYnVpbGQgYSBiYXJyb3cgdG8gaGlzIG1lbW9yeSwgYW5kIG1ha2UgeW91ciBtb3RoZXIgbWFycnkgYWdhaW4uIFRoZW4sIGhhdmluZyBkb25lIGFsbCB0aGlzLCB0aGluayBpdCB3ZWxsIG92ZXIgaW4geW91ciBtaW5kIGhvdywgYnkgZmFpciBtZWFucyBvciBmb3VsLCB5b3UgbWF5IGtpbGwgdGhlc2Ugc3VpdG9ycyBpbiB5b3VyIG93biBob3VzZS4gWW91IGFyZSB0b28gb2xkIHRvIHBsZWFkIGluZmFuY3kgYW55IGxvbmdlcjsgaGF2ZSB5b3Ugbm90IGhlYXJkIGhvdyBwZW9wbGUgYXJlIHNpbmdpbmcgT3Jlc3RlcycgcHJhaXNlcyBmb3IgaGF2aW5nIGtpbGxlZCBoaXMgZmF0aGVyJ3MgbXVyZGVyZXIgQWVnaXN0aHVzPyBZb3UgYXJlIGEgZmluZSwgc21hcnQgbG9va2luZyBmZWxsb3c7IHNob3cgeW91ciBtZXR0bGUsIHRoZW4sIGFuZCBtYWtlIHlvdXJzZWxmIGEgbmFtZSBpbiBzdG9yeS4gTm93LCBob3dldmVyLCBJIG11c3QgZ28gYmFjayB0byBteSBzaGlwIGFuZCB0byBteSBjcmV3LCB3aG8gd2lsbCBiZSBpbXBhdGllbnQgaWYgSSBrZWVwIHRoZW0gd2FpdGluZyBsb25nZXI7IHRoaW5rIHRoZSBtYXR0ZXIgb3ZlciBmb3IgeW91cnNlbGYsIGFuZCByZW1lbWJlciB3aGF0IEkgaGF2ZSBzYWlkIHRvIHlvdS4iDQoNCiJTaXIsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAiaXQgaGFzIGJlZW4gdmVyeSBraW5kIG9mIHlvdSB0byB0YWxrIHRvIG1lIGluIHRoaXMgd2F5LCBhcyB0aG91Z2ggSSB3ZXJlIHlvdXIgb3duIHNvbiwgYW5kIEkgd2lsbCBkbyBhbGwgeW91IHRlbGwgbWU7IEkga25vdyB5b3Ugd2FudCB0byBiZSBnZXR0aW5nIG9uIHdpdGggeW91ciB2b3lhZ2UsIGJ1dCBzdGF5IGEgbGl0dGxlIGxvbmdlciB0aWxsIHlvdSBoYXZlIHRha2VuIGEgYmF0aCBhbmQgcmVmcmVzaGVkIHlvdXJzZWxmLiBJIHdpbGwgdGhlbiBnaXZlIHlvdSBhIHByZXNlbnQsIGFuZCB5b3Ugc2hhbGwgZ28gb24geW91ciB3YXkgcmVqb2ljaW5nOyBJIHdpbGwgZ2l2ZSB5b3Ugb25lIG9mIGdyZWF0IGJlYXV0eSBhbmQgdmFsdWUtIGEga2VlcHNha2Ugc3VjaCBhcyBvbmx5IGRlYXIgZnJpZW5kcyBnaXZlIHRvIG9uZSBhbm90aGVyLiINCg0KTWluZXJ2YSBhbnN3ZXJlZCwgIkRvIG5vdCB0cnkgdG8ga2VlcCBtZSwgZm9yIEkgd291bGQgYmUgb24gbXkgd2F5IGF0IG9uY2UuIEFzIGZvciBhbnkgcHJlc2VudCB5b3UgbWF5IGJlIGRpc3Bvc2VkIHRvIG1ha2UgbWUsIGtlZXAgaXQgdGlsbCBJIGNvbWUgYWdhaW4sIGFuZCBJIHdpbGwgdGFrZSBpdCBob21lIHdpdGggbWUuIFlvdSBzaGFsbCBnaXZlIG1lIGEgdmVyeSBnb29kIG9uZSwgYW5kIEkgd2lsbCBnaXZlIHlvdSBvbmUgb2Ygbm8gbGVzcyB2YWx1ZSBpbiByZXR1cm4uIg0KDQpXaXRoIHRoZXNlIHdvcmRzIHNoZSBmbGV3IGF3YXkgbGlrZSBhIGJpcmQgaW50byB0aGUgYWlyLCBidXQgc2hlIGhhZCBnaXZlbiBUZWxlbWFjaHVzIGNvdXJhZ2UsIGFuZCBoYWQgbWFkZSBoaW0gdGhpbmsgbW9yZSB0aGFuIGV2ZXIgYWJvdXQgaGlzIGZhdGhlci4gSGUgZmVsdCB0aGUgY2hhbmdlLCB3b25kZXJlZCBhdCBpdCwgYW5kIGtuZXcgdGhhdCB0aGUgc3RyYW5nZXIgaGFkIGJlZW4gYSBnb2QsIHNvIGhlIHdlbnQgc3RyYWlnaHQgdG8gd2hlcmUgdGhlIHN1aXRvcnMgd2VyZSBzaXR0aW5nLg0KDQpQaGVtaXVzIHdhcyBzdGlsbCBzaW5naW5nLCBhbmQgaGlzIGhlYXJlcnMgc2F0IHJhcHQgaW4gc2lsZW5jZSBhcyBoZSB0b2xkIHRoZSBzYWQgdGFsZSBvZiB0aGUgcmV0dXJuIGZyb20gVHJveSwgYW5kIHRoZSBpbGxzIE1pbmVydmEgaGFkIGxhaWQgdXBvbiB0aGUgQWNoYWVhbnMuIFBlbmVsb3BlLCBkYXVnaHRlciBvZiBJY2FyaXVzLCBoZWFyZCBoaXMgc29uZyBmcm9tIGhlciByb29tIHVwc3RhaXJzLCBhbmQgY2FtZSBkb3duIGJ5IHRoZSBncmVhdCBzdGFpcmNhc2UsIG5vdCBhbG9uZSwgYnV0IGF0dGVuZGVkIGJ5IHR3byBvZiBoZXIgaGFuZG1haWRzLiBXaGVuIHNoZSByZWFjaGVkIHRoZSBzdWl0b3JzIHNoZSBzdG9vZCBieSBvbmUgb2YgdGhlIGJlYXJpbmcgcG9zdHMgdGhhdCBzdXBwb3J0ZWQgdGhlIHJvb2Ygb2YgdGhlIGNsb2lzdGVycyB3aXRoIGEgc3RhaWQgbWFpZGVuIG9uIGVpdGhlciBzaWRlIG9mIGhlci4gU2hlIGhlbGQgYSB2ZWlsLCBtb3Jlb3ZlciwgYmVmb3JlIGhlciBmYWNlLCBhbmQgd2FzIHdlZXBpbmcgYml0dGVybHkuDQoNCiJQaGVtaXVzLCIgc2hlIGNyaWVkLCAieW91IGtub3cgbWFueSBhbm90aGVyIGZlYXQgb2YgZ29kcyBhbmQgaGVyb2VzLCBzdWNoIGFzIHBvZXRzIGxvdmUgdG8gY2VsZWJyYXRlLiBTaW5nIHRoZSBzdWl0b3JzIHNvbWUgb25lIG9mIHRoZXNlLCBhbmQgbGV0IHRoZW0gZHJpbmsgdGhlaXIgd2luZSBpbiBzaWxlbmNlLCBidXQgY2Vhc2UgdGhpcyBzYWQgdGFsZSwgZm9yIGl0IGJyZWFrcyBteSBzb3Jyb3dmdWwgaGVhcnQsIGFuZCByZW1pbmRzIG1lIG9mIG15IGxvc3QgaHVzYmFuZCB3aG9tIEkgbW91cm4gZXZlciB3aXRob3V0IGNlYXNpbmcsIGFuZCB3aG9zZSBuYW1lIHdhcyBncmVhdCBvdmVyIGFsbCBIZWxsYXMgYW5kIG1pZGRsZSBBcmdvcy4iDQoNCiJNb3RoZXIsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAibGV0IHRoZSBiYXJkIHNpbmcgd2hhdCBoZSBoYXMgYSBtaW5kIHRvOyBiYXJkcyBkbyBub3QgbWFrZSB0aGUgaWxscyB0aGV5IHNpbmcgb2Y7IGl0IGlzIEpvdmUsIG5vdCB0aGV5LCB3aG8gbWFrZXMgdGhlbSwgYW5kIHdobyBzZW5kcyB3ZWFsIG9yIHdvZSB1cG9uIG1hbmtpbmQgYWNjb3JkaW5nIHRvIGhpcyBvd24gZ29vZCBwbGVhc3VyZS4gVGhpcyBmZWxsb3cgbWVhbnMgbm8gaGFybSBieSBzaW5naW5nIHRoZSBpbGwtZmF0ZWQgcmV0dXJuIG9mIHRoZSBEYW5hYW5zLCBmb3IgcGVvcGxlIGFsd2F5cyBhcHBsYXVkIHRoZSBsYXRlc3Qgc29uZ3MgbW9zdCB3YXJtbHkuIE1ha2UgdXAgeW91ciBtaW5kIHRvIGl0IGFuZCBiZWFyIGl0OyBVbHlzc2VzIGlzIG5vdCB0aGUgb25seSBtYW4gd2hvIG5ldmVyIGNhbWUgYmFjayBmcm9tIFRyb3ksIGJ1dCBtYW55IGFub3RoZXIgd2VudCBkb3duIGFzIHdlbGwgYXMgaGUuIEdvLCB0aGVuLCB3aXRoaW4gdGhlIGhvdXNlIGFuZCBidXN5IHlvdXJzZWxmIHdpdGggeW91ciBkYWlseSBkdXRpZXMsIHlvdXIgbG9vbSwgeW91ciBkaXN0YWZmLCBhbmQgdGhlIG9yZGVyaW5nIG9mIHlvdXIgc2VydmFudHM7IGZvciBzcGVlY2ggaXMgbWFuJ3MgbWF0dGVyLCBhbmQgbWluZSBhYm92ZSBhbGwgb3RoZXJzLSBmb3IgaXQgaXMgSSB3aG8gYW0gbWFzdGVyIGhlcmUuIg0KDQpTaGUgd2VudCB3b25kZXJpbmcgYmFjayBpbnRvIHRoZSBob3VzZSwgYW5kIGxhaWQgaGVyIHNvbidzIHNheWluZyBpbiBoZXIgaGVhcnQuIFRoZW4sIGdvaW5nIHVwc3RhaXJzIHdpdGggaGVyIGhhbmRtYWlkcyBpbnRvIGhlciByb29tLCBzaGUgbW91cm5lZCBoZXIgZGVhciBodXNiYW5kIHRpbGwgTWluZXJ2YSBzaGVkIHN3ZWV0IHNsZWVwIG92ZXIgaGVyIGV5ZXMuIEJ1dCB0aGUgc3VpdG9ycyB3ZXJlIGNsYW1vcm91cyB0aHJvdWdob3V0IHRoZSBjb3ZlcmVkIGNsb2lzdGVycywgYW5kIHByYXllZCBlYWNoIG9uZSB0aGF0IGhlIG1pZ2h0IGJlIGhlciBiZWQgZmVsbG93Lg0KDQpUaGVuIFRlbGVtYWNodXMgc3Bva2UsICJTaGFtZWxlc3MsIiBoZSBjcmllZCwgImFuZCBpbnNvbGVudCBzdWl0b3JzLCBsZXQgdXMgZmVhc3QgYXQgb3VyIHBsZWFzdXJlIG5vdywgYW5kIGxldCB0aGVyZSBiZSBubyBicmF3bGluZywgZm9yIGl0IGlzIGEgcmFyZSB0aGluZyB0byBoZWFyIGEgbWFuIHdpdGggc3VjaCBhIGRpdmluZSB2b2ljZSBhcyBQaGVtaXVzIGhhczsgYnV0IGluIHRoZSBtb3JuaW5nIG1lZXQgbWUgaW4gZnVsbCBhc3NlbWJseSB0aGF0IEkgbWF5IGdpdmUgeW91IGZvcm1hbCBub3RpY2UgdG8gZGVwYXJ0LCBhbmQgZmVhc3QgYXQgb25lIGFub3RoZXIncyBob3VzZXMsIHR1cm4gYW5kIHR1cm4gYWJvdXQsIGF0IHlvdXIgb3duIGNvc3QuIElmIG9uIHRoZSBvdGhlciBoYW5kIHlvdSBjaG9vc2UgdG8gcGVyc2lzdCBpbiBzcHVuZ2luZyB1cG9uIG9uZSBtYW4sIGhlYXZlbiBoZWxwIG1lLCBidXQgSm92ZSBzaGFsbCByZWNrb24gd2l0aCB5b3UgaW4gZnVsbCwgYW5kIHdoZW4geW91IGZhbGwgaW4gbXkgZmF0aGVyJ3MgaG91c2UgdGhlcmUgc2hhbGwgYmUgbm8gbWFuIHRvIGF2ZW5nZSB5b3UuIg0KDQpUaGUgc3VpdG9ycyBiaXQgdGhlaXIgbGlwcyBhcyB0aGV5IGhlYXJkIGhpbSwgYW5kIG1hcnZlbGxlZCBhdCB0aGUgYm9sZG5lc3Mgb2YgaGlzIHNwZWVjaC4gVGhlbiwgQW50aW5vdXMsIHNvbiBvZiBFdXBlaXRoZXMsIHNhaWQsICJUaGUgZ29kcyBzZWVtIHRvIGhhdmUgZ2l2ZW4geW91IGxlc3NvbnMgaW4gYmx1c3RlciBhbmQgdGFsbCB0YWxraW5nOyBtYXkgSm92ZSBuZXZlciBncmFudCB5b3UgdG8gYmUgY2hpZWYgaW4gSXRoYWNhIGFzIHlvdXIgZmF0aGVyIHdhcyBiZWZvcmUgeW91LiINCg0KVGVsZW1hY2h1cyBhbnN3ZXJlZCwgIkFudGlub3VzLCBkbyBub3QgY2hpZGUgd2l0aCBtZSwgYnV0LCBnb2Qgd2lsbGluZywgSSB3aWxsIGJlIGNoaWVmIHRvbyBpZiBJIGNhbi4gSXMgdGhpcyB0aGUgd29yc3QgZmF0ZSB5b3UgY2FuIHRoaW5rIG9mIGZvciBtZT8gSXQgaXMgbm8gYmFkIHRoaW5nIHRvIGJlIGEgY2hpZWYsIGZvciBpdCBicmluZ3MgYm90aCByaWNoZXMgYW5kIGhvbm91ci4gU3RpbGwsIG5vdyB0aGF0IFVseXNzZXMgaXMgZGVhZCB0aGVyZSBhcmUgbWFueSBncmVhdCBtZW4gaW4gSXRoYWNhIGJvdGggb2xkIGFuZCB5b3VuZywgYW5kIHNvbWUgb3RoZXIgbWF5IHRha2UgdGhlIGxlYWQgYW1vbmcgdGhlbTsgbmV2ZXJ0aGVsZXNzIEkgd2lsbCBiZSBjaGllZiBpbiBteSBvd24gaG91c2UsIGFuZCB3aWxsIHJ1bGUgdGhvc2Ugd2hvbSBVbHlzc2VzIGhhcyB3b24gZm9yIG1lLiINCg0KVGhlbiBFdXJ5bWFjaHVzLCBzb24gb2YgUG9seWJ1cywgYW5zd2VyZWQsICJJdCByZXN0cyB3aXRoIGhlYXZlbiB0byBkZWNpZGUgd2hvIHNoYWxsIGJlIGNoaWVmIGFtb25nIHVzLCBidXQgeW91IHNoYWxsIGJlIG1hc3RlciBpbiB5b3VyIG93biBob3VzZSBhbmQgb3ZlciB5b3VyIG93biBwb3NzZXNzaW9uczsgbm8gb25lIHdoaWxlIHRoZXJlIGlzIGEgbWFuIGluIEl0aGFjYSBzaGFsbCBkbyB5b3UgdmlvbGVuY2Ugbm9yIHJvYiB5b3UuIEFuZCBub3csIG15IGdvb2QgZmVsbG93LCBJIHdhbnQgdG8ga25vdyBhYm91dCB0aGlzIHN0cmFuZ2VyLiBXaGF0IGNvdW50cnkgZG9lcyBoZSBjb21lIGZyb20/IE9mIHdoYXQgZmFtaWx5IGlzIGhlLCBhbmQgd2hlcmUgaXMgaGlzIGVzdGF0ZT8gSGFzIGhlIGJyb3VnaHQgeW91IG5ld3MgYWJvdXQgdGhlIHJldHVybiBvZiB5b3VyIGZhdGhlciwgb3Igd2FzIGhlIG9uIGJ1c2luZXNzIG9mIGhpcyBvd24/IEhlIHNlZW1lZCBhIHdlbGwtdG8tZG8gbWFuLCBidXQgaGUgaHVycmllZCBvZmYgc28gc3VkZGVubHkgdGhhdCBoZSB3YXMgZ29uZSBpbiBhIG1vbWVudCBiZWZvcmUgd2UgY291bGQgZ2V0IHRvIGtub3cgaGltLiINCg0KIk15IGZhdGhlciBpcyBkZWFkIGFuZCBnb25lLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgImFuZCBldmVuIGlmIHNvbWUgcnVtb3VyIHJlYWNoZXMgbWUgSSBwdXQgbm8gbW9yZSBmYWl0aCBpbiBpdCBub3cuIE15IG1vdGhlciBkb2VzIGluZGVlZCBzb21ldGltZXMgc2VuZCBmb3IgYSBzb290aHNheWVyIGFuZCBxdWVzdGlvbiBoaW0sIGJ1dCBJIGdpdmUgaGlzIHByb3BoZWN5aW5ncyBubyBoZWVkLiBBcyBmb3IgdGhlIHN0cmFuZ2VyLCBoZSB3YXMgTWVudGVzLCBzb24gb2YgQW5jaGlhbHVzLCBjaGllZiBvZiB0aGUgVGFwaGlhbnMsIGFuIG9sZCBmcmllbmQgb2YgbXkgZmF0aGVyJ3MuIiBCdXQgaW4gaGlzIGhlYXJ0IGhlIGtuZXcgdGhhdCBpdCBoYWQgYmVlbiB0aGUgZ29kZGVzcy4NCg0KVGhlIHN1aXRvcnMgdGhlbiByZXR1cm5lZCB0byB0aGVpciBzaW5naW5nIGFuZCBkYW5jaW5nIHVudGlsIHRoZSBldmVuaW5nOyBidXQgd2hlbiBuaWdodCBmZWxsIHVwb24gdGhlaXIgcGxlYXN1cmluZyB0aGV5IHdlbnQgaG9tZSB0byBiZWQgZWFjaCBpbiBoaXMgb3duIGFib2RlLiBUZWxlbWFjaHVzJ3Mgcm9vbSB3YXMgaGlnaCB1cCBpbiBhIHRvd2VyIHRoYXQgbG9va2VkIG9uIHRvIHRoZSBvdXRlciBjb3VydDsgaGl0aGVyLCB0aGVuLCBoZSBoaWVkLCBicm9vZGluZyBhbmQgZnVsbCBvZiB0aG91Z2h0LiBBIGdvb2Qgb2xkIHdvbWFuLCBFdXJ5Y2xlYSwgZGF1Z2h0ZXIgb2YgT3BzLCB0aGUgc29uIG9mIFBpc2Vub3IsIHdlbnQgYmVmb3JlIGhpbSB3aXRoIGEgY291cGxlIG9mIGJsYXppbmcgdG9yY2hlcy4gTGFlcnRlcyBoYWQgYm91Z2h0IGhlciB3aXRoIGhpcyBvd24gbW9uZXkgd2hlbiBzaGUgd2FzIHF1aXRlIHlvdW5nOyBoZSBnYXZlIHRoZSB3b3J0aCBvZiB0d2VudHkgb3hlbiBmb3IgaGVyLCBhbmQgc2hld2VkIGFzIG11Y2ggcmVzcGVjdCB0byBoZXIgaW4gaGlzIGhvdXNlaG9sZCBhcyBoZSBkaWQgdG8gaGlzIG93biB3ZWRkZWQgd2lmZSwgYnV0IGhlIGRpZCBub3QgdGFrZSBoZXIgdG8gaGlzIGJlZCBmb3IgaGUgZmVhcmVkIGhpcyB3aWZlJ3MgcmVzZW50bWVudC4gU2hlIGl0IHdhcyB3aG8gbm93IGxpZ2h0ZWQgVGVsZW1hY2h1cyB0byBoaXMgcm9vbSwgYW5kIHNoZSBsb3ZlZCBoaW0gYmV0dGVyIHRoYW4gYW55IG9mIHRoZSBvdGhlciB3b21lbiBpbiB0aGUgaG91c2UgZGlkLCBmb3Igc2hlIGhhZCBudXJzZWQgaGltIHdoZW4gaGUgd2FzIGEgYmFieS4gSGUgb3BlbmVkIHRoZSBkb29yIG9mIGhpcyBiZWQgcm9vbSBhbmQgc2F0IGRvd24gdXBvbiB0aGUgYmVkOyBhcyBoZSB0b29rIG9mZiBoaXMgc2hpcnQgaGUgZ2F2ZSBpdCB0byB0aGUgZ29vZCBvbGQgd29tYW4sIHdobyBmb2xkZWQgaXQgdGlkaWx5IHVwLCBhbmQgaHVuZyBpdCBmb3IgaGltIG92ZXIgYSBwZWcgYnkgaGlzIGJlZCBzaWRlLCBhZnRlciB3aGljaCBzaGUgd2VudCBvdXQsIHB1bGxlZCB0aGUgZG9vciB0byBieSBhIHNpbHZlciBjYXRjaCwgYW5kIGRyZXcgdGhlIGJvbHQgaG9tZSBieSBtZWFucyBvZiB0aGUgc3RyYXAuIEJ1dCBUZWxlbWFjaHVzIGFzIGhlIGxheSBjb3ZlcmVkIHdpdGggYSB3b29sbGVuIGZsZWVjZSBrZXB0IHRoaW5raW5nIGFsbCBuaWdodCB0aHJvdWdoIG9mIGhpcyBpbnRlbmRlZCB2b3lhZ2Ugb2YgdGhlIGNvdW5zZWwgdGhhdCBNaW5lcnZhIGhhZCBnaXZlbiBoaW0uDQoNCkJvb2sgSUkNCg0KTm93IHdoZW4gdGhlIGNoaWxkIG9mIG1vcm5pbmcsIHJvc3ktZmluZ2VyZWQgRGF3biwgYXBwZWFyZWQsIFRlbGVtYWNodXMgcm9zZSBhbmQgZHJlc3NlZCBoaW1zZWxmLiBIZSBib3VuZCBoaXMgc2FuZGFscyBvbiB0byBoaXMgY29tZWx5IGZlZXQsIGdpcmRlZCBoaXMgc3dvcmQgYWJvdXQgaGlzIHNob3VsZGVyLCBhbmQgbGVmdCBoaXMgcm9vbSBsb29raW5nIGxpa2UgYW4gaW1tb3J0YWwgZ29kLiBIZSBhdCBvbmNlIHNlbnQgdGhlIGNyaWVycyByb3VuZCB0byBjYWxsIHRoZSBwZW9wbGUgaW4gYXNzZW1ibHksIHNvIHRoZXkgY2FsbGVkIHRoZW0gYW5kIHRoZSBwZW9wbGUgZ2F0aGVyZWQgdGhlcmVvbjsgdGhlbiwgd2hlbiB0aGV5IHdlcmUgZ290IHRvZ2V0aGVyLCBoZSB3ZW50IHRvIHRoZSBwbGFjZSBvZiBhc3NlbWJseSBzcGVhciBpbiBoYW5kLSBub3QgYWxvbmUsIGZvciBoaXMgdHdvIGhvdW5kcyB3ZW50IHdpdGggaGltLiBNaW5lcnZhIGVuZG93ZWQgaGltIHdpdGggYSBwcmVzZW5jZSBvZiBzdWNoIGRpdmluZSBjb21lbGluZXNzIHRoYXQgYWxsIG1hcnZlbGxlZCBhdCBoaW0gYXMgaGUgd2VudCBieSwgYW5kIHdoZW4gaGUgdG9vayBoaXMgcGxhY2UnIGluIGhpcyBmYXRoZXIncyBzZWF0IGV2ZW4gdGhlIG9sZGVzdCBjb3VuY2lsbG9ycyBtYWRlIHdheSBmb3IgaGltLg0KDQpBZWd5cHRpdXMsIGEgbWFuIGJlbnQgZG91YmxlIHdpdGggYWdlLCBhbmQgb2YgaW5maW5pdGUgZXhwZXJpZW5jZSwgdGhlIGZpcnN0IHRvIHNwZWFrIEhpcyBzb24gQW50aXBodXMgaGFkIGdvbmUgd2l0aCBVbHlzc2VzIHRvIElsaXVzLCBsYW5kIG9mIG5vYmxlIHN0ZWVkcywgYnV0IHRoZSBzYXZhZ2UgQ3ljbG9wcyBoYWQga2lsbGVkIGhpbSB3aGVuIHRoZXkgd2VyZSBhbGwgc2h1dCB1cCBpbiB0aGUgY2F2ZSwgYW5kIGhhZCBjb29rZWQgaGlzIGxhc3QgZGlubmVyIGZvciBoaW0sIEhlIGhhZCB0aHJlZSBzb25zIGxlZnQsIG9mIHdob20gdHdvIHN0aWxsIHdvcmtlZCBvbiB0aGVpciBmYXRoZXIncyBsYW5kLCB3aGlsZSB0aGUgdGhpcmQsIEV1cnlub211cywgd2FzIG9uZSBvZiB0aGUgc3VpdG9yczsgbmV2ZXJ0aGVsZXNzIHRoZWlyIGZhdGhlciBjb3VsZCBub3QgZ2V0IG92ZXIgdGhlIGxvc3Mgb2YgQW50aXBodXMsIGFuZCB3YXMgc3RpbGwgd2VlcGluZyBmb3IgaGltIHdoZW4gaGUgYmVnYW4gaGlzIHNwZWVjaC4NCg0KIk1lbiBvZiBJdGhhY2EsIiBoZSBzYWlkLCAiaGVhciBteSB3b3Jkcy4gRnJvbSB0aGUgZGF5IFVseXNzZXMgbGVmdCB1cyB0aGVyZSBoYXMgYmVlbiBubyBtZWV0aW5nIG9mIG91ciBjb3VuY2lsbG9ycyB1bnRpbCBub3c7IHdobyB0aGVuIGNhbiBpdCBiZSwgd2hldGhlciBvbGQgb3IgeW91bmcsIHRoYXQgZmluZHMgaXQgc28gbmVjZXNzYXJ5IHRvIGNvbnZlbmUgdXM/IEhhcyBoZSBnb3Qgd2luZCBvZiBzb21lIGhvc3QgYXBwcm9hY2hpbmcsIGFuZCBkb2VzIGhlIHdpc2ggdG8gd2FybiB1cywgb3Igd291bGQgaGUgc3BlYWsgdXBvbiBzb21lIG90aGVyIG1hdHRlciBvZiBwdWJsaWMgbW9tZW50PyBJIGFtIHN1cmUgaGUgaXMgYW4gZXhjZWxsZW50IHBlcnNvbiwgYW5kIEkgaG9wZSBKb3ZlIHdpbGwgZ3JhbnQgaGltIGhpcyBoZWFydCdzIGRlc2lyZS4iDQoNClRlbGVtYWNodXMgdG9vayB0aGlzIHNwZWVjaCBhcyBvZiBnb29kIG9tZW4gYW5kIHJvc2UgYXQgb25jZSwgZm9yIGhlIHdhcyBidXJzdGluZyB3aXRoIHdoYXQgaGUgaGFkIHRvIHNheS4gSGUgc3Rvb2QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYXNzZW1ibHkgYW5kIHRoZSBnb29kIGhlcmFsZCBQaXNlbm9yIGJyb3VnaHQgaGltIGhpcyBzdGFmZi4gVGhlbiwgdHVybmluZyB0byBBZWd5cHRpdXMsICJTaXIsIiBzYWlkIGhlLCAiaXQgaXMgSSwgYXMgeW91IHdpbGwgc2hvcnRseSBsZWFybiwgd2hvIGhhdmUgY29udmVuZWQgeW91LCBmb3IgaXQgaXMgSSB3aG8gYW0gdGhlIG1vc3QgYWdncmlldmVkLiBJIGhhdmUgbm90IGdvdCB3aW5kIG9mIGFueSBob3N0IGFwcHJvYWNoaW5nIGFib3V0IHdoaWNoIEkgd291bGQgd2FybiB5b3UsIG5vciBpcyB0aGVyZSBhbnkgbWF0dGVyIG9mIHB1YmxpYyBtb21lbnQgb24gd2hpY2ggSSB3b3VsZCBzcGVhay4gTXkgZ3JpZXZlYW5jZSBpcyBwdXJlbHkgcGVyc29uYWwsIGFuZCB0dXJucyBvbiB0d28gZ3JlYXQgbWlzZm9ydHVuZXMgd2hpY2ggaGF2ZSBmYWxsZW4gdXBvbiBteSBob3VzZS4gVGhlIGZpcnN0IG9mIHRoZXNlIGlzIHRoZSBsb3NzIG9mIG15IGV4Y2VsbGVudCBmYXRoZXIsIHdobyB3YXMgY2hpZWYgYW1vbmcgYWxsIHlvdSBoZXJlIHByZXNlbnQsIGFuZCB3YXMgbGlrZSBhIGZhdGhlciB0byBldmVyeSBvbmUgb2YgeW91OyB0aGUgc2Vjb25kIGlzIG11Y2ggbW9yZSBzZXJpb3VzLCBhbmQgZXJlIGxvbmcgd2lsbCBiZSB0aGUgdXR0ZXIgcnVpbiBvZiBteSBlc3RhdGUuIFRoZSBzb25zIG9mIGFsbCB0aGUgY2hpZWYgbWVuIGFtb25nIHlvdSBhcmUgcGVzdGVyaW5nIG15IG1vdGhlciB0byBtYXJyeSB0aGVtIGFnYWluc3QgaGVyIHdpbGwuIFRoZXkgYXJlIGFmcmFpZCB0byBnbyB0byBoZXIgZmF0aGVyIEljYXJpdXMsIGFza2luZyBoaW0gdG8gY2hvb3NlIHRoZSBvbmUgaGUgbGlrZXMgYmVzdCwgYW5kIHRvIHByb3ZpZGUgbWFycmlhZ2UgZ2lmdHMgZm9yIGhpcyBkYXVnaHRlciwgYnV0IGRheSBieSBkYXkgdGhleSBrZWVwIGhhbmdpbmcgYWJvdXQgbXkgZmF0aGVyJ3MgaG91c2UsIHNhY3JpZmljaW5nIG91ciBveGVuLCBzaGVlcCwgYW5kIGZhdCBnb2F0cyBmb3IgdGhlaXIgYmFucXVldHMsIGFuZCBuZXZlciBnaXZpbmcgc28gbXVjaCBhcyBhIHRob3VnaHQgdG8gdGhlIHF1YW50aXR5IG9mIHdpbmUgdGhleSBkcmluay4gTm8gZXN0YXRlIGNhbiBzdGFuZCBzdWNoIHJlY2tsZXNzbmVzczsgd2UgaGF2ZSBub3cgbm8gVWx5c3NlcyB0byB3YXJkIG9mZiBoYXJtIGZyb20gb3VyIGRvb3JzLCBhbmQgSSBjYW5ub3QgaG9sZCBteSBvd24gYWdhaW5zdCB0aGVtLiBJIHNoYWxsIG5ldmVyIGFsbCBteSBkYXlzIGJlIGFzIGdvb2QgYSBtYW4gYXMgaGUgd2FzLCBzdGlsbCBJIHdvdWxkIGluZGVlZCBkZWZlbmQgbXlzZWxmIGlmIEkgaGFkIHBvd2VyIHRvIGRvIHNvLCBmb3IgSSBjYW5ub3Qgc3RhbmQgc3VjaCB0cmVhdG1lbnQgYW55IGxvbmdlcjsgbXkgaG91c2UgaXMgYmVpbmcgZGlzZ3JhY2VkIGFuZCBydWluZWQuIEhhdmUgcmVzcGVjdCwgdGhlcmVmb3JlLCB0byB5b3VyIG93biBjb25zY2llbmNlcyBhbmQgdG8gcHVibGljIG9waW5pb24uIEZlYXIsIHRvbywgdGhlIHdyYXRoIG9mIGhlYXZlbiwgbGVzdCB0aGUgZ29kcyBzaG91bGQgYmUgZGlzcGxlYXNlZCBhbmQgdHVybiB1cG9uIHlvdS4gSSBwcmF5IHlvdSBieSBKb3ZlIGFuZCBUaGVtaXMsIHdobyBpcyB0aGUgYmVnaW5uaW5nIGFuZCB0aGUgZW5kIG9mIGNvdW5jaWxzLCBbZG8gbm90XSBob2xkIGJhY2ssIG15IGZyaWVuZHMsIGFuZCBsZWF2ZSBtZSBzaW5nbGVoYW5kZWQtIHVubGVzcyBpdCBiZSB0aGF0IG15IGJyYXZlIGZhdGhlciBVbHlzc2VzIGRpZCBzb21lIHdyb25nIHRvIHRoZSBBY2hhZWFucyB3aGljaCB5b3Ugd291bGQgbm93IGF2ZW5nZSBvbiBtZSwgYnkgYWlkaW5nIGFuZCBhYmV0dGluZyB0aGVzZSBzdWl0b3JzLiBNb3Jlb3ZlciwgaWYgSSBhbSB0byBiZSBlYXRlbiBvdXQgb2YgaG91c2UgYW5kIGhvbWUgYXQgYWxsLCBJIGhhZCByYXRoZXIgeW91IGRpZCB0aGUgZWF0aW5nIHlvdXJzZWx2ZXMsIGZvciBJIGNvdWxkIHRoZW4gdGFrZSBhY3Rpb24gYWdhaW5zdCB5b3UgdG8gc29tZSBwdXJwb3NlLCBhbmQgc2VydmUgeW91IHdpdGggbm90aWNlcyBmcm9tIGhvdXNlIHRvIGhvdXNlIHRpbGwgSSBnb3QgcGFpZCBpbiBmdWxsLCB3aGVyZWFzIG5vdyBJIGhhdmUgbm8gcmVtZWR5LiINCg0KV2l0aCB0aGlzIFRlbGVtYWNodXMgZGFzaGVkIGhpcyBzdGFmZiB0byB0aGUgZ3JvdW5kIGFuZCBidXJzdCBpbnRvIHRlYXJzLiBFdmVyeSBvbmUgd2FzIHZlcnkgc29ycnkgZm9yIGhpbSwgYnV0IHRoZXkgYWxsIHNhdCBzdGlsbCBhbmQgbm8gb25lIHZlbnR1cmVkIHRvIG1ha2UgaGltIGFuIGFuZ3J5IGFuc3dlciwgc2F2ZSBvbmx5IEFudGlub3VzLCB3aG8gc3Bva2UgdGh1czoNCg0KIlRlbGVtYWNodXMsIGluc29sZW50IGJyYWdnYXJ0IHRoYXQgeW91IGFyZSwgaG93IGRhcmUgeW91IHRyeSB0byB0aHJvdyB0aGUgYmxhbWUgdXBvbiB1cyBzdWl0b3JzPyBJdCBpcyB5b3VyIG1vdGhlcidzIGZhdWx0IG5vdCBvdXJzLCBmb3Igc2hlIGlzIGEgdmVyeSBhcnRmdWwgd29tYW4uIFRoaXMgdGhyZWUgeWVhcnMgcGFzdCwgYW5kIGNsb3NlIG9uIGZvdXIsIHNoZSBoYXMgYmVlbiBkcml2aW5nIHVzIG91dCBvZiBvdXIgbWluZHMsIGJ5IGVuY291cmFnaW5nIGVhY2ggb25lIG9mIHVzLCBhbmQgc2VuZGluZyBoaW0gbWVzc2FnZXMgd2l0aG91dCBtZWFuaW5nIG9uZSB3b3JkIG9mIHdoYXQgc2hlIHNheXMuIEFuZCB0aGVuIHRoZXJlIHdhcyB0aGF0IG90aGVyIHRyaWNrIHNoZSBwbGF5ZWQgdXMuIFNoZSBzZXQgdXAgYSBncmVhdCB0YW1ib3VyIGZyYW1lIGluIGhlciByb29tLCBhbmQgYmVnYW4gdG8gd29yayBvbiBhbiBlbm9ybW91cyBwaWVjZSBvZiBmaW5lIG5lZWRsZXdvcmsuICdTd2VldCBoZWFydHMsJyBzYWlkIHNoZSwgJ1VseXNzZXMgaXMgaW5kZWVkIGRlYWQsIHN0aWxsIGRvIG5vdCBwcmVzcyBtZSB0byBtYXJyeSBhZ2FpbiBpbW1lZGlhdGVseSwgd2FpdC0gZm9yIEkgd291bGQgbm90IGhhdmUgc2tpbGwgaW4gbmVlZGxld29yayBwZXJpc2ggdW5yZWNvcmRlZC0gdGlsbCBJIGhhdmUgY29tcGxldGVkIGEgcGFsbCBmb3IgdGhlIGhlcm8gTGFlcnRlcywgdG8gYmUgaW4gcmVhZGluZXNzIGFnYWluc3QgdGhlIHRpbWUgd2hlbiBkZWF0aCBzaGFsbCB0YWtlIGhpbS4gSGUgaXMgdmVyeSByaWNoLCBhbmQgdGhlIHdvbWVuIG9mIHRoZSBwbGFjZSB3aWxsIHRhbGsgaWYgaGUgaXMgbGFpZCBvdXQgd2l0aG91dCBhIHBhbGwuJw0KDQoiVGhpcyB3YXMgd2hhdCBzaGUgc2FpZCwgYW5kIHdlIGFzc2VudGVkOyB3aGVyZW9uIHdlIGNvdWxkIHNlZSBoZXIgd29ya2luZyBvbiBoZXIgZ3JlYXQgd2ViIGFsbCBkYXkgbG9uZywgYnV0IGF0IG5pZ2h0IHNoZSB3b3VsZCB1bnBpY2sgdGhlIHN0aXRjaGVzIGFnYWluIGJ5IHRvcmNobGlnaHQuIFNoZSBmb29sZWQgdXMgaW4gdGhpcyB3YXkgZm9yIHRocmVlIHllYXJzIGFuZCB3ZSBuZXZlciBmb3VuZCBoZXIgb3V0LCBidXQgYXMgdGltZSB3b3JlIG9uIGFuZCBzaGUgd2FzIG5vdyBpbiBoZXIgZm91cnRoIHllYXIsIG9uZSBvZiBoZXIgbWFpZHMgd2hvIGtuZXcgd2hhdCBzaGUgd2FzIGRvaW5nIHRvbGQgdXMsIGFuZCB3ZSBjYXVnaHQgaGVyIGluIHRoZSBhY3Qgb2YgdW5kb2luZyBoZXIgd29yaywgc28gc2hlIGhhZCB0byBmaW5pc2ggaXQgd2hldGhlciBzaGUgd291bGQgb3Igbm8uIFRoZSBzdWl0b3JzLCB0aGVyZWZvcmUsIG1ha2UgeW91IHRoaXMgYW5zd2VyLCB0aGF0IGJvdGggeW91IGFuZCB0aGUgQWNoYWVhbnMgbWF5IHVuZGVyc3RhbmQtJ1NlbmQgeW91ciBtb3RoZXIgYXdheSwgYW5kIGJpZCBoZXIgbWFycnkgdGhlIG1hbiBvZiBoZXIgb3duIGFuZCBvZiBoZXIgZmF0aGVyJ3MgY2hvaWNlJzsgZm9yIEkgZG8gbm90IGtub3cgd2hhdCB3aWxsIGhhcHBlbiBpZiBzaGUgZ29lcyBvbiBwbGFndWluZyB1cyBtdWNoIGxvbmdlciB3aXRoIHRoZSBhaXJzIHNoZSBnaXZlcyBoZXJzZWxmIG9uIHRoZSBzY29yZSBvZiB0aGUgYWNjb21wbGlzaG1lbnRzIE1pbmVydmEgaGFzIHRhdWdodCBoZXIsIGFuZCBiZWNhdXNlIHNoZSBpcyBzbyBjbGV2ZXIuIFdlIG5ldmVyIHlldCBoZWFyZCBvZiBzdWNoIGEgd29tYW47IHdlIGtub3cgYWxsIGFib3V0IFR5cm8sIEFsY21lbmEsIE15Y2VuZSwgYW5kIHRoZSBmYW1vdXMgd29tZW4gb2Ygb2xkLCBidXQgdGhleSB3ZXJlIG5vdGhpbmcgdG8geW91ciBtb3RoZXIsIGFueSBvbmUgb2YgdGhlbS4gSXQgd2FzIG5vdCBmYWlyIG9mIGhlciB0byB0cmVhdCB1cyBpbiB0aGF0IHdheSwgYW5kIGFzIGxvbmcgYXMgc2hlIGNvbnRpbnVlcyBpbiB0aGUgbWluZCB3aXRoIHdoaWNoIGhlYXZlbiBoYXMgbm93IGVuZG93ZWQgaGVyLCBzbyBsb25nIHNoYWxsIHdlIGdvIG9uIGVhdGluZyB1cCB5b3VyIGVzdGF0ZTsgYW5kIEkgZG8gbm90IHNlZSB3aHkgc2hlIHNob3VsZCBjaGFuZ2UsIGZvciBzaGUgZ2V0cyBhbGwgdGhlIGhvbm91ciBhbmQgZ2xvcnksIGFuZCBpdCBpcyB5b3Ugd2hvIHBheSBmb3IgaXQsIG5vdCBzaGUuIFVuZGVyc3RhbmQsIHRoZW4sIHRoYXQgd2Ugd2lsbCBub3QgZ28gYmFjayB0byBvdXIgbGFuZHMsIG5laXRoZXIgaGVyZSBub3IgZWxzZXdoZXJlLCB0aWxsIHNoZSBoYXMgbWFkZSBoZXIgY2hvaWNlIGFuZCBtYXJyaWVkIHNvbWUgb25lIG9yIG90aGVyIG9mIHVzLiINCg0KVGVsZW1hY2h1cyBhbnN3ZXJlZCwgIkFudGlub3VzLCBob3cgY2FuIEkgZHJpdmUgdGhlIG1vdGhlciB3aG8gYm9yZSBtZSBmcm9tIG15IGZhdGhlcidzIGhvdXNlPyBNeSBmYXRoZXIgaXMgYWJyb2FkIGFuZCB3ZSBkbyBub3Qga25vdyB3aGV0aGVyIGhlIGlzIGFsaXZlIG9yIGRlYWQuIEl0IHdpbGwgYmUgaGFyZCBvbiBtZSBpZiBJIGhhdmUgdG8gcGF5IEljYXJpdXMgdGhlIGxhcmdlIHN1bSB3aGljaCBJIG11c3QgZ2l2ZSBoaW0gaWYgSSBpbnNpc3Qgb24gc2VuZGluZyBoaXMgZGF1Z2h0ZXIgYmFjayB0byBoaW0uIE5vdCBvbmx5IHdpbGwgaGUgZGVhbCByaWdvcm91c2x5IHdpdGggbWUsIGJ1dCBoZWF2ZW4gd2lsbCBhbHNvIHB1bmlzaCBtZTsgZm9yIG15IG1vdGhlciB3aGVuIHNoZSBsZWF2ZXMgdGhlIGhvdXNlIHdpbGwgY2FsZiBvbiB0aGUgRXJpbnllcyB0byBhdmVuZ2UgaGVyOyBiZXNpZGVzLCBpdCB3b3VsZCBub3QgYmUgYSBjcmVkaXRhYmxlIHRoaW5nIHRvIGRvLCBhbmQgSSB3aWxsIGhhdmUgbm90aGluZyB0byBzYXkgdG8gaXQuIElmIHlvdSBjaG9vc2UgdG8gdGFrZSBvZmZlbmNlIGF0IHRoaXMsIGxlYXZlIHRoZSBob3VzZSBhbmQgZmVhc3QgZWxzZXdoZXJlIGF0IG9uZSBhbm90aGVyJ3MgaG91c2VzIGF0IHlvdXIgb3duIGNvc3QgdHVybiBhbmQgdHVybiBhYm91dC4gSWYsIG9uIHRoZSBvdGhlciBoYW5kLCB5b3UgZWxlY3QgdG8gcGVyc2lzdCBpbiBzcHVuZ2luZyB1cG9uIG9uZSBtYW4sIGhlYXZlbiBoZWxwIG1lLCBidXQgSm92ZSBzaGFsbCByZWNrb24gd2l0aCB5b3UgaW4gZnVsbCwgYW5kIHdoZW4geW91IGZhbGwgaW4gbXkgZmF0aGVyJ3MgaG91c2UgdGhlcmUgc2hhbGwgYmUgbm8gbWFuIHRvIGF2ZW5nZSB5b3UuIg0KDQpBcyBoZSBzcG9rZSBKb3ZlIHNlbnQgdHdvIGVhZ2xlcyBmcm9tIHRoZSB0b3Agb2YgdGhlIG1vdW50YWluLCBhbmQgdGhleSBmbGV3IG9uIGFuZCBvbiB3aXRoIHRoZSB3aW5kLCBzYWlsaW5nIHNpZGUgYnkgc2lkZSBpbiB0aGVpciBvd24gbG9yZGx5IGZsaWdodC4gV2hlbiB0aGV5IHdlcmUgcmlnaHQgb3ZlciB0aGUgbWlkZGxlIG9mIHRoZSBhc3NlbWJseSB0aGV5IHdoZWVsZWQgYW5kIGNpcmNsZWQgYWJvdXQsIGJlYXRpbmcgdGhlIGFpciB3aXRoIHRoZWlyIHdpbmdzIGFuZCBnbGFyaW5nIGRlYXRoIGludG8gdGhlIGV5ZXMgb2YgdGhlbSB0aGF0IHdlcmUgYmVsb3c7IHRoZW4sIGZpZ2h0aW5nIGZpZXJjZWx5IGFuZCB0ZWFyaW5nIGF0IG9uZSBhbm90aGVyLCB0aGV5IGZsZXcgb2ZmIHRvd2FyZHMgdGhlIHJpZ2h0IG92ZXIgdGhlIHRvd24uIFRoZSBwZW9wbGUgd29uZGVyZWQgYXMgdGhleSBzYXcgdGhlbSwgYW5kIGFza2VkIGVhY2ggb3RoZXIgd2hhdCBhbiB0aGlzIG1pZ2h0IGJlOyB3aGVyZW9uIEhhbGl0aGVyc2VzLCB3aG8gd2FzIHRoZSBiZXN0IHByb3BoZXQgYW5kIHJlYWRlciBvZiBvbWVucyBhbW9uZyB0aGVtLCBzcG9rZSB0byB0aGVtIHBsYWlubHkgYW5kIGluIGFsbCBob25lc3R5LCBzYXlpbmc6DQoNCiJIZWFyIG1lLCBtZW4gb2YgSXRoYWNhLCBhbmQgSSBzcGVhayBtb3JlIHBhcnRpY3VsYXJseSB0byB0aGUgc3VpdG9ycywgZm9yIEkgc2VlIG1pc2NoaWVmIGJyZXdpbmcgZm9yIHRoZW0uIFVseXNzZXMgaXMgbm90IGdvaW5nIHRvIGJlIGF3YXkgbXVjaCBsb25nZXI7IGluZGVlZCBoZSBpcyBjbG9zZSBhdCBoYW5kIHRvIGRlYWwgb3V0IGRlYXRoIGFuZCBkZXN0cnVjdGlvbiwgbm90IG9uIHRoZW0gYWxvbmUsIGJ1dCBvbiBtYW55IGFub3RoZXIgb2YgdXMgd2hvIGxpdmUgaW4gSXRoYWNhLiBMZXQgdXMgdGhlbiBiZSB3aXNlIGluIHRpbWUsIGFuZCBwdXQgYSBzdG9wIHRvIHRoaXMgd2lja2VkbmVzcyBiZWZvcmUgaGUgY29tZXMuIExldCB0aGUgc3VpdG9ycyBkbyBzbyBvZiB0aGVpciBvd24gYWNjb3JkOyBpdCB3aWxsIGJlIGJldHRlciBmb3IgdGhlbSwgZm9yIEkgYW0gbm90IHByb3BoZXN5aW5nIHdpdGhvdXQgZHVlIGtub3dsZWRnZTsgZXZlcnl0aGluZyBoYXMgaGFwcGVuZWQgdG8gVWx5c3NlcyBhcyBJIGZvcmV0b2xkIHdoZW4gdGhlIEFyZ2l2ZXMgc2V0IG91dCBmb3IgVHJveSwgYW5kIGhlIHdpdGggdGhlbS4gSSBzYWlkIHRoYXQgYWZ0ZXIgZ29pbmcgdGhyb3VnaCBtdWNoIGhhcmRzaGlwIGFuZCBsb3NpbmcgYWxsIGhpcyBtZW4gaGUgc2hvdWxkIGNvbWUgaG9tZSBhZ2FpbiBpbiB0aGUgdHdlbnRpZXRoIHllYXIgYW5kIHRoYXQgbm8gb25lIHdvdWxkIGtub3cgaGltOyBhbmQgbm93IGFsbCB0aGlzIGlzIGNvbWluZyB0cnVlLiINCg0KRXVyeW1hY2h1cyBzb24gb2YgUG9seWJ1cyB0aGVuIHNhaWQsICJHbyBob21lLCBvbGQgbWFuLCBhbmQgcHJvcGhlc3kgdG8geW91ciBvd24gY2hpbGRyZW4sIG9yIGl0IG1heSBiZSB3b3JzZSBmb3IgdGhlbS4gSSBjYW4gcmVhZCB0aGVzZSBvbWVucyBteXNlbGYgbXVjaCBiZXR0ZXIgdGhhbiB5b3UgY2FuOyBiaXJkcyBhcmUgYWx3YXlzIGZseWluZyBhYm91dCBpbiB0aGUgc3Vuc2hpbmUgc29tZXdoZXJlIG9yIG90aGVyLCBidXQgdGhleSBzZWxkb20gbWVhbiBhbnl0aGluZy4gVWx5c3NlcyBoYXMgZGllZCBpbiBhIGZhciBjb3VudHJ5LCBhbmQgaXQgaXMgYSBwaXR5IHlvdSBhcmUgbm90IGRlYWQgYWxvbmcgd2l0aCBoaW0sIGluc3RlYWQgb2YgcHJhdGluZyBoZXJlIGFib3V0IG9tZW5zIGFuZCBhZGRpbmcgZnVlbCB0byB0aGUgYW5nZXIgb2YgVGVsZW1hY2h1cyB3aGljaCBpcyBmaWVyY2UgZW5vdWdoIGFzIGl0IGlzLiBJIHN1cHBvc2UgeW91IHRoaW5rIGhlIHdpbGwgZ2l2ZSB5b3Ugc29tZXRoaW5nIGZvciB5b3VyIGZhbWlseSwgYnV0IEkgdGVsbCB5b3UtIGFuZCBpdCBzaGFsbCBzdXJlbHkgYmUtIHdoZW4gYW4gb2xkIG1hbiBsaWtlIHlvdSwgd2hvIHNob3VsZCBrbm93IGJldHRlciwgdGFsa3MgYSB5b3VuZyBvbmUgb3ZlciB0aWxsIGhlIGJlY29tZXMgdHJvdWJsZXNvbWUsIGluIHRoZSBmaXJzdCBwbGFjZSBoaXMgeW91bmcgZnJpZW5kIHdpbGwgb25seSBmYXJlIHNvIG11Y2ggdGhlIHdvcnNlLSBoZSB3aWxsIHRha2Ugbm90aGluZyBieSBpdCwgZm9yIHRoZSBzdWl0b3JzIHdpbGwgcHJldmVudCB0aGlzLSBhbmQgaW4gdGhlIG5leHQsIHdlIHdpbGwgbGF5IGEgaGVhdmllciBmaW5lLCBzaXIsIHVwb24geW91cnNlbGYgdGhhbiB5b3Ugd2lsbCBhdCBhbGwgbGlrZSBwYXlpbmcsIGZvciBpdCB3aWxsIGJlYXIgaGFyZGx5IHVwb24geW91LiBBcyBmb3IgVGVsZW1hY2h1cywgSSB3YXJuIGhpbSBpbiB0aGUgcHJlc2VuY2Ugb2YgeW91IGFsbCB0byBzZW5kIGhpcyBtb3RoZXIgYmFjayB0byBoZXIgZmF0aGVyLCB3aG8gd2lsbCBmaW5kIGhlciBhIGh1c2JhbmQgYW5kIHByb3ZpZGUgaGVyIHdpdGggYWxsIHRoZSBtYXJyaWFnZSBnaWZ0cyBzbyBkZWFyIGEgZGF1Z2h0ZXIgbWF5IGV4cGVjdC4gVGlsbCB3ZSBzaGFsbCBnbyBvbiBoYXJhc3NpbmcgaGltIHdpdGggb3VyIHN1aXQ7IGZvciB3ZSBmZWFyIG5vIG1hbiwgYW5kIGNhcmUgbmVpdGhlciBmb3IgaGltLCB3aXRoIGFsbCBoaXMgZmluZSBzcGVlY2hlcywgbm9yIGZvciBhbnkgZm9ydHVuZS10ZWxsaW5nIG9mIHlvdXJzLiBZb3UgbWF5IHByZWFjaCBhcyBtdWNoIGFzIHlvdSBwbGVhc2UsIGJ1dCB3ZSBzaGFsbCBvbmx5IGhhdGUgeW91IHRoZSBtb3JlLiBXZSBzaGFsbCBnbyBiYWNrIGFuZCBjb250aW51ZSB0byBlYXQgdXAgVGVsZW1hY2h1cydzIGVzdGF0ZSB3aXRob3V0IHBheWluZyBoaW0sIHRpbGwgc3VjaCB0aW1lIGFzIGhpcyBtb3RoZXIgbGVhdmVzIG9mZiB0b3JtZW50aW5nIHVzIGJ5IGtlZXBpbmcgdXMgZGF5IGFmdGVyIGRheSBvbiB0aGUgdGlwdG9lIG9mIGV4cGVjdGF0aW9uLCBlYWNoIHZ5aW5nIHdpdGggdGhlIG90aGVyIGluIGhpcyBzdWl0IGZvciBhIHByaXplIG9mIHN1Y2ggcmFyZSBwZXJmZWN0aW9uLiBCZXNpZGVzIHdlIGNhbm5vdCBnbyBhZnRlciB0aGUgb3RoZXIgd29tZW4gd2hvbSB3ZSBzaG91bGQgbWFycnkgaW4gZHVlIGNvdXJzZSwgYnV0IGZvciB0aGUgd2F5IGluIHdoaWNoIHNoZSB0cmVhdHMgdXMuIg0KDQpUaGVuIFRlbGVtYWNodXMgc2FpZCwgIkV1cnltYWNodXMsIGFuZCB5b3Ugb3RoZXIgc3VpdG9ycywgSSBzaGFsbCBzYXkgbm8gbW9yZSwgYW5kIGVudHJlYXQgeW91IG5vIGZ1cnRoZXIsIGZvciB0aGUgZ29kcyBhbmQgdGhlIHBlb3BsZSBvZiBJdGhhY2Egbm93IGtub3cgbXkgc3RvcnkuIEdpdmUgbWUsIHRoZW4sIGEgc2hpcCBhbmQgYSBjcmV3IG9mIHR3ZW50eSBtZW4gdG8gdGFrZSBtZSBoaXRoZXIgYW5kIHRoaXRoZXIsIGFuZCBJIHdpbGwgZ28gdG8gU3BhcnRhIGFuZCB0byBQeWxvcyBpbiBxdWVzdCBvZiBteSBmYXRoZXIgd2hvIGhhcyBzbyBsb25nIGJlZW4gbWlzc2luZy4gU29tZSBvbmUgbWF5IHRlbGwgbWUgc29tZXRoaW5nLCBvciAoYW5kIHBlb3BsZSBvZnRlbiBoZWFyIHRoaW5ncyBpbiB0aGlzIHdheSkgc29tZSBoZWF2ZW4tc2VudCBtZXNzYWdlIG1heSBkaXJlY3QgbWUuIElmIEkgY2FuIGhlYXIgb2YgaGltIGFzIGFsaXZlIGFuZCBvbiBoaXMgd2F5IGhvbWUgSSB3aWxsIHB1dCB1cCB3aXRoIHRoZSB3YXN0ZSB5b3Ugc3VpdG9ycyB3aWxsIG1ha2UgZm9yIHlldCBhbm90aGVyIHR3ZWx2ZSBtb250aHMuIElmIG9uIHRoZSBvdGhlciBoYW5kIEkgaGVhciBvZiBoaXMgZGVhdGgsIEkgd2lsbCByZXR1cm4gYXQgb25jZSwgY2VsZWJyYXRlIGhpcyBmdW5lcmFsIHJpdGVzIHdpdGggYWxsIGR1ZSBwb21wLCBidWlsZCBhIGJhcnJvdyB0byBoaXMgbWVtb3J5LCBhbmQgbWFrZSBteSBtb3RoZXIgbWFycnkgYWdhaW4uIg0KDQpXaXRoIHRoZXNlIHdvcmRzIGhlIHNhdCBkb3duLCBhbmQgTWVudG9yIHdobyBoYWQgYmVlbiBhIGZyaWVuZCBvZiBVbHlzc2VzLCBhbmQgaGFkIGJlZW4gbGVmdCBpbiBjaGFyZ2Ugb2YgZXZlcnl0aGluZyB3aXRoIGZ1bGwgYXV0aG9yaXR5IG92ZXIgdGhlIHNlcnZhbnRzLCByb3NlIHRvIHNwZWFrLiBIZSwgdGhlbiwgcGxhaW5seSBhbmQgaW4gYWxsIGhvbmVzdHkgYWRkcmVzc2VkIHRoZW0gdGh1czoNCg0KIkhlYXIgbWUsIG1lbiBvZiBJdGhhY2EsIEkgaG9wZSB0aGF0IHlvdSBtYXkgbmV2ZXIgaGF2ZSBhIGtpbmQgYW5kIHdlbGwtZGlzcG9zZWQgcnVsZXIgYW55IG1vcmUsIG5vciBvbmUgd2hvIHdpbGwgZ292ZXJuIHlvdSBlcXVpdGFibHk7IEkgaG9wZSB0aGF0IGFsbCB5b3VyIGNoaWVmcyBoZW5jZWZvcndhcmQgbWF5IGJlIGNydWVsIGFuZCB1bmp1c3QsIGZvciB0aGVyZSBpcyBub3Qgb25lIG9mIHlvdSBidXQgaGFzIGZvcmdvdHRlbiBVbHlzc2VzLCB3aG8gcnVsZWQgeW91IGFzIHRob3VnaCBoZSB3ZXJlIHlvdXIgZmF0aGVyLiBJIGFtIG5vdCBoYWxmIHNvIGFuZ3J5IHdpdGggdGhlIHN1aXRvcnMsIGZvciBpZiB0aGV5IGNob29zZSB0byBkbyB2aW9sZW5jZSBpbiB0aGUgbmF1Z2h0aW5lc3Mgb2YgdGhlaXIgaGVhcnRzLCBhbmQgd2FnZXIgdGhlaXIgaGVhZHMgdGhhdCBVbHlzc2VzIHdpbGwgbm90IHJldHVybiwgdGhleSBjYW4gdGFrZSB0aGUgaGlnaCBoYW5kIGFuZCBlYXQgdXAgaGlzIGVzdGF0ZSwgYnV0IGFzIGZvciB5b3Ugb3RoZXJzIEkgYW0gc2hvY2tlZCBhdCB0aGUgd2F5IGluIHdoaWNoIHlvdSBhbGwgc2l0IHN0aWxsIHdpdGhvdXQgZXZlbiB0cnlpbmcgdG8gc3RvcCBzdWNoIHNjYW5kYWxvdXMgZ29pbmdzIG9uLXdoaWNoIHlvdSBjb3VsZCBkbyBpZiB5b3UgY2hvc2UsIGZvciB5b3UgYXJlIG1hbnkgYW5kIHRoZXkgYXJlIGZldy4iDQoNCkxlaW9jcml0dXMsIHNvbiBvZiBFdmVub3IsIGFuc3dlcmVkIGhpbSBzYXlpbmcsICJNZW50b3IsIHdoYXQgZm9sbHkgaXMgYWxsIHRoaXMsIHRoYXQgeW91IHNob3VsZCBzZXQgdGhlIHBlb3BsZSB0byBzdGF5IHVzPyBJdCBpcyBhIGhhcmQgdGhpbmcgZm9yIG9uZSBtYW4gdG8gZmlnaHQgd2l0aCBtYW55IGFib3V0IGhpcyB2aWN0dWFscy4gRXZlbiB0aG91Z2ggVWx5c3NlcyBoaW1zZWxmIHdlcmUgdG8gc2V0IHVwb24gdXMgd2hpbGUgd2UgYXJlIGZlYXN0aW5nIGluIGhpcyBob3VzZSwgYW5kIGRvIGhpcyBiZXN0IHRvIG91c3QgdXMsIGhpcyB3aWZlLCB3aG8gd2FudHMgaGltIGJhY2sgc28gdmVyeSBiYWRseSwgd291bGQgaGF2ZSBzbWFsbCBjYXVzZSBmb3IgcmVqb2ljaW5nLCBhbmQgaGlzIGJsb29kIHdvdWxkIGJlIHVwb24gaGlzIG93biBoZWFkIGlmIGhlIGZvdWdodCBhZ2FpbnN0IHN1Y2ggZ3JlYXQgb2Rkcy4gVGhlcmUgaXMgbm8gc2Vuc2UgaW4gd2hhdCB5b3UgaGF2ZSBiZWVuIHNheWluZy4gTm93LCB0aGVyZWZvcmUsIGRvIHlvdSBwZW9wbGUgZ28gYWJvdXQgeW91ciBidXNpbmVzcywgYW5kIGxldCBoaXMgZmF0aGVyJ3Mgb2xkIGZyaWVuZHMsIE1lbnRvciBhbmQgSGFsaXRoZXJzZXMsIHNwZWVkIHRoaXMgYm95IG9uIGhpcyBqb3VybmV5LCBpZiBoZSBnb2VzIGF0IGFsbC0gd2hpY2ggSSBkbyBub3QgdGhpbmsgaGUgd2lsbCwgZm9yIGhlIGlzIG1vcmUgbGlrZWx5IHRvIHN0YXkgd2hlcmUgaGUgaXMgdGlsbCBzb21lIG9uZSBjb21lcyBhbmQgdGVsbHMgaGltIHNvbWV0aGluZy4iDQoNCk9uIHRoaXMgaGUgYnJva2UgdXAgdGhlIGFzc2VtYmx5LCBhbmQgZXZlcnkgbWFuIHdlbnQgYmFjayB0byBoaXMgb3duIGFib2RlLCB3aGlsZSB0aGUgc3VpdG9ycyByZXR1cm5lZCB0byB0aGUgaG91c2Ugb2YgVWx5c3Nlcy4NCg0KVGhlbiBUZWxlbWFjaHVzIHdlbnQgYWxsIGFsb25lIGJ5IHRoZSBzZWEgc2lkZSwgd2FzaGVkIGhpcyBoYW5kcyBpbiB0aGUgZ3JleSB3YXZlcywgYW5kIHByYXllZCB0byBNaW5lcnZhLg0KDQoiSGVhciBtZSwiIGhlIGNyaWVkLCAieW91IGdvZCB3aG8gdmlzaXRlZCBtZSB5ZXN0ZXJkYXksIGFuZCBiYWRlIG1lIHNhaWwgdGhlIHNlYXMgaW4gc2VhcmNoIG9mIG15IGZhdGhlciB3aG8gaGFzIHNvIGxvbmcgYmVlbiBtaXNzaW5nLiBJIHdvdWxkIG9iZXkgeW91LCBidXQgdGhlIEFjaGFlYW5zLCBhbmQgbW9yZSBwYXJ0aWN1bGFybHkgdGhlIHdpY2tlZCBzdWl0b3JzLCBhcmUgaGluZGVyaW5nIG1lIHRoYXQgSSBjYW5ub3QgZG8gc28uIg0KDQpBcyBoZSB0aHVzIHByYXllZCwgTWluZXJ2YSBjYW1lIGNsb3NlIHVwIHRvIGhpbSBpbiB0aGUgbGlrZW5lc3MgYW5kIHdpdGggdGhlIHZvaWNlIG9mIE1lbnRvci4gIlRlbGVtYWNodXMsIiBzYWlkIHNoZSwgImlmIHlvdSBhcmUgbWFkZSBvZiB0aGUgc2FtZSBzdHVmZiBhcyB5b3VyIGZhdGhlciB5b3Ugd2lsbCBiZSBuZWl0aGVyIGZvb2wgbm9yIGNvd2FyZCBoZW5jZWZvcndhcmQsIGZvciBVbHlzc2VzIG5ldmVyIGJyb2tlIGhpcyB3b3JkIG5vciBsZWZ0IGhpcyB3b3JrIGhhbGYgZG9uZS4gSWYsIHRoZW4sIHlvdSB0YWtlIGFmdGVyIGhpbSwgeW91ciB2b3lhZ2Ugd2lsbCBub3QgYmUgZnJ1aXRsZXNzLCBidXQgdW5sZXNzIHlvdSBoYXZlIHRoZSBibG9vZCBvZiBVbHlzc2VzIGFuZCBvZiBQZW5lbG9wZSBpbiB5b3VyIHZlaW5zIEkgc2VlIG5vIGxpa2VsaWhvb2Qgb2YgeW91ciBzdWNjZWVkaW5nLiBTb25zIGFyZSBzZWxkb20gYXMgZ29vZCBtZW4gYXMgdGhlaXIgZmF0aGVyczsgdGhleSBhcmUgZ2VuZXJhbGx5IHdvcnNlLCBub3QgYmV0dGVyOyBzdGlsbCwgYXMgeW91IGFyZSBub3QgZ29pbmcgdG8gYmUgZWl0aGVyIGZvb2wgb3IgY293YXJkIGhlbmNlZm9yd2FyZCwgYW5kIGFyZSBub3QgZW50aXJlbHkgd2l0aG91dCBzb21lIHNoYXJlIG9mIHlvdXIgZmF0aGVyJ3Mgd2lzZSBkaXNjZXJubWVudCwgSSBsb29rIHdpdGggaG9wZSB1cG9uIHlvdXIgdW5kZXJ0YWtpbmcuIEJ1dCBtaW5kIHlvdSBuZXZlciBtYWtlIGNvbW1vbiBjYXVzZSB3aXRoIGFueSBvZiB0aG9zZSBmb29saXNoIHN1aXRvcnMsIGZvciB0aGV5IGhhdmUgbmVpdGhlciBzZW5zZSBub3IgdmlydHVlLCBhbmQgZ2l2ZSBubyB0aG91Z2h0IHRvIGRlYXRoIGFuZCB0byB0aGUgZG9vbSB0aGF0IHdpbGwgc2hvcnRseSBmYWxsIG9uIG9uZSBhbmQgYWxsIG9mIHRoZW0sIHNvIHRoYXQgdGhleSBzaGFsbCBwZXJpc2ggb24gdGhlIHNhbWUgZGF5LiBBcyBmb3IgeW91ciB2b3lhZ2UsIGl0IHNoYWxsIG5vdCBiZSBsb25nIGRlbGF5ZWQ7IHlvdXIgZmF0aGVyIHdhcyBzdWNoIGFuIG9sZCBmcmllbmQgb2YgbWluZSB0aGF0IEkgd2lsbCBmaW5kIHlvdSBhIHNoaXAsIGFuZCB3aWxsIGNvbWUgd2l0aCB5b3UgbXlzZWxmLiBOb3csIGhvd2V2ZXIsIHJldHVybiBob21lLCBhbmQgZ28gYWJvdXQgYW1vbmcgdGhlIHN1aXRvcnM7IGJlZ2luIGdldHRpbmcgcHJvdmlzaW9ucyByZWFkeSBmb3IgeW91ciB2b3lhZ2U7IHNlZSBldmVyeXRoaW5nIHdlbGwgc3Rvd2VkLCB0aGUgd2luZSBpbiBqYXJzLCBhbmQgdGhlIGJhcmxleSBtZWFsLCB3aGljaCBpcyB0aGUgc3RhZmYgb2YgbGlmZSwgaW4gbGVhdGhlcm4gYmFncywgd2hpbGUgSSBnbyByb3VuZCB0aGUgdG93biBhbmQgYmVhdCB1cCB2b2x1bnRlZXJzIGF0IG9uY2UuIFRoZXJlIGFyZSBtYW55IHNoaXBzIGluIEl0aGFjYSBib3RoIG9sZCBhbmQgbmV3OyBJIHdpbGwgcnVuIG15IGV5ZSBvdmVyIHRoZW0gZm9yIHlvdSBhbmQgd2lsbCBjaG9vc2UgdGhlIGJlc3Q7IHdlIHdpbGwgZ2V0IGhlciByZWFkeSBhbmQgd2lsbCBwdXQgb3V0IHRvIHNlYSB3aXRob3V0IGRlbGF5LiINCg0KVGh1cyBzcG9rZSBNaW5lcnZhIGRhdWdodGVyIG9mIEpvdmUsIGFuZCBUZWxlbWFjaHVzIGxvc3Qgbm8gdGltZSBpbiBkb2luZyBhcyB0aGUgZ29kZGVzcyB0b2xkIGhpbS4gSGUgd2VudCBtb29kaWx5IGFuZCBmb3VuZCB0aGUgc3VpdG9ycyBmbGF5aW5nIGdvYXRzIGFuZCBzaW5nZWluZyBwaWdzIGluIHRoZSBvdXRlciBjb3VydC4gQW50aW5vdXMgY2FtZSB1cCB0byBoaW0gYXQgb25jZSBhbmQgbGF1Z2hlZCBhcyBoZSB0b29rIGhpcyBoYW5kIGluIGhpcyBvd24sIHNheWluZywgIlRlbGVtYWNodXMsIG15IGZpbmUgZmlyZS1lYXRlciwgYmVhciBubyBtb3JlIGlsbCBibG9vZCBuZWl0aGVyIGluIHdvcmQgbm9yIGRlZWQsIGJ1dCBlYXQgYW5kIGRyaW5rIHdpdGggdXMgYXMgeW91IHVzZWQgdG8gZG8uIFRoZSBBY2hhZWFucyB3aWxsIGZpbmQgeW91IGluIGV2ZXJ5dGhpbmctIGEgc2hpcCBhbmQgYSBwaWNrZWQgY3JldyB0byBib290LSBzbyB0aGF0IHlvdSBjYW4gc2V0IHNhaWwgZm9yIFB5bG9zIGF0IG9uY2UgYW5kIGdldCBuZXdzIG9mIHlvdXIgbm9ibGUgZmF0aGVyLiINCg0KIkFudGlub3VzLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgIkkgY2Fubm90IGVhdCBpbiBwZWFjZSwgbm9yIHRha2UgcGxlYXN1cmUgb2YgYW55IGtpbmQgd2l0aCBzdWNoIG1lbiBhcyB5b3UgYXJlLiBXYXMgaXQgbm90IGVub3VnaCB0aGF0IHlvdSBzaG91bGQgd2FzdGUgc28gbXVjaCBnb29kIHByb3BlcnR5IG9mIG1pbmUgd2hpbGUgSSB3YXMgeWV0IGEgYm95PyBOb3cgdGhhdCBJIGFtIG9sZGVyIGFuZCBrbm93IG1vcmUgYWJvdXQgaXQsIEkgYW0gYWxzbyBzdHJvbmdlciwgYW5kIHdoZXRoZXIgaGVyZSBhbW9uZyB0aGlzIHBlb3BsZSwgb3IgYnkgZ29pbmcgdG8gUHlsb3MsIEkgd2lsbCBkbyB5b3UgYWxsIHRoZSBoYXJtIEkgY2FuLiBJIHNoYWxsIGdvLCBhbmQgbXkgZ29pbmcgd2lsbCBub3QgYmUgaW4gdmFpbiB0aG91Z2gsIHRoYW5rcyB0byB5b3Ugc3VpdG9ycywgSSBoYXZlIG5laXRoZXIgc2hpcCBub3IgY3JldyBvZiBteSBvd24sIGFuZCBtdXN0IGJlIHBhc3NlbmdlciBub3QgY2FwdGFpbi4iDQoNCkFzIGhlIHNwb2tlIGhlIHNuYXRjaGVkIGhpcyBoYW5kIGZyb20gdGhhdCBvZiBBbnRpbm91cy4gTWVhbndoaWxlIHRoZSBvdGhlcnMgd2VudCBvbiBnZXR0aW5nIGRpbm5lciByZWFkeSBhYm91dCB0aGUgYnVpbGRpbmdzLCBqZWVyaW5nIGF0IGhpbSB0YXVudGluZ2x5IGFzIHRoZXkgZGlkIHNvLg0KDQoiVGVsZW1hY2h1cywiIHNhaWQgb25lIHlvdW5nc3RlciwgIm1lYW5zIHRvIGJlIHRoZSBkZWF0aCBvZiB1czsgSSBzdXBwb3NlIGhlIHRoaW5rcyBoZSBjYW4gYnJpbmcgZnJpZW5kcyB0byBoZWxwIGhpbSBmcm9tIFB5bG9zLCBvciBhZ2FpbiBmcm9tIFNwYXJ0YSwgd2hlcmUgaGUgc2VlbXMgYmVudCBvbiBnb2luZy4gT3Igd2lsbCBoZSBnbyB0byBFcGh5cmEgYXMgd2VsbCwgZm9yIHBvaXNvbiB0byBwdXQgaW4gb3VyIHdpbmUgYW5kIGtpbGwgdXM/Ig0KDQpBbm90aGVyIHNhaWQsICJQZXJoYXBzIGlmIFRlbGVtYWNodXMgZ29lcyBvbiBib2FyZCBzaGlwLCBoZSB3aWxsIGJlIGxpa2UgaGlzIGZhdGhlciBhbmQgcGVyaXNoIGZhciBmcm9tIGhpcyBmcmllbmRzLiBJbiB0aGlzIGNhc2Ugd2Ugc2hvdWxkIGhhdmUgcGxlbnR5IHRvIGRvLCBmb3Igd2UgY291bGQgdGhlbiBkaXZpZGUgdXAgaGlzIHByb3BlcnR5IGFtb25nc3QgdXM6IGFzIGZvciB0aGUgaG91c2Ugd2UgY2FuIGxldCBoaXMgbW90aGVyIGFuZCB0aGUgbWFuIHdobyBtYXJyaWVzIGhlciBoYXZlIHRoYXQuIg0KDQpUaGlzIHdhcyBob3cgdGhleSB0YWxrZWQuIEJ1dCBUZWxlbWFjaHVzIHdlbnQgZG93biBpbnRvIHRoZSBsb2Z0eSBhbmQgc3BhY2lvdXMgc3RvcmUtcm9vbSB3aGVyZSBoaXMgZmF0aGVyJ3MgdHJlYXN1cmUgb2YgZ29sZCBhbmQgYnJvbnplIGxheSBoZWFwZWQgdXAgdXBvbiB0aGUgZmxvb3IsIGFuZCB3aGVyZSB0aGUgbGluZW4gYW5kIHNwYXJlIGNsb3RoZXMgd2VyZSBrZXB0IGluIG9wZW4gY2hlc3RzLiBIZXJlLCB0b28sIHRoZXJlIHdhcyBhIHN0b3JlIG9mIGZyYWdyYW50IG9saXZlIG9pbCwgd2hpbGUgY2Fza3Mgb2Ygb2xkLCB3ZWxsLXJpcGVuZWQgd2luZSwgdW5ibGVuZGVkIGFuZCBmaXQgZm9yIGEgZ29kIHRvIGRyaW5rLCB3ZXJlIHJhbmdlZCBhZ2FpbnN0IHRoZSB3YWxsIGluIGNhc2UgVWx5c3NlcyBzaG91bGQgY29tZSBob21lIGFnYWluIGFmdGVyIGFsbC4gVGhlIHJvb20gd2FzIGNsb3NlZCB3aXRoIHdlbGwtbWFkZSBkb29ycyBvcGVuaW5nIGluIHRoZSBtaWRkbGU7IG1vcmVvdmVyIHRoZSBmYWl0aGZ1bCBvbGQgaG91c2Uta2VlcGVyIEV1cnljbGVhLCBkYXVnaHRlciBvZiBPcHMgdGhlIHNvbiBvZiBQaXNlbm9yLCB3YXMgaW4gY2hhcmdlIG9mIGV2ZXJ5dGhpbmcgYm90aCBuaWdodCBhbmQgZGF5LiBUZWxlbWFjaHVzIGNhbGxlZCBoZXIgdG8gdGhlIHN0b3JlLXJvb20gYW5kIHNhaWQ6DQoNCiJOdXJzZSwgZHJhdyBtZSBvZmYgc29tZSBvZiB0aGUgYmVzdCB3aW5lIHlvdSBoYXZlLCBhZnRlciB3aGF0IHlvdSBhcmUga2VlcGluZyBmb3IgbXkgZmF0aGVyJ3Mgb3duIGRyaW5raW5nLCBpbiBjYXNlLCBwb29yIG1hbiwgaGUgc2hvdWxkIGVzY2FwZSBkZWF0aCwgYW5kIGZpbmQgaGlzIHdheSBob21lIGFnYWluIGFmdGVyIGFsbC4gTGV0IG1lIGhhdmUgdHdlbHZlIGphcnMsIGFuZCBzZWUgdGhhdCB0aGV5IGFsbCBoYXZlIGxpZHM7IGFsc28gZmlsbCBtZSBzb21lIHdlbGwtc2V3biBsZWF0aGVybiBiYWdzIHdpdGggYmFybGV5IG1lYWwtIGFib3V0IHR3ZW50eSBtZWFzdXJlcyBpbiBhbGwuIEdldCB0aGVzZSB0aGluZ3MgcHV0IHRvZ2V0aGVyIGF0IG9uY2UsIGFuZCBzYXkgbm90aGluZyBhYm91dCBpdC4gSSB3aWxsIHRha2UgZXZlcnl0aGluZyBhd2F5IHRoaXMgZXZlbmluZyBhcyBzb29uIGFzIG15IG1vdGhlciBoYXMgZ29uZSB1cHN0YWlycyBmb3IgdGhlIG5pZ2h0LiBJIGFtIGdvaW5nIHRvIFNwYXJ0YSBhbmQgdG8gUHlsb3MgdG8gc2VlIGlmIEkgY2FuIGhlYXIgYW55dGhpbmcgYWJvdXQgdGhlIHJldHVybiBvZiBteSBkZWFyIGZhdGhlci4NCg0KV2hlbiBFdXJ5Y2xlYSBoZWFyZCB0aGlzIHNoZSBiZWdhbiB0byBjcnksIGFuZCBzcG9rZSBmb25kbHkgdG8gaGltLCBzYXlpbmcsICJNeSBkZWFyIGNoaWxkLCB3aGF0IGV2ZXIgY2FuIGhhdmUgcHV0IHN1Y2ggbm90aW9uIGFzIHRoYXQgaW50byB5b3VyIGhlYWQ/IFdoZXJlIGluIHRoZSB3b3JsZCBkbyB5b3Ugd2FudCB0byBnbyB0by0geW91LCB3aG8gYXJlIHRoZSBvbmUgaG9wZSBvZiB0aGUgaG91c2U/IFlvdXIgcG9vciBmYXRoZXIgaXMgZGVhZCBhbmQgZ29uZSBpbiBzb21lIGZvcmVpZ24gY291bnRyeSBub2JvZHkga25vd3Mgd2hlcmUsIGFuZCBhcyBzb29uIGFzIHlvdXIgYmFjayBpcyB0dXJuZWQgdGhlc2Ugd2lja2VkIG9uZXMgaGVyZSB3aWxsIGJlIHNjaGVtaW5nIHRvIGdldCB5b3UgcHV0IG91dCBvZiB0aGUgd2F5LCBhbmQgd2lsbCBzaGFyZSBhbGwgeW91ciBwb3NzZXNzaW9ucyBhbW9uZyB0aGVtc2VsdmVzOyBzdGF5IHdoZXJlIHlvdSBhcmUgYW1vbmcgeW91ciBvd24gcGVvcGxlLCBhbmQgZG8gbm90IGdvIHdhbmRlcmluZyBhbmQgd29ycnlpbmcgeW91ciBsaWZlIG91dCBvbiB0aGUgYmFycmVuIG9jZWFuLiINCg0KIkZlYXIgbm90LCBudXJzZSwiIGFuc3dlcmVkIFRlbGVtYWNodXMsICJteSBzY2hlbWUgaXMgbm90IHdpdGhvdXQgaGVhdmVuJ3Mgc2FuY3Rpb247IGJ1dCBzd2VhciB0aGF0IHlvdSB3aWxsIHNheSBub3RoaW5nIGFib3V0IGFsbCB0aGlzIHRvIG15IG1vdGhlciwgdGlsbCBJIGhhdmUgYmVlbiBhd2F5IHNvbWUgdGVuIG9yIHR3ZWx2ZSBkYXlzLCB1bmxlc3Mgc2hlIGhlYXJzIG9mIG15IGhhdmluZyBnb25lLCBhbmQgYXNrcyB5b3U7IGZvciBJIGRvIG5vdCB3YW50IGhlciB0byBzcG9pbCBoZXIgYmVhdXR5IGJ5IGNyeWluZy4iDQoNClRoZSBvbGQgd29tYW4gc3dvcmUgbW9zdCBzb2xlbW5seSB0aGF0IHNoZSB3b3VsZCBub3QsIGFuZCB3aGVuIHNoZSBoYWQgY29tcGxldGVkIGhlciBvYXRoLCBzaGUgYmVnYW4gZHJhd2luZyBvZmYgdGhlIHdpbmUgaW50byBqYXJzLCBhbmQgZ2V0dGluZyB0aGUgYmFybGV5IG1lYWwgaW50byB0aGUgYmFncywgd2hpbGUgVGVsZW1hY2h1cyB3ZW50IGJhY2sgdG8gdGhlIHN1aXRvcnMuDQoNClRoZW4gTWluZXJ2YSBiZXRob3VnaHQgaGVyIG9mIGFub3RoZXIgbWF0dGVyLiBTaGUgdG9vayBoaXMgc2hhcGUsIGFuZCB3ZW50IHJvdW5kIHRoZSB0b3duIHRvIGVhY2ggb25lIG9mIHRoZSBjcmV3LCB0ZWxsaW5nIHRoZW0gdG8gbWVldCBhdCB0aGUgc2hpcCBieSBzdW5kb3duLiBTaGUgd2VudCBhbHNvIHRvIE5vZW1vbiBzb24gb2YgUGhyb25pdXMsIGFuZCBhc2tlZCBoaW0gdG8gbGV0IGhlciBoYXZlIGEgc2hpcC0gd2hpY2ggaGUgd2FzIHZlcnkgcmVhZHkgdG8gZG8uIFdoZW4gdGhlIHN1biBoYWQgc2V0IGFuZCBkYXJrbmVzcyB3YXMgb3ZlciBhbGwgdGhlIGxhbmQsIHNoZSBnb3QgdGhlIHNoaXAgaW50byB0aGUgd2F0ZXIsIHB1dCBhbGwgdGhlIHRhY2tsZSBvbiBib2FyZCBoZXIgdGhhdCBzaGlwcyBnZW5lcmFsbHkgY2FycnksIGFuZCBzdGF0aW9uZWQgaGVyIGF0IHRoZSBlbmQgb2YgdGhlIGhhcmJvdXIuIFByZXNlbnRseSB0aGUgY3JldyBjYW1lIHVwLCBhbmQgdGhlIGdvZGRlc3Mgc3Bva2UgZW5jb3VyYWdpbmdseSB0byBlYWNoIG9mIHRoZW0uDQoNCkZ1cnRoZXJtb3JlIHNoZSB3ZW50IHRvIHRoZSBob3VzZSBvZiBVbHlzc2VzLCBhbmQgdGhyZXcgdGhlIHN1aXRvcnMgaW50byBhIGRlZXAgc2x1bWJlci4gU2hlIGNhdXNlZCB0aGVpciBkcmluayB0byBmdWRkbGUgdGhlbSwgYW5kIG1hZGUgdGhlbSBkcm9wIHRoZWlyIGN1cHMgZnJvbSB0aGVpciBoYW5kcywgc28gdGhhdCBpbnN0ZWFkIG9mIHNpdHRpbmcgb3ZlciB0aGVpciB3aW5lLCB0aGV5IHdlbnQgYmFjayBpbnRvIHRoZSB0b3duIHRvIHNsZWVwLCB3aXRoIHRoZWlyIGV5ZXMgaGVhdnkgYW5kIGZ1bGwgb2YgZHJvd3NpbmVzcy4gVGhlbiBzaGUgdG9vayB0aGUgZm9ybSBhbmQgdm9pY2Ugb2YgTWVudG9yLCBhbmQgY2FsbGVkIFRlbGVtYWNodXMgdG8gY29tZSBvdXRzaWRlLg0KDQoiVGVsZW1hY2h1cywiIHNhaWQgc2hlLCAidGhlIG1lbiBhcmUgb24gYm9hcmQgYW5kIGF0IHRoZWlyIG9hcnMsIHdhaXRpbmcgZm9yIHlvdSB0byBnaXZlIHlvdXIgb3JkZXJzLCBzbyBtYWtlIGhhc3RlIGFuZCBsZXQgdXMgYmUgb2ZmLiINCg0KT24gdGhpcyBzaGUgbGVkIHRoZSB3YXksIHdoaWxlIFRlbGVtYWNodXMgZm9sbG93ZWQgaW4gaGVyIHN0ZXBzLiBXaGVuIHRoZXkgZ290IHRvIHRoZSBzaGlwIHRoZXkgZm91bmQgdGhlIGNyZXcgd2FpdGluZyBieSB0aGUgd2F0ZXIgc2lkZSwgYW5kIFRlbGVtYWNodXMgc2FpZCwgIk5vdyBteSBtZW4sIGhlbHAgbWUgdG8gZ2V0IHRoZSBzdG9yZXMgb24gYm9hcmQ7IHRoZXkgYXJlIGFsbCBwdXQgdG9nZXRoZXIgaW4gdGhlIGNsb2lzdGVyLCBhbmQgbXkgbW90aGVyIGRvZXMgbm90IGtub3cgYW55dGhpbmcgYWJvdXQgaXQsIG5vciBhbnkgb2YgdGhlIG1haWQgc2VydmFudHMgZXhjZXB0IG9uZS4iDQoNCldpdGggdGhlc2Ugd29yZHMgaGUgbGVkIHRoZSB3YXkgYW5kIHRoZSBvdGhlcnMgZm9sbG93ZWQgYWZ0ZXIuIFdoZW4gdGhleSBoYWQgYnJvdWdodCB0aGUgdGhpbmdzIGFzIGhlIHRvbGQgdGhlbSwgVGVsZW1hY2h1cyB3ZW50IG9uIGJvYXJkLCBNaW5lcnZhIGdvaW5nIGJlZm9yZSBoaW0gYW5kIHRha2luZyBoZXIgc2VhdCBpbiB0aGUgc3Rlcm4gb2YgdGhlIHZlc3NlbCwgd2hpbGUgVGVsZW1hY2h1cyBzYXQgYmVzaWRlIGhlci4gVGhlbiB0aGUgbWVuIGxvb3NlZCB0aGUgaGF3c2VycyBhbmQgdG9vayB0aGVpciBwbGFjZXMgb24gdGhlIGJlbmNoZXMuIE1pbmVydmEgc2VudCB0aGVtIGEgZmFpciB3aW5kIGZyb20gdGhlIFdlc3QsIHRoYXQgd2hpc3RsZWQgb3ZlciB0aGUgZGVlcCBibHVlIHdhdmVzIHdoZXJlb24gVGVsZW1hY2h1cyB0b2xkIHRoZW0gdG8gY2F0Y2ggaG9sZCBvZiB0aGUgcm9wZXMgYW5kIGhvaXN0IHNhaWwsIGFuZCB0aGV5IGRpZCBhcyBoZSB0b2xkIHRoZW0uIFRoZXkgc2V0IHRoZSBtYXN0IGluIGl0cyBzb2NrZXQgaW4gdGhlIGNyb3NzIHBsYW5rLCByYWlzZWQgaXQsIGFuZCBtYWRlIGl0IGZhc3Qgd2l0aCB0aGUgZm9yZXN0YXlzOyB0aGVuIHRoZXkgaG9pc3RlZCB0aGVpciB3aGl0ZSBzYWlscyBhbG9mdCB3aXRoIHJvcGVzIG9mIHR3aXN0ZWQgb3ggaGlkZS4gQXMgdGhlIHNhaWwgYmVsbGllZCBvdXQgd2l0aCB0aGUgd2luZCwgdGhlIHNoaXAgZmxldyB0aHJvdWdoIHRoZSBkZWVwIGJsdWUgd2F0ZXIsIGFuZCB0aGUgZm9hbSBoaXNzZWQgYWdhaW5zdCBoZXIgYm93cyBhcyBzaGUgc3BlZCBvbndhcmQuIFRoZW4gdGhleSBtYWRlIGFsbCBmYXN0IHRocm91Z2hvdXQgdGhlIHNoaXAsIGZpbGxlZCB0aGUgbWl4aW5nLWJvd2xzIHRvIHRoZSBicmltLCBhbmQgbWFkZSBkcmluayBvZmZlcmluZ3MgdG8gdGhlIGltbW9ydGFsIGdvZHMgdGhhdCBhcmUgZnJvbSBldmVybGFzdGluZywgYnV0IG1vcmUgcGFydGljdWxhcmx5IHRvIHRoZSBncmV5LWV5ZWQgZGF1Z2h0ZXIgb2YgSm92ZS4NCg0KVGh1cywgdGhlbiwgdGhlIHNoaXAgc3BlZCBvbiBoZXIgd2F5IHRocm91Z2ggdGhlIHdhdGNoZXMgb2YgdGhlIG5pZ2h0IGZyb20gZGFyayB0aWxsIGRhd24uDQoNCkJvb2sgSUlJDQoNCkJ1dCBhcyB0aGUgc3VuIHdhcyByaXNpbmcgZnJvbSB0aGUgZmFpciBzZWEgaW50byB0aGUgZmlybWFtZW50IG9mIGhlYXZlbiB0byBzaGVkIGxpZ2h0IG9uIG1vcnRhbHMgYW5kIGltbW9ydGFscywgdGhleSByZWFjaGVkIFB5bG9zIHRoZSBjaXR5IG9mIE5lbGV1cy4gTm93IHRoZSBwZW9wbGUgb2YgUHlsb3Mgd2VyZSBnYXRoZXJlZCBvbiB0aGUgc2VhIHNob3JlIHRvIG9mZmVyIHNhY3JpZmljZSBvZiBibGFjayBidWxscyB0byBOZXB0dW5lIGxvcmQgb2YgdGhlIEVhcnRocXVha2UuIFRoZXJlIHdlcmUgbmluZSBndWlsZHMgd2l0aCBmaXZlIGh1bmRyZWQgbWVuIGluIGVhY2gsIGFuZCB0aGVyZSB3ZXJlIG5pbmUgYnVsbHMgdG8gZWFjaCBndWlsZC4gQXMgdGhleSB3ZXJlIGVhdGluZyB0aGUgaW53YXJkIG1lYXRzIGFuZCBidXJuaW5nIHRoZSB0aGlnaCBib25lcyBbb24gdGhlIGVtYmVyc10gaW4gdGhlIG5hbWUgb2YgTmVwdHVuZSwgVGVsZW1hY2h1cyBhbmQgaGlzIGNyZXcgYXJyaXZlZCwgZnVybGVkIHRoZWlyIHNhaWxzLCBicm91Z2h0IHRoZWlyIHNoaXAgdG8gYW5jaG9yLCBhbmQgd2VudCBhc2hvcmUuDQoNCk1pbmVydmEgbGVkIHRoZSB3YXkgYW5kIFRlbGVtYWNodXMgZm9sbG93ZWQgaGVyLiBQcmVzZW50bHkgc2hlIHNhaWQsICJUZWxlbWFjaHVzLCB5b3UgbXVzdCBub3QgYmUgaW4gdGhlIGxlYXN0IHNoeSBvciBuZXJ2b3VzOyB5b3UgaGF2ZSB0YWtlbiB0aGlzIHZveWFnZSB0byB0cnkgYW5kIGZpbmQgb3V0IHdoZXJlIHlvdXIgZmF0aGVyIGlzIGJ1cmllZCBhbmQgaG93IGhlIGNhbWUgYnkgaGlzIGVuZDsgc28gZ28gc3RyYWlnaHQgdXAgdG8gTmVzdG9yIHRoYXQgd2UgbWF5IHNlZSB3aGF0IGhlIGhhcyBnb3QgdG8gdGVsbCB1cy4gQmVnIG9mIGhpbSB0byBzcGVhayB0aGUgdHJ1dGgsIGFuZCBoZSB3aWxsIHRlbGwgbm8gbGllcywgZm9yIGhlIGlzIGFuIGV4Y2VsbGVudCBwZXJzb24uIg0KDQoiQnV0IGhvdywgTWVudG9yLCIgcmVwbGllZCBUZWxlbWFjaHVzLCAiZGFyZSBJIGdvIHVwIHRvIE5lc3RvciwgYW5kIGhvdyBhbSBJIHRvIGFkZHJlc3MgaGltPyBJIGhhdmUgbmV2ZXIgeWV0IGJlZW4gdXNlZCB0byBob2xkaW5nIGxvbmcgY29udmVyc2F0aW9ucyB3aXRoIHBlb3BsZSwgYW5kIGFtIGFzaGFtZWQgdG8gYmVnaW4gcXVlc3Rpb25pbmcgb25lIHdobyBpcyBzbyBtdWNoIG9sZGVyIHRoYW4gbXlzZWxmLiINCg0KIlNvbWUgdGhpbmdzLCBUZWxlbWFjaHVzLCIgYW5zd2VyZWQgTWluZXJ2YSwgIndpbGwgYmUgc3VnZ2VzdGVkIHRvIHlvdSBieSB5b3VyIG93biBpbnN0aW5jdCwgYW5kIGhlYXZlbiB3aWxsIHByb21wdCB5b3UgZnVydGhlcjsgZm9yIEkgYW0gYXNzdXJlZCB0aGF0IHRoZSBnb2RzIGhhdmUgYmVlbiB3aXRoIHlvdSBmcm9tIHRoZSB0aW1lIG9mIHlvdXIgYmlydGggdW50aWwgbm93LiINCg0KU2hlIHRoZW4gd2VudCBxdWlja2x5IG9uLCBhbmQgVGVsZW1hY2h1cyBmb2xsb3dlZCBpbiBoZXIgc3RlcHMgdGlsbCB0aGV5IHJlYWNoZWQgdGhlIHBsYWNlIHdoZXJlIHRoZSBndWlsZHMgb2YgdGhlIFB5bGlhbiBwZW9wbGUgd2VyZSBhc3NlbWJsZWQuIFRoZXJlIHRoZXkgZm91bmQgTmVzdG9yIHNpdHRpbmcgd2l0aCBoaXMgc29ucywgd2hpbGUgaGlzIGNvbXBhbnkgcm91bmQgaGltIHdlcmUgYnVzeSBnZXR0aW5nIGRpbm5lciByZWFkeSwgYW5kIHB1dHRpbmcgcGllY2VzIG9mIG1lYXQgb24gdG8gdGhlIHNwaXRzIHdoaWxlIG90aGVyIHBpZWNlcyB3ZXJlIGNvb2tpbmcuIFdoZW4gdGhleSBzYXcgdGhlIHN0cmFuZ2VycyB0aGV5IGNyb3dkZWQgcm91bmQgdGhlbSwgdG9vayB0aGVtIGJ5IHRoZSBoYW5kIGFuZCBiYWRlIHRoZW0gdGFrZSB0aGVpciBwbGFjZXMuIE5lc3RvcidzIHNvbiBQaXNpc3RyYXR1cyBhdCBvbmNlIG9mZmVyZWQgaGlzIGhhbmQgdG8gZWFjaCBvZiB0aGVtLCBhbmQgc2VhdGVkIHRoZW0gb24gc29tZSBzb2Z0IHNoZWVwc2tpbnMgdGhhdCB3ZXJlIGx5aW5nIG9uIHRoZSBzYW5kcyBuZWFyIGhpcyBmYXRoZXIgYW5kIGhpcyBicm90aGVyIFRocmFzeW1lZGVzLiBUaGVuIGhlIGdhdmUgdGhlbSB0aGVpciBwb3J0aW9ucyBvZiB0aGUgaW53YXJkIG1lYXRzIGFuZCBwb3VyZWQgd2luZSBmb3IgdGhlbSBpbnRvIGEgZ29sZGVuIGN1cCwgaGFuZGluZyBpdCB0byBNaW5lcnZhIGZpcnN0LCBhbmQgc2FsdXRpbmcgaGVyIGF0IHRoZSBzYW1lIHRpbWUuDQoNCiJPZmZlciBhIHByYXllciwgc2lyLCIgc2FpZCBoZSwgInRvIEtpbmcgTmVwdHVuZSwgZm9yIGl0IGlzIGhpcyBmZWFzdCB0aGF0IHlvdSBhcmUgam9pbmluZzsgd2hlbiB5b3UgaGF2ZSBkdWx5IHByYXllZCBhbmQgbWFkZSB5b3VyIGRyaW5rLW9mZmVyaW5nLCBwYXNzIHRoZSBjdXAgdG8geW91ciBmcmllbmQgdGhhdCBoZSBtYXkgZG8gc28gYWxzby4gSSBkb3VidCBub3QgdGhhdCBoZSB0b28gbGlmdHMgaGlzIGhhbmRzIGluIHByYXllciwgZm9yIG1hbiBjYW5ub3QgbGl2ZSB3aXRob3V0IEdvZCBpbiB0aGUgd29ybGQuIFN0aWxsIGhlIGlzIHlvdW5nZXIgdGhhbiB5b3UgYXJlLCBhbmQgaXMgbXVjaCBvZiBhbiBhZ2Ugd2l0aCBteXNlbGYsIHNvIEkgaGUgaGFuZGVkIEkgd2lsbCBnaXZlIHlvdSB0aGUgcHJlY2VkZW5jZS4iDQoNCkFzIGhlIHNwb2tlIGhlIGhhbmRlZCBoZXIgdGhlIGN1cC4gTWluZXJ2YSB0aG91Z2h0IGl0IHZlcnkgcmlnaHQgYW5kIHByb3BlciBvZiBoaW0gdG8gaGF2ZSBnaXZlbiBpdCB0byBoZXJzZWxmIGZpcnN0OyBzaGUgYWNjb3JkaW5nbHkgYmVnYW4gcHJheWluZyBoZWFydGlseSB0byBOZXB0dW5lLiAiTyB0aG91LCIgc2hlIGNyaWVkLCAidGhhdCBlbmNpcmNsZXN0IHRoZSBlYXJ0aCwgdm91Y2hzYWZlIHRvIGdyYW50IHRoZSBwcmF5ZXJzIG9mIHRoeSBzZXJ2YW50cyB0aGF0IGNhbGwgdXBvbiB0aGVlLiBNb3JlIGVzcGVjaWFsbHkgd2UgcHJheSB0aGVlIHNlbmQgZG93biB0aHkgZ3JhY2Ugb24gTmVzdG9yIGFuZCBvbiBoaXMgc29uczsgdGhlcmVhZnRlciBhbHNvIG1ha2UgdGhlIHJlc3Qgb2YgdGhlIFB5bGlhbiBwZW9wbGUgc29tZSBoYW5kc29tZSByZXR1cm4gZm9yIHRoZSBnb29kbHkgaGVjYXRvbWIgdGhleSBhcmUgb2ZmZXJpbmcgeW91LiBMYXN0bHksIGdyYW50IFRlbGVtYWNodXMgYW5kIG15c2VsZiBhIGhhcHB5IGlzc3VlLCBpbiByZXNwZWN0IG9mIHRoZSBtYXR0ZXIgdGhhdCBoYXMgYnJvdWdodCB1cyBpbiBvdXIgdG8gUHlsb3MuIg0KDQpXaGVuIHNoZSBoYWQgdGh1cyBtYWRlIGFuIGVuZCBvZiBwcmF5aW5nLCBzaGUgaGFuZGVkIHRoZSBjdXAgdG8gVGVsZW1hY2h1cyBhbmQgaGUgcHJheWVkIGxpa2V3aXNlLiBCeSBhbmQgYnksIHdoZW4gdGhlIG91dGVyIG1lYXRzIHdlcmUgcm9hc3RlZCBhbmQgaGFkIGJlZW4gdGFrZW4gb2ZmIHRoZSBzcGl0cywgdGhlIGNhcnZlcnMgZ2F2ZSBldmVyeSBtYW4gaGlzIHBvcnRpb24gYW5kIHRoZXkgYWxsIG1hZGUgYW4gZXhjZWxsZW50IGRpbm5lci4gQXMgc29vbiBhcyB0aGV5IGhhZCBoYWQgZW5vdWdoIHRvIGVhdCBhbmQgZHJpbmssIE5lc3Rvciwga25pZ2h0IG9mIEdlcmVuZSwgYmVnYW4gdG8gc3BlYWsuDQoNCiJOb3csIiBzYWlkIGhlLCAidGhhdCBvdXIgZ3Vlc3RzIGhhdmUgZG9uZSB0aGVpciBkaW5uZXIsIGl0IHdpbGwgYmUgYmVzdCB0byBhc2sgdGhlbSB3aG8gdGhleSBhcmUuIFdobywgdGhlbiwgc2lyIHN0cmFuZ2VycywgYXJlIHlvdSwgYW5kIGZyb20gd2hhdCBwb3J0IGhhdmUgeW91IHNhaWxlZD8gQXJlIHlvdSB0cmFkZXJzPyBvciBkbyB5b3Ugc2FpbCB0aGUgc2VhcyBhcyByb3ZlcnMgd2l0aCB5b3VyIGhhbmQgYWdhaW5zdCBldmVyeSBtYW4sIGFuZCBldmVyeSBtYW4ncyBoYW5kIGFnYWluc3QgeW91PyINCg0KVGVsZW1hY2h1cyBhbnN3ZXJlZCBib2xkbHksIGZvciBNaW5lcnZhIGhhZCBnaXZlbiBoaW0gY291cmFnZSB0byBhc2sgYWJvdXQgaGlzIGZhdGhlciBhbmQgZ2V0IGhpbXNlbGYgYSBnb29kIG5hbWUuDQoNCiJOZXN0b3IsIiBzYWlkIGhlLCAic29uIG9mIE5lbGV1cywgaG9ub3VyIHRvIHRoZSBBY2hhZWFuIG5hbWUsIHlvdSBhc2sgd2hlbmNlIHdlIGNvbWUsIGFuZCBJIHdpbGwgdGVsbCB5b3UuIFdlIGNvbWUgZnJvbSBJdGhhY2EgdW5kZXIgTmVyaXR1bSwgYW5kIHRoZSBtYXR0ZXIgYWJvdXQgd2hpY2ggSSB3b3VsZCBzcGVhayBpcyBvZiBwcml2YXRlIG5vdCBwdWJsaWMgaW1wb3J0LiBJIHNlZWsgbmV3cyBvZiBteSB1bmhhcHB5IGZhdGhlciBVbHlzc2VzLCB3aG8gaXMgc2FpZCB0byBoYXZlIHNhY2tlZCB0aGUgdG93biBvZiBUcm95IGluIGNvbXBhbnkgd2l0aCB5b3Vyc2VsZi4gV2Uga25vdyB3aGF0IGZhdGUgYmVmZWxsIGVhY2ggb25lIG9mIHRoZSBvdGhlciBoZXJvZXMgd2hvIGZvdWdodCBhdCBUcm95LCBidXQgYXMgcmVnYXJkcyBVbHlzc2VzIGhlYXZlbiBoYXMgaGlkZGVuIGZyb20gdXMgdGhlIGtub3dsZWRnZSBldmVuIHRoYXQgaGUgaXMgZGVhZCBhdCBhbGwsIGZvciBubyBvbmUgY2FuIGNlcnRpZnkgdXMgaW4gd2hhdCBwbGFjZSBoZSBwZXJpc2hlZCwgbm9yIHNheSB3aGV0aGVyIGhlIGZlbGwgaW4gYmF0dGxlIG9uIHRoZSBtYWlubGFuZCwgb3Igd2FzIGxvc3QgYXQgc2VhIGFtaWQgdGhlIHdhdmVzIG9mIEFtcGhpdHJpdGUuIFRoZXJlZm9yZSBJIGFtIHN1cHBsaWFudCBhdCB5b3VyIGtuZWVzLCBpZiBoYXBseSB5b3UgbWF5IGJlIHBsZWFzZWQgdG8gdGVsbCBtZSBvZiBoaXMgbWVsYW5jaG9seSBlbmQsIHdoZXRoZXIgeW91IHNhdyBpdCB3aXRoIHlvdXIgb3duIGV5ZXMsIG9yIGhlYXJkIGl0IGZyb20gc29tZSBvdGhlciB0cmF2ZWxsZXIsIGZvciBoZSB3YXMgYSBtYW4gYm9ybiB0byB0cm91YmxlLiBEbyBub3Qgc29mdGVuIHRoaW5ncyBvdXQgb2YgYW55IHBpdHkgZm9yIG1lLCBidXQgdGVsbCBtZSBpbiBhbGwgcGxhaW5uZXNzIGV4YWN0bHkgd2hhdCB5b3Ugc2F3LiBJZiBteSBicmF2ZSBmYXRoZXIgVWx5c3NlcyBldmVyIGRpZCB5b3UgbG95YWwgc2VydmljZSwgZWl0aGVyIGJ5IHdvcmQgb3IgZGVlZCwgd2hlbiB5b3UgQWNoYWVhbnMgd2VyZSBoYXJhc3NlZCBhbW9uZyB0aGUgVHJvamFucywgYmVhciBpdCBpbiBtaW5kIG5vdyBhcyBpbiBteSBmYXZvdXIgYW5kIHRlbGwgbWUgdHJ1bHkgYWxsLiINCg0KIk15IGZyaWVuZCwiIGFuc3dlcmVkIE5lc3RvciwgInlvdSByZWNhbGwgYSB0aW1lIG9mIG11Y2ggc29ycm93IHRvIG15IG1pbmQsIGZvciB0aGUgYnJhdmUgQWNoYWVhbnMgc3VmZmVyZWQgbXVjaCBib3RoIGF0IHNlYSwgd2hpbGUgcHJpdmF0ZWVyaW5nIHVuZGVyIEFjaGlsbGVzLCBhbmQgd2hlbiBmaWdodGluZyBiZWZvcmUgdGhlIGdyZWF0IGNpdHkgb2Yga2luZyBQcmlhbS4gT3VyIGJlc3QgbWVuIGFsbCBvZiB0aGVtIGZlbGwgdGhlcmUtIEFqYXgsIEFjaGlsbGVzLCBQYXRyb2NsdXMgcGVlciBvZiBnb2RzIGluIGNvdW5zZWwsIGFuZCBteSBvd24gZGVhciBzb24gQW50aWxvY2h1cywgYSBtYW4gc2luZ3VsYXJseSBmbGVldCBvZiBmb290IGFuZCBpbiBmaWdodCB2YWxpYW50LiBCdXQgd2Ugc3VmZmVyZWQgbXVjaCBtb3JlIHRoYW4gdGhpczsgd2hhdCBtb3J0YWwgdG9uZ3VlIGluZGVlZCBjb3VsZCB0ZWxsIHRoZSB3aG9sZSBzdG9yeT8gVGhvdWdoIHlvdSB3ZXJlIHRvIHN0YXkgaGVyZSBhbmQgcXVlc3Rpb24gbWUgZm9yIGZpdmUgeWVhcnMsIG9yIGV2ZW4gc2l4LCBJIGNvdWxkIG5vdCB0ZWxsIHlvdSBhbGwgdGhhdCB0aGUgQWNoYWVhbnMgc3VmZmVyZWQsIGFuZCB5b3Ugd291bGQgdHVybiBob21ld2FyZCB3ZWFyeSBvZiBteSB0YWxlIGJlZm9yZSBpdCBlbmRlZC4gTmluZSBsb25nIHllYXJzIGRpZCB3ZSB0cnkgZXZlcnkga2luZCBvZiBzdHJhdGFnZW0sIGJ1dCB0aGUgaGFuZCBvZiBoZWF2ZW4gd2FzIGFnYWluc3QgdXM7IGR1cmluZyBhbGwgdGhpcyB0aW1lIHRoZXJlIHdhcyBubyBvbmUgd2hvIGNvdWxkIGNvbXBhcmUgd2l0aCB5b3VyIGZhdGhlciBpbiBzdWJ0bGV0eS0gaWYgaW5kZWVkIHlvdSBhcmUgaGlzIHNvbi0gSSBjYW4gaGFyZGx5IGJlbGlldmUgbXkgZXllcy0gYW5kIHlvdSB0YWxrIGp1c3QgbGlrZSBoaW0gdG9vLSBubyBvbmUgd291bGQgc2F5IHRoYXQgcGVvcGxlIG9mIHN1Y2ggZGlmZmVyZW50IGFnZXMgY291bGQgc3BlYWsgc28gbXVjaCBhbGlrZS4gSGUgYW5kIEkgbmV2ZXIgaGFkIGFueSBraW5kIG9mIGRpZmZlcmVuY2UgZnJvbSBmaXJzdCB0byBsYXN0IG5laXRoZXIgaW4gY2FtcCBub3IgY291bmNpbCwgYnV0IGluIHNpbmdsZW5lc3Mgb2YgaGVhcnQgYW5kIHB1cnBvc2Ugd2UgYWR2aXNlZCB0aGUgQXJnaXZlcyBob3cgYWxsIG1pZ2h0IGJlIG9yZGVyZWQgZm9yIHRoZSBiZXN0Lg0KDQoiV2hlbiBob3dldmVyLCB3ZSBoYWQgc2Fja2VkIHRoZSBjaXR5IG9mIFByaWFtLCBhbmQgd2VyZSBzZXR0aW5nIHNhaWwgaW4gb3VyIHNoaXBzIGFzIGhlYXZlbiBoYWQgZGlzcGVyc2VkIHVzLCB0aGVuIEpvdmUgc2F3IGZpdCB0byB2ZXggdGhlIEFyZ2l2ZXMgb24gdGhlaXIgaG9tZXdhcmQgdm95YWdlOyBmb3IgdGhleSBoYWQgTm90IGFsbCBiZWVuIGVpdGhlciB3aXNlIG9yIHVuZGVyc3RhbmRpbmcsIGFuZCBoZW5jZSBtYW55IGNhbWUgdG8gYSBiYWQgZW5kIHRocm91Z2ggdGhlIGRpc3BsZWFzdXJlIG9mIEpvdmUncyBkYXVnaHRlciBNaW5lcnZhLCB3aG8gYnJvdWdodCBhYm91dCBhIHF1YXJyZWwgYmV0d2VlbiB0aGUgdHdvIHNvbnMgb2YgQXRyZXVzLg0KDQoiVGhlIHNvbnMgb2YgQXRyZXVzIGNhbGxlZCBhIG1lZXRpbmcgd2hpY2ggd2FzIG5vdCBhcyBpdCBzaG91bGQgYmUsIGZvciBpdCB3YXMgc3Vuc2V0IGFuZCB0aGUgQWNoYWVhbnMgd2VyZSBoZWF2eSB3aXRoIHdpbmUuIFdoZW4gdGhleSBleHBsYWluZWQgd2h5IHRoZXkgaGFkIGNhbGxlZC0gdGhlIHBlb3BsZSB0b2dldGhlciwgaXQgc2VlbWVkIHRoYXQgTWVuZWxhdXMgd2FzIGZvciBzYWlsaW5nIGhvbWV3YXJkIGF0IG9uY2UsIGFuZCB0aGlzIGRpc3BsZWFzZWQgQWdhbWVtbm9uLCB3aG8gdGhvdWdodCB0aGF0IHdlIHNob3VsZCB3YWl0IHRpbGwgd2UgaGFkIG9mZmVyZWQgaGVjYXRvbWJzIHRvIGFwcGVhc2UgdGhlIGFuZ2VyIG9mIE1pbmVydmEuIEZvb2wgdGhhdCBoZSB3YXMsIGhlIG1pZ2h0IGhhdmUga25vd24gdGhhdCBoZSB3b3VsZCBub3QgcHJldmFpbCB3aXRoIGhlciwgZm9yIHdoZW4gdGhlIGdvZHMgaGF2ZSBtYWRlIHVwIHRoZWlyIG1pbmRzIHRoZXkgZG8gbm90IGNoYW5nZSB0aGVtIGxpZ2h0bHkuIFNvIHRoZSB0d28gc3Rvb2QgYmFuZHlpbmcgaGFyZCB3b3Jkcywgd2hlcmVvbiB0aGUgQWNoYWVhbnMgc3ByYW5nIHRvIHRoZWlyIGZlZXQgd2l0aCBhIGNyeSB0aGF0IHJlbnQgdGhlIGFpciwgYW5kIHdlcmUgb2YgdHdvIG1pbmRzIGFzIHRvIHdoYXQgdGhleSBzaG91bGQgZG8uDQoNCiJUaGF0IG5pZ2h0IHdlIHJlc3RlZCBhbmQgbnVyc2VkIG91ciBhbmdlciwgZm9yIEpvdmUgd2FzIGhhdGNoaW5nIG1pc2NoaWVmIGFnYWluc3QgdXMuIEJ1dCBpbiB0aGUgbW9ybmluZyBzb21lIG9mIHVzIGRyZXcgb3VyIHNoaXBzIGludG8gdGhlIHdhdGVyIGFuZCBwdXQgb3VyIGdvb2RzIHdpdGggb3VyIHdvbWVuIG9uIGJvYXJkLCB3aGlsZSB0aGUgcmVzdCwgYWJvdXQgaGFsZiBpbiBudW1iZXIsIHN0YXllZCBiZWhpbmQgd2l0aCBBZ2FtZW1ub24uIFdlLSB0aGUgb3RoZXIgaGFsZi0gZW1iYXJrZWQgYW5kIHNhaWxlZDsgYW5kIHRoZSBzaGlwcyB3ZW50IHdlbGwsIGZvciBoZWF2ZW4gaGFkIHNtb290aGVkIHRoZSBzZWEuIFdoZW4gd2UgcmVhY2hlZCBUZW5lZG9zIHdlIG9mZmVyZWQgc2FjcmlmaWNlcyB0byB0aGUgZ29kcywgZm9yIHdlIHdlcmUgbG9uZ2luZyB0byBnZXQgaG9tZTsgY3J1ZWwgSm92ZSwgaG93ZXZlciwgZGlkIG5vdCB5ZXQgbWVhbiB0aGF0IHdlIHNob3VsZCBkbyBzbywgYW5kIHJhaXNlZCBhIHNlY29uZCBxdWFycmVsIGluIHRoZSBjb3Vyc2Ugb2Ygd2hpY2ggc29tZSBhbW9uZyB1cyB0dXJuZWQgdGhlaXIgc2hpcHMgYmFjayBhZ2FpbiwgYW5kIHNhaWxlZCBhd2F5IHVuZGVyIFVseXNzZXMgdG8gbWFrZSB0aGVpciBwZWFjZSB3aXRoIEFnYW1lbW5vbjsgYnV0IEksIGFuZCBhbGwgdGhlIHNoaXBzIHRoYXQgd2VyZSB3aXRoIG1lIHByZXNzZWQgZm9yd2FyZCwgZm9yIEkgc2F3IHRoYXQgbWlzY2hpZWYgd2FzIGJyZXdpbmcuIFRoZSBzb24gb2YgVHlkZXVzIHdlbnQgb24gYWxzbyB3aXRoIG1lLCBhbmQgaGlzIGNyZXdzIHdpdGggaGltLiBMYXRlciBvbiBNZW5lbGF1cyBqb2luZWQgdXMgYXQgTGVzYm9zLCBhbmQgZm91bmQgdXMgbWFraW5nIHVwIG91ciBtaW5kcyBhYm91dCBvdXIgY291cnNlLSBmb3Igd2UgZGlkIG5vdCBrbm93IHdoZXRoZXIgdG8gZ28gb3V0c2lkZSBDaGlvcyBieSB0aGUgaXNsYW5kIG9mIFBzeXJhLCBrZWVwaW5nIHRoaXMgdG8gb3VyIGxlZnQsIG9yIGluc2lkZSBDaGlvcywgb3ZlciBhZ2FpbnN0IHRoZSBzdG9ybXkgaGVhZGxhbmQgb2YgTWltYXMuIFNvIHdlIGFza2VkIGhlYXZlbiBmb3IgYSBzaWduLCBhbmQgd2VyZSBzaG93biBvbmUgdG8gdGhlIGVmZmVjdCB0aGF0IHdlIHNob3VsZCBiZSBzb29uZXN0IG91dCBvZiBkYW5nZXIgaWYgd2UgaGVhZGVkIG91ciBzaGlwcyBhY3Jvc3MgdGhlIG9wZW4gc2VhIHRvIEV1Ym9lYS4gVGhpcyB3ZSB0aGVyZWZvcmUgZGlkLCBhbmQgYSBmYWlyIHdpbmQgc3ByYW5nIHVwIHdoaWNoIGdhdmUgdXMgYSBxdWljayBwYXNzYWdlIGR1cmluZyB0aGUgbmlnaHQgdG8gR2VyYWVzdHVzLCB3aGVyZSB3ZSBvZmZlcmVkIG1hbnkgc2FjcmlmaWNlcyB0byBOZXB0dW5lIGZvciBoYXZpbmcgaGVscGVkIHVzIHNvIGZhciBvbiBvdXIgd2F5LiBGb3VyIGRheXMgbGF0ZXIgRGlvbWVkIGFuZCBoaXMgbWVuIHN0YXRpb25lZCB0aGVpciBzaGlwcyBpbiBBcmdvcywgYnV0IEkgaGVsZCBvbiBmb3IgUHlsb3MsIGFuZCB0aGUgd2luZCBuZXZlciBmZWxsIGxpZ2h0IGZyb20gdGhlIGRheSB3aGVuIGhlYXZlbiBmaXJzdCBtYWRlIGl0IGZhaXIgZm9yIG1lLg0KDQoiVGhlcmVmb3JlLCBteSBkZWFyIHlvdW5nIGZyaWVuZCwgSSByZXR1cm5lZCB3aXRob3V0IGhlYXJpbmcgYW55dGhpbmcgYWJvdXQgdGhlIG90aGVycy4gSSBrbm93IG5laXRoZXIgd2hvIGdvdCBob21lIHNhZmVseSBub3Igd2hvIHdlcmUgbG9zdCBidXQsIGFzIGluIGR1dHkgYm91bmQsIEkgd2lsbCBnaXZlIHlvdSB3aXRob3V0IHJlc2VydmUgdGhlIHJlcG9ydHMgdGhhdCBoYXZlIHJlYWNoZWQgbWUgc2luY2UgSSBoYXZlIGJlZW4gaGVyZSBpbiBteSBvd24gaG91c2UuIFRoZXkgc2F5IHRoZSBNeXJtaWRvbnMgcmV0dXJuZWQgaG9tZSBzYWZlbHkgdW5kZXIgQWNoaWxsZXMnIHNvbiBOZW9wdG9sZW11czsgc28gYWxzbyBkaWQgdGhlIHZhbGlhbnQgc29uIG9mIFBvaWFzLCBQaGlsb2N0ZXRlcy4gSWRvbWVuZXVzLCBhZ2FpbiwgbG9zdCBubyBtZW4gYXQgc2VhLCBhbmQgYWxsIGhpcyBmb2xsb3dlcnMgd2hvIGVzY2FwZWQgZGVhdGggaW4gdGhlIGZpZWxkIGdvdCBzYWZlIGhvbWUgd2l0aCBoaW0gdG8gQ3JldGUuIE5vIG1hdHRlciBob3cgZmFyIG91dCBvZiB0aGUgd29ybGQgeW91IGxpdmUsIHlvdSB3aWxsIGhhdmUgaGVhcmQgb2YgQWdhbWVtbm9uIGFuZCB0aGUgYmFkIGVuZCBoZSBjYW1lIHRvIGF0IHRoZSBoYW5kcyBvZiBBZWdpc3RodXMtIGFuZCBhIGZlYXJmdWwgcmVja29uaW5nIGRpZCBBZWdpc3RodXMgcHJlc2VudGx5IHBheS4gU2VlIHdoYXQgYSBnb29kIHRoaW5nIGl0IGlzIGZvciBhIG1hbiB0byBsZWF2ZSBhIHNvbiBiZWhpbmQgaGltIHRvIGRvIGFzIE9yZXN0ZXMgZGlkLCB3aG8ga2lsbGVkIGZhbHNlIEFlZ2lzdGh1cyB0aGUgbXVyZGVyZXIgb2YgaGlzIG5vYmxlIGZhdGhlci4gWW91IHRvbywgdGhlbi0gZm9yIHlvdSBhcmUgYSB0YWxsLCBzbWFydC1sb29raW5nIGZlbGxvdy0gc2hvdyB5b3VyIG1ldHRsZSBhbmQgbWFrZSB5b3Vyc2VsZiBhIG5hbWUgaW4gc3RvcnkuIg0KDQoiTmVzdG9yIHNvbiBvZiBOZWxldXMsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAiaG9ub3VyIHRvIHRoZSBBY2hhZWFuIG5hbWUsIHRoZSBBY2hhZWFucyBhcHBsYXVkIE9yZXN0ZXMgYW5kIGhpcyBuYW1lIHdpbGwgbGl2ZSB0aHJvdWdoIGFsbCB0aW1lIGZvciBoZSBoYXMgYXZlbmdlZCBoaXMgZmF0aGVyIG5vYmx5LiBXb3VsZCB0aGF0IGhlYXZlbiBtaWdodCBncmFudCBtZSB0byBkbyBsaWtlIHZlbmdlYW5jZSBvbiB0aGUgaW5zb2xlbmNlIG9mIHRoZSB3aWNrZWQgc3VpdG9ycywgd2hvIGFyZSBpbGwgdHJlYXRpbmcgbWUgYW5kIHBsb3R0aW5nIG15IHJ1aW47IGJ1dCB0aGUgZ29kcyBoYXZlIG5vIHN1Y2ggaGFwcGluZXNzIGluIHN0b3JlIGZvciBtZSBhbmQgZm9yIG15IGZhdGhlciwgc28gd2UgbXVzdCBiZWFyIGl0IGFzIGJlc3Qgd2UgbWF5LiINCg0KIk15IGZyaWVuZCwiIHNhaWQgTmVzdG9yLCAibm93IHRoYXQgeW91IHJlbWluZCBtZSwgSSByZW1lbWJlciB0byBoYXZlIGhlYXJkIHRoYXQgeW91ciBtb3RoZXIgaGFzIG1hbnkgc3VpdG9ycywgd2hvIGFyZSBpbGwgZGlzcG9zZWQgdG93YXJkcyB5b3UgYW5kIGFyZSBtYWtpbmcgaGF2b2Mgb2YgeW91ciBlc3RhdGUuIERvIHlvdSBzdWJtaXQgdG8gdGhpcyB0YW1lbHksIG9yIGFyZSBwdWJsaWMgZmVlbGluZyBhbmQgdGhlIHZvaWNlIG9mIGhlYXZlbiBhZ2FpbnN0IHlvdT8gV2hvIGtub3dzIGJ1dCB3aGF0IFVseXNzZXMgbWF5IGNvbWUgYmFjayBhZnRlciBhbGwsIGFuZCBwYXkgdGhlc2Ugc2NvdW5kcmVscyBpbiBmdWxsLCBlaXRoZXIgc2luZ2xlLWhhbmRlZCBvciB3aXRoIGEgZm9yY2Ugb2YgQWNoYWVhbnMgYmVoaW5kIGhpbT8gSWYgTWluZXJ2YSB3ZXJlIHRvIHRha2UgYXMgZ3JlYXQgYSBsaWtpbmcgdG8geW91IGFzIHNoZSBkaWQgdG8gVWx5c3NlcyB3aGVuIHdlIHdlcmUgZmlnaHRpbmcgYmVmb3JlIFRyb3kgKGZvciBJIG5ldmVyIHlldCBzYXcgdGhlIGdvZHMgc28gb3Blbmx5IGZvbmQgb2YgYW55IG9uZSBhcyBNaW5lcnZhIHRoZW4gd2FzIG9mIHlvdXIgZmF0aGVyKSwgaWYgc2hlIHdvdWxkIHRha2UgYXMgZ29vZCBjYXJlIG9mIHlvdSBhcyBzaGUgZGlkIG9mIGhpbSwgdGhlc2Ugd29vZXJzIHdvdWxkIHNvb24gc29tZSBvZiB0aGVtIGhpbSwgZm9yZ2V0IHRoZWlyIHdvb2luZy4iDQoNClRlbGVtYWNodXMgYW5zd2VyZWQsICJJIGNhbiBleHBlY3Qgbm90aGluZyBvZiB0aGUga2luZDsgaXQgd291bGQgYmUgZmFyIHRvbyBtdWNoIHRvIGhvcGUgZm9yLiBJIGRhcmUgbm90IGxldCBteXNlbGYgdGhpbmsgb2YgaXQuIEV2ZW4gdGhvdWdoIHRoZSBnb2RzIHRoZW1zZWx2ZXMgd2lsbGVkIGl0IG5vIHN1Y2ggZ29vZCBmb3J0dW5lIGNvdWxkIGJlZmFsbCBtZS4iDQoNCk9uIHRoaXMgTWluZXJ2YSBzYWlkLCAiVGVsZW1hY2h1cywgd2hhdCBhcmUgeW91IHRhbGtpbmcgYWJvdXQ/IEhlYXZlbiBoYXMgYSBsb25nIGFybSBpZiBpdCBpcyBtaW5kZWQgdG8gc2F2ZSBhIG1hbjsgYW5kIGlmIGl0IHdlcmUgbWUsIEkgc2hvdWxkIG5vdCBjYXJlIGhvdyBtdWNoIEkgc3VmZmVyZWQgYmVmb3JlIGdldHRpbmcgaG9tZSwgcHJvdmlkZWQgSSBjb3VsZCBiZSBzYWZlIHdoZW4gSSB3YXMgb25jZSB0aGVyZS4gSSB3b3VsZCByYXRoZXIgdGhpcywgdGhhbiBnZXQgaG9tZSBxdWlja2x5LCBhbmQgdGhlbiBiZSBraWxsZWQgaW4gbXkgb3duIGhvdXNlIGFzIEFnYW1lbW5vbiB3YXMgYnkgdGhlIHRyZWFjaGVyeSBvZiBBZWdpc3RodXMgYW5kIGhpcyB3aWZlLiBTdGlsbCwgZGVhdGggaXMgY2VydGFpbiwgYW5kIHdoZW4gYSBtYW4ncyBob3VyIGlzIGNvbWUsIG5vdCBldmVuIHRoZSBnb2RzIGNhbiBzYXZlIGhpbSwgbm8gbWF0dGVyIGhvdyBmb25kIHRoZXkgYXJlIG9mIGhpbS4iDQoNCiJNZW50b3IsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAiZG8gbm90IGxldCB1cyB0YWxrIGFib3V0IGl0IGFueSBtb3JlLiBUaGVyZSBpcyBubyBjaGFuY2Ugb2YgbXkgZmF0aGVyJ3MgZXZlciBjb21pbmcgYmFjazsgdGhlIGdvZHMgaGF2ZSBsb25nIHNpbmNlIGNvdW5zZWxsZWQgaGlzIGRlc3RydWN0aW9uLiBUaGVyZSBpcyBzb21ldGhpbmcgZWxzZSwgaG93ZXZlciwgYWJvdXQgd2hpY2ggSSBzaG91bGQgbGlrZSB0byBhc2sgTmVzdG9yLCBmb3IgaGUga25vd3MgbXVjaCBtb3JlIHRoYW4gYW55IG9uZSBlbHNlIGRvZXMuIFRoZXkgc2F5IGhlIGhhcyByZWlnbmVkIGZvciB0aHJlZSBnZW5lcmF0aW9ucyBzbyB0aGF0IGl0IGlzIGxpa2UgdGFsa2luZyB0byBhbiBpbW1vcnRhbC4gVGVsbCBtZSwgdGhlcmVmb3JlLCBOZXN0b3IsIGFuZCB0ZWxsIG1lIHRydWU7IGhvdyBkaWQgQWdhbWVtbm9uIGNvbWUgdG8gZGllIGluIHRoYXQgd2F5PyBXaGF0IHdhcyBNZW5lbGF1cyBkb2luZz8gQW5kIGhvdyBjYW1lIGZhbHNlIEFlZ2lzdGh1cyB0byBraWxsIHNvIGZhciBiZXR0ZXIgYSBtYW4gdGhhbiBoaW1zZWxmPyBXYXMgTWVuZWxhdXMgYXdheSBmcm9tIEFjaGFlYW4gQXJnb3MsIHZveWFnaW5nIGVsc2V3aGl0aGVyIGFtb25nIG1hbmtpbmQsIHRoYXQgQWVnaXN0aHVzIHRvb2sgaGVhcnQgYW5kIGtpbGxlZCBBZ2FtZW1ub24/Ig0KDQoiSSB3aWxsIHRlbGwgeW91IHRydWx5LCIgYW5zd2VyZWQgTmVzdG9yLCAiYW5kIGluZGVlZCB5b3UgaGF2ZSB5b3Vyc2VsZiBkaXZpbmVkIGhvdyBpdCBhbGwgaGFwcGVuZWQuIElmIE1lbmVsYXVzIHdoZW4gaGUgZ290IGJhY2sgZnJvbSBUcm95IGhhZCBmb3VuZCBBZWdpc3RodXMgc3RpbGwgYWxpdmUgaW4gaGlzIGhvdXNlLCB0aGVyZSB3b3VsZCBoYXZlIGJlZW4gbm8gYmFycm93IGhlYXBlZCB1cCBmb3IgaGltLCBub3QgZXZlbiB3aGVuIGhlIHdhcyBkZWFkLCBidXQgaGUgd291bGQgaGF2ZSBiZWVuIHRocm93biBvdXRzaWRlIHRoZSBjaXR5IHRvIGRvZ3MgYW5kIHZ1bHR1cmVzLCBhbmQgbm90IGEgd29tYW4gd291bGQgaGF2ZSBtb3VybmVkIGhpbSwgZm9yIGhlIGhhZCBkb25lIGEgZGVlZCBvZiBncmVhdCB3aWNrZWRuZXNzOyBidXQgd2Ugd2VyZSBvdmVyIHRoZXJlLCBmaWdodGluZyBoYXJkIGF0IFRyb3ksIGFuZCBBZWdpc3RodXMgd2hvIHdhcyB0YWtpbmcgaGlzIGVhc2UgcXVpZXRseSBpbiB0aGUgaGVhcnQgb2YgQXJnb3MsIGNham9sZWQgQWdhbWVtbm9uJ3Mgd2lmZSBDbHl0ZW1uZXN0cmEgd2l0aCBpbmNlc3NhbnQgZmxhdHRlcnkuDQoNCiJBdCBmaXJzdCBzaGUgd291bGQgaGF2ZSBub3RoaW5nIHRvIGRvIHdpdGggaGlzIHdpY2tlZCBzY2hlbWUsIGZvciBzaGUgd2FzIG9mIGEgZ29vZCBuYXR1cmFsIGRpc3Bvc2l0aW9uOyBtb3Jlb3ZlciB0aGVyZSB3YXMgYSBiYXJkIHdpdGggaGVyLCB0byB3aG9tIEFnYW1lbW5vbiBoYWQgZ2l2ZW4gc3RyaWN0IG9yZGVycyBvbiBzZXR0aW5nIG91dCBmb3IgVHJveSwgdGhhdCBoZSB3YXMgdG8ga2VlcCBndWFyZCBvdmVyIGhpcyB3aWZlOyBidXQgd2hlbiBoZWF2ZW4gaGFkIGNvdW5zZWxsZWQgaGVyIGRlc3RydWN0aW9uLCBBZWdpc3RodXMgdGh1cyB0aGlzIGJhcmQgb2ZmIHRvIGEgZGVzZXJ0IGlzbGFuZCBhbmQgbGVmdCBoaW0gdGhlcmUgZm9yIGNyb3dzIGFuZCBzZWFndWxscyB0byBiYXR0ZW4gdXBvbi0gYWZ0ZXIgd2hpY2ggc2hlIHdlbnQgd2lsbGluZ2x5IGVub3VnaCB0byB0aGUgaG91c2Ugb2YgQWVnaXN0aHVzLiBUaGVuIGhlIG9mZmVyZWQgbWFueSBidXJudCBzYWNyaWZpY2VzIHRvIHRoZSBnb2RzLCBhbmQgZGVjb3JhdGVkIG1hbnkgdGVtcGxlcyB3aXRoIHRhcGVzdHJpZXMgYW5kIGdpbGRpbmcsIGZvciBoZSBoYWQgc3VjY2VlZGVkIGZhciBiZXlvbmQgaGlzIGV4cGVjdGF0aW9ucy4NCg0KIk1lYW53aGlsZSBNZW5lbGF1cyBhbmQgSSB3ZXJlIG9uIG91ciB3YXkgaG9tZSBmcm9tIFRyb3ksIG9uIGdvb2QgdGVybXMgd2l0aCBvbmUgYW5vdGhlci4gV2hlbiB3ZSBnb3QgdG8gU3VuaXVtLCB3aGljaCBpcyB0aGUgcG9pbnQgb2YgQXRoZW5zLCBBcG9sbG8gd2l0aCBoaXMgcGFpbmxlc3Mgc2hhZnRzIGtpbGxlZCBQaHJvbnRpcyB0aGUgc3RlZXJzbWFuIG9mIE1lbmVsYXVzJyBzaGlwIChhbmQgbmV2ZXIgbWFuIGtuZXcgYmV0dGVyIGhvdyB0byBoYW5kbGUgYSB2ZXNzZWwgaW4gcm91Z2ggd2VhdGhlcikgc28gdGhhdCBoZSBkaWVkIHRoZW4gYW5kIHRoZXJlIHdpdGggdGhlIGhlbG0gaW4gaGlzIGhhbmQsIGFuZCBNZW5lbGF1cywgdGhvdWdoIHZlcnkgYW54aW91cyB0byBwcmVzcyBmb3J3YXJkLCBoYWQgdG8gd2FpdCBpbiBvcmRlciB0byBidXJ5IGhpcyBjb21yYWRlIGFuZCBnaXZlIGhpbSBoaXMgZHVlIGZ1bmVyYWwgcml0ZXMuIFByZXNlbnRseSwgd2hlbiBoZSB0b28gY291bGQgcHV0IHRvIHNlYSBhZ2FpbiwgYW5kIGhhZCBzYWlsZWQgb24gYXMgZmFyIGFzIHRoZSBNYWxlYW4gaGVhZHMsIEpvdmUgY291bnNlbGxlZCBldmlsIGFnYWluc3QgaGltIGFuZCBtYWRlIGl0IGl0IGJsb3cgaGFyZCB0aWxsIHRoZSB3YXZlcyByYW4gbW91bnRhaW5zIGhpZ2guIEhlcmUgaGUgZGl2aWRlZCBoaXMgZmxlZXQgYW5kIHRvb2sgdGhlIG9uZSBoYWxmIHRvd2FyZHMgQ3JldGUgd2hlcmUgdGhlIEN5ZG9uaWFucyBkd2VsbCByb3VuZCBhYm91dCB0aGUgd2F0ZXJzIG9mIHRoZSByaXZlciBJYXJkYW51cy4gVGhlcmUgaXMgYSBoaWdoIGhlYWRsYW5kIGhlcmVhYm91dHMgc3RyZXRjaGluZyBvdXQgaW50byB0aGUgc2VhIGZyb20gYSBwbGFjZSBjYWxsZWQgR29ydHluLCBhbmQgYWxsIGFsb25nIHRoaXMgcGFydCBvZiB0aGUgY29hc3QgYXMgZmFyIGFzIFBoYWVzdHVzIHRoZSBzZWEgcnVucyBoaWdoIHdoZW4gdGhlcmUgaXMgYSBzb3V0aCB3aW5kIGJsb3dpbmcsIGJ1dCBhcnRlciBQaGFlc3R1cyB0aGUgY29hc3QgaXMgbW9yZSBwcm90ZWN0ZWQsIGZvciBhIHNtYWxsIGhlYWRsYW5kIGNhbiBtYWtlIGEgZ3JlYXQgc2hlbHRlci4gSGVyZSB0aGlzIHBhcnQgb2YgdGhlIGZsZWV0IHdhcyBkcml2ZW4gb24gdG8gdGhlIHJvY2tzIGFuZCB3cmVja2VkOyBidXQgdGhlIGNyZXdzIGp1c3QgbWFuYWdlZCB0byBzYXZlIHRoZW1zZWx2ZXMuIEFzIGZvciB0aGUgb3RoZXIgZml2ZSBzaGlwcywgdGhleSB3ZXJlIHRha2VuIGJ5IHdpbmRzIGFuZCBzZWFzIHRvIEVneXB0LCB3aGVyZSBNZW5lbGF1cyBnYXRoZXJlZCBtdWNoIGdvbGQgYW5kIHN1YnN0YW5jZSBhbW9uZyBwZW9wbGUgb2YgYW4gYWxpZW4gc3BlZWNoLiBNZWFud2hpbGUgQWVnaXN0aHVzIGhlcmUgYXQgaG9tZSBwbG90dGVkIGhpcyBldmlsIGRlZWQuIEZvciBzZXZlbiB5ZWFycyBhZnRlciBoZSBoYWQga2lsbGVkIEFnYW1lbW5vbiBoZSBydWxlZCBpbiBNeWNlbmUsIGFuZCB0aGUgcGVvcGxlIHdlcmUgb2JlZGllbnQgdW5kZXIgaGltLCBidXQgaW4gdGhlIGVpZ2h0aCB5ZWFyIE9yZXN0ZXMgY2FtZSBiYWNrIGZyb20gQXRoZW5zIHRvIGJlIGhpcyBiYW5lLCBhbmQga2lsbGVkIHRoZSBtdXJkZXJlciBvZiBoaXMgZmF0aGVyLiBUaGVuIGhlIGNlbGVicmF0ZWQgdGhlIGZ1bmVyYWwgcml0ZXMgb2YgaGlzIG1vdGhlciBhbmQgb2YgZmFsc2UgQWVnaXN0aHVzIGJ5IGEgYmFucXVldCB0byB0aGUgcGVvcGxlIG9mIEFyZ29zLCBhbmQgb24gdGhhdCB2ZXJ5IGRheSBNZW5lbGF1cyBjYW1lIGhvbWUsIHdpdGggYXMgbXVjaCB0cmVhc3VyZSBhcyBoaXMgc2hpcHMgY291bGQgY2FycnkuDQoNCiJUYWtlIG15IGFkdmljZSB0aGVuLCBhbmQgZG8gbm90IGdvIHRyYXZlbGxpbmcgYWJvdXQgZm9yIGxvbmcgc28gZmFyIGZyb20gaG9tZSwgbm9yIGxlYXZlIHlvdXIgcHJvcGVydHkgd2l0aCBzdWNoIGRhbmdlcm91cyBwZW9wbGUgaW4geW91ciBob3VzZTsgdGhleSB3aWxsIGVhdCB1cCBldmVyeXRoaW5nIHlvdSBoYXZlIGFtb25nIHRoZW0sIGFuZCB5b3Ugd2lsbCBoYXZlIGJlZW4gb24gYSBmb29sJ3MgZXJyYW5kLiBTdGlsbCwgSSBzaG91bGQgYWR2aXNlIHlvdSBieSBhbGwgbWVhbnMgdG8gZ28gYW5kIHZpc2l0IE1lbmVsYXVzLCB3aG8gaGFzIGxhdGVseSBjb21lIG9mZiBhIHZveWFnZSBhbW9uZyBzdWNoIGRpc3RhbnQgcGVvcGxlcyBhcyBubyBtYW4gY291bGQgZXZlciBob3BlIHRvIGdldCBiYWNrIGZyb20sIHdoZW4gdGhlIHdpbmRzIGhhZCBvbmNlIGNhcnJpZWQgaGltIHNvIGZhciBvdXQgb2YgaGlzIHJlY2tvbmluZzsgZXZlbiBiaXJkcyBjYW5ub3QgZmx5IHRoZSBkaXN0YW5jZSBpbiBhIHR3ZWx2ZW1vbnRoLCBzbyB2YXN0IGFuZCB0ZXJyaWJsZSBhcmUgdGhlIHNlYXMgdGhhdCB0aGV5IG11c3QgY3Jvc3MuIEdvIHRvIGhpbSwgdGhlcmVmb3JlLCBieSBzZWEsIGFuZCB0YWtlIHlvdXIgb3duIG1lbiB3aXRoIHlvdTsgb3IgaWYgeW91IHdvdWxkIHJhdGhlciB0cmF2ZWwgYnkgbGFuZCB5b3UgY2FuIGhhdmUgYSBjaGFyaW90LCB5b3UgY2FuIGhhdmUgaG9yc2VzLCBhbmQgaGVyZSBhcmUgbXkgc29ucyB3aG8gY2FuIGVzY29ydCB5b3UgdG8gTGFjZWRhZW1vbiB3aGVyZSBNZW5lbGF1cyBsaXZlcy4gQmVnIG9mIGhpbSB0byBzcGVhayB0aGUgdHJ1dGgsIGFuZCBoZSB3aWxsIHRlbGwgeW91IG5vIGxpZXMsIGZvciBoZSBpcyBhbiBleGNlbGxlbnQgcGVyc29uLiINCg0KQXMgaGUgc3Bva2UgdGhlIHN1biBzZXQgYW5kIGl0IGNhbWUgb24gZGFyaywgd2hlcmVvbiBNaW5lcnZhIHNhaWQsICJTaXIsIGFsbCB0aGF0IHlvdSBoYXZlIHNhaWQgaXMgd2VsbDsgbm93LCBob3dldmVyLCBvcmRlciB0aGUgdG9uZ3VlcyBvZiB0aGUgdmljdGltcyB0byBiZSBjdXQsIGFuZCBtaXggd2luZSB0aGF0IHdlIG1heSBtYWtlIGRyaW5rLW9mZmVyaW5ncyB0byBOZXB0dW5lLCBhbmQgdGhlIG90aGVyIGltbW9ydGFscywgYW5kIHRoZW4gZ28gdG8gYmVkLCBmb3IgaXQgaXMgYmVkIHRpbWUuIFBlb3BsZSBzaG91bGQgZ28gYXdheSBlYXJseSBhbmQgbm90IGtlZXAgbGF0ZSBob3VycyBhdCBhIHJlbGlnaW91cyBmZXN0aXZhbC4iDQoNClRodXMgc3Bva2UgdGhlIGRhdWdodGVyIG9mIEpvdmUsIGFuZCB0aGV5IG9iZXllZCBoZXIgc2F5aW5nLiBNZW4gc2VydmFudHMgcG91cmVkIHdhdGVyIG92ZXIgdGhlIGhhbmRzIG9mIHRoZSBndWVzdHMsIHdoaWxlIHBhZ2VzIGZpbGxlZCB0aGUgbWl4aW5nLWJvd2xzIHdpdGggd2luZSBhbmQgd2F0ZXIsIGFuZCBoYW5kZWQgaXQgcm91bmQgYWZ0ZXIgZ2l2aW5nIGV2ZXJ5IG1hbiBoaXMgZHJpbmstb2ZmZXJpbmc7IHRoZW4gdGhleSB0aHJldyB0aGUgdG9uZ3VlcyBvZiB0aGUgdmljdGltcyBpbnRvIHRoZSBmaXJlLCBhbmQgc3Rvb2QgdXAgdG8gbWFrZSB0aGVpciBkcmluay1vZmZlcmluZ3MuIFdoZW4gdGhleSBoYWQgbWFkZSB0aGVpciBvZmZlcmluZ3MgYW5kIGhhZCBkcnVuayBlYWNoIGFzIG11Y2ggYXMgaGUgd2FzIG1pbmRlZCwgTWluZXJ2YSBhbmQgVGVsZW1hY2h1cyB3ZXJlIGZvcmdvaW5nIG9uIGJvYXJkIHRoZWlyIHNoaXAsIGJ1dCBOZXN0b3IgY2F1Z2h0IHRoZW0gdXAgYXQgb25jZSBhbmQgc3RheWVkIHRoZW0uDQoNCiJIZWF2ZW4gYW5kIHRoZSBpbW1vcnRhbCBnb2RzLCIgaGUgZXhjbGFpbWVkLCAiZm9yYmlkIHRoYXQgeW91IHNob3VsZCBsZWF2ZSBteSBob3VzZSB0byBnbyBvbiBib2FyZCBvZiBhIHNoaXAuIERvIHlvdSB0aGluayBJIGFtIHNvIHBvb3IgYW5kIHNob3J0IG9mIGNsb3RoZXMsIG9yIHRoYXQgSSBoYXZlIHNvIGZldyBjbG9ha3MgYW5kIGFzIHRvIGJlIHVuYWJsZSB0byBmaW5kIGNvbWZvcnRhYmxlIGJlZHMgYm90aCBmb3IgbXlzZWxmIGFuZCBmb3IgbXkgZ3Vlc3RzPyBMZXQgbWUgdGVsbCB5b3UgSSBoYXZlIHN0b3JlIGJvdGggb2YgcnVncyBhbmQgY2xvYWtzLCBhbmQgc2hhbGwgbm90IHBlcm1pdCB0aGUgc29uIG9mIG15IG9sZCBmcmllbmQgVWx5c3NlcyB0byBjYW1wIGRvd24gb24gdGhlIGRlY2sgb2YgYSBzaGlwLSBub3Qgd2hpbGUgSSBsaXZlLSBub3IgeWV0IHdpbGwgbXkgc29ucyBhZnRlciBtZSwgYnV0IHRoZXkgd2lsbCBrZWVwIG9wZW4gaG91c2UgYXMgaGF2ZSBkb25lLiINCg0KVGhlbiBNaW5lcnZhIGFuc3dlcmVkLCAiU2lyLCB5b3UgaGF2ZSBzcG9rZW4gd2VsbCwgYW5kIGl0IHdpbGwgYmUgbXVjaCBiZXR0ZXIgdGhhdCBUZWxlbWFjaHVzIHNob3VsZCBkbyBhcyB5b3UgaGF2ZSBzYWlkOyBoZSwgdGhlcmVmb3JlLCBzaGFsbCByZXR1cm4gd2l0aCB5b3UgYW5kIHNsZWVwIGF0IHlvdXIgaG91c2UsIGJ1dCBJIG11c3QgZ28gYmFjayB0byBnaXZlIG9yZGVycyB0byBteSBjcmV3LCBhbmQga2VlcCB0aGVtIGluIGdvb2QgaGVhcnQuIEkgYW0gdGhlIG9ubHkgb2xkZXIgcGVyc29uIGFtb25nIHRoZW07IHRoZSByZXN0IGFyZSBhbGwgeW91bmcgbWVuIG9mIFRlbGVtYWNodXMnIG93biBhZ2UsIHdobyBoYXZlIHRha2VuIHRoaXMgdm95YWdlIG91dCBvZiBmcmllbmRzaGlwOyBzbyBJIG11c3QgcmV0dXJuIHRvIHRoZSBzaGlwIGFuZCBzbGVlcCB0aGVyZS4gTW9yZW92ZXIgdG8tbW9ycm93IEkgbXVzdCBnbyB0byB0aGUgQ2F1Y29uaWFucyB3aGVyZSBJIGhhdmUgYSBsYXJnZSBzdW0gb2YgbW9uZXkgbG9uZyBvd2luZyB0byBtZS4gQXMgZm9yIFRlbGVtYWNodXMsIG5vdyB0aGF0IGhlIGlzIHlvdXIgZ3Vlc3QsIHNlbmQgaGltIHRvIExhY2VkYWVtb24gaW4gYSBjaGFyaW90LCBhbmQgbGV0IG9uZSBvZiB5b3VyIHNvbnMgZ28gd2l0aCBoaW0uIEJlIHBsZWFzZWQgYWxzbyB0byBwcm92aWRlIGhpbSB3aXRoIHlvdXIgYmVzdCBhbmQgZmxlZXRlc3QgaG9yc2VzLiINCg0KV2hlbiBzaGUgaGFkIHRodXMgc3Bva2VuLCBzaGUgZmxldyBhd2F5IGluIHRoZSBmb3JtIG9mIGFuIGVhZ2xlLCBhbmQgYWxsIG1hcnZlbGxlZCBhcyB0aGV5IGJlaGVsZCBpdC4gTmVzdG9yIHdhcyBhc3RvbmlzaGVkLCBhbmQgdG9vayBUZWxlbWFjaHVzIGJ5IHRoZSBoYW5kLiAiTXkgZnJpZW5kLCIgc2FpZCBoZSwgIkkgc2VlIHRoYXQgeW91IGFyZSBnb2luZyB0byBiZSBhIGdyZWF0IGhlcm8gc29tZSBkYXksIHNpbmNlIHRoZSBnb2RzIHdhaXQgdXBvbiB5b3UgdGh1cyB3aGlsZSB5b3UgYXJlIHN0aWxsIHNvIHlvdW5nLiBUaGlzIGNhbiBoYXZlIGJlZW4gbm9uZSBvdGhlciBvZiB0aG9zZSB3aG8gZHdlbGwgaW4gaGVhdmVuIHRoYW4gSm92ZSdzIHJlZG91YnRhYmxlIGRhdWdodGVyLCB0aGUgVHJpdG8tYm9ybiwgd2hvIHNob3dlZCBzdWNoIGZhdm91ciB0b3dhcmRzIHlvdXIgYnJhdmUgZmF0aGVyIGFtb25nIHRoZSBBcmdpdmVzLiIgIkhvbHkgcXVlZW4sIiBoZSBjb250aW51ZWQsICJ2b3VjaHNhZmUgdG8gc2VuZCBkb3duIHRoeSBncmFjZSB1cG9uIG15c2VsZiwgbXkgZ29vZCB3aWZlLCBhbmQgbXkgY2hpbGRyZW4uIEluIHJldHVybiwgSSB3aWxsIG9mZmVyIHlvdSBpbiBzYWNyaWZpY2UgYSBicm9hZC1icm93ZWQgaGVpZmVyIG9mIGEgeWVhciBvbGQsIHVuYnJva2VuLCBhbmQgbmV2ZXIgeWV0IGJyb3VnaHQgYnkgbWFuIHVuZGVyIHRoZSB5b2tlLiBJIHdpbGwgZ2lsZCBoZXIgaG9ybnMsIGFuZCB3aWxsIG9mZmVyIGhlciB1cCB0byB5b3UgaW4gc2FjcmlmaWNlLiINCg0KVGh1cyBkaWQgaGUgcHJheSwgYW5kIE1pbmVydmEgaGVhcmQgaGlzIHByYXllci4gSGUgdGhlbiBsZWQgdGhlIHdheSB0byBoaXMgb3duIGhvdXNlLCBmb2xsb3dlZCBieSBoaXMgc29ucyBhbmQgc29ucy1pbi1sYXcuIFdoZW4gdGhleSBoYWQgZ290IHRoZXJlIGFuZCBoYWQgdGFrZW4gdGhlaXIgcGxhY2VzIG9uIHRoZSBiZW5jaGVzIGFuZCBzZWF0cywgaGUgbWl4ZWQgdGhlbSBhIGJvd2wgb2Ygc3dlZXQgd2luZSB0aGF0IHdhcyBlbGV2ZW4geWVhcnMgb2xkIHdoZW4gdGhlIGhvdXNla2VlcGVyIHRvb2sgdGhlIGxpZCBvZmYgdGhlIGphciB0aGF0IGhlbGQgaXQuIEFzIGhlIG1peGVkIHRoZSB3aW5lLCBoZSBwcmF5ZWQgbXVjaCBhbmQgbWFkZSBkcmluay1vZmZlcmluZ3MgdG8gTWluZXJ2YSwgZGF1Z2h0ZXIgb2YgQWVnaXMtYmVhcmluZyBKb3ZlLiBUaGVuLCB3aGVuIHRoZXkgaGFkIG1hZGUgdGhlaXIgZHJpbmstb2ZmZXJpbmdzIGFuZCBoYWQgZHJ1bmsgZWFjaCBhcyBtdWNoIGFzIGhlIHdhcyBtaW5kZWQsIHRoZSBvdGhlcnMgd2VudCBob21lIHRvIGJlZCBlYWNoIGluIGhpcyBvd24gYWJvZGU7IGJ1dCBOZXN0b3IgcHV0IFRlbGVtYWNodXMgdG8gc2xlZXAgaW4gdGhlIHJvb20gdGhhdCB3YXMgb3ZlciB0aGUgZ2F0ZXdheSBhbG9uZyB3aXRoIFBpc2lzdHJhdHVzLCB3aG8gd2FzIHRoZSBvbmx5IHVubWFycmllZCBzb24gbm93IGxlZnQgaGltLiBBcyBmb3IgaGltc2VsZiwgaGUgc2xlcHQgaW4gYW4gaW5uZXIgcm9vbSBvZiB0aGUgaG91c2UsIHdpdGggdGhlIHF1ZWVuIGhpcyB3aWZlIGJ5IGhpcyBzaWRlLg0KDQpOb3cgd2hlbiB0aGUgY2hpbGQgb2YgbW9ybmluZywgcm9zeS1maW5nZXJlZCBEYXduLCBhcHBlYXJlZCwgTmVzdG9yIGxlZnQgaGlzIGNvdWNoIGFuZCB0b29rIGhpcyBzZWF0IG9uIHRoZSBiZW5jaGVzIG9mIHdoaXRlIGFuZCBwb2xpc2hlZCBtYXJibGUgdGhhdCBzdG9vZCBpbiBmcm9udCBvZiBoaXMgaG91c2UuIEhlcmUgYWZvcmV0aW1lIHNhdCBOZWxldXMsIHBlZXIgb2YgZ29kcyBpbiBjb3Vuc2VsLCBidXQgaGUgd2FzIG5vdyBkZWFkLCBhbmQgaGFkIGdvbmUgdG8gdGhlIGhvdXNlIG9mIEhhZGVzOyBzbyBOZXN0b3Igc2F0IGluIGhpcyBzZWF0LCBzY2VwdHJlIGluIGhhbmQsIGFzIGd1YXJkaWFuIG9mIHRoZSBwdWJsaWMgd2VhbC4gSGlzIHNvbnMgYXMgdGhleSBsZWZ0IHRoZWlyIHJvb21zIGdhdGhlcmVkIHJvdW5kIGhpbSwgRWNoZXBocm9uLCBTdHJhdGl1cywgUGVyc2V1cywgQXJldHVzLCBhbmQgVGhyYXN5bWVkZXM7IHRoZSBzaXh0aCBzb24gd2FzIFBpc2lzdHJhdHVzLCBhbmQgd2hlbiBUZWxlbWFjaHVzIGpvaW5lZCB0aGVtIHRoZXkgbWFkZSBoaW0gc2l0IHdpdGggdGhlbS4gTmVzdG9yIHRoZW4gYWRkcmVzc2VkIHRoZW0uDQoNCiJNeSBzb25zLCIgc2FpZCBoZSwgIm1ha2UgaGFzdGUgdG8gZG8gYXMgSSBzaGFsbCBiaWQgeW91LiBJIHdpc2ggZmlyc3QgYW5kIGZvcmVtb3N0IHRvIHByb3BpdGlhdGUgdGhlIGdyZWF0IGdvZGRlc3MgTWluZXJ2YSwgd2hvIG1hbmlmZXN0ZWQgaGVyc2VsZiB2aXNpYmx5IHRvIG1lIGR1cmluZyB5ZXN0ZXJkYXkncyBmZXN0aXZpdGllcy4gR28sIHRoZW4sIG9uZSBvciBvdGhlciBvZiB5b3UgdG8gdGhlIHBsYWluLCB0ZWxsIHRoZSBzdG9ja21hbiB0byBsb29rIG1lIG91dCBhIGhlaWZlciwgYW5kIGNvbWUgb24gaGVyZSB3aXRoIGl0IGF0IG9uY2UuIEFub3RoZXIgbXVzdCBnbyB0byBUZWxlbWFjaHVzJ3Mgc2hpcCwgYW5kIGludml0ZSBhbGwgdGhlIGNyZXcsIGxlYXZpbmcgdHdvIG1lbiBvbmx5IGluIGNoYXJnZSBvZiB0aGUgdmVzc2VsLiBTb21lIG9uZSBlbHNlIHdpbGwgcnVuIGFuZCBmZXRjaCBMYWVyY2V1cyB0aGUgZ29sZHNtaXRoIHRvIGdpbGQgdGhlIGhvcm5zIG9mIHRoZSBoZWlmZXIuIFRoZSByZXN0LCBzdGF5IGFsbCBvZiB5b3Ugd2hlcmUgeW91IGFyZTsgdGVsbCB0aGUgbWFpZHMgaW4gdGhlIGhvdXNlIHRvIHByZXBhcmUgYW4gZXhjZWxsZW50IGRpbm5lciwgYW5kIHRvIGZldGNoIHNlYXRzLCBhbmQgbG9ncyBvZiB3b29kIGZvciBhIGJ1cm50IG9mZmVyaW5nLiBUZWxsIHRoZW0gYWxzby0gdG8gYnJpbmcgbWUgc29tZSBjbGVhciBzcHJpbmcgd2F0ZXIuIg0KDQpPbiB0aGlzIHRoZXkgaHVycmllZCBvZmYgb24gdGhlaXIgc2V2ZXJhbCBlcnJhbmRzLiBUaGUgaGVpZmVyIHdhcyBicm91Z2h0IGluIGZyb20gdGhlIHBsYWluLCBhbmQgVGVsZW1hY2h1cydzIGNyZXcgY2FtZSBmcm9tIHRoZSBzaGlwOyB0aGUgZ29sZHNtaXRoIGJyb3VnaHQgdGhlIGFudmlsLCBoYW1tZXIsIGFuZCB0b25ncywgd2l0aCB3aGljaCBoZSB3b3JrZWQgaGlzIGdvbGQsIGFuZCBNaW5lcnZhIGhlcnNlbGYgY2FtZSB0byB0aGUgc2FjcmlmaWNlLiBOZXN0b3IgZ2F2ZSBvdXQgdGhlIGdvbGQsIGFuZCB0aGUgc21pdGggZ2lsZGVkIHRoZSBob3JucyBvZiB0aGUgaGVpZmVyIHRoYXQgdGhlIGdvZGRlc3MgbWlnaHQgaGF2ZSBwbGVhc3VyZSBpbiB0aGVpciBiZWF1dHkuIFRoZW4gU3RyYXRpdXMgYW5kIEVjaGVwaHJvbiBicm91Z2h0IGhlciBpbiBieSB0aGUgaG9ybnM7IEFyZXR1cyBmZXRjaGVkIHdhdGVyIGZyb20gdGhlIGhvdXNlIGluIGEgZXdlciB0aGF0IGhhZCBhIGZsb3dlciBwYXR0ZXJuIG9uIGl0LCBhbmQgaW4gaGlzIG90aGVyIGhhbmQgaGUgaGVsZCBhIGJhc2tldCBvZiBiYXJsZXkgbWVhbDsgc3R1cmR5IFRocmFzeW1lZGVzIHN0b29kIGJ5IHdpdGggYSBzaGFycCBheGUsIHJlYWR5IHRvIHN0cmlrZSB0aGUgaGVpZmVyLCB3aGlsZSBQZXJzZXVzIGhlbGQgYSBidWNrZXQuIFRoZW4gTmVzdG9yIGJlZ2FuIHdpdGggd2FzaGluZyBoaXMgaGFuZHMgYW5kIHNwcmlua2xpbmcgdGhlIGJhcmxleSBtZWFsLCBhbmQgaGUgb2ZmZXJlZCBtYW55IGEgcHJheWVyIHRvIE1pbmVydmEgYXMgaGUgdGhyZXcgYSBsb2NrIGZyb20gdGhlIGhlaWZlcidzIGhlYWQgdXBvbiB0aGUgZmlyZS4NCg0KV2hlbiB0aGV5IGhhZCBkb25lIHByYXlpbmcgYW5kIHNwcmlua2xpbmcgdGhlIGJhcmxleSBtZWFsIFRocmFzeW1lZGVzIGRlYWx0IGhpcyBibG93LCBhbmQgYnJvdWdodCB0aGUgaGVpZmVyIGRvd24gd2l0aCBhIHN0cm9rZSB0aGF0IGN1dCB0aHJvdWdoIHRoZSB0ZW5kb25zIGF0IHRoZSBiYXNlIG9mIGhlciBuZWNrLCB3aGVyZW9uIHRoZSBkYXVnaHRlcnMgYW5kIGRhdWdodGVycy1pbi1sYXcgb2YgTmVzdG9yLCBhbmQgaGlzIHZlbmVyYWJsZSB3aWZlIEV1cnlkaWNlIChzaGUgd2FzIGVsZGVzdCBkYXVnaHRlciB0byBDbHltZW51cykgc2NyZWFtZWQgd2l0aCBkZWxpZ2h0LiBUaGVuIHRoZXkgbGlmdGVkIHRoZSBoZWlmZXIncyBoZWFkIGZyb20gb2ZmIHRoZSBncm91bmQsIGFuZCBQaXNpc3RyYXR1cyBjdXQgaGVyIHRocm9hdC4gV2hlbiBzaGUgaGFkIGRvbmUgYmxlZWRpbmcgYW5kIHdhcyBxdWl0ZSBkZWFkLCB0aGV5IGN1dCBoZXIgdXAuIFRoZXkgY3V0IG91dCB0aGUgdGhpZ2ggYm9uZXMgYWxsIGluIGR1ZSBjb3Vyc2UsIHdyYXBwZWQgdGhlbSByb3VuZCBpbiB0d28gbGF5ZXJzIG9mIGZhdCwgYW5kIHNldCBzb21lIHBpZWNlcyBvZiByYXcgbWVhdCBvbiB0aGUgdG9wIG9mIHRoZW07IHRoZW4gTmVzdG9yIGxhaWQgdGhlbSB1cG9uIHRoZSB3b29kIGZpcmUgYW5kIHBvdXJlZCB3aW5lIG92ZXIgdGhlbSwgd2hpbGUgdGhlIHlvdW5nIG1lbiBzdG9vZCBuZWFyIGhpbSB3aXRoIGZpdmUtcHJvbmdlZCBzcGl0cyBpbiB0aGVpciBoYW5kcy4gV2hlbiB0aGUgdGhpZ2hzIHdlcmUgYnVybmVkIGFuZCB0aGV5IGhhZCB0YXN0ZWQgdGhlIGlud2FyZCBtZWF0cywgdGhleSBjdXQgdGhlIHJlc3Qgb2YgdGhlIG1lYXQgdXAgc21hbGwsIHB1dCB0aGUgcGllY2VzIG9uIHRoZSBzcGl0cyBhbmQgdG9hc3RlZCB0aGVtIG92ZXIgdGhlIGZpcmUuDQoNCk1lYW53aGlsZSBsb3ZlbHkgUG9seWNhc3RlLCBOZXN0b3IncyB5b3VuZ2VzdCBkYXVnaHRlciwgd2FzaGVkIFRlbGVtYWNodXMuIFdoZW4gc2hlIGhhZCB3YXNoZWQgaGltIGFuZCBhbm9pbnRlZCBoaW0gd2l0aCBvaWwsIHNoZSBicm91Z2h0IGhpbSBhIGZhaXIgbWFudGxlIGFuZCBzaGlydCwgYW5kIGhlIGxvb2tlZCBsaWtlIGEgZ29kIGFzIGhlIGNhbWUgZnJvbSB0aGUgYmF0aCBhbmQgdG9vayBoaXMgc2VhdCBieSB0aGUgc2lkZSBvZiBOZXN0b3IuIFdoZW4gdGhlIG91dGVyIG1lYXRzIHdlcmUgZG9uZSB0aGV5IGRyZXcgdGhlbSBvZmYgdGhlIHNwaXRzIGFuZCBzYXQgZG93biB0byBkaW5uZXIgd2hlcmUgdGhleSB3ZXJlIHdhaXRlZCB1cG9uIGJ5IHNvbWUgd29ydGh5IGhlbmNobWVuLCB3aG8ga2VwdCBwb3VyaW5nIHRoZW0gb3V0IHRoZWlyIHdpbmUgaW4gY3VwcyBvZiBnb2xkLiBBcyBzb29uIGFzIHRoZXkgaGFkIGhhZCBoYWQgZW5vdWdoIHRvIGVhdCBhbmQgZHJpbmsgTmVzdG9yIHNhaWQsICJTb25zLCBwdXQgVGVsZW1hY2h1cydzIGhvcnNlcyB0byB0aGUgY2hhcmlvdCB0aGF0IGhlIG1heSBzdGFydCBhdCBvbmNlLiINCg0KVGh1cyBkaWQgaGUgc3BlYWssIGFuZCB0aGV5IGRpZCBldmVuIGFzIGhlIGhhZCBzYWlkLCBhbmQgeW9rZWQgdGhlIGZsZWV0IGhvcnNlcyB0byB0aGUgY2hhcmlvdC4gVGhlIGhvdXNla2VlcGVyIHBhY2tlZCB0aGVtIHVwIGEgcHJvdmlzaW9uIG9mIGJyZWFkLCB3aW5lLCBhbmQgc3dlZXRtZWF0cyBmaXQgZm9yIHRoZSBzb25zIG9mIHByaW5jZXMuIFRoZW4gVGVsZW1hY2h1cyBnb3QgaW50byB0aGUgY2hhcmlvdCwgd2hpbGUgUGlzaXN0cmF0dXMgZ2F0aGVyZWQgdXAgdGhlIHJlaW5zIGFuZCB0b29rIGhpcyBzZWF0IGJlc2lkZSBoaW0uIEhlIGxhc2hlZCB0aGUgaG9yc2VzIG9uIGFuZCB0aGV5IGZsZXcgZm9yd2FyZCBub3RoaW5nIGxvdGggaW50byB0aGUgb3BlbiBjb3VudHJ5LCBsZWF2aW5nIHRoZSBoaWdoIGNpdGFkZWwgb2YgUHlsb3MgYmVoaW5kIHRoZW0uIEFsbCB0aGF0IGRheSBkaWQgdGhleSB0cmF2ZWwsIHN3YXlpbmcgdGhlIHlva2UgdXBvbiB0aGVpciBuZWNrcyB0aWxsIHRoZSBzdW4gd2VudCBkb3duIGFuZCBkYXJrbmVzcyB3YXMgb3ZlciBhbGwgdGhlIGxhbmQuIFRoZW4gdGhleSByZWFjaGVkIFBoZXJhZSB3aGVyZSBEaW9jbGVzIGxpdmVkLCB3aG8gd2FzIHNvbiB0byBPcnRpbG9jaHVzIGFuZCBncmFuZHNvbiB0byBBbHBoZXVzLiBIZXJlIHRoZXkgcGFzc2VkIHRoZSBuaWdodCBhbmQgRGlvY2xlcyBlbnRlcnRhaW5lZCB0aGVtIGhvc3BpdGFibHkuIFdoZW4gdGhlIGNoaWxkIG9mIG1vcm5pbmcsIHJvc3ktZmluZ2VyZWQgRGF3bjsgYXBwZWFyZWQsIHRoZXkgYWdhaW4geW9rZWQgdGhlaXIgaG9yc2VzIGFuZCBkcm92ZSBvdXQgdGhyb3VnaCB0aGUgZ2F0ZXdheSB1bmRlciB0aGUgZWNob2luZyBnYXRlaG91c2UuIFBpc2lzdHJhdHVzIGxhc2hlZCB0aGUgaG9yc2VzIG9uIGFuZCB0aGV5IGZsZXcgZm9yd2FyZCBub3RoaW5nIGxvdGg7IHByZXNlbnRseSB0aGV5IGNhbWUgdG8gdGhlIGNvcm4gbGFuZHMgT2YgdGhlIG9wZW4gY291bnRyeSwgYW5kIGluIHRoZSBjb3Vyc2Ugb2YgdGltZSBjb21wbGV0ZWQgdGhlaXIgam91cm5leSwgc28gd2VsbCBkaWQgdGhlaXIgc3RlZWRzIHRha2UgdGhlbS4NCg0KTm93IHdoZW4gdGhlIHN1biBoYWQgc2V0IGFuZCBkYXJrbmVzcyB3YXMgb3ZlciB0aGUgbGFuZC4=" \
  | base64 --decode | nc localhost 5555

Let's GET our imposter to verify only one request was captured.


GET /imposters/5555 HTTP/1.1
Host: localhost:44762
Accept: application/json

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Vary: Accept
Content-Type: application/json; charset=utf-8
Content-Length: 183062
Date: Mon, 07 Sep 2015 22:39:54 GMT
Connection: keep-alive

{
  "protocol": "tcp",
  "port": 5555,
  "numberOfRequests": 1,
  "mode": "binary",
  "requests": [
    {
      "requestFrom": "::1:60642",
      "data": "AAEK/0Jvb2sgSQ0KDQpUZWxsIG1lLCBPIG11c2UsIG9mIHRoYXQgaW5nZW5pb3VzIGhlcm8gd2hvIHRyYXZlbGxlZCBmYXIgYW5kIHdpZGUgYWZ0ZXIgaGUgaGFkIHNhY2tlZCB0aGUgZmFtb3VzIHRvd24gb2YgVHJveS4gTWFueSBjaXRpZXMgZGlkIGhlIHZpc2l0LCBhbmQgbWFueSB3ZXJlIHRoZSBuYXRpb25zIHdpdGggd2hvc2UgbWFubmVycyBhbmQgY3VzdG9tcyBoZSB3YXMgYWNxdWFpbnRlZDsgbW9yZW92ZXIgaGUgc3VmZmVyZWQgbXVjaCBieSBzZWEgd2hpbGUgdHJ5aW5nIHRvIHNhdmUgaGlzIG93biBsaWZlIGFuZCBicmluZyBoaXMgbWVuIHNhZmVseSBob21lOyBidXQgZG8gd2hhdCBoZSBtaWdodCBoZSBjb3VsZCBub3Qgc2F2ZSBoaXMgbWVuLCBmb3IgdGhleSBwZXJpc2hlZCB0aHJvdWdoIHRoZWlyIG93biBzaGVlciBmb2xseSBpbiBlYXRpbmcgdGhlIGNhdHRsZSBvZiB0aGUgU3VuLWdvZCBIeXBlcmlvbjsgc28gdGhlIGdvZCBwcmV2ZW50ZWQgdGhlbSBmcm9tIGV2ZXIgcmVhY2hpbmcgaG9tZS4gVGVsbCBtZSwgdG9vLCBhYm91dCBhbGwgdGhlc2UgdGhpbmdzLCBPIGRhdWdodGVyIG9mIEpvdmUsIGZyb20gd2hhdHNvZXZlciBzb3VyY2UgeW91IG1heSBrbm93IHRoZW0uDQoNClNvIG5vdyBhbGwgd2hvIGVzY2FwZWQgZGVhdGggaW4gYmF0dGxlIG9yIGJ5IHNoaXB3cmVjayBoYWQgZ290IHNhZmVseSBob21lIGV4Y2VwdCBVbHlzc2VzLCBhbmQgaGUsIHRob3VnaCBoZSB3YXMgbG9uZ2luZyB0byByZXR1cm4gdG8gaGlzIHdpZmUgYW5kIGNvdW50cnksIHdhcyBkZXRhaW5lZCBieSB0aGUgZ29kZGVzcyBDYWx5cHNvLCB3aG8gaGFkIGdvdCBoaW0gaW50byBhIGxhcmdlIGNhdmUgYW5kIHdhbnRlZCB0byBtYXJyeSBoaW0uIEJ1dCBhcyB5ZWFycyB3ZW50IGJ5LCB0aGVyZSBjYW1lIGEgdGltZSB3aGVuIHRoZSBnb2RzIHNldHRsZWQgdGhhdCBoZSBzaG91bGQgZ28gYmFjayB0byBJdGhhY2E7IGV2ZW4gdGhlbiwgaG93ZXZlciwgd2hlbiBoZSB3YXMgYW1vbmcgaGlzIG93biBwZW9wbGUsIGhpcyB0cm91YmxlcyB3ZXJlIG5vdCB5ZXQgb3ZlcjsgbmV2ZXJ0aGVsZXNzIGFsbCB0aGUgZ29kcyBoYWQgbm93IGJlZ3VuIHRvIHBpdHkgaGltIGV4Y2VwdCBOZXB0dW5lLCB3aG8gc3RpbGwgcGVyc2VjdXRlZCBoaW0gd2l0aG91dCBjZWFzaW5nIGFuZCB3b3VsZCBub3QgbGV0IGhpbSBnZXQgaG9tZS4NCg0KTm93IE5lcHR1bmUgaGFkIGdvbmUgb2ZmIHRvIHRoZSBFdGhpb3BpYW5zLCB3aG8gYXJlIGF0IHRoZSB3b3JsZCdzIGVuZCwgYW5kIGxpZSBpbiB0d28gaGFsdmVzLCB0aGUgb25lIGxvb2tpbmcgV2VzdCBhbmQgdGhlIG90aGVyIEVhc3QuIEhlIGhhZCBnb25lIHRoZXJlIHRvIGFjY2VwdCBhIGhlY2F0b21iIG9mIHNoZWVwIGFuZCBveGVuLCBhbmQgd2FzIGVuam95aW5nIGhpbXNlbGYgYXQgaGlzIGZlc3RpdmFsOyBidXQgdGhlIG90aGVyIGdvZHMgbWV0IGluIHRoZSBob3VzZSBvZiBPbHltcGlhbiBKb3ZlLCBhbmQgdGhlIHNpcmUgb2YgZ29kcyBhbmQgbWVuIHNwb2tlIGZpcnN0LiBBdCB0aGF0IG1vbWVudCBoZSB3YXMgdGhpbmtpbmcgb2YgQWVnaXN0aHVzLCB3aG8gaGFkIGJlZW4ga2lsbGVkIGJ5IEFnYW1lbW5vbidzIHNvbiBPcmVzdGVzOyBzbyBoZSBzYWlkIHRvIHRoZSBvdGhlciBnb2RzOg0KDQoiU2VlIG5vdywgaG93IG1lbiBsYXkgYmxhbWUgdXBvbiB1cyBnb2RzIGZvciB3aGF0IGlzIGFmdGVyIGFsbCBub3RoaW5nIGJ1dCB0aGVpciBvd24gZm9sbHkuIExvb2sgYXQgQWVnaXN0aHVzOyBoZSBtdXN0IG5lZWRzIG1ha2UgbG92ZSB0byBBZ2FtZW1ub24ncyB3aWZlIHVucmlnaHRlb3VzbHkgYW5kIHRoZW4ga2lsbCBBZ2FtZW1ub24sIHRob3VnaCBoZSBrbmV3IGl0IHdvdWxkIGJlIHRoZSBkZWF0aCBvZiBoaW07IGZvciBJIHNlbnQgTWVyY3VyeSB0byB3YXJuIGhpbSBub3QgdG8gZG8gZWl0aGVyIG9mIHRoZXNlIHRoaW5ncywgaW5hc211Y2ggYXMgT3Jlc3RlcyB3b3VsZCBiZSBzdXJlIHRvIHRha2UgaGlzIHJldmVuZ2Ugd2hlbiBoZSBncmV3IHVwIGFuZCB3YW50ZWQgdG8gcmV0dXJuIGhvbWUuIE1lcmN1cnkgdG9sZCBoaW0gdGhpcyBpbiBhbGwgZ29vZCB3aWxsIGJ1dCBoZSB3b3VsZCBub3QgbGlzdGVuLCBhbmQgbm93IGhlIGhhcyBwYWlkIGZvciBldmVyeXRoaW5nIGluIGZ1bGwuIg0KDQpUaGVuIE1pbmVydmEgc2FpZCwgIkZhdGhlciwgc29uIG9mIFNhdHVybiwgS2luZyBvZiBraW5ncywgaXQgc2VydmVkIEFlZ2lzdGh1cyByaWdodCwgYW5kIHNvIGl0IHdvdWxkIGFueSBvbmUgZWxzZSB3aG8gZG9lcyBhcyBoZSBkaWQ7IGJ1dCBBZWdpc3RodXMgaXMgbmVpdGhlciBoZXJlIG5vciB0aGVyZTsgaXQgaXMgZm9yIFVseXNzZXMgdGhhdCBteSBoZWFydCBibGVlZHMsIHdoZW4gSSB0aGluayBvZiBoaXMgc3VmZmVyaW5ncyBpbiB0aGF0IGxvbmVseSBzZWEtZ2lydCBpc2xhbmQsIGZhciBhd2F5LCBwb29yIG1hbiwgZnJvbSBhbGwgaGlzIGZyaWVuZHMuIEl0IGlzIGFuIGlzbGFuZCBjb3ZlcmVkIHdpdGggZm9yZXN0LCBpbiB0aGUgdmVyeSBtaWRkbGUgb2YgdGhlIHNlYSwgYW5kIGEgZ29kZGVzcyBsaXZlcyB0aGVyZSwgZGF1Z2h0ZXIgb2YgdGhlIG1hZ2ljaWFuIEF0bGFzLCB3aG8gbG9va3MgYWZ0ZXIgdGhlIGJvdHRvbSBvZiB0aGUgb2NlYW4sIGFuZCBjYXJyaWVzIHRoZSBncmVhdCBjb2x1bW5zIHRoYXQga2VlcCBoZWF2ZW4gYW5kIGVhcnRoIGFzdW5kZXIuIFRoaXMgZGF1Z2h0ZXIgb2YgQXRsYXMgaGFzIGdvdCBob2xkIG9mIHBvb3IgdW5oYXBweSBVbHlzc2VzLCBhbmQga2VlcHMgdHJ5aW5nIGJ5IGV2ZXJ5IGtpbmQgb2YgYmxhbmRpc2htZW50IHRvIG1ha2UgaGltIGZvcmdldCBoaXMgaG9tZSwgc28gdGhhdCBoZSBpcyB0aXJlZCBvZiBsaWZlLCBhbmQgdGhpbmtzIG9mIG5vdGhpbmcgYnV0IGhvdyBoZSBtYXkgb25jZSBtb3JlIHNlZSB0aGUgc21va2Ugb2YgaGlzIG93biBjaGltbmV5cy4gWW91LCBzaXIsIHRha2Ugbm8gaGVlZCBvZiB0aGlzLCBhbmQgeWV0IHdoZW4gVWx5c3NlcyB3YXMgYmVmb3JlIFRyb3kgZGlkIGhlIG5vdCBwcm9waXRpYXRlIHlvdSB3aXRoIG1hbnkgYSBidXJudCBzYWNyaWZpY2U/IFdoeSB0aGVuIHNob3VsZCB5b3Uga2VlcCBvbiBiZWluZyBzbyBhbmdyeSB3aXRoIGhpbT8iDQoNCkFuZCBKb3ZlIHNhaWQsICJNeSBjaGlsZCwgd2hhdCBhcmUgeW91IHRhbGtpbmcgYWJvdXQ/IEhvdyBjYW4gSSBmb3JnZXQgVWx5c3NlcyB0aGFuIHdob20gdGhlcmUgaXMgbm8gbW9yZSBjYXBhYmxlIG1hbiBvbiBlYXJ0aCwgbm9yIG1vcmUgbGliZXJhbCBpbiBoaXMgb2ZmZXJpbmdzIHRvIHRoZSBpbW1vcnRhbCBnb2RzIHRoYXQgbGl2ZSBpbiBoZWF2ZW4/IEJlYXIgaW4gbWluZCwgaG93ZXZlciwgdGhhdCBOZXB0dW5lIGlzIHN0aWxsIGZ1cmlvdXMgd2l0aCBVbHlzc2VzIGZvciBoYXZpbmcgYmxpbmRlZCBhbiBleWUgb2YgUG9seXBoZW11cyBraW5nIG9mIHRoZSBDeWNsb3Blcy4gUG9seXBoZW11cyBpcyBzb24gdG8gTmVwdHVuZSBieSB0aGUgbnltcGggVGhvb3NhLCBkYXVnaHRlciB0byB0aGUgc2VhLWtpbmcgUGhvcmN5czsgdGhlcmVmb3JlIHRob3VnaCBoZSB3aWxsIG5vdCBraWxsIFVseXNzZXMgb3V0cmlnaHQsIGhlIHRvcm1lbnRzIGhpbSBieSBwcmV2ZW50aW5nIGhpbSBmcm9tIGdldHRpbmcgaG9tZS4gU3RpbGwsIGxldCB1cyBsYXkgb3VyIGhlYWRzIHRvZ2V0aGVyIGFuZCBzZWUgaG93IHdlIGNhbiBoZWxwIGhpbSB0byByZXR1cm47IE5lcHR1bmUgd2lsbCB0aGVuIGJlIHBhY2lmaWVkLCBmb3IgaWYgd2UgYXJlIGFsbCBvZiBhIG1pbmQgaGUgY2FuIGhhcmRseSBzdGFuZCBvdXQgYWdhaW5zdCB1cy4iDQoNCkFuZCBNaW5lcnZhIHNhaWQsICJGYXRoZXIsIHNvbiBvZiBTYXR1cm4sIEtpbmcgb2Yga2luZ3MsIGlmLCB0aGVuLCB0aGUgZ29kcyBub3cgbWVhbiB0aGF0IFVseXNzZXMgc2hvdWxkIGdldCBob21lLCB3ZSBzaG91bGQgZmlyc3Qgc2VuZCBNZXJjdXJ5IHRvIHRoZSBPZ3lnaWFuIGlzbGFuZCB0byB0ZWxsIENhbHlwc28gdGhhdCB3ZSBoYXZlIG1hZGUgdXAgb3VyIG1pbmRzIGFuZCB0aGF0IGhlIGlzIHRvIHJldHVybi4gSW4gdGhlIG1lYW50aW1lIEkgd2lsbCBnbyB0byBJdGhhY2EsIHRvIHB1dCBoZWFydCBpbnRvIFVseXNzZXMnIHNvbiBUZWxlbWFjaHVzOyBJIHdpbGwgZW1ib2xkZW4gaGltIHRvIGNhbGwgdGhlIEFjaGFlYW5zIGluIGFzc2VtYmx5LCBhbmQgc3BlYWsgb3V0IHRvIHRoZSBzdWl0b3JzIG9mIGhpcyBtb3RoZXIgUGVuZWxvcGUsIHdobyBwZXJzaXN0IGluIGVhdGluZyB1cCBhbnkgbnVtYmVyIG9mIGhpcyBzaGVlcCBhbmQgb3hlbjsgSSB3aWxsIGFsc28gY29uZHVjdCBoaW0gdG8gU3BhcnRhIGFuZCB0byBQeWxvcywgdG8gc2VlIGlmIGhlIGNhbiBoZWFyIGFueXRoaW5nIGFib3V0IHRoZSByZXR1cm4gb2YgaGlzIGRlYXIgZmF0aGVyLSBmb3IgdGhpcyB3aWxsIG1ha2UgcGVvcGxlIHNwZWFrIHdlbGwgb2YgaGltLiINCg0KU28gc2F5aW5nIHNoZSBib3VuZCBvbiBoZXIgZ2xpdHRlcmluZyBnb2xkZW4gc2FuZGFscywgaW1wZXJpc2hhYmxlLCB3aXRoIHdoaWNoIHNoZSBjYW4gZmx5IGxpa2UgdGhlIHdpbmQgb3ZlciBsYW5kIG9yIHNlYTsgc2hlIGdyYXNwZWQgdGhlIHJlZG91YnRhYmxlIGJyb256ZS1zaG9kIHNwZWFyLCBzbyBzdG91dCBhbmQgc3R1cmR5IGFuZCBzdHJvbmcsIHdoZXJld2l0aCBzaGUgcXVlbGxzIHRoZSByYW5rcyBvZiBoZXJvZXMgd2hvIGhhdmUgZGlzcGxlYXNlZCBoZXIsIGFuZCBkb3duIHNoZSBkYXJ0ZWQgZnJvbSB0aGUgdG9wbW9zdCBzdW1taXRzIG9mIE9seW1wdXMsIHdoZXJlb24gZm9ydGh3aXRoIHNoZSB3YXMgaW4gSXRoYWNhLCBhdCB0aGUgZ2F0ZXdheSBvZiBVbHlzc2VzJyBob3VzZSwgZGlzZ3Vpc2VkIGFzIGEgdmlzaXRvciwgTWVudGVzLCBjaGllZiBvZiB0aGUgVGFwaGlhbnMsIGFuZCBzaGUgaGVsZCBhIGJyb256ZSBzcGVhciBpbiBoZXIgaGFuZC4gVGhlcmUgc2hlIGZvdW5kIHRoZSBsb3JkbHkgc3VpdG9ycyBzZWF0ZWQgb24gaGlkZXMgb2YgdGhlIG94ZW4gd2hpY2ggdGhleSBoYWQga2lsbGVkIGFuZCBlYXRlbiwgYW5kIHBsYXlpbmcgZHJhdWdodHMgaW4gZnJvbnQgb2YgdGhlIGhvdXNlLiBNZW4tc2VydmFudHMgYW5kIHBhZ2VzIHdlcmUgYnVzdGxpbmcgYWJvdXQgdG8gd2FpdCB1cG9uIHRoZW0sIHNvbWUgbWl4aW5nIHdpbmUgd2l0aCB3YXRlciBpbiB0aGUgbWl4aW5nLWJvd2xzLCBzb21lIGNsZWFuaW5nIGRvd24gdGhlIHRhYmxlcyB3aXRoIHdldCBzcG9uZ2VzIGFuZCBsYXlpbmcgdGhlbSBvdXQgYWdhaW4sIGFuZCBzb21lIGN1dHRpbmcgdXAgZ3JlYXQgcXVhbnRpdGllcyBvZiBtZWF0Lg0KDQpUZWxlbWFjaHVzIHNhdyBoZXIgbG9uZyBiZWZvcmUgYW55IG9uZSBlbHNlIGRpZC4gSGUgd2FzIHNpdHRpbmcgbW9vZGlseSBhbW9uZyB0aGUgc3VpdG9ycyB0aGlua2luZyBhYm91dCBoaXMgYnJhdmUgZmF0aGVyLCBhbmQgaG93IGhlIHdvdWxkIHNlbmQgdGhlbSBmbHlpbmcgb3V0IG9mIHRoZSBob3VzZSwgaWYgaGUgd2VyZSB0byBjb21lIHRvIGhpcyBvd24gYWdhaW4gYW5kIGJlIGhvbm91cmVkIGFzIGluIGRheXMgZ29uZSBieS4gVGh1cyBicm9vZGluZyBhcyBoZSBzYXQgYW1vbmcgdGhlbSwgaGUgY2F1Z2h0IHNpZ2h0IG9mIE1pbmVydmEgYW5kIHdlbnQgc3RyYWlnaHQgdG8gdGhlIGdhdGUsIGZvciBoZSB3YXMgdmV4ZWQgdGhhdCBhIHN0cmFuZ2VyIHNob3VsZCBiZSBrZXB0IHdhaXRpbmcgZm9yIGFkbWl0dGFuY2UuIEhlIHRvb2sgaGVyIHJpZ2h0IGhhbmQgaW4gaGlzIG93biwgYW5kIGJhZGUgaGVyIGdpdmUgaGltIGhlciBzcGVhci4gIldlbGNvbWUsIiBzYWlkIGhlLCAidG8gb3VyIGhvdXNlLCBhbmQgd2hlbiB5b3UgaGF2ZSBwYXJ0YWtlbiBvZiBmb29kIHlvdSBzaGFsbCB0ZWxsIHVzIHdoYXQgeW91IGhhdmUgY29tZSBmb3IuIg0KDQpIZSBsZWQgdGhlIHdheSBhcyBoZSBzcG9rZSwgYW5kIE1pbmVydmEgZm9sbG93ZWQgaGltLiBXaGVuIHRoZXkgd2VyZSB3aXRoaW4gaGUgdG9vayBoZXIgc3BlYXIgYW5kIHNldCBpdCBpbiB0aGUgc3BlYXItIHN0YW5kIGFnYWluc3QgYSBzdHJvbmcgYmVhcmluZy1wb3N0IGFsb25nIHdpdGggdGhlIG1hbnkgb3RoZXIgc3BlYXJzIG9mIGhpcyB1bmhhcHB5IGZhdGhlciwgYW5kIGhlIGNvbmR1Y3RlZCBoZXIgdG8gYSByaWNobHkgZGVjb3JhdGVkIHNlYXQgdW5kZXIgd2hpY2ggaGUgdGhyZXcgYSBjbG90aCBvZiBkYW1hc2suIFRoZXJlIHdhcyBhIGZvb3RzdG9vbCBhbHNvIGZvciBoZXIgZmVldCwgYW5kIGhlIHNldCBhbm90aGVyIHNlYXQgbmVhciBoZXIgZm9yIGhpbXNlbGYsIGF3YXkgZnJvbSB0aGUgc3VpdG9ycywgdGhhdCBzaGUgbWlnaHQgbm90IGJlIGFubm95ZWQgd2hpbGUgZWF0aW5nIGJ5IHRoZWlyIG5vaXNlIGFuZCBpbnNvbGVuY2UsIGFuZCB0aGF0IGhlIG1pZ2h0IGFzayBoZXIgbW9yZSBmcmVlbHkgYWJvdXQgaGlzIGZhdGhlci4NCg0KQSBtYWlkIHNlcnZhbnQgdGhlbiBicm91Z2h0IHRoZW0gd2F0ZXIgaW4gYSBiZWF1dGlmdWwgZ29sZGVuIGV3ZXIgYW5kIHBvdXJlZCBpdCBpbnRvIGEgc2lsdmVyIGJhc2luIGZvciB0aGVtIHRvIHdhc2ggdGhlaXIgaGFuZHMsIGFuZCBzaGUgZHJldyBhIGNsZWFuIHRhYmxlIGJlc2lkZSB0aGVtLiBBbiB1cHBlciBzZXJ2YW50IGJyb3VnaHQgdGhlbSBicmVhZCwgYW5kIG9mZmVyZWQgdGhlbSBtYW55IGdvb2QgdGhpbmdzIG9mIHdoYXQgdGhlcmUgd2FzIGluIHRoZSBob3VzZSwgdGhlIGNhcnZlciBmZXRjaGVkIHRoZW0gcGxhdGVzIG9mIGFsbCBtYW5uZXIgb2YgbWVhdHMgYW5kIHNldCBjdXBzIG9mIGdvbGQgYnkgdGhlaXIgc2lkZSwgYW5kIGEgbWFuLXNlcnZhbnQgYnJvdWdodCB0aGVtIHdpbmUgYW5kIHBvdXJlZCBpdCBvdXQgZm9yIHRoZW0uDQoNClRoZW4gdGhlIHN1aXRvcnMgY2FtZSBpbiBhbmQgdG9vayB0aGVpciBwbGFjZXMgb24gdGhlIGJlbmNoZXMgYW5kIHNlYXRzLiBGb3J0aHdpdGggbWVuIHNlcnZhbnRzIHBvdXJlZCB3YXRlciBvdmVyIHRoZWlyIGhhbmRzLCBtYWlkcyB3ZW50IHJvdW5kIHdpdGggdGhlIGJyZWFkLWJhc2tldHMsIHBhZ2VzIGZpbGxlZCB0aGUgbWl4aW5nLWJvd2xzIHdpdGggd2luZSBhbmQgd2F0ZXIsIGFuZCB0aGV5IGxhaWQgdGhlaXIgaGFuZHMgdXBvbiB0aGUgZ29vZCB0aGluZ3MgdGhhdCB3ZXJlIGJlZm9yZSB0aGVtLiBBcyBzb29uIGFzIHRoZXkgaGFkIGhhZCBlbm91Z2ggdG8gZWF0IGFuZCBkcmluayB0aGV5IHdhbnRlZCBtdXNpYyBhbmQgZGFuY2luZywgd2hpY2ggYXJlIHRoZSBjcm93bmluZyBlbWJlbGxpc2htZW50cyBvZiBhIGJhbnF1ZXQsIHNvIGEgc2VydmFudCBicm91Z2h0IGEgbHlyZSB0byBQaGVtaXVzLCB3aG9tIHRoZXkgY29tcGVsbGVkIHBlcmZvcmNlIHRvIHNpbmcgdG8gdGhlbS4gQXMgc29vbiBhcyBoZSB0b3VjaGVkIGhpcyBseXJlIGFuZCBiZWdhbiB0byBzaW5nIFRlbGVtYWNodXMgc3Bva2UgbG93IHRvIE1pbmVydmEsIHdpdGggaGlzIGhlYWQgY2xvc2UgdG8gaGVycyB0aGF0IG5vIG1hbiBtaWdodCBoZWFyLg0KDQoiSSBob3BlLCBzaXIsIiBzYWlkIGhlLCAidGhhdCB5b3Ugd2lsbCBub3QgYmUgb2ZmZW5kZWQgd2l0aCB3aGF0IEkgYW0gZ29pbmcgdG8gc2F5LiBTaW5naW5nIGNvbWVzIGNoZWFwIHRvIHRob3NlIHdobyBkbyBub3QgcGF5IGZvciBpdCwgYW5kIGFsbCB0aGlzIGlzIGRvbmUgYXQgdGhlIGNvc3Qgb2Ygb25lIHdob3NlIGJvbmVzIGxpZSByb3R0aW5nIGluIHNvbWUgd2lsZGVybmVzcyBvciBncmluZGluZyB0byBwb3dkZXIgaW4gdGhlIHN1cmYuIElmIHRoZXNlIG1lbiB3ZXJlIHRvIHNlZSBteSBmYXRoZXIgY29tZSBiYWNrIHRvIEl0aGFjYSB0aGV5IHdvdWxkIHByYXkgZm9yIGxvbmdlciBsZWdzIHJhdGhlciB0aGFuIGEgbG9uZ2VyIHB1cnNlLCBmb3IgbW9uZXkgd291bGQgbm90IHNlcnZlIHRoZW07IGJ1dCBoZSwgYWxhcywgaGFzIGZhbGxlbiBvbiBhbiBpbGwgZmF0ZSwgYW5kIGV2ZW4gd2hlbiBwZW9wbGUgZG8gc29tZXRpbWVzIHNheSB0aGF0IGhlIGlzIGNvbWluZywgd2Ugbm8gbG9uZ2VyIGhlZWQgdGhlbTsgd2Ugc2hhbGwgbmV2ZXIgc2VlIGhpbSBhZ2Fpbi4gQW5kIG5vdywgc2lyLCB0ZWxsIG1lIGFuZCB0ZWxsIG1lIHRydWUsIHdobyB5b3UgYXJlIGFuZCB3aGVyZSB5b3UgY29tZSBmcm9tLiBUZWxsIG1lIG9mIHlvdXIgdG93biBhbmQgcGFyZW50cywgd2hhdCBtYW5uZXIgb2Ygc2hpcCB5b3UgY2FtZSBpbiwgaG93IHlvdXIgY3JldyBicm91Z2h0IHlvdSB0byBJdGhhY2EsIGFuZCBvZiB3aGF0IG5hdGlvbiB0aGV5IGRlY2xhcmVkIHRoZW1zZWx2ZXMgdG8gYmUtIGZvciB5b3UgY2Fubm90IGhhdmUgY29tZSBieSBsYW5kLiBUZWxsIG1lIGFsc28gdHJ1bHksIGZvciBJIHdhbnQgdG8ga25vdywgYXJlIHlvdSBhIHN0cmFuZ2VyIHRvIHRoaXMgaG91c2UsIG9yIGhhdmUgeW91IGJlZW4gaGVyZSBpbiBteSBmYXRoZXIncyB0aW1lPyBJbiB0aGUgb2xkIGRheXMgd2UgaGFkIG1hbnkgdmlzaXRvcnMgZm9yIG15IGZhdGhlciB3ZW50IGFib3V0IG11Y2ggaGltc2VsZi4iDQoNCkFuZCBNaW5lcnZhIGFuc3dlcmVkLCAiSSB3aWxsIHRlbGwgeW91IHRydWx5IGFuZCBwYXJ0aWN1bGFybHkgYWxsIGFib3V0IGl0LiBJIGFtIE1lbnRlcywgc29uIG9mIEFuY2hpYWx1cywgYW5kIEkgYW0gS2luZyBvZiB0aGUgVGFwaGlhbnMuIEkgaGF2ZSBjb21lIGhlcmUgd2l0aCBteSBzaGlwIGFuZCBjcmV3LCBvbiBhIHZveWFnZSB0byBtZW4gb2YgYSBmb3JlaWduIHRvbmd1ZSBiZWluZyBib3VuZCBmb3IgVGVtZXNhIHdpdGggYSBjYXJnbyBvZiBpcm9uLCBhbmQgSSBzaGFsbCBicmluZyBiYWNrIGNvcHBlci4gQXMgZm9yIG15IHNoaXAsIGl0IGxpZXMgb3ZlciB5b25kZXIgb2ZmIHRoZSBvcGVuIGNvdW50cnkgYXdheSBmcm9tIHRoZSB0b3duLCBpbiB0aGUgaGFyYm91ciBSaGVpdGhyb24gdW5kZXIgdGhlIHdvb2RlZCBtb3VudGFpbiBOZXJpdHVtLiBPdXIgZmF0aGVycyB3ZXJlIGZyaWVuZHMgYmVmb3JlIHVzLCBhcyBvbGQgTGFlcnRlcyB3aWxsIHRlbGwgeW91LCBpZiB5b3Ugd2lsbCBnbyBhbmQgYXNrIGhpbS4gVGhleSBzYXksIGhvd2V2ZXIsIHRoYXQgaGUgbmV2ZXIgY29tZXMgdG8gdG93biBub3csIGFuZCBsaXZlcyBieSBoaW1zZWxmIGluIHRoZSBjb3VudHJ5LCBmYXJpbmcgaGFyZGx5LCB3aXRoIGFuIG9sZCB3b21hbiB0byBsb29rIGFmdGVyIGhpbSBhbmQgZ2V0IGhpcyBkaW5uZXIgZm9yIGhpbSwgd2hlbiBoZSBjb21lcyBpbiB0aXJlZCBmcm9tIHBvdHRlcmluZyBhYm91dCBoaXMgdmluZXlhcmQuIFRoZXkgdG9sZCBtZSB5b3VyIGZhdGhlciB3YXMgYXQgaG9tZSBhZ2FpbiwgYW5kIHRoYXQgd2FzIHdoeSBJIGNhbWUsIGJ1dCBpdCBzZWVtcyB0aGUgZ29kcyBhcmUgc3RpbGwga2VlcGluZyBoaW0gYmFjaywgZm9yIGhlIGlzIG5vdCBkZWFkIHlldCBub3Qgb24gdGhlIG1haW5sYW5kLiBJdCBpcyBtb3JlIGxpa2VseSBoZSBpcyBvbiBzb21lIHNlYS1naXJ0IGlzbGFuZCBpbiBtaWQgb2NlYW4sIG9yIGEgcHJpc29uZXIgYW1vbmcgc2F2YWdlcyB3aG8gYXJlIGRldGFpbmluZyBoaW0gYWdhaW5zdCBoaXMgd2lsbCBJIGFtIG5vIHByb3BoZXQsIGFuZCBrbm93IHZlcnkgbGl0dGxlIGFib3V0IG9tZW5zLCBidXQgSSBzcGVhayBhcyBpdCBpcyBib3JuZSBpbiB1cG9uIG1lIGZyb20gaGVhdmVuLCBhbmQgYXNzdXJlIHlvdSB0aGF0IGhlIHdpbGwgbm90IGJlIGF3YXkgbXVjaCBsb25nZXI7IGZvciBoZSBpcyBhIG1hbiBvZiBzdWNoIHJlc291cmNlIHRoYXQgZXZlbiB0aG91Z2ggaGUgd2VyZSBpbiBjaGFpbnMgb2YgaXJvbiBoZSB3b3VsZCBmaW5kIHNvbWUgbWVhbnMgb2YgZ2V0dGluZyBob21lIGFnYWluLiBCdXQgdGVsbCBtZSwgYW5kIHRlbGwgbWUgdHJ1ZSwgY2FuIFVseXNzZXMgcmVhbGx5IGhhdmUgc3VjaCBhIGZpbmUgbG9va2luZyBmZWxsb3cgZm9yIGEgc29uPyBZb3UgYXJlIGluZGVlZCB3b25kZXJmdWxseSBsaWtlIGhpbSBhYm91dCB0aGUgaGVhZCBhbmQgZXllcywgZm9yIHdlIHdlcmUgY2xvc2UgZnJpZW5kcyBiZWZvcmUgaGUgc2V0IHNhaWwgZm9yIFRyb3kgd2hlcmUgdGhlIGZsb3dlciBvZiBhbGwgdGhlIEFyZ2l2ZXMgd2VudCBhbHNvLiBTaW5jZSB0aGF0IHRpbWUgd2UgaGF2ZSBuZXZlciBlaXRoZXIgb2YgdXMgc2VlbiB0aGUgb3RoZXIuIg0KDQoiTXkgbW90aGVyLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgdGVsbHMgbWUgSSBhbSBzb24gdG8gVWx5c3NlcywgYnV0IGl0IGlzIGEgd2lzZSBjaGlsZCB0aGF0IGtub3dzIGhpcyBvd24gZmF0aGVyLiBXb3VsZCB0aGF0IEkgd2VyZSBzb24gdG8gb25lIHdobyBoYWQgZ3Jvd24gb2xkIHVwb24gaGlzIG93biBlc3RhdGVzLCBmb3IsIHNpbmNlIHlvdSBhc2sgbWUsIHRoZXJlIGlzIG5vIG1vcmUgaWxsLXN0YXJyZWQgbWFuIHVuZGVyIGhlYXZlbiB0aGFuIGhlIHdobyB0aGV5IHRlbGwgbWUgaXMgbXkgZmF0aGVyLiINCg0KQW5kIE1pbmVydmEgc2FpZCwgIlRoZXJlIGlzIG5vIGZlYXIgb2YgeW91ciByYWNlIGR5aW5nIG91dCB5ZXQsIHdoaWxlIFBlbmVsb3BlIGhhcyBzdWNoIGEgZmluZSBzb24gYXMgeW91IGFyZS4gQnV0IHRlbGwgbWUsIGFuZCB0ZWxsIG1lIHRydWUsIHdoYXQgaXMgdGhlIG1lYW5pbmcgb2YgYWxsIHRoaXMgZmVhc3RpbmcsIGFuZCB3aG8gYXJlIHRoZXNlIHBlb3BsZT8gV2hhdCBpcyBpdCBhbGwgYWJvdXQ/IEhhdmUgeW91IHNvbWUgYmFucXVldCwgb3IgaXMgdGhlcmUgYSB3ZWRkaW5nIGluIHRoZSBmYW1pbHktIGZvciBubyBvbmUgc2VlbXMgdG8gYmUgYnJpbmdpbmcgYW55IHByb3Zpc2lvbnMgb2YgaGlzIG93bj8gQW5kIHRoZSBndWVzdHMtIGhvdyBhdHJvY2lvdXNseSB0aGV5IGFyZSBiZWhhdmluZzsgd2hhdCByaW90IHRoZXkgbWFrZSBvdmVyIHRoZSB3aG9sZSBob3VzZTsgaXQgaXMgZW5vdWdoIHRvIGRpc2d1c3QgYW55IHJlc3BlY3RhYmxlIHBlcnNvbiB3aG8gY29tZXMgbmVhciB0aGVtLiINCg0KIlNpciwiIHNhaWQgVGVsZW1hY2h1cywgImFzIHJlZ2FyZHMgeW91ciBxdWVzdGlvbiwgc28gbG9uZyBhcyBteSBmYXRoZXIgd2FzIGhlcmUgaXQgd2FzIHdlbGwgd2l0aCB1cyBhbmQgd2l0aCB0aGUgaG91c2UsIGJ1dCB0aGUgZ29kcyBpbiB0aGVpciBkaXNwbGVhc3VyZSBoYXZlIHdpbGxlZCBpdCBvdGhlcndpc2UsIGFuZCBoYXZlIGhpZGRlbiBoaW0gYXdheSBtb3JlIGNsb3NlbHkgdGhhbiBtb3J0YWwgbWFuIHdhcyBldmVyIHlldCBoaWRkZW4uIEkgY291bGQgaGF2ZSBib3JuZSBpdCBiZXR0ZXIgZXZlbiB0aG91Z2ggaGUgd2VyZSBkZWFkLCBpZiBoZSBoYWQgZmFsbGVuIHdpdGggaGlzIG1lbiBiZWZvcmUgVHJveSwgb3IgaGFkIGRpZWQgd2l0aCBmcmllbmRzIGFyb3VuZCBoaW0gd2hlbiB0aGUgZGF5cyBvZiBoaXMgZmlnaHRpbmcgd2VyZSBkb25lOyBmb3IgdGhlbiB0aGUgQWNoYWVhbnMgd291bGQgaGF2ZSBidWlsdCBhIG1vdW5kIG92ZXIgaGlzIGFzaGVzLCBhbmQgSSBzaG91bGQgbXlzZWxmIGhhdmUgYmVlbiBoZWlyIHRvIGhpcyByZW5vd247IGJ1dCBub3cgdGhlIHN0b3JtLXdpbmRzIGhhdmUgc3Bpcml0ZWQgaGltIGF3YXkgd2Uga25vdyBub3Qgd2l0aGVyOyBoZSBpcyBnb25lIHdpdGhvdXQgbGVhdmluZyBzbyBtdWNoIGFzIGEgdHJhY2UgYmVoaW5kIGhpbSwgYW5kIEkgaW5oZXJpdCBub3RoaW5nIGJ1dCBkaXNtYXkuIE5vciBkb2VzIHRoZSBtYXR0ZXIgZW5kIHNpbXBseSB3aXRoIGdyaWVmIGZvciB0aGUgbG9zcyBvZiBteSBmYXRoZXI7IGhlYXZlbiBoYXMgbGFpZCBzb3Jyb3dzIHVwb24gbWUgb2YgeWV0IGFub3RoZXIga2luZDsgZm9yIHRoZSBjaGllZnMgZnJvbSBhbGwgb3VyIGlzbGFuZHMsIER1bGljaGl1bSwgU2FtZSwgYW5kIHRoZSB3b29kbGFuZCBpc2xhbmQgb2YgWmFjeW50aHVzLCBhcyBhbHNvIGFsbCB0aGUgcHJpbmNpcGFsIG1lbiBvZiBJdGhhY2EgaXRzZWxmLCBhcmUgZWF0aW5nIHVwIG15IGhvdXNlIHVuZGVyIHRoZSBwcmV0ZXh0IG9mIHBheWluZyB0aGVpciBjb3VydCB0byBteSBtb3RoZXIsIHdobyB3aWxsIG5laXRoZXIgcG9pbnQgYmxhbmsgc2F5IHRoYXQgc2hlIHdpbGwgbm90IG1hcnJ5LCBub3IgeWV0IGJyaW5nIG1hdHRlcnMgdG8gYW4gZW5kOyBzbyB0aGV5IGFyZSBtYWtpbmcgaGF2b2Mgb2YgbXkgZXN0YXRlLCBhbmQgYmVmb3JlIGxvbmcgd2lsbCBkbyBzbyBhbHNvIHdpdGggbXlzZWxmLiINCg0KIklzIHRoYXQgc28/IiBleGNsYWltZWQgTWluZXJ2YSwgInRoZW4geW91IGRvIGluZGVlZCB3YW50IFVseXNzZXMgaG9tZSBhZ2Fpbi4gR2l2ZSBoaW0gaGlzIGhlbG1ldCwgc2hpZWxkLCBhbmQgYSBjb3VwbGUgbGFuY2VzLCBhbmQgaWYgaGUgaXMgdGhlIG1hbiBoZSB3YXMgd2hlbiBJIGZpcnN0IGtuZXcgaGltIGluIG91ciBob3VzZSwgZHJpbmtpbmcgYW5kIG1ha2luZyBtZXJyeSwgaGUgd291bGQgc29vbiBsYXkgaGlzIGhhbmRzIGFib3V0IHRoZXNlIHJhc2NhbGx5IHN1aXRvcnMsIHdlcmUgaGUgdG8gc3RhbmQgb25jZSBtb3JlIHVwb24gaGlzIG93biB0aHJlc2hvbGQuIEhlIHdhcyB0aGVuIGNvbWluZyBmcm9tIEVwaHlyYSwgd2hlcmUgaGUgaGFkIGJlZW4gdG8gYmVnIHBvaXNvbiBmb3IgaGlzIGFycm93cyBmcm9tIElsdXMsIHNvbiBvZiBNZXJtZXJ1cy4gSWx1cyBmZWFyZWQgdGhlIGV2ZXItbGl2aW5nIGdvZHMgYW5kIHdvdWxkIG5vdCBnaXZlIGhpbSBhbnksIGJ1dCBteSBmYXRoZXIgbGV0IGhpbSBoYXZlIHNvbWUsIGZvciBoZSB3YXMgdmVyeSBmb25kIG9mIGhpbS4gSWYgVWx5c3NlcyBpcyB0aGUgbWFuIGhlIHRoZW4gd2FzIHRoZXNlIHN1aXRvcnMgd2lsbCBoYXZlIGEgc2hvcnQgc2hyaWZ0IGFuZCBhIHNvcnJ5IHdlZGRpbmcuDQoNCiJCdXQgdGhlcmUhIEl0IHJlc3RzIHdpdGggaGVhdmVuIHRvIGRldGVybWluZSB3aGV0aGVyIGhlIGlzIHRvIHJldHVybiwgYW5kIHRha2UgaGlzIHJldmVuZ2UgaW4gaGlzIG93biBob3VzZSBvciBubzsgSSB3b3VsZCwgaG93ZXZlciwgdXJnZSB5b3UgdG8gc2V0IGFib3V0IHRyeWluZyB0byBnZXQgcmlkIG9mIHRoZXNlIHN1aXRvcnMgYXQgb25jZS4gVGFrZSBteSBhZHZpY2UsIGNhbGwgdGhlIEFjaGFlYW4gaGVyb2VzIGluIGFzc2VtYmx5IHRvLW1vcnJvdyAtbGF5IHlvdXIgY2FzZSBiZWZvcmUgdGhlbSwgYW5kIGNhbGwgaGVhdmVuIHRvIGJlYXIgeW91IHdpdG5lc3MuIEJpZCB0aGUgc3VpdG9ycyB0YWtlIHRoZW1zZWx2ZXMgb2ZmLCBlYWNoIHRvIGhpcyBvd24gcGxhY2UsIGFuZCBpZiB5b3VyIG1vdGhlcidzIG1pbmQgaXMgc2V0IG9uIG1hcnJ5aW5nIGFnYWluLCBsZXQgaGVyIGdvIGJhY2sgdG8gaGVyIGZhdGhlciwgd2hvIHdpbGwgZmluZCBoZXIgYSBodXNiYW5kIGFuZCBwcm92aWRlIGhlciB3aXRoIGFsbCB0aGUgbWFycmlhZ2UgZ2lmdHMgdGhhdCBzbyBkZWFyIGEgZGF1Z2h0ZXIgbWF5IGV4cGVjdC4gQXMgZm9yIHlvdXJzZWxmLCBsZXQgbWUgcHJldmFpbCB1cG9uIHlvdSB0byB0YWtlIHRoZSBiZXN0IHNoaXAgeW91IGNhbiBnZXQsIHdpdGggYSBjcmV3IG9mIHR3ZW50eSBtZW4sIGFuZCBnbyBpbiBxdWVzdCBvZiB5b3VyIGZhdGhlciB3aG8gaGFzIHNvIGxvbmcgYmVlbiBtaXNzaW5nLiBTb21lIG9uZSBtYXkgdGVsbCB5b3Ugc29tZXRoaW5nLCBvciAoYW5kIHBlb3BsZSBvZnRlbiBoZWFyIHRoaW5ncyBpbiB0aGlzIHdheSkgc29tZSBoZWF2ZW4tc2VudCBtZXNzYWdlIG1heSBkaXJlY3QgeW91LiBGaXJzdCBnbyB0byBQeWxvcyBhbmQgYXNrIE5lc3RvcjsgdGhlbmNlIGdvIG9uIHRvIFNwYXJ0YSBhbmQgdmlzaXQgTWVuZWxhdXMsIGZvciBoZSBnb3QgaG9tZSBsYXN0IG9mIGFsbCB0aGUgQWNoYWVhbnM7IGlmIHlvdSBoZWFyIHRoYXQgeW91ciBmYXRoZXIgaXMgYWxpdmUgYW5kIG9uIGhpcyB3YXkgaG9tZSwgeW91IGNhbiBwdXQgdXAgd2l0aCB0aGUgd2FzdGUgdGhlc2Ugc3VpdG9ycyB3aWxsIG1ha2UgZm9yIHlldCBhbm90aGVyIHR3ZWx2ZSBtb250aHMuIElmIG9uIHRoZSBvdGhlciBoYW5kIHlvdSBoZWFyIG9mIGhpcyBkZWF0aCwgY29tZSBob21lIGF0IG9uY2UsIGNlbGVicmF0ZSBoaXMgZnVuZXJhbCByaXRlcyB3aXRoIGFsbCBkdWUgcG9tcCwgYnVpbGQgYSBiYXJyb3cgdG8gaGlzIG1lbW9yeSwgYW5kIG1ha2UgeW91ciBtb3RoZXIgbWFycnkgYWdhaW4uIFRoZW4sIGhhdmluZyBkb25lIGFsbCB0aGlzLCB0aGluayBpdCB3ZWxsIG92ZXIgaW4geW91ciBtaW5kIGhvdywgYnkgZmFpciBtZWFucyBvciBmb3VsLCB5b3UgbWF5IGtpbGwgdGhlc2Ugc3VpdG9ycyBpbiB5b3VyIG93biBob3VzZS4gWW91IGFyZSB0b28gb2xkIHRvIHBsZWFkIGluZmFuY3kgYW55IGxvbmdlcjsgaGF2ZSB5b3Ugbm90IGhlYXJkIGhvdyBwZW9wbGUgYXJlIHNpbmdpbmcgT3Jlc3RlcycgcHJhaXNlcyBmb3IgaGF2aW5nIGtpbGxlZCBoaXMgZmF0aGVyJ3MgbXVyZGVyZXIgQWVnaXN0aHVzPyBZb3UgYXJlIGEgZmluZSwgc21hcnQgbG9va2luZyBmZWxsb3c7IHNob3cgeW91ciBtZXR0bGUsIHRoZW4sIGFuZCBtYWtlIHlvdXJzZWxmIGEgbmFtZSBpbiBzdG9yeS4gTm93LCBob3dldmVyLCBJIG11c3QgZ28gYmFjayB0byBteSBzaGlwIGFuZCB0byBteSBjcmV3LCB3aG8gd2lsbCBiZSBpbXBhdGllbnQgaWYgSSBrZWVwIHRoZW0gd2FpdGluZyBsb25nZXI7IHRoaW5rIHRoZSBtYXR0ZXIgb3ZlciBmb3IgeW91cnNlbGYsIGFuZCByZW1lbWJlciB3aGF0IEkgaGF2ZSBzYWlkIHRvIHlvdS4iDQoNCiJTaXIsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAiaXQgaGFzIGJlZW4gdmVyeSBraW5kIG9mIHlvdSB0byB0YWxrIHRvIG1lIGluIHRoaXMgd2F5LCBhcyB0aG91Z2ggSSB3ZXJlIHlvdXIgb3duIHNvbiwgYW5kIEkgd2lsbCBkbyBhbGwgeW91IHRlbGwgbWU7IEkga25vdyB5b3Ugd2FudCB0byBiZSBnZXR0aW5nIG9uIHdpdGggeW91ciB2b3lhZ2UsIGJ1dCBzdGF5IGEgbGl0dGxlIGxvbmdlciB0aWxsIHlvdSBoYXZlIHRha2VuIGEgYmF0aCBhbmQgcmVmcmVzaGVkIHlvdXJzZWxmLiBJIHdpbGwgdGhlbiBnaXZlIHlvdSBhIHByZXNlbnQsIGFuZCB5b3Ugc2hhbGwgZ28gb24geW91ciB3YXkgcmVqb2ljaW5nOyBJIHdpbGwgZ2l2ZSB5b3Ugb25lIG9mIGdyZWF0IGJlYXV0eSBhbmQgdmFsdWUtIGEga2VlcHNha2Ugc3VjaCBhcyBvbmx5IGRlYXIgZnJpZW5kcyBnaXZlIHRvIG9uZSBhbm90aGVyLiINCg0KTWluZXJ2YSBhbnN3ZXJlZCwgIkRvIG5vdCB0cnkgdG8ga2VlcCBtZSwgZm9yIEkgd291bGQgYmUgb24gbXkgd2F5IGF0IG9uY2UuIEFzIGZvciBhbnkgcHJlc2VudCB5b3UgbWF5IGJlIGRpc3Bvc2VkIHRvIG1ha2UgbWUsIGtlZXAgaXQgdGlsbCBJIGNvbWUgYWdhaW4sIGFuZCBJIHdpbGwgdGFrZSBpdCBob21lIHdpdGggbWUuIFlvdSBzaGFsbCBnaXZlIG1lIGEgdmVyeSBnb29kIG9uZSwgYW5kIEkgd2lsbCBnaXZlIHlvdSBvbmUgb2Ygbm8gbGVzcyB2YWx1ZSBpbiByZXR1cm4uIg0KDQpXaXRoIHRoZXNlIHdvcmRzIHNoZSBmbGV3IGF3YXkgbGlrZSBhIGJpcmQgaW50byB0aGUgYWlyLCBidXQgc2hlIGhhZCBnaXZlbiBUZWxlbWFjaHVzIGNvdXJhZ2UsIGFuZCBoYWQgbWFkZSBoaW0gdGhpbmsgbW9yZSB0aGFuIGV2ZXIgYWJvdXQgaGlzIGZhdGhlci4gSGUgZmVsdCB0aGUgY2hhbmdlLCB3b25kZXJlZCBhdCBpdCwgYW5kIGtuZXcgdGhhdCB0aGUgc3RyYW5nZXIgaGFkIGJlZW4gYSBnb2QsIHNvIGhlIHdlbnQgc3RyYWlnaHQgdG8gd2hlcmUgdGhlIHN1aXRvcnMgd2VyZSBzaXR0aW5nLg0KDQpQaGVtaXVzIHdhcyBzdGlsbCBzaW5naW5nLCBhbmQgaGlzIGhlYXJlcnMgc2F0IHJhcHQgaW4gc2lsZW5jZSBhcyBoZSB0b2xkIHRoZSBzYWQgdGFsZSBvZiB0aGUgcmV0dXJuIGZyb20gVHJveSwgYW5kIHRoZSBpbGxzIE1pbmVydmEgaGFkIGxhaWQgdXBvbiB0aGUgQWNoYWVhbnMuIFBlbmVsb3BlLCBkYXVnaHRlciBvZiBJY2FyaXVzLCBoZWFyZCBoaXMgc29uZyBmcm9tIGhlciByb29tIHVwc3RhaXJzLCBhbmQgY2FtZSBkb3duIGJ5IHRoZSBncmVhdCBzdGFpcmNhc2UsIG5vdCBhbG9uZSwgYnV0IGF0dGVuZGVkIGJ5IHR3byBvZiBoZXIgaGFuZG1haWRzLiBXaGVuIHNoZSByZWFjaGVkIHRoZSBzdWl0b3JzIHNoZSBzdG9vZCBieSBvbmUgb2YgdGhlIGJlYXJpbmcgcG9zdHMgdGhhdCBzdXBwb3J0ZWQgdGhlIHJvb2Ygb2YgdGhlIGNsb2lzdGVycyB3aXRoIGEgc3RhaWQgbWFpZGVuIG9uIGVpdGhlciBzaWRlIG9mIGhlci4gU2hlIGhlbGQgYSB2ZWlsLCBtb3Jlb3ZlciwgYmVmb3JlIGhlciBmYWNlLCBhbmQgd2FzIHdlZXBpbmcgYml0dGVybHkuDQoNCiJQaGVtaXVzLCIgc2hlIGNyaWVkLCAieW91IGtub3cgbWFueSBhbm90aGVyIGZlYXQgb2YgZ29kcyBhbmQgaGVyb2VzLCBzdWNoIGFzIHBvZXRzIGxvdmUgdG8gY2VsZWJyYXRlLiBTaW5nIHRoZSBzdWl0b3JzIHNvbWUgb25lIG9mIHRoZXNlLCBhbmQgbGV0IHRoZW0gZHJpbmsgdGhlaXIgd2luZSBpbiBzaWxlbmNlLCBidXQgY2Vhc2UgdGhpcyBzYWQgdGFsZSwgZm9yIGl0IGJyZWFrcyBteSBzb3Jyb3dmdWwgaGVhcnQsIGFuZCByZW1pbmRzIG1lIG9mIG15IGxvc3QgaHVzYmFuZCB3aG9tIEkgbW91cm4gZXZlciB3aXRob3V0IGNlYXNpbmcsIGFuZCB3aG9zZSBuYW1lIHdhcyBncmVhdCBvdmVyIGFsbCBIZWxsYXMgYW5kIG1pZGRsZSBBcmdvcy4iDQoNCiJNb3RoZXIsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAibGV0IHRoZSBiYXJkIHNpbmcgd2hhdCBoZSBoYXMgYSBtaW5kIHRvOyBiYXJkcyBkbyBub3QgbWFrZSB0aGUgaWxscyB0aGV5IHNpbmcgb2Y7IGl0IGlzIEpvdmUsIG5vdCB0aGV5LCB3aG8gbWFrZXMgdGhlbSwgYW5kIHdobyBzZW5kcyB3ZWFsIG9yIHdvZSB1cG9uIG1hbmtpbmQgYWNjb3JkaW5nIHRvIGhpcyBvd24gZ29vZCBwbGVhc3VyZS4gVGhpcyBmZWxsb3cgbWVhbnMgbm8gaGFybSBieSBzaW5naW5nIHRoZSBpbGwtZmF0ZWQgcmV0dXJuIG9mIHRoZSBEYW5hYW5zLCBmb3IgcGVvcGxlIGFsd2F5cyBhcHBsYXVkIHRoZSBsYXRlc3Qgc29uZ3MgbW9zdCB3YXJtbHkuIE1ha2UgdXAgeW91ciBtaW5kIHRvIGl0IGFuZCBiZWFyIGl0OyBVbHlzc2VzIGlzIG5vdCB0aGUgb25seSBtYW4gd2hvIG5ldmVyIGNhbWUgYmFjayBmcm9tIFRyb3ksIGJ1dCBtYW55IGFub3RoZXIgd2VudCBkb3duIGFzIHdlbGwgYXMgaGUuIEdvLCB0aGVuLCB3aXRoaW4gdGhlIGhvdXNlIGFuZCBidXN5IHlvdXJzZWxmIHdpdGggeW91ciBkYWlseSBkdXRpZXMsIHlvdXIgbG9vbSwgeW91ciBkaXN0YWZmLCBhbmQgdGhlIG9yZGVyaW5nIG9mIHlvdXIgc2VydmFudHM7IGZvciBzcGVlY2ggaXMgbWFuJ3MgbWF0dGVyLCBhbmQgbWluZSBhYm92ZSBhbGwgb3RoZXJzLSBmb3IgaXQgaXMgSSB3aG8gYW0gbWFzdGVyIGhlcmUuIg0KDQpTaGUgd2VudCB3b25kZXJpbmcgYmFjayBpbnRvIHRoZSBob3VzZSwgYW5kIGxhaWQgaGVyIHNvbidzIHNheWluZyBpbiBoZXIgaGVhcnQuIFRoZW4sIGdvaW5nIHVwc3RhaXJzIHdpdGggaGVyIGhhbmRtYWlkcyBpbnRvIGhlciByb29tLCBzaGUgbW91cm5lZCBoZXIgZGVhciBodXNiYW5kIHRpbGwgTWluZXJ2YSBzaGVkIHN3ZWV0IHNsZWVwIG92ZXIgaGVyIGV5ZXMuIEJ1dCB0aGUgc3VpdG9ycyB3ZXJlIGNsYW1vcm91cyB0aHJvdWdob3V0IHRoZSBjb3ZlcmVkIGNsb2lzdGVycywgYW5kIHByYXllZCBlYWNoIG9uZSB0aGF0IGhlIG1pZ2h0IGJlIGhlciBiZWQgZmVsbG93Lg0KDQpUaGVuIFRlbGVtYWNodXMgc3Bva2UsICJTaGFtZWxlc3MsIiBoZSBjcmllZCwgImFuZCBpbnNvbGVudCBzdWl0b3JzLCBsZXQgdXMgZmVhc3QgYXQgb3VyIHBsZWFzdXJlIG5vdywgYW5kIGxldCB0aGVyZSBiZSBubyBicmF3bGluZywgZm9yIGl0IGlzIGEgcmFyZSB0aGluZyB0byBoZWFyIGEgbWFuIHdpdGggc3VjaCBhIGRpdmluZSB2b2ljZSBhcyBQaGVtaXVzIGhhczsgYnV0IGluIHRoZSBtb3JuaW5nIG1lZXQgbWUgaW4gZnVsbCBhc3NlbWJseSB0aGF0IEkgbWF5IGdpdmUgeW91IGZvcm1hbCBub3RpY2UgdG8gZGVwYXJ0LCBhbmQgZmVhc3QgYXQgb25lIGFub3RoZXIncyBob3VzZXMsIHR1cm4gYW5kIHR1cm4gYWJvdXQsIGF0IHlvdXIgb3duIGNvc3QuIElmIG9uIHRoZSBvdGhlciBoYW5kIHlvdSBjaG9vc2UgdG8gcGVyc2lzdCBpbiBzcHVuZ2luZyB1cG9uIG9uZSBtYW4sIGhlYXZlbiBoZWxwIG1lLCBidXQgSm92ZSBzaGFsbCByZWNrb24gd2l0aCB5b3UgaW4gZnVsbCwgYW5kIHdoZW4geW91IGZhbGwgaW4gbXkgZmF0aGVyJ3MgaG91c2UgdGhlcmUgc2hhbGwgYmUgbm8gbWFuIHRvIGF2ZW5nZSB5b3UuIg0KDQpUaGUgc3VpdG9ycyBiaXQgdGhlaXIgbGlwcyBhcyB0aGV5IGhlYXJkIGhpbSwgYW5kIG1hcnZlbGxlZCBhdCB0aGUgYm9sZG5lc3Mgb2YgaGlzIHNwZWVjaC4gVGhlbiwgQW50aW5vdXMsIHNvbiBvZiBFdXBlaXRoZXMsIHNhaWQsICJUaGUgZ29kcyBzZWVtIHRvIGhhdmUgZ2l2ZW4geW91IGxlc3NvbnMgaW4gYmx1c3RlciBhbmQgdGFsbCB0YWxraW5nOyBtYXkgSm92ZSBuZXZlciBncmFudCB5b3UgdG8gYmUgY2hpZWYgaW4gSXRoYWNhIGFzIHlvdXIgZmF0aGVyIHdhcyBiZWZvcmUgeW91LiINCg0KVGVsZW1hY2h1cyBhbnN3ZXJlZCwgIkFudGlub3VzLCBkbyBub3QgY2hpZGUgd2l0aCBtZSwgYnV0LCBnb2Qgd2lsbGluZywgSSB3aWxsIGJlIGNoaWVmIHRvbyBpZiBJIGNhbi4gSXMgdGhpcyB0aGUgd29yc3QgZmF0ZSB5b3UgY2FuIHRoaW5rIG9mIGZvciBtZT8gSXQgaXMgbm8gYmFkIHRoaW5nIHRvIGJlIGEgY2hpZWYsIGZvciBpdCBicmluZ3MgYm90aCByaWNoZXMgYW5kIGhvbm91ci4gU3RpbGwsIG5vdyB0aGF0IFVseXNzZXMgaXMgZGVhZCB0aGVyZSBhcmUgbWFueSBncmVhdCBtZW4gaW4gSXRoYWNhIGJvdGggb2xkIGFuZCB5b3VuZywgYW5kIHNvbWUgb3RoZXIgbWF5IHRha2UgdGhlIGxlYWQgYW1vbmcgdGhlbTsgbmV2ZXJ0aGVsZXNzIEkgd2lsbCBiZSBjaGllZiBpbiBteSBvd24gaG91c2UsIGFuZCB3aWxsIHJ1bGUgdGhvc2Ugd2hvbSBVbHlzc2VzIGhhcyB3b24gZm9yIG1lLiINCg0KVGhlbiBFdXJ5bWFjaHVzLCBzb24gb2YgUG9seWJ1cywgYW5zd2VyZWQsICJJdCByZXN0cyB3aXRoIGhlYXZlbiB0byBkZWNpZGUgd2hvIHNoYWxsIGJlIGNoaWVmIGFtb25nIHVzLCBidXQgeW91IHNoYWxsIGJlIG1hc3RlciBpbiB5b3VyIG93biBob3VzZSBhbmQgb3ZlciB5b3VyIG93biBwb3NzZXNzaW9uczsgbm8gb25lIHdoaWxlIHRoZXJlIGlzIGEgbWFuIGluIEl0aGFjYSBzaGFsbCBkbyB5b3UgdmlvbGVuY2Ugbm9yIHJvYiB5b3UuIEFuZCBub3csIG15IGdvb2QgZmVsbG93LCBJIHdhbnQgdG8ga25vdyBhYm91dCB0aGlzIHN0cmFuZ2VyLiBXaGF0IGNvdW50cnkgZG9lcyBoZSBjb21lIGZyb20/IE9mIHdoYXQgZmFtaWx5IGlzIGhlLCBhbmQgd2hlcmUgaXMgaGlzIGVzdGF0ZT8gSGFzIGhlIGJyb3VnaHQgeW91IG5ld3MgYWJvdXQgdGhlIHJldHVybiBvZiB5b3VyIGZhdGhlciwgb3Igd2FzIGhlIG9uIGJ1c2luZXNzIG9mIGhpcyBvd24/IEhlIHNlZW1lZCBhIHdlbGwtdG8tZG8gbWFuLCBidXQgaGUgaHVycmllZCBvZmYgc28gc3VkZGVubHkgdGhhdCBoZSB3YXMgZ29uZSBpbiBhIG1vbWVudCBiZWZvcmUgd2UgY291bGQgZ2V0IHRvIGtub3cgaGltLiINCg0KIk15IGZhdGhlciBpcyBkZWFkIGFuZCBnb25lLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgImFuZCBldmVuIGlmIHNvbWUgcnVtb3VyIHJlYWNoZXMgbWUgSSBwdXQgbm8gbW9yZSBmYWl0aCBpbiBpdCBub3cuIE15IG1vdGhlciBkb2VzIGluZGVlZCBzb21ldGltZXMgc2VuZCBmb3IgYSBzb290aHNheWVyIGFuZCBxdWVzdGlvbiBoaW0sIGJ1dCBJIGdpdmUgaGlzIHByb3BoZWN5aW5ncyBubyBoZWVkLiBBcyBmb3IgdGhlIHN0cmFuZ2VyLCBoZSB3YXMgTWVudGVzLCBzb24gb2YgQW5jaGlhbHVzLCBjaGllZiBvZiB0aGUgVGFwaGlhbnMsIGFuIG9sZCBmcmllbmQgb2YgbXkgZmF0aGVyJ3MuIiBCdXQgaW4gaGlzIGhlYXJ0IGhlIGtuZXcgdGhhdCBpdCBoYWQgYmVlbiB0aGUgZ29kZGVzcy4NCg0KVGhlIHN1aXRvcnMgdGhlbiByZXR1cm5lZCB0byB0aGVpciBzaW5naW5nIGFuZCBkYW5jaW5nIHVudGlsIHRoZSBldmVuaW5nOyBidXQgd2hlbiBuaWdodCBmZWxsIHVwb24gdGhlaXIgcGxlYXN1cmluZyB0aGV5IHdlbnQgaG9tZSB0byBiZWQgZWFjaCBpbiBoaXMgb3duIGFib2RlLiBUZWxlbWFjaHVzJ3Mgcm9vbSB3YXMgaGlnaCB1cCBpbiBhIHRvd2VyIHRoYXQgbG9va2VkIG9uIHRvIHRoZSBvdXRlciBjb3VydDsgaGl0aGVyLCB0aGVuLCBoZSBoaWVkLCBicm9vZGluZyBhbmQgZnVsbCBvZiB0aG91Z2h0LiBBIGdvb2Qgb2xkIHdvbWFuLCBFdXJ5Y2xlYSwgZGF1Z2h0ZXIgb2YgT3BzLCB0aGUgc29uIG9mIFBpc2Vub3IsIHdlbnQgYmVmb3JlIGhpbSB3aXRoIGEgY291cGxlIG9mIGJsYXppbmcgdG9yY2hlcy4gTGFlcnRlcyBoYWQgYm91Z2h0IGhlciB3aXRoIGhpcyBvd24gbW9uZXkgd2hlbiBzaGUgd2FzIHF1aXRlIHlvdW5nOyBoZSBnYXZlIHRoZSB3b3J0aCBvZiB0d2VudHkgb3hlbiBmb3IgaGVyLCBhbmQgc2hld2VkIGFzIG11Y2ggcmVzcGVjdCB0byBoZXIgaW4gaGlzIGhvdXNlaG9sZCBhcyBoZSBkaWQgdG8gaGlzIG93biB3ZWRkZWQgd2lmZSwgYnV0IGhlIGRpZCBub3QgdGFrZSBoZXIgdG8gaGlzIGJlZCBmb3IgaGUgZmVhcmVkIGhpcyB3aWZlJ3MgcmVzZW50bWVudC4gU2hlIGl0IHdhcyB3aG8gbm93IGxpZ2h0ZWQgVGVsZW1hY2h1cyB0byBoaXMgcm9vbSwgYW5kIHNoZSBsb3ZlZCBoaW0gYmV0dGVyIHRoYW4gYW55IG9mIHRoZSBvdGhlciB3b21lbiBpbiB0aGUgaG91c2UgZGlkLCBmb3Igc2hlIGhhZCBudXJzZWQgaGltIHdoZW4gaGUgd2FzIGEgYmFieS4gSGUgb3BlbmVkIHRoZSBkb29yIG9mIGhpcyBiZWQgcm9vbSBhbmQgc2F0IGRvd24gdXBvbiB0aGUgYmVkOyBhcyBoZSB0b29rIG9mZiBoaXMgc2hpcnQgaGUgZ2F2ZSBpdCB0byB0aGUgZ29vZCBvbGQgd29tYW4sIHdobyBmb2xkZWQgaXQgdGlkaWx5IHVwLCBhbmQgaHVuZyBpdCBmb3IgaGltIG92ZXIgYSBwZWcgYnkgaGlzIGJlZCBzaWRlLCBhZnRlciB3aGljaCBzaGUgd2VudCBvdXQsIHB1bGxlZCB0aGUgZG9vciB0byBieSBhIHNpbHZlciBjYXRjaCwgYW5kIGRyZXcgdGhlIGJvbHQgaG9tZSBieSBtZWFucyBvZiB0aGUgc3RyYXAuIEJ1dCBUZWxlbWFjaHVzIGFzIGhlIGxheSBjb3ZlcmVkIHdpdGggYSB3b29sbGVuIGZsZWVjZSBrZXB0IHRoaW5raW5nIGFsbCBuaWdodCB0aHJvdWdoIG9mIGhpcyBpbnRlbmRlZCB2b3lhZ2Ugb2YgdGhlIGNvdW5zZWwgdGhhdCBNaW5lcnZhIGhhZCBnaXZlbiBoaW0uDQoNCkJvb2sgSUkNCg0KTm93IHdoZW4gdGhlIGNoaWxkIG9mIG1vcm5pbmcsIHJvc3ktZmluZ2VyZWQgRGF3biwgYXBwZWFyZWQsIFRlbGVtYWNodXMgcm9zZSBhbmQgZHJlc3NlZCBoaW1zZWxmLiBIZSBib3VuZCBoaXMgc2FuZGFscyBvbiB0byBoaXMgY29tZWx5IGZlZXQsIGdpcmRlZCBoaXMgc3dvcmQgYWJvdXQgaGlzIHNob3VsZGVyLCBhbmQgbGVmdCBoaXMgcm9vbSBsb29raW5nIGxpa2UgYW4gaW1tb3J0YWwgZ29kLiBIZSBhdCBvbmNlIHNlbnQgdGhlIGNyaWVycyByb3VuZCB0byBjYWxsIHRoZSBwZW9wbGUgaW4gYXNzZW1ibHksIHNvIHRoZXkgY2FsbGVkIHRoZW0gYW5kIHRoZSBwZW9wbGUgZ2F0aGVyZWQgdGhlcmVvbjsgdGhlbiwgd2hlbiB0aGV5IHdlcmUgZ290IHRvZ2V0aGVyLCBoZSB3ZW50IHRvIHRoZSBwbGFjZSBvZiBhc3NlbWJseSBzcGVhciBpbiBoYW5kLSBub3QgYWxvbmUsIGZvciBoaXMgdHdvIGhvdW5kcyB3ZW50IHdpdGggaGltLiBNaW5lcnZhIGVuZG93ZWQgaGltIHdpdGggYSBwcmVzZW5jZSBvZiBzdWNoIGRpdmluZSBjb21lbGluZXNzIHRoYXQgYWxsIG1hcnZlbGxlZCBhdCBoaW0gYXMgaGUgd2VudCBieSwgYW5kIHdoZW4gaGUgdG9vayBoaXMgcGxhY2UnIGluIGhpcyBmYXRoZXIncyBzZWF0IGV2ZW4gdGhlIG9sZGVzdCBjb3VuY2lsbG9ycyBtYWRlIHdheSBmb3IgaGltLg0KDQpBZWd5cHRpdXMsIGEgbWFuIGJlbnQgZG91YmxlIHdpdGggYWdlLCBhbmQgb2YgaW5maW5pdGUgZXhwZXJpZW5jZSwgdGhlIGZpcnN0IHRvIHNwZWFrIEhpcyBzb24gQW50aXBodXMgaGFkIGdvbmUgd2l0aCBVbHlzc2VzIHRvIElsaXVzLCBsYW5kIG9mIG5vYmxlIHN0ZWVkcywgYnV0IHRoZSBzYXZhZ2UgQ3ljbG9wcyBoYWQga2lsbGVkIGhpbSB3aGVuIHRoZXkgd2VyZSBhbGwgc2h1dCB1cCBpbiB0aGUgY2F2ZSwgYW5kIGhhZCBjb29rZWQgaGlzIGxhc3QgZGlubmVyIGZvciBoaW0sIEhlIGhhZCB0aHJlZSBzb25zIGxlZnQsIG9mIHdob20gdHdvIHN0aWxsIHdvcmtlZCBvbiB0aGVpciBmYXRoZXIncyBsYW5kLCB3aGlsZSB0aGUgdGhpcmQsIEV1cnlub211cywgd2FzIG9uZSBvZiB0aGUgc3VpdG9yczsgbmV2ZXJ0aGVsZXNzIHRoZWlyIGZhdGhlciBjb3VsZCBub3QgZ2V0IG92ZXIgdGhlIGxvc3Mgb2YgQW50aXBodXMsIGFuZCB3YXMgc3RpbGwgd2VlcGluZyBmb3IgaGltIHdoZW4gaGUgYmVnYW4gaGlzIHNwZWVjaC4NCg0KIk1lbiBvZiBJdGhhY2EsIiBoZSBzYWlkLCAiaGVhciBteSB3b3Jkcy4gRnJvbSB0aGUgZGF5IFVseXNzZXMgbGVmdCB1cyB0aGVyZSBoYXMgYmVlbiBubyBtZWV0aW5nIG9mIG91ciBjb3VuY2lsbG9ycyB1bnRpbCBub3c7IHdobyB0aGVuIGNhbiBpdCBiZSwgd2hldGhlciBvbGQgb3IgeW91bmcsIHRoYXQgZmluZHMgaXQgc28gbmVjZXNzYXJ5IHRvIGNvbnZlbmUgdXM/IEhhcyBoZSBnb3Qgd2luZCBvZiBzb21lIGhvc3QgYXBwcm9hY2hpbmcsIGFuZCBkb2VzIGhlIHdpc2ggdG8gd2FybiB1cywgb3Igd291bGQgaGUgc3BlYWsgdXBvbiBzb21lIG90aGVyIG1hdHRlciBvZiBwdWJsaWMgbW9tZW50PyBJIGFtIHN1cmUgaGUgaXMgYW4gZXhjZWxsZW50IHBlcnNvbiwgYW5kIEkgaG9wZSBKb3ZlIHdpbGwgZ3JhbnQgaGltIGhpcyBoZWFydCdzIGRlc2lyZS4iDQoNClRlbGVtYWNodXMgdG9vayB0aGlzIHNwZWVjaCBhcyBvZiBnb29kIG9tZW4gYW5kIHJvc2UgYXQgb25jZSwgZm9yIGhlIHdhcyBidXJzdGluZyB3aXRoIHdoYXQgaGUgaGFkIHRvIHNheS4gSGUgc3Rvb2QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYXNzZW1ibHkgYW5kIHRoZSBnb29kIGhlcmFsZCBQaXNlbm9yIGJyb3VnaHQgaGltIGhpcyBzdGFmZi4gVGhlbiwgdHVybmluZyB0byBBZWd5cHRpdXMsICJTaXIsIiBzYWlkIGhlLCAiaXQgaXMgSSwgYXMgeW91IHdpbGwgc2hvcnRseSBsZWFybiwgd2hvIGhhdmUgY29udmVuZWQgeW91LCBmb3IgaXQgaXMgSSB3aG8gYW0gdGhlIG1vc3QgYWdncmlldmVkLiBJIGhhdmUgbm90IGdvdCB3aW5kIG9mIGFueSBob3N0IGFwcHJvYWNoaW5nIGFib3V0IHdoaWNoIEkgd291bGQgd2FybiB5b3UsIG5vciBpcyB0aGVyZSBhbnkgbWF0dGVyIG9mIHB1YmxpYyBtb21lbnQgb24gd2hpY2ggSSB3b3VsZCBzcGVhay4gTXkgZ3JpZXZlYW5jZSBpcyBwdXJlbHkgcGVyc29uYWwsIGFuZCB0dXJucyBvbiB0d28gZ3JlYXQgbWlzZm9ydHVuZXMgd2hpY2ggaGF2ZSBmYWxsZW4gdXBvbiBteSBob3VzZS4gVGhlIGZpcnN0IG9mIHRoZXNlIGlzIHRoZSBsb3NzIG9mIG15IGV4Y2VsbGVudCBmYXRoZXIsIHdobyB3YXMgY2hpZWYgYW1vbmcgYWxsIHlvdSBoZXJlIHByZXNlbnQsIGFuZCB3YXMgbGlrZSBhIGZhdGhlciB0byBldmVyeSBvbmUgb2YgeW91OyB0aGUgc2Vjb25kIGlzIG11Y2ggbW9yZSBzZXJpb3VzLCBhbmQgZXJlIGxvbmcgd2lsbCBiZSB0aGUgdXR0ZXIgcnVpbiBvZiBteSBlc3RhdGUuIFRoZSBzb25zIG9mIGFsbCB0aGUgY2hpZWYgbWVuIGFtb25nIHlvdSBhcmUgcGVzdGVyaW5nIG15IG1vdGhlciB0byBtYXJyeSB0aGVtIGFnYWluc3QgaGVyIHdpbGwuIFRoZXkgYXJlIGFmcmFpZCB0byBnbyB0byBoZXIgZmF0aGVyIEljYXJpdXMsIGFza2luZyBoaW0gdG8gY2hvb3NlIHRoZSBvbmUgaGUgbGlrZXMgYmVzdCwgYW5kIHRvIHByb3ZpZGUgbWFycmlhZ2UgZ2lmdHMgZm9yIGhpcyBkYXVnaHRlciwgYnV0IGRheSBieSBkYXkgdGhleSBrZWVwIGhhbmdpbmcgYWJvdXQgbXkgZmF0aGVyJ3MgaG91c2UsIHNhY3JpZmljaW5nIG91ciBveGVuLCBzaGVlcCwgYW5kIGZhdCBnb2F0cyBmb3IgdGhlaXIgYmFucXVldHMsIGFuZCBuZXZlciBnaXZpbmcgc28gbXVjaCBhcyBhIHRob3VnaHQgdG8gdGhlIHF1YW50aXR5IG9mIHdpbmUgdGhleSBkcmluay4gTm8gZXN0YXRlIGNhbiBzdGFuZCBzdWNoIHJlY2tsZXNzbmVzczsgd2UgaGF2ZSBub3cgbm8gVWx5c3NlcyB0byB3YXJkIG9mZiBoYXJtIGZyb20gb3VyIGRvb3JzLCBhbmQgSSBjYW5ub3QgaG9sZCBteSBvd24gYWdhaW5zdCB0aGVtLiBJIHNoYWxsIG5ldmVyIGFsbCBteSBkYXlzIGJlIGFzIGdvb2QgYSBtYW4gYXMgaGUgd2FzLCBzdGlsbCBJIHdvdWxkIGluZGVlZCBkZWZlbmQgbXlzZWxmIGlmIEkgaGFkIHBvd2VyIHRvIGRvIHNvLCBmb3IgSSBjYW5ub3Qgc3RhbmQgc3VjaCB0cmVhdG1lbnQgYW55IGxvbmdlcjsgbXkgaG91c2UgaXMgYmVpbmcgZGlzZ3JhY2VkIGFuZCBydWluZWQuIEhhdmUgcmVzcGVjdCwgdGhlcmVmb3JlLCB0byB5b3VyIG93biBjb25zY2llbmNlcyBhbmQgdG8gcHVibGljIG9waW5pb24uIEZlYXIsIHRvbywgdGhlIHdyYXRoIG9mIGhlYXZlbiwgbGVzdCB0aGUgZ29kcyBzaG91bGQgYmUgZGlzcGxlYXNlZCBhbmQgdHVybiB1cG9uIHlvdS4gSSBwcmF5IHlvdSBieSBKb3ZlIGFuZCBUaGVtaXMsIHdobyBpcyB0aGUgYmVnaW5uaW5nIGFuZCB0aGUgZW5kIG9mIGNvdW5jaWxzLCBbZG8gbm90XSBob2xkIGJhY2ssIG15IGZyaWVuZHMsIGFuZCBsZWF2ZSBtZSBzaW5nbGVoYW5kZWQtIHVubGVzcyBpdCBiZSB0aGF0IG15IGJyYXZlIGZhdGhlciBVbHlzc2VzIGRpZCBzb21lIHdyb25nIHRvIHRoZSBBY2hhZWFucyB3aGljaCB5b3Ugd291bGQgbm93IGF2ZW5nZSBvbiBtZSwgYnkgYWlkaW5nIGFuZCBhYmV0dGluZyB0aGVzZSBzdWl0b3JzLiBNb3Jlb3ZlciwgaWYgSSBhbSB0byBiZSBlYXRlbiBvdXQgb2YgaG91c2UgYW5kIGhvbWUgYXQgYWxsLCBJIGhhZCByYXRoZXIgeW91IGRpZCB0aGUgZWF0aW5nIHlvdXJzZWx2ZXMsIGZvciBJIGNvdWxkIHRoZW4gdGFrZSBhY3Rpb24gYWdhaW5zdCB5b3UgdG8gc29tZSBwdXJwb3NlLCBhbmQgc2VydmUgeW91IHdpdGggbm90aWNlcyBmcm9tIGhvdXNlIHRvIGhvdXNlIHRpbGwgSSBnb3QgcGFpZCBpbiBmdWxsLCB3aGVyZWFzIG5vdyBJIGhhdmUgbm8gcmVtZWR5LiINCg0KV2l0aCB0aGlzIFRlbGVtYWNodXMgZGFzaGVkIGhpcyBzdGFmZiB0byB0aGUgZ3JvdW5kIGFuZCBidXJzdCBpbnRvIHRlYXJzLiBFdmVyeSBvbmUgd2FzIHZlcnkgc29ycnkgZm9yIGhpbSwgYnV0IHRoZXkgYWxsIHNhdCBzdGlsbCBhbmQgbm8gb25lIHZlbnR1cmVkIHRvIG1ha2UgaGltIGFuIGFuZ3J5IGFuc3dlciwgc2F2ZSBvbmx5IEFudGlub3VzLCB3aG8gc3Bva2UgdGh1czoNCg0KIlRlbGVtYWNodXMsIGluc29sZW50IGJyYWdnYXJ0IHRoYXQgeW91IGFyZSwgaG93IGRhcmUgeW91IHRyeSB0byB0aHJvdyB0aGUgYmxhbWUgdXBvbiB1cyBzdWl0b3JzPyBJdCBpcyB5b3VyIG1vdGhlcidzIGZhdWx0IG5vdCBvdXJzLCBmb3Igc2hlIGlzIGEgdmVyeSBhcnRmdWwgd29tYW4uIFRoaXMgdGhyZWUgeWVhcnMgcGFzdCwgYW5kIGNsb3NlIG9uIGZvdXIsIHNoZSBoYXMgYmVlbiBkcml2aW5nIHVzIG91dCBvZiBvdXIgbWluZHMsIGJ5IGVuY291cmFnaW5nIGVhY2ggb25lIG9mIHVzLCBhbmQgc2VuZGluZyBoaW0gbWVzc2FnZXMgd2l0aG91dCBtZWFuaW5nIG9uZSB3b3JkIG9mIHdoYXQgc2hlIHNheXMuIEFuZCB0aGVuIHRoZXJlIHdhcyB0aGF0IG90aGVyIHRyaWNrIHNoZSBwbGF5ZWQgdXMuIFNoZSBzZXQgdXAgYSBncmVhdCB0YW1ib3VyIGZyYW1lIGluIGhlciByb29tLCBhbmQgYmVnYW4gdG8gd29yayBvbiBhbiBlbm9ybW91cyBwaWVjZSBvZiBmaW5lIG5lZWRsZXdvcmsuICdTd2VldCBoZWFydHMsJyBzYWlkIHNoZSwgJ1VseXNzZXMgaXMgaW5kZWVkIGRlYWQsIHN0aWxsIGRvIG5vdCBwcmVzcyBtZSB0byBtYXJyeSBhZ2FpbiBpbW1lZGlhdGVseSwgd2FpdC0gZm9yIEkgd291bGQgbm90IGhhdmUgc2tpbGwgaW4gbmVlZGxld29yayBwZXJpc2ggdW5yZWNvcmRlZC0gdGlsbCBJIGhhdmUgY29tcGxldGVkIGEgcGFsbCBmb3IgdGhlIGhlcm8gTGFlcnRlcywgdG8gYmUgaW4gcmVhZGluZXNzIGFnYWluc3QgdGhlIHRpbWUgd2hlbiBkZWF0aCBzaGFsbCB0YWtlIGhpbS4gSGUgaXMgdmVyeSByaWNoLCBhbmQgdGhlIHdvbWVuIG9mIHRoZSBwbGFjZSB3aWxsIHRhbGsgaWYgaGUgaXMgbGFpZCBvdXQgd2l0aG91dCBhIHBhbGwuJw0KDQoiVGhpcyB3YXMgd2hhdCBzaGUgc2FpZCwgYW5kIHdlIGFzc2VudGVkOyB3aGVyZW9uIHdlIGNvdWxkIHNlZSBoZXIgd29ya2luZyBvbiBoZXIgZ3JlYXQgd2ViIGFsbCBkYXkgbG9uZywgYnV0IGF0IG5pZ2h0IHNoZSB3b3VsZCB1bnBpY2sgdGhlIHN0aXRjaGVzIGFnYWluIGJ5IHRvcmNobGlnaHQuIFNoZSBmb29sZWQgdXMgaW4gdGhpcyB3YXkgZm9yIHRocmVlIHllYXJzIGFuZCB3ZSBuZXZlciBmb3VuZCBoZXIgb3V0LCBidXQgYXMgdGltZSB3b3JlIG9uIGFuZCBzaGUgd2FzIG5vdyBpbiBoZXIgZm91cnRoIHllYXIsIG9uZSBvZiBoZXIgbWFpZHMgd2hvIGtuZXcgd2hhdCBzaGUgd2FzIGRvaW5nIHRvbGQgdXMsIGFuZCB3ZSBjYXVnaHQgaGVyIGluIHRoZSBhY3Qgb2YgdW5kb2luZyBoZXIgd29yaywgc28gc2hlIGhhZCB0byBmaW5pc2ggaXQgd2hldGhlciBzaGUgd291bGQgb3Igbm8uIFRoZSBzdWl0b3JzLCB0aGVyZWZvcmUsIG1ha2UgeW91IHRoaXMgYW5zd2VyLCB0aGF0IGJvdGggeW91IGFuZCB0aGUgQWNoYWVhbnMgbWF5IHVuZGVyc3RhbmQtJ1NlbmQgeW91ciBtb3RoZXIgYXdheSwgYW5kIGJpZCBoZXIgbWFycnkgdGhlIG1hbiBvZiBoZXIgb3duIGFuZCBvZiBoZXIgZmF0aGVyJ3MgY2hvaWNlJzsgZm9yIEkgZG8gbm90IGtub3cgd2hhdCB3aWxsIGhhcHBlbiBpZiBzaGUgZ29lcyBvbiBwbGFndWluZyB1cyBtdWNoIGxvbmdlciB3aXRoIHRoZSBhaXJzIHNoZSBnaXZlcyBoZXJzZWxmIG9uIHRoZSBzY29yZSBvZiB0aGUgYWNjb21wbGlzaG1lbnRzIE1pbmVydmEgaGFzIHRhdWdodCBoZXIsIGFuZCBiZWNhdXNlIHNoZSBpcyBzbyBjbGV2ZXIuIFdlIG5ldmVyIHlldCBoZWFyZCBvZiBzdWNoIGEgd29tYW47IHdlIGtub3cgYWxsIGFib3V0IFR5cm8sIEFsY21lbmEsIE15Y2VuZSwgYW5kIHRoZSBmYW1vdXMgd29tZW4gb2Ygb2xkLCBidXQgdGhleSB3ZXJlIG5vdGhpbmcgdG8geW91ciBtb3RoZXIsIGFueSBvbmUgb2YgdGhlbS4gSXQgd2FzIG5vdCBmYWlyIG9mIGhlciB0byB0cmVhdCB1cyBpbiB0aGF0IHdheSwgYW5kIGFzIGxvbmcgYXMgc2hlIGNvbnRpbnVlcyBpbiB0aGUgbWluZCB3aXRoIHdoaWNoIGhlYXZlbiBoYXMgbm93IGVuZG93ZWQgaGVyLCBzbyBsb25nIHNoYWxsIHdlIGdvIG9uIGVhdGluZyB1cCB5b3VyIGVzdGF0ZTsgYW5kIEkgZG8gbm90IHNlZSB3aHkgc2hlIHNob3VsZCBjaGFuZ2UsIGZvciBzaGUgZ2V0cyBhbGwgdGhlIGhvbm91ciBhbmQgZ2xvcnksIGFuZCBpdCBpcyB5b3Ugd2hvIHBheSBmb3IgaXQsIG5vdCBzaGUuIFVuZGVyc3RhbmQsIHRoZW4sIHRoYXQgd2Ugd2lsbCBub3QgZ28gYmFjayB0byBvdXIgbGFuZHMsIG5laXRoZXIgaGVyZSBub3IgZWxzZXdoZXJlLCB0aWxsIHNoZSBoYXMgbWFkZSBoZXIgY2hvaWNlIGFuZCBtYXJyaWVkIHNvbWUgb25lIG9yIG90aGVyIG9mIHVzLiINCg0KVGVsZW1hY2h1cyBhbnN3ZXJlZCwgIkFudGlub3VzLCBob3cgY2FuIEkgZHJpdmUgdGhlIG1vdGhlciB3aG8gYm9yZSBtZSBmcm9tIG15IGZhdGhlcidzIGhvdXNlPyBNeSBmYXRoZXIgaXMgYWJyb2FkIGFuZCB3ZSBkbyBub3Qga25vdyB3aGV0aGVyIGhlIGlzIGFsaXZlIG9yIGRlYWQuIEl0IHdpbGwgYmUgaGFyZCBvbiBtZSBpZiBJIGhhdmUgdG8gcGF5IEljYXJpdXMgdGhlIGxhcmdlIHN1bSB3aGljaCBJIG11c3QgZ2l2ZSBoaW0gaWYgSSBpbnNpc3Qgb24gc2VuZGluZyBoaXMgZGF1Z2h0ZXIgYmFjayB0byBoaW0uIE5vdCBvbmx5IHdpbGwgaGUgZGVhbCByaWdvcm91c2x5IHdpdGggbWUsIGJ1dCBoZWF2ZW4gd2lsbCBhbHNvIHB1bmlzaCBtZTsgZm9yIG15IG1vdGhlciB3aGVuIHNoZSBsZWF2ZXMgdGhlIGhvdXNlIHdpbGwgY2FsZiBvbiB0aGUgRXJpbnllcyB0byBhdmVuZ2UgaGVyOyBiZXNpZGVzLCBpdCB3b3VsZCBub3QgYmUgYSBjcmVkaXRhYmxlIHRoaW5nIHRvIGRvLCBhbmQgSSB3aWxsIGhhdmUgbm90aGluZyB0byBzYXkgdG8gaXQuIElmIHlvdSBjaG9vc2UgdG8gdGFrZSBvZmZlbmNlIGF0IHRoaXMsIGxlYXZlIHRoZSBob3VzZSBhbmQgZmVhc3QgZWxzZXdoZXJlIGF0IG9uZSBhbm90aGVyJ3MgaG91c2VzIGF0IHlvdXIgb3duIGNvc3QgdHVybiBhbmQgdHVybiBhYm91dC4gSWYsIG9uIHRoZSBvdGhlciBoYW5kLCB5b3UgZWxlY3QgdG8gcGVyc2lzdCBpbiBzcHVuZ2luZyB1cG9uIG9uZSBtYW4sIGhlYXZlbiBoZWxwIG1lLCBidXQgSm92ZSBzaGFsbCByZWNrb24gd2l0aCB5b3UgaW4gZnVsbCwgYW5kIHdoZW4geW91IGZhbGwgaW4gbXkgZmF0aGVyJ3MgaG91c2UgdGhlcmUgc2hhbGwgYmUgbm8gbWFuIHRvIGF2ZW5nZSB5b3UuIg0KDQpBcyBoZSBzcG9rZSBKb3ZlIHNlbnQgdHdvIGVhZ2xlcyBmcm9tIHRoZSB0b3Agb2YgdGhlIG1vdW50YWluLCBhbmQgdGhleSBmbGV3IG9uIGFuZCBvbiB3aXRoIHRoZSB3aW5kLCBzYWlsaW5nIHNpZGUgYnkgc2lkZSBpbiB0aGVpciBvd24gbG9yZGx5IGZsaWdodC4gV2hlbiB0aGV5IHdlcmUgcmlnaHQgb3ZlciB0aGUgbWlkZGxlIG9mIHRoZSBhc3NlbWJseSB0aGV5IHdoZWVsZWQgYW5kIGNpcmNsZWQgYWJvdXQsIGJlYXRpbmcgdGhlIGFpciB3aXRoIHRoZWlyIHdpbmdzIGFuZCBnbGFyaW5nIGRlYXRoIGludG8gdGhlIGV5ZXMgb2YgdGhlbSB0aGF0IHdlcmUgYmVsb3c7IHRoZW4sIGZpZ2h0aW5nIGZpZXJjZWx5IGFuZCB0ZWFyaW5nIGF0IG9uZSBhbm90aGVyLCB0aGV5IGZsZXcgb2ZmIHRvd2FyZHMgdGhlIHJpZ2h0IG92ZXIgdGhlIHRvd24uIFRoZSBwZW9wbGUgd29uZGVyZWQgYXMgdGhleSBzYXcgdGhlbSwgYW5kIGFza2VkIGVhY2ggb3RoZXIgd2hhdCBhbiB0aGlzIG1pZ2h0IGJlOyB3aGVyZW9uIEhhbGl0aGVyc2VzLCB3aG8gd2FzIHRoZSBiZXN0IHByb3BoZXQgYW5kIHJlYWRlciBvZiBvbWVucyBhbW9uZyB0aGVtLCBzcG9rZSB0byB0aGVtIHBsYWlubHkgYW5kIGluIGFsbCBob25lc3R5LCBzYXlpbmc6DQoNCiJIZWFyIG1lLCBtZW4gb2YgSXRoYWNhLCBhbmQgSSBzcGVhayBtb3JlIHBhcnRpY3VsYXJseSB0byB0aGUgc3VpdG9ycywgZm9yIEkgc2VlIG1pc2NoaWVmIGJyZXdpbmcgZm9yIHRoZW0uIFVseXNzZXMgaXMgbm90IGdvaW5nIHRvIGJlIGF3YXkgbXVjaCBsb25nZXI7IGluZGVlZCBoZSBpcyBjbG9zZSBhdCBoYW5kIHRvIGRlYWwgb3V0IGRlYXRoIGFuZCBkZXN0cnVjdGlvbiwgbm90IG9uIHRoZW0gYWxvbmUsIGJ1dCBvbiBtYW55IGFub3RoZXIgb2YgdXMgd2hvIGxpdmUgaW4gSXRoYWNhLiBMZXQgdXMgdGhlbiBiZSB3aXNlIGluIHRpbWUsIGFuZCBwdXQgYSBzdG9wIHRvIHRoaXMgd2lja2VkbmVzcyBiZWZvcmUgaGUgY29tZXMuIExldCB0aGUgc3VpdG9ycyBkbyBzbyBvZiB0aGVpciBvd24gYWNjb3JkOyBpdCB3aWxsIGJlIGJldHRlciBmb3IgdGhlbSwgZm9yIEkgYW0gbm90IHByb3BoZXN5aW5nIHdpdGhvdXQgZHVlIGtub3dsZWRnZTsgZXZlcnl0aGluZyBoYXMgaGFwcGVuZWQgdG8gVWx5c3NlcyBhcyBJIGZvcmV0b2xkIHdoZW4gdGhlIEFyZ2l2ZXMgc2V0IG91dCBmb3IgVHJveSwgYW5kIGhlIHdpdGggdGhlbS4gSSBzYWlkIHRoYXQgYWZ0ZXIgZ29pbmcgdGhyb3VnaCBtdWNoIGhhcmRzaGlwIGFuZCBsb3NpbmcgYWxsIGhpcyBtZW4gaGUgc2hvdWxkIGNvbWUgaG9tZSBhZ2FpbiBpbiB0aGUgdHdlbnRpZXRoIHllYXIgYW5kIHRoYXQgbm8gb25lIHdvdWxkIGtub3cgaGltOyBhbmQgbm93IGFsbCB0aGlzIGlzIGNvbWluZyB0cnVlLiINCg0KRXVyeW1hY2h1cyBzb24gb2YgUG9seWJ1cyB0aGVuIHNhaWQsICJHbyBob21lLCBvbGQgbWFuLCBhbmQgcHJvcGhlc3kgdG8geW91ciBvd24gY2hpbGRyZW4sIG9yIGl0IG1heSBiZSB3b3JzZSBmb3IgdGhlbS4gSSBjYW4gcmVhZCB0aGVzZSBvbWVucyBteXNlbGYgbXVjaCBiZXR0ZXIgdGhhbiB5b3UgY2FuOyBiaXJkcyBhcmUgYWx3YXlzIGZseWluZyBhYm91dCBpbiB0aGUgc3Vuc2hpbmUgc29tZXdoZXJlIG9yIG90aGVyLCBidXQgdGhleSBzZWxkb20gbWVhbiBhbnl0aGluZy4gVWx5c3NlcyBoYXMgZGllZCBpbiBhIGZhciBjb3VudHJ5LCBhbmQgaXQgaXMgYSBwaXR5IHlvdSBhcmUgbm90IGRlYWQgYWxvbmcgd2l0aCBoaW0sIGluc3RlYWQgb2YgcHJhdGluZyBoZXJlIGFib3V0IG9tZW5zIGFuZCBhZGRpbmcgZnVlbCB0byB0aGUgYW5nZXIgb2YgVGVsZW1hY2h1cyB3aGljaCBpcyBmaWVyY2UgZW5vdWdoIGFzIGl0IGlzLiBJIHN1cHBvc2UgeW91IHRoaW5rIGhlIHdpbGwgZ2l2ZSB5b3Ugc29tZXRoaW5nIGZvciB5b3VyIGZhbWlseSwgYnV0IEkgdGVsbCB5b3UtIGFuZCBpdCBzaGFsbCBzdXJlbHkgYmUtIHdoZW4gYW4gb2xkIG1hbiBsaWtlIHlvdSwgd2hvIHNob3VsZCBrbm93IGJldHRlciwgdGFsa3MgYSB5b3VuZyBvbmUgb3ZlciB0aWxsIGhlIGJlY29tZXMgdHJvdWJsZXNvbWUsIGluIHRoZSBmaXJzdCBwbGFjZSBoaXMgeW91bmcgZnJpZW5kIHdpbGwgb25seSBmYXJlIHNvIG11Y2ggdGhlIHdvcnNlLSBoZSB3aWxsIHRha2Ugbm90aGluZyBieSBpdCwgZm9yIHRoZSBzdWl0b3JzIHdpbGwgcHJldmVudCB0aGlzLSBhbmQgaW4gdGhlIG5leHQsIHdlIHdpbGwgbGF5IGEgaGVhdmllciBmaW5lLCBzaXIsIHVwb24geW91cnNlbGYgdGhhbiB5b3Ugd2lsbCBhdCBhbGwgbGlrZSBwYXlpbmcsIGZvciBpdCB3aWxsIGJlYXIgaGFyZGx5IHVwb24geW91LiBBcyBmb3IgVGVsZW1hY2h1cywgSSB3YXJuIGhpbSBpbiB0aGUgcHJlc2VuY2Ugb2YgeW91IGFsbCB0byBzZW5kIGhpcyBtb3RoZXIgYmFjayB0byBoZXIgZmF0aGVyLCB3aG8gd2lsbCBmaW5kIGhlciBhIGh1c2JhbmQgYW5kIHByb3ZpZGUgaGVyIHdpdGggYWxsIHRoZSBtYXJyaWFnZSBnaWZ0cyBzbyBkZWFyIGEgZGF1Z2h0ZXIgbWF5IGV4cGVjdC4gVGlsbCB3ZSBzaGFsbCBnbyBvbiBoYXJhc3NpbmcgaGltIHdpdGggb3VyIHN1aXQ7IGZvciB3ZSBmZWFyIG5vIG1hbiwgYW5kIGNhcmUgbmVpdGhlciBmb3IgaGltLCB3aXRoIGFsbCBoaXMgZmluZSBzcGVlY2hlcywgbm9yIGZvciBhbnkgZm9ydHVuZS10ZWxsaW5nIG9mIHlvdXJzLiBZb3UgbWF5IHByZWFjaCBhcyBtdWNoIGFzIHlvdSBwbGVhc2UsIGJ1dCB3ZSBzaGFsbCBvbmx5IGhhdGUgeW91IHRoZSBtb3JlLiBXZSBzaGFsbCBnbyBiYWNrIGFuZCBjb250aW51ZSB0byBlYXQgdXAgVGVsZW1hY2h1cydzIGVzdGF0ZSB3aXRob3V0IHBheWluZyBoaW0sIHRpbGwgc3VjaCB0aW1lIGFzIGhpcyBtb3RoZXIgbGVhdmVzIG9mZiB0b3JtZW50aW5nIHVzIGJ5IGtlZXBpbmcgdXMgZGF5IGFmdGVyIGRheSBvbiB0aGUgdGlwdG9lIG9mIGV4cGVjdGF0aW9uLCBlYWNoIHZ5aW5nIHdpdGggdGhlIG90aGVyIGluIGhpcyBzdWl0IGZvciBhIHByaXplIG9mIHN1Y2ggcmFyZSBwZXJmZWN0aW9uLiBCZXNpZGVzIHdlIGNhbm5vdCBnbyBhZnRlciB0aGUgb3RoZXIgd29tZW4gd2hvbSB3ZSBzaG91bGQgbWFycnkgaW4gZHVlIGNvdXJzZSwgYnV0IGZvciB0aGUgd2F5IGluIHdoaWNoIHNoZSB0cmVhdHMgdXMuIg0KDQpUaGVuIFRlbGVtYWNodXMgc2FpZCwgIkV1cnltYWNodXMsIGFuZCB5b3Ugb3RoZXIgc3VpdG9ycywgSSBzaGFsbCBzYXkgbm8gbW9yZSwgYW5kIGVudHJlYXQgeW91IG5vIGZ1cnRoZXIsIGZvciB0aGUgZ29kcyBhbmQgdGhlIHBlb3BsZSBvZiBJdGhhY2Egbm93IGtub3cgbXkgc3RvcnkuIEdpdmUgbWUsIHRoZW4sIGEgc2hpcCBhbmQgYSBjcmV3IG9mIHR3ZW50eSBtZW4gdG8gdGFrZSBtZSBoaXRoZXIgYW5kIHRoaXRoZXIsIGFuZCBJIHdpbGwgZ28gdG8gU3BhcnRhIGFuZCB0byBQeWxvcyBpbiBxdWVzdCBvZiBteSBmYXRoZXIgd2hvIGhhcyBzbyBsb25nIGJlZW4gbWlzc2luZy4gU29tZSBvbmUgbWF5IHRlbGwgbWUgc29tZXRoaW5nLCBvciAoYW5kIHBlb3BsZSBvZnRlbiBoZWFyIHRoaW5ncyBpbiB0aGlzIHdheSkgc29tZSBoZWF2ZW4tc2VudCBtZXNzYWdlIG1heSBkaXJlY3QgbWUuIElmIEkgY2FuIGhlYXIgb2YgaGltIGFzIGFsaXZlIGFuZCBvbiBoaXMgd2F5IGhvbWUgSSB3aWxsIHB1dCB1cCB3aXRoIHRoZSB3YXN0ZSB5b3Ugc3VpdG9ycyB3aWxsIG1ha2UgZm9yIHlldCBhbm90aGVyIHR3ZWx2ZSBtb250aHMuIElmIG9uIHRoZSBvdGhlciBoYW5kIEkgaGVhciBvZiBoaXMgZGVhdGgsIEkgd2lsbCByZXR1cm4gYXQgb25jZSwgY2VsZWJyYXRlIGhpcyBmdW5lcmFsIHJpdGVzIHdpdGggYWxsIGR1ZSBwb21wLCBidWlsZCBhIGJhcnJvdyB0byBoaXMgbWVtb3J5LCBhbmQgbWFrZSBteSBtb3RoZXIgbWFycnkgYWdhaW4uIg0KDQpXaXRoIHRoZXNlIHdvcmRzIGhlIHNhdCBkb3duLCBhbmQgTWVudG9yIHdobyBoYWQgYmVlbiBhIGZyaWVuZCBvZiBVbHlzc2VzLCBhbmQgaGFkIGJlZW4gbGVmdCBpbiBjaGFyZ2Ugb2YgZXZlcnl0aGluZyB3aXRoIGZ1bGwgYXV0aG9yaXR5IG92ZXIgdGhlIHNlcnZhbnRzLCByb3NlIHRvIHNwZWFrLiBIZSwgdGhlbiwgcGxhaW5seSBhbmQgaW4gYWxsIGhvbmVzdHkgYWRkcmVzc2VkIHRoZW0gdGh1czoNCg0KIkhlYXIgbWUsIG1lbiBvZiBJdGhhY2EsIEkgaG9wZSB0aGF0IHlvdSBtYXkgbmV2ZXIgaGF2ZSBhIGtpbmQgYW5kIHdlbGwtZGlzcG9zZWQgcnVsZXIgYW55IG1vcmUsIG5vciBvbmUgd2hvIHdpbGwgZ292ZXJuIHlvdSBlcXVpdGFibHk7IEkgaG9wZSB0aGF0IGFsbCB5b3VyIGNoaWVmcyBoZW5jZWZvcndhcmQgbWF5IGJlIGNydWVsIGFuZCB1bmp1c3QsIGZvciB0aGVyZSBpcyBub3Qgb25lIG9mIHlvdSBidXQgaGFzIGZvcmdvdHRlbiBVbHlzc2VzLCB3aG8gcnVsZWQgeW91IGFzIHRob3VnaCBoZSB3ZXJlIHlvdXIgZmF0aGVyLiBJIGFtIG5vdCBoYWxmIHNvIGFuZ3J5IHdpdGggdGhlIHN1aXRvcnMsIGZvciBpZiB0aGV5IGNob29zZSB0byBkbyB2aW9sZW5jZSBpbiB0aGUgbmF1Z2h0aW5lc3Mgb2YgdGhlaXIgaGVhcnRzLCBhbmQgd2FnZXIgdGhlaXIgaGVhZHMgdGhhdCBVbHlzc2VzIHdpbGwgbm90IHJldHVybiwgdGhleSBjYW4gdGFrZSB0aGUgaGlnaCBoYW5kIGFuZCBlYXQgdXAgaGlzIGVzdGF0ZSwgYnV0IGFzIGZvciB5b3Ugb3RoZXJzIEkgYW0gc2hvY2tlZCBhdCB0aGUgd2F5IGluIHdoaWNoIHlvdSBhbGwgc2l0IHN0aWxsIHdpdGhvdXQgZXZlbiB0cnlpbmcgdG8gc3RvcCBzdWNoIHNjYW5kYWxvdXMgZ29pbmdzIG9uLXdoaWNoIHlvdSBjb3VsZCBkbyBpZiB5b3UgY2hvc2UsIGZvciB5b3UgYXJlIG1hbnkgYW5kIHRoZXkgYXJlIGZldy4iDQoNCkxlaW9jcml0dXMsIHNvbiBvZiBFdmVub3IsIGFuc3dlcmVkIGhpbSBzYXlpbmcsICJNZW50b3IsIHdoYXQgZm9sbHkgaXMgYWxsIHRoaXMsIHRoYXQgeW91IHNob3VsZCBzZXQgdGhlIHBlb3BsZSB0byBzdGF5IHVzPyBJdCBpcyBhIGhhcmQgdGhpbmcgZm9yIG9uZSBtYW4gdG8gZmlnaHQgd2l0aCBtYW55IGFib3V0IGhpcyB2aWN0dWFscy4gRXZlbiB0aG91Z2ggVWx5c3NlcyBoaW1zZWxmIHdlcmUgdG8gc2V0IHVwb24gdXMgd2hpbGUgd2UgYXJlIGZlYXN0aW5nIGluIGhpcyBob3VzZSwgYW5kIGRvIGhpcyBiZXN0IHRvIG91c3QgdXMsIGhpcyB3aWZlLCB3aG8gd2FudHMgaGltIGJhY2sgc28gdmVyeSBiYWRseSwgd291bGQgaGF2ZSBzbWFsbCBjYXVzZSBmb3IgcmVqb2ljaW5nLCBhbmQgaGlzIGJsb29kIHdvdWxkIGJlIHVwb24gaGlzIG93biBoZWFkIGlmIGhlIGZvdWdodCBhZ2FpbnN0IHN1Y2ggZ3JlYXQgb2Rkcy4gVGhlcmUgaXMgbm8gc2Vuc2UgaW4gd2hhdCB5b3UgaGF2ZSBiZWVuIHNheWluZy4gTm93LCB0aGVyZWZvcmUsIGRvIHlvdSBwZW9wbGUgZ28gYWJvdXQgeW91ciBidXNpbmVzcywgYW5kIGxldCBoaXMgZmF0aGVyJ3Mgb2xkIGZyaWVuZHMsIE1lbnRvciBhbmQgSGFsaXRoZXJzZXMsIHNwZWVkIHRoaXMgYm95IG9uIGhpcyBqb3VybmV5LCBpZiBoZSBnb2VzIGF0IGFsbC0gd2hpY2ggSSBkbyBub3QgdGhpbmsgaGUgd2lsbCwgZm9yIGhlIGlzIG1vcmUgbGlrZWx5IHRvIHN0YXkgd2hlcmUgaGUgaXMgdGlsbCBzb21lIG9uZSBjb21lcyBhbmQgdGVsbHMgaGltIHNvbWV0aGluZy4iDQoNCk9uIHRoaXMgaGUgYnJva2UgdXAgdGhlIGFzc2VtYmx5LCBhbmQgZXZlcnkgbWFuIHdlbnQgYmFjayB0byBoaXMgb3duIGFib2RlLCB3aGlsZSB0aGUgc3VpdG9ycyByZXR1cm5lZCB0byB0aGUgaG91c2Ugb2YgVWx5c3Nlcy4NCg0KVGhlbiBUZWxlbWFjaHVzIHdlbnQgYWxsIGFsb25lIGJ5IHRoZSBzZWEgc2lkZSwgd2FzaGVkIGhpcyBoYW5kcyBpbiB0aGUgZ3JleSB3YXZlcywgYW5kIHByYXllZCB0byBNaW5lcnZhLg0KDQoiSGVhciBtZSwiIGhlIGNyaWVkLCAieW91IGdvZCB3aG8gdmlzaXRlZCBtZSB5ZXN0ZXJkYXksIGFuZCBiYWRlIG1lIHNhaWwgdGhlIHNlYXMgaW4gc2VhcmNoIG9mIG15IGZhdGhlciB3aG8gaGFzIHNvIGxvbmcgYmVlbiBtaXNzaW5nLiBJIHdvdWxkIG9iZXkgeW91LCBidXQgdGhlIEFjaGFlYW5zLCBhbmQgbW9yZSBwYXJ0aWN1bGFybHkgdGhlIHdpY2tlZCBzdWl0b3JzLCBhcmUgaGluZGVyaW5nIG1lIHRoYXQgSSBjYW5ub3QgZG8gc28uIg0KDQpBcyBoZSB0aHVzIHByYXllZCwgTWluZXJ2YSBjYW1lIGNsb3NlIHVwIHRvIGhpbSBpbiB0aGUgbGlrZW5lc3MgYW5kIHdpdGggdGhlIHZvaWNlIG9mIE1lbnRvci4gIlRlbGVtYWNodXMsIiBzYWlkIHNoZSwgImlmIHlvdSBhcmUgbWFkZSBvZiB0aGUgc2FtZSBzdHVmZiBhcyB5b3VyIGZhdGhlciB5b3Ugd2lsbCBiZSBuZWl0aGVyIGZvb2wgbm9yIGNvd2FyZCBoZW5jZWZvcndhcmQsIGZvciBVbHlzc2VzIG5ldmVyIGJyb2tlIGhpcyB3b3JkIG5vciBsZWZ0IGhpcyB3b3JrIGhhbGYgZG9uZS4gSWYsIHRoZW4sIHlvdSB0YWtlIGFmdGVyIGhpbSwgeW91ciB2b3lhZ2Ugd2lsbCBub3QgYmUgZnJ1aXRsZXNzLCBidXQgdW5sZXNzIHlvdSBoYXZlIHRoZSBibG9vZCBvZiBVbHlzc2VzIGFuZCBvZiBQZW5lbG9wZSBpbiB5b3VyIHZlaW5zIEkgc2VlIG5vIGxpa2VsaWhvb2Qgb2YgeW91ciBzdWNjZWVkaW5nLiBTb25zIGFyZSBzZWxkb20gYXMgZ29vZCBtZW4gYXMgdGhlaXIgZmF0aGVyczsgdGhleSBhcmUgZ2VuZXJhbGx5IHdvcnNlLCBub3QgYmV0dGVyOyBzdGlsbCwgYXMgeW91IGFyZSBub3QgZ29pbmcgdG8gYmUgZWl0aGVyIGZvb2wgb3IgY293YXJkIGhlbmNlZm9yd2FyZCwgYW5kIGFyZSBub3QgZW50aXJlbHkgd2l0aG91dCBzb21lIHNoYXJlIG9mIHlvdXIgZmF0aGVyJ3Mgd2lzZSBkaXNjZXJubWVudCwgSSBsb29rIHdpdGggaG9wZSB1cG9uIHlvdXIgdW5kZXJ0YWtpbmcuIEJ1dCBtaW5kIHlvdSBuZXZlciBtYWtlIGNvbW1vbiBjYXVzZSB3aXRoIGFueSBvZiB0aG9zZSBmb29saXNoIHN1aXRvcnMsIGZvciB0aGV5IGhhdmUgbmVpdGhlciBzZW5zZSBub3IgdmlydHVlLCBhbmQgZ2l2ZSBubyB0aG91Z2h0IHRvIGRlYXRoIGFuZCB0byB0aGUgZG9vbSB0aGF0IHdpbGwgc2hvcnRseSBmYWxsIG9uIG9uZSBhbmQgYWxsIG9mIHRoZW0sIHNvIHRoYXQgdGhleSBzaGFsbCBwZXJpc2ggb24gdGhlIHNhbWUgZGF5LiBBcyBmb3IgeW91ciB2b3lhZ2UsIGl0IHNoYWxsIG5vdCBiZSBsb25nIGRlbGF5ZWQ7IHlvdXIgZmF0aGVyIHdhcyBzdWNoIGFuIG9sZCBmcmllbmQgb2YgbWluZSB0aGF0IEkgd2lsbCBmaW5kIHlvdSBhIHNoaXAsIGFuZCB3aWxsIGNvbWUgd2l0aCB5b3UgbXlzZWxmLiBOb3csIGhvd2V2ZXIsIHJldHVybiBob21lLCBhbmQgZ28gYWJvdXQgYW1vbmcgdGhlIHN1aXRvcnM7IGJlZ2luIGdldHRpbmcgcHJvdmlzaW9ucyByZWFkeSBmb3IgeW91ciB2b3lhZ2U7IHNlZSBldmVyeXRoaW5nIHdlbGwgc3Rvd2VkLCB0aGUgd2luZSBpbiBqYXJzLCBhbmQgdGhlIGJhcmxleSBtZWFsLCB3aGljaCBpcyB0aGUgc3RhZmYgb2YgbGlmZSwgaW4gbGVhdGhlcm4gYmFncywgd2hpbGUgSSBnbyByb3VuZCB0aGUgdG93biBhbmQgYmVhdCB1cCB2b2x1bnRlZXJzIGF0IG9uY2UuIFRoZXJlIGFyZSBtYW55IHNoaXBzIGluIEl0aGFjYSBib3RoIG9sZCBhbmQgbmV3OyBJIHdpbGwgcnVuIG15IGV5ZSBvdmVyIHRoZW0gZm9yIHlvdSBhbmQgd2lsbCBjaG9vc2UgdGhlIGJlc3Q7IHdlIHdpbGwgZ2V0IGhlciByZWFkeSBhbmQgd2lsbCBwdXQgb3V0IHRvIHNlYSB3aXRob3V0IGRlbGF5LiINCg0KVGh1cyBzcG9rZSBNaW5lcnZhIGRhdWdodGVyIG9mIEpvdmUsIGFuZCBUZWxlbWFjaHVzIGxvc3Qgbm8gdGltZSBpbiBkb2luZyBhcyB0aGUgZ29kZGVzcyB0b2xkIGhpbS4gSGUgd2VudCBtb29kaWx5IGFuZCBmb3VuZCB0aGUgc3VpdG9ycyBmbGF5aW5nIGdvYXRzIGFuZCBzaW5nZWluZyBwaWdzIGluIHRoZSBvdXRlciBjb3VydC4gQW50aW5vdXMgY2FtZSB1cCB0byBoaW0gYXQgb25jZSBhbmQgbGF1Z2hlZCBhcyBoZSB0b29rIGhpcyBoYW5kIGluIGhpcyBvd24sIHNheWluZywgIlRlbGVtYWNodXMsIG15IGZpbmUgZmlyZS1lYXRlciwgYmVhciBubyBtb3JlIGlsbCBibG9vZCBuZWl0aGVyIGluIHdvcmQgbm9yIGRlZWQsIGJ1dCBlYXQgYW5kIGRyaW5rIHdpdGggdXMgYXMgeW91IHVzZWQgdG8gZG8uIFRoZSBBY2hhZWFucyB3aWxsIGZpbmQgeW91IGluIGV2ZXJ5dGhpbmctIGEgc2hpcCBhbmQgYSBwaWNrZWQgY3JldyB0byBib290LSBzbyB0aGF0IHlvdSBjYW4gc2V0IHNhaWwgZm9yIFB5bG9zIGF0IG9uY2UgYW5kIGdldCBuZXdzIG9mIHlvdXIgbm9ibGUgZmF0aGVyLiINCg0KIkFudGlub3VzLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgIkkgY2Fubm90IGVhdCBpbiBwZWFjZSwgbm9yIHRha2UgcGxlYXN1cmUgb2YgYW55IGtpbmQgd2l0aCBzdWNoIG1lbiBhcyB5b3UgYXJlLiBXYXMgaXQgbm90IGVub3VnaCB0aGF0IHlvdSBzaG91bGQgd2FzdGUgc28gbXVjaCBnb29kIHByb3BlcnR5IG9mIG1pbmUgd2hpbGUgSSB3YXMgeWV0IGEgYm95PyBOb3cgdGhhdCBJIGFtIG9sZGVyIGFuZCBrbm93IG1vcmUgYWJvdXQgaXQsIEkgYW0gYWxzbyBzdHJvbmdlciwgYW5kIHdoZXRoZXIgaGVyZSBhbW9uZyB0aGlzIHBlb3BsZSwgb3IgYnkgZ29pbmcgdG8gUHlsb3MsIEkgd2lsbCBkbyB5b3UgYWxsIHRoZSBoYXJtIEkgY2FuLiBJIHNoYWxsIGdvLCBhbmQgbXkgZ29pbmcgd2lsbCBub3QgYmUgaW4gdmFpbiB0aG91Z2gsIHRoYW5rcyB0byB5b3Ugc3VpdG9ycywgSSBoYXZlIG5laXRoZXIgc2hpcCBub3IgY3JldyBvZiBteSBvd24sIGFuZCBtdXN0IGJlIHBhc3NlbmdlciBub3QgY2FwdGFpbi4iDQoNCkFzIGhlIHNwb2tlIGhlIHNuYXRjaGVkIGhpcyBoYW5kIGZyb20gdGhhdCBvZiBBbnRpbm91cy4gTWVhbndoaWxlIHRoZSBvdGhlcnMgd2VudCBvbiBnZXR0aW5nIGRpbm5lciByZWFkeSBhYm91dCB0aGUgYnVpbGRpbmdzLCBqZWVyaW5nIGF0IGhpbSB0YXVudGluZ2x5IGFzIHRoZXkgZGlkIHNvLg0KDQoiVGVsZW1hY2h1cywiIHNhaWQgb25lIHlvdW5nc3RlciwgIm1lYW5zIHRvIGJlIHRoZSBkZWF0aCBvZiB1czsgSSBzdXBwb3NlIGhlIHRoaW5rcyBoZSBjYW4gYnJpbmcgZnJpZW5kcyB0byBoZWxwIGhpbSBmcm9tIFB5bG9zLCBvciBhZ2FpbiBmcm9tIFNwYXJ0YSwgd2hlcmUgaGUgc2VlbXMgYmVudCBvbiBnb2luZy4gT3Igd2lsbCBoZSBnbyB0byBFcGh5cmEgYXMgd2VsbCwgZm9yIHBvaXNvbiB0byBwdXQgaW4gb3VyIHdpbmUgYW5kIGtpbGwgdXM/Ig0KDQpBbm90aGVyIHNhaWQsICJQZXJoYXBzIGlmIFRlbGVtYWNodXMgZ29lcyBvbiBib2FyZCBzaGlwLCBoZSB3aWxsIGJlIGxpa2UgaGlzIGZhdGhlciBhbmQgcGVyaXNoIGZhciBmcm9tIGhpcyBmcmllbmRzLiBJbiB0aGlzIGNhc2Ugd2Ugc2hvdWxkIGhhdmUgcGxlbnR5IHRvIGRvLCBmb3Igd2UgY291bGQgdGhlbiBkaXZpZGUgdXAgaGlzIHByb3BlcnR5IGFtb25nc3QgdXM6IGFzIGZvciB0aGUgaG91c2Ugd2UgY2FuIGxldCBoaXMgbW90aGVyIGFuZCB0aGUgbWFuIHdobyBtYXJyaWVzIGhlciBoYXZlIHRoYXQuIg0KDQpUaGlzIHdhcyBob3cgdGhleSB0YWxrZWQuIEJ1dCBUZWxlbWFjaHVzIHdlbnQgZG93biBpbnRvIHRoZSBsb2Z0eSBhbmQgc3BhY2lvdXMgc3RvcmUtcm9vbSB3aGVyZSBoaXMgZmF0aGVyJ3MgdHJlYXN1cmUgb2YgZ29sZCBhbmQgYnJvbnplIGxheSBoZWFwZWQgdXAgdXBvbiB0aGUgZmxvb3IsIGFuZCB3aGVyZSB0aGUgbGluZW4gYW5kIHNwYXJlIGNsb3RoZXMgd2VyZSBrZXB0IGluIG9wZW4gY2hlc3RzLiBIZXJlLCB0b28sIHRoZXJlIHdhcyBhIHN0b3JlIG9mIGZyYWdyYW50IG9saXZlIG9pbCwgd2hpbGUgY2Fza3Mgb2Ygb2xkLCB3ZWxsLXJpcGVuZWQgd2luZSwgdW5ibGVuZGVkIGFuZCBmaXQgZm9yIGEgZ29kIHRvIGRyaW5rLCB3ZXJlIHJhbmdlZCBhZ2FpbnN0IHRoZSB3YWxsIGluIGNhc2UgVWx5c3NlcyBzaG91bGQgY29tZSBob21lIGFnYWluIGFmdGVyIGFsbC4gVGhlIHJvb20gd2FzIGNsb3NlZCB3aXRoIHdlbGwtbWFkZSBkb29ycyBvcGVuaW5nIGluIHRoZSBtaWRkbGU7IG1vcmVvdmVyIHRoZSBmYWl0aGZ1bCBvbGQgaG91c2Uta2VlcGVyIEV1cnljbGVhLCBkYXVnaHRlciBvZiBPcHMgdGhlIHNvbiBvZiBQaXNlbm9yLCB3YXMgaW4gY2hhcmdlIG9mIGV2ZXJ5dGhpbmcgYm90aCBuaWdodCBhbmQgZGF5LiBUZWxlbWFjaHVzIGNhbGxlZCBoZXIgdG8gdGhlIHN0b3JlLXJvb20gYW5kIHNhaWQ6DQoNCiJOdXJzZSwgZHJhdyBtZSBvZmYgc29tZSBvZiB0aGUgYmVzdCB3aW5lIHlvdSBoYXZlLCBhZnRlciB3aGF0IHlvdSBhcmUga2VlcGluZyBmb3IgbXkgZmF0aGVyJ3Mgb3duIGRyaW5raW5nLCBpbiBjYXNlLCBwb29yIG1hbiwgaGUgc2hvdWxkIGVzY2FwZSBkZWF0aCwgYW5kIGZpbmQgaGlzIHdheSBob21lIGFnYWluIGFmdGVyIGFsbC4gTGV0IG1lIGhhdmUgdHdlbHZlIGphcnMsIGFuZCBzZWUgdGhhdCB0aGV5IGFsbCBoYXZlIGxpZHM7IGFsc28gZmlsbCBtZSBzb21lIHdlbGwtc2V3biBsZWF0aGVybiBiYWdzIHdpdGggYmFybGV5IG1lYWwtIGFib3V0IHR3ZW50eSBtZWFzdXJlcyBpbiBhbGwuIEdldCB0aGVzZSB0aGluZ3MgcHV0IHRvZ2V0aGVyIGF0IG9uY2UsIGFuZCBzYXkgbm90aGluZyBhYm91dCBpdC4gSSB3aWxsIHRha2UgZXZlcnl0aGluZyBhd2F5IHRoaXMgZXZlbmluZyBhcyBzb29uIGFzIG15IG1vdGhlciBoYXMgZ29uZSB1cHN0YWlycyBmb3IgdGhlIG5pZ2h0LiBJIGFtIGdvaW5nIHRvIFNwYXJ0YSBhbmQgdG8gUHlsb3MgdG8gc2VlIGlmIEkgY2FuIGhlYXIgYW55dGhpbmcgYWJvdXQgdGhlIHJldHVybiBvZiBteSBkZWFyIGZhdGhlci4NCg0KV2hlbiBFdXJ5Y2xlYSBoZWFyZCB0aGlzIHNoZSBiZWdhbiB0byBjcnksIGFuZCBzcG9rZSBmb25kbHkgdG8gaGltLCBzYXlpbmcsICJNeSBkZWFyIGNoaWxkLCB3aGF0IGV2ZXIgY2FuIGhhdmUgcHV0IHN1Y2ggbm90aW9uIGFzIHRoYXQgaW50byB5b3VyIGhlYWQ/IFdoZXJlIGluIHRoZSB3b3JsZCBkbyB5b3Ugd2FudCB0byBnbyB0by0geW91LCB3aG8gYXJlIHRoZSBvbmUgaG9wZSBvZiB0aGUgaG91c2U/IFlvdXIgcG9vciBmYXRoZXIgaXMgZGVhZCBhbmQgZ29uZSBpbiBzb21lIGZvcmVpZ24gY291bnRyeSBub2JvZHkga25vd3Mgd2hlcmUsIGFuZCBhcyBzb29uIGFzIHlvdXIgYmFjayBpcyB0dXJuZWQgdGhlc2Ugd2lja2VkIG9uZXMgaGVyZSB3aWxsIGJlIHNjaGVtaW5nIHRvIGdldCB5b3UgcHV0IG91dCBvZiB0aGUgd2F5LCBhbmQgd2lsbCBzaGFyZSBhbGwgeW91ciBwb3NzZXNzaW9ucyBhbW9uZyB0aGVtc2VsdmVzOyBzdGF5IHdoZXJlIHlvdSBhcmUgYW1vbmcgeW91ciBvd24gcGVvcGxlLCBhbmQgZG8gbm90IGdvIHdhbmRlcmluZyBhbmQgd29ycnlpbmcgeW91ciBsaWZlIG91dCBvbiB0aGUgYmFycmVuIG9jZWFuLiINCg0KIkZlYXIgbm90LCBudXJzZSwiIGFuc3dlcmVkIFRlbGVtYWNodXMsICJteSBzY2hlbWUgaXMgbm90IHdpdGhvdXQgaGVhdmVuJ3Mgc2FuY3Rpb247IGJ1dCBzd2VhciB0aGF0IHlvdSB3aWxsIHNheSBub3RoaW5nIGFib3V0IGFsbCB0aGlzIHRvIG15IG1vdGhlciwgdGlsbCBJIGhhdmUgYmVlbiBhd2F5IHNvbWUgdGVuIG9yIHR3ZWx2ZSBkYXlzLCB1bmxlc3Mgc2hlIGhlYXJzIG9mIG15IGhhdmluZyBnb25lLCBhbmQgYXNrcyB5b3U7IGZvciBJIGRvIG5vdCB3YW50IGhlciB0byBzcG9pbCBoZXIgYmVhdXR5IGJ5IGNyeWluZy4iDQoNClRoZSBvbGQgd29tYW4gc3dvcmUgbW9zdCBzb2xlbW5seSB0aGF0IHNoZSB3b3VsZCBub3QsIGFuZCB3aGVuIHNoZSBoYWQgY29tcGxldGVkIGhlciBvYXRoLCBzaGUgYmVnYW4gZHJhd2luZyBvZmYgdGhlIHdpbmUgaW50byBqYXJzLCBhbmQgZ2V0dGluZyB0aGUgYmFybGV5IG1lYWwgaW50byB0aGUgYmFncywgd2hpbGUgVGVsZW1hY2h1cyB3ZW50IGJhY2sgdG8gdGhlIHN1aXRvcnMuDQoNClRoZW4gTWluZXJ2YSBiZXRob3VnaHQgaGVyIG9mIGFub3RoZXIgbWF0dGVyLiBTaGUgdG9vayBoaXMgc2hhcGUsIGFuZCB3ZW50IHJvdW5kIHRoZSB0b3duIHRvIGVhY2ggb25lIG9mIHRoZSBjcmV3LCB0ZWxsaW5nIHRoZW0gdG8gbWVldCBhdCB0aGUgc2hpcCBieSBzdW5kb3duLiBTaGUgd2VudCBhbHNvIHRvIE5vZW1vbiBzb24gb2YgUGhyb25pdXMsIGFuZCBhc2tlZCBoaW0gdG8gbGV0IGhlciBoYXZlIGEgc2hpcC0gd2hpY2ggaGUgd2FzIHZlcnkgcmVhZHkgdG8gZG8uIFdoZW4gdGhlIHN1biBoYWQgc2V0IGFuZCBkYXJrbmVzcyB3YXMgb3ZlciBhbGwgdGhlIGxhbmQsIHNoZSBnb3QgdGhlIHNoaXAgaW50byB0aGUgd2F0ZXIsIHB1dCBhbGwgdGhlIHRhY2tsZSBvbiBib2FyZCBoZXIgdGhhdCBzaGlwcyBnZW5lcmFsbHkgY2FycnksIGFuZCBzdGF0aW9uZWQgaGVyIGF0IHRoZSBlbmQgb2YgdGhlIGhhcmJvdXIuIFByZXNlbnRseSB0aGUgY3JldyBjYW1lIHVwLCBhbmQgdGhlIGdvZGRlc3Mgc3Bva2UgZW5jb3VyYWdpbmdseSB0byBlYWNoIG9mIHRoZW0uDQoNCkZ1cnRoZXJtb3JlIHNoZSB3ZW50IHRvIHRoZSBob3VzZSBvZiBVbHlzc2VzLCBhbmQgdGhyZXcgdGhlIHN1aXRvcnMgaW50byBhIGRlZXAgc2x1bWJlci4gU2hlIGNhdXNlZCB0aGVpciBkcmluayB0byBmdWRkbGUgdGhlbSwgYW5kIG1hZGUgdGhlbSBkcm9wIHRoZWlyIGN1cHMgZnJvbSB0aGVpciBoYW5kcywgc28gdGhhdCBpbnN0ZWFkIG9mIHNpdHRpbmcgb3ZlciB0aGVpciB3aW5lLCB0aGV5IHdlbnQgYmFjayBpbnRvIHRoZSB0b3duIHRvIHNsZWVwLCB3aXRoIHRoZWlyIGV5ZXMgaGVhdnkgYW5kIGZ1bGwgb2YgZHJvd3NpbmVzcy4gVGhlbiBzaGUgdG9vayB0aGUgZm9ybSBhbmQgdm9pY2Ugb2YgTWVudG9yLCBhbmQgY2FsbGVkIFRlbGVtYWNodXMgdG8gY29tZSBvdXRzaWRlLg0KDQoiVGVsZW1hY2h1cywiIHNhaWQgc2hlLCAidGhlIG1lbiBhcmUgb24gYm9hcmQgYW5kIGF0IHRoZWlyIG9hcnMsIHdhaXRpbmcgZm9yIHlvdSB0byBnaXZlIHlvdXIgb3JkZXJzLCBzbyBtYWtlIGhhc3RlIGFuZCBsZXQgdXMgYmUgb2ZmLiINCg0KT24gdGhpcyBzaGUgbGVkIHRoZSB3YXksIHdoaWxlIFRlbGVtYWNodXMgZm9sbG93ZWQgaW4gaGVyIHN0ZXBzLiBXaGVuIHRoZXkgZ290IHRvIHRoZSBzaGlwIHRoZXkgZm91bmQgdGhlIGNyZXcgd2FpdGluZyBieSB0aGUgd2F0ZXIgc2lkZSwgYW5kIFRlbGVtYWNodXMgc2FpZCwgIk5vdyBteSBtZW4sIGhlbHAgbWUgdG8gZ2V0IHRoZSBzdG9yZXMgb24gYm9hcmQ7IHRoZXkgYXJlIGFsbCBwdXQgdG9nZXRoZXIgaW4gdGhlIGNsb2lzdGVyLCBhbmQgbXkgbW90aGVyIGRvZXMgbm90IGtub3cgYW55dGhpbmcgYWJvdXQgaXQsIG5vciBhbnkgb2YgdGhlIG1haWQgc2VydmFudHMgZXhjZXB0IG9uZS4iDQoNCldpdGggdGhlc2Ugd29yZHMgaGUgbGVkIHRoZSB3YXkgYW5kIHRoZSBvdGhlcnMgZm9sbG93ZWQgYWZ0ZXIuIFdoZW4gdGhleSBoYWQgYnJvdWdodCB0aGUgdGhpbmdzIGFzIGhlIHRvbGQgdGhlbSwgVGVsZW1hY2h1cyB3ZW50IG9uIGJvYXJkLCBNaW5lcnZhIGdvaW5nIGJlZm9yZSBoaW0gYW5kIHRha2luZyBoZXIgc2VhdCBpbiB0aGUgc3Rlcm4gb2YgdGhlIHZlc3NlbCwgd2hpbGUgVGVsZW1hY2h1cyBzYXQgYmVzaWRlIGhlci4gVGhlbiB0aGUgbWVuIGxvb3NlZCB0aGUgaGF3c2VycyBhbmQgdG9vayB0aGVpciBwbGFjZXMgb24gdGhlIGJlbmNoZXMuIE1pbmVydmEgc2VudCB0aGVtIGEgZmFpciB3aW5kIGZyb20gdGhlIFdlc3QsIHRoYXQgd2hpc3RsZWQgb3ZlciB0aGUgZGVlcCBibHVlIHdhdmVzIHdoZXJlb24gVGVsZW1hY2h1cyB0b2xkIHRoZW0gdG8gY2F0Y2ggaG9sZCBvZiB0aGUgcm9wZXMgYW5kIGhvaXN0IHNhaWwsIGFuZCB0aGV5IGRpZCBhcyBoZSB0b2xkIHRoZW0uIFRoZXkgc2V0IHRoZSBtYXN0IGluIGl0cyBzb2NrZXQgaW4gdGhlIGNyb3NzIHBsYW5rLCByYWlzZWQgaXQsIGFuZCBtYWRlIGl0IGZhc3Qgd2l0aCB0aGUgZm9yZXN0YXlzOyB0aGVuIHRoZXkgaG9pc3RlZCB0aGVpciB3aGl0ZSBzYWlscyBhbG9mdCB3aXRoIHJvcGVzIG9mIHR3aXN0ZWQgb3ggaGlkZS4gQXMgdGhlIHNhaWwgYmVsbGllZCBvdXQgd2l0aCB0aGUgd2luZCwgdGhlIHNoaXAgZmxldyB0aHJvdWdoIHRoZSBkZWVwIGJsdWUgd2F0ZXIsIGFuZCB0aGUgZm9hbSBoaXNzZWQgYWdhaW5zdCBoZXIgYm93cyBhcyBzaGUgc3BlZCBvbndhcmQuIFRoZW4gdGhleSBtYWRlIGFsbCBmYXN0IHRocm91Z2hvdXQgdGhlIHNoaXAsIGZpbGxlZCB0aGUgbWl4aW5nLWJvd2xzIHRvIHRoZSBicmltLCBhbmQgbWFkZSBkcmluayBvZmZlcmluZ3MgdG8gdGhlIGltbW9ydGFsIGdvZHMgdGhhdCBhcmUgZnJvbSBldmVybGFzdGluZywgYnV0IG1vcmUgcGFydGljdWxhcmx5IHRvIHRoZSBncmV5LWV5ZWQgZGF1Z2h0ZXIgb2YgSm92ZS4NCg0KVGh1cywgdGhlbiwgdGhlIHNoaXAgc3BlZCBvbiBoZXIgd2F5IHRocm91Z2ggdGhlIHdhdGNoZXMgb2YgdGhlIG5pZ2h0IGZyb20gZGFyayB0aWxsIGRhd24uDQoNCkJvb2sgSUlJDQoNCkJ1dCBhcyB0aGUgc3VuIHdhcyByaXNpbmcgZnJvbSB0aGUgZmFpciBzZWEgaW50byB0aGUgZmlybWFtZW50IG9mIGhlYXZlbiB0byBzaGVkIGxpZ2h0IG9uIG1vcnRhbHMgYW5kIGltbW9ydGFscywgdGhleSByZWFjaGVkIFB5bG9zIHRoZSBjaXR5IG9mIE5lbGV1cy4gTm93IHRoZSBwZW9wbGUgb2YgUHlsb3Mgd2VyZSBnYXRoZXJlZCBvbiB0aGUgc2VhIHNob3JlIHRvIG9mZmVyIHNhY3JpZmljZSBvZiBibGFjayBidWxscyB0byBOZXB0dW5lIGxvcmQgb2YgdGhlIEVhcnRocXVha2UuIFRoZXJlIHdlcmUgbmluZSBndWlsZHMgd2l0aCBmaXZlIGh1bmRyZWQgbWVuIGluIGVhY2gsIGFuZCB0aGVyZSB3ZXJlIG5pbmUgYnVsbHMgdG8gZWFjaCBndWlsZC4gQXMgdGhleSB3ZXJlIGVhdGluZyB0aGUgaW53YXJkIG1lYXRzIGFuZCBidXJuaW5nIHRoZSB0aGlnaCBib25lcyBbb24gdGhlIGVtYmVyc10gaW4gdGhlIG5hbWUgb2YgTmVwdHVuZSwgVGVsZW1hY2h1cyBhbmQgaGlzIGNyZXcgYXJyaXZlZCwgZnVybGVkIHRoZWlyIHNhaWxzLCBicm91Z2h0IHRoZWlyIHNoaXAgdG8gYW5jaG9yLCBhbmQgd2VudCBhc2hvcmUuDQoNCk1pbmVydmEgbGVkIHRoZSB3YXkgYW5kIFRlbGVtYWNodXMgZm9sbG93ZWQgaGVyLiBQcmVzZW50bHkgc2hlIHNhaWQsICJUZWxlbWFjaHVzLCB5b3UgbXVzdCBub3QgYmUgaW4gdGhlIGxlYXN0IHNoeSBvciBuZXJ2b3VzOyB5b3UgaGF2ZSB0YWtlbiB0aGlzIHZveWFnZSB0byB0cnkgYW5kIGZpbmQgb3V0IHdoZXJlIHlvdXIgZmF0aGVyIGlzIGJ1cmllZCBhbmQgaG93IGhlIGNhbWUgYnkgaGlzIGVuZDsgc28gZ28gc3RyYWlnaHQgdXAgdG8gTmVzdG9yIHRoYXQgd2UgbWF5IHNlZSB3aGF0IGhlIGhhcyBnb3QgdG8gdGVsbCB1cy4gQmVnIG9mIGhpbSB0byBzcGVhayB0aGUgdHJ1dGgsIGFuZCBoZSB3aWxsIHRlbGwgbm8gbGllcywgZm9yIGhlIGlzIGFuIGV4Y2VsbGVudCBwZXJzb24uIg0KDQoiQnV0IGhvdywgTWVudG9yLCIgcmVwbGllZCBUZWxlbWFjaHVzLCAiZGFyZSBJIGdvIHVwIHRvIE5lc3RvciwgYW5kIGhvdyBhbSBJIHRvIGFkZHJlc3MgaGltPyBJIGhhdmUgbmV2ZXIgeWV0IGJlZW4gdXNlZCB0byBob2xkaW5nIGxvbmcgY29udmVyc2F0aW9ucyB3aXRoIHBlb3BsZSwgYW5kIGFtIGFzaGFtZWQgdG8gYmVnaW4gcXVlc3Rpb25pbmcgb25lIHdobyBpcyBzbyBtdWNoIG9sZGVyIHRoYW4gbXlzZWxmLiINCg0KIlNvbWUgdGhpbmdzLCBUZWxlbWFjaHVzLCIgYW5zd2VyZWQgTWluZXJ2YSwgIndpbGwgYmUgc3VnZ2VzdGVkIHRvIHlvdSBieSB5b3VyIG93biBpbnN0aW5jdCwgYW5kIGhlYXZlbiB3aWxsIHByb21wdCB5b3UgZnVydGhlcjsgZm9yIEkgYW0gYXNzdXJlZCB0aGF0IHRoZSBnb2RzIGhhdmUgYmVlbiB3aXRoIHlvdSBmcm9tIHRoZSB0aW1lIG9mIHlvdXIgYmlydGggdW50aWwgbm93LiINCg0KU2hlIHRoZW4gd2VudCBxdWlja2x5IG9uLCBhbmQgVGVsZW1hY2h1cyBmb2xsb3dlZCBpbiBoZXIgc3RlcHMgdGlsbCB0aGV5IHJlYWNoZWQgdGhlIHBsYWNlIHdoZXJlIHRoZSBndWlsZHMgb2YgdGhlIFB5bGlhbiBwZW9wbGUgd2VyZSBhc3NlbWJsZWQuIFRoZXJlIHRoZXkgZm91bmQgTmVzdG9yIHNpdHRpbmcgd2l0aCBoaXMgc29ucywgd2hpbGUgaGlzIGNvbXBhbnkgcm91bmQgaGltIHdlcmUgYnVzeSBnZXR0aW5nIGRpbm5lciByZWFkeSwgYW5kIHB1dHRpbmcgcGllY2VzIG9mIG1lYXQgb24gdG8gdGhlIHNwaXRzIHdoaWxlIG90aGVyIHBpZWNlcyB3ZXJlIGNvb2tpbmcuIFdoZW4gdGhleSBzYXcgdGhlIHN0cmFuZ2VycyB0aGV5IGNyb3dkZWQgcm91bmQgdGhlbSwgdG9vayB0aGVtIGJ5IHRoZSBoYW5kIGFuZCBiYWRlIHRoZW0gdGFrZSB0aGVpciBwbGFjZXMuIE5lc3RvcidzIHNvbiBQaXNpc3RyYXR1cyBhdCBvbmNlIG9mZmVyZWQgaGlzIGhhbmQgdG8gZWFjaCBvZiB0aGVtLCBhbmQgc2VhdGVkIHRoZW0gb24gc29tZSBzb2Z0IHNoZWVwc2tpbnMgdGhhdCB3ZXJlIGx5aW5nIG9uIHRoZSBzYW5kcyBuZWFyIGhpcyBmYXRoZXIgYW5kIGhpcyBicm90aGVyIFRocmFzeW1lZGVzLiBUaGVuIGhlIGdhdmUgdGhlbSB0aGVpciBwb3J0aW9ucyBvZiB0aGUgaW53YXJkIG1lYXRzIGFuZCBwb3VyZWQgd2luZSBmb3IgdGhlbSBpbnRvIGEgZ29sZGVuIGN1cCwgaGFuZGluZyBpdCB0byBNaW5lcnZhIGZpcnN0LCBhbmQgc2FsdXRpbmcgaGVyIGF0IHRoZSBzYW1lIHRpbWUuDQoNCiJPZmZlciBhIHByYXllciwgc2lyLCIgc2FpZCBoZSwgInRvIEtpbmcgTmVwdHVuZSwgZm9yIGl0IGlzIGhpcyBmZWFzdCB0aGF0IHlvdSBhcmUgam9pbmluZzsgd2hlbiB5b3UgaGF2ZSBkdWx5IHByYXllZCBhbmQgbWFkZSB5b3VyIGRyaW5rLW9mZmVyaW5nLCBwYXNzIHRoZSBjdXAgdG8geW91ciBmcmllbmQgdGhhdCBoZSBtYXkgZG8gc28gYWxzby4gSSBkb3VidCBub3QgdGhhdCBoZSB0b28gbGlmdHMgaGlzIGhhbmRzIGluIHByYXllciwgZm9yIG1hbiBjYW5ub3QgbGl2ZSB3aXRob3V0IEdvZCBpbiB0aGUgd29ybGQuIFN0aWxsIGhlIGlzIHlvdW5nZXIgdGhhbiB5b3UgYXJlLCBhbmQgaXMgbXVjaCBvZiBhbiBhZ2Ugd2l0aCBteXNlbGYsIHNvIEkgaGUgaGFuZGVkIEkgd2lsbCBnaXZlIHlvdSB0aGUgcHJlY2VkZW5jZS4iDQoNCkFzIGhlIHNwb2tlIGhlIGhhbmRlZCBoZXIgdGhlIGN1cC4gTWluZXJ2YSB0aG91Z2h0IGl0IHZlcnkgcmlnaHQgYW5kIHByb3BlciBvZiBoaW0gdG8gaGF2ZSBnaXZlbiBpdCB0byBoZXJzZWxmIGZpcnN0OyBzaGUgYWNjb3JkaW5nbHkgYmVnYW4gcHJheWluZyBoZWFydGlseSB0byBOZXB0dW5lLiAiTyB0aG91LCIgc2hlIGNyaWVkLCAidGhhdCBlbmNpcmNsZXN0IHRoZSBlYXJ0aCwgdm91Y2hzYWZlIHRvIGdyYW50IHRoZSBwcmF5ZXJzIG9mIHRoeSBzZXJ2YW50cyB0aGF0IGNhbGwgdXBvbiB0aGVlLiBNb3JlIGVzcGVjaWFsbHkgd2UgcHJheSB0aGVlIHNlbmQgZG93biB0aHkgZ3JhY2Ugb24gTmVzdG9yIGFuZCBvbiBoaXMgc29uczsgdGhlcmVhZnRlciBhbHNvIG1ha2UgdGhlIHJlc3Qgb2YgdGhlIFB5bGlhbiBwZW9wbGUgc29tZSBoYW5kc29tZSByZXR1cm4gZm9yIHRoZSBnb29kbHkgaGVjYXRvbWIgdGhleSBhcmUgb2ZmZXJpbmcgeW91LiBMYXN0bHksIGdyYW50IFRlbGVtYWNodXMgYW5kIG15c2VsZiBhIGhhcHB5IGlzc3VlLCBpbiByZXNwZWN0IG9mIHRoZSBtYXR0ZXIgdGhhdCBoYXMgYnJvdWdodCB1cyBpbiBvdXIgdG8gUHlsb3MuIg0KDQpXaGVuIHNoZSBoYWQgdGh1cyBtYWRlIGFuIGVuZCBvZiBwcmF5aW5nLCBzaGUgaGFuZGVkIHRoZSBjdXAgdG8gVGVsZW1hY2h1cyBhbmQgaGUgcHJheWVkIGxpa2V3aXNlLiBCeSBhbmQgYnksIHdoZW4gdGhlIG91dGVyIG1lYXRzIHdlcmUgcm9hc3RlZCBhbmQgaGFkIGJlZW4gdGFrZW4gb2ZmIHRoZSBzcGl0cywgdGhlIGNhcnZlcnMgZ2F2ZSBldmVyeSBtYW4gaGlzIHBvcnRpb24gYW5kIHRoZXkgYWxsIG1hZGUgYW4gZXhjZWxsZW50IGRpbm5lci4gQXMgc29vbiBhcyB0aGV5IGhhZCBoYWQgZW5vdWdoIHRvIGVhdCBhbmQgZHJpbmssIE5lc3Rvciwga25pZ2h0IG9mIEdlcmVuZSwgYmVnYW4gdG8gc3BlYWsuDQoNCiJOb3csIiBzYWlkIGhlLCAidGhhdCBvdXIgZ3Vlc3RzIGhhdmUgZG9uZSB0aGVpciBkaW5uZXIsIGl0IHdpbGwgYmUgYmVzdCB0byBhc2sgdGhlbSB3aG8gdGhleSBhcmUuIFdobywgdGhlbiwgc2lyIHN0cmFuZ2VycywgYXJlIHlvdSwgYW5kIGZyb20gd2hhdCBwb3J0IGhhdmUgeW91IHNhaWxlZD8gQXJlIHlvdSB0cmFkZXJzPyBvciBkbyB5b3Ugc2FpbCB0aGUgc2VhcyBhcyByb3ZlcnMgd2l0aCB5b3VyIGhhbmQgYWdhaW5zdCBldmVyeSBtYW4sIGFuZCBldmVyeSBtYW4ncyBoYW5kIGFnYWluc3QgeW91PyINCg0KVGVsZW1hY2h1cyBhbnN3ZXJlZCBib2xkbHksIGZvciBNaW5lcnZhIGhhZCBnaXZlbiBoaW0gY291cmFnZSB0byBhc2sgYWJvdXQgaGlzIGZhdGhlciBhbmQgZ2V0IGhpbXNlbGYgYSBnb29kIG5hbWUuDQoNCiJOZXN0b3IsIiBzYWlkIGhlLCAic29uIG9mIE5lbGV1cywgaG9ub3VyIHRvIHRoZSBBY2hhZWFuIG5hbWUsIHlvdSBhc2sgd2hlbmNlIHdlIGNvbWUsIGFuZCBJIHdpbGwgdGVsbCB5b3UuIFdlIGNvbWUgZnJvbSBJdGhhY2EgdW5kZXIgTmVyaXR1bSwgYW5kIHRoZSBtYXR0ZXIgYWJvdXQgd2hpY2ggSSB3b3VsZCBzcGVhayBpcyBvZiBwcml2YXRlIG5vdCBwdWJsaWMgaW1wb3J0LiBJIHNlZWsgbmV3cyBvZiBteSB1bmhhcHB5IGZhdGhlciBVbHlzc2VzLCB3aG8gaXMgc2FpZCB0byBoYXZlIHNhY2tlZCB0aGUgdG93biBvZiBUcm95IGluIGNvbXBhbnkgd2l0aCB5b3Vyc2VsZi4gV2Uga25vdyB3aGF0IGZhdGUgYmVmZWxsIGVhY2ggb25lIG9mIHRoZSBvdGhlciBoZXJvZXMgd2hvIGZvdWdodCBhdCBUcm95LCBidXQgYXMgcmVnYXJkcyBVbHlzc2VzIGhlYXZlbiBoYXMgaGlkZGVuIGZyb20gdXMgdGhlIGtub3dsZWRnZSBldmVuIHRoYXQgaGUgaXMgZGVhZCBhdCBhbGwsIGZvciBubyBvbmUgY2FuIGNlcnRpZnkgdXMgaW4gd2hhdCBwbGFjZSBoZSBwZXJpc2hlZCwgbm9yIHNheSB3aGV0aGVyIGhlIGZlbGwgaW4gYmF0dGxlIG9uIHRoZSBtYWlubGFuZCwgb3Igd2FzIGxvc3QgYXQgc2VhIGFtaWQgdGhlIHdhdmVzIG9mIEFtcGhpdHJpdGUuIFRoZXJlZm9yZSBJIGFtIHN1cHBsaWFudCBhdCB5b3VyIGtuZWVzLCBpZiBoYXBseSB5b3UgbWF5IGJlIHBsZWFzZWQgdG8gdGVsbCBtZSBvZiBoaXMgbWVsYW5jaG9seSBlbmQsIHdoZXRoZXIgeW91IHNhdyBpdCB3aXRoIHlvdXIgb3duIGV5ZXMsIG9yIGhlYXJkIGl0IGZyb20gc29tZSBvdGhlciB0cmF2ZWxsZXIsIGZvciBoZSB3YXMgYSBtYW4gYm9ybiB0byB0cm91YmxlLiBEbyBub3Qgc29mdGVuIHRoaW5ncyBvdXQgb2YgYW55IHBpdHkgZm9yIG1lLCBidXQgdGVsbCBtZSBpbiBhbGwgcGxhaW5uZXNzIGV4YWN0bHkgd2hhdCB5b3Ugc2F3LiBJZiBteSBicmF2ZSBmYXRoZXIgVWx5c3NlcyBldmVyIGRpZCB5b3UgbG95YWwgc2VydmljZSwgZWl0aGVyIGJ5IHdvcmQgb3IgZGVlZCwgd2hlbiB5b3UgQWNoYWVhbnMgd2VyZSBoYXJhc3NlZCBhbW9uZyB0aGUgVHJvamFucywgYmVhciBpdCBpbiBtaW5kIG5vdyBhcyBpbiBteSBmYXZvdXIgYW5kIHRlbGwgbWUgdHJ1bHkgYWxsLiINCg0KIk15IGZyaWVuZCwiIGFuc3dlcmVkIE5lc3RvciwgInlvdSByZWNhbGwgYSB0aW1lIG9mIG11Y2ggc29ycm93IHRvIG15IG1pbmQsIGZvciB0aGUgYnJhdmUgQWNoYWVhbnMgc3VmZmVyZWQgbXVjaCBib3RoIGF0IHNlYSwgd2hpbGUgcHJpdmF0ZWVyaW5nIHVuZGVyIEFjaGlsbGVzLCBhbmQgd2hlbiBmaWdodGluZyBiZWZvcmUgdGhlIGdyZWF0IGNpdHkgb2Yga2luZyBQcmlhbS4gT3VyIGJlc3QgbWVuIGFsbCBvZiB0aGVtIGZlbGwgdGhlcmUtIEFqYXgsIEFjaGlsbGVzLCBQYXRyb2NsdXMgcGVlciBvZiBnb2RzIGluIGNvdW5zZWwsIGFuZCBteSBvd24gZGVhciBzb24gQW50aWxvY2h1cywgYSBtYW4gc2luZ3VsYXJseSBmbGVldCBvZiBmb290IGFuZCBpbiBmaWdodCB2YWxpYW50LiBCdXQgd2Ugc3VmZmVyZWQgbXVjaCBtb3JlIHRoYW4gdGhpczsgd2hhdCBtb3J0YWwgdG9uZ3VlIGluZGVlZCBjb3VsZCB0ZWxsIHRoZSB3aG9sZSBzdG9yeT8gVGhvdWdoIHlvdSB3ZXJlIHRvIHN0YXkgaGVyZSBhbmQgcXVlc3Rpb24gbWUgZm9yIGZpdmUgeWVhcnMsIG9yIGV2ZW4gc2l4LCBJIGNvdWxkIG5vdCB0ZWxsIHlvdSBhbGwgdGhhdCB0aGUgQWNoYWVhbnMgc3VmZmVyZWQsIGFuZCB5b3Ugd291bGQgdHVybiBob21ld2FyZCB3ZWFyeSBvZiBteSB0YWxlIGJlZm9yZSBpdCBlbmRlZC4gTmluZSBsb25nIHllYXJzIGRpZCB3ZSB0cnkgZXZlcnkga2luZCBvZiBzdHJhdGFnZW0sIGJ1dCB0aGUgaGFuZCBvZiBoZWF2ZW4gd2FzIGFnYWluc3QgdXM7IGR1cmluZyBhbGwgdGhpcyB0aW1lIHRoZXJlIHdhcyBubyBvbmUgd2hvIGNvdWxkIGNvbXBhcmUgd2l0aCB5b3VyIGZhdGhlciBpbiBzdWJ0bGV0eS0gaWYgaW5kZWVkIHlvdSBhcmUgaGlzIHNvbi0gSSBjYW4gaGFyZGx5IGJlbGlldmUgbXkgZXllcy0gYW5kIHlvdSB0YWxrIGp1c3QgbGlrZSBoaW0gdG9vLSBubyBvbmUgd291bGQgc2F5IHRoYXQgcGVvcGxlIG9mIHN1Y2ggZGlmZmVyZW50IGFnZXMgY291bGQgc3BlYWsgc28gbXVjaCBhbGlrZS4gSGUgYW5kIEkgbmV2ZXIgaGFkIGFueSBraW5kIG9mIGRpZmZlcmVuY2UgZnJvbSBmaXJzdCB0byBsYXN0IG5laXRoZXIgaW4gY2FtcCBub3IgY291bmNpbCwgYnV0IGluIHNpbmdsZW5lc3Mgb2YgaGVhcnQgYW5kIHB1cnBvc2Ugd2UgYWR2aXNlZCB0aGUgQXJnaXZlcyBob3cgYWxsIG1pZ2h0IGJlIG9yZGVyZWQgZm9yIHRoZSBiZXN0Lg0KDQoiV2hlbiBob3dldmVyLCB3ZSBoYWQgc2Fja2VkIHRoZSBjaXR5IG9mIFByaWFtLCBhbmQgd2VyZSBzZXR0aW5nIHNhaWwgaW4gb3VyIHNoaXBzIGFzIGhlYXZlbiBoYWQgZGlzcGVyc2VkIHVzLCB0aGVuIEpvdmUgc2F3IGZpdCB0byB2ZXggdGhlIEFyZ2l2ZXMgb24gdGhlaXIgaG9tZXdhcmQgdm95YWdlOyBmb3IgdGhleSBoYWQgTm90IGFsbCBiZWVuIGVpdGhlciB3aXNlIG9yIHVuZGVyc3RhbmRpbmcsIGFuZCBoZW5jZSBtYW55IGNhbWUgdG8gYSBiYWQgZW5kIHRocm91Z2ggdGhlIGRpc3BsZWFzdXJlIG9mIEpvdmUncyBkYXVnaHRlciBNaW5lcnZhLCB3aG8gYnJvdWdodCBhYm91dCBhIHF1YXJyZWwgYmV0d2VlbiB0aGUgdHdvIHNvbnMgb2YgQXRyZXVzLg0KDQoiVGhlIHNvbnMgb2YgQXRyZXVzIGNhbGxlZCBhIG1lZXRpbmcgd2hpY2ggd2FzIG5vdCBhcyBpdCBzaG91bGQgYmUsIGZvciBpdCB3YXMgc3Vuc2V0IGFuZCB0aGUgQWNoYWVhbnMgd2VyZSBoZWF2eSB3aXRoIHdpbmUuIFdoZW4gdGhleSBleHBsYWluZWQgd2h5IHRoZXkgaGFkIGNhbGxlZC0gdGhlIHBlb3BsZSB0b2dldGhlciwgaXQgc2VlbWVkIHRoYXQgTWVuZWxhdXMgd2FzIGZvciBzYWlsaW5nIGhvbWV3YXJkIGF0IG9uY2UsIGFuZCB0aGlzIGRpc3BsZWFzZWQgQWdhbWVtbm9uLCB3aG8gdGhvdWdodCB0aGF0IHdlIHNob3VsZCB3YWl0IHRpbGwgd2UgaGFkIG9mZmVyZWQgaGVjYXRvbWJzIHRvIGFwcGVhc2UgdGhlIGFuZ2VyIG9mIE1pbmVydmEuIEZvb2wgdGhhdCBoZSB3YXMsIGhlIG1pZ2h0IGhhdmUga25vd24gdGhhdCBoZSB3b3VsZCBub3QgcHJldmFpbCB3aXRoIGhlciwgZm9yIHdoZW4gdGhlIGdvZHMgaGF2ZSBtYWRlIHVwIHRoZWlyIG1pbmRzIHRoZXkgZG8gbm90IGNoYW5nZSB0aGVtIGxpZ2h0bHkuIFNvIHRoZSB0d28gc3Rvb2QgYmFuZHlpbmcgaGFyZCB3b3Jkcywgd2hlcmVvbiB0aGUgQWNoYWVhbnMgc3ByYW5nIHRvIHRoZWlyIGZlZXQgd2l0aCBhIGNyeSB0aGF0IHJlbnQgdGhlIGFpciwgYW5kIHdlcmUgb2YgdHdvIG1pbmRzIGFzIHRvIHdoYXQgdGhleSBzaG91bGQgZG8uDQoNCiJUaGF0IG5pZ2h0IHdlIHJlc3RlZCBhbmQgbnVyc2VkIG91ciBhbmdlciwgZm9yIEpvdmUgd2FzIGhhdGNoaW5nIG1pc2NoaWVmIGFnYWluc3QgdXMuIEJ1dCBpbiB0aGUgbW9ybmluZyBzb21lIG9mIHVzIGRyZXcgb3VyIHNoaXBzIGludG8gdGhlIHdhdGVyIGFuZCBwdXQgb3VyIGdvb2RzIHdpdGggb3VyIHdvbWVuIG9uIGJvYXJkLCB3aGlsZSB0aGUgcmVzdCwgYWJvdXQgaGFsZiBpbiBudW1iZXIsIHN0YXllZCBiZWhpbmQgd2l0aCBBZ2FtZW1ub24uIFdlLSB0aGUgb3RoZXIgaGFsZi0gZW1iYXJrZWQgYW5kIHNhaWxlZDsgYW5kIHRoZSBzaGlwcyB3ZW50IHdlbGwsIGZvciBoZWF2ZW4gaGFkIHNtb290aGVkIHRoZSBzZWEuIFdoZW4gd2UgcmVhY2hlZCBUZW5lZG9zIHdlIG9mZmVyZWQgc2FjcmlmaWNlcyB0byB0aGUgZ29kcywgZm9yIHdlIHdlcmUgbG9uZ2luZyB0byBnZXQgaG9tZTsgY3J1ZWwgSm92ZSwgaG93ZXZlciwgZGlkIG5vdCB5ZXQgbWVhbiB0aGF0IHdlIHNob3VsZCBkbyBzbywgYW5kIHJhaXNlZCBhIHNlY29uZCBxdWFycmVsIGluIHRoZSBjb3Vyc2Ugb2Ygd2hpY2ggc29tZSBhbW9uZyB1cyB0dXJuZWQgdGhlaXIgc2hpcHMgYmFjayBhZ2FpbiwgYW5kIHNhaWxlZCBhd2F5IHVuZGVyIFVseXNzZXMgdG8gbWFrZSB0aGVpciBwZWFjZSB3aXRoIEFnYW1lbW5vbjsgYnV0IEksIGFuZCBhbGwgdGhlIHNoaXBzIHRoYXQgd2VyZSB3aXRoIG1lIHByZXNzZWQgZm9yd2FyZCwgZm9yIEkgc2F3IHRoYXQgbWlzY2hpZWYgd2FzIGJyZXdpbmcuIFRoZSBzb24gb2YgVHlkZXVzIHdlbnQgb24gYWxzbyB3aXRoIG1lLCBhbmQgaGlzIGNyZXdzIHdpdGggaGltLiBMYXRlciBvbiBNZW5lbGF1cyBqb2luZWQgdXMgYXQgTGVzYm9zLCBhbmQgZm91bmQgdXMgbWFraW5nIHVwIG91ciBtaW5kcyBhYm91dCBvdXIgY291cnNlLSBmb3Igd2UgZGlkIG5vdCBrbm93IHdoZXRoZXIgdG8gZ28gb3V0c2lkZSBDaGlvcyBieSB0aGUgaXNsYW5kIG9mIFBzeXJhLCBrZWVwaW5nIHRoaXMgdG8gb3VyIGxlZnQsIG9yIGluc2lkZSBDaGlvcywgb3ZlciBhZ2FpbnN0IHRoZSBzdG9ybXkgaGVhZGxhbmQgb2YgTWltYXMuIFNvIHdlIGFza2VkIGhlYXZlbiBmb3IgYSBzaWduLCBhbmQgd2VyZSBzaG93biBvbmUgdG8gdGhlIGVmZmVjdCB0aGF0IHdlIHNob3VsZCBiZSBzb29uZXN0IG91dCBvZiBkYW5nZXIgaWYgd2UgaGVhZGVkIG91ciBzaGlwcyBhY3Jvc3MgdGhlIG9wZW4gc2VhIHRvIEV1Ym9lYS4gVGhpcyB3ZSB0aGVyZWZvcmUgZGlkLCBhbmQgYSBmYWlyIHdpbmQgc3ByYW5nIHVwIHdoaWNoIGdhdmUgdXMgYSBxdWljayBwYXNzYWdlIGR1cmluZyB0aGUgbmlnaHQgdG8gR2VyYWVzdHVzLCB3aGVyZSB3ZSBvZmZlcmVkIG1hbnkgc2FjcmlmaWNlcyB0byBOZXB0dW5lIGZvciBoYXZpbmcgaGVscGVkIHVzIHNvIGZhciBvbiBvdXIgd2F5LiBGb3VyIGRheXMgbGF0ZXIgRGlvbWVkIGFuZCBoaXMgbWVuIHN0YXRpb25lZCB0aGVpciBzaGlwcyBpbiBBcmdvcywgYnV0IEkgaGVsZCBvbiBmb3IgUHlsb3MsIGFuZCB0aGUgd2luZCBuZXZlciBmZWxsIGxpZ2h0IGZyb20gdGhlIGRheSB3aGVuIGhlYXZlbiBmaXJzdCBtYWRlIGl0IGZhaXIgZm9yIG1lLg0KDQoiVGhlcmVmb3JlLCBteSBkZWFyIHlvdW5nIGZyaWVuZCwgSSByZXR1cm5lZCB3aXRob3V0IGhlYXJpbmcgYW55dGhpbmcgYWJvdXQgdGhlIG90aGVycy4gSSBrbm93IG5laXRoZXIgd2hvIGdvdCBob21lIHNhZmVseSBub3Igd2hvIHdlcmUgbG9zdCBidXQsIGFzIGluIGR1dHkgYm91bmQsIEkgd2lsbCBnaXZlIHlvdSB3aXRob3V0IHJlc2VydmUgdGhlIHJlcG9ydHMgdGhhdCBoYXZlIHJlYWNoZWQgbWUgc2luY2UgSSBoYXZlIGJlZW4gaGVyZSBpbiBteSBvd24gaG91c2UuIFRoZXkgc2F5IHRoZSBNeXJtaWRvbnMgcmV0dXJuZWQgaG9tZSBzYWZlbHkgdW5kZXIgQWNoaWxsZXMnIHNvbiBOZW9wdG9sZW11czsgc28gYWxzbyBkaWQgdGhlIHZhbGlhbnQgc29uIG9mIFBvaWFzLCBQaGlsb2N0ZXRlcy4gSWRvbWVuZXVzLCBhZ2FpbiwgbG9zdCBubyBtZW4gYXQgc2VhLCBhbmQgYWxsIGhpcyBmb2xsb3dlcnMgd2hvIGVzY2FwZWQgZGVhdGggaW4gdGhlIGZpZWxkIGdvdCBzYWZlIGhvbWUgd2l0aCBoaW0gdG8gQ3JldGUuIE5vIG1hdHRlciBob3cgZmFyIG91dCBvZiB0aGUgd29ybGQgeW91IGxpdmUsIHlvdSB3aWxsIGhhdmUgaGVhcmQgb2YgQWdhbWVtbm9uIGFuZCB0aGUgYmFkIGVuZCBoZSBjYW1lIHRvIGF0IHRoZSBoYW5kcyBvZiBBZWdpc3RodXMtIGFuZCBhIGZlYXJmdWwgcmVja29uaW5nIGRpZCBBZWdpc3RodXMgcHJlc2VudGx5IHBheS4gU2VlIHdoYXQgYSBnb29kIHRoaW5nIGl0IGlzIGZvciBhIG1hbiB0byBsZWF2ZSBhIHNvbiBiZWhpbmQgaGltIHRvIGRvIGFzIE9yZXN0ZXMgZGlkLCB3aG8ga2lsbGVkIGZhbHNlIEFlZ2lzdGh1cyB0aGUgbXVyZGVyZXIgb2YgaGlzIG5vYmxlIGZhdGhlci4gWW91IHRvbywgdGhlbi0gZm9yIHlvdSBhcmUgYSB0YWxsLCBzbWFydC1sb29raW5nIGZlbGxvdy0gc2hvdyB5b3VyIG1ldHRsZSBhbmQgbWFrZSB5b3Vyc2VsZiBhIG5hbWUgaW4gc3RvcnkuIg0KDQoiTmVzdG9yIHNvbiBvZiBOZWxldXMsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAiaG9ub3VyIHRvIHRoZSBBY2hhZWFuIG5hbWUsIHRoZSBBY2hhZWFucyBhcHBsYXVkIE9yZXN0ZXMgYW5kIGhpcyBuYW1lIHdpbGwgbGl2ZSB0aHJvdWdoIGFsbCB0aW1lIGZvciBoZSBoYXMgYXZlbmdlZCBoaXMgZmF0aGVyIG5vYmx5LiBXb3VsZCB0aGF0IGhlYXZlbiBtaWdodCBncmFudCBtZSB0byBkbyBsaWtlIHZlbmdlYW5jZSBvbiB0aGUgaW5zb2xlbmNlIG9mIHRoZSB3aWNrZWQgc3VpdG9ycywgd2hvIGFyZSBpbGwgdHJlYXRpbmcgbWUgYW5kIHBsb3R0aW5nIG15IHJ1aW47IGJ1dCB0aGUgZ29kcyBoYXZlIG5vIHN1Y2ggaGFwcGluZXNzIGluIHN0b3JlIGZvciBtZSBhbmQgZm9yIG15IGZhdGhlciwgc28gd2UgbXVzdCBiZWFyIGl0IGFzIGJlc3Qgd2UgbWF5LiINCg0KIk15IGZyaWVuZCwiIHNhaWQgTmVzdG9yLCAibm93IHRoYXQgeW91IHJlbWluZCBtZSwgSSByZW1lbWJlciB0byBoYXZlIGhlYXJkIHRoYXQgeW91ciBtb3RoZXIgaGFzIG1hbnkgc3VpdG9ycywgd2hvIGFyZSBpbGwgZGlzcG9zZWQgdG93YXJkcyB5b3UgYW5kIGFyZSBtYWtpbmcgaGF2b2Mgb2YgeW91ciBlc3RhdGUuIERvIHlvdSBzdWJtaXQgdG8gdGhpcyB0YW1lbHksIG9yIGFyZSBwdWJsaWMgZmVlbGluZyBhbmQgdGhlIHZvaWNlIG9mIGhlYXZlbiBhZ2FpbnN0IHlvdT8gV2hvIGtub3dzIGJ1dCB3aGF0IFVseXNzZXMgbWF5IGNvbWUgYmFjayBhZnRlciBhbGwsIGFuZCBwYXkgdGhlc2Ugc2NvdW5kcmVscyBpbiBmdWxsLCBlaXRoZXIgc2luZ2xlLWhhbmRlZCBvciB3aXRoIGEgZm9yY2Ugb2YgQWNoYWVhbnMgYmVoaW5kIGhpbT8gSWYgTWluZXJ2YSB3ZXJlIHRvIHRha2UgYXMgZ3JlYXQgYSBsaWtpbmcgdG8geW91IGFzIHNoZSBkaWQgdG8gVWx5c3NlcyB3aGVuIHdlIHdlcmUgZmlnaHRpbmcgYmVmb3JlIFRyb3kgKGZvciBJIG5ldmVyIHlldCBzYXcgdGhlIGdvZHMgc28gb3Blbmx5IGZvbmQgb2YgYW55IG9uZSBhcyBNaW5lcnZhIHRoZW4gd2FzIG9mIHlvdXIgZmF0aGVyKSwgaWYgc2hlIHdvdWxkIHRha2UgYXMgZ29vZCBjYXJlIG9mIHlvdSBhcyBzaGUgZGlkIG9mIGhpbSwgdGhlc2Ugd29vZXJzIHdvdWxkIHNvb24gc29tZSBvZiB0aGVtIGhpbSwgZm9yZ2V0IHRoZWlyIHdvb2luZy4iDQoNClRlbGVtYWNodXMgYW5zd2VyZWQsICJJIGNhbiBleHBlY3Qgbm90aGluZyBvZiB0aGUga2luZDsgaXQgd291bGQgYmUgZmFyIHRvbyBtdWNoIHRvIGhvcGUgZm9yLiBJIGRhcmUgbm90IGxldCBteXNlbGYgdGhpbmsgb2YgaXQuIEV2ZW4gdGhvdWdoIHRoZSBnb2RzIHRoZW1zZWx2ZXMgd2lsbGVkIGl0IG5vIHN1Y2ggZ29vZCBmb3J0dW5lIGNvdWxkIGJlZmFsbCBtZS4iDQoNCk9uIHRoaXMgTWluZXJ2YSBzYWlkLCAiVGVsZW1hY2h1cywgd2hhdCBhcmUgeW91IHRhbGtpbmcgYWJvdXQ/IEhlYXZlbiBoYXMgYSBsb25nIGFybSBpZiBpdCBpcyBtaW5kZWQgdG8gc2F2ZSBhIG1hbjsgYW5kIGlmIGl0IHdlcmUgbWUsIEkgc2hvdWxkIG5vdCBjYXJlIGhvdyBtdWNoIEkgc3VmZmVyZWQgYmVmb3JlIGdldHRpbmcgaG9tZSwgcHJvdmlkZWQgSSBjb3VsZCBiZSBzYWZlIHdoZW4gSSB3YXMgb25jZSB0aGVyZS4gSSB3b3VsZCByYXRoZXIgdGhpcywgdGhhbiBnZXQgaG9tZSBxdWlja2x5LCBhbmQgdGhlbiBiZSBraWxsZWQgaW4gbXkgb3duIGhvdXNlIGFzIEFnYW1lbW5vbiB3YXMgYnkgdGhlIHRyZWFjaGVyeSBvZiBBZWdpc3RodXMgYW5kIGhpcyB3aWZlLiBTdGlsbCwgZGVhdGggaXMgY2VydGFpbiwgYW5kIHdoZW4gYSBtYW4ncyBob3VyIGlzIGNvbWUsIG5vdCBldmVuIHRoZSBnb2RzIGNhbiBzYXZlIGhpbSwgbm8gbWF0dGVyIGhvdyBmb25kIHRoZXkgYXJlIG9mIGhpbS4iDQoNCiJNZW50b3IsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAiZG8gbm90IGxldCB1cyB0YWxrIGFib3V0IGl0IGFueSBtb3JlLiBUaGVyZSBpcyBubyBjaGFuY2Ugb2YgbXkgZmF0aGVyJ3MgZXZlciBjb21pbmcgYmFjazsgdGhlIGdvZHMgaGF2ZSBsb25nIHNpbmNlIGNvdW5zZWxsZWQgaGlzIGRlc3RydWN0aW9uLiBUaGVyZSBpcyBzb21ldGhpbmcgZWxzZSwgaG93ZXZlciwgYWJvdXQgd2hpY2ggSSBzaG91bGQgbGlrZSB0byBhc2sgTmVzdG9yLCBmb3IgaGUga25vd3MgbXVjaCBtb3JlIHRoYW4gYW55IG9uZSBlbHNlIGRvZXMuIFRoZXkgc2F5IGhlIGhhcyByZWlnbmVkIGZvciB0aHJlZSBnZW5lcmF0aW9ucyBzbyB0aGF0IGl0IGlzIGxpa2UgdGFsa2luZyB0byBhbiBpbW1vcnRhbC4gVGVsbCBtZSwgdGhlcmVmb3JlLCBOZXN0b3IsIGFuZCB0ZWxsIG1lIHRydWU7IGhvdyBkaWQgQWdhbWVtbm9uIGNvbWUgdG8gZGllIGluIHRoYXQgd2F5PyBXaGF0IHdhcyBNZW5lbGF1cyBkb2luZz8gQW5kIGhvdyBjYW1lIGZhbHNlIEFlZ2lzdGh1cyB0byBraWxsIHNvIGZhciBiZXR0ZXIgYSBtYW4gdGhhbiBoaW1zZWxmPyBXYXMgTWVuZWxhdXMgYXdheSBmcm9tIEFjaGFlYW4gQXJnb3MsIHZveWFnaW5nIGVsc2V3aGl0aGVyIGFtb25nIG1hbmtpbmQsIHRoYXQgQWVnaXN0aHVzIHRvb2sgaGVhcnQgYW5kIGtpbGxlZCBBZ2FtZW1ub24/Ig0KDQoiSSB3aWxsIHRlbGwgeW91IHRydWx5LCIgYW5zd2VyZWQgTmVzdG9yLCAiYW5kIGluZGVlZCB5b3UgaGF2ZSB5b3Vyc2VsZiBkaXZpbmVkIGhvdyBpdCBhbGwgaGFwcGVuZWQuIElmIE1lbmVsYXVzIHdoZW4gaGUgZ290IGJhY2sgZnJvbSBUcm95IGhhZCBmb3VuZCBBZWdpc3RodXMgc3RpbGwgYWxpdmUgaW4gaGlzIGhvdXNlLCB0aGVyZSB3b3VsZCBoYXZlIGJlZW4gbm8gYmFycm93IGhlYXBlZCB1cCBmb3IgaGltLCBub3QgZXZlbiB3aGVuIGhlIHdhcyBkZWFkLCBidXQgaGUgd291bGQgaGF2ZSBiZWVuIHRocm93biBvdXRzaWRlIHRoZSBjaXR5IHRvIGRvZ3MgYW5kIHZ1bHR1cmVzLCBhbmQgbm90IGEgd29tYW4gd291bGQgaGF2ZSBtb3VybmVkIGhpbSwgZm9yIGhlIGhhZCBkb25lIGEgZGVlZCBvZiBncmVhdCB3aWNrZWRuZXNzOyBidXQgd2Ugd2VyZSBvdmVyIHRoZXJlLCBmaWdodGluZyBoYXJkIGF0IFRyb3ksIGFuZCBBZWdpc3RodXMgd2hvIHdhcyB0YWtpbmcgaGlzIGVhc2UgcXVpZXRseSBpbiB0aGUgaGVhcnQgb2YgQXJnb3MsIGNham9sZWQgQWdhbWVtbm9uJ3Mgd2lmZSBDbHl0ZW1uZXN0cmEgd2l0aCBpbmNlc3NhbnQgZmxhdHRlcnkuDQoNCiJBdCBmaXJzdCBzaGUgd291bGQgaGF2ZSBub3RoaW5nIHRvIGRvIHdpdGggaGlzIHdpY2tlZCBzY2hlbWUsIGZvciBzaGUgd2FzIG9mIGEgZ29vZCBuYXR1cmFsIGRpc3Bvc2l0aW9uOyBtb3Jlb3ZlciB0aGVyZSB3YXMgYSBiYXJkIHdpdGggaGVyLCB0byB3aG9tIEFnYW1lbW5vbiBoYWQgZ2l2ZW4gc3RyaWN0IG9yZGVycyBvbiBzZXR0aW5nIG91dCBmb3IgVHJveSwgdGhhdCBoZSB3YXMgdG8ga2VlcCBndWFyZCBvdmVyIGhpcyB3aWZlOyBidXQgd2hlbiBoZWF2ZW4gaGFkIGNvdW5zZWxsZWQgaGVyIGRlc3RydWN0aW9uLCBBZWdpc3RodXMgdGh1cyB0aGlzIGJhcmQgb2ZmIHRvIGEgZGVzZXJ0IGlzbGFuZCBhbmQgbGVmdCBoaW0gdGhlcmUgZm9yIGNyb3dzIGFuZCBzZWFndWxscyB0byBiYXR0ZW4gdXBvbi0gYWZ0ZXIgd2hpY2ggc2hlIHdlbnQgd2lsbGluZ2x5IGVub3VnaCB0byB0aGUgaG91c2Ugb2YgQWVnaXN0aHVzLiBUaGVuIGhlIG9mZmVyZWQgbWFueSBidXJudCBzYWNyaWZpY2VzIHRvIHRoZSBnb2RzLCBhbmQgZGVjb3JhdGVkIG1hbnkgdGVtcGxlcyB3aXRoIHRhcGVzdHJpZXMgYW5kIGdpbGRpbmcsIGZvciBoZSBoYWQgc3VjY2VlZGVkIGZhciBiZXlvbmQgaGlzIGV4cGVjdGF0aW9ucy4NCg0KIk1lYW53aGlsZSBNZW5lbGF1cyBhbmQgSSB3ZXJlIG9uIG91ciB3YXkgaG9tZSBmcm9tIFRyb3ksIG9uIGdvb2QgdGVybXMgd2l0aCBvbmUgYW5vdGhlci4gV2hlbiB3ZSBnb3QgdG8gU3VuaXVtLCB3aGljaCBpcyB0aGUgcG9pbnQgb2YgQXRoZW5zLCBBcG9sbG8gd2l0aCBoaXMgcGFpbmxlc3Mgc2hhZnRzIGtpbGxlZCBQaHJvbnRpcyB0aGUgc3RlZXJzbWFuIG9mIE1lbmVsYXVzJyBzaGlwIChhbmQgbmV2ZXIgbWFuIGtuZXcgYmV0dGVyIGhvdyB0byBoYW5kbGUgYSB2ZXNzZWwgaW4gcm91Z2ggd2VhdGhlcikgc28gdGhhdCBoZSBkaWVkIHRoZW4gYW5kIHRoZXJlIHdpdGggdGhlIGhlbG0gaW4gaGlzIGhhbmQsIGFuZCBNZW5lbGF1cywgdGhvdWdoIHZlcnkgYW54aW91cyB0byBwcmVzcyBmb3J3YXJkLCBoYWQgdG8gd2FpdCBpbiBvcmRlciB0byBidXJ5IGhpcyBjb21yYWRlIGFuZCBnaXZlIGhpbSBoaXMgZHVlIGZ1bmVyYWwgcml0ZXMuIFByZXNlbnRseSwgd2hlbiBoZSB0b28gY291bGQgcHV0IHRvIHNlYSBhZ2FpbiwgYW5kIGhhZCBzYWlsZWQgb24gYXMgZmFyIGFzIHRoZSBNYWxlYW4gaGVhZHMsIEpvdmUgY291bnNlbGxlZCBldmlsIGFnYWluc3QgaGltIGFuZCBtYWRlIGl0IGl0IGJsb3cgaGFyZCB0aWxsIHRoZSB3YXZlcyByYW4gbW91bnRhaW5zIGhpZ2guIEhlcmUgaGUgZGl2aWRlZCBoaXMgZmxlZXQgYW5kIHRvb2sgdGhlIG9uZSBoYWxmIHRvd2FyZHMgQ3JldGUgd2hlcmUgdGhlIEN5ZG9uaWFucyBkd2VsbCByb3VuZCBhYm91dCB0aGUgd2F0ZXJzIG9mIHRoZSByaXZlciBJYXJkYW51cy4gVGhlcmUgaXMgYSBoaWdoIGhlYWRsYW5kIGhlcmVhYm91dHMgc3RyZXRjaGluZyBvdXQgaW50byB0aGUgc2VhIGZyb20gYSBwbGFjZSBjYWxsZWQgR29ydHluLCBhbmQgYWxsIGFsb25nIHRoaXMgcGFydCBvZiB0aGUgY29hc3QgYXMgZmFyIGFzIFBoYWVzdHVzIHRoZSBzZWEgcnVucyBoaWdoIHdoZW4gdGhlcmUgaXMgYSBzb3V0aCB3aW5kIGJsb3dpbmcsIGJ1dCBhcnRlciBQaGFlc3R1cyB0aGUgY29hc3QgaXMgbW9yZSBwcm90ZWN0ZWQsIGZvciBhIHNtYWxsIGhlYWRsYW5kIGNhbiBtYWtlIGEgZ3JlYXQgc2hlbHRlci4gSGVyZSB0aGlzIHBhcnQgb2YgdGhlIGZsZWV0IHdhcyBkcml2ZW4gb24gdG8gdGhlIHJvY2tzIGFuZCB3cmVja2VkOyBidXQgdGhlIGNyZXdzIGp1c3QgbWFuYWdlZCB0byBzYXZlIHRoZW1zZWx2ZXMuIEFzIGZvciB0aGUgb3RoZXIgZml2ZSBzaGlwcywgdGhleSB3ZXJlIHRha2VuIGJ5IHdpbmRzIGFuZCBzZWFzIHRvIEVneXB0LCB3aGVyZSBNZW5lbGF1cyBnYXRoZXJlZCBtdWNoIGdvbGQgYW5kIHN1YnN0YW5jZSBhbW9uZyBwZW9wbGUgb2YgYW4gYWxpZW4gc3BlZWNoLiBNZWFud2hpbGUgQWVnaXN0aHVzIGhlcmUgYXQgaG9tZSBwbG90dGVkIGhpcyBldmlsIGRlZWQuIEZvciBzZXZlbiB5ZWFycyBhZnRlciBoZSBoYWQga2lsbGVkIEFnYW1lbW5vbiBoZSBydWxlZCBpbiBNeWNlbmUsIGFuZCB0aGUgcGVvcGxlIHdlcmUgb2JlZGllbnQgdW5kZXIgaGltLCBidXQgaW4gdGhlIGVpZ2h0aCB5ZWFyIE9yZXN0ZXMgY2FtZSBiYWNrIGZyb20gQXRoZW5zIHRvIGJlIGhpcyBiYW5lLCBhbmQga2lsbGVkIHRoZSBtdXJkZXJlciBvZiBoaXMgZmF0aGVyLiBUaGVuIGhlIGNlbGVicmF0ZWQgdGhlIGZ1bmVyYWwgcml0ZXMgb2YgaGlzIG1vdGhlciBhbmQgb2YgZmFsc2UgQWVnaXN0aHVzIGJ5IGEgYmFucXVldCB0byB0aGUgcGVvcGxlIG9mIEFyZ29zLCBhbmQgb24gdGhhdCB2ZXJ5IGRheSBNZW5lbGF1cyBjYW1lIGhvbWUsIHdpdGggYXMgbXVjaCB0cmVhc3VyZSBhcyBoaXMgc2hpcHMgY291bGQgY2FycnkuDQoNCiJUYWtlIG15IGFkdmljZSB0aGVuLCBhbmQgZG8gbm90IGdvIHRyYXZlbGxpbmcgYWJvdXQgZm9yIGxvbmcgc28gZmFyIGZyb20gaG9tZSwgbm9yIGxlYXZlIHlvdXIgcHJvcGVydHkgd2l0aCBzdWNoIGRhbmdlcm91cyBwZW9wbGUgaW4geW91ciBob3VzZTsgdGhleSB3aWxsIGVhdCB1cCBldmVyeXRoaW5nIHlvdSBoYXZlIGFtb25nIHRoZW0sIGFuZCB5b3Ugd2lsbCBoYXZlIGJlZW4gb24gYSBmb29sJ3MgZXJyYW5kLiBTdGlsbCwgSSBzaG91bGQgYWR2aXNlIHlvdSBieSBhbGwgbWVhbnMgdG8gZ28gYW5kIHZpc2l0IE1lbmVsYXVzLCB3aG8gaGFzIGxhdGVseSBjb21lIG9mZiBhIHZveWFnZSBhbW9uZyBzdWNoIGRpc3RhbnQgcGVvcGxlcyBhcyBubyBtYW4gY291bGQgZXZlciBob3BlIHRvIGdldCBiYWNrIGZyb20sIHdoZW4gdGhlIHdpbmRzIGhhZCBvbmNlIGNhcnJpZWQgaGltIHNvIGZhciBvdXQgb2YgaGlzIHJlY2tvbmluZzsgZXZlbiBiaXJkcyBjYW5ub3QgZmx5IHRoZSBkaXN0YW5jZSBpbiBhIHR3ZWx2ZW1vbnRoLCBzbyB2YXN0IGFuZCB0ZXJyaWJsZSBhcmUgdGhlIHNlYXMgdGhhdCB0aGV5IG11c3QgY3Jvc3MuIEdvIHRvIGhpbSwgdGhlcmVmb3JlLCBieSBzZWEsIGFuZCB0YWtlIHlvdXIgb3duIG1lbiB3aXRoIHlvdTsgb3IgaWYgeW91IHdvdWxkIHJhdGhlciB0cmF2ZWwgYnkgbGFuZCB5b3UgY2FuIGhhdmUgYSBjaGFyaW90LCB5b3UgY2FuIGhhdmUgaG9yc2VzLCBhbmQgaGVyZSBhcmUgbXkgc29ucyB3aG8gY2FuIGVzY29ydCB5b3UgdG8gTGFjZWRhZW1vbiB3aGVyZSBNZW5lbGF1cyBsaXZlcy4gQmVnIG9mIGhpbSB0byBzcGVhayB0aGUgdHJ1dGgsIGFuZCBoZSB3aWxsIHRlbGwgeW91IG5vIGxpZXMsIGZvciBoZSBpcyBhbiBleGNlbGxlbnQgcGVyc29uLiINCg0KQXMgaGUgc3Bva2UgdGhlIHN1biBzZXQgYW5kIGl0IGNhbWUgb24gZGFyaywgd2hlcmVvbiBNaW5lcnZhIHNhaWQsICJTaXIsIGFsbCB0aGF0IHlvdSBoYXZlIHNhaWQgaXMgd2VsbDsgbm93LCBob3dldmVyLCBvcmRlciB0aGUgdG9uZ3VlcyBvZiB0aGUgdmljdGltcyB0byBiZSBjdXQsIGFuZCBtaXggd2luZSB0aGF0IHdlIG1heSBtYWtlIGRyaW5rLW9mZmVyaW5ncyB0byBOZXB0dW5lLCBhbmQgdGhlIG90aGVyIGltbW9ydGFscywgYW5kIHRoZW4gZ28gdG8gYmVkLCBmb3IgaXQgaXMgYmVkIHRpbWUuIFBlb3BsZSBzaG91bGQgZ28gYXdheSBlYXJseSBhbmQgbm90IGtlZXAgbGF0ZSBob3VycyBhdCBhIHJlbGlnaW91cyBmZXN0aXZhbC4iDQoNClRodXMgc3Bva2UgdGhlIGRhdWdodGVyIG9mIEpvdmUsIGFuZCB0aGV5IG9iZXllZCBoZXIgc2F5aW5nLiBNZW4gc2VydmFudHMgcG91cmVkIHdhdGVyIG92ZXIgdGhlIGhhbmRzIG9mIHRoZSBndWVzdHMsIHdoaWxlIHBhZ2VzIGZpbGxlZCB0aGUgbWl4aW5nLWJvd2xzIHdpdGggd2luZSBhbmQgd2F0ZXIsIGFuZCBoYW5kZWQgaXQgcm91bmQgYWZ0ZXIgZ2l2aW5nIGV2ZXJ5IG1hbiBoaXMgZHJpbmstb2ZmZXJpbmc7IHRoZW4gdGhleSB0aHJldyB0aGUgdG9uZ3VlcyBvZiB0aGUgdmljdGltcyBpbnRvIHRoZSBmaXJlLCBhbmQgc3Rvb2QgdXAgdG8gbWFrZSB0aGVpciBkcmluay1vZmZlcmluZ3MuIFdoZW4gdGhleSBoYWQgbWFkZSB0aGVpciBvZmZlcmluZ3MgYW5kIGhhZCBkcnVuayBlYWNoIGFzIG11Y2ggYXMgaGUgd2FzIG1pbmRlZCwgTWluZXJ2YSBhbmQgVGVsZW1hY2h1cyB3ZXJlIGZvcmdvaW5nIG9uIGJvYXJkIHRoZWlyIHNoaXAsIGJ1dCBOZXN0b3IgY2F1Z2h0IHRoZW0gdXAgYXQgb25jZSBhbmQgc3RheWVkIHRoZW0uDQoNCiJIZWF2ZW4gYW5kIHRoZSBpbW1vcnRhbCBnb2RzLCIgaGUgZXhjbGFpbWVkLCAiZm9yYmlkIHRoYXQgeW91IHNob3VsZCBsZWF2ZSBteSBob3VzZSB0byBnbyBvbiBib2FyZCBvZiBhIHNoaXAuIERvIHlvdSB0aGluayBJIGFtIHNvIHBvb3IgYW5kIHNob3J0IG9mIGNsb3RoZXMsIG9yIHRoYXQgSSBoYXZlIHNvIGZldyBjbG9ha3MgYW5kIGFzIHRvIGJlIHVuYWJsZSB0byBmaW5kIGNvbWZvcnRhYmxlIGJlZHMgYm90aCBmb3IgbXlzZWxmIGFuZCBmb3IgbXkgZ3Vlc3RzPyBMZXQgbWUgdGVsbCB5b3UgSSBoYXZlIHN0b3JlIGJvdGggb2YgcnVncyBhbmQgY2xvYWtzLCBhbmQgc2hhbGwgbm90IHBlcm1pdCB0aGUgc29uIG9mIG15IG9sZCBmcmllbmQgVWx5c3NlcyB0byBjYW1wIGRvd24gb24gdGhlIGRlY2sgb2YgYSBzaGlwLSBub3Qgd2hpbGUgSSBsaXZlLSBub3IgeWV0IHdpbGwgbXkgc29ucyBhZnRlciBtZSwgYnV0IHRoZXkgd2lsbCBrZWVwIG9wZW4gaG91c2UgYXMgaGF2ZSBkb25lLiINCg0KVGhlbiBNaW5lcnZhIGFuc3dlcmVkLCAiU2lyLCB5b3UgaGF2ZSBzcG9rZW4gd2VsbCwgYW5kIGl0IHdpbGwgYmUgbXVjaCBiZXR0ZXIgdGhhdCBUZWxlbWFjaHVzIHNob3VsZCBkbyBhcyB5b3UgaGF2ZSBzYWlkOyBoZSwgdGhlcmVmb3JlLCBzaGFsbCByZXR1cm4gd2l0aCB5b3UgYW5kIHNsZWVwIGF0IHlvdXIgaG91c2UsIGJ1dCBJIG11c3QgZ28gYmFjayB0byBnaXZlIG9yZGVycyB0byBteSBjcmV3LCBhbmQga2VlcCB0aGVtIGluIGdvb2QgaGVhcnQuIEkgYW0gdGhlIG9ubHkgb2xkZXIgcGVyc29uIGFtb25nIHRoZW07IHRoZSByZXN0IGFyZSBhbGwgeW91bmcgbWVuIG9mIFRlbGVtYWNodXMnIG93biBhZ2UsIHdobyBoYXZlIHRha2VuIHRoaXMgdm95YWdlIG91dCBvZiBmcmllbmRzaGlwOyBzbyBJIG11c3QgcmV0dXJuIHRvIHRoZSBzaGlwIGFuZCBzbGVlcCB0aGVyZS4gTW9yZW92ZXIgdG8tbW9ycm93IEkgbXVzdCBnbyB0byB0aGUgQ2F1Y29uaWFucyB3aGVyZSBJIGhhdmUgYSBsYXJnZSBzdW0gb2YgbW9uZXkgbG9uZyBvd2luZyB0byBtZS4gQXMgZm9yIFRlbGVtYWNodXMsIG5vdyB0aGF0IGhlIGlzIHlvdXIgZ3Vlc3QsIHNlbmQgaGltIHRvIExhY2VkYWVtb24gaW4gYSBjaGFyaW90LCBhbmQgbGV0IG9uZSBvZiB5b3VyIHNvbnMgZ28gd2l0aCBoaW0uIEJlIHBsZWFzZWQgYWxzbyB0byBwcm92aWRlIGhpbSB3aXRoIHlvdXIgYmVzdCBhbmQgZmxlZXRlc3QgaG9yc2VzLiINCg0KV2hlbiBzaGUgaGFkIHRodXMgc3Bva2VuLCBzaGUgZmxldyBhd2F5IGluIHRoZSBmb3JtIG9mIGFuIGVhZ2xlLCBhbmQgYWxsIG1hcnZlbGxlZCBhcyB0aGV5IGJlaGVsZCBpdC4gTmVzdG9yIHdhcyBhc3RvbmlzaGVkLCBhbmQgdG9vayBUZWxlbWFjaHVzIGJ5IHRoZSBoYW5kLiAiTXkgZnJpZW5kLCIgc2FpZCBoZSwgIkkgc2VlIHRoYXQgeW91IGFyZSBnb2luZyB0byBiZSBhIGdyZWF0IGhlcm8gc29tZSBkYXksIHNpbmNlIHRoZSBnb2RzIHdhaXQgdXBvbiB5b3UgdGh1cyB3aGlsZSB5b3UgYXJlIHN0aWxsIHNvIHlvdW5nLiBUaGlzIGNhbiBoYXZlIGJlZW4gbm9uZSBvdGhlciBvZiB0aG9zZSB3aG8gZHdlbGwgaW4gaGVhdmVuIHRoYW4gSm92ZSdzIHJlZG91YnRhYmxlIGRhdWdodGVyLCB0aGUgVHJpdG8tYm9ybiwgd2hvIHNob3dlZCBzdWNoIGZhdm91ciB0b3dhcmRzIHlvdXIgYnJhdmUgZmF0aGVyIGFtb25nIHRoZSBBcmdpdmVzLiIgIkhvbHkgcXVlZW4sIiBoZSBjb250aW51ZWQsICJ2b3VjaHNhZmUgdG8gc2VuZCBkb3duIHRoeSBncmFjZSB1cG9uIG15c2VsZiwgbXkgZ29vZCB3aWZlLCBhbmQgbXkgY2hpbGRyZW4uIEluIHJldHVybiwgSSB3aWxsIG9mZmVyIHlvdSBpbiBzYWNyaWZpY2UgYSBicm9hZC1icm93ZWQgaGVpZmVyIG9mIGEgeWVhciBvbGQsIHVuYnJva2VuLCBhbmQgbmV2ZXIgeWV0IGJyb3VnaHQgYnkgbWFuIHVuZGVyIHRoZSB5b2tlLiBJIHdpbGwgZ2lsZCBoZXIgaG9ybnMsIGFuZCB3aWxsIG9mZmVyIGhlciB1cCB0byB5b3UgaW4gc2FjcmlmaWNlLiINCg0KVGh1cyBkaWQgaGUgcHJheSwgYW5kIE1pbmVydmEgaGVhcmQgaGlzIHByYXllci4gSGUgdGhlbiBsZWQgdGhlIHdheSB0byBoaXMgb3duIGhvdXNlLCBmb2xsb3dlZCBieSBoaXMgc29ucyBhbmQgc29ucy1pbi1sYXcuIFdoZW4gdGhleSBoYWQgZ290IHRoZXJlIGFuZCBoYWQgdGFrZW4gdGhlaXIgcGxhY2VzIG9uIHRoZSBiZW5jaGVzIGFuZCBzZWF0cywgaGUgbWl4ZWQgdGhlbSBhIGJvd2wgb2Ygc3dlZXQgd2luZSB0aGF0IHdhcyBlbGV2ZW4geWVhcnMgb2xkIHdoZW4gdGhlIGhvdXNla2VlcGVyIHRvb2sgdGhlIGxpZCBvZmYgdGhlIGphciB0aGF0IGhlbGQgaXQuIEFzIGhlIG1peGVkIHRoZSB3aW5lLCBoZSBwcmF5ZWQgbXVjaCBhbmQgbWFkZSBkcmluay1vZmZlcmluZ3MgdG8gTWluZXJ2YSwgZGF1Z2h0ZXIgb2YgQWVnaXMtYmVhcmluZyBKb3ZlLiBUaGVuLCB3aGVuIHRoZXkgaGFkIG1hZGUgdGhlaXIgZHJpbmstb2ZmZXJpbmdzIGFuZCBoYWQgZHJ1bmsgZWFjaCBhcyBtdWNoIGFzIGhlIHdhcyBtaW5kZWQsIHRoZSBvdGhlcnMgd2VudCBob21lIHRvIGJlZCBlYWNoIGluIGhpcyBvd24gYWJvZGU7IGJ1dCBOZXN0b3IgcHV0IFRlbGVtYWNodXMgdG8gc2xlZXAgaW4gdGhlIHJvb20gdGhhdCB3YXMgb3ZlciB0aGUgZ2F0ZXdheSBhbG9uZyB3aXRoIFBpc2lzdHJhdHVzLCB3aG8gd2FzIHRoZSBvbmx5IHVubWFycmllZCBzb24gbm93IGxlZnQgaGltLiBBcyBmb3IgaGltc2VsZiwgaGUgc2xlcHQgaW4gYW4gaW5uZXIgcm9vbSBvZiB0aGUgaG91c2UsIHdpdGggdGhlIHF1ZWVuIGhpcyB3aWZlIGJ5IGhpcyBzaWRlLg0KDQpOb3cgd2hlbiB0aGUgY2hpbGQgb2YgbW9ybmluZywgcm9zeS1maW5nZXJlZCBEYXduLCBhcHBlYXJlZCwgTmVzdG9yIGxlZnQgaGlzIGNvdWNoIGFuZCB0b29rIGhpcyBzZWF0IG9uIHRoZSBiZW5jaGVzIG9mIHdoaXRlIGFuZCBwb2xpc2hlZCBtYXJibGUgdGhhdCBzdG9vZCBpbiBmcm9udCBvZiBoaXMgaG91c2UuIEhlcmUgYWZvcmV0aW1lIHNhdCBOZWxldXMsIHBlZXIgb2YgZ29kcyBpbiBjb3Vuc2VsLCBidXQgaGUgd2FzIG5vdyBkZWFkLCBhbmQgaGFkIGdvbmUgdG8gdGhlIGhvdXNlIG9mIEhhZGVzOyBzbyBOZXN0b3Igc2F0IGluIGhpcyBzZWF0LCBzY2VwdHJlIGluIGhhbmQsIGFzIGd1YXJkaWFuIG9mIHRoZSBwdWJsaWMgd2VhbC4gSGlzIHNvbnMgYXMgdGhleSBsZWZ0IHRoZWlyIHJvb21zIGdhdGhlcmVkIHJvdW5kIGhpbSwgRWNoZXBocm9uLCBTdHJhdGl1cywgUGVyc2V1cywgQXJldHVzLCBhbmQgVGhyYXN5bWVkZXM7IHRoZSBzaXh0aCBzb24gd2FzIFBpc2lzdHJhdHVzLCBhbmQgd2hlbiBUZWxlbWFjaHVzIGpvaW5lZCB0aGVtIHRoZXkgbWFkZSBoaW0gc2l0IHdpdGggdGhlbS4gTmVzdG9yIHRoZW4gYWRkcmVzc2VkIHRoZW0uDQoNCiJNeSBzb25zLCIgc2FpZCBoZSwgIm1ha2UgaGFzdGUgdG8gZG8gYXMgSSBzaGFsbCBiaWQgeW91LiBJIHdpc2ggZmlyc3QgYW5kIGZvcmVtb3N0IHRvIHByb3BpdGlhdGUgdGhlIGdyZWF0IGdvZGRlc3MgTWluZXJ2YSwgd2hvIG1hbmlmZXN0ZWQgaGVyc2VsZiB2aXNpYmx5IHRvIG1lIGR1cmluZyB5ZXN0ZXJkYXkncyBmZXN0aXZpdGllcy4gR28sIHRoZW4sIG9uZSBvciBvdGhlciBvZiB5b3UgdG8gdGhlIHBsYWluLCB0ZWxsIHRoZSBzdG9ja21hbiB0byBsb29rIG1lIG91dCBhIGhlaWZlciwgYW5kIGNvbWUgb24gaGVyZSB3aXRoIGl0IGF0IG9uY2UuIEFub3RoZXIgbXVzdCBnbyB0byBUZWxlbWFjaHVzJ3Mgc2hpcCwgYW5kIGludml0ZSBhbGwgdGhlIGNyZXcsIGxlYXZpbmcgdHdvIG1lbiBvbmx5IGluIGNoYXJnZSBvZiB0aGUgdmVzc2VsLiBTb21lIG9uZSBlbHNlIHdpbGwgcnVuIGFuZCBmZXRjaCBMYWVyY2V1cyB0aGUgZ29sZHNtaXRoIHRvIGdpbGQgdGhlIGhvcm5zIG9mIHRoZSBoZWlmZXIuIFRoZSByZXN0LCBzdGF5IGFsbCBvZiB5b3Ugd2hlcmUgeW91IGFyZTsgdGVsbCB0aGUgbWFpZHMgaW4gdGhlIGhvdXNlIHRvIHByZXBhcmUgYW4gZXhjZWxsZW50IGRpbm5lciwgYW5kIHRvIGZldGNoIHNlYXRzLCBhbmQgbG9ncyBvZiB3b29kIGZvciBhIGJ1cm50IG9mZmVyaW5nLiBUZWxsIHRoZW0gYWxzby0gdG8gYnJpbmcgbWUgc29tZSBjbGVhciBzcHJpbmcgd2F0ZXIuIg0KDQpPbiB0aGlzIHRoZXkgaHVycmllZCBvZmYgb24gdGhlaXIgc2V2ZXJhbCBlcnJhbmRzLiBUaGUgaGVpZmVyIHdhcyBicm91Z2h0IGluIGZyb20gdGhlIHBsYWluLCBhbmQgVGVsZW1hY2h1cydzIGNyZXcgY2FtZSBmcm9tIHRoZSBzaGlwOyB0aGUgZ29sZHNtaXRoIGJyb3VnaHQgdGhlIGFudmlsLCBoYW1tZXIsIGFuZCB0b25ncywgd2l0aCB3aGljaCBoZSB3b3JrZWQgaGlzIGdvbGQsIGFuZCBNaW5lcnZhIGhlcnNlbGYgY2FtZSB0byB0aGUgc2FjcmlmaWNlLiBOZXN0b3IgZ2F2ZSBvdXQgdGhlIGdvbGQsIGFuZCB0aGUgc21pdGggZ2lsZGVkIHRoZSBob3JucyBvZiB0aGUgaGVpZmVyIHRoYXQgdGhlIGdvZGRlc3MgbWlnaHQgaGF2ZSBwbGVhc3VyZSBpbiB0aGVpciBiZWF1dHkuIFRoZW4gU3RyYXRpdXMgYW5kIEVjaGVwaHJvbiBicm91Z2h0IGhlciBpbiBieSB0aGUgaG9ybnM7IEFyZXR1cyBmZXRjaGVkIHdhdGVyIGZyb20gdGhlIGhvdXNlIGluIGEgZXdlciB0aGF0IGhhZCBhIGZsb3dlciBwYXR0ZXJuIG9uIGl0LCBhbmQgaW4gaGlzIG90aGVyIGhhbmQgaGUgaGVsZCBhIGJhc2tldCBvZiBiYXJsZXkgbWVhbDsgc3R1cmR5IFRocmFzeW1lZGVzIHN0b29kIGJ5IHdpdGggYSBzaGFycCBheGUsIHJlYWR5IHRvIHN0cmlrZSB0aGUgaGVpZmVyLCB3aGlsZSBQZXJzZXVzIGhlbGQgYSBidWNrZXQuIFRoZW4gTmVzdG9yIGJlZ2FuIHdpdGggd2FzaGluZyBoaXMgaGFuZHMgYW5kIHNwcmlua2xpbmcgdGhlIGJhcmxleSBtZWFsLCBhbmQgaGUgb2ZmZXJlZCBtYW55IGEgcHJheWVyIHRvIE1pbmVydmEgYXMgaGUgdGhyZXcgYSBsb2NrIGZyb20gdGhlIGhlaWZlcidzIGhlYWQgdXBvbiB0aGUgZmlyZS4NCg0KV2hlbiB0aGV5IGhhZCBkb25lIHByYXlpbmcgYW5kIHNwcmlua2xpbmcgdGhlIGJhcmxleSBtZWFsIFRocmFzeW1lZGVzIGRlYWx0IGhpcyBibG93LCBhbmQgYnJvdWdodCB0aGUgaGVpZmVyIGRvd24gd2l0aCBhIHN0cm9rZSB0aGF0IGN1dCB0aHJvdWdoIHRoZSB0ZW5kb25zIGF0IHRoZSBiYXNlIG9mIGhlciBuZWNrLCB3aGVyZW9uIHRoZSBkYXVnaHRlcnMgYW5kIGRhdWdodGVycy1pbi1sYXcgb2YgTmVzdG9yLCBhbmQgaGlzIHZlbmVyYWJsZSB3aWZlIEV1cnlkaWNlIChzaGUgd2FzIGVsZGVzdCBkYXVnaHRlciB0byBDbHltZW51cykgc2NyZWFtZWQgd2l0aCBkZWxpZ2h0LiBUaGVuIHRoZXkgbGlmdGVkIHRoZSBoZWlmZXIncyBoZWFkIGZyb20gb2ZmIHRoZSBncm91bmQsIGFuZCBQaXNpc3RyYXR1cyBjdXQgaGVyIHRocm9hdC4gV2hlbiBzaGUgaGFkIGRvbmUgYmxlZWRpbmcgYW5kIHdhcyBxdWl0ZSBkZWFkLCB0aGV5IGN1dCBoZXIgdXAuIFRoZXkgY3V0IG91dCB0aGUgdGhpZ2ggYm9uZXMgYWxsIGluIGR1ZSBjb3Vyc2UsIHdyYXBwZWQgdGhlbSByb3VuZCBpbiB0d28gbGF5ZXJzIG9mIGZhdCwgYW5kIHNldCBzb21lIHBpZWNlcyBvZiByYXcgbWVhdCBvbiB0aGUgdG9wIG9mIHRoZW07IHRoZW4gTmVzdG9yIGxhaWQgdGhlbSB1cG9uIHRoZSB3b29kIGZpcmUgYW5kIHBvdXJlZCB3aW5lIG92ZXIgdGhlbSwgd2hpbGUgdGhlIHlvdW5nIG1lbiBzdG9vZCBuZWFyIGhpbSB3aXRoIGZpdmUtcHJvbmdlZCBzcGl0cyBpbiB0aGVpciBoYW5kcy4gV2hlbiB0aGUgdGhpZ2hzIHdlcmUgYnVybmVkIGFuZCB0aGV5IGhhZCB0YXN0ZWQgdGhlIGlud2FyZCBtZWF0cywgdGhleSBjdXQgdGhlIHJlc3Qgb2YgdGhlIG1lYXQgdXAgc21hbGwsIHB1dCB0aGUgcGllY2VzIG9uIHRoZSBzcGl0cyBhbmQgdG9hc3RlZCB0aGVtIG92ZXIgdGhlIGZpcmUuDQoNCk1lYW53aGlsZSBsb3ZlbHkgUG9seWNhc3RlLCBOZXN0b3IncyB5b3VuZ2VzdCBkYXVnaHRlciwgd2FzaGVkIFRlbGVtYWNodXMuIFdoZW4gc2hlIGhhZCB3YXNoZWQgaGltIGFuZCBhbm9pbnRlZCBoaW0gd2l0aCBvaWwsIHNoZSBicm91Z2h0IGhpbSBhIGZhaXIgbWFudGxlIGFuZCBzaGlydCwgYW5kIGhlIGxvb2tlZCBsaWtlIGEgZ29kIGFzIGhlIGNhbWUgZnJvbSB0aGUgYmF0aCBhbmQgdG9vayBoaXMgc2VhdCBieSB0aGUgc2lkZSBvZiBOZXN0b3IuIFdoZW4gdGhlIG91dGVyIG1lYXRzIHdlcmUgZG9uZSB0aGV5IGRyZXcgdGhlbSBvZmYgdGhlIHNwaXRzIGFuZCBzYXQgZG93biB0byBkaW5uZXIgd2hlcmUgdGhleSB3ZXJlIHdhaXRlZCB1cG9uIGJ5IHNvbWUgd29ydGh5IGhlbmNobWVuLCB3aG8ga2VwdCBwb3VyaW5nIHRoZW0gb3V0IHRoZWlyIHdpbmUgaW4gY3VwcyBvZiBnb2xkLiBBcyBzb29uIGFzIHRoZXkgaGFkIGhhZCBoYWQgZW5vdWdoIHRvIGVhdCBhbmQgZHJpbmsgTmVzdG9yIHNhaWQsICJTb25zLCBwdXQgVGVsZW1hY2h1cydzIGhvcnNlcyB0byB0aGUgY2hhcmlvdCB0aGF0IGhlIG1heSBzdGFydCBhdCBvbmNlLiINCg0KVGh1cyBkaWQgaGUgc3BlYWssIGFuZCB0aGV5IGRpZCBldmVuIGFzIGhlIGhhZCBzYWlkLCBhbmQgeW9rZWQgdGhlIGZsZWV0IGhvcnNlcyB0byB0aGUgY2hhcmlvdC4gVGhlIGhvdXNla2VlcGVyIHBhY2tlZCB0aGVtIHVwIGEgcHJvdmlzaW9uIG9mIGJyZWFkLCB3aW5lLCBhbmQgc3dlZXRtZWF0cyBmaXQgZm9yIHRoZSBzb25zIG9mIHByaW5jZXMuIFRoZW4gVGVsZW1hY2h1cyBnb3QgaW50byB0aGUgY2hhcmlvdCwgd2hpbGUgUGlzaXN0cmF0dXMgZ2F0aGVyZWQgdXAgdGhlIHJlaW5zIGFuZCB0b29rIGhpcyBzZWF0IGJlc2lkZSBoaW0uIEhlIGxhc2hlZCB0aGUgaG9yc2VzIG9uIGFuZCB0aGV5IGZsZXcgZm9yd2FyZCBub3RoaW5nIGxvdGggaW50byB0aGUgb3BlbiBjb3VudHJ5LCBsZWF2aW5nIHRoZSBoaWdoIGNpdGFkZWwgb2YgUHlsb3MgYmVoaW5kIHRoZW0uIEFsbCB0aGF0IGRheSBkaWQgdGhleSB0cmF2ZWwsIHN3YXlpbmcgdGhlIHlva2UgdXBvbiB0aGVpciBuZWNrcyB0aWxsIHRoZSBzdW4gd2VudCBkb3duIGFuZCBkYXJrbmVzcyB3YXMgb3ZlciBhbGwgdGhlIGxhbmQuIFRoZW4gdGhleSByZWFjaGVkIFBoZXJhZSB3aGVyZSBEaW9jbGVzIGxpdmVkLCB3aG8gd2FzIHNvbiB0byBPcnRpbG9jaHVzIGFuZCBncmFuZHNvbiB0byBBbHBoZXVzLiBIZXJlIHRoZXkgcGFzc2VkIHRoZSBuaWdodCBhbmQgRGlvY2xlcyBlbnRlcnRhaW5lZCB0aGVtIGhvc3BpdGFibHkuIFdoZW4gdGhlIGNoaWxkIG9mIG1vcm5pbmcsIHJvc3ktZmluZ2VyZWQgRGF3bjsgYXBwZWFyZWQsIHRoZXkgYWdhaW4geW9rZWQgdGhlaXIgaG9yc2VzIGFuZCBkcm92ZSBvdXQgdGhyb3VnaCB0aGUgZ2F0ZXdheSB1bmRlciB0aGUgZWNob2luZyBnYXRlaG91c2UuIFBpc2lzdHJhdHVzIGxhc2hlZCB0aGUgaG9yc2VzIG9uIGFuZCB0aGV5IGZsZXcgZm9yd2FyZCBub3RoaW5nIGxvdGg7IHByZXNlbnRseSB0aGV5IGNhbWUgdG8gdGhlIGNvcm4gbGFuZHMgT2YgdGhlIG9wZW4gY291bnRyeSwgYW5kIGluIHRoZSBjb3Vyc2Ugb2YgdGltZSBjb21wbGV0ZWQgdGhlaXIgam91cm5leSwgc28gd2VsbCBkaWQgdGhlaXIgc3RlZWRzIHRha2UgdGhlbS4NCg0KTm93IHdoZW4gdGhlIHN1biBoYWQgc2V0IGFuZCBkYXJrbmVzcyB3YXMgb3ZlciB0aGUgbGFuZC4=",
      "timestamp": "2014-09-07T22:39:54.022Z"
    }
  ],
  "stubs": [
    {
      "responses": [
        {
          "is": {
            "data": "SGVsbG8sIHdvcmxkIQ=="
          }
        }
      ],
      "matches": [
        {
          "timestamp": "2015-09-07T22:39:54.651Z",
          "request": {
            "requestFrom": "::1:60642",
            "data": "AAEK/0Jvb2sgSQ0KDQpUZWxsIG1lLCBPIG11c2UsIG9mIHRoYXQgaW5nZW5pb3VzIGhlcm8gd2hvIHRyYXZlbGxlZCBmYXIgYW5kIHdpZGUgYWZ0ZXIgaGUgaGFkIHNhY2tlZCB0aGUgZmFtb3VzIHRvd24gb2YgVHJveS4gTWFueSBjaXRpZXMgZGlkIGhlIHZpc2l0LCBhbmQgbWFueSB3ZXJlIHRoZSBuYXRpb25zIHdpdGggd2hvc2UgbWFubmVycyBhbmQgY3VzdG9tcyBoZSB3YXMgYWNxdWFpbnRlZDsgbW9yZW92ZXIgaGUgc3VmZmVyZWQgbXVjaCBieSBzZWEgd2hpbGUgdHJ5aW5nIHRvIHNhdmUgaGlzIG93biBsaWZlIGFuZCBicmluZyBoaXMgbWVuIHNhZmVseSBob21lOyBidXQgZG8gd2hhdCBoZSBtaWdodCBoZSBjb3VsZCBub3Qgc2F2ZSBoaXMgbWVuLCBmb3IgdGhleSBwZXJpc2hlZCB0aHJvdWdoIHRoZWlyIG93biBzaGVlciBmb2xseSBpbiBlYXRpbmcgdGhlIGNhdHRsZSBvZiB0aGUgU3VuLWdvZCBIeXBlcmlvbjsgc28gdGhlIGdvZCBwcmV2ZW50ZWQgdGhlbSBmcm9tIGV2ZXIgcmVhY2hpbmcgaG9tZS4gVGVsbCBtZSwgdG9vLCBhYm91dCBhbGwgdGhlc2UgdGhpbmdzLCBPIGRhdWdodGVyIG9mIEpvdmUsIGZyb20gd2hhdHNvZXZlciBzb3VyY2UgeW91IG1heSBrbm93IHRoZW0uDQoNClNvIG5vdyBhbGwgd2hvIGVzY2FwZWQgZGVhdGggaW4gYmF0dGxlIG9yIGJ5IHNoaXB3cmVjayBoYWQgZ290IHNhZmVseSBob21lIGV4Y2VwdCBVbHlzc2VzLCBhbmQgaGUsIHRob3VnaCBoZSB3YXMgbG9uZ2luZyB0byByZXR1cm4gdG8gaGlzIHdpZmUgYW5kIGNvdW50cnksIHdhcyBkZXRhaW5lZCBieSB0aGUgZ29kZGVzcyBDYWx5cHNvLCB3aG8gaGFkIGdvdCBoaW0gaW50byBhIGxhcmdlIGNhdmUgYW5kIHdhbnRlZCB0byBtYXJyeSBoaW0uIEJ1dCBhcyB5ZWFycyB3ZW50IGJ5LCB0aGVyZSBjYW1lIGEgdGltZSB3aGVuIHRoZSBnb2RzIHNldHRsZWQgdGhhdCBoZSBzaG91bGQgZ28gYmFjayB0byBJdGhhY2E7IGV2ZW4gdGhlbiwgaG93ZXZlciwgd2hlbiBoZSB3YXMgYW1vbmcgaGlzIG93biBwZW9wbGUsIGhpcyB0cm91YmxlcyB3ZXJlIG5vdCB5ZXQgb3ZlcjsgbmV2ZXJ0aGVsZXNzIGFsbCB0aGUgZ29kcyBoYWQgbm93IGJlZ3VuIHRvIHBpdHkgaGltIGV4Y2VwdCBOZXB0dW5lLCB3aG8gc3RpbGwgcGVyc2VjdXRlZCBoaW0gd2l0aG91dCBjZWFzaW5nIGFuZCB3b3VsZCBub3QgbGV0IGhpbSBnZXQgaG9tZS4NCg0KTm93IE5lcHR1bmUgaGFkIGdvbmUgb2ZmIHRvIHRoZSBFdGhpb3BpYW5zLCB3aG8gYXJlIGF0IHRoZSB3b3JsZCdzIGVuZCwgYW5kIGxpZSBpbiB0d28gaGFsdmVzLCB0aGUgb25lIGxvb2tpbmcgV2VzdCBhbmQgdGhlIG90aGVyIEVhc3QuIEhlIGhhZCBnb25lIHRoZXJlIHRvIGFjY2VwdCBhIGhlY2F0b21iIG9mIHNoZWVwIGFuZCBveGVuLCBhbmQgd2FzIGVuam95aW5nIGhpbXNlbGYgYXQgaGlzIGZlc3RpdmFsOyBidXQgdGhlIG90aGVyIGdvZHMgbWV0IGluIHRoZSBob3VzZSBvZiBPbHltcGlhbiBKb3ZlLCBhbmQgdGhlIHNpcmUgb2YgZ29kcyBhbmQgbWVuIHNwb2tlIGZpcnN0LiBBdCB0aGF0IG1vbWVudCBoZSB3YXMgdGhpbmtpbmcgb2YgQWVnaXN0aHVzLCB3aG8gaGFkIGJlZW4ga2lsbGVkIGJ5IEFnYW1lbW5vbidzIHNvbiBPcmVzdGVzOyBzbyBoZSBzYWlkIHRvIHRoZSBvdGhlciBnb2RzOg0KDQoiU2VlIG5vdywgaG93IG1lbiBsYXkgYmxhbWUgdXBvbiB1cyBnb2RzIGZvciB3aGF0IGlzIGFmdGVyIGFsbCBub3RoaW5nIGJ1dCB0aGVpciBvd24gZm9sbHkuIExvb2sgYXQgQWVnaXN0aHVzOyBoZSBtdXN0IG5lZWRzIG1ha2UgbG92ZSB0byBBZ2FtZW1ub24ncyB3aWZlIHVucmlnaHRlb3VzbHkgYW5kIHRoZW4ga2lsbCBBZ2FtZW1ub24sIHRob3VnaCBoZSBrbmV3IGl0IHdvdWxkIGJlIHRoZSBkZWF0aCBvZiBoaW07IGZvciBJIHNlbnQgTWVyY3VyeSB0byB3YXJuIGhpbSBub3QgdG8gZG8gZWl0aGVyIG9mIHRoZXNlIHRoaW5ncywgaW5hc211Y2ggYXMgT3Jlc3RlcyB3b3VsZCBiZSBzdXJlIHRvIHRha2UgaGlzIHJldmVuZ2Ugd2hlbiBoZSBncmV3IHVwIGFuZCB3YW50ZWQgdG8gcmV0dXJuIGhvbWUuIE1lcmN1cnkgdG9sZCBoaW0gdGhpcyBpbiBhbGwgZ29vZCB3aWxsIGJ1dCBoZSB3b3VsZCBub3QgbGlzdGVuLCBhbmQgbm93IGhlIGhhcyBwYWlkIGZvciBldmVyeXRoaW5nIGluIGZ1bGwuIg0KDQpUaGVuIE1pbmVydmEgc2FpZCwgIkZhdGhlciwgc29uIG9mIFNhdHVybiwgS2luZyBvZiBraW5ncywgaXQgc2VydmVkIEFlZ2lzdGh1cyByaWdodCwgYW5kIHNvIGl0IHdvdWxkIGFueSBvbmUgZWxzZSB3aG8gZG9lcyBhcyBoZSBkaWQ7IGJ1dCBBZWdpc3RodXMgaXMgbmVpdGhlciBoZXJlIG5vciB0aGVyZTsgaXQgaXMgZm9yIFVseXNzZXMgdGhhdCBteSBoZWFydCBibGVlZHMsIHdoZW4gSSB0aGluayBvZiBoaXMgc3VmZmVyaW5ncyBpbiB0aGF0IGxvbmVseSBzZWEtZ2lydCBpc2xhbmQsIGZhciBhd2F5LCBwb29yIG1hbiwgZnJvbSBhbGwgaGlzIGZyaWVuZHMuIEl0IGlzIGFuIGlzbGFuZCBjb3ZlcmVkIHdpdGggZm9yZXN0LCBpbiB0aGUgdmVyeSBtaWRkbGUgb2YgdGhlIHNlYSwgYW5kIGEgZ29kZGVzcyBsaXZlcyB0aGVyZSwgZGF1Z2h0ZXIgb2YgdGhlIG1hZ2ljaWFuIEF0bGFzLCB3aG8gbG9va3MgYWZ0ZXIgdGhlIGJvdHRvbSBvZiB0aGUgb2NlYW4sIGFuZCBjYXJyaWVzIHRoZSBncmVhdCBjb2x1bW5zIHRoYXQga2VlcCBoZWF2ZW4gYW5kIGVhcnRoIGFzdW5kZXIuIFRoaXMgZGF1Z2h0ZXIgb2YgQXRsYXMgaGFzIGdvdCBob2xkIG9mIHBvb3IgdW5oYXBweSBVbHlzc2VzLCBhbmQga2VlcHMgdHJ5aW5nIGJ5IGV2ZXJ5IGtpbmQgb2YgYmxhbmRpc2htZW50IHRvIG1ha2UgaGltIGZvcmdldCBoaXMgaG9tZSwgc28gdGhhdCBoZSBpcyB0aXJlZCBvZiBsaWZlLCBhbmQgdGhpbmtzIG9mIG5vdGhpbmcgYnV0IGhvdyBoZSBtYXkgb25jZSBtb3JlIHNlZSB0aGUgc21va2Ugb2YgaGlzIG93biBjaGltbmV5cy4gWW91LCBzaXIsIHRha2Ugbm8gaGVlZCBvZiB0aGlzLCBhbmQgeWV0IHdoZW4gVWx5c3NlcyB3YXMgYmVmb3JlIFRyb3kgZGlkIGhlIG5vdCBwcm9waXRpYXRlIHlvdSB3aXRoIG1hbnkgYSBidXJudCBzYWNyaWZpY2U/IFdoeSB0aGVuIHNob3VsZCB5b3Uga2VlcCBvbiBiZWluZyBzbyBhbmdyeSB3aXRoIGhpbT8iDQoNCkFuZCBKb3ZlIHNhaWQsICJNeSBjaGlsZCwgd2hhdCBhcmUgeW91IHRhbGtpbmcgYWJvdXQ/IEhvdyBjYW4gSSBmb3JnZXQgVWx5c3NlcyB0aGFuIHdob20gdGhlcmUgaXMgbm8gbW9yZSBjYXBhYmxlIG1hbiBvbiBlYXJ0aCwgbm9yIG1vcmUgbGliZXJhbCBpbiBoaXMgb2ZmZXJpbmdzIHRvIHRoZSBpbW1vcnRhbCBnb2RzIHRoYXQgbGl2ZSBpbiBoZWF2ZW4/IEJlYXIgaW4gbWluZCwgaG93ZXZlciwgdGhhdCBOZXB0dW5lIGlzIHN0aWxsIGZ1cmlvdXMgd2l0aCBVbHlzc2VzIGZvciBoYXZpbmcgYmxpbmRlZCBhbiBleWUgb2YgUG9seXBoZW11cyBraW5nIG9mIHRoZSBDeWNsb3Blcy4gUG9seXBoZW11cyBpcyBzb24gdG8gTmVwdHVuZSBieSB0aGUgbnltcGggVGhvb3NhLCBkYXVnaHRlciB0byB0aGUgc2VhLWtpbmcgUGhvcmN5czsgdGhlcmVmb3JlIHRob3VnaCBoZSB3aWxsIG5vdCBraWxsIFVseXNzZXMgb3V0cmlnaHQsIGhlIHRvcm1lbnRzIGhpbSBieSBwcmV2ZW50aW5nIGhpbSBmcm9tIGdldHRpbmcgaG9tZS4gU3RpbGwsIGxldCB1cyBsYXkgb3VyIGhlYWRzIHRvZ2V0aGVyIGFuZCBzZWUgaG93IHdlIGNhbiBoZWxwIGhpbSB0byByZXR1cm47IE5lcHR1bmUgd2lsbCB0aGVuIGJlIHBhY2lmaWVkLCBmb3IgaWYgd2UgYXJlIGFsbCBvZiBhIG1pbmQgaGUgY2FuIGhhcmRseSBzdGFuZCBvdXQgYWdhaW5zdCB1cy4iDQoNCkFuZCBNaW5lcnZhIHNhaWQsICJGYXRoZXIsIHNvbiBvZiBTYXR1cm4sIEtpbmcgb2Yga2luZ3MsIGlmLCB0aGVuLCB0aGUgZ29kcyBub3cgbWVhbiB0aGF0IFVseXNzZXMgc2hvdWxkIGdldCBob21lLCB3ZSBzaG91bGQgZmlyc3Qgc2VuZCBNZXJjdXJ5IHRvIHRoZSBPZ3lnaWFuIGlzbGFuZCB0byB0ZWxsIENhbHlwc28gdGhhdCB3ZSBoYXZlIG1hZGUgdXAgb3VyIG1pbmRzIGFuZCB0aGF0IGhlIGlzIHRvIHJldHVybi4gSW4gdGhlIG1lYW50aW1lIEkgd2lsbCBnbyB0byBJdGhhY2EsIHRvIHB1dCBoZWFydCBpbnRvIFVseXNzZXMnIHNvbiBUZWxlbWFjaHVzOyBJIHdpbGwgZW1ib2xkZW4gaGltIHRvIGNhbGwgdGhlIEFjaGFlYW5zIGluIGFzc2VtYmx5LCBhbmQgc3BlYWsgb3V0IHRvIHRoZSBzdWl0b3JzIG9mIGhpcyBtb3RoZXIgUGVuZWxvcGUsIHdobyBwZXJzaXN0IGluIGVhdGluZyB1cCBhbnkgbnVtYmVyIG9mIGhpcyBzaGVlcCBhbmQgb3hlbjsgSSB3aWxsIGFsc28gY29uZHVjdCBoaW0gdG8gU3BhcnRhIGFuZCB0byBQeWxvcywgdG8gc2VlIGlmIGhlIGNhbiBoZWFyIGFueXRoaW5nIGFib3V0IHRoZSByZXR1cm4gb2YgaGlzIGRlYXIgZmF0aGVyLSBmb3IgdGhpcyB3aWxsIG1ha2UgcGVvcGxlIHNwZWFrIHdlbGwgb2YgaGltLiINCg0KU28gc2F5aW5nIHNoZSBib3VuZCBvbiBoZXIgZ2xpdHRlcmluZyBnb2xkZW4gc2FuZGFscywgaW1wZXJpc2hhYmxlLCB3aXRoIHdoaWNoIHNoZSBjYW4gZmx5IGxpa2UgdGhlIHdpbmQgb3ZlciBsYW5kIG9yIHNlYTsgc2hlIGdyYXNwZWQgdGhlIHJlZG91YnRhYmxlIGJyb256ZS1zaG9kIHNwZWFyLCBzbyBzdG91dCBhbmQgc3R1cmR5IGFuZCBzdHJvbmcsIHdoZXJld2l0aCBzaGUgcXVlbGxzIHRoZSByYW5rcyBvZiBoZXJvZXMgd2hvIGhhdmUgZGlzcGxlYXNlZCBoZXIsIGFuZCBkb3duIHNoZSBkYXJ0ZWQgZnJvbSB0aGUgdG9wbW9zdCBzdW1taXRzIG9mIE9seW1wdXMsIHdoZXJlb24gZm9ydGh3aXRoIHNoZSB3YXMgaW4gSXRoYWNhLCBhdCB0aGUgZ2F0ZXdheSBvZiBVbHlzc2VzJyBob3VzZSwgZGlzZ3Vpc2VkIGFzIGEgdmlzaXRvciwgTWVudGVzLCBjaGllZiBvZiB0aGUgVGFwaGlhbnMsIGFuZCBzaGUgaGVsZCBhIGJyb256ZSBzcGVhciBpbiBoZXIgaGFuZC4gVGhlcmUgc2hlIGZvdW5kIHRoZSBsb3JkbHkgc3VpdG9ycyBzZWF0ZWQgb24gaGlkZXMgb2YgdGhlIG94ZW4gd2hpY2ggdGhleSBoYWQga2lsbGVkIGFuZCBlYXRlbiwgYW5kIHBsYXlpbmcgZHJhdWdodHMgaW4gZnJvbnQgb2YgdGhlIGhvdXNlLiBNZW4tc2VydmFudHMgYW5kIHBhZ2VzIHdlcmUgYnVzdGxpbmcgYWJvdXQgdG8gd2FpdCB1cG9uIHRoZW0sIHNvbWUgbWl4aW5nIHdpbmUgd2l0aCB3YXRlciBpbiB0aGUgbWl4aW5nLWJvd2xzLCBzb21lIGNsZWFuaW5nIGRvd24gdGhlIHRhYmxlcyB3aXRoIHdldCBzcG9uZ2VzIGFuZCBsYXlpbmcgdGhlbSBvdXQgYWdhaW4sIGFuZCBzb21lIGN1dHRpbmcgdXAgZ3JlYXQgcXVhbnRpdGllcyBvZiBtZWF0Lg0KDQpUZWxlbWFjaHVzIHNhdyBoZXIgbG9uZyBiZWZvcmUgYW55IG9uZSBlbHNlIGRpZC4gSGUgd2FzIHNpdHRpbmcgbW9vZGlseSBhbW9uZyB0aGUgc3VpdG9ycyB0aGlua2luZyBhYm91dCBoaXMgYnJhdmUgZmF0aGVyLCBhbmQgaG93IGhlIHdvdWxkIHNlbmQgdGhlbSBmbHlpbmcgb3V0IG9mIHRoZSBob3VzZSwgaWYgaGUgd2VyZSB0byBjb21lIHRvIGhpcyBvd24gYWdhaW4gYW5kIGJlIGhvbm91cmVkIGFzIGluIGRheXMgZ29uZSBieS4gVGh1cyBicm9vZGluZyBhcyBoZSBzYXQgYW1vbmcgdGhlbSwgaGUgY2F1Z2h0IHNpZ2h0IG9mIE1pbmVydmEgYW5kIHdlbnQgc3RyYWlnaHQgdG8gdGhlIGdhdGUsIGZvciBoZSB3YXMgdmV4ZWQgdGhhdCBhIHN0cmFuZ2VyIHNob3VsZCBiZSBrZXB0IHdhaXRpbmcgZm9yIGFkbWl0dGFuY2UuIEhlIHRvb2sgaGVyIHJpZ2h0IGhhbmQgaW4gaGlzIG93biwgYW5kIGJhZGUgaGVyIGdpdmUgaGltIGhlciBzcGVhci4gIldlbGNvbWUsIiBzYWlkIGhlLCAidG8gb3VyIGhvdXNlLCBhbmQgd2hlbiB5b3UgaGF2ZSBwYXJ0YWtlbiBvZiBmb29kIHlvdSBzaGFsbCB0ZWxsIHVzIHdoYXQgeW91IGhhdmUgY29tZSBmb3IuIg0KDQpIZSBsZWQgdGhlIHdheSBhcyBoZSBzcG9rZSwgYW5kIE1pbmVydmEgZm9sbG93ZWQgaGltLiBXaGVuIHRoZXkgd2VyZSB3aXRoaW4gaGUgdG9vayBoZXIgc3BlYXIgYW5kIHNldCBpdCBpbiB0aGUgc3BlYXItIHN0YW5kIGFnYWluc3QgYSBzdHJvbmcgYmVhcmluZy1wb3N0IGFsb25nIHdpdGggdGhlIG1hbnkgb3RoZXIgc3BlYXJzIG9mIGhpcyB1bmhhcHB5IGZhdGhlciwgYW5kIGhlIGNvbmR1Y3RlZCBoZXIgdG8gYSByaWNobHkgZGVjb3JhdGVkIHNlYXQgdW5kZXIgd2hpY2ggaGUgdGhyZXcgYSBjbG90aCBvZiBkYW1hc2suIFRoZXJlIHdhcyBhIGZvb3RzdG9vbCBhbHNvIGZvciBoZXIgZmVldCwgYW5kIGhlIHNldCBhbm90aGVyIHNlYXQgbmVhciBoZXIgZm9yIGhpbXNlbGYsIGF3YXkgZnJvbSB0aGUgc3VpdG9ycywgdGhhdCBzaGUgbWlnaHQgbm90IGJlIGFubm95ZWQgd2hpbGUgZWF0aW5nIGJ5IHRoZWlyIG5vaXNlIGFuZCBpbnNvbGVuY2UsIGFuZCB0aGF0IGhlIG1pZ2h0IGFzayBoZXIgbW9yZSBmcmVlbHkgYWJvdXQgaGlzIGZhdGhlci4NCg0KQSBtYWlkIHNlcnZhbnQgdGhlbiBicm91Z2h0IHRoZW0gd2F0ZXIgaW4gYSBiZWF1dGlmdWwgZ29sZGVuIGV3ZXIgYW5kIHBvdXJlZCBpdCBpbnRvIGEgc2lsdmVyIGJhc2luIGZvciB0aGVtIHRvIHdhc2ggdGhlaXIgaGFuZHMsIGFuZCBzaGUgZHJldyBhIGNsZWFuIHRhYmxlIGJlc2lkZSB0aGVtLiBBbiB1cHBlciBzZXJ2YW50IGJyb3VnaHQgdGhlbSBicmVhZCwgYW5kIG9mZmVyZWQgdGhlbSBtYW55IGdvb2QgdGhpbmdzIG9mIHdoYXQgdGhlcmUgd2FzIGluIHRoZSBob3VzZSwgdGhlIGNhcnZlciBmZXRjaGVkIHRoZW0gcGxhdGVzIG9mIGFsbCBtYW5uZXIgb2YgbWVhdHMgYW5kIHNldCBjdXBzIG9mIGdvbGQgYnkgdGhlaXIgc2lkZSwgYW5kIGEgbWFuLXNlcnZhbnQgYnJvdWdodCB0aGVtIHdpbmUgYW5kIHBvdXJlZCBpdCBvdXQgZm9yIHRoZW0uDQoNClRoZW4gdGhlIHN1aXRvcnMgY2FtZSBpbiBhbmQgdG9vayB0aGVpciBwbGFjZXMgb24gdGhlIGJlbmNoZXMgYW5kIHNlYXRzLiBGb3J0aHdpdGggbWVuIHNlcnZhbnRzIHBvdXJlZCB3YXRlciBvdmVyIHRoZWlyIGhhbmRzLCBtYWlkcyB3ZW50IHJvdW5kIHdpdGggdGhlIGJyZWFkLWJhc2tldHMsIHBhZ2VzIGZpbGxlZCB0aGUgbWl4aW5nLWJvd2xzIHdpdGggd2luZSBhbmQgd2F0ZXIsIGFuZCB0aGV5IGxhaWQgdGhlaXIgaGFuZHMgdXBvbiB0aGUgZ29vZCB0aGluZ3MgdGhhdCB3ZXJlIGJlZm9yZSB0aGVtLiBBcyBzb29uIGFzIHRoZXkgaGFkIGhhZCBlbm91Z2ggdG8gZWF0IGFuZCBkcmluayB0aGV5IHdhbnRlZCBtdXNpYyBhbmQgZGFuY2luZywgd2hpY2ggYXJlIHRoZSBjcm93bmluZyBlbWJlbGxpc2htZW50cyBvZiBhIGJhbnF1ZXQsIHNvIGEgc2VydmFudCBicm91Z2h0IGEgbHlyZSB0byBQaGVtaXVzLCB3aG9tIHRoZXkgY29tcGVsbGVkIHBlcmZvcmNlIHRvIHNpbmcgdG8gdGhlbS4gQXMgc29vbiBhcyBoZSB0b3VjaGVkIGhpcyBseXJlIGFuZCBiZWdhbiB0byBzaW5nIFRlbGVtYWNodXMgc3Bva2UgbG93IHRvIE1pbmVydmEsIHdpdGggaGlzIGhlYWQgY2xvc2UgdG8gaGVycyB0aGF0IG5vIG1hbiBtaWdodCBoZWFyLg0KDQoiSSBob3BlLCBzaXIsIiBzYWlkIGhlLCAidGhhdCB5b3Ugd2lsbCBub3QgYmUgb2ZmZW5kZWQgd2l0aCB3aGF0IEkgYW0gZ29pbmcgdG8gc2F5LiBTaW5naW5nIGNvbWVzIGNoZWFwIHRvIHRob3NlIHdobyBkbyBub3QgcGF5IGZvciBpdCwgYW5kIGFsbCB0aGlzIGlzIGRvbmUgYXQgdGhlIGNvc3Qgb2Ygb25lIHdob3NlIGJvbmVzIGxpZSByb3R0aW5nIGluIHNvbWUgd2lsZGVybmVzcyBvciBncmluZGluZyB0byBwb3dkZXIgaW4gdGhlIHN1cmYuIElmIHRoZXNlIG1lbiB3ZXJlIHRvIHNlZSBteSBmYXRoZXIgY29tZSBiYWNrIHRvIEl0aGFjYSB0aGV5IHdvdWxkIHByYXkgZm9yIGxvbmdlciBsZWdzIHJhdGhlciB0aGFuIGEgbG9uZ2VyIHB1cnNlLCBmb3IgbW9uZXkgd291bGQgbm90IHNlcnZlIHRoZW07IGJ1dCBoZSwgYWxhcywgaGFzIGZhbGxlbiBvbiBhbiBpbGwgZmF0ZSwgYW5kIGV2ZW4gd2hlbiBwZW9wbGUgZG8gc29tZXRpbWVzIHNheSB0aGF0IGhlIGlzIGNvbWluZywgd2Ugbm8gbG9uZ2VyIGhlZWQgdGhlbTsgd2Ugc2hhbGwgbmV2ZXIgc2VlIGhpbSBhZ2Fpbi4gQW5kIG5vdywgc2lyLCB0ZWxsIG1lIGFuZCB0ZWxsIG1lIHRydWUsIHdobyB5b3UgYXJlIGFuZCB3aGVyZSB5b3UgY29tZSBmcm9tLiBUZWxsIG1lIG9mIHlvdXIgdG93biBhbmQgcGFyZW50cywgd2hhdCBtYW5uZXIgb2Ygc2hpcCB5b3UgY2FtZSBpbiwgaG93IHlvdXIgY3JldyBicm91Z2h0IHlvdSB0byBJdGhhY2EsIGFuZCBvZiB3aGF0IG5hdGlvbiB0aGV5IGRlY2xhcmVkIHRoZW1zZWx2ZXMgdG8gYmUtIGZvciB5b3UgY2Fubm90IGhhdmUgY29tZSBieSBsYW5kLiBUZWxsIG1lIGFsc28gdHJ1bHksIGZvciBJIHdhbnQgdG8ga25vdywgYXJlIHlvdSBhIHN0cmFuZ2VyIHRvIHRoaXMgaG91c2UsIG9yIGhhdmUgeW91IGJlZW4gaGVyZSBpbiBteSBmYXRoZXIncyB0aW1lPyBJbiB0aGUgb2xkIGRheXMgd2UgaGFkIG1hbnkgdmlzaXRvcnMgZm9yIG15IGZhdGhlciB3ZW50IGFib3V0IG11Y2ggaGltc2VsZi4iDQoNCkFuZCBNaW5lcnZhIGFuc3dlcmVkLCAiSSB3aWxsIHRlbGwgeW91IHRydWx5IGFuZCBwYXJ0aWN1bGFybHkgYWxsIGFib3V0IGl0LiBJIGFtIE1lbnRlcywgc29uIG9mIEFuY2hpYWx1cywgYW5kIEkgYW0gS2luZyBvZiB0aGUgVGFwaGlhbnMuIEkgaGF2ZSBjb21lIGhlcmUgd2l0aCBteSBzaGlwIGFuZCBjcmV3LCBvbiBhIHZveWFnZSB0byBtZW4gb2YgYSBmb3JlaWduIHRvbmd1ZSBiZWluZyBib3VuZCBmb3IgVGVtZXNhIHdpdGggYSBjYXJnbyBvZiBpcm9uLCBhbmQgSSBzaGFsbCBicmluZyBiYWNrIGNvcHBlci4gQXMgZm9yIG15IHNoaXAsIGl0IGxpZXMgb3ZlciB5b25kZXIgb2ZmIHRoZSBvcGVuIGNvdW50cnkgYXdheSBmcm9tIHRoZSB0b3duLCBpbiB0aGUgaGFyYm91ciBSaGVpdGhyb24gdW5kZXIgdGhlIHdvb2RlZCBtb3VudGFpbiBOZXJpdHVtLiBPdXIgZmF0aGVycyB3ZXJlIGZyaWVuZHMgYmVmb3JlIHVzLCBhcyBvbGQgTGFlcnRlcyB3aWxsIHRlbGwgeW91LCBpZiB5b3Ugd2lsbCBnbyBhbmQgYXNrIGhpbS4gVGhleSBzYXksIGhvd2V2ZXIsIHRoYXQgaGUgbmV2ZXIgY29tZXMgdG8gdG93biBub3csIGFuZCBsaXZlcyBieSBoaW1zZWxmIGluIHRoZSBjb3VudHJ5LCBmYXJpbmcgaGFyZGx5LCB3aXRoIGFuIG9sZCB3b21hbiB0byBsb29rIGFmdGVyIGhpbSBhbmQgZ2V0IGhpcyBkaW5uZXIgZm9yIGhpbSwgd2hlbiBoZSBjb21lcyBpbiB0aXJlZCBmcm9tIHBvdHRlcmluZyBhYm91dCBoaXMgdmluZXlhcmQuIFRoZXkgdG9sZCBtZSB5b3VyIGZhdGhlciB3YXMgYXQgaG9tZSBhZ2FpbiwgYW5kIHRoYXQgd2FzIHdoeSBJIGNhbWUsIGJ1dCBpdCBzZWVtcyB0aGUgZ29kcyBhcmUgc3RpbGwga2VlcGluZyBoaW0gYmFjaywgZm9yIGhlIGlzIG5vdCBkZWFkIHlldCBub3Qgb24gdGhlIG1haW5sYW5kLiBJdCBpcyBtb3JlIGxpa2VseSBoZSBpcyBvbiBzb21lIHNlYS1naXJ0IGlzbGFuZCBpbiBtaWQgb2NlYW4sIG9yIGEgcHJpc29uZXIgYW1vbmcgc2F2YWdlcyB3aG8gYXJlIGRldGFpbmluZyBoaW0gYWdhaW5zdCBoaXMgd2lsbCBJIGFtIG5vIHByb3BoZXQsIGFuZCBrbm93IHZlcnkgbGl0dGxlIGFib3V0IG9tZW5zLCBidXQgSSBzcGVhayBhcyBpdCBpcyBib3JuZSBpbiB1cG9uIG1lIGZyb20gaGVhdmVuLCBhbmQgYXNzdXJlIHlvdSB0aGF0IGhlIHdpbGwgbm90IGJlIGF3YXkgbXVjaCBsb25nZXI7IGZvciBoZSBpcyBhIG1hbiBvZiBzdWNoIHJlc291cmNlIHRoYXQgZXZlbiB0aG91Z2ggaGUgd2VyZSBpbiBjaGFpbnMgb2YgaXJvbiBoZSB3b3VsZCBmaW5kIHNvbWUgbWVhbnMgb2YgZ2V0dGluZyBob21lIGFnYWluLiBCdXQgdGVsbCBtZSwgYW5kIHRlbGwgbWUgdHJ1ZSwgY2FuIFVseXNzZXMgcmVhbGx5IGhhdmUgc3VjaCBhIGZpbmUgbG9va2luZyBmZWxsb3cgZm9yIGEgc29uPyBZb3UgYXJlIGluZGVlZCB3b25kZXJmdWxseSBsaWtlIGhpbSBhYm91dCB0aGUgaGVhZCBhbmQgZXllcywgZm9yIHdlIHdlcmUgY2xvc2UgZnJpZW5kcyBiZWZvcmUgaGUgc2V0IHNhaWwgZm9yIFRyb3kgd2hlcmUgdGhlIGZsb3dlciBvZiBhbGwgdGhlIEFyZ2l2ZXMgd2VudCBhbHNvLiBTaW5jZSB0aGF0IHRpbWUgd2UgaGF2ZSBuZXZlciBlaXRoZXIgb2YgdXMgc2VlbiB0aGUgb3RoZXIuIg0KDQoiTXkgbW90aGVyLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgdGVsbHMgbWUgSSBhbSBzb24gdG8gVWx5c3NlcywgYnV0IGl0IGlzIGEgd2lzZSBjaGlsZCB0aGF0IGtub3dzIGhpcyBvd24gZmF0aGVyLiBXb3VsZCB0aGF0IEkgd2VyZSBzb24gdG8gb25lIHdobyBoYWQgZ3Jvd24gb2xkIHVwb24gaGlzIG93biBlc3RhdGVzLCBmb3IsIHNpbmNlIHlvdSBhc2sgbWUsIHRoZXJlIGlzIG5vIG1vcmUgaWxsLXN0YXJyZWQgbWFuIHVuZGVyIGhlYXZlbiB0aGFuIGhlIHdobyB0aGV5IHRlbGwgbWUgaXMgbXkgZmF0aGVyLiINCg0KQW5kIE1pbmVydmEgc2FpZCwgIlRoZXJlIGlzIG5vIGZlYXIgb2YgeW91ciByYWNlIGR5aW5nIG91dCB5ZXQsIHdoaWxlIFBlbmVsb3BlIGhhcyBzdWNoIGEgZmluZSBzb24gYXMgeW91IGFyZS4gQnV0IHRlbGwgbWUsIGFuZCB0ZWxsIG1lIHRydWUsIHdoYXQgaXMgdGhlIG1lYW5pbmcgb2YgYWxsIHRoaXMgZmVhc3RpbmcsIGFuZCB3aG8gYXJlIHRoZXNlIHBlb3BsZT8gV2hhdCBpcyBpdCBhbGwgYWJvdXQ/IEhhdmUgeW91IHNvbWUgYmFucXVldCwgb3IgaXMgdGhlcmUgYSB3ZWRkaW5nIGluIHRoZSBmYW1pbHktIGZvciBubyBvbmUgc2VlbXMgdG8gYmUgYnJpbmdpbmcgYW55IHByb3Zpc2lvbnMgb2YgaGlzIG93bj8gQW5kIHRoZSBndWVzdHMtIGhvdyBhdHJvY2lvdXNseSB0aGV5IGFyZSBiZWhhdmluZzsgd2hhdCByaW90IHRoZXkgbWFrZSBvdmVyIHRoZSB3aG9sZSBob3VzZTsgaXQgaXMgZW5vdWdoIHRvIGRpc2d1c3QgYW55IHJlc3BlY3RhYmxlIHBlcnNvbiB3aG8gY29tZXMgbmVhciB0aGVtLiINCg0KIlNpciwiIHNhaWQgVGVsZW1hY2h1cywgImFzIHJlZ2FyZHMgeW91ciBxdWVzdGlvbiwgc28gbG9uZyBhcyBteSBmYXRoZXIgd2FzIGhlcmUgaXQgd2FzIHdlbGwgd2l0aCB1cyBhbmQgd2l0aCB0aGUgaG91c2UsIGJ1dCB0aGUgZ29kcyBpbiB0aGVpciBkaXNwbGVhc3VyZSBoYXZlIHdpbGxlZCBpdCBvdGhlcndpc2UsIGFuZCBoYXZlIGhpZGRlbiBoaW0gYXdheSBtb3JlIGNsb3NlbHkgdGhhbiBtb3J0YWwgbWFuIHdhcyBldmVyIHlldCBoaWRkZW4uIEkgY291bGQgaGF2ZSBib3JuZSBpdCBiZXR0ZXIgZXZlbiB0aG91Z2ggaGUgd2VyZSBkZWFkLCBpZiBoZSBoYWQgZmFsbGVuIHdpdGggaGlzIG1lbiBiZWZvcmUgVHJveSwgb3IgaGFkIGRpZWQgd2l0aCBmcmllbmRzIGFyb3VuZCBoaW0gd2hlbiB0aGUgZGF5cyBvZiBoaXMgZmlnaHRpbmcgd2VyZSBkb25lOyBmb3IgdGhlbiB0aGUgQWNoYWVhbnMgd291bGQgaGF2ZSBidWlsdCBhIG1vdW5kIG92ZXIgaGlzIGFzaGVzLCBhbmQgSSBzaG91bGQgbXlzZWxmIGhhdmUgYmVlbiBoZWlyIHRvIGhpcyByZW5vd247IGJ1dCBub3cgdGhlIHN0b3JtLXdpbmRzIGhhdmUgc3Bpcml0ZWQgaGltIGF3YXkgd2Uga25vdyBub3Qgd2l0aGVyOyBoZSBpcyBnb25lIHdpdGhvdXQgbGVhdmluZyBzbyBtdWNoIGFzIGEgdHJhY2UgYmVoaW5kIGhpbSwgYW5kIEkgaW5oZXJpdCBub3RoaW5nIGJ1dCBkaXNtYXkuIE5vciBkb2VzIHRoZSBtYXR0ZXIgZW5kIHNpbXBseSB3aXRoIGdyaWVmIGZvciB0aGUgbG9zcyBvZiBteSBmYXRoZXI7IGhlYXZlbiBoYXMgbGFpZCBzb3Jyb3dzIHVwb24gbWUgb2YgeWV0IGFub3RoZXIga2luZDsgZm9yIHRoZSBjaGllZnMgZnJvbSBhbGwgb3VyIGlzbGFuZHMsIER1bGljaGl1bSwgU2FtZSwgYW5kIHRoZSB3b29kbGFuZCBpc2xhbmQgb2YgWmFjeW50aHVzLCBhcyBhbHNvIGFsbCB0aGUgcHJpbmNpcGFsIG1lbiBvZiBJdGhhY2EgaXRzZWxmLCBhcmUgZWF0aW5nIHVwIG15IGhvdXNlIHVuZGVyIHRoZSBwcmV0ZXh0IG9mIHBheWluZyB0aGVpciBjb3VydCB0byBteSBtb3RoZXIsIHdobyB3aWxsIG5laXRoZXIgcG9pbnQgYmxhbmsgc2F5IHRoYXQgc2hlIHdpbGwgbm90IG1hcnJ5LCBub3IgeWV0IGJyaW5nIG1hdHRlcnMgdG8gYW4gZW5kOyBzbyB0aGV5IGFyZSBtYWtpbmcgaGF2b2Mgb2YgbXkgZXN0YXRlLCBhbmQgYmVmb3JlIGxvbmcgd2lsbCBkbyBzbyBhbHNvIHdpdGggbXlzZWxmLiINCg0KIklzIHRoYXQgc28/IiBleGNsYWltZWQgTWluZXJ2YSwgInRoZW4geW91IGRvIGluZGVlZCB3YW50IFVseXNzZXMgaG9tZSBhZ2Fpbi4gR2l2ZSBoaW0gaGlzIGhlbG1ldCwgc2hpZWxkLCBhbmQgYSBjb3VwbGUgbGFuY2VzLCBhbmQgaWYgaGUgaXMgdGhlIG1hbiBoZSB3YXMgd2hlbiBJIGZpcnN0IGtuZXcgaGltIGluIG91ciBob3VzZSwgZHJpbmtpbmcgYW5kIG1ha2luZyBtZXJyeSwgaGUgd291bGQgc29vbiBsYXkgaGlzIGhhbmRzIGFib3V0IHRoZXNlIHJhc2NhbGx5IHN1aXRvcnMsIHdlcmUgaGUgdG8gc3RhbmQgb25jZSBtb3JlIHVwb24gaGlzIG93biB0aHJlc2hvbGQuIEhlIHdhcyB0aGVuIGNvbWluZyBmcm9tIEVwaHlyYSwgd2hlcmUgaGUgaGFkIGJlZW4gdG8gYmVnIHBvaXNvbiBmb3IgaGlzIGFycm93cyBmcm9tIElsdXMsIHNvbiBvZiBNZXJtZXJ1cy4gSWx1cyBmZWFyZWQgdGhlIGV2ZXItbGl2aW5nIGdvZHMgYW5kIHdvdWxkIG5vdCBnaXZlIGhpbSBhbnksIGJ1dCBteSBmYXRoZXIgbGV0IGhpbSBoYXZlIHNvbWUsIGZvciBoZSB3YXMgdmVyeSBmb25kIG9mIGhpbS4gSWYgVWx5c3NlcyBpcyB0aGUgbWFuIGhlIHRoZW4gd2FzIHRoZXNlIHN1aXRvcnMgd2lsbCBoYXZlIGEgc2hvcnQgc2hyaWZ0IGFuZCBhIHNvcnJ5IHdlZGRpbmcuDQoNCiJCdXQgdGhlcmUhIEl0IHJlc3RzIHdpdGggaGVhdmVuIHRvIGRldGVybWluZSB3aGV0aGVyIGhlIGlzIHRvIHJldHVybiwgYW5kIHRha2UgaGlzIHJldmVuZ2UgaW4gaGlzIG93biBob3VzZSBvciBubzsgSSB3b3VsZCwgaG93ZXZlciwgdXJnZSB5b3UgdG8gc2V0IGFib3V0IHRyeWluZyB0byBnZXQgcmlkIG9mIHRoZXNlIHN1aXRvcnMgYXQgb25jZS4gVGFrZSBteSBhZHZpY2UsIGNhbGwgdGhlIEFjaGFlYW4gaGVyb2VzIGluIGFzc2VtYmx5IHRvLW1vcnJvdyAtbGF5IHlvdXIgY2FzZSBiZWZvcmUgdGhlbSwgYW5kIGNhbGwgaGVhdmVuIHRvIGJlYXIgeW91IHdpdG5lc3MuIEJpZCB0aGUgc3VpdG9ycyB0YWtlIHRoZW1zZWx2ZXMgb2ZmLCBlYWNoIHRvIGhpcyBvd24gcGxhY2UsIGFuZCBpZiB5b3VyIG1vdGhlcidzIG1pbmQgaXMgc2V0IG9uIG1hcnJ5aW5nIGFnYWluLCBsZXQgaGVyIGdvIGJhY2sgdG8gaGVyIGZhdGhlciwgd2hvIHdpbGwgZmluZCBoZXIgYSBodXNiYW5kIGFuZCBwcm92aWRlIGhlciB3aXRoIGFsbCB0aGUgbWFycmlhZ2UgZ2lmdHMgdGhhdCBzbyBkZWFyIGEgZGF1Z2h0ZXIgbWF5IGV4cGVjdC4gQXMgZm9yIHlvdXJzZWxmLCBsZXQgbWUgcHJldmFpbCB1cG9uIHlvdSB0byB0YWtlIHRoZSBiZXN0IHNoaXAgeW91IGNhbiBnZXQsIHdpdGggYSBjcmV3IG9mIHR3ZW50eSBtZW4sIGFuZCBnbyBpbiBxdWVzdCBvZiB5b3VyIGZhdGhlciB3aG8gaGFzIHNvIGxvbmcgYmVlbiBtaXNzaW5nLiBTb21lIG9uZSBtYXkgdGVsbCB5b3Ugc29tZXRoaW5nLCBvciAoYW5kIHBlb3BsZSBvZnRlbiBoZWFyIHRoaW5ncyBpbiB0aGlzIHdheSkgc29tZSBoZWF2ZW4tc2VudCBtZXNzYWdlIG1heSBkaXJlY3QgeW91LiBGaXJzdCBnbyB0byBQeWxvcyBhbmQgYXNrIE5lc3RvcjsgdGhlbmNlIGdvIG9uIHRvIFNwYXJ0YSBhbmQgdmlzaXQgTWVuZWxhdXMsIGZvciBoZSBnb3QgaG9tZSBsYXN0IG9mIGFsbCB0aGUgQWNoYWVhbnM7IGlmIHlvdSBoZWFyIHRoYXQgeW91ciBmYXRoZXIgaXMgYWxpdmUgYW5kIG9uIGhpcyB3YXkgaG9tZSwgeW91IGNhbiBwdXQgdXAgd2l0aCB0aGUgd2FzdGUgdGhlc2Ugc3VpdG9ycyB3aWxsIG1ha2UgZm9yIHlldCBhbm90aGVyIHR3ZWx2ZSBtb250aHMuIElmIG9uIHRoZSBvdGhlciBoYW5kIHlvdSBoZWFyIG9mIGhpcyBkZWF0aCwgY29tZSBob21lIGF0IG9uY2UsIGNlbGVicmF0ZSBoaXMgZnVuZXJhbCByaXRlcyB3aXRoIGFsbCBkdWUgcG9tcCwgYnVpbGQgYSBiYXJyb3cgdG8gaGlzIG1lbW9yeSwgYW5kIG1ha2UgeW91ciBtb3RoZXIgbWFycnkgYWdhaW4uIFRoZW4sIGhhdmluZyBkb25lIGFsbCB0aGlzLCB0aGluayBpdCB3ZWxsIG92ZXIgaW4geW91ciBtaW5kIGhvdywgYnkgZmFpciBtZWFucyBvciBmb3VsLCB5b3UgbWF5IGtpbGwgdGhlc2Ugc3VpdG9ycyBpbiB5b3VyIG93biBob3VzZS4gWW91IGFyZSB0b28gb2xkIHRvIHBsZWFkIGluZmFuY3kgYW55IGxvbmdlcjsgaGF2ZSB5b3Ugbm90IGhlYXJkIGhvdyBwZW9wbGUgYXJlIHNpbmdpbmcgT3Jlc3RlcycgcHJhaXNlcyBmb3IgaGF2aW5nIGtpbGxlZCBoaXMgZmF0aGVyJ3MgbXVyZGVyZXIgQWVnaXN0aHVzPyBZb3UgYXJlIGEgZmluZSwgc21hcnQgbG9va2luZyBmZWxsb3c7IHNob3cgeW91ciBtZXR0bGUsIHRoZW4sIGFuZCBtYWtlIHlvdXJzZWxmIGEgbmFtZSBpbiBzdG9yeS4gTm93LCBob3dldmVyLCBJIG11c3QgZ28gYmFjayB0byBteSBzaGlwIGFuZCB0byBteSBjcmV3LCB3aG8gd2lsbCBiZSBpbXBhdGllbnQgaWYgSSBrZWVwIHRoZW0gd2FpdGluZyBsb25nZXI7IHRoaW5rIHRoZSBtYXR0ZXIgb3ZlciBmb3IgeW91cnNlbGYsIGFuZCByZW1lbWJlciB3aGF0IEkgaGF2ZSBzYWlkIHRvIHlvdS4iDQoNCiJTaXIsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAiaXQgaGFzIGJlZW4gdmVyeSBraW5kIG9mIHlvdSB0byB0YWxrIHRvIG1lIGluIHRoaXMgd2F5LCBhcyB0aG91Z2ggSSB3ZXJlIHlvdXIgb3duIHNvbiwgYW5kIEkgd2lsbCBkbyBhbGwgeW91IHRlbGwgbWU7IEkga25vdyB5b3Ugd2FudCB0byBiZSBnZXR0aW5nIG9uIHdpdGggeW91ciB2b3lhZ2UsIGJ1dCBzdGF5IGEgbGl0dGxlIGxvbmdlciB0aWxsIHlvdSBoYXZlIHRha2VuIGEgYmF0aCBhbmQgcmVmcmVzaGVkIHlvdXJzZWxmLiBJIHdpbGwgdGhlbiBnaXZlIHlvdSBhIHByZXNlbnQsIGFuZCB5b3Ugc2hhbGwgZ28gb24geW91ciB3YXkgcmVqb2ljaW5nOyBJIHdpbGwgZ2l2ZSB5b3Ugb25lIG9mIGdyZWF0IGJlYXV0eSBhbmQgdmFsdWUtIGEga2VlcHNha2Ugc3VjaCBhcyBvbmx5IGRlYXIgZnJpZW5kcyBnaXZlIHRvIG9uZSBhbm90aGVyLiINCg0KTWluZXJ2YSBhbnN3ZXJlZCwgIkRvIG5vdCB0cnkgdG8ga2VlcCBtZSwgZm9yIEkgd291bGQgYmUgb24gbXkgd2F5IGF0IG9uY2UuIEFzIGZvciBhbnkgcHJlc2VudCB5b3UgbWF5IGJlIGRpc3Bvc2VkIHRvIG1ha2UgbWUsIGtlZXAgaXQgdGlsbCBJIGNvbWUgYWdhaW4sIGFuZCBJIHdpbGwgdGFrZSBpdCBob21lIHdpdGggbWUuIFlvdSBzaGFsbCBnaXZlIG1lIGEgdmVyeSBnb29kIG9uZSwgYW5kIEkgd2lsbCBnaXZlIHlvdSBvbmUgb2Ygbm8gbGVzcyB2YWx1ZSBpbiByZXR1cm4uIg0KDQpXaXRoIHRoZXNlIHdvcmRzIHNoZSBmbGV3IGF3YXkgbGlrZSBhIGJpcmQgaW50byB0aGUgYWlyLCBidXQgc2hlIGhhZCBnaXZlbiBUZWxlbWFjaHVzIGNvdXJhZ2UsIGFuZCBoYWQgbWFkZSBoaW0gdGhpbmsgbW9yZSB0aGFuIGV2ZXIgYWJvdXQgaGlzIGZhdGhlci4gSGUgZmVsdCB0aGUgY2hhbmdlLCB3b25kZXJlZCBhdCBpdCwgYW5kIGtuZXcgdGhhdCB0aGUgc3RyYW5nZXIgaGFkIGJlZW4gYSBnb2QsIHNvIGhlIHdlbnQgc3RyYWlnaHQgdG8gd2hlcmUgdGhlIHN1aXRvcnMgd2VyZSBzaXR0aW5nLg0KDQpQaGVtaXVzIHdhcyBzdGlsbCBzaW5naW5nLCBhbmQgaGlzIGhlYXJlcnMgc2F0IHJhcHQgaW4gc2lsZW5jZSBhcyBoZSB0b2xkIHRoZSBzYWQgdGFsZSBvZiB0aGUgcmV0dXJuIGZyb20gVHJveSwgYW5kIHRoZSBpbGxzIE1pbmVydmEgaGFkIGxhaWQgdXBvbiB0aGUgQWNoYWVhbnMuIFBlbmVsb3BlLCBkYXVnaHRlciBvZiBJY2FyaXVzLCBoZWFyZCBoaXMgc29uZyBmcm9tIGhlciByb29tIHVwc3RhaXJzLCBhbmQgY2FtZSBkb3duIGJ5IHRoZSBncmVhdCBzdGFpcmNhc2UsIG5vdCBhbG9uZSwgYnV0IGF0dGVuZGVkIGJ5IHR3byBvZiBoZXIgaGFuZG1haWRzLiBXaGVuIHNoZSByZWFjaGVkIHRoZSBzdWl0b3JzIHNoZSBzdG9vZCBieSBvbmUgb2YgdGhlIGJlYXJpbmcgcG9zdHMgdGhhdCBzdXBwb3J0ZWQgdGhlIHJvb2Ygb2YgdGhlIGNsb2lzdGVycyB3aXRoIGEgc3RhaWQgbWFpZGVuIG9uIGVpdGhlciBzaWRlIG9mIGhlci4gU2hlIGhlbGQgYSB2ZWlsLCBtb3Jlb3ZlciwgYmVmb3JlIGhlciBmYWNlLCBhbmQgd2FzIHdlZXBpbmcgYml0dGVybHkuDQoNCiJQaGVtaXVzLCIgc2hlIGNyaWVkLCAieW91IGtub3cgbWFueSBhbm90aGVyIGZlYXQgb2YgZ29kcyBhbmQgaGVyb2VzLCBzdWNoIGFzIHBvZXRzIGxvdmUgdG8gY2VsZWJyYXRlLiBTaW5nIHRoZSBzdWl0b3JzIHNvbWUgb25lIG9mIHRoZXNlLCBhbmQgbGV0IHRoZW0gZHJpbmsgdGhlaXIgd2luZSBpbiBzaWxlbmNlLCBidXQgY2Vhc2UgdGhpcyBzYWQgdGFsZSwgZm9yIGl0IGJyZWFrcyBteSBzb3Jyb3dmdWwgaGVhcnQsIGFuZCByZW1pbmRzIG1lIG9mIG15IGxvc3QgaHVzYmFuZCB3aG9tIEkgbW91cm4gZXZlciB3aXRob3V0IGNlYXNpbmcsIGFuZCB3aG9zZSBuYW1lIHdhcyBncmVhdCBvdmVyIGFsbCBIZWxsYXMgYW5kIG1pZGRsZSBBcmdvcy4iDQoNCiJNb3RoZXIsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAibGV0IHRoZSBiYXJkIHNpbmcgd2hhdCBoZSBoYXMgYSBtaW5kIHRvOyBiYXJkcyBkbyBub3QgbWFrZSB0aGUgaWxscyB0aGV5IHNpbmcgb2Y7IGl0IGlzIEpvdmUsIG5vdCB0aGV5LCB3aG8gbWFrZXMgdGhlbSwgYW5kIHdobyBzZW5kcyB3ZWFsIG9yIHdvZSB1cG9uIG1hbmtpbmQgYWNjb3JkaW5nIHRvIGhpcyBvd24gZ29vZCBwbGVhc3VyZS4gVGhpcyBmZWxsb3cgbWVhbnMgbm8gaGFybSBieSBzaW5naW5nIHRoZSBpbGwtZmF0ZWQgcmV0dXJuIG9mIHRoZSBEYW5hYW5zLCBmb3IgcGVvcGxlIGFsd2F5cyBhcHBsYXVkIHRoZSBsYXRlc3Qgc29uZ3MgbW9zdCB3YXJtbHkuIE1ha2UgdXAgeW91ciBtaW5kIHRvIGl0IGFuZCBiZWFyIGl0OyBVbHlzc2VzIGlzIG5vdCB0aGUgb25seSBtYW4gd2hvIG5ldmVyIGNhbWUgYmFjayBmcm9tIFRyb3ksIGJ1dCBtYW55IGFub3RoZXIgd2VudCBkb3duIGFzIHdlbGwgYXMgaGUuIEdvLCB0aGVuLCB3aXRoaW4gdGhlIGhvdXNlIGFuZCBidXN5IHlvdXJzZWxmIHdpdGggeW91ciBkYWlseSBkdXRpZXMsIHlvdXIgbG9vbSwgeW91ciBkaXN0YWZmLCBhbmQgdGhlIG9yZGVyaW5nIG9mIHlvdXIgc2VydmFudHM7IGZvciBzcGVlY2ggaXMgbWFuJ3MgbWF0dGVyLCBhbmQgbWluZSBhYm92ZSBhbGwgb3RoZXJzLSBmb3IgaXQgaXMgSSB3aG8gYW0gbWFzdGVyIGhlcmUuIg0KDQpTaGUgd2VudCB3b25kZXJpbmcgYmFjayBpbnRvIHRoZSBob3VzZSwgYW5kIGxhaWQgaGVyIHNvbidzIHNheWluZyBpbiBoZXIgaGVhcnQuIFRoZW4sIGdvaW5nIHVwc3RhaXJzIHdpdGggaGVyIGhhbmRtYWlkcyBpbnRvIGhlciByb29tLCBzaGUgbW91cm5lZCBoZXIgZGVhciBodXNiYW5kIHRpbGwgTWluZXJ2YSBzaGVkIHN3ZWV0IHNsZWVwIG92ZXIgaGVyIGV5ZXMuIEJ1dCB0aGUgc3VpdG9ycyB3ZXJlIGNsYW1vcm91cyB0aHJvdWdob3V0IHRoZSBjb3ZlcmVkIGNsb2lzdGVycywgYW5kIHByYXllZCBlYWNoIG9uZSB0aGF0IGhlIG1pZ2h0IGJlIGhlciBiZWQgZmVsbG93Lg0KDQpUaGVuIFRlbGVtYWNodXMgc3Bva2UsICJTaGFtZWxlc3MsIiBoZSBjcmllZCwgImFuZCBpbnNvbGVudCBzdWl0b3JzLCBsZXQgdXMgZmVhc3QgYXQgb3VyIHBsZWFzdXJlIG5vdywgYW5kIGxldCB0aGVyZSBiZSBubyBicmF3bGluZywgZm9yIGl0IGlzIGEgcmFyZSB0aGluZyB0byBoZWFyIGEgbWFuIHdpdGggc3VjaCBhIGRpdmluZSB2b2ljZSBhcyBQaGVtaXVzIGhhczsgYnV0IGluIHRoZSBtb3JuaW5nIG1lZXQgbWUgaW4gZnVsbCBhc3NlbWJseSB0aGF0IEkgbWF5IGdpdmUgeW91IGZvcm1hbCBub3RpY2UgdG8gZGVwYXJ0LCBhbmQgZmVhc3QgYXQgb25lIGFub3RoZXIncyBob3VzZXMsIHR1cm4gYW5kIHR1cm4gYWJvdXQsIGF0IHlvdXIgb3duIGNvc3QuIElmIG9uIHRoZSBvdGhlciBoYW5kIHlvdSBjaG9vc2UgdG8gcGVyc2lzdCBpbiBzcHVuZ2luZyB1cG9uIG9uZSBtYW4sIGhlYXZlbiBoZWxwIG1lLCBidXQgSm92ZSBzaGFsbCByZWNrb24gd2l0aCB5b3UgaW4gZnVsbCwgYW5kIHdoZW4geW91IGZhbGwgaW4gbXkgZmF0aGVyJ3MgaG91c2UgdGhlcmUgc2hhbGwgYmUgbm8gbWFuIHRvIGF2ZW5nZSB5b3UuIg0KDQpUaGUgc3VpdG9ycyBiaXQgdGhlaXIgbGlwcyBhcyB0aGV5IGhlYXJkIGhpbSwgYW5kIG1hcnZlbGxlZCBhdCB0aGUgYm9sZG5lc3Mgb2YgaGlzIHNwZWVjaC4gVGhlbiwgQW50aW5vdXMsIHNvbiBvZiBFdXBlaXRoZXMsIHNhaWQsICJUaGUgZ29kcyBzZWVtIHRvIGhhdmUgZ2l2ZW4geW91IGxlc3NvbnMgaW4gYmx1c3RlciBhbmQgdGFsbCB0YWxraW5nOyBtYXkgSm92ZSBuZXZlciBncmFudCB5b3UgdG8gYmUgY2hpZWYgaW4gSXRoYWNhIGFzIHlvdXIgZmF0aGVyIHdhcyBiZWZvcmUgeW91LiINCg0KVGVsZW1hY2h1cyBhbnN3ZXJlZCwgIkFudGlub3VzLCBkbyBub3QgY2hpZGUgd2l0aCBtZSwgYnV0LCBnb2Qgd2lsbGluZywgSSB3aWxsIGJlIGNoaWVmIHRvbyBpZiBJIGNhbi4gSXMgdGhpcyB0aGUgd29yc3QgZmF0ZSB5b3UgY2FuIHRoaW5rIG9mIGZvciBtZT8gSXQgaXMgbm8gYmFkIHRoaW5nIHRvIGJlIGEgY2hpZWYsIGZvciBpdCBicmluZ3MgYm90aCByaWNoZXMgYW5kIGhvbm91ci4gU3RpbGwsIG5vdyB0aGF0IFVseXNzZXMgaXMgZGVhZCB0aGVyZSBhcmUgbWFueSBncmVhdCBtZW4gaW4gSXRoYWNhIGJvdGggb2xkIGFuZCB5b3VuZywgYW5kIHNvbWUgb3RoZXIgbWF5IHRha2UgdGhlIGxlYWQgYW1vbmcgdGhlbTsgbmV2ZXJ0aGVsZXNzIEkgd2lsbCBiZSBjaGllZiBpbiBteSBvd24gaG91c2UsIGFuZCB3aWxsIHJ1bGUgdGhvc2Ugd2hvbSBVbHlzc2VzIGhhcyB3b24gZm9yIG1lLiINCg0KVGhlbiBFdXJ5bWFjaHVzLCBzb24gb2YgUG9seWJ1cywgYW5zd2VyZWQsICJJdCByZXN0cyB3aXRoIGhlYXZlbiB0byBkZWNpZGUgd2hvIHNoYWxsIGJlIGNoaWVmIGFtb25nIHVzLCBidXQgeW91IHNoYWxsIGJlIG1hc3RlciBpbiB5b3VyIG93biBob3VzZSBhbmQgb3ZlciB5b3VyIG93biBwb3NzZXNzaW9uczsgbm8gb25lIHdoaWxlIHRoZXJlIGlzIGEgbWFuIGluIEl0aGFjYSBzaGFsbCBkbyB5b3UgdmlvbGVuY2Ugbm9yIHJvYiB5b3UuIEFuZCBub3csIG15IGdvb2QgZmVsbG93LCBJIHdhbnQgdG8ga25vdyBhYm91dCB0aGlzIHN0cmFuZ2VyLiBXaGF0IGNvdW50cnkgZG9lcyBoZSBjb21lIGZyb20/IE9mIHdoYXQgZmFtaWx5IGlzIGhlLCBhbmQgd2hlcmUgaXMgaGlzIGVzdGF0ZT8gSGFzIGhlIGJyb3VnaHQgeW91IG5ld3MgYWJvdXQgdGhlIHJldHVybiBvZiB5b3VyIGZhdGhlciwgb3Igd2FzIGhlIG9uIGJ1c2luZXNzIG9mIGhpcyBvd24/IEhlIHNlZW1lZCBhIHdlbGwtdG8tZG8gbWFuLCBidXQgaGUgaHVycmllZCBvZmYgc28gc3VkZGVubHkgdGhhdCBoZSB3YXMgZ29uZSBpbiBhIG1vbWVudCBiZWZvcmUgd2UgY291bGQgZ2V0IHRvIGtub3cgaGltLiINCg0KIk15IGZhdGhlciBpcyBkZWFkIGFuZCBnb25lLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgImFuZCBldmVuIGlmIHNvbWUgcnVtb3VyIHJlYWNoZXMgbWUgSSBwdXQgbm8gbW9yZSBmYWl0aCBpbiBpdCBub3cuIE15IG1vdGhlciBkb2VzIGluZGVlZCBzb21ldGltZXMgc2VuZCBmb3IgYSBzb290aHNheWVyIGFuZCBxdWVzdGlvbiBoaW0sIGJ1dCBJIGdpdmUgaGlzIHByb3BoZWN5aW5ncyBubyBoZWVkLiBBcyBmb3IgdGhlIHN0cmFuZ2VyLCBoZSB3YXMgTWVudGVzLCBzb24gb2YgQW5jaGlhbHVzLCBjaGllZiBvZiB0aGUgVGFwaGlhbnMsIGFuIG9sZCBmcmllbmQgb2YgbXkgZmF0aGVyJ3MuIiBCdXQgaW4gaGlzIGhlYXJ0IGhlIGtuZXcgdGhhdCBpdCBoYWQgYmVlbiB0aGUgZ29kZGVzcy4NCg0KVGhlIHN1aXRvcnMgdGhlbiByZXR1cm5lZCB0byB0aGVpciBzaW5naW5nIGFuZCBkYW5jaW5nIHVudGlsIHRoZSBldmVuaW5nOyBidXQgd2hlbiBuaWdodCBmZWxsIHVwb24gdGhlaXIgcGxlYXN1cmluZyB0aGV5IHdlbnQgaG9tZSB0byBiZWQgZWFjaCBpbiBoaXMgb3duIGFib2RlLiBUZWxlbWFjaHVzJ3Mgcm9vbSB3YXMgaGlnaCB1cCBpbiBhIHRvd2VyIHRoYXQgbG9va2VkIG9uIHRvIHRoZSBvdXRlciBjb3VydDsgaGl0aGVyLCB0aGVuLCBoZSBoaWVkLCBicm9vZGluZyBhbmQgZnVsbCBvZiB0aG91Z2h0LiBBIGdvb2Qgb2xkIHdvbWFuLCBFdXJ5Y2xlYSwgZGF1Z2h0ZXIgb2YgT3BzLCB0aGUgc29uIG9mIFBpc2Vub3IsIHdlbnQgYmVmb3JlIGhpbSB3aXRoIGEgY291cGxlIG9mIGJsYXppbmcgdG9yY2hlcy4gTGFlcnRlcyBoYWQgYm91Z2h0IGhlciB3aXRoIGhpcyBvd24gbW9uZXkgd2hlbiBzaGUgd2FzIHF1aXRlIHlvdW5nOyBoZSBnYXZlIHRoZSB3b3J0aCBvZiB0d2VudHkgb3hlbiBmb3IgaGVyLCBhbmQgc2hld2VkIGFzIG11Y2ggcmVzcGVjdCB0byBoZXIgaW4gaGlzIGhvdXNlaG9sZCBhcyBoZSBkaWQgdG8gaGlzIG93biB3ZWRkZWQgd2lmZSwgYnV0IGhlIGRpZCBub3QgdGFrZSBoZXIgdG8gaGlzIGJlZCBmb3IgaGUgZmVhcmVkIGhpcyB3aWZlJ3MgcmVzZW50bWVudC4gU2hlIGl0IHdhcyB3aG8gbm93IGxpZ2h0ZWQgVGVsZW1hY2h1cyB0byBoaXMgcm9vbSwgYW5kIHNoZSBsb3ZlZCBoaW0gYmV0dGVyIHRoYW4gYW55IG9mIHRoZSBvdGhlciB3b21lbiBpbiB0aGUgaG91c2UgZGlkLCBmb3Igc2hlIGhhZCBudXJzZWQgaGltIHdoZW4gaGUgd2FzIGEgYmFieS4gSGUgb3BlbmVkIHRoZSBkb29yIG9mIGhpcyBiZWQgcm9vbSBhbmQgc2F0IGRvd24gdXBvbiB0aGUgYmVkOyBhcyBoZSB0b29rIG9mZiBoaXMgc2hpcnQgaGUgZ2F2ZSBpdCB0byB0aGUgZ29vZCBvbGQgd29tYW4sIHdobyBmb2xkZWQgaXQgdGlkaWx5IHVwLCBhbmQgaHVuZyBpdCBmb3IgaGltIG92ZXIgYSBwZWcgYnkgaGlzIGJlZCBzaWRlLCBhZnRlciB3aGljaCBzaGUgd2VudCBvdXQsIHB1bGxlZCB0aGUgZG9vciB0byBieSBhIHNpbHZlciBjYXRjaCwgYW5kIGRyZXcgdGhlIGJvbHQgaG9tZSBieSBtZWFucyBvZiB0aGUgc3RyYXAuIEJ1dCBUZWxlbWFjaHVzIGFzIGhlIGxheSBjb3ZlcmVkIHdpdGggYSB3b29sbGVuIGZsZWVjZSBrZXB0IHRoaW5raW5nIGFsbCBuaWdodCB0aHJvdWdoIG9mIGhpcyBpbnRlbmRlZCB2b3lhZ2Ugb2YgdGhlIGNvdW5zZWwgdGhhdCBNaW5lcnZhIGhhZCBnaXZlbiBoaW0uDQoNCkJvb2sgSUkNCg0KTm93IHdoZW4gdGhlIGNoaWxkIG9mIG1vcm5pbmcsIHJvc3ktZmluZ2VyZWQgRGF3biwgYXBwZWFyZWQsIFRlbGVtYWNodXMgcm9zZSBhbmQgZHJlc3NlZCBoaW1zZWxmLiBIZSBib3VuZCBoaXMgc2FuZGFscyBvbiB0byBoaXMgY29tZWx5IGZlZXQsIGdpcmRlZCBoaXMgc3dvcmQgYWJvdXQgaGlzIHNob3VsZGVyLCBhbmQgbGVmdCBoaXMgcm9vbSBsb29raW5nIGxpa2UgYW4gaW1tb3J0YWwgZ29kLiBIZSBhdCBvbmNlIHNlbnQgdGhlIGNyaWVycyByb3VuZCB0byBjYWxsIHRoZSBwZW9wbGUgaW4gYXNzZW1ibHksIHNvIHRoZXkgY2FsbGVkIHRoZW0gYW5kIHRoZSBwZW9wbGUgZ2F0aGVyZWQgdGhlcmVvbjsgdGhlbiwgd2hlbiB0aGV5IHdlcmUgZ290IHRvZ2V0aGVyLCBoZSB3ZW50IHRvIHRoZSBwbGFjZSBvZiBhc3NlbWJseSBzcGVhciBpbiBoYW5kLSBub3QgYWxvbmUsIGZvciBoaXMgdHdvIGhvdW5kcyB3ZW50IHdpdGggaGltLiBNaW5lcnZhIGVuZG93ZWQgaGltIHdpdGggYSBwcmVzZW5jZSBvZiBzdWNoIGRpdmluZSBjb21lbGluZXNzIHRoYXQgYWxsIG1hcnZlbGxlZCBhdCBoaW0gYXMgaGUgd2VudCBieSwgYW5kIHdoZW4gaGUgdG9vayBoaXMgcGxhY2UnIGluIGhpcyBmYXRoZXIncyBzZWF0IGV2ZW4gdGhlIG9sZGVzdCBjb3VuY2lsbG9ycyBtYWRlIHdheSBmb3IgaGltLg0KDQpBZWd5cHRpdXMsIGEgbWFuIGJlbnQgZG91YmxlIHdpdGggYWdlLCBhbmQgb2YgaW5maW5pdGUgZXhwZXJpZW5jZSwgdGhlIGZpcnN0IHRvIHNwZWFrIEhpcyBzb24gQW50aXBodXMgaGFkIGdvbmUgd2l0aCBVbHlzc2VzIHRvIElsaXVzLCBsYW5kIG9mIG5vYmxlIHN0ZWVkcywgYnV0IHRoZSBzYXZhZ2UgQ3ljbG9wcyBoYWQga2lsbGVkIGhpbSB3aGVuIHRoZXkgd2VyZSBhbGwgc2h1dCB1cCBpbiB0aGUgY2F2ZSwgYW5kIGhhZCBjb29rZWQgaGlzIGxhc3QgZGlubmVyIGZvciBoaW0sIEhlIGhhZCB0aHJlZSBzb25zIGxlZnQsIG9mIHdob20gdHdvIHN0aWxsIHdvcmtlZCBvbiB0aGVpciBmYXRoZXIncyBsYW5kLCB3aGlsZSB0aGUgdGhpcmQsIEV1cnlub211cywgd2FzIG9uZSBvZiB0aGUgc3VpdG9yczsgbmV2ZXJ0aGVsZXNzIHRoZWlyIGZhdGhlciBjb3VsZCBub3QgZ2V0IG92ZXIgdGhlIGxvc3Mgb2YgQW50aXBodXMsIGFuZCB3YXMgc3RpbGwgd2VlcGluZyBmb3IgaGltIHdoZW4gaGUgYmVnYW4gaGlzIHNwZWVjaC4NCg0KIk1lbiBvZiBJdGhhY2EsIiBoZSBzYWlkLCAiaGVhciBteSB3b3Jkcy4gRnJvbSB0aGUgZGF5IFVseXNzZXMgbGVmdCB1cyB0aGVyZSBoYXMgYmVlbiBubyBtZWV0aW5nIG9mIG91ciBjb3VuY2lsbG9ycyB1bnRpbCBub3c7IHdobyB0aGVuIGNhbiBpdCBiZSwgd2hldGhlciBvbGQgb3IgeW91bmcsIHRoYXQgZmluZHMgaXQgc28gbmVjZXNzYXJ5IHRvIGNvbnZlbmUgdXM/IEhhcyBoZSBnb3Qgd2luZCBvZiBzb21lIGhvc3QgYXBwcm9hY2hpbmcsIGFuZCBkb2VzIGhlIHdpc2ggdG8gd2FybiB1cywgb3Igd291bGQgaGUgc3BlYWsgdXBvbiBzb21lIG90aGVyIG1hdHRlciBvZiBwdWJsaWMgbW9tZW50PyBJIGFtIHN1cmUgaGUgaXMgYW4gZXhjZWxsZW50IHBlcnNvbiwgYW5kIEkgaG9wZSBKb3ZlIHdpbGwgZ3JhbnQgaGltIGhpcyBoZWFydCdzIGRlc2lyZS4iDQoNClRlbGVtYWNodXMgdG9vayB0aGlzIHNwZWVjaCBhcyBvZiBnb29kIG9tZW4gYW5kIHJvc2UgYXQgb25jZSwgZm9yIGhlIHdhcyBidXJzdGluZyB3aXRoIHdoYXQgaGUgaGFkIHRvIHNheS4gSGUgc3Rvb2QgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYXNzZW1ibHkgYW5kIHRoZSBnb29kIGhlcmFsZCBQaXNlbm9yIGJyb3VnaHQgaGltIGhpcyBzdGFmZi4gVGhlbiwgdHVybmluZyB0byBBZWd5cHRpdXMsICJTaXIsIiBzYWlkIGhlLCAiaXQgaXMgSSwgYXMgeW91IHdpbGwgc2hvcnRseSBsZWFybiwgd2hvIGhhdmUgY29udmVuZWQgeW91LCBmb3IgaXQgaXMgSSB3aG8gYW0gdGhlIG1vc3QgYWdncmlldmVkLiBJIGhhdmUgbm90IGdvdCB3aW5kIG9mIGFueSBob3N0IGFwcHJvYWNoaW5nIGFib3V0IHdoaWNoIEkgd291bGQgd2FybiB5b3UsIG5vciBpcyB0aGVyZSBhbnkgbWF0dGVyIG9mIHB1YmxpYyBtb21lbnQgb24gd2hpY2ggSSB3b3VsZCBzcGVhay4gTXkgZ3JpZXZlYW5jZSBpcyBwdXJlbHkgcGVyc29uYWwsIGFuZCB0dXJucyBvbiB0d28gZ3JlYXQgbWlzZm9ydHVuZXMgd2hpY2ggaGF2ZSBmYWxsZW4gdXBvbiBteSBob3VzZS4gVGhlIGZpcnN0IG9mIHRoZXNlIGlzIHRoZSBsb3NzIG9mIG15IGV4Y2VsbGVudCBmYXRoZXIsIHdobyB3YXMgY2hpZWYgYW1vbmcgYWxsIHlvdSBoZXJlIHByZXNlbnQsIGFuZCB3YXMgbGlrZSBhIGZhdGhlciB0byBldmVyeSBvbmUgb2YgeW91OyB0aGUgc2Vjb25kIGlzIG11Y2ggbW9yZSBzZXJpb3VzLCBhbmQgZXJlIGxvbmcgd2lsbCBiZSB0aGUgdXR0ZXIgcnVpbiBvZiBteSBlc3RhdGUuIFRoZSBzb25zIG9mIGFsbCB0aGUgY2hpZWYgbWVuIGFtb25nIHlvdSBhcmUgcGVzdGVyaW5nIG15IG1vdGhlciB0byBtYXJyeSB0aGVtIGFnYWluc3QgaGVyIHdpbGwuIFRoZXkgYXJlIGFmcmFpZCB0byBnbyB0byBoZXIgZmF0aGVyIEljYXJpdXMsIGFza2luZyBoaW0gdG8gY2hvb3NlIHRoZSBvbmUgaGUgbGlrZXMgYmVzdCwgYW5kIHRvIHByb3ZpZGUgbWFycmlhZ2UgZ2lmdHMgZm9yIGhpcyBkYXVnaHRlciwgYnV0IGRheSBieSBkYXkgdGhleSBrZWVwIGhhbmdpbmcgYWJvdXQgbXkgZmF0aGVyJ3MgaG91c2UsIHNhY3JpZmljaW5nIG91ciBveGVuLCBzaGVlcCwgYW5kIGZhdCBnb2F0cyBmb3IgdGhlaXIgYmFucXVldHMsIGFuZCBuZXZlciBnaXZpbmcgc28gbXVjaCBhcyBhIHRob3VnaHQgdG8gdGhlIHF1YW50aXR5IG9mIHdpbmUgdGhleSBkcmluay4gTm8gZXN0YXRlIGNhbiBzdGFuZCBzdWNoIHJlY2tsZXNzbmVzczsgd2UgaGF2ZSBub3cgbm8gVWx5c3NlcyB0byB3YXJkIG9mZiBoYXJtIGZyb20gb3VyIGRvb3JzLCBhbmQgSSBjYW5ub3QgaG9sZCBteSBvd24gYWdhaW5zdCB0aGVtLiBJIHNoYWxsIG5ldmVyIGFsbCBteSBkYXlzIGJlIGFzIGdvb2QgYSBtYW4gYXMgaGUgd2FzLCBzdGlsbCBJIHdvdWxkIGluZGVlZCBkZWZlbmQgbXlzZWxmIGlmIEkgaGFkIHBvd2VyIHRvIGRvIHNvLCBmb3IgSSBjYW5ub3Qgc3RhbmQgc3VjaCB0cmVhdG1lbnQgYW55IGxvbmdlcjsgbXkgaG91c2UgaXMgYmVpbmcgZGlzZ3JhY2VkIGFuZCBydWluZWQuIEhhdmUgcmVzcGVjdCwgdGhlcmVmb3JlLCB0byB5b3VyIG93biBjb25zY2llbmNlcyBhbmQgdG8gcHVibGljIG9waW5pb24uIEZlYXIsIHRvbywgdGhlIHdyYXRoIG9mIGhlYXZlbiwgbGVzdCB0aGUgZ29kcyBzaG91bGQgYmUgZGlzcGxlYXNlZCBhbmQgdHVybiB1cG9uIHlvdS4gSSBwcmF5IHlvdSBieSBKb3ZlIGFuZCBUaGVtaXMsIHdobyBpcyB0aGUgYmVnaW5uaW5nIGFuZCB0aGUgZW5kIG9mIGNvdW5jaWxzLCBbZG8gbm90XSBob2xkIGJhY2ssIG15IGZyaWVuZHMsIGFuZCBsZWF2ZSBtZSBzaW5nbGVoYW5kZWQtIHVubGVzcyBpdCBiZSB0aGF0IG15IGJyYXZlIGZhdGhlciBVbHlzc2VzIGRpZCBzb21lIHdyb25nIHRvIHRoZSBBY2hhZWFucyB3aGljaCB5b3Ugd291bGQgbm93IGF2ZW5nZSBvbiBtZSwgYnkgYWlkaW5nIGFuZCBhYmV0dGluZyB0aGVzZSBzdWl0b3JzLiBNb3Jlb3ZlciwgaWYgSSBhbSB0byBiZSBlYXRlbiBvdXQgb2YgaG91c2UgYW5kIGhvbWUgYXQgYWxsLCBJIGhhZCByYXRoZXIgeW91IGRpZCB0aGUgZWF0aW5nIHlvdXJzZWx2ZXMsIGZvciBJIGNvdWxkIHRoZW4gdGFrZSBhY3Rpb24gYWdhaW5zdCB5b3UgdG8gc29tZSBwdXJwb3NlLCBhbmQgc2VydmUgeW91IHdpdGggbm90aWNlcyBmcm9tIGhvdXNlIHRvIGhvdXNlIHRpbGwgSSBnb3QgcGFpZCBpbiBmdWxsLCB3aGVyZWFzIG5vdyBJIGhhdmUgbm8gcmVtZWR5LiINCg0KV2l0aCB0aGlzIFRlbGVtYWNodXMgZGFzaGVkIGhpcyBzdGFmZiB0byB0aGUgZ3JvdW5kIGFuZCBidXJzdCBpbnRvIHRlYXJzLiBFdmVyeSBvbmUgd2FzIHZlcnkgc29ycnkgZm9yIGhpbSwgYnV0IHRoZXkgYWxsIHNhdCBzdGlsbCBhbmQgbm8gb25lIHZlbnR1cmVkIHRvIG1ha2UgaGltIGFuIGFuZ3J5IGFuc3dlciwgc2F2ZSBvbmx5IEFudGlub3VzLCB3aG8gc3Bva2UgdGh1czoNCg0KIlRlbGVtYWNodXMsIGluc29sZW50IGJyYWdnYXJ0IHRoYXQgeW91IGFyZSwgaG93IGRhcmUgeW91IHRyeSB0byB0aHJvdyB0aGUgYmxhbWUgdXBvbiB1cyBzdWl0b3JzPyBJdCBpcyB5b3VyIG1vdGhlcidzIGZhdWx0IG5vdCBvdXJzLCBmb3Igc2hlIGlzIGEgdmVyeSBhcnRmdWwgd29tYW4uIFRoaXMgdGhyZWUgeWVhcnMgcGFzdCwgYW5kIGNsb3NlIG9uIGZvdXIsIHNoZSBoYXMgYmVlbiBkcml2aW5nIHVzIG91dCBvZiBvdXIgbWluZHMsIGJ5IGVuY291cmFnaW5nIGVhY2ggb25lIG9mIHVzLCBhbmQgc2VuZGluZyBoaW0gbWVzc2FnZXMgd2l0aG91dCBtZWFuaW5nIG9uZSB3b3JkIG9mIHdoYXQgc2hlIHNheXMuIEFuZCB0aGVuIHRoZXJlIHdhcyB0aGF0IG90aGVyIHRyaWNrIHNoZSBwbGF5ZWQgdXMuIFNoZSBzZXQgdXAgYSBncmVhdCB0YW1ib3VyIGZyYW1lIGluIGhlciByb29tLCBhbmQgYmVnYW4gdG8gd29yayBvbiBhbiBlbm9ybW91cyBwaWVjZSBvZiBmaW5lIG5lZWRsZXdvcmsuICdTd2VldCBoZWFydHMsJyBzYWlkIHNoZSwgJ1VseXNzZXMgaXMgaW5kZWVkIGRlYWQsIHN0aWxsIGRvIG5vdCBwcmVzcyBtZSB0byBtYXJyeSBhZ2FpbiBpbW1lZGlhdGVseSwgd2FpdC0gZm9yIEkgd291bGQgbm90IGhhdmUgc2tpbGwgaW4gbmVlZGxld29yayBwZXJpc2ggdW5yZWNvcmRlZC0gdGlsbCBJIGhhdmUgY29tcGxldGVkIGEgcGFsbCBmb3IgdGhlIGhlcm8gTGFlcnRlcywgdG8gYmUgaW4gcmVhZGluZXNzIGFnYWluc3QgdGhlIHRpbWUgd2hlbiBkZWF0aCBzaGFsbCB0YWtlIGhpbS4gSGUgaXMgdmVyeSByaWNoLCBhbmQgdGhlIHdvbWVuIG9mIHRoZSBwbGFjZSB3aWxsIHRhbGsgaWYgaGUgaXMgbGFpZCBvdXQgd2l0aG91dCBhIHBhbGwuJw0KDQoiVGhpcyB3YXMgd2hhdCBzaGUgc2FpZCwgYW5kIHdlIGFzc2VudGVkOyB3aGVyZW9uIHdlIGNvdWxkIHNlZSBoZXIgd29ya2luZyBvbiBoZXIgZ3JlYXQgd2ViIGFsbCBkYXkgbG9uZywgYnV0IGF0IG5pZ2h0IHNoZSB3b3VsZCB1bnBpY2sgdGhlIHN0aXRjaGVzIGFnYWluIGJ5IHRvcmNobGlnaHQuIFNoZSBmb29sZWQgdXMgaW4gdGhpcyB3YXkgZm9yIHRocmVlIHllYXJzIGFuZCB3ZSBuZXZlciBmb3VuZCBoZXIgb3V0LCBidXQgYXMgdGltZSB3b3JlIG9uIGFuZCBzaGUgd2FzIG5vdyBpbiBoZXIgZm91cnRoIHllYXIsIG9uZSBvZiBoZXIgbWFpZHMgd2hvIGtuZXcgd2hhdCBzaGUgd2FzIGRvaW5nIHRvbGQgdXMsIGFuZCB3ZSBjYXVnaHQgaGVyIGluIHRoZSBhY3Qgb2YgdW5kb2luZyBoZXIgd29yaywgc28gc2hlIGhhZCB0byBmaW5pc2ggaXQgd2hldGhlciBzaGUgd291bGQgb3Igbm8uIFRoZSBzdWl0b3JzLCB0aGVyZWZvcmUsIG1ha2UgeW91IHRoaXMgYW5zd2VyLCB0aGF0IGJvdGggeW91IGFuZCB0aGUgQWNoYWVhbnMgbWF5IHVuZGVyc3RhbmQtJ1NlbmQgeW91ciBtb3RoZXIgYXdheSwgYW5kIGJpZCBoZXIgbWFycnkgdGhlIG1hbiBvZiBoZXIgb3duIGFuZCBvZiBoZXIgZmF0aGVyJ3MgY2hvaWNlJzsgZm9yIEkgZG8gbm90IGtub3cgd2hhdCB3aWxsIGhhcHBlbiBpZiBzaGUgZ29lcyBvbiBwbGFndWluZyB1cyBtdWNoIGxvbmdlciB3aXRoIHRoZSBhaXJzIHNoZSBnaXZlcyBoZXJzZWxmIG9uIHRoZSBzY29yZSBvZiB0aGUgYWNjb21wbGlzaG1lbnRzIE1pbmVydmEgaGFzIHRhdWdodCBoZXIsIGFuZCBiZWNhdXNlIHNoZSBpcyBzbyBjbGV2ZXIuIFdlIG5ldmVyIHlldCBoZWFyZCBvZiBzdWNoIGEgd29tYW47IHdlIGtub3cgYWxsIGFib3V0IFR5cm8sIEFsY21lbmEsIE15Y2VuZSwgYW5kIHRoZSBmYW1vdXMgd29tZW4gb2Ygb2xkLCBidXQgdGhleSB3ZXJlIG5vdGhpbmcgdG8geW91ciBtb3RoZXIsIGFueSBvbmUgb2YgdGhlbS4gSXQgd2FzIG5vdCBmYWlyIG9mIGhlciB0byB0cmVhdCB1cyBpbiB0aGF0IHdheSwgYW5kIGFzIGxvbmcgYXMgc2hlIGNvbnRpbnVlcyBpbiB0aGUgbWluZCB3aXRoIHdoaWNoIGhlYXZlbiBoYXMgbm93IGVuZG93ZWQgaGVyLCBzbyBsb25nIHNoYWxsIHdlIGdvIG9uIGVhdGluZyB1cCB5b3VyIGVzdGF0ZTsgYW5kIEkgZG8gbm90IHNlZSB3aHkgc2hlIHNob3VsZCBjaGFuZ2UsIGZvciBzaGUgZ2V0cyBhbGwgdGhlIGhvbm91ciBhbmQgZ2xvcnksIGFuZCBpdCBpcyB5b3Ugd2hvIHBheSBmb3IgaXQsIG5vdCBzaGUuIFVuZGVyc3RhbmQsIHRoZW4sIHRoYXQgd2Ugd2lsbCBub3QgZ28gYmFjayB0byBvdXIgbGFuZHMsIG5laXRoZXIgaGVyZSBub3IgZWxzZXdoZXJlLCB0aWxsIHNoZSBoYXMgbWFkZSBoZXIgY2hvaWNlIGFuZCBtYXJyaWVkIHNvbWUgb25lIG9yIG90aGVyIG9mIHVzLiINCg0KVGVsZW1hY2h1cyBhbnN3ZXJlZCwgIkFudGlub3VzLCBob3cgY2FuIEkgZHJpdmUgdGhlIG1vdGhlciB3aG8gYm9yZSBtZSBmcm9tIG15IGZhdGhlcidzIGhvdXNlPyBNeSBmYXRoZXIgaXMgYWJyb2FkIGFuZCB3ZSBkbyBub3Qga25vdyB3aGV0aGVyIGhlIGlzIGFsaXZlIG9yIGRlYWQuIEl0IHdpbGwgYmUgaGFyZCBvbiBtZSBpZiBJIGhhdmUgdG8gcGF5IEljYXJpdXMgdGhlIGxhcmdlIHN1bSB3aGljaCBJIG11c3QgZ2l2ZSBoaW0gaWYgSSBpbnNpc3Qgb24gc2VuZGluZyBoaXMgZGF1Z2h0ZXIgYmFjayB0byBoaW0uIE5vdCBvbmx5IHdpbGwgaGUgZGVhbCByaWdvcm91c2x5IHdpdGggbWUsIGJ1dCBoZWF2ZW4gd2lsbCBhbHNvIHB1bmlzaCBtZTsgZm9yIG15IG1vdGhlciB3aGVuIHNoZSBsZWF2ZXMgdGhlIGhvdXNlIHdpbGwgY2FsZiBvbiB0aGUgRXJpbnllcyB0byBhdmVuZ2UgaGVyOyBiZXNpZGVzLCBpdCB3b3VsZCBub3QgYmUgYSBjcmVkaXRhYmxlIHRoaW5nIHRvIGRvLCBhbmQgSSB3aWxsIGhhdmUgbm90aGluZyB0byBzYXkgdG8gaXQuIElmIHlvdSBjaG9vc2UgdG8gdGFrZSBvZmZlbmNlIGF0IHRoaXMsIGxlYXZlIHRoZSBob3VzZSBhbmQgZmVhc3QgZWxzZXdoZXJlIGF0IG9uZSBhbm90aGVyJ3MgaG91c2VzIGF0IHlvdXIgb3duIGNvc3QgdHVybiBhbmQgdHVybiBhYm91dC4gSWYsIG9uIHRoZSBvdGhlciBoYW5kLCB5b3UgZWxlY3QgdG8gcGVyc2lzdCBpbiBzcHVuZ2luZyB1cG9uIG9uZSBtYW4sIGhlYXZlbiBoZWxwIG1lLCBidXQgSm92ZSBzaGFsbCByZWNrb24gd2l0aCB5b3UgaW4gZnVsbCwgYW5kIHdoZW4geW91IGZhbGwgaW4gbXkgZmF0aGVyJ3MgaG91c2UgdGhlcmUgc2hhbGwgYmUgbm8gbWFuIHRvIGF2ZW5nZSB5b3UuIg0KDQpBcyBoZSBzcG9rZSBKb3ZlIHNlbnQgdHdvIGVhZ2xlcyBmcm9tIHRoZSB0b3Agb2YgdGhlIG1vdW50YWluLCBhbmQgdGhleSBmbGV3IG9uIGFuZCBvbiB3aXRoIHRoZSB3aW5kLCBzYWlsaW5nIHNpZGUgYnkgc2lkZSBpbiB0aGVpciBvd24gbG9yZGx5IGZsaWdodC4gV2hlbiB0aGV5IHdlcmUgcmlnaHQgb3ZlciB0aGUgbWlkZGxlIG9mIHRoZSBhc3NlbWJseSB0aGV5IHdoZWVsZWQgYW5kIGNpcmNsZWQgYWJvdXQsIGJlYXRpbmcgdGhlIGFpciB3aXRoIHRoZWlyIHdpbmdzIGFuZCBnbGFyaW5nIGRlYXRoIGludG8gdGhlIGV5ZXMgb2YgdGhlbSB0aGF0IHdlcmUgYmVsb3c7IHRoZW4sIGZpZ2h0aW5nIGZpZXJjZWx5IGFuZCB0ZWFyaW5nIGF0IG9uZSBhbm90aGVyLCB0aGV5IGZsZXcgb2ZmIHRvd2FyZHMgdGhlIHJpZ2h0IG92ZXIgdGhlIHRvd24uIFRoZSBwZW9wbGUgd29uZGVyZWQgYXMgdGhleSBzYXcgdGhlbSwgYW5kIGFza2VkIGVhY2ggb3RoZXIgd2hhdCBhbiB0aGlzIG1pZ2h0IGJlOyB3aGVyZW9uIEhhbGl0aGVyc2VzLCB3aG8gd2FzIHRoZSBiZXN0IHByb3BoZXQgYW5kIHJlYWRlciBvZiBvbWVucyBhbW9uZyB0aGVtLCBzcG9rZSB0byB0aGVtIHBsYWlubHkgYW5kIGluIGFsbCBob25lc3R5LCBzYXlpbmc6DQoNCiJIZWFyIG1lLCBtZW4gb2YgSXRoYWNhLCBhbmQgSSBzcGVhayBtb3JlIHBhcnRpY3VsYXJseSB0byB0aGUgc3VpdG9ycywgZm9yIEkgc2VlIG1pc2NoaWVmIGJyZXdpbmcgZm9yIHRoZW0uIFVseXNzZXMgaXMgbm90IGdvaW5nIHRvIGJlIGF3YXkgbXVjaCBsb25nZXI7IGluZGVlZCBoZSBpcyBjbG9zZSBhdCBoYW5kIHRvIGRlYWwgb3V0IGRlYXRoIGFuZCBkZXN0cnVjdGlvbiwgbm90IG9uIHRoZW0gYWxvbmUsIGJ1dCBvbiBtYW55IGFub3RoZXIgb2YgdXMgd2hvIGxpdmUgaW4gSXRoYWNhLiBMZXQgdXMgdGhlbiBiZSB3aXNlIGluIHRpbWUsIGFuZCBwdXQgYSBzdG9wIHRvIHRoaXMgd2lja2VkbmVzcyBiZWZvcmUgaGUgY29tZXMuIExldCB0aGUgc3VpdG9ycyBkbyBzbyBvZiB0aGVpciBvd24gYWNjb3JkOyBpdCB3aWxsIGJlIGJldHRlciBmb3IgdGhlbSwgZm9yIEkgYW0gbm90IHByb3BoZXN5aW5nIHdpdGhvdXQgZHVlIGtub3dsZWRnZTsgZXZlcnl0aGluZyBoYXMgaGFwcGVuZWQgdG8gVWx5c3NlcyBhcyBJIGZvcmV0b2xkIHdoZW4gdGhlIEFyZ2l2ZXMgc2V0IG91dCBmb3IgVHJveSwgYW5kIGhlIHdpdGggdGhlbS4gSSBzYWlkIHRoYXQgYWZ0ZXIgZ29pbmcgdGhyb3VnaCBtdWNoIGhhcmRzaGlwIGFuZCBsb3NpbmcgYWxsIGhpcyBtZW4gaGUgc2hvdWxkIGNvbWUgaG9tZSBhZ2FpbiBpbiB0aGUgdHdlbnRpZXRoIHllYXIgYW5kIHRoYXQgbm8gb25lIHdvdWxkIGtub3cgaGltOyBhbmQgbm93IGFsbCB0aGlzIGlzIGNvbWluZyB0cnVlLiINCg0KRXVyeW1hY2h1cyBzb24gb2YgUG9seWJ1cyB0aGVuIHNhaWQsICJHbyBob21lLCBvbGQgbWFuLCBhbmQgcHJvcGhlc3kgdG8geW91ciBvd24gY2hpbGRyZW4sIG9yIGl0IG1heSBiZSB3b3JzZSBmb3IgdGhlbS4gSSBjYW4gcmVhZCB0aGVzZSBvbWVucyBteXNlbGYgbXVjaCBiZXR0ZXIgdGhhbiB5b3UgY2FuOyBiaXJkcyBhcmUgYWx3YXlzIGZseWluZyBhYm91dCBpbiB0aGUgc3Vuc2hpbmUgc29tZXdoZXJlIG9yIG90aGVyLCBidXQgdGhleSBzZWxkb20gbWVhbiBhbnl0aGluZy4gVWx5c3NlcyBoYXMgZGllZCBpbiBhIGZhciBjb3VudHJ5LCBhbmQgaXQgaXMgYSBwaXR5IHlvdSBhcmUgbm90IGRlYWQgYWxvbmcgd2l0aCBoaW0sIGluc3RlYWQgb2YgcHJhdGluZyBoZXJlIGFib3V0IG9tZW5zIGFuZCBhZGRpbmcgZnVlbCB0byB0aGUgYW5nZXIgb2YgVGVsZW1hY2h1cyB3aGljaCBpcyBmaWVyY2UgZW5vdWdoIGFzIGl0IGlzLiBJIHN1cHBvc2UgeW91IHRoaW5rIGhlIHdpbGwgZ2l2ZSB5b3Ugc29tZXRoaW5nIGZvciB5b3VyIGZhbWlseSwgYnV0IEkgdGVsbCB5b3UtIGFuZCBpdCBzaGFsbCBzdXJlbHkgYmUtIHdoZW4gYW4gb2xkIG1hbiBsaWtlIHlvdSwgd2hvIHNob3VsZCBrbm93IGJldHRlciwgdGFsa3MgYSB5b3VuZyBvbmUgb3ZlciB0aWxsIGhlIGJlY29tZXMgdHJvdWJsZXNvbWUsIGluIHRoZSBmaXJzdCBwbGFjZSBoaXMgeW91bmcgZnJpZW5kIHdpbGwgb25seSBmYXJlIHNvIG11Y2ggdGhlIHdvcnNlLSBoZSB3aWxsIHRha2Ugbm90aGluZyBieSBpdCwgZm9yIHRoZSBzdWl0b3JzIHdpbGwgcHJldmVudCB0aGlzLSBhbmQgaW4gdGhlIG5leHQsIHdlIHdpbGwgbGF5IGEgaGVhdmllciBmaW5lLCBzaXIsIHVwb24geW91cnNlbGYgdGhhbiB5b3Ugd2lsbCBhdCBhbGwgbGlrZSBwYXlpbmcsIGZvciBpdCB3aWxsIGJlYXIgaGFyZGx5IHVwb24geW91LiBBcyBmb3IgVGVsZW1hY2h1cywgSSB3YXJuIGhpbSBpbiB0aGUgcHJlc2VuY2Ugb2YgeW91IGFsbCB0byBzZW5kIGhpcyBtb3RoZXIgYmFjayB0byBoZXIgZmF0aGVyLCB3aG8gd2lsbCBmaW5kIGhlciBhIGh1c2JhbmQgYW5kIHByb3ZpZGUgaGVyIHdpdGggYWxsIHRoZSBtYXJyaWFnZSBnaWZ0cyBzbyBkZWFyIGEgZGF1Z2h0ZXIgbWF5IGV4cGVjdC4gVGlsbCB3ZSBzaGFsbCBnbyBvbiBoYXJhc3NpbmcgaGltIHdpdGggb3VyIHN1aXQ7IGZvciB3ZSBmZWFyIG5vIG1hbiwgYW5kIGNhcmUgbmVpdGhlciBmb3IgaGltLCB3aXRoIGFsbCBoaXMgZmluZSBzcGVlY2hlcywgbm9yIGZvciBhbnkgZm9ydHVuZS10ZWxsaW5nIG9mIHlvdXJzLiBZb3UgbWF5IHByZWFjaCBhcyBtdWNoIGFzIHlvdSBwbGVhc2UsIGJ1dCB3ZSBzaGFsbCBvbmx5IGhhdGUgeW91IHRoZSBtb3JlLiBXZSBzaGFsbCBnbyBiYWNrIGFuZCBjb250aW51ZSB0byBlYXQgdXAgVGVsZW1hY2h1cydzIGVzdGF0ZSB3aXRob3V0IHBheWluZyBoaW0sIHRpbGwgc3VjaCB0aW1lIGFzIGhpcyBtb3RoZXIgbGVhdmVzIG9mZiB0b3JtZW50aW5nIHVzIGJ5IGtlZXBpbmcgdXMgZGF5IGFmdGVyIGRheSBvbiB0aGUgdGlwdG9lIG9mIGV4cGVjdGF0aW9uLCBlYWNoIHZ5aW5nIHdpdGggdGhlIG90aGVyIGluIGhpcyBzdWl0IGZvciBhIHByaXplIG9mIHN1Y2ggcmFyZSBwZXJmZWN0aW9uLiBCZXNpZGVzIHdlIGNhbm5vdCBnbyBhZnRlciB0aGUgb3RoZXIgd29tZW4gd2hvbSB3ZSBzaG91bGQgbWFycnkgaW4gZHVlIGNvdXJzZSwgYnV0IGZvciB0aGUgd2F5IGluIHdoaWNoIHNoZSB0cmVhdHMgdXMuIg0KDQpUaGVuIFRlbGVtYWNodXMgc2FpZCwgIkV1cnltYWNodXMsIGFuZCB5b3Ugb3RoZXIgc3VpdG9ycywgSSBzaGFsbCBzYXkgbm8gbW9yZSwgYW5kIGVudHJlYXQgeW91IG5vIGZ1cnRoZXIsIGZvciB0aGUgZ29kcyBhbmQgdGhlIHBlb3BsZSBvZiBJdGhhY2Egbm93IGtub3cgbXkgc3RvcnkuIEdpdmUgbWUsIHRoZW4sIGEgc2hpcCBhbmQgYSBjcmV3IG9mIHR3ZW50eSBtZW4gdG8gdGFrZSBtZSBoaXRoZXIgYW5kIHRoaXRoZXIsIGFuZCBJIHdpbGwgZ28gdG8gU3BhcnRhIGFuZCB0byBQeWxvcyBpbiBxdWVzdCBvZiBteSBmYXRoZXIgd2hvIGhhcyBzbyBsb25nIGJlZW4gbWlzc2luZy4gU29tZSBvbmUgbWF5IHRlbGwgbWUgc29tZXRoaW5nLCBvciAoYW5kIHBlb3BsZSBvZnRlbiBoZWFyIHRoaW5ncyBpbiB0aGlzIHdheSkgc29tZSBoZWF2ZW4tc2VudCBtZXNzYWdlIG1heSBkaXJlY3QgbWUuIElmIEkgY2FuIGhlYXIgb2YgaGltIGFzIGFsaXZlIGFuZCBvbiBoaXMgd2F5IGhvbWUgSSB3aWxsIHB1dCB1cCB3aXRoIHRoZSB3YXN0ZSB5b3Ugc3VpdG9ycyB3aWxsIG1ha2UgZm9yIHlldCBhbm90aGVyIHR3ZWx2ZSBtb250aHMuIElmIG9uIHRoZSBvdGhlciBoYW5kIEkgaGVhciBvZiBoaXMgZGVhdGgsIEkgd2lsbCByZXR1cm4gYXQgb25jZSwgY2VsZWJyYXRlIGhpcyBmdW5lcmFsIHJpdGVzIHdpdGggYWxsIGR1ZSBwb21wLCBidWlsZCBhIGJhcnJvdyB0byBoaXMgbWVtb3J5LCBhbmQgbWFrZSBteSBtb3RoZXIgbWFycnkgYWdhaW4uIg0KDQpXaXRoIHRoZXNlIHdvcmRzIGhlIHNhdCBkb3duLCBhbmQgTWVudG9yIHdobyBoYWQgYmVlbiBhIGZyaWVuZCBvZiBVbHlzc2VzLCBhbmQgaGFkIGJlZW4gbGVmdCBpbiBjaGFyZ2Ugb2YgZXZlcnl0aGluZyB3aXRoIGZ1bGwgYXV0aG9yaXR5IG92ZXIgdGhlIHNlcnZhbnRzLCByb3NlIHRvIHNwZWFrLiBIZSwgdGhlbiwgcGxhaW5seSBhbmQgaW4gYWxsIGhvbmVzdHkgYWRkcmVzc2VkIHRoZW0gdGh1czoNCg0KIkhlYXIgbWUsIG1lbiBvZiBJdGhhY2EsIEkgaG9wZSB0aGF0IHlvdSBtYXkgbmV2ZXIgaGF2ZSBhIGtpbmQgYW5kIHdlbGwtZGlzcG9zZWQgcnVsZXIgYW55IG1vcmUsIG5vciBvbmUgd2hvIHdpbGwgZ292ZXJuIHlvdSBlcXVpdGFibHk7IEkgaG9wZSB0aGF0IGFsbCB5b3VyIGNoaWVmcyBoZW5jZWZvcndhcmQgbWF5IGJlIGNydWVsIGFuZCB1bmp1c3QsIGZvciB0aGVyZSBpcyBub3Qgb25lIG9mIHlvdSBidXQgaGFzIGZvcmdvdHRlbiBVbHlzc2VzLCB3aG8gcnVsZWQgeW91IGFzIHRob3VnaCBoZSB3ZXJlIHlvdXIgZmF0aGVyLiBJIGFtIG5vdCBoYWxmIHNvIGFuZ3J5IHdpdGggdGhlIHN1aXRvcnMsIGZvciBpZiB0aGV5IGNob29zZSB0byBkbyB2aW9sZW5jZSBpbiB0aGUgbmF1Z2h0aW5lc3Mgb2YgdGhlaXIgaGVhcnRzLCBhbmQgd2FnZXIgdGhlaXIgaGVhZHMgdGhhdCBVbHlzc2VzIHdpbGwgbm90IHJldHVybiwgdGhleSBjYW4gdGFrZSB0aGUgaGlnaCBoYW5kIGFuZCBlYXQgdXAgaGlzIGVzdGF0ZSwgYnV0IGFzIGZvciB5b3Ugb3RoZXJzIEkgYW0gc2hvY2tlZCBhdCB0aGUgd2F5IGluIHdoaWNoIHlvdSBhbGwgc2l0IHN0aWxsIHdpdGhvdXQgZXZlbiB0cnlpbmcgdG8gc3RvcCBzdWNoIHNjYW5kYWxvdXMgZ29pbmdzIG9uLXdoaWNoIHlvdSBjb3VsZCBkbyBpZiB5b3UgY2hvc2UsIGZvciB5b3UgYXJlIG1hbnkgYW5kIHRoZXkgYXJlIGZldy4iDQoNCkxlaW9jcml0dXMsIHNvbiBvZiBFdmVub3IsIGFuc3dlcmVkIGhpbSBzYXlpbmcsICJNZW50b3IsIHdoYXQgZm9sbHkgaXMgYWxsIHRoaXMsIHRoYXQgeW91IHNob3VsZCBzZXQgdGhlIHBlb3BsZSB0byBzdGF5IHVzPyBJdCBpcyBhIGhhcmQgdGhpbmcgZm9yIG9uZSBtYW4gdG8gZmlnaHQgd2l0aCBtYW55IGFib3V0IGhpcyB2aWN0dWFscy4gRXZlbiB0aG91Z2ggVWx5c3NlcyBoaW1zZWxmIHdlcmUgdG8gc2V0IHVwb24gdXMgd2hpbGUgd2UgYXJlIGZlYXN0aW5nIGluIGhpcyBob3VzZSwgYW5kIGRvIGhpcyBiZXN0IHRvIG91c3QgdXMsIGhpcyB3aWZlLCB3aG8gd2FudHMgaGltIGJhY2sgc28gdmVyeSBiYWRseSwgd291bGQgaGF2ZSBzbWFsbCBjYXVzZSBmb3IgcmVqb2ljaW5nLCBhbmQgaGlzIGJsb29kIHdvdWxkIGJlIHVwb24gaGlzIG93biBoZWFkIGlmIGhlIGZvdWdodCBhZ2FpbnN0IHN1Y2ggZ3JlYXQgb2Rkcy4gVGhlcmUgaXMgbm8gc2Vuc2UgaW4gd2hhdCB5b3UgaGF2ZSBiZWVuIHNheWluZy4gTm93LCB0aGVyZWZvcmUsIGRvIHlvdSBwZW9wbGUgZ28gYWJvdXQgeW91ciBidXNpbmVzcywgYW5kIGxldCBoaXMgZmF0aGVyJ3Mgb2xkIGZyaWVuZHMsIE1lbnRvciBhbmQgSGFsaXRoZXJzZXMsIHNwZWVkIHRoaXMgYm95IG9uIGhpcyBqb3VybmV5LCBpZiBoZSBnb2VzIGF0IGFsbC0gd2hpY2ggSSBkbyBub3QgdGhpbmsgaGUgd2lsbCwgZm9yIGhlIGlzIG1vcmUgbGlrZWx5IHRvIHN0YXkgd2hlcmUgaGUgaXMgdGlsbCBzb21lIG9uZSBjb21lcyBhbmQgdGVsbHMgaGltIHNvbWV0aGluZy4iDQoNCk9uIHRoaXMgaGUgYnJva2UgdXAgdGhlIGFzc2VtYmx5LCBhbmQgZXZlcnkgbWFuIHdlbnQgYmFjayB0byBoaXMgb3duIGFib2RlLCB3aGlsZSB0aGUgc3VpdG9ycyByZXR1cm5lZCB0byB0aGUgaG91c2Ugb2YgVWx5c3Nlcy4NCg0KVGhlbiBUZWxlbWFjaHVzIHdlbnQgYWxsIGFsb25lIGJ5IHRoZSBzZWEgc2lkZSwgd2FzaGVkIGhpcyBoYW5kcyBpbiB0aGUgZ3JleSB3YXZlcywgYW5kIHByYXllZCB0byBNaW5lcnZhLg0KDQoiSGVhciBtZSwiIGhlIGNyaWVkLCAieW91IGdvZCB3aG8gdmlzaXRlZCBtZSB5ZXN0ZXJkYXksIGFuZCBiYWRlIG1lIHNhaWwgdGhlIHNlYXMgaW4gc2VhcmNoIG9mIG15IGZhdGhlciB3aG8gaGFzIHNvIGxvbmcgYmVlbiBtaXNzaW5nLiBJIHdvdWxkIG9iZXkgeW91LCBidXQgdGhlIEFjaGFlYW5zLCBhbmQgbW9yZSBwYXJ0aWN1bGFybHkgdGhlIHdpY2tlZCBzdWl0b3JzLCBhcmUgaGluZGVyaW5nIG1lIHRoYXQgSSBjYW5ub3QgZG8gc28uIg0KDQpBcyBoZSB0aHVzIHByYXllZCwgTWluZXJ2YSBjYW1lIGNsb3NlIHVwIHRvIGhpbSBpbiB0aGUgbGlrZW5lc3MgYW5kIHdpdGggdGhlIHZvaWNlIG9mIE1lbnRvci4gIlRlbGVtYWNodXMsIiBzYWlkIHNoZSwgImlmIHlvdSBhcmUgbWFkZSBvZiB0aGUgc2FtZSBzdHVmZiBhcyB5b3VyIGZhdGhlciB5b3Ugd2lsbCBiZSBuZWl0aGVyIGZvb2wgbm9yIGNvd2FyZCBoZW5jZWZvcndhcmQsIGZvciBVbHlzc2VzIG5ldmVyIGJyb2tlIGhpcyB3b3JkIG5vciBsZWZ0IGhpcyB3b3JrIGhhbGYgZG9uZS4gSWYsIHRoZW4sIHlvdSB0YWtlIGFmdGVyIGhpbSwgeW91ciB2b3lhZ2Ugd2lsbCBub3QgYmUgZnJ1aXRsZXNzLCBidXQgdW5sZXNzIHlvdSBoYXZlIHRoZSBibG9vZCBvZiBVbHlzc2VzIGFuZCBvZiBQZW5lbG9wZSBpbiB5b3VyIHZlaW5zIEkgc2VlIG5vIGxpa2VsaWhvb2Qgb2YgeW91ciBzdWNjZWVkaW5nLiBTb25zIGFyZSBzZWxkb20gYXMgZ29vZCBtZW4gYXMgdGhlaXIgZmF0aGVyczsgdGhleSBhcmUgZ2VuZXJhbGx5IHdvcnNlLCBub3QgYmV0dGVyOyBzdGlsbCwgYXMgeW91IGFyZSBub3QgZ29pbmcgdG8gYmUgZWl0aGVyIGZvb2wgb3IgY293YXJkIGhlbmNlZm9yd2FyZCwgYW5kIGFyZSBub3QgZW50aXJlbHkgd2l0aG91dCBzb21lIHNoYXJlIG9mIHlvdXIgZmF0aGVyJ3Mgd2lzZSBkaXNjZXJubWVudCwgSSBsb29rIHdpdGggaG9wZSB1cG9uIHlvdXIgdW5kZXJ0YWtpbmcuIEJ1dCBtaW5kIHlvdSBuZXZlciBtYWtlIGNvbW1vbiBjYXVzZSB3aXRoIGFueSBvZiB0aG9zZSBmb29saXNoIHN1aXRvcnMsIGZvciB0aGV5IGhhdmUgbmVpdGhlciBzZW5zZSBub3IgdmlydHVlLCBhbmQgZ2l2ZSBubyB0aG91Z2h0IHRvIGRlYXRoIGFuZCB0byB0aGUgZG9vbSB0aGF0IHdpbGwgc2hvcnRseSBmYWxsIG9uIG9uZSBhbmQgYWxsIG9mIHRoZW0sIHNvIHRoYXQgdGhleSBzaGFsbCBwZXJpc2ggb24gdGhlIHNhbWUgZGF5LiBBcyBmb3IgeW91ciB2b3lhZ2UsIGl0IHNoYWxsIG5vdCBiZSBsb25nIGRlbGF5ZWQ7IHlvdXIgZmF0aGVyIHdhcyBzdWNoIGFuIG9sZCBmcmllbmQgb2YgbWluZSB0aGF0IEkgd2lsbCBmaW5kIHlvdSBhIHNoaXAsIGFuZCB3aWxsIGNvbWUgd2l0aCB5b3UgbXlzZWxmLiBOb3csIGhvd2V2ZXIsIHJldHVybiBob21lLCBhbmQgZ28gYWJvdXQgYW1vbmcgdGhlIHN1aXRvcnM7IGJlZ2luIGdldHRpbmcgcHJvdmlzaW9ucyByZWFkeSBmb3IgeW91ciB2b3lhZ2U7IHNlZSBldmVyeXRoaW5nIHdlbGwgc3Rvd2VkLCB0aGUgd2luZSBpbiBqYXJzLCBhbmQgdGhlIGJhcmxleSBtZWFsLCB3aGljaCBpcyB0aGUgc3RhZmYgb2YgbGlmZSwgaW4gbGVhdGhlcm4gYmFncywgd2hpbGUgSSBnbyByb3VuZCB0aGUgdG93biBhbmQgYmVhdCB1cCB2b2x1bnRlZXJzIGF0IG9uY2UuIFRoZXJlIGFyZSBtYW55IHNoaXBzIGluIEl0aGFjYSBib3RoIG9sZCBhbmQgbmV3OyBJIHdpbGwgcnVuIG15IGV5ZSBvdmVyIHRoZW0gZm9yIHlvdSBhbmQgd2lsbCBjaG9vc2UgdGhlIGJlc3Q7IHdlIHdpbGwgZ2V0IGhlciByZWFkeSBhbmQgd2lsbCBwdXQgb3V0IHRvIHNlYSB3aXRob3V0IGRlbGF5LiINCg0KVGh1cyBzcG9rZSBNaW5lcnZhIGRhdWdodGVyIG9mIEpvdmUsIGFuZCBUZWxlbWFjaHVzIGxvc3Qgbm8gdGltZSBpbiBkb2luZyBhcyB0aGUgZ29kZGVzcyB0b2xkIGhpbS4gSGUgd2VudCBtb29kaWx5IGFuZCBmb3VuZCB0aGUgc3VpdG9ycyBmbGF5aW5nIGdvYXRzIGFuZCBzaW5nZWluZyBwaWdzIGluIHRoZSBvdXRlciBjb3VydC4gQW50aW5vdXMgY2FtZSB1cCB0byBoaW0gYXQgb25jZSBhbmQgbGF1Z2hlZCBhcyBoZSB0b29rIGhpcyBoYW5kIGluIGhpcyBvd24sIHNheWluZywgIlRlbGVtYWNodXMsIG15IGZpbmUgZmlyZS1lYXRlciwgYmVhciBubyBtb3JlIGlsbCBibG9vZCBuZWl0aGVyIGluIHdvcmQgbm9yIGRlZWQsIGJ1dCBlYXQgYW5kIGRyaW5rIHdpdGggdXMgYXMgeW91IHVzZWQgdG8gZG8uIFRoZSBBY2hhZWFucyB3aWxsIGZpbmQgeW91IGluIGV2ZXJ5dGhpbmctIGEgc2hpcCBhbmQgYSBwaWNrZWQgY3JldyB0byBib290LSBzbyB0aGF0IHlvdSBjYW4gc2V0IHNhaWwgZm9yIFB5bG9zIGF0IG9uY2UgYW5kIGdldCBuZXdzIG9mIHlvdXIgbm9ibGUgZmF0aGVyLiINCg0KIkFudGlub3VzLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgIkkgY2Fubm90IGVhdCBpbiBwZWFjZSwgbm9yIHRha2UgcGxlYXN1cmUgb2YgYW55IGtpbmQgd2l0aCBzdWNoIG1lbiBhcyB5b3UgYXJlLiBXYXMgaXQgbm90IGVub3VnaCB0aGF0IHlvdSBzaG91bGQgd2FzdGUgc28gbXVjaCBnb29kIHByb3BlcnR5IG9mIG1pbmUgd2hpbGUgSSB3YXMgeWV0IGEgYm95PyBOb3cgdGhhdCBJIGFtIG9sZGVyIGFuZCBrbm93IG1vcmUgYWJvdXQgaXQsIEkgYW0gYWxzbyBzdHJvbmdlciwgYW5kIHdoZXRoZXIgaGVyZSBhbW9uZyB0aGlzIHBlb3BsZSwgb3IgYnkgZ29pbmcgdG8gUHlsb3MsIEkgd2lsbCBkbyB5b3UgYWxsIHRoZSBoYXJtIEkgY2FuLiBJIHNoYWxsIGdvLCBhbmQgbXkgZ29pbmcgd2lsbCBub3QgYmUgaW4gdmFpbiB0aG91Z2gsIHRoYW5rcyB0byB5b3Ugc3VpdG9ycywgSSBoYXZlIG5laXRoZXIgc2hpcCBub3IgY3JldyBvZiBteSBvd24sIGFuZCBtdXN0IGJlIHBhc3NlbmdlciBub3QgY2FwdGFpbi4iDQoNCkFzIGhlIHNwb2tlIGhlIHNuYXRjaGVkIGhpcyBoYW5kIGZyb20gdGhhdCBvZiBBbnRpbm91cy4gTWVhbndoaWxlIHRoZSBvdGhlcnMgd2VudCBvbiBnZXR0aW5nIGRpbm5lciByZWFkeSBhYm91dCB0aGUgYnVpbGRpbmdzLCBqZWVyaW5nIGF0IGhpbSB0YXVudGluZ2x5IGFzIHRoZXkgZGlkIHNvLg0KDQoiVGVsZW1hY2h1cywiIHNhaWQgb25lIHlvdW5nc3RlciwgIm1lYW5zIHRvIGJlIHRoZSBkZWF0aCBvZiB1czsgSSBzdXBwb3NlIGhlIHRoaW5rcyBoZSBjYW4gYnJpbmcgZnJpZW5kcyB0byBoZWxwIGhpbSBmcm9tIFB5bG9zLCBvciBhZ2FpbiBmcm9tIFNwYXJ0YSwgd2hlcmUgaGUgc2VlbXMgYmVudCBvbiBnb2luZy4gT3Igd2lsbCBoZSBnbyB0byBFcGh5cmEgYXMgd2VsbCwgZm9yIHBvaXNvbiB0byBwdXQgaW4gb3VyIHdpbmUgYW5kIGtpbGwgdXM/Ig0KDQpBbm90aGVyIHNhaWQsICJQZXJoYXBzIGlmIFRlbGVtYWNodXMgZ29lcyBvbiBib2FyZCBzaGlwLCBoZSB3aWxsIGJlIGxpa2UgaGlzIGZhdGhlciBhbmQgcGVyaXNoIGZhciBmcm9tIGhpcyBmcmllbmRzLiBJbiB0aGlzIGNhc2Ugd2Ugc2hvdWxkIGhhdmUgcGxlbnR5IHRvIGRvLCBmb3Igd2UgY291bGQgdGhlbiBkaXZpZGUgdXAgaGlzIHByb3BlcnR5IGFtb25nc3QgdXM6IGFzIGZvciB0aGUgaG91c2Ugd2UgY2FuIGxldCBoaXMgbW90aGVyIGFuZCB0aGUgbWFuIHdobyBtYXJyaWVzIGhlciBoYXZlIHRoYXQuIg0KDQpUaGlzIHdhcyBob3cgdGhleSB0YWxrZWQuIEJ1dCBUZWxlbWFjaHVzIHdlbnQgZG93biBpbnRvIHRoZSBsb2Z0eSBhbmQgc3BhY2lvdXMgc3RvcmUtcm9vbSB3aGVyZSBoaXMgZmF0aGVyJ3MgdHJlYXN1cmUgb2YgZ29sZCBhbmQgYnJvbnplIGxheSBoZWFwZWQgdXAgdXBvbiB0aGUgZmxvb3IsIGFuZCB3aGVyZSB0aGUgbGluZW4gYW5kIHNwYXJlIGNsb3RoZXMgd2VyZSBrZXB0IGluIG9wZW4gY2hlc3RzLiBIZXJlLCB0b28sIHRoZXJlIHdhcyBhIHN0b3JlIG9mIGZyYWdyYW50IG9saXZlIG9pbCwgd2hpbGUgY2Fza3Mgb2Ygb2xkLCB3ZWxsLXJpcGVuZWQgd2luZSwgdW5ibGVuZGVkIGFuZCBmaXQgZm9yIGEgZ29kIHRvIGRyaW5rLCB3ZXJlIHJhbmdlZCBhZ2FpbnN0IHRoZSB3YWxsIGluIGNhc2UgVWx5c3NlcyBzaG91bGQgY29tZSBob21lIGFnYWluIGFmdGVyIGFsbC4gVGhlIHJvb20gd2FzIGNsb3NlZCB3aXRoIHdlbGwtbWFkZSBkb29ycyBvcGVuaW5nIGluIHRoZSBtaWRkbGU7IG1vcmVvdmVyIHRoZSBmYWl0aGZ1bCBvbGQgaG91c2Uta2VlcGVyIEV1cnljbGVhLCBkYXVnaHRlciBvZiBPcHMgdGhlIHNvbiBvZiBQaXNlbm9yLCB3YXMgaW4gY2hhcmdlIG9mIGV2ZXJ5dGhpbmcgYm90aCBuaWdodCBhbmQgZGF5LiBUZWxlbWFjaHVzIGNhbGxlZCBoZXIgdG8gdGhlIHN0b3JlLXJvb20gYW5kIHNhaWQ6DQoNCiJOdXJzZSwgZHJhdyBtZSBvZmYgc29tZSBvZiB0aGUgYmVzdCB3aW5lIHlvdSBoYXZlLCBhZnRlciB3aGF0IHlvdSBhcmUga2VlcGluZyBmb3IgbXkgZmF0aGVyJ3Mgb3duIGRyaW5raW5nLCBpbiBjYXNlLCBwb29yIG1hbiwgaGUgc2hvdWxkIGVzY2FwZSBkZWF0aCwgYW5kIGZpbmQgaGlzIHdheSBob21lIGFnYWluIGFmdGVyIGFsbC4gTGV0IG1lIGhhdmUgdHdlbHZlIGphcnMsIGFuZCBzZWUgdGhhdCB0aGV5IGFsbCBoYXZlIGxpZHM7IGFsc28gZmlsbCBtZSBzb21lIHdlbGwtc2V3biBsZWF0aGVybiBiYWdzIHdpdGggYmFybGV5IG1lYWwtIGFib3V0IHR3ZW50eSBtZWFzdXJlcyBpbiBhbGwuIEdldCB0aGVzZSB0aGluZ3MgcHV0IHRvZ2V0aGVyIGF0IG9uY2UsIGFuZCBzYXkgbm90aGluZyBhYm91dCBpdC4gSSB3aWxsIHRha2UgZXZlcnl0aGluZyBhd2F5IHRoaXMgZXZlbmluZyBhcyBzb29uIGFzIG15IG1vdGhlciBoYXMgZ29uZSB1cHN0YWlycyBmb3IgdGhlIG5pZ2h0LiBJIGFtIGdvaW5nIHRvIFNwYXJ0YSBhbmQgdG8gUHlsb3MgdG8gc2VlIGlmIEkgY2FuIGhlYXIgYW55dGhpbmcgYWJvdXQgdGhlIHJldHVybiBvZiBteSBkZWFyIGZhdGhlci4NCg0KV2hlbiBFdXJ5Y2xlYSBoZWFyZCB0aGlzIHNoZSBiZWdhbiB0byBjcnksIGFuZCBzcG9rZSBmb25kbHkgdG8gaGltLCBzYXlpbmcsICJNeSBkZWFyIGNoaWxkLCB3aGF0IGV2ZXIgY2FuIGhhdmUgcHV0IHN1Y2ggbm90aW9uIGFzIHRoYXQgaW50byB5b3VyIGhlYWQ/IFdoZXJlIGluIHRoZSB3b3JsZCBkbyB5b3Ugd2FudCB0byBnbyB0by0geW91LCB3aG8gYXJlIHRoZSBvbmUgaG9wZSBvZiB0aGUgaG91c2U/IFlvdXIgcG9vciBmYXRoZXIgaXMgZGVhZCBhbmQgZ29uZSBpbiBzb21lIGZvcmVpZ24gY291bnRyeSBub2JvZHkga25vd3Mgd2hlcmUsIGFuZCBhcyBzb29uIGFzIHlvdXIgYmFjayBpcyB0dXJuZWQgdGhlc2Ugd2lja2VkIG9uZXMgaGVyZSB3aWxsIGJlIHNjaGVtaW5nIHRvIGdldCB5b3UgcHV0IG91dCBvZiB0aGUgd2F5LCBhbmQgd2lsbCBzaGFyZSBhbGwgeW91ciBwb3NzZXNzaW9ucyBhbW9uZyB0aGVtc2VsdmVzOyBzdGF5IHdoZXJlIHlvdSBhcmUgYW1vbmcgeW91ciBvd24gcGVvcGxlLCBhbmQgZG8gbm90IGdvIHdhbmRlcmluZyBhbmQgd29ycnlpbmcgeW91ciBsaWZlIG91dCBvbiB0aGUgYmFycmVuIG9jZWFuLiINCg0KIkZlYXIgbm90LCBudXJzZSwiIGFuc3dlcmVkIFRlbGVtYWNodXMsICJteSBzY2hlbWUgaXMgbm90IHdpdGhvdXQgaGVhdmVuJ3Mgc2FuY3Rpb247IGJ1dCBzd2VhciB0aGF0IHlvdSB3aWxsIHNheSBub3RoaW5nIGFib3V0IGFsbCB0aGlzIHRvIG15IG1vdGhlciwgdGlsbCBJIGhhdmUgYmVlbiBhd2F5IHNvbWUgdGVuIG9yIHR3ZWx2ZSBkYXlzLCB1bmxlc3Mgc2hlIGhlYXJzIG9mIG15IGhhdmluZyBnb25lLCBhbmQgYXNrcyB5b3U7IGZvciBJIGRvIG5vdCB3YW50IGhlciB0byBzcG9pbCBoZXIgYmVhdXR5IGJ5IGNyeWluZy4iDQoNClRoZSBvbGQgd29tYW4gc3dvcmUgbW9zdCBzb2xlbW5seSB0aGF0IHNoZSB3b3VsZCBub3QsIGFuZCB3aGVuIHNoZSBoYWQgY29tcGxldGVkIGhlciBvYXRoLCBzaGUgYmVnYW4gZHJhd2luZyBvZmYgdGhlIHdpbmUgaW50byBqYXJzLCBhbmQgZ2V0dGluZyB0aGUgYmFybGV5IG1lYWwgaW50byB0aGUgYmFncywgd2hpbGUgVGVsZW1hY2h1cyB3ZW50IGJhY2sgdG8gdGhlIHN1aXRvcnMuDQoNClRoZW4gTWluZXJ2YSBiZXRob3VnaHQgaGVyIG9mIGFub3RoZXIgbWF0dGVyLiBTaGUgdG9vayBoaXMgc2hhcGUsIGFuZCB3ZW50IHJvdW5kIHRoZSB0b3duIHRvIGVhY2ggb25lIG9mIHRoZSBjcmV3LCB0ZWxsaW5nIHRoZW0gdG8gbWVldCBhdCB0aGUgc2hpcCBieSBzdW5kb3duLiBTaGUgd2VudCBhbHNvIHRvIE5vZW1vbiBzb24gb2YgUGhyb25pdXMsIGFuZCBhc2tlZCBoaW0gdG8gbGV0IGhlciBoYXZlIGEgc2hpcC0gd2hpY2ggaGUgd2FzIHZlcnkgcmVhZHkgdG8gZG8uIFdoZW4gdGhlIHN1biBoYWQgc2V0IGFuZCBkYXJrbmVzcyB3YXMgb3ZlciBhbGwgdGhlIGxhbmQsIHNoZSBnb3QgdGhlIHNoaXAgaW50byB0aGUgd2F0ZXIsIHB1dCBhbGwgdGhlIHRhY2tsZSBvbiBib2FyZCBoZXIgdGhhdCBzaGlwcyBnZW5lcmFsbHkgY2FycnksIGFuZCBzdGF0aW9uZWQgaGVyIGF0IHRoZSBlbmQgb2YgdGhlIGhhcmJvdXIuIFByZXNlbnRseSB0aGUgY3JldyBjYW1lIHVwLCBhbmQgdGhlIGdvZGRlc3Mgc3Bva2UgZW5jb3VyYWdpbmdseSB0byBlYWNoIG9mIHRoZW0uDQoNCkZ1cnRoZXJtb3JlIHNoZSB3ZW50IHRvIHRoZSBob3VzZSBvZiBVbHlzc2VzLCBhbmQgdGhyZXcgdGhlIHN1aXRvcnMgaW50byBhIGRlZXAgc2x1bWJlci4gU2hlIGNhdXNlZCB0aGVpciBkcmluayB0byBmdWRkbGUgdGhlbSwgYW5kIG1hZGUgdGhlbSBkcm9wIHRoZWlyIGN1cHMgZnJvbSB0aGVpciBoYW5kcywgc28gdGhhdCBpbnN0ZWFkIG9mIHNpdHRpbmcgb3ZlciB0aGVpciB3aW5lLCB0aGV5IHdlbnQgYmFjayBpbnRvIHRoZSB0b3duIHRvIHNsZWVwLCB3aXRoIHRoZWlyIGV5ZXMgaGVhdnkgYW5kIGZ1bGwgb2YgZHJvd3NpbmVzcy4gVGhlbiBzaGUgdG9vayB0aGUgZm9ybSBhbmQgdm9pY2Ugb2YgTWVudG9yLCBhbmQgY2FsbGVkIFRlbGVtYWNodXMgdG8gY29tZSBvdXRzaWRlLg0KDQoiVGVsZW1hY2h1cywiIHNhaWQgc2hlLCAidGhlIG1lbiBhcmUgb24gYm9hcmQgYW5kIGF0IHRoZWlyIG9hcnMsIHdhaXRpbmcgZm9yIHlvdSB0byBnaXZlIHlvdXIgb3JkZXJzLCBzbyBtYWtlIGhhc3RlIGFuZCBsZXQgdXMgYmUgb2ZmLiINCg0KT24gdGhpcyBzaGUgbGVkIHRoZSB3YXksIHdoaWxlIFRlbGVtYWNodXMgZm9sbG93ZWQgaW4gaGVyIHN0ZXBzLiBXaGVuIHRoZXkgZ290IHRvIHRoZSBzaGlwIHRoZXkgZm91bmQgdGhlIGNyZXcgd2FpdGluZyBieSB0aGUgd2F0ZXIgc2lkZSwgYW5kIFRlbGVtYWNodXMgc2FpZCwgIk5vdyBteSBtZW4sIGhlbHAgbWUgdG8gZ2V0IHRoZSBzdG9yZXMgb24gYm9hcmQ7IHRoZXkgYXJlIGFsbCBwdXQgdG9nZXRoZXIgaW4gdGhlIGNsb2lzdGVyLCBhbmQgbXkgbW90aGVyIGRvZXMgbm90IGtub3cgYW55dGhpbmcgYWJvdXQgaXQsIG5vciBhbnkgb2YgdGhlIG1haWQgc2VydmFudHMgZXhjZXB0IG9uZS4iDQoNCldpdGggdGhlc2Ugd29yZHMgaGUgbGVkIHRoZSB3YXkgYW5kIHRoZSBvdGhlcnMgZm9sbG93ZWQgYWZ0ZXIuIFdoZW4gdGhleSBoYWQgYnJvdWdodCB0aGUgdGhpbmdzIGFzIGhlIHRvbGQgdGhlbSwgVGVsZW1hY2h1cyB3ZW50IG9uIGJvYXJkLCBNaW5lcnZhIGdvaW5nIGJlZm9yZSBoaW0gYW5kIHRha2luZyBoZXIgc2VhdCBpbiB0aGUgc3Rlcm4gb2YgdGhlIHZlc3NlbCwgd2hpbGUgVGVsZW1hY2h1cyBzYXQgYmVzaWRlIGhlci4gVGhlbiB0aGUgbWVuIGxvb3NlZCB0aGUgaGF3c2VycyBhbmQgdG9vayB0aGVpciBwbGFjZXMgb24gdGhlIGJlbmNoZXMuIE1pbmVydmEgc2VudCB0aGVtIGEgZmFpciB3aW5kIGZyb20gdGhlIFdlc3QsIHRoYXQgd2hpc3RsZWQgb3ZlciB0aGUgZGVlcCBibHVlIHdhdmVzIHdoZXJlb24gVGVsZW1hY2h1cyB0b2xkIHRoZW0gdG8gY2F0Y2ggaG9sZCBvZiB0aGUgcm9wZXMgYW5kIGhvaXN0IHNhaWwsIGFuZCB0aGV5IGRpZCBhcyBoZSB0b2xkIHRoZW0uIFRoZXkgc2V0IHRoZSBtYXN0IGluIGl0cyBzb2NrZXQgaW4gdGhlIGNyb3NzIHBsYW5rLCByYWlzZWQgaXQsIGFuZCBtYWRlIGl0IGZhc3Qgd2l0aCB0aGUgZm9yZXN0YXlzOyB0aGVuIHRoZXkgaG9pc3RlZCB0aGVpciB3aGl0ZSBzYWlscyBhbG9mdCB3aXRoIHJvcGVzIG9mIHR3aXN0ZWQgb3ggaGlkZS4gQXMgdGhlIHNhaWwgYmVsbGllZCBvdXQgd2l0aCB0aGUgd2luZCwgdGhlIHNoaXAgZmxldyB0aHJvdWdoIHRoZSBkZWVwIGJsdWUgd2F0ZXIsIGFuZCB0aGUgZm9hbSBoaXNzZWQgYWdhaW5zdCBoZXIgYm93cyBhcyBzaGUgc3BlZCBvbndhcmQuIFRoZW4gdGhleSBtYWRlIGFsbCBmYXN0IHRocm91Z2hvdXQgdGhlIHNoaXAsIGZpbGxlZCB0aGUgbWl4aW5nLWJvd2xzIHRvIHRoZSBicmltLCBhbmQgbWFkZSBkcmluayBvZmZlcmluZ3MgdG8gdGhlIGltbW9ydGFsIGdvZHMgdGhhdCBhcmUgZnJvbSBldmVybGFzdGluZywgYnV0IG1vcmUgcGFydGljdWxhcmx5IHRvIHRoZSBncmV5LWV5ZWQgZGF1Z2h0ZXIgb2YgSm92ZS4NCg0KVGh1cywgdGhlbiwgdGhlIHNoaXAgc3BlZCBvbiBoZXIgd2F5IHRocm91Z2ggdGhlIHdhdGNoZXMgb2YgdGhlIG5pZ2h0IGZyb20gZGFyayB0aWxsIGRhd24uDQoNCkJvb2sgSUlJDQoNCkJ1dCBhcyB0aGUgc3VuIHdhcyByaXNpbmcgZnJvbSB0aGUgZmFpciBzZWEgaW50byB0aGUgZmlybWFtZW50IG9mIGhlYXZlbiB0byBzaGVkIGxpZ2h0IG9uIG1vcnRhbHMgYW5kIGltbW9ydGFscywgdGhleSByZWFjaGVkIFB5bG9zIHRoZSBjaXR5IG9mIE5lbGV1cy4gTm93IHRoZSBwZW9wbGUgb2YgUHlsb3Mgd2VyZSBnYXRoZXJlZCBvbiB0aGUgc2VhIHNob3JlIHRvIG9mZmVyIHNhY3JpZmljZSBvZiBibGFjayBidWxscyB0byBOZXB0dW5lIGxvcmQgb2YgdGhlIEVhcnRocXVha2UuIFRoZXJlIHdlcmUgbmluZSBndWlsZHMgd2l0aCBmaXZlIGh1bmRyZWQgbWVuIGluIGVhY2gsIGFuZCB0aGVyZSB3ZXJlIG5pbmUgYnVsbHMgdG8gZWFjaCBndWlsZC4gQXMgdGhleSB3ZXJlIGVhdGluZyB0aGUgaW53YXJkIG1lYXRzIGFuZCBidXJuaW5nIHRoZSB0aGlnaCBib25lcyBbb24gdGhlIGVtYmVyc10gaW4gdGhlIG5hbWUgb2YgTmVwdHVuZSwgVGVsZW1hY2h1cyBhbmQgaGlzIGNyZXcgYXJyaXZlZCwgZnVybGVkIHRoZWlyIHNhaWxzLCBicm91Z2h0IHRoZWlyIHNoaXAgdG8gYW5jaG9yLCBhbmQgd2VudCBhc2hvcmUuDQoNCk1pbmVydmEgbGVkIHRoZSB3YXkgYW5kIFRlbGVtYWNodXMgZm9sbG93ZWQgaGVyLiBQcmVzZW50bHkgc2hlIHNhaWQsICJUZWxlbWFjaHVzLCB5b3UgbXVzdCBub3QgYmUgaW4gdGhlIGxlYXN0IHNoeSBvciBuZXJ2b3VzOyB5b3UgaGF2ZSB0YWtlbiB0aGlzIHZveWFnZSB0byB0cnkgYW5kIGZpbmQgb3V0IHdoZXJlIHlvdXIgZmF0aGVyIGlzIGJ1cmllZCBhbmQgaG93IGhlIGNhbWUgYnkgaGlzIGVuZDsgc28gZ28gc3RyYWlnaHQgdXAgdG8gTmVzdG9yIHRoYXQgd2UgbWF5IHNlZSB3aGF0IGhlIGhhcyBnb3QgdG8gdGVsbCB1cy4gQmVnIG9mIGhpbSB0byBzcGVhayB0aGUgdHJ1dGgsIGFuZCBoZSB3aWxsIHRlbGwgbm8gbGllcywgZm9yIGhlIGlzIGFuIGV4Y2VsbGVudCBwZXJzb24uIg0KDQoiQnV0IGhvdywgTWVudG9yLCIgcmVwbGllZCBUZWxlbWFjaHVzLCAiZGFyZSBJIGdvIHVwIHRvIE5lc3RvciwgYW5kIGhvdyBhbSBJIHRvIGFkZHJlc3MgaGltPyBJIGhhdmUgbmV2ZXIgeWV0IGJlZW4gdXNlZCB0byBob2xkaW5nIGxvbmcgY29udmVyc2F0aW9ucyB3aXRoIHBlb3BsZSwgYW5kIGFtIGFzaGFtZWQgdG8gYmVnaW4gcXVlc3Rpb25pbmcgb25lIHdobyBpcyBzbyBtdWNoIG9sZGVyIHRoYW4gbXlzZWxmLiINCg0KIlNvbWUgdGhpbmdzLCBUZWxlbWFjaHVzLCIgYW5zd2VyZWQgTWluZXJ2YSwgIndpbGwgYmUgc3VnZ2VzdGVkIHRvIHlvdSBieSB5b3VyIG93biBpbnN0aW5jdCwgYW5kIGhlYXZlbiB3aWxsIHByb21wdCB5b3UgZnVydGhlcjsgZm9yIEkgYW0gYXNzdXJlZCB0aGF0IHRoZSBnb2RzIGhhdmUgYmVlbiB3aXRoIHlvdSBmcm9tIHRoZSB0aW1lIG9mIHlvdXIgYmlydGggdW50aWwgbm93LiINCg0KU2hlIHRoZW4gd2VudCBxdWlja2x5IG9uLCBhbmQgVGVsZW1hY2h1cyBmb2xsb3dlZCBpbiBoZXIgc3RlcHMgdGlsbCB0aGV5IHJlYWNoZWQgdGhlIHBsYWNlIHdoZXJlIHRoZSBndWlsZHMgb2YgdGhlIFB5bGlhbiBwZW9wbGUgd2VyZSBhc3NlbWJsZWQuIFRoZXJlIHRoZXkgZm91bmQgTmVzdG9yIHNpdHRpbmcgd2l0aCBoaXMgc29ucywgd2hpbGUgaGlzIGNvbXBhbnkgcm91bmQgaGltIHdlcmUgYnVzeSBnZXR0aW5nIGRpbm5lciByZWFkeSwgYW5kIHB1dHRpbmcgcGllY2VzIG9mIG1lYXQgb24gdG8gdGhlIHNwaXRzIHdoaWxlIG90aGVyIHBpZWNlcyB3ZXJlIGNvb2tpbmcuIFdoZW4gdGhleSBzYXcgdGhlIHN0cmFuZ2VycyB0aGV5IGNyb3dkZWQgcm91bmQgdGhlbSwgdG9vayB0aGVtIGJ5IHRoZSBoYW5kIGFuZCBiYWRlIHRoZW0gdGFrZSB0aGVpciBwbGFjZXMuIE5lc3RvcidzIHNvbiBQaXNpc3RyYXR1cyBhdCBvbmNlIG9mZmVyZWQgaGlzIGhhbmQgdG8gZWFjaCBvZiB0aGVtLCBhbmQgc2VhdGVkIHRoZW0gb24gc29tZSBzb2Z0IHNoZWVwc2tpbnMgdGhhdCB3ZXJlIGx5aW5nIG9uIHRoZSBzYW5kcyBuZWFyIGhpcyBmYXRoZXIgYW5kIGhpcyBicm90aGVyIFRocmFzeW1lZGVzLiBUaGVuIGhlIGdhdmUgdGhlbSB0aGVpciBwb3J0aW9ucyBvZiB0aGUgaW53YXJkIG1lYXRzIGFuZCBwb3VyZWQgd2luZSBmb3IgdGhlbSBpbnRvIGEgZ29sZGVuIGN1cCwgaGFuZGluZyBpdCB0byBNaW5lcnZhIGZpcnN0LCBhbmQgc2FsdXRpbmcgaGVyIGF0IHRoZSBzYW1lIHRpbWUuDQoNCiJPZmZlciBhIHByYXllciwgc2lyLCIgc2FpZCBoZSwgInRvIEtpbmcgTmVwdHVuZSwgZm9yIGl0IGlzIGhpcyBmZWFzdCB0aGF0IHlvdSBhcmUgam9pbmluZzsgd2hlbiB5b3UgaGF2ZSBkdWx5IHByYXllZCBhbmQgbWFkZSB5b3VyIGRyaW5rLW9mZmVyaW5nLCBwYXNzIHRoZSBjdXAgdG8geW91ciBmcmllbmQgdGhhdCBoZSBtYXkgZG8gc28gYWxzby4gSSBkb3VidCBub3QgdGhhdCBoZSB0b28gbGlmdHMgaGlzIGhhbmRzIGluIHByYXllciwgZm9yIG1hbiBjYW5ub3QgbGl2ZSB3aXRob3V0IEdvZCBpbiB0aGUgd29ybGQuIFN0aWxsIGhlIGlzIHlvdW5nZXIgdGhhbiB5b3UgYXJlLCBhbmQgaXMgbXVjaCBvZiBhbiBhZ2Ugd2l0aCBteXNlbGYsIHNvIEkgaGUgaGFuZGVkIEkgd2lsbCBnaXZlIHlvdSB0aGUgcHJlY2VkZW5jZS4iDQoNCkFzIGhlIHNwb2tlIGhlIGhhbmRlZCBoZXIgdGhlIGN1cC4gTWluZXJ2YSB0aG91Z2h0IGl0IHZlcnkgcmlnaHQgYW5kIHByb3BlciBvZiBoaW0gdG8gaGF2ZSBnaXZlbiBpdCB0byBoZXJzZWxmIGZpcnN0OyBzaGUgYWNjb3JkaW5nbHkgYmVnYW4gcHJheWluZyBoZWFydGlseSB0byBOZXB0dW5lLiAiTyB0aG91LCIgc2hlIGNyaWVkLCAidGhhdCBlbmNpcmNsZXN0IHRoZSBlYXJ0aCwgdm91Y2hzYWZlIHRvIGdyYW50IHRoZSBwcmF5ZXJzIG9mIHRoeSBzZXJ2YW50cyB0aGF0IGNhbGwgdXBvbiB0aGVlLiBNb3JlIGVzcGVjaWFsbHkgd2UgcHJheSB0aGVlIHNlbmQgZG93biB0aHkgZ3JhY2Ugb24gTmVzdG9yIGFuZCBvbiBoaXMgc29uczsgdGhlcmVhZnRlciBhbHNvIG1ha2UgdGhlIHJlc3Qgb2YgdGhlIFB5bGlhbiBwZW9wbGUgc29tZSBoYW5kc29tZSByZXR1cm4gZm9yIHRoZSBnb29kbHkgaGVjYXRvbWIgdGhleSBhcmUgb2ZmZXJpbmcgeW91LiBMYXN0bHksIGdyYW50IFRlbGVtYWNodXMgYW5kIG15c2VsZiBhIGhhcHB5IGlzc3VlLCBpbiByZXNwZWN0IG9mIHRoZSBtYXR0ZXIgdGhhdCBoYXMgYnJvdWdodCB1cyBpbiBvdXIgdG8gUHlsb3MuIg0KDQpXaGVuIHNoZSBoYWQgdGh1cyBtYWRlIGFuIGVuZCBvZiBwcmF5aW5nLCBzaGUgaGFuZGVkIHRoZSBjdXAgdG8gVGVsZW1hY2h1cyBhbmQgaGUgcHJheWVkIGxpa2V3aXNlLiBCeSBhbmQgYnksIHdoZW4gdGhlIG91dGVyIG1lYXRzIHdlcmUgcm9hc3RlZCBhbmQgaGFkIGJlZW4gdGFrZW4gb2ZmIHRoZSBzcGl0cywgdGhlIGNhcnZlcnMgZ2F2ZSBldmVyeSBtYW4gaGlzIHBvcnRpb24gYW5kIHRoZXkgYWxsIG1hZGUgYW4gZXhjZWxsZW50IGRpbm5lci4gQXMgc29vbiBhcyB0aGV5IGhhZCBoYWQgZW5vdWdoIHRvIGVhdCBhbmQgZHJpbmssIE5lc3Rvciwga25pZ2h0IG9mIEdlcmVuZSwgYmVnYW4gdG8gc3BlYWsuDQoNCiJOb3csIiBzYWlkIGhlLCAidGhhdCBvdXIgZ3Vlc3RzIGhhdmUgZG9uZSB0aGVpciBkaW5uZXIsIGl0IHdpbGwgYmUgYmVzdCB0byBhc2sgdGhlbSB3aG8gdGhleSBhcmUuIFdobywgdGhlbiwgc2lyIHN0cmFuZ2VycywgYXJlIHlvdSwgYW5kIGZyb20gd2hhdCBwb3J0IGhhdmUgeW91IHNhaWxlZD8gQXJlIHlvdSB0cmFkZXJzPyBvciBkbyB5b3Ugc2FpbCB0aGUgc2VhcyBhcyByb3ZlcnMgd2l0aCB5b3VyIGhhbmQgYWdhaW5zdCBldmVyeSBtYW4sIGFuZCBldmVyeSBtYW4ncyBoYW5kIGFnYWluc3QgeW91PyINCg0KVGVsZW1hY2h1cyBhbnN3ZXJlZCBib2xkbHksIGZvciBNaW5lcnZhIGhhZCBnaXZlbiBoaW0gY291cmFnZSB0byBhc2sgYWJvdXQgaGlzIGZhdGhlciBhbmQgZ2V0IGhpbXNlbGYgYSBnb29kIG5hbWUuDQoNCiJOZXN0b3IsIiBzYWlkIGhlLCAic29uIG9mIE5lbGV1cywgaG9ub3VyIHRvIHRoZSBBY2hhZWFuIG5hbWUsIHlvdSBhc2sgd2hlbmNlIHdlIGNvbWUsIGFuZCBJIHdpbGwgdGVsbCB5b3UuIFdlIGNvbWUgZnJvbSBJdGhhY2EgdW5kZXIgTmVyaXR1bSwgYW5kIHRoZSBtYXR0ZXIgYWJvdXQgd2hpY2ggSSB3b3VsZCBzcGVhayBpcyBvZiBwcml2YXRlIG5vdCBwdWJsaWMgaW1wb3J0LiBJIHNlZWsgbmV3cyBvZiBteSB1bmhhcHB5IGZhdGhlciBVbHlzc2VzLCB3aG8gaXMgc2FpZCB0byBoYXZlIHNhY2tlZCB0aGUgdG93biBvZiBUcm95IGluIGNvbXBhbnkgd2l0aCB5b3Vyc2VsZi4gV2Uga25vdyB3aGF0IGZhdGUgYmVmZWxsIGVhY2ggb25lIG9mIHRoZSBvdGhlciBoZXJvZXMgd2hvIGZvdWdodCBhdCBUcm95LCBidXQgYXMgcmVnYXJkcyBVbHlzc2VzIGhlYXZlbiBoYXMgaGlkZGVuIGZyb20gdXMgdGhlIGtub3dsZWRnZSBldmVuIHRoYXQgaGUgaXMgZGVhZCBhdCBhbGwsIGZvciBubyBvbmUgY2FuIGNlcnRpZnkgdXMgaW4gd2hhdCBwbGFjZSBoZSBwZXJpc2hlZCwgbm9yIHNheSB3aGV0aGVyIGhlIGZlbGwgaW4gYmF0dGxlIG9uIHRoZSBtYWlubGFuZCwgb3Igd2FzIGxvc3QgYXQgc2VhIGFtaWQgdGhlIHdhdmVzIG9mIEFtcGhpdHJpdGUuIFRoZXJlZm9yZSBJIGFtIHN1cHBsaWFudCBhdCB5b3VyIGtuZWVzLCBpZiBoYXBseSB5b3UgbWF5IGJlIHBsZWFzZWQgdG8gdGVsbCBtZSBvZiBoaXMgbWVsYW5jaG9seSBlbmQsIHdoZXRoZXIgeW91IHNhdyBpdCB3aXRoIHlvdXIgb3duIGV5ZXMsIG9yIGhlYXJkIGl0IGZyb20gc29tZSBvdGhlciB0cmF2ZWxsZXIsIGZvciBoZSB3YXMgYSBtYW4gYm9ybiB0byB0cm91YmxlLiBEbyBub3Qgc29mdGVuIHRoaW5ncyBvdXQgb2YgYW55IHBpdHkgZm9yIG1lLCBidXQgdGVsbCBtZSBpbiBhbGwgcGxhaW5uZXNzIGV4YWN0bHkgd2hhdCB5b3Ugc2F3LiBJZiBteSBicmF2ZSBmYXRoZXIgVWx5c3NlcyBldmVyIGRpZCB5b3UgbG95YWwgc2VydmljZSwgZWl0aGVyIGJ5IHdvcmQgb3IgZGVlZCwgd2hlbiB5b3UgQWNoYWVhbnMgd2VyZSBoYXJhc3NlZCBhbW9uZyB0aGUgVHJvamFucywgYmVhciBpdCBpbiBtaW5kIG5vdyBhcyBpbiBteSBmYXZvdXIgYW5kIHRlbGwgbWUgdHJ1bHkgYWxsLiINCg0KIk15IGZyaWVuZCwiIGFuc3dlcmVkIE5lc3RvciwgInlvdSByZWNhbGwgYSB0aW1lIG9mIG11Y2ggc29ycm93IHRvIG15IG1pbmQsIGZvciB0aGUgYnJhdmUgQWNoYWVhbnMgc3VmZmVyZWQgbXVjaCBib3RoIGF0IHNlYSwgd2hpbGUgcHJpdmF0ZWVyaW5nIHVuZGVyIEFjaGlsbGVzLCBhbmQgd2hlbiBmaWdodGluZyBiZWZvcmUgdGhlIGdyZWF0IGNpdHkgb2Yga2luZyBQcmlhbS4gT3VyIGJlc3QgbWVuIGFsbCBvZiB0aGVtIGZlbGwgdGhlcmUtIEFqYXgsIEFjaGlsbGVzLCBQYXRyb2NsdXMgcGVlciBvZiBnb2RzIGluIGNvdW5zZWwsIGFuZCBteSBvd24gZGVhciBzb24gQW50aWxvY2h1cywgYSBtYW4gc2luZ3VsYXJseSBmbGVldCBvZiBmb290IGFuZCBpbiBmaWdodCB2YWxpYW50LiBCdXQgd2Ugc3VmZmVyZWQgbXVjaCBtb3JlIHRoYW4gdGhpczsgd2hhdCBtb3J0YWwgdG9uZ3VlIGluZGVlZCBjb3VsZCB0ZWxsIHRoZSB3aG9sZSBzdG9yeT8gVGhvdWdoIHlvdSB3ZXJlIHRvIHN0YXkgaGVyZSBhbmQgcXVlc3Rpb24gbWUgZm9yIGZpdmUgeWVhcnMsIG9yIGV2ZW4gc2l4LCBJIGNvdWxkIG5vdCB0ZWxsIHlvdSBhbGwgdGhhdCB0aGUgQWNoYWVhbnMgc3VmZmVyZWQsIGFuZCB5b3Ugd291bGQgdHVybiBob21ld2FyZCB3ZWFyeSBvZiBteSB0YWxlIGJlZm9yZSBpdCBlbmRlZC4gTmluZSBsb25nIHllYXJzIGRpZCB3ZSB0cnkgZXZlcnkga2luZCBvZiBzdHJhdGFnZW0sIGJ1dCB0aGUgaGFuZCBvZiBoZWF2ZW4gd2FzIGFnYWluc3QgdXM7IGR1cmluZyBhbGwgdGhpcyB0aW1lIHRoZXJlIHdhcyBubyBvbmUgd2hvIGNvdWxkIGNvbXBhcmUgd2l0aCB5b3VyIGZhdGhlciBpbiBzdWJ0bGV0eS0gaWYgaW5kZWVkIHlvdSBhcmUgaGlzIHNvbi0gSSBjYW4gaGFyZGx5IGJlbGlldmUgbXkgZXllcy0gYW5kIHlvdSB0YWxrIGp1c3QgbGlrZSBoaW0gdG9vLSBubyBvbmUgd291bGQgc2F5IHRoYXQgcGVvcGxlIG9mIHN1Y2ggZGlmZmVyZW50IGFnZXMgY291bGQgc3BlYWsgc28gbXVjaCBhbGlrZS4gSGUgYW5kIEkgbmV2ZXIgaGFkIGFueSBraW5kIG9mIGRpZmZlcmVuY2UgZnJvbSBmaXJzdCB0byBsYXN0IG5laXRoZXIgaW4gY2FtcCBub3IgY291bmNpbCwgYnV0IGluIHNpbmdsZW5lc3Mgb2YgaGVhcnQgYW5kIHB1cnBvc2Ugd2UgYWR2aXNlZCB0aGUgQXJnaXZlcyBob3cgYWxsIG1pZ2h0IGJlIG9yZGVyZWQgZm9yIHRoZSBiZXN0Lg0KDQoiV2hlbiBob3dldmVyLCB3ZSBoYWQgc2Fja2VkIHRoZSBjaXR5IG9mIFByaWFtLCBhbmQgd2VyZSBzZXR0aW5nIHNhaWwgaW4gb3VyIHNoaXBzIGFzIGhlYXZlbiBoYWQgZGlzcGVyc2VkIHVzLCB0aGVuIEpvdmUgc2F3IGZpdCB0byB2ZXggdGhlIEFyZ2l2ZXMgb24gdGhlaXIgaG9tZXdhcmQgdm95YWdlOyBmb3IgdGhleSBoYWQgTm90IGFsbCBiZWVuIGVpdGhlciB3aXNlIG9yIHVuZGVyc3RhbmRpbmcsIGFuZCBoZW5jZSBtYW55IGNhbWUgdG8gYSBiYWQgZW5kIHRocm91Z2ggdGhlIGRpc3BsZWFzdXJlIG9mIEpvdmUncyBkYXVnaHRlciBNaW5lcnZhLCB3aG8gYnJvdWdodCBhYm91dCBhIHF1YXJyZWwgYmV0d2VlbiB0aGUgdHdvIHNvbnMgb2YgQXRyZXVzLg0KDQoiVGhlIHNvbnMgb2YgQXRyZXVzIGNhbGxlZCBhIG1lZXRpbmcgd2hpY2ggd2FzIG5vdCBhcyBpdCBzaG91bGQgYmUsIGZvciBpdCB3YXMgc3Vuc2V0IGFuZCB0aGUgQWNoYWVhbnMgd2VyZSBoZWF2eSB3aXRoIHdpbmUuIFdoZW4gdGhleSBleHBsYWluZWQgd2h5IHRoZXkgaGFkIGNhbGxlZC0gdGhlIHBlb3BsZSB0b2dldGhlciwgaXQgc2VlbWVkIHRoYXQgTWVuZWxhdXMgd2FzIGZvciBzYWlsaW5nIGhvbWV3YXJkIGF0IG9uY2UsIGFuZCB0aGlzIGRpc3BsZWFzZWQgQWdhbWVtbm9uLCB3aG8gdGhvdWdodCB0aGF0IHdlIHNob3VsZCB3YWl0IHRpbGwgd2UgaGFkIG9mZmVyZWQgaGVjYXRvbWJzIHRvIGFwcGVhc2UgdGhlIGFuZ2VyIG9mIE1pbmVydmEuIEZvb2wgdGhhdCBoZSB3YXMsIGhlIG1pZ2h0IGhhdmUga25vd24gdGhhdCBoZSB3b3VsZCBub3QgcHJldmFpbCB3aXRoIGhlciwgZm9yIHdoZW4gdGhlIGdvZHMgaGF2ZSBtYWRlIHVwIHRoZWlyIG1pbmRzIHRoZXkgZG8gbm90IGNoYW5nZSB0aGVtIGxpZ2h0bHkuIFNvIHRoZSB0d28gc3Rvb2QgYmFuZHlpbmcgaGFyZCB3b3Jkcywgd2hlcmVvbiB0aGUgQWNoYWVhbnMgc3ByYW5nIHRvIHRoZWlyIGZlZXQgd2l0aCBhIGNyeSB0aGF0IHJlbnQgdGhlIGFpciwgYW5kIHdlcmUgb2YgdHdvIG1pbmRzIGFzIHRvIHdoYXQgdGhleSBzaG91bGQgZG8uDQoNCiJUaGF0IG5pZ2h0IHdlIHJlc3RlZCBhbmQgbnVyc2VkIG91ciBhbmdlciwgZm9yIEpvdmUgd2FzIGhhdGNoaW5nIG1pc2NoaWVmIGFnYWluc3QgdXMuIEJ1dCBpbiB0aGUgbW9ybmluZyBzb21lIG9mIHVzIGRyZXcgb3VyIHNoaXBzIGludG8gdGhlIHdhdGVyIGFuZCBwdXQgb3VyIGdvb2RzIHdpdGggb3VyIHdvbWVuIG9uIGJvYXJkLCB3aGlsZSB0aGUgcmVzdCwgYWJvdXQgaGFsZiBpbiBudW1iZXIsIHN0YXllZCBiZWhpbmQgd2l0aCBBZ2FtZW1ub24uIFdlLSB0aGUgb3RoZXIgaGFsZi0gZW1iYXJrZWQgYW5kIHNhaWxlZDsgYW5kIHRoZSBzaGlwcyB3ZW50IHdlbGwsIGZvciBoZWF2ZW4gaGFkIHNtb290aGVkIHRoZSBzZWEuIFdoZW4gd2UgcmVhY2hlZCBUZW5lZG9zIHdlIG9mZmVyZWQgc2FjcmlmaWNlcyB0byB0aGUgZ29kcywgZm9yIHdlIHdlcmUgbG9uZ2luZyB0byBnZXQgaG9tZTsgY3J1ZWwgSm92ZSwgaG93ZXZlciwgZGlkIG5vdCB5ZXQgbWVhbiB0aGF0IHdlIHNob3VsZCBkbyBzbywgYW5kIHJhaXNlZCBhIHNlY29uZCBxdWFycmVsIGluIHRoZSBjb3Vyc2Ugb2Ygd2hpY2ggc29tZSBhbW9uZyB1cyB0dXJuZWQgdGhlaXIgc2hpcHMgYmFjayBhZ2FpbiwgYW5kIHNhaWxlZCBhd2F5IHVuZGVyIFVseXNzZXMgdG8gbWFrZSB0aGVpciBwZWFjZSB3aXRoIEFnYW1lbW5vbjsgYnV0IEksIGFuZCBhbGwgdGhlIHNoaXBzIHRoYXQgd2VyZSB3aXRoIG1lIHByZXNzZWQgZm9yd2FyZCwgZm9yIEkgc2F3IHRoYXQgbWlzY2hpZWYgd2FzIGJyZXdpbmcuIFRoZSBzb24gb2YgVHlkZXVzIHdlbnQgb24gYWxzbyB3aXRoIG1lLCBhbmQgaGlzIGNyZXdzIHdpdGggaGltLiBMYXRlciBvbiBNZW5lbGF1cyBqb2luZWQgdXMgYXQgTGVzYm9zLCBhbmQgZm91bmQgdXMgbWFraW5nIHVwIG91ciBtaW5kcyBhYm91dCBvdXIgY291cnNlLSBmb3Igd2UgZGlkIG5vdCBrbm93IHdoZXRoZXIgdG8gZ28gb3V0c2lkZSBDaGlvcyBieSB0aGUgaXNsYW5kIG9mIFBzeXJhLCBrZWVwaW5nIHRoaXMgdG8gb3VyIGxlZnQsIG9yIGluc2lkZSBDaGlvcywgb3ZlciBhZ2FpbnN0IHRoZSBzdG9ybXkgaGVhZGxhbmQgb2YgTWltYXMuIFNvIHdlIGFza2VkIGhlYXZlbiBmb3IgYSBzaWduLCBhbmQgd2VyZSBzaG93biBvbmUgdG8gdGhlIGVmZmVjdCB0aGF0IHdlIHNob3VsZCBiZSBzb29uZXN0IG91dCBvZiBkYW5nZXIgaWYgd2UgaGVhZGVkIG91ciBzaGlwcyBhY3Jvc3MgdGhlIG9wZW4gc2VhIHRvIEV1Ym9lYS4gVGhpcyB3ZSB0aGVyZWZvcmUgZGlkLCBhbmQgYSBmYWlyIHdpbmQgc3ByYW5nIHVwIHdoaWNoIGdhdmUgdXMgYSBxdWljayBwYXNzYWdlIGR1cmluZyB0aGUgbmlnaHQgdG8gR2VyYWVzdHVzLCB3aGVyZSB3ZSBvZmZlcmVkIG1hbnkgc2FjcmlmaWNlcyB0byBOZXB0dW5lIGZvciBoYXZpbmcgaGVscGVkIHVzIHNvIGZhciBvbiBvdXIgd2F5LiBGb3VyIGRheXMgbGF0ZXIgRGlvbWVkIGFuZCBoaXMgbWVuIHN0YXRpb25lZCB0aGVpciBzaGlwcyBpbiBBcmdvcywgYnV0IEkgaGVsZCBvbiBmb3IgUHlsb3MsIGFuZCB0aGUgd2luZCBuZXZlciBmZWxsIGxpZ2h0IGZyb20gdGhlIGRheSB3aGVuIGhlYXZlbiBmaXJzdCBtYWRlIGl0IGZhaXIgZm9yIG1lLg0KDQoiVGhlcmVmb3JlLCBteSBkZWFyIHlvdW5nIGZyaWVuZCwgSSByZXR1cm5lZCB3aXRob3V0IGhlYXJpbmcgYW55dGhpbmcgYWJvdXQgdGhlIG90aGVycy4gSSBrbm93IG5laXRoZXIgd2hvIGdvdCBob21lIHNhZmVseSBub3Igd2hvIHdlcmUgbG9zdCBidXQsIGFzIGluIGR1dHkgYm91bmQsIEkgd2lsbCBnaXZlIHlvdSB3aXRob3V0IHJlc2VydmUgdGhlIHJlcG9ydHMgdGhhdCBoYXZlIHJlYWNoZWQgbWUgc2luY2UgSSBoYXZlIGJlZW4gaGVyZSBpbiBteSBvd24gaG91c2UuIFRoZXkgc2F5IHRoZSBNeXJtaWRvbnMgcmV0dXJuZWQgaG9tZSBzYWZlbHkgdW5kZXIgQWNoaWxsZXMnIHNvbiBOZW9wdG9sZW11czsgc28gYWxzbyBkaWQgdGhlIHZhbGlhbnQgc29uIG9mIFBvaWFzLCBQaGlsb2N0ZXRlcy4gSWRvbWVuZXVzLCBhZ2FpbiwgbG9zdCBubyBtZW4gYXQgc2VhLCBhbmQgYWxsIGhpcyBmb2xsb3dlcnMgd2hvIGVzY2FwZWQgZGVhdGggaW4gdGhlIGZpZWxkIGdvdCBzYWZlIGhvbWUgd2l0aCBoaW0gdG8gQ3JldGUuIE5vIG1hdHRlciBob3cgZmFyIG91dCBvZiB0aGUgd29ybGQgeW91IGxpdmUsIHlvdSB3aWxsIGhhdmUgaGVhcmQgb2YgQWdhbWVtbm9uIGFuZCB0aGUgYmFkIGVuZCBoZSBjYW1lIHRvIGF0IHRoZSBoYW5kcyBvZiBBZWdpc3RodXMtIGFuZCBhIGZlYXJmdWwgcmVja29uaW5nIGRpZCBBZWdpc3RodXMgcHJlc2VudGx5IHBheS4gU2VlIHdoYXQgYSBnb29kIHRoaW5nIGl0IGlzIGZvciBhIG1hbiB0byBsZWF2ZSBhIHNvbiBiZWhpbmQgaGltIHRvIGRvIGFzIE9yZXN0ZXMgZGlkLCB3aG8ga2lsbGVkIGZhbHNlIEFlZ2lzdGh1cyB0aGUgbXVyZGVyZXIgb2YgaGlzIG5vYmxlIGZhdGhlci4gWW91IHRvbywgdGhlbi0gZm9yIHlvdSBhcmUgYSB0YWxsLCBzbWFydC1sb29raW5nIGZlbGxvdy0gc2hvdyB5b3VyIG1ldHRsZSBhbmQgbWFrZSB5b3Vyc2VsZiBhIG5hbWUgaW4gc3RvcnkuIg0KDQoiTmVzdG9yIHNvbiBvZiBOZWxldXMsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAiaG9ub3VyIHRvIHRoZSBBY2hhZWFuIG5hbWUsIHRoZSBBY2hhZWFucyBhcHBsYXVkIE9yZXN0ZXMgYW5kIGhpcyBuYW1lIHdpbGwgbGl2ZSB0aHJvdWdoIGFsbCB0aW1lIGZvciBoZSBoYXMgYXZlbmdlZCBoaXMgZmF0aGVyIG5vYmx5LiBXb3VsZCB0aGF0IGhlYXZlbiBtaWdodCBncmFudCBtZSB0byBkbyBsaWtlIHZlbmdlYW5jZSBvbiB0aGUgaW5zb2xlbmNlIG9mIHRoZSB3aWNrZWQgc3VpdG9ycywgd2hvIGFyZSBpbGwgdHJlYXRpbmcgbWUgYW5kIHBsb3R0aW5nIG15IHJ1aW47IGJ1dCB0aGUgZ29kcyBoYXZlIG5vIHN1Y2ggaGFwcGluZXNzIGluIHN0b3JlIGZvciBtZSBhbmQgZm9yIG15IGZhdGhlciwgc28gd2UgbXVzdCBiZWFyIGl0IGFzIGJlc3Qgd2UgbWF5LiINCg0KIk15IGZyaWVuZCwiIHNhaWQgTmVzdG9yLCAibm93IHRoYXQgeW91IHJlbWluZCBtZSwgSSByZW1lbWJlciB0byBoYXZlIGhlYXJkIHRoYXQgeW91ciBtb3RoZXIgaGFzIG1hbnkgc3VpdG9ycywgd2hvIGFyZSBpbGwgZGlzcG9zZWQgdG93YXJkcyB5b3UgYW5kIGFyZSBtYWtpbmcgaGF2b2Mgb2YgeW91ciBlc3RhdGUuIERvIHlvdSBzdWJtaXQgdG8gdGhpcyB0YW1lbHksIG9yIGFyZSBwdWJsaWMgZmVlbGluZyBhbmQgdGhlIHZvaWNlIG9mIGhlYXZlbiBhZ2FpbnN0IHlvdT8gV2hvIGtub3dzIGJ1dCB3aGF0IFVseXNzZXMgbWF5IGNvbWUgYmFjayBhZnRlciBhbGwsIGFuZCBwYXkgdGhlc2Ugc2NvdW5kcmVscyBpbiBmdWxsLCBlaXRoZXIgc2luZ2xlLWhhbmRlZCBvciB3aXRoIGEgZm9yY2Ugb2YgQWNoYWVhbnMgYmVoaW5kIGhpbT8gSWYgTWluZXJ2YSB3ZXJlIHRvIHRha2UgYXMgZ3JlYXQgYSBsaWtpbmcgdG8geW91IGFzIHNoZSBkaWQgdG8gVWx5c3NlcyB3aGVuIHdlIHdlcmUgZmlnaHRpbmcgYmVmb3JlIFRyb3kgKGZvciBJIG5ldmVyIHlldCBzYXcgdGhlIGdvZHMgc28gb3Blbmx5IGZvbmQgb2YgYW55IG9uZSBhcyBNaW5lcnZhIHRoZW4gd2FzIG9mIHlvdXIgZmF0aGVyKSwgaWYgc2hlIHdvdWxkIHRha2UgYXMgZ29vZCBjYXJlIG9mIHlvdSBhcyBzaGUgZGlkIG9mIGhpbSwgdGhlc2Ugd29vZXJzIHdvdWxkIHNvb24gc29tZSBvZiB0aGVtIGhpbSwgZm9yZ2V0IHRoZWlyIHdvb2luZy4iDQoNClRlbGVtYWNodXMgYW5zd2VyZWQsICJJIGNhbiBleHBlY3Qgbm90aGluZyBvZiB0aGUga2luZDsgaXQgd291bGQgYmUgZmFyIHRvbyBtdWNoIHRvIGhvcGUgZm9yLiBJIGRhcmUgbm90IGxldCBteXNlbGYgdGhpbmsgb2YgaXQuIEV2ZW4gdGhvdWdoIHRoZSBnb2RzIHRoZW1zZWx2ZXMgd2lsbGVkIGl0IG5vIHN1Y2ggZ29vZCBmb3J0dW5lIGNvdWxkIGJlZmFsbCBtZS4iDQoNCk9uIHRoaXMgTWluZXJ2YSBzYWlkLCAiVGVsZW1hY2h1cywgd2hhdCBhcmUgeW91IHRhbGtpbmcgYWJvdXQ/IEhlYXZlbiBoYXMgYSBsb25nIGFybSBpZiBpdCBpcyBtaW5kZWQgdG8gc2F2ZSBhIG1hbjsgYW5kIGlmIGl0IHdlcmUgbWUsIEkgc2hvdWxkIG5vdCBjYXJlIGhvdyBtdWNoIEkgc3VmZmVyZWQgYmVmb3JlIGdldHRpbmcgaG9tZSwgcHJvdmlkZWQgSSBjb3VsZCBiZSBzYWZlIHdoZW4gSSB3YXMgb25jZSB0aGVyZS4gSSB3b3VsZCByYXRoZXIgdGhpcywgdGhhbiBnZXQgaG9tZSBxdWlja2x5LCBhbmQgdGhlbiBiZSBraWxsZWQgaW4gbXkgb3duIGhvdXNlIGFzIEFnYW1lbW5vbiB3YXMgYnkgdGhlIHRyZWFjaGVyeSBvZiBBZWdpc3RodXMgYW5kIGhpcyB3aWZlLiBTdGlsbCwgZGVhdGggaXMgY2VydGFpbiwgYW5kIHdoZW4gYSBtYW4ncyBob3VyIGlzIGNvbWUsIG5vdCBldmVuIHRoZSBnb2RzIGNhbiBzYXZlIGhpbSwgbm8gbWF0dGVyIGhvdyBmb25kIHRoZXkgYXJlIG9mIGhpbS4iDQoNCiJNZW50b3IsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAiZG8gbm90IGxldCB1cyB0YWxrIGFib3V0IGl0IGFueSBtb3JlLiBUaGVyZSBpcyBubyBjaGFuY2Ugb2YgbXkgZmF0aGVyJ3MgZXZlciBjb21pbmcgYmFjazsgdGhlIGdvZHMgaGF2ZSBsb25nIHNpbmNlIGNvdW5zZWxsZWQgaGlzIGRlc3RydWN0aW9uLiBUaGVyZSBpcyBzb21ldGhpbmcgZWxzZSwgaG93ZXZlciwgYWJvdXQgd2hpY2ggSSBzaG91bGQgbGlrZSB0byBhc2sgTmVzdG9yLCBmb3IgaGUga25vd3MgbXVjaCBtb3JlIHRoYW4gYW55IG9uZSBlbHNlIGRvZXMuIFRoZXkgc2F5IGhlIGhhcyByZWlnbmVkIGZvciB0aHJlZSBnZW5lcmF0aW9ucyBzbyB0aGF0IGl0IGlzIGxpa2UgdGFsa2luZyB0byBhbiBpbW1vcnRhbC4gVGVsbCBtZSwgdGhlcmVmb3JlLCBOZXN0b3IsIGFuZCB0ZWxsIG1lIHRydWU7IGhvdyBkaWQgQWdhbWVtbm9uIGNvbWUgdG8gZGllIGluIHRoYXQgd2F5PyBXaGF0IHdhcyBNZW5lbGF1cyBkb2luZz8gQW5kIGhvdyBjYW1lIGZhbHNlIEFlZ2lzdGh1cyB0byBraWxsIHNvIGZhciBiZXR0ZXIgYSBtYW4gdGhhbiBoaW1zZWxmPyBXYXMgTWVuZWxhdXMgYXdheSBmcm9tIEFjaGFlYW4gQXJnb3MsIHZveWFnaW5nIGVsc2V3aGl0aGVyIGFtb25nIG1hbmtpbmQsIHRoYXQgQWVnaXN0aHVzIHRvb2sgaGVhcnQgYW5kIGtpbGxlZCBBZ2FtZW1ub24/Ig0KDQoiSSB3aWxsIHRlbGwgeW91IHRydWx5LCIgYW5zd2VyZWQgTmVzdG9yLCAiYW5kIGluZGVlZCB5b3UgaGF2ZSB5b3Vyc2VsZiBkaXZpbmVkIGhvdyBpdCBhbGwgaGFwcGVuZWQuIElmIE1lbmVsYXVzIHdoZW4gaGUgZ290IGJhY2sgZnJvbSBUcm95IGhhZCBmb3VuZCBBZWdpc3RodXMgc3RpbGwgYWxpdmUgaW4gaGlzIGhvdXNlLCB0aGVyZSB3b3VsZCBoYXZlIGJlZW4gbm8gYmFycm93IGhlYXBlZCB1cCBmb3IgaGltLCBub3QgZXZlbiB3aGVuIGhlIHdhcyBkZWFkLCBidXQgaGUgd291bGQgaGF2ZSBiZWVuIHRocm93biBvdXRzaWRlIHRoZSBjaXR5IHRvIGRvZ3MgYW5kIHZ1bHR1cmVzLCBhbmQgbm90IGEgd29tYW4gd291bGQgaGF2ZSBtb3VybmVkIGhpbSwgZm9yIGhlIGhhZCBkb25lIGEgZGVlZCBvZiBncmVhdCB3aWNrZWRuZXNzOyBidXQgd2Ugd2VyZSBvdmVyIHRoZXJlLCBmaWdodGluZyBoYXJkIGF0IFRyb3ksIGFuZCBBZWdpc3RodXMgd2hvIHdhcyB0YWtpbmcgaGlzIGVhc2UgcXVpZXRseSBpbiB0aGUgaGVhcnQgb2YgQXJnb3MsIGNham9sZWQgQWdhbWVtbm9uJ3Mgd2lmZSBDbHl0ZW1uZXN0cmEgd2l0aCBpbmNlc3NhbnQgZmxhdHRlcnkuDQoNCiJBdCBmaXJzdCBzaGUgd291bGQgaGF2ZSBub3RoaW5nIHRvIGRvIHdpdGggaGlzIHdpY2tlZCBzY2hlbWUsIGZvciBzaGUgd2FzIG9mIGEgZ29vZCBuYXR1cmFsIGRpc3Bvc2l0aW9uOyBtb3Jlb3ZlciB0aGVyZSB3YXMgYSBiYXJkIHdpdGggaGVyLCB0byB3aG9tIEFnYW1lbW5vbiBoYWQgZ2l2ZW4gc3RyaWN0IG9yZGVycyBvbiBzZXR0aW5nIG91dCBmb3IgVHJveSwgdGhhdCBoZSB3YXMgdG8ga2VlcCBndWFyZCBvdmVyIGhpcyB3aWZlOyBidXQgd2hlbiBoZWF2ZW4gaGFkIGNvdW5zZWxsZWQgaGVyIGRlc3RydWN0aW9uLCBBZWdpc3RodXMgdGh1cyB0aGlzIGJhcmQgb2ZmIHRvIGEgZGVzZXJ0IGlzbGFuZCBhbmQgbGVmdCBoaW0gdGhlcmUgZm9yIGNyb3dzIGFuZCBzZWFndWxscyB0byBiYXR0ZW4gdXBvbi0gYWZ0ZXIgd2hpY2ggc2hlIHdlbnQgd2lsbGluZ2x5IGVub3VnaCB0byB0aGUgaG91c2Ugb2YgQWVnaXN0aHVzLiBUaGVuIGhlIG9mZmVyZWQgbWFueSBidXJudCBzYWNyaWZpY2VzIHRvIHRoZSBnb2RzLCBhbmQgZGVjb3JhdGVkIG1hbnkgdGVtcGxlcyB3aXRoIHRhcGVzdHJpZXMgYW5kIGdpbGRpbmcsIGZvciBoZSBoYWQgc3VjY2VlZGVkIGZhciBiZXlvbmQgaGlzIGV4cGVjdGF0aW9ucy4NCg0KIk1lYW53aGlsZSBNZW5lbGF1cyBhbmQgSSB3ZXJlIG9uIG91ciB3YXkgaG9tZSBmcm9tIFRyb3ksIG9uIGdvb2QgdGVybXMgd2l0aCBvbmUgYW5vdGhlci4gV2hlbiB3ZSBnb3QgdG8gU3VuaXVtLCB3aGljaCBpcyB0aGUgcG9pbnQgb2YgQXRoZW5zLCBBcG9sbG8gd2l0aCBoaXMgcGFpbmxlc3Mgc2hhZnRzIGtpbGxlZCBQaHJvbnRpcyB0aGUgc3RlZXJzbWFuIG9mIE1lbmVsYXVzJyBzaGlwIChhbmQgbmV2ZXIgbWFuIGtuZXcgYmV0dGVyIGhvdyB0byBoYW5kbGUgYSB2ZXNzZWwgaW4gcm91Z2ggd2VhdGhlcikgc28gdGhhdCBoZSBkaWVkIHRoZW4gYW5kIHRoZXJlIHdpdGggdGhlIGhlbG0gaW4gaGlzIGhhbmQsIGFuZCBNZW5lbGF1cywgdGhvdWdoIHZlcnkgYW54aW91cyB0byBwcmVzcyBmb3J3YXJkLCBoYWQgdG8gd2FpdCBpbiBvcmRlciB0byBidXJ5IGhpcyBjb21yYWRlIGFuZCBnaXZlIGhpbSBoaXMgZHVlIGZ1bmVyYWwgcml0ZXMuIFByZXNlbnRseSwgd2hlbiBoZSB0b28gY291bGQgcHV0IHRvIHNlYSBhZ2FpbiwgYW5kIGhhZCBzYWlsZWQgb24gYXMgZmFyIGFzIHRoZSBNYWxlYW4gaGVhZHMsIEpvdmUgY291bnNlbGxlZCBldmlsIGFnYWluc3QgaGltIGFuZCBtYWRlIGl0IGl0IGJsb3cgaGFyZCB0aWxsIHRoZSB3YXZlcyByYW4gbW91bnRhaW5zIGhpZ2guIEhlcmUgaGUgZGl2aWRlZCBoaXMgZmxlZXQgYW5kIHRvb2sgdGhlIG9uZSBoYWxmIHRvd2FyZHMgQ3JldGUgd2hlcmUgdGhlIEN5ZG9uaWFucyBkd2VsbCByb3VuZCBhYm91dCB0aGUgd2F0ZXJzIG9mIHRoZSByaXZlciBJYXJkYW51cy4gVGhlcmUgaXMgYSBoaWdoIGhlYWRsYW5kIGhlcmVhYm91dHMgc3RyZXRjaGluZyBvdXQgaW50byB0aGUgc2VhIGZyb20gYSBwbGFjZSBjYWxsZWQgR29ydHluLCBhbmQgYWxsIGFsb25nIHRoaXMgcGFydCBvZiB0aGUgY29hc3QgYXMgZmFyIGFzIFBoYWVzdHVzIHRoZSBzZWEgcnVucyBoaWdoIHdoZW4gdGhlcmUgaXMgYSBzb3V0aCB3aW5kIGJsb3dpbmcsIGJ1dCBhcnRlciBQaGFlc3R1cyB0aGUgY29hc3QgaXMgbW9yZSBwcm90ZWN0ZWQsIGZvciBhIHNtYWxsIGhlYWRsYW5kIGNhbiBtYWtlIGEgZ3JlYXQgc2hlbHRlci4gSGVyZSB0aGlzIHBhcnQgb2YgdGhlIGZsZWV0IHdhcyBkcml2ZW4gb24gdG8gdGhlIHJvY2tzIGFuZCB3cmVja2VkOyBidXQgdGhlIGNyZXdzIGp1c3QgbWFuYWdlZCB0byBzYXZlIHRoZW1zZWx2ZXMuIEFzIGZvciB0aGUgb3RoZXIgZml2ZSBzaGlwcywgdGhleSB3ZXJlIHRha2VuIGJ5IHdpbmRzIGFuZCBzZWFzIHRvIEVneXB0LCB3aGVyZSBNZW5lbGF1cyBnYXRoZXJlZCBtdWNoIGdvbGQgYW5kIHN1YnN0YW5jZSBhbW9uZyBwZW9wbGUgb2YgYW4gYWxpZW4gc3BlZWNoLiBNZWFud2hpbGUgQWVnaXN0aHVzIGhlcmUgYXQgaG9tZSBwbG90dGVkIGhpcyBldmlsIGRlZWQuIEZvciBzZXZlbiB5ZWFycyBhZnRlciBoZSBoYWQga2lsbGVkIEFnYW1lbW5vbiBoZSBydWxlZCBpbiBNeWNlbmUsIGFuZCB0aGUgcGVvcGxlIHdlcmUgb2JlZGllbnQgdW5kZXIgaGltLCBidXQgaW4gdGhlIGVpZ2h0aCB5ZWFyIE9yZXN0ZXMgY2FtZSBiYWNrIGZyb20gQXRoZW5zIHRvIGJlIGhpcyBiYW5lLCBhbmQga2lsbGVkIHRoZSBtdXJkZXJlciBvZiBoaXMgZmF0aGVyLiBUaGVuIGhlIGNlbGVicmF0ZWQgdGhlIGZ1bmVyYWwgcml0ZXMgb2YgaGlzIG1vdGhlciBhbmQgb2YgZmFsc2UgQWVnaXN0aHVzIGJ5IGEgYmFucXVldCB0byB0aGUgcGVvcGxlIG9mIEFyZ29zLCBhbmQgb24gdGhhdCB2ZXJ5IGRheSBNZW5lbGF1cyBjYW1lIGhvbWUsIHdpdGggYXMgbXVjaCB0cmVhc3VyZSBhcyBoaXMgc2hpcHMgY291bGQgY2FycnkuDQoNCiJUYWtlIG15IGFkdmljZSB0aGVuLCBhbmQgZG8gbm90IGdvIHRyYXZlbGxpbmcgYWJvdXQgZm9yIGxvbmcgc28gZmFyIGZyb20gaG9tZSwgbm9yIGxlYXZlIHlvdXIgcHJvcGVydHkgd2l0aCBzdWNoIGRhbmdlcm91cyBwZW9wbGUgaW4geW91ciBob3VzZTsgdGhleSB3aWxsIGVhdCB1cCBldmVyeXRoaW5nIHlvdSBoYXZlIGFtb25nIHRoZW0sIGFuZCB5b3Ugd2lsbCBoYXZlIGJlZW4gb24gYSBmb29sJ3MgZXJyYW5kLiBTdGlsbCwgSSBzaG91bGQgYWR2aXNlIHlvdSBieSBhbGwgbWVhbnMgdG8gZ28gYW5kIHZpc2l0IE1lbmVsYXVzLCB3aG8gaGFzIGxhdGVseSBjb21lIG9mZiBhIHZveWFnZSBhbW9uZyBzdWNoIGRpc3RhbnQgcGVvcGxlcyBhcyBubyBtYW4gY291bGQgZXZlciBob3BlIHRvIGdldCBiYWNrIGZyb20sIHdoZW4gdGhlIHdpbmRzIGhhZCBvbmNlIGNhcnJpZWQgaGltIHNvIGZhciBvdXQgb2YgaGlzIHJlY2tvbmluZzsgZXZlbiBiaXJkcyBjYW5ub3QgZmx5IHRoZSBkaXN0YW5jZSBpbiBhIHR3ZWx2ZW1vbnRoLCBzbyB2YXN0IGFuZCB0ZXJyaWJsZSBhcmUgdGhlIHNlYXMgdGhhdCB0aGV5IG11c3QgY3Jvc3MuIEdvIHRvIGhpbSwgdGhlcmVmb3JlLCBieSBzZWEsIGFuZCB0YWtlIHlvdXIgb3duIG1lbiB3aXRoIHlvdTsgb3IgaWYgeW91IHdvdWxkIHJhdGhlciB0cmF2ZWwgYnkgbGFuZCB5b3UgY2FuIGhhdmUgYSBjaGFyaW90LCB5b3UgY2FuIGhhdmUgaG9yc2VzLCBhbmQgaGVyZSBhcmUgbXkgc29ucyB3aG8gY2FuIGVzY29ydCB5b3UgdG8gTGFjZWRhZW1vbiB3aGVyZSBNZW5lbGF1cyBsaXZlcy4gQmVnIG9mIGhpbSB0byBzcGVhayB0aGUgdHJ1dGgsIGFuZCBoZSB3aWxsIHRlbGwgeW91IG5vIGxpZXMsIGZvciBoZSBpcyBhbiBleGNlbGxlbnQgcGVyc29uLiINCg0KQXMgaGUgc3Bva2UgdGhlIHN1biBzZXQgYW5kIGl0IGNhbWUgb24gZGFyaywgd2hlcmVvbiBNaW5lcnZhIHNhaWQsICJTaXIsIGFsbCB0aGF0IHlvdSBoYXZlIHNhaWQgaXMgd2VsbDsgbm93LCBob3dldmVyLCBvcmRlciB0aGUgdG9uZ3VlcyBvZiB0aGUgdmljdGltcyB0byBiZSBjdXQsIGFuZCBtaXggd2luZSB0aGF0IHdlIG1heSBtYWtlIGRyaW5rLW9mZmVyaW5ncyB0byBOZXB0dW5lLCBhbmQgdGhlIG90aGVyIGltbW9ydGFscywgYW5kIHRoZW4gZ28gdG8gYmVkLCBmb3IgaXQgaXMgYmVkIHRpbWUuIFBlb3BsZSBzaG91bGQgZ28gYXdheSBlYXJseSBhbmQgbm90IGtlZXAgbGF0ZSBob3VycyBhdCBhIHJlbGlnaW91cyBmZXN0aXZhbC4iDQoNClRodXMgc3Bva2UgdGhlIGRhdWdodGVyIG9mIEpvdmUsIGFuZCB0aGV5IG9iZXllZCBoZXIgc2F5aW5nLiBNZW4gc2VydmFudHMgcG91cmVkIHdhdGVyIG92ZXIgdGhlIGhhbmRzIG9mIHRoZSBndWVzdHMsIHdoaWxlIHBhZ2VzIGZpbGxlZCB0aGUgbWl4aW5nLWJvd2xzIHdpdGggd2luZSBhbmQgd2F0ZXIsIGFuZCBoYW5kZWQgaXQgcm91bmQgYWZ0ZXIgZ2l2aW5nIGV2ZXJ5IG1hbiBoaXMgZHJpbmstb2ZmZXJpbmc7IHRoZW4gdGhleSB0aHJldyB0aGUgdG9uZ3VlcyBvZiB0aGUgdmljdGltcyBpbnRvIHRoZSBmaXJlLCBhbmQgc3Rvb2QgdXAgdG8gbWFrZSB0aGVpciBkcmluay1vZmZlcmluZ3MuIFdoZW4gdGhleSBoYWQgbWFkZSB0aGVpciBvZmZlcmluZ3MgYW5kIGhhZCBkcnVuayBlYWNoIGFzIG11Y2ggYXMgaGUgd2FzIG1pbmRlZCwgTWluZXJ2YSBhbmQgVGVsZW1hY2h1cyB3ZXJlIGZvcmdvaW5nIG9uIGJvYXJkIHRoZWlyIHNoaXAsIGJ1dCBOZXN0b3IgY2F1Z2h0IHRoZW0gdXAgYXQgb25jZSBhbmQgc3RheWVkIHRoZW0uDQoNCiJIZWF2ZW4gYW5kIHRoZSBpbW1vcnRhbCBnb2RzLCIgaGUgZXhjbGFpbWVkLCAiZm9yYmlkIHRoYXQgeW91IHNob3VsZCBsZWF2ZSBteSBob3VzZSB0byBnbyBvbiBib2FyZCBvZiBhIHNoaXAuIERvIHlvdSB0aGluayBJIGFtIHNvIHBvb3IgYW5kIHNob3J0IG9mIGNsb3RoZXMsIG9yIHRoYXQgSSBoYXZlIHNvIGZldyBjbG9ha3MgYW5kIGFzIHRvIGJlIHVuYWJsZSB0byBmaW5kIGNvbWZvcnRhYmxlIGJlZHMgYm90aCBmb3IgbXlzZWxmIGFuZCBmb3IgbXkgZ3Vlc3RzPyBMZXQgbWUgdGVsbCB5b3UgSSBoYXZlIHN0b3JlIGJvdGggb2YgcnVncyBhbmQgY2xvYWtzLCBhbmQgc2hhbGwgbm90IHBlcm1pdCB0aGUgc29uIG9mIG15IG9sZCBmcmllbmQgVWx5c3NlcyB0byBjYW1wIGRvd24gb24gdGhlIGRlY2sgb2YgYSBzaGlwLSBub3Qgd2hpbGUgSSBsaXZlLSBub3IgeWV0IHdpbGwgbXkgc29ucyBhZnRlciBtZSwgYnV0IHRoZXkgd2lsbCBrZWVwIG9wZW4gaG91c2UgYXMgaGF2ZSBkb25lLiINCg0KVGhlbiBNaW5lcnZhIGFuc3dlcmVkLCAiU2lyLCB5b3UgaGF2ZSBzcG9rZW4gd2VsbCwgYW5kIGl0IHdpbGwgYmUgbXVjaCBiZXR0ZXIgdGhhdCBUZWxlbWFjaHVzIHNob3VsZCBkbyBhcyB5b3UgaGF2ZSBzYWlkOyBoZSwgdGhlcmVmb3JlLCBzaGFsbCByZXR1cm4gd2l0aCB5b3UgYW5kIHNsZWVwIGF0IHlvdXIgaG91c2UsIGJ1dCBJIG11c3QgZ28gYmFjayB0byBnaXZlIG9yZGVycyB0byBteSBjcmV3LCBhbmQga2VlcCB0aGVtIGluIGdvb2QgaGVhcnQuIEkgYW0gdGhlIG9ubHkgb2xkZXIgcGVyc29uIGFtb25nIHRoZW07IHRoZSByZXN0IGFyZSBhbGwgeW91bmcgbWVuIG9mIFRlbGVtYWNodXMnIG93biBhZ2UsIHdobyBoYXZlIHRha2VuIHRoaXMgdm95YWdlIG91dCBvZiBmcmllbmRzaGlwOyBzbyBJIG11c3QgcmV0dXJuIHRvIHRoZSBzaGlwIGFuZCBzbGVlcCB0aGVyZS4gTW9yZW92ZXIgdG8tbW9ycm93IEkgbXVzdCBnbyB0byB0aGUgQ2F1Y29uaWFucyB3aGVyZSBJIGhhdmUgYSBsYXJnZSBzdW0gb2YgbW9uZXkgbG9uZyBvd2luZyB0byBtZS4gQXMgZm9yIFRlbGVtYWNodXMsIG5vdyB0aGF0IGhlIGlzIHlvdXIgZ3Vlc3QsIHNlbmQgaGltIHRvIExhY2VkYWVtb24gaW4gYSBjaGFyaW90LCBhbmQgbGV0IG9uZSBvZiB5b3VyIHNvbnMgZ28gd2l0aCBoaW0uIEJlIHBsZWFzZWQgYWxzbyB0byBwcm92aWRlIGhpbSB3aXRoIHlvdXIgYmVzdCBhbmQgZmxlZXRlc3QgaG9yc2VzLiINCg0KV2hlbiBzaGUgaGFkIHRodXMgc3Bva2VuLCBzaGUgZmxldyBhd2F5IGluIHRoZSBmb3JtIG9mIGFuIGVhZ2xlLCBhbmQgYWxsIG1hcnZlbGxlZCBhcyB0aGV5IGJlaGVsZCBpdC4gTmVzdG9yIHdhcyBhc3RvbmlzaGVkLCBhbmQgdG9vayBUZWxlbWFjaHVzIGJ5IHRoZSBoYW5kLiAiTXkgZnJpZW5kLCIgc2FpZCBoZSwgIkkgc2VlIHRoYXQgeW91IGFyZSBnb2luZyB0byBiZSBhIGdyZWF0IGhlcm8gc29tZSBkYXksIHNpbmNlIHRoZSBnb2RzIHdhaXQgdXBvbiB5b3UgdGh1cyB3aGlsZSB5b3UgYXJlIHN0aWxsIHNvIHlvdW5nLiBUaGlzIGNhbiBoYXZlIGJlZW4gbm9uZSBvdGhlciBvZiB0aG9zZSB3aG8gZHdlbGwgaW4gaGVhdmVuIHRoYW4gSm92ZSdzIHJlZG91YnRhYmxlIGRhdWdodGVyLCB0aGUgVHJpdG8tYm9ybiwgd2hvIHNob3dlZCBzdWNoIGZhdm91ciB0b3dhcmRzIHlvdXIgYnJhdmUgZmF0aGVyIGFtb25nIHRoZSBBcmdpdmVzLiIgIkhvbHkgcXVlZW4sIiBoZSBjb250aW51ZWQsICJ2b3VjaHNhZmUgdG8gc2VuZCBkb3duIHRoeSBncmFjZSB1cG9uIG15c2VsZiwgbXkgZ29vZCB3aWZlLCBhbmQgbXkgY2hpbGRyZW4uIEluIHJldHVybiwgSSB3aWxsIG9mZmVyIHlvdSBpbiBzYWNyaWZpY2UgYSBicm9hZC1icm93ZWQgaGVpZmVyIG9mIGEgeWVhciBvbGQsIHVuYnJva2VuLCBhbmQgbmV2ZXIgeWV0IGJyb3VnaHQgYnkgbWFuIHVuZGVyIHRoZSB5b2tlLiBJIHdpbGwgZ2lsZCBoZXIgaG9ybnMsIGFuZCB3aWxsIG9mZmVyIGhlciB1cCB0byB5b3UgaW4gc2FjcmlmaWNlLiINCg0KVGh1cyBkaWQgaGUgcHJheSwgYW5kIE1pbmVydmEgaGVhcmQgaGlzIHByYXllci4gSGUgdGhlbiBsZWQgdGhlIHdheSB0byBoaXMgb3duIGhvdXNlLCBmb2xsb3dlZCBieSBoaXMgc29ucyBhbmQgc29ucy1pbi1sYXcuIFdoZW4gdGhleSBoYWQgZ290IHRoZXJlIGFuZCBoYWQgdGFrZW4gdGhlaXIgcGxhY2VzIG9uIHRoZSBiZW5jaGVzIGFuZCBzZWF0cywgaGUgbWl4ZWQgdGhlbSBhIGJvd2wgb2Ygc3dlZXQgd2luZSB0aGF0IHdhcyBlbGV2ZW4geWVhcnMgb2xkIHdoZW4gdGhlIGhvdXNla2VlcGVyIHRvb2sgdGhlIGxpZCBvZmYgdGhlIGphciB0aGF0IGhlbGQgaXQuIEFzIGhlIG1peGVkIHRoZSB3aW5lLCBoZSBwcmF5ZWQgbXVjaCBhbmQgbWFkZSBkcmluay1vZmZlcmluZ3MgdG8gTWluZXJ2YSwgZGF1Z2h0ZXIgb2YgQWVnaXMtYmVhcmluZyBKb3ZlLiBUaGVuLCB3aGVuIHRoZXkgaGFkIG1hZGUgdGhlaXIgZHJpbmstb2ZmZXJpbmdzIGFuZCBoYWQgZHJ1bmsgZWFjaCBhcyBtdWNoIGFzIGhlIHdhcyBtaW5kZWQsIHRoZSBvdGhlcnMgd2VudCBob21lIHRvIGJlZCBlYWNoIGluIGhpcyBvd24gYWJvZGU7IGJ1dCBOZXN0b3IgcHV0IFRlbGVtYWNodXMgdG8gc2xlZXAgaW4gdGhlIHJvb20gdGhhdCB3YXMgb3ZlciB0aGUgZ2F0ZXdheSBhbG9uZyB3aXRoIFBpc2lzdHJhdHVzLCB3aG8gd2FzIHRoZSBvbmx5IHVubWFycmllZCBzb24gbm93IGxlZnQgaGltLiBBcyBmb3IgaGltc2VsZiwgaGUgc2xlcHQgaW4gYW4gaW5uZXIgcm9vbSBvZiB0aGUgaG91c2UsIHdpdGggdGhlIHF1ZWVuIGhpcyB3aWZlIGJ5IGhpcyBzaWRlLg0KDQpOb3cgd2hlbiB0aGUgY2hpbGQgb2YgbW9ybmluZywgcm9zeS1maW5nZXJlZCBEYXduLCBhcHBlYXJlZCwgTmVzdG9yIGxlZnQgaGlzIGNvdWNoIGFuZCB0b29rIGhpcyBzZWF0IG9uIHRoZSBiZW5jaGVzIG9mIHdoaXRlIGFuZCBwb2xpc2hlZCBtYXJibGUgdGhhdCBzdG9vZCBpbiBmcm9udCBvZiBoaXMgaG91c2UuIEhlcmUgYWZvcmV0aW1lIHNhdCBOZWxldXMsIHBlZXIgb2YgZ29kcyBpbiBjb3Vuc2VsLCBidXQgaGUgd2FzIG5vdyBkZWFkLCBhbmQgaGFkIGdvbmUgdG8gdGhlIGhvdXNlIG9mIEhhZGVzOyBzbyBOZXN0b3Igc2F0IGluIGhpcyBzZWF0LCBzY2VwdHJlIGluIGhhbmQsIGFzIGd1YXJkaWFuIG9mIHRoZSBwdWJsaWMgd2VhbC4gSGlzIHNvbnMgYXMgdGhleSBsZWZ0IHRoZWlyIHJvb21zIGdhdGhlcmVkIHJvdW5kIGhpbSwgRWNoZXBocm9uLCBTdHJhdGl1cywgUGVyc2V1cywgQXJldHVzLCBhbmQgVGhyYXN5bWVkZXM7IHRoZSBzaXh0aCBzb24gd2FzIFBpc2lzdHJhdHVzLCBhbmQgd2hlbiBUZWxlbWFjaHVzIGpvaW5lZCB0aGVtIHRoZXkgbWFkZSBoaW0gc2l0IHdpdGggdGhlbS4gTmVzdG9yIHRoZW4gYWRkcmVzc2VkIHRoZW0uDQoNCiJNeSBzb25zLCIgc2FpZCBoZSwgIm1ha2UgaGFzdGUgdG8gZG8gYXMgSSBzaGFsbCBiaWQgeW91LiBJIHdpc2ggZmlyc3QgYW5kIGZvcmVtb3N0IHRvIHByb3BpdGlhdGUgdGhlIGdyZWF0IGdvZGRlc3MgTWluZXJ2YSwgd2hvIG1hbmlmZXN0ZWQgaGVyc2VsZiB2aXNpYmx5IHRvIG1lIGR1cmluZyB5ZXN0ZXJkYXkncyBmZXN0aXZpdGllcy4gR28sIHRoZW4sIG9uZSBvciBvdGhlciBvZiB5b3UgdG8gdGhlIHBsYWluLCB0ZWxsIHRoZSBzdG9ja21hbiB0byBsb29rIG1lIG91dCBhIGhlaWZlciwgYW5kIGNvbWUgb24gaGVyZSB3aXRoIGl0IGF0IG9uY2UuIEFub3RoZXIgbXVzdCBnbyB0byBUZWxlbWFjaHVzJ3Mgc2hpcCwgYW5kIGludml0ZSBhbGwgdGhlIGNyZXcsIGxlYXZpbmcgdHdvIG1lbiBvbmx5IGluIGNoYXJnZSBvZiB0aGUgdmVzc2VsLiBTb21lIG9uZSBlbHNlIHdpbGwgcnVuIGFuZCBmZXRjaCBMYWVyY2V1cyB0aGUgZ29sZHNtaXRoIHRvIGdpbGQgdGhlIGhvcm5zIG9mIHRoZSBoZWlmZXIuIFRoZSByZXN0LCBzdGF5IGFsbCBvZiB5b3Ugd2hlcmUgeW91IGFyZTsgdGVsbCB0aGUgbWFpZHMgaW4gdGhlIGhvdXNlIHRvIHByZXBhcmUgYW4gZXhjZWxsZW50IGRpbm5lciwgYW5kIHRvIGZldGNoIHNlYXRzLCBhbmQgbG9ncyBvZiB3b29kIGZvciBhIGJ1cm50IG9mZmVyaW5nLiBUZWxsIHRoZW0gYWxzby0gdG8gYnJpbmcgbWUgc29tZSBjbGVhciBzcHJpbmcgd2F0ZXIuIg0KDQpPbiB0aGlzIHRoZXkgaHVycmllZCBvZmYgb24gdGhlaXIgc2V2ZXJhbCBlcnJhbmRzLiBUaGUgaGVpZmVyIHdhcyBicm91Z2h0IGluIGZyb20gdGhlIHBsYWluLCBhbmQgVGVsZW1hY2h1cydzIGNyZXcgY2FtZSBmcm9tIHRoZSBzaGlwOyB0aGUgZ29sZHNtaXRoIGJyb3VnaHQgdGhlIGFudmlsLCBoYW1tZXIsIGFuZCB0b25ncywgd2l0aCB3aGljaCBoZSB3b3JrZWQgaGlzIGdvbGQsIGFuZCBNaW5lcnZhIGhlcnNlbGYgY2FtZSB0byB0aGUgc2FjcmlmaWNlLiBOZXN0b3IgZ2F2ZSBvdXQgdGhlIGdvbGQsIGFuZCB0aGUgc21pdGggZ2lsZGVkIHRoZSBob3JucyBvZiB0aGUgaGVpZmVyIHRoYXQgdGhlIGdvZGRlc3MgbWlnaHQgaGF2ZSBwbGVhc3VyZSBpbiB0aGVpciBiZWF1dHkuIFRoZW4gU3RyYXRpdXMgYW5kIEVjaGVwaHJvbiBicm91Z2h0IGhlciBpbiBieSB0aGUgaG9ybnM7IEFyZXR1cyBmZXRjaGVkIHdhdGVyIGZyb20gdGhlIGhvdXNlIGluIGEgZXdlciB0aGF0IGhhZCBhIGZsb3dlciBwYXR0ZXJuIG9uIGl0LCBhbmQgaW4gaGlzIG90aGVyIGhhbmQgaGUgaGVsZCBhIGJhc2tldCBvZiBiYXJsZXkgbWVhbDsgc3R1cmR5IFRocmFzeW1lZGVzIHN0b29kIGJ5IHdpdGggYSBzaGFycCBheGUsIHJlYWR5IHRvIHN0cmlrZSB0aGUgaGVpZmVyLCB3aGlsZSBQZXJzZXVzIGhlbGQgYSBidWNrZXQuIFRoZW4gTmVzdG9yIGJlZ2FuIHdpdGggd2FzaGluZyBoaXMgaGFuZHMgYW5kIHNwcmlua2xpbmcgdGhlIGJhcmxleSBtZWFsLCBhbmQgaGUgb2ZmZXJlZCBtYW55IGEgcHJheWVyIHRvIE1pbmVydmEgYXMgaGUgdGhyZXcgYSBsb2NrIGZyb20gdGhlIGhlaWZlcidzIGhlYWQgdXBvbiB0aGUgZmlyZS4NCg0KV2hlbiB0aGV5IGhhZCBkb25lIHByYXlpbmcgYW5kIHNwcmlua2xpbmcgdGhlIGJhcmxleSBtZWFsIFRocmFzeW1lZGVzIGRlYWx0IGhpcyBibG93LCBhbmQgYnJvdWdodCB0aGUgaGVpZmVyIGRvd24gd2l0aCBhIHN0cm9rZSB0aGF0IGN1dCB0aHJvdWdoIHRoZSB0ZW5kb25zIGF0IHRoZSBiYXNlIG9mIGhlciBuZWNrLCB3aGVyZW9uIHRoZSBkYXVnaHRlcnMgYW5kIGRhdWdodGVycy1pbi1sYXcgb2YgTmVzdG9yLCBhbmQgaGlzIHZlbmVyYWJsZSB3aWZlIEV1cnlkaWNlIChzaGUgd2FzIGVsZGVzdCBkYXVnaHRlciB0byBDbHltZW51cykgc2NyZWFtZWQgd2l0aCBkZWxpZ2h0LiBUaGVuIHRoZXkgbGlmdGVkIHRoZSBoZWlmZXIncyBoZWFkIGZyb20gb2ZmIHRoZSBncm91bmQsIGFuZCBQaXNpc3RyYXR1cyBjdXQgaGVyIHRocm9hdC4gV2hlbiBzaGUgaGFkIGRvbmUgYmxlZWRpbmcgYW5kIHdhcyBxdWl0ZSBkZWFkLCB0aGV5IGN1dCBoZXIgdXAuIFRoZXkgY3V0IG91dCB0aGUgdGhpZ2ggYm9uZXMgYWxsIGluIGR1ZSBjb3Vyc2UsIHdyYXBwZWQgdGhlbSByb3VuZCBpbiB0d28gbGF5ZXJzIG9mIGZhdCwgYW5kIHNldCBzb21lIHBpZWNlcyBvZiByYXcgbWVhdCBvbiB0aGUgdG9wIG9mIHRoZW07IHRoZW4gTmVzdG9yIGxhaWQgdGhlbSB1cG9uIHRoZSB3b29kIGZpcmUgYW5kIHBvdXJlZCB3aW5lIG92ZXIgdGhlbSwgd2hpbGUgdGhlIHlvdW5nIG1lbiBzdG9vZCBuZWFyIGhpbSB3aXRoIGZpdmUtcHJvbmdlZCBzcGl0cyBpbiB0aGVpciBoYW5kcy4gV2hlbiB0aGUgdGhpZ2hzIHdlcmUgYnVybmVkIGFuZCB0aGV5IGhhZCB0YXN0ZWQgdGhlIGlud2FyZCBtZWF0cywgdGhleSBjdXQgdGhlIHJlc3Qgb2YgdGhlIG1lYXQgdXAgc21hbGwsIHB1dCB0aGUgcGllY2VzIG9uIHRoZSBzcGl0cyBhbmQgdG9hc3RlZCB0aGVtIG92ZXIgdGhlIGZpcmUuDQoNCk1lYW53aGlsZSBsb3ZlbHkgUG9seWNhc3RlLCBOZXN0b3IncyB5b3VuZ2VzdCBkYXVnaHRlciwgd2FzaGVkIFRlbGVtYWNodXMuIFdoZW4gc2hlIGhhZCB3YXNoZWQgaGltIGFuZCBhbm9pbnRlZCBoaW0gd2l0aCBvaWwsIHNoZSBicm91Z2h0IGhpbSBhIGZhaXIgbWFudGxlIGFuZCBzaGlydCwgYW5kIGhlIGxvb2tlZCBsaWtlIGEgZ29kIGFzIGhlIGNhbWUgZnJvbSB0aGUgYmF0aCBhbmQgdG9vayBoaXMgc2VhdCBieSB0aGUgc2lkZSBvZiBOZXN0b3IuIFdoZW4gdGhlIG91dGVyIG1lYXRzIHdlcmUgZG9uZSB0aGV5IGRyZXcgdGhlbSBvZmYgdGhlIHNwaXRzIGFuZCBzYXQgZG93biB0byBkaW5uZXIgd2hlcmUgdGhleSB3ZXJlIHdhaXRlZCB1cG9uIGJ5IHNvbWUgd29ydGh5IGhlbmNobWVuLCB3aG8ga2VwdCBwb3VyaW5nIHRoZW0gb3V0IHRoZWlyIHdpbmUgaW4gY3VwcyBvZiBnb2xkLiBBcyBzb29uIGFzIHRoZXkgaGFkIGhhZCBoYWQgZW5vdWdoIHRvIGVhdCBhbmQgZHJpbmsgTmVzdG9yIHNhaWQsICJTb25zLCBwdXQgVGVsZW1hY2h1cydzIGhvcnNlcyB0byB0aGUgY2hhcmlvdCB0aGF0IGhlIG1heSBzdGFydCBhdCBvbmNlLiINCg0KVGh1cyBkaWQgaGUgc3BlYWssIGFuZCB0aGV5IGRpZCBldmVuIGFzIGhlIGhhZCBzYWlkLCBhbmQgeW9rZWQgdGhlIGZsZWV0IGhvcnNlcyB0byB0aGUgY2hhcmlvdC4gVGhlIGhvdXNla2VlcGVyIHBhY2tlZCB0aGVtIHVwIGEgcHJvdmlzaW9uIG9mIGJyZWFkLCB3aW5lLCBhbmQgc3dlZXRtZWF0cyBmaXQgZm9yIHRoZSBzb25zIG9mIHByaW5jZXMuIFRoZW4gVGVsZW1hY2h1cyBnb3QgaW50byB0aGUgY2hhcmlvdCwgd2hpbGUgUGlzaXN0cmF0dXMgZ2F0aGVyZWQgdXAgdGhlIHJlaW5zIGFuZCB0b29rIGhpcyBzZWF0IGJlc2lkZSBoaW0uIEhlIGxhc2hlZCB0aGUgaG9yc2VzIG9uIGFuZCB0aGV5IGZsZXcgZm9yd2FyZCBub3RoaW5nIGxvdGggaW50byB0aGUgb3BlbiBjb3VudHJ5LCBsZWF2aW5nIHRoZSBoaWdoIGNpdGFkZWwgb2YgUHlsb3MgYmVoaW5kIHRoZW0uIEFsbCB0aGF0IGRheSBkaWQgdGhleSB0cmF2ZWwsIHN3YXlpbmcgdGhlIHlva2UgdXBvbiB0aGVpciBuZWNrcyB0aWxsIHRoZSBzdW4gd2VudCBkb3duIGFuZCBkYXJrbmVzcyB3YXMgb3ZlciBhbGwgdGhlIGxhbmQuIFRoZW4gdGhleSByZWFjaGVkIFBoZXJhZSB3aGVyZSBEaW9jbGVzIGxpdmVkLCB3aG8gd2FzIHNvbiB0byBPcnRpbG9jaHVzIGFuZCBncmFuZHNvbiB0byBBbHBoZXVzLiBIZXJlIHRoZXkgcGFzc2VkIHRoZSBuaWdodCBhbmQgRGlvY2xlcyBlbnRlcnRhaW5lZCB0aGVtIGhvc3BpdGFibHkuIFdoZW4gdGhlIGNoaWxkIG9mIG1vcm5pbmcsIHJvc3ktZmluZ2VyZWQgRGF3bjsgYXBwZWFyZWQsIHRoZXkgYWdhaW4geW9rZWQgdGhlaXIgaG9yc2VzIGFuZCBkcm92ZSBvdXQgdGhyb3VnaCB0aGUgZ2F0ZXdheSB1bmRlciB0aGUgZWNob2luZyBnYXRlaG91c2UuIFBpc2lzdHJhdHVzIGxhc2hlZCB0aGUgaG9yc2VzIG9uIGFuZCB0aGV5IGZsZXcgZm9yd2FyZCBub3RoaW5nIGxvdGg7IHByZXNlbnRseSB0aGV5IGNhbWUgdG8gdGhlIGNvcm4gbGFuZHMgT2YgdGhlIG9wZW4gY291bnRyeSwgYW5kIGluIHRoZSBjb3Vyc2Ugb2YgdGltZSBjb21wbGV0ZWQgdGhlaXIgam91cm5leSwgc28gd2VsbCBkaWQgdGhlaXIgc3RlZWRzIHRha2UgdGhlbS4NCg0KTm93IHdoZW4gdGhlIHN1biBoYWQgc2V0IGFuZCBkYXJrbmVzcyB3YXMgb3ZlciB0aGUgbGFuZC4="
          },
          "response": {
            "data": "SGVsbG8sIHdvcmxkIQ=="
          }
        }
      ]
    }
  ],
  "_links": {
    "self": {
      "href": "http://localhost:44762/imposters/5555"
    }
  }
}

Here's what the response would have looked like had we not set the endOfRequestResolver. Notice that one logical message got split into multiple requests:


HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json; charset=utf-8
Content-Length: 184268
Date: Sun, 18 Jan 2015 14:59:36 GMT
Connection: keep-alive

{
  "protocol": "tcp",
  "port": 5555,
  "mode": "binary",
  "requests": [
    {
      "requestFrom": "127.0.0.1:53172",
      "data": "AAEK/0Jvb2sgSQ0KDQpUZWxsIG1lLCBPIG11c2UsIG9mIHRoYXQgaW5nZW5pb3VzIGhlcm8gd2hvIHRyYXZlbGxlZCBmYXIgYW5kIHdpZGUgYWZ0ZXIgaGUgaGFkIHNhY2tlZCB0aGUgZmFtb3VzIHRvd24gb2YgVHJveS4gTWFueSBjaXRpZXMgZGlkIGhlIHZpc2l0LCBhbmQgbWFueSB3ZXJlIHRoZSBuYXRpb25zIHdpdGggd2hvc2UgbWFubmVycyBhbmQgY3VzdG9tcyBoZSB3YXMgYWNxdWFpbnRlZDsgbW9yZW92ZXIgaGUgc3VmZmVyZWQgbXVjaCBieSBzZWEgd2hpbGUgdHJ5aW5nIHRvIHNhdmUgaGlzIG93biBsaWZlIGFuZCBicmluZyBoaXMgbWVuIHNhZmVseSBob21lOyBidXQgZG8gd2hhdCBoZSBtaWdodCBoZSBjb3VsZCBub3Qgc2F2ZSBoaXMgbWVuLCBmb3IgdGhleSBwZXJpc2hlZCB0aHJvdWdoIHRoZWlyIG93biBzaGVlciBmb2xseSBpbiBlYXRpbmcgdGhlIGNhdHRsZSBvZiB0aGUgU3VuLWdvZCBIeXBlcmlvbjsgc28gdGhlIGdvZCBwcmV2ZW50ZWQgdGhlbSBmcm9tIGV2ZXIgcmVhY2hpbmcgaG9tZS4gVGVsbCBtZSwgdG9vLCBhYm91dCBhbGwgdGhlc2UgdGhpbmdzLCBPIGRhdWdodGVyIG9mIEpvdmUsIGZyb20gd2hhdHNvZXZlciBzb3VyY2UgeW91IG1heSBrbm93IHRoZW0uDQoNClNvIG5vdyBhbGwgd2hvIGVzY2FwZWQgZGVhdGggaW4gYmF0dGxlIG9yIGJ5IHNoaXB3cmVjayBoYWQgZ290IHNhZmVseSBob21lIGV4Y2VwdCBVbHlzc2VzLCBhbmQgaGUsIHRob3VnaCBoZSB3YXMgbG9uZ2luZyB0byByZXR1cm4gdG8gaGlzIHdpZmUgYW5kIGNvdW50cnksIHdhcyBkZXRhaW5lZCBieSB0aGUgZ29kZGVzcyBDYWx5cHNvLCB3aG8gaGFkIGdvdCBoaW0gaW50byBhIGxhcmdlIGNhdmUgYW5kIHdhbnRlZCB0byBtYXJyeSBoaW0uIEJ1dCBhcyB5ZWFycyB3ZW50IGJ5LCB0aGVyZSBjYW1lIGEgdGltZSB3aGVuIHRoZSBnb2RzIHNldHRsZWQgdGhhdCBoZSBzaG91bGQgZ28gYmFjayB0byBJdGhhY2E7IGV2ZW4gdGhlbiwgaG93ZXZlciwgd2hlbiBoZSB3YXMgYW1vbmcgaGlzIG93biBwZW9wbGUsIGhpcyB0cm91YmxlcyB3ZXJlIG5vdCB5ZXQgb3ZlcjsgbmV2ZXJ0aGVsZXNzIGFsbCB0aGUgZ29kcyBoYWQgbm93IGJlZ3VuIHRvIHBpdHkgaGltIGV4Y2VwdCBOZXB0dW5lLCB3aG8gc3RpbGwgcGVyc2VjdXRlZCBoaW0gd2l0aG91dCBjZWFzaW5nIGFuZCB3b3VsZCBub3QgbGV0IGhpbSBnZXQgaG9tZS4NCg0KTm93IE5lcHR1bmUgaGFkIGdvbmUgb2ZmIHRvIHRoZSBFdGhpb3BpYW5zLCB3aG8gYXJlIGF0IHRoZSB3b3JsZCdzIGVuZCwgYW5kIGxpZSBpbiB0d28gaGFsdmVzLCB0aGUgb25lIGxvb2tpbmcgV2VzdCBhbmQgdGhlIG90aGVyIEVhc3QuIEhlIGhhZCBnb25lIHRoZXJlIHRvIGFjY2VwdCBhIGhlY2F0b21iIG9mIHNoZWVwIGFuZCBveGVuLCBhbmQgd2FzIGVuam95aW5nIGhpbXNlbGYgYXQgaGlzIGZlc3RpdmFsOyBidXQgdGhlIG90aGVyIGdvZHMgbWV0IGluIHRoZSBob3VzZSBvZiBPbHltcGlhbiBKb3ZlLCBhbmQgdGhlIHNpcmUgb2YgZ29kcyBhbmQgbWVuIHNwb2tlIGZpcnN0LiBBdCB0aGF0IG1vbWVudCBoZSB3YXMgdGhpbmtpbmcgb2YgQWVnaXN0aHVzLCB3aG8gaGFkIGJlZW4ga2lsbGVkIGJ5IEFnYW1lbW5vbidzIHNvbiBPcmVzdGVzOyBzbyBoZSBzYWlkIHRvIHRoZSBvdGhlciBnb2RzOg0KDQoiU2VlIG5vdywgaG93IG1lbiBsYXkgYmxhbWUgdXBvbiB1cyBnb2RzIGZvciB3aGF0IGlzIGFmdGVyIGFsbCBub3RoaW5nIGJ1dCB0aGVpciBvd24gZm9sbHkuIExvb2sgYXQgQWVnaXN0aHVzOyBoZSBtdXN0IG5lZWRzIG1ha2UgbG92ZSB0byBBZ2FtZW1ub24ncyB3aWZlIHVucmlnaHRlb3VzbHkgYW5kIHRoZW4ga2lsbCBBZ2FtZW1ub24sIHRob3VnaCBoZSBrbmV3IGl0IHdvdWxkIGJlIHRoZSBkZWF0aCBvZiBoaW07IGZvciBJIHNlbnQgTWVyY3VyeSB0byB3YXJuIGhpbSBub3QgdG8gZG8gZWl0aGVyIG9mIHRoZXNlIHRoaW5ncywgaW5hc211Y2ggYXMgT3Jlc3RlcyB3b3VsZCBiZSBzdXJlIHRvIHRha2UgaGlzIHJldmVuZ2Ugd2hlbiBoZSBncmV3IHVwIGFuZCB3YW50ZWQgdG8gcmV0dXJuIGhvbWUuIE1lcmN1cnkgdG9sZCBoaW0gdGhpcyBpbiBhbGwgZ29vZCB3aWxsIGJ1dCBoZSB3b3VsZCBub3QgbGlzdGVuLCBhbmQgbm93IGhlIGhhcyBwYWlkIGZvciBldmVyeXRoaW5nIGluIGZ1bGwuIg0KDQpUaGVuIE1pbmVydmEgc2FpZCwgIkZhdGhlciwgc29uIG9mIFNhdHVybiwgS2luZyBvZiBraW5ncywgaXQgc2VydmVkIEFlZ2lzdGh1cyByaWdodCwgYW5kIHNvIGl0IHdvdWxkIGFueSBvbmUgZWxzZSB3aG8gZG9lcyBhcyBoZSBkaWQ7IGJ1dCBBZWdpc3RodXMgaXMgbmVpdGhlciBoZXJlIG5vciB0aGVyZTsgaXQgaXMgZm9yIFVseXNzZXMgdGhhdCBteSBoZWFydCBibGVlZHMsIHdoZW4gSSB0aGluayBvZiBoaXMgc3VmZmVyaW5ncyBpbiB0aGF0IGxvbmVseSBzZWEtZ2lydCBpc2xhbmQsIGZhciBhd2F5LCBwb29yIG1hbiwgZnJvbSBhbGwgaGlzIGZyaWVuZHMuIEl0IGlzIGFuIGlzbGFuZCBjb3ZlcmVkIHdpdGggZm9yZXN0LCBpbiB0aGUgdmVyeSBtaWRkbGUgb2YgdGhlIHNlYSwgYW5kIGEgZ29kZGVzcyBsaXZlcyB0aGVyZSwgZGF1Z2h0ZXIgb2YgdGhlIG1hZ2ljaWFuIEF0bGFzLCB3aG8gbG9va3MgYWZ0ZXIgdGhlIGJvdHRvbSBvZiB0aGUgb2NlYW4sIGFuZCBjYXJyaWVzIHRoZSBncmVhdCBjb2x1bW5zIHRoYXQga2VlcCBoZWF2ZW4gYW5kIGVhcnRoIGFzdW5kZXIuIFRoaXMgZGF1Z2h0ZXIgb2YgQXRsYXMgaGFzIGdvdCBob2xkIG9mIHBvb3IgdW5oYXBweSBVbHlzc2VzLCBhbmQga2VlcHMgdHJ5aW5nIGJ5IGV2ZXJ5IGtpbmQgb2YgYmxhbmRpc2htZW50IHRvIG1ha2UgaGltIGZvcmdldCBoaXMgaG9tZSwgc28gdGhhdCBoZSBpcyB0aXJlZCBvZiBsaWZlLCBhbmQgdGhpbmtzIG9mIG5vdGhpbmcgYnV0IGhvdyBoZSBtYXkgb25jZSBtb3JlIHNlZSB0aGUgc21va2Ugb2YgaGlzIG93biBjaGltbmV5cy4gWW91LCBzaXIsIHRha2Ugbm8gaGVlZCBvZiB0aGlzLCBhbmQgeWV0IHdoZW4gVWx5c3NlcyB3YXMgYmVmb3JlIFRyb3kgZGlkIGhlIG5vdCBwcm9waXRpYXRlIHlvdSB3aXRoIG1hbnkgYSBidXJudCBzYWNyaWZpY2U/IFdoeSB0aGVuIHNob3VsZCB5b3Uga2VlcCBvbiBiZWluZyBzbyBhbmdyeSB3aXRoIGhpbT8iDQoNCkFuZCBKb3ZlIHNhaWQsICJNeSBjaGlsZCwgd2hhdCBhcmUgeW91IHRhbGtpbmcgYWJvdXQ/IEhvdyBjYW4gSSBmb3JnZXQgVWx5c3NlcyB0aGFuIHdob20gdGhlcmUgaXMgbm8gbW9yZSBjYXBhYmxlIG1hbiBvbiBlYXJ0aCwgbm9yIG1vcmUgbGliZXJhbCBpbiBoaXMgb2ZmZXJpbmdzIHRvIHRoZSBpbW1vcnRhbCBnb2RzIHRoYXQgbGl2ZSBpbiBoZWF2ZW4/IEJlYXIgaW4gbWluZCwgaG93ZXZlciwgdGhhdCBOZXB0dW5lIGlzIHN0aWxsIGZ1cmlvdXMgd2l0aCBVbHlzc2VzIGZvciBoYXZpbmcgYmxpbmRlZCBhbiBleWUgb2YgUG9seXBoZW11cyBraW5nIG9mIHRoZSBDeWNsb3Blcy4gUG9seXBoZW11cyBpcyBzb24gdG8gTmVwdHVuZSBieSB0aGUgbnltcGggVGhvb3NhLCBkYXVnaHRlciB0byB0aGUgc2VhLWtpbmcgUGhvcmN5czsgdGhlcmVmb3JlIHRob3VnaCBoZSB3aWxsIG5vdCBraWxsIFVseXNzZXMgb3V0cmlnaHQsIGhlIHRvcm1lbnRzIGhpbSBieSBwcmV2ZW50aW5nIGhpbSBmcm9tIGdldHRpbmcgaG9tZS4gU3RpbGwsIGxldCB1cyBsYXkgb3VyIGhlYWRzIHRvZ2V0aGVyIGFuZCBzZWUgaG93IHdlIGNhbiBoZWxwIGhpbSB0byByZXR1cm47IE5lcHR1bmUgd2lsbCB0aGVuIGJlIHBhY2lmaWVkLCBmb3IgaWYgd2UgYXJlIGFsbCBvZiBhIG1pbmQgaGUgY2FuIGhhcmRseSBzdGFuZCBvdXQgYWdhaW5zdCB1cy4iDQoNCkFuZCBNaW5lcnZhIHNhaWQsICJGYXRoZXIsIHNvbiBvZiBTYXR1cm4sIEtpbmcgb2Yga2luZ3MsIGlmLCB0aGVuLCB0aGUgZ29kcyBub3cgbWVhbiB0aGF0IFVseXNzZXMgc2hvdWxkIGdldCBob21lLCB3ZSBzaG91bGQgZmlyc3Qgc2VuZCBNZXJjdXJ5IHRvIHRoZSBPZ3lnaWFuIGlzbGFuZCB0byB0ZWxsIENhbHlwc28gdGhhdCB3ZSBoYXZlIG1hZGUgdXAgb3VyIG1pbmRzIGFuZCB0aGF0IGhlIGlzIHRvIHJldHVybi4gSW4gdGhlIG1lYW50aW1lIEkgd2lsbCBnbyB0byBJdGhhY2EsIHRvIHB1dCBoZWFydCBpbnRvIFVseXNzZXMnIHNvbiBUZWxlbWFjaHVzOyBJIHdpbGwgZW1ib2xkZW4gaGltIHRvIGNhbGwgdGhlIEFjaGFlYW5zIGluIGFzc2VtYmx5LCBhbmQgc3BlYWsgb3V0IHRvIHRoZSBzdWl0b3JzIG9mIGhpcyBtb3RoZXIgUGVuZWxvcGUsIHdobyBwZXJzaXN0IGluIGVhdGluZyB1cCBhbnkgbnVtYmVyIG9mIGhpcyBzaGVlcCBhbmQgb3hlbjsgSSB3aWxsIGFsc28gY29uZHVjdCBoaW0gdG8gU3BhcnRhIGFuZCB0byBQeWxvcywgdG8gc2VlIGlmIGhlIGNhbiBoZWFyIGFueXRoaW5nIGFib3V0IHRoZSByZXR1cm4gb2YgaGlzIGRlYXIgZmF0aGVyLSBmb3IgdGhpcyB3aWxsIG1ha2UgcGVvcGxlIHNwZWFrIHdlbGwgb2YgaGltLiINCg0KU28gc2F5aW5nIHNoZSBib3VuZCBvbiBoZXIgZ2xpdHRlcmluZyBnb2xkZW4gc2FuZGFscywgaW1wZXJpc2hhYmxlLCB3aXRoIHdoaWNoIHNoZSBjYW4gZmx5IGxpa2UgdGhlIHdpbmQgb3ZlciBsYW5kIG9yIHNlYTsgc2hlIGdyYXNwZWQgdGhlIHJlZG91YnRhYmxlIGJyb256ZS1zaG9kIHNwZWFyLCBzbyBzdG91dCBhbmQgc3R1cmR5IGFuZCBzdHJvbmcsIHdoZXJld2l0aCBzaGUgcXVlbGxzIHRoZSByYW5rcyBvZiBoZXJvZXMgd2hvIGhhdmUgZGlzcGxlYXNlZCBoZXIsIGFuZCBkb3duIHNoZSBkYXJ0ZWQgZnJvbSB0aGUgdG9wbW9zdCBzdW1taXRzIG9mIE9seW1wdXMsIHdoZXJlb24gZm9ydGh3aXRoIHNoZSB3YXMgaW4gSXRoYWNhLCBhdCB0aGUgZ2F0ZXdheSBvZiBVbHlzc2VzJyBob3VzZSwgZGlzZ3Vpc2VkIGFzIGEgdmlzaXRvciwgTWVudGVzLCBjaGllZiBvZiB0aGUgVGFwaGlhbnMsIGFuZCBzaGUgaGVsZCBhIGJyb256ZSBzcGVhciBpbiBoZXIgaGFuZC4gVGhlcmUgc2hlIGZvdW5kIHRoZSBsb3JkbHkgc3VpdG9ycyBzZWF0ZWQgb24gaGlkZXMgb2YgdGhlIG94ZW4gd2hpY2ggdGhleSBoYWQga2lsbGVkIGFuZCBlYXRlbiwgYW5kIHBsYXlpbmcgZHJhdWdodHMgaW4gZnJvbnQgb2YgdGhlIGhvdXNlLiBNZW4tc2VydmFudHMgYW5kIHBhZ2VzIHdlcmUgYnVzdGxpbmcgYWJvdXQgdG8gd2FpdCB1cG9uIHRoZW0sIHNvbWUgbWl4aW5nIHdpbmUgd2l0aCB3YXRlciBpbiB0aGUgbWl4aW5nLWJvd2xzLCBzb21lIGNsZWFuaW5nIGRvd24gdGhlIHRhYmxlcyB3aXRoIHdldCBzcG9uZ2VzIGFuZCBsYXlpbmcgdGhlbSBvdXQgYWdhaW4sIGFuZCBzb21lIGN1dHRpbmcgdXAgZ3JlYXQgcXVhbnRpdGllcyBvZiBtZWF0Lg0KDQpUZWxlbWFjaHVzIHNhdyBoZXIgbG9uZyBiZWZvcmUgYW55IG9uZSBlbHNlIGRpZC4gSGUgd2FzIHNpdHRpbmcgbW9vZGlseSBhbW9uZyB0aGUgc3VpdG9ycyB0aGlua2luZyBhYm91dCBoaXMgYnJhdmUgZmF0aGVyLCBhbmQgaG93IGhlIHdvdWxkIHNlbmQgdGhlbSBmbHlpbmcgb3V0IG9mIHRoZSBob3VzZSwgaWYgaGUgd2VyZSB0byBjb21lIHRvIGhpcyBvd24gYWdhaW4gYW5kIGJlIGhvbm91cmVkIGFzIGluIGRheXMgZ29uZSBieS4gVGh1cyBicm9vZGluZyBhcyBoZSBzYXQgYW1vbmcgdGhlbSwgaGUgY2F1Z2h0IHNpZ2h0IG9mIE1pbmVydmEgYW5kIHdlbnQgc3RyYWlnaHQgdG8gdGhlIGdhdGUsIGZvciBoZSB3YXMgdmV4ZWQgdGhhdCBhIHN0cmFuZ2VyIHNob3VsZCBiZSBrZXB0IHdhaXRpbmcgZm9yIGFkbWl0dGFuY2UuIEhlIHRvb2sgaGVyIHJpZ2h0IGhhbmQgaW4gaGlzIG93biwgYW5kIGJhZGUgaGVyIGdpdmUgaGltIGhlciBzcGVhci4gIldlbGNvbWUsIiBzYWlkIGhlLCAidG8gb3VyIGhvdXNlLCBhbmQgd2hlbiB5b3UgaGF2ZSBwYXJ0YWtlbiBvZiBmb29kIHlvdSBzaGFsbCB0ZWxsIHVzIHdoYXQgeW91IGhhdmUgY29tZSBmb3IuIg0KDQpIZSBsZWQgdGhlIHdheSBhcyBoZSBzcG9rZSwgYW5kIE1pbmVydmEgZm9sbG93ZWQgaGltLiBXaGVuIHRoZXkgd2VyZSB3aXRoaW4gaGUgdG9vayBoZXIgc3BlYXIgYW5kIHNldCBpdCBpbiB0aGUgc3BlYXItIHN0YW5kIGFnYWluc3QgYSBzdHJvbmcgYmVhcmluZy1wb3N0IGFsb25nIHdpdGggdGhlIG1hbnkgb3RoZXIgc3BlYXJzIG9mIGhpcyB1bmhhcHB5IGZhdGhlciwgYW5kIGhlIGNvbmR1Y3RlZCBoZXIgdG8gYSByaWNobHkgZGVjb3JhdGVkIHNlYXQgdW5kZXIgd2hpY2ggaGUgdGhyZXcgYSBjbG90aCBvZiBkYW1hc2suIFRoZXJlIHdhcyBhIGZvb3RzdG9vbCBhbHNvIGZvciBoZXIgZmVldCwgYW5kIGhlIHNldCBhbm90aGVyIHNlYXQgbmVhciBoZXIgZm9yIGhpbXNlbGYsIGF3YXkgZnJvbSB0aGUgc3VpdG9ycywgdGhhdCBzaGUgbWlnaHQgbm90IGJlIGFubm95ZWQgd2hpbGUgZWF0aW5nIGJ5IHRoZWlyIG5vaXNlIGFuZCBpbnNvbGVuY2UsIGFuZCB0aGF0IGhlIG1pZ2h0IGFzayBoZXIgbW9yZSBmcmVlbHkgYWJvdXQgaGlzIGZhdGhlci4NCg0KQSBtYWlkIHNlcnZhbnQgdGhlbiBicm91Z2h0IHRoZW0gd2F0ZXIgaW4gYSBiZWF1dGlmdWwgZ29sZGVuIGV3ZXIgYW5kIHBvdXJlZCBpdCBpbnRvIGEgc2lsdmVyIGJhc2luIGZvciB0aGVtIHRvIHdhc2ggdGhlaXIgaGFuZHMsIGFuZCBzaGUgZHJldyBhIGNsZWFuIHRhYmxlIGJlc2lkZSB0aGVtLiBBbiB1cHBlciBzZXJ2YW50IGJyb3VnaHQgdGhlbSBicmVhZCwgYW5kIG9mZmVyZWQgdGhlbSBtYW55IGdvb2QgdGhpbmdzIG9mIHdoYXQgdGhlcmUgd2FzIGluIHRoZSBob3VzZSwgdGhlIGNhcnZlciBmZXRjaGVkIHRoZW0gcGxhdGVzIG9mIGFsbCBtYW5uZXIgb2YgbWVhdHMgYW5kIHNldCBjdXBzIG9mIGdvbGQgYnkgdGhlaXIgc2lkZSwgYW5kIGEgbWFuLXNlcnZhbnQgYnJvdWdodCB0aGVtIHdpbmUgYW5kIHBvdXJlZCBpdCBvdXQgZm9yIHRoZW0uDQoNClRoZW4gdGhlIHN1aXRvcnMgY2FtZSBpbiBhbmQgdG9vayB0aGVpciBwbGFjZXMgb24gdGhlIGJlbmNoZXMgYW5kIHNlYXRzLiBGb3J0aHdpdGggbWVuIHNlcnZhbnRzIHBvdXJlZCB3YXRlciBvdmVyIHRoZWlyIGhhbmRzLCBtYWlkcyB3ZW50IHJvdW5kIHdpdGggdGhlIGJyZWFkLWJhc2tldHMsIHBhZ2VzIGZpbGxlZCB0aGUgbWl4aW5nLWJvd2xzIHdpdGggd2luZSBhbmQgd2F0ZXIsIGFuZCB0aGV5IGxhaWQgdGhlaXIgaGFuZHMgdXBvbiB0aGUgZ29vZCB0aGluZ3MgdGhhdCB3ZXJlIGJlZm9yZSB0aGVtLiBBcyBzb29uIGFzIHRoZXkgaGFkIGhhZCBlbm91Z2ggdG8gZWF0IGFuZCBkcmluayB0aGV5IHdhbnRlZCBtdXNpYyBhbmQgZGFuY2luZywgd2hpY2ggYXJlIHRoZSBjcm93bmluZyBlbWJlbGxpc2htZW50cyBvZiBhIGJhbnF1ZXQsIHNvIGEgc2VydmFudCBicm91Z2h0IGEgbHlyZSB0byBQaGVtaXVzLCB3aG9tIHRoZXkgY29tcGVsbGVkIHBlcmZvcmNlIHRvIHNpbmcgdG8gdGhlbS4gQXMgc29vbiBhcyBoZSB0b3VjaGVkIGhpcyBseXJlIGFuZCBiZWdhbiB0byBzaW5nIFRlbGVtYWNodXMgc3Bva2UgbG93IHRvIE1pbmVydmEsIHdpdGggaGlzIGhlYWQgY2xvc2UgdG8gaGVycyB0aGF0IG5vIG1hbiBtaWdodCBoZWFyLg0KDQoiSSBob3BlLCBzaXIsIiBzYWlkIGhlLCAidGhhdCB5b3Ugd2lsbCBub3QgYmUgb2ZmZW5kZWQgd2l0aCB3aGF0IEkgYW0gZ29pbmcgdG8gc2F5LiBTaW5naW5nIGNvbWVzIGNoZWFwIHRvIHRob3NlIHdobyBkbyBub3QgcGF5IGZvciBpdCwgYW5kIGFsbCB0aGlzIGlzIGRvbmUgYXQgdGhlIGNvc3Qgb2Ygb25lIHdob3NlIGJvbmVzIGxpZSByb3R0aW5nIGluIHNvbWUgd2lsZGVybmVzcyBvciBncmluZGluZyB0byBwb3dkZXIgaW4gdGhlIHN1cmYuIElmIHRoZXNlIG1lbiB3ZXJlIHRvIHNlZSBteSBmYXRoZXIgY29tZSBiYWNrIHRvIEl0aGFjYSB0aGV5IHdvdWxkIHByYXkgZm9yIGxvbmdlciBsZWdzIHJhdGhlciB0aGFuIGEgbG9uZ2VyIHB1cnNlLCBmb3IgbW9uZXkgd291bGQgbm90IHNlcnZlIHRoZW07IGJ1dCBoZSwgYWxhcywgaGFzIGZhbGxlbiBvbiBhbiBpbGwgZmF0ZSwgYW5kIGV2ZW4gd2hlbiBwZW9wbGUgZG8gc29tZXRpbWVzIHNheSB0aGF0IGhlIGlzIGNvbWluZywgd2Ugbm8gbG9uZ2VyIGhlZWQgdGhlbTsgd2Ugc2hhbGwgbmV2ZXIgc2VlIGhpbSBhZ2Fpbi4gQW5kIG5vdywgc2lyLCB0ZWxsIG1lIGFuZCB0ZWxsIG1lIHRydWUsIHdobyB5b3UgYXJlIGFuZCB3aGVyZSB5b3UgY29tZSBmcm9tLiBUZWxsIG1lIG9mIHlvdXIgdG93biBhbmQgcGFyZW50cywgd2hhdCBtYW5uZXIgb2Ygc2hpcCB5b3UgY2FtZSBpbiwgaG93IHlvdXIgY3JldyBicm91Z2h0IHlvdSB0byBJdGhhY2EsIGFuZCBvZiB3aGF0IG5hdGlvbiB0aGV5IGRlY2xhcmVkIHRoZW1zZWx2ZXMgdG8gYmUtIGZvciB5b3UgY2Fubm90IGhhdmUgY29tZSBieSBsYW5kLiBUZWxsIG1lIGFsc28gdHJ1bHksIGZvciBJIHdhbnQgdG8ga25vdywgYXJlIHlvdSBhIHN0cmFuZ2VyIHRvIHRoaXMgaG91c2UsIG9yIGhhdmUgeW91IGJlZW4gaGVyZSBpbiBteSBmYXRoZXIncyB0aW1lPyBJbiB0aGUgb2xkIGRheXMgd2UgaGFkIG1hbnkgdmlzaXRvcnMgZm9yIG15IGZhdGhlciB3ZW50IGFib3V0IG11Y2ggaGltc2VsZi4iDQoNCkFuZCBNaW5lcnZhIGFuc3dlcmVkLCAiSSB3aWxsIHRlbGwgeW91IHRydWx5IGFuZCBwYXJ0aWN1bGFybHkgYWxsIGFib3V0IGl0LiBJIGFtIE1lbnRlcywgc29uIG9mIEFuY2hpYWx1cywgYW5kIEkgYW0gS2luZyBvZiB0aGUgVGFwaGlhbnMuIEkgaGF2ZSBjb21lIGhlcmUgd2l0aCBteSBzaGlwIGFuZCBjcmV3LCBvbiBhIHZveWFnZSB0byBtZW4gb2YgYSBmb3JlaWduIHRvbmd1ZSBiZWluZyBib3VuZCBmb3IgVGVtZXNhIHdpdGggYSBjYXJnbyBvZiBpcm9uLCBhbmQgSSBzaGFsbCBicmluZyBiYWNrIGNvcHBlci4gQXMgZm9yIG15IHNoaXAsIGl0IGxpZXMgb3ZlciB5b25kZXIgb2ZmIHRoZSBvcGVuIGNvdW50cnkgYXdheSBmcm9tIHRoZSB0b3duLCBpbiB0aGUgaGFyYm91ciBSaGVpdGhyb24gdW5kZXIgdGhlIHdvb2RlZCBtb3VudGFpbiBOZXJpdHVtLiBPdXIgZmF0aGVycyB3ZXJlIGZyaWVuZHMgYmVmb3JlIHVzLCBhcyBvbGQgTGFlcnRlcyB3aWxsIHRlbGwgeW91LCBpZiB5b3Ugd2lsbCBnbyBhbmQgYXNrIGhpbS4gVGhleSBzYXksIGhvd2V2ZXIsIHRoYXQgaGUgbmV2ZXIgY29tZXMgdG8gdG93biBub3csIGFuZCBsaXZlcyBieSBoaW1zZWxmIGluIHRoZSBjb3VudHJ5LCBmYXJpbmcgaGFyZGx5LCB3aXRoIGFuIG9sZCB3b21hbiB0byBsb29rIGFmdGVyIGhpbSBhbmQgZ2V0IGhpcyBkaW5uZXIgZm9yIGhpbSwgd2hlbiBoZSBjb21lcyBpbiB0aXJlZCBmcm9tIHBvdHRlcmluZyBhYm91dCBoaXMgdmluZXlhcmQuIFRoZXkgdG9sZCBtZSB5b3VyIGZhdGhlciB3YXMgYXQgaG9tZSBhZ2FpbiwgYW5kIHRoYXQgd2FzIHdoeSBJIGNhbWUsIGJ1dCBpdCBzZWVtcyB0aGUgZ29kcyBhcmUgc3RpbGwga2VlcGluZyBoaW0gYmFjaywgZm9yIGhlIGlzIG5vdCBkZWFkIHlldCBub3Qgb24gdGhlIG1haW5sYW5kLiBJdCBpcyBtb3JlIGxpa2VseSBoZSBpcyBvbiBzb21lIHNlYS1naXJ0IGlzbGFuZCBpbiBtaWQgb2NlYW4sIG9yIGEgcHJpc29uZXIgYW1vbmcgc2F2YWdlcyB3aG8gYXJlIGRldGFpbmluZyBoaW0gYWdhaW5zdCBoaXMgd2lsbCBJIGFtIG5vIHByb3BoZXQsIGFuZCBrbm93IHZlcnkgbGl0dGxlIGFib3V0IG9tZW5zLCBidXQgSSBzcGVhayBhcyBpdCBpcyBib3JuZSBpbiB1cG9uIG1lIGZyb20gaGVhdmVuLCBhbmQgYXNzdXJlIHlvdSB0aGF0IGhlIHdpbGwgbm90IGJlIGF3YXkgbXVjaCBsb25nZXI7IGZvciBoZSBpcyBhIG1hbiBvZiBzdWNoIHJlc291cmNlIHRoYXQgZXZlbiB0aG91Z2ggaGUgd2VyZSBpbiBjaGFpbnMgb2YgaXJvbiBoZSB3b3VsZCBmaW5kIHNvbWUgbWVhbnMgb2YgZ2V0dGluZyBob21lIGFnYWluLiBCdXQgdGVsbCBtZSwgYW5kIHRlbGwgbWUgdHJ1ZSwgY2FuIFVseXNzZXMgcmVhbGx5IGhhdmUgc3VjaCBhIGZpbmUgbG9va2luZyBmZWxsb3cgZm9yIGEgc29uPyBZb3UgYXJlIGluZGVlZCB3b25kZXJmdWxseSBsaWtlIGhpbSBhYm91dCB0aGUgaGVhZCBhbmQgZXllcywgZm9yIHdlIHdlcmUgY2xvc2UgZnJpZW5kcyBiZWZvcmUgaGUgc2V0IHNhaWwgZm9yIFRyb3kgd2hlcmUgdGhlIGZsb3dlciBvZiBhbGwgdGhlIEFyZ2l2ZXMgd2VudCBhbHNvLiBTaW5jZSB0aGF0IHRpbWUgd2UgaGF2ZSBuZXZlciBlaXRoZXIgb2YgdXMgc2VlbiB0aGUgb3RoZXIuIg0KDQoiTXkgbW90aGVyLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgdGVsbHMgbWUgSSBhbSBzb24gdG8gVWx5c3NlcywgYnV0IGl0IGlzIGEgd2lzZSBjaGlsZCB0aGF0IGtub3dzIGhpcyBvd24gZmF0aGVyLiBXb3VsZCB0aGF0IEkgd2VyZSBzb24gdG8gb25lIHdobyBoYWQgZ3Jvd24gb2xkIHVwb24gaGlzIG93biBlc3RhdGVzLCBmb3IsIHNpbmNlIHlvdSBhc2sgbWUsIHRoZXJlIGlzIG5vIG1vcmUgaWxsLXN0YXJyZWQgbWFuIHVuZGVyIGhlYXZlbiB0aGFuIGhlIHdobyB0aGV5IHRlbGwgbWUgaXMgbXkgZmF0aGVyLiINCg0KQW5kIE1pbmVydmEgc2FpZCwgIlRoZXJlIGlzIG5vIGZlYXIgb2YgeW91ciByYWNlIGR5aW5nIG91dCB5ZXQsIHdoaWxlIFBlbmVsb3BlIGhhcyBzdWNoIGEgZmluZSBzb24gYXMgeW91IGFyZS4gQnV0IHRlbGwgbWUsIGFuZCB0ZWxsIG1lIHRydWUsIHdoYXQgaXMgdGhlIG1lYW5pbmcgb2YgYWxsIHRoaXMgZmVhc3RpbmcsIGFuZCB3aG8gYXJlIHRoZXNlIHBlb3BsZT8gV2hhdCBpcyBpdCBhbGwgYWJvdXQ/IEhhdmUgeW91IHNvbWUgYmFucXVldCwgb3IgaXMgdGhlcmUgYSB3ZWRkaW5nIGluIHRoZSBmYW1pbHktIGZvciBubyBvbmUgc2VlbXMgdG8gYmUgYnJpbmdpbmcgYW55IHByb3Zpc2lvbnMgb2YgaGlzIG93bj8gQW5kIHRoZSBndWVzdHMtIGhvdyBhdHJvY2lvdXNseSB0aGV5IGFyZSBiZWhhdmluZzsgd2hhdCByaW90IHRoZXkgbWFrZSBvdmVyIHRoZSB3aG9sZSBob3VzZTsgaXQgaXMgZW5vdWdoIHRvIGRpc2d1c3QgYW55IHJlc3BlY3RhYmxlIHBlcnNvbiB3aG8gY29tZXMgbmVhciB0aGVtLiINCg0KIlNpciwiIHNhaWQgVGVsZW1hY2h1cywgImFzIHJlZ2FyZHMgeW91ciBxdWVzdGlvbiwgc28gbG9uZyBhcyBteSBmYXRoZXIgd2FzIGhlcmUgaXQgd2FzIHdlbGwgd2l0aCB1cyBhbmQgd2l0aCB0aGUgaG91c2UsIGJ1dCB0aGUgZ29kcyBpbiB0aGVpciBkaXNwbGVhc3VyZSBoYXZlIHdpbGxlZCBpdCBvdGhlcndpc2UsIGFuZCBoYXZlIGhpZGRlbiBoaW0gYXdheSBtb3JlIGNsb3NlbHkgdGhhbiBtb3J0YWwgbWFuIHdhcyBldmVyIHlldCBoaWRkZW4uIEkgY291bGQgaGF2ZSBib3JuZSBpdCBiZXR0ZXIgZXZlbiB0aG91Z2ggaGUgd2VyZSBkZWFkLCBpZiBoZSBoYWQgZmFsbGVuIHdpdGggaGlzIG1lbiBiZWZvcmUgVHJveSwgb3IgaGFkIGRpZWQgd2l0aCBmcmllbmRzIGFyb3VuZCBoaW0gd2hlbiB0aGUgZGF5cyBvZiBoaXMgZmlnaHRpbmcgd2VyZSBkb25lOyBmb3IgdGhlbiB0aGUgQWNoYWVhbnMgd291bGQgaGF2ZSBidWlsdCBhIG1vdW5kIG92ZXIgaGlzIGFzaGVzLCBhbmQgSSBzaG91bGQgbXlzZWxmIGhhdmUgYmVlbiBoZWlyIHRvIGhpcyByZW5vd247IGJ1dCBub3cgdGhlIHN0b3JtLXdpbmRzIGhhdmUgc3Bpcml0ZWQgaGltIGF3YXkgd2Uga25vdyBub3Qgd2l0aGVyOyBoZSBpcyBnb25lIHdpdGhvdXQgbGVhdmluZyBzbyBtdWNoIGFzIGEgdHJhY2UgYmVoaW5kIGhpbSwgYW5kIEkgaW5oZXJpdCBub3RoaW5nIGJ1dCBkaXNtYXkuIE5vciBkb2VzIHRoZSBtYXR0ZXIgZW5kIHNpbXBseSB3aXRoIGdyaWVmIGZvciB0aGUgbG9zcyBvZiBteSBmYXRoZXI7IGhlYXZlbiBoYXMgbGFpZCBzb3Jyb3dzIHVwb24gbWUgb2YgeWV0IGFub3RoZXIga2luZDsgZm9yIHRoZSBjaGllZnMgZnJvbSBhbGwgb3VyIGlzbGFuZHMsIER1bGljaGl1bSwgU2FtZSwgYW5kIHRoZSB3b29kbGFuZCBpc2xhbmQgb2YgWmFjeW50aHVzLCBhcyBhbHNvIGFsbCB0aGUgcHJpbmNpcGFsIG1lbiBvZiBJdGhhY2EgaXRzZWxmLCBhcmUgZWF0aW5nIHVwIG15IGhvdXNlIHVuZGVyIHRoZSBwcmV0ZXh0IG9mIHBheWluZyB0aGVpciBjb3VydCB0byBteSBtb3RoZXIsIHdobyB3aWxsIG5laXRoZXIgcG9pbnQgYmxhbmsgc2F5IHRoYXQgc2hlIHdpbGwgbm90IG1hcnJ5LCBub3IgeWV0IGJyaW5nIG1hdHRlcnMgdG8gYW4gZW5kOyBzbyB0aGV5IGFyZSBtYWtpbmcgaGF2b2Mgb2YgbXkgZXN0YXRlLCBhbmQgYmVmb3JlIGxvbmcgd2lsbCBkbyBzbyBhbHNvIHdpdGggbXlzZWxmLiINCg0KIklzIHRoYXQgc28/IiBleGNsYWltZWQgTWluZXJ2YSwgInRoZW4geW91IGRvIGluZGVlZCB3YW50IFVseXNzZXMgaG9tZSBhZ2Fpbi4gR2l2ZSBoaW0gaGlzIGhlbG1ldCwgc2hpZWxkLCBhbmQgYSBjb3VwbGUgbGFuY2VzLCBhbmQgaWYgaGUgaXMgdGhlIG1hbiBoZSB3YXMgd2hlbiBJIGZpcnN0IGtuZXcgaGltIGluIG91ciBob3VzZSwgZHJpbmtpbmcgYW5kIG1ha2luZyBtZXJyeSwgaGUgd291bGQgc29vbiBsYXkgaGlzIGhhbmRzIGFib3V0IHRoZXNlIHJhc2NhbGx5IHN1aXRvcnMsIHdlcmUgaGUgdG8gc3RhbmQgb25jZSBtb3JlIHVwb24gaGlzIG93biB0aHJlc2hvbGQuIEhlIHdhcyB0aGVuIGNvbWluZyBmcm9tIEVwaHlyYSwgd2hlcmUgaGUgaGFkIGJlZW4gdG8gYmVnIHBvaXNvbiBmb3IgaGlzIGFycm93cyBmcm9tIElsdXMsIHNvbiBvZiBNZXJtZXJ1cy4gSWx1cyBmZWFyZWQgdGhlIGV2ZXItbGl2aW5nIGdvZHMgYW5kIHdvdWxkIG5vdCBnaXZlIGhpbSBhbnksIGJ1dCBteSBmYXRoZXIgbGV0IGhpbSBoYXZlIHNvbWUsIGZvciBoZSB3YXMgdmVyeSBmb25kIG9mIGhpbS4gSWYgVWx5c3NlcyBpcyB0aGUgbWFuIGhlIHRoZW4gd2FzIHRoZXNlIHN1aXRvcnMgd2lsbCBoYXZlIGEgc2hvcnQgc2hyaWZ0IGFuZCBhIHNvcnJ5IHdlZGRpbmcuDQoNCiJCdXQgdGhlcmUhIEl0IHJlc3RzIHdpdGggaGVhdmVuIHRvIGRldGVybWluZSB3aGV0aGVyIGhlIGlzIHRvIHJldHVybiwgYW5kIHRha2UgaGlzIHJldmVuZ2UgaW4gaGlzIG93biBob3VzZSBvciBubzsgSSB3b3VsZCwgaG93ZXZlciwgdXJnZSB5b3UgdG8gc2V0IGFib3V0IHRyeWluZyB0byBnZXQgcmlkIG9mIHRoZXNlIHN1aXRvcnMgYXQgb25jZS4gVGFrZSBteSBhZHZpY2UsIGNhbGwgdGhlIEFjaGFlYW4gaGVyb2VzIGluIGFzc2VtYmx5IHRvLW1vcnJvdyAtbGF5IHlvdXIgY2FzZSBiZWZvcmUgdGhlbSwgYW5kIGNhbGwgaGVhdmVuIHRvIGJlYXIgeW91IHdpdG5lc3MuIEJpZCB0aGUgc3VpdG9ycyB0YWtlIHRoZW1zZWx2ZXMgb2ZmLCBlYWNoIHRvIGhpcyBvd24gcGxhY2UsIGFuZCBpZiB5b3VyIG1vdGhlcidzIG1pbmQgaXMgc2V0IG9uIG1hcnJ5aW5nIGFnYWluLCBsZXQgaGVyIGdvIGJhY2sgdG8gaGVyIGZhdGhlciwgd2hvIHdpbGwgZmluZCBoZXIgYSBodXNiYW5kIGFuZCBwcm92aWRlIGhlciB3aXRoIGFsbCB0aGUgbWFycmlhZ2UgZ2lmdHMgdGhhdCBzbyBkZWFyIGEgZGF1Z2h0ZXIgbWF5IGV4cGVjdC4gQXMgZm9yIHlvdXJzZWxmLCBsZXQgbWUgcHJldmFpbCB1cG9uIHlvdSB0byB0YWtlIHRoZSBiZXN0IHNoaXAgeW91IGNhbiBnZXQsIHdpdGggYSBjcmV3IG9mIHR3ZW50eSBtZW4sIGFuZCBnbyBpbiBxdWVzdCBvZiB5b3VyIGZhdGhlciB3aG8gaGFzIHNvIGxvbmcgYmVlbiBtaXNzaW5nLiBTb21lIG9uZSBtYXkgdGVsbCB5b3Ugc29tZXRoaW5nLCBvciAoYW5kIHBlb3BsZSBvZnRlbiBoZWFyIHRoaW5ncyBpbiB0aGlzIHdheSkgc29tZSBoZWF2ZW4tc2VudCBtZXNzYWdlIG1heSBkaXJlY3QgeW91LiBGaXJzdCBnbyB0byBQeWxvcyBhbmQgYXNrIE5lc3RvcjsgdGhlbmNlIGdvIG9uIHRvIFNwYXJ0YSBhbmQgdmlzaXQgTWVuZWxhdXMsIGZvciBoZSBnb3QgaG9tZSBsYXN0IG9mIGFsbCB0aGUgQWNoYWVhbnM7IGlmIHlvdSBoZWFyIHRoYXQgeW91ciBmYXRoZXIgaXMgYWxpdmUgYW5kIG9uIGhpcyB3YXkgaG9tZSwgeW91IGNhbiBwdXQgdXAgd2l0aCB0aGUgd2FzdGUgdGhlc2Ugc3VpdG9ycyB3aWxsIG1ha2UgZm9yIHlldCBhbm90aGVyIHR3ZWx2ZSBtb250aHMuIElmIG9uIHRoZSBvdGhlciBoYW5kIHlvdSBoZWFyIG9mIGhpcyBkZWF0aCwgY29tZSBob21lIGF0IG9uY2UsIGNlbGVicmF0ZSBoaXMgZnVuZXJhbCByaXRlcyB3aXRoIGFsbCBkdWUgcG9tcCwgYnVpbGQgYSBiYXJyb3cgdG8gaGlzIG1lbW9yeSwgYW5kIG1ha2UgeW91ciBtb3RoZXIgbWFycnkgYWdhaW4uIFRoZW4sIGhhdmluZyBkb25lIGFsbCB0aGlzLCB0aGluayBpdCB3ZWxsIG92ZXIgaW4geW91ciBtaW5kIGhvdywgYnkgZmFpciBtZWFucyBvciBmb3VsLCB5b3UgbWF5IGtpbGwgdGhlc2Ugc3VpdG9ycyBpbiB5b3VyIG93biBob3VzZS4gWW91IGFyZSB0b28gb2xkIHRvIHBsZWFkIGluZmFuY3kgYW55IGxvbmdlcjsgaGF2ZSB5b3Ugbm90IGhlYXJkIGhvdyBwZW9wbGUgYXJlIHNpbmdpbmcgT3Jlc3RlcycgcHJhaXNlcyBmb3IgaGF2aW5nIGtpbGxlZCBoaXMgZmF0aGVyJ3MgbXVyZGVyZXIgQWVnaXN0aHVzPyBZb3UgYXJlIGEgZmluZSwgc21hcnQgbG9va2luZyBmZWxsb3c7IHNob3cgeW91ciBtZXR0bGUsIHRoZW4sIGFuZCBtYWtlIHlvdXJzZWxmIGEgbmFtZSBpbiBzdG9yeS4gTm93LCBob3dldmVyLCBJIG11c3QgZ28gYmFjayB0byBteSBzaGlwIGFuZCB0byBteSBjcmV3LCB3aG8gd2lsbCBiZSBpbXBhdGllbnQgaWYgSSBrZWVwIHRoZW0gd2FpdGluZyBsb25nZXI7IHRoaW5rIHRoZSBtYXR0ZXIgb3ZlciBmb3IgeW91cnNlbGYsIGFuZCByZW1lbWJlciB3aGF0IEkgaGF2ZSBzYWlkIHRvIHlvdS4iDQoNCiJTaXIsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAiaXQgaGFzIGJlZW4gdmVyeSBraW5kIG9mIHlvdSB0byB0YWxrIHRvIG1lIGluIHRoaXMgd2F5LCBhcyB0aG91Z2ggSSB3ZXJlIHlvdXIgb3duIHNvbiwgYW5kIEkgd2lsbCBkbyBhbGwgeW91IHRlbGwgbWU7IEkga25vdyB5b3Ugd2FudCB0byBiZSBnZXR0aW5nIG9uIHdpdGggeW91ciB2b3lhZ2UsIGJ1dCBzdGF5IGEgbGl0dGxlIGxvbmdlciB0aWxsIHlvdSBoYXZlIHRha2VuIGEgYmF0aCBhbmQgcmVmcmVzaGVkIHlvdXJzZWxmLiBJIHdpbGwgdGhlbiBnaXZlIHlvdSBhIHByZXNlbnQsIGFuZCB5b3Ugc2hhbGwgZ28gb24geW91ciB3YXkgcmVqb2ljaW5nOyBJIHdpbGwgZ2l2ZSB5b3Ugb25lIG9mIGdyZWF0IGJlYXV0eSBhbmQgdmFsdWUtIGEga2VlcHNha2Ugc3VjaCBhcyBvbmx5IGRlYXIgZnJpZW5kcyBnaXZlIHRvIG9uZSBhbm90aGVyLiINCg0KTWluZXJ2YSBhbnN3ZXJlZCwgIkRvIG5vdCB0cnkgdG8ga2VlcCBtZSwgZm9yIEkgd291bGQgYmUgb24gbXkgd2F5IGF0IG9uY2UuIEFzIGZvciBhbnkgcHJlc2VudCB5b3UgbWF5IGJlIGRpc3Bvc2VkIHRvIG1ha2UgbWUsIGtlZXAgaXQgdGlsbCBJIGNvbWUgYWdhaW4sIGFuZCBJIHdpbGwgdGFrZSBpdCBob21lIHdpdGggbWUuIFlvdSBzaGFsbCBnaXZlIG1lIGEgdmVyeSBnb29kIG9uZSwgYW5kIEkgd2lsbCBnaXZlIHlvdSBvbmUgb2Ygbm8gbGVzcyB2YWx1ZSBpbiByZXR1cm4uIg0KDQpXaXRoIHRoZXNlIHdvcmRzIHNoZSBmbGV3IGF3YXkgbGlrZSBhIGJpcmQgaW50byB0aGUgYWlyLCBidXQgc2hlIGhhZCBnaXZlbiBUZWxlbWFjaHVzIGNvdXJhZ2UsIGFuZCBoYWQgbWFkZSBoaW0gdGhpbmsgbW9yZSB0aGFuIGV2ZXIgYWJvdXQgaGlzIGZhdGhlci4gSGUgZmVsdCB0aGUgY2hhbmdlLCB3b25kZXJlZCBhdCBpdCwgYW5kIGtuZXcgdGhhdCB0aGUgc3RyYW5nZXIgaGFkIGJlZW4gYSBnb2QsIHNvIGhlIHdlbnQgc3RyYWlnaHQgdG8gd2hlcmUgdGhlIHN1aXRvcnMgd2VyZSBzaXR0aW5nLg0KDQpQaGVtaXVzIHdhcyBzdGlsbCBzaW5naW5nLCBhbmQgaGlzIGhlYXJlcnMgc2F0IHJhcHQgaW4gc2lsZW5jZSBhcyBoZSB0b2xkIHRoZSBzYWQgdGFsZSBvZiB0aGUgcmV0dXJuIGZyb20gVHJveSwgYW5kIHRoZSBpbGxzIE1pbmVydmEgaGFkIGxhaWQgdXBvbiB0aGUgQWNoYWVhbnMuIFBlbmVsb3BlLCBkYXVnaHRlciBvZiBJY2FyaXVzLCBoZWFyZCBoaXMgc29uZyBmcm9tIGhlciByb29tIHVwc3RhaXJzLCBhbmQgY2FtZSBkb3duIGJ5IHRoZSBncmVhdCBzdGFpcmNhc2UsIG5vdCBhbG9uZSwgYnV0IGF0dGVuZGVkIGJ5IHR3byBvZiBoZXIgaGFuZG1haWRzLiBXaGVuIHNoZSByZWFjaGVkIHRoZSBzdWl0b3JzIHNoZSBzdG9vZCBieSBvbmUgb2YgdGhlIGJlYXJpbmcgcG9zdHMgdGhhdCBzdXBwb3J0ZWQgdGhlIHJvb2Ygb2YgdGhlIGNsb2lzdGVycyB3aXRoIGEgc3RhaWQgbWFpZGVuIG9uIGVpdGhlciBzaWRlIG9mIGhlci4gU2hlIGhlbGQgYSB2ZWlsLCBtb3Jlb3ZlciwgYmVmb3JlIGhlciBmYWNlLCBhbmQgd2FzIHdlZXBpbmcgYml0dGVybHkuDQoNCiJQaGVtaXVzLCIgc2hlIGNyaWVkLCAieW91IGtubw==",
      "timestamp": "2014-09-07T22:39:54.022Z"
    },
    {
      "requestFrom": "127.0.0.1:53172",
      "data": "dyBtYW55IGFub3RoZXIgZmVhdCBvZiBnb2RzIGFuZCBoZXJvZXMsIHN1Y2ggYXMgcG9ldHMgbG92ZSB0byBjZWxlYnJhdGUuIFNpbmcgdGhlIHN1aXRvcnMgc29tZSBvbmUgb2YgdGhlc2UsIGFuZCBsZXQgdGhlbSBkcmluayB0aGVpciB3aW5lIGluIHNpbGVuY2UsIGJ1dCBjZWFzZSB0aGlzIHNhZCB0YWxlLCBmb3IgaXQgYnJlYWtzIG15IHNvcnJvd2Z1bCBoZWFydCwgYW5kIHJlbWluZHMgbWUgb2YgbXkgbG9zdCBodXNiYW5kIHdob20gSSBtb3VybiBldmVyIHdpdGhvdXQgY2Vhc2luZywgYW5kIHdob3NlIG5hbWUgd2FzIGdyZWF0IG92ZXIgYWxsIEhlbGxhcyBhbmQgbWlkZGxlIEFyZ29zLiINCg0KIk1vdGhlciwiIGFuc3dlcmVkIFRlbGVtYWNodXMsICJsZXQgdGhlIGJhcmQgc2luZyB3aGF0IGhlIGhhcyBhIG1pbmQgdG87IGJhcmRzIGRvIG5vdCBtYWtlIHRoZSBpbGxzIHRoZXkgc2luZyBvZjsgaXQgaXMgSm92ZSwgbm90IHRoZXksIHdobyBtYWtlcyB0aGVtLCBhbmQgd2hvIHNlbmRzIHdlYWwgb3Igd29lIHVwb24gbWFua2luZCBhY2NvcmRpbmcgdG8gaGlzIG93biBnb29kIHBsZWFzdXJlLiBUaGlzIGZlbGxvdyBtZWFucyBubyBoYXJtIGJ5IHNpbmdpbmcgdGhlIGlsbC1mYXRlZCByZXR1cm4gb2YgdGhlIERhbmFhbnMsIGZvciBwZW9wbGUgYWx3YXlzIGFwcGxhdWQgdGhlIGxhdGVzdCBzb25ncyBtb3N0IHdhcm1seS4gTWFrZSB1cCB5b3VyIG1pbmQgdG8gaXQgYW5kIGJlYXIgaXQ7IFVseXNzZXMgaXMgbm90IHRoZSBvbmx5IG1hbiB3aG8gbmV2ZXIgY2FtZSBiYWNrIGZyb20gVHJveSwgYnV0IG1hbnkgYW5vdGhlciB3ZW50IGRvd24gYXMgd2VsbCBhcyBoZS4gR28sIHRoZW4sIHdpdGhpbiB0aGUgaG91c2UgYW5kIGJ1c3kgeW91cnNlbGYgd2l0aCB5b3VyIGRhaWx5IGR1dGllcywgeW91ciBsb29tLCB5b3VyIGRpc3RhZmYsIGFuZCB0aGUgb3JkZXJpbmcgb2YgeW91ciBzZXJ2YW50czsgZm9yIHNwZWVjaCBpcyBtYW4ncyBtYXR0ZXIsIGFuZCBtaW5lIGFib3ZlIGFsbCBvdGhlcnMtIGZvciBpdCBpcyBJIHdobyBhbSBtYXN0ZXIgaGVyZS4iDQoNClNoZSB3ZW50IHdvbmRlcmluZyBiYWNrIGludG8gdGhlIGhvdXNlLCBhbmQgbGFpZCBoZXIgc29uJ3Mgc2F5aW5nIGluIGhlciBoZWFydC4gVGhlbiwgZ29pbmcgdXBzdGFpcnMgd2l0aCBoZXIgaGFuZG1haWRzIGludG8gaGVyIHJvb20sIHNoZSBtb3VybmVkIGhlciBkZWFyIGh1c2JhbmQgdGlsbCBNaW5lcnZhIHNoZWQgc3dlZXQgc2xlZXAgb3ZlciBoZXIgZXllcy4gQnV0IHRoZSBzdWl0b3JzIHdlcmUgY2xhbW9yb3VzIHRocm91Z2hvdXQgdGhlIGNvdmVyZWQgY2xvaXN0ZXJzLCBhbmQgcHJheWVkIGVhY2ggb25lIHRoYXQgaGUgbWlnaHQgYmUgaGVyIGJlZCBmZWxsb3cuDQoNClRoZW4gVGVsZW1hY2h1cyBzcG9rZSwgIlNoYW1lbGVzcywiIGhlIGNyaWVkLCAiYW5kIGluc29sZW50IHN1aXRvcnMsIGxldCB1cyBmZWFzdCBhdCBvdXIgcGxlYXN1cmUgbm93LCBhbmQgbGV0IHRoZXJlIGJlIG5vIGJyYXdsaW5nLCBmb3IgaXQgaXMgYSByYXJlIHRoaW5nIHRvIGhlYXIgYSBtYW4gd2l0aCBzdWNoIGEgZGl2aW5lIHZvaWNlIGFzIFBoZW1pdXMgaGFzOyBidXQgaW4gdGhlIG1vcm5pbmcgbWVldCBtZSBpbiBmdWxsIGFzc2VtYmx5IHRoYXQgSSBtYXkgZ2l2ZSB5b3UgZm9ybWFsIG5vdGljZSB0byBkZXBhcnQsIGFuZCBmZWFzdCBhdCBvbmUgYW5vdGhlcidzIGhvdXNlcywgdHVybiBhbmQgdHVybiBhYm91dCwgYXQgeW91ciBvd24gY29zdC4gSWYgb24gdGhlIG90aGVyIGhhbmQgeW91IGNob29zZSB0byBwZXJzaXN0IGluIHNwdW5naW5nIHVwb24gb25lIG1hbiwgaGVhdmVuIGhlbHAgbWUsIGJ1dCBKb3ZlIHNoYWxsIHJlY2tvbiB3aXRoIHlvdSBpbiBmdWxsLCBhbmQgd2hlbiB5b3UgZmFsbCBpbiBteSBmYXRoZXIncyBob3VzZSB0aGVyZSBzaGFsbCBiZSBubyBtYW4gdG8gYXZlbmdlIHlvdS4iDQoNClRoZSBzdWl0b3JzIGJpdCB0aGVpciBsaXBzIGFzIHRoZXkgaGVhcmQgaGltLCBhbmQgbWFydmVsbGVkIGF0IHRoZSBib2xkbmVzcyBvZiBoaXMgc3BlZWNoLiBUaGVuLCBBbnRpbm91cywgc29uIG9mIEV1cGVpdGhlcywgc2FpZCwgIlRoZSBnb2RzIHNlZW0gdG8gaGF2ZSBnaXZlbiB5b3UgbGVzc29ucyBpbiBibHVzdGVyIGFuZCB0YWxsIHRhbGtpbmc7IG1heSBKb3ZlIG5ldmVyIGdyYW50IHlvdSB0byBiZSBjaGllZiBpbiBJdGhhY2EgYXMgeW91ciBmYXRoZXIgd2FzIGJlZm9yZSB5b3UuIg0KDQpUZWxlbWFjaHVzIGFuc3dlcmVkLCAiQW50aW5vdXMsIGRvIG5vdCBjaGlkZSB3aXRoIG1lLCBidXQsIGdvZCB3aWxsaW5nLCBJIHdpbGwgYmUgY2hpZWYgdG9vIGlmIEkgY2FuLiBJcyB0aGlzIHRoZSB3b3JzdCBmYXRlIHlvdSBjYW4gdGhpbmsgb2YgZm9yIG1lPyBJdCBpcyBubyBiYWQgdGhpbmcgdG8gYmUgYSBjaGllZiwgZm9yIGl0IGJyaW5ncyBib3RoIHJpY2hlcyBhbmQgaG9ub3VyLiBTdGlsbCwgbm93IHRoYXQgVWx5c3NlcyBpcyBkZWFkIHRoZXJlIGFyZSBtYW55IGdyZWF0IG1lbiBpbiBJdGhhY2EgYm90aCBvbGQgYW5kIHlvdW5nLCBhbmQgc29tZSBvdGhlciBtYXkgdGFrZSB0aGUgbGVhZCBhbW9uZyB0aGVtOyBuZXZlcnRoZWxlc3MgSSB3aWxsIGJlIGNoaWVmIGluIG15IG93biBob3VzZSwgYW5kIHdpbGwgcnVsZSB0aG9zZSB3aG9tIFVseXNzZXMgaGFzIHdvbiBmb3IgbWUuIg0KDQpUaGVuIEV1cnltYWNodXMsIHNvbiBvZiBQb2x5YnVzLCBhbnN3ZXJlZCwgIkl0IHJlc3RzIHdpdGggaGVhdmVuIHRvIGRlY2lkZSB3aG8gc2hhbGwgYmUgY2hpZWYgYW1vbmcgdXMsIGJ1dCB5b3Ugc2hhbGwgYmUgbWFzdGVyIGluIHlvdXIgb3duIGhvdXNlIGFuZCBvdmVyIHlvdXIgb3duIHBvc3Nlc3Npb25zOyBubyBvbmUgd2hpbGUgdGhlcmUgaXMgYSBtYW4gaW4gSXRoYWNhIHNoYWxsIGRvIHlvdSB2aW9sZW5jZSBub3Igcm9iIHlvdS4gQW5kIG5vdywgbXkgZ29vZCBmZWxsb3csIEkgd2FudCB0byBrbm93IGFib3V0IHRoaXMgc3RyYW5nZXIuIFdoYXQgY291bnRyeSBkb2VzIGhlIGNvbWUgZnJvbT8gT2Ygd2hhdCBmYW1pbHkgaXMgaGUsIGFuZCB3aGVyZSBpcyBoaXMgZXN0YXRlPyBIYXMgaGUgYnJvdWdodCB5b3UgbmV3cyBhYm91dCB0aGUgcmV0dXJuIG9mIHlvdXIgZmF0aGVyLCBvciB3YXMgaGUgb24gYnVzaW5lc3Mgb2YgaGlzIG93bj8gSGUgc2VlbWVkIGEgd2VsbC10by1kbyBtYW4sIGJ1dCBoZSBodXJyaWVkIG9mZiBzbyBzdWRkZW5seSB0aGF0IGhlIHdhcyBnb25lIGluIGEgbW9tZW50IGJlZm9yZSB3ZSBjb3VsZCBnZXQgdG8ga25vdyBoaW0uIg0KDQoiTXkgZmF0aGVyIGlzIGRlYWQgYW5kIGdvbmUsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAiYW5kIGV2ZW4gaWYgc29tZSBydW1vdXIgcmVhY2hlcyBtZSBJIHB1dCBubyBtb3JlIGZhaXRoIGluIGl0IG5vdy4gTXkgbW90aGVyIGRvZXMgaW5kZWVkIHNvbWV0aW1lcyBzZW5kIGZvciBhIHNvb3Roc2F5ZXIgYW5kIHF1ZXN0aW9uIGhpbSwgYnV0IEkgZ2l2ZSBoaXMgcHJvcGhlY3lpbmdzIG5vIGhlZWQuIEFzIGZvciB0aGUgc3RyYW5nZXIsIGhlIHdhcyBNZW50ZXMsIHNvbiBvZiBBbmNoaWFsdXMsIGNoaWVmIG9mIHRoZSBUYXBoaWFucywgYW4gb2xkIGZyaWVuZCBvZiBteSBmYXRoZXIncy4iIEJ1dCBpbiBoaXMgaGVhcnQgaGUga25ldyB0aGF0IGl0IGhhZCBiZWVuIHRoZSBnb2RkZXNzLg0KDQpUaGUgc3VpdG9ycyB0aGVuIHJldHVybmVkIHRvIHRoZWlyIHNpbmdpbmcgYW5kIGRhbmNpbmcgdW50aWwgdGhlIGV2ZW5pbmc7IGJ1dCB3aGVuIG5pZ2h0IGZlbGwgdXBvbiB0aGVpciBwbGVhc3VyaW5nIHRoZXkgd2VudCBob21lIHRvIGJlZCBlYWNoIGluIGhpcyBvd24gYWJvZGUuIFRlbGVtYWNodXMncyByb29tIHdhcyBoaWdoIHVwIGluIGEgdG93ZXIgdGhhdCBsb29rZWQgb24gdG8gdGhlIG91dGVyIGNvdXJ0OyBoaXRoZXIsIHRoZW4sIGhlIGhpZWQsIGJyb29kaW5nIGFuZCBmdWxsIG9mIHRob3VnaHQuIEEgZ29vZCBvbGQgd29tYW4sIEV1cnljbGVhLCBkYXVnaHRlciBvZiBPcHMsIHRoZSBzb24gb2YgUGlzZW5vciwgd2VudCBiZWZvcmUgaGltIHdpdGggYSBjb3VwbGUgb2YgYmxhemluZyB0b3JjaGVzLiBMYWVydGVzIGhhZCBib3VnaHQgaGVyIHdpdGggaGlzIG93biBtb25leSB3aGVuIHNoZSB3YXMgcXVpdGUgeW91bmc7IGhlIGdhdmUgdGhlIHdvcnRoIG9mIHR3ZW50eSBveGVuIGZvciBoZXIsIGFuZCBzaGV3ZWQgYXMgbXVjaCByZXNwZWN0IHRvIGhlciBpbiBoaXMgaG91c2Vob2xkIGFzIGhlIGRpZCB0byBoaXMgb3duIHdlZGRlZCB3aWZlLCBidXQgaGUgZGlkIG5vdCB0YWtlIGhlciB0byBoaXMgYmVkIGZvciBoZSBmZWFyZWQgaGlzIHdpZmUncyByZXNlbnRtZW50LiBTaGUgaXQgd2FzIHdobyBub3cgbGlnaHRlZCBUZWxlbWFjaHVzIHRvIGhpcyByb29tLCBhbmQgc2hlIGxvdmVkIGhpbSBiZXR0ZXIgdGhhbiBhbnkgb2YgdGhlIG90aGVyIHdvbWVuIGluIHRoZSBob3VzZSBkaWQsIGZvciBzaGUgaGFkIG51cnNlZCBoaW0gd2hlbiBoZSB3YXMgYSBiYWJ5LiBIZSBvcGVuZWQgdGhlIGRvb3Igb2YgaGlzIGJlZCByb29tIGFuZCBzYXQgZG93biB1cG9uIHRoZSBiZWQ7IGFzIGhlIHRvb2sgb2ZmIGhpcyBzaGlydCBoZSBnYXZlIGl0IHRvIHRoZSBnb29kIG9sZCB3b21hbiwgd2hvIGZvbGRlZCBpdCB0aWRpbHkgdXAsIGFuZCBodW5nIGl0IGZvciBoaW0gb3ZlciBhIHBlZyBieSBoaXMgYmVkIHNpZGUsIGFmdGVyIHdoaWNoIHNoZSB3ZW50IG91dCwgcHVsbGVkIHRoZSBkb29yIHRvIGJ5IGEgc2lsdmVyIGNhdGNoLCBhbmQgZHJldyB0aGUgYm9sdCBob21lIGJ5IG1lYW5zIG9mIHRoZSBzdHJhcC4gQnV0IFRlbGVtYWNodXMgYXMgaGUgbGF5IGNvdmVyZWQgd2l0aCBhIHdvb2xsZW4gZmxlZWNlIGtlcHQgdGhpbmtpbmcgYWxsIG5pZ2h0IHRocm91Z2ggb2YgaGlzIGludGVuZGVkIHZveWFnZSBvZiB0aGUgY291bnNlbCB0aGF0IE1pbmVydmEgaGFkIGdpdmVuIGhpbS4NCg0KQm9vayBJSQ0KDQpOb3cgd2hlbiB0aGUgY2hpbGQgb2YgbW9ybmluZywgcm9zeS1maW5nZXJlZCBEYXduLCBhcHBlYXJlZCwgVGVsZW1hY2h1cyByb3NlIGFuZCBkcmVzc2VkIGhpbXNlbGYuIEhlIGJvdW5kIGhpcyBzYW5kYWxzIG9uIHRvIGhpcyBjb21lbHkgZmVldCwgZ2lyZGVkIGhpcyBzd29yZCBhYm91dCBoaXMgc2hvdWxkZXIsIGFuZCBsZWZ0IGhpcyByb29tIGxvb2tpbmcgbGlrZSBhbiBpbW1vcnRhbCBnb2QuIEhlIGF0IG9uY2Ugc2VudCB0aGUgY3JpZXJzIHJvdW5kIHRvIGNhbGwgdGhlIHBlb3BsZSBpbiBhc3NlbWJseSwgc28gdGhleSBjYWxsZWQgdGhlbSBhbmQgdGhlIHBlb3BsZSBnYXRoZXJlZCB0aGVyZW9uOyB0aGVuLCB3aGVuIHRoZXkgd2VyZSBnb3QgdG9nZXRoZXIsIGhlIHdlbnQgdG8gdGhlIHBsYWNlIG9mIGFzc2VtYmx5IHNwZWFyIGluIGhhbmQtIG5vdCBhbG9uZSwgZm9yIGhpcyB0d28gaG91bmRzIHdlbnQgd2l0aCBoaW0uIE1pbmVydmEgZW5kb3dlZCBoaW0gd2l0aCBhIHByZXNlbmNlIG9mIHN1Y2ggZGl2aW5lIGNvbWVsaW5lc3MgdGhhdCBhbGwgbWFydmVsbGVkIGF0IGhpbSBhcyBoZSB3ZW50IGJ5LCBhbmQgd2hlbiBoZSB0b29rIGhpcyBwbGFjZScgaW4gaGlzIGZhdGhlcidzIHNlYXQgZXZlbiB0aGUgb2xkZXN0IGNvdW5jaWxsb3JzIG1hZGUgd2F5IGZvciBoaW0uDQoNCkFlZ3lwdGl1cywgYSBtYW4gYmVudCBkb3VibGUgd2l0aCBhZ2UsIGFuZCBvZiBpbmZpbml0ZSBleHBlcmllbmNlLCB0aGUgZmlyc3QgdG8gc3BlYWsgSGlzIHNvbiBBbnRpcGh1cyBoYWQgZ29uZSB3aXRoIFVseXNzZXMgdG8gSWxpdXMsIGxhbmQgb2Ygbm9ibGUgc3RlZWRzLCBidXQgdGhlIHNhdmFnZSBDeWNsb3BzIGhhZCBraWxsZWQgaGltIHdoZW4gdGhleSB3ZXJlIGFsbCBzaHV0IHVwIGluIHRoZSBjYXZlLCBhbmQgaGFkIGNvb2tlZCBoaXMgbGFzdCBkaW5uZXIgZm9yIGhpbSwgSGUgaGFkIHRocmVlIHNvbnMgbGVmdCwgb2Ygd2hvbSB0d28gc3RpbGwgd29ya2VkIG9uIHRoZWlyIGZhdGhlcidzIGxhbmQsIHdoaWxlIHRoZSB0aGlyZCwgRXVyeW5vbXVzLCB3YXMgb25lIG9mIHRoZSBzdWl0b3JzOyBuZXZlcnRoZWxlc3MgdGhlaXIgZmF0aGVyIGNvdWxkIG5vdCBnZXQgb3ZlciB0aGUgbG9zcyBvZiBBbnRpcGh1cywgYW5kIHdhcyBzdGlsbCB3ZWVwaW5nIGZvciBoaW0gd2hlbiBoZSBiZWdhbiBoaXMgc3BlZWNoLg0KDQoiTWVuIG9mIEl0aGFjYSwiIGhlIHNhaWQsICJoZWFyIG15IHdvcmRzLiBGcm9tIHRoZSBkYXkgVWx5c3NlcyBsZWZ0IHVzIHRoZXJlIGhhcyBiZWVuIG5vIG1lZXRpbmcgb2Ygb3VyIGNvdW5jaWxsb3JzIHVudGlsIG5vdzsgd2hvIHRoZW4gY2FuIGl0IGJlLCB3aGV0aGVyIG9sZCBvciB5b3VuZywgdGhhdCBmaW5kcyBpdCBzbyBuZWNlc3NhcnkgdG8gY29udmVuZSB1cz8gSGFzIGhlIGdvdCB3aW5kIG9mIHNvbWUgaG9zdCBhcHByb2FjaGluZywgYW5kIGRvZXMgaGUgd2lzaCB0byB3YXJuIHVzLCBvciB3b3VsZCBoZSBzcGVhayB1cG9uIHNvbWUgb3RoZXIgbWF0dGVyIG9mIHB1YmxpYyBtb21lbnQ/IEkgYW0gc3VyZSBoZSBpcyBhbiBleGNlbGxlbnQgcGVyc29uLCBhbmQgSSBob3BlIEpvdmUgd2lsbCBncmFudCBoaW0gaGlzIGhlYXJ0J3MgZGVzaXJlLiINCg0KVGVsZW1hY2h1cyB0b29rIHRoaXMgc3BlZWNoIGFzIG9mIGdvb2Qgb21lbiBhbmQgcm9zZSBhdCBvbmNlLCBmb3IgaGUgd2FzIGJ1cnN0aW5nIHdpdGggd2hhdCBoZSBoYWQgdG8gc2F5LiBIZSBzdG9vZCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBhc3NlbWJseSBhbmQgdGhlIGdvb2QgaGVyYWxkIFBpc2Vub3IgYnJvdWdodCBoaW0gaGlzIHN0YWZmLiBUaGVuLCB0dXJuaW5nIHRvIEFlZ3lwdGl1cywgIlNpciwiIHNhaWQgaGUsICJpdCBpcyBJLCBhcyB5b3Ugd2lsbCBzaG9ydGx5IGxlYXJuLCB3aG8gaGF2ZSBjb252ZW5lZCB5b3UsIGZvciBpdCBpcyBJIHdobyBhbSB0aGUgbW9zdCBhZ2dyaWV2ZWQuIEkgaGF2ZSBub3QgZ290IHdpbmQgb2YgYW55IGhvc3QgYXBwcm9hY2hpbmcgYWJvdXQgd2hpY2ggSSB3b3VsZCB3YXJuIHlvdSwgbm9yIGlzIHRoZXJlIGFueSBtYXR0ZXIgb2YgcHVibGljIG1vbWVudCBvbiB3aGljaCBJIHdvdWxkIHNwZWFrLiBNeSBncmlldmVhbmNlIGlzIHB1cmVseSBwZXJzb25hbCwgYW5kIHR1cm5zIG9uIHR3byBncmVhdCBtaXNmb3J0dW5lcyB3aGljaCBoYXZlIGZhbGxlbiB1cG9uIG15IGhvdXNlLiBUaGUgZmlyc3Qgb2YgdGhlc2UgaXMgdGhlIGxvc3Mgb2YgbXkgZXhjZWxsZW50IGZhdGhlciwgd2hvIHdhcyBjaGllZiBhbW9uZyBhbGwgeW91IGhlcmUgcHJlc2VudCwgYW5kIHdhcyBsaWtlIGEgZmF0aGVyIHRvIGV2ZXJ5IG9uZSBvZiB5b3U7IHRoZSBzZWNvbmQgaXMgbXVjaCBtb3JlIHNlcmlvdXMsIGFuZCBlcmUgbG9uZyB3aWxsIGJlIHRoZSB1dHRlciBydWluIG9mIG15IGVzdGF0ZS4gVGhlIHNvbnMgb2YgYWxsIHRoZSBjaGllZiBtZW4gYW1vbmcgeW91IGFyZSBwZXN0ZXJpbmcgbXkgbW90aGVyIHRvIG1hcnJ5IHRoZW0gYWdhaW5zdCBoZXIgd2lsbC4gVGhleSBhcmUgYWZyYWlkIHRvIGdvIHRvIGhlciBmYXRoZXIgSWNhcml1cywgYXNraW5nIGhpbSB0byBjaG9vc2UgdGhlIG9uZSBoZSBsaWtlcyBiZXN0LCBhbmQgdG8gcHJvdmlkZSBtYXJyaWFnZSBnaWZ0cyBmb3IgaGlzIGRhdWdodGVyLCBidXQgZGF5IGJ5IGRheSB0aGV5IGtlZXAgaGFuZ2luZyBhYm91dCBteSBmYXRoZXIncyBob3VzZSwgc2FjcmlmaWNpbmcgb3VyIG94ZW4sIHNoZWVwLCBhbmQgZmF0IGdvYXRzIGZvciB0aGVpciBiYW5xdWV0cywgYW5kIG5ldmVyIGdpdmluZyBzbyBtdWNoIGFzIGEgdGhvdWdodCB0byB0aGUgcXVhbnRpdHkgb2Ygd2luZSB0aGV5IGRyaW5rLiBObyBlc3RhdGUgY2FuIHN0YW5kIHN1Y2ggcmVja2xlc3NuZXNzOyB3ZSBoYXZlIG5vdyBubyBVbHlzc2VzIHRvIHdhcmQgb2ZmIGhhcm0gZnJvbSBvdXIgZG9vcnMsIGFuZCBJIGNhbm5vdCBob2xkIG15IG93biBhZ2FpbnN0IHRoZW0uIEkgc2hhbGwgbmV2ZXIgYWxsIG15IGRheXMgYmUgYXMgZ29vZCBhIG1hbiBhcyBoZSB3YXMsIHN0aWxsIEkgd291bGQgaW5kZWVkIGRlZmVuZCBteXNlbGYgaWYgSSBoYWQgcG93ZXIgdG8gZG8gc28sIGZvciBJIGNhbm5vdCBzdGFuZCBzdWNoIHRyZWF0bWVudCBhbnkgbG9uZ2VyOyBteSBob3VzZSBpcyBiZWluZyBkaXNncmFjZWQgYW5kIHJ1aW5lZC4gSGF2ZSByZXNwZWN0LCB0aGVyZWZvcmUsIHRvIHlvdXIgb3duIGNvbnNjaWVuY2VzIGFuZCB0byBwdWJsaWMgb3Bpbmlvbi4gRmVhciwgdG9vLCB0aGUgd3JhdGggb2YgaGVhdmVuLCBsZXN0IHRoZSBnb2RzIHNob3VsZCBiZSBkaXNwbGVhc2VkIGFuZCB0dXJuIHVwb24geW91LiBJIHByYXkgeW91IGJ5IEpvdmUgYW5kIFRoZW1pcywgd2hvIGlzIHRoZSBiZWdpbm5pbmcgYW5kIHRoZSBlbmQgb2YgY291bmNpbHMsIFtkbyBub3RdIGhvbGQgYmFjaywgbXkgZnJpZW5kcywgYW5kIGxlYXZlIG1lIHNpbmdsZWhhbmRlZC0gdW5sZXNzIGl0IGJlIHRoYXQgbXkgYnJhdmUgZmF0aGVyIFVseXNzZXMgZGlkIHNvbWUgd3JvbmcgdG8gdGhlIEFjaGFlYW5zIHdoaWNoIHlvdSB3b3VsZCBub3cgYXZlbmdlIG9uIG1lLCBieSBhaWRpbmcgYW5kIGFiZXR0aW5nIHRoZXNlIHN1aXRvcnMuIE1vcmVvdmVyLCBpZiBJIGFtIHRvIGJlIGVhdGVuIG91dCBvZiBob3VzZSBhbmQgaG9tZSBhdCBhbGwsIEkgaGFkIHJhdGhlciB5b3UgZGlkIHRoZSBlYXRpbmcgeW91cnNlbHZlcywgZm9yIEkgY291bGQgdGhlbiB0YWtlIGFjdGlvbiBhZ2FpbnN0IHlvdSB0byBzb21lIHB1cnBvc2UsIGFuZCBzZXJ2ZSB5b3Ugd2l0aCBub3RpY2VzIGZyb20gaG91c2UgdG8gaG91c2UgdGlsbCBJIGdvdCBwYWlkIGluIGZ1bGwsIHdoZXJlYXMgbm93IEkgaGF2ZSBubyByZW1lZHkuIg0KDQpXaXRoIHRoaXMgVGVsZW1hY2h1cyBkYXNoZWQgaGlzIHN0YWZmIHRvIHRoZSBncm91bmQgYW5kIGJ1cnN0IGludG8gdGVhcnMuIEV2ZXJ5IG9uZSB3YXMgdmVyeSBzb3JyeSBmb3IgaGltLCBidXQgdGhleSBhbGwgc2F0IHN0aWxsIGFuZCBubyBvbmUgdmVudHVyZWQgdG8gbWFrZSBoaW0gYW4gYW5ncnkgYW5zd2VyLCBzYXZlIG9ubHkgQW50aW5vdXMsIHdobyBzcG9rZSB0aHVzOg0KDQoiVGVsZW1hY2h1cywgaW5zb2xlbnQgYnJhZ2dhcnQgdGhhdCB5b3UgYXJlLCBob3cgZGFyZSB5b3UgdHJ5IHRvIHRocm93IHRoZSBibGFtZSB1cG9uIHVzIHN1aXRvcnM/IEl0IGlzIHlvdXIgbW90aGVyJ3MgZmF1bHQgbm90IG91cnMsIGZvciBzaGUgaXMgYSB2ZXJ5IGFydGZ1bCB3b21hbi4gVGhpcyB0aHJlZSB5ZWFycyBwYXN0LCBhbmQgY2xvc2Ugb24gZm91ciwgc2hlIGhhcyBiZWVuIGRyaXZpbmcgdXMgb3V0IG9mIG91ciBtaW5kcywgYnkgZW5jb3VyYWdpbmcgZWFjaCBvbmUgb2YgdXMsIGFuZCBzZW5kaW5nIGhpbSBtZXNzYWdlcyB3aXRob3V0IG1lYW5pbmcgb25lIHdvcmQgb2Ygd2hhdCBzaGUgc2F5cy4gQW5kIHRoZW4gdGhlcmUgd2FzIHRoYXQgb3RoZXIgdHJpY2sgc2hlIHBsYXllZCB1cy4gU2hlIHNldCB1cCBhIGdyZWF0IHRhbWJvdXIgZnJhbWUgaW4gaGVyIHJvb20sIGFuZCBiZWdhbiB0byB3b3JrIG9uIGFuIGVub3Jtb3VzIHBpZWNlIG9mIGZpbmUgbmVlZGxld29yay4gJ1N3ZWV0IGhlYXJ0cywnIHNhaWQgc2hlLCAnVWx5c3NlcyBpcyBpbmRlZWQgZGVhZCwgc3RpbGwgZG8gbm90IHByZXNzIG1lIHRvIG1hcnJ5IGFnYWluIGltbWVkaWF0ZWx5LCB3YWl0LSBmb3IgSSB3b3VsZCBub3QgaGF2ZSBza2lsbCBpbiBuZWVkbGV3b3JrIHBlcmlzaCB1bnJlY29yZGVkLSB0aWxsIEkgaGF2ZSBjb21wbGV0ZWQgYSBwYWxsIGZvciB0aGUgaGVybyBMYWVydGVzLCB0byBiZSBpbiByZWFkaW5lc3MgYWdhaW5zdCB0aGUgdGltZSB3aGVuIGRlYXRoIHNoYWxsIHRha2UgaGltLiBIZSBpcyB2ZXJ5IHJpY2gsIGFuZCB0aGUgd29tZW4gb2YgdGhlIHBsYWNlIHdpbGwgdGFsayBpZiBoZSBpcyBsYWlkIG91dCB3aXRob3V0IGEgcGFsbC4nDQoNCiJUaGlzIHdhcyB3aGF0IHNoZSBzYWlkLCBhbmQgd2UgYXNzZW50ZWQ7IHdoZXJlb24gd2UgY291bGQgc2VlIGhlciB3b3JraW5nIG9uIGhlciBncmVhdCB3ZWIgYWxsIGRheSBsb25nLCBidXQgYXQgbmlnaHQgc2hlIHdvdWxkIHVucGljayB0aGUgc3RpdGNoZXMgYWdhaW4gYnkgdG9yY2hsaWdodC4gU2hlIGZvb2xlZCB1cyBpbiB0aGlzIHdheSBmb3IgdGhyZWUgeWVhcnMgYW5kIHdlIG5ldmVyIGZvdW5kIGhlciBvdXQsIGJ1dCBhcyB0aW1lIHdvcmUgb24gYW5kIHNoZSB3YXMgbm93IGluIGhlciBmb3VydGggeWVhciwgb25lIG9mIGhlciBtYWlkcyB3aG8ga25ldyB3aGF0IHNoZSB3YXMgZG9pbmcgdG9sZCB1cywgYW5kIHdlIGNhdWdodCBoZXIgaW4gdGhlIGFjdCBvZiB1bmRvaW5nIGhlciB3b3JrLCBzbyBzaGUgaGFkIHRvIGZpbmlzaCBpdCB3aGV0aGVyIHNoZSB3b3VsZCBvciBuby4gVGhlIHN1aXRvcnMsIHRoZXJlZm9yZSwgbWFrZSB5b3UgdGhpcyBhbnN3ZXIsIHRoYXQgYm90aCB5b3UgYW5kIHRoZSBBY2hhZWFucyBtYXkgdW5kZXJzdGFuZC0nU2VuZCB5b3VyIG1vdGhlciBhd2F5LCBhbmQgYmlkIGhlciBtYXJyeSB0aGUgbWFuIG9mIGhlciBvd24gYW5kIG9mIGhlciBmYXRoZXIncyBjaG9pY2UnOyBmb3IgSSBkbyBub3Qga25vdyB3aGF0IHdpbGwgaGFwcGVuIGlmIHNoZSBnb2VzIG9uIHBsYWd1aW5nIHVzIG11Y2ggbG9uZ2VyIHdpdGggdGhlIGFpcnMgc2hlIGdpdmVzIGhlcnNlbGYgb24gdGhlIHNjb3JlIG9mIHRoZSBhY2NvbXBsaXNobWVudHMgTWluZXJ2YSBoYXMgdGF1Z2h0IGhlciwgYW5kIGJlY2F1c2Ugc2hlIGlzIHNvIGNsZXZlci4gV2UgbmV2ZXIgeWV0IGhlYXJkIG9mIHN1Y2ggYSB3b21hbjsgd2Uga25vdyBhbGwgYWJvdXQgVHlybywgQWxjbWVuYSwgTXljZW5lLCBhbmQgdGhlIGZhbW91cyB3b21lbiBvZiBvbGQsIGJ1dCB0aGV5IHdlcmUgbm90aGluZyB0byB5b3VyIG1vdGhlciwgYW55IG9uZSBvZiB0aGVtLiBJdCB3YXMgbm90IGZhaXIgb2YgaGVyIHRvIHRyZWF0IHVzIGluIHRoYXQgd2F5LCBhbmQgYXMgbG9uZyBhcyBzaGUgY29udGludWVzIGluIHRoZSBtaW5kIHdpdGggd2hpY2ggaGVhdmVuIGhhcyBub3cgZW5kb3dlZCBoZXIsIHNvIGxvbmcgc2hhbGwgd2UgZ28gb24gZWF0aW5nIHVwIHlvdXIgZXN0YXRlOyBhbmQgSSBkbyBub3Qgc2VlIHdoeSBzaGUgc2hvdWxkIGNoYW5nZSwgZm9yIHNoZSBnZXRzIGFsbCB0aGUgaG9ub3VyIGFuZCBnbG9yeSwgYW5kIGl0IGlzIHlvdSB3aG8gcGF5IGZvciBpdCwgbm90IHNoZS4gVW5kZXJzdGFuZCwgdGhlbiwgdGhhdCB3ZSB3aWxsIG5vdCBnbyBiYWNrIHRvIG91ciBsYW5kcywgbmVpdGhlciBoZXJlIG5vciBlbHNld2hlcmUsIHRpbGwgc2hlIGhhcyBtYWRlIGhlciBjaG9pY2UgYW5kIG1hcnJpZWQgc29tZSBvbmUgb3Igb3RoZXIgb2YgdXMuIg0KDQpUZWxlbWFjaHVzIGFuc3dlcmVkLCAiQW50aW5vdXMsIGhvdyBjYW4gSSBkcml2ZSB0aGUgbW90aGVyIHdobyBib3JlIG1lIGZyb20gbXkgZmF0aGVyJ3MgaG91c2U/IE15IGZhdGhlciBpcyBhYnJvYWQgYW5kIHdlIGRvIG5vdCBrbm93IHdoZXRoZXIgaGUgaXMgYWxpdmUgb3IgZGVhZC4gSXQgd2lsbCBiZSBoYXJkIG9uIG1lIGlmIEkgaGF2ZSB0byBwYXkgSWNhcml1cyB0aGUgbGFyZ2Ugc3VtIHdoaWNoIEkgbXVzdCBnaXZlIGhpbSBpZiBJIGluc2lzdCBvbiBzZW5kaW5nIGhpcyBkYXVnaHRlciBiYWNrIHRvIGhpbS4gTm90IG9ubHkgd2lsbCBoZSBkZWFsIHJpZ29yb3VzbHkgd2l0aCBtZSwgYnV0IGhlYXZlbiB3aWxsIGFsc28gcHVuaXNoIG1lOyBmb3IgbXkgbW90aGVyIHdoZW4gc2hlIGxlYXZlcyB0aGUgaG91c2Ugd2lsbCBjYWxmIG9uIHRoZSBFcmlueWVzIHRvIGF2ZW5nZSBoZXI7IGJlc2lkZXMsIGl0IHdvdWxkIG5vdCBiZSBhIGNyZWRpdGFibGUgdGhpbmcgdG8gZG8sIGFuZCBJIHdpbGwgaGF2ZSBub3RoaW5nIHRvIHNheSB0byBpdC4gSWYgeW91IGNob29zZSB0byB0YWtlIG9mZmVuY2UgYXQgdGhpcywgbGVhdmUgdGhlIGhvdXNlIGFuZCBmZWFzdCBlbHNld2hlcmUgYXQgb25lIGFub3RoZXIncyBob3VzZXMgYXQgeW91ciBvd24gY29zdCB0dXJuIGFuZCB0dXJuIGFib3V0LiBJZiwgb24gdGhlIG90aGVyIGhhbmQsIHlvdSBlbGVjdCB0byBwZXJzaXN0IGluIHNwdW5naW5nIHVwb24gb25lIG1hbiwgaGVhdmVuIGhlbHAgbWUsIGJ1dCBKb3ZlIHNoYWxsIHJlY2tvbiB3aXRoIHlvdSBpbiBmdWxsLCBhbmQgd2hlbiB5b3UgZmFsbCBpbiBteSBmYXRoZXIncyBob3VzZSB0aGVyZSBzaGFsbCBiZSBubyBtYW4gdG8gYXZlbmdlIHlvdS4iDQoNCkFzIGhlIHNwb2tlIEpvdmUgc2VudCB0d28gZWFnbGVzIGZyb20gdGhlIHRvcCBvZiB0aGUgbW91bnRhaW4sIGFuZCB0aGV5IGZsZXcgb24gYW5kIG9uIHdpdGggdGhlIHdpbmQsIHNhaWxpbmcgc2lkZSBieSBzaWRlIGluIHRoZWlyIG93biBsb3JkbHkgZmxpZ2h0LiBXaGVuIHRoZXkgd2VyZSByaWdodCBvdmVyIHRoZSBtaWRkbGUgb2YgdGhlIGFzc2VtYmx5IHRoZXkgd2hlZWxlZCBhbmQgY2lyY2xlZCBhYm91dCwgYmVhdGluZyB0aGUgYWlyIHdpdGggdGhlaXIgd2luZ3MgYW5kIGdsYXJpbmcgZGVhdGggaW50byB0aGUgZXllcyBvZiB0aGVtIHRoYXQgd2VyZSBiZWxvdzsgdGhlbiwgZmlnaHRpbmcgZmllcmNlbHkgYW5kIHRlYXJpbmcgYXQgb25lIGFub3RoZXIsIHRoZXkgZmxldyBvZmYgdG93YXJkcyB0aGUgcmlnaHQgb3ZlciB0aGUgdG93bi4gVGhlIHBlb3BsZSB3b25kZXJlZCBhcyB0aGV5IHNhdyB0aGVtLCBhbmQgYXNrZWQgZWFjaCBvdGhlciB3aGF0IGFuIHRoaXMgbWlnaHQgYmU7IHdoZXJlb24gSGFsaXRoZXJzZXMsIHdobyB3YXMgdGhlIGJlc3QgcHJvcGhldCBhbmQgcmVhZGVyIG9mIG9tZW5zIGFtb25nIHRoZW0sIHNwb2tlIHRvIHRoZW0gcGxhaW5seSBhbmQgaW4gYWxsIGhvbmVzdHksIHNheWluZzoNCg0KIkhlYXIgbWUsIG1lbiBvZiBJdGhhY2EsIGFuZCBJIHNwZWFrIG1vcmUgcGFydGljdWxhcmx5IHRvIHRoZSBzdWl0b3JzLCBmb3IgSSBzZWUgbWlzY2hpZWYgYnJld2luZyBmb3IgdGhlbS4gVWx5c3NlcyBpcyBub3QgZ29pbmcgdG8gYmUgYXdheSBtdWNoIGxvbmdlcjsgaW5kZWVkIGhlIGlzIGNsb3NlIGF0IGhhbmQgdG8gZGVhbCBvdXQgZGVhdGggYW5kIGRlc3RydWN0aW9uLCBub3Qgb24gdGhlbSBhbG9uZSwgYnV0IG9uIG1hbnkgYW5vdGhlciBvZiB1cyB3aG8gbGl2ZSBpbiBJdGhhY2EuIExldCB1cyB0aGVuIGJlIHdpc2UgaW4gdGltZSwgYW5kIHB1dCBhIHN0b3AgdG8gdGhpcyB3aWNrZWRuZXNzIGJlZm9yZSBoZSBjb21lcy4gTGV0IHRoZSBzdWl0b3JzIGRvIHNvIG9mIHRoZWlyIG93biBhY2NvcmQ7IGl0IHdpbGwgYmUgYmV0dGVyIGZvciB0aGVtLCBmb3IgSSBhbSBub3QgcHJvcGhlc3lpbmcgd2l0aG91dCBkdWUga25vd2xlZGdlOyBldmVyeXRoaW5nIGhhcyBoYXBwZW5lZCB0byBVbHlzc2VzIGFzIEkgZm9yZXRvbGQgd2hlbiB0aGUgQXJnaXZlcyBzZXQgb3V0IGZvciBUcm95LCBhbmQgaGUgd2l0aCB0aGVtLiBJIHNhaWQgdGhhdCBhZnRlciBnb2luZyB0aHJvdWdoIG11Y2ggaGFyZHNoaXAgYW5kIGxvc2luZyBhbGwgaGlzIG1lbiBoZSBzaG91bGQgY29tZSBob21lIGFnYWluIGluIHRoZSB0d2VudGlldGggeWVhciBhbmQgdGhhdCBubyBvbmUgd291bGQga25vdyBoaW07IGFuZCBub3cgYWxsIHRoaXMgaXMgY29taW5nIHRydWUuIg0KDQpFdXJ5bWFjaHVzIHNvbiBvZiBQb2x5YnVzIHRoZW4gc2FpZCwgIkdvIGhvbWUsIG9sZCBtYW4sIGFuZCBwcm9waGVzeSB0byB5b3VyIG93biBjaGlsZHJlbiwgb3IgaXQgbWF5IGJlIHdvcnNlIGZvciB0aGVtLiBJIGNhbiByZWFkIHRoZXNlIG9tZW5zIG15c2VsZiBtdWNoIGJldHRlciB0aGFuIHlvdSBjYW47IGJpcmRzIGFyZSBhbHdheXMgZmx5aW5nIGFib3V0IGluIHRoZSBzdW5zaGluZSBzb21ld2hlcmUgb3Igb3RoZXIsIGJ1dCB0aGV5IHNlbGRvbSBtZWFuIGFueXRoaW5nLiBVbHlzc2VzIGhhcyBkaWVkIGluIGEgZmFyIGNvdW50cnksIGFuZCBpdCBpcyBhIHBpdHkgeW91IGFyZSBub3QgZGVhZCBhbG9uZyB3aXRoIGhpbSwgaW5zdGVhZCBvZiBwcmF0aW5nIGhlcmUgYWJvdXQgb21lbnMgYW5kIGFkZGluZyBmdWVsIHRvIHRoZSBhbmdlciBvZiBUZWxlbWFjaHVzIHdoaWNoIGlzIGZpZXJjZSBlbm91Z2ggYXMgaXQgaXMuIEkgc3VwcG9zZSB5b3UgdGhpbmsgaGUgd2lsbCBnaXZlIHlvdSBzb21ldGhpbmcgZm9yIHlvdXIgZmFtaWx5LCBidXQgSSB0ZWxsIHlvdS0gYW5kIGl0IHNoYWxsIHN1cmVseSBiZS0gd2hlbiBhbiBvbGQgbWFuIGxpa2UgeW91LCB3aG8gc2hvdWxkIGtub3cgYmV0dGVyLCB0YWxrcyBhIHlvdW5nIG9uZSBvdmVyIHRpbGwgaGUgYmVjb21lcyB0cm91Ymxlc29tZSwgaW4gdGhlIGZpcnN0IHBsYWNlIGhpcyB5b3VuZyBmcmllbmQgd2lsbCBvbmx5IGZhcmUgc28gbXVjaCB0aGUgd29yc2UtIGhlIHdpbGwgdGFrZSBub3RoaW5nIGJ5IGl0LCBmb3IgdGhlIHN1aXRvcnMgd2lsbCBwcmV2ZW50IHRoaXMtIGFuZCBpbiB0aGUgbmV4dCwgd2Ugd2lsbCBsYXkgYSBoZWF2aWVyIGZpbmUsIHNpciwgdXBvbiB5b3Vyc2VsZiB0aGFuIHlvdSB3aWxsIGF0IGFsbCBsaWtlIHBheWluZywgZm9yIGl0IHdpbGwgYmVhciBoYXJkbHkgdXBvbiB5b3UuIEFzIGZvciBUZWxlbWFjaHVzLCBJIHdhcm4gaGltIGluIHRoZSBwcmVzZW5jZSBvZiB5b3UgYWxsIHRvIHNlbmQgaGlzIG1vdGhlciBiYWNrIHRvIGhlciBmYXRoZXIsIHdobyB3aWxsIGZpbmQgaGVyIGEgaHVzYmFuZCBhbmQgcHJvdmlkZSBoZXIgd2l0aCBhbGwgdGhlIG1hcnJpYWdlIGdpZnRzIHNvIGRlYXIgYSBkYXVnaHRlciBtYXkgZXhwZWN0LiBUaWxsIHdlIHNoYWxsIGdvIG9uIGhhcmFzc2luZyBoaW0gd2l0aCBvdXIgc3VpdDsgZm9yIHdlIGZlYXIgbm8gbWFuLCBhbmQgY2FyZSBuZWl0aGVyIGZvciBoaW0sIHdpdGggYWxsIGhpcyBmaW5lIHNwZWVjaGVzLCBub3IgZm9yIGFueSBmb3J0dW5lLXRlbGxpbmcgb2YgeW91cnMuIFlvdSBtYXkgcHJlYWNoIGFzIG11Y2ggYXMgeW91IHBsZWFzZSwgYnV0IHdlIHNoYWxsIG9ubHkgaGF0ZSB5b3UgdGhlIG1vcmUuIFdlIHNoYWxsIGdvIGJhY2sgYW5kIGNvbnRpbnVlIHRvIGVhdCB1cCBUZWxlbWFjaHVzJ3MgZXN0YXRlIHdpdGhvdXQgcGF5aW5nIGhpbSwgdGlsbCBzdWNoIHRpbWUgYXMgaGlzIG1vdGhlciBsZWF2ZXMgb2ZmIHRvcm1lbnRpbmcgdXMgYnkga2VlcGluZyB1cyBkYXkgYWZ0ZXIgZGF5IG9uIHRoZSB0aXB0b2Ugb2YgZXhwZWN0YXRpb24sIGVhY2ggdnlpbmcgd2l0aCB0aGUgb3RoZXIgaW4gaGlzIHN1aXQgZm9yIGEgcHJpemUgb2Ygc3VjaCByYXJlIHBlcmZlY3Rpb24uIEJlc2lkZXMgd2UgY2Fubm90IGdvIGFmdGVyIHRoZSBvdGhlciB3b21lbiB3aG9tIHdlIHNob3VsZCBtYXJyeSBpbiBkdWUgY291cnNlLCBidXQgZm9yIHRoZSB3YXkgaW4gd2hpY2ggc2hlIHRyZWF0cyB1cy4iDQoNClRoZW4gVGVsZW1hY2h1cyBzYWlkLCAiRXVyeW1hY2h1cywgYW5kIHlvdSBvdGhlciBzdWl0b3JzLCBJIHNoYWxsIHNheSBubyBtb3JlLCBhbmQgZW50cmVhdCB5b3Ugbm8gZnVydGhlciwgZm9yIHRoZSBnb2RzIGFuZCB0aGUgcGVvcGxlIG9mIEl0aGFjYSBub3cga25vdyBteSBzdG9yeS4gR2l2ZSBtZSwgdGhlbiwgYSBzaGlwIGFuZCBhIGNyZXcgb2YgdHdlbnR5IG1lbiB0byB0YWtlIG1lIGhpdGhlciBhbmQgdGhpdGhlciwgYW5kIEkgd2lsbCBnbyB0byBTcGFydGEgYW5kIHRvIFB5bG9zIGluIHF1ZXN0IG9mIG15IGZhdGhlciB3aG8gaGFzIHNvIGxvbmcgYmVlbiBtaXNzaW5nLiBTb21lIG9uZSBtYXkgdGVsbCBtZSBzb21ldGhpbmcsIG9yIChhbmQgcGVvcGxlIG9mdGVuIGhlYXIgdGhpbmdzIGluIHRoaXMgd2F5KSBzb21lIGhlYXZlbi1zZW50IG1lc3NhZ2UgbWF5IGRpcmVjdCBtZS4gSWYgSSBjYW4gaGVhciBvZiBoaW0gYXMgYWxpdmUgYW5kIG9uIGhpcyB3YXkgaG9tZSBJIHdpbGwgcHV0IHVwIHdpdGggdGhlIHdhc3RlIHlvdSBzdWl0b3JzIHdpbGwgbWFrZSBmb3IgeWV0IGFub3RoZXIgdHdlbHZlIG1vbnRocy4gSWYgb24gdGhlIG90aGVyIGhhbmQgSSBoZWFyIG9mIGhpcyBkZWF0aCwgSSB3aWxsIHJldHVybiBhdCBvbmNlLCBjZWxlYnJhdGUgaGlzIGZ1bmVyYWwgcml0ZXMgd2l0aCBhbGwgZHVlIHBvbXAsIGJ1aWxkIGEgYmFycm93IHRvIGhpcyBtZW1vcnksIGFuZCBtYWtlIG15IG1vdGhlciBtYXJyeSBhZ2Fpbi4iDQoNCldpdGggdGhlc2Ugd29yZHMgaGUgc2F0IGRvd24sIGFuZCBNZW50b3Igd2hvIGhhZCBiZWVuIGEgZnJpZW5kIG9mIFVseXNzZXMsIGFuZCBoYWQgYmVlbiBsZWZ0IGluIGNoYXJnZSBvZiBldmVyeXRoaW5nIHdpdGggZnVsbA==",
      "timestamp": "2014-09-07T22:39:54.022Z"
    },
    {
      "requestFrom": "127.0.0.1:53172",
      "data": "IGF1dGhvcml0eSBvdmVyIHRoZSBzZXJ2YW50cywgcm9zZSB0byBzcGVhay4gSGUsIHRoZW4sIHBsYWlubHkgYW5kIGluIGFsbCBob25lc3R5IGFkZHJlc3NlZCB0aGVtIHRodXM6DQoNCiJIZWFyIG1lLCBtZW4gb2YgSXRoYWNhLCBJIGhvcGUgdGhhdCB5b3UgbWF5IG5ldmVyIGhhdmUgYSBraW5kIGFuZCB3ZWxsLWRpc3Bvc2VkIHJ1bGVyIGFueSBtb3JlLCBub3Igb25lIHdobyB3aWxsIGdvdmVybiB5b3UgZXF1aXRhYmx5OyBJIGhvcGUgdGhhdCBhbGwgeW91ciBjaGllZnMgaGVuY2Vmb3J3YXJkIG1heSBiZSBjcnVlbCBhbmQgdW5qdXN0LCBmb3IgdGhlcmUgaXMgbm90IG9uZSBvZiB5b3UgYnV0IGhhcyBmb3Jnb3R0ZW4gVWx5c3Nlcywgd2hvIHJ1bGVkIHlvdSBhcyB0aG91Z2ggaGUgd2VyZSB5b3VyIGZhdGhlci4gSSBhbSBub3QgaGFsZiBzbyBhbmdyeSB3aXRoIHRoZSBzdWl0b3JzLCBmb3IgaWYgdGhleSBjaG9vc2UgdG8gZG8gdmlvbGVuY2UgaW4gdGhlIG5hdWdodGluZXNzIG9mIHRoZWlyIGhlYXJ0cywgYW5kIHdhZ2VyIHRoZWlyIGhlYWRzIHRoYXQgVWx5c3NlcyB3aWxsIG5vdCByZXR1cm4sIHRoZXkgY2FuIHRha2UgdGhlIGhpZ2ggaGFuZCBhbmQgZWF0IHVwIGhpcyBlc3RhdGUsIGJ1dCBhcyBmb3IgeW91IG90aGVycyBJIGFtIHNob2NrZWQgYXQgdGhlIHdheSBpbiB3aGljaCB5b3UgYWxsIHNpdCBzdGlsbCB3aXRob3V0IGV2ZW4gdHJ5aW5nIHRvIHN0b3Agc3VjaCBzY2FuZGFsb3VzIGdvaW5ncyBvbi13aGljaCB5b3UgY291bGQgZG8gaWYgeW91IGNob3NlLCBmb3IgeW91IGFyZSBtYW55IGFuZCB0aGV5IGFyZSBmZXcuIg0KDQpMZWlvY3JpdHVzLCBzb24gb2YgRXZlbm9yLCBhbnN3ZXJlZCBoaW0gc2F5aW5nLCAiTWVudG9yLCB3aGF0IGZvbGx5IGlzIGFsbCB0aGlzLCB0aGF0IHlvdSBzaG91bGQgc2V0IHRoZSBwZW9wbGUgdG8gc3RheSB1cz8gSXQgaXMgYSBoYXJkIHRoaW5nIGZvciBvbmUgbWFuIHRvIGZpZ2h0IHdpdGggbWFueSBhYm91dCBoaXMgdmljdHVhbHMuIEV2ZW4gdGhvdWdoIFVseXNzZXMgaGltc2VsZiB3ZXJlIHRvIHNldCB1cG9uIHVzIHdoaWxlIHdlIGFyZSBmZWFzdGluZyBpbiBoaXMgaG91c2UsIGFuZCBkbyBoaXMgYmVzdCB0byBvdXN0IHVzLCBoaXMgd2lmZSwgd2hvIHdhbnRzIGhpbSBiYWNrIHNvIHZlcnkgYmFkbHksIHdvdWxkIGhhdmUgc21hbGwgY2F1c2UgZm9yIHJlam9pY2luZywgYW5kIGhpcyBibG9vZCB3b3VsZCBiZSB1cG9uIGhpcyBvd24gaGVhZCBpZiBoZSBmb3VnaHQgYWdhaW5zdCBzdWNoIGdyZWF0IG9kZHMuIFRoZXJlIGlzIG5vIHNlbnNlIGluIHdoYXQgeW91IGhhdmUgYmVlbiBzYXlpbmcuIE5vdywgdGhlcmVmb3JlLCBkbyB5b3UgcGVvcGxlIGdvIGFib3V0IHlvdXIgYnVzaW5lc3MsIGFuZCBsZXQgaGlzIGZhdGhlcidzIG9sZCBmcmllbmRzLCBNZW50b3IgYW5kIEhhbGl0aGVyc2VzLCBzcGVlZCB0aGlzIGJveSBvbiBoaXMgam91cm5leSwgaWYgaGUgZ29lcyBhdCBhbGwtIHdoaWNoIEkgZG8gbm90IHRoaW5rIGhlIHdpbGwsIGZvciBoZSBpcyBtb3JlIGxpa2VseSB0byBzdGF5IHdoZXJlIGhlIGlzIHRpbGwgc29tZSBvbmUgY29tZXMgYW5kIHRlbGxzIGhpbSBzb21ldGhpbmcuIg0KDQpPbiB0aGlzIGhlIGJyb2tlIHVwIHRoZSBhc3NlbWJseSwgYW5kIGV2ZXJ5IG1hbiB3ZW50IGJhY2sgdG8gaGlzIG93biBhYm9kZSwgd2hpbGUgdGhlIHN1aXRvcnMgcmV0dXJuZWQgdG8gdGhlIGhvdXNlIG9mIFVseXNzZXMuDQoNClRoZW4gVGVsZW1hY2h1cyB3ZW50IGFsbCBhbG9uZSBieSB0aGUgc2VhIHNpZGUsIHdhc2hlZCBoaXMgaGFuZHMgaW4gdGhlIGdyZXkgd2F2ZXMsIGFuZCBwcmF5ZWQgdG8gTWluZXJ2YS4NCg0KIkhlYXIgbWUsIiBoZSBjcmllZCwgInlvdSBnb2Qgd2hvIHZpc2l0ZWQgbWUgeWVzdGVyZGF5LCBhbmQgYmFkZSBtZSBzYWlsIHRoZSBzZWFzIGluIHNlYXJjaCBvZiBteSBmYXRoZXIgd2hvIGhhcyBzbyBsb25nIGJlZW4gbWlzc2luZy4gSSB3b3VsZCBvYmV5IHlvdSwgYnV0IHRoZSBBY2hhZWFucywgYW5kIG1vcmUgcGFydGljdWxhcmx5IHRoZSB3aWNrZWQgc3VpdG9ycywgYXJlIGhpbmRlcmluZyBtZSB0aGF0IEkgY2Fubm90IGRvIHNvLiINCg0KQXMgaGUgdGh1cyBwcmF5ZWQsIE1pbmVydmEgY2FtZSBjbG9zZSB1cCB0byBoaW0gaW4gdGhlIGxpa2VuZXNzIGFuZCB3aXRoIHRoZSB2b2ljZSBvZiBNZW50b3IuICJUZWxlbWFjaHVzLCIgc2FpZCBzaGUsICJpZiB5b3UgYXJlIG1hZGUgb2YgdGhlIHNhbWUgc3R1ZmYgYXMgeW91ciBmYXRoZXIgeW91IHdpbGwgYmUgbmVpdGhlciBmb29sIG5vciBjb3dhcmQgaGVuY2Vmb3J3YXJkLCBmb3IgVWx5c3NlcyBuZXZlciBicm9rZSBoaXMgd29yZCBub3IgbGVmdCBoaXMgd29yayBoYWxmIGRvbmUuIElmLCB0aGVuLCB5b3UgdGFrZSBhZnRlciBoaW0sIHlvdXIgdm95YWdlIHdpbGwgbm90IGJlIGZydWl0bGVzcywgYnV0IHVubGVzcyB5b3UgaGF2ZSB0aGUgYmxvb2Qgb2YgVWx5c3NlcyBhbmQgb2YgUGVuZWxvcGUgaW4geW91ciB2ZWlucyBJIHNlZSBubyBsaWtlbGlob29kIG9mIHlvdXIgc3VjY2VlZGluZy4gU29ucyBhcmUgc2VsZG9tIGFzIGdvb2QgbWVuIGFzIHRoZWlyIGZhdGhlcnM7IHRoZXkgYXJlIGdlbmVyYWxseSB3b3JzZSwgbm90IGJldHRlcjsgc3RpbGwsIGFzIHlvdSBhcmUgbm90IGdvaW5nIHRvIGJlIGVpdGhlciBmb29sIG9yIGNvd2FyZCBoZW5jZWZvcndhcmQsIGFuZCBhcmUgbm90IGVudGlyZWx5IHdpdGhvdXQgc29tZSBzaGFyZSBvZiB5b3VyIGZhdGhlcidzIHdpc2UgZGlzY2Vybm1lbnQsIEkgbG9vayB3aXRoIGhvcGUgdXBvbiB5b3VyIHVuZGVydGFraW5nLiBCdXQgbWluZCB5b3UgbmV2ZXIgbWFrZSBjb21tb24gY2F1c2Ugd2l0aCBhbnkgb2YgdGhvc2UgZm9vbGlzaCBzdWl0b3JzLCBmb3IgdGhleSBoYXZlIG5laXRoZXIgc2Vuc2Ugbm9yIHZpcnR1ZSwgYW5kIGdpdmUgbm8gdGhvdWdodCB0byBkZWF0aCBhbmQgdG8gdGhlIGRvb20gdGhhdCB3aWxsIHNob3J0bHkgZmFsbCBvbiBvbmUgYW5kIGFsbCBvZiB0aGVtLCBzbyB0aGF0IHRoZXkgc2hhbGwgcGVyaXNoIG9uIHRoZSBzYW1lIGRheS4gQXMgZm9yIHlvdXIgdm95YWdlLCBpdCBzaGFsbCBub3QgYmUgbG9uZyBkZWxheWVkOyB5b3VyIGZhdGhlciB3YXMgc3VjaCBhbiBvbGQgZnJpZW5kIG9mIG1pbmUgdGhhdCBJIHdpbGwgZmluZCB5b3UgYSBzaGlwLCBhbmQgd2lsbCBjb21lIHdpdGggeW91IG15c2VsZi4gTm93LCBob3dldmVyLCByZXR1cm4gaG9tZSwgYW5kIGdvIGFib3V0IGFtb25nIHRoZSBzdWl0b3JzOyBiZWdpbiBnZXR0aW5nIHByb3Zpc2lvbnMgcmVhZHkgZm9yIHlvdXIgdm95YWdlOyBzZWUgZXZlcnl0aGluZyB3ZWxsIHN0b3dlZCwgdGhlIHdpbmUgaW4gamFycywgYW5kIHRoZSBiYXJsZXkgbWVhbCwgd2hpY2ggaXMgdGhlIHN0YWZmIG9mIGxpZmUsIGluIGxlYXRoZXJuIGJhZ3MsIHdoaWxlIEkgZ28gcm91bmQgdGhlIHRvd24gYW5kIGJlYXQgdXAgdm9sdW50ZWVycyBhdCBvbmNlLiBUaGVyZSBhcmUgbWFueSBzaGlwcyBpbiBJdGhhY2EgYm90aCBvbGQgYW5kIG5ldzsgSSB3aWxsIHJ1biBteSBleWUgb3ZlciB0aGVtIGZvciB5b3UgYW5kIHdpbGwgY2hvb3NlIHRoZSBiZXN0OyB3ZSB3aWxsIGdldCBoZXIgcmVhZHkgYW5kIHdpbGwgcHV0IG91dCB0byBzZWEgd2l0aG91dCBkZWxheS4iDQoNClRodXMgc3Bva2UgTWluZXJ2YSBkYXVnaHRlciBvZiBKb3ZlLCBhbmQgVGVsZW1hY2h1cyBsb3N0IG5vIHRpbWUgaW4gZG9pbmcgYXMgdGhlIGdvZGRlc3MgdG9sZCBoaW0uIEhlIHdlbnQgbW9vZGlseSBhbmQgZm91bmQgdGhlIHN1aXRvcnMgZmxheWluZyBnb2F0cyBhbmQgc2luZ2VpbmcgcGlncyBpbiB0aGUgb3V0ZXIgY291cnQuIEFudGlub3VzIGNhbWUgdXAgdG8gaGltIGF0IG9uY2UgYW5kIGxhdWdoZWQgYXMgaGUgdG9vayBoaXMgaGFuZCBpbiBoaXMgb3duLCBzYXlpbmcsICJUZWxlbWFjaHVzLCBteSBmaW5lIGZpcmUtZWF0ZXIsIGJlYXIgbm8gbW9yZSBpbGwgYmxvb2QgbmVpdGhlciBpbiB3b3JkIG5vciBkZWVkLCBidXQgZWF0IGFuZCBkcmluayB3aXRoIHVzIGFzIHlvdSB1c2VkIHRvIGRvLiBUaGUgQWNoYWVhbnMgd2lsbCBmaW5kIHlvdSBpbiBldmVyeXRoaW5nLSBhIHNoaXAgYW5kIGEgcGlja2VkIGNyZXcgdG8gYm9vdC0gc28gdGhhdCB5b3UgY2FuIHNldCBzYWlsIGZvciBQeWxvcyBhdCBvbmNlIGFuZCBnZXQgbmV3cyBvZiB5b3VyIG5vYmxlIGZhdGhlci4iDQoNCiJBbnRpbm91cywiIGFuc3dlcmVkIFRlbGVtYWNodXMsICJJIGNhbm5vdCBlYXQgaW4gcGVhY2UsIG5vciB0YWtlIHBsZWFzdXJlIG9mIGFueSBraW5kIHdpdGggc3VjaCBtZW4gYXMgeW91IGFyZS4gV2FzIGl0IG5vdCBlbm91Z2ggdGhhdCB5b3Ugc2hvdWxkIHdhc3RlIHNvIG11Y2ggZ29vZCBwcm9wZXJ0eSBvZiBtaW5lIHdoaWxlIEkgd2FzIHlldCBhIGJveT8gTm93IHRoYXQgSSBhbSBvbGRlciBhbmQga25vdyBtb3JlIGFib3V0IGl0LCBJIGFtIGFsc28gc3Ryb25nZXIsIGFuZCB3aGV0aGVyIGhlcmUgYW1vbmcgdGhpcyBwZW9wbGUsIG9yIGJ5IGdvaW5nIHRvIFB5bG9zLCBJIHdpbGwgZG8geW91IGFsbCB0aGUgaGFybSBJIGNhbi4gSSBzaGFsbCBnbywgYW5kIG15IGdvaW5nIHdpbGwgbm90IGJlIGluIHZhaW4gdGhvdWdoLCB0aGFua3MgdG8geW91IHN1aXRvcnMsIEkgaGF2ZSBuZWl0aGVyIHNoaXAgbm9yIGNyZXcgb2YgbXkgb3duLCBhbmQgbXVzdCBiZSBwYXNzZW5nZXIgbm90IGNhcHRhaW4uIg0KDQpBcyBoZSBzcG9rZSBoZSBzbmF0Y2hlZCBoaXMgaGFuZCBmcm9tIHRoYXQgb2YgQW50aW5vdXMuIE1lYW53aGlsZSB0aGUgb3RoZXJzIHdlbnQgb24gZ2V0dGluZyBkaW5uZXIgcmVhZHkgYWJvdXQgdGhlIGJ1aWxkaW5ncywgamVlcmluZyBhdCBoaW0gdGF1bnRpbmdseSBhcyB0aGV5IGRpZCBzby4NCg0KIlRlbGVtYWNodXMsIiBzYWlkIG9uZSB5b3VuZ3N0ZXIsICJtZWFucyB0byBiZSB0aGUgZGVhdGggb2YgdXM7IEkgc3VwcG9zZSBoZSB0aGlua3MgaGUgY2FuIGJyaW5nIGZyaWVuZHMgdG8gaGVscCBoaW0gZnJvbSBQeWxvcywgb3IgYWdhaW4gZnJvbSBTcGFydGEsIHdoZXJlIGhlIHNlZW1zIGJlbnQgb24gZ29pbmcuIE9yIHdpbGwgaGUgZ28gdG8gRXBoeXJhIGFzIHdlbGwsIGZvciBwb2lzb24gdG8gcHV0IGluIG91ciB3aW5lIGFuZCBraWxsIHVzPyINCg0KQW5vdGhlciBzYWlkLCAiUGVyaGFwcyBpZiBUZWxlbWFjaHVzIGdvZXMgb24gYm9hcmQgc2hpcCwgaGUgd2lsbCBiZSBsaWtlIGhpcyBmYXRoZXIgYW5kIHBlcmlzaCBmYXIgZnJvbSBoaXMgZnJpZW5kcy4gSW4gdGhpcyBjYXNlIHdlIHNob3VsZCBoYXZlIHBsZW50eSB0byBkbywgZm9yIHdlIGNvdWxkIHRoZW4gZGl2aWRlIHVwIGhpcyBwcm9wZXJ0eSBhbW9uZ3N0IHVzOiBhcyBmb3IgdGhlIGhvdXNlIHdlIGNhbiBsZXQgaGlzIG1vdGhlciBhbmQgdGhlIG1hbiB3aG8gbWFycmllcyBoZXIgaGF2ZSB0aGF0LiINCg0KVGhpcyB3YXMgaG93IHRoZXkgdGFsa2VkLiBCdXQgVGVsZW1hY2h1cyB3ZW50IGRvd24gaW50byB0aGUgbG9mdHkgYW5kIHNwYWNpb3VzIHN0b3JlLXJvb20gd2hlcmUgaGlzIGZhdGhlcidzIHRyZWFzdXJlIG9mIGdvbGQgYW5kIGJyb256ZSBsYXkgaGVhcGVkIHVwIHVwb24gdGhlIGZsb29yLCBhbmQgd2hlcmUgdGhlIGxpbmVuIGFuZCBzcGFyZSBjbG90aGVzIHdlcmUga2VwdCBpbiBvcGVuIGNoZXN0cy4gSGVyZSwgdG9vLCB0aGVyZSB3YXMgYSBzdG9yZSBvZiBmcmFncmFudCBvbGl2ZSBvaWwsIHdoaWxlIGNhc2tzIG9mIG9sZCwgd2VsbC1yaXBlbmVkIHdpbmUsIHVuYmxlbmRlZCBhbmQgZml0IGZvciBhIGdvZCB0byBkcmluaywgd2VyZSByYW5nZWQgYWdhaW5zdCB0aGUgd2FsbCBpbiBjYXNlIFVseXNzZXMgc2hvdWxkIGNvbWUgaG9tZSBhZ2FpbiBhZnRlciBhbGwuIFRoZSByb29tIHdhcyBjbG9zZWQgd2l0aCB3ZWxsLW1hZGUgZG9vcnMgb3BlbmluZyBpbiB0aGUgbWlkZGxlOyBtb3Jlb3ZlciB0aGUgZmFpdGhmdWwgb2xkIGhvdXNlLWtlZXBlciBFdXJ5Y2xlYSwgZGF1Z2h0ZXIgb2YgT3BzIHRoZSBzb24gb2YgUGlzZW5vciwgd2FzIGluIGNoYXJnZSBvZiBldmVyeXRoaW5nIGJvdGggbmlnaHQgYW5kIGRheS4gVGVsZW1hY2h1cyBjYWxsZWQgaGVyIHRvIHRoZSBzdG9yZS1yb29tIGFuZCBzYWlkOg0KDQoiTnVyc2UsIGRyYXcgbWUgb2ZmIHNvbWUgb2YgdGhlIGJlc3Qgd2luZSB5b3UgaGF2ZSwgYWZ0ZXIgd2hhdCB5b3UgYXJlIGtlZXBpbmcgZm9yIG15IGZhdGhlcidzIG93biBkcmlua2luZywgaW4gY2FzZSwgcG9vciBtYW4sIGhlIHNob3VsZCBlc2NhcGUgZGVhdGgsIGFuZCBmaW5kIGhpcyB3YXkgaG9tZSBhZ2FpbiBhZnRlciBhbGwuIExldCBtZSBoYXZlIHR3ZWx2ZSBqYXJzLCBhbmQgc2VlIHRoYXQgdGhleSBhbGwgaGF2ZSBsaWRzOyBhbHNvIGZpbGwgbWUgc29tZSB3ZWxsLXNld24gbGVhdGhlcm4gYmFncyB3aXRoIGJhcmxleSBtZWFsLSBhYm91dCB0d2VudHkgbWVhc3VyZXMgaW4gYWxsLiBHZXQgdGhlc2UgdGhpbmdzIHB1dCB0b2dldGhlciBhdCBvbmNlLCBhbmQgc2F5IG5vdGhpbmcgYWJvdXQgaXQuIEkgd2lsbCB0YWtlIGV2ZXJ5dGhpbmcgYXdheSB0aGlzIGV2ZW5pbmcgYXMgc29vbiBhcyBteSBtb3RoZXIgaGFzIGdvbmUgdXBzdGFpcnMgZm9yIHRoZSBuaWdodC4gSSBhbSBnb2luZyB0byBTcGFydGEgYW5kIHRvIFB5bG9zIHRvIHNlZSBpZiBJIGNhbiBoZWFyIGFueXRoaW5nIGFib3V0IHRoZSByZXR1cm4gb2YgbXkgZGVhciBmYXRoZXIuDQoNCldoZW4gRXVyeWNsZWEgaGVhcmQgdGhpcyBzaGUgYmVnYW4gdG8gY3J5LCBhbmQgc3Bva2UgZm9uZGx5IHRvIGhpbSwgc2F5aW5nLCAiTXkgZGVhciBjaGlsZCwgd2hhdCBldmVyIGNhbiBoYXZlIHB1dCBzdWNoIG5vdGlvbiBhcyB0aGF0IGludG8geW91ciBoZWFkPyBXaGVyZSBpbiB0aGUgd29ybGQgZG8geW91IHdhbnQgdG8gZ28gdG8tIHlvdSwgd2hvIGFyZSB0aGUgb25lIGhvcGUgb2YgdGhlIGhvdXNlPyBZb3VyIHBvb3IgZmF0aGVyIGlzIGRlYWQgYW5kIGdvbmUgaW4gc29tZSBmb3JlaWduIGNvdW50cnkgbm9ib2R5IGtub3dzIHdoZXJlLCBhbmQgYXMgc29vbiBhcyB5b3VyIGJhY2sgaXMgdHVybmVkIHRoZXNlIHdpY2tlZCBvbmVzIGhlcmUgd2lsbCBiZSBzY2hlbWluZyB0byBnZXQgeW91IHB1dCBvdXQgb2YgdGhlIHdheSwgYW5kIHdpbGwgc2hhcmUgYWxsIHlvdXIgcG9zc2Vzc2lvbnMgYW1vbmcgdGhlbXNlbHZlczsgc3RheSB3aGVyZSB5b3UgYXJlIGFtb25nIHlvdXIgb3duIHBlb3BsZSwgYW5kIGRvIG5vdCBnbyB3YW5kZXJpbmcgYW5kIHdvcnJ5aW5nIHlvdXIgbGlmZSBvdXQgb24gdGhlIGJhcnJlbiBvY2Vhbi4iDQoNCiJGZWFyIG5vdCwgbnVyc2UsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAibXkgc2NoZW1lIGlzIG5vdCB3aXRob3V0IGhlYXZlbidzIHNhbmN0aW9uOyBidXQgc3dlYXIgdGhhdCB5b3Ugd2lsbCBzYXkgbm90aGluZyBhYm91dCBhbGwgdGhpcyB0byBteSBtb3RoZXIsIHRpbGwgSSBoYXZlIGJlZW4gYXdheSBzb21lIHRlbiBvciB0d2VsdmUgZGF5cywgdW5sZXNzIHNoZSBoZWFycyBvZiBteSBoYXZpbmcgZ29uZSwgYW5kIGFza3MgeW91OyBmb3IgSSBkbyBub3Qgd2FudCBoZXIgdG8gc3BvaWwgaGVyIGJlYXV0eSBieSBjcnlpbmcuIg0KDQpUaGUgb2xkIHdvbWFuIHN3b3JlIG1vc3Qgc29sZW1ubHkgdGhhdCBzaGUgd291bGQgbm90LCBhbmQgd2hlbiBzaGUgaGFkIGNvbXBsZXRlZCBoZXIgb2F0aCwgc2hlIGJlZ2FuIGRyYXdpbmcgb2ZmIHRoZSB3aW5lIGludG8gamFycywgYW5kIGdldHRpbmcgdGhlIGJhcmxleSBtZWFsIGludG8gdGhlIGJhZ3MsIHdoaWxlIFRlbGVtYWNodXMgd2VudCBiYWNrIHRvIHRoZSBzdWl0b3JzLg0KDQpUaGVuIE1pbmVydmEgYmV0aG91Z2h0IGhlciBvZiBhbm90aGVyIG1hdHRlci4gU2hlIHRvb2sgaGlzIHNoYXBlLCBhbmQgd2VudCByb3VuZCB0aGUgdG93biB0byBlYWNoIG9uZSBvZiB0aGUgY3JldywgdGVsbGluZyB0aGVtIHRvIG1lZXQgYXQgdGhlIHNoaXAgYnkgc3VuZG93bi4gU2hlIHdlbnQgYWxzbyB0byBOb2Vtb24gc29uIG9mIFBocm9uaXVzLCBhbmQgYXNrZWQgaGltIHRvIGxldCBoZXIgaGF2ZSBhIHNoaXAtIHdoaWNoIGhlIHdhcyB2ZXJ5IHJlYWR5IHRvIGRvLiBXaGVuIHRoZSBzdW4gaGFkIHNldCBhbmQgZGFya25lc3Mgd2FzIG92ZXIgYWxsIHRoZSBsYW5kLCBzaGUgZ290IHRoZSBzaGlwIGludG8gdGhlIHdhdGVyLCBwdXQgYWxsIHRoZSB0YWNrbGUgb24gYm9hcmQgaGVyIHRoYXQgc2hpcHMgZ2VuZXJhbGx5IGNhcnJ5LCBhbmQgc3RhdGlvbmVkIGhlciBhdCB0aGUgZW5kIG9mIHRoZSBoYXJib3VyLiBQcmVzZW50bHkgdGhlIGNyZXcgY2FtZSB1cCwgYW5kIHRoZSBnb2RkZXNzIHNwb2tlIGVuY291cmFnaW5nbHkgdG8gZWFjaCBvZiB0aGVtLg0KDQpGdXJ0aGVybW9yZSBzaGUgd2VudCB0byB0aGUgaG91c2Ugb2YgVWx5c3NlcywgYW5kIHRocmV3IHRoZSBzdWl0b3JzIGludG8gYSBkZWVwIHNsdW1iZXIuIFNoZSBjYXVzZWQgdGhlaXIgZHJpbmsgdG8gZnVkZGxlIHRoZW0sIGFuZCBtYWRlIHRoZW0gZHJvcCB0aGVpciBjdXBzIGZyb20gdGhlaXIgaGFuZHMsIHNvIHRoYXQgaW5zdGVhZCBvZiBzaXR0aW5nIG92ZXIgdGhlaXIgd2luZSwgdGhleSB3ZW50IGJhY2sgaW50byB0aGUgdG93biB0byBzbGVlcCwgd2l0aCB0aGVpciBleWVzIGhlYXZ5IGFuZCBmdWxsIG9mIGRyb3dzaW5lc3MuIFRoZW4gc2hlIHRvb2sgdGhlIGZvcm0gYW5kIHZvaWNlIG9mIE1lbnRvciwgYW5kIGNhbGxlZCBUZWxlbWFjaHVzIHRvIGNvbWUgb3V0c2lkZS4NCg0KIlRlbGVtYWNodXMsIiBzYWlkIHNoZSwgInRoZSBtZW4gYXJlIG9uIGJvYXJkIGFuZCBhdCB0aGVpciBvYXJzLCB3YWl0aW5nIGZvciB5b3UgdG8gZ2l2ZSB5b3VyIG9yZGVycywgc28gbWFrZSBoYXN0ZSBhbmQgbGV0IHVzIGJlIG9mZi4iDQoNCk9uIHRoaXMgc2hlIGxlZCB0aGUgd2F5LCB3aGlsZSBUZWxlbWFjaHVzIGZvbGxvd2VkIGluIGhlciBzdGVwcy4gV2hlbiB0aGV5IGdvdCB0byB0aGUgc2hpcCB0aGV5IGZvdW5kIHRoZSBjcmV3IHdhaXRpbmcgYnkgdGhlIHdhdGVyIHNpZGUsIGFuZCBUZWxlbWFjaHVzIHNhaWQsICJOb3cgbXkgbWVuLCBoZWxwIG1lIHRvIGdldCB0aGUgc3RvcmVzIG9uIGJvYXJkOyB0aGV5IGFyZSBhbGwgcHV0IHRvZ2V0aGVyIGluIHRoZSBjbG9pc3RlciwgYW5kIG15IG1vdGhlciBkb2VzIG5vdCBrbm93IGFueXRoaW5nIGFib3V0IGl0LCBub3IgYW55IG9mIHRoZSBtYWlkIHNlcnZhbnRzIGV4Y2VwdCBvbmUuIg0KDQpXaXRoIHRoZXNlIHdvcmRzIGhlIGxlZCB0aGUgd2F5IGFuZCB0aGUgb3RoZXJzIGZvbGxvd2VkIGFmdGVyLiBXaGVuIHRoZXkgaGFkIGJyb3VnaHQgdGhlIHRoaW5ncyBhcyBoZSB0b2xkIHRoZW0sIFRlbGVtYWNodXMgd2VudCBvbiBib2FyZCwgTWluZXJ2YSBnb2luZyBiZWZvcmUgaGltIGFuZCB0YWtpbmcgaGVyIHNlYXQgaW4gdGhlIHN0ZXJuIG9mIHRoZSB2ZXNzZWwsIHdoaWxlIFRlbGVtYWNodXMgc2F0IGJlc2lkZSBoZXIuIFRoZW4gdGhlIG1lbiBsb29zZWQgdGhlIGhhd3NlcnMgYW5kIHRvb2sgdGhlaXIgcGxhY2VzIG9uIHRoZSBiZW5jaGVzLiBNaW5lcnZhIHNlbnQgdGhlbSBhIGZhaXIgd2luZCBmcm9tIHRoZSBXZXN0LCB0aGF0IHdoaXN0bGVkIG92ZXIgdGhlIGRlZXAgYmx1ZSB3YXZlcyB3aGVyZW9uIFRlbGVtYWNodXMgdG9sZCB0aGVtIHRvIGNhdGNoIGhvbGQgb2YgdGhlIHJvcGVzIGFuZCBob2lzdCBzYWlsLCBhbmQgdGhleSBkaWQgYXMgaGUgdG9sZCB0aGVtLiBUaGV5IHNldCB0aGUgbWFzdCBpbiBpdHMgc29ja2V0IGluIHRoZSBjcm9zcyBwbGFuaywgcmFpc2VkIGl0LCBhbmQgbWFkZSBpdCBmYXN0IHdpdGggdGhlIGZvcmVzdGF5czsgdGhlbiB0aGV5IGhvaXN0ZWQgdGhlaXIgd2hpdGUgc2FpbHMgYWxvZnQgd2l0aCByb3BlcyBvZiB0d2lzdGVkIG94IGhpZGUuIEFzIHRoZSBzYWlsIGJlbGxpZWQgb3V0IHdpdGggdGhlIHdpbmQsIHRoZSBzaGlwIGZsZXcgdGhyb3VnaCB0aGUgZGVlcCBibHVlIHdhdGVyLCBhbmQgdGhlIGZvYW0gaGlzc2VkIGFnYWluc3QgaGVyIGJvd3MgYXMgc2hlIHNwZWQgb253YXJkLiBUaGVuIHRoZXkgbWFkZSBhbGwgZmFzdCB0aHJvdWdob3V0IHRoZSBzaGlwLCBmaWxsZWQgdGhlIG1peGluZy1ib3dscyB0byB0aGUgYnJpbSwgYW5kIG1hZGUgZHJpbmsgb2ZmZXJpbmdzIHRvIHRoZSBpbW1vcnRhbCBnb2RzIHRoYXQgYXJlIGZyb20gZXZlcmxhc3RpbmcsIGJ1dCBtb3JlIHBhcnRpY3VsYXJseSB0byB0aGUgZ3JleS1leWVkIGRhdWdodGVyIG9mIEpvdmUuDQoNClRodXMsIHRoZW4sIHRoZSBzaGlwIHNwZWQgb24gaGVyIHdheSB0aHJvdWdoIHRoZSB3YXRjaGVzIG9mIHRoZSBuaWdodCBmcm9tIGRhcmsgdGlsbCBkYXduLg0KDQpCb29rIElJSQ0KDQpCdXQgYXMgdGhlIHN1biB3YXMgcmlzaW5nIGZyb20gdGhlIGZhaXIgc2VhIGludG8gdGhlIGZpcm1hbWVudCBvZiBoZWF2ZW4gdG8gc2hlZCBsaWdodCBvbiBtb3J0YWxzIGFuZCBpbW1vcnRhbHMsIHRoZXkgcmVhY2hlZCBQeWxvcyB0aGUgY2l0eSBvZiBOZWxldXMuIE5vdyB0aGUgcGVvcGxlIG9mIFB5bG9zIHdlcmUgZ2F0aGVyZWQgb24gdGhlIHNlYSBzaG9yZSB0byBvZmZlciBzYWNyaWZpY2Ugb2YgYmxhY2sgYnVsbHMgdG8gTmVwdHVuZSBsb3JkIG9mIHRoZSBFYXJ0aHF1YWtlLiBUaGVyZSB3ZXJlIG5pbmUgZ3VpbGRzIHdpdGggZml2ZSBodW5kcmVkIG1lbiBpbiBlYWNoLCBhbmQgdGhlcmUgd2VyZSBuaW5lIGJ1bGxzIHRvIGVhY2ggZ3VpbGQuIEFzIHRoZXkgd2VyZSBlYXRpbmcgdGhlIGlud2FyZCBtZWF0cyBhbmQgYnVybmluZyB0aGUgdGhpZ2ggYm9uZXMgW29uIHRoZSBlbWJlcnNdIGluIHRoZSBuYW1lIG9mIE5lcHR1bmUsIFRlbGVtYWNodXMgYW5kIGhpcyBjcmV3IGFycml2ZWQsIGZ1cmxlZCB0aGVpciBzYWlscywgYnJvdWdodCB0aGVpciBzaGlwIHRvIGFuY2hvciwgYW5kIHdlbnQgYXNob3JlLg0KDQpNaW5lcnZhIGxlZCB0aGUgd2F5IGFuZCBUZWxlbWFjaHVzIGZvbGxvd2VkIGhlci4gUHJlc2VudGx5IHNoZSBzYWlkLCAiVGVsZW1hY2h1cywgeW91IG11c3Qgbm90IGJlIGluIHRoZSBsZWFzdCBzaHkgb3IgbmVydm91czsgeW91IGhhdmUgdGFrZW4gdGhpcyB2b3lhZ2UgdG8gdHJ5IGFuZCBmaW5kIG91dCB3aGVyZSB5b3VyIGZhdGhlciBpcyBidXJpZWQgYW5kIGhvdyBoZSBjYW1lIGJ5IGhpcyBlbmQ7IHNvIGdvIHN0cmFpZ2h0IHVwIHRvIE5lc3RvciB0aGF0IHdlIG1heSBzZWUgd2hhdCBoZSBoYXMgZ290IHRvIHRlbGwgdXMuIEJlZyBvZiBoaW0gdG8gc3BlYWsgdGhlIHRydXRoLCBhbmQgaGUgd2lsbCB0ZWxsIG5vIGxpZXMsIGZvciBoZSBpcyBhbiBleGNlbGxlbnQgcGVyc29uLiINCg0KIkJ1dCBob3csIE1lbnRvciwiIHJlcGxpZWQgVGVsZW1hY2h1cywgImRhcmUgSSBnbyB1cCB0byBOZXN0b3IsIGFuZCBob3cgYW0gSSB0byBhZGRyZXNzIGhpbT8gSSBoYXZlIG5ldmVyIHlldCBiZWVuIHVzZWQgdG8gaG9sZGluZyBsb25nIGNvbnZlcnNhdGlvbnMgd2l0aCBwZW9wbGUsIGFuZCBhbSBhc2hhbWVkIHRvIGJlZ2luIHF1ZXN0aW9uaW5nIG9uZSB3aG8gaXMgc28gbXVjaCBvbGRlciB0aGFuIG15c2VsZi4iDQoNCiJTb21lIHRoaW5ncywgVGVsZW1hY2h1cywiIGFuc3dlcmVkIE1pbmVydmEsICJ3aWxsIGJlIHN1Z2dlc3RlZCB0byB5b3UgYnkgeW91ciBvd24gaW5zdGluY3QsIGFuZCBoZWF2ZW4gd2lsbCBwcm9tcHQgeW91IGZ1cnRoZXI7IGZvciBJIGFtIGFzc3VyZWQgdGhhdCB0aGUgZ29kcyBoYXZlIGJlZW4gd2l0aCB5b3UgZnJvbSB0aGUgdGltZSBvZiB5b3VyIGJpcnRoIHVudGlsIG5vdy4iDQoNClNoZSB0aGVuIHdlbnQgcXVpY2tseSBvbiwgYW5kIFRlbGVtYWNodXMgZm9sbG93ZWQgaW4gaGVyIHN0ZXBzIHRpbGwgdGhleSByZWFjaGVkIHRoZSBwbGFjZSB3aGVyZSB0aGUgZ3VpbGRzIG9mIHRoZSBQeWxpYW4gcGVvcGxlIHdlcmUgYXNzZW1ibGVkLiBUaGVyZSB0aGV5IGZvdW5kIE5lc3RvciBzaXR0aW5nIHdpdGggaGlzIHNvbnMsIHdoaWxlIGhpcyBjb21wYW55IHJvdW5kIGhpbSB3ZXJlIGJ1c3kgZ2V0dGluZyBkaW5uZXIgcmVhZHksIGFuZCBwdXR0aW5nIHBpZWNlcyBvZiBtZWF0IG9uIHRvIHRoZSBzcGl0cyB3aGlsZSBvdGhlciBwaWVjZXMgd2VyZSBjb29raW5nLiBXaGVuIHRoZXkgc2F3IHRoZSBzdHJhbmdlcnMgdGhleSBjcm93ZGVkIHJvdW5kIHRoZW0sIHRvb2sgdGhlbSBieSB0aGUgaGFuZCBhbmQgYmFkZSB0aGVtIHRha2UgdGhlaXIgcGxhY2VzLiBOZXN0b3IncyBzb24gUGlzaXN0cmF0dXMgYXQgb25jZSBvZmZlcmVkIGhpcyBoYW5kIHRvIGVhY2ggb2YgdGhlbSwgYW5kIHNlYXRlZCB0aGVtIG9uIHNvbWUgc29mdCBzaGVlcHNraW5zIHRoYXQgd2VyZSBseWluZyBvbiB0aGUgc2FuZHMgbmVhciBoaXMgZmF0aGVyIGFuZCBoaXMgYnJvdGhlciBUaHJhc3ltZWRlcy4gVGhlbiBoZSBnYXZlIHRoZW0gdGhlaXIgcG9ydGlvbnMgb2YgdGhlIGlud2FyZCBtZWF0cyBhbmQgcG91cmVkIHdpbmUgZm9yIHRoZW0gaW50byBhIGdvbGRlbiBjdXAsIGhhbmRpbmcgaXQgdG8gTWluZXJ2YSBmaXJzdCwgYW5kIHNhbHV0aW5nIGhlciBhdCB0aGUgc2FtZSB0aW1lLg0KDQoiT2ZmZXIgYSBwcmF5ZXIsIHNpciwiIHNhaWQgaGUsICJ0byBLaW5nIE5lcHR1bmUsIGZvciBpdCBpcyBoaXMgZmVhc3QgdGhhdCB5b3UgYXJlIGpvaW5pbmc7IHdoZW4geW91IGhhdmUgZHVseSBwcmF5ZWQgYW5kIG1hZGUgeW91ciBkcmluay1vZmZlcmluZywgcGFzcyB0aGUgY3VwIHRvIHlvdXIgZnJpZW5kIHRoYXQgaGUgbWF5IGRvIHNvIGFsc28uIEkgZG91YnQgbm90IHRoYXQgaGUgdG9vIGxpZnRzIGhpcyBoYW5kcyBpbiBwcmF5ZXIsIGZvciBtYW4gY2Fubm90IGxpdmUgd2l0aG91dCBHb2QgaW4gdGhlIHdvcmxkLiBTdGlsbCBoZSBpcyB5b3VuZ2VyIHRoYW4geW91IGFyZSwgYW5kIGlzIG11Y2ggb2YgYW4gYWdlIHdpdGggbXlzZWxmLCBzbyBJIGhlIGhhbmRlZCBJIHdpbGwgZ2l2ZSB5b3UgdGhlIHByZWNlZGVuY2UuIg0KDQpBcyBoZSBzcG9rZSBoZSBoYW5kZWQgaGVyIHRoZSBjdXAuIE1pbmVydmEgdGhvdWdodCBpdCB2ZXJ5IHJpZ2h0IGFuZCBwcm9wZXIgb2YgaGltIHRvIGhhdmUgZ2l2ZW4gaXQgdG8gaGVyc2VsZiBmaXJzdDsgc2hlIGFjY29yZGluZ2x5IGJlZ2FuIHByYXlpbmcgaGVhcnRpbHkgdG8gTmVwdHVuZS4gIk8gdGhvdSwiIHNoZSBjcmllZCwgInRoYXQgZW5jaXJjbGVzdCB0aGUgZWFydGgsIHZvdWNoc2FmZSB0byBncmFudCB0aGUgcHJheWVycyBvZiB0aHkgc2VydmFudHMgdGhhdCBjYWxsIHVwb24gdGhlZS4gTW9yZSBlc3BlY2lhbGx5IHdlIHByYXkgdGhlZSBzZW5kIGRvd24gdGh5IGdyYWNlIG9uIE5lc3RvciBhbmQgb24gaGlzIHNvbnM7IHRoZXJlYWZ0ZXIgYWxzbyBtYWtlIHRoZSByZXN0IG9mIHRoZSBQeWxpYW4gcGVvcGxlIHNvbWUgaGFuZHNvbWUgcmV0dXJuIGZvciB0aGUgZ29vZGx5IGhlY2F0b21iIHRoZXkgYXJlIG9mZmVyaW5nIHlvdS4gTGFzdGx5LCBncmFudCBUZWxlbWFjaHVzIGFuZCBteXNlbGYgYSBoYXBweSBpc3N1ZSwgaW4gcmVzcGVjdCBvZiB0aGUgbWF0dGVyIHRoYXQgaGFzIGJyb3VnaHQgdXMgaW4gb3VyIHRvIFB5bG9zLiINCg0KV2hlbiBzaGUgaGFkIHRodXMgbWFkZSBhbiBlbmQgb2YgcHJheWluZywgc2hlIGhhbmRlZCB0aGUgY3VwIHRvIFRlbGVtYWNodXMgYW5kIGhlIHByYXllZCBsaWtld2lzZS4gQnkgYW5kIGJ5LCB3aGVuIHRoZSBvdXRlciBtZWF0cyB3ZXJlIHJvYXN0ZWQgYW5kIGhhZCBiZWVuIHRha2VuIG9mZiB0aGUgc3BpdHMsIHRoZSBjYXJ2ZXJzIGdhdmUgZXZlcnkgbWFuIGhpcyBwb3J0aW9uIGFuZCB0aGV5IGFsbCBtYWRlIGFuIGV4Y2VsbGVudCBkaW5uZXIuIEFzIHNvb24gYXMgdGhleSBoYWQgaGFkIGVub3VnaCB0byBlYXQgYW5kIGRyaW5rLCBOZXN0b3IsIGtuaWdodCBvZiBHZXJlbmUsIGJlZ2FuIHRvIHNwZWFrLg0KDQoiTm93LCIgc2FpZCBoZSwgInRoYXQgb3VyIGd1ZXN0cyBoYXZlIGRvbmUgdGhlaXIgZGlubmVyLCBpdCB3aWxsIGJlIGJlc3QgdG8gYXNrIHRoZW0gd2hvIHRoZXkgYXJlLiBXaG8sIHRoZW4sIHNpciBzdHJhbmdlcnMsIGFyZSB5b3UsIGFuZCBmcm9tIHdoYXQgcG9ydCBoYXZlIHlvdSBzYWlsZWQ/IEFyZSB5b3UgdHJhZGVycz8gb3IgZG8geW91IHNhaWwgdGhlIHNlYXMgYXMgcm92ZXJzIHdpdGggeW91ciBoYW5kIGFnYWluc3QgZXZlcnkgbWFuLCBhbmQgZXZlcnkgbWFuJ3MgaGFuZCBhZ2FpbnN0IHlvdT8iDQoNClRlbGVtYWNodXMgYW5zd2VyZWQgYm9sZGx5LCBmb3IgTWluZXJ2YSBoYWQgZ2l2ZW4gaGltIGNvdXJhZ2UgdG8gYXNrIGFib3V0IGhpcyBmYXRoZXIgYW5kIGdldCBoaW1zZWxmIGEgZ29vZCBuYW1lLg0KDQoiTmVzdG9yLCIgc2FpZCBoZSwgInNvbiBvZiBOZWxldXMsIGhvbm91ciB0byB0aGUgQWNoYWVhbiBuYW1lLCB5b3UgYXNrIHdoZW5jZSB3ZSBjb21lLCBhbmQgSSB3aWxsIHRlbGwgeW91LiBXZSBjb21lIGZyb20gSXRoYWNhIHVuZGVyIE5lcml0dW0sIGFuZCB0aGUgbWF0dGVyIGFib3V0IHdoaWNoIEkgd291bGQgc3BlYWsgaXMgb2YgcHJpdmF0ZSBub3QgcHVibGljIGltcG9ydC4gSSBzZWVrIG5ld3Mgb2YgbXkgdW5oYXBweSBmYXRoZXIgVWx5c3Nlcywgd2hvIGlzIHNhaWQgdG8gaGF2ZSBzYWNrZWQgdGhlIHRvd24gb2YgVHJveSBpbiBjb21wYW55IHdpdGggeW91cnNlbGYuIFdlIGtub3cgd2hhdCBmYXRlIGJlZmVsbCBlYWNoIG9uZSBvZiB0aGUgb3RoZXIgaGVyb2VzIHdobyBmb3VnaHQgYXQgVHJveSwgYnV0IGFzIHJlZ2FyZHMgVWx5c3NlcyBoZWF2ZW4gaGFzIGhpZGRlbiBmcm9tIHVzIHRoZSBrbm93bGVkZ2UgZXZlbiB0aGF0IGhlIGlzIGRlYWQgYXQgYWxsLCBmb3Igbm8gb25lIGNhbiBjZXJ0aWZ5IHVzIGluIHdoYXQgcGxhY2UgaGUgcGVyaXNoZWQsIG5vciBzYXkgd2hldGhlciBoZSBmZWxsIGluIGJhdHRsZSBvbiB0aGUgbWFpbmxhbmQsIG9yIHdhcyBsb3N0IGF0IHNlYSBhbWlkIHRoZSB3YXZlcyBvZiBBbXBoaXRyaXRlLiBUaGVyZWZvcmUgSSBhbSBzdXBwbGlhbnQgYXQgeW91ciBrbmVlcywgaWYgaGFwbHkgeW91IG1heSBiZSBwbGVhc2VkIHRvIHRlbGwgbWUgb2YgaGlzIG1lbGFuY2hvbHkgZW5kLCB3aGV0aGVyIHlvdSBzYXcgaXQgd2l0aCB5b3VyIG93biBleWVzLCBvciBoZWFyZCBpdCBmcm9tIHNvbWUgb3RoZXIgdHJhdmVsbGVyLCBmb3IgaGUgd2FzIGEgbWFuIGJvcm4gdG8gdHJvdWJsZS4gRG8gbm90IHNvZnRlbiB0aGluZ3Mgb3V0IG9mIGFueSBwaXR5IGZvciBtZSwgYnV0IHRlbGwgbWUgaW4gYWxsIHBsYWlubmVzcyBleGFjdGx5IHdoYXQgeW91IHNhdy4gSWYgbXkgYnJhdmUgZmF0aGVyIFVseXNzZXMgZXZlciBkaWQgeW91IGxveWFsIHNlcnZpY2UsIGVpdGhlciBieSB3b3JkIG9yIGRlZWQsIHdoZW4geW91IEFjaGFlYW5zIHdlcmUgaGFyYXNzZWQgYW1vbmcgdGhlIFRyb2phbnMsIGJlYXIgaXQgaW4gbWluZCBub3cgYXMgaW4gbXkgZmF2b3VyIGFuZCB0ZWxsIG1lIHRydWx5IGFsbC4iDQoNCiJNeSBmcmllbmQsIiBhbnN3ZXJlZCBOZXN0b3IsICJ5b3UgcmVjYWxsIGEgdGltZSBvZiBtdWNoIHNvcnJvdyB0byBteSBtaW5kLCBmb3IgdGhlIGJyYXZlIEFjaGFlYW5zIHN1ZmZlcmVkIG11Y2ggYm90aCBhdCBzZWEsIHdoaWxlIHByaXZhdGVlcmluZyB1bmRlciBBY2hpbGxlcywgYW5kIHdoZW4gZmlnaHRpbmcgYmVmb3JlIHRoZSBncmVhdCBjaXR5IG9mIGtpbmcgUHJpYW0uIE91ciBiZXN0IG1lbiBhbGwgb2YgdGhlbSBmZWxsIHRoZXJlLSBBamF4LCBBY2hpbGxlcywgUGF0cm9jbHVzIHBlZXIgb2YgZ29kcyBpbiBjb3Vuc2VsLCBhbmQgbXkgb3duIGRlYXIgc29uIEFudGlsb2NodXMsIGEgbWFuIHNpbmd1bGFybHkgZmxlZXQgb2YgZm9vdCBhbmQgaW4gZmlnaHQgdmFsaWFudC4gQnV0IHdlIHN1ZmZlcmVkIG11Y2ggbW9yZSB0aGFuIHRoaXM7IHdoYXQgbW9ydGFsIHRvbmd1ZSBpbmRlZWQgY291bGQgdGVsbCB0aGUgd2hvbGUgc3Rvcnk/IFRob3VnaCB5b3Ugd2VyZSB0byBzdGF5IGhlcmUgYW5kIHF1ZXN0aW9uIG1lIGZvciBmaXZlIHllYXJzLCBvciBldmVuIHNpeCwgSSBjb3VsZCBub3QgdGVsbCB5b3UgYWxsIHRoYXQgdGhlIEFjaGFlYW5zIHN1ZmZlcmVkLCBhbmQgeW91IHdvdWxkIHR1cm4gaG9tZXdhcmQgd2Vhcnkgb2YgbXkgdGFsZSBiZWZvcmUgaXQgZW5kZWQuIE5pbmUgbG9uZyB5ZWFycyBkaWQgd2UgdHJ5IGV2ZXJ5IGtpbmQgb2Ygc3RyYXRhZ2VtLCBidXQgdGhlIGhhbmQgb2YgaGVhdmVuIHdhcyBhZ2FpbnN0IHVzOyBkdXJpbmcgYWxsIHRoaXMgdGltZSB0aA==",
      "timestamp": "2014-09-07T22:39:54.022Z"
    },
    {
      "requestFrom": "127.0.0.1:53172",
      "data": "ZXJlIHdhcyBubyBvbmUgd2hvIGNvdWxkIGNvbXBhcmUgd2l0aCB5b3VyIGZhdGhlciBpbiBzdWJ0bGV0eS0gaWYgaW5kZWVkIHlvdSBhcmUgaGlzIHNvbi0gSSBjYW4gaGFyZGx5IGJlbGlldmUgbXkgZXllcy0gYW5kIHlvdSB0YWxrIGp1c3QgbGlrZSBoaW0gdG9vLSBubyBvbmUgd291bGQgc2F5IHRoYXQgcGVvcGxlIG9mIHN1Y2ggZGlmZmVyZW50IGFnZXMgY291bGQgc3BlYWsgc28gbXVjaCBhbGlrZS4gSGUgYW5kIEkgbmV2ZXIgaGFkIGFueSBraW5kIG9mIGRpZmZlcmVuY2UgZnJvbSBmaXJzdCB0byBsYXN0IG5laXRoZXIgaW4gY2FtcCBub3IgY291bmNpbCwgYnV0IGluIHNpbmdsZW5lc3Mgb2YgaGVhcnQgYW5kIHB1cnBvc2Ugd2UgYWR2aXNlZCB0aGUgQXJnaXZlcyBob3cgYWxsIG1pZ2h0IGJlIG9yZGVyZWQgZm9yIHRoZSBiZXN0Lg0KDQoiV2hlbiBob3dldmVyLCB3ZSBoYWQgc2Fja2VkIHRoZSBjaXR5IG9mIFByaWFtLCBhbmQgd2VyZSBzZXR0aW5nIHNhaWwgaW4gb3VyIHNoaXBzIGFzIGhlYXZlbiBoYWQgZGlzcGVyc2VkIHVzLCB0aGVuIEpvdmUgc2F3IGZpdCB0byB2ZXggdGhlIEFyZ2l2ZXMgb24gdGhlaXIgaG9tZXdhcmQgdm95YWdlOyBmb3IgdGhleSBoYWQgTm90IGFsbCBiZWVuIGVpdGhlciB3aXNlIG9yIHVuZGVyc3RhbmRpbmcsIGFuZCBoZW5jZSBtYW55IGNhbWUgdG8gYSBiYWQgZW5kIHRocm91Z2ggdGhlIGRpc3BsZWFzdXJlIG9mIEpvdmUncyBkYXVnaHRlciBNaW5lcnZhLCB3aG8gYnJvdWdodCBhYm91dCBhIHF1YXJyZWwgYmV0d2VlbiB0aGUgdHdvIHNvbnMgb2YgQXRyZXVzLg0KDQoiVGhlIHNvbnMgb2YgQXRyZXVzIGNhbGxlZCBhIG1lZXRpbmcgd2hpY2ggd2FzIG5vdCBhcyBpdCBzaG91bGQgYmUsIGZvciBpdCB3YXMgc3Vuc2V0IGFuZCB0aGUgQWNoYWVhbnMgd2VyZSBoZWF2eSB3aXRoIHdpbmUuIFdoZW4gdGhleSBleHBsYWluZWQgd2h5IHRoZXkgaGFkIGNhbGxlZC0gdGhlIHBlb3BsZSB0b2dldGhlciwgaXQgc2VlbWVkIHRoYXQgTWVuZWxhdXMgd2FzIGZvciBzYWlsaW5nIGhvbWV3YXJkIGF0IG9uY2UsIGFuZCB0aGlzIGRpc3BsZWFzZWQgQWdhbWVtbm9uLCB3aG8gdGhvdWdodCB0aGF0IHdlIHNob3VsZCB3YWl0IHRpbGwgd2UgaGFkIG9mZmVyZWQgaGVjYXRvbWJzIHRvIGFwcGVhc2UgdGhlIGFuZ2VyIG9mIE1pbmVydmEuIEZvb2wgdGhhdCBoZSB3YXMsIGhlIG1pZ2h0IGhhdmUga25vd24gdGhhdCBoZSB3b3VsZCBub3QgcHJldmFpbCB3aXRoIGhlciwgZm9yIHdoZW4gdGhlIGdvZHMgaGF2ZSBtYWRlIHVwIHRoZWlyIG1pbmRzIHRoZXkgZG8gbm90IGNoYW5nZSB0aGVtIGxpZ2h0bHkuIFNvIHRoZSB0d28gc3Rvb2QgYmFuZHlpbmcgaGFyZCB3b3Jkcywgd2hlcmVvbiB0aGUgQWNoYWVhbnMgc3ByYW5nIHRvIHRoZWlyIGZlZXQgd2l0aCBhIGNyeSB0aGF0IHJlbnQgdGhlIGFpciwgYW5kIHdlcmUgb2YgdHdvIG1pbmRzIGFzIHRvIHdoYXQgdGhleSBzaG91bGQgZG8uDQoNCiJUaGF0IG5pZ2h0IHdlIHJlc3RlZCBhbmQgbnVyc2VkIG91ciBhbmdlciwgZm9yIEpvdmUgd2FzIGhhdGNoaW5nIG1pc2NoaWVmIGFnYWluc3QgdXMuIEJ1dCBpbiB0aGUgbW9ybmluZyBzb21lIG9mIHVzIGRyZXcgb3VyIHNoaXBzIGludG8gdGhlIHdhdGVyIGFuZCBwdXQgb3VyIGdvb2RzIHdpdGggb3VyIHdvbWVuIG9uIGJvYXJkLCB3aGlsZSB0aGUgcmVzdCwgYWJvdXQgaGFsZiBpbiBudW1iZXIsIHN0YXllZCBiZWhpbmQgd2l0aCBBZ2FtZW1ub24uIFdlLSB0aGUgb3RoZXIgaGFsZi0gZW1iYXJrZWQgYW5kIHNhaWxlZDsgYW5kIHRoZSBzaGlwcyB3ZW50IHdlbGwsIGZvciBoZWF2ZW4gaGFkIHNtb290aGVkIHRoZSBzZWEuIFdoZW4gd2UgcmVhY2hlZCBUZW5lZG9zIHdlIG9mZmVyZWQgc2FjcmlmaWNlcyB0byB0aGUgZ29kcywgZm9yIHdlIHdlcmUgbG9uZ2luZyB0byBnZXQgaG9tZTsgY3J1ZWwgSm92ZSwgaG93ZXZlciwgZGlkIG5vdCB5ZXQgbWVhbiB0aGF0IHdlIHNob3VsZCBkbyBzbywgYW5kIHJhaXNlZCBhIHNlY29uZCBxdWFycmVsIGluIHRoZSBjb3Vyc2Ugb2Ygd2hpY2ggc28=",
      "timestamp": "2014-09-07T22:39:54.022Z"
    },
    {
      "requestFrom": "127.0.0.1:53172",
      "data": "bWUgYW1vbmcgdXMgdHVybmVkIHRoZWlyIHNoaXBzIGJhY2sgYWdhaW4sIGFuZCBzYWlsZWQgYXdheSB1bmRlciBVbHlzc2VzIHRvIG1ha2UgdGhlaXIgcGVhY2Ugd2l0aCBBZ2FtZW1ub247IGJ1dCBJLCBhbmQgYWxsIHRoZSBzaGlwcyB0aGF0IHdlcmUgd2l0aCBtZSBwcmVzc2VkIGZvcndhcmQsIGZvciBJIHNhdyB0aGF0IG1pc2NoaWVmIHdhcyBicmV3aW5nLiBUaGUgc29uIG9mIFR5ZGV1cyB3ZW50IG9uIGFsc28gd2l0aCBtZSwgYW5kIGhpcyBjcmV3cyB3aXRoIGhpbS4gTGF0ZXIgb24gTWVuZWxhdXMgam9pbmVkIHVzIGF0IExlc2JvcywgYW5kIGZvdW5kIHVzIG1ha2luZyB1cCBvdXIgbWluZHMgYWJvdXQgb3VyIGNvdXJzZS0gZm9yIHdlIGRpZCBub3Qga25vdyB3aGV0aGVyIHRvIGdvIG91dHNpZGUgQ2hpb3MgYnkgdGhlIGlzbGFuZCBvZiBQc3lyYSwga2VlcGluZyB0aGlzIHRvIG91ciBsZWZ0LCBvciBpbnNpZGUgQ2hpb3MsIG92ZXIgYWdhaW5zdCB0aGUgc3Rvcm15IGhlYWRsYW5kIG9mIE1pbWFzLiBTbyB3ZSBhc2tlZCBoZWF2ZW4gZm9yIGEgc2lnbiwgYW5kIHdlcmUgc2hvd24gb25lIHRvIHRoZSBlZmZlY3QgdGhhdCB3ZSBzaG91bGQgYmUgc29vbmVzdCBvdXQgb2YgZGFuZ2VyIGlmIHdlIGhlYWRlZCBvdXIgc2hpcHMgYWNyb3NzIHRoZSBvcGVuIHNlYSB0byBFdWJvZWEuIFRoaXMgd2UgdGhlcmVmb3JlIGRpZCwgYW5kIGEgZmFpciB3aW5kIHNwcmFuZyB1cCB3aGljaCBnYXZlIHVzIGEgcXVpY2sgcGFzc2FnZSBkdXJpbmcgdGhlIG5pZ2h0IHRvIEdlcmFlc3R1cywgd2hlcmUgd2Ugb2ZmZXJlZCBtYW55IHNhY3JpZmljZXMgdG8gTmVwdHVuZSBmb3IgaGF2aW5nIGhlbHBlZCB1cyBzbyBmYXIgb24gb3VyIHdheS4gRm91ciBkYXlzIGxhdGVyIERpb21lZCBhbmQgaGlzIG1lbiBzdGF0aW9uZWQgdGhlaXIgc2hpcHMgaW4gQXJnb3MsIGJ1dCBJIGhlbGQgb24gZm9yIFB5bG9zLCBhbmQgdGhlIHdpbmQgbmV2ZXIgZmVsbCBsaWdodCBmcm9tIHRoZSBkYXkgd2hlbiBoZWF2ZW4gZmlyc3QgbWFkZSBpdCBmYWlyIGZvciBtZS4NCg0KIlRoZXJlZm9yZSwgbXkgZGVhciB5b3VuZyBmcmllbmQsIEkgcmV0dXJuZWQgd2l0aG91dCBoZWFyaW5nIGFueXRoaW5nIGFib3V0IHRoZSBvdGhlcnMuIEkga25vdyBuZWl0aGVyIHdobyBnb3QgaG9tZSBzYWZlbHkgbm9yIHdobyB3ZXJlIGxvc3QgYnV0LCBhcyBpbiBkdXR5IGJvdW5kLCBJIHdpbGwgZ2l2ZSB5b3Ugd2l0aG91dCByZXNlcnZlIHRoZSByZXBvcnRzIHRoYXQgaGF2ZSByZWFjaGVkIG1lIHNpbmNlIEkgaGF2ZSBiZWVuIGhlcmUgaW4gbXkgb3duIGhvdXNlLiBUaGV5IHNheSB0aGUgTXlybWlkb25zIHJldHVybmVkIGhvbWUgc2FmZWx5IHVuZGVyIEFjaGlsbGVzJyBzb24gTmVvcHRvbGVtdXM7IHNvIGFsc28gZGlkIHRoZSB2YWxpYW50IHNvbiBvZiBQb2lhcywgUGhpbG9jdGV0ZXMuIElkb21lbmV1cywgYWdhaW4sIGxvc3Qgbm8gbWVuIGF0IHNlYSwgYW5kIGFsbCBoaXMgZm9sbG93ZXJzIHdobyBlc2NhcGVkIGRlYXRoIGluIHRoZSBmaWVsZCBnb3Qgc2FmZSBob21lIHdpdGggaGltIHRvIENyZXRlLiBObyBtYXR0ZXIgaG93IGZhciBvdXQgb2YgdGhlIHdvcmxkIHlvdSBsaXZlLCB5b3Ugd2lsbCBoYXZlIGhlYXJkIG9mIEFnYW1lbW5vbiBhbmQgdGhlIGJhZCBlbmQgaGUgY2FtZSB0byBhdCB0aGUgaGFuZHMgb2YgQWVnaXN0aHVzLSBhbmQgYSBmZWFyZnVsIHJlY2tvbmluZyBkaWQgQWVnaXN0aHVzIHByZXNlbnRseSBwYXkuIFNlZSB3aGF0IGEgZ29vZCB0aGluZyBpdCBpcyBmb3IgYSBtYW4gdG8gbGVhdmUgYSBzb24gYmVoaW5kIGhpbSB0byBkbyBhcyBPcmVzdGVzIGRpZCwgd2hvIGtpbGxlZCBmYWxzZSBBZWdpc3RodXMgdGhlIG11cmRlcmVyIG9mIGhpcyBub2JsZSBmYXRoZXIuIFlvdSB0b28sIHRoZW4tIGZvciB5b3UgYXJlIGEgdGFsbCwgc21hcnQtbG9va2luZyBmZWxsb3ctIHNob3cgeW91ciBtZXR0bGUgYW5kIG1ha2UgeW91cnNlbGYgYSBuYW1lIGluIHN0b3J5LiINCg0KIk5lc3RvciBzb24gb2YgTmVsZXVzLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgImhvbm91ciB0byB0aGUgQWNoYWVhbiBuYW1lLCB0aGUgQWNoYWVhbnMgYXBwbGF1ZCBPcmVzdGVzIGFuZCBoaXMgbmFtZSB3aWxsIGxpdmUgdGhyb3VnaCBhbGwgdGltZSBmb3IgaGUgaGFzIGF2ZW5nZWQgaGlzIGZhdGhlciBub2JseS4gV291bGQgdGhhdCBoZWF2ZW4gbWlnaHQgZ3JhbnQgbWUgdG8gZG8gbGlrZSB2ZW5nZWFuY2Ugb24gdGhlIGluc29sZW5jZSBvZiB0aGUgd2lja2VkIHN1aXRvcnMsIHdobyBhcmUgaWxsIHRyZWF0aW5nIG1lIGFuZCBwbG90dGluZyBteSBydWluOyBidXQgdGhlIGdvZHMgaGF2ZSBubyBzdWNoIGhhcHBpbmVzcyBpbiBzdG9yZSBmb3IgbWUgYW5kIGZvciBteSBmYXRoZXIsIHNvIHdlIG11c3QgYmVhciBpdCBhcyBiZXN0IHdlIG1heS4iDQoNCiJNeSBmcmllbmQsIiBzYWlkIE5lc3RvciwgIm5vdyB0aGF0IHlvdSByZW1pbmQgbWUsIEkgcmVtZW1iZXIgdG8gaGF2ZSBoZWFyZCB0aGF0IHlvdXIgbW90aGVyIGhhcyBtYW55IHN1aXRvcnMsIHdobyBhcmUgaWxsIGRpc3Bvc2VkIHRvd2FyZHMgeW91IGFuZCBhcmUgbWFraW5nIGhhdm9jIG9mIHlvdXIgZXN0YXRlLiBEbyB5b3Ugc3VibWl0IHRvIHRoaXMgdGFtZWx5LCBvciBhcmUgcHVibGljIGZlZWxpbmcgYW5kIHRoZSB2b2ljZSBvZiBoZWF2ZW4gYWdhaW5zdCB5b3U/IFdobyBrbm93cyBidXQgd2hhdCBVbHlzc2VzIG1heSBjb21lIGJhY2sgYWZ0ZXIgYWxsLCBhbmQgcGF5IHRoZXNlIHNjb3VuZHJlbHMgaW4gZnVsbCwgZWl0aGVyIHNpbmdsZS1oYW5kZWQgb3Igd2l0aCBhIGZvcmNlIG9mIEFjaGFlYW5zIGJlaGluZCBoaW0/IElmIE1pbmVydmEgd2VyZSB0byB0YWtlIGFzIGdyZWF0IGEgbGlraW5nIHRvIHlvdSBhcyBzaGUgZGlkIHRvIFVseXNzZXMgd2hlbiB3ZSB3ZXJlIGZpZ2h0aW5nIGJlZm9yZSBUcm95IChmb3IgSSBuZXZlciB5ZXQgc2F3IHRoZSBnb2RzIHNvIG9wZW5seSBmb25kIG9mIGFueSBvbmUgYXMgTWluZXJ2YSB0aGVuIHdhcyBvZiB5b3VyIGZhdGhlciksIGlmIHNoZSB3b3VsZCB0YWtlIGFzIGdvb2QgY2FyZSBvZiB5b3UgYXMgc2hlIGRpZCBvZiBoaW0sIHRoZXNlIHdvb2VycyB3b3VsZCBzb29uIHNvbWUgb2YgdGhlbSBoaW0sIGZvcmdldCB0aGVpciB3b29pbmcuIg0KDQpUZWxlbWFjaHVzIGFuc3dlcmVkLCAiSSBjYW4gZXhwZWN0IG5vdGhpbmcgb2YgdGhlIGtpbmQ7IGl0IHdvdWxkIGJlIGZhciB0b28gbXVjaCB0byBob3BlIGZvci4gSSBkYXJlIG5vdCBsZXQgbXlzZWxmIHRoaW5rIG9mIGl0LiBFdmVuIHRob3VnaCB0aGUgZ29kcyB0aGVtc2VsdmVzIHdpbGxlZCBpdCBubyBzdWNoIGdvb2QgZm9ydHVuZSBjb3VsZCBiZWZhbGwgbWUuIg0KDQpPbiB0aGlzIE1pbmVydmEgc2FpZCwgIlRlbGVtYWNodXMsIHdoYXQgYXJlIHlvdSB0YWxraW5nIGFib3V0PyBIZWF2ZW4gaGFzIGEgbG9uZyBhcm0gaWYgaXQgaXMgbWluZGVkIHRvIHNhdmUgYSBtYW47IGFuZCBpZiBpdCB3ZXJlIG1lLCBJIHNob3VsZCBub3QgY2FyZSBob3cgbXVjaCBJIHN1ZmZlcmVkIGJlZm9yZSBnZXR0aW5nIGhvbWUsIHByb3ZpZGVkIEkgY291bGQgYmUgc2FmZSB3aGVuIEkgd2FzIG9uY2UgdGhlcmUuIEkgd291bGQgcmF0aGVyIHRoaXMsIHRoYW4gZ2V0IGhvbWUgcXVpY2tseSwgYW5kIHRoZW4gYmUga2lsbGVkIGluIG15IG93biBob3VzZSBhcyBBZ2FtZW1ub24gd2FzIGJ5IHRoZSB0cmVhY2hlcnkgb2YgQWVnaXN0aHVzIGFuZCBoaXMgd2lmZS4gU3RpbGwsIGRlYXRoIGlzIGNlcnRhaW4sIGFuZCB3aGVuIGEgbWFuJ3MgaG91ciBpcyBjb21lLCBub3QgZXZlbiB0aGUgZ29kcyBjYW4gc2F2ZSBoaW0sIG5vIG1hdHRlciBob3cgZm9uZCB0aGV5IGFyZSBvZiBoaW0uIg0KDQoiTWVudG9yLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgImRvIG5vdCBsZXQgdXMgdGFsayBhYm91dCBpdCBhbnkgbW9yZS4gVGhlcmUgaXMgbm8gY2hhbmNlIG9mIG15IGZhdGhlcidzIGV2ZXIgY29taW5nIGJhY2s7IHRoZSBnb2RzIGhhdmUgbG9uZyBzaW5jZSBjb3Vuc2VsbGVkIGhpcyBkZXN0cnVjdGlvbi4gVGhlcmUgaXMgc29tZXRoaW5nIGVsc2UsIGhvd2V2ZXIsIGFib3V0IHdoaWNoIEkgc2hvdWxkIGxpa2UgdG8gYXNrIE5lc3RvciwgZm9yIGhlIGtub3dzIG11Y2ggbW9yZSB0aGFuIGFueSBvbmUgZWxzZSBkb2VzLiBUaGV5IHNheSBoZSBoYXMgcmVpZ25lZCBmb3IgdGhyZWUgZ2VuZXJhdGlvbnMgc28gdGhhdCBpdCBpcyBsaWtlIHRhbGtpbmcgdG8gYW4gaW1tb3J0YWwuIFRlbGwgbWUsIHRoZXJlZm9yZSwgTmVzdG9yLCBhbmQgdGVsbCBtZSB0cnVlOyBob3cgZGlkIEFnYW1lbW5vbiBjb21lIHRvIGRpZSBpbiB0aGF0IHdheT8gV2hhdCB3YXMgTWVuZWxhdXMgZG9pbmc/IEFuZCBob3cgY2FtZSBmYWxzZSBBZWdpc3RodXMgdG8ga2lsbCBzbyBmYXIgYmV0dGVyIGEgbWFuIHRoYW4gaGltc2VsZj8gV2FzIE1lbmVsYXVzIGF3YXkgZnJvbSBBY2hhZWFuIEFyZ29zLCB2b3lhZ2luZyBlbHNld2hpdGhlciBhbW9uZyBtYW5raW5kLCB0aGF0IEFlZ2lzdGh1cyB0b29rIGhlYXJ0IGFuZCBraWxsZWQgQWdhbWVtbm9uPyINCg0KIkkgd2lsbCB0ZWxsIHlvdSB0cnVseSwiIGFuc3dlcmVkIE5lc3RvciwgImFuZCBpbmRlZWQgeW91IGhhdmUgeW91cnNlbGYgZGl2aW5lZCBob3cgaXQgYWxsIGhhcHBlbmVkLiBJZiBNZW5lbGF1cyB3aGVuIGhlIGdvdCBiYWNrIGZyb20gVHJveSBoYWQgZm91bmQgQWVnaXN0aHVzIHN0aWxsIGFsaXZlIGluIGhpcyBob3VzZSwgdGhlcmUgd291bGQgaGF2ZSBiZWVuIG5vIGJhcnJvdyBoZWFwZWQgdXAgZm9yIGhpbSwgbm90IGV2ZW4gd2hlbiBoZSB3YXMgZGVhZCwgYnV0IGhlIHdvdWxkIGhhdmUgYmVlbiB0aHJvd24gb3V0c2lkZSB0aGUgY2l0eSB0byBkb2dzIGFuZCB2dWx0dXJlcywgYW5kIG5vdCBhIHdvbWFuIHdvdWxkIGhhdmUgbW91cm5lZCBoaW0sIGZvciBoZSBoYWQgZG9uZSBhIGRlZWQgb2YgZ3JlYXQgd2lja2VkbmVzczsgYnV0IHdlIHdlcmUgb3ZlciB0aGVyZSwgZmlnaHRpbmcgaGFyZCBhdCBUcm95LCBhbmQgQWVnaXN0aHVzIHdobyB3YXMgdGFraW5nIGhpcyBlYXNlIHF1aWV0bHkgaW4gdGhlIGhlYXJ0IG9mIEFyZ29zLCBjYWpvbGVkIEFnYW1lbW5vbidzIHdpZmUgQ2x5dGVtbmVzdHJhIHdpdGggaW5jZXNzYW50IGZsYXR0ZXJ5Lg0KDQoiQXQgZmlyc3Qgc2hlIHdvdWxkIGhhdmUgbm90aGluZyB0byBkbyB3aXRoIGhpcyB3aWNrZWQgc2NoZW1lLCBmb3Igc2hlIHdhcyBvZiBhIGdvb2QgbmF0dXJhbCBkaXNwb3NpdGlvbjsgbW9yZW92ZXIgdGhlcmUgd2FzIGEgYmFyZCB3aXRoIGhlciwgdG8gd2hvbSBBZ2FtZW1ub24gaGFkIGdpdmVuIHN0cmljdCBvcmRlcnMgb24gc2V0dGluZyBvdXQgZm9yIFRyb3ksIHRoYXQgaGUgd2FzIHRvIGtlZXAgZ3VhcmQgb3ZlciBoaXMgd2lmZTsgYnV0IHdoZW4gaGVhdmVuIGhhZCBjb3Vuc2VsbGVkIGhlciBkZXN0cnVjdGlvbiwgQWVnaXN0aHVzIHRodXMgdGhpcyBiYXJkIG9mZiB0byBhIGRlc2VydCBpc2xhbmQgYW5kIGxlZnQgaGltIHRoZXJlIGZvciBjcm93cyBhbmQgc2VhZ3VsbHMgdG8gYmF0dGVuIHVwb24tIGFmdGVyIHdoaWNoIHNoZSB3ZW50IHdpbGxpbmdseSBlbm91Z2ggdG8gdGhlIGhvdXNlIG9mIEFlZ2lzdGh1cy4gVGhlbiBoZSBvZmZlcmVkIG1hbnkgYnVybnQgc2FjcmlmaWNlcyB0byB0aGUgZ29kcywgYW5kIGRlY29yYXRlZCBtYW55IHRlbXBsZXMgd2l0aCB0YXBlc3RyaWVzIGFuZCBnaWxkaW5nLCBmb3IgaGUgaGFkIHN1Y2NlZWRlZCBmYXIgYmV5b25kIGhpcyBleHBlY3RhdGlvbnMuDQoNCiJNZWFud2hpbGUgTWVuZWxhdXMgYW5kIEkgd2VyZSBvbiBvdXIgd2F5IGhvbWUgZnJvbSBUcm95LCBvbiBnb29kIHRlcm1zIHdpdGggb25lIGFub3RoZXIuIFdoZW4gd2UgZ290IHRvIFN1bml1bSwgd2hpY2ggaXMgdGhlIHBvaW50IG9mIEF0aGVucywgQXBvbGxvIHdpdGggaGlzIHBhaW5sZXNzIHNoYWZ0cyBraWxsZWQgUGhyb250aXMgdGhlIHN0ZWVyc21hbiBvZiBNZW5lbGF1cycgc2hpcCAoYW5kIG5ldmVyIG1hbiBrbmV3IGJldHRlciBob3cgdG8gaGFuZGxlIGEgdmVzc2VsIGluIHJvdWdoIHdlYXRoZXIpIHNvIHRoYXQgaGUgZGllZCB0aGVuIGFuZCB0aGVyZSB3aXRoIHRoZSBoZWxtIGluIGhpcyBoYW5kLCBhbmQgTWVuZWxhdXMsIHRob3VnaCB2ZXJ5IGFueGlvdXMgdG8gcHJlc3MgZm9yd2FyZCwgaGFkIHRvIHdhaXQgaW4gb3JkZXIgdG8gYnVyeSBoaXMgY29tcmFkZSBhbmQgZ2l2ZSBoaW0gaGlzIGR1ZSBmdW5lcmFsIHJpdGVzLiBQcmVzZW50bHksIHdoZW4gaGUgdG9vIGNvdWxkIHB1dCB0byBzZWEgYWdhaW4sIGFuZCBoYWQgc2FpbGVkIG9uIGFzIGZhciBhcyB0aGUgTWFsZWFuIGhlYWRzLCBKb3ZlIGNvdW5zZWxsZWQgZXZpbCBhZ2FpbnN0IGhpbSBhbmQgbWFkZSBpdCBpdCBibG93IGhhcmQgdGlsbCB0aGUgd2F2ZXMgcmFuIG1vdW50YWlucyBoaWdoLiBIZXJlIGhlIGRpdmlkZWQgaGlzIGZsZWV0IGFuZCB0b29rIHRoZSBvbmUgaGFsZiB0b3dhcmRzIENyZXRlIHdoZXJlIHRoZSBDeWRvbmlhbnMgZHdlbGwgcm91bmQgYWJvdXQgdGhlIHdhdGVycyBvZiB0aGUgcml2ZXIgSWFyZGFudXMuIFRoZXJlIGlzIGEgaGlnaCBoZWFkbGFuZCBoZXJlYWJvdXRzIHN0cmV0Y2hpbmcgb3V0IGludG8gdGhlIHNlYSBmcm9tIGEgcGxhY2UgY2FsbGVkIEdvcnR5biwgYW5kIGFsbCBhbG9uZyB0aGlzIHBhcnQgb2YgdGhlIGNvYXN0IGFzIGZhciBhcyBQaGFlc3R1cyB0aGUgc2VhIHJ1bnMgaGlnaCB3aGVuIHRoZXJlIGlzIGEgc291dGggd2luZCBibG93aW5nLCBidXQgYXJ0ZXIgUGhhZXN0dXMgdGhlIGNvYXN0IGlzIG1vcmUgcHJvdGVjdGVkLCBmb3IgYSBzbWFsbCBoZWFkbGFuZCBjYW4gbWFrZSBhIGdyZWF0IHNoZWx0ZXIuIEhlcmUgdGhpcyBwYXJ0IG9mIHRoZSBmbGVldCB3YXMgZHJpdmVuIG9uIHRvIHRoZSByb2NrcyBhbmQgd3JlY2tlZDsgYnV0IHRoZSBjcmV3cyBqdXN0IG1hbmFnZWQgdG8gc2F2ZSB0aGVtc2VsdmVzLiBBcyBmb3IgdGhlIG90aGVyIGZpdmUgc2hpcHMsIHRoZXkgd2VyZSB0YWtlbiBieSB3aW5kcyBhbmQgc2VhcyB0byBFZ3lwdCwgd2hlcmUgTWVuZWxhdXMgZ2F0aGVyZWQgbXVjaCBnb2xkIGFuZCBzdWJzdGFuY2UgYW1vbmcgcGVvcGxlIG9mIGFuIGFsaWVuIHNwZWVjaC4gTWVhbndoaWxlIEFlZ2lzdGh1cyBoZXJlIGF0IGhvbWUgcGxvdHRlZCBoaXMgZXZpbCBkZWVkLiBGb3Igc2V2ZW4geWVhcnMgYWZ0ZXIgaGUgaGFkIGtpbGxlZCBBZ2FtZW1ub24gaGUgcnVsZWQgaW4gTXljZW5lLCBhbmQgdGhlIHBlb3BsZSB3ZXJlIG9iZWRpZW50IHVuZGVyIGhpbSwgYnV0IGluIHRoZSBlaWdodGggeWVhciBPcmVzdGVzIGNhbWUgYmFjayBmcm9tIEF0aGVucyB0byBiZSBoaXMgYmFuZSwgYW5kIGtpbGxlZCB0aGUgbXVyZGVyZXIgb2YgaGlzIGZhdGhlci4gVGhlbiBoZSBjZWxlYnJhdGVkIHRoZSBmdW5lcmFsIHJpdGVzIG9mIGhpcyBtb3RoZXIgYW5kIG9mIGZhbHNlIEFlZ2lzdGh1cyBieSBhIGJhbnF1ZXQgdG8gdGhlIHBlb3BsZSBvZiBBcmdvcywgYW5kIG9uIHRoYXQgdmVyeSBkYXkgTWVuZWxhdXMgY2FtZSBob21lLCB3aXRoIGFzIG11Y2ggdHJlYXN1cmUgYXMgaGlzIHNoaXBzIGNvdWxkIGNhcnJ5Lg0KDQoiVGFrZSBteSBhZHZpY2UgdGhlbiwgYW5kIGRvIG5vdCBnbyB0cmF2ZWxsaW5nIGFib3V0IGZvciBsb25nIHNvIGZhciBmcm9tIGhvbWUsIG5vciBsZWF2ZSB5b3VyIHByb3BlcnR5IHdpdGggc3VjaCBkYW5nZXJvdXMgcGVvcGxlIGluIHlvdXIgaG91c2U7IHRoZXkgd2lsbCBlYXQgdXAgZXZlcnl0aGluZyB5b3UgaGF2ZSBhbW9uZyB0aGVtLCBhbmQgeW91IHdpbGwgaGF2ZSBiZWVuIG9uIGEgZm9vbCdzIGVycmFuZC4gU3RpbGwsIEkgc2hvdWxkIGFkdmlzZSB5b3UgYnkgYWxsIG1lYW5zIHRvIGdvIGFuZCB2aXNpdCBNZW5lbGF1cywgd2hvIGhhcyBsYXRlbHkgY29tZSBvZmYgYSB2b3lhZ2UgYW1vbmcgc3VjaCBkaXN0YW50IHBlb3BsZXMgYXMgbm8gbWFuIGNvdWxkIGV2ZXIgaG9wZSB0byBnZXQgYmFjayBmcm9tLCB3aGVuIHRoZSB3aW5kcyBoYWQgb25jZSBjYXJyaWVkIGhpbSBzbyBmYXIgb3V0IG9mIGhpcyByZWNrb25pbmc7IGV2ZW4gYmlyZHMgY2Fubm90IGZseSB0aGUgZGlzdGFuY2UgaW4gYSB0d2VsdmVtb250aCwgc28gdmFzdCBhbmQgdGVycmlibGUgYXJlIHRoZSBzZWFzIHRoYXQgdGhleSBtdXN0IGNyb3NzLiBHbyB0byBoaW0sIHRoZXJlZm9yZSwgYnkgc2VhLCBhbmQgdGFrZSB5b3VyIG93biBtZW4gd2l0aCB5b3U7IG9yIGlmIHlvdSB3b3VsZCByYXRoZXIgdHJhdmVsIGJ5IGxhbmQgeW91IGNhbiBoYXZlIGEgY2hhcmlvdCwgeW91IGNhbiBoYXZlIGhvcnNlcywgYW5kIGhlcmUgYXJlIG15IHNvbnMgd2hvIGNhbiBlc2NvcnQgeW91IHRvIExhY2VkYWVtb24gd2hlcmUgTWVuZWxhdXMgbGl2ZXMuIEJlZyBvZiBoaW0gdG8gc3BlYWsgdGhlIHRydXRoLCBhbmQgaGUgd2lsbCB0ZWxsIHlvdSBubyBsaWVzLCBmb3IgaGUgaXMgYW4gZXhjZWxsZW50IHBlcnNvbi4iDQoNCkFzIGhlIHNwb2tlIHRoZSBzdW4gc2V0IGFuZCBpdCBjYW1lIG9uIGRhcmssIHdoZXJlb24gTWluZXJ2YSBzYWlkLCAiU2lyLCBhbGwgdGhhdCB5b3UgaGF2ZSBzYWlkIGlzIHdlbGw7IG5vdywgaG93ZXZlciwgb3JkZXIgdGhlIHRvbmd1ZXMgb2YgdGhlIHZpY3RpbXMgdG8gYmUgY3V0LCBhbmQgbWl4IHdpbmUgdGhhdCB3ZSBtYXkgbWFrZSBkcmluay1vZmZlcmluZ3MgdG8gTmVwdHVuZSwgYW5kIHRoZSBvdGhlciBpbW1vcnRhbHMsIGFuZCB0aGVuIGdvIHRvIGJlZCwgZm9yIGl0IGlzIGJlZCB0aW1lLiBQZW9wbGUgc2hvdWxkIGdvIGF3YXkgZWFybHkgYW5kIG5vdCBrZWVwIGxhdGUgaG91cnMgYXQgYSByZWxpZ2lvdXMgZmVzdGl2YWwuIg0KDQpUaHVzIHNwb2tlIHRoZSBkYXVnaHRlciBvZiBKb3ZlLCBhbmQgdGhleSBvYmV5ZWQgaGVyIHNheWluZy4gTWVuIHNlcnZhbnRzIHBvdXJlZCB3YXRlciBvdmVyIHRoZSBoYW5kcyBvZiB0aGUgZ3Vlc3RzLCB3aGlsZSBwYWdlcyBmaWxsZWQgdGhlIG1peGluZy1ib3dscyB3aXRoIHdpbmUgYW5kIHdhdGVyLCBhbmQgaGFuZGVkIGl0IHJvdW5kIGFmdGVyIGdpdmluZyBldmVyeSBtYW4gaGlzIGRyaW5rLW9mZmVyaW5nOyB0aGVuIHRoZXkgdGhyZXcgdGhlIHRvbmd1ZXMgb2YgdGhlIHZpY3RpbXMgaW50byB0aGUgZmlyZSwgYW5kIHN0b29kIHVwIHRvIG1ha2UgdGhlaXIgZHJpbmstb2ZmZXJpbmdzLiBXaGVuIHRoZXkgaGFkIG1hZGUgdGhlaXIgb2ZmZXJpbmdzIGFuZCBoYWQgZHJ1bmsgZWFjaCBhcyBtdWNoIGFzIGhlIHdhcyBtaW5kZWQsIE1pbmVydmEgYW5kIFRlbGVtYWNodXMgd2VyZSBmb3Jnb2luZyBvbiBib2FyZCB0aGVpciBzaGlwLCBidXQgTmVzdG9yIGNhdWdodCB0aGVtIHVwIGF0IG9uY2UgYW5kIHN0YXllZCB0aGVtLg0KDQoiSGVhdmVuIGFuZCB0aGUgaW1tb3J0YWwgZ29kcywiIGhlIGV4Y2xhaW1lZCwgImZvcmJpZCB0aGF0IHlvdSBzaG91bGQgbGVhdmUgbXkgaG91c2UgdG8gZ28gb24gYm9hcmQgb2YgYSBzaGlwLiBEbyB5b3UgdGhpbmsgSSBhbSBzbyBwb29yIGFuZCBzaG9ydCBvZiBjbG90aGVzLCBvciB0aGF0IEkgaGF2ZSBzbyBmZXcgY2xvYWtzIGFuZCBhcyB0byBiZSB1bmFibGUgdG8gZmluZCBjb21mb3J0YWJsZSBiZWRzIGJvdGggZm9yIG15c2VsZiBhbmQgZm9yIG15IGd1ZXN0cz8gTGV0IG1lIHRlbGwgeW91IEkgaGF2ZSBzdG9yZSBib3RoIG9mIHJ1Z3MgYW5kIGNsb2FrcywgYW5kIHNoYWxsIG5vdCBwZXJtaXQgdGhlIHNvbiBvZiBteSBvbGQgZnJpZW5kIFVseXNzZXMgdG8gY2FtcCBkb3duIG9uIHRoZSBkZWNrIG9mIGEgc2hpcC0gbm90IHdoaWxlIEkgbGl2ZS0gbm9yIHlldCB3aWxsIG15IHNvbnMgYWZ0ZXIgbWUsIGJ1dCB0aGV5IHdpbGwga2VlcCBvcGVuIGhvdXNlIGFzIGhhdmUgZG9uZS4iDQoNClRoZW4gTWluZXJ2YSBhbnN3ZXJlZCwgIlNpciwgeW91IGhhdmUgc3Bva2VuIHdlbGwsIGFuZCBpdCB3aWxsIGJlIG11Y2ggYmV0dGVyIHRoYXQgVGVsZW1hY2h1cyBzaG91bGQgZG8gYXMgeW91IGhhdmUgc2FpZDsgaGUsIHRoZXJlZm9yZSwgc2hhbGwgcmV0dXJuIHdpdGggeW91IGFuZCBzbGVlcCBhdCB5b3VyIGhvdXNlLCBidXQgSSBtdXN0IGdvIGJhY2sgdG8gZ2l2ZSBvcmRlcnMgdG8gbXkgY3JldywgYW5kIGtlZXAgdGhlbSBpbiBnb29kIGhlYXJ0LiBJIGFtIHRoZSBvbmx5IG9sZGVyIHBlcnNvbiBhbW9uZyB0aGVtOyB0aGUgcmVzdCBhcmUgYWxsIHlvdW5nIG1lbiBvZiBUZWxlbWFjaHVzJyBvd24gYWdlLCB3aG8gaGF2ZSB0YWtlbiB0aGlzIHZveWFnZSBvdXQgb2YgZnJpZW5kc2hpcDsgc28gSSBtdXN0IHJldHVybiB0byB0aGUgc2hpcCBhbmQgc2xlZXAgdGhlcmUuIE1vcmVvdmVyIHRvLW1vcnJvdyBJIG11c3QgZ28gdG8gdGhlIENhdWNvbmlhbnMgd2hlcmUgSSBoYXZlIGEgbGFyZ2Ugc3VtIG9mIG1vbmV5IGxvbmcgb3dpbmcgdG8gbWUuIEFzIGZvciBUZWxlbWFjaHVzLCBub3cgdGhhdCBoZSBpcyB5b3VyIGd1ZXN0LCBzZW5kIGhpbSB0byBMYWNlZGFlbW9uIGluIGEgY2hhcmlvdCwgYW5kIGxldCBvbmUgb2YgeW91ciBzb25zIGdvIHdpdGggaGltLiBCZSBwbGVhc2VkIGFsc28gdG8gcHJvdmlkZSBoaW0gd2l0aCB5b3VyIGJlc3QgYW5kIGZsZWV0ZXN0IGhvcnNlcy4iDQoNCldoZW4gc2hlIGhhZCB0aHVzIHNwb2tlbiwgc2hlIGZsZXcgYXdheSBpbiB0aGUgZm9ybSBvZiBhbiBlYWdsZSwgYW5kIGFsbCBtYXJ2ZWxsZWQgYXMgdGhleSBiZWhlbGQgaXQuIE5lc3RvciB3YXMgYXN0b25pc2hlZCwgYW5kIHRvb2sgVGVsZW1hY2h1cyBieSB0aGUgaGFuZC4gIk15IGZyaWVuZCwiIHNhaWQgaGUsICJJIHNlZSB0aGF0IHlvdSBhcmUgZ29pbmcgdG8gYmUgYSBncmVhdCBoZXJvIHNvbWUgZGF5LCBzaW5jZSB0aGUgZ29kcyB3YWl0IHVwb24geW91IHRodXMgd2hpbGUgeW91IGFyZSBzdGlsbCBzbyB5b3VuZy4gVGhpcyBjYW4gaGF2ZSBiZWVuIG5vbmUgb3RoZXIgb2YgdGhvc2Ugd2hvIGR3ZWxsIGluIGhlYXZlbiB0aGFuIEpvdmUncyByZWRvdWJ0YWJsZSBkYXVnaHRlciwgdGhlIFRyaXRvLWJvcm4sIHdobyBzaG93ZWQgc3VjaCBmYXZvdXIgdG93YXJkcyB5b3VyIGJyYXZlIGZhdGhlciBhbW9uZyB0aGUgQXJnaXZlcy4iICJIb2x5IHF1ZWVuLCIgaGUgY29udGludWVkLCAidm91Y2hzYWZlIHRvIHNlbmQgZG93biB0aHkgZ3JhY2UgdXBvbiBteXNlbGYsIG15IGdvb2Qgd2lmZSwgYW5kIG15IGNoaWxkcmVuLiBJbiByZXR1cm4sIEkgd2lsbCBvZmZlciB5b3UgaW4gc2FjcmlmaWNlIGEgYnJvYWQtYnJvd2VkIGhlaWZlciBvZiBhIHllYXIgb2xkLCB1bmJyb2tlbiwgYW5kIG5ldmVyIHlldCBicm91Z2h0IGJ5IG1hbiB1bmRlciB0aGUgeW9rZS4gSSB3aWxsIGdpbGQgaGVyIGhvcm5zLCBhbmQgd2lsbCBvZmZlciBoZXIgdXAgdG8geW91IGluIHNhY3JpZmljZS4iDQoNClRodXMgZGlkIGhlIHByYXksIGFuZCBNaW5lcnZhIGhlYXJkIGhpcyBwcmF5ZXIuIEhlIHRoZW4gbGVkIHRoZSB3YXkgdG8gaGlzIG93biBob3VzZSwgZm9sbG93ZWQgYnkgaGlzIHNvbnMgYW5kIHNvbnMtaW4tbGF3LiBXaGVuIHRoZXkgaGFkIGdvdCB0aGVyZSBhbmQgaGFkIHRha2VuIHRoZWlyIHBsYWNlcyBvbiB0aGUgYmVuY2hlcyBhbmQgc2VhdHMsIGhlIG1peGVkIHRoZW0gYSBib3dsIG9mIHN3ZWV0IHdpbmUgdGhhdCB3YXMgZWxldmVuIHllYXJzIG9sZCB3aGVuIHRoZSBob3VzZWtlZXBlciB0b29rIHRoZSBsaWQgb2ZmIHRoZSBqYXIgdGhhdCBoZWxkIGl0LiBBcyBoZSBtaXhlZCB0aGUgd2luZSwgaGUgcHJheWVkIG11Y2ggYW5kIG1hZGUgZHJpbmstb2ZmZXJpbmdzIHRvIE1pbmVydmEsIGRhdWdodGVyIG9mIEFlZ2lzLWJlYXJpbmcgSm92ZS4gVGhlbiwgd2hlbiB0aGV5IGhhZCBtYWRlIHRoZWlyIGRyaW5rLW9mZmVyaW5ncyBhbmQgaGFkIGRydW5rIGVhY2ggYXMgbXVjaCBhcyBoZSB3YXMgbWluZGVkLCB0aGUgb3RoZXJzIHdlbnQgaG9tZSB0byBiZWQgZWFjaCBpbiBoaXMgb3duIGFib2RlOyBidXQgTmVzdG9yIHB1dCBUZWxlbWFjaHVzIHRvIHNsZWVwIGluIHRoZSByb29tIHRoYXQgd2FzIG92ZXIgdGhlIGdhdGV3YXkgYWxvbmcgd2l0aCBQaXNpc3RyYXR1cywgd2hvIHdhcyB0aGUgb25seSB1bm1hcnJpZWQgc29uIG5vdyBsZWZ0IGhpbS4gQXMgZm9yIGhpbXNlbGYsIGhlIHNsZXB0IGluIGFuIGlubmVyIHJvb20gb2YgdGhlIGhvdXNlLCB3aXRoIHRoZSBxdWVlbiBoaXMgd2lmZSBieSBoaXMgc2lkZS4NCg0KTm93IHdoZW4gdGhlIGNoaWxkIG9mIG1vcm5pbmcsIHJvc3ktZmluZ2VyZWQgRGF3biwgYXBwZWFyZWQsIE5lc3RvciBsZWZ0IGhpcyBjb3VjaCBhbmQgdG9vayBoaXMgc2VhdCBvbiB0aGUgYmVuY2hlcyBvZiB3aGl0ZSBhbmQgcG9saXNoZWQgbWFyYmxlIHRoYXQgc3Rvb2QgaW4gZnJvbnQgb2YgaGlzIGhvdXNlLiBIZXJlIGFmb3JldGltZSBzYXQgTmVsZXVzLCBwZWVyIG9mIGdvZHMgaW4gY291bnNlbCwgYnV0IGhlIHdhcyBub3cgZGVhZCwgYW5kIGhhZCBnb25lIHRvIHRoZSBob3VzZSBvZiBIYWRlczsgc28gTmVzdG9yIHNhdCBpbiBoaXMgc2VhdCwgc2NlcHRyZSBpbiBoYW5kLCBhcyBndWFyZGlhbiBvZiB0aGUgcHVibGljIHdlYWwuIEhpcyBzb25zIGFzIHRoZXkgbGVmdCB0aGVpciByb29tcyBnYXRoZXJlZCByb3VuZCBoaW0sIEVjaGVwaHJvbiwgU3RyYXRpdXMsIFBlcnNldXMsIEFyZXR1cywgYW5kIFRocmFzeW1lZGVzOyB0aGUgc2l4dGggc29uIHdhcyBQaXNpc3RyYXR1cywgYW5kIHdoZW4gVGVsZW1hY2h1cyBqb2luZWQgdGhlbSB0aGV5IG1hZGUgaGltIHNpdCB3aXRoIHRoZW0uIE5lc3RvciB0aGVuIGFkZHJlc3NlZCB0aGVtLg0KDQoiTXkgc29ucywiIHNhaWQgaGUsICJtYWtlIGhhc3RlIHRvIGRvIGFzIEkgc2hhbGwgYmlkIHlvdS4gSSB3aXNoIGZpcnN0IGFuZCBmb3JlbW9zdCB0byBwcm9waXRpYXRlIHRoZSBncmVhdCBnb2RkZXNzIE1pbmVydmEsIHdobyBtYW5pZmVzdGVkIGhlcnNlbGYgdmlzaWJseSB0byBtZSBkdXJpbmcgeWVzdGVyZGF5J3MgZmVzdGl2aXRpZXMuIEdvLCB0aGVuLCBvbmUgb3Igb3RoZXIgb2YgeW91IHRvIHRoZSBwbGFpbiwgdGVsbCB0aGUgc3RvY2ttYW4gdG8gbG9vayBtZSBvdXQgYSBoZWlmZXIsIGFuZCBjb21lIG9uIGhlcmUgd2l0aCBpdCBhdCBvbmNlLiBBbm90aGVyIG11c3QgZ28gdG8gVGVsZW1hY2h1cydzIHNoaXAsIGFuZCBpbnZpdGUgYWxsIHRoZSBjcmV3LCBsZWF2aW5nIHR3byBtZW4gb25seSBpbiBjaGFyZ2Ugb2YgdGhlIHZlc3NlbC4gU29tZSBvbmUgZWxzZSB3aWxsIHJ1biBhbmQgZmV0Y2ggTGFlcmNldXMgdGhlIGdvbGRzbWl0aCB0byBnaWxkIHRoZSBob3JucyBvZiB0aGUgaGVpZmVyLiBUaGUgcmVzdCwgc3RheSBhbGwgb2YgeW91IHdoZXJlIHlvdSBhcmU7IHRlbGwgdGhlIG1haWRzIGluIHRoZSBob3VzZSB0byBwcmVwYXJlIGFuIGV4Y2VsbGVudCBkaW5uZXIsIGFuZCB0byBmZXRjaCBzZWF0cywgYW5kIGxvZ3Mgb2Ygd29vZCBmb3IgYSBidXJudCBvZmZlcmluZy4gVGVsbCB0aGVtIGFsc28tIHRvIGJyaW5nIG1lIHNvbWUgY2xlYXIgc3ByaW5nIHdhdGVyLiINCg0KT24gdGhpcyB0aGV5IGh1cnJpZWQgb2ZmIG9uIHRoZWlyIHNldmVyYWwgZXJyYW5kcy4gVGhlIGhlaWZlciB3YXMgYnJvdWdodCBpbiBmcm9tIHRoZSBwbGFpbiwgYW5kIFRlbGVtYWNodXMncyBjcmV3IGNhbWUgZnJvbSB0aGUgc2hpcDsgdGhlIGdvbGRzbWl0aCBicm91Z2h0IHRoZSBhbnZpbCwgaGFtbWVyLCBhbmQgdG9uZ3MsIHdpdGggd2hpY2ggaGUgd29ya2VkIGhpcyBnb2xkLCBhbmQgTWluZXJ2YSBoZXJzZWxmIGNhbWUgdG8gdGhlIHNhY3JpZmljZS4gTmVzdG9yIGdhdmUgb3V0IHRoZSBnb2xkLCBhbmQgdGhlIHNtaXRoIGdpbGRlZCB0aGUgaG9ybnMgb2YgdGhlIGhlaWZlciB0aGF0IHRoZSBnb2RkZXNzIG1pZ2h0IGhhdmUgcGxlYXN1cmUgaW4gdGhlaXIgYmVhdXR5LiBUaGVuIFN0cmF0aXVzIGFuZCBFY2hlcGhyb24gYnJvdWdodCBoZXIgaW4gYnkgdGhlIGhvcm5zOyBBcmV0dXMgZmV0Y2hlZCB3YXRlciBmcm9tIHRoZSBob3VzZSBpbiBhIGV3ZXIgdGhhdCBoYWQgYSBmbG93ZXIgcGF0dGVybiBvbiBpdCwgYW5kIGluIGhpcyBvdGhlciBoYW5kIGhlIGhlbGQgYSBiYXNrZXQgb2YgYmFybGV5IG1lYWw7IHN0dXJkeSBUaHJhc3ltZWRlcyBzdG9vZCBieSB3aXRoIGEgc2hhcnAgYXhlLCByZWFkeSB0byBzdHJpa2UgdGhlIGhlaWZlciwgd2hpbGUgUGVyc2V1cyBoZWxkIGEgYnVja2V0LiBUaGVuIE5lc3RvciBiZWdhbiB3aXRoIHdhc2hpbmcgaGlzIGhhbmRzIGFuZCBzcHJpbmtsaW5nIHRoZSBiYXJsZXkgbWVhbCwgYW5kIGhlIG9mZmVyZWQgbWFueSBhIHByYXllciB0byBNaW5lcnZhIGFzIGhlIHRocmV3IGEgbG9jayBmcm9tIHRoZSBoZWlmZXIncyBoZWFkIHVwb24gdGhlIGZpcmUuDQoNCldoZW4gdGhleSBoYWQgZG9uZSBwcmF5aW5nIGFuZCBzcHJpbmtsaW5nIHRoZSBiYXJsZXkgbWVhbCBUaHJhc3ltZWRlcyBkZWFsdCBoaXMgYmxvdywgYW5kIGJyb3VnaHQgdGhlIGhlaWZlciBkb3duIHdpdGggYSBzdHJva2UgdGhhdCBjdXQgdGhyb3VnaCB0aGUgdGVuZG9ucyBhdCB0aGUgYmFzZSBvZiBoZXIgbmVjaywgd2hlcmVvbiB0aGUgZGF1Z2h0ZXJzIGFuZCBkYXVnaHRlcnMtaW4tbGF3IG9mIE5lc3RvciwgYW5kIGhpcyB2ZW5lcmFibGUgd2lmZSBFdXJ5ZGljZSAoc2hlIHdhcyBlbGRlc3QgZGF1Z2h0ZXIgdG8gQ2x5bWVudXMpIHNjcmVhbWVkIHdpdGggZGVsaWdodC4gVGhlbiB0aGV5IGxpZnRlZCB0aGUgaGVpZmVyJ3MgaGVhZCBmcm9tIG9mZiB0aGUgZ3JvdW5kLCBhbmQgUGlzaXN0cmF0dXMgY3V0IGhlciB0aHJvYXQuIFdoZW4gc2hlIGhhZCBkb25lIGJsZWVkaW5nIGFuZCB3YXMgcXVpdGUgZGVhZCwgdGhleSBjdXQgaGVyIHVwLiBUaGV5IGN1dCBvdXQgdGhlIHRoaWdoIGJvbmVzIGFsbCBpbiBkdWUgY291cnNlLCB3cmFwcGVkIHRoZW0gcm91bmQgaW4gdHdvIGxheWVycyBvZiBmYXQsIGFuZCBzZXQgc29tZSBwaWVjZXMgb2YgcmF3IG1lYXQgb24gdGhlIHRvcCBvZiB0aGVtOyB0aGVuIE5lc3RvciBsYWlkIHRoZW0gdXBvbiB0aGUgd29vZCBmaXJlIGFuZCBwb3VyZWQgd2luZSBvdmVyIHRoZW0sIHdoaWxlIHRoZSB5b3VuZyBtZW4gc3Rvb2QgbmVhciBoaW0gd2l0aCBmaXZlLXByb25nZWQgc3BpdHMgaW4gdGhlaXIgaGFuZHMuIFdoZW4gdGhlIHRoaWdocyB3ZXJlIGJ1cm5lZCBhbmQgdGhleSBoYWQgdGFzdGVkIHRoZSBpbndhcmQgbWVhdHMsIHRoZXkgY3V0IHRoZSByZXN0IG9mIHRoZSBtZWF0IHVwIHNtYWxsLCBwdXQgdGhlIHBpZWNlcyBvbiB0aGUgc3BpdHMgYW5kIHRvYXN0ZWQgdGhlbSBvdmVyIHRoZSBmaXJlLg0KDQpNZWFud2hpbGUgbG92ZWx5IFBvbHljYXN0ZSwgTmVzdG9yJ3MgeW91bmdlc3QgZGF1Z2h0ZXIsIHdhc2hlZCBUZWxlbWFjaHVzLiBXaGVuIHNoZSBoYWQgd2FzaGVkIGhpbSBhbmQgYW5vaW50ZWQgaGltIHdpdGggb2lsLCBzaGUgYnJvdWdodCBoaW0gYSBmYWlyIG1hbnRsZSBhbmQgc2hpcnQsIGFuZCBoZSBsb29rZWQgbGlrZSBhIGdvZCBhcyBoZSBjYW1lIGZyb20gdGhlIGJhdGggYW5kIHRvb2sgaGlzIHNlYXQgYnkgdGhlIHNpZGUgb2YgTmVzdG9yLiBXaGVuIHRoZSBvdXRlciBtZWF0cyB3ZXJlIGRvbmUgdGhleSBkcmV3IHRoZW0gb2ZmIHRoZSBzcGl0cyBhbmQgc2F0IGRvd24gdG8gZGlubmVyIHdoZXJlIHRoZXkgd2VyZSB3YWl0ZWQgdXBvbiBieSBzb21lIHdvcnRoeSBoZW5jaG1lbiwgd2hvIGtlcHQgcG91cmluZyB0aGVtIG91dCB0aGVpciB3aW5lIGluIGN1cHMgb2YgZ29sZC4gQXMgc29vbiBhcyB0aGV5IGhhZCBoYWQgaGFkIGVub3VnaCB0byBlYXQgYW5kIGRyaW5rIE5lc3RvciBzYWlkLCAiU29ucywgcHV0IFRlbGVtYWNodXMncyBob3JzZXMgdG8gdGhlIGNoYXJpb3QgdGhhdCBoZSBtYXkgc3RhcnQgYXQgb25jZS4iDQoNClRodXMgZGlkIGhlIHNwZWFrLCBhbmQgdGhleSBkaWQgZXZlbiBhcyBoZSBoYWQgc2FpZCwgYW5kIHlva2VkIHRoZSBmbGVldCBob3JzZXMgdG8gdGhlIGNoYXJpb3QuIFRoZSBob3VzZWtlZXBlciBwYWNrZWQgdGhlbSB1cCBhIHByb3Zpc2lvbiBvZiBicmVhZCwgd2luZSwgYW5kIHN3ZWV0bWVhdHMgZml0IGZvciB0aGUgc29ucyBvZiBwcmluY2VzLiBUaGVuIFRlbGVtYWNodXMgZ290IGludG8gdGhlIGNoYXJpb3QsIHdoaWxlIFBpc2lzdHJhdHVzIGdhdGhlcmVkIHVwIHRoZSByZWlucyBhbmQgdG9vayBoaXMgc2VhdCBiZXNpZGUgaGltLiBIZSBsYXNoZWQgdGhlIGhvcnNlcyBvbiBhbmQgdGhleSBmbGV3IGZvcndhcmQgbm90aGluZyBsb3RoIGludG8gdGhlIG9wZW4gY291bnRyeSwgbGVhdmluZyB0aGUgaGlnaCBjaXRhZGVsIG9mIFB5bG9zIGJlaGluZCB0aGVtLiBBbGwgdGhhdCBkYXkgZGlkIHRoZXkgdHJhdmVsLCBzd2F5aW5nIHRoZSB5b2tlIHVwb24gdGhlaXIgbmVja3MgdGlsbCB0aGUgc3VuIHdlbnQgZG93biBhbmQgZGFya25lc3Mgd2FzIG92ZXIgYWxsIHRoZSBsYW5kLiBUaGVuIHRoZXkgcmVhY2hlZCBQaGVyYWUgd2hlcmUgRGlvY2xlcyBsaXZlZCwgd2hvIHdhcyBzb24gdG8gT3J0aWxvY2h1cyBhbmQgZ3JhbmRzb24gdG8gQWxwaGV1cy4gSGVyZSB0aGV5IHBhc3NlZCB0aGUgbmlnaHQgYW5kIERpb2NsZXMgZW50ZXJ0YWluZWQgdGhlbSBob3NwaXRhYmx5LiBXaGVuIHRoZSBjaGlsZCBvZiBtb3JuaW5nLCByb3N5LWZpbmdlcmVkIERhd247IGFwcGVhcmVkLCB0aGV5IGFnYWluIHlva2VkIHRoZWlyIGhvcnNlcyBhbmQgZHJvdmUgb3V0IHRocm91Z2ggdGhlIGdhdGV3YXkgdW5kZXIgdGhlIGVjaG9pbmcgZ2F0ZWhvdXNlLiBQaXNpc3RyYXR1cyBsYXNoZWQgdGhlIGhvcnNlcyBvbiBhbmQgdGhleSBmbGV3IGZvcndhcmQgbm90aGluZyBsb3RoOyBwcmVzZW50bHkgdGhleSBjYW1lIHRvIHRoZSBjb3JuIGxhbmRzIE9mIHRoZSBvcGVuIGNvdW50cnksIGFuZCBpbiB0aGUgY291cnNlIG9mIHRpbWUgY29tcGxldGVkIHRoZWlyIGpvdXJuZXksIHNvIHdlbGwgZGlkIHRoZWlyIHN0ZWVkcyB0YWtlIHRoZW0uDQoNCk5vdyB3aGVuIHRoZSBzdW4gaGFkIHNldCBhbmQgZGFya25lc3Mgd2FzIG92ZXIgdGhlIGxhbmQu",
      "timestamp": "2014-09-07T22:39:54.022Z"
    }
  ],
  "stubs": [
    {
      "responses": [
        {
          "is": {
            "data": "SGVsbG8sIHdvcmxkIQ=="
          }
        }
      ],
      "matches": [
        {
          "timestamp": "2015-01-18T14:59:36.095Z",
          "request": {
            "requestFrom": "127.0.0.1:53172",
            "data": "AAEK/0Jvb2sgSQ0KDQpUZWxsIG1lLCBPIG11c2UsIG9mIHRoYXQgaW5nZW5pb3VzIGhlcm8gd2hvIHRyYXZlbGxlZCBmYXIgYW5kIHdpZGUgYWZ0ZXIgaGUgaGFkIHNhY2tlZCB0aGUgZmFtb3VzIHRvd24gb2YgVHJveS4gTWFueSBjaXRpZXMgZGlkIGhlIHZpc2l0LCBhbmQgbWFueSB3ZXJlIHRoZSBuYXRpb25zIHdpdGggd2hvc2UgbWFubmVycyBhbmQgY3VzdG9tcyBoZSB3YXMgYWNxdWFpbnRlZDsgbW9yZW92ZXIgaGUgc3VmZmVyZWQgbXVjaCBieSBzZWEgd2hpbGUgdHJ5aW5nIHRvIHNhdmUgaGlzIG93biBsaWZlIGFuZCBicmluZyBoaXMgbWVuIHNhZmVseSBob21lOyBidXQgZG8gd2hhdCBoZSBtaWdodCBoZSBjb3VsZCBub3Qgc2F2ZSBoaXMgbWVuLCBmb3IgdGhleSBwZXJpc2hlZCB0aHJvdWdoIHRoZWlyIG93biBzaGVlciBmb2xseSBpbiBlYXRpbmcgdGhlIGNhdHRsZSBvZiB0aGUgU3VuLWdvZCBIeXBlcmlvbjsgc28gdGhlIGdvZCBwcmV2ZW50ZWQgdGhlbSBmcm9tIGV2ZXIgcmVhY2hpbmcgaG9tZS4gVGVsbCBtZSwgdG9vLCBhYm91dCBhbGwgdGhlc2UgdGhpbmdzLCBPIGRhdWdodGVyIG9mIEpvdmUsIGZyb20gd2hhdHNvZXZlciBzb3VyY2UgeW91IG1heSBrbm93IHRoZW0uDQoNClNvIG5vdyBhbGwgd2hvIGVzY2FwZWQgZGVhdGggaW4gYmF0dGxlIG9yIGJ5IHNoaXB3cmVjayBoYWQgZ290IHNhZmVseSBob21lIGV4Y2VwdCBVbHlzc2VzLCBhbmQgaGUsIHRob3VnaCBoZSB3YXMgbG9uZ2luZyB0byByZXR1cm4gdG8gaGlzIHdpZmUgYW5kIGNvdW50cnksIHdhcyBkZXRhaW5lZCBieSB0aGUgZ29kZGVzcyBDYWx5cHNvLCB3aG8gaGFkIGdvdCBoaW0gaW50byBhIGxhcmdlIGNhdmUgYW5kIHdhbnRlZCB0byBtYXJyeSBoaW0uIEJ1dCBhcyB5ZWFycyB3ZW50IGJ5LCB0aGVyZSBjYW1lIGEgdGltZSB3aGVuIHRoZSBnb2RzIHNldHRsZWQgdGhhdCBoZSBzaG91bGQgZ28gYmFjayB0byBJdGhhY2E7IGV2ZW4gdGhlbiwgaG93ZXZlciwgd2hlbiBoZSB3YXMgYW1vbmcgaGlzIG93biBwZW9wbGUsIGhpcyB0cm91YmxlcyB3ZXJlIG5vdCB5ZXQgb3ZlcjsgbmV2ZXJ0aGVsZXNzIGFsbCB0aGUgZ29kcyBoYWQgbm93IGJlZ3VuIHRvIHBpdHkgaGltIGV4Y2VwdCBOZXB0dW5lLCB3aG8gc3RpbGwgcGVyc2VjdXRlZCBoaW0gd2l0aG91dCBjZWFzaW5nIGFuZCB3b3VsZCBub3QgbGV0IGhpbSBnZXQgaG9tZS4NCg0KTm93IE5lcHR1bmUgaGFkIGdvbmUgb2ZmIHRvIHRoZSBFdGhpb3BpYW5zLCB3aG8gYXJlIGF0IHRoZSB3b3JsZCdzIGVuZCwgYW5kIGxpZSBpbiB0d28gaGFsdmVzLCB0aGUgb25lIGxvb2tpbmcgV2VzdCBhbmQgdGhlIG90aGVyIEVhc3QuIEhlIGhhZCBnb25lIHRoZXJlIHRvIGFjY2VwdCBhIGhlY2F0b21iIG9mIHNoZWVwIGFuZCBveGVuLCBhbmQgd2FzIGVuam95aW5nIGhpbXNlbGYgYXQgaGlzIGZlc3RpdmFsOyBidXQgdGhlIG90aGVyIGdvZHMgbWV0IGluIHRoZSBob3VzZSBvZiBPbHltcGlhbiBKb3ZlLCBhbmQgdGhlIHNpcmUgb2YgZ29kcyBhbmQgbWVuIHNwb2tlIGZpcnN0LiBBdCB0aGF0IG1vbWVudCBoZSB3YXMgdGhpbmtpbmcgb2YgQWVnaXN0aHVzLCB3aG8gaGFkIGJlZW4ga2lsbGVkIGJ5IEFnYW1lbW5vbidzIHNvbiBPcmVzdGVzOyBzbyBoZSBzYWlkIHRvIHRoZSBvdGhlciBnb2RzOg0KDQoiU2VlIG5vdywgaG93IG1lbiBsYXkgYmxhbWUgdXBvbiB1cyBnb2RzIGZvciB3aGF0IGlzIGFmdGVyIGFsbCBub3RoaW5nIGJ1dCB0aGVpciBvd24gZm9sbHkuIExvb2sgYXQgQWVnaXN0aHVzOyBoZSBtdXN0IG5lZWRzIG1ha2UgbG92ZSB0byBBZ2FtZW1ub24ncyB3aWZlIHVucmlnaHRlb3VzbHkgYW5kIHRoZW4ga2lsbCBBZ2FtZW1ub24sIHRob3VnaCBoZSBrbmV3IGl0IHdvdWxkIGJlIHRoZSBkZWF0aCBvZiBoaW07IGZvciBJIHNlbnQgTWVyY3VyeSB0byB3YXJuIGhpbSBub3QgdG8gZG8gZWl0aGVyIG9mIHRoZXNlIHRoaW5ncywgaW5hc211Y2ggYXMgT3Jlc3RlcyB3b3VsZCBiZSBzdXJlIHRvIHRha2UgaGlzIHJldmVuZ2Ugd2hlbiBoZSBncmV3IHVwIGFuZCB3YW50ZWQgdG8gcmV0dXJuIGhvbWUuIE1lcmN1cnkgdG9sZCBoaW0gdGhpcyBpbiBhbGwgZ29vZCB3aWxsIGJ1dCBoZSB3b3VsZCBub3QgbGlzdGVuLCBhbmQgbm93IGhlIGhhcyBwYWlkIGZvciBldmVyeXRoaW5nIGluIGZ1bGwuIg0KDQpUaGVuIE1pbmVydmEgc2FpZCwgIkZhdGhlciwgc29uIG9mIFNhdHVybiwgS2luZyBvZiBraW5ncywgaXQgc2VydmVkIEFlZ2lzdGh1cyByaWdodCwgYW5kIHNvIGl0IHdvdWxkIGFueSBvbmUgZWxzZSB3aG8gZG9lcyBhcyBoZSBkaWQ7IGJ1dCBBZWdpc3RodXMgaXMgbmVpdGhlciBoZXJlIG5vciB0aGVyZTsgaXQgaXMgZm9yIFVseXNzZXMgdGhhdCBteSBoZWFydCBibGVlZHMsIHdoZW4gSSB0aGluayBvZiBoaXMgc3VmZmVyaW5ncyBpbiB0aGF0IGxvbmVseSBzZWEtZ2lydCBpc2xhbmQsIGZhciBhd2F5LCBwb29yIG1hbiwgZnJvbSBhbGwgaGlzIGZyaWVuZHMuIEl0IGlzIGFuIGlzbGFuZCBjb3ZlcmVkIHdpdGggZm9yZXN0LCBpbiB0aGUgdmVyeSBtaWRkbGUgb2YgdGhlIHNlYSwgYW5kIGEgZ29kZGVzcyBsaXZlcyB0aGVyZSwgZGF1Z2h0ZXIgb2YgdGhlIG1hZ2ljaWFuIEF0bGFzLCB3aG8gbG9va3MgYWZ0ZXIgdGhlIGJvdHRvbSBvZiB0aGUgb2NlYW4sIGFuZCBjYXJyaWVzIHRoZSBncmVhdCBjb2x1bW5zIHRoYXQga2VlcCBoZWF2ZW4gYW5kIGVhcnRoIGFzdW5kZXIuIFRoaXMgZGF1Z2h0ZXIgb2YgQXRsYXMgaGFzIGdvdCBob2xkIG9mIHBvb3IgdW5oYXBweSBVbHlzc2VzLCBhbmQga2VlcHMgdHJ5aW5nIGJ5IGV2ZXJ5IGtpbmQgb2YgYmxhbmRpc2htZW50IHRvIG1ha2UgaGltIGZvcmdldCBoaXMgaG9tZSwgc28gdGhhdCBoZSBpcyB0aXJlZCBvZiBsaWZlLCBhbmQgdGhpbmtzIG9mIG5vdGhpbmcgYnV0IGhvdyBoZSBtYXkgb25jZSBtb3JlIHNlZSB0aGUgc21va2Ugb2YgaGlzIG93biBjaGltbmV5cy4gWW91LCBzaXIsIHRha2Ugbm8gaGVlZCBvZiB0aGlzLCBhbmQgeWV0IHdoZW4gVWx5c3NlcyB3YXMgYmVmb3JlIFRyb3kgZGlkIGhlIG5vdCBwcm9waXRpYXRlIHlvdSB3aXRoIG1hbnkgYSBidXJudCBzYWNyaWZpY2U/IFdoeSB0aGVuIHNob3VsZCB5b3Uga2VlcCBvbiBiZWluZyBzbyBhbmdyeSB3aXRoIGhpbT8iDQoNCkFuZCBKb3ZlIHNhaWQsICJNeSBjaGlsZCwgd2hhdCBhcmUgeW91IHRhbGtpbmcgYWJvdXQ/IEhvdyBjYW4gSSBmb3JnZXQgVWx5c3NlcyB0aGFuIHdob20gdGhlcmUgaXMgbm8gbW9yZSBjYXBhYmxlIG1hbiBvbiBlYXJ0aCwgbm9yIG1vcmUgbGliZXJhbCBpbiBoaXMgb2ZmZXJpbmdzIHRvIHRoZSBpbW1vcnRhbCBnb2RzIHRoYXQgbGl2ZSBpbiBoZWF2ZW4/IEJlYXIgaW4gbWluZCwgaG93ZXZlciwgdGhhdCBOZXB0dW5lIGlzIHN0aWxsIGZ1cmlvdXMgd2l0aCBVbHlzc2VzIGZvciBoYXZpbmcgYmxpbmRlZCBhbiBleWUgb2YgUG9seXBoZW11cyBraW5nIG9mIHRoZSBDeWNsb3Blcy4gUG9seXBoZW11cyBpcyBzb24gdG8gTmVwdHVuZSBieSB0aGUgbnltcGggVGhvb3NhLCBkYXVnaHRlciB0byB0aGUgc2VhLWtpbmcgUGhvcmN5czsgdGhlcmVmb3JlIHRob3VnaCBoZSB3aWxsIG5vdCBraWxsIFVseXNzZXMgb3V0cmlnaHQsIGhlIHRvcm1lbnRzIGhpbSBieSBwcmV2ZW50aW5nIGhpbSBmcm9tIGdldHRpbmcgaG9tZS4gU3RpbGwsIGxldCB1cyBsYXkgb3VyIGhlYWRzIHRvZ2V0aGVyIGFuZCBzZWUgaG93IHdlIGNhbiBoZWxwIGhpbSB0byByZXR1cm47IE5lcHR1bmUgd2lsbCB0aGVuIGJlIHBhY2lmaWVkLCBmb3IgaWYgd2UgYXJlIGFsbCBvZiBhIG1pbmQgaGUgY2FuIGhhcmRseSBzdGFuZCBvdXQgYWdhaW5zdCB1cy4iDQoNCkFuZCBNaW5lcnZhIHNhaWQsICJGYXRoZXIsIHNvbiBvZiBTYXR1cm4sIEtpbmcgb2Yga2luZ3MsIGlmLCB0aGVuLCB0aGUgZ29kcyBub3cgbWVhbiB0aGF0IFVseXNzZXMgc2hvdWxkIGdldCBob21lLCB3ZSBzaG91bGQgZmlyc3Qgc2VuZCBNZXJjdXJ5IHRvIHRoZSBPZ3lnaWFuIGlzbGFuZCB0byB0ZWxsIENhbHlwc28gdGhhdCB3ZSBoYXZlIG1hZGUgdXAgb3VyIG1pbmRzIGFuZCB0aGF0IGhlIGlzIHRvIHJldHVybi4gSW4gdGhlIG1lYW50aW1lIEkgd2lsbCBnbyB0byBJdGhhY2EsIHRvIHB1dCBoZWFydCBpbnRvIFVseXNzZXMnIHNvbiBUZWxlbWFjaHVzOyBJIHdpbGwgZW1ib2xkZW4gaGltIHRvIGNhbGwgdGhlIEFjaGFlYW5zIGluIGFzc2VtYmx5LCBhbmQgc3BlYWsgb3V0IHRvIHRoZSBzdWl0b3JzIG9mIGhpcyBtb3RoZXIgUGVuZWxvcGUsIHdobyBwZXJzaXN0IGluIGVhdGluZyB1cCBhbnkgbnVtYmVyIG9mIGhpcyBzaGVlcCBhbmQgb3hlbjsgSSB3aWxsIGFsc28gY29uZHVjdCBoaW0gdG8gU3BhcnRhIGFuZCB0byBQeWxvcywgdG8gc2VlIGlmIGhlIGNhbiBoZWFyIGFueXRoaW5nIGFib3V0IHRoZSByZXR1cm4gb2YgaGlzIGRlYXIgZmF0aGVyLSBmb3IgdGhpcyB3aWxsIG1ha2UgcGVvcGxlIHNwZWFrIHdlbGwgb2YgaGltLiINCg0KU28gc2F5aW5nIHNoZSBib3VuZCBvbiBoZXIgZ2xpdHRlcmluZyBnb2xkZW4gc2FuZGFscywgaW1wZXJpc2hhYmxlLCB3aXRoIHdoaWNoIHNoZSBjYW4gZmx5IGxpa2UgdGhlIHdpbmQgb3ZlciBsYW5kIG9yIHNlYTsgc2hlIGdyYXNwZWQgdGhlIHJlZG91YnRhYmxlIGJyb256ZS1zaG9kIHNwZWFyLCBzbyBzdG91dCBhbmQgc3R1cmR5IGFuZCBzdHJvbmcsIHdoZXJld2l0aCBzaGUgcXVlbGxzIHRoZSByYW5rcyBvZiBoZXJvZXMgd2hvIGhhdmUgZGlzcGxlYXNlZCBoZXIsIGFuZCBkb3duIHNoZSBkYXJ0ZWQgZnJvbSB0aGUgdG9wbW9zdCBzdW1taXRzIG9mIE9seW1wdXMsIHdoZXJlb24gZm9ydGh3aXRoIHNoZSB3YXMgaW4gSXRoYWNhLCBhdCB0aGUgZ2F0ZXdheSBvZiBVbHlzc2VzJyBob3VzZSwgZGlzZ3Vpc2VkIGFzIGEgdmlzaXRvciwgTWVudGVzLCBjaGllZiBvZiB0aGUgVGFwaGlhbnMsIGFuZCBzaGUgaGVsZCBhIGJyb256ZSBzcGVhciBpbiBoZXIgaGFuZC4gVGhlcmUgc2hlIGZvdW5kIHRoZSBsb3JkbHkgc3VpdG9ycyBzZWF0ZWQgb24gaGlkZXMgb2YgdGhlIG94ZW4gd2hpY2ggdGhleSBoYWQga2lsbGVkIGFuZCBlYXRlbiwgYW5kIHBsYXlpbmcgZHJhdWdodHMgaW4gZnJvbnQgb2YgdGhlIGhvdXNlLiBNZW4tc2VydmFudHMgYW5kIHBhZ2VzIHdlcmUgYnVzdGxpbmcgYWJvdXQgdG8gd2FpdCB1cG9uIHRoZW0sIHNvbWUgbWl4aW5nIHdpbmUgd2l0aCB3YXRlciBpbiB0aGUgbWl4aW5nLWJvd2xzLCBzb21lIGNsZWFuaW5nIGRvd24gdGhlIHRhYmxlcyB3aXRoIHdldCBzcG9uZ2VzIGFuZCBsYXlpbmcgdGhlbSBvdXQgYWdhaW4sIGFuZCBzb21lIGN1dHRpbmcgdXAgZ3JlYXQgcXVhbnRpdGllcyBvZiBtZWF0Lg0KDQpUZWxlbWFjaHVzIHNhdyBoZXIgbG9uZyBiZWZvcmUgYW55IG9uZSBlbHNlIGRpZC4gSGUgd2FzIHNpdHRpbmcgbW9vZGlseSBhbW9uZyB0aGUgc3VpdG9ycyB0aGlua2luZyBhYm91dCBoaXMgYnJhdmUgZmF0aGVyLCBhbmQgaG93IGhlIHdvdWxkIHNlbmQgdGhlbSBmbHlpbmcgb3V0IG9mIHRoZSBob3VzZSwgaWYgaGUgd2VyZSB0byBjb21lIHRvIGhpcyBvd24gYWdhaW4gYW5kIGJlIGhvbm91cmVkIGFzIGluIGRheXMgZ29uZSBieS4gVGh1cyBicm9vZGluZyBhcyBoZSBzYXQgYW1vbmcgdGhlbSwgaGUgY2F1Z2h0IHNpZ2h0IG9mIE1pbmVydmEgYW5kIHdlbnQgc3RyYWlnaHQgdG8gdGhlIGdhdGUsIGZvciBoZSB3YXMgdmV4ZWQgdGhhdCBhIHN0cmFuZ2VyIHNob3VsZCBiZSBrZXB0IHdhaXRpbmcgZm9yIGFkbWl0dGFuY2UuIEhlIHRvb2sgaGVyIHJpZ2h0IGhhbmQgaW4gaGlzIG93biwgYW5kIGJhZGUgaGVyIGdpdmUgaGltIGhlciBzcGVhci4gIldlbGNvbWUsIiBzYWlkIGhlLCAidG8gb3VyIGhvdXNlLCBhbmQgd2hlbiB5b3UgaGF2ZSBwYXJ0YWtlbiBvZiBmb29kIHlvdSBzaGFsbCB0ZWxsIHVzIHdoYXQgeW91IGhhdmUgY29tZSBmb3IuIg0KDQpIZSBsZWQgdGhlIHdheSBhcyBoZSBzcG9rZSwgYW5kIE1pbmVydmEgZm9sbG93ZWQgaGltLiBXaGVuIHRoZXkgd2VyZSB3aXRoaW4gaGUgdG9vayBoZXIgc3BlYXIgYW5kIHNldCBpdCBpbiB0aGUgc3BlYXItIHN0YW5kIGFnYWluc3QgYSBzdHJvbmcgYmVhcmluZy1wb3N0IGFsb25nIHdpdGggdGhlIG1hbnkgb3RoZXIgc3BlYXJzIG9mIGhpcyB1bmhhcHB5IGZhdGhlciwgYW5kIGhlIGNvbmR1Y3RlZCBoZXIgdG8gYSByaWNobHkgZGVjb3JhdGVkIHNlYXQgdW5kZXIgd2hpY2ggaGUgdGhyZXcgYSBjbG90aCBvZiBkYW1hc2suIFRoZXJlIHdhcyBhIGZvb3RzdG9vbCBhbHNvIGZvciBoZXIgZmVldCwgYW5kIGhlIHNldCBhbm90aGVyIHNlYXQgbmVhciBoZXIgZm9yIGhpbXNlbGYsIGF3YXkgZnJvbSB0aGUgc3VpdG9ycywgdGhhdCBzaGUgbWlnaHQgbm90IGJlIGFubm95ZWQgd2hpbGUgZWF0aW5nIGJ5IHRoZWlyIG5vaXNlIGFuZCBpbnNvbGVuY2UsIGFuZCB0aGF0IGhlIG1pZ2h0IGFzayBoZXIgbW9yZSBmcmVlbHkgYWJvdXQgaGlzIGZhdGhlci4NCg0KQSBtYWlkIHNlcnZhbnQgdGhlbiBicm91Z2h0IHRoZW0gd2F0ZXIgaW4gYSBiZWF1dGlmdWwgZ29sZGVuIGV3ZXIgYW5kIHBvdXJlZCBpdCBpbnRvIGEgc2lsdmVyIGJhc2luIGZvciB0aGVtIHRvIHdhc2ggdGhlaXIgaGFuZHMsIGFuZCBzaGUgZHJldyBhIGNsZWFuIHRhYmxlIGJlc2lkZSB0aGVtLiBBbiB1cHBlciBzZXJ2YW50IGJyb3VnaHQgdGhlbSBicmVhZCwgYW5kIG9mZmVyZWQgdGhlbSBtYW55IGdvb2QgdGhpbmdzIG9mIHdoYXQgdGhlcmUgd2FzIGluIHRoZSBob3VzZSwgdGhlIGNhcnZlciBmZXRjaGVkIHRoZW0gcGxhdGVzIG9mIGFsbCBtYW5uZXIgb2YgbWVhdHMgYW5kIHNldCBjdXBzIG9mIGdvbGQgYnkgdGhlaXIgc2lkZSwgYW5kIGEgbWFuLXNlcnZhbnQgYnJvdWdodCB0aGVtIHdpbmUgYW5kIHBvdXJlZCBpdCBvdXQgZm9yIHRoZW0uDQoNClRoZW4gdGhlIHN1aXRvcnMgY2FtZSBpbiBhbmQgdG9vayB0aGVpciBwbGFjZXMgb24gdGhlIGJlbmNoZXMgYW5kIHNlYXRzLiBGb3J0aHdpdGggbWVuIHNlcnZhbnRzIHBvdXJlZCB3YXRlciBvdmVyIHRoZWlyIGhhbmRzLCBtYWlkcyB3ZW50IHJvdW5kIHdpdGggdGhlIGJyZWFkLWJhc2tldHMsIHBhZ2VzIGZpbGxlZCB0aGUgbWl4aW5nLWJvd2xzIHdpdGggd2luZSBhbmQgd2F0ZXIsIGFuZCB0aGV5IGxhaWQgdGhlaXIgaGFuZHMgdXBvbiB0aGUgZ29vZCB0aGluZ3MgdGhhdCB3ZXJlIGJlZm9yZSB0aGVtLiBBcyBzb29uIGFzIHRoZXkgaGFkIGhhZCBlbm91Z2ggdG8gZWF0IGFuZCBkcmluayB0aGV5IHdhbnRlZCBtdXNpYyBhbmQgZGFuY2luZywgd2hpY2ggYXJlIHRoZSBjcm93bmluZyBlbWJlbGxpc2htZW50cyBvZiBhIGJhbnF1ZXQsIHNvIGEgc2VydmFudCBicm91Z2h0IGEgbHlyZSB0byBQaGVtaXVzLCB3aG9tIHRoZXkgY29tcGVsbGVkIHBlcmZvcmNlIHRvIHNpbmcgdG8gdGhlbS4gQXMgc29vbiBhcyBoZSB0b3VjaGVkIGhpcyBseXJlIGFuZCBiZWdhbiB0byBzaW5nIFRlbGVtYWNodXMgc3Bva2UgbG93IHRvIE1pbmVydmEsIHdpdGggaGlzIGhlYWQgY2xvc2UgdG8gaGVycyB0aGF0IG5vIG1hbiBtaWdodCBoZWFyLg0KDQoiSSBob3BlLCBzaXIsIiBzYWlkIGhlLCAidGhhdCB5b3Ugd2lsbCBub3QgYmUgb2ZmZW5kZWQgd2l0aCB3aGF0IEkgYW0gZ29pbmcgdG8gc2F5LiBTaW5naW5nIGNvbWVzIGNoZWFwIHRvIHRob3NlIHdobyBkbyBub3QgcGF5IGZvciBpdCwgYW5kIGFsbCB0aGlzIGlzIGRvbmUgYXQgdGhlIGNvc3Qgb2Ygb25lIHdob3NlIGJvbmVzIGxpZSByb3R0aW5nIGluIHNvbWUgd2lsZGVybmVzcyBvciBncmluZGluZyB0byBwb3dkZXIgaW4gdGhlIHN1cmYuIElmIHRoZXNlIG1lbiB3ZXJlIHRvIHNlZSBteSBmYXRoZXIgY29tZSBiYWNrIHRvIEl0aGFjYSB0aGV5IHdvdWxkIHByYXkgZm9yIGxvbmdlciBsZWdzIHJhdGhlciB0aGFuIGEgbG9uZ2VyIHB1cnNlLCBmb3IgbW9uZXkgd291bGQgbm90IHNlcnZlIHRoZW07IGJ1dCBoZSwgYWxhcywgaGFzIGZhbGxlbiBvbiBhbiBpbGwgZmF0ZSwgYW5kIGV2ZW4gd2hlbiBwZW9wbGUgZG8gc29tZXRpbWVzIHNheSB0aGF0IGhlIGlzIGNvbWluZywgd2Ugbm8gbG9uZ2VyIGhlZWQgdGhlbTsgd2Ugc2hhbGwgbmV2ZXIgc2VlIGhpbSBhZ2Fpbi4gQW5kIG5vdywgc2lyLCB0ZWxsIG1lIGFuZCB0ZWxsIG1lIHRydWUsIHdobyB5b3UgYXJlIGFuZCB3aGVyZSB5b3UgY29tZSBmcm9tLiBUZWxsIG1lIG9mIHlvdXIgdG93biBhbmQgcGFyZW50cywgd2hhdCBtYW5uZXIgb2Ygc2hpcCB5b3UgY2FtZSBpbiwgaG93IHlvdXIgY3JldyBicm91Z2h0IHlvdSB0byBJdGhhY2EsIGFuZCBvZiB3aGF0IG5hdGlvbiB0aGV5IGRlY2xhcmVkIHRoZW1zZWx2ZXMgdG8gYmUtIGZvciB5b3UgY2Fubm90IGhhdmUgY29tZSBieSBsYW5kLiBUZWxsIG1lIGFsc28gdHJ1bHksIGZvciBJIHdhbnQgdG8ga25vdywgYXJlIHlvdSBhIHN0cmFuZ2VyIHRvIHRoaXMgaG91c2UsIG9yIGhhdmUgeW91IGJlZW4gaGVyZSBpbiBteSBmYXRoZXIncyB0aW1lPyBJbiB0aGUgb2xkIGRheXMgd2UgaGFkIG1hbnkgdmlzaXRvcnMgZm9yIG15IGZhdGhlciB3ZW50IGFib3V0IG11Y2ggaGltc2VsZi4iDQoNCkFuZCBNaW5lcnZhIGFuc3dlcmVkLCAiSSB3aWxsIHRlbGwgeW91IHRydWx5IGFuZCBwYXJ0aWN1bGFybHkgYWxsIGFib3V0IGl0LiBJIGFtIE1lbnRlcywgc29uIG9mIEFuY2hpYWx1cywgYW5kIEkgYW0gS2luZyBvZiB0aGUgVGFwaGlhbnMuIEkgaGF2ZSBjb21lIGhlcmUgd2l0aCBteSBzaGlwIGFuZCBjcmV3LCBvbiBhIHZveWFnZSB0byBtZW4gb2YgYSBmb3JlaWduIHRvbmd1ZSBiZWluZyBib3VuZCBmb3IgVGVtZXNhIHdpdGggYSBjYXJnbyBvZiBpcm9uLCBhbmQgSSBzaGFsbCBicmluZyBiYWNrIGNvcHBlci4gQXMgZm9yIG15IHNoaXAsIGl0IGxpZXMgb3ZlciB5b25kZXIgb2ZmIHRoZSBvcGVuIGNvdW50cnkgYXdheSBmcm9tIHRoZSB0b3duLCBpbiB0aGUgaGFyYm91ciBSaGVpdGhyb24gdW5kZXIgdGhlIHdvb2RlZCBtb3VudGFpbiBOZXJpdHVtLiBPdXIgZmF0aGVycyB3ZXJlIGZyaWVuZHMgYmVmb3JlIHVzLCBhcyBvbGQgTGFlcnRlcyB3aWxsIHRlbGwgeW91LCBpZiB5b3Ugd2lsbCBnbyBhbmQgYXNrIGhpbS4gVGhleSBzYXksIGhvd2V2ZXIsIHRoYXQgaGUgbmV2ZXIgY29tZXMgdG8gdG93biBub3csIGFuZCBsaXZlcyBieSBoaW1zZWxmIGluIHRoZSBjb3VudHJ5LCBmYXJpbmcgaGFyZGx5LCB3aXRoIGFuIG9sZCB3b21hbiB0byBsb29rIGFmdGVyIGhpbSBhbmQgZ2V0IGhpcyBkaW5uZXIgZm9yIGhpbSwgd2hlbiBoZSBjb21lcyBpbiB0aXJlZCBmcm9tIHBvdHRlcmluZyBhYm91dCBoaXMgdmluZXlhcmQuIFRoZXkgdG9sZCBtZSB5b3VyIGZhdGhlciB3YXMgYXQgaG9tZSBhZ2FpbiwgYW5kIHRoYXQgd2FzIHdoeSBJIGNhbWUsIGJ1dCBpdCBzZWVtcyB0aGUgZ29kcyBhcmUgc3RpbGwga2VlcGluZyBoaW0gYmFjaywgZm9yIGhlIGlzIG5vdCBkZWFkIHlldCBub3Qgb24gdGhlIG1haW5sYW5kLiBJdCBpcyBtb3JlIGxpa2VseSBoZSBpcyBvbiBzb21lIHNlYS1naXJ0IGlzbGFuZCBpbiBtaWQgb2NlYW4sIG9yIGEgcHJpc29uZXIgYW1vbmcgc2F2YWdlcyB3aG8gYXJlIGRldGFpbmluZyBoaW0gYWdhaW5zdCBoaXMgd2lsbCBJIGFtIG5vIHByb3BoZXQsIGFuZCBrbm93IHZlcnkgbGl0dGxlIGFib3V0IG9tZW5zLCBidXQgSSBzcGVhayBhcyBpdCBpcyBib3JuZSBpbiB1cG9uIG1lIGZyb20gaGVhdmVuLCBhbmQgYXNzdXJlIHlvdSB0aGF0IGhlIHdpbGwgbm90IGJlIGF3YXkgbXVjaCBsb25nZXI7IGZvciBoZSBpcyBhIG1hbiBvZiBzdWNoIHJlc291cmNlIHRoYXQgZXZlbiB0aG91Z2ggaGUgd2VyZSBpbiBjaGFpbnMgb2YgaXJvbiBoZSB3b3VsZCBmaW5kIHNvbWUgbWVhbnMgb2YgZ2V0dGluZyBob21lIGFnYWluLiBCdXQgdGVsbCBtZSwgYW5kIHRlbGwgbWUgdHJ1ZSwgY2FuIFVseXNzZXMgcmVhbGx5IGhhdmUgc3VjaCBhIGZpbmUgbG9va2luZyBmZWxsb3cgZm9yIGEgc29uPyBZb3UgYXJlIGluZGVlZCB3b25kZXJmdWxseSBsaWtlIGhpbSBhYm91dCB0aGUgaGVhZCBhbmQgZXllcywgZm9yIHdlIHdlcmUgY2xvc2UgZnJpZW5kcyBiZWZvcmUgaGUgc2V0IHNhaWwgZm9yIFRyb3kgd2hlcmUgdGhlIGZsb3dlciBvZiBhbGwgdGhlIEFyZ2l2ZXMgd2VudCBhbHNvLiBTaW5jZSB0aGF0IHRpbWUgd2UgaGF2ZSBuZXZlciBlaXRoZXIgb2YgdXMgc2VlbiB0aGUgb3RoZXIuIg0KDQoiTXkgbW90aGVyLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgdGVsbHMgbWUgSSBhbSBzb24gdG8gVWx5c3NlcywgYnV0IGl0IGlzIGEgd2lzZSBjaGlsZCB0aGF0IGtub3dzIGhpcyBvd24gZmF0aGVyLiBXb3VsZCB0aGF0IEkgd2VyZSBzb24gdG8gb25lIHdobyBoYWQgZ3Jvd24gb2xkIHVwb24gaGlzIG93biBlc3RhdGVzLCBmb3IsIHNpbmNlIHlvdSBhc2sgbWUsIHRoZXJlIGlzIG5vIG1vcmUgaWxsLXN0YXJyZWQgbWFuIHVuZGVyIGhlYXZlbiB0aGFuIGhlIHdobyB0aGV5IHRlbGwgbWUgaXMgbXkgZmF0aGVyLiINCg0KQW5kIE1pbmVydmEgc2FpZCwgIlRoZXJlIGlzIG5vIGZlYXIgb2YgeW91ciByYWNlIGR5aW5nIG91dCB5ZXQsIHdoaWxlIFBlbmVsb3BlIGhhcyBzdWNoIGEgZmluZSBzb24gYXMgeW91IGFyZS4gQnV0IHRlbGwgbWUsIGFuZCB0ZWxsIG1lIHRydWUsIHdoYXQgaXMgdGhlIG1lYW5pbmcgb2YgYWxsIHRoaXMgZmVhc3RpbmcsIGFuZCB3aG8gYXJlIHRoZXNlIHBlb3BsZT8gV2hhdCBpcyBpdCBhbGwgYWJvdXQ/IEhhdmUgeW91IHNvbWUgYmFucXVldCwgb3IgaXMgdGhlcmUgYSB3ZWRkaW5nIGluIHRoZSBmYW1pbHktIGZvciBubyBvbmUgc2VlbXMgdG8gYmUgYnJpbmdpbmcgYW55IHByb3Zpc2lvbnMgb2YgaGlzIG93bj8gQW5kIHRoZSBndWVzdHMtIGhvdyBhdHJvY2lvdXNseSB0aGV5IGFyZSBiZWhhdmluZzsgd2hhdCByaW90IHRoZXkgbWFrZSBvdmVyIHRoZSB3aG9sZSBob3VzZTsgaXQgaXMgZW5vdWdoIHRvIGRpc2d1c3QgYW55IHJlc3BlY3RhYmxlIHBlcnNvbiB3aG8gY29tZXMgbmVhciB0aGVtLiINCg0KIlNpciwiIHNhaWQgVGVsZW1hY2h1cywgImFzIHJlZ2FyZHMgeW91ciBxdWVzdGlvbiwgc28gbG9uZyBhcyBteSBmYXRoZXIgd2FzIGhlcmUgaXQgd2FzIHdlbGwgd2l0aCB1cyBhbmQgd2l0aCB0aGUgaG91c2UsIGJ1dCB0aGUgZ29kcyBpbiB0aGVpciBkaXNwbGVhc3VyZSBoYXZlIHdpbGxlZCBpdCBvdGhlcndpc2UsIGFuZCBoYXZlIGhpZGRlbiBoaW0gYXdheSBtb3JlIGNsb3NlbHkgdGhhbiBtb3J0YWwgbWFuIHdhcyBldmVyIHlldCBoaWRkZW4uIEkgY291bGQgaGF2ZSBib3JuZSBpdCBiZXR0ZXIgZXZlbiB0aG91Z2ggaGUgd2VyZSBkZWFkLCBpZiBoZSBoYWQgZmFsbGVuIHdpdGggaGlzIG1lbiBiZWZvcmUgVHJveSwgb3IgaGFkIGRpZWQgd2l0aCBmcmllbmRzIGFyb3VuZCBoaW0gd2hlbiB0aGUgZGF5cyBvZiBoaXMgZmlnaHRpbmcgd2VyZSBkb25lOyBmb3IgdGhlbiB0aGUgQWNoYWVhbnMgd291bGQgaGF2ZSBidWlsdCBhIG1vdW5kIG92ZXIgaGlzIGFzaGVzLCBhbmQgSSBzaG91bGQgbXlzZWxmIGhhdmUgYmVlbiBoZWlyIHRvIGhpcyByZW5vd247IGJ1dCBub3cgdGhlIHN0b3JtLXdpbmRzIGhhdmUgc3Bpcml0ZWQgaGltIGF3YXkgd2Uga25vdyBub3Qgd2l0aGVyOyBoZSBpcyBnb25lIHdpdGhvdXQgbGVhdmluZyBzbyBtdWNoIGFzIGEgdHJhY2UgYmVoaW5kIGhpbSwgYW5kIEkgaW5oZXJpdCBub3RoaW5nIGJ1dCBkaXNtYXkuIE5vciBkb2VzIHRoZSBtYXR0ZXIgZW5kIHNpbXBseSB3aXRoIGdyaWVmIGZvciB0aGUgbG9zcyBvZiBteSBmYXRoZXI7IGhlYXZlbiBoYXMgbGFpZCBzb3Jyb3dzIHVwb24gbWUgb2YgeWV0IGFub3RoZXIga2luZDsgZm9yIHRoZSBjaGllZnMgZnJvbSBhbGwgb3VyIGlzbGFuZHMsIER1bGljaGl1bSwgU2FtZSwgYW5kIHRoZSB3b29kbGFuZCBpc2xhbmQgb2YgWmFjeW50aHVzLCBhcyBhbHNvIGFsbCB0aGUgcHJpbmNpcGFsIG1lbiBvZiBJdGhhY2EgaXRzZWxmLCBhcmUgZWF0aW5nIHVwIG15IGhvdXNlIHVuZGVyIHRoZSBwcmV0ZXh0IG9mIHBheWluZyB0aGVpciBjb3VydCB0byBteSBtb3RoZXIsIHdobyB3aWxsIG5laXRoZXIgcG9pbnQgYmxhbmsgc2F5IHRoYXQgc2hlIHdpbGwgbm90IG1hcnJ5LCBub3IgeWV0IGJyaW5nIG1hdHRlcnMgdG8gYW4gZW5kOyBzbyB0aGV5IGFyZSBtYWtpbmcgaGF2b2Mgb2YgbXkgZXN0YXRlLCBhbmQgYmVmb3JlIGxvbmcgd2lsbCBkbyBzbyBhbHNvIHdpdGggbXlzZWxmLiINCg0KIklzIHRoYXQgc28/IiBleGNsYWltZWQgTWluZXJ2YSwgInRoZW4geW91IGRvIGluZGVlZCB3YW50IFVseXNzZXMgaG9tZSBhZ2Fpbi4gR2l2ZSBoaW0gaGlzIGhlbG1ldCwgc2hpZWxkLCBhbmQgYSBjb3VwbGUgbGFuY2VzLCBhbmQgaWYgaGUgaXMgdGhlIG1hbiBoZSB3YXMgd2hlbiBJIGZpcnN0IGtuZXcgaGltIGluIG91ciBob3VzZSwgZHJpbmtpbmcgYW5kIG1ha2luZyBtZXJyeSwgaGUgd291bGQgc29vbiBsYXkgaGlzIGhhbmRzIGFib3V0IHRoZXNlIHJhc2NhbGx5IHN1aXRvcnMsIHdlcmUgaGUgdG8gc3RhbmQgb25jZSBtb3JlIHVwb24gaGlzIG93biB0aHJlc2hvbGQuIEhlIHdhcyB0aGVuIGNvbWluZyBmcm9tIEVwaHlyYSwgd2hlcmUgaGUgaGFkIGJlZW4gdG8gYmVnIHBvaXNvbiBmb3IgaGlzIGFycm93cyBmcm9tIElsdXMsIHNvbiBvZiBNZXJtZXJ1cy4gSWx1cyBmZWFyZWQgdGhlIGV2ZXItbGl2aW5nIGdvZHMgYW5kIHdvdWxkIG5vdCBnaXZlIGhpbSBhbnksIGJ1dCBteSBmYXRoZXIgbGV0IGhpbSBoYXZlIHNvbWUsIGZvciBoZSB3YXMgdmVyeSBmb25kIG9mIGhpbS4gSWYgVWx5c3NlcyBpcyB0aGUgbWFuIGhlIHRoZW4gd2FzIHRoZXNlIHN1aXRvcnMgd2lsbCBoYXZlIGEgc2hvcnQgc2hyaWZ0IGFuZCBhIHNvcnJ5IHdlZGRpbmcuDQoNCiJCdXQgdGhlcmUhIEl0IHJlc3RzIHdpdGggaGVhdmVuIHRvIGRldGVybWluZSB3aGV0aGVyIGhlIGlzIHRvIHJldHVybiwgYW5kIHRha2UgaGlzIHJldmVuZ2UgaW4gaGlzIG93biBob3VzZSBvciBubzsgSSB3b3VsZCwgaG93ZXZlciwgdXJnZSB5b3UgdG8gc2V0IGFib3V0IHRyeWluZyB0byBnZXQgcmlkIG9mIHRoZXNlIHN1aXRvcnMgYXQgb25jZS4gVGFrZSBteSBhZHZpY2UsIGNhbGwgdGhlIEFjaGFlYW4gaGVyb2VzIGluIGFzc2VtYmx5IHRvLW1vcnJvdyAtbGF5IHlvdXIgY2FzZSBiZWZvcmUgdGhlbSwgYW5kIGNhbGwgaGVhdmVuIHRvIGJlYXIgeW91IHdpdG5lc3MuIEJpZCB0aGUgc3VpdG9ycyB0YWtlIHRoZW1zZWx2ZXMgb2ZmLCBlYWNoIHRvIGhpcyBvd24gcGxhY2UsIGFuZCBpZiB5b3VyIG1vdGhlcidzIG1pbmQgaXMgc2V0IG9uIG1hcnJ5aW5nIGFnYWluLCBsZXQgaGVyIGdvIGJhY2sgdG8gaGVyIGZhdGhlciwgd2hvIHdpbGwgZmluZCBoZXIgYSBodXNiYW5kIGFuZCBwcm92aWRlIGhlciB3aXRoIGFsbCB0aGUgbWFycmlhZ2UgZ2lmdHMgdGhhdCBzbyBkZWFyIGEgZGF1Z2h0ZXIgbWF5IGV4cGVjdC4gQXMgZm9yIHlvdXJzZWxmLCBsZXQgbWUgcHJldmFpbCB1cG9uIHlvdSB0byB0YWtlIHRoZSBiZXN0IHNoaXAgeW91IGNhbiBnZXQsIHdpdGggYSBjcmV3IG9mIHR3ZW50eSBtZW4sIGFuZCBnbyBpbiBxdWVzdCBvZiB5b3VyIGZhdGhlciB3aG8gaGFzIHNvIGxvbmcgYmVlbiBtaXNzaW5nLiBTb21lIG9uZSBtYXkgdGVsbCB5b3Ugc29tZXRoaW5nLCBvciAoYW5kIHBlb3BsZSBvZnRlbiBoZWFyIHRoaW5ncyBpbiB0aGlzIHdheSkgc29tZSBoZWF2ZW4tc2VudCBtZXNzYWdlIG1heSBkaXJlY3QgeW91LiBGaXJzdCBnbyB0byBQeWxvcyBhbmQgYXNrIE5lc3RvcjsgdGhlbmNlIGdvIG9uIHRvIFNwYXJ0YSBhbmQgdmlzaXQgTWVuZWxhdXMsIGZvciBoZSBnb3QgaG9tZSBsYXN0IG9mIGFsbCB0aGUgQWNoYWVhbnM7IGlmIHlvdSBoZWFyIHRoYXQgeW91ciBmYXRoZXIgaXMgYWxpdmUgYW5kIG9uIGhpcyB3YXkgaG9tZSwgeW91IGNhbiBwdXQgdXAgd2l0aCB0aGUgd2FzdGUgdGhlc2Ugc3VpdG9ycyB3aWxsIG1ha2UgZm9yIHlldCBhbm90aGVyIHR3ZWx2ZSBtb250aHMuIElmIG9uIHRoZSBvdGhlciBoYW5kIHlvdSBoZWFyIG9mIGhpcyBkZWF0aCwgY29tZSBob21lIGF0IG9uY2UsIGNlbGVicmF0ZSBoaXMgZnVuZXJhbCByaXRlcyB3aXRoIGFsbCBkdWUgcG9tcCwgYnVpbGQgYSBiYXJyb3cgdG8gaGlzIG1lbW9yeSwgYW5kIG1ha2UgeW91ciBtb3RoZXIgbWFycnkgYWdhaW4uIFRoZW4sIGhhdmluZyBkb25lIGFsbCB0aGlzLCB0aGluayBpdCB3ZWxsIG92ZXIgaW4geW91ciBtaW5kIGhvdywgYnkgZmFpciBtZWFucyBvciBmb3VsLCB5b3UgbWF5IGtpbGwgdGhlc2Ugc3VpdG9ycyBpbiB5b3VyIG93biBob3VzZS4gWW91IGFyZSB0b28gb2xkIHRvIHBsZWFkIGluZmFuY3kgYW55IGxvbmdlcjsgaGF2ZSB5b3Ugbm90IGhlYXJkIGhvdyBwZW9wbGUgYXJlIHNpbmdpbmcgT3Jlc3RlcycgcHJhaXNlcyBmb3IgaGF2aW5nIGtpbGxlZCBoaXMgZmF0aGVyJ3MgbXVyZGVyZXIgQWVnaXN0aHVzPyBZb3UgYXJlIGEgZmluZSwgc21hcnQgbG9va2luZyBmZWxsb3c7IHNob3cgeW91ciBtZXR0bGUsIHRoZW4sIGFuZCBtYWtlIHlvdXJzZWxmIGEgbmFtZSBpbiBzdG9yeS4gTm93LCBob3dldmVyLCBJIG11c3QgZ28gYmFjayB0byBteSBzaGlwIGFuZCB0byBteSBjcmV3LCB3aG8gd2lsbCBiZSBpbXBhdGllbnQgaWYgSSBrZWVwIHRoZW0gd2FpdGluZyBsb25nZXI7IHRoaW5rIHRoZSBtYXR0ZXIgb3ZlciBmb3IgeW91cnNlbGYsIGFuZCByZW1lbWJlciB3aGF0IEkgaGF2ZSBzYWlkIHRvIHlvdS4iDQoNCiJTaXIsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAiaXQgaGFzIGJlZW4gdmVyeSBraW5kIG9mIHlvdSB0byB0YWxrIHRvIG1lIGluIHRoaXMgd2F5LCBhcyB0aG91Z2ggSSB3ZXJlIHlvdXIgb3duIHNvbiwgYW5kIEkgd2lsbCBkbyBhbGwgeW91IHRlbGwgbWU7IEkga25vdyB5b3Ugd2FudCB0byBiZSBnZXR0aW5nIG9uIHdpdGggeW91ciB2b3lhZ2UsIGJ1dCBzdGF5IGEgbGl0dGxlIGxvbmdlciB0aWxsIHlvdSBoYXZlIHRha2VuIGEgYmF0aCBhbmQgcmVmcmVzaGVkIHlvdXJzZWxmLiBJIHdpbGwgdGhlbiBnaXZlIHlvdSBhIHByZXNlbnQsIGFuZCB5b3Ugc2hhbGwgZ28gb24geW91ciB3YXkgcmVqb2ljaW5nOyBJIHdpbGwgZ2l2ZSB5b3Ugb25lIG9mIGdyZWF0IGJlYXV0eSBhbmQgdmFsdWUtIGEga2VlcHNha2Ugc3VjaCBhcyBvbmx5IGRlYXIgZnJpZW5kcyBnaXZlIHRvIG9uZSBhbm90aGVyLiINCg0KTWluZXJ2YSBhbnN3ZXJlZCwgIkRvIG5vdCB0cnkgdG8ga2VlcCBtZSwgZm9yIEkgd291bGQgYmUgb24gbXkgd2F5IGF0IG9uY2UuIEFzIGZvciBhbnkgcHJlc2VudCB5b3UgbWF5IGJlIGRpc3Bvc2VkIHRvIG1ha2UgbWUsIGtlZXAgaXQgdGlsbCBJIGNvbWUgYWdhaW4sIGFuZCBJIHdpbGwgdGFrZSBpdCBob21lIHdpdGggbWUuIFlvdSBzaGFsbCBnaXZlIG1lIGEgdmVyeSBnb29kIG9uZSwgYW5kIEkgd2lsbCBnaXZlIHlvdSBvbmUgb2Ygbm8gbGVzcyB2YWx1ZSBpbiByZXR1cm4uIg0KDQpXaXRoIHRoZXNlIHdvcmRzIHNoZSBmbGV3IGF3YXkgbGlrZSBhIGJpcmQgaW50byB0aGUgYWlyLCBidXQgc2hlIGhhZCBnaXZlbiBUZWxlbWFjaHVzIGNvdXJhZ2UsIGFuZCBoYWQgbWFkZSBoaW0gdGhpbmsgbW9yZSB0aGFuIGV2ZXIgYWJvdXQgaGlzIGZhdGhlci4gSGUgZmVsdCB0aGUgY2hhbmdlLCB3b25kZXJlZCBhdCBpdCwgYW5kIGtuZXcgdGhhdCB0aGUgc3RyYW5nZXIgaGFkIGJlZW4gYSBnb2QsIHNvIGhlIHdlbnQgc3RyYWlnaHQgdG8gd2hlcmUgdGhlIHN1aXRvcnMgd2VyZSBzaXR0aW5nLg0KDQpQaGVtaXVzIHdhcyBzdGlsbCBzaW5naW5nLCBhbmQgaGlzIGhlYXJlcnMgc2F0IHJhcHQgaW4gc2lsZW5jZSBhcyBoZSB0b2xkIHRoZSBzYWQgdGFsZSBvZiB0aGUgcmV0dXJuIGZyb20gVHJveSwgYW5kIHRoZSBpbGxzIE1pbmVydmEgaGFkIGxhaWQgdXBvbiB0aGUgQWNoYWVhbnMuIFBlbmVsb3BlLCBkYXVnaHRlciBvZiBJY2FyaXVzLCBoZWFyZCBoaXMgc29uZyBmcm9tIGhlciByb29tIHVwc3RhaXJzLCBhbmQgY2FtZSBkb3duIGJ5IHRoZSBncmVhdCBzdGFpcmNhc2UsIG5vdCBhbG9uZSwgYnV0IGF0dGVuZGVkIGJ5IHR3byBvZiBoZXIgaGFuZG1haWRzLiBXaGVuIHNoZSByZWFjaGVkIHRoZSBzdWl0b3JzIHNoZSBzdG9vZCBieSBvbmUgb2YgdGhlIGJlYXJpbmcgcG9zdHMgdGhhdCBzdXBwb3J0ZWQgdGhlIHJvb2Ygb2YgdGhlIGNsb2lzdGVycyB3aXRoIGEgc3RhaWQgbWFpZGVuIG9uIGVpdGhlciBzaWRlIG9mIGhlci4gU2hlIGhlbGQgYSB2ZWlsLCBtb3Jlb3ZlciwgYmVmb3JlIGhlciBmYWNlLCBhbmQgd2FzIHdlZXBpbmcgYml0dGVybHkuDQoNCiJQaGVtaXVzLCIgc2hlIGNyaWVkLCAieW91IGtubw=="
          },
          "response": {
            "data": "SGVsbG8sIHdvcmxkIQ=="
          }
        },
        {
          "timestamp": "2015-01-18T14:59:36.109Z",
          "request": {
            "requestFrom": "127.0.0.1:53172",
            "data": "dyBtYW55IGFub3RoZXIgZmVhdCBvZiBnb2RzIGFuZCBoZXJvZXMsIHN1Y2ggYXMgcG9ldHMgbG92ZSB0byBjZWxlYnJhdGUuIFNpbmcgdGhlIHN1aXRvcnMgc29tZSBvbmUgb2YgdGhlc2UsIGFuZCBsZXQgdGhlbSBkcmluayB0aGVpciB3aW5lIGluIHNpbGVuY2UsIGJ1dCBjZWFzZSB0aGlzIHNhZCB0YWxlLCBmb3IgaXQgYnJlYWtzIG15IHNvcnJvd2Z1bCBoZWFydCwgYW5kIHJlbWluZHMgbWUgb2YgbXkgbG9zdCBodXNiYW5kIHdob20gSSBtb3VybiBldmVyIHdpdGhvdXQgY2Vhc2luZywgYW5kIHdob3NlIG5hbWUgd2FzIGdyZWF0IG92ZXIgYWxsIEhlbGxhcyBhbmQgbWlkZGxlIEFyZ29zLiINCg0KIk1vdGhlciwiIGFuc3dlcmVkIFRlbGVtYWNodXMsICJsZXQgdGhlIGJhcmQgc2luZyB3aGF0IGhlIGhhcyBhIG1pbmQgdG87IGJhcmRzIGRvIG5vdCBtYWtlIHRoZSBpbGxzIHRoZXkgc2luZyBvZjsgaXQgaXMgSm92ZSwgbm90IHRoZXksIHdobyBtYWtlcyB0aGVtLCBhbmQgd2hvIHNlbmRzIHdlYWwgb3Igd29lIHVwb24gbWFua2luZCBhY2NvcmRpbmcgdG8gaGlzIG93biBnb29kIHBsZWFzdXJlLiBUaGlzIGZlbGxvdyBtZWFucyBubyBoYXJtIGJ5IHNpbmdpbmcgdGhlIGlsbC1mYXRlZCByZXR1cm4gb2YgdGhlIERhbmFhbnMsIGZvciBwZW9wbGUgYWx3YXlzIGFwcGxhdWQgdGhlIGxhdGVzdCBzb25ncyBtb3N0IHdhcm1seS4gTWFrZSB1cCB5b3VyIG1pbmQgdG8gaXQgYW5kIGJlYXIgaXQ7IFVseXNzZXMgaXMgbm90IHRoZSBvbmx5IG1hbiB3aG8gbmV2ZXIgY2FtZSBiYWNrIGZyb20gVHJveSwgYnV0IG1hbnkgYW5vdGhlciB3ZW50IGRvd24gYXMgd2VsbCBhcyBoZS4gR28sIHRoZW4sIHdpdGhpbiB0aGUgaG91c2UgYW5kIGJ1c3kgeW91cnNlbGYgd2l0aCB5b3VyIGRhaWx5IGR1dGllcywgeW91ciBsb29tLCB5b3VyIGRpc3RhZmYsIGFuZCB0aGUgb3JkZXJpbmcgb2YgeW91ciBzZXJ2YW50czsgZm9yIHNwZWVjaCBpcyBtYW4ncyBtYXR0ZXIsIGFuZCBtaW5lIGFib3ZlIGFsbCBvdGhlcnMtIGZvciBpdCBpcyBJIHdobyBhbSBtYXN0ZXIgaGVyZS4iDQoNClNoZSB3ZW50IHdvbmRlcmluZyBiYWNrIGludG8gdGhlIGhvdXNlLCBhbmQgbGFpZCBoZXIgc29uJ3Mgc2F5aW5nIGluIGhlciBoZWFydC4gVGhlbiwgZ29pbmcgdXBzdGFpcnMgd2l0aCBoZXIgaGFuZG1haWRzIGludG8gaGVyIHJvb20sIHNoZSBtb3VybmVkIGhlciBkZWFyIGh1c2JhbmQgdGlsbCBNaW5lcnZhIHNoZWQgc3dlZXQgc2xlZXAgb3ZlciBoZXIgZXllcy4gQnV0IHRoZSBzdWl0b3JzIHdlcmUgY2xhbW9yb3VzIHRocm91Z2hvdXQgdGhlIGNvdmVyZWQgY2xvaXN0ZXJzLCBhbmQgcHJheWVkIGVhY2ggb25lIHRoYXQgaGUgbWlnaHQgYmUgaGVyIGJlZCBmZWxsb3cuDQoNClRoZW4gVGVsZW1hY2h1cyBzcG9rZSwgIlNoYW1lbGVzcywiIGhlIGNyaWVkLCAiYW5kIGluc29sZW50IHN1aXRvcnMsIGxldCB1cyBmZWFzdCBhdCBvdXIgcGxlYXN1cmUgbm93LCBhbmQgbGV0IHRoZXJlIGJlIG5vIGJyYXdsaW5nLCBmb3IgaXQgaXMgYSByYXJlIHRoaW5nIHRvIGhlYXIgYSBtYW4gd2l0aCBzdWNoIGEgZGl2aW5lIHZvaWNlIGFzIFBoZW1pdXMgaGFzOyBidXQgaW4gdGhlIG1vcm5pbmcgbWVldCBtZSBpbiBmdWxsIGFzc2VtYmx5IHRoYXQgSSBtYXkgZ2l2ZSB5b3UgZm9ybWFsIG5vdGljZSB0byBkZXBhcnQsIGFuZCBmZWFzdCBhdCBvbmUgYW5vdGhlcidzIGhvdXNlcywgdHVybiBhbmQgdHVybiBhYm91dCwgYXQgeW91ciBvd24gY29zdC4gSWYgb24gdGhlIG90aGVyIGhhbmQgeW91IGNob29zZSB0byBwZXJzaXN0IGluIHNwdW5naW5nIHVwb24gb25lIG1hbiwgaGVhdmVuIGhlbHAgbWUsIGJ1dCBKb3ZlIHNoYWxsIHJlY2tvbiB3aXRoIHlvdSBpbiBmdWxsLCBhbmQgd2hlbiB5b3UgZmFsbCBpbiBteSBmYXRoZXIncyBob3VzZSB0aGVyZSBzaGFsbCBiZSBubyBtYW4gdG8gYXZlbmdlIHlvdS4iDQoNClRoZSBzdWl0b3JzIGJpdCB0aGVpciBsaXBzIGFzIHRoZXkgaGVhcmQgaGltLCBhbmQgbWFydmVsbGVkIGF0IHRoZSBib2xkbmVzcyBvZiBoaXMgc3BlZWNoLiBUaGVuLCBBbnRpbm91cywgc29uIG9mIEV1cGVpdGhlcywgc2FpZCwgIlRoZSBnb2RzIHNlZW0gdG8gaGF2ZSBnaXZlbiB5b3UgbGVzc29ucyBpbiBibHVzdGVyIGFuZCB0YWxsIHRhbGtpbmc7IG1heSBKb3ZlIG5ldmVyIGdyYW50IHlvdSB0byBiZSBjaGllZiBpbiBJdGhhY2EgYXMgeW91ciBmYXRoZXIgd2FzIGJlZm9yZSB5b3UuIg0KDQpUZWxlbWFjaHVzIGFuc3dlcmVkLCAiQW50aW5vdXMsIGRvIG5vdCBjaGlkZSB3aXRoIG1lLCBidXQsIGdvZCB3aWxsaW5nLCBJIHdpbGwgYmUgY2hpZWYgdG9vIGlmIEkgY2FuLiBJcyB0aGlzIHRoZSB3b3JzdCBmYXRlIHlvdSBjYW4gdGhpbmsgb2YgZm9yIG1lPyBJdCBpcyBubyBiYWQgdGhpbmcgdG8gYmUgYSBjaGllZiwgZm9yIGl0IGJyaW5ncyBib3RoIHJpY2hlcyBhbmQgaG9ub3VyLiBTdGlsbCwgbm93IHRoYXQgVWx5c3NlcyBpcyBkZWFkIHRoZXJlIGFyZSBtYW55IGdyZWF0IG1lbiBpbiBJdGhhY2EgYm90aCBvbGQgYW5kIHlvdW5nLCBhbmQgc29tZSBvdGhlciBtYXkgdGFrZSB0aGUgbGVhZCBhbW9uZyB0aGVtOyBuZXZlcnRoZWxlc3MgSSB3aWxsIGJlIGNoaWVmIGluIG15IG93biBob3VzZSwgYW5kIHdpbGwgcnVsZSB0aG9zZSB3aG9tIFVseXNzZXMgaGFzIHdvbiBmb3IgbWUuIg0KDQpUaGVuIEV1cnltYWNodXMsIHNvbiBvZiBQb2x5YnVzLCBhbnN3ZXJlZCwgIkl0IHJlc3RzIHdpdGggaGVhdmVuIHRvIGRlY2lkZSB3aG8gc2hhbGwgYmUgY2hpZWYgYW1vbmcgdXMsIGJ1dCB5b3Ugc2hhbGwgYmUgbWFzdGVyIGluIHlvdXIgb3duIGhvdXNlIGFuZCBvdmVyIHlvdXIgb3duIHBvc3Nlc3Npb25zOyBubyBvbmUgd2hpbGUgdGhlcmUgaXMgYSBtYW4gaW4gSXRoYWNhIHNoYWxsIGRvIHlvdSB2aW9sZW5jZSBub3Igcm9iIHlvdS4gQW5kIG5vdywgbXkgZ29vZCBmZWxsb3csIEkgd2FudCB0byBrbm93IGFib3V0IHRoaXMgc3RyYW5nZXIuIFdoYXQgY291bnRyeSBkb2VzIGhlIGNvbWUgZnJvbT8gT2Ygd2hhdCBmYW1pbHkgaXMgaGUsIGFuZCB3aGVyZSBpcyBoaXMgZXN0YXRlPyBIYXMgaGUgYnJvdWdodCB5b3UgbmV3cyBhYm91dCB0aGUgcmV0dXJuIG9mIHlvdXIgZmF0aGVyLCBvciB3YXMgaGUgb24gYnVzaW5lc3Mgb2YgaGlzIG93bj8gSGUgc2VlbWVkIGEgd2VsbC10by1kbyBtYW4sIGJ1dCBoZSBodXJyaWVkIG9mZiBzbyBzdWRkZW5seSB0aGF0IGhlIHdhcyBnb25lIGluIGEgbW9tZW50IGJlZm9yZSB3ZSBjb3VsZCBnZXQgdG8ga25vdyBoaW0uIg0KDQoiTXkgZmF0aGVyIGlzIGRlYWQgYW5kIGdvbmUsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAiYW5kIGV2ZW4gaWYgc29tZSBydW1vdXIgcmVhY2hlcyBtZSBJIHB1dCBubyBtb3JlIGZhaXRoIGluIGl0IG5vdy4gTXkgbW90aGVyIGRvZXMgaW5kZWVkIHNvbWV0aW1lcyBzZW5kIGZvciBhIHNvb3Roc2F5ZXIgYW5kIHF1ZXN0aW9uIGhpbSwgYnV0IEkgZ2l2ZSBoaXMgcHJvcGhlY3lpbmdzIG5vIGhlZWQuIEFzIGZvciB0aGUgc3RyYW5nZXIsIGhlIHdhcyBNZW50ZXMsIHNvbiBvZiBBbmNoaWFsdXMsIGNoaWVmIG9mIHRoZSBUYXBoaWFucywgYW4gb2xkIGZyaWVuZCBvZiBteSBmYXRoZXIncy4iIEJ1dCBpbiBoaXMgaGVhcnQgaGUga25ldyB0aGF0IGl0IGhhZCBiZWVuIHRoZSBnb2RkZXNzLg0KDQpUaGUgc3VpdG9ycyB0aGVuIHJldHVybmVkIHRvIHRoZWlyIHNpbmdpbmcgYW5kIGRhbmNpbmcgdW50aWwgdGhlIGV2ZW5pbmc7IGJ1dCB3aGVuIG5pZ2h0IGZlbGwgdXBvbiB0aGVpciBwbGVhc3VyaW5nIHRoZXkgd2VudCBob21lIHRvIGJlZCBlYWNoIGluIGhpcyBvd24gYWJvZGUuIFRlbGVtYWNodXMncyByb29tIHdhcyBoaWdoIHVwIGluIGEgdG93ZXIgdGhhdCBsb29rZWQgb24gdG8gdGhlIG91dGVyIGNvdXJ0OyBoaXRoZXIsIHRoZW4sIGhlIGhpZWQsIGJyb29kaW5nIGFuZCBmdWxsIG9mIHRob3VnaHQuIEEgZ29vZCBvbGQgd29tYW4sIEV1cnljbGVhLCBkYXVnaHRlciBvZiBPcHMsIHRoZSBzb24gb2YgUGlzZW5vciwgd2VudCBiZWZvcmUgaGltIHdpdGggYSBjb3VwbGUgb2YgYmxhemluZyB0b3JjaGVzLiBMYWVydGVzIGhhZCBib3VnaHQgaGVyIHdpdGggaGlzIG93biBtb25leSB3aGVuIHNoZSB3YXMgcXVpdGUgeW91bmc7IGhlIGdhdmUgdGhlIHdvcnRoIG9mIHR3ZW50eSBveGVuIGZvciBoZXIsIGFuZCBzaGV3ZWQgYXMgbXVjaCByZXNwZWN0IHRvIGhlciBpbiBoaXMgaG91c2Vob2xkIGFzIGhlIGRpZCB0byBoaXMgb3duIHdlZGRlZCB3aWZlLCBidXQgaGUgZGlkIG5vdCB0YWtlIGhlciB0byBoaXMgYmVkIGZvciBoZSBmZWFyZWQgaGlzIHdpZmUncyByZXNlbnRtZW50LiBTaGUgaXQgd2FzIHdobyBub3cgbGlnaHRlZCBUZWxlbWFjaHVzIHRvIGhpcyByb29tLCBhbmQgc2hlIGxvdmVkIGhpbSBiZXR0ZXIgdGhhbiBhbnkgb2YgdGhlIG90aGVyIHdvbWVuIGluIHRoZSBob3VzZSBkaWQsIGZvciBzaGUgaGFkIG51cnNlZCBoaW0gd2hlbiBoZSB3YXMgYSBiYWJ5LiBIZSBvcGVuZWQgdGhlIGRvb3Igb2YgaGlzIGJlZCByb29tIGFuZCBzYXQgZG93biB1cG9uIHRoZSBiZWQ7IGFzIGhlIHRvb2sgb2ZmIGhpcyBzaGlydCBoZSBnYXZlIGl0IHRvIHRoZSBnb29kIG9sZCB3b21hbiwgd2hvIGZvbGRlZCBpdCB0aWRpbHkgdXAsIGFuZCBodW5nIGl0IGZvciBoaW0gb3ZlciBhIHBlZyBieSBoaXMgYmVkIHNpZGUsIGFmdGVyIHdoaWNoIHNoZSB3ZW50IG91dCwgcHVsbGVkIHRoZSBkb29yIHRvIGJ5IGEgc2lsdmVyIGNhdGNoLCBhbmQgZHJldyB0aGUgYm9sdCBob21lIGJ5IG1lYW5zIG9mIHRoZSBzdHJhcC4gQnV0IFRlbGVtYWNodXMgYXMgaGUgbGF5IGNvdmVyZWQgd2l0aCBhIHdvb2xsZW4gZmxlZWNlIGtlcHQgdGhpbmtpbmcgYWxsIG5pZ2h0IHRocm91Z2ggb2YgaGlzIGludGVuZGVkIHZveWFnZSBvZiB0aGUgY291bnNlbCB0aGF0IE1pbmVydmEgaGFkIGdpdmVuIGhpbS4NCg0KQm9vayBJSQ0KDQpOb3cgd2hlbiB0aGUgY2hpbGQgb2YgbW9ybmluZywgcm9zeS1maW5nZXJlZCBEYXduLCBhcHBlYXJlZCwgVGVsZW1hY2h1cyByb3NlIGFuZCBkcmVzc2VkIGhpbXNlbGYuIEhlIGJvdW5kIGhpcyBzYW5kYWxzIG9uIHRvIGhpcyBjb21lbHkgZmVldCwgZ2lyZGVkIGhpcyBzd29yZCBhYm91dCBoaXMgc2hvdWxkZXIsIGFuZCBsZWZ0IGhpcyByb29tIGxvb2tpbmcgbGlrZSBhbiBpbW1vcnRhbCBnb2QuIEhlIGF0IG9uY2Ugc2VudCB0aGUgY3JpZXJzIHJvdW5kIHRvIGNhbGwgdGhlIHBlb3BsZSBpbiBhc3NlbWJseSwgc28gdGhleSBjYWxsZWQgdGhlbSBhbmQgdGhlIHBlb3BsZSBnYXRoZXJlZCB0aGVyZW9uOyB0aGVuLCB3aGVuIHRoZXkgd2VyZSBnb3QgdG9nZXRoZXIsIGhlIHdlbnQgdG8gdGhlIHBsYWNlIG9mIGFzc2VtYmx5IHNwZWFyIGluIGhhbmQtIG5vdCBhbG9uZSwgZm9yIGhpcyB0d28gaG91bmRzIHdlbnQgd2l0aCBoaW0uIE1pbmVydmEgZW5kb3dlZCBoaW0gd2l0aCBhIHByZXNlbmNlIG9mIHN1Y2ggZGl2aW5lIGNvbWVsaW5lc3MgdGhhdCBhbGwgbWFydmVsbGVkIGF0IGhpbSBhcyBoZSB3ZW50IGJ5LCBhbmQgd2hlbiBoZSB0b29rIGhpcyBwbGFjZScgaW4gaGlzIGZhdGhlcidzIHNlYXQgZXZlbiB0aGUgb2xkZXN0IGNvdW5jaWxsb3JzIG1hZGUgd2F5IGZvciBoaW0uDQoNCkFlZ3lwdGl1cywgYSBtYW4gYmVudCBkb3VibGUgd2l0aCBhZ2UsIGFuZCBvZiBpbmZpbml0ZSBleHBlcmllbmNlLCB0aGUgZmlyc3QgdG8gc3BlYWsgSGlzIHNvbiBBbnRpcGh1cyBoYWQgZ29uZSB3aXRoIFVseXNzZXMgdG8gSWxpdXMsIGxhbmQgb2Ygbm9ibGUgc3RlZWRzLCBidXQgdGhlIHNhdmFnZSBDeWNsb3BzIGhhZCBraWxsZWQgaGltIHdoZW4gdGhleSB3ZXJlIGFsbCBzaHV0IHVwIGluIHRoZSBjYXZlLCBhbmQgaGFkIGNvb2tlZCBoaXMgbGFzdCBkaW5uZXIgZm9yIGhpbSwgSGUgaGFkIHRocmVlIHNvbnMgbGVmdCwgb2Ygd2hvbSB0d28gc3RpbGwgd29ya2VkIG9uIHRoZWlyIGZhdGhlcidzIGxhbmQsIHdoaWxlIHRoZSB0aGlyZCwgRXVyeW5vbXVzLCB3YXMgb25lIG9mIHRoZSBzdWl0b3JzOyBuZXZlcnRoZWxlc3MgdGhlaXIgZmF0aGVyIGNvdWxkIG5vdCBnZXQgb3ZlciB0aGUgbG9zcyBvZiBBbnRpcGh1cywgYW5kIHdhcyBzdGlsbCB3ZWVwaW5nIGZvciBoaW0gd2hlbiBoZSBiZWdhbiBoaXMgc3BlZWNoLg0KDQoiTWVuIG9mIEl0aGFjYSwiIGhlIHNhaWQsICJoZWFyIG15IHdvcmRzLiBGcm9tIHRoZSBkYXkgVWx5c3NlcyBsZWZ0IHVzIHRoZXJlIGhhcyBiZWVuIG5vIG1lZXRpbmcgb2Ygb3VyIGNvdW5jaWxsb3JzIHVudGlsIG5vdzsgd2hvIHRoZW4gY2FuIGl0IGJlLCB3aGV0aGVyIG9sZCBvciB5b3VuZywgdGhhdCBmaW5kcyBpdCBzbyBuZWNlc3NhcnkgdG8gY29udmVuZSB1cz8gSGFzIGhlIGdvdCB3aW5kIG9mIHNvbWUgaG9zdCBhcHByb2FjaGluZywgYW5kIGRvZXMgaGUgd2lzaCB0byB3YXJuIHVzLCBvciB3b3VsZCBoZSBzcGVhayB1cG9uIHNvbWUgb3RoZXIgbWF0dGVyIG9mIHB1YmxpYyBtb21lbnQ/IEkgYW0gc3VyZSBoZSBpcyBhbiBleGNlbGxlbnQgcGVyc29uLCBhbmQgSSBob3BlIEpvdmUgd2lsbCBncmFudCBoaW0gaGlzIGhlYXJ0J3MgZGVzaXJlLiINCg0KVGVsZW1hY2h1cyB0b29rIHRoaXMgc3BlZWNoIGFzIG9mIGdvb2Qgb21lbiBhbmQgcm9zZSBhdCBvbmNlLCBmb3IgaGUgd2FzIGJ1cnN0aW5nIHdpdGggd2hhdCBoZSBoYWQgdG8gc2F5LiBIZSBzdG9vZCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBhc3NlbWJseSBhbmQgdGhlIGdvb2QgaGVyYWxkIFBpc2Vub3IgYnJvdWdodCBoaW0gaGlzIHN0YWZmLiBUaGVuLCB0dXJuaW5nIHRvIEFlZ3lwdGl1cywgIlNpciwiIHNhaWQgaGUsICJpdCBpcyBJLCBhcyB5b3Ugd2lsbCBzaG9ydGx5IGxlYXJuLCB3aG8gaGF2ZSBjb252ZW5lZCB5b3UsIGZvciBpdCBpcyBJIHdobyBhbSB0aGUgbW9zdCBhZ2dyaWV2ZWQuIEkgaGF2ZSBub3QgZ290IHdpbmQgb2YgYW55IGhvc3QgYXBwcm9hY2hpbmcgYWJvdXQgd2hpY2ggSSB3b3VsZCB3YXJuIHlvdSwgbm9yIGlzIHRoZXJlIGFueSBtYXR0ZXIgb2YgcHVibGljIG1vbWVudCBvbiB3aGljaCBJIHdvdWxkIHNwZWFrLiBNeSBncmlldmVhbmNlIGlzIHB1cmVseSBwZXJzb25hbCwgYW5kIHR1cm5zIG9uIHR3byBncmVhdCBtaXNmb3J0dW5lcyB3aGljaCBoYXZlIGZhbGxlbiB1cG9uIG15IGhvdXNlLiBUaGUgZmlyc3Qgb2YgdGhlc2UgaXMgdGhlIGxvc3Mgb2YgbXkgZXhjZWxsZW50IGZhdGhlciwgd2hvIHdhcyBjaGllZiBhbW9uZyBhbGwgeW91IGhlcmUgcHJlc2VudCwgYW5kIHdhcyBsaWtlIGEgZmF0aGVyIHRvIGV2ZXJ5IG9uZSBvZiB5b3U7IHRoZSBzZWNvbmQgaXMgbXVjaCBtb3JlIHNlcmlvdXMsIGFuZCBlcmUgbG9uZyB3aWxsIGJlIHRoZSB1dHRlciBydWluIG9mIG15IGVzdGF0ZS4gVGhlIHNvbnMgb2YgYWxsIHRoZSBjaGllZiBtZW4gYW1vbmcgeW91IGFyZSBwZXN0ZXJpbmcgbXkgbW90aGVyIHRvIG1hcnJ5IHRoZW0gYWdhaW5zdCBoZXIgd2lsbC4gVGhleSBhcmUgYWZyYWlkIHRvIGdvIHRvIGhlciBmYXRoZXIgSWNhcml1cywgYXNraW5nIGhpbSB0byBjaG9vc2UgdGhlIG9uZSBoZSBsaWtlcyBiZXN0LCBhbmQgdG8gcHJvdmlkZSBtYXJyaWFnZSBnaWZ0cyBmb3IgaGlzIGRhdWdodGVyLCBidXQgZGF5IGJ5IGRheSB0aGV5IGtlZXAgaGFuZ2luZyBhYm91dCBteSBmYXRoZXIncyBob3VzZSwgc2FjcmlmaWNpbmcgb3VyIG94ZW4sIHNoZWVwLCBhbmQgZmF0IGdvYXRzIGZvciB0aGVpciBiYW5xdWV0cywgYW5kIG5ldmVyIGdpdmluZyBzbyBtdWNoIGFzIGEgdGhvdWdodCB0byB0aGUgcXVhbnRpdHkgb2Ygd2luZSB0aGV5IGRyaW5rLiBObyBlc3RhdGUgY2FuIHN0YW5kIHN1Y2ggcmVja2xlc3NuZXNzOyB3ZSBoYXZlIG5vdyBubyBVbHlzc2VzIHRvIHdhcmQgb2ZmIGhhcm0gZnJvbSBvdXIgZG9vcnMsIGFuZCBJIGNhbm5vdCBob2xkIG15IG93biBhZ2FpbnN0IHRoZW0uIEkgc2hhbGwgbmV2ZXIgYWxsIG15IGRheXMgYmUgYXMgZ29vZCBhIG1hbiBhcyBoZSB3YXMsIHN0aWxsIEkgd291bGQgaW5kZWVkIGRlZmVuZCBteXNlbGYgaWYgSSBoYWQgcG93ZXIgdG8gZG8gc28sIGZvciBJIGNhbm5vdCBzdGFuZCBzdWNoIHRyZWF0bWVudCBhbnkgbG9uZ2VyOyBteSBob3VzZSBpcyBiZWluZyBkaXNncmFjZWQgYW5kIHJ1aW5lZC4gSGF2ZSByZXNwZWN0LCB0aGVyZWZvcmUsIHRvIHlvdXIgb3duIGNvbnNjaWVuY2VzIGFuZCB0byBwdWJsaWMgb3Bpbmlvbi4gRmVhciwgdG9vLCB0aGUgd3JhdGggb2YgaGVhdmVuLCBsZXN0IHRoZSBnb2RzIHNob3VsZCBiZSBkaXNwbGVhc2VkIGFuZCB0dXJuIHVwb24geW91LiBJIHByYXkgeW91IGJ5IEpvdmUgYW5kIFRoZW1pcywgd2hvIGlzIHRoZSBiZWdpbm5pbmcgYW5kIHRoZSBlbmQgb2YgY291bmNpbHMsIFtkbyBub3RdIGhvbGQgYmFjaywgbXkgZnJpZW5kcywgYW5kIGxlYXZlIG1lIHNpbmdsZWhhbmRlZC0gdW5sZXNzIGl0IGJlIHRoYXQgbXkgYnJhdmUgZmF0aGVyIFVseXNzZXMgZGlkIHNvbWUgd3JvbmcgdG8gdGhlIEFjaGFlYW5zIHdoaWNoIHlvdSB3b3VsZCBub3cgYXZlbmdlIG9uIG1lLCBieSBhaWRpbmcgYW5kIGFiZXR0aW5nIHRoZXNlIHN1aXRvcnMuIE1vcmVvdmVyLCBpZiBJIGFtIHRvIGJlIGVhdGVuIG91dCBvZiBob3VzZSBhbmQgaG9tZSBhdCBhbGwsIEkgaGFkIHJhdGhlciB5b3UgZGlkIHRoZSBlYXRpbmcgeW91cnNlbHZlcywgZm9yIEkgY291bGQgdGhlbiB0YWtlIGFjdGlvbiBhZ2FpbnN0IHlvdSB0byBzb21lIHB1cnBvc2UsIGFuZCBzZXJ2ZSB5b3Ugd2l0aCBub3RpY2VzIGZyb20gaG91c2UgdG8gaG91c2UgdGlsbCBJIGdvdCBwYWlkIGluIGZ1bGwsIHdoZXJlYXMgbm93IEkgaGF2ZSBubyByZW1lZHkuIg0KDQpXaXRoIHRoaXMgVGVsZW1hY2h1cyBkYXNoZWQgaGlzIHN0YWZmIHRvIHRoZSBncm91bmQgYW5kIGJ1cnN0IGludG8gdGVhcnMuIEV2ZXJ5IG9uZSB3YXMgdmVyeSBzb3JyeSBmb3IgaGltLCBidXQgdGhleSBhbGwgc2F0IHN0aWxsIGFuZCBubyBvbmUgdmVudHVyZWQgdG8gbWFrZSBoaW0gYW4gYW5ncnkgYW5zd2VyLCBzYXZlIG9ubHkgQW50aW5vdXMsIHdobyBzcG9rZSB0aHVzOg0KDQoiVGVsZW1hY2h1cywgaW5zb2xlbnQgYnJhZ2dhcnQgdGhhdCB5b3UgYXJlLCBob3cgZGFyZSB5b3UgdHJ5IHRvIHRocm93IHRoZSBibGFtZSB1cG9uIHVzIHN1aXRvcnM/IEl0IGlzIHlvdXIgbW90aGVyJ3MgZmF1bHQgbm90IG91cnMsIGZvciBzaGUgaXMgYSB2ZXJ5IGFydGZ1bCB3b21hbi4gVGhpcyB0aHJlZSB5ZWFycyBwYXN0LCBhbmQgY2xvc2Ugb24gZm91ciwgc2hlIGhhcyBiZWVuIGRyaXZpbmcgdXMgb3V0IG9mIG91ciBtaW5kcywgYnkgZW5jb3VyYWdpbmcgZWFjaCBvbmUgb2YgdXMsIGFuZCBzZW5kaW5nIGhpbSBtZXNzYWdlcyB3aXRob3V0IG1lYW5pbmcgb25lIHdvcmQgb2Ygd2hhdCBzaGUgc2F5cy4gQW5kIHRoZW4gdGhlcmUgd2FzIHRoYXQgb3RoZXIgdHJpY2sgc2hlIHBsYXllZCB1cy4gU2hlIHNldCB1cCBhIGdyZWF0IHRhbWJvdXIgZnJhbWUgaW4gaGVyIHJvb20sIGFuZCBiZWdhbiB0byB3b3JrIG9uIGFuIGVub3Jtb3VzIHBpZWNlIG9mIGZpbmUgbmVlZGxld29yay4gJ1N3ZWV0IGhlYXJ0cywnIHNhaWQgc2hlLCAnVWx5c3NlcyBpcyBpbmRlZWQgZGVhZCwgc3RpbGwgZG8gbm90IHByZXNzIG1lIHRvIG1hcnJ5IGFnYWluIGltbWVkaWF0ZWx5LCB3YWl0LSBmb3IgSSB3b3VsZCBub3QgaGF2ZSBza2lsbCBpbiBuZWVkbGV3b3JrIHBlcmlzaCB1bnJlY29yZGVkLSB0aWxsIEkgaGF2ZSBjb21wbGV0ZWQgYSBwYWxsIGZvciB0aGUgaGVybyBMYWVydGVzLCB0byBiZSBpbiByZWFkaW5lc3MgYWdhaW5zdCB0aGUgdGltZSB3aGVuIGRlYXRoIHNoYWxsIHRha2UgaGltLiBIZSBpcyB2ZXJ5IHJpY2gsIGFuZCB0aGUgd29tZW4gb2YgdGhlIHBsYWNlIHdpbGwgdGFsayBpZiBoZSBpcyBsYWlkIG91dCB3aXRob3V0IGEgcGFsbC4nDQoNCiJUaGlzIHdhcyB3aGF0IHNoZSBzYWlkLCBhbmQgd2UgYXNzZW50ZWQ7IHdoZXJlb24gd2UgY291bGQgc2VlIGhlciB3b3JraW5nIG9uIGhlciBncmVhdCB3ZWIgYWxsIGRheSBsb25nLCBidXQgYXQgbmlnaHQgc2hlIHdvdWxkIHVucGljayB0aGUgc3RpdGNoZXMgYWdhaW4gYnkgdG9yY2hsaWdodC4gU2hlIGZvb2xlZCB1cyBpbiB0aGlzIHdheSBmb3IgdGhyZWUgeWVhcnMgYW5kIHdlIG5ldmVyIGZvdW5kIGhlciBvdXQsIGJ1dCBhcyB0aW1lIHdvcmUgb24gYW5kIHNoZSB3YXMgbm93IGluIGhlciBmb3VydGggeWVhciwgb25lIG9mIGhlciBtYWlkcyB3aG8ga25ldyB3aGF0IHNoZSB3YXMgZG9pbmcgdG9sZCB1cywgYW5kIHdlIGNhdWdodCBoZXIgaW4gdGhlIGFjdCBvZiB1bmRvaW5nIGhlciB3b3JrLCBzbyBzaGUgaGFkIHRvIGZpbmlzaCBpdCB3aGV0aGVyIHNoZSB3b3VsZCBvciBuby4gVGhlIHN1aXRvcnMsIHRoZXJlZm9yZSwgbWFrZSB5b3UgdGhpcyBhbnN3ZXIsIHRoYXQgYm90aCB5b3UgYW5kIHRoZSBBY2hhZWFucyBtYXkgdW5kZXJzdGFuZC0nU2VuZCB5b3VyIG1vdGhlciBhd2F5LCBhbmQgYmlkIGhlciBtYXJyeSB0aGUgbWFuIG9mIGhlciBvd24gYW5kIG9mIGhlciBmYXRoZXIncyBjaG9pY2UnOyBmb3IgSSBkbyBub3Qga25vdyB3aGF0IHdpbGwgaGFwcGVuIGlmIHNoZSBnb2VzIG9uIHBsYWd1aW5nIHVzIG11Y2ggbG9uZ2VyIHdpdGggdGhlIGFpcnMgc2hlIGdpdmVzIGhlcnNlbGYgb24gdGhlIHNjb3JlIG9mIHRoZSBhY2NvbXBsaXNobWVudHMgTWluZXJ2YSBoYXMgdGF1Z2h0IGhlciwgYW5kIGJlY2F1c2Ugc2hlIGlzIHNvIGNsZXZlci4gV2UgbmV2ZXIgeWV0IGhlYXJkIG9mIHN1Y2ggYSB3b21hbjsgd2Uga25vdyBhbGwgYWJvdXQgVHlybywgQWxjbWVuYSwgTXljZW5lLCBhbmQgdGhlIGZhbW91cyB3b21lbiBvZiBvbGQsIGJ1dCB0aGV5IHdlcmUgbm90aGluZyB0byB5b3VyIG1vdGhlciwgYW55IG9uZSBvZiB0aGVtLiBJdCB3YXMgbm90IGZhaXIgb2YgaGVyIHRvIHRyZWF0IHVzIGluIHRoYXQgd2F5LCBhbmQgYXMgbG9uZyBhcyBzaGUgY29udGludWVzIGluIHRoZSBtaW5kIHdpdGggd2hpY2ggaGVhdmVuIGhhcyBub3cgZW5kb3dlZCBoZXIsIHNvIGxvbmcgc2hhbGwgd2UgZ28gb24gZWF0aW5nIHVwIHlvdXIgZXN0YXRlOyBhbmQgSSBkbyBub3Qgc2VlIHdoeSBzaGUgc2hvdWxkIGNoYW5nZSwgZm9yIHNoZSBnZXRzIGFsbCB0aGUgaG9ub3VyIGFuZCBnbG9yeSwgYW5kIGl0IGlzIHlvdSB3aG8gcGF5IGZvciBpdCwgbm90IHNoZS4gVW5kZXJzdGFuZCwgdGhlbiwgdGhhdCB3ZSB3aWxsIG5vdCBnbyBiYWNrIHRvIG91ciBsYW5kcywgbmVpdGhlciBoZXJlIG5vciBlbHNld2hlcmUsIHRpbGwgc2hlIGhhcyBtYWRlIGhlciBjaG9pY2UgYW5kIG1hcnJpZWQgc29tZSBvbmUgb3Igb3RoZXIgb2YgdXMuIg0KDQpUZWxlbWFjaHVzIGFuc3dlcmVkLCAiQW50aW5vdXMsIGhvdyBjYW4gSSBkcml2ZSB0aGUgbW90aGVyIHdobyBib3JlIG1lIGZyb20gbXkgZmF0aGVyJ3MgaG91c2U/IE15IGZhdGhlciBpcyBhYnJvYWQgYW5kIHdlIGRvIG5vdCBrbm93IHdoZXRoZXIgaGUgaXMgYWxpdmUgb3IgZGVhZC4gSXQgd2lsbCBiZSBoYXJkIG9uIG1lIGlmIEkgaGF2ZSB0byBwYXkgSWNhcml1cyB0aGUgbGFyZ2Ugc3VtIHdoaWNoIEkgbXVzdCBnaXZlIGhpbSBpZiBJIGluc2lzdCBvbiBzZW5kaW5nIGhpcyBkYXVnaHRlciBiYWNrIHRvIGhpbS4gTm90IG9ubHkgd2lsbCBoZSBkZWFsIHJpZ29yb3VzbHkgd2l0aCBtZSwgYnV0IGhlYXZlbiB3aWxsIGFsc28gcHVuaXNoIG1lOyBmb3IgbXkgbW90aGVyIHdoZW4gc2hlIGxlYXZlcyB0aGUgaG91c2Ugd2lsbCBjYWxmIG9uIHRoZSBFcmlueWVzIHRvIGF2ZW5nZSBoZXI7IGJlc2lkZXMsIGl0IHdvdWxkIG5vdCBiZSBhIGNyZWRpdGFibGUgdGhpbmcgdG8gZG8sIGFuZCBJIHdpbGwgaGF2ZSBub3RoaW5nIHRvIHNheSB0byBpdC4gSWYgeW91IGNob29zZSB0byB0YWtlIG9mZmVuY2UgYXQgdGhpcywgbGVhdmUgdGhlIGhvdXNlIGFuZCBmZWFzdCBlbHNld2hlcmUgYXQgb25lIGFub3RoZXIncyBob3VzZXMgYXQgeW91ciBvd24gY29zdCB0dXJuIGFuZCB0dXJuIGFib3V0LiBJZiwgb24gdGhlIG90aGVyIGhhbmQsIHlvdSBlbGVjdCB0byBwZXJzaXN0IGluIHNwdW5naW5nIHVwb24gb25lIG1hbiwgaGVhdmVuIGhlbHAgbWUsIGJ1dCBKb3ZlIHNoYWxsIHJlY2tvbiB3aXRoIHlvdSBpbiBmdWxsLCBhbmQgd2hlbiB5b3UgZmFsbCBpbiBteSBmYXRoZXIncyBob3VzZSB0aGVyZSBzaGFsbCBiZSBubyBtYW4gdG8gYXZlbmdlIHlvdS4iDQoNCkFzIGhlIHNwb2tlIEpvdmUgc2VudCB0d28gZWFnbGVzIGZyb20gdGhlIHRvcCBvZiB0aGUgbW91bnRhaW4sIGFuZCB0aGV5IGZsZXcgb24gYW5kIG9uIHdpdGggdGhlIHdpbmQsIHNhaWxpbmcgc2lkZSBieSBzaWRlIGluIHRoZWlyIG93biBsb3JkbHkgZmxpZ2h0LiBXaGVuIHRoZXkgd2VyZSByaWdodCBvdmVyIHRoZSBtaWRkbGUgb2YgdGhlIGFzc2VtYmx5IHRoZXkgd2hlZWxlZCBhbmQgY2lyY2xlZCBhYm91dCwgYmVhdGluZyB0aGUgYWlyIHdpdGggdGhlaXIgd2luZ3MgYW5kIGdsYXJpbmcgZGVhdGggaW50byB0aGUgZXllcyBvZiB0aGVtIHRoYXQgd2VyZSBiZWxvdzsgdGhlbiwgZmlnaHRpbmcgZmllcmNlbHkgYW5kIHRlYXJpbmcgYXQgb25lIGFub3RoZXIsIHRoZXkgZmxldyBvZmYgdG93YXJkcyB0aGUgcmlnaHQgb3ZlciB0aGUgdG93bi4gVGhlIHBlb3BsZSB3b25kZXJlZCBhcyB0aGV5IHNhdyB0aGVtLCBhbmQgYXNrZWQgZWFjaCBvdGhlciB3aGF0IGFuIHRoaXMgbWlnaHQgYmU7IHdoZXJlb24gSGFsaXRoZXJzZXMsIHdobyB3YXMgdGhlIGJlc3QgcHJvcGhldCBhbmQgcmVhZGVyIG9mIG9tZW5zIGFtb25nIHRoZW0sIHNwb2tlIHRvIHRoZW0gcGxhaW5seSBhbmQgaW4gYWxsIGhvbmVzdHksIHNheWluZzoNCg0KIkhlYXIgbWUsIG1lbiBvZiBJdGhhY2EsIGFuZCBJIHNwZWFrIG1vcmUgcGFydGljdWxhcmx5IHRvIHRoZSBzdWl0b3JzLCBmb3IgSSBzZWUgbWlzY2hpZWYgYnJld2luZyBmb3IgdGhlbS4gVWx5c3NlcyBpcyBub3QgZ29pbmcgdG8gYmUgYXdheSBtdWNoIGxvbmdlcjsgaW5kZWVkIGhlIGlzIGNsb3NlIGF0IGhhbmQgdG8gZGVhbCBvdXQgZGVhdGggYW5kIGRlc3RydWN0aW9uLCBub3Qgb24gdGhlbSBhbG9uZSwgYnV0IG9uIG1hbnkgYW5vdGhlciBvZiB1cyB3aG8gbGl2ZSBpbiBJdGhhY2EuIExldCB1cyB0aGVuIGJlIHdpc2UgaW4gdGltZSwgYW5kIHB1dCBhIHN0b3AgdG8gdGhpcyB3aWNrZWRuZXNzIGJlZm9yZSBoZSBjb21lcy4gTGV0IHRoZSBzdWl0b3JzIGRvIHNvIG9mIHRoZWlyIG93biBhY2NvcmQ7IGl0IHdpbGwgYmUgYmV0dGVyIGZvciB0aGVtLCBmb3IgSSBhbSBub3QgcHJvcGhlc3lpbmcgd2l0aG91dCBkdWUga25vd2xlZGdlOyBldmVyeXRoaW5nIGhhcyBoYXBwZW5lZCB0byBVbHlzc2VzIGFzIEkgZm9yZXRvbGQgd2hlbiB0aGUgQXJnaXZlcyBzZXQgb3V0IGZvciBUcm95LCBhbmQgaGUgd2l0aCB0aGVtLiBJIHNhaWQgdGhhdCBhZnRlciBnb2luZyB0aHJvdWdoIG11Y2ggaGFyZHNoaXAgYW5kIGxvc2luZyBhbGwgaGlzIG1lbiBoZSBzaG91bGQgY29tZSBob21lIGFnYWluIGluIHRoZSB0d2VudGlldGggeWVhciBhbmQgdGhhdCBubyBvbmUgd291bGQga25vdyBoaW07IGFuZCBub3cgYWxsIHRoaXMgaXMgY29taW5nIHRydWUuIg0KDQpFdXJ5bWFjaHVzIHNvbiBvZiBQb2x5YnVzIHRoZW4gc2FpZCwgIkdvIGhvbWUsIG9sZCBtYW4sIGFuZCBwcm9waGVzeSB0byB5b3VyIG93biBjaGlsZHJlbiwgb3IgaXQgbWF5IGJlIHdvcnNlIGZvciB0aGVtLiBJIGNhbiByZWFkIHRoZXNlIG9tZW5zIG15c2VsZiBtdWNoIGJldHRlciB0aGFuIHlvdSBjYW47IGJpcmRzIGFyZSBhbHdheXMgZmx5aW5nIGFib3V0IGluIHRoZSBzdW5zaGluZSBzb21ld2hlcmUgb3Igb3RoZXIsIGJ1dCB0aGV5IHNlbGRvbSBtZWFuIGFueXRoaW5nLiBVbHlzc2VzIGhhcyBkaWVkIGluIGEgZmFyIGNvdW50cnksIGFuZCBpdCBpcyBhIHBpdHkgeW91IGFyZSBub3QgZGVhZCBhbG9uZyB3aXRoIGhpbSwgaW5zdGVhZCBvZiBwcmF0aW5nIGhlcmUgYWJvdXQgb21lbnMgYW5kIGFkZGluZyBmdWVsIHRvIHRoZSBhbmdlciBvZiBUZWxlbWFjaHVzIHdoaWNoIGlzIGZpZXJjZSBlbm91Z2ggYXMgaXQgaXMuIEkgc3VwcG9zZSB5b3UgdGhpbmsgaGUgd2lsbCBnaXZlIHlvdSBzb21ldGhpbmcgZm9yIHlvdXIgZmFtaWx5LCBidXQgSSB0ZWxsIHlvdS0gYW5kIGl0IHNoYWxsIHN1cmVseSBiZS0gd2hlbiBhbiBvbGQgbWFuIGxpa2UgeW91LCB3aG8gc2hvdWxkIGtub3cgYmV0dGVyLCB0YWxrcyBhIHlvdW5nIG9uZSBvdmVyIHRpbGwgaGUgYmVjb21lcyB0cm91Ymxlc29tZSwgaW4gdGhlIGZpcnN0IHBsYWNlIGhpcyB5b3VuZyBmcmllbmQgd2lsbCBvbmx5IGZhcmUgc28gbXVjaCB0aGUgd29yc2UtIGhlIHdpbGwgdGFrZSBub3RoaW5nIGJ5IGl0LCBmb3IgdGhlIHN1aXRvcnMgd2lsbCBwcmV2ZW50IHRoaXMtIGFuZCBpbiB0aGUgbmV4dCwgd2Ugd2lsbCBsYXkgYSBoZWF2aWVyIGZpbmUsIHNpciwgdXBvbiB5b3Vyc2VsZiB0aGFuIHlvdSB3aWxsIGF0IGFsbCBsaWtlIHBheWluZywgZm9yIGl0IHdpbGwgYmVhciBoYXJkbHkgdXBvbiB5b3UuIEFzIGZvciBUZWxlbWFjaHVzLCBJIHdhcm4gaGltIGluIHRoZSBwcmVzZW5jZSBvZiB5b3UgYWxsIHRvIHNlbmQgaGlzIG1vdGhlciBiYWNrIHRvIGhlciBmYXRoZXIsIHdobyB3aWxsIGZpbmQgaGVyIGEgaHVzYmFuZCBhbmQgcHJvdmlkZSBoZXIgd2l0aCBhbGwgdGhlIG1hcnJpYWdlIGdpZnRzIHNvIGRlYXIgYSBkYXVnaHRlciBtYXkgZXhwZWN0LiBUaWxsIHdlIHNoYWxsIGdvIG9uIGhhcmFzc2luZyBoaW0gd2l0aCBvdXIgc3VpdDsgZm9yIHdlIGZlYXIgbm8gbWFuLCBhbmQgY2FyZSBuZWl0aGVyIGZvciBoaW0sIHdpdGggYWxsIGhpcyBmaW5lIHNwZWVjaGVzLCBub3IgZm9yIGFueSBmb3J0dW5lLXRlbGxpbmcgb2YgeW91cnMuIFlvdSBtYXkgcHJlYWNoIGFzIG11Y2ggYXMgeW91IHBsZWFzZSwgYnV0IHdlIHNoYWxsIG9ubHkgaGF0ZSB5b3UgdGhlIG1vcmUuIFdlIHNoYWxsIGdvIGJhY2sgYW5kIGNvbnRpbnVlIHRvIGVhdCB1cCBUZWxlbWFjaHVzJ3MgZXN0YXRlIHdpdGhvdXQgcGF5aW5nIGhpbSwgdGlsbCBzdWNoIHRpbWUgYXMgaGlzIG1vdGhlciBsZWF2ZXMgb2ZmIHRvcm1lbnRpbmcgdXMgYnkga2VlcGluZyB1cyBkYXkgYWZ0ZXIgZGF5IG9uIHRoZSB0aXB0b2Ugb2YgZXhwZWN0YXRpb24sIGVhY2ggdnlpbmcgd2l0aCB0aGUgb3RoZXIgaW4gaGlzIHN1aXQgZm9yIGEgcHJpemUgb2Ygc3VjaCByYXJlIHBlcmZlY3Rpb24uIEJlc2lkZXMgd2UgY2Fubm90IGdvIGFmdGVyIHRoZSBvdGhlciB3b21lbiB3aG9tIHdlIHNob3VsZCBtYXJyeSBpbiBkdWUgY291cnNlLCBidXQgZm9yIHRoZSB3YXkgaW4gd2hpY2ggc2hlIHRyZWF0cyB1cy4iDQoNClRoZW4gVGVsZW1hY2h1cyBzYWlkLCAiRXVyeW1hY2h1cywgYW5kIHlvdSBvdGhlciBzdWl0b3JzLCBJIHNoYWxsIHNheSBubyBtb3JlLCBhbmQgZW50cmVhdCB5b3Ugbm8gZnVydGhlciwgZm9yIHRoZSBnb2RzIGFuZCB0aGUgcGVvcGxlIG9mIEl0aGFjYSBub3cga25vdyBteSBzdG9yeS4gR2l2ZSBtZSwgdGhlbiwgYSBzaGlwIGFuZCBhIGNyZXcgb2YgdHdlbnR5IG1lbiB0byB0YWtlIG1lIGhpdGhlciBhbmQgdGhpdGhlciwgYW5kIEkgd2lsbCBnbyB0byBTcGFydGEgYW5kIHRvIFB5bG9zIGluIHF1ZXN0IG9mIG15IGZhdGhlciB3aG8gaGFzIHNvIGxvbmcgYmVlbiBtaXNzaW5nLiBTb21lIG9uZSBtYXkgdGVsbCBtZSBzb21ldGhpbmcsIG9yIChhbmQgcGVvcGxlIG9mdGVuIGhlYXIgdGhpbmdzIGluIHRoaXMgd2F5KSBzb21lIGhlYXZlbi1zZW50IG1lc3NhZ2UgbWF5IGRpcmVjdCBtZS4gSWYgSSBjYW4gaGVhciBvZiBoaW0gYXMgYWxpdmUgYW5kIG9uIGhpcyB3YXkgaG9tZSBJIHdpbGwgcHV0IHVwIHdpdGggdGhlIHdhc3RlIHlvdSBzdWl0b3JzIHdpbGwgbWFrZSBmb3IgeWV0IGFub3RoZXIgdHdlbHZlIG1vbnRocy4gSWYgb24gdGhlIG90aGVyIGhhbmQgSSBoZWFyIG9mIGhpcyBkZWF0aCwgSSB3aWxsIHJldHVybiBhdCBvbmNlLCBjZWxlYnJhdGUgaGlzIGZ1bmVyYWwgcml0ZXMgd2l0aCBhbGwgZHVlIHBvbXAsIGJ1aWxkIGEgYmFycm93IHRvIGhpcyBtZW1vcnksIGFuZCBtYWtlIG15IG1vdGhlciBtYXJyeSBhZ2Fpbi4iDQoNCldpdGggdGhlc2Ugd29yZHMgaGUgc2F0IGRvd24sIGFuZCBNZW50b3Igd2hvIGhhZCBiZWVuIGEgZnJpZW5kIG9mIFVseXNzZXMsIGFuZCBoYWQgYmVlbiBsZWZ0IGluIGNoYXJnZSBvZiBldmVyeXRoaW5nIHdpdGggZnVsbA=="
          },
          "response": {
            "data": "SGVsbG8sIHdvcmxkIQ=="
          }
        },
        {
          "timestamp": "2015-01-18T14:59:36.118Z",
          "request": {
            "requestFrom": "127.0.0.1:53172",
            "data": "IGF1dGhvcml0eSBvdmVyIHRoZSBzZXJ2YW50cywgcm9zZSB0byBzcGVhay4gSGUsIHRoZW4sIHBsYWlubHkgYW5kIGluIGFsbCBob25lc3R5IGFkZHJlc3NlZCB0aGVtIHRodXM6DQoNCiJIZWFyIG1lLCBtZW4gb2YgSXRoYWNhLCBJIGhvcGUgdGhhdCB5b3UgbWF5IG5ldmVyIGhhdmUgYSBraW5kIGFuZCB3ZWxsLWRpc3Bvc2VkIHJ1bGVyIGFueSBtb3JlLCBub3Igb25lIHdobyB3aWxsIGdvdmVybiB5b3UgZXF1aXRhYmx5OyBJIGhvcGUgdGhhdCBhbGwgeW91ciBjaGllZnMgaGVuY2Vmb3J3YXJkIG1heSBiZSBjcnVlbCBhbmQgdW5qdXN0LCBmb3IgdGhlcmUgaXMgbm90IG9uZSBvZiB5b3UgYnV0IGhhcyBmb3Jnb3R0ZW4gVWx5c3Nlcywgd2hvIHJ1bGVkIHlvdSBhcyB0aG91Z2ggaGUgd2VyZSB5b3VyIGZhdGhlci4gSSBhbSBub3QgaGFsZiBzbyBhbmdyeSB3aXRoIHRoZSBzdWl0b3JzLCBmb3IgaWYgdGhleSBjaG9vc2UgdG8gZG8gdmlvbGVuY2UgaW4gdGhlIG5hdWdodGluZXNzIG9mIHRoZWlyIGhlYXJ0cywgYW5kIHdhZ2VyIHRoZWlyIGhlYWRzIHRoYXQgVWx5c3NlcyB3aWxsIG5vdCByZXR1cm4sIHRoZXkgY2FuIHRha2UgdGhlIGhpZ2ggaGFuZCBhbmQgZWF0IHVwIGhpcyBlc3RhdGUsIGJ1dCBhcyBmb3IgeW91IG90aGVycyBJIGFtIHNob2NrZWQgYXQgdGhlIHdheSBpbiB3aGljaCB5b3UgYWxsIHNpdCBzdGlsbCB3aXRob3V0IGV2ZW4gdHJ5aW5nIHRvIHN0b3Agc3VjaCBzY2FuZGFsb3VzIGdvaW5ncyBvbi13aGljaCB5b3UgY291bGQgZG8gaWYgeW91IGNob3NlLCBmb3IgeW91IGFyZSBtYW55IGFuZCB0aGV5IGFyZSBmZXcuIg0KDQpMZWlvY3JpdHVzLCBzb24gb2YgRXZlbm9yLCBhbnN3ZXJlZCBoaW0gc2F5aW5nLCAiTWVudG9yLCB3aGF0IGZvbGx5IGlzIGFsbCB0aGlzLCB0aGF0IHlvdSBzaG91bGQgc2V0IHRoZSBwZW9wbGUgdG8gc3RheSB1cz8gSXQgaXMgYSBoYXJkIHRoaW5nIGZvciBvbmUgbWFuIHRvIGZpZ2h0IHdpdGggbWFueSBhYm91dCBoaXMgdmljdHVhbHMuIEV2ZW4gdGhvdWdoIFVseXNzZXMgaGltc2VsZiB3ZXJlIHRvIHNldCB1cG9uIHVzIHdoaWxlIHdlIGFyZSBmZWFzdGluZyBpbiBoaXMgaG91c2UsIGFuZCBkbyBoaXMgYmVzdCB0byBvdXN0IHVzLCBoaXMgd2lmZSwgd2hvIHdhbnRzIGhpbSBiYWNrIHNvIHZlcnkgYmFkbHksIHdvdWxkIGhhdmUgc21hbGwgY2F1c2UgZm9yIHJlam9pY2luZywgYW5kIGhpcyBibG9vZCB3b3VsZCBiZSB1cG9uIGhpcyBvd24gaGVhZCBpZiBoZSBmb3VnaHQgYWdhaW5zdCBzdWNoIGdyZWF0IG9kZHMuIFRoZXJlIGlzIG5vIHNlbnNlIGluIHdoYXQgeW91IGhhdmUgYmVlbiBzYXlpbmcuIE5vdywgdGhlcmVmb3JlLCBkbyB5b3UgcGVvcGxlIGdvIGFib3V0IHlvdXIgYnVzaW5lc3MsIGFuZCBsZXQgaGlzIGZhdGhlcidzIG9sZCBmcmllbmRzLCBNZW50b3IgYW5kIEhhbGl0aGVyc2VzLCBzcGVlZCB0aGlzIGJveSBvbiBoaXMgam91cm5leSwgaWYgaGUgZ29lcyBhdCBhbGwtIHdoaWNoIEkgZG8gbm90IHRoaW5rIGhlIHdpbGwsIGZvciBoZSBpcyBtb3JlIGxpa2VseSB0byBzdGF5IHdoZXJlIGhlIGlzIHRpbGwgc29tZSBvbmUgY29tZXMgYW5kIHRlbGxzIGhpbSBzb21ldGhpbmcuIg0KDQpPbiB0aGlzIGhlIGJyb2tlIHVwIHRoZSBhc3NlbWJseSwgYW5kIGV2ZXJ5IG1hbiB3ZW50IGJhY2sgdG8gaGlzIG93biBhYm9kZSwgd2hpbGUgdGhlIHN1aXRvcnMgcmV0dXJuZWQgdG8gdGhlIGhvdXNlIG9mIFVseXNzZXMuDQoNClRoZW4gVGVsZW1hY2h1cyB3ZW50IGFsbCBhbG9uZSBieSB0aGUgc2VhIHNpZGUsIHdhc2hlZCBoaXMgaGFuZHMgaW4gdGhlIGdyZXkgd2F2ZXMsIGFuZCBwcmF5ZWQgdG8gTWluZXJ2YS4NCg0KIkhlYXIgbWUsIiBoZSBjcmllZCwgInlvdSBnb2Qgd2hvIHZpc2l0ZWQgbWUgeWVzdGVyZGF5LCBhbmQgYmFkZSBtZSBzYWlsIHRoZSBzZWFzIGluIHNlYXJjaCBvZiBteSBmYXRoZXIgd2hvIGhhcyBzbyBsb25nIGJlZW4gbWlzc2luZy4gSSB3b3VsZCBvYmV5IHlvdSwgYnV0IHRoZSBBY2hhZWFucywgYW5kIG1vcmUgcGFydGljdWxhcmx5IHRoZSB3aWNrZWQgc3VpdG9ycywgYXJlIGhpbmRlcmluZyBtZSB0aGF0IEkgY2Fubm90IGRvIHNvLiINCg0KQXMgaGUgdGh1cyBwcmF5ZWQsIE1pbmVydmEgY2FtZSBjbG9zZSB1cCB0byBoaW0gaW4gdGhlIGxpa2VuZXNzIGFuZCB3aXRoIHRoZSB2b2ljZSBvZiBNZW50b3IuICJUZWxlbWFjaHVzLCIgc2FpZCBzaGUsICJpZiB5b3UgYXJlIG1hZGUgb2YgdGhlIHNhbWUgc3R1ZmYgYXMgeW91ciBmYXRoZXIgeW91IHdpbGwgYmUgbmVpdGhlciBmb29sIG5vciBjb3dhcmQgaGVuY2Vmb3J3YXJkLCBmb3IgVWx5c3NlcyBuZXZlciBicm9rZSBoaXMgd29yZCBub3IgbGVmdCBoaXMgd29yayBoYWxmIGRvbmUuIElmLCB0aGVuLCB5b3UgdGFrZSBhZnRlciBoaW0sIHlvdXIgdm95YWdlIHdpbGwgbm90IGJlIGZydWl0bGVzcywgYnV0IHVubGVzcyB5b3UgaGF2ZSB0aGUgYmxvb2Qgb2YgVWx5c3NlcyBhbmQgb2YgUGVuZWxvcGUgaW4geW91ciB2ZWlucyBJIHNlZSBubyBsaWtlbGlob29kIG9mIHlvdXIgc3VjY2VlZGluZy4gU29ucyBhcmUgc2VsZG9tIGFzIGdvb2QgbWVuIGFzIHRoZWlyIGZhdGhlcnM7IHRoZXkgYXJlIGdlbmVyYWxseSB3b3JzZSwgbm90IGJldHRlcjsgc3RpbGwsIGFzIHlvdSBhcmUgbm90IGdvaW5nIHRvIGJlIGVpdGhlciBmb29sIG9yIGNvd2FyZCBoZW5jZWZvcndhcmQsIGFuZCBhcmUgbm90IGVudGlyZWx5IHdpdGhvdXQgc29tZSBzaGFyZSBvZiB5b3VyIGZhdGhlcidzIHdpc2UgZGlzY2Vybm1lbnQsIEkgbG9vayB3aXRoIGhvcGUgdXBvbiB5b3VyIHVuZGVydGFraW5nLiBCdXQgbWluZCB5b3UgbmV2ZXIgbWFrZSBjb21tb24gY2F1c2Ugd2l0aCBhbnkgb2YgdGhvc2UgZm9vbGlzaCBzdWl0b3JzLCBmb3IgdGhleSBoYXZlIG5laXRoZXIgc2Vuc2Ugbm9yIHZpcnR1ZSwgYW5kIGdpdmUgbm8gdGhvdWdodCB0byBkZWF0aCBhbmQgdG8gdGhlIGRvb20gdGhhdCB3aWxsIHNob3J0bHkgZmFsbCBvbiBvbmUgYW5kIGFsbCBvZiB0aGVtLCBzbyB0aGF0IHRoZXkgc2hhbGwgcGVyaXNoIG9uIHRoZSBzYW1lIGRheS4gQXMgZm9yIHlvdXIgdm95YWdlLCBpdCBzaGFsbCBub3QgYmUgbG9uZyBkZWxheWVkOyB5b3VyIGZhdGhlciB3YXMgc3VjaCBhbiBvbGQgZnJpZW5kIG9mIG1pbmUgdGhhdCBJIHdpbGwgZmluZCB5b3UgYSBzaGlwLCBhbmQgd2lsbCBjb21lIHdpdGggeW91IG15c2VsZi4gTm93LCBob3dldmVyLCByZXR1cm4gaG9tZSwgYW5kIGdvIGFib3V0IGFtb25nIHRoZSBzdWl0b3JzOyBiZWdpbiBnZXR0aW5nIHByb3Zpc2lvbnMgcmVhZHkgZm9yIHlvdXIgdm95YWdlOyBzZWUgZXZlcnl0aGluZyB3ZWxsIHN0b3dlZCwgdGhlIHdpbmUgaW4gamFycywgYW5kIHRoZSBiYXJsZXkgbWVhbCwgd2hpY2ggaXMgdGhlIHN0YWZmIG9mIGxpZmUsIGluIGxlYXRoZXJuIGJhZ3MsIHdoaWxlIEkgZ28gcm91bmQgdGhlIHRvd24gYW5kIGJlYXQgdXAgdm9sdW50ZWVycyBhdCBvbmNlLiBUaGVyZSBhcmUgbWFueSBzaGlwcyBpbiBJdGhhY2EgYm90aCBvbGQgYW5kIG5ldzsgSSB3aWxsIHJ1biBteSBleWUgb3ZlciB0aGVtIGZvciB5b3UgYW5kIHdpbGwgY2hvb3NlIHRoZSBiZXN0OyB3ZSB3aWxsIGdldCBoZXIgcmVhZHkgYW5kIHdpbGwgcHV0IG91dCB0byBzZWEgd2l0aG91dCBkZWxheS4iDQoNClRodXMgc3Bva2UgTWluZXJ2YSBkYXVnaHRlciBvZiBKb3ZlLCBhbmQgVGVsZW1hY2h1cyBsb3N0IG5vIHRpbWUgaW4gZG9pbmcgYXMgdGhlIGdvZGRlc3MgdG9sZCBoaW0uIEhlIHdlbnQgbW9vZGlseSBhbmQgZm91bmQgdGhlIHN1aXRvcnMgZmxheWluZyBnb2F0cyBhbmQgc2luZ2VpbmcgcGlncyBpbiB0aGUgb3V0ZXIgY291cnQuIEFudGlub3VzIGNhbWUgdXAgdG8gaGltIGF0IG9uY2UgYW5kIGxhdWdoZWQgYXMgaGUgdG9vayBoaXMgaGFuZCBpbiBoaXMgb3duLCBzYXlpbmcsICJUZWxlbWFjaHVzLCBteSBmaW5lIGZpcmUtZWF0ZXIsIGJlYXIgbm8gbW9yZSBpbGwgYmxvb2QgbmVpdGhlciBpbiB3b3JkIG5vciBkZWVkLCBidXQgZWF0IGFuZCBkcmluayB3aXRoIHVzIGFzIHlvdSB1c2VkIHRvIGRvLiBUaGUgQWNoYWVhbnMgd2lsbCBmaW5kIHlvdSBpbiBldmVyeXRoaW5nLSBhIHNoaXAgYW5kIGEgcGlja2VkIGNyZXcgdG8gYm9vdC0gc28gdGhhdCB5b3UgY2FuIHNldCBzYWlsIGZvciBQeWxvcyBhdCBvbmNlIGFuZCBnZXQgbmV3cyBvZiB5b3VyIG5vYmxlIGZhdGhlci4iDQoNCiJBbnRpbm91cywiIGFuc3dlcmVkIFRlbGVtYWNodXMsICJJIGNhbm5vdCBlYXQgaW4gcGVhY2UsIG5vciB0YWtlIHBsZWFzdXJlIG9mIGFueSBraW5kIHdpdGggc3VjaCBtZW4gYXMgeW91IGFyZS4gV2FzIGl0IG5vdCBlbm91Z2ggdGhhdCB5b3Ugc2hvdWxkIHdhc3RlIHNvIG11Y2ggZ29vZCBwcm9wZXJ0eSBvZiBtaW5lIHdoaWxlIEkgd2FzIHlldCBhIGJveT8gTm93IHRoYXQgSSBhbSBvbGRlciBhbmQga25vdyBtb3JlIGFib3V0IGl0LCBJIGFtIGFsc28gc3Ryb25nZXIsIGFuZCB3aGV0aGVyIGhlcmUgYW1vbmcgdGhpcyBwZW9wbGUsIG9yIGJ5IGdvaW5nIHRvIFB5bG9zLCBJIHdpbGwgZG8geW91IGFsbCB0aGUgaGFybSBJIGNhbi4gSSBzaGFsbCBnbywgYW5kIG15IGdvaW5nIHdpbGwgbm90IGJlIGluIHZhaW4gdGhvdWdoLCB0aGFua3MgdG8geW91IHN1aXRvcnMsIEkgaGF2ZSBuZWl0aGVyIHNoaXAgbm9yIGNyZXcgb2YgbXkgb3duLCBhbmQgbXVzdCBiZSBwYXNzZW5nZXIgbm90IGNhcHRhaW4uIg0KDQpBcyBoZSBzcG9rZSBoZSBzbmF0Y2hlZCBoaXMgaGFuZCBmcm9tIHRoYXQgb2YgQW50aW5vdXMuIE1lYW53aGlsZSB0aGUgb3RoZXJzIHdlbnQgb24gZ2V0dGluZyBkaW5uZXIgcmVhZHkgYWJvdXQgdGhlIGJ1aWxkaW5ncywgamVlcmluZyBhdCBoaW0gdGF1bnRpbmdseSBhcyB0aGV5IGRpZCBzby4NCg0KIlRlbGVtYWNodXMsIiBzYWlkIG9uZSB5b3VuZ3N0ZXIsICJtZWFucyB0byBiZSB0aGUgZGVhdGggb2YgdXM7IEkgc3VwcG9zZSBoZSB0aGlua3MgaGUgY2FuIGJyaW5nIGZyaWVuZHMgdG8gaGVscCBoaW0gZnJvbSBQeWxvcywgb3IgYWdhaW4gZnJvbSBTcGFydGEsIHdoZXJlIGhlIHNlZW1zIGJlbnQgb24gZ29pbmcuIE9yIHdpbGwgaGUgZ28gdG8gRXBoeXJhIGFzIHdlbGwsIGZvciBwb2lzb24gdG8gcHV0IGluIG91ciB3aW5lIGFuZCBraWxsIHVzPyINCg0KQW5vdGhlciBzYWlkLCAiUGVyaGFwcyBpZiBUZWxlbWFjaHVzIGdvZXMgb24gYm9hcmQgc2hpcCwgaGUgd2lsbCBiZSBsaWtlIGhpcyBmYXRoZXIgYW5kIHBlcmlzaCBmYXIgZnJvbSBoaXMgZnJpZW5kcy4gSW4gdGhpcyBjYXNlIHdlIHNob3VsZCBoYXZlIHBsZW50eSB0byBkbywgZm9yIHdlIGNvdWxkIHRoZW4gZGl2aWRlIHVwIGhpcyBwcm9wZXJ0eSBhbW9uZ3N0IHVzOiBhcyBmb3IgdGhlIGhvdXNlIHdlIGNhbiBsZXQgaGlzIG1vdGhlciBhbmQgdGhlIG1hbiB3aG8gbWFycmllcyBoZXIgaGF2ZSB0aGF0LiINCg0KVGhpcyB3YXMgaG93IHRoZXkgdGFsa2VkLiBCdXQgVGVsZW1hY2h1cyB3ZW50IGRvd24gaW50byB0aGUgbG9mdHkgYW5kIHNwYWNpb3VzIHN0b3JlLXJvb20gd2hlcmUgaGlzIGZhdGhlcidzIHRyZWFzdXJlIG9mIGdvbGQgYW5kIGJyb256ZSBsYXkgaGVhcGVkIHVwIHVwb24gdGhlIGZsb29yLCBhbmQgd2hlcmUgdGhlIGxpbmVuIGFuZCBzcGFyZSBjbG90aGVzIHdlcmUga2VwdCBpbiBvcGVuIGNoZXN0cy4gSGVyZSwgdG9vLCB0aGVyZSB3YXMgYSBzdG9yZSBvZiBmcmFncmFudCBvbGl2ZSBvaWwsIHdoaWxlIGNhc2tzIG9mIG9sZCwgd2VsbC1yaXBlbmVkIHdpbmUsIHVuYmxlbmRlZCBhbmQgZml0IGZvciBhIGdvZCB0byBkcmluaywgd2VyZSByYW5nZWQgYWdhaW5zdCB0aGUgd2FsbCBpbiBjYXNlIFVseXNzZXMgc2hvdWxkIGNvbWUgaG9tZSBhZ2FpbiBhZnRlciBhbGwuIFRoZSByb29tIHdhcyBjbG9zZWQgd2l0aCB3ZWxsLW1hZGUgZG9vcnMgb3BlbmluZyBpbiB0aGUgbWlkZGxlOyBtb3Jlb3ZlciB0aGUgZmFpdGhmdWwgb2xkIGhvdXNlLWtlZXBlciBFdXJ5Y2xlYSwgZGF1Z2h0ZXIgb2YgT3BzIHRoZSBzb24gb2YgUGlzZW5vciwgd2FzIGluIGNoYXJnZSBvZiBldmVyeXRoaW5nIGJvdGggbmlnaHQgYW5kIGRheS4gVGVsZW1hY2h1cyBjYWxsZWQgaGVyIHRvIHRoZSBzdG9yZS1yb29tIGFuZCBzYWlkOg0KDQoiTnVyc2UsIGRyYXcgbWUgb2ZmIHNvbWUgb2YgdGhlIGJlc3Qgd2luZSB5b3UgaGF2ZSwgYWZ0ZXIgd2hhdCB5b3UgYXJlIGtlZXBpbmcgZm9yIG15IGZhdGhlcidzIG93biBkcmlua2luZywgaW4gY2FzZSwgcG9vciBtYW4sIGhlIHNob3VsZCBlc2NhcGUgZGVhdGgsIGFuZCBmaW5kIGhpcyB3YXkgaG9tZSBhZ2FpbiBhZnRlciBhbGwuIExldCBtZSBoYXZlIHR3ZWx2ZSBqYXJzLCBhbmQgc2VlIHRoYXQgdGhleSBhbGwgaGF2ZSBsaWRzOyBhbHNvIGZpbGwgbWUgc29tZSB3ZWxsLXNld24gbGVhdGhlcm4gYmFncyB3aXRoIGJhcmxleSBtZWFsLSBhYm91dCB0d2VudHkgbWVhc3VyZXMgaW4gYWxsLiBHZXQgdGhlc2UgdGhpbmdzIHB1dCB0b2dldGhlciBhdCBvbmNlLCBhbmQgc2F5IG5vdGhpbmcgYWJvdXQgaXQuIEkgd2lsbCB0YWtlIGV2ZXJ5dGhpbmcgYXdheSB0aGlzIGV2ZW5pbmcgYXMgc29vbiBhcyBteSBtb3RoZXIgaGFzIGdvbmUgdXBzdGFpcnMgZm9yIHRoZSBuaWdodC4gSSBhbSBnb2luZyB0byBTcGFydGEgYW5kIHRvIFB5bG9zIHRvIHNlZSBpZiBJIGNhbiBoZWFyIGFueXRoaW5nIGFib3V0IHRoZSByZXR1cm4gb2YgbXkgZGVhciBmYXRoZXIuDQoNCldoZW4gRXVyeWNsZWEgaGVhcmQgdGhpcyBzaGUgYmVnYW4gdG8gY3J5LCBhbmQgc3Bva2UgZm9uZGx5IHRvIGhpbSwgc2F5aW5nLCAiTXkgZGVhciBjaGlsZCwgd2hhdCBldmVyIGNhbiBoYXZlIHB1dCBzdWNoIG5vdGlvbiBhcyB0aGF0IGludG8geW91ciBoZWFkPyBXaGVyZSBpbiB0aGUgd29ybGQgZG8geW91IHdhbnQgdG8gZ28gdG8tIHlvdSwgd2hvIGFyZSB0aGUgb25lIGhvcGUgb2YgdGhlIGhvdXNlPyBZb3VyIHBvb3IgZmF0aGVyIGlzIGRlYWQgYW5kIGdvbmUgaW4gc29tZSBmb3JlaWduIGNvdW50cnkgbm9ib2R5IGtub3dzIHdoZXJlLCBhbmQgYXMgc29vbiBhcyB5b3VyIGJhY2sgaXMgdHVybmVkIHRoZXNlIHdpY2tlZCBvbmVzIGhlcmUgd2lsbCBiZSBzY2hlbWluZyB0byBnZXQgeW91IHB1dCBvdXQgb2YgdGhlIHdheSwgYW5kIHdpbGwgc2hhcmUgYWxsIHlvdXIgcG9zc2Vzc2lvbnMgYW1vbmcgdGhlbXNlbHZlczsgc3RheSB3aGVyZSB5b3UgYXJlIGFtb25nIHlvdXIgb3duIHBlb3BsZSwgYW5kIGRvIG5vdCBnbyB3YW5kZXJpbmcgYW5kIHdvcnJ5aW5nIHlvdXIgbGlmZSBvdXQgb24gdGhlIGJhcnJlbiBvY2Vhbi4iDQoNCiJGZWFyIG5vdCwgbnVyc2UsIiBhbnN3ZXJlZCBUZWxlbWFjaHVzLCAibXkgc2NoZW1lIGlzIG5vdCB3aXRob3V0IGhlYXZlbidzIHNhbmN0aW9uOyBidXQgc3dlYXIgdGhhdCB5b3Ugd2lsbCBzYXkgbm90aGluZyBhYm91dCBhbGwgdGhpcyB0byBteSBtb3RoZXIsIHRpbGwgSSBoYXZlIGJlZW4gYXdheSBzb21lIHRlbiBvciB0d2VsdmUgZGF5cywgdW5sZXNzIHNoZSBoZWFycyBvZiBteSBoYXZpbmcgZ29uZSwgYW5kIGFza3MgeW91OyBmb3IgSSBkbyBub3Qgd2FudCBoZXIgdG8gc3BvaWwgaGVyIGJlYXV0eSBieSBjcnlpbmcuIg0KDQpUaGUgb2xkIHdvbWFuIHN3b3JlIG1vc3Qgc29sZW1ubHkgdGhhdCBzaGUgd291bGQgbm90LCBhbmQgd2hlbiBzaGUgaGFkIGNvbXBsZXRlZCBoZXIgb2F0aCwgc2hlIGJlZ2FuIGRyYXdpbmcgb2ZmIHRoZSB3aW5lIGludG8gamFycywgYW5kIGdldHRpbmcgdGhlIGJhcmxleSBtZWFsIGludG8gdGhlIGJhZ3MsIHdoaWxlIFRlbGVtYWNodXMgd2VudCBiYWNrIHRvIHRoZSBzdWl0b3JzLg0KDQpUaGVuIE1pbmVydmEgYmV0aG91Z2h0IGhlciBvZiBhbm90aGVyIG1hdHRlci4gU2hlIHRvb2sgaGlzIHNoYXBlLCBhbmQgd2VudCByb3VuZCB0aGUgdG93biB0byBlYWNoIG9uZSBvZiB0aGUgY3JldywgdGVsbGluZyB0aGVtIHRvIG1lZXQgYXQgdGhlIHNoaXAgYnkgc3VuZG93bi4gU2hlIHdlbnQgYWxzbyB0byBOb2Vtb24gc29uIG9mIFBocm9uaXVzLCBhbmQgYXNrZWQgaGltIHRvIGxldCBoZXIgaGF2ZSBhIHNoaXAtIHdoaWNoIGhlIHdhcyB2ZXJ5IHJlYWR5IHRvIGRvLiBXaGVuIHRoZSBzdW4gaGFkIHNldCBhbmQgZGFya25lc3Mgd2FzIG92ZXIgYWxsIHRoZSBsYW5kLCBzaGUgZ290IHRoZSBzaGlwIGludG8gdGhlIHdhdGVyLCBwdXQgYWxsIHRoZSB0YWNrbGUgb24gYm9hcmQgaGVyIHRoYXQgc2hpcHMgZ2VuZXJhbGx5IGNhcnJ5LCBhbmQgc3RhdGlvbmVkIGhlciBhdCB0aGUgZW5kIG9mIHRoZSBoYXJib3VyLiBQcmVzZW50bHkgdGhlIGNyZXcgY2FtZSB1cCwgYW5kIHRoZSBnb2RkZXNzIHNwb2tlIGVuY291cmFnaW5nbHkgdG8gZWFjaCBvZiB0aGVtLg0KDQpGdXJ0aGVybW9yZSBzaGUgd2VudCB0byB0aGUgaG91c2Ugb2YgVWx5c3NlcywgYW5kIHRocmV3IHRoZSBzdWl0b3JzIGludG8gYSBkZWVwIHNsdW1iZXIuIFNoZSBjYXVzZWQgdGhlaXIgZHJpbmsgdG8gZnVkZGxlIHRoZW0sIGFuZCBtYWRlIHRoZW0gZHJvcCB0aGVpciBjdXBzIGZyb20gdGhlaXIgaGFuZHMsIHNvIHRoYXQgaW5zdGVhZCBvZiBzaXR0aW5nIG92ZXIgdGhlaXIgd2luZSwgdGhleSB3ZW50IGJhY2sgaW50byB0aGUgdG93biB0byBzbGVlcCwgd2l0aCB0aGVpciBleWVzIGhlYXZ5IGFuZCBmdWxsIG9mIGRyb3dzaW5lc3MuIFRoZW4gc2hlIHRvb2sgdGhlIGZvcm0gYW5kIHZvaWNlIG9mIE1lbnRvciwgYW5kIGNhbGxlZCBUZWxlbWFjaHVzIHRvIGNvbWUgb3V0c2lkZS4NCg0KIlRlbGVtYWNodXMsIiBzYWlkIHNoZSwgInRoZSBtZW4gYXJlIG9uIGJvYXJkIGFuZCBhdCB0aGVpciBvYXJzLCB3YWl0aW5nIGZvciB5b3UgdG8gZ2l2ZSB5b3VyIG9yZGVycywgc28gbWFrZSBoYXN0ZSBhbmQgbGV0IHVzIGJlIG9mZi4iDQoNCk9uIHRoaXMgc2hlIGxlZCB0aGUgd2F5LCB3aGlsZSBUZWxlbWFjaHVzIGZvbGxvd2VkIGluIGhlciBzdGVwcy4gV2hlbiB0aGV5IGdvdCB0byB0aGUgc2hpcCB0aGV5IGZvdW5kIHRoZSBjcmV3IHdhaXRpbmcgYnkgdGhlIHdhdGVyIHNpZGUsIGFuZCBUZWxlbWFjaHVzIHNhaWQsICJOb3cgbXkgbWVuLCBoZWxwIG1lIHRvIGdldCB0aGUgc3RvcmVzIG9uIGJvYXJkOyB0aGV5IGFyZSBhbGwgcHV0IHRvZ2V0aGVyIGluIHRoZSBjbG9pc3RlciwgYW5kIG15IG1vdGhlciBkb2VzIG5vdCBrbm93IGFueXRoaW5nIGFib3V0IGl0LCBub3IgYW55IG9mIHRoZSBtYWlkIHNlcnZhbnRzIGV4Y2VwdCBvbmUuIg0KDQpXaXRoIHRoZXNlIHdvcmRzIGhlIGxlZCB0aGUgd2F5IGFuZCB0aGUgb3RoZXJzIGZvbGxvd2VkIGFmdGVyLiBXaGVuIHRoZXkgaGFkIGJyb3VnaHQgdGhlIHRoaW5ncyBhcyBoZSB0b2xkIHRoZW0sIFRlbGVtYWNodXMgd2VudCBvbiBib2FyZCwgTWluZXJ2YSBnb2luZyBiZWZvcmUgaGltIGFuZCB0YWtpbmcgaGVyIHNlYXQgaW4gdGhlIHN0ZXJuIG9mIHRoZSB2ZXNzZWwsIHdoaWxlIFRlbGVtYWNodXMgc2F0IGJlc2lkZSBoZXIuIFRoZW4gdGhlIG1lbiBsb29zZWQgdGhlIGhhd3NlcnMgYW5kIHRvb2sgdGhlaXIgcGxhY2VzIG9uIHRoZSBiZW5jaGVzLiBNaW5lcnZhIHNlbnQgdGhlbSBhIGZhaXIgd2luZCBmcm9tIHRoZSBXZXN0LCB0aGF0IHdoaXN0bGVkIG92ZXIgdGhlIGRlZXAgYmx1ZSB3YXZlcyB3aGVyZW9uIFRlbGVtYWNodXMgdG9sZCB0aGVtIHRvIGNhdGNoIGhvbGQgb2YgdGhlIHJvcGVzIGFuZCBob2lzdCBzYWlsLCBhbmQgdGhleSBkaWQgYXMgaGUgdG9sZCB0aGVtLiBUaGV5IHNldCB0aGUgbWFzdCBpbiBpdHMgc29ja2V0IGluIHRoZSBjcm9zcyBwbGFuaywgcmFpc2VkIGl0LCBhbmQgbWFkZSBpdCBmYXN0IHdpdGggdGhlIGZvcmVzdGF5czsgdGhlbiB0aGV5IGhvaXN0ZWQgdGhlaXIgd2hpdGUgc2FpbHMgYWxvZnQgd2l0aCByb3BlcyBvZiB0d2lzdGVkIG94IGhpZGUuIEFzIHRoZSBzYWlsIGJlbGxpZWQgb3V0IHdpdGggdGhlIHdpbmQsIHRoZSBzaGlwIGZsZXcgdGhyb3VnaCB0aGUgZGVlcCBibHVlIHdhdGVyLCBhbmQgdGhlIGZvYW0gaGlzc2VkIGFnYWluc3QgaGVyIGJvd3MgYXMgc2hlIHNwZWQgb253YXJkLiBUaGVuIHRoZXkgbWFkZSBhbGwgZmFzdCB0aHJvdWdob3V0IHRoZSBzaGlwLCBmaWxsZWQgdGhlIG1peGluZy1ib3dscyB0byB0aGUgYnJpbSwgYW5kIG1hZGUgZHJpbmsgb2ZmZXJpbmdzIHRvIHRoZSBpbW1vcnRhbCBnb2RzIHRoYXQgYXJlIGZyb20gZXZlcmxhc3RpbmcsIGJ1dCBtb3JlIHBhcnRpY3VsYXJseSB0byB0aGUgZ3JleS1leWVkIGRhdWdodGVyIG9mIEpvdmUuDQoNClRodXMsIHRoZW4sIHRoZSBzaGlwIHNwZWQgb24gaGVyIHdheSB0aHJvdWdoIHRoZSB3YXRjaGVzIG9mIHRoZSBuaWdodCBmcm9tIGRhcmsgdGlsbCBkYXduLg0KDQpCb29rIElJSQ0KDQpCdXQgYXMgdGhlIHN1biB3YXMgcmlzaW5nIGZyb20gdGhlIGZhaXIgc2VhIGludG8gdGhlIGZpcm1hbWVudCBvZiBoZWF2ZW4gdG8gc2hlZCBsaWdodCBvbiBtb3J0YWxzIGFuZCBpbW1vcnRhbHMsIHRoZXkgcmVhY2hlZCBQeWxvcyB0aGUgY2l0eSBvZiBOZWxldXMuIE5vdyB0aGUgcGVvcGxlIG9mIFB5bG9zIHdlcmUgZ2F0aGVyZWQgb24gdGhlIHNlYSBzaG9yZSB0byBvZmZlciBzYWNyaWZpY2Ugb2YgYmxhY2sgYnVsbHMgdG8gTmVwdHVuZSBsb3JkIG9mIHRoZSBFYXJ0aHF1YWtlLiBUaGVyZSB3ZXJlIG5pbmUgZ3VpbGRzIHdpdGggZml2ZSBodW5kcmVkIG1lbiBpbiBlYWNoLCBhbmQgdGhlcmUgd2VyZSBuaW5lIGJ1bGxzIHRvIGVhY2ggZ3VpbGQuIEFzIHRoZXkgd2VyZSBlYXRpbmcgdGhlIGlud2FyZCBtZWF0cyBhbmQgYnVybmluZyB0aGUgdGhpZ2ggYm9uZXMgW29uIHRoZSBlbWJlcnNdIGluIHRoZSBuYW1lIG9mIE5lcHR1bmUsIFRlbGVtYWNodXMgYW5kIGhpcyBjcmV3IGFycml2ZWQsIGZ1cmxlZCB0aGVpciBzYWlscywgYnJvdWdodCB0aGVpciBzaGlwIHRvIGFuY2hvciwgYW5kIHdlbnQgYXNob3JlLg0KDQpNaW5lcnZhIGxlZCB0aGUgd2F5IGFuZCBUZWxlbWFjaHVzIGZvbGxvd2VkIGhlci4gUHJlc2VudGx5IHNoZSBzYWlkLCAiVGVsZW1hY2h1cywgeW91IG11c3Qgbm90IGJlIGluIHRoZSBsZWFzdCBzaHkgb3IgbmVydm91czsgeW91IGhhdmUgdGFrZW4gdGhpcyB2b3lhZ2UgdG8gdHJ5IGFuZCBmaW5kIG91dCB3aGVyZSB5b3VyIGZhdGhlciBpcyBidXJpZWQgYW5kIGhvdyBoZSBjYW1lIGJ5IGhpcyBlbmQ7IHNvIGdvIHN0cmFpZ2h0IHVwIHRvIE5lc3RvciB0aGF0IHdlIG1heSBzZWUgd2hhdCBoZSBoYXMgZ290IHRvIHRlbGwgdXMuIEJlZyBvZiBoaW0gdG8gc3BlYWsgdGhlIHRydXRoLCBhbmQgaGUgd2lsbCB0ZWxsIG5vIGxpZXMsIGZvciBoZSBpcyBhbiBleGNlbGxlbnQgcGVyc29uLiINCg0KIkJ1dCBob3csIE1lbnRvciwiIHJlcGxpZWQgVGVsZW1hY2h1cywgImRhcmUgSSBnbyB1cCB0byBOZXN0b3IsIGFuZCBob3cgYW0gSSB0byBhZGRyZXNzIGhpbT8gSSBoYXZlIG5ldmVyIHlldCBiZWVuIHVzZWQgdG8gaG9sZGluZyBsb25nIGNvbnZlcnNhdGlvbnMgd2l0aCBwZW9wbGUsIGFuZCBhbSBhc2hhbWVkIHRvIGJlZ2luIHF1ZXN0aW9uaW5nIG9uZSB3aG8gaXMgc28gbXVjaCBvbGRlciB0aGFuIG15c2VsZi4iDQoNCiJTb21lIHRoaW5ncywgVGVsZW1hY2h1cywiIGFuc3dlcmVkIE1pbmVydmEsICJ3aWxsIGJlIHN1Z2dlc3RlZCB0byB5b3UgYnkgeW91ciBvd24gaW5zdGluY3QsIGFuZCBoZWF2ZW4gd2lsbCBwcm9tcHQgeW91IGZ1cnRoZXI7IGZvciBJIGFtIGFzc3VyZWQgdGhhdCB0aGUgZ29kcyBoYXZlIGJlZW4gd2l0aCB5b3UgZnJvbSB0aGUgdGltZSBvZiB5b3VyIGJpcnRoIHVudGlsIG5vdy4iDQoNClNoZSB0aGVuIHdlbnQgcXVpY2tseSBvbiwgYW5kIFRlbGVtYWNodXMgZm9sbG93ZWQgaW4gaGVyIHN0ZXBzIHRpbGwgdGhleSByZWFjaGVkIHRoZSBwbGFjZSB3aGVyZSB0aGUgZ3VpbGRzIG9mIHRoZSBQeWxpYW4gcGVvcGxlIHdlcmUgYXNzZW1ibGVkLiBUaGVyZSB0aGV5IGZvdW5kIE5lc3RvciBzaXR0aW5nIHdpdGggaGlzIHNvbnMsIHdoaWxlIGhpcyBjb21wYW55IHJvdW5kIGhpbSB3ZXJlIGJ1c3kgZ2V0dGluZyBkaW5uZXIgcmVhZHksIGFuZCBwdXR0aW5nIHBpZWNlcyBvZiBtZWF0IG9uIHRvIHRoZSBzcGl0cyB3aGlsZSBvdGhlciBwaWVjZXMgd2VyZSBjb29raW5nLiBXaGVuIHRoZXkgc2F3IHRoZSBzdHJhbmdlcnMgdGhleSBjcm93ZGVkIHJvdW5kIHRoZW0sIHRvb2sgdGhlbSBieSB0aGUgaGFuZCBhbmQgYmFkZSB0aGVtIHRha2UgdGhlaXIgcGxhY2VzLiBOZXN0b3IncyBzb24gUGlzaXN0cmF0dXMgYXQgb25jZSBvZmZlcmVkIGhpcyBoYW5kIHRvIGVhY2ggb2YgdGhlbSwgYW5kIHNlYXRlZCB0aGVtIG9uIHNvbWUgc29mdCBzaGVlcHNraW5zIHRoYXQgd2VyZSBseWluZyBvbiB0aGUgc2FuZHMgbmVhciBoaXMgZmF0aGVyIGFuZCBoaXMgYnJvdGhlciBUaHJhc3ltZWRlcy4gVGhlbiBoZSBnYXZlIHRoZW0gdGhlaXIgcG9ydGlvbnMgb2YgdGhlIGlud2FyZCBtZWF0cyBhbmQgcG91cmVkIHdpbmUgZm9yIHRoZW0gaW50byBhIGdvbGRlbiBjdXAsIGhhbmRpbmcgaXQgdG8gTWluZXJ2YSBmaXJzdCwgYW5kIHNhbHV0aW5nIGhlciBhdCB0aGUgc2FtZSB0aW1lLg0KDQoiT2ZmZXIgYSBwcmF5ZXIsIHNpciwiIHNhaWQgaGUsICJ0byBLaW5nIE5lcHR1bmUsIGZvciBpdCBpcyBoaXMgZmVhc3QgdGhhdCB5b3UgYXJlIGpvaW5pbmc7IHdoZW4geW91IGhhdmUgZHVseSBwcmF5ZWQgYW5kIG1hZGUgeW91ciBkcmluay1vZmZlcmluZywgcGFzcyB0aGUgY3VwIHRvIHlvdXIgZnJpZW5kIHRoYXQgaGUgbWF5IGRvIHNvIGFsc28uIEkgZG91YnQgbm90IHRoYXQgaGUgdG9vIGxpZnRzIGhpcyBoYW5kcyBpbiBwcmF5ZXIsIGZvciBtYW4gY2Fubm90IGxpdmUgd2l0aG91dCBHb2QgaW4gdGhlIHdvcmxkLiBTdGlsbCBoZSBpcyB5b3VuZ2VyIHRoYW4geW91IGFyZSwgYW5kIGlzIG11Y2ggb2YgYW4gYWdlIHdpdGggbXlzZWxmLCBzbyBJIGhlIGhhbmRlZCBJIHdpbGwgZ2l2ZSB5b3UgdGhlIHByZWNlZGVuY2UuIg0KDQpBcyBoZSBzcG9rZSBoZSBoYW5kZWQgaGVyIHRoZSBjdXAuIE1pbmVydmEgdGhvdWdodCBpdCB2ZXJ5IHJpZ2h0IGFuZCBwcm9wZXIgb2YgaGltIHRvIGhhdmUgZ2l2ZW4gaXQgdG8gaGVyc2VsZiBmaXJzdDsgc2hlIGFjY29yZGluZ2x5IGJlZ2FuIHByYXlpbmcgaGVhcnRpbHkgdG8gTmVwdHVuZS4gIk8gdGhvdSwiIHNoZSBjcmllZCwgInRoYXQgZW5jaXJjbGVzdCB0aGUgZWFydGgsIHZvdWNoc2FmZSB0byBncmFudCB0aGUgcHJheWVycyBvZiB0aHkgc2VydmFudHMgdGhhdCBjYWxsIHVwb24gdGhlZS4gTW9yZSBlc3BlY2lhbGx5IHdlIHByYXkgdGhlZSBzZW5kIGRvd24gdGh5IGdyYWNlIG9uIE5lc3RvciBhbmQgb24gaGlzIHNvbnM7IHRoZXJlYWZ0ZXIgYWxzbyBtYWtlIHRoZSByZXN0IG9mIHRoZSBQeWxpYW4gcGVvcGxlIHNvbWUgaGFuZHNvbWUgcmV0dXJuIGZvciB0aGUgZ29vZGx5IGhlY2F0b21iIHRoZXkgYXJlIG9mZmVyaW5nIHlvdS4gTGFzdGx5LCBncmFudCBUZWxlbWFjaHVzIGFuZCBteXNlbGYgYSBoYXBweSBpc3N1ZSwgaW4gcmVzcGVjdCBvZiB0aGUgbWF0dGVyIHRoYXQgaGFzIGJyb3VnaHQgdXMgaW4gb3VyIHRvIFB5bG9zLiINCg0KV2hlbiBzaGUgaGFkIHRodXMgbWFkZSBhbiBlbmQgb2YgcHJheWluZywgc2hlIGhhbmRlZCB0aGUgY3VwIHRvIFRlbGVtYWNodXMgYW5kIGhlIHByYXllZCBsaWtld2lzZS4gQnkgYW5kIGJ5LCB3aGVuIHRoZSBvdXRlciBtZWF0cyB3ZXJlIHJvYXN0ZWQgYW5kIGhhZCBiZWVuIHRha2VuIG9mZiB0aGUgc3BpdHMsIHRoZSBjYXJ2ZXJzIGdhdmUgZXZlcnkgbWFuIGhpcyBwb3J0aW9uIGFuZCB0aGV5IGFsbCBtYWRlIGFuIGV4Y2VsbGVudCBkaW5uZXIuIEFzIHNvb24gYXMgdGhleSBoYWQgaGFkIGVub3VnaCB0byBlYXQgYW5kIGRyaW5rLCBOZXN0b3IsIGtuaWdodCBvZiBHZXJlbmUsIGJlZ2FuIHRvIHNwZWFrLg0KDQoiTm93LCIgc2FpZCBoZSwgInRoYXQgb3VyIGd1ZXN0cyBoYXZlIGRvbmUgdGhlaXIgZGlubmVyLCBpdCB3aWxsIGJlIGJlc3QgdG8gYXNrIHRoZW0gd2hvIHRoZXkgYXJlLiBXaG8sIHRoZW4sIHNpciBzdHJhbmdlcnMsIGFyZSB5b3UsIGFuZCBmcm9tIHdoYXQgcG9ydCBoYXZlIHlvdSBzYWlsZWQ/IEFyZSB5b3UgdHJhZGVycz8gb3IgZG8geW91IHNhaWwgdGhlIHNlYXMgYXMgcm92ZXJzIHdpdGggeW91ciBoYW5kIGFnYWluc3QgZXZlcnkgbWFuLCBhbmQgZXZlcnkgbWFuJ3MgaGFuZCBhZ2FpbnN0IHlvdT8iDQoNClRlbGVtYWNodXMgYW5zd2VyZWQgYm9sZGx5LCBmb3IgTWluZXJ2YSBoYWQgZ2l2ZW4gaGltIGNvdXJhZ2UgdG8gYXNrIGFib3V0IGhpcyBmYXRoZXIgYW5kIGdldCBoaW1zZWxmIGEgZ29vZCBuYW1lLg0KDQoiTmVzdG9yLCIgc2FpZCBoZSwgInNvbiBvZiBOZWxldXMsIGhvbm91ciB0byB0aGUgQWNoYWVhbiBuYW1lLCB5b3UgYXNrIHdoZW5jZSB3ZSBjb21lLCBhbmQgSSB3aWxsIHRlbGwgeW91LiBXZSBjb21lIGZyb20gSXRoYWNhIHVuZGVyIE5lcml0dW0sIGFuZCB0aGUgbWF0dGVyIGFib3V0IHdoaWNoIEkgd291bGQgc3BlYWsgaXMgb2YgcHJpdmF0ZSBub3QgcHVibGljIGltcG9ydC4gSSBzZWVrIG5ld3Mgb2YgbXkgdW5oYXBweSBmYXRoZXIgVWx5c3Nlcywgd2hvIGlzIHNhaWQgdG8gaGF2ZSBzYWNrZWQgdGhlIHRvd24gb2YgVHJveSBpbiBjb21wYW55IHdpdGggeW91cnNlbGYuIFdlIGtub3cgd2hhdCBmYXRlIGJlZmVsbCBlYWNoIG9uZSBvZiB0aGUgb3RoZXIgaGVyb2VzIHdobyBmb3VnaHQgYXQgVHJveSwgYnV0IGFzIHJlZ2FyZHMgVWx5c3NlcyBoZWF2ZW4gaGFzIGhpZGRlbiBmcm9tIHVzIHRoZSBrbm93bGVkZ2UgZXZlbiB0aGF0IGhlIGlzIGRlYWQgYXQgYWxsLCBmb3Igbm8gb25lIGNhbiBjZXJ0aWZ5IHVzIGluIHdoYXQgcGxhY2UgaGUgcGVyaXNoZWQsIG5vciBzYXkgd2hldGhlciBoZSBmZWxsIGluIGJhdHRsZSBvbiB0aGUgbWFpbmxhbmQsIG9yIHdhcyBsb3N0IGF0IHNlYSBhbWlkIHRoZSB3YXZlcyBvZiBBbXBoaXRyaXRlLiBUaGVyZWZvcmUgSSBhbSBzdXBwbGlhbnQgYXQgeW91ciBrbmVlcywgaWYgaGFwbHkgeW91IG1heSBiZSBwbGVhc2VkIHRvIHRlbGwgbWUgb2YgaGlzIG1lbGFuY2hvbHkgZW5kLCB3aGV0aGVyIHlvdSBzYXcgaXQgd2l0aCB5b3VyIG93biBleWVzLCBvciBoZWFyZCBpdCBmcm9tIHNvbWUgb3RoZXIgdHJhdmVsbGVyLCBmb3IgaGUgd2FzIGEgbWFuIGJvcm4gdG8gdHJvdWJsZS4gRG8gbm90IHNvZnRlbiB0aGluZ3Mgb3V0IG9mIGFueSBwaXR5IGZvciBtZSwgYnV0IHRlbGwgbWUgaW4gYWxsIHBsYWlubmVzcyBleGFjdGx5IHdoYXQgeW91IHNhdy4gSWYgbXkgYnJhdmUgZmF0aGVyIFVseXNzZXMgZXZlciBkaWQgeW91IGxveWFsIHNlcnZpY2UsIGVpdGhlciBieSB3b3JkIG9yIGRlZWQsIHdoZW4geW91IEFjaGFlYW5zIHdlcmUgaGFyYXNzZWQgYW1vbmcgdGhlIFRyb2phbnMsIGJlYXIgaXQgaW4gbWluZCBub3cgYXMgaW4gbXkgZmF2b3VyIGFuZCB0ZWxsIG1lIHRydWx5IGFsbC4iDQoNCiJNeSBmcmllbmQsIiBhbnN3ZXJlZCBOZXN0b3IsICJ5b3UgcmVjYWxsIGEgdGltZSBvZiBtdWNoIHNvcnJvdyB0byBteSBtaW5kLCBmb3IgdGhlIGJyYXZlIEFjaGFlYW5zIHN1ZmZlcmVkIG11Y2ggYm90aCBhdCBzZWEsIHdoaWxlIHByaXZhdGVlcmluZyB1bmRlciBBY2hpbGxlcywgYW5kIHdoZW4gZmlnaHRpbmcgYmVmb3JlIHRoZSBncmVhdCBjaXR5IG9mIGtpbmcgUHJpYW0uIE91ciBiZXN0IG1lbiBhbGwgb2YgdGhlbSBmZWxsIHRoZXJlLSBBamF4LCBBY2hpbGxlcywgUGF0cm9jbHVzIHBlZXIgb2YgZ29kcyBpbiBjb3Vuc2VsLCBhbmQgbXkgb3duIGRlYXIgc29uIEFudGlsb2NodXMsIGEgbWFuIHNpbmd1bGFybHkgZmxlZXQgb2YgZm9vdCBhbmQgaW4gZmlnaHQgdmFsaWFudC4gQnV0IHdlIHN1ZmZlcmVkIG11Y2ggbW9yZSB0aGFuIHRoaXM7IHdoYXQgbW9ydGFsIHRvbmd1ZSBpbmRlZWQgY291bGQgdGVsbCB0aGUgd2hvbGUgc3Rvcnk/IFRob3VnaCB5b3Ugd2VyZSB0byBzdGF5IGhlcmUgYW5kIHF1ZXN0aW9uIG1lIGZvciBmaXZlIHllYXJzLCBvciBldmVuIHNpeCwgSSBjb3VsZCBub3QgdGVsbCB5b3UgYWxsIHRoYXQgdGhlIEFjaGFlYW5zIHN1ZmZlcmVkLCBhbmQgeW91IHdvdWxkIHR1cm4gaG9tZXdhcmQgd2Vhcnkgb2YgbXkgdGFsZSBiZWZvcmUgaXQgZW5kZWQuIE5pbmUgbG9uZyB5ZWFycyBkaWQgd2UgdHJ5IGV2ZXJ5IGtpbmQgb2Ygc3RyYXRhZ2VtLCBidXQgdGhlIGhhbmQgb2YgaGVhdmVuIHdhcyBhZ2FpbnN0IHVzOyBkdXJpbmcgYWxsIHRoaXMgdGltZSB0aA=="
          },
          "response": {
            "data": "SGVsbG8sIHdvcmxkIQ=="
          }
        },
        {
          "timestamp": "2015-01-18T14:59:36.127Z",
          "request": {
            "requestFrom": "127.0.0.1:53172",
            "data": "ZXJlIHdhcyBubyBvbmUgd2hvIGNvdWxkIGNvbXBhcmUgd2l0aCB5b3VyIGZhdGhlciBpbiBzdWJ0bGV0eS0gaWYgaW5kZWVkIHlvdSBhcmUgaGlzIHNvbi0gSSBjYW4gaGFyZGx5IGJlbGlldmUgbXkgZXllcy0gYW5kIHlvdSB0YWxrIGp1c3QgbGlrZSBoaW0gdG9vLSBubyBvbmUgd291bGQgc2F5IHRoYXQgcGVvcGxlIG9mIHN1Y2ggZGlmZmVyZW50IGFnZXMgY291bGQgc3BlYWsgc28gbXVjaCBhbGlrZS4gSGUgYW5kIEkgbmV2ZXIgaGFkIGFueSBraW5kIG9mIGRpZmZlcmVuY2UgZnJvbSBmaXJzdCB0byBsYXN0IG5laXRoZXIgaW4gY2FtcCBub3IgY291bmNpbCwgYnV0IGluIHNpbmdsZW5lc3Mgb2YgaGVhcnQgYW5kIHB1cnBvc2Ugd2UgYWR2aXNlZCB0aGUgQXJnaXZlcyBob3cgYWxsIG1pZ2h0IGJlIG9yZGVyZWQgZm9yIHRoZSBiZXN0Lg0KDQoiV2hlbiBob3dldmVyLCB3ZSBoYWQgc2Fja2VkIHRoZSBjaXR5IG9mIFByaWFtLCBhbmQgd2VyZSBzZXR0aW5nIHNhaWwgaW4gb3VyIHNoaXBzIGFzIGhlYXZlbiBoYWQgZGlzcGVyc2VkIHVzLCB0aGVuIEpvdmUgc2F3IGZpdCB0byB2ZXggdGhlIEFyZ2l2ZXMgb24gdGhlaXIgaG9tZXdhcmQgdm95YWdlOyBmb3IgdGhleSBoYWQgTm90IGFsbCBiZWVuIGVpdGhlciB3aXNlIG9yIHVuZGVyc3RhbmRpbmcsIGFuZCBoZW5jZSBtYW55IGNhbWUgdG8gYSBiYWQgZW5kIHRocm91Z2ggdGhlIGRpc3BsZWFzdXJlIG9mIEpvdmUncyBkYXVnaHRlciBNaW5lcnZhLCB3aG8gYnJvdWdodCBhYm91dCBhIHF1YXJyZWwgYmV0d2VlbiB0aGUgdHdvIHNvbnMgb2YgQXRyZXVzLg0KDQoiVGhlIHNvbnMgb2YgQXRyZXVzIGNhbGxlZCBhIG1lZXRpbmcgd2hpY2ggd2FzIG5vdCBhcyBpdCBzaG91bGQgYmUsIGZvciBpdCB3YXMgc3Vuc2V0IGFuZCB0aGUgQWNoYWVhbnMgd2VyZSBoZWF2eSB3aXRoIHdpbmUuIFdoZW4gdGhleSBleHBsYWluZWQgd2h5IHRoZXkgaGFkIGNhbGxlZC0gdGhlIHBlb3BsZSB0b2dldGhlciwgaXQgc2VlbWVkIHRoYXQgTWVuZWxhdXMgd2FzIGZvciBzYWlsaW5nIGhvbWV3YXJkIGF0IG9uY2UsIGFuZCB0aGlzIGRpc3BsZWFzZWQgQWdhbWVtbm9uLCB3aG8gdGhvdWdodCB0aGF0IHdlIHNob3VsZCB3YWl0IHRpbGwgd2UgaGFkIG9mZmVyZWQgaGVjYXRvbWJzIHRvIGFwcGVhc2UgdGhlIGFuZ2VyIG9mIE1pbmVydmEuIEZvb2wgdGhhdCBoZSB3YXMsIGhlIG1pZ2h0IGhhdmUga25vd24gdGhhdCBoZSB3b3VsZCBub3QgcHJldmFpbCB3aXRoIGhlciwgZm9yIHdoZW4gdGhlIGdvZHMgaGF2ZSBtYWRlIHVwIHRoZWlyIG1pbmRzIHRoZXkgZG8gbm90IGNoYW5nZSB0aGVtIGxpZ2h0bHkuIFNvIHRoZSB0d28gc3Rvb2QgYmFuZHlpbmcgaGFyZCB3b3Jkcywgd2hlcmVvbiB0aGUgQWNoYWVhbnMgc3ByYW5nIHRvIHRoZWlyIGZlZXQgd2l0aCBhIGNyeSB0aGF0IHJlbnQgdGhlIGFpciwgYW5kIHdlcmUgb2YgdHdvIG1pbmRzIGFzIHRvIHdoYXQgdGhleSBzaG91bGQgZG8uDQoNCiJUaGF0IG5pZ2h0IHdlIHJlc3RlZCBhbmQgbnVyc2VkIG91ciBhbmdlciwgZm9yIEpvdmUgd2FzIGhhdGNoaW5nIG1pc2NoaWVmIGFnYWluc3QgdXMuIEJ1dCBpbiB0aGUgbW9ybmluZyBzb21lIG9mIHVzIGRyZXcgb3VyIHNoaXBzIGludG8gdGhlIHdhdGVyIGFuZCBwdXQgb3VyIGdvb2RzIHdpdGggb3VyIHdvbWVuIG9uIGJvYXJkLCB3aGlsZSB0aGUgcmVzdCwgYWJvdXQgaGFsZiBpbiBudW1iZXIsIHN0YXllZCBiZWhpbmQgd2l0aCBBZ2FtZW1ub24uIFdlLSB0aGUgb3RoZXIgaGFsZi0gZW1iYXJrZWQgYW5kIHNhaWxlZDsgYW5kIHRoZSBzaGlwcyB3ZW50IHdlbGwsIGZvciBoZWF2ZW4gaGFkIHNtb290aGVkIHRoZSBzZWEuIFdoZW4gd2UgcmVhY2hlZCBUZW5lZG9zIHdlIG9mZmVyZWQgc2FjcmlmaWNlcyB0byB0aGUgZ29kcywgZm9yIHdlIHdlcmUgbG9uZ2luZyB0byBnZXQgaG9tZTsgY3J1ZWwgSm92ZSwgaG93ZXZlciwgZGlkIG5vdCB5ZXQgbWVhbiB0aGF0IHdlIHNob3VsZCBkbyBzbywgYW5kIHJhaXNlZCBhIHNlY29uZCBxdWFycmVsIGluIHRoZSBjb3Vyc2Ugb2Ygd2hpY2ggc28="
          },
          "response": {
            "data": "SGVsbG8sIHdvcmxkIQ=="
          }
        },
        {
          "timestamp": "2015-01-18T14:59:36.133Z",
          "request": {
            "requestFrom": "127.0.0.1:53172",
            "data": "bWUgYW1vbmcgdXMgdHVybmVkIHRoZWlyIHNoaXBzIGJhY2sgYWdhaW4sIGFuZCBzYWlsZWQgYXdheSB1bmRlciBVbHlzc2VzIHRvIG1ha2UgdGhlaXIgcGVhY2Ugd2l0aCBBZ2FtZW1ub247IGJ1dCBJLCBhbmQgYWxsIHRoZSBzaGlwcyB0aGF0IHdlcmUgd2l0aCBtZSBwcmVzc2VkIGZvcndhcmQsIGZvciBJIHNhdyB0aGF0IG1pc2NoaWVmIHdhcyBicmV3aW5nLiBUaGUgc29uIG9mIFR5ZGV1cyB3ZW50IG9uIGFsc28gd2l0aCBtZSwgYW5kIGhpcyBjcmV3cyB3aXRoIGhpbS4gTGF0ZXIgb24gTWVuZWxhdXMgam9pbmVkIHVzIGF0IExlc2JvcywgYW5kIGZvdW5kIHVzIG1ha2luZyB1cCBvdXIgbWluZHMgYWJvdXQgb3VyIGNvdXJzZS0gZm9yIHdlIGRpZCBub3Qga25vdyB3aGV0aGVyIHRvIGdvIG91dHNpZGUgQ2hpb3MgYnkgdGhlIGlzbGFuZCBvZiBQc3lyYSwga2VlcGluZyB0aGlzIHRvIG91ciBsZWZ0LCBvciBpbnNpZGUgQ2hpb3MsIG92ZXIgYWdhaW5zdCB0aGUgc3Rvcm15IGhlYWRsYW5kIG9mIE1pbWFzLiBTbyB3ZSBhc2tlZCBoZWF2ZW4gZm9yIGEgc2lnbiwgYW5kIHdlcmUgc2hvd24gb25lIHRvIHRoZSBlZmZlY3QgdGhhdCB3ZSBzaG91bGQgYmUgc29vbmVzdCBvdXQgb2YgZGFuZ2VyIGlmIHdlIGhlYWRlZCBvdXIgc2hpcHMgYWNyb3NzIHRoZSBvcGVuIHNlYSB0byBFdWJvZWEuIFRoaXMgd2UgdGhlcmVmb3JlIGRpZCwgYW5kIGEgZmFpciB3aW5kIHNwcmFuZyB1cCB3aGljaCBnYXZlIHVzIGEgcXVpY2sgcGFzc2FnZSBkdXJpbmcgdGhlIG5pZ2h0IHRvIEdlcmFlc3R1cywgd2hlcmUgd2Ugb2ZmZXJlZCBtYW55IHNhY3JpZmljZXMgdG8gTmVwdHVuZSBmb3IgaGF2aW5nIGhlbHBlZCB1cyBzbyBmYXIgb24gb3VyIHdheS4gRm91ciBkYXlzIGxhdGVyIERpb21lZCBhbmQgaGlzIG1lbiBzdGF0aW9uZWQgdGhlaXIgc2hpcHMgaW4gQXJnb3MsIGJ1dCBJIGhlbGQgb24gZm9yIFB5bG9zLCBhbmQgdGhlIHdpbmQgbmV2ZXIgZmVsbCBsaWdodCBmcm9tIHRoZSBkYXkgd2hlbiBoZWF2ZW4gZmlyc3QgbWFkZSBpdCBmYWlyIGZvciBtZS4NCg0KIlRoZXJlZm9yZSwgbXkgZGVhciB5b3VuZyBmcmllbmQsIEkgcmV0dXJuZWQgd2l0aG91dCBoZWFyaW5nIGFueXRoaW5nIGFib3V0IHRoZSBvdGhlcnMuIEkga25vdyBuZWl0aGVyIHdobyBnb3QgaG9tZSBzYWZlbHkgbm9yIHdobyB3ZXJlIGxvc3QgYnV0LCBhcyBpbiBkdXR5IGJvdW5kLCBJIHdpbGwgZ2l2ZSB5b3Ugd2l0aG91dCByZXNlcnZlIHRoZSByZXBvcnRzIHRoYXQgaGF2ZSByZWFjaGVkIG1lIHNpbmNlIEkgaGF2ZSBiZWVuIGhlcmUgaW4gbXkgb3duIGhvdXNlLiBUaGV5IHNheSB0aGUgTXlybWlkb25zIHJldHVybmVkIGhvbWUgc2FmZWx5IHVuZGVyIEFjaGlsbGVzJyBzb24gTmVvcHRvbGVtdXM7IHNvIGFsc28gZGlkIHRoZSB2YWxpYW50IHNvbiBvZiBQb2lhcywgUGhpbG9jdGV0ZXMuIElkb21lbmV1cywgYWdhaW4sIGxvc3Qgbm8gbWVuIGF0IHNlYSwgYW5kIGFsbCBoaXMgZm9sbG93ZXJzIHdobyBlc2NhcGVkIGRlYXRoIGluIHRoZSBmaWVsZCBnb3Qgc2FmZSBob21lIHdpdGggaGltIHRvIENyZXRlLiBObyBtYXR0ZXIgaG93IGZhciBvdXQgb2YgdGhlIHdvcmxkIHlvdSBsaXZlLCB5b3Ugd2lsbCBoYXZlIGhlYXJkIG9mIEFnYW1lbW5vbiBhbmQgdGhlIGJhZCBlbmQgaGUgY2FtZSB0byBhdCB0aGUgaGFuZHMgb2YgQWVnaXN0aHVzLSBhbmQgYSBmZWFyZnVsIHJlY2tvbmluZyBkaWQgQWVnaXN0aHVzIHByZXNlbnRseSBwYXkuIFNlZSB3aGF0IGEgZ29vZCB0aGluZyBpdCBpcyBmb3IgYSBtYW4gdG8gbGVhdmUgYSBzb24gYmVoaW5kIGhpbSB0byBkbyBhcyBPcmVzdGVzIGRpZCwgd2hvIGtpbGxlZCBmYWxzZSBBZWdpc3RodXMgdGhlIG11cmRlcmVyIG9mIGhpcyBub2JsZSBmYXRoZXIuIFlvdSB0b28sIHRoZW4tIGZvciB5b3UgYXJlIGEgdGFsbCwgc21hcnQtbG9va2luZyBmZWxsb3ctIHNob3cgeW91ciBtZXR0bGUgYW5kIG1ha2UgeW91cnNlbGYgYSBuYW1lIGluIHN0b3J5LiINCg0KIk5lc3RvciBzb24gb2YgTmVsZXVzLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgImhvbm91ciB0byB0aGUgQWNoYWVhbiBuYW1lLCB0aGUgQWNoYWVhbnMgYXBwbGF1ZCBPcmVzdGVzIGFuZCBoaXMgbmFtZSB3aWxsIGxpdmUgdGhyb3VnaCBhbGwgdGltZSBmb3IgaGUgaGFzIGF2ZW5nZWQgaGlzIGZhdGhlciBub2JseS4gV291bGQgdGhhdCBoZWF2ZW4gbWlnaHQgZ3JhbnQgbWUgdG8gZG8gbGlrZSB2ZW5nZWFuY2Ugb24gdGhlIGluc29sZW5jZSBvZiB0aGUgd2lja2VkIHN1aXRvcnMsIHdobyBhcmUgaWxsIHRyZWF0aW5nIG1lIGFuZCBwbG90dGluZyBteSBydWluOyBidXQgdGhlIGdvZHMgaGF2ZSBubyBzdWNoIGhhcHBpbmVzcyBpbiBzdG9yZSBmb3IgbWUgYW5kIGZvciBteSBmYXRoZXIsIHNvIHdlIG11c3QgYmVhciBpdCBhcyBiZXN0IHdlIG1heS4iDQoNCiJNeSBmcmllbmQsIiBzYWlkIE5lc3RvciwgIm5vdyB0aGF0IHlvdSByZW1pbmQgbWUsIEkgcmVtZW1iZXIgdG8gaGF2ZSBoZWFyZCB0aGF0IHlvdXIgbW90aGVyIGhhcyBtYW55IHN1aXRvcnMsIHdobyBhcmUgaWxsIGRpc3Bvc2VkIHRvd2FyZHMgeW91IGFuZCBhcmUgbWFraW5nIGhhdm9jIG9mIHlvdXIgZXN0YXRlLiBEbyB5b3Ugc3VibWl0IHRvIHRoaXMgdGFtZWx5LCBvciBhcmUgcHVibGljIGZlZWxpbmcgYW5kIHRoZSB2b2ljZSBvZiBoZWF2ZW4gYWdhaW5zdCB5b3U/IFdobyBrbm93cyBidXQgd2hhdCBVbHlzc2VzIG1heSBjb21lIGJhY2sgYWZ0ZXIgYWxsLCBhbmQgcGF5IHRoZXNlIHNjb3VuZHJlbHMgaW4gZnVsbCwgZWl0aGVyIHNpbmdsZS1oYW5kZWQgb3Igd2l0aCBhIGZvcmNlIG9mIEFjaGFlYW5zIGJlaGluZCBoaW0/IElmIE1pbmVydmEgd2VyZSB0byB0YWtlIGFzIGdyZWF0IGEgbGlraW5nIHRvIHlvdSBhcyBzaGUgZGlkIHRvIFVseXNzZXMgd2hlbiB3ZSB3ZXJlIGZpZ2h0aW5nIGJlZm9yZSBUcm95IChmb3IgSSBuZXZlciB5ZXQgc2F3IHRoZSBnb2RzIHNvIG9wZW5seSBmb25kIG9mIGFueSBvbmUgYXMgTWluZXJ2YSB0aGVuIHdhcyBvZiB5b3VyIGZhdGhlciksIGlmIHNoZSB3b3VsZCB0YWtlIGFzIGdvb2QgY2FyZSBvZiB5b3UgYXMgc2hlIGRpZCBvZiBoaW0sIHRoZXNlIHdvb2VycyB3b3VsZCBzb29uIHNvbWUgb2YgdGhlbSBoaW0sIGZvcmdldCB0aGVpciB3b29pbmcuIg0KDQpUZWxlbWFjaHVzIGFuc3dlcmVkLCAiSSBjYW4gZXhwZWN0IG5vdGhpbmcgb2YgdGhlIGtpbmQ7IGl0IHdvdWxkIGJlIGZhciB0b28gbXVjaCB0byBob3BlIGZvci4gSSBkYXJlIG5vdCBsZXQgbXlzZWxmIHRoaW5rIG9mIGl0LiBFdmVuIHRob3VnaCB0aGUgZ29kcyB0aGVtc2VsdmVzIHdpbGxlZCBpdCBubyBzdWNoIGdvb2QgZm9ydHVuZSBjb3VsZCBiZWZhbGwgbWUuIg0KDQpPbiB0aGlzIE1pbmVydmEgc2FpZCwgIlRlbGVtYWNodXMsIHdoYXQgYXJlIHlvdSB0YWxraW5nIGFib3V0PyBIZWF2ZW4gaGFzIGEgbG9uZyBhcm0gaWYgaXQgaXMgbWluZGVkIHRvIHNhdmUgYSBtYW47IGFuZCBpZiBpdCB3ZXJlIG1lLCBJIHNob3VsZCBub3QgY2FyZSBob3cgbXVjaCBJIHN1ZmZlcmVkIGJlZm9yZSBnZXR0aW5nIGhvbWUsIHByb3ZpZGVkIEkgY291bGQgYmUgc2FmZSB3aGVuIEkgd2FzIG9uY2UgdGhlcmUuIEkgd291bGQgcmF0aGVyIHRoaXMsIHRoYW4gZ2V0IGhvbWUgcXVpY2tseSwgYW5kIHRoZW4gYmUga2lsbGVkIGluIG15IG93biBob3VzZSBhcyBBZ2FtZW1ub24gd2FzIGJ5IHRoZSB0cmVhY2hlcnkgb2YgQWVnaXN0aHVzIGFuZCBoaXMgd2lmZS4gU3RpbGwsIGRlYXRoIGlzIGNlcnRhaW4sIGFuZCB3aGVuIGEgbWFuJ3MgaG91ciBpcyBjb21lLCBub3QgZXZlbiB0aGUgZ29kcyBjYW4gc2F2ZSBoaW0sIG5vIG1hdHRlciBob3cgZm9uZCB0aGV5IGFyZSBvZiBoaW0uIg0KDQoiTWVudG9yLCIgYW5zd2VyZWQgVGVsZW1hY2h1cywgImRvIG5vdCBsZXQgdXMgdGFsayBhYm91dCBpdCBhbnkgbW9yZS4gVGhlcmUgaXMgbm8gY2hhbmNlIG9mIG15IGZhdGhlcidzIGV2ZXIgY29taW5nIGJhY2s7IHRoZSBnb2RzIGhhdmUgbG9uZyBzaW5jZSBjb3Vuc2VsbGVkIGhpcyBkZXN0cnVjdGlvbi4gVGhlcmUgaXMgc29tZXRoaW5nIGVsc2UsIGhvd2V2ZXIsIGFib3V0IHdoaWNoIEkgc2hvdWxkIGxpa2UgdG8gYXNrIE5lc3RvciwgZm9yIGhlIGtub3dzIG11Y2ggbW9yZSB0aGFuIGFueSBvbmUgZWxzZSBkb2VzLiBUaGV5IHNheSBoZSBoYXMgcmVpZ25lZCBmb3IgdGhyZWUgZ2VuZXJhdGlvbnMgc28gdGhhdCBpdCBpcyBsaWtlIHRhbGtpbmcgdG8gYW4gaW1tb3J0YWwuIFRlbGwgbWUsIHRoZXJlZm9yZSwgTmVzdG9yLCBhbmQgdGVsbCBtZSB0cnVlOyBob3cgZGlkIEFnYW1lbW5vbiBjb21lIHRvIGRpZSBpbiB0aGF0IHdheT8gV2hhdCB3YXMgTWVuZWxhdXMgZG9pbmc/IEFuZCBob3cgY2FtZSBmYWxzZSBBZWdpc3RodXMgdG8ga2lsbCBzbyBmYXIgYmV0dGVyIGEgbWFuIHRoYW4gaGltc2VsZj8gV2FzIE1lbmVsYXVzIGF3YXkgZnJvbSBBY2hhZWFuIEFyZ29zLCB2b3lhZ2luZyBlbHNld2hpdGhlciBhbW9uZyBtYW5raW5kLCB0aGF0IEFlZ2lzdGh1cyB0b29rIGhlYXJ0IGFuZCBraWxsZWQgQWdhbWVtbm9uPyINCg0KIkkgd2lsbCB0ZWxsIHlvdSB0cnVseSwiIGFuc3dlcmVkIE5lc3RvciwgImFuZCBpbmRlZWQgeW91IGhhdmUgeW91cnNlbGYgZGl2aW5lZCBob3cgaXQgYWxsIGhhcHBlbmVkLiBJZiBNZW5lbGF1cyB3aGVuIGhlIGdvdCBiYWNrIGZyb20gVHJveSBoYWQgZm91bmQgQWVnaXN0aHVzIHN0aWxsIGFsaXZlIGluIGhpcyBob3VzZSwgdGhlcmUgd291bGQgaGF2ZSBiZWVuIG5vIGJhcnJvdyBoZWFwZWQgdXAgZm9yIGhpbSwgbm90IGV2ZW4gd2hlbiBoZSB3YXMgZGVhZCwgYnV0IGhlIHdvdWxkIGhhdmUgYmVlbiB0aHJvd24gb3V0c2lkZSB0aGUgY2l0eSB0byBkb2dzIGFuZCB2dWx0dXJlcywgYW5kIG5vdCBhIHdvbWFuIHdvdWxkIGhhdmUgbW91cm5lZCBoaW0sIGZvciBoZSBoYWQgZG9uZSBhIGRlZWQgb2YgZ3JlYXQgd2lja2VkbmVzczsgYnV0IHdlIHdlcmUgb3ZlciB0aGVyZSwgZmlnaHRpbmcgaGFyZCBhdCBUcm95LCBhbmQgQWVnaXN0aHVzIHdobyB3YXMgdGFraW5nIGhpcyBlYXNlIHF1aWV0bHkgaW4gdGhlIGhlYXJ0IG9mIEFyZ29zLCBjYWpvbGVkIEFnYW1lbW5vbidzIHdpZmUgQ2x5dGVtbmVzdHJhIHdpdGggaW5jZXNzYW50IGZsYXR0ZXJ5Lg0KDQoiQXQgZmlyc3Qgc2hlIHdvdWxkIGhhdmUgbm90aGluZyB0byBkbyB3aXRoIGhpcyB3aWNrZWQgc2NoZW1lLCBmb3Igc2hlIHdhcyBvZiBhIGdvb2QgbmF0dXJhbCBkaXNwb3NpdGlvbjsgbW9yZW92ZXIgdGhlcmUgd2FzIGEgYmFyZCB3aXRoIGhlciwgdG8gd2hvbSBBZ2FtZW1ub24gaGFkIGdpdmVuIHN0cmljdCBvcmRlcnMgb24gc2V0dGluZyBvdXQgZm9yIFRyb3ksIHRoYXQgaGUgd2FzIHRvIGtlZXAgZ3VhcmQgb3ZlciBoaXMgd2lmZTsgYnV0IHdoZW4gaGVhdmVuIGhhZCBjb3Vuc2VsbGVkIGhlciBkZXN0cnVjdGlvbiwgQWVnaXN0aHVzIHRodXMgdGhpcyBiYXJkIG9mZiB0byBhIGRlc2VydCBpc2xhbmQgYW5kIGxlZnQgaGltIHRoZXJlIGZvciBjcm93cyBhbmQgc2VhZ3VsbHMgdG8gYmF0dGVuIHVwb24tIGFmdGVyIHdoaWNoIHNoZSB3ZW50IHdpbGxpbmdseSBlbm91Z2ggdG8gdGhlIGhvdXNlIG9mIEFlZ2lzdGh1cy4gVGhlbiBoZSBvZmZlcmVkIG1hbnkgYnVybnQgc2FjcmlmaWNlcyB0byB0aGUgZ29kcywgYW5kIGRlY29yYXRlZCBtYW55IHRlbXBsZXMgd2l0aCB0YXBlc3RyaWVzIGFuZCBnaWxkaW5nLCBmb3IgaGUgaGFkIHN1Y2NlZWRlZCBmYXIgYmV5b25kIGhpcyBleHBlY3RhdGlvbnMuDQoNCiJNZWFud2hpbGUgTWVuZWxhdXMgYW5kIEkgd2VyZSBvbiBvdXIgd2F5IGhvbWUgZnJvbSBUcm95LCBvbiBnb29kIHRlcm1zIHdpdGggb25lIGFub3RoZXIuIFdoZW4gd2UgZ290IHRvIFN1bml1bSwgd2hpY2ggaXMgdGhlIHBvaW50IG9mIEF0aGVucywgQXBvbGxvIHdpdGggaGlzIHBhaW5sZXNzIHNoYWZ0cyBraWxsZWQgUGhyb250aXMgdGhlIHN0ZWVyc21hbiBvZiBNZW5lbGF1cycgc2hpcCAoYW5kIG5ldmVyIG1hbiBrbmV3IGJldHRlciBob3cgdG8gaGFuZGxlIGEgdmVzc2VsIGluIHJvdWdoIHdlYXRoZXIpIHNvIHRoYXQgaGUgZGllZCB0aGVuIGFuZCB0aGVyZSB3aXRoIHRoZSBoZWxtIGluIGhpcyBoYW5kLCBhbmQgTWVuZWxhdXMsIHRob3VnaCB2ZXJ5IGFueGlvdXMgdG8gcHJlc3MgZm9yd2FyZCwgaGFkIHRvIHdhaXQgaW4gb3JkZXIgdG8gYnVyeSBoaXMgY29tcmFkZSBhbmQgZ2l2ZSBoaW0gaGlzIGR1ZSBmdW5lcmFsIHJpdGVzLiBQcmVzZW50bHksIHdoZW4gaGUgdG9vIGNvdWxkIHB1dCB0byBzZWEgYWdhaW4sIGFuZCBoYWQgc2FpbGVkIG9uIGFzIGZhciBhcyB0aGUgTWFsZWFuIGhlYWRzLCBKb3ZlIGNvdW5zZWxsZWQgZXZpbCBhZ2FpbnN0IGhpbSBhbmQgbWFkZSBpdCBpdCBibG93IGhhcmQgdGlsbCB0aGUgd2F2ZXMgcmFuIG1vdW50YWlucyBoaWdoLiBIZXJlIGhlIGRpdmlkZWQgaGlzIGZsZWV0IGFuZCB0b29rIHRoZSBvbmUgaGFsZiB0b3dhcmRzIENyZXRlIHdoZXJlIHRoZSBDeWRvbmlhbnMgZHdlbGwgcm91bmQgYWJvdXQgdGhlIHdhdGVycyBvZiB0aGUgcml2ZXIgSWFyZGFudXMuIFRoZXJlIGlzIGEgaGlnaCBoZWFkbGFuZCBoZXJlYWJvdXRzIHN0cmV0Y2hpbmcgb3V0IGludG8gdGhlIHNlYSBmcm9tIGEgcGxhY2UgY2FsbGVkIEdvcnR5biwgYW5kIGFsbCBhbG9uZyB0aGlzIHBhcnQgb2YgdGhlIGNvYXN0IGFzIGZhciBhcyBQaGFlc3R1cyB0aGUgc2VhIHJ1bnMgaGlnaCB3aGVuIHRoZXJlIGlzIGEgc291dGggd2luZCBibG93aW5nLCBidXQgYXJ0ZXIgUGhhZXN0dXMgdGhlIGNvYXN0IGlzIG1vcmUgcHJvdGVjdGVkLCBmb3IgYSBzbWFsbCBoZWFkbGFuZCBjYW4gbWFrZSBhIGdyZWF0IHNoZWx0ZXIuIEhlcmUgdGhpcyBwYXJ0IG9mIHRoZSBmbGVldCB3YXMgZHJpdmVuIG9uIHRvIHRoZSByb2NrcyBhbmQgd3JlY2tlZDsgYnV0IHRoZSBjcmV3cyBqdXN0IG1hbmFnZWQgdG8gc2F2ZSB0aGVtc2VsdmVzLiBBcyBmb3IgdGhlIG90aGVyIGZpdmUgc2hpcHMsIHRoZXkgd2VyZSB0YWtlbiBieSB3aW5kcyBhbmQgc2VhcyB0byBFZ3lwdCwgd2hlcmUgTWVuZWxhdXMgZ2F0aGVyZWQgbXVjaCBnb2xkIGFuZCBzdWJzdGFuY2UgYW1vbmcgcGVvcGxlIG9mIGFuIGFsaWVuIHNwZWVjaC4gTWVhbndoaWxlIEFlZ2lzdGh1cyBoZXJlIGF0IGhvbWUgcGxvdHRlZCBoaXMgZXZpbCBkZWVkLiBGb3Igc2V2ZW4geWVhcnMgYWZ0ZXIgaGUgaGFkIGtpbGxlZCBBZ2FtZW1ub24gaGUgcnVsZWQgaW4gTXljZW5lLCBhbmQgdGhlIHBlb3BsZSB3ZXJlIG9iZWRpZW50IHVuZGVyIGhpbSwgYnV0IGluIHRoZSBlaWdodGggeWVhciBPcmVzdGVzIGNhbWUgYmFjayBmcm9tIEF0aGVucyB0byBiZSBoaXMgYmFuZSwgYW5kIGtpbGxlZCB0aGUgbXVyZGVyZXIgb2YgaGlzIGZhdGhlci4gVGhlbiBoZSBjZWxlYnJhdGVkIHRoZSBmdW5lcmFsIHJpdGVzIG9mIGhpcyBtb3RoZXIgYW5kIG9mIGZhbHNlIEFlZ2lzdGh1cyBieSBhIGJhbnF1ZXQgdG8gdGhlIHBlb3BsZSBvZiBBcmdvcywgYW5kIG9uIHRoYXQgdmVyeSBkYXkgTWVuZWxhdXMgY2FtZSBob21lLCB3aXRoIGFzIG11Y2ggdHJlYXN1cmUgYXMgaGlzIHNoaXBzIGNvdWxkIGNhcnJ5Lg0KDQoiVGFrZSBteSBhZHZpY2UgdGhlbiwgYW5kIGRvIG5vdCBnbyB0cmF2ZWxsaW5nIGFib3V0IGZvciBsb25nIHNvIGZhciBmcm9tIGhvbWUsIG5vciBsZWF2ZSB5b3VyIHByb3BlcnR5IHdpdGggc3VjaCBkYW5nZXJvdXMgcGVvcGxlIGluIHlvdXIgaG91c2U7IHRoZXkgd2lsbCBlYXQgdXAgZXZlcnl0aGluZyB5b3UgaGF2ZSBhbW9uZyB0aGVtLCBhbmQgeW91IHdpbGwgaGF2ZSBiZWVuIG9uIGEgZm9vbCdzIGVycmFuZC4gU3RpbGwsIEkgc2hvdWxkIGFkdmlzZSB5b3UgYnkgYWxsIG1lYW5zIHRvIGdvIGFuZCB2aXNpdCBNZW5lbGF1cywgd2hvIGhhcyBsYXRlbHkgY29tZSBvZmYgYSB2b3lhZ2UgYW1vbmcgc3VjaCBkaXN0YW50IHBlb3BsZXMgYXMgbm8gbWFuIGNvdWxkIGV2ZXIgaG9wZSB0byBnZXQgYmFjayBmcm9tLCB3aGVuIHRoZSB3aW5kcyBoYWQgb25jZSBjYXJyaWVkIGhpbSBzbyBmYXIgb3V0IG9mIGhpcyByZWNrb25pbmc7IGV2ZW4gYmlyZHMgY2Fubm90IGZseSB0aGUgZGlzdGFuY2UgaW4gYSB0d2VsdmVtb250aCwgc28gdmFzdCBhbmQgdGVycmlibGUgYXJlIHRoZSBzZWFzIHRoYXQgdGhleSBtdXN0IGNyb3NzLiBHbyB0byBoaW0sIHRoZXJlZm9yZSwgYnkgc2VhLCBhbmQgdGFrZSB5b3VyIG93biBtZW4gd2l0aCB5b3U7IG9yIGlmIHlvdSB3b3VsZCByYXRoZXIgdHJhdmVsIGJ5IGxhbmQgeW91IGNhbiBoYXZlIGEgY2hhcmlvdCwgeW91IGNhbiBoYXZlIGhvcnNlcywgYW5kIGhlcmUgYXJlIG15IHNvbnMgd2hvIGNhbiBlc2NvcnQgeW91IHRvIExhY2VkYWVtb24gd2hlcmUgTWVuZWxhdXMgbGl2ZXMuIEJlZyBvZiBoaW0gdG8gc3BlYWsgdGhlIHRydXRoLCBhbmQgaGUgd2lsbCB0ZWxsIHlvdSBubyBsaWVzLCBmb3IgaGUgaXMgYW4gZXhjZWxsZW50IHBlcnNvbi4iDQoNCkFzIGhlIHNwb2tlIHRoZSBzdW4gc2V0IGFuZCBpdCBjYW1lIG9uIGRhcmssIHdoZXJlb24gTWluZXJ2YSBzYWlkLCAiU2lyLCBhbGwgdGhhdCB5b3UgaGF2ZSBzYWlkIGlzIHdlbGw7IG5vdywgaG93ZXZlciwgb3JkZXIgdGhlIHRvbmd1ZXMgb2YgdGhlIHZpY3RpbXMgdG8gYmUgY3V0LCBhbmQgbWl4IHdpbmUgdGhhdCB3ZSBtYXkgbWFrZSBkcmluay1vZmZlcmluZ3MgdG8gTmVwdHVuZSwgYW5kIHRoZSBvdGhlciBpbW1vcnRhbHMsIGFuZCB0aGVuIGdvIHRvIGJlZCwgZm9yIGl0IGlzIGJlZCB0aW1lLiBQZW9wbGUgc2hvdWxkIGdvIGF3YXkgZWFybHkgYW5kIG5vdCBrZWVwIGxhdGUgaG91cnMgYXQgYSByZWxpZ2lvdXMgZmVzdGl2YWwuIg0KDQpUaHVzIHNwb2tlIHRoZSBkYXVnaHRlciBvZiBKb3ZlLCBhbmQgdGhleSBvYmV5ZWQgaGVyIHNheWluZy4gTWVuIHNlcnZhbnRzIHBvdXJlZCB3YXRlciBvdmVyIHRoZSBoYW5kcyBvZiB0aGUgZ3Vlc3RzLCB3aGlsZSBwYWdlcyBmaWxsZWQgdGhlIG1peGluZy1ib3dscyB3aXRoIHdpbmUgYW5kIHdhdGVyLCBhbmQgaGFuZGVkIGl0IHJvdW5kIGFmdGVyIGdpdmluZyBldmVyeSBtYW4gaGlzIGRyaW5rLW9mZmVyaW5nOyB0aGVuIHRoZXkgdGhyZXcgdGhlIHRvbmd1ZXMgb2YgdGhlIHZpY3RpbXMgaW50byB0aGUgZmlyZSwgYW5kIHN0b29kIHVwIHRvIG1ha2UgdGhlaXIgZHJpbmstb2ZmZXJpbmdzLiBXaGVuIHRoZXkgaGFkIG1hZGUgdGhlaXIgb2ZmZXJpbmdzIGFuZCBoYWQgZHJ1bmsgZWFjaCBhcyBtdWNoIGFzIGhlIHdhcyBtaW5kZWQsIE1pbmVydmEgYW5kIFRlbGVtYWNodXMgd2VyZSBmb3Jnb2luZyBvbiBib2FyZCB0aGVpciBzaGlwLCBidXQgTmVzdG9yIGNhdWdodCB0aGVtIHVwIGF0IG9uY2UgYW5kIHN0YXllZCB0aGVtLg0KDQoiSGVhdmVuIGFuZCB0aGUgaW1tb3J0YWwgZ29kcywiIGhlIGV4Y2xhaW1lZCwgImZvcmJpZCB0aGF0IHlvdSBzaG91bGQgbGVhdmUgbXkgaG91c2UgdG8gZ28gb24gYm9hcmQgb2YgYSBzaGlwLiBEbyB5b3UgdGhpbmsgSSBhbSBzbyBwb29yIGFuZCBzaG9ydCBvZiBjbG90aGVzLCBvciB0aGF0IEkgaGF2ZSBzbyBmZXcgY2xvYWtzIGFuZCBhcyB0byBiZSB1bmFibGUgdG8gZmluZCBjb21mb3J0YWJsZSBiZWRzIGJvdGggZm9yIG15c2VsZiBhbmQgZm9yIG15IGd1ZXN0cz8gTGV0IG1lIHRlbGwgeW91IEkgaGF2ZSBzdG9yZSBib3RoIG9mIHJ1Z3MgYW5kIGNsb2FrcywgYW5kIHNoYWxsIG5vdCBwZXJtaXQgdGhlIHNvbiBvZiBteSBvbGQgZnJpZW5kIFVseXNzZXMgdG8gY2FtcCBkb3duIG9uIHRoZSBkZWNrIG9mIGEgc2hpcC0gbm90IHdoaWxlIEkgbGl2ZS0gbm9yIHlldCB3aWxsIG15IHNvbnMgYWZ0ZXIgbWUsIGJ1dCB0aGV5IHdpbGwga2VlcCBvcGVuIGhvdXNlIGFzIGhhdmUgZG9uZS4iDQoNClRoZW4gTWluZXJ2YSBhbnN3ZXJlZCwgIlNpciwgeW91IGhhdmUgc3Bva2VuIHdlbGwsIGFuZCBpdCB3aWxsIGJlIG11Y2ggYmV0dGVyIHRoYXQgVGVsZW1hY2h1cyBzaG91bGQgZG8gYXMgeW91IGhhdmUgc2FpZDsgaGUsIHRoZXJlZm9yZSwgc2hhbGwgcmV0dXJuIHdpdGggeW91IGFuZCBzbGVlcCBhdCB5b3VyIGhvdXNlLCBidXQgSSBtdXN0IGdvIGJhY2sgdG8gZ2l2ZSBvcmRlcnMgdG8gbXkgY3JldywgYW5kIGtlZXAgdGhlbSBpbiBnb29kIGhlYXJ0LiBJIGFtIHRoZSBvbmx5IG9sZGVyIHBlcnNvbiBhbW9uZyB0aGVtOyB0aGUgcmVzdCBhcmUgYWxsIHlvdW5nIG1lbiBvZiBUZWxlbWFjaHVzJyBvd24gYWdlLCB3aG8gaGF2ZSB0YWtlbiB0aGlzIHZveWFnZSBvdXQgb2YgZnJpZW5kc2hpcDsgc28gSSBtdXN0IHJldHVybiB0byB0aGUgc2hpcCBhbmQgc2xlZXAgdGhlcmUuIE1vcmVvdmVyIHRvLW1vcnJvdyBJIG11c3QgZ28gdG8gdGhlIENhdWNvbmlhbnMgd2hlcmUgSSBoYXZlIGEgbGFyZ2Ugc3VtIG9mIG1vbmV5IGxvbmcgb3dpbmcgdG8gbWUuIEFzIGZvciBUZWxlbWFjaHVzLCBub3cgdGhhdCBoZSBpcyB5b3VyIGd1ZXN0LCBzZW5kIGhpbSB0byBMYWNlZGFlbW9uIGluIGEgY2hhcmlvdCwgYW5kIGxldCBvbmUgb2YgeW91ciBzb25zIGdvIHdpdGggaGltLiBCZSBwbGVhc2VkIGFsc28gdG8gcHJvdmlkZSBoaW0gd2l0aCB5b3VyIGJlc3QgYW5kIGZsZWV0ZXN0IGhvcnNlcy4iDQoNCldoZW4gc2hlIGhhZCB0aHVzIHNwb2tlbiwgc2hlIGZsZXcgYXdheSBpbiB0aGUgZm9ybSBvZiBhbiBlYWdsZSwgYW5kIGFsbCBtYXJ2ZWxsZWQgYXMgdGhleSBiZWhlbGQgaXQuIE5lc3RvciB3YXMgYXN0b25pc2hlZCwgYW5kIHRvb2sgVGVsZW1hY2h1cyBieSB0aGUgaGFuZC4gIk15IGZyaWVuZCwiIHNhaWQgaGUsICJJIHNlZSB0aGF0IHlvdSBhcmUgZ29pbmcgdG8gYmUgYSBncmVhdCBoZXJvIHNvbWUgZGF5LCBzaW5jZSB0aGUgZ29kcyB3YWl0IHVwb24geW91IHRodXMgd2hpbGUgeW91IGFyZSBzdGlsbCBzbyB5b3VuZy4gVGhpcyBjYW4gaGF2ZSBiZWVuIG5vbmUgb3RoZXIgb2YgdGhvc2Ugd2hvIGR3ZWxsIGluIGhlYXZlbiB0aGFuIEpvdmUncyByZWRvdWJ0YWJsZSBkYXVnaHRlciwgdGhlIFRyaXRvLWJvcm4sIHdobyBzaG93ZWQgc3VjaCBmYXZvdXIgdG93YXJkcyB5b3VyIGJyYXZlIGZhdGhlciBhbW9uZyB0aGUgQXJnaXZlcy4iICJIb2x5IHF1ZWVuLCIgaGUgY29udGludWVkLCAidm91Y2hzYWZlIHRvIHNlbmQgZG93biB0aHkgZ3JhY2UgdXBvbiBteXNlbGYsIG15IGdvb2Qgd2lmZSwgYW5kIG15IGNoaWxkcmVuLiBJbiByZXR1cm4sIEkgd2lsbCBvZmZlciB5b3UgaW4gc2FjcmlmaWNlIGEgYnJvYWQtYnJvd2VkIGhlaWZlciBvZiBhIHllYXIgb2xkLCB1bmJyb2tlbiwgYW5kIG5ldmVyIHlldCBicm91Z2h0IGJ5IG1hbiB1bmRlciB0aGUgeW9rZS4gSSB3aWxsIGdpbGQgaGVyIGhvcm5zLCBhbmQgd2lsbCBvZmZlciBoZXIgdXAgdG8geW91IGluIHNhY3JpZmljZS4iDQoNClRodXMgZGlkIGhlIHByYXksIGFuZCBNaW5lcnZhIGhlYXJkIGhpcyBwcmF5ZXIuIEhlIHRoZW4gbGVkIHRoZSB3YXkgdG8gaGlzIG93biBob3VzZSwgZm9sbG93ZWQgYnkgaGlzIHNvbnMgYW5kIHNvbnMtaW4tbGF3LiBXaGVuIHRoZXkgaGFkIGdvdCB0aGVyZSBhbmQgaGFkIHRha2VuIHRoZWlyIHBsYWNlcyBvbiB0aGUgYmVuY2hlcyBhbmQgc2VhdHMsIGhlIG1peGVkIHRoZW0gYSBib3dsIG9mIHN3ZWV0IHdpbmUgdGhhdCB3YXMgZWxldmVuIHllYXJzIG9sZCB3aGVuIHRoZSBob3VzZWtlZXBlciB0b29rIHRoZSBsaWQgb2ZmIHRoZSBqYXIgdGhhdCBoZWxkIGl0LiBBcyBoZSBtaXhlZCB0aGUgd2luZSwgaGUgcHJheWVkIG11Y2ggYW5kIG1hZGUgZHJpbmstb2ZmZXJpbmdzIHRvIE1pbmVydmEsIGRhdWdodGVyIG9mIEFlZ2lzLWJlYXJpbmcgSm92ZS4gVGhlbiwgd2hlbiB0aGV5IGhhZCBtYWRlIHRoZWlyIGRyaW5rLW9mZmVyaW5ncyBhbmQgaGFkIGRydW5rIGVhY2ggYXMgbXVjaCBhcyBoZSB3YXMgbWluZGVkLCB0aGUgb3RoZXJzIHdlbnQgaG9tZSB0byBiZWQgZWFjaCBpbiBoaXMgb3duIGFib2RlOyBidXQgTmVzdG9yIHB1dCBUZWxlbWFjaHVzIHRvIHNsZWVwIGluIHRoZSByb29tIHRoYXQgd2FzIG92ZXIgdGhlIGdhdGV3YXkgYWxvbmcgd2l0aCBQaXNpc3RyYXR1cywgd2hvIHdhcyB0aGUgb25seSB1bm1hcnJpZWQgc29uIG5vdyBsZWZ0IGhpbS4gQXMgZm9yIGhpbXNlbGYsIGhlIHNsZXB0IGluIGFuIGlubmVyIHJvb20gb2YgdGhlIGhvdXNlLCB3aXRoIHRoZSBxdWVlbiBoaXMgd2lmZSBieSBoaXMgc2lkZS4NCg0KTm93IHdoZW4gdGhlIGNoaWxkIG9mIG1vcm5pbmcsIHJvc3ktZmluZ2VyZWQgRGF3biwgYXBwZWFyZWQsIE5lc3RvciBsZWZ0IGhpcyBjb3VjaCBhbmQgdG9vayBoaXMgc2VhdCBvbiB0aGUgYmVuY2hlcyBvZiB3aGl0ZSBhbmQgcG9saXNoZWQgbWFyYmxlIHRoYXQgc3Rvb2QgaW4gZnJvbnQgb2YgaGlzIGhvdXNlLiBIZXJlIGFmb3JldGltZSBzYXQgTmVsZXVzLCBwZWVyIG9mIGdvZHMgaW4gY291bnNlbCwgYnV0IGhlIHdhcyBub3cgZGVhZCwgYW5kIGhhZCBnb25lIHRvIHRoZSBob3VzZSBvZiBIYWRlczsgc28gTmVzdG9yIHNhdCBpbiBoaXMgc2VhdCwgc2NlcHRyZSBpbiBoYW5kLCBhcyBndWFyZGlhbiBvZiB0aGUgcHVibGljIHdlYWwuIEhpcyBzb25zIGFzIHRoZXkgbGVmdCB0aGVpciByb29tcyBnYXRoZXJlZCByb3VuZCBoaW0sIEVjaGVwaHJvbiwgU3RyYXRpdXMsIFBlcnNldXMsIEFyZXR1cywgYW5kIFRocmFzeW1lZGVzOyB0aGUgc2l4dGggc29uIHdhcyBQaXNpc3RyYXR1cywgYW5kIHdoZW4gVGVsZW1hY2h1cyBqb2luZWQgdGhlbSB0aGV5IG1hZGUgaGltIHNpdCB3aXRoIHRoZW0uIE5lc3RvciB0aGVuIGFkZHJlc3NlZCB0aGVtLg0KDQoiTXkgc29ucywiIHNhaWQgaGUsICJtYWtlIGhhc3RlIHRvIGRvIGFzIEkgc2hhbGwgYmlkIHlvdS4gSSB3aXNoIGZpcnN0IGFuZCBmb3JlbW9zdCB0byBwcm9waXRpYXRlIHRoZSBncmVhdCBnb2RkZXNzIE1pbmVydmEsIHdobyBtYW5pZmVzdGVkIGhlcnNlbGYgdmlzaWJseSB0byBtZSBkdXJpbmcgeWVzdGVyZGF5J3MgZmVzdGl2aXRpZXMuIEdvLCB0aGVuLCBvbmUgb3Igb3RoZXIgb2YgeW91IHRvIHRoZSBwbGFpbiwgdGVsbCB0aGUgc3RvY2ttYW4gdG8gbG9vayBtZSBvdXQgYSBoZWlmZXIsIGFuZCBjb21lIG9uIGhlcmUgd2l0aCBpdCBhdCBvbmNlLiBBbm90aGVyIG11c3QgZ28gdG8gVGVsZW1hY2h1cydzIHNoaXAsIGFuZCBpbnZpdGUgYWxsIHRoZSBjcmV3LCBsZWF2aW5nIHR3byBtZW4gb25seSBpbiBjaGFyZ2Ugb2YgdGhlIHZlc3NlbC4gU29tZSBvbmUgZWxzZSB3aWxsIHJ1biBhbmQgZmV0Y2ggTGFlcmNldXMgdGhlIGdvbGRzbWl0aCB0byBnaWxkIHRoZSBob3JucyBvZiB0aGUgaGVpZmVyLiBUaGUgcmVzdCwgc3RheSBhbGwgb2YgeW91IHdoZXJlIHlvdSBhcmU7IHRlbGwgdGhlIG1haWRzIGluIHRoZSBob3VzZSB0byBwcmVwYXJlIGFuIGV4Y2VsbGVudCBkaW5uZXIsIGFuZCB0byBmZXRjaCBzZWF0cywgYW5kIGxvZ3Mgb2Ygd29vZCBmb3IgYSBidXJudCBvZmZlcmluZy4gVGVsbCB0aGVtIGFsc28tIHRvIGJyaW5nIG1lIHNvbWUgY2xlYXIgc3ByaW5nIHdhdGVyLiINCg0KT24gdGhpcyB0aGV5IGh1cnJpZWQgb2ZmIG9uIHRoZWlyIHNldmVyYWwgZXJyYW5kcy4gVGhlIGhlaWZlciB3YXMgYnJvdWdodCBpbiBmcm9tIHRoZSBwbGFpbiwgYW5kIFRlbGVtYWNodXMncyBjcmV3IGNhbWUgZnJvbSB0aGUgc2hpcDsgdGhlIGdvbGRzbWl0aCBicm91Z2h0IHRoZSBhbnZpbCwgaGFtbWVyLCBhbmQgdG9uZ3MsIHdpdGggd2hpY2ggaGUgd29ya2VkIGhpcyBnb2xkLCBhbmQgTWluZXJ2YSBoZXJzZWxmIGNhbWUgdG8gdGhlIHNhY3JpZmljZS4gTmVzdG9yIGdhdmUgb3V0IHRoZSBnb2xkLCBhbmQgdGhlIHNtaXRoIGdpbGRlZCB0aGUgaG9ybnMgb2YgdGhlIGhlaWZlciB0aGF0IHRoZSBnb2RkZXNzIG1pZ2h0IGhhdmUgcGxlYXN1cmUgaW4gdGhlaXIgYmVhdXR5LiBUaGVuIFN0cmF0aXVzIGFuZCBFY2hlcGhyb24gYnJvdWdodCBoZXIgaW4gYnkgdGhlIGhvcm5zOyBBcmV0dXMgZmV0Y2hlZCB3YXRlciBmcm9tIHRoZSBob3VzZSBpbiBhIGV3ZXIgdGhhdCBoYWQgYSBmbG93ZXIgcGF0dGVybiBvbiBpdCwgYW5kIGluIGhpcyBvdGhlciBoYW5kIGhlIGhlbGQgYSBiYXNrZXQgb2YgYmFybGV5IG1lYWw7IHN0dXJkeSBUaHJhc3ltZWRlcyBzdG9vZCBieSB3aXRoIGEgc2hhcnAgYXhlLCByZWFkeSB0byBzdHJpa2UgdGhlIGhlaWZlciwgd2hpbGUgUGVyc2V1cyBoZWxkIGEgYnVja2V0LiBUaGVuIE5lc3RvciBiZWdhbiB3aXRoIHdhc2hpbmcgaGlzIGhhbmRzIGFuZCBzcHJpbmtsaW5nIHRoZSBiYXJsZXkgbWVhbCwgYW5kIGhlIG9mZmVyZWQgbWFueSBhIHByYXllciB0byBNaW5lcnZhIGFzIGhlIHRocmV3IGEgbG9jayBmcm9tIHRoZSBoZWlmZXIncyBoZWFkIHVwb24gdGhlIGZpcmUuDQoNCldoZW4gdGhleSBoYWQgZG9uZSBwcmF5aW5nIGFuZCBzcHJpbmtsaW5nIHRoZSBiYXJsZXkgbWVhbCBUaHJhc3ltZWRlcyBkZWFsdCBoaXMgYmxvdywgYW5kIGJyb3VnaHQgdGhlIGhlaWZlciBkb3duIHdpdGggYSBzdHJva2UgdGhhdCBjdXQgdGhyb3VnaCB0aGUgdGVuZG9ucyBhdCB0aGUgYmFzZSBvZiBoZXIgbmVjaywgd2hlcmVvbiB0aGUgZGF1Z2h0ZXJzIGFuZCBkYXVnaHRlcnMtaW4tbGF3IG9mIE5lc3RvciwgYW5kIGhpcyB2ZW5lcmFibGUgd2lmZSBFdXJ5ZGljZSAoc2hlIHdhcyBlbGRlc3QgZGF1Z2h0ZXIgdG8gQ2x5bWVudXMpIHNjcmVhbWVkIHdpdGggZGVsaWdodC4gVGhlbiB0aGV5IGxpZnRlZCB0aGUgaGVpZmVyJ3MgaGVhZCBmcm9tIG9mZiB0aGUgZ3JvdW5kLCBhbmQgUGlzaXN0cmF0dXMgY3V0IGhlciB0aHJvYXQuIFdoZW4gc2hlIGhhZCBkb25lIGJsZWVkaW5nIGFuZCB3YXMgcXVpdGUgZGVhZCwgdGhleSBjdXQgaGVyIHVwLiBUaGV5IGN1dCBvdXQgdGhlIHRoaWdoIGJvbmVzIGFsbCBpbiBkdWUgY291cnNlLCB3cmFwcGVkIHRoZW0gcm91bmQgaW4gdHdvIGxheWVycyBvZiBmYXQsIGFuZCBzZXQgc29tZSBwaWVjZXMgb2YgcmF3IG1lYXQgb24gdGhlIHRvcCBvZiB0aGVtOyB0aGVuIE5lc3RvciBsYWlkIHRoZW0gdXBvbiB0aGUgd29vZCBmaXJlIGFuZCBwb3VyZWQgd2luZSBvdmVyIHRoZW0sIHdoaWxlIHRoZSB5b3VuZyBtZW4gc3Rvb2QgbmVhciBoaW0gd2l0aCBmaXZlLXByb25nZWQgc3BpdHMgaW4gdGhlaXIgaGFuZHMuIFdoZW4gdGhlIHRoaWdocyB3ZXJlIGJ1cm5lZCBhbmQgdGhleSBoYWQgdGFzdGVkIHRoZSBpbndhcmQgbWVhdHMsIHRoZXkgY3V0IHRoZSByZXN0IG9mIHRoZSBtZWF0IHVwIHNtYWxsLCBwdXQgdGhlIHBpZWNlcyBvbiB0aGUgc3BpdHMgYW5kIHRvYXN0ZWQgdGhlbSBvdmVyIHRoZSBmaXJlLg0KDQpNZWFud2hpbGUgbG92ZWx5IFBvbHljYXN0ZSwgTmVzdG9yJ3MgeW91bmdlc3QgZGF1Z2h0ZXIsIHdhc2hlZCBUZWxlbWFjaHVzLiBXaGVuIHNoZSBoYWQgd2FzaGVkIGhpbSBhbmQgYW5vaW50ZWQgaGltIHdpdGggb2lsLCBzaGUgYnJvdWdodCBoaW0gYSBmYWlyIG1hbnRsZSBhbmQgc2hpcnQsIGFuZCBoZSBsb29rZWQgbGlrZSBhIGdvZCBhcyBoZSBjYW1lIGZyb20gdGhlIGJhdGggYW5kIHRvb2sgaGlzIHNlYXQgYnkgdGhlIHNpZGUgb2YgTmVzdG9yLiBXaGVuIHRoZSBvdXRlciBtZWF0cyB3ZXJlIGRvbmUgdGhleSBkcmV3IHRoZW0gb2ZmIHRoZSBzcGl0cyBhbmQgc2F0IGRvd24gdG8gZGlubmVyIHdoZXJlIHRoZXkgd2VyZSB3YWl0ZWQgdXBvbiBieSBzb21lIHdvcnRoeSBoZW5jaG1lbiwgd2hvIGtlcHQgcG91cmluZyB0aGVtIG91dCB0aGVpciB3aW5lIGluIGN1cHMgb2YgZ29sZC4gQXMgc29vbiBhcyB0aGV5IGhhZCBoYWQgaGFkIGVub3VnaCB0byBlYXQgYW5kIGRyaW5rIE5lc3RvciBzYWlkLCAiU29ucywgcHV0IFRlbGVtYWNodXMncyBob3JzZXMgdG8gdGhlIGNoYXJpb3QgdGhhdCBoZSBtYXkgc3RhcnQgYXQgb25jZS4iDQoNClRodXMgZGlkIGhlIHNwZWFrLCBhbmQgdGhleSBkaWQgZXZlbiBhcyBoZSBoYWQgc2FpZCwgYW5kIHlva2VkIHRoZSBmbGVldCBob3JzZXMgdG8gdGhlIGNoYXJpb3QuIFRoZSBob3VzZWtlZXBlciBwYWNrZWQgdGhlbSB1cCBhIHByb3Zpc2lvbiBvZiBicmVhZCwgd2luZSwgYW5kIHN3ZWV0bWVhdHMgZml0IGZvciB0aGUgc29ucyBvZiBwcmluY2VzLiBUaGVuIFRlbGVtYWNodXMgZ290IGludG8gdGhlIGNoYXJpb3QsIHdoaWxlIFBpc2lzdHJhdHVzIGdhdGhlcmVkIHVwIHRoZSByZWlucyBhbmQgdG9vayBoaXMgc2VhdCBiZXNpZGUgaGltLiBIZSBsYXNoZWQgdGhlIGhvcnNlcyBvbiBhbmQgdGhleSBmbGV3IGZvcndhcmQgbm90aGluZyBsb3RoIGludG8gdGhlIG9wZW4gY291bnRyeSwgbGVhdmluZyB0aGUgaGlnaCBjaXRhZGVsIG9mIFB5bG9zIGJlaGluZCB0aGVtLiBBbGwgdGhhdCBkYXkgZGlkIHRoZXkgdHJhdmVsLCBzd2F5aW5nIHRoZSB5b2tlIHVwb24gdGhlaXIgbmVja3MgdGlsbCB0aGUgc3VuIHdlbnQgZG93biBhbmQgZGFya25lc3Mgd2FzIG92ZXIgYWxsIHRoZSBsYW5kLiBUaGVuIHRoZXkgcmVhY2hlZCBQaGVyYWUgd2hlcmUgRGlvY2xlcyBsaXZlZCwgd2hvIHdhcyBzb24gdG8gT3J0aWxvY2h1cyBhbmQgZ3JhbmRzb24gdG8gQWxwaGV1cy4gSGVyZSB0aGV5IHBhc3NlZCB0aGUgbmlnaHQgYW5kIERpb2NsZXMgZW50ZXJ0YWluZWQgdGhlbSBob3NwaXRhYmx5LiBXaGVuIHRoZSBjaGlsZCBvZiBtb3JuaW5nLCByb3N5LWZpbmdlcmVkIERhd247IGFwcGVhcmVkLCB0aGV5IGFnYWluIHlva2VkIHRoZWlyIGhvcnNlcyBhbmQgZHJvdmUgb3V0IHRocm91Z2ggdGhlIGdhdGV3YXkgdW5kZXIgdGhlIGVjaG9pbmcgZ2F0ZWhvdXNlLiBQaXNpc3RyYXR1cyBsYXNoZWQgdGhlIGhvcnNlcyBvbiBhbmQgdGhleSBmbGV3IGZvcndhcmQgbm90aGluZyBsb3RoOyBwcmVzZW50bHkgdGhleSBjYW1lIHRvIHRoZSBjb3JuIGxhbmRzIE9mIHRoZSBvcGVuIGNvdW50cnksIGFuZCBpbiB0aGUgY291cnNlIG9mIHRpbWUgY29tcGxldGVkIHRoZWlyIGpvdXJuZXksIHNvIHdlbGwgZGlkIHRoZWlyIHN0ZWVkcyB0YWtlIHRoZW0uDQoNCk5vdyB3aGVuIHRoZSBzdW4gaGFkIHNldCBhbmQgZGFya25lc3Mgd2FzIG92ZXIgdGhlIGxhbmQu"
          },
          "response": {
            "data": "SGVsbG8sIHdvcmxkIQ=="
          }
        }
      ]
    }
  ],
  "_links": {
    "self": {
      "href": "http://localhost:44762/imposters/5555"
    }
  }
}

Supporting large text requests

HTTP is an application protocol built on TCP that typically specifies the end of request using the Content-Length header. Of course, you would normally use mountebank's native http protocol, but it makes a reasonably complex example. We start by creating the endOfRequestResolver function, which looks like the function below. This is overly simplistic for parsing HTTP, but illustrates the point.


function (requestData, logger) {
    var bodyLength = parseInt(/Content-Length: (\d+)/.exec(requestData)[1]),
        headerEndIndex = requestData.indexOf('\n\n'),
        body = requestData.slice(headerEndIndex + 2);

    logger.info('Content-Length: ' + bodyLength + ', so far: ' + body.length);
    return body.length >= bodyLength;
}

We use that function in creating the imposter:


POST /imposters HTTP/1.1
Host: localhost:44762
Accept: application/json
Content-Type: application/json

{
  "port": 4545,
  "protocol": "tcp",
  "mode": "text",
  "stubs": [
    {
      "responses": [{ "is": { "data": "HTTP/1.1 200 OK\nTransfer-Encoding:chunked\n\n" } }]
    }
  ],
  "endOfRequestResolver": {
    "inject": "function (requestData, logger) { var bodyLength = parseInt(/Content-Length: (\\d+)/.exec(requestData)[1]), headerEndIndex = requestData.indexOf('\\n\\n'), body = requestData.slice(headerEndIndex + 2); logger.info('Content-Length: ' + bodyLength + ', so far: ' + body.length); return body.length >= bodyLength; }"
  }
}

We'll send a large HTTP body (greater than 65,000 bytes, which is the largest possible TCP packet size) to try out our function. We'll borrow from some of Homer's loquaciousness to get us a large enough payload.


cat << EOF > request.txt
POST / HTTP/1.1
Host: localhost:4545
Content-Length: 68134
Content-Type: text/plain

Book I

Tell me, O muse, of that ingenious hero who travelled far and wide after he had sacked the famous town of Troy. Many cities did he visit, and many were the nations with whose manners and customs he was acquainted; moreover he suffered much by sea while trying to save his own life and bring his men safely home; but do what he might he could not save his men, for they perished through their own sheer folly in eating the cattle of the Sun-god Hyperion; so the god prevented them from ever reaching home. Tell me, too, about all these things, O daughter of Jove, from whatsoever source you may know them.

So now all who escaped death in battle or by shipwreck had got safely home except Ulysses, and he, though he was longing to return to his wife and country, was detained by the goddess Calypso, who had got him into a large cave and wanted to marry him. But as years went by, there came a time when the gods settled that he should go back to Ithaca; even then, however, when he was among his own people, his troubles were not yet over; nevertheless all the gods had now begun to pity him except Neptune, who still persecuted him without ceasing and would not let him get home.

Now Neptune had gone off to the Ethiopians, who are at the world's end, and lie in two halves, the one looking West and the other East. He had gone there to accept a hecatomb of sheep and oxen, and was enjoying himself at his festival; but the other gods met in the house of Olympian Jove, and the sire of gods and men spoke first. At that moment he was thinking of Aegisthus, who had been killed by Agamemnon's son Orestes; so he said to the other gods:

"See now, how men lay blame upon us gods for what is after all nothing but their own folly. Look at Aegisthus; he must needs make love to Agamemnon's wife unrighteously and then kill Agamemnon, though he knew it would be the death of him; for I sent Mercury to warn him not to do either of these things, inasmuch as Orestes would be sure to take his revenge when he grew up and wanted to return home. Mercury told him this in all good will but he would not listen, and now he has paid for everything in full."

Then Minerva said, "Father, son of Saturn, King of kings, it served Aegisthus right, and so it would any one else who does as he did; but Aegisthus is neither here nor there; it is for Ulysses that my heart bleeds, when I think of his sufferings in that lonely sea-girt island, far away, poor man, from all his friends. It is an island covered with forest, in the very middle of the sea, and a goddess lives there, daughter of the magician Atlas, who looks after the bottom of the ocean, and carries the great columns that keep heaven and earth asunder. This daughter of Atlas has got hold of poor unhappy Ulysses, and keeps trying by every kind of blandishment to make him forget his home, so that he is tired of life, and thinks of nothing but how he may once more see the smoke of his own chimneys. You, sir, take no heed of this, and yet when Ulysses was before Troy did he not propitiate you with many a burnt sacrifice? Why then should you keep on being so angry with him?"

And Jove said, "My child, what are you talking about? How can I forget Ulysses than whom there is no more capable man on earth, nor more liberal in his offerings to the immortal gods that live in heaven? Bear in mind, however, that Neptune is still furious with Ulysses for having blinded an eye of Polyphemus king of the Cyclopes. Polyphemus is son to Neptune by the nymph Thoosa, daughter to the sea-king Phorcys; therefore though he will not kill Ulysses outright, he torments him by preventing him from getting home. Still, let us lay our heads together and see how we can help him to return; Neptune will then be pacified, for if we are all of a mind he can hardly stand out against us."

And Minerva said, "Father, son of Saturn, King of kings, if, then, the gods now mean that Ulysses should get home, we should first send Mercury to the Ogygian island to tell Calypso that we have made up our minds and that he is to return. In the meantime I will go to Ithaca, to put heart into Ulysses' son Telemachus; I will embolden him to call the Achaeans in assembly, and speak out to the suitors of his mother Penelope, who persist in eating up any number of his sheep and oxen; I will also conduct him to Sparta and to Pylos, to see if he can hear anything about the return of his dear father- for this will make people speak well of him."

So saying she bound on her glittering golden sandals, imperishable, with which she can fly like the wind over land or sea; she grasped the redoubtable bronze-shod spear, so stout and sturdy and strong, wherewith she quells the ranks of heroes who have displeased her, and down she darted from the topmost summits of Olympus, whereon forthwith she was in Ithaca, at the gateway of Ulysses' house, disguised as a visitor, Mentes, chief of the Taphians, and she held a bronze spear in her hand. There she found the lordly suitors seated on hides of the oxen which they had killed and eaten, and playing draughts in front of the house. Men-servants and pages were bustling about to wait upon them, some mixing wine with water in the mixing-bowls, some cleaning down the tables with wet sponges and laying them out again, and some cutting up great quantities of meat.

Telemachus saw her long before any one else did. He was sitting moodily among the suitors thinking about his brave father, and how he would send them flying out of the house, if he were to come to his own again and be honoured as in days gone by. Thus brooding as he sat among them, he caught sight of Minerva and went straight to the gate, for he was vexed that a stranger should be kept waiting for admittance. He took her right hand in his own, and bade her give him her spear. "Welcome," said he, "to our house, and when you have partaken of food you shall tell us what you have come for."

He led the way as he spoke, and Minerva followed him. When they were within he took her spear and set it in the spear- stand against a strong bearing-post along with the many other spears of his unhappy father, and he conducted her to a richly decorated seat under which he threw a cloth of damask. There was a footstool also for her feet, and he set another seat near her for himself, away from the suitors, that she might not be annoyed while eating by their noise and insolence, and that he might ask her more freely about his father.

A maid servant then brought them water in a beautiful golden ewer and poured it into a silver basin for them to wash their hands, and she drew a clean table beside them. An upper servant brought them bread, and offered them many good things of what there was in the house, the carver fetched them plates of all manner of meats and set cups of gold by their side, and a man-servant brought them wine and poured it out for them.

Then the suitors came in and took their places on the benches and seats. Forthwith men servants poured water over their hands, maids went round with the bread-baskets, pages filled the mixing-bowls with wine and water, and they laid their hands upon the good things that were before them. As soon as they had had enough to eat and drink they wanted music and dancing, which are the crowning embellishments of a banquet, so a servant brought a lyre to Phemius, whom they compelled perforce to sing to them. As soon as he touched his lyre and began to sing Telemachus spoke low to Minerva, with his head close to hers that no man might hear.

"I hope, sir," said he, "that you will not be offended with what I am going to say. Singing comes cheap to those who do not pay for it, and all this is done at the cost of one whose bones lie rotting in some wilderness or grinding to powder in the surf. If these men were to see my father come back to Ithaca they would pray for longer legs rather than a longer purse, for money would not serve them; but he, alas, has fallen on an ill fate, and even when people do sometimes say that he is coming, we no longer heed them; we shall never see him again. And now, sir, tell me and tell me true, who you are and where you come from. Tell me of your town and parents, what manner of ship you came in, how your crew brought you to Ithaca, and of what nation they declared themselves to be- for you cannot have come by land. Tell me also truly, for I want to know, are you a stranger to this house, or have you been here in my father's time? In the old days we had many visitors for my father went about much himself."

And Minerva answered, "I will tell you truly and particularly all about it. I am Mentes, son of Anchialus, and I am King of the Taphians. I have come here with my ship and crew, on a voyage to men of a foreign tongue being bound for Temesa with a cargo of iron, and I shall bring back copper. As for my ship, it lies over yonder off the open country away from the town, in the harbour Rheithron under the wooded mountain Neritum. Our fathers were friends before us, as old Laertes will tell you, if you will go and ask him. They say, however, that he never comes to town now, and lives by himself in the country, faring hardly, with an old woman to look after him and get his dinner for him, when he comes in tired from pottering about his vineyard. They told me your father was at home again, and that was why I came, but it seems the gods are still keeping him back, for he is not dead yet not on the mainland. It is more likely he is on some sea-girt island in mid ocean, or a prisoner among savages who are detaining him against his will I am no prophet, and know very little about omens, but I speak as it is borne in upon me from heaven, and assure you that he will not be away much longer; for he is a man of such resource that even though he were in chains of iron he would find some means of getting home again. But tell me, and tell me true, can Ulysses really have such a fine looking fellow for a son? You are indeed wonderfully like him about the head and eyes, for we were close friends before he set sail for Troy where the flower of all the Argives went also. Since that time we have never either of us seen the other."

"My mother," answered Telemachus, tells me I am son to Ulysses, but it is a wise child that knows his own father. Would that I were son to one who had grown old upon his own estates, for, since you ask me, there is no more ill-starred man under heaven than he who they tell me is my father."

And Minerva said, "There is no fear of your race dying out yet, while Penelope has such a fine son as you are. But tell me, and tell me true, what is the meaning of all this feasting, and who are these people? What is it all about? Have you some banquet, or is there a wedding in the family- for no one seems to be bringing any provisions of his own? And the guests- how atrociously they are behaving; what riot they make over the whole house; it is enough to disgust any respectable person who comes near them."

"Sir," said Telemachus, "as regards your question, so long as my father was here it was well with us and with the house, but the gods in their displeasure have willed it otherwise, and have hidden him away more closely than mortal man was ever yet hidden. I could have borne it better even though he were dead, if he had fallen with his men before Troy, or had died with friends around him when the days of his fighting were done; for then the Achaeans would have built a mound over his ashes, and I should myself have been heir to his renown; but now the storm-winds have spirited him away we know not wither; he is gone without leaving so much as a trace behind him, and I inherit nothing but dismay. Nor does the matter end simply with grief for the loss of my father; heaven has laid sorrows upon me of yet another kind; for the chiefs from all our islands, Dulichium, Same, and the woodland island of Zacynthus, as also all the principal men of Ithaca itself, are eating up my house under the pretext of paying their court to my mother, who will neither point blank say that she will not marry, nor yet bring matters to an end; so they are making havoc of my estate, and before long will do so also with myself."

"Is that so?" exclaimed Minerva, "then you do indeed want Ulysses home again. Give him his helmet, shield, and a couple lances, and if he is the man he was when I first knew him in our house, drinking and making merry, he would soon lay his hands about these rascally suitors, were he to stand once more upon his own threshold. He was then coming from Ephyra, where he had been to beg poison for his arrows from Ilus, son of Mermerus. Ilus feared the ever-living gods and would not give him any, but my father let him have some, for he was very fond of him. If Ulysses is the man he then was these suitors will have a short shrift and a sorry wedding.

"But there! It rests with heaven to determine whether he is to return, and take his revenge in his own house or no; I would, however, urge you to set about trying to get rid of these suitors at once. Take my advice, call the Achaean heroes in assembly to-morrow -lay your case before them, and call heaven to bear you witness. Bid the suitors take themselves off, each to his own place, and if your mother's mind is set on marrying again, let her go back to her father, who will find her a husband and provide her with all the marriage gifts that so dear a daughter may expect. As for yourself, let me prevail upon you to take the best ship you can get, with a crew of twenty men, and go in quest of your father who has so long been missing. Some one may tell you something, or (and people often hear things in this way) some heaven-sent message may direct you. First go to Pylos and ask Nestor; thence go on to Sparta and visit Menelaus, for he got home last of all the Achaeans; if you hear that your father is alive and on his way home, you can put up with the waste these suitors will make for yet another twelve months. If on the other hand you hear of his death, come home at once, celebrate his funeral rites with all due pomp, build a barrow to his memory, and make your mother marry again. Then, having done all this, think it well over in your mind how, by fair means or foul, you may kill these suitors in your own house. You are too old to plead infancy any longer; have you not heard how people are singing Orestes' praises for having killed his father's murderer Aegisthus? You are a fine, smart looking fellow; show your mettle, then, and make yourself a name in story. Now, however, I must go back to my ship and to my crew, who will be impatient if I keep them waiting longer; think the matter over for yourself, and remember what I have said to you."

"Sir," answered Telemachus, "it has been very kind of you to talk to me in this way, as though I were your own son, and I will do all you tell me; I know you want to be getting on with your voyage, but stay a little longer till you have taken a bath and refreshed yourself. I will then give you a present, and you shall go on your way rejoicing; I will give you one of great beauty and value- a keepsake such as only dear friends give to one another."

Minerva answered, "Do not try to keep me, for I would be on my way at once. As for any present you may be disposed to make me, keep it till I come again, and I will take it home with me. You shall give me a very good one, and I will give you one of no less value in return."

With these words she flew away like a bird into the air, but she had given Telemachus courage, and had made him think more than ever about his father. He felt the change, wondered at it, and knew that the stranger had been a god, so he went straight to where the suitors were sitting.

Phemius was still singing, and his hearers sat rapt in silence as he told the sad tale of the return from Troy, and the ills Minerva had laid upon the Achaeans. Penelope, daughter of Icarius, heard his song from her room upstairs, and came down by the great staircase, not alone, but attended by two of her handmaids. When she reached the suitors she stood by one of the bearing posts that supported the roof of the cloisters with a staid maiden on either side of her. She held a veil, moreover, before her face, and was weeping bitterly.

"Phemius," she cried, "you know many another feat of gods and heroes, such as poets love to celebrate. Sing the suitors some one of these, and let them drink their wine in silence, but cease this sad tale, for it breaks my sorrowful heart, and reminds me of my lost husband whom I mourn ever without ceasing, and whose name was great over all Hellas and middle Argos."

"Mother," answered Telemachus, "let the bard sing what he has a mind to; bards do not make the ills they sing of; it is Jove, not they, who makes them, and who sends weal or woe upon mankind according to his own good pleasure. This fellow means no harm by singing the ill-fated return of the Danaans, for people always applaud the latest songs most warmly. Make up your mind to it and bear it; Ulysses is not the only man who never came back from Troy, but many another went down as well as he. Go, then, within the house and busy yourself with your daily duties, your loom, your distaff, and the ordering of your servants; for speech is man's matter, and mine above all others- for it is I who am master here."

She went wondering back into the house, and laid her son's saying in her heart. Then, going upstairs with her handmaids into her room, she mourned her dear husband till Minerva shed sweet sleep over her eyes. But the suitors were clamorous throughout the covered cloisters, and prayed each one that he might be her bed fellow.

Then Telemachus spoke, "Shameless," he cried, "and insolent suitors, let us feast at our pleasure now, and let there be no brawling, for it is a rare thing to hear a man with such a divine voice as Phemius has; but in the morning meet me in full assembly that I may give you formal notice to depart, and feast at one another's houses, turn and turn about, at your own cost. If on the other hand you choose to persist in spunging upon one man, heaven help me, but Jove shall reckon with you in full, and when you fall in my father's house there shall be no man to avenge you."

The suitors bit their lips as they heard him, and marvelled at the boldness of his speech. Then, Antinous, son of Eupeithes, said, "The gods seem to have given you lessons in bluster and tall talking; may Jove never grant you to be chief in Ithaca as your father was before you."

Telemachus answered, "Antinous, do not chide with me, but, god willing, I will be chief too if I can. Is this the worst fate you can think of for me? It is no bad thing to be a chief, for it brings both riches and honour. Still, now that Ulysses is dead there are many great men in Ithaca both old and young, and some other may take the lead among them; nevertheless I will be chief in my own house, and will rule those whom Ulysses has won for me."

Then Eurymachus, son of Polybus, answered, "It rests with heaven to decide who shall be chief among us, but you shall be master in your own house and over your own possessions; no one while there is a man in Ithaca shall do you violence nor rob you. And now, my good fellow, I want to know about this stranger. What country does he come from? Of what family is he, and where is his estate? Has he brought you news about the return of your father, or was he on business of his own? He seemed a well-to-do man, but he hurried off so suddenly that he was gone in a moment before we could get to know him."

"My father is dead and gone," answered Telemachus, "and even if some rumour reaches me I put no more faith in it now. My mother does indeed sometimes send for a soothsayer and question him, but I give his prophecyings no heed. As for the stranger, he was Mentes, son of Anchialus, chief of the Taphians, an old friend of my father's." But in his heart he knew that it had been the goddess.

The suitors then returned to their singing and dancing until the evening; but when night fell upon their pleasuring they went home to bed each in his own abode. Telemachus's room was high up in a tower that looked on to the outer court; hither, then, he hied, brooding and full of thought. A good old woman, Euryclea, daughter of Ops, the son of Pisenor, went before him with a couple of blazing torches. Laertes had bought her with his own money when she was quite young; he gave the worth of twenty oxen for her, and shewed as much respect to her in his household as he did to his own wedded wife, but he did not take her to his bed for he feared his wife's resentment. She it was who now lighted Telemachus to his room, and she loved him better than any of the other women in the house did, for she had nursed him when he was a baby. He opened the door of his bed room and sat down upon the bed; as he took off his shirt he gave it to the good old woman, who folded it tidily up, and hung it for him over a peg by his bed side, after which she went out, pulled the door to by a silver catch, and drew the bolt home by means of the strap. But Telemachus as he lay covered with a woollen fleece kept thinking all night through of his intended voyage of the counsel that Minerva had given him.

Book II

Now when the child of morning, rosy-fingered Dawn, appeared, Telemachus rose and dressed himself. He bound his sandals on to his comely feet, girded his sword about his shoulder, and left his room looking like an immortal god. He at once sent the criers round to call the people in assembly, so they called them and the people gathered thereon; then, when they were got together, he went to the place of assembly spear in hand- not alone, for his two hounds went with him. Minerva endowed him with a presence of such divine comeliness that all marvelled at him as he went by, and when he took his place' in his father's seat even the oldest councillors made way for him.

Aegyptius, a man bent double with age, and of infinite experience, the first to speak His son Antiphus had gone with Ulysses to Ilius, land of noble steeds, but the savage Cyclops had killed him when they were all shut up in the cave, and had cooked his last dinner for him, He had three sons left, of whom two still worked on their father's land, while the third, Eurynomus, was one of the suitors; nevertheless their father could not get over the loss of Antiphus, and was still weeping for him when he began his speech.

"Men of Ithaca," he said, "hear my words. From the day Ulysses left us there has been no meeting of our councillors until now; who then can it be, whether old or young, that finds it so necessary to convene us? Has he got wind of some host approaching, and does he wish to warn us, or would he speak upon some other matter of public moment? I am sure he is an excellent person, and I hope Jove will grant him his heart's desire."

Telemachus took this speech as of good omen and rose at once, for he was bursting with what he had to say. He stood in the middle of the assembly and the good herald Pisenor brought him his staff. Then, turning to Aegyptius, "Sir," said he, "it is I, as you will shortly learn, who have convened you, for it is I who am the most aggrieved. I have not got wind of any host approaching about which I would warn you, nor is there any matter of public moment on which I would speak. My grieveance is purely personal, and turns on two great misfortunes which have fallen upon my house. The first of these is the loss of my excellent father, who was chief among all you here present, and was like a father to every one of you; the second is much more serious, and ere long will be the utter ruin of my estate. The sons of all the chief men among you are pestering my mother to marry them against her will. They are afraid to go to her father Icarius, asking him to choose the one he likes best, and to provide marriage gifts for his daughter, but day by day they keep hanging about my father's house, sacrificing our oxen, sheep, and fat goats for their banquets, and never giving so much as a thought to the quantity of wine they drink. No estate can stand such recklessness; we have now no Ulysses to ward off harm from our doors, and I cannot hold my own against them. I shall never all my days be as good a man as he was, still I would indeed defend myself if I had power to do so, for I cannot stand such treatment any longer; my house is being disgraced and ruined. Have respect, therefore, to your own consciences and to public opinion. Fear, too, the wrath of heaven, lest the gods should be displeased and turn upon you. I pray you by Jove and Themis, who is the beginning and the end of councils, [do not] hold back, my friends, and leave me singlehanded- unless it be that my brave father Ulysses did some wrong to the Achaeans which you would now avenge on me, by aiding and abetting these suitors. Moreover, if I am to be eaten out of house and home at all, I had rather you did the eating yourselves, for I could then take action against you to some purpose, and serve you with notices from house to house till I got paid in full, whereas now I have no remedy."

With this Telemachus dashed his staff to the ground and burst into tears. Every one was very sorry for him, but they all sat still and no one ventured to make him an angry answer, save only Antinous, who spoke thus:

"Telemachus, insolent braggart that you are, how dare you try to throw the blame upon us suitors? It is your mother's fault not ours, for she is a very artful woman. This three years past, and close on four, she has been driving us out of our minds, by encouraging each one of us, and sending him messages without meaning one word of what she says. And then there was that other trick she played us. She set up a great tambour frame in her room, and began to work on an enormous piece of fine needlework. 'Sweet hearts,' said she, 'Ulysses is indeed dead, still do not press me to marry again immediately, wait- for I would not have skill in needlework perish unrecorded- till I have completed a pall for the hero Laertes, to be in readiness against the time when death shall take him. He is very rich, and the women of the place will talk if he is laid out without a pall.'

"This was what she said, and we assented; whereon we could see her working on her great web all day long, but at night she would unpick the stitches again by torchlight. She fooled us in this way for three years and we never found her out, but as time wore on and she was now in her fourth year, one of her maids who knew what she was doing told us, and we caught her in the act of undoing her work, so she had to finish it whether she would or no. The suitors, therefore, make you this answer, that both you and the Achaeans may understand-'Send your mother away, and bid her marry the man of her own and of her father's choice'; for I do not know what will happen if she goes on plaguing us much longer with the airs she gives herself on the score of the accomplishments Minerva has taught her, and because she is so clever. We never yet heard of such a woman; we know all about Tyro, Alcmena, Mycene, and the famous women of old, but they were nothing to your mother, any one of them. It was not fair of her to treat us in that way, and as long as she continues in the mind with which heaven has now endowed her, so long shall we go on eating up your estate; and I do not see why she should change, for she gets all the honour and glory, and it is you who pay for it, not she. Understand, then, that we will not go back to our lands, neither here nor elsewhere, till she has made her choice and married some one or other of us."

Telemachus answered, "Antinous, how can I drive the mother who bore me from my father's house? My father is abroad and we do not know whether he is alive or dead. It will be hard on me if I have to pay Icarius the large sum which I must give him if I insist on sending his daughter back to him. Not only will he deal rigorously with me, but heaven will also punish me; for my mother when she leaves the house will calf on the Erinyes to avenge her; besides, it would not be a creditable thing to do, and I will have nothing to say to it. If you choose to take offence at this, leave the house and feast elsewhere at one another's houses at your own cost turn and turn about. If, on the other hand, you elect to persist in spunging upon one man, heaven help me, but Jove shall reckon with you in full, and when you fall in my father's house there shall be no man to avenge you."

As he spoke Jove sent two eagles from the top of the mountain, and they flew on and on with the wind, sailing side by side in their own lordly flight. When they were right over the middle of the assembly they wheeled and circled about, beating the air with their wings and glaring death into the eyes of them that were below; then, fighting fiercely and tearing at one another, they flew off towards the right over the town. The people wondered as they saw them, and asked each other what an this might be; whereon Halitherses, who was the best prophet and reader of omens among them, spoke to them plainly and in all honesty, saying:

"Hear me, men of Ithaca, and I speak more particularly to the suitors, for I see mischief brewing for them. Ulysses is not going to be away much longer; indeed he is close at hand to deal out death and destruction, not on them alone, but on many another of us who live in Ithaca. Let us then be wise in time, and put a stop to this wickedness before he comes. Let the suitors do so of their own accord; it will be better for them, for I am not prophesying without due knowledge; everything has happened to Ulysses as I foretold when the Argives set out for Troy, and he with them. I said that after going through much hardship and losing all his men he should come home again in the twentieth year and that no one would know him; and now all this is coming true."

Eurymachus son of Polybus then said, "Go home, old man, and prophesy to your own children, or it may be worse for them. I can read these omens myself much better than you can; birds are always flying about in the sunshine somewhere or other, but they seldom mean anything. Ulysses has died in a far country, and it is a pity you are not dead along with him, instead of prating here about omens and adding fuel to the anger of Telemachus which is fierce enough as it is. I suppose you think he will give you something for your family, but I tell you- and it shall surely be- when an old man like you, who should know better, talks a young one over till he becomes troublesome, in the first place his young friend will only fare so much the worse- he will take nothing by it, for the suitors will prevent this- and in the next, we will lay a heavier fine, sir, upon yourself than you will at all like paying, for it will bear hardly upon you. As for Telemachus, I warn him in the presence of you all to send his mother back to her father, who will find her a husband and provide her with all the marriage gifts so dear a daughter may expect. Till we shall go on harassing him with our suit; for we fear no man, and care neither for him, with all his fine speeches, nor for any fortune-telling of yours. You may preach as much as you please, but we shall only hate you the more. We shall go back and continue to eat up Telemachus's estate without paying him, till such time as his mother leaves off tormenting us by keeping us day after day on the tiptoe of expectation, each vying with the other in his suit for a prize of such rare perfection. Besides we cannot go after the other women whom we should marry in due course, but for the way in which she treats us."

Then Telemachus said, "Eurymachus, and you other suitors, I shall say no more, and entreat you no further, for the gods and the people of Ithaca now know my story. Give me, then, a ship and a crew of twenty men to take me hither and thither, and I will go to Sparta and to Pylos in quest of my father who has so long been missing. Some one may tell me something, or (and people often hear things in this way) some heaven-sent message may direct me. If I can hear of him as alive and on his way home I will put up with the waste you suitors will make for yet another twelve months. If on the other hand I hear of his death, I will return at once, celebrate his funeral rites with all due pomp, build a barrow to his memory, and make my mother marry again."

With these words he sat down, and Mentor who had been a friend of Ulysses, and had been left in charge of everything with full authority over the servants, rose to speak. He, then, plainly and in all honesty addressed them thus:

"Hear me, men of Ithaca, I hope that you may never have a kind and well-disposed ruler any more, nor one who will govern you equitably; I hope that all your chiefs henceforward may be cruel and unjust, for there is not one of you but has forgotten Ulysses, who ruled you as though he were your father. I am not half so angry with the suitors, for if they choose to do violence in the naughtiness of their hearts, and wager their heads that Ulysses will not return, they can take the high hand and eat up his estate, but as for you others I am shocked at the way in which you all sit still without even trying to stop such scandalous goings on-which you could do if you chose, for you are many and they are few."

Leiocritus, son of Evenor, answered him saying, "Mentor, what folly is all this, that you should set the people to stay us? It is a hard thing for one man to fight with many about his victuals. Even though Ulysses himself were to set upon us while we are feasting in his house, and do his best to oust us, his wife, who wants him back so very badly, would have small cause for rejoicing, and his blood would be upon his own head if he fought against such great odds. There is no sense in what you have been saying. Now, therefore, do you people go about your business, and let his father's old friends, Mentor and Halitherses, speed this boy on his journey, if he goes at all- which I do not think he will, for he is more likely to stay where he is till some one comes and tells him something."

On this he broke up the assembly, and every man went back to his own abode, while the suitors returned to the house of Ulysses.

Then Telemachus went all alone by the sea side, washed his hands in the grey waves, and prayed to Minerva.

"Hear me," he cried, "you god who visited me yesterday, and bade me sail the seas in search of my father who has so long been missing. I would obey you, but the Achaeans, and more particularly the wicked suitors, are hindering me that I cannot do so."

As he thus prayed, Minerva came close up to him in the likeness and with the voice of Mentor. "Telemachus," said she, "if you are made of the same stuff as your father you will be neither fool nor coward henceforward, for Ulysses never broke his word nor left his work half done. If, then, you take after him, your voyage will not be fruitless, but unless you have the blood of Ulysses and of Penelope in your veins I see no likelihood of your succeeding. Sons are seldom as good men as their fathers; they are generally worse, not better; still, as you are not going to be either fool or coward henceforward, and are not entirely without some share of your father's wise discernment, I look with hope upon your undertaking. But mind you never make common cause with any of those foolish suitors, for they have neither sense nor virtue, and give no thought to death and to the doom that will shortly fall on one and all of them, so that they shall perish on the same day. As for your voyage, it shall not be long delayed; your father was such an old friend of mine that I will find you a ship, and will come with you myself. Now, however, return home, and go about among the suitors; begin getting provisions ready for your voyage; see everything well stowed, the wine in jars, and the barley meal, which is the staff of life, in leathern bags, while I go round the town and beat up volunteers at once. There are many ships in Ithaca both old and new; I will run my eye over them for you and will choose the best; we will get her ready and will put out to sea without delay."

Thus spoke Minerva daughter of Jove, and Telemachus lost no time in doing as the goddess told him. He went moodily and found the suitors flaying goats and singeing pigs in the outer court. Antinous came up to him at once and laughed as he took his hand in his own, saying, "Telemachus, my fine fire-eater, bear no more ill blood neither in word nor deed, but eat and drink with us as you used to do. The Achaeans will find you in everything- a ship and a picked crew to boot- so that you can set sail for Pylos at once and get news of your noble father."

"Antinous," answered Telemachus, "I cannot eat in peace, nor take pleasure of any kind with such men as you are. Was it not enough that you should waste so much good property of mine while I was yet a boy? Now that I am older and know more about it, I am also stronger, and whether here among this people, or by going to Pylos, I will do you all the harm I can. I shall go, and my going will not be in vain though, thanks to you suitors, I have neither ship nor crew of my own, and must be passenger not captain."

As he spoke he snatched his hand from that of Antinous. Meanwhile the others went on getting dinner ready about the buildings, jeering at him tauntingly as they did so.

"Telemachus," said one youngster, "means to be the death of us; I suppose he thinks he can bring friends to help him from Pylos, or again from Sparta, where he seems bent on going. Or will he go to Ephyra as well, for poison to put in our wine and kill us?"

Another said, "Perhaps if Telemachus goes on board ship, he will be like his father and perish far from his friends. In this case we should have plenty to do, for we could then divide up his property amongst us: as for the house we can let his mother and the man who marries her have that."

This was how they talked. But Telemachus went down into the lofty and spacious store-room where his father's treasure of gold and bronze lay heaped up upon the floor, and where the linen and spare clothes were kept in open chests. Here, too, there was a store of fragrant olive oil, while casks of old, well-ripened wine, unblended and fit for a god to drink, were ranged against the wall in case Ulysses should come home again after all. The room was closed with well-made doors opening in the middle; moreover the faithful old house-keeper Euryclea, daughter of Ops the son of Pisenor, was in charge of everything both night and day. Telemachus called her to the store-room and said:

"Nurse, draw me off some of the best wine you have, after what you are keeping for my father's own drinking, in case, poor man, he should escape death, and find his way home again after all. Let me have twelve jars, and see that they all have lids; also fill me some well-sewn leathern bags with barley meal- about twenty measures in all. Get these things put together at once, and say nothing about it. I will take everything away this evening as soon as my mother has gone upstairs for the night. I am going to Sparta and to Pylos to see if I can hear anything about the return of my dear father.

When Euryclea heard this she began to cry, and spoke fondly to him, saying, "My dear child, what ever can have put such notion as that into your head? Where in the world do you want to go to- you, who are the one hope of the house? Your poor father is dead and gone in some foreign country nobody knows where, and as soon as your back is turned these wicked ones here will be scheming to get you put out of the way, and will share all your possessions among themselves; stay where you are among your own people, and do not go wandering and worrying your life out on the barren ocean."

"Fear not, nurse," answered Telemachus, "my scheme is not without heaven's sanction; but swear that you will say nothing about all this to my mother, till I have been away some ten or twelve days, unless she hears of my having gone, and asks you; for I do not want her to spoil her beauty by crying."

The old woman swore most solemnly that she would not, and when she had completed her oath, she began drawing off the wine into jars, and getting the barley meal into the bags, while Telemachus went back to the suitors.

Then Minerva bethought her of another matter. She took his shape, and went round the town to each one of the crew, telling them to meet at the ship by sundown. She went also to Noemon son of Phronius, and asked him to let her have a ship- which he was very ready to do. When the sun had set and darkness was over all the land, she got the ship into the water, put all the tackle on board her that ships generally carry, and stationed her at the end of the harbour. Presently the crew came up, and the goddess spoke encouragingly to each of them.

Furthermore she went to the house of Ulysses, and threw the suitors into a deep slumber. She caused their drink to fuddle them, and made them drop their cups from their hands, so that instead of sitting over their wine, they went back into the town to sleep, with their eyes heavy and full of drowsiness. Then she took the form and voice of Mentor, and called Telemachus to come outside.

"Telemachus," said she, "the men are on board and at their oars, waiting for you to give your orders, so make haste and let us be off."

On this she led the way, while Telemachus followed in her steps. When they got to the ship they found the crew waiting by the water side, and Telemachus said, "Now my men, help me to get the stores on board; they are all put together in the cloister, and my mother does not know anything about it, nor any of the maid servants except one."

With these words he led the way and the others followed after. When they had brought the things as he told them, Telemachus went on board, Minerva going before him and taking her seat in the stern of the vessel, while Telemachus sat beside her. Then the men loosed the hawsers and took their places on the benches. Minerva sent them a fair wind from the West, that whistled over the deep blue waves whereon Telemachus told them to catch hold of the ropes and hoist sail, and they did as he told them. They set the mast in its socket in the cross plank, raised it, and made it fast with the forestays; then they hoisted their white sails aloft with ropes of twisted ox hide. As the sail bellied out with the wind, the ship flew through the deep blue water, and the foam hissed against her bows as she sped onward. Then they made all fast throughout the ship, filled the mixing-bowls to the brim, and made drink offerings to the immortal gods that are from everlasting, but more particularly to the grey-eyed daughter of Jove.

Thus, then, the ship sped on her way through the watches of the night from dark till dawn.

Book III

But as the sun was rising from the fair sea into the firmament of heaven to shed light on mortals and immortals, they reached Pylos the city of Neleus. Now the people of Pylos were gathered on the sea shore to offer sacrifice of black bulls to Neptune lord of the Earthquake. There were nine guilds with five hundred men in each, and there were nine bulls to each guild. As they were eating the inward meats and burning the thigh bones [on the embers] in the name of Neptune, Telemachus and his crew arrived, furled their sails, brought their ship to anchor, and went ashore.

Minerva led the way and Telemachus followed her. Presently she said, "Telemachus, you must not be in the least shy or nervous; you have taken this voyage to try and find out where your father is buried and how he came by his end; so go straight up to Nestor that we may see what he has got to tell us. Beg of him to speak the truth, and he will tell no lies, for he is an excellent person."

"But how, Mentor," replied Telemachus, "dare I go up to Nestor, and how am I to address him? I have never yet been used to holding long conversations with people, and am ashamed to begin questioning one who is so much older than myself."

"Some things, Telemachus," answered Minerva, "will be suggested to you by your own instinct, and heaven will prompt you further; for I am assured that the gods have been with you from the time of your birth until now."

She then went quickly on, and Telemachus followed in her steps till they reached the place where the guilds of the Pylian people were assembled. There they found Nestor sitting with his sons, while his company round him were busy getting dinner ready, and putting pieces of meat on to the spits while other pieces were cooking. When they saw the strangers they crowded round them, took them by the hand and bade them take their places. Nestor's son Pisistratus at once offered his hand to each of them, and seated them on some soft sheepskins that were lying on the sands near his father and his brother Thrasymedes. Then he gave them their portions of the inward meats and poured wine for them into a golden cup, handing it to Minerva first, and saluting her at the same time.

"Offer a prayer, sir," said he, "to King Neptune, for it is his feast that you are joining; when you have duly prayed and made your drink-offering, pass the cup to your friend that he may do so also. I doubt not that he too lifts his hands in prayer, for man cannot live without God in the world. Still he is younger than you are, and is much of an age with myself, so I he handed I will give you the precedence."

As he spoke he handed her the cup. Minerva thought it very right and proper of him to have given it to herself first; she accordingly began praying heartily to Neptune. "O thou," she cried, "that encirclest the earth, vouchsafe to grant the prayers of thy servants that call upon thee. More especially we pray thee send down thy grace on Nestor and on his sons; thereafter also make the rest of the Pylian people some handsome return for the goodly hecatomb they are offering you. Lastly, grant Telemachus and myself a happy issue, in respect of the matter that has brought us in our to Pylos."

When she had thus made an end of praying, she handed the cup to Telemachus and he prayed likewise. By and by, when the outer meats were roasted and had been taken off the spits, the carvers gave every man his portion and they all made an excellent dinner. As soon as they had had enough to eat and drink, Nestor, knight of Gerene, began to speak.

"Now," said he, "that our guests have done their dinner, it will be best to ask them who they are. Who, then, sir strangers, are you, and from what port have you sailed? Are you traders? or do you sail the seas as rovers with your hand against every man, and every man's hand against you?"

Telemachus answered boldly, for Minerva had given him courage to ask about his father and get himself a good name.

"Nestor," said he, "son of Neleus, honour to the Achaean name, you ask whence we come, and I will tell you. We come from Ithaca under Neritum, and the matter about which I would speak is of private not public import. I seek news of my unhappy father Ulysses, who is said to have sacked the town of Troy in company with yourself. We know what fate befell each one of the other heroes who fought at Troy, but as regards Ulysses heaven has hidden from us the knowledge even that he is dead at all, for no one can certify us in what place he perished, nor say whether he fell in battle on the mainland, or was lost at sea amid the waves of Amphitrite. Therefore I am suppliant at your knees, if haply you may be pleased to tell me of his melancholy end, whether you saw it with your own eyes, or heard it from some other traveller, for he was a man born to trouble. Do not soften things out of any pity for me, but tell me in all plainness exactly what you saw. If my brave father Ulysses ever did you loyal service, either by word or deed, when you Achaeans were harassed among the Trojans, bear it in mind now as in my favour and tell me truly all."

"My friend," answered Nestor, "you recall a time of much sorrow to my mind, for the brave Achaeans suffered much both at sea, while privateering under Achilles, and when fighting before the great city of king Priam. Our best men all of them fell there- Ajax, Achilles, Patroclus peer of gods in counsel, and my own dear son Antilochus, a man singularly fleet of foot and in fight valiant. But we suffered much more than this; what mortal tongue indeed could tell the whole story? Though you were to stay here and question me for five years, or even six, I could not tell you all that the Achaeans suffered, and you would turn homeward weary of my tale before it ended. Nine long years did we try every kind of stratagem, but the hand of heaven was against us; during all this time there was no one who could compare with your father in subtlety- if indeed you are his son- I can hardly believe my eyes- and you talk just like him too- no one would say that people of such different ages could speak so much alike. He and I never had any kind of difference from first to last neither in camp nor council, but in singleness of heart and purpose we advised the Argives how all might be ordered for the best.

"When however, we had sacked the city of Priam, and were setting sail in our ships as heaven had dispersed us, then Jove saw fit to vex the Argives on their homeward voyage; for they had Not all been either wise or understanding, and hence many came to a bad end through the displeasure of Jove's daughter Minerva, who brought about a quarrel between the two sons of Atreus.

"The sons of Atreus called a meeting which was not as it should be, for it was sunset and the Achaeans were heavy with wine. When they explained why they had called- the people together, it seemed that Menelaus was for sailing homeward at once, and this displeased Agamemnon, who thought that we should wait till we had offered hecatombs to appease the anger of Minerva. Fool that he was, he might have known that he would not prevail with her, for when the gods have made up their minds they do not change them lightly. So the two stood bandying hard words, whereon the Achaeans sprang to their feet with a cry that rent the air, and were of two minds as to what they should do.

"That night we rested and nursed our anger, for Jove was hatching mischief against us. But in the morning some of us drew our ships into the water and put our goods with our women on board, while the rest, about half in number, stayed behind with Agamemnon. We- the other half- embarked and sailed; and the ships went well, for heaven had smoothed the sea. When we reached Tenedos we offered sacrifices to the gods, for we were longing to get home; cruel Jove, however, did not yet mean that we should do so, and raised a second quarrel in the course of which some among us turned their ships back again, and sailed away under Ulysses to make their peace with Agamemnon; but I, and all the ships that were with me pressed forward, for I saw that mischief was brewing. The son of Tydeus went on also with me, and his crews with him. Later on Menelaus joined us at Lesbos, and found us making up our minds about our course- for we did not know whether to go outside Chios by the island of Psyra, keeping this to our left, or inside Chios, over against the stormy headland of Mimas. So we asked heaven for a sign, and were shown one to the effect that we should be soonest out of danger if we headed our ships across the open sea to Euboea. This we therefore did, and a fair wind sprang up which gave us a quick passage during the night to Geraestus, where we offered many sacrifices to Neptune for having helped us so far on our way. Four days later Diomed and his men stationed their ships in Argos, but I held on for Pylos, and the wind never fell light from the day when heaven first made it fair for me.

"Therefore, my dear young friend, I returned without hearing anything about the others. I know neither who got home safely nor who were lost but, as in duty bound, I will give you without reserve the reports that have reached me since I have been here in my own house. They say the Myrmidons returned home safely under Achilles' son Neoptolemus; so also did the valiant son of Poias, Philoctetes. Idomeneus, again, lost no men at sea, and all his followers who escaped death in the field got safe home with him to Crete. No matter how far out of the world you live, you will have heard of Agamemnon and the bad end he came to at the hands of Aegisthus- and a fearful reckoning did Aegisthus presently pay. See what a good thing it is for a man to leave a son behind him to do as Orestes did, who killed false Aegisthus the murderer of his noble father. You too, then- for you are a tall, smart-looking fellow- show your mettle and make yourself a name in story."

"Nestor son of Neleus," answered Telemachus, "honour to the Achaean name, the Achaeans applaud Orestes and his name will live through all time for he has avenged his father nobly. Would that heaven might grant me to do like vengeance on the insolence of the wicked suitors, who are ill treating me and plotting my ruin; but the gods have no such happiness in store for me and for my father, so we must bear it as best we may."

"My friend," said Nestor, "now that you remind me, I remember to have heard that your mother has many suitors, who are ill disposed towards you and are making havoc of your estate. Do you submit to this tamely, or are public feeling and the voice of heaven against you? Who knows but what Ulysses may come back after all, and pay these scoundrels in full, either single-handed or with a force of Achaeans behind him? If Minerva were to take as great a liking to you as she did to Ulysses when we were fighting before Troy (for I never yet saw the gods so openly fond of any one as Minerva then was of your father), if she would take as good care of you as she did of him, these wooers would soon some of them him, forget their wooing."

Telemachus answered, "I can expect nothing of the kind; it would be far too much to hope for. I dare not let myself think of it. Even though the gods themselves willed it no such good fortune could befall me."

On this Minerva said, "Telemachus, what are you talking about? Heaven has a long arm if it is minded to save a man; and if it were me, I should not care how much I suffered before getting home, provided I could be safe when I was once there. I would rather this, than get home quickly, and then be killed in my own house as Agamemnon was by the treachery of Aegisthus and his wife. Still, death is certain, and when a man's hour is come, not even the gods can save him, no matter how fond they are of him."

"Mentor," answered Telemachus, "do not let us talk about it any more. There is no chance of my father's ever coming back; the gods have long since counselled his destruction. There is something else, however, about which I should like to ask Nestor, for he knows much more than any one else does. They say he has reigned for three generations so that it is like talking to an immortal. Tell me, therefore, Nestor, and tell me true; how did Agamemnon come to die in that way? What was Menelaus doing? And how came false Aegisthus to kill so far better a man than himself? Was Menelaus away from Achaean Argos, voyaging elsewhither among mankind, that Aegisthus took heart and killed Agamemnon?"

"I will tell you truly," answered Nestor, "and indeed you have yourself divined how it all happened. If Menelaus when he got back from Troy had found Aegisthus still alive in his house, there would have been no barrow heaped up for him, not even when he was dead, but he would have been thrown outside the city to dogs and vultures, and not a woman would have mourned him, for he had done a deed of great wickedness; but we were over there, fighting hard at Troy, and Aegisthus who was taking his ease quietly in the heart of Argos, cajoled Agamemnon's wife Clytemnestra with incessant flattery.

"At first she would have nothing to do with his wicked scheme, for she was of a good natural disposition; moreover there was a bard with her, to whom Agamemnon had given strict orders on setting out for Troy, that he was to keep guard over his wife; but when heaven had counselled her destruction, Aegisthus thus this bard off to a desert island and left him there for crows and seagulls to batten upon- after which she went willingly enough to the house of Aegisthus. Then he offered many burnt sacrifices to the gods, and decorated many temples with tapestries and gilding, for he had succeeded far beyond his expectations.

"Meanwhile Menelaus and I were on our way home from Troy, on good terms with one another. When we got to Sunium, which is the point of Athens, Apollo with his painless shafts killed Phrontis the steersman of Menelaus' ship (and never man knew better how to handle a vessel in rough weather) so that he died then and there with the helm in his hand, and Menelaus, though very anxious to press forward, had to wait in order to bury his comrade and give him his due funeral rites. Presently, when he too could put to sea again, and had sailed on as far as the Malean heads, Jove counselled evil against him and made it it blow hard till the waves ran mountains high. Here he divided his fleet and took the one half towards Crete where the Cydonians dwell round about the waters of the river Iardanus. There is a high headland hereabouts stretching out into the sea from a place called Gortyn, and all along this part of the coast as far as Phaestus the sea runs high when there is a south wind blowing, but arter Phaestus the coast is more protected, for a small headland can make a great shelter. Here this part of the fleet was driven on to the rocks and wrecked; but the crews just managed to save themselves. As for the other five ships, they were taken by winds and seas to Egypt, where Menelaus gathered much gold and substance among people of an alien speech. Meanwhile Aegisthus here at home plotted his evil deed. For seven years after he had killed Agamemnon he ruled in Mycene, and the people were obedient under him, but in the eighth year Orestes came back from Athens to be his bane, and killed the murderer of his father. Then he celebrated the funeral rites of his mother and of false Aegisthus by a banquet to the people of Argos, and on that very day Menelaus came home, with as much treasure as his ships could carry.

"Take my advice then, and do not go travelling about for long so far from home, nor leave your property with such dangerous people in your house; they will eat up everything you have among them, and you will have been on a fool's errand. Still, I should advise you by all means to go and visit Menelaus, who has lately come off a voyage among such distant peoples as no man could ever hope to get back from, when the winds had once carried him so far out of his reckoning; even birds cannot fly the distance in a twelvemonth, so vast and terrible are the seas that they must cross. Go to him, therefore, by sea, and take your own men with you; or if you would rather travel by land you can have a chariot, you can have horses, and here are my sons who can escort you to Lacedaemon where Menelaus lives. Beg of him to speak the truth, and he will tell you no lies, for he is an excellent person."

As he spoke the sun set and it came on dark, whereon Minerva said, "Sir, all that you have said is well; now, however, order the tongues of the victims to be cut, and mix wine that we may make drink-offerings to Neptune, and the other immortals, and then go to bed, for it is bed time. People should go away early and not keep late hours at a religious festival."

Thus spoke the daughter of Jove, and they obeyed her saying. Men servants poured water over the hands of the guests, while pages filled the mixing-bowls with wine and water, and handed it round after giving every man his drink-offering; then they threw the tongues of the victims into the fire, and stood up to make their drink-offerings. When they had made their offerings and had drunk each as much as he was minded, Minerva and Telemachus were forgoing on board their ship, but Nestor caught them up at once and stayed them.

"Heaven and the immortal gods," he exclaimed, "forbid that you should leave my house to go on board of a ship. Do you think I am so poor and short of clothes, or that I have so few cloaks and as to be unable to find comfortable beds both for myself and for my guests? Let me tell you I have store both of rugs and cloaks, and shall not permit the son of my old friend Ulysses to camp down on the deck of a ship- not while I live- nor yet will my sons after me, but they will keep open house as have done."

Then Minerva answered, "Sir, you have spoken well, and it will be much better that Telemachus should do as you have said; he, therefore, shall return with you and sleep at your house, but I must go back to give orders to my crew, and keep them in good heart. I am the only older person among them; the rest are all young men of Telemachus' own age, who have taken this voyage out of friendship; so I must return to the ship and sleep there. Moreover to-morrow I must go to the Cauconians where I have a large sum of money long owing to me. As for Telemachus, now that he is your guest, send him to Lacedaemon in a chariot, and let one of your sons go with him. Be pleased also to provide him with your best and fleetest horses."

When she had thus spoken, she flew away in the form of an eagle, and all marvelled as they beheld it. Nestor was astonished, and took Telemachus by the hand. "My friend," said he, "I see that you are going to be a great hero some day, since the gods wait upon you thus while you are still so young. This can have been none other of those who dwell in heaven than Jove's redoubtable daughter, the Trito-born, who showed such favour towards your brave father among the Argives." "Holy queen," he continued, "vouchsafe to send down thy grace upon myself, my good wife, and my children. In return, I will offer you in sacrifice a broad-browed heifer of a year old, unbroken, and never yet brought by man under the yoke. I will gild her horns, and will offer her up to you in sacrifice."

Thus did he pray, and Minerva heard his prayer. He then led the way to his own house, followed by his sons and sons-in-law. When they had got there and had taken their places on the benches and seats, he mixed them a bowl of sweet wine that was eleven years old when the housekeeper took the lid off the jar that held it. As he mixed the wine, he prayed much and made drink-offerings to Minerva, daughter of Aegis-bearing Jove. Then, when they had made their drink-offerings and had drunk each as much as he was minded, the others went home to bed each in his own abode; but Nestor put Telemachus to sleep in the room that was over the gateway along with Pisistratus, who was the only unmarried son now left him. As for himself, he slept in an inner room of the house, with the queen his wife by his side.

Now when the child of morning, rosy-fingered Dawn, appeared, Nestor left his couch and took his seat on the benches of white and polished marble that stood in front of his house. Here aforetime sat Neleus, peer of gods in counsel, but he was now dead, and had gone to the house of Hades; so Nestor sat in his seat, sceptre in hand, as guardian of the public weal. His sons as they left their rooms gathered round him, Echephron, Stratius, Perseus, Aretus, and Thrasymedes; the sixth son was Pisistratus, and when Telemachus joined them they made him sit with them. Nestor then addressed them.

"My sons," said he, "make haste to do as I shall bid you. I wish first and foremost to propitiate the great goddess Minerva, who manifested herself visibly to me during yesterday's festivities. Go, then, one or other of you to the plain, tell the stockman to look me out a heifer, and come on here with it at once. Another must go to Telemachus's ship, and invite all the crew, leaving two men only in charge of the vessel. Some one else will run and fetch Laerceus the goldsmith to gild the horns of the heifer. The rest, stay all of you where you are; tell the maids in the house to prepare an excellent dinner, and to fetch seats, and logs of wood for a burnt offering. Tell them also- to bring me some clear spring water."

On this they hurried off on their several errands. The heifer was brought in from the plain, and Telemachus's crew came from the ship; the goldsmith brought the anvil, hammer, and tongs, with which he worked his gold, and Minerva herself came to the sacrifice. Nestor gave out the gold, and the smith gilded the horns of the heifer that the goddess might have pleasure in their beauty. Then Stratius and Echephron brought her in by the horns; Aretus fetched water from the house in a ewer that had a flower pattern on it, and in his other hand he held a basket of barley meal; sturdy Thrasymedes stood by with a sharp axe, ready to strike the heifer, while Perseus held a bucket. Then Nestor began with washing his hands and sprinkling the barley meal, and he offered many a prayer to Minerva as he threw a lock from the heifer's head upon the fire.

When they had done praying and sprinkling the barley meal Thrasymedes dealt his blow, and brought the heifer down with a stroke that cut through the tendons at the base of her neck, whereon the daughters and daughters-in-law of Nestor, and his venerable wife Eurydice (she was eldest daughter to Clymenus) screamed with delight. Then they lifted the heifer's head from off the ground, and Pisistratus cut her throat. When she had done bleeding and was quite dead, they cut her up. They cut out the thigh bones all in due course, wrapped them round in two layers of fat, and set some pieces of raw meat on the top of them; then Nestor laid them upon the wood fire and poured wine over them, while the young men stood near him with five-pronged spits in their hands. When the thighs were burned and they had tasted the inward meats, they cut the rest of the meat up small, put the pieces on the spits and toasted them over the fire.

Meanwhile lovely Polycaste, Nestor's youngest daughter, washed Telemachus. When she had washed him and anointed him with oil, she brought him a fair mantle and shirt, and he looked like a god as he came from the bath and took his seat by the side of Nestor. When the outer meats were done they drew them off the spits and sat down to dinner where they were waited upon by some worthy henchmen, who kept pouring them out their wine in cups of gold. As soon as they had had had enough to eat and drink Nestor said, "Sons, put Telemachus's horses to the chariot that he may start at once."

Thus did he speak, and they did even as he had said, and yoked the fleet horses to the chariot. The housekeeper packed them up a provision of bread, wine, and sweetmeats fit for the sons of princes. Then Telemachus got into the chariot, while Pisistratus gathered up the reins and took his seat beside him. He lashed the horses on and they flew forward nothing loth into the open country, leaving the high citadel of Pylos behind them. All that day did they travel, swaying the yoke upon their necks till the sun went down and darkness was over all the land. Then they reached Pherae where Diocles lived, who was son to Ortilochus and grandson to Alpheus. Here they passed the night and Diocles entertained them hospitably. When the child of morning, rosy-fingered Dawn; appeared, they again yoked their horses and drove out through the gateway under the echoing gatehouse. Pisistratus lashed the horses on and they flew forward nothing loth; presently they came to the corn lands Of the open country, and in the course of time completed their journey, so well did their steeds take them.

Now when the sun had set and darkness was over the land.
EOF

cat request.txt | nc localhost 4545

To understand the problem, here's what the imposter looks like without the endOfRequestResolver. Notice that it captured multiple requests even though only one logical request was actually sent:


HTTP/1.1 200 OK
Vary: Accept
Date: Sun, 11 Jan 2015 16:59:33 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 138346
Connection: keep-alive

{
  "protocol": "tcp",
  "port": 4545,
  "numberOfRequests": 2,
  "mode": "text",
  "requests": [
    {
      "requestFrom": "::1:60590",
      "data": "POST / HTTP/1.1\nHost: localhost:4545\nContent-Length: 68134\nContent-Type: text/plain\n\nBook I\n\nTell me, O muse, of that ingenious hero who travelled far and wide after he had sacked the famous town of Troy. Many cities did he visit, and many were the nations with whose manners and customs he was acquainted; moreover he suffered much by sea while trying to save his own life and bring his men safely home; but do what he might he could not save his men, for they perished through their own sheer folly in eating the cattle of the Sun-god Hyperion; so the god prevented them from ever reaching home. Tell me, too, about all these things, O daughter of Jove, from whatsoever source you may know them.\n\nSo now all who escaped death in battle or by shipwreck had got safely home except Ulysses, and he, though he was longing to return to his wife and country, was detained by the goddess Calypso, who had got him into a large cave and wanted to marry him. But as years went by, there came a time when the gods settled that he should go back to Ithaca; even then, however, when he was among his own people, his troubles were not yet over; nevertheless all the gods had now begun to pity him except Neptune, who still persecuted him without ceasing and would not let him get home.\n\nNow Neptune had gone off to the Ethiopians, who are at the world's end, and lie in two halves, the one looking West and the other East. He had gone there to accept a hecatomb of sheep and oxen, and was enjoying himself at his festival; but the other gods met in the house of Olympian Jove, and the sire of gods and men spoke first. At that moment he was thinking of Aegisthus, who had been killed by Agamemnon's son Orestes; so he said to the other gods:\n\n\"See now, how men lay blame upon us gods for what is after all nothing but their own folly. Look at Aegisthus; he must needs make love to Agamemnon's wife unrighteously and then kill Agamemnon, though he knew it would be the death of him; for I sent Mercury to warn him not to do either of these things, inasmuch as Orestes would be sure to take his revenge when he grew up and wanted to return home. Mercury told him this in all good will but he would not listen, and now he has paid for everything in full.\"\n\nThen Minerva said, \"Father, son of Saturn, King of kings, it served Aegisthus right, and so it would any one else who does as he did; but Aegisthus is neither here nor there; it is for Ulysses that my heart bleeds, when I think of his sufferings in that lonely sea-girt island, far away, poor man, from all his friends. It is an island covered with forest, in the very middle of the sea, and a goddess lives there, daughter of the magician Atlas, who looks after the bottom of the ocean, and carries the great columns that keep heaven and earth asunder. This daughter of Atlas has got hold of poor unhappy Ulysses, and keeps trying by every kind of blandishment to make him forget his home, so that he is tired of life, and thinks of nothing but how he may once more see the smoke of his own chimneys. You, sir, take no heed of this, and yet when Ulysses was before Troy did he not propitiate you with many a burnt sacrifice? Why then should you keep on being so angry with him?\"\n\nAnd Jove said, \"My child, what are you talking about? How can I forget Ulysses than whom there is no more capable man on earth, nor more liberal in his offerings to the immortal gods that live in heaven? Bear in mind, however, that Neptune is still furious with Ulysses for having blinded an eye of Polyphemus king of the Cyclopes. Polyphemus is son to Neptune by the nymph Thoosa, daughter to the sea-king Phorcys; therefore though he will not kill Ulysses outright, he torments him by preventing him from getting home. Still, let us lay our heads together and see how we can help him to return; Neptune will then be pacified, for if we are all of a mind he can hardly stand out against us.\"\n\nAnd Minerva said, \"Father, son of Saturn, King of kings, if, then, the gods now mean that Ulysses should get home, we should first send Mercury to the Ogygian island to tell Calypso that we have made up our minds and that he is to return. In the meantime I will go to Ithaca, to put heart into Ulysses' son Telemachus; I will embolden him to call the Achaeans in assembly, and speak out to the suitors of his mother Penelope, who persist in eating up any number of his sheep and oxen; I will also conduct him to Sparta and to Pylos, to see if he can hear anything about the return of his dear father- for this will make people speak well of him.\"\n\nSo saying she bound on her glittering golden sandals, imperishable, with which she can fly like the wind over land or sea; she grasped the redoubtable bronze-shod spear, so stout and sturdy and strong, wherewith she quells the ranks of heroes who have displeased her, and down she darted from the topmost summits of Olympus, whereon forthwith she was in Ithaca, at the gateway of Ulysses' house, disguised as a visitor, Mentes, chief of the Taphians, and she held a bronze spear in her hand. There she found the lordly suitors seated on hides of the oxen which they had killed and eaten, and playing draughts in front of the house. Men-servants and pages were bustling about to wait upon them, some mixing wine with water in the mixing-bowls, some cleaning down the tables with wet sponges and laying them out again, and some cutting up great quantities of meat.\n\nTelemachus saw her long before any one else did. He was sitting moodily among the suitors thinking about his brave father, and how he would send them flying out of the house, if he were to come to his own again and be honoured as in days gone by. Thus brooding as he sat among them, he caught sight of Minerva and went straight to the gate, for he was vexed that a stranger should be kept waiting for admittance. He took her right hand in his own, and bade her give him her spear. \"Welcome,\" said he, \"to our house, and when you have partaken of food you shall tell us what you have come for.\"\n\nHe led the way as he spoke, and Minerva followed him. When they were within he took her spear and set it in the spear- stand against a strong bearing-post along with the many other spears of his unhappy father, and he conducted her to a richly decorated seat under which he threw a cloth of damask. There was a footstool also for her feet, and he set another seat near her for himself, away from the suitors, that she might not be annoyed while eating by their noise and insolence, and that he might ask her more freely about his father.\n\nA maid servant then brought them water in a beautiful golden ewer and poured it into a silver basin for them to wash their hands, and she drew a clean table beside them. An upper servant brought them bread, and offered them many good things of what there was in the house, the carver fetched them plates of all manner of meats and set cups of gold by their side, and a man-servant brought them wine and poured it out for them.\n\nThen the suitors came in and took their places on the benches and seats. Forthwith men servants poured water over their hands, maids went round with the bread-baskets, pages filled the mixing-bowls with wine and water, and they laid their hands upon the good things that were before them. As soon as they had had enough to eat and drink they wanted music and dancing, which are the crowning embellishments of a banquet, so a servant brought a lyre to Phemius, whom they compelled perforce to sing to them. As soon as he touched his lyre and began to sing Telemachus spoke low to Minerva, with his head close to hers that no man might hear.\n\n\"I hope, sir,\" said he, \"that you will not be offended with what I am going to say. Singing comes cheap to those who do not pay for it, and all this is done at the cost of one whose bones lie rotting in some wilderness or grinding to powder in the surf. If these men were to see my father come back to Ithaca they would pray for longer legs rather than a longer purse, for money would not serve them; but he, alas, has fallen on an ill fate, and even when people do sometimes say that he is coming, we no longer heed them; we shall never see him again. And now, sir, tell me and tell me true, who you are and where you come from. Tell me of your town and parents, what manner of ship you came in, how your crew brought you to Ithaca, and of what nation they declared themselves to be- for you cannot have come by land. Tell me also truly, for I want to know, are you a stranger to this house, or have you been here in my father's time? In the old days we had many visitors for my father went about much himself.\"\n\nAnd Minerva answered, \"I will tell you truly and particularly all about it. I am Mentes, son of Anchialus, and I am King of the Taphians. I have come here with my ship and crew, on a voyage to men of a foreign tongue being bound for Temesa with a cargo of iron, and I shall bring back copper. As for my ship, it lies over yonder off the open country away from the town, in the harbour Rheithron under the wooded mountain Neritum. Our fathers were friends before us, as old Laertes will tell you, if you will go and ask him. They say, however, that he never comes to town now, and lives by himself in the country, faring hardly, with an old woman to look after him and get his dinner for him, when he comes in tired from pottering about his vineyard. They told me your father was at home again, and that was why I came, but it seems the gods are still keeping him back, for he is not dead yet not on the mainland. It is more likely he is on some sea-girt island in mid ocean, or a prisoner among savages who are detaining him against his will I am no prophet, and know very little about omens, but I speak as it is borne in upon me from heaven, and assure you that he will not be away much longer; for he is a man of such resource that even though he were in chains of iron he would find some means of getting home again. But tell me, and tell me true, can Ulysses really have such a fine looking fellow for a son? You are indeed wonderfully like him about the head and eyes, for we were close friends before he set sail for Troy where the flower of all the Argives went also. Since that time we have never either of us seen the other.\"\n\n\"My mother,\" answered Telemachus, tells me I am son to Ulysses, but it is a wise child that knows his own father. Would that I were son to one who had grown old upon his own estates, for, since you ask me, there is no more ill-starred man under heaven than he who they tell me is my father.\"\n\nAnd Minerva said, \"There is no fear of your race dying out yet, while Penelope has such a fine son as you are. But tell me, and tell me true, what is the meaning of all this feasting, and who are these people? What is it all about? Have you some banquet, or is there a wedding in the family- for no one seems to be bringing any provisions of his own? And the guests- how atrociously they are behaving; what riot they make over the whole house; it is enough to disgust any respectable person who comes near them.\"\n\n\"Sir,\" said Telemachus, \"as regards your question, so long as my father was here it was well with us and with the house, but the gods in their displeasure have willed it otherwise, and have hidden him away more closely than mortal man was ever yet hidden. I could have borne it better even though he were dead, if he had fallen with his men before Troy, or had died with friends around him when the days of his fighting were done; for then the Achaeans would have built a mound over his ashes, and I should myself have been heir to his renown; but now the storm-winds have spirited him away we know not wither; he is gone without leaving so much as a trace behind him, and I inherit nothing but dismay. Nor does the matter end simply with grief for the loss of my father; heaven has laid sorrows upon me of yet another kind; for the chiefs from all our islands, Dulichium, Same, and the woodland island of Zacynthus, as also all the principal men of Ithaca itself, are eating up my house under the pretext of paying their court to my mother, who will neither point blank say that she will not marry, nor yet bring matters to an end; so they are making havoc of my estate, and before long will do so also with myself.\"\n\n\"Is that so?\" exclaimed Minerva, \"then you do indeed want Ulysses home again. Give him his helmet, shield, and a couple lances, and if he is the man he was when I first knew him in our house, drinking and making merry, he would soon lay his hands about these rascally suitors, were he to stand once more upon his own threshold. He was then coming from Ephyra, where he had been to beg poison for his arrows from Ilus, son of Mermerus. Ilus feared the ever-living gods and would not give him any, but my father let him have some, for he was very fond of him. If Ulysses is the man he then was these suitors will have a short shrift and a sorry wedding.\n\n\"But there! It rests with heaven to determine whether he is to return, and take his revenge in his own house or no; I would, however, urge you to set about trying to get rid of these suitors at once. Take my advice, call the Achaean heroes in assembly to-morrow -lay your case before them, and call heaven to bear you witness. Bid the suitors take themselves off, each to his own place, and if your mother's mind is set on marrying again, let her go back to her father, who will find her a husband and provide her with all the marriage gifts that so dear a daughter may expect. As for yourself, let me prevail upon you to take the best ship you can get, with a crew of twenty men, and go in quest of your father who has so long been missing. Some one may tell you something, or (and people often hear things in this way) some heaven-sent message may direct you. First go to Pylos and ask Nestor; thence go on to Sparta and visit Menelaus, for he got home last of all the Achaeans; if you hear that your father is alive and on his way home, you can put up with the waste these suitors will make for yet another twelve months. If on the other hand you hear of his death, come home at once, celebrate his funeral rites with all due pomp, build a barrow to his memory, and make your mother marry again. Then, having done all this, think it well over in your mind how, by fair means or foul, you may kill these suitors in your own house. You are too old to plead infancy any longer; have you not heard how people are singing Orestes' praises for having killed his father's murderer Aegisthus? You are a fine, smart looking fellow; show your mettle, then, and make yourself a name in story. Now, however, I must go back to my ship and to my crew, who will be impatient if I keep them waiting longer; think the matter over for yourself, and remember what I have said to you.\"\n\n\"Sir,\" answered Telemachus, \"it has been very kind of you to talk to me in this way, as though I were your own son, and I will do all you tell me; I know you want to be getting on with your voyage, but stay a little longer till you have taken a bath and refreshed yourself. I will then give you a present, and you shall go on your way rejoicing; I will give you one of great beauty and value- a keepsake such as only dear friends give to one another.\"\n\nMinerva answered, \"Do not try to keep me, for I would be on my way at once. As for any present you may be disposed to make me, keep it till I come again, and I will take it home with me. You shall give me a very good one, and I will give you one of no less value in return.\"\n\nWith these words she flew away like a bird into the air, but she had given Telemachus courage, and had made him think more than ever about his father. He felt the change, wondered at it, and knew that the stranger had been a god, so he went straight to where the suitors were sitting.\n\nPhemius was still singing, and his hearers sat rapt in silence as he told the sad tale of the return from Troy, and the ills Minerva had laid upon the Achaeans. Penelope, daughter of Icarius, heard his song from her room upstairs, and came down by the great staircase, not alone, but attended by two of her handmaids. When she reached the suitors she stood by one of the bearing posts that supported the roof of the cloisters with a staid maiden on either side of her. She held a veil, moreover, before her face, and was weeping bitterly.\n\n\"Phemius,\" she cried, \"you know many another feat of gods and heroes, such as poets love to celebrate. Sing the suitors some one of these, and let them drink their wine in silence, but cease this sad tale, for it breaks my sorrowful heart, and reminds me of my lost husband whom I mourn ever without ceasing, and whose name was great over all Hellas and middle Argos.\"\n\n\"Mother,\" answered Telemachus, \"let the bard sing what he has a mind to; bards do not make the ills they sing of; it is Jove, not they, who makes them, and who sends weal or woe upon mankind according to his own good pleasure. This fellow means no harm by singing the ill-fated return of the Danaans, for people always applaud the latest songs most warmly. Make up your mind to it and bear it; Ulysses is not the only man who never came back from Troy, but many another went down as well as he. Go, then, within the house and busy yourself with your daily duties, your loom, your distaff, and the ordering of your servants; for speech is man's matter, and mine above all others- for it is I who am master here.\"\n\nShe went wondering back into the house, and laid her son's saying in her heart. Then, going upstairs with her handmaids into her room, she mourned her dear husband till Minerva shed sweet sleep over her eyes. But the suitors were clamorous throughout the covered cloisters, and prayed each one that he might be her bed fellow.\n\nThen Telemachus spoke, \"Shameless,\" he cried, \"and insolent suitors, let us feast at our pleasure now, and let there be no brawling, for it is a rare thing to hear a man with such a divine voice as Phemius has; but in the morning meet me in full assembly that I may give you formal notice to depart, and feast at one another's houses, turn and turn about, at your own cost. If on the other hand you choose to persist in spunging upon one man, heaven help me, but Jove shall reckon with you in full, and when you fall in my father's house there shall be no man to avenge you.\"\n\nThe suitors bit their lips as they heard him, and marvelled at the boldness of his speech. Then, Antinous, son of Eupeithes, said, \"The gods seem to have given you lessons in bluster and tall talking; may Jove never grant you to be chief in Ithaca as your father was before you.\"\n\nTelemachus answered, \"Antinous, do not chide with me, but, god willing, I will be chief too if I can. Is this the worst fate you can think of for me? It is no bad thing to be a chief, for it brings both riches and honour. Still, now that Ulysses is dead there are many great men in Ithaca both old and young, and some other may take the lead among them; nevertheless I will be chief in my own house, and will rule those whom Ulysses has won for me.\"\n\nThen Eurymachus, son of Polybus, answered, \"It rests with heaven to decide who shall be chief among us, but you shall be master in your own house and over your own possessions; no one while there is a man in Ithaca shall do you violence nor rob you. And now, my good fellow, I want to know about this stranger. What country does he come from? Of what family is he, and where is his estate? Has he brought you news about the return of your father, or was he on business of his own? He seemed a well-to-do man, but he hurried off so suddenly that he was gone in a moment before we could get to know him.\"\n\n\"My father is dead and gone,\" answered Telemachus, \"and even if some rumour reaches me I put no more faith in it now. My mother does indeed sometimes send for a soothsayer and question him, but I give his prophecyings no heed. As for the stranger, he was Mentes, son of Anchialus, chief of the Taphians, an old friend of my father's.\" But in his heart he knew that it had been the goddess.\n\nThe suitors then returned to their singing and dancing until the evening; but when night fell upon their pleasuring they went home to bed each in his own abode. Telemachus's room was high up in a tower that looked on to the outer court; hither, then, he hied, brooding and full of thought. A good old woman, Euryclea, daughter of Ops, the son of Pisenor, went before him with a couple of blazing torches. Laertes had bought her with his own money when she was quite young; he gave the worth of twenty oxen for her, and shewed as much respect to her in his household as he did to his own wedded wife, but he did not take her to his bed for he feared his wife's resentment. She it was who now lighted Telemachus to his room, and she loved him better than any of the other women in the house did, for she had nursed him when he was a baby. He opened the door of his bed room and sat down upon the bed; as he took off his shirt he gave it to the good old woman, who folded it tidily up, and hung it for him over a peg by his bed side, after which she went out, pulled the door to by a silver catch, and drew the bolt home by means of the strap. But Telemachus as he lay covered with a woollen fleece kept thinking all night through of his intended voyage of the counsel that Minerva had given him.\n\nBook II\n\nNow when the child of morning, rosy-fingered Dawn, appeared, Telemachus rose and dressed himself. He bound his sandals on to his comely feet, girded his sword about his shoulder, and left his room looking like an immortal god. He at once sent the criers round to call the people in assembly, so they called them and the people gathered thereon; then, when they were got together, he went to the place of assembly spear in hand- not alone, for his two hounds went with him. Minerva endowed him with a presence of such divine comeliness that all marvelled at him as he went by, and when he took his place' in his father's seat even the oldest councillors made way for him.\n\nAegyptius, a man bent double with age, and of infinite experience, the first to speak His son Antiphus had gone with Ulysses to Ilius, land of noble steeds, but the savage Cyclops had killed him when they were all shut up in the cave, and had cooked his last dinner for him, He had three sons left, of whom two still worked on their father's land, while the third, Eurynomus, was one of the suitors; nevertheless their father could not get over the loss of Antiphus, and was still weeping for him when he began his speech.\n\n\"Men of Ithaca,\" he said, \"hear my words. From the day Ulysses left us there has been no meeting of our councillors until now; who then can it be, whether old or young, that finds it so necessary to convene us? Has he got wind of some host approaching, and does he wish to warn us, or would he speak upon some other matter of public moment? I am sure he is an excellent person, and I hope Jove will grant him his heart's desire.\"\n\nTelemachus took this speech as of good omen and rose at once, for he was bursting with what he had to say. He stood in the middle of the assembly and the good herald Pisenor brought him his staff. Then, turning to Aegyptius, \"Sir,\" said he, \"it is I, as you will shortly learn, who have convened you, for it is I who am the most aggrieved. I have not got wind of any host approaching about which I would warn you, nor is there any matter of public moment on which I would speak. My grieveance is purely personal, and turns on two great misfortunes which have fallen upon my house. The first of these is the loss of my excellent father, who was chief among all you here present, and was like a father to every one of you; the second is much more serious, and ere long will be the utter ruin of my estate. The sons of all the chief men among you are pestering my mother to marry them against her will. They are afraid to go to her father Icarius, asking him to choose the one he likes best, and to provide marriage gifts for his daughter, but day by day they keep hanging about my father's house, sacrificing our oxen, sheep, and fat goats for their banquets, and never giving so much as a thought to the quantity of wine they drink. No estate can stand such recklessness; we have now no Ulysses to ward off harm from our doors, and I cannot hold my own against them. I shall never all my days be as good a man as he was, still I would indeed defend myself if I had power to do so, for I cannot stand such treatment any longer; my house is being disgraced and ruined. Have respect, therefore, to your own consciences and to public opinion. Fear, too, the wrath of heaven, lest the gods should be displeased and turn upon you. I pray you by Jove and Themis, who is the beginning and the end of councils, [do not] hold back, my friends, and leave me singlehanded- unless it be that my brave father Ulysses did some wrong to the Achaeans which you would now avenge on me, by aiding and abetting these suitors. Moreover, if I am to be eaten out of house and home at all, I had rather you did the eating yourselves, for I could then take action against you to some purpose, and serve you with notices from house to house till I got paid in full, whereas now I have no remedy.\"\n\nWith this Telemachus dashed his staff to the ground and burst into tears. Every one was very sorry for him, but they all sat still and no one ventured to make him an angry answer, save only Antinous, who spoke thus:\n\n\"Telemachus, insolent braggart that you are, how dare you try to throw the blame upon us suitors? It is your mother's fault not ours, for she is a very artful woman. This three years past, and close on four, she has been driving us out of our minds, by encouraging each one of us, and sending him messages without meaning one word of what she says. And then there was that other trick she played us. She set up a great tambour frame in her room, and began to work on an enormous piece of fine needlework. 'Sweet hearts,' said she, 'Ulysses is indeed dead, still do not press me to marry again immediately, wait- for I would not have skill in needlework perish unrecorded- till I have completed a pall for the hero Laertes, to be in readiness against the time when death shall take him. He is very rich, and the women of the place will talk if he is laid out without a pall.'\n\n\"This was what she said, and we assented; whereon we could see her working on her great web all day long, but at night she would unpick the stitches again by torchlight. She fooled us in this way for three years and we never found her out, but as time wore on and she was now in her fourth year, one of her maids who knew what she was doing told us, and we caught her in the act of undoing her work, so she had to finish it whether she would or no. The suitors, therefore, make you this answer, that both you and the Achaeans may understand-'Send your mother away, and bid her marry the man of her own and of her father's choice'; for I do not know what will happen if she goes on plaguing us much longer with the airs she gives herself on the score of the accomplishments Minerva has taught her, and because she is so clever. We never yet heard of such a woman; we know all about Tyro, Alcmena, Mycene, and the famous women of old, but they were nothing to your mother, any one of them. It was not fair of her to treat us in that way, and as long as she continues in the mind with which heaven has now endowed her, so long shall we go on eating up your estate; and I do not see why she should change, for she gets all the honour and glory, and it is you who pay for it, not she. Understand, then, that we will not go back to our lands, neither here nor elsewhere, till she has made her choice and married some one or other of us.\"\n\nTelemachus answered, \"Antinous, how can I drive the mother who bore me from my father's house? My father is abroad and we do not know whether he is alive or dead. It will be hard on me if I have to pay Icarius the large sum which I must give him if I insist on sending his daughter back to him. Not only will he deal rigorously with me, but heaven will also punish me; for my mother when she leaves the house will calf on the Erinyes to avenge her; besides, it would not be a creditable thing to do, and I will have nothing to say to it. If you choose to take offence at this, leave the house and feast elsewhere at one another's houses at your own cost turn and turn about. If, on the other hand, you elect to persist in spunging upon one man, heaven help me, but Jove shall reckon with you in full, and when you fall in my father's house there shall be no man to avenge you.\"\n\nAs he spoke Jove sent two eagles from the top of the mountain, and they flew on and on with the wind, sailing side by side in their own lordly flight. When they were right over the middle of the assembly they wheeled and circled about, beating the air with their wings and glaring death into the eyes of them that were below; then, fighting fiercely and tearing at one another, they flew off towards the right over the town. The people wondered as they saw them, and asked each other what an this might be; whereon Halitherses, who was the best prophet and reader of omens among them, spoke to them plainly and in all honesty, saying:\n\n\"Hear me, men of Ithaca, and I speak more particularly to the suitors, for I see mischief brewing for them. Ulysses is not going to be away much longer; indeed he is close at hand to deal out death and destruction, not on them alone, but on many another of us who live in Ithaca. Let us then be wise in time, and put a stop to this wickedness before he comes. Let the suitors do so of their own accord; it will be better for them, for I am not prophesying without due knowledge; everything has happened to Ulysses as I foretold when the Argives set out for Troy, and he with them. I said that after going through much hardship and losing all his men he should come home again in the twentieth year and that no one would know him; and now all this is coming true.\"\n\nEurymachus son of Polybus then said, \"Go home, old man, and prophesy to your own children, or it may be worse for them. I can read these omens myself much better than you can; birds are always flying about in the sunshine somewhere or other, but they seldom mean anything. Ulysses has died in a far country, and it is a pity you are not dead along with him, instead of prating here about omens and adding fuel to the anger of Telemachus which is fierce enough as it is. I suppose you think he will give you something for your family, but I tell you- and it shall surely be- when an old man like you, who should know better, talks a young one over till he becomes troublesome, in the first place his young friend will only fare so much the worse- he will take nothing by it, for the suitors will prevent this- and in the next, we will lay a heavier fine, sir, upon yourself than you will at all like paying, for it will bear hardly upon you. As for Telemachus, I warn him in the presence of you all to send his mother back to her father, who will find her a husband and provide her with all the marriage gifts so dear a daughter may expect. Till we shall go on harassing him with our suit; for we fear no man, and care neither for him, with all his fine speeches, nor for any fortune-telling of yours. You may preach as much as you please, but we shall only hate you the more. We shall go back and continue to eat up Telemachus's estate without paying him, till such time as his mother leaves off tormenting us by keeping us day after day on the tiptoe of expectation, each vying with the other in his suit for a prize of such rare perfection. Besides we cannot go after the other women whom we should marry in due course, but for the way in which she treats us.\"\n\nThen Telemachus said, \"Eurymachus, and you other suitors, I shall say no more, and entreat you no further, for the gods and the people of Ithaca now know my story. Give me, then, a ship and a crew of twenty men to take me hither and thither, and I will go to Sparta and to Pylos in quest of my father who has so long been missing. Some one may tell me something, or (and people often hear things in this way) some heaven-sent message may direct me. If I can hear of him as alive and on his way home I will put up with the waste you suitors will make for yet another twelve months. If on the other hand I hear of his death, I will return at once, celebrate his funeral rites with all due pomp, build a barrow to his memory, and make my mother marry again.\"\n\nWith these words he sat down, and Mentor who had been a friend of Ulysses, and had been left in charge of everything with full authority over the servants, rose to speak. He, then, plainly and in all honesty addressed them thus:\n\n\"Hear me, men of Ithaca, I hope that you may never have a kind and well-disposed ruler any more, nor one who will govern you equitably; I hope that all your chiefs henceforward may be cruel and unjust, for there is not one of you but has forgotten Ulysses, who ruled you as though he were your father. I am not half so angry with the suitors, for if they choose to do violence in the naughtiness of their hearts, and wager their heads that Ulysses will not return, they can take the high hand and eat up his estate, but as for you others I am shocked at the way in which you all sit still without even trying to stop such scandalous goings on-which you could do if you chose, for you are many and they are few.\"\n\nLeiocritus, son of Evenor, answered him saying, \"Mentor, what folly is all this, that you should set the people to stay us? It is a hard thing for one man to fight with many about his victuals. Even though Ulysses himself were to set upon us while we are feasting in his house, and do his best to oust us, his wife, who wants him back so very badly, would have small cause for rejoicing, and his blood would be upon his own head if he fought against such great odds. There is no sense in what you have been saying. Now, therefore, do you people go about your business, and let his father's old friends, Mentor and Halitherses, speed this boy on his journey, if he goes at all- which I do not think he will, for he is more likely to stay where he is till some one comes and tells him something.\"\n\nOn this he broke up the assembly, and every man went back to his own abode, while the suitors returned to the house of Ulysses.\n\nThen Telemachus went all alone by the sea side, washed his hands in the grey waves, and prayed to Minerva.\n\n\"Hear me,\" he cried, \"you god who visited me yesterday, and bade me sail the seas in search of my father who has so long been missing. I would obey you, but the Achaeans, and more particularly the wicked suitors, are hindering me that I cannot do so.\"\n\nAs he thus prayed, Minerva came close up to him in the likeness and with the voice of Mentor. \"Telemachus,\" said she, \"if you are made of the same stuff as your father you will be neither fool nor coward henceforward, for Ulysses never broke his word nor left his work half done. If, then, you take after him, your voyage will not be fruitless, but unless you have the blood of Ulysses and of Penelope in your veins I see no likelihood of your succeeding. Sons are seldom as good men as their fathers; they are generally worse, not better; still, as you are not going to be either fool or coward henceforward, and are not entirely without some share of your father's wise discernment, I look with hope upon your undertaking. But mind you never make common cause with any of those foolish suitors, for they have neither sense nor virtue, and give no thought to death and to the doom that will shortly fall on one and all of them, so that they shall perish on the same day. As for your voyage, it shall not be long delayed; your father was such an old friend of mine that I will find you a ship, and will come with you myself. Now, however, return home, and go about among the suitors; begin getting provisions ready for your voyage; see everything well stowed, the wine in jars, and the barley meal, which is the staff of life, in leathern bags, while I go round the town and beat up volunteers at once. There are many ships in Ithaca both old and new; I will run my eye over them for you and will choose the best; we will get her ready and will put out to sea without delay.\"\n\nThus spoke Minerva daughter of Jove, and Telemachus lost no time in doing as the goddess told him. He went moodily and found the suitors flaying goats and singeing pigs in the outer court. Antinous came up to him at once and laughed as he took his hand in his own, saying, \"Telemachus, my fine fire-eater, bear no more ill blood neither in word nor deed, but eat and drink with us as you used to do. The Achaeans will find you in everything- a ship and a picked crew to boot- so that you can set sail for Pylos at once and get news of your noble father.\"\n\n\"Antinous,\" answered Telemachus, \"I cannot eat in peace, nor take pleasure of any kind with such men as you are. Was it not enough that you should waste so much good property of mine while I was yet a boy? Now that I am older and know more about it, I am also stronger, and whether here among this people, or by going to Pylos, I will do you all the harm I can. I shall go, and my going will not be in vain though, thanks to you suitors, I have neither ship nor crew of my own, and must be passenger not captain.\"\n\nAs he spoke he snatched his hand from that of Antinous. Meanwhile the others went on getting dinner ready about the buildings, jeering at him tauntingly as they did so.\n\n\"Telemachus,\" said one youngster, \"means to be the death of us; I suppose he thinks he can bring friends to help him from Pylos, or again from Sparta, where he seems bent on going. Or will he go to Ephyra as well, for poison to put in our wine and kill us?\"\n\nAnother said, \"Perhaps if Telemachus goes on board ship, he will be like his father and perish far from his friends. In this case we should have plenty to do, for we could then divide up his property amongst us: as for the house we can let his mother and the man who marries her have that.\"\n\nThis was how they talked. But Telemachus went down into the lofty and spacious store-room where his father's treasure of gold and bronze lay heaped up upon the floor, and where the linen and spare clothes were kept in open chests. Here, too, there was a store of fragrant olive oil, while casks of old, well-ripened wine, unblended and fit for a god to drink, were ranged against the wall in case Ulysses should come home again after all. The room was closed with well-made doors opening in the middle; moreover the faithful old house-keeper Euryclea, daughter of Ops the son of Pisenor, was in charge of everything both night and day. Telemachus called her to the store-room and said:\n\n\"Nurse, draw me off some of the best wine you have, after what you are keeping for my father's own drinking, in case, poor man, he should escape death, and find his way home again after all. Let me have twelve jars, and see that they all have lids; also fill me some well-sewn leathern bags with barley meal- about twenty measures in all. Get these things put together at once, and say nothing about it. I will take everything away this evening as soon as my mother has gone upstairs for the night. I am going to Sparta and to Pylos to see if I can hear anything about the return of my dear father.\n\nWhen Euryclea heard this she began to cry, and spoke fondly to him, saying, \"My dear child, what ever can have put such notion as that into your head? Where in the world do you want to go to- you, who are the one hope of the house? Your poor father is dead and gone in some foreign country nobody knows where, and as soon as your back is turned these wicked ones here will be scheming to get you put out of the way, and will share all your possessions among themselves; stay where you are among your own people, and do not go wandering and worrying your life out on the barren ocean.\"\n\n\"Fear not, nurse,\" answered Telemachus, \"my scheme is not without heaven's sanction; but swear that you will say nothing about all this to my mother, till I have been away some ten or twelve days, unless she hears of my having gone, and asks you; for I do not want her to spoil her beauty by crying.\"\n\nThe old woman swore most solemnly that she would not, and when she had completed her oath, she began drawing off the wine into jars, and getting the barley meal into the bags, while Telemachus went back to the suitors.\n\nThen Minerva bethought her of another matter. She took his shape, and went round the town to each one of the crew, telling them to meet at the ship by sundown. She went also to Noemon son of Phronius, and asked him to let her have a ship- which he was very ready to do. When the sun had set and darkness was over all the land, she got the ship into the water, put all the tackle on board her that ships generally carry, and stationed her at the end of the harbour. Presently the crew came up, and the goddess spoke encouragingly to each of them.\n\nFurthermore she went to the house of Ulysses, and threw the suitors into a deep slumber. She caused their drink to fuddle them, and made them drop their cups from their hands, so that instead of sitting over their wine, they went back into the town to sleep, with their eyes heavy and full of drowsiness. Then she took the form and voice of Mentor, and called Telemachus to come outside.\n\n\"Telemachus,\" said she, \"the men are on board and at their oars, waiting for you to give your orders, so make haste and let us be off.\"\n\nOn this she led the way, while Telemachus followed in her steps. When they got to the ship they found the crew waiting by the water side, and Telemachus said, \"Now my men, help me to get the stores on board; they are all put together in the cloister, and my mother does not know anything about it, nor any of the maid servants except one.\"\n\nWith these words he led the way and the others followed after. When they had brought the things as he told them, Telemachus went on board, Minerva going before him and taking her seat in the stern of the vessel, while Telemachus sat beside her. Then the men loosed the hawsers and took their places on the benches. Minerva sent them a fair wind from the West, that whistled over the deep blue waves whereon Telemachus told them to catch hold of the ropes and hoist sail, and they did as he told them. They set the mast in its socket in the cross plank, raised it, and made it fast with the forestays; then they hoisted their white sails aloft with ropes of twisted ox hide. As the sail bellied out with the wind, the ship flew through the deep blue water, and the foam hissed against her bows as she sped onward. Then they made all fast throughout the ship, filled the mixing-bowls to the brim, and made drink offerings to the immortal gods that are from everlasting, but more particularly to the grey-eyed daughter of Jove.\n\nThus, then, the ship sped on her way through the watches of the night from dark till dawn.\n\nBook III\n\nBut as the sun was rising from the fair sea into the firmament of heaven to shed light on mortals and immortals, they reached Pylos the city of Neleus. Now the people of Pylos were gathered on the sea shore to offer sacrifice of black bulls to Neptune lord of the Earthquake. There were nine guilds with five hundred men in each, and there were nine bulls to each guild. As they were eating the inward meats and burning the thigh bones [on the embers] in the name of Neptune, Telemachus and his crew arrived, furled their sails, brought their ship to anchor, and went ashore.\n\nMinerva led the way and Telemachus followed her. Presently she said, \"Telemachus, you must not be in the least shy or nervous; you have taken this voyage to try and find out where your father is buried and how he came by his end; so go straight up to Nestor that we may see what he has got to tell us. Beg of him to speak the truth, and he will tell no lies, for he is an excellent person.\"\n\n\"But how, Mentor,\" replied Telemachus, \"dare I go up to Nestor, and how am I to address him? I have never yet been used to holding long conversations with people, and am ashamed to begin questioning one who is so much older than myself.\"\n\n\"Some things, Telemachus,\" answered Minerva, \"will be suggested to you by your own instinct, and heaven will prompt you further; for I am assured that the gods have been with you from the time of your birth until now.\"\n\nShe then went quickly on, and Telemachus followed in her steps till they reached the place where the guilds of the Pylian people were assembled. There they found Nestor sitting with his sons, while his company round him were busy getting dinner ready, and putting pieces of meat on to the spits while other pieces were cooking. When they saw the strangers they crowded round them, took them by the hand and bade them take their places. Nestor's son Pisistratus at once offered his hand to each of them, and seated them on some soft sheepskins that were lying on the sands near his father and his brother Thrasymedes. Then he gave them their portions of the inward meats and poured wine for them into a golden cup, handing it to Minerva first, and saluting her at the same time.\n\n\"Offer a prayer, sir,\" said he, \"to King Neptune, for it is his feast that you are joining; when you have duly prayed and made your drink-offering, pass the cup to your friend that he may do so also. I doubt not that he too lifts his hands in prayer, for man cannot live without God in the world. Still he is younger than you are, and is much of an age with myself, so I he handed I will give you the precedence.\"\n\nAs he spoke he handed her the cup. Minerva thought it very right and proper of him to have given it to herself first; she accordingly began praying heartily to Neptune. \"O thou,\" she cried, \"that encirclest the earth, vouchsafe to grant the prayers of thy servants that call upon thee. More especially we pray thee send down thy grace on Nestor and on his sons; thereafter also make the rest of the Pylian people some handsome return for the goodly hecatomb they are offering you. Lastly, grant Telemachus and myself a happy issue, in respect of the matter that has brought us in our to Pylos.\"\n\nWhen she had thus made an end of praying, she handed the cup to Telemachus and he prayed likewise. By and by, when the outer meats were roasted and had been taken off the spits, the carvers gave every man his portion and they all made an excellent dinner. As soon as they had had enough to eat and drink, Nestor, knight of Gerene, began to speak.\n\n\"Now,\" said he, \"that our guests have done their dinner, it will be best to ask them who they are. Who, then, sir strangers, are you, and from what port have you sailed? Are you traders? or do you sail the seas as rovers with your hand against every man, and every man's hand against you?\"\n\nTelemachus answered boldly, for Minerva had given him courage to ask about his father and get himself a good name.\n\n\"Nestor,\" said he, \"son of Neleus, honour to the Achaean name, you ask whence we come, and I will tell you. We come from Ithaca under Neritum, and the matter about which I would speak is of private not public import. I seek news of my unhappy father Ulysses, who is said to have sacked the town of Troy in company with yourself. We know what fate befell each one of the other heroes who fought at Troy, but as regards Ulysses heaven has hidden from us the knowledge even that he is dead at all, for no one can certify us in what place he perished, nor say whether he fell in battle on the mainland, or was lost at sea amid the waves of Amphitrite. Therefore I am suppliant at your knees, if haply you may be pleased to tell me of his melancholy end, whether you saw it with your own eyes, or heard it from some other traveller, for he was a man born to trouble. Do not soften things out of any pity for me, but tell me in all plainness exactly what you saw. If my brave father Ulysses ever did you loyal service, either by word or deed, when you Achaeans were harassed among the Trojans, bear it in mind now as in my favour and tell me truly all.\"\n\n\"My friend,\" answered Nestor, \"you recall a time of much sorrow to my mind, for the brave Achaeans suffered much both at sea, while privateering under Achilles, and when fighting before the great city of king Priam. Our best men all of them fell there- Ajax, Achilles, Patroclus peer of gods in counsel, and my own dear son Antilochus, a man singularly fleet of foot and in fight valiant. But we suffered much more than this; what mortal tongue indeed could tell the whole story? Though you were to stay here and question me for five years, or even six, I could not tell you all that the Achaeans suffered, and you would turn homeward weary of my tale before it ended. Nine long years did we try every kind of stratagem, but the hand of heaven was against us; during all this time there was no one who could compare with your father in subtlety- if indeed you are his son- I can hardly believe my eyes- and you talk just like him too- no one would say that people of such different ages could speak so much alike. He and I never had any kind of difference from first to last neither in camp nor council, but in singleness of heart and purpose we advised the Argives how all might be ordered for the best.\n\n\"When however, we had sacked the city of Priam, and were setting sail in our ships as heaven had dispersed us, then Jove saw fit to vex the Argives on their homeward voyage; for they had Not all been either wise or understanding, and hence many came to a bad end through the displeasure of Jove's daughter Minerva, who brought about a quarrel between the two sons of Atreus.\n\n\"The sons of Atreus called a meeting which was not as it should be, for it was sunset and the Achaeans were heavy with wine. When they explained why they had called- the people together, it seemed that Menelaus was for sailing homeward at once, and this displeased Agamemnon, who thought that we should wait till we had offered hecatombs to appease the anger of Minerva. Fool that he was, he might have known that he would not prevail with her, for when the gods have made up their minds they do not change them lightly. So the two stood bandying hard words, whereon the Achaeans sprang to their feet with a cry that rent the air, and were of two minds as to what they should do.\n\n\"That night we rested and nursed our anger, for Jove was hatching mischief against us. But in the morning some of us drew our ships into the water and put our goods with our women on board, while the rest, about half in number, stayed behind with Agamemnon. We- the other half- embarked and sailed; and the ships went well, for heaven had smoothed the sea. When we reached Tenedos we offered sacrifices to the gods, for we were longing to get home; cruel Jove, however, did not yet mean that we should do so, and raised a second quarrel in the course of which some among us turned their ships back again, and sailed away under Ulysses to make their peace with Agamemnon; but I, and all the ships that were with me pressed forward, for I saw that mischief was brewing. The son of Tydeus went on also with me, and his crews with him. Later on Menelaus joined us at Lesbos, and found us making up our minds about our course- for we did not know whether to go outside Chios by the island of Psyra, keeping this to our left, or inside Chios, over against the stormy headland of Mimas. So we asked heaven for a sign, and were shown one to the effect that we should be soonest out of danger if we headed our ships across the open sea to Euboea. This we therefore did, and a fair wind sprang up which gave us a quick passage during the night to Geraestus, where we offered many sacrifices to Neptune for having helped us so far on our way. Four days later Diomed and his men stationed their ships in Argos, but I held on for Pylos, and the wind never fell light from the day when heaven first made it fair for me.\n\n\"Therefore, my dear young friend, I returned without hearing anything about the others. I know neither who got home safely nor who were lost but, as in duty bound, I will give you without reserve the reports that have reached me since I have been here in my own house. They say the Myrmidons returned home safely under Achilles' son Neoptolemus; so also did the valiant son of Poias, Philoctetes. Idomeneus, again, lost no men at sea, and all his followers who escaped death in the field got safe home with him to Crete. No matter how far out of the world you live, you will have heard of Agamemnon and the bad end he came to at the hands of Aegisthus- and a fearful reckoning did Aegisthus presently pay. See what a good thing it is for a man to leave a son behind him to do as Orestes did, who killed false Aegisthus the murderer of his noble father. You too, then- for you are a tall, smart-looking fellow- show your mettle and make yourself a name in story.\"\n\n\"Nestor son of Neleus,\" answered Telemachus, \"honour to the Achaean name, the Achaeans applaud Orestes and his name will live through all time for he has avenged his father nobly. Would that heaven might grant me to do like vengeance on the insolence of the wicked suitors, who are ill treating me and plotting my ruin; but the gods have no such happiness in store for me and for my father, so we must bear it as best we may.\"\n\n\"My friend,\" said Nestor, \"now that you remind me, I remember to have heard that your mother has many suitors, who are ill disposed towards you and are making havoc of your estate. Do you submit to this tamely, or are public feeling and the voice of heaven against you? Who knows but what Ulysses may come back after all, and pay these scoundrels in full, either single-handed or with a force of Achaeans behind him? If Minerva were to take as great a liking to you as she did to Ulysses when we were fighting before Troy (for I never yet saw the gods so openly fond of any one as Minerva then was of your father), if she would take as good care of you as she did of him, these wooers would soon some of them him, forget their wooing.\"\n\nTelemachus answered, \"I can expect nothing of the kind; it would be far too much to hope for. I dare not let myself think of it. Even though the gods themselves willed it no such good fortune could befall me.\"\n\nOn this Minerva said, \"Telemachus, what are you talking about? Heaven has a long arm if it is minded to save a man; and if it were me, I should not care how much I suffered before getting home, provided I could be safe when I was once there. I would rather this, than get home quickly, and then be killed in my own house as Agamemnon was by the treachery of Aegisthus and his wife. Still, death is certain, and when a man's hour is come, not even the gods can save him, no matter how fond they are of him.\"\n\n\"Mentor,\" answered Telemachus, \"do not let us talk about it any more. There is no chance of my father's ever coming back; the gods have long since counselled his destruction. There is something else, however, about which I should like to ask Nestor, for he knows much more than any one else does. They say he has reigned for three generations so that it is like talking to an immortal. Tell me, therefore, Nestor, and tell me true; how did Agamemnon come to die in that way? What was Menelaus doing? And how came false Aegisthus to kill so far better a man than himself? Was Menelaus away from Achaean Argos, voyaging elsewhither among mankind, that Aegisthus took heart and killed Agamemnon?\"\n\n\"I will tell you truly,\" answered Nestor, \"and indeed you have yourself divined how it all happened. If Menelaus when he got back from Troy had found Aegisthus still alive in his house, there would have been no barrow heaped up for him, not even when he was dead, but he would have been thrown outside the city to dogs and vultures, and not a woman would have mourned him, for he had done a deed of great wickedness; but we were over there, fighting hard at Troy, and Aegisthus who was taking his ease quietly in the heart of Argos, cajoled Agamemnon's wife Clytemnestra with incessant flattery.\n\n\"At first she would have nothing to do with his wicked scheme, for she was of a good natural disposition; moreover there was a bard with her, to whom Agamemnon had given strict orders on setting out for Troy, that he was to keep guard over his wife; but when heaven had counselled her destruction, Aegisthus thus this bard off to a desert island and left him there for crows and seagulls to batten upon- after which she went willingly enough to the house of Aegisthus. Then he offered many burnt sacrifices to the gods, and decorated many temples with tapestries and gilding, for he had succeeded far beyond his expectations.\n\n\"Meanwhile Menelaus and I were on our way home from Troy, on good terms with one another. When we got to Sunium, which is the point of Athens, Apollo with his painless shafts killed Phrontis the steersman of Menelaus' ship (and never man knew better how to handle a vessel in rough weather) so that he died then and there with the helm in his hand, and Menelaus, though very anxious to press forward, had to wait in order to bury his comrade and give him his due funeral rites. Presently, when he too could put to sea again, and had sailed on as far as the Malean heads, Jove counselled evil against him and made it it blow hard till the waves ran mountains high. Here he divided his fleet and took the one half towards Crete where the Cydonians dwell round about the waters of the river Iardanus. There is a high headland hereabouts stretching out into the sea from a place called Gortyn, and all along this part of the coast as far as Phaestus the sea runs high when there is a south wind blowing, but arter Phaestus the coast is more protected, for a small headland can make a great shelter. Here this part of the fleet was driven on to the rocks and wrecked; but the crews just managed to save themselves. As for the other five ships, they were taken by winds and seas to Egypt, where Menelaus gathered much gold and substance among people of an alien speech. Meanwhile Aegisthus here at home plotted his evil deed. For seven years after he had killed Agamemnon he ruled in Mycene, and the people were obedient under him, but in the eighth year Orestes came back from Athens to be his bane, and killed the murderer of his father. Then he celebrated the funeral rites of his mother and of false Aegisthus by a banquet to the people of Argos, and on that very day Menelaus came home, with as much treasure as his ships could carry.\n\n\"Take my advice then, and do not go travelling about for long so far from home, nor leave your property with such dangerous people in your house; they will eat up everything you have among them, and you will have been on a fool's errand. Still, I should advise you by all means to go and visit Menelaus, who has lately come off a voyage among such distant peoples as no man could ever hope to get back from, when the winds had once carried him so far out of his reckoning; even birds cannot fly the distance in a twelvemonth, so vast and terrible are the seas that they must cross. Go to him, therefore, by sea, and take your own men with you; or if you would rather travel by land you can have a chariot, you can have horses, and here are my sons who can escort you to Lacedaemon where Menelaus lives. Beg of him to speak the truth, and he will tell you no lies, for he is an excellent person.\"\n\nAs he spoke the sun set and it came on dark, whereon Minerva said, \"Sir, all that you have said is well; now, however, order the tongues of the victims to be cut, and mix wine that we may make drink-offerings to Neptune, and the other immortals, and then go to bed, for it is bed time. People should go away early and not keep late hours at a religious festival.\"\n\nThus spoke the daughter of Jove, and they obeyed her saying. Men servants poured water over the hands of the guests, while pages filled the mixing-bowls with wine and water, and handed it round after giving every man his drink-offering; then they threw the tongues of the victims into the fire, and stood up to make their drink-offerings. When they had made their offerings and had drunk each as much as he was minded, Minerva and Telemachus were forgoing on board their ship, but Nestor caught them up at once and stayed them.\n\n\"Heaven and the immortal gods,\" he exclaimed, \"forbid that you should leave my house to go on board of a ship. Do you think I am so poor and short of clothes, or that I have so few cloaks and as to be unable to find comfortable beds both for myself and for my guests? Let me tell you I have store both of rugs and cloaks, and shall not permit the son of my old friend Ulysses to camp down on the deck of a ship- not while I live- nor yet will my sons after me, but they will keep open house as have done.\"\n\nThen Minerva answered, \"Sir, you have spoken well, and it will be much better that Telemachus should do as you have said; he, therefore, shall return with you and sleep at your house, but I must go back to give orders to my crew, and keep them in good heart. I am the only older person among them; the rest are all young men of Telemachus' own age, who have taken this voyage out of friendship; so I must return to the ship and sleep there. Moreover to-morrow I must go to the Cauconians where I have a large sum of money long owing to me. As for Telemachus, now that he is your guest, send him to Lacedaemon in a chariot, and let one of your sons go with him. Be pleased also to provide him with your best and fleetest horses.\"\n\nWhen she had thus spoken, she flew away in the form of an eagle, and all marvelled as they beheld it. Nestor was astonished, and took Telemachus by the hand. \"My friend,\" said he, \"I see that you are going to be a great hero some day, since the gods wait upon you thus while you are still so young. This can have been none other of those who dwell in heaven than Jove's redoubtable daughter, the Trito-born, who showed such favour towards your brave father among the Argives.\" \"Holy queen,\" he continued, \"vouchsafe to send down thy grace upon myself, my good wife, and my children. In return, I will offer you in sacrifice a broad-browed heifer of a year old, unbroken, and never yet brought by man under the yoke. I will gild her horns, and will offer her up to you in sacrifice.\"\n\nThus did he pray, and Minerva heard his prayer. He then led the way to his own house, followed by his sons and sons-in-law. When they had got there and had taken their places on the benches and seats, he mixed them a bowl of sweet wine that was eleven years old when the housekeeper took the lid off the jar that held it. As he mixed the wine, he prayed much and made drink-offerings to Minerva, daughter of Aegis-bearing Jove. Then, when they had made their drink-offerings and had drunk each as much as he was minded, the others went home to bed each in his own abode; but Nestor put Telemachus to sleep in the room that was over the gateway along with Pisistratus, who was the only unmarried son now left him. As for himself, he slept in an inner room of the house, with the queen his wife by his side.\n\nNow when the child of morning, rosy-fingered Dawn, appeared, Nestor left his couch and took his seat on the benches of white and polished marble that stood in front of his house. Here aforetime sat Neleus, peer of gods in counsel, but he was now dead, and had gone to the house of Hades; so Nestor sat in his seat, sceptre in hand, as guardian of the public weal. His sons as they left their rooms gathered round him, Echephron, Stratius, Perseus, Aretus, and Thrasymedes; the sixth son was Pisistratus, and when Telemachus joined them they made him sit with them. Nestor then addressed them.\n\n\"My sons,\" said he, \"make haste to do as I shall bid you. I wish first and foremost to propitiate the great goddess Minerva, who manifested herself visibly to me during yesterday's festivities. Go, then, one or other of you to the plain, tell the stockman to look me out a heifer, and come on here with it at once. Another must go to Telemachus's ship, and invite all the crew, leaving two men only in charge of the vessel. Some one else will run and fetch Laerceus the goldsmith to gild the horns of the heifer. The rest, stay all of you where you are; tell the maids in the house to prepare an excellent dinner, and to fetch seats, and logs of wood for a burnt offering. Tell them also- to bring me some clear spring water.\"\n\nOn this they hurried off on their several errands. The heifer was brought in from the plain, and Telemachus's crew came from the ship; the goldsmith brought the anvil, hammer, and tongs, with which he worked his gold, and Minerva herself came to the sacrifice. Nestor gave out the gold, and the smith gilded the horns of the heifer that the goddess might have pleasure in their beauty. Then Stratius and Echephron brought her in by the horns; Aretus fetched water from the house in a ewer that had a flower pattern on it, and in his other hand he held a basket of barley meal; sturdy Thrasymedes stood by with a sharp axe, ready to strike the heifer, while Perseus held a bucket. Then Nestor began with washing his hands and sprinkling the barley meal, and he offered many a prayer to Minerva as he threw a lock from the heifer's head ",
      "timestamp": "2015-01-11T16:59:33.022Z"
    },
    {
      "requestFrom": "::1:60590",
      "data": "upon the fire.\n\nWhen they had done praying and sprinkling the barley meal Thrasymedes dealt his blow, and brought the heifer down with a stroke that cut through the tendons at the base of her neck, whereon the daughters and daughters-in-law of Nestor, and his venerable wife Eurydice (she was eldest daughter to Clymenus) screamed with delight. Then they lifted the heifer's head from off the ground, and Pisistratus cut her throat. When she had done bleeding and was quite dead, they cut her up. They cut out the thigh bones all in due course, wrapped them round in two layers of fat, and set some pieces of raw meat on the top of them; then Nestor laid them upon the wood fire and poured wine over them, while the young men stood near him with five-pronged spits in their hands. When the thighs were burned and they had tasted the inward meats, they cut the rest of the meat up small, put the pieces on the spits and toasted them over the fire.\n\nMeanwhile lovely Polycaste, Nestor's youngest daughter, washed Telemachus. When she had washed him and anointed him with oil, she brought him a fair mantle and shirt, and he looked like a god as he came from the bath and took his seat by the side of Nestor. When the outer meats were done they drew them off the spits and sat down to dinner where they were waited upon by some worthy henchmen, who kept pouring them out their wine in cups of gold. As soon as they had had had enough to eat and drink Nestor said, \"Sons, put Telemachus's horses to the chariot that he may start at once.\"\n\nThus did he speak, and they did even as he had said, and yoked the fleet horses to the chariot. The housekeeper packed them up a provision of bread, wine, and sweetmeats fit for the sons of princes. Then Telemachus got into the chariot, while Pisistratus gathered up the reins and took his seat beside him. He lashed the horses on and they flew forward nothing loth into the open country, leaving the high citadel of Pylos behind them. All that day did they travel, swaying the yoke upon their necks till the sun went down and darkness was over all the land. Then they reached Pherae where Diocles lived, who was son to Ortilochus and grandson to Alpheus. Here they passed the night and Diocles entertained them hospitably. When the child of morning, rosy-fingered Dawn; appeared, they again yoked their horses and drove out through the gateway under the echoing gatehouse. Pisistratus lashed the horses on and they flew forward nothing loth; presently they came to the corn lands Of the open country, and in the course of time completed their journey, so well did their steeds take them.\n\nNow when the sun had set and darkness was over the land.\n",
      "timestamp": "2015-01-11T16:59:33.022Z"
    }
  ],
  "stubs": [
    {
      "responses": [
        {
          "is": {
            "data": "HTTP/1.1 200 OK\nTransfer-Encoding:chunked\n\n"
          }
        }
      ],
      "matches": [
        {
          "request": {
            "data": "POST / HTTP/1.1\nHost: localhost:4545\nContent-Length: 68134\nContent-Type: text/plain\n\nBook I\n\nTell me, O muse, of that ingenious hero who travelled far and wide after he had sacked the famous town of Troy. Many cities did he visit, and many were the nations with whose manners and customs he was acquainted; moreover he suffered much by sea while trying to save his own life and bring his men safely home; but do what he might he could not save his men, for they perished through their own sheer folly in eating the cattle of the Sun-god Hyperion; so the god prevented them from ever reaching home. Tell me, too, about all these things, O daughter of Jove, from whatsoever source you may know them.\n\nSo now all who escaped death in battle or by shipwreck had got safely home except Ulysses, and he, though he was longing to return to his wife and country, was detained by the goddess Calypso, who had got him into a large cave and wanted to marry him. But as years went by, there came a time when the gods settled that he should go back to Ithaca; even then, however, when he was among his own people, his troubles were not yet over; nevertheless all the gods had now begun to pity him except Neptune, who still persecuted him without ceasing and would not let him get home.\n\nNow Neptune had gone off to the Ethiopians, who are at the world's end, and lie in two halves, the one looking West and the other East. He had gone there to accept a hecatomb of sheep and oxen, and was enjoying himself at his festival; but the other gods met in the house of Olympian Jove, and the sire of gods and men spoke first. At that moment he was thinking of Aegisthus, who had been killed by Agamemnon's son Orestes; so he said to the other gods:\n\n\"See now, how men lay blame upon us gods for what is after all nothing but their own folly. Look at Aegisthus; he must needs make love to Agamemnon's wife unrighteously and then kill Agamemnon, though he knew it would be the death of him; for I sent Mercury to warn him not to do either of these things, inasmuch as Orestes would be sure to take his revenge when he grew up and wanted to return home. Mercury told him this in all good will but he would not listen, and now he has paid for everything in full.\"\n\nThen Minerva said, \"Father, son of Saturn, King of kings, it served Aegisthus right, and so it would any one else who does as he did; but Aegisthus is neither here nor there; it is for Ulysses that my heart bleeds, when I think of his sufferings in that lonely sea-girt island, far away, poor man, from all his friends. It is an island covered with forest, in the very middle of the sea, and a goddess lives there, daughter of the magician Atlas, who looks after the bottom of the ocean, and carries the great columns that keep heaven and earth asunder. This daughter of Atlas has got hold of poor unhappy Ulysses, and keeps trying by every kind of blandishment to make him forget his home, so that he is tired of life, and thinks of nothing but how he may once more see the smoke of his own chimneys. You, sir, take no heed of this, and yet when Ulysses was before Troy did he not propitiate you with many a burnt sacrifice? Why then should you keep on being so angry with him?\"\n\nAnd Jove said, \"My child, what are you talking about? How can I forget Ulysses than whom there is no more capable man on earth, nor more liberal in his offerings to the immortal gods that live in heaven? Bear in mind, however, that Neptune is still furious with Ulysses for having blinded an eye of Polyphemus king of the Cyclopes. Polyphemus is son to Neptune by the nymph Thoosa, daughter to the sea-king Phorcys; therefore though he will not kill Ulysses outright, he torments him by preventing him from getting home. Still, let us lay our heads together and see how we can help him to return; Neptune will then be pacified, for if we are all of a mind he can hardly stand out against us.\"\n\nAnd Minerva said, \"Father, son of Saturn, King of kings, if, then, the gods now mean that Ulysses should get home, we should first send Mercury to the Ogygian island to tell Calypso that we have made up our minds and that he is to return. In the meantime I will go to Ithaca, to put heart into Ulysses' son Telemachus; I will embolden him to call the Achaeans in assembly, and speak out to the suitors of his mother Penelope, who persist in eating up any number of his sheep and oxen; I will also conduct him to Sparta and to Pylos, to see if he can hear anything about the return of his dear father- for this will make people speak well of him.\"\n\nSo saying she bound on her glittering golden sandals, imperishable, with which she can fly like the wind over land or sea; she grasped the redoubtable bronze-shod spear, so stout and sturdy and strong, wherewith she quells the ranks of heroes who have displeased her, and down she darted from the topmost summits of Olympus, whereon forthwith she was in Ithaca, at the gateway of Ulysses' house, disguised as a visitor, Mentes, chief of the Taphians, and she held a bronze spear in her hand. There she found the lordly suitors seated on hides of the oxen which they had killed and eaten, and playing draughts in front of the house. Men-servants and pages were bustling about to wait upon them, some mixing wine with water in the mixing-bowls, some cleaning down the tables with wet sponges and laying them out again, and some cutting up great quantities of meat.\n\nTelemachus saw her long before any one else did. He was sitting moodily among the suitors thinking about his brave father, and how he would send them flying out of the house, if he were to come to his own again and be honoured as in days gone by. Thus brooding as he sat among them, he caught sight of Minerva and went straight to the gate, for he was vexed that a stranger should be kept waiting for admittance. He took her right hand in his own, and bade her give him her spear. \"Welcome,\" said he, \"to our house, and when you have partaken of food you shall tell us what you have come for.\"\n\nHe led the way as he spoke, and Minerva followed him. When they were within he took her spear and set it in the spear- stand against a strong bearing-post along with the many other spears of his unhappy father, and he conducted her to a richly decorated seat under which he threw a cloth of damask. There was a footstool also for her feet, and he set another seat near her for himself, away from the suitors, that she might not be annoyed while eating by their noise and insolence, and that he might ask her more freely about his father.\n\nA maid servant then brought them water in a beautiful golden ewer and poured it into a silver basin for them to wash their hands, and she drew a clean table beside them. An upper servant brought them bread, and offered them many good things of what there was in the house, the carver fetched them plates of all manner of meats and set cups of gold by their side, and a man-servant brought them wine and poured it out for them.\n\nThen the suitors came in and took their places on the benches and seats. Forthwith men servants poured water over their hands, maids went round with the bread-baskets, pages filled the mixing-bowls with wine and water, and they laid their hands upon the good things that were before them. As soon as they had had enough to eat and drink they wanted music and dancing, which are the crowning embellishments of a banquet, so a servant brought a lyre to Phemius, whom they compelled perforce to sing to them. As soon as he touched his lyre and began to sing Telemachus spoke low to Minerva, with his head close to hers that no man might hear.\n\n\"I hope, sir,\" said he, \"that you will not be offended with what I am going to say. Singing comes cheap to those who do not pay for it, and all this is done at the cost of one whose bones lie rotting in some wilderness or grinding to powder in the surf. If these men were to see my father come back to Ithaca they would pray for longer legs rather than a longer purse, for money would not serve them; but he, alas, has fallen on an ill fate, and even when people do sometimes say that he is coming, we no longer heed them; we shall never see him again. And now, sir, tell me and tell me true, who you are and where you come from. Tell me of your town and parents, what manner of ship you came in, how your crew brought you to Ithaca, and of what nation they declared themselves to be- for you cannot have come by land. Tell me also truly, for I want to know, are you a stranger to this house, or have you been here in my father's time? In the old days we had many visitors for my father went about much himself.\"\n\nAnd Minerva answered, \"I will tell you truly and particularly all about it. I am Mentes, son of Anchialus, and I am King of the Taphians. I have come here with my ship and crew, on a voyage to men of a foreign tongue being bound for Temesa with a cargo of iron, and I shall bring back copper. As for my ship, it lies over yonder off the open country away from the town, in the harbour Rheithron under the wooded mountain Neritum. Our fathers were friends before us, as old Laertes will tell you, if you will go and ask him. They say, however, that he never comes to town now, and lives by himself in the country, faring hardly, with an old woman to look after him and get his dinner for him, when he comes in tired from pottering about his vineyard. They told me your father was at home again, and that was why I came, but it seems the gods are still keeping him back, for he is not dead yet not on the mainland. It is more likely he is on some sea-girt island in mid ocean, or a prisoner among savages who are detaining him against his will I am no prophet, and know very little about omens, but I speak as it is borne in upon me from heaven, and assure you that he will not be away much longer; for he is a man of such resource that even though he were in chains of iron he would find some means of getting home again. But tell me, and tell me true, can Ulysses really have such a fine looking fellow for a son? You are indeed wonderfully like him about the head and eyes, for we were close friends before he set sail for Troy where the flower of all the Argives went also. Since that time we have never either of us seen the other.\"\n\n\"My mother,\" answered Telemachus, tells me I am son to Ulysses, but it is a wise child that knows his own father. Would that I were son to one who had grown old upon his own estates, for, since you ask me, there is no more ill-starred man under heaven than he who they tell me is my father.\"\n\nAnd Minerva said, \"There is no fear of your race dying out yet, while Penelope has such a fine son as you are. But tell me, and tell me true, what is the meaning of all this feasting, and who are these people? What is it all about? Have you some banquet, or is there a wedding in the family- for no one seems to be bringing any provisions of his own? And the guests- how atrociously they are behaving; what riot they make over the whole house; it is enough to disgust any respectable person who comes near them.\"\n\n\"Sir,\" said Telemachus, \"as regards your question, so long as my father was here it was well with us and with the house, but the gods in their displeasure have willed it otherwise, and have hidden him away more closely than mortal man was ever yet hidden. I could have borne it better even though he were dead, if he had fallen with his men before Troy, or had died with friends around him when the days of his fighting were done; for then the Achaeans would have built a mound over his ashes, and I should myself have been heir to his renown; but now the storm-winds have spirited him away we know not wither; he is gone without leaving so much as a trace behind him, and I inherit nothing but dismay. Nor does the matter end simply with grief for the loss of my father; heaven has laid sorrows upon me of yet another kind; for the chiefs from all our islands, Dulichium, Same, and the woodland island of Zacynthus, as also all the principal men of Ithaca itself, are eating up my house under the pretext of paying their court to my mother, who will neither point blank say that she will not marry, nor yet bring matters to an end; so they are making havoc of my estate, and before long will do so also with myself.\"\n\n\"Is that so?\" exclaimed Minerva, \"then you do indeed want Ulysses home again. Give him his helmet, shield, and a couple lances, and if he is the man he was when I first knew him in our house, drinking and making merry, he would soon lay his hands about these rascally suitors, were he to stand once more upon his own threshold. He was then coming from Ephyra, where he had been to beg poison for his arrows from Ilus, son of Mermerus. Ilus feared the ever-living gods and would not give him any, but my father let him have some, for he was very fond of him. If Ulysses is the man he then was these suitors will have a short shrift and a sorry wedding.\n\n\"But there! It rests with heaven to determine whether he is to return, and take his revenge in his own house or no; I would, however, urge you to set about trying to get rid of these suitors at once. Take my advice, call the Achaean heroes in assembly to-morrow -lay your case before them, and call heaven to bear you witness. Bid the suitors take themselves off, each to his own place, and if your mother's mind is set on marrying again, let her go back to her father, who will find her a husband and provide her with all the marriage gifts that so dear a daughter may expect. As for yourself, let me prevail upon you to take the best ship you can get, with a crew of twenty men, and go in quest of your father who has so long been missing. Some one may tell you something, or (and people often hear things in this way) some heaven-sent message may direct you. First go to Pylos and ask Nestor; thence go on to Sparta and visit Menelaus, for he got home last of all the Achaeans; if you hear that your father is alive and on his way home, you can put up with the waste these suitors will make for yet another twelve months. If on the other hand you hear of his death, come home at once, celebrate his funeral rites with all due pomp, build a barrow to his memory, and make your mother marry again. Then, having done all this, think it well over in your mind how, by fair means or foul, you may kill these suitors in your own house. You are too old to plead infancy any longer; have you not heard how people are singing Orestes' praises for having killed his father's murderer Aegisthus? You are a fine, smart looking fellow; show your mettle, then, and make yourself a name in story. Now, however, I must go back to my ship and to my crew, who will be impatient if I keep them waiting longer; think the matter over for yourself, and remember what I have said to you.\"\n\n\"Sir,\" answered Telemachus, \"it has been very kind of you to talk to me in this way, as though I were your own son, and I will do all you tell me; I know you want to be getting on with your voyage, but stay a little longer till you have taken a bath and refreshed yourself. I will then give you a present, and you shall go on your way rejoicing; I will give you one of great beauty and value- a keepsake such as only dear friends give to one another.\"\n\nMinerva answered, \"Do not try to keep me, for I would be on my way at once. As for any present you may be disposed to make me, keep it till I come again, and I will take it home with me. You shall give me a very good one, and I will give you one of no less value in return.\"\n\nWith these words she flew away like a bird into the air, but she had given Telemachus courage, and had made him think more than ever about his father. He felt the change, wondered at it, and knew that the stranger had been a god, so he went straight to where the suitors were sitting.\n\nPhemius was still singing, and his hearers sat rapt in silence as he told the sad tale of the return from Troy, and the ills Minerva had laid upon the Achaeans. Penelope, daughter of Icarius, heard his song from her room upstairs, and came down by the great staircase, not alone, but attended by two of her handmaids. When she reached the suitors she stood by one of the bearing posts that supported the roof of the cloisters with a staid maiden on either side of her. She held a veil, moreover, before her face, and was weeping bitterly.\n\n\"Phemius,\" she cried, \"you know many another feat of gods and heroes, such as poets love to celebrate. Sing the suitors some one of these, and let them drink their wine in silence, but cease this sad tale, for it breaks my sorrowful heart, and reminds me of my lost husband whom I mourn ever without ceasing, and whose name was great over all Hellas and middle Argos.\"\n\n\"Mother,\" answered Telemachus, \"let the bard sing what he has a mind to; bards do not make the ills they sing of; it is Jove, not they, who makes them, and who sends weal or woe upon mankind according to his own good pleasure. This fellow means no harm by singing the ill-fated return of the Danaans, for people always applaud the latest songs most warmly. Make up your mind to it and bear it; Ulysses is not the only man who never came back from Troy, but many another went down as well as he. Go, then, within the house and busy yourself with your daily duties, your loom, your distaff, and the ordering of your servants; for speech is man's matter, and mine above all others- for it is I who am master here.\"\n\nShe went wondering back into the house, and laid her son's saying in her heart. Then, going upstairs with her handmaids into her room, she mourned her dear husband till Minerva shed sweet sleep over her eyes. But the suitors were clamorous throughout the covered cloisters, and prayed each one that he might be her bed fellow.\n\nThen Telemachus spoke, \"Shameless,\" he cried, \"and insolent suitors, let us feast at our pleasure now, and let there be no brawling, for it is a rare thing to hear a man with such a divine voice as Phemius has; but in the morning meet me in full assembly that I may give you formal notice to depart, and feast at one another's houses, turn and turn about, at your own cost. If on the other hand you choose to persist in spunging upon one man, heaven help me, but Jove shall reckon with you in full, and when you fall in my father's house there shall be no man to avenge you.\"\n\nThe suitors bit their lips as they heard him, and marvelled at the boldness of his speech. Then, Antinous, son of Eupeithes, said, \"The gods seem to have given you lessons in bluster and tall talking; may Jove never grant you to be chief in Ithaca as your father was before you.\"\n\nTelemachus answered, \"Antinous, do not chide with me, but, god willing, I will be chief too if I can. Is this the worst fate you can think of for me? It is no bad thing to be a chief, for it brings both riches and honour. Still, now that Ulysses is dead there are many great men in Ithaca both old and young, and some other may take the lead among them; nevertheless I will be chief in my own house, and will rule those whom Ulysses has won for me.\"\n\nThen Eurymachus, son of Polybus, answered, \"It rests with heaven to decide who shall be chief among us, but you shall be master in your own house and over your own possessions; no one while there is a man in Ithaca shall do you violence nor rob you. And now, my good fellow, I want to know about this stranger. What country does he come from? Of what family is he, and where is his estate? Has he brought you news about the return of your father, or was he on business of his own? He seemed a well-to-do man, but he hurried off so suddenly that he was gone in a moment before we could get to know him.\"\n\n\"My father is dead and gone,\" answered Telemachus, \"and even if some rumour reaches me I put no more faith in it now. My mother does indeed sometimes send for a soothsayer and question him, but I give his prophecyings no heed. As for the stranger, he was Mentes, son of Anchialus, chief of the Taphians, an old friend of my father's.\" But in his heart he knew that it had been the goddess.\n\nThe suitors then returned to their singing and dancing until the evening; but when night fell upon their pleasuring they went home to bed each in his own abode. Telemachus's room was high up in a tower that looked on to the outer court; hither, then, he hied, brooding and full of thought. A good old woman, Euryclea, daughter of Ops, the son of Pisenor, went before him with a couple of blazing torches. Laertes had bought her with his own money when she was quite young; he gave the worth of twenty oxen for her, and shewed as much respect to her in his household as he did to his own wedded wife, but he did not take her to his bed for he feared his wife's resentment. She it was who now lighted Telemachus to his room, and she loved him better than any of the other women in the house did, for she had nursed him when he was a baby. He opened the door of his bed room and sat down upon the bed; as he took off his shirt he gave it to the good old woman, who folded it tidily up, and hung it for him over a peg by his bed side, after which she went out, pulled the door to by a silver catch, and drew the bolt home by means of the strap. But Telemachus as he lay covered with a woollen fleece kept thinking all night through of his intended voyage of the counsel that Minerva had given him.\n\nBook II\n\nNow when the child of morning, rosy-fingered Dawn, appeared, Telemachus rose and dressed himself. He bound his sandals on to his comely feet, girded his sword about his shoulder, and left his room looking like an immortal god. He at once sent the criers round to call the people in assembly, so they called them and the people gathered thereon; then, when they were got together, he went to the place of assembly spear in hand- not alone, for his two hounds went with him. Minerva endowed him with a presence of such divine comeliness that all marvelled at him as he went by, and when he took his place' in his father's seat even the oldest councillors made way for him.\n\nAegyptius, a man bent double with age, and of infinite experience, the first to speak His son Antiphus had gone with Ulysses to Ilius, land of noble steeds, but the savage Cyclops had killed him when they were all shut up in the cave, and had cooked his last dinner for him, He had three sons left, of whom two still worked on their father's land, while the third, Eurynomus, was one of the suitors; nevertheless their father could not get over the loss of Antiphus, and was still weeping for him when he began his speech.\n\n\"Men of Ithaca,\" he said, \"hear my words. From the day Ulysses left us there has been no meeting of our councillors until now; who then can it be, whether old or young, that finds it so necessary to convene us? Has he got wind of some host approaching, and does he wish to warn us, or would he speak upon some other matter of public moment? I am sure he is an excellent person, and I hope Jove will grant him his heart's desire.\"\n\nTelemachus took this speech as of good omen and rose at once, for he was bursting with what he had to say. He stood in the middle of the assembly and the good herald Pisenor brought him his staff. Then, turning to Aegyptius, \"Sir,\" said he, \"it is I, as you will shortly learn, who have convened you, for it is I who am the most aggrieved. I have not got wind of any host approaching about which I would warn you, nor is there any matter of public moment on which I would speak. My grieveance is purely personal, and turns on two great misfortunes which have fallen upon my house. The first of these is the loss of my excellent father, who was chief among all you here present, and was like a father to every one of you; the second is much more serious, and ere long will be the utter ruin of my estate. The sons of all the chief men among you are pestering my mother to marry them against her will. They are afraid to go to her father Icarius, asking him to choose the one he likes best, and to provide marriage gifts for his daughter, but day by day they keep hanging about my father's house, sacrificing our oxen, sheep, and fat goats for their banquets, and never giving so much as a thought to the quantity of wine they drink. No estate can stand such recklessness; we have now no Ulysses to ward off harm from our doors, and I cannot hold my own against them. I shall never all my days be as good a man as he was, still I would indeed defend myself if I had power to do so, for I cannot stand such treatment any longer; my house is being disgraced and ruined. Have respect, therefore, to your own consciences and to public opinion. Fear, too, the wrath of heaven, lest the gods should be displeased and turn upon you. I pray you by Jove and Themis, who is the beginning and the end of councils, [do not] hold back, my friends, and leave me singlehanded- unless it be that my brave father Ulysses did some wrong to the Achaeans which you would now avenge on me, by aiding and abetting these suitors. Moreover, if I am to be eaten out of house and home at all, I had rather you did the eating yourselves, for I could then take action against you to some purpose, and serve you with notices from house to house till I got paid in full, whereas now I have no remedy.\"\n\nWith this Telemachus dashed his staff to the ground and burst into tears. Every one was very sorry for him, but they all sat still and no one ventured to make him an angry answer, save only Antinous, who spoke thus:\n\n\"Telemachus, insolent braggart that you are, how dare you try to throw the blame upon us suitors? It is your mother's fault not ours, for she is a very artful woman. This three years past, and close on four, she has been driving us out of our minds, by encouraging each one of us, and sending him messages without meaning one word of what she says. And then there was that other trick she played us. She set up a great tambour frame in her room, and began to work on an enormous piece of fine needlework. 'Sweet hearts,' said she, 'Ulysses is indeed dead, still do not press me to marry again immediately, wait- for I would not have skill in needlework perish unrecorded- till I have completed a pall for the hero Laertes, to be in readiness against the time when death shall take him. He is very rich, and the women of the place will talk if he is laid out without a pall.'\n\n\"This was what she said, and we assented; whereon we could see her working on her great web all day long, but at night she would unpick the stitches again by torchlight. She fooled us in this way for three years and we never found her out, but as time wore on and she was now in her fourth year, one of her maids who knew what she was doing told us, and we caught her in the act of undoing her work, so she had to finish it whether she would or no. The suitors, therefore, make you this answer, that both you and the Achaeans may understand-'Send your mother away, and bid her marry the man of her own and of her father's choice'; for I do not know what will happen if she goes on plaguing us much longer with the airs she gives herself on the score of the accomplishments Minerva has taught her, and because she is so clever. We never yet heard of such a woman; we know all about Tyro, Alcmena, Mycene, and the famous women of old, but they were nothing to your mother, any one of them. It was not fair of her to treat us in that way, and as long as she continues in the mind with which heaven has now endowed her, so long shall we go on eating up your estate; and I do not see why she should change, for she gets all the honour and glory, and it is you who pay for it, not she. Understand, then, that we will not go back to our lands, neither here nor elsewhere, till she has made her choice and married some one or other of us.\"\n\nTelemachus answered, \"Antinous, how can I drive the mother who bore me from my father's house? My father is abroad and we do not know whether he is alive or dead. It will be hard on me if I have to pay Icarius the large sum which I must give him if I insist on sending his daughter back to him. Not only will he deal rigorously with me, but heaven will also punish me; for my mother when she leaves the house will calf on the Erinyes to avenge her; besides, it would not be a creditable thing to do, and I will have nothing to say to it. If you choose to take offence at this, leave the house and feast elsewhere at one another's houses at your own cost turn and turn about. If, on the other hand, you elect to persist in spunging upon one man, heaven help me, but Jove shall reckon with you in full, and when you fall in my father's house there shall be no man to avenge you.\"\n\nAs he spoke Jove sent two eagles from the top of the mountain, and they flew on and on with the wind, sailing side by side in their own lordly flight. When they were right over the middle of the assembly they wheeled and circled about, beating the air with their wings and glaring death into the eyes of them that were below; then, fighting fiercely and tearing at one another, they flew off towards the right over the town. The people wondered as they saw them, and asked each other what an this might be; whereon Halitherses, who was the best prophet and reader of omens among them, spoke to them plainly and in all honesty, saying:\n\n\"Hear me, men of Ithaca, and I speak more particularly to the suitors, for I see mischief brewing for them. Ulysses is not going to be away much longer; indeed he is close at hand to deal out death and destruction, not on them alone, but on many another of us who live in Ithaca. Let us then be wise in time, and put a stop to this wickedness before he comes. Let the suitors do so of their own accord; it will be better for them, for I am not prophesying without due knowledge; everything has happened to Ulysses as I foretold when the Argives set out for Troy, and he with them. I said that after going through much hardship and losing all his men he should come home again in the twentieth year and that no one would know him; and now all this is coming true.\"\n\nEurymachus son of Polybus then said, \"Go home, old man, and prophesy to your own children, or it may be worse for them. I can read these omens myself much better than you can; birds are always flying about in the sunshine somewhere or other, but they seldom mean anything. Ulysses has died in a far country, and it is a pity you are not dead along with him, instead of prating here about omens and adding fuel to the anger of Telemachus which is fierce enough as it is. I suppose you think he will give you something for your family, but I tell you- and it shall surely be- when an old man like you, who should know better, talks a young one over till he becomes troublesome, in the first place his young friend will only fare so much the worse- he will take nothing by it, for the suitors will prevent this- and in the next, we will lay a heavier fine, sir, upon yourself than you will at all like paying, for it will bear hardly upon you. As for Telemachus, I warn him in the presence of you all to send his mother back to her father, who will find her a husband and provide her with all the marriage gifts so dear a daughter may expect. Till we shall go on harassing him with our suit; for we fear no man, and care neither for him, with all his fine speeches, nor for any fortune-telling of yours. You may preach as much as you please, but we shall only hate you the more. We shall go back and continue to eat up Telemachus's estate without paying him, till such time as his mother leaves off tormenting us by keeping us day after day on the tiptoe of expectation, each vying with the other in his suit for a prize of such rare perfection. Besides we cannot go after the other women whom we should marry in due course, but for the way in which she treats us.\"\n\nThen Telemachus said, \"Eurymachus, and you other suitors, I shall say no more, and entreat you no further, for the gods and the people of Ithaca now know my story. Give me, then, a ship and a crew of twenty men to take me hither and thither, and I will go to Sparta and to Pylos in quest of my father who has so long been missing. Some one may tell me something, or (and people often hear things in this way) some heaven-sent message may direct me. If I can hear of him as alive and on his way home I will put up with the waste you suitors will make for yet another twelve months. If on the other hand I hear of his death, I will return at once, celebrate his funeral rites with all due pomp, build a barrow to his memory, and make my mother marry again.\"\n\nWith these words he sat down, and Mentor who had been a friend of Ulysses, and had been left in charge of everything with full authority over the servants, rose to speak. He, then, plainly and in all honesty addressed them thus:\n\n\"Hear me, men of Ithaca, I hope that you may never have a kind and well-disposed ruler any more, nor one who will govern you equitably; I hope that all your chiefs henceforward may be cruel and unjust, for there is not one of you but has forgotten Ulysses, who ruled you as though he were your father. I am not half so angry with the suitors, for if they choose to do violence in the naughtiness of their hearts, and wager their heads that Ulysses will not return, they can take the high hand and eat up his estate, but as for you others I am shocked at the way in which you all sit still without even trying to stop such scandalous goings on-which you could do if you chose, for you are many and they are few.\"\n\nLeiocritus, son of Evenor, answered him saying, \"Mentor, what folly is all this, that you should set the people to stay us? It is a hard thing for one man to fight with many about his victuals. Even though Ulysses himself were to set upon us while we are feasting in his house, and do his best to oust us, his wife, who wants him back so very badly, would have small cause for rejoicing, and his blood would be upon his own head if he fought against such great odds. There is no sense in what you have been saying. Now, therefore, do you people go about your business, and let his father's old friends, Mentor and Halitherses, speed this boy on his journey, if he goes at all- which I do not think he will, for he is more likely to stay where he is till some one comes and tells him something.\"\n\nOn this he broke up the assembly, and every man went back to his own abode, while the suitors returned to the house of Ulysses.\n\nThen Telemachus went all alone by the sea side, washed his hands in the grey waves, and prayed to Minerva.\n\n\"Hear me,\" he cried, \"you god who visited me yesterday, and bade me sail the seas in search of my father who has so long been missing. I would obey you, but the Achaeans, and more particularly the wicked suitors, are hindering me that I cannot do so.\"\n\nAs he thus prayed, Minerva came close up to him in the likeness and with the voice of Mentor. \"Telemachus,\" said she, \"if you are made of the same stuff as your father you will be neither fool nor coward henceforward, for Ulysses never broke his word nor left his work half done. If, then, you take after him, your voyage will not be fruitless, but unless you have the blood of Ulysses and of Penelope in your veins I see no likelihood of your succeeding. Sons are seldom as good men as their fathers; they are generally worse, not better; still, as you are not going to be either fool or coward henceforward, and are not entirely without some share of your father's wise discernment, I look with hope upon your undertaking. But mind you never make common cause with any of those foolish suitors, for they have neither sense nor virtue, and give no thought to death and to the doom that will shortly fall on one and all of them, so that they shall perish on the same day. As for your voyage, it shall not be long delayed; your father was such an old friend of mine that I will find you a ship, and will come with you myself. Now, however, return home, and go about among the suitors; begin getting provisions ready for your voyage; see everything well stowed, the wine in jars, and the barley meal, which is the staff of life, in leathern bags, while I go round the town and beat up volunteers at once. There are many ships in Ithaca both old and new; I will run my eye over them for you and will choose the best; we will get her ready and will put out to sea without delay.\"\n\nThus spoke Minerva daughter of Jove, and Telemachus lost no time in doing as the goddess told him. He went moodily and found the suitors flaying goats and singeing pigs in the outer court. Antinous came up to him at once and laughed as he took his hand in his own, saying, \"Telemachus, my fine fire-eater, bear no more ill blood neither in word nor deed, but eat and drink with us as you used to do. The Achaeans will find you in everything- a ship and a picked crew to boot- so that you can set sail for Pylos at once and get news of your noble father.\"\n\n\"Antinous,\" answered Telemachus, \"I cannot eat in peace, nor take pleasure of any kind with such men as you are. Was it not enough that you should waste so much good property of mine while I was yet a boy? Now that I am older and know more about it, I am also stronger, and whether here among this people, or by going to Pylos, I will do you all the harm I can. I shall go, and my going will not be in vain though, thanks to you suitors, I have neither ship nor crew of my own, and must be passenger not captain.\"\n\nAs he spoke he snatched his hand from that of Antinous. Meanwhile the others went on getting dinner ready about the buildings, jeering at him tauntingly as they did so.\n\n\"Telemachus,\" said one youngster, \"means to be the death of us; I suppose he thinks he can bring friends to help him from Pylos, or again from Sparta, where he seems bent on going. Or will he go to Ephyra as well, for poison to put in our wine and kill us?\"\n\nAnother said, \"Perhaps if Telemachus goes on board ship, he will be like his father and perish far from his friends. In this case we should have plenty to do, for we could then divide up his property amongst us: as for the house we can let his mother and the man who marries her have that.\"\n\nThis was how they talked. But Telemachus went down into the lofty and spacious store-room where his father's treasure of gold and bronze lay heaped up upon the floor, and where the linen and spare clothes were kept in open chests. Here, too, there was a store of fragrant olive oil, while casks of old, well-ripened wine, unblended and fit for a god to drink, were ranged against the wall in case Ulysses should come home again after all. The room was closed with well-made doors opening in the middle; moreover the faithful old house-keeper Euryclea, daughter of Ops the son of Pisenor, was in charge of everything both night and day. Telemachus called her to the store-room and said:\n\n\"Nurse, draw me off some of the best wine you have, after what you are keeping for my father's own drinking, in case, poor man, he should escape death, and find his way home again after all. Let me have twelve jars, and see that they all have lids; also fill me some well-sewn leathern bags with barley meal- about twenty measures in all. Get these things put together at once, and say nothing about it. I will take everything away this evening as soon as my mother has gone upstairs for the night. I am going to Sparta and to Pylos to see if I can hear anything about the return of my dear father.\n\nWhen Euryclea heard this she began to cry, and spoke fondly to him, saying, \"My dear child, what ever can have put such notion as that into your head? Where in the world do you want to go to- you, who are the one hope of the house? Your poor father is dead and gone in some foreign country nobody knows where, and as soon as your back is turned these wicked ones here will be scheming to get you put out of the way, and will share all your possessions among themselves; stay where you are among your own people, and do not go wandering and worrying your life out on the barren ocean.\"\n\n\"Fear not, nurse,\" answered Telemachus, \"my scheme is not without heaven's sanction; but swear that you will say nothing about all this to my mother, till I have been away some ten or twelve days, unless she hears of my having gone, and asks you; for I do not want her to spoil her beauty by crying.\"\n\nThe old woman swore most solemnly that she would not, and when she had completed her oath, she began drawing off the wine into jars, and getting the barley meal into the bags, while Telemachus went back to the suitors.\n\nThen Minerva bethought her of another matter. She took his shape, and went round the town to each one of the crew, telling them to meet at the ship by sundown. She went also to Noemon son of Phronius, and asked him to let her have a ship- which he was very ready to do. When the sun had set and darkness was over all the land, she got the ship into the water, put all the tackle on board her that ships generally carry, and stationed her at the end of the harbour. Presently the crew came up, and the goddess spoke encouragingly to each of them.\n\nFurthermore she went to the house of Ulysses, and threw the suitors into a deep slumber. She caused their drink to fuddle them, and made them drop their cups from their hands, so that instead of sitting over their wine, they went back into the town to sleep, with their eyes heavy and full of drowsiness. Then she took the form and voice of Mentor, and called Telemachus to come outside.\n\n\"Telemachus,\" said she, \"the men are on board and at their oars, waiting for you to give your orders, so make haste and let us be off.\"\n\nOn this she led the way, while Telemachus followed in her steps. When they got to the ship they found the crew waiting by the water side, and Telemachus said, \"Now my men, help me to get the stores on board; they are all put together in the cloister, and my mother does not know anything about it, nor any of the maid servants except one.\"\n\nWith these words he led the way and the others followed after. When they had brought the things as he told them, Telemachus went on board, Minerva going before him and taking her seat in the stern of the vessel, while Telemachus sat beside her. Then the men loosed the hawsers and took their places on the benches. Minerva sent them a fair wind from the West, that whistled over the deep blue waves whereon Telemachus told them to catch hold of the ropes and hoist sail, and they did as he told them. They set the mast in its socket in the cross plank, raised it, and made it fast with the forestays; then they hoisted their white sails aloft with ropes of twisted ox hide. As the sail bellied out with the wind, the ship flew through the deep blue water, and the foam hissed against her bows as she sped onward. Then they made all fast throughout the ship, filled the mixing-bowls to the brim, and made drink offerings to the immortal gods that are from everlasting, but more particularly to the grey-eyed daughter of Jove.\n\nThus, then, the ship sped on her way through the watches of the night from dark till dawn.\n\nBook III\n\nBut as the sun was rising from the fair sea into the firmament of heaven to shed light on mortals and immortals, they reached Pylos the city of Neleus. Now the people of Pylos were gathered on the sea shore to offer sacrifice of black bulls to Neptune lord of the Earthquake. There were nine guilds with five hundred men in each, and there were nine bulls to each guild. As they were eating the inward meats and burning the thigh bones [on the embers] in the name of Neptune, Telemachus and his crew arrived, furled their sails, brought their ship to anchor, and went ashore.\n\nMinerva led the way and Telemachus followed her. Presently she said, \"Telemachus, you must not be in the least shy or nervous; you have taken this voyage to try and find out where your father is buried and how he came by his end; so go straight up to Nestor that we may see what he has got to tell us. Beg of him to speak the truth, and he will tell no lies, for he is an excellent person.\"\n\n\"But how, Mentor,\" replied Telemachus, \"dare I go up to Nestor, and how am I to address him? I have never yet been used to holding long conversations with people, and am ashamed to begin questioning one who is so much older than myself.\"\n\n\"Some things, Telemachus,\" answered Minerva, \"will be suggested to you by your own instinct, and heaven will prompt you further; for I am assured that the gods have been with you from the time of your birth until now.\"\n\nShe then went quickly on, and Telemachus followed in her steps till they reached the place where the guilds of the Pylian people were assembled. There they found Nestor sitting with his sons, while his company round him were busy getting dinner ready, and putting pieces of meat on to the spits while other pieces were cooking. When they saw the strangers they crowded round them, took them by the hand and bade them take their places. Nestor's son Pisistratus at once offered his hand to each of them, and seated them on some soft sheepskins that were lying on the sands near his father and his brother Thrasymedes. Then he gave them their portions of the inward meats and poured wine for them into a golden cup, handing it to Minerva first, and saluting her at the same time.\n\n\"Offer a prayer, sir,\" said he, \"to King Neptune, for it is his feast that you are joining; when you have duly prayed and made your drink-offering, pass the cup to your friend that he may do so also. I doubt not that he too lifts his hands in prayer, for man cannot live without God in the world. Still he is younger than you are, and is much of an age with myself, so I he handed I will give you the precedence.\"\n\nAs he spoke he handed her the cup. Minerva thought it very right and proper of him to have given it to herself first; she accordingly began praying heartily to Neptune. \"O thou,\" she cried, \"that encirclest the earth, vouchsafe to grant the prayers of thy servants that call upon thee. More especially we pray thee send down thy grace on Nestor and on his sons; thereafter also make the rest of the Pylian people some handsome return for the goodly hecatomb they are offering you. Lastly, grant Telemachus and myself a happy issue, in respect of the matter that has brought us in our to Pylos.\"\n\nWhen she had thus made an end of praying, she handed the cup to Telemachus and he prayed likewise. By and by, when the outer meats were roasted and had been taken off the spits, the carvers gave every man his portion and they all made an excellent dinner. As soon as they had had enough to eat and drink, Nestor, knight of Gerene, began to speak.\n\n\"Now,\" said he, \"that our guests have done their dinner, it will be best to ask them who they are. Who, then, sir strangers, are you, and from what port have you sailed? Are you traders? or do you sail the seas as rovers with your hand against every man, and every man's hand against you?\"\n\nTelemachus answered boldly, for Minerva had given him courage to ask about his father and get himself a good name.\n\n\"Nestor,\" said he, \"son of Neleus, honour to the Achaean name, you ask whence we come, and I will tell you. We come from Ithaca under Neritum, and the matter about which I would speak is of private not public import. I seek news of my unhappy father Ulysses, who is said to have sacked the town of Troy in company with yourself. We know what fate befell each one of the other heroes who fought at Troy, but as regards Ulysses heaven has hidden from us the knowledge even that he is dead at all, for no one can certify us in what place he perished, nor say whether he fell in battle on the mainland, or was lost at sea amid the waves of Amphitrite. Therefore I am suppliant at your knees, if haply you may be pleased to tell me of his melancholy end, whether you saw it with your own eyes, or heard it from some other traveller, for he was a man born to trouble. Do not soften things out of any pity for me, but tell me in all plainness exactly what you saw. If my brave father Ulysses ever did you loyal service, either by word or deed, when you Achaeans were harassed among the Trojans, bear it in mind now as in my favour and tell me truly all.\"\n\n\"My friend,\" answered Nestor, \"you recall a time of much sorrow to my mind, for the brave Achaeans suffered much both at sea, while privateering under Achilles, and when fighting before the great city of king Priam. Our best men all of them fell there- Ajax, Achilles, Patroclus peer of gods in counsel, and my own dear son Antilochus, a man singularly fleet of foot and in fight valiant. But we suffered much more than this; what mortal tongue indeed could tell the whole story? Though you were to stay here and question me for five years, or even six, I could not tell you all that the Achaeans suffered, and you would turn homeward weary of my tale before it ended. Nine long years did we try every kind of stratagem, but the hand of heaven was against us; during all this time there was no one who could compare with your father in subtlety- if indeed you are his son- I can hardly believe my eyes- and you talk just like him too- no one would say that people of such different ages could speak so much alike. He and I never had any kind of difference from first to last neither in camp nor council, but in singleness of heart and purpose we advised the Argives how all might be ordered for the best.\n\n\"When however, we had sacked the city of Priam, and were setting sail in our ships as heaven had dispersed us, then Jove saw fit to vex the Argives on their homeward voyage; for they had Not all been either wise or understanding, and hence many came to a bad end through the displeasure of Jove's daughter Minerva, who brought about a quarrel between the two sons of Atreus.\n\n\"The sons of Atreus called a meeting which was not as it should be, for it was sunset and the Achaeans were heavy with wine. When they explained why they had called- the people together, it seemed that Menelaus was for sailing homeward at once, and this displeased Agamemnon, who thought that we should wait till we had offered hecatombs to appease the anger of Minerva. Fool that he was, he might have known that he would not prevail with her, for when the gods have made up their minds they do not change them lightly. So the two stood bandying hard words, whereon the Achaeans sprang to their feet with a cry that rent the air, and were of two minds as to what they should do.\n\n\"That night we rested and nursed our anger, for Jove was hatching mischief against us. But in the morning some of us drew our ships into the water and put our goods with our women on board, while the rest, about half in number, stayed behind with Agamemnon. We- the other half- embarked and sailed; and the ships went well, for heaven had smoothed the sea. When we reached Tenedos we offered sacrifices to the gods, for we were longing to get home; cruel Jove, however, did not yet mean that we should do so, and raised a second quarrel in the course of which some among us turned their ships back again, and sailed away under Ulysses to make their peace with Agamemnon; but I, and all the ships that were with me pressed forward, for I saw that mischief was brewing. The son of Tydeus went on also with me, and his crews with him. Later on Menelaus joined us at Lesbos, and found us making up our minds about our course- for we did not know whether to go outside Chios by the island of Psyra, keeping this to our left, or inside Chios, over against the stormy headland of Mimas. So we asked heaven for a sign, and were shown one to the effect that we should be soonest out of danger if we headed our ships across the open sea to Euboea. This we therefore did, and a fair wind sprang up which gave us a quick passage during the night to Geraestus, where we offered many sacrifices to Neptune for having helped us so far on our way. Four days later Diomed and his men stationed their ships in Argos, but I held on for Pylos, and the wind never fell light from the day when heaven first made it fair for me.\n\n\"Therefore, my dear young friend, I returned without hearing anything about the others. I know neither who got home safely nor who were lost but, as in duty bound, I will give you without reserve the reports that have reached me since I have been here in my own house. They say the Myrmidons returned home safely under Achilles' son Neoptolemus; so also did the valiant son of Poias, Philoctetes. Idomeneus, again, lost no men at sea, and all his followers who escaped death in the field got safe home with him to Crete. No matter how far out of the world you live, you will have heard of Agamemnon and the bad end he came to at the hands of Aegisthus- and a fearful reckoning did Aegisthus presently pay. See what a good thing it is for a man to leave a son behind him to do as Orestes did, who killed false Aegisthus the murderer of his noble father. You too, then- for you are a tall, smart-looking fellow- show your mettle and make yourself a name in story.\"\n\n\"Nestor son of Neleus,\" answered Telemachus, \"honour to the Achaean name, the Achaeans applaud Orestes and his name will live through all time for he has avenged his father nobly. Would that heaven might grant me to do like vengeance on the insolence of the wicked suitors, who are ill treating me and plotting my ruin; but the gods have no such happiness in store for me and for my father, so we must bear it as best we may.\"\n\n\"My friend,\" said Nestor, \"now that you remind me, I remember to have heard that your mother has many suitors, who are ill disposed towards you and are making havoc of your estate. Do you submit to this tamely, or are public feeling and the voice of heaven against you? Who knows but what Ulysses may come back after all, and pay these scoundrels in full, either single-handed or with a force of Achaeans behind him? If Minerva were to take as great a liking to you as she did to Ulysses when we were fighting before Troy (for I never yet saw the gods so openly fond of any one as Minerva then was of your father), if she would take as good care of you as she did of him, these wooers would soon some of them him, forget their wooing.\"\n\nTelemachus answered, \"I can expect nothing of the kind; it would be far too much to hope for. I dare not let myself think of it. Even though the gods themselves willed it no such good fortune could befall me.\"\n\nOn this Minerva said, \"Telemachus, what are you talking about? Heaven has a long arm if it is minded to save a man; and if it were me, I should not care how much I suffered before getting home, provided I could be safe when I was once there. I would rather this, than get home quickly, and then be killed in my own house as Agamemnon was by the treachery of Aegisthus and his wife. Still, death is certain, and when a man's hour is come, not even the gods can save him, no matter how fond they are of him.\"\n\n\"Mentor,\" answered Telemachus, \"do not let us talk about it any more. There is no chance of my father's ever coming back; the gods have long since counselled his destruction. There is something else, however, about which I should like to ask Nestor, for he knows much more than any one else does. They say he has reigned for three generations so that it is like talking to an immortal. Tell me, therefore, Nestor, and tell me true; how did Agamemnon come to die in that way? What was Menelaus doing? And how came false Aegisthus to kill so far better a man than himself? Was Menelaus away from Achaean Argos, voyaging elsewhither among mankind, that Aegisthus took heart and killed Agamemnon?\"\n\n\"I will tell you truly,\" answered Nestor, \"and indeed you have yourself divined how it all happened. If Menelaus when he got back from Troy had found Aegisthus still alive in his house, there would have been no barrow heaped up for him, not even when he was dead, but he would have been thrown outside the city to dogs and vultures, and not a woman would have mourned him, for he had done a deed of great wickedness; but we were over there, fighting hard at Troy, and Aegisthus who was taking his ease quietly in the heart of Argos, cajoled Agamemnon's wife Clytemnestra with incessant flattery.\n\n\"At first she would have nothing to do with his wicked scheme, for she was of a good natural disposition; moreover there was a bard with her, to whom Agamemnon had given strict orders on setting out for Troy, that he was to keep guard over his wife; but when heaven had counselled her destruction, Aegisthus thus this bard off to a desert island and left him there for crows and seagulls to batten upon- after which she went willingly enough to the house of Aegisthus. Then he offered many burnt sacrifices to the gods, and decorated many temples with tapestries and gilding, for he had succeeded far beyond his expectations.\n\n\"Meanwhile Menelaus and I were on our way home from Troy, on good terms with one another. When we got to Sunium, which is the point of Athens, Apollo with his painless shafts killed Phrontis the steersman of Menelaus' ship (and never man knew better how to handle a vessel in rough weather) so that he died then and there with the helm in his hand, and Menelaus, though very anxious to press forward, had to wait in order to bury his comrade and give him his due funeral rites. Presently, when he too could put to sea again, and had sailed on as far as the Malean heads, Jove counselled evil against him and made it it blow hard till the waves ran mountains high. Here he divided his fleet and took the one half towards Crete where the Cydonians dwell round about the waters of the river Iardanus. There is a high headland hereabouts stretching out into the sea from a place called Gortyn, and all along this part of the coast as far as Phaestus the sea runs high when there is a south wind blowing, but arter Phaestus the coast is more protected, for a small headland can make a great shelter. Here this part of the fleet was driven on to the rocks and wrecked; but the crews just managed to save themselves. As for the other five ships, they were taken by winds and seas to Egypt, where Menelaus gathered much gold and substance among people of an alien speech. Meanwhile Aegisthus here at home plotted his evil deed. For seven years after he had killed Agamemnon he ruled in Mycene, and the people were obedient under him, but in the eighth year Orestes came back from Athens to be his bane, and killed the murderer of his father. Then he celebrated the funeral rites of his mother and of false Aegisthus by a banquet to the people of Argos, and on that very day Menelaus came home, with as much treasure as his ships could carry.\n\n\"Take my advice then, and do not go travelling about for long so far from home, nor leave your property with such dangerous people in your house; they will eat up everything you have among them, and you will have been on a fool's errand. Still, I should advise you by all means to go and visit Menelaus, who has lately come off a voyage among such distant peoples as no man could ever hope to get back from, when the winds had once carried him so far out of his reckoning; even birds cannot fly the distance in a twelvemonth, so vast and terrible are the seas that they must cross. Go to him, therefore, by sea, and take your own men with you; or if you would rather travel by land you can have a chariot, you can have horses, and here are my sons who can escort you to Lacedaemon where Menelaus lives. Beg of him to speak the truth, and he will tell you no lies, for he is an excellent person.\"\n\nAs he spoke the sun set and it came on dark, whereon Minerva said, \"Sir, all that you have said is well; now, however, order the tongues of the victims to be cut, and mix wine that we may make drink-offerings to Neptune, and the other immortals, and then go to bed, for it is bed time. People should go away early and not keep late hours at a religious festival.\"\n\nThus spoke the daughter of Jove, and they obeyed her saying. Men servants poured water over the hands of the guests, while pages filled the mixing-bowls with wine and water, and handed it round after giving every man his drink-offering; then they threw the tongues of the victims into the fire, and stood up to make their drink-offerings. When they had made their offerings and had drunk each as much as he was minded, Minerva and Telemachus were forgoing on board their ship, but Nestor caught them up at once and stayed them.\n\n\"Heaven and the immortal gods,\" he exclaimed, \"forbid that you should leave my house to go on board of a ship. Do you think I am so poor and short of clothes, or that I have so few cloaks and as to be unable to find comfortable beds both for myself and for my guests? Let me tell you I have store both of rugs and cloaks, and shall not permit the son of my old friend Ulysses to camp down on the deck of a ship- not while I live- nor yet will my sons after me, but they will keep open house as have done.\"\n\nThen Minerva answered, \"Sir, you have spoken well, and it will be much better that Telemachus should do as you have said; he, therefore, shall return with you and sleep at your house, but I must go back to give orders to my crew, and keep them in good heart. I am the only older person among them; the rest are all young men of Telemachus' own age, who have taken this voyage out of friendship; so I must return to the ship and sleep there. Moreover to-morrow I must go to the Cauconians where I have a large sum of money long owing to me. As for Telemachus, now that he is your guest, send him to Lacedaemon in a chariot, and let one of your sons go with him. Be pleased also to provide him with your best and fleetest horses.\"\n\nWhen she had thus spoken, she flew away in the form of an eagle, and all marvelled as they beheld it. Nestor was astonished, and took Telemachus by the hand. \"My friend,\" said he, \"I see that you are going to be a great hero some day, since the gods wait upon you thus while you are still so young. This can have been none other of those who dwell in heaven than Jove's redoubtable daughter, the Trito-born, who showed such favour towards your brave father among the Argives.\" \"Holy queen,\" he continued, \"vouchsafe to send down thy grace upon myself, my good wife, and my children. In return, I will offer you in sacrifice a broad-browed heifer of a year old, unbroken, and never yet brought by man under the yoke. I will gild her horns, and will offer her up to you in sacrifice.\"\n\nThus did he pray, and Minerva heard his prayer. He then led the way to his own house, followed by his sons and sons-in-law. When they had got there and had taken their places on the benches and seats, he mixed them a bowl of sweet wine that was eleven years old when the housekeeper took the lid off the jar that held it. As he mixed the wine, he prayed much and made drink-offerings to Minerva, daughter of Aegis-bearing Jove. Then, when they had made their drink-offerings and had drunk each as much as he was minded, the others went home to bed each in his own abode; but Nestor put Telemachus to sleep in the room that was over the gateway along with Pisistratus, who was the only unmarried son now left him. As for himself, he slept in an inner room of the house, with the queen his wife by his side.\n\nNow when the child of morning, rosy-fingered Dawn, appeared, Nestor left his couch and took his seat on the benches of white and polished marble that stood in front of his house. Here aforetime sat Neleus, peer of gods in counsel, but he was now dead, and had gone to the house of Hades; so Nestor sat in his seat, sceptre in hand, as guardian of the public weal. His sons as they left their rooms gathered round him, Echephron, Stratius, Perseus, Aretus, and Thrasymedes; the sixth son was Pisistratus, and when Telemachus joined them they made him sit with them. Nestor then addressed them.\n\n\"My sons,\" said he, \"make haste to do as I shall bid you. I wish first and foremost to propitiate the great goddess Minerva, who manifested herself visibly to me during yesterday's festivities. Go, then, one or other of you to the plain, tell the stockman to look me out a heifer, and come on here with it at once. Another must go to Telemachus's ship, and invite all the crew, leaving two men only in charge of the vessel. Some one else will run and fetch Laerceus the goldsmith to gild the horns of the heifer. The rest, stay all of you where you are; tell the maids in the house to prepare an excellent dinner, and to fetch seats, and logs of wood for a burnt offering. Tell them also- to bring me some clear spring water.\"\n\nOn this they hurried off on their several errands. The heifer was brought in from the plain, and Telemachus's crew came from the ship; the goldsmith brought the anvil, hammer, and tongs, with which he worked his gold, and Minerva herself came to the sacrifice. Nestor gave out the gold, and the smith gilded the horns of the heifer that the goddess might have pleasure in their beauty. Then Stratius and Echephron brought her in by the horns; Aretus fetched water from the house in a ewer that had a flower pattern on it, and in his other hand he held a basket of barley meal; sturdy Thrasymedes stood by with a sharp axe, ready to strike the heifer, while Perseus held a bucket. Then Nestor began with washing his hands and sprinkling the barley meal, and he offered many a prayer to Minerva as he threw a lock from the heifer's head "
          },
          "response": {
            "data": "HTTP/1.1 200 OK\nTransfer-Encoding:chunked\n\n"
          }
        },
        {
          "request": {
            "data": "upon the fire.\n\nWhen they had done praying and sprinkling the barley meal Thrasymedes dealt his blow, and brought the heifer down with a stroke that cut through the tendons at the base of her neck, whereon the daughters and daughters-in-law of Nestor, and his venerable wife Eurydice (she was eldest daughter to Clymenus) screamed with delight. Then they lifted the heifer's head from off the ground, and Pisistratus cut her throat. When she had done bleeding and was quite dead, they cut her up. They cut out the thigh bones all in due course, wrapped them round in two layers of fat, and set some pieces of raw meat on the top of them; then Nestor laid them upon the wood fire and poured wine over them, while the young men stood near him with five-pronged spits in their hands. When the thighs were burned and they had tasted the inward meats, they cut the rest of the meat up small, put the pieces on the spits and toasted them over the fire.\n\nMeanwhile lovely Polycaste, Nestor's youngest daughter, washed Telemachus. When she had washed him and anointed him with oil, she brought him a fair mantle and shirt, and he looked like a god as he came from the bath and took his seat by the side of Nestor. When the outer meats were done they drew them off the spits and sat down to dinner where they were waited upon by some worthy henchmen, who kept pouring them out their wine in cups of gold. As soon as they had had had enough to eat and drink Nestor said, \"Sons, put Telemachus's horses to the chariot that he may start at once.\"\n\nThus did he speak, and they did even as he had said, and yoked the fleet horses to the chariot. The housekeeper packed them up a provision of bread, wine, and sweetmeats fit for the sons of princes. Then Telemachus got into the chariot, while Pisistratus gathered up the reins and took his seat beside him. He lashed the horses on and they flew forward nothing loth into the open country, leaving the high citadel of Pylos behind them. All that day did they travel, swaying the yoke upon their necks till the sun went down and darkness was over all the land. Then they reached Pherae where Diocles lived, who was son to Ortilochus and grandson to Alpheus. Here they passed the night and Diocles entertained them hospitably. When the child of morning, rosy-fingered Dawn; appeared, they again yoked their horses and drove out through the gateway under the echoing gatehouse. Pisistratus lashed the horses on and they flew forward nothing loth; presently they came to the corn lands Of the open country, and in the course of time completed their journey, so well did their steeds take them.\n\nNow when the sun had set and darkness was over the land.\n"
          },
          "response": {
            "data": "HTTP/1.1 200 OK\nTransfer-Encoding:chunked\n\n"
          }
        }
      ]
    }
  ],
  "_links": {
    "self": {
      "href": "http://localhost:44762/imposters/4545"
    }
  }
}

Let's GET our imposter to verify only one request was captured.


GET /imposters/4545 HTTP/1.1
Host: localhost:44762
Accept: application/json

HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Vary: Accept
Date: Sun, 11 Jan 2015 16:59:33 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 137982
Connection: keep-alive

{
  "protocol": "tcp",
  "port": 4545,
  "numberOfRequests": 1,
  "mode": "text",
  "requests": [
    {
      "requestFrom": "::1:60590",
      "data": "POST / HTTP/1.1\nHost: localhost:4545\nContent-Length: 68134\nContent-Type: text/plain\n\nBook I\n\nTell me, O muse, of that ingenious hero who travelled far and wide after he had sacked the famous town of Troy. Many cities did he visit, and many were the nations with whose manners and customs he was acquainted; moreover he suffered much by sea while trying to save his own life and bring his men safely home; but do what he might he could not save his men, for they perished through their own sheer folly in eating the cattle of the Sun-god Hyperion; so the god prevented them from ever reaching home. Tell me, too, about all these things, O daughter of Jove, from whatsoever source you may know them.\n\nSo now all who escaped death in battle or by shipwreck had got safely home except Ulysses, and he, though he was longing to return to his wife and country, was detained by the goddess Calypso, who had got him into a large cave and wanted to marry him. But as years went by, there came a time when the gods settled that he should go back to Ithaca; even then, however, when he was among his own people, his troubles were not yet over; nevertheless all the gods had now begun to pity him except Neptune, who still persecuted him without ceasing and would not let him get home.\n\nNow Neptune had gone off to the Ethiopians, who are at the world's end, and lie in two halves, the one looking West and the other East. He had gone there to accept a hecatomb of sheep and oxen, and was enjoying himself at his festival; but the other gods met in the house of Olympian Jove, and the sire of gods and men spoke first. At that moment he was thinking of Aegisthus, who had been killed by Agamemnon's son Orestes; so he said to the other gods:\n\n\"See now, how men lay blame upon us gods for what is after all nothing but their own folly. Look at Aegisthus; he must needs make love to Agamemnon's wife unrighteously and then kill Agamemnon, though he knew it would be the death of him; for I sent Mercury to warn him not to do either of these things, inasmuch as Orestes would be sure to take his revenge when he grew up and wanted to return home. Mercury told him this in all good will but he would not listen, and now he has paid for everything in full.\"\n\nThen Minerva said, \"Father, son of Saturn, King of kings, it served Aegisthus right, and so it would any one else who does as he did; but Aegisthus is neither here nor there; it is for Ulysses that my heart bleeds, when I think of his sufferings in that lonely sea-girt island, far away, poor man, from all his friends. It is an island covered with forest, in the very middle of the sea, and a goddess lives there, daughter of the magician Atlas, who looks after the bottom of the ocean, and carries the great columns that keep heaven and earth asunder. This daughter of Atlas has got hold of poor unhappy Ulysses, and keeps trying by every kind of blandishment to make him forget his home, so that he is tired of life, and thinks of nothing but how he may once more see the smoke of his own chimneys. You, sir, take no heed of this, and yet when Ulysses was before Troy did he not propitiate you with many a burnt sacrifice? Why then should you keep on being so angry with him?\"\n\nAnd Jove said, \"My child, what are you talking about? How can I forget Ulysses than whom there is no more capable man on earth, nor more liberal in his offerings to the immortal gods that live in heaven? Bear in mind, however, that Neptune is still furious with Ulysses for having blinded an eye of Polyphemus king of the Cyclopes. Polyphemus is son to Neptune by the nymph Thoosa, daughter to the sea-king Phorcys; therefore though he will not kill Ulysses outright, he torments him by preventing him from getting home. Still, let us lay our heads together and see how we can help him to return; Neptune will then be pacified, for if we are all of a mind he can hardly stand out against us.\"\n\nAnd Minerva said, \"Father, son of Saturn, King of kings, if, then, the gods now mean that Ulysses should get home, we should first send Mercury to the Ogygian island to tell Calypso that we have made up our minds and that he is to return. In the meantime I will go to Ithaca, to put heart into Ulysses' son Telemachus; I will embolden him to call the Achaeans in assembly, and speak out to the suitors of his mother Penelope, who persist in eating up any number of his sheep and oxen; I will also conduct him to Sparta and to Pylos, to see if he can hear anything about the return of his dear father- for this will make people speak well of him.\"\n\nSo saying she bound on her glittering golden sandals, imperishable, with which she can fly like the wind over land or sea; she grasped the redoubtable bronze-shod spear, so stout and sturdy and strong, wherewith she quells the ranks of heroes who have displeased her, and down she darted from the topmost summits of Olympus, whereon forthwith she was in Ithaca, at the gateway of Ulysses' house, disguised as a visitor, Mentes, chief of the Taphians, and she held a bronze spear in her hand. There she found the lordly suitors seated on hides of the oxen which they had killed and eaten, and playing draughts in front of the house. Men-servants and pages were bustling about to wait upon them, some mixing wine with water in the mixing-bowls, some cleaning down the tables with wet sponges and laying them out again, and some cutting up great quantities of meat.\n\nTelemachus saw her long before any one else did. He was sitting moodily among the suitors thinking about his brave father, and how he would send them flying out of the house, if he were to come to his own again and be honoured as in days gone by. Thus brooding as he sat among them, he caught sight of Minerva and went straight to the gate, for he was vexed that a stranger should be kept waiting for admittance. He took her right hand in his own, and bade her give him her spear. \"Welcome,\" said he, \"to our house, and when you have partaken of food you shall tell us what you have come for.\"\n\nHe led the way as he spoke, and Minerva followed him. When they were within he took her spear and set it in the spear- stand against a strong bearing-post along with the many other spears of his unhappy father, and he conducted her to a richly decorated seat under which he threw a cloth of damask. There was a footstool also for her feet, and he set another seat near her for himself, away from the suitors, that she might not be annoyed while eating by their noise and insolence, and that he might ask her more freely about his father.\n\nA maid servant then brought them water in a beautiful golden ewer and poured it into a silver basin for them to wash their hands, and she drew a clean table beside them. An upper servant brought them bread, and offered them many good things of what there was in the house, the carver fetched them plates of all manner of meats and set cups of gold by their side, and a man-servant brought them wine and poured it out for them.\n\nThen the suitors came in and took their places on the benches and seats. Forthwith men servants poured water over their hands, maids went round with the bread-baskets, pages filled the mixing-bowls with wine and water, and they laid their hands upon the good things that were before them. As soon as they had had enough to eat and drink they wanted music and dancing, which are the crowning embellishments of a banquet, so a servant brought a lyre to Phemius, whom they compelled perforce to sing to them. As soon as he touched his lyre and began to sing Telemachus spoke low to Minerva, with his head close to hers that no man might hear.\n\n\"I hope, sir,\" said he, \"that you will not be offended with what I am going to say. Singing comes cheap to those who do not pay for it, and all this is done at the cost of one whose bones lie rotting in some wilderness or grinding to powder in the surf. If these men were to see my father come back to Ithaca they would pray for longer legs rather than a longer purse, for money would not serve them; but he, alas, has fallen on an ill fate, and even when people do sometimes say that he is coming, we no longer heed them; we shall never see him again. And now, sir, tell me and tell me true, who you are and where you come from. Tell me of your town and parents, what manner of ship you came in, how your crew brought you to Ithaca, and of what nation they declared themselves to be- for you cannot have come by land. Tell me also truly, for I want to know, are you a stranger to this house, or have you been here in my father's time? In the old days we had many visitors for my father went about much himself.\"\n\nAnd Minerva answered, \"I will tell you truly and particularly all about it. I am Mentes, son of Anchialus, and I am King of the Taphians. I have come here with my ship and crew, on a voyage to men of a foreign tongue being bound for Temesa with a cargo of iron, and I shall bring back copper. As for my ship, it lies over yonder off the open country away from the town, in the harbour Rheithron under the wooded mountain Neritum. Our fathers were friends before us, as old Laertes will tell you, if you will go and ask him. They say, however, that he never comes to town now, and lives by himself in the country, faring hardly, with an old woman to look after him and get his dinner for him, when he comes in tired from pottering about his vineyard. They told me your father was at home again, and that was why I came, but it seems the gods are still keeping him back, for he is not dead yet not on the mainland. It is more likely he is on some sea-girt island in mid ocean, or a prisoner among savages who are detaining him against his will I am no prophet, and know very little about omens, but I speak as it is borne in upon me from heaven, and assure you that he will not be away much longer; for he is a man of such resource that even though he were in chains of iron he would find some means of getting home again. But tell me, and tell me true, can Ulysses really have such a fine looking fellow for a son? You are indeed wonderfully like him about the head and eyes, for we were close friends before he set sail for Troy where the flower of all the Argives went also. Since that time we have never either of us seen the other.\"\n\n\"My mother,\" answered Telemachus, tells me I am son to Ulysses, but it is a wise child that knows his own father. Would that I were son to one who had grown old upon his own estates, for, since you ask me, there is no more ill-starred man under heaven than he who they tell me is my father.\"\n\nAnd Minerva said, \"There is no fear of your race dying out yet, while Penelope has such a fine son as you are. But tell me, and tell me true, what is the meaning of all this feasting, and who are these people? What is it all about? Have you some banquet, or is there a wedding in the family- for no one seems to be bringing any provisions of his own? And the guests- how atrociously they are behaving; what riot they make over the whole house; it is enough to disgust any respectable person who comes near them.\"\n\n\"Sir,\" said Telemachus, \"as regards your question, so long as my father was here it was well with us and with the house, but the gods in their displeasure have willed it otherwise, and have hidden him away more closely than mortal man was ever yet hidden. I could have borne it better even though he were dead, if he had fallen with his men before Troy, or had died with friends around him when the days of his fighting were done; for then the Achaeans would have built a mound over his ashes, and I should myself have been heir to his renown; but now the storm-winds have spirited him away we know not wither; he is gone without leaving so much as a trace behind him, and I inherit nothing but dismay. Nor does the matter end simply with grief for the loss of my father; heaven has laid sorrows upon me of yet another kind; for the chiefs from all our islands, Dulichium, Same, and the woodland island of Zacynthus, as also all the principal men of Ithaca itself, are eating up my house under the pretext of paying their court to my mother, who will neither point blank say that she will not marry, nor yet bring matters to an end; so they are making havoc of my estate, and before long will do so also with myself.\"\n\n\"Is that so?\" exclaimed Minerva, \"then you do indeed want Ulysses home again. Give him his helmet, shield, and a couple lances, and if he is the man he was when I first knew him in our house, drinking and making merry, he would soon lay his hands about these rascally suitors, were he to stand once more upon his own threshold. He was then coming from Ephyra, where he had been to beg poison for his arrows from Ilus, son of Mermerus. Ilus feared the ever-living gods and would not give him any, but my father let him have some, for he was very fond of him. If Ulysses is the man he then was these suitors will have a short shrift and a sorry wedding.\n\n\"But there! It rests with heaven to determine whether he is to return, and take his revenge in his own house or no; I would, however, urge you to set about trying to get rid of these suitors at once. Take my advice, call the Achaean heroes in assembly to-morrow -lay your case before them, and call heaven to bear you witness. Bid the suitors take themselves off, each to his own place, and if your mother's mind is set on marrying again, let her go back to her father, who will find her a husband and provide her with all the marriage gifts that so dear a daughter may expect. As for yourself, let me prevail upon you to take the best ship you can get, with a crew of twenty men, and go in quest of your father who has so long been missing. Some one may tell you something, or (and people often hear things in this way) some heaven-sent message may direct you. First go to Pylos and ask Nestor; thence go on to Sparta and visit Menelaus, for he got home last of all the Achaeans; if you hear that your father is alive and on his way home, you can put up with the waste these suitors will make for yet another twelve months. If on the other hand you hear of his death, come home at once, celebrate his funeral rites with all due pomp, build a barrow to his memory, and make your mother marry again. Then, having done all this, think it well over in your mind how, by fair means or foul, you may kill these suitors in your own house. You are too old to plead infancy any longer; have you not heard how people are singing Orestes' praises for having killed his father's murderer Aegisthus? You are a fine, smart looking fellow; show your mettle, then, and make yourself a name in story. Now, however, I must go back to my ship and to my crew, who will be impatient if I keep them waiting longer; think the matter over for yourself, and remember what I have said to you.\"\n\n\"Sir,\" answered Telemachus, \"it has been very kind of you to talk to me in this way, as though I were your own son, and I will do all you tell me; I know you want to be getting on with your voyage, but stay a little longer till you have taken a bath and refreshed yourself. I will then give you a present, and you shall go on your way rejoicing; I will give you one of great beauty and value- a keepsake such as only dear friends give to one another.\"\n\nMinerva answered, \"Do not try to keep me, for I would be on my way at once. As for any present you may be disposed to make me, keep it till I come again, and I will take it home with me. You shall give me a very good one, and I will give you one of no less value in return.\"\n\nWith these words she flew away like a bird into the air, but she had given Telemachus courage, and had made him think more than ever about his father. He felt the change, wondered at it, and knew that the stranger had been a god, so he went straight to where the suitors were sitting.\n\nPhemius was still singing, and his hearers sat rapt in silence as he told the sad tale of the return from Troy, and the ills Minerva had laid upon the Achaeans. Penelope, daughter of Icarius, heard his song from her room upstairs, and came down by the great staircase, not alone, but attended by two of her handmaids. When she reached the suitors she stood by one of the bearing posts that supported the roof of the cloisters with a staid maiden on either side of her. She held a veil, moreover, before her face, and was weeping bitterly.\n\n\"Phemius,\" she cried, \"you know many another feat of gods and heroes, such as poets love to celebrate. Sing the suitors some one of these, and let them drink their wine in silence, but cease this sad tale, for it breaks my sorrowful heart, and reminds me of my lost husband whom I mourn ever without ceasing, and whose name was great over all Hellas and middle Argos.\"\n\n\"Mother,\" answered Telemachus, \"let the bard sing what he has a mind to; bards do not make the ills they sing of; it is Jove, not they, who makes them, and who sends weal or woe upon mankind according to his own good pleasure. This fellow means no harm by singing the ill-fated return of the Danaans, for people always applaud the latest songs most warmly. Make up your mind to it and bear it; Ulysses is not the only man who never came back from Troy, but many another went down as well as he. Go, then, within the house and busy yourself with your daily duties, your loom, your distaff, and the ordering of your servants; for speech is man's matter, and mine above all others- for it is I who am master here.\"\n\nShe went wondering back into the house, and laid her son's saying in her heart. Then, going upstairs with her handmaids into her room, she mourned her dear husband till Minerva shed sweet sleep over her eyes. But the suitors were clamorous throughout the covered cloisters, and prayed each one that he might be her bed fellow.\n\nThen Telemachus spoke, \"Shameless,\" he cried, \"and insolent suitors, let us feast at our pleasure now, and let there be no brawling, for it is a rare thing to hear a man with such a divine voice as Phemius has; but in the morning meet me in full assembly that I may give you formal notice to depart, and feast at one another's houses, turn and turn about, at your own cost. If on the other hand you choose to persist in spunging upon one man, heaven help me, but Jove shall reckon with you in full, and when you fall in my father's house there shall be no man to avenge you.\"\n\nThe suitors bit their lips as they heard him, and marvelled at the boldness of his speech. Then, Antinous, son of Eupeithes, said, \"The gods seem to have given you lessons in bluster and tall talking; may Jove never grant you to be chief in Ithaca as your father was before you.\"\n\nTelemachus answered, \"Antinous, do not chide with me, but, god willing, I will be chief too if I can. Is this the worst fate you can think of for me? It is no bad thing to be a chief, for it brings both riches and honour. Still, now that Ulysses is dead there are many great men in Ithaca both old and young, and some other may take the lead among them; nevertheless I will be chief in my own house, and will rule those whom Ulysses has won for me.\"\n\nThen Eurymachus, son of Polybus, answered, \"It rests with heaven to decide who shall be chief among us, but you shall be master in your own house and over your own possessions; no one while there is a man in Ithaca shall do you violence nor rob you. And now, my good fellow, I want to know about this stranger. What country does he come from? Of what family is he, and where is his estate? Has he brought you news about the return of your father, or was he on business of his own? He seemed a well-to-do man, but he hurried off so suddenly that he was gone in a moment before we could get to know him.\"\n\n\"My father is dead and gone,\" answered Telemachus, \"and even if some rumour reaches me I put no more faith in it now. My mother does indeed sometimes send for a soothsayer and question him, but I give his prophecyings no heed. As for the stranger, he was Mentes, son of Anchialus, chief of the Taphians, an old friend of my father's.\" But in his heart he knew that it had been the goddess.\n\nThe suitors then returned to their singing and dancing until the evening; but when night fell upon their pleasuring they went home to bed each in his own abode. Telemachus's room was high up in a tower that looked on to the outer court; hither, then, he hied, brooding and full of thought. A good old woman, Euryclea, daughter of Ops, the son of Pisenor, went before him with a couple of blazing torches. Laertes had bought her with his own money when she was quite young; he gave the worth of twenty oxen for her, and shewed as much respect to her in his household as he did to his own wedded wife, but he did not take her to his bed for he feared his wife's resentment. She it was who now lighted Telemachus to his room, and she loved him better than any of the other women in the house did, for she had nursed him when he was a baby. He opened the door of his bed room and sat down upon the bed; as he took off his shirt he gave it to the good old woman, who folded it tidily up, and hung it for him over a peg by his bed side, after which she went out, pulled the door to by a silver catch, and drew the bolt home by means of the strap. But Telemachus as he lay covered with a woollen fleece kept thinking all night through of his intended voyage of the counsel that Minerva had given him.\n\nBook II\n\nNow when the child of morning, rosy-fingered Dawn, appeared, Telemachus rose and dressed himself. He bound his sandals on to his comely feet, girded his sword about his shoulder, and left his room looking like an immortal god. He at once sent the criers round to call the people in assembly, so they called them and the people gathered thereon; then, when they were got together, he went to the place of assembly spear in hand- not alone, for his two hounds went with him. Minerva endowed him with a presence of such divine comeliness that all marvelled at him as he went by, and when he took his place' in his father's seat even the oldest councillors made way for him.\n\nAegyptius, a man bent double with age, and of infinite experience, the first to speak His son Antiphus had gone with Ulysses to Ilius, land of noble steeds, but the savage Cyclops had killed him when they were all shut up in the cave, and had cooked his last dinner for him, He had three sons left, of whom two still worked on their father's land, while the third, Eurynomus, was one of the suitors; nevertheless their father could not get over the loss of Antiphus, and was still weeping for him when he began his speech.\n\n\"Men of Ithaca,\" he said, \"hear my words. From the day Ulysses left us there has been no meeting of our councillors until now; who then can it be, whether old or young, that finds it so necessary to convene us? Has he got wind of some host approaching, and does he wish to warn us, or would he speak upon some other matter of public moment? I am sure he is an excellent person, and I hope Jove will grant him his heart's desire.\"\n\nTelemachus took this speech as of good omen and rose at once, for he was bursting with what he had to say. He stood in the middle of the assembly and the good herald Pisenor brought him his staff. Then, turning to Aegyptius, \"Sir,\" said he, \"it is I, as you will shortly learn, who have convened you, for it is I who am the most aggrieved. I have not got wind of any host approaching about which I would warn you, nor is there any matter of public moment on which I would speak. My grieveance is purely personal, and turns on two great misfortunes which have fallen upon my house. The first of these is the loss of my excellent father, who was chief among all you here present, and was like a father to every one of you; the second is much more serious, and ere long will be the utter ruin of my estate. The sons of all the chief men among you are pestering my mother to marry them against her will. They are afraid to go to her father Icarius, asking him to choose the one he likes best, and to provide marriage gifts for his daughter, but day by day they keep hanging about my father's house, sacrificing our oxen, sheep, and fat goats for their banquets, and never giving so much as a thought to the quantity of wine they drink. No estate can stand such recklessness; we have now no Ulysses to ward off harm from our doors, and I cannot hold my own against them. I shall never all my days be as good a man as he was, still I would indeed defend myself if I had power to do so, for I cannot stand such treatment any longer; my house is being disgraced and ruined. Have respect, therefore, to your own consciences and to public opinion. Fear, too, the wrath of heaven, lest the gods should be displeased and turn upon you. I pray you by Jove and Themis, who is the beginning and the end of councils, [do not] hold back, my friends, and leave me singlehanded- unless it be that my brave father Ulysses did some wrong to the Achaeans which you would now avenge on me, by aiding and abetting these suitors. Moreover, if I am to be eaten out of house and home at all, I had rather you did the eating yourselves, for I could then take action against you to some purpose, and serve you with notices from house to house till I got paid in full, whereas now I have no remedy.\"\n\nWith this Telemachus dashed his staff to the ground and burst into tears. Every one was very sorry for him, but they all sat still and no one ventured to make him an angry answer, save only Antinous, who spoke thus:\n\n\"Telemachus, insolent braggart that you are, how dare you try to throw the blame upon us suitors? It is your mother's fault not ours, for she is a very artful woman. This three years past, and close on four, she has been driving us out of our minds, by encouraging each one of us, and sending him messages without meaning one word of what she says. And then there was that other trick she played us. She set up a great tambour frame in her room, and began to work on an enormous piece of fine needlework. 'Sweet hearts,' said she, 'Ulysses is indeed dead, still do not press me to marry again immediately, wait- for I would not have skill in needlework perish unrecorded- till I have completed a pall for the hero Laertes, to be in readiness against the time when death shall take him. He is very rich, and the women of the place will talk if he is laid out without a pall.'\n\n\"This was what she said, and we assented; whereon we could see her working on her great web all day long, but at night she would unpick the stitches again by torchlight. She fooled us in this way for three years and we never found her out, but as time wore on and she was now in her fourth year, one of her maids who knew what she was doing told us, and we caught her in the act of undoing her work, so she had to finish it whether she would or no. The suitors, therefore, make you this answer, that both you and the Achaeans may understand-'Send your mother away, and bid her marry the man of her own and of her father's choice'; for I do not know what will happen if she goes on plaguing us much longer with the airs she gives herself on the score of the accomplishments Minerva has taught her, and because she is so clever. We never yet heard of such a woman; we know all about Tyro, Alcmena, Mycene, and the famous women of old, but they were nothing to your mother, any one of them. It was not fair of her to treat us in that way, and as long as she continues in the mind with which heaven has now endowed her, so long shall we go on eating up your estate; and I do not see why she should change, for she gets all the honour and glory, and it is you who pay for it, not she. Understand, then, that we will not go back to our lands, neither here nor elsewhere, till she has made her choice and married some one or other of us.\"\n\nTelemachus answered, \"Antinous, how can I drive the mother who bore me from my father's house? My father is abroad and we do not know whether he is alive or dead. It will be hard on me if I have to pay Icarius the large sum which I must give him if I insist on sending his daughter back to him. Not only will he deal rigorously with me, but heaven will also punish me; for my mother when she leaves the house will calf on the Erinyes to avenge her; besides, it would not be a creditable thing to do, and I will have nothing to say to it. If you choose to take offence at this, leave the house and feast elsewhere at one another's houses at your own cost turn and turn about. If, on the other hand, you elect to persist in spunging upon one man, heaven help me, but Jove shall reckon with you in full, and when you fall in my father's house there shall be no man to avenge you.\"\n\nAs he spoke Jove sent two eagles from the top of the mountain, and they flew on and on with the wind, sailing side by side in their own lordly flight. When they were right over the middle of the assembly they wheeled and circled about, beating the air with their wings and glaring death into the eyes of them that were below; then, fighting fiercely and tearing at one another, they flew off towards the right over the town. The people wondered as they saw them, and asked each other what an this might be; whereon Halitherses, who was the best prophet and reader of omens among them, spoke to them plainly and in all honesty, saying:\n\n\"Hear me, men of Ithaca, and I speak more particularly to the suitors, for I see mischief brewing for them. Ulysses is not going to be away much longer; indeed he is close at hand to deal out death and destruction, not on them alone, but on many another of us who live in Ithaca. Let us then be wise in time, and put a stop to this wickedness before he comes. Let the suitors do so of their own accord; it will be better for them, for I am not prophesying without due knowledge; everything has happened to Ulysses as I foretold when the Argives set out for Troy, and he with them. I said that after going through much hardship and losing all his men he should come home again in the twentieth year and that no one would know him; and now all this is coming true.\"\n\nEurymachus son of Polybus then said, \"Go home, old man, and prophesy to your own children, or it may be worse for them. I can read these omens myself much better than you can; birds are always flying about in the sunshine somewhere or other, but they seldom mean anything. Ulysses has died in a far country, and it is a pity you are not dead along with him, instead of prating here about omens and adding fuel to the anger of Telemachus which is fierce enough as it is. I suppose you think he will give you something for your family, but I tell you- and it shall surely be- when an old man like you, who should know better, talks a young one over till he becomes troublesome, in the first place his young friend will only fare so much the worse- he will take nothing by it, for the suitors will prevent this- and in the next, we will lay a heavier fine, sir, upon yourself than you will at all like paying, for it will bear hardly upon you. As for Telemachus, I warn him in the presence of you all to send his mother back to her father, who will find her a husband and provide her with all the marriage gifts so dear a daughter may expect. Till we shall go on harassing him with our suit; for we fear no man, and care neither for him, with all his fine speeches, nor for any fortune-telling of yours. You may preach as much as you please, but we shall only hate you the more. We shall go back and continue to eat up Telemachus's estate without paying him, till such time as his mother leaves off tormenting us by keeping us day after day on the tiptoe of expectation, each vying with the other in his suit for a prize of such rare perfection. Besides we cannot go after the other women whom we should marry in due course, but for the way in which she treats us.\"\n\nThen Telemachus said, \"Eurymachus, and you other suitors, I shall say no more, and entreat you no further, for the gods and the people of Ithaca now know my story. Give me, then, a ship and a crew of twenty men to take me hither and thither, and I will go to Sparta and to Pylos in quest of my father who has so long been missing. Some one may tell me something, or (and people often hear things in this way) some heaven-sent message may direct me. If I can hear of him as alive and on his way home I will put up with the waste you suitors will make for yet another twelve months. If on the other hand I hear of his death, I will return at once, celebrate his funeral rites with all due pomp, build a barrow to his memory, and make my mother marry again.\"\n\nWith these words he sat down, and Mentor who had been a friend of Ulysses, and had been left in charge of everything with full authority over the servants, rose to speak. He, then, plainly and in all honesty addressed them thus:\n\n\"Hear me, men of Ithaca, I hope that you may never have a kind and well-disposed ruler any more, nor one who will govern you equitably; I hope that all your chiefs henceforward may be cruel and unjust, for there is not one of you but has forgotten Ulysses, who ruled you as though he were your father. I am not half so angry with the suitors, for if they choose to do violence in the naughtiness of their hearts, and wager their heads that Ulysses will not return, they can take the high hand and eat up his estate, but as for you others I am shocked at the way in which you all sit still without even trying to stop such scandalous goings on-which you could do if you chose, for you are many and they are few.\"\n\nLeiocritus, son of Evenor, answered him saying, \"Mentor, what folly is all this, that you should set the people to stay us? It is a hard thing for one man to fight with many about his victuals. Even though Ulysses himself were to set upon us while we are feasting in his house, and do his best to oust us, his wife, who wants him back so very badly, would have small cause for rejoicing, and his blood would be upon his own head if he fought against such great odds. There is no sense in what you have been saying. Now, therefore, do you people go about your business, and let his father's old friends, Mentor and Halitherses, speed this boy on his journey, if he goes at all- which I do not think he will, for he is more likely to stay where he is till some one comes and tells him something.\"\n\nOn this he broke up the assembly, and every man went back to his own abode, while the suitors returned to the house of Ulysses.\n\nThen Telemachus went all alone by the sea side, washed his hands in the grey waves, and prayed to Minerva.\n\n\"Hear me,\" he cried, \"you god who visited me yesterday, and bade me sail the seas in search of my father who has so long been missing. I would obey you, but the Achaeans, and more particularly the wicked suitors, are hindering me that I cannot do so.\"\n\nAs he thus prayed, Minerva came close up to him in the likeness and with the voice of Mentor. \"Telemachus,\" said she, \"if you are made of the same stuff as your father you will be neither fool nor coward henceforward, for Ulysses never broke his word nor left his work half done. If, then, you take after him, your voyage will not be fruitless, but unless you have the blood of Ulysses and of Penelope in your veins I see no likelihood of your succeeding. Sons are seldom as good men as their fathers; they are generally worse, not better; still, as you are not going to be either fool or coward henceforward, and are not entirely without some share of your father's wise discernment, I look with hope upon your undertaking. But mind you never make common cause with any of those foolish suitors, for they have neither sense nor virtue, and give no thought to death and to the doom that will shortly fall on one and all of them, so that they shall perish on the same day. As for your voyage, it shall not be long delayed; your father was such an old friend of mine that I will find you a ship, and will come with you myself. Now, however, return home, and go about among the suitors; begin getting provisions ready for your voyage; see everything well stowed, the wine in jars, and the barley meal, which is the staff of life, in leathern bags, while I go round the town and beat up volunteers at once. There are many ships in Ithaca both old and new; I will run my eye over them for you and will choose the best; we will get her ready and will put out to sea without delay.\"\n\nThus spoke Minerva daughter of Jove, and Telemachus lost no time in doing as the goddess told him. He went moodily and found the suitors flaying goats and singeing pigs in the outer court. Antinous came up to him at once and laughed as he took his hand in his own, saying, \"Telemachus, my fine fire-eater, bear no more ill blood neither in word nor deed, but eat and drink with us as you used to do. The Achaeans will find you in everything- a ship and a picked crew to boot- so that you can set sail for Pylos at once and get news of your noble father.\"\n\n\"Antinous,\" answered Telemachus, \"I cannot eat in peace, nor take pleasure of any kind with such men as you are. Was it not enough that you should waste so much good property of mine while I was yet a boy? Now that I am older and know more about it, I am also stronger, and whether here among this people, or by going to Pylos, I will do you all the harm I can. I shall go, and my going will not be in vain though, thanks to you suitors, I have neither ship nor crew of my own, and must be passenger not captain.\"\n\nAs he spoke he snatched his hand from that of Antinous. Meanwhile the others went on getting dinner ready about the buildings, jeering at him tauntingly as they did so.\n\n\"Telemachus,\" said one youngster, \"means to be the death of us; I suppose he thinks he can bring friends to help him from Pylos, or again from Sparta, where he seems bent on going. Or will he go to Ephyra as well, for poison to put in our wine and kill us?\"\n\nAnother said, \"Perhaps if Telemachus goes on board ship, he will be like his father and perish far from his friends. In this case we should have plenty to do, for we could then divide up his property amongst us: as for the house we can let his mother and the man who marries her have that.\"\n\nThis was how they talked. But Telemachus went down into the lofty and spacious store-room where his father's treasure of gold and bronze lay heaped up upon the floor, and where the linen and spare clothes were kept in open chests. Here, too, there was a store of fragrant olive oil, while casks of old, well-ripened wine, unblended and fit for a god to drink, were ranged against the wall in case Ulysses should come home again after all. The room was closed with well-made doors opening in the middle; moreover the faithful old house-keeper Euryclea, daughter of Ops the son of Pisenor, was in charge of everything both night and day. Telemachus called her to the store-room and said:\n\n\"Nurse, draw me off some of the best wine you have, after what you are keeping for my father's own drinking, in case, poor man, he should escape death, and find his way home again after all. Let me have twelve jars, and see that they all have lids; also fill me some well-sewn leathern bags with barley meal- about twenty measures in all. Get these things put together at once, and say nothing about it. I will take everything away this evening as soon as my mother has gone upstairs for the night. I am going to Sparta and to Pylos to see if I can hear anything about the return of my dear father.\n\nWhen Euryclea heard this she began to cry, and spoke fondly to him, saying, \"My dear child, what ever can have put such notion as that into your head? Where in the world do you want to go to- you, who are the one hope of the house? Your poor father is dead and gone in some foreign country nobody knows where, and as soon as your back is turned these wicked ones here will be scheming to get you put out of the way, and will share all your possessions among themselves; stay where you are among your own people, and do not go wandering and worrying your life out on the barren ocean.\"\n\n\"Fear not, nurse,\" answered Telemachus, \"my scheme is not without heaven's sanction; but swear that you will say nothing about all this to my mother, till I have been away some ten or twelve days, unless she hears of my having gone, and asks you; for I do not want her to spoil her beauty by crying.\"\n\nThe old woman swore most solemnly that she would not, and when she had completed her oath, she began drawing off the wine into jars, and getting the barley meal into the bags, while Telemachus went back to the suitors.\n\nThen Minerva bethought her of another matter. She took his shape, and went round the town to each one of the crew, telling them to meet at the ship by sundown. She went also to Noemon son of Phronius, and asked him to let her have a ship- which he was very ready to do. When the sun had set and darkness was over all the land, she got the ship into the water, put all the tackle on board her that ships generally carry, and stationed her at the end of the harbour. Presently the crew came up, and the goddess spoke encouragingly to each of them.\n\nFurthermore she went to the house of Ulysses, and threw the suitors into a deep slumber. She caused their drink to fuddle them, and made them drop their cups from their hands, so that instead of sitting over their wine, they went back into the town to sleep, with their eyes heavy and full of drowsiness. Then she took the form and voice of Mentor, and called Telemachus to come outside.\n\n\"Telemachus,\" said she, \"the men are on board and at their oars, waiting for you to give your orders, so make haste and let us be off.\"\n\nOn this she led the way, while Telemachus followed in her steps. When they got to the ship they found the crew waiting by the water side, and Telemachus said, \"Now my men, help me to get the stores on board; they are all put together in the cloister, and my mother does not know anything about it, nor any of the maid servants except one.\"\n\nWith these words he led the way and the others followed after. When they had brought the things as he told them, Telemachus went on board, Minerva going before him and taking her seat in the stern of the vessel, while Telemachus sat beside her. Then the men loosed the hawsers and took their places on the benches. Minerva sent them a fair wind from the West, that whistled over the deep blue waves whereon Telemachus told them to catch hold of the ropes and hoist sail, and they did as he told them. They set the mast in its socket in the cross plank, raised it, and made it fast with the forestays; then they hoisted their white sails aloft with ropes of twisted ox hide. As the sail bellied out with the wind, the ship flew through the deep blue water, and the foam hissed against her bows as she sped onward. Then they made all fast throughout the ship, filled the mixing-bowls to the brim, and made drink offerings to the immortal gods that are from everlasting, but more particularly to the grey-eyed daughter of Jove.\n\nThus, then, the ship sped on her way through the watches of the night from dark till dawn.\n\nBook III\n\nBut as the sun was rising from the fair sea into the firmament of heaven to shed light on mortals and immortals, they reached Pylos the city of Neleus. Now the people of Pylos were gathered on the sea shore to offer sacrifice of black bulls to Neptune lord of the Earthquake. There were nine guilds with five hundred men in each, and there were nine bulls to each guild. As they were eating the inward meats and burning the thigh bones [on the embers] in the name of Neptune, Telemachus and his crew arrived, furled their sails, brought their ship to anchor, and went ashore.\n\nMinerva led the way and Telemachus followed her. Presently she said, \"Telemachus, you must not be in the least shy or nervous; you have taken this voyage to try and find out where your father is buried and how he came by his end; so go straight up to Nestor that we may see what he has got to tell us. Beg of him to speak the truth, and he will tell no lies, for he is an excellent person.\"\n\n\"But how, Mentor,\" replied Telemachus, \"dare I go up to Nestor, and how am I to address him? I have never yet been used to holding long conversations with people, and am ashamed to begin questioning one who is so much older than myself.\"\n\n\"Some things, Telemachus,\" answered Minerva, \"will be suggested to you by your own instinct, and heaven will prompt you further; for I am assured that the gods have been with you from the time of your birth until now.\"\n\nShe then went quickly on, and Telemachus followed in her steps till they reached the place where the guilds of the Pylian people were assembled. There they found Nestor sitting with his sons, while his company round him were busy getting dinner ready, and putting pieces of meat on to the spits while other pieces were cooking. When they saw the strangers they crowded round them, took them by the hand and bade them take their places. Nestor's son Pisistratus at once offered his hand to each of them, and seated them on some soft sheepskins that were lying on the sands near his father and his brother Thrasymedes. Then he gave them their portions of the inward meats and poured wine for them into a golden cup, handing it to Minerva first, and saluting her at the same time.\n\n\"Offer a prayer, sir,\" said he, \"to King Neptune, for it is his feast that you are joining; when you have duly prayed and made your drink-offering, pass the cup to your friend that he may do so also. I doubt not that he too lifts his hands in prayer, for man cannot live without God in the world. Still he is younger than you are, and is much of an age with myself, so I he handed I will give you the precedence.\"\n\nAs he spoke he handed her the cup. Minerva thought it very right and proper of him to have given it to herself first; she accordingly began praying heartily to Neptune. \"O thou,\" she cried, \"that encirclest the earth, vouchsafe to grant the prayers of thy servants that call upon thee. More especially we pray thee send down thy grace on Nestor and on his sons; thereafter also make the rest of the Pylian people some handsome return for the goodly hecatomb they are offering you. Lastly, grant Telemachus and myself a happy issue, in respect of the matter that has brought us in our to Pylos.\"\n\nWhen she had thus made an end of praying, she handed the cup to Telemachus and he prayed likewise. By and by, when the outer meats were roasted and had been taken off the spits, the carvers gave every man his portion and they all made an excellent dinner. As soon as they had had enough to eat and drink, Nestor, knight of Gerene, began to speak.\n\n\"Now,\" said he, \"that our guests have done their dinner, it will be best to ask them who they are. Who, then, sir strangers, are you, and from what port have you sailed? Are you traders? or do you sail the seas as rovers with your hand against every man, and every man's hand against you?\"\n\nTelemachus answered boldly, for Minerva had given him courage to ask about his father and get himself a good name.\n\n\"Nestor,\" said he, \"son of Neleus, honour to the Achaean name, you ask whence we come, and I will tell you. We come from Ithaca under Neritum, and the matter about which I would speak is of private not public import. I seek news of my unhappy father Ulysses, who is said to have sacked the town of Troy in company with yourself. We know what fate befell each one of the other heroes who fought at Troy, but as regards Ulysses heaven has hidden from us the knowledge even that he is dead at all, for no one can certify us in what place he perished, nor say whether he fell in battle on the mainland, or was lost at sea amid the waves of Amphitrite. Therefore I am suppliant at your knees, if haply you may be pleased to tell me of his melancholy end, whether you saw it with your own eyes, or heard it from some other traveller, for he was a man born to trouble. Do not soften things out of any pity for me, but tell me in all plainness exactly what you saw. If my brave father Ulysses ever did you loyal service, either by word or deed, when you Achaeans were harassed among the Trojans, bear it in mind now as in my favour and tell me truly all.\"\n\n\"My friend,\" answered Nestor, \"you recall a time of much sorrow to my mind, for the brave Achaeans suffered much both at sea, while privateering under Achilles, and when fighting before the great city of king Priam. Our best men all of them fell there- Ajax, Achilles, Patroclus peer of gods in counsel, and my own dear son Antilochus, a man singularly fleet of foot and in fight valiant. But we suffered much more than this; what mortal tongue indeed could tell the whole story? Though you were to stay here and question me for five years, or even six, I could not tell you all that the Achaeans suffered, and you would turn homeward weary of my tale before it ended. Nine long years did we try every kind of stratagem, but the hand of heaven was against us; during all this time there was no one who could compare with your father in subtlety- if indeed you are his son- I can hardly believe my eyes- and you talk just like him too- no one would say that people of such different ages could speak so much alike. He and I never had any kind of difference from first to last neither in camp nor council, but in singleness of heart and purpose we advised the Argives how all might be ordered for the best.\n\n\"When however, we had sacked the city of Priam, and were setting sail in our ships as heaven had dispersed us, then Jove saw fit to vex the Argives on their homeward voyage; for they had Not all been either wise or understanding, and hence many came to a bad end through the displeasure of Jove's daughter Minerva, who brought about a quarrel between the two sons of Atreus.\n\n\"The sons of Atreus called a meeting which was not as it should be, for it was sunset and the Achaeans were heavy with wine. When they explained why they had called- the people together, it seemed that Menelaus was for sailing homeward at once, and this displeased Agamemnon, who thought that we should wait till we had offered hecatombs to appease the anger of Minerva. Fool that he was, he might have known that he would not prevail with her, for when the gods have made up their minds they do not change them lightly. So the two stood bandying hard words, whereon the Achaeans sprang to their feet with a cry that rent the air, and were of two minds as to what they should do.\n\n\"That night we rested and nursed our anger, for Jove was hatching mischief against us. But in the morning some of us drew our ships into the water and put our goods with our women on board, while the rest, about half in number, stayed behind with Agamemnon. We- the other half- embarked and sailed; and the ships went well, for heaven had smoothed the sea. When we reached Tenedos we offered sacrifices to the gods, for we were longing to get home; cruel Jove, however, did not yet mean that we should do so, and raised a second quarrel in the course of which some among us turned their ships back again, and sailed away under Ulysses to make their peace with Agamemnon; but I, and all the ships that were with me pressed forward, for I saw that mischief was brewing. The son of Tydeus went on also with me, and his crews with him. Later on Menelaus joined us at Lesbos, and found us making up our minds about our course- for we did not know whether to go outside Chios by the island of Psyra, keeping this to our left, or inside Chios, over against the stormy headland of Mimas. So we asked heaven for a sign, and were shown one to the effect that we should be soonest out of danger if we headed our ships across the open sea to Euboea. This we therefore did, and a fair wind sprang up which gave us a quick passage during the night to Geraestus, where we offered many sacrifices to Neptune for having helped us so far on our way. Four days later Diomed and his men stationed their ships in Argos, but I held on for Pylos, and the wind never fell light from the day when heaven first made it fair for me.\n\n\"Therefore, my dear young friend, I returned without hearing anything about the others. I know neither who got home safely nor who were lost but, as in duty bound, I will give you without reserve the reports that have reached me since I have been here in my own house. They say the Myrmidons returned home safely under Achilles' son Neoptolemus; so also did the valiant son of Poias, Philoctetes. Idomeneus, again, lost no men at sea, and all his followers who escaped death in the field got safe home with him to Crete. No matter how far out of the world you live, you will have heard of Agamemnon and the bad end he came to at the hands of Aegisthus- and a fearful reckoning did Aegisthus presently pay. See what a good thing it is for a man to leave a son behind him to do as Orestes did, who killed false Aegisthus the murderer of his noble father. You too, then- for you are a tall, smart-looking fellow- show your mettle and make yourself a name in story.\"\n\n\"Nestor son of Neleus,\" answered Telemachus, \"honour to the Achaean name, the Achaeans applaud Orestes and his name will live through all time for he has avenged his father nobly. Would that heaven might grant me to do like vengeance on the insolence of the wicked suitors, who are ill treating me and plotting my ruin; but the gods have no such happiness in store for me and for my father, so we must bear it as best we may.\"\n\n\"My friend,\" said Nestor, \"now that you remind me, I remember to have heard that your mother has many suitors, who are ill disposed towards you and are making havoc of your estate. Do you submit to this tamely, or are public feeling and the voice of heaven against you? Who knows but what Ulysses may come back after all, and pay these scoundrels in full, either single-handed or with a force of Achaeans behind him? If Minerva were to take as great a liking to you as she did to Ulysses when we were fighting before Troy (for I never yet saw the gods so openly fond of any one as Minerva then was of your father), if she would take as good care of you as she did of him, these wooers would soon some of them him, forget their wooing.\"\n\nTelemachus answered, \"I can expect nothing of the kind; it would be far too much to hope for. I dare not let myself think of it. Even though the gods themselves willed it no such good fortune could befall me.\"\n\nOn this Minerva said, \"Telemachus, what are you talking about? Heaven has a long arm if it is minded to save a man; and if it were me, I should not care how much I suffered before getting home, provided I could be safe when I was once there. I would rather this, than get home quickly, and then be killed in my own house as Agamemnon was by the treachery of Aegisthus and his wife. Still, death is certain, and when a man's hour is come, not even the gods can save him, no matter how fond they are of him.\"\n\n\"Mentor,\" answered Telemachus, \"do not let us talk about it any more. There is no chance of my father's ever coming back; the gods have long since counselled his destruction. There is something else, however, about which I should like to ask Nestor, for he knows much more than any one else does. They say he has reigned for three generations so that it is like talking to an immortal. Tell me, therefore, Nestor, and tell me true; how did Agamemnon come to die in that way? What was Menelaus doing? And how came false Aegisthus to kill so far better a man than himself? Was Menelaus away from Achaean Argos, voyaging elsewhither among mankind, that Aegisthus took heart and killed Agamemnon?\"\n\n\"I will tell you truly,\" answered Nestor, \"and indeed you have yourself divined how it all happened. If Menelaus when he got back from Troy had found Aegisthus still alive in his house, there would have been no barrow heaped up for him, not even when he was dead, but he would have been thrown outside the city to dogs and vultures, and not a woman would have mourned him, for he had done a deed of great wickedness; but we were over there, fighting hard at Troy, and Aegisthus who was taking his ease quietly in the heart of Argos, cajoled Agamemnon's wife Clytemnestra with incessant flattery.\n\n\"At first she would have nothing to do with his wicked scheme, for she was of a good natural disposition; moreover there was a bard with her, to whom Agamemnon had given strict orders on setting out for Troy, that he was to keep guard over his wife; but when heaven had counselled her destruction, Aegisthus thus this bard off to a desert island and left him there for crows and seagulls to batten upon- after which she went willingly enough to the house of Aegisthus. Then he offered many burnt sacrifices to the gods, and decorated many temples with tapestries and gilding, for he had succeeded far beyond his expectations.\n\n\"Meanwhile Menelaus and I were on our way home from Troy, on good terms with one another. When we got to Sunium, which is the point of Athens, Apollo with his painless shafts killed Phrontis the steersman of Menelaus' ship (and never man knew better how to handle a vessel in rough weather) so that he died then and there with the helm in his hand, and Menelaus, though very anxious to press forward, had to wait in order to bury his comrade and give him his due funeral rites. Presently, when he too could put to sea again, and had sailed on as far as the Malean heads, Jove counselled evil against him and made it it blow hard till the waves ran mountains high. Here he divided his fleet and took the one half towards Crete where the Cydonians dwell round about the waters of the river Iardanus. There is a high headland hereabouts stretching out into the sea from a place called Gortyn, and all along this part of the coast as far as Phaestus the sea runs high when there is a south wind blowing, but arter Phaestus the coast is more protected, for a small headland can make a great shelter. Here this part of the fleet was driven on to the rocks and wrecked; but the crews just managed to save themselves. As for the other five ships, they were taken by winds and seas to Egypt, where Menelaus gathered much gold and substance among people of an alien speech. Meanwhile Aegisthus here at home plotted his evil deed. For seven years after he had killed Agamemnon he ruled in Mycene, and the people were obedient under him, but in the eighth year Orestes came back from Athens to be his bane, and killed the murderer of his father. Then he celebrated the funeral rites of his mother and of false Aegisthus by a banquet to the people of Argos, and on that very day Menelaus came home, with as much treasure as his ships could carry.\n\n\"Take my advice then, and do not go travelling about for long so far from home, nor leave your property with such dangerous people in your house; they will eat up everything you have among them, and you will have been on a fool's errand. Still, I should advise you by all means to go and visit Menelaus, who has lately come off a voyage among such distant peoples as no man could ever hope to get back from, when the winds had once carried him so far out of his reckoning; even birds cannot fly the distance in a twelvemonth, so vast and terrible are the seas that they must cross. Go to him, therefore, by sea, and take your own men with you; or if you would rather travel by land you can have a chariot, you can have horses, and here are my sons who can escort you to Lacedaemon where Menelaus lives. Beg of him to speak the truth, and he will tell you no lies, for he is an excellent person.\"\n\nAs he spoke the sun set and it came on dark, whereon Minerva said, \"Sir, all that you have said is well; now, however, order the tongues of the victims to be cut, and mix wine that we may make drink-offerings to Neptune, and the other immortals, and then go to bed, for it is bed time. People should go away early and not keep late hours at a religious festival.\"\n\nThus spoke the daughter of Jove, and they obeyed her saying. Men servants poured water over the hands of the guests, while pages filled the mixing-bowls with wine and water, and handed it round after giving every man his drink-offering; then they threw the tongues of the victims into the fire, and stood up to make their drink-offerings. When they had made their offerings and had drunk each as much as he was minded, Minerva and Telemachus were forgoing on board their ship, but Nestor caught them up at once and stayed them.\n\n\"Heaven and the immortal gods,\" he exclaimed, \"forbid that you should leave my house to go on board of a ship. Do you think I am so poor and short of clothes, or that I have so few cloaks and as to be unable to find comfortable beds both for myself and for my guests? Let me tell you I have store both of rugs and cloaks, and shall not permit the son of my old friend Ulysses to camp down on the deck of a ship- not while I live- nor yet will my sons after me, but they will keep open house as have done.\"\n\nThen Minerva answered, \"Sir, you have spoken well, and it will be much better that Telemachus should do as you have said; he, therefore, shall return with you and sleep at your house, but I must go back to give orders to my crew, and keep them in good heart. I am the only older person among them; the rest are all young men of Telemachus' own age, who have taken this voyage out of friendship; so I must return to the ship and sleep there. Moreover to-morrow I must go to the Cauconians where I have a large sum of money long owing to me. As for Telemachus, now that he is your guest, send him to Lacedaemon in a chariot, and let one of your sons go with him. Be pleased also to provide him with your best and fleetest horses.\"\n\nWhen she had thus spoken, she flew away in the form of an eagle, and all marvelled as they beheld it. Nestor was astonished, and took Telemachus by the hand. \"My friend,\" said he, \"I see that you are going to be a great hero some day, since the gods wait upon you thus while you are still so young. This can have been none other of those who dwell in heaven than Jove's redoubtable daughter, the Trito-born, who showed such favour towards your brave father among the Argives.\" \"Holy queen,\" he continued, \"vouchsafe to send down thy grace upon myself, my good wife, and my children. In return, I will offer you in sacrifice a broad-browed heifer of a year old, unbroken, and never yet brought by man under the yoke. I will gild her horns, and will offer her up to you in sacrifice.\"\n\nThus did he pray, and Minerva heard his prayer. He then led the way to his own house, followed by his sons and sons-in-law. When they had got there and had taken their places on the benches and seats, he mixed them a bowl of sweet wine that was eleven years old when the housekeeper took the lid off the jar that held it. As he mixed the wine, he prayed much and made drink-offerings to Minerva, daughter of Aegis-bearing Jove. Then, when they had made their drink-offerings and had drunk each as much as he was minded, the others went home to bed each in his own abode; but Nestor put Telemachus to sleep in the room that was over the gateway along with Pisistratus, who was the only unmarried son now left him. As for himself, he slept in an inner room of the house, with the queen his wife by his side.\n\nNow when the child of morning, rosy-fingered Dawn, appeared, Nestor left his couch and took his seat on the benches of white and polished marble that stood in front of his house. Here aforetime sat Neleus, peer of gods in counsel, but he was now dead, and had gone to the house of Hades; so Nestor sat in his seat, sceptre in hand, as guardian of the public weal. His sons as they left their rooms gathered round him, Echephron, Stratius, Perseus, Aretus, and Thrasymedes; the sixth son was Pisistratus, and when Telemachus joined them they made him sit with them. Nestor then addressed them.\n\n\"My sons,\" said he, \"make haste to do as I shall bid you. I wish first and foremost to propitiate the great goddess Minerva, who manifested herself visibly to me during yesterday's festivities. Go, then, one or other of you to the plain, tell the stockman to look me out a heifer, and come on here with it at once. Another must go to Telemachus's ship, and invite all the crew, leaving two men only in charge of the vessel. Some one else will run and fetch Laerceus the goldsmith to gild the horns of the heifer. The rest, stay all of you where you are; tell the maids in the house to prepare an excellent dinner, and to fetch seats, and logs of wood for a burnt offering. Tell them also- to bring me some clear spring water.\"\n\nOn this they hurried off on their several errands. The heifer was brought in from the plain, and Telemachus's crew came from the ship; the goldsmith brought the anvil, hammer, and tongs, with which he worked his gold, and Minerva herself came to the sacrifice. Nestor gave out the gold, and the smith gilded the horns of the heifer that the goddess might have pleasure in their beauty. Then Stratius and Echephron brought her in by the horns; Aretus fetched water from the house in a ewer that had a flower pattern on it, and in his other hand he held a basket of barley meal; sturdy Thrasymedes stood by with a sharp axe, ready to strike the heifer, while Perseus held a bucket. Then Nestor began with washing his hands and sprinkling the barley meal, and he offered many a prayer to Minerva as he threw a lock from the heifer's head upon the fire.\n\nWhen they had done praying and sprinkling the barley meal Thrasymedes dealt his blow, and brought the heifer down with a stroke that cut through the tendons at the base of her neck, whereon the daughters and daughters-in-law of Nestor, and his venerable wife Eurydice (she was eldest daughter to Clymenus) screamed with delight. Then they lifted the heifer's head from off the ground, and Pisistratus cut her throat. When she had done bleeding and was quite dead, they cut her up. They cut out the thigh bones all in due course, wrapped them round in two layers of fat, and set some pieces of raw meat on the top of them; then Nestor laid them upon the wood fire and poured wine over them, while the young men stood near him with five-pronged spits in their hands. When the thighs were burned and they had tasted the inward meats, they cut the rest of the meat up small, put the pieces on the spits and toasted them over the fire.\n\nMeanwhile lovely Polycaste, Nestor's youngest daughter, washed Telemachus. When she had washed him and anointed him with oil, she brought him a fair mantle and shirt, and he looked like a god as he came from the bath and took his seat by the side of Nestor. When the outer meats were done they drew them off the spits and sat down to dinner where they were waited upon by some worthy henchmen, who kept pouring them out their wine in cups of gold. As soon as they had had had enough to eat and drink Nestor said, \"Sons, put Telemachus's horses to the chariot that he may start at once.\"\n\nThus did he speak, and they did even as he had said, and yoked the fleet horses to the chariot. The housekeeper packed them up a provision of bread, wine, and sweetmeats fit for the sons of princes. Then Telemachus got into the chariot, while Pisistratus gathered up the reins and took his seat beside him. He lashed the horses on and they flew forward nothing loth into the open country, leaving the high citadel of Pylos behind them. All that day did they travel, swaying the yoke upon their necks till the sun went down and darkness was over all the land. Then they reached Pherae where Diocles lived, who was son to Ortilochus and grandson to Alpheus. Here they passed the night and Diocles entertained them hospitably. When the child of morning, rosy-fingered Dawn; appeared, they again yoked their horses and drove out through the gateway under the echoing gatehouse. Pisistratus lashed the horses on and they flew forward nothing loth; presently they came to the corn lands Of the open country, and in the course of time completed their journey, so well did their steeds take them.\n\nNow when the sun had set and darkness was over the land.\n",
      "timestamp": "2015-01-11T16:59:33.022Z"
    }
  ],
  "stubs": [
    {
      "responses": [
        {
          "is": {
            "data": "HTTP/1.1 200 OK\nTransfer-Encoding:chunked\n\n"
          }
        }
      ],
      "matches": [
        {
          "timestamp": "2015-09-07T22:34:57.429Z",
          "request": {
            "requestFrom": "::1:60590",
            "data": "POST / HTTP/1.1\nHost: localhost:4545\nContent-Length: 68134\nContent-Type: text/plain\n\nBook I\n\nTell me, O muse, of that ingenious hero who travelled far and wide after he had sacked the famous town of Troy. Many cities did he visit, and many were the nations with whose manners and customs he was acquainted; moreover he suffered much by sea while trying to save his own life and bring his men safely home; but do what he might he could not save his men, for they perished through their own sheer folly in eating the cattle of the Sun-god Hyperion; so the god prevented them from ever reaching home. Tell me, too, about all these things, O daughter of Jove, from whatsoever source you may know them.\n\nSo now all who escaped death in battle or by shipwreck had got safely home except Ulysses, and he, though he was longing to return to his wife and country, was detained by the goddess Calypso, who had got him into a large cave and wanted to marry him. But as years went by, there came a time when the gods settled that he should go back to Ithaca; even then, however, when he was among his own people, his troubles were not yet over; nevertheless all the gods had now begun to pity him except Neptune, who still persecuted him without ceasing and would not let him get home.\n\nNow Neptune had gone off to the Ethiopians, who are at the world's end, and lie in two halves, the one looking West and the other East. He had gone there to accept a hecatomb of sheep and oxen, and was enjoying himself at his festival; but the other gods met in the house of Olympian Jove, and the sire of gods and men spoke first. At that moment he was thinking of Aegisthus, who had been killed by Agamemnon's son Orestes; so he said to the other gods:\n\n\"See now, how men lay blame upon us gods for what is after all nothing but their own folly. Look at Aegisthus; he must needs make love to Agamemnon's wife unrighteously and then kill Agamemnon, though he knew it would be the death of him; for I sent Mercury to warn him not to do either of these things, inasmuch as Orestes would be sure to take his revenge when he grew up and wanted to return home. Mercury told him this in all good will but he would not listen, and now he has paid for everything in full.\"\n\nThen Minerva said, \"Father, son of Saturn, King of kings, it served Aegisthus right, and so it would any one else who does as he did; but Aegisthus is neither here nor there; it is for Ulysses that my heart bleeds, when I think of his sufferings in that lonely sea-girt island, far away, poor man, from all his friends. It is an island covered with forest, in the very middle of the sea, and a goddess lives there, daughter of the magician Atlas, who looks after the bottom of the ocean, and carries the great columns that keep heaven and earth asunder. This daughter of Atlas has got hold of poor unhappy Ulysses, and keeps trying by every kind of blandishment to make him forget his home, so that he is tired of life, and thinks of nothing but how he may once more see the smoke of his own chimneys. You, sir, take no heed of this, and yet when Ulysses was before Troy did he not propitiate you with many a burnt sacrifice? Why then should you keep on being so angry with him?\"\n\nAnd Jove said, \"My child, what are you talking about? How can I forget Ulysses than whom there is no more capable man on earth, nor more liberal in his offerings to the immortal gods that live in heaven? Bear in mind, however, that Neptune is still furious with Ulysses for having blinded an eye of Polyphemus king of the Cyclopes. Polyphemus is son to Neptune by the nymph Thoosa, daughter to the sea-king Phorcys; therefore though he will not kill Ulysses outright, he torments him by preventing him from getting home. Still, let us lay our heads together and see how we can help him to return; Neptune will then be pacified, for if we are all of a mind he can hardly stand out against us.\"\n\nAnd Minerva said, \"Father, son of Saturn, King of kings, if, then, the gods now mean that Ulysses should get home, we should first send Mercury to the Ogygian island to tell Calypso that we have made up our minds and that he is to return. In the meantime I will go to Ithaca, to put heart into Ulysses' son Telemachus; I will embolden him to call the Achaeans in assembly, and speak out to the suitors of his mother Penelope, who persist in eating up any number of his sheep and oxen; I will also conduct him to Sparta and to Pylos, to see if he can hear anything about the return of his dear father- for this will make people speak well of him.\"\n\nSo saying she bound on her glittering golden sandals, imperishable, with which she can fly like the wind over land or sea; she grasped the redoubtable bronze-shod spear, so stout and sturdy and strong, wherewith she quells the ranks of heroes who have displeased her, and down she darted from the topmost summits of Olympus, whereon forthwith she was in Ithaca, at the gateway of Ulysses' house, disguised as a visitor, Mentes, chief of the Taphians, and she held a bronze spear in her hand. There she found the lordly suitors seated on hides of the oxen which they had killed and eaten, and playing draughts in front of the house. Men-servants and pages were bustling about to wait upon them, some mixing wine with water in the mixing-bowls, some cleaning down the tables with wet sponges and laying them out again, and some cutting up great quantities of meat.\n\nTelemachus saw her long before any one else did. He was sitting moodily among the suitors thinking about his brave father, and how he would send them flying out of the house, if he were to come to his own again and be honoured as in days gone by. Thus brooding as he sat among them, he caught sight of Minerva and went straight to the gate, for he was vexed that a stranger should be kept waiting for admittance. He took her right hand in his own, and bade her give him her spear. \"Welcome,\" said he, \"to our house, and when you have partaken of food you shall tell us what you have come for.\"\n\nHe led the way as he spoke, and Minerva followed him. When they were within he took her spear and set it in the spear- stand against a strong bearing-post along with the many other spears of his unhappy father, and he conducted her to a richly decorated seat under which he threw a cloth of damask. There was a footstool also for her feet, and he set another seat near her for himself, away from the suitors, that she might not be annoyed while eating by their noise and insolence, and that he might ask her more freely about his father.\n\nA maid servant then brought them water in a beautiful golden ewer and poured it into a silver basin for them to wash their hands, and she drew a clean table beside them. An upper servant brought them bread, and offered them many good things of what there was in the house, the carver fetched them plates of all manner of meats and set cups of gold by their side, and a man-servant brought them wine and poured it out for them.\n\nThen the suitors came in and took their places on the benches and seats. Forthwith men servants poured water over their hands, maids went round with the bread-baskets, pages filled the mixing-bowls with wine and water, and they laid their hands upon the good things that were before them. As soon as they had had enough to eat and drink they wanted music and dancing, which are the crowning embellishments of a banquet, so a servant brought a lyre to Phemius, whom they compelled perforce to sing to them. As soon as he touched his lyre and began to sing Telemachus spoke low to Minerva, with his head close to hers that no man might hear.\n\n\"I hope, sir,\" said he, \"that you will not be offended with what I am going to say. Singing comes cheap to those who do not pay for it, and all this is done at the cost of one whose bones lie rotting in some wilderness or grinding to powder in the surf. If these men were to see my father come back to Ithaca they would pray for longer legs rather than a longer purse, for money would not serve them; but he, alas, has fallen on an ill fate, and even when people do sometimes say that he is coming, we no longer heed them; we shall never see him again. And now, sir, tell me and tell me true, who you are and where you come from. Tell me of your town and parents, what manner of ship you came in, how your crew brought you to Ithaca, and of what nation they declared themselves to be- for you cannot have come by land. Tell me also truly, for I want to know, are you a stranger to this house, or have you been here in my father's time? In the old days we had many visitors for my father went about much himself.\"\n\nAnd Minerva answered, \"I will tell you truly and particularly all about it. I am Mentes, son of Anchialus, and I am King of the Taphians. I have come here with my ship and crew, on a voyage to men of a foreign tongue being bound for Temesa with a cargo of iron, and I shall bring back copper. As for my ship, it lies over yonder off the open country away from the town, in the harbour Rheithron under the wooded mountain Neritum. Our fathers were friends before us, as old Laertes will tell you, if you will go and ask him. They say, however, that he never comes to town now, and lives by himself in the country, faring hardly, with an old woman to look after him and get his dinner for him, when he comes in tired from pottering about his vineyard. They told me your father was at home again, and that was why I came, but it seems the gods are still keeping him back, for he is not dead yet not on the mainland. It is more likely he is on some sea-girt island in mid ocean, or a prisoner among savages who are detaining him against his will I am no prophet, and know very little about omens, but I speak as it is borne in upon me from heaven, and assure you that he will not be away much longer; for he is a man of such resource that even though he were in chains of iron he would find some means of getting home again. But tell me, and tell me true, can Ulysses really have such a fine looking fellow for a son? You are indeed wonderfully like him about the head and eyes, for we were close friends before he set sail for Troy where the flower of all the Argives went also. Since that time we have never either of us seen the other.\"\n\n\"My mother,\" answered Telemachus, tells me I am son to Ulysses, but it is a wise child that knows his own father. Would that I were son to one who had grown old upon his own estates, for, since you ask me, there is no more ill-starred man under heaven than he who they tell me is my father.\"\n\nAnd Minerva said, \"There is no fear of your race dying out yet, while Penelope has such a fine son as you are. But tell me, and tell me true, what is the meaning of all this feasting, and who are these people? What is it all about? Have you some banquet, or is there a wedding in the family- for no one seems to be bringing any provisions of his own? And the guests- how atrociously they are behaving; what riot they make over the whole house; it is enough to disgust any respectable person who comes near them.\"\n\n\"Sir,\" said Telemachus, \"as regards your question, so long as my father was here it was well with us and with the house, but the gods in their displeasure have willed it otherwise, and have hidden him away more closely than mortal man was ever yet hidden. I could have borne it better even though he were dead, if he had fallen with his men before Troy, or had died with friends around him when the days of his fighting were done; for then the Achaeans would have built a mound over his ashes, and I should myself have been heir to his renown; but now the storm-winds have spirited him away we know not wither; he is gone without leaving so much as a trace behind him, and I inherit nothing but dismay. Nor does the matter end simply with grief for the loss of my father; heaven has laid sorrows upon me of yet another kind; for the chiefs from all our islands, Dulichium, Same, and the woodland island of Zacynthus, as also all the principal men of Ithaca itself, are eating up my house under the pretext of paying their court to my mother, who will neither point blank say that she will not marry, nor yet bring matters to an end; so they are making havoc of my estate, and before long will do so also with myself.\"\n\n\"Is that so?\" exclaimed Minerva, \"then you do indeed want Ulysses home again. Give him his helmet, shield, and a couple lances, and if he is the man he was when I first knew him in our house, drinking and making merry, he would soon lay his hands about these rascally suitors, were he to stand once more upon his own threshold. He was then coming from Ephyra, where he had been to beg poison for his arrows from Ilus, son of Mermerus. Ilus feared the ever-living gods and would not give him any, but my father let him have some, for he was very fond of him. If Ulysses is the man he then was these suitors will have a short shrift and a sorry wedding.\n\n\"But there! It rests with heaven to determine whether he is to return, and take his revenge in his own house or no; I would, however, urge you to set about trying to get rid of these suitors at once. Take my advice, call the Achaean heroes in assembly to-morrow -lay your case before them, and call heaven to bear you witness. Bid the suitors take themselves off, each to his own place, and if your mother's mind is set on marrying again, let her go back to her father, who will find her a husband and provide her with all the marriage gifts that so dear a daughter may expect. As for yourself, let me prevail upon you to take the best ship you can get, with a crew of twenty men, and go in quest of your father who has so long been missing. Some one may tell you something, or (and people often hear things in this way) some heaven-sent message may direct you. First go to Pylos and ask Nestor; thence go on to Sparta and visit Menelaus, for he got home last of all the Achaeans; if you hear that your father is alive and on his way home, you can put up with the waste these suitors will make for yet another twelve months. If on the other hand you hear of his death, come home at once, celebrate his funeral rites with all due pomp, build a barrow to his memory, and make your mother marry again. Then, having done all this, think it well over in your mind how, by fair means or foul, you may kill these suitors in your own house. You are too old to plead infancy any longer; have you not heard how people are singing Orestes' praises for having killed his father's murderer Aegisthus? You are a fine, smart looking fellow; show your mettle, then, and make yourself a name in story. Now, however, I must go back to my ship and to my crew, who will be impatient if I keep them waiting longer; think the matter over for yourself, and remember what I have said to you.\"\n\n\"Sir,\" answered Telemachus, \"it has been very kind of you to talk to me in this way, as though I were your own son, and I will do all you tell me; I know you want to be getting on with your voyage, but stay a little longer till you have taken a bath and refreshed yourself. I will then give you a present, and you shall go on your way rejoicing; I will give you one of great beauty and value- a keepsake such as only dear friends give to one another.\"\n\nMinerva answered, \"Do not try to keep me, for I would be on my way at once. As for any present you may be disposed to make me, keep it till I come again, and I will take it home with me. You shall give me a very good one, and I will give you one of no less value in return.\"\n\nWith these words she flew away like a bird into the air, but she had given Telemachus courage, and had made him think more than ever about his father. He felt the change, wondered at it, and knew that the stranger had been a god, so he went straight to where the suitors were sitting.\n\nPhemius was still singing, and his hearers sat rapt in silence as he told the sad tale of the return from Troy, and the ills Minerva had laid upon the Achaeans. Penelope, daughter of Icarius, heard his song from her room upstairs, and came down by the great staircase, not alone, but attended by two of her handmaids. When she reached the suitors she stood by one of the bearing posts that supported the roof of the cloisters with a staid maiden on either side of her. She held a veil, moreover, before her face, and was weeping bitterly.\n\n\"Phemius,\" she cried, \"you know many another feat of gods and heroes, such as poets love to celebrate. Sing the suitors some one of these, and let them drink their wine in silence, but cease this sad tale, for it breaks my sorrowful heart, and reminds me of my lost husband whom I mourn ever without ceasing, and whose name was great over all Hellas and middle Argos.\"\n\n\"Mother,\" answered Telemachus, \"let the bard sing what he has a mind to; bards do not make the ills they sing of; it is Jove, not they, who makes them, and who sends weal or woe upon mankind according to his own good pleasure. This fellow means no harm by singing the ill-fated return of the Danaans, for people always applaud the latest songs most warmly. Make up your mind to it and bear it; Ulysses is not the only man who never came back from Troy, but many another went down as well as he. Go, then, within the house and busy yourself with your daily duties, your loom, your distaff, and the ordering of your servants; for speech is man's matter, and mine above all others- for it is I who am master here.\"\n\nShe went wondering back into the house, and laid her son's saying in her heart. Then, going upstairs with her handmaids into her room, she mourned her dear husband till Minerva shed sweet sleep over her eyes. But the suitors were clamorous throughout the covered cloisters, and prayed each one that he might be her bed fellow.\n\nThen Telemachus spoke, \"Shameless,\" he cried, \"and insolent suitors, let us feast at our pleasure now, and let there be no brawling, for it is a rare thing to hear a man with such a divine voice as Phemius has; but in the morning meet me in full assembly that I may give you formal notice to depart, and feast at one another's houses, turn and turn about, at your own cost. If on the other hand you choose to persist in spunging upon one man, heaven help me, but Jove shall reckon with you in full, and when you fall in my father's house there shall be no man to avenge you.\"\n\nThe suitors bit their lips as they heard him, and marvelled at the boldness of his speech. Then, Antinous, son of Eupeithes, said, \"The gods seem to have given you lessons in bluster and tall talking; may Jove never grant you to be chief in Ithaca as your father was before you.\"\n\nTelemachus answered, \"Antinous, do not chide with me, but, god willing, I will be chief too if I can. Is this the worst fate you can think of for me? It is no bad thing to be a chief, for it brings both riches and honour. Still, now that Ulysses is dead there are many great men in Ithaca both old and young, and some other may take the lead among them; nevertheless I will be chief in my own house, and will rule those whom Ulysses has won for me.\"\n\nThen Eurymachus, son of Polybus, answered, \"It rests with heaven to decide who shall be chief among us, but you shall be master in your own house and over your own possessions; no one while there is a man in Ithaca shall do you violence nor rob you. And now, my good fellow, I want to know about this stranger. What country does he come from? Of what family is he, and where is his estate? Has he brought you news about the return of your father, or was he on business of his own? He seemed a well-to-do man, but he hurried off so suddenly that he was gone in a moment before we could get to know him.\"\n\n\"My father is dead and gone,\" answered Telemachus, \"and even if some rumour reaches me I put no more faith in it now. My mother does indeed sometimes send for a soothsayer and question him, but I give his prophecyings no heed. As for the stranger, he was Mentes, son of Anchialus, chief of the Taphians, an old friend of my father's.\" But in his heart he knew that it had been the goddess.\n\nThe suitors then returned to their singing and dancing until the evening; but when night fell upon their pleasuring they went home to bed each in his own abode. Telemachus's room was high up in a tower that looked on to the outer court; hither, then, he hied, brooding and full of thought. A good old woman, Euryclea, daughter of Ops, the son of Pisenor, went before him with a couple of blazing torches. Laertes had bought her with his own money when she was quite young; he gave the worth of twenty oxen for her, and shewed as much respect to her in his household as he did to his own wedded wife, but he did not take her to his bed for he feared his wife's resentment. She it was who now lighted Telemachus to his room, and she loved him better than any of the other women in the house did, for she had nursed him when he was a baby. He opened the door of his bed room and sat down upon the bed; as he took off his shirt he gave it to the good old woman, who folded it tidily up, and hung it for him over a peg by his bed side, after which she went out, pulled the door to by a silver catch, and drew the bolt home by means of the strap. But Telemachus as he lay covered with a woollen fleece kept thinking all night through of his intended voyage of the counsel that Minerva had given him.\n\nBook II\n\nNow when the child of morning, rosy-fingered Dawn, appeared, Telemachus rose and dressed himself. He bound his sandals on to his comely feet, girded his sword about his shoulder, and left his room looking like an immortal god. He at once sent the criers round to call the people in assembly, so they called them and the people gathered thereon; then, when they were got together, he went to the place of assembly spear in hand- not alone, for his two hounds went with him. Minerva endowed him with a presence of such divine comeliness that all marvelled at him as he went by, and when he took his place' in his father's seat even the oldest councillors made way for him.\n\nAegyptius, a man bent double with age, and of infinite experience, the first to speak His son Antiphus had gone with Ulysses to Ilius, land of noble steeds, but the savage Cyclops had killed him when they were all shut up in the cave, and had cooked his last dinner for him, He had three sons left, of whom two still worked on their father's land, while the third, Eurynomus, was one of the suitors; nevertheless their father could not get over the loss of Antiphus, and was still weeping for him when he began his speech.\n\n\"Men of Ithaca,\" he said, \"hear my words. From the day Ulysses left us there has been no meeting of our councillors until now; who then can it be, whether old or young, that finds it so necessary to convene us? Has he got wind of some host approaching, and does he wish to warn us, or would he speak upon some other matter of public moment? I am sure he is an excellent person, and I hope Jove will grant him his heart's desire.\"\n\nTelemachus took this speech as of good omen and rose at once, for he was bursting with what he had to say. He stood in the middle of the assembly and the good herald Pisenor brought him his staff. Then, turning to Aegyptius, \"Sir,\" said he, \"it is I, as you will shortly learn, who have convened you, for it is I who am the most aggrieved. I have not got wind of any host approaching about which I would warn you, nor is there any matter of public moment on which I would speak. My grieveance is purely personal, and turns on two great misfortunes which have fallen upon my house. The first of these is the loss of my excellent father, who was chief among all you here present, and was like a father to every one of you; the second is much more serious, and ere long will be the utter ruin of my estate. The sons of all the chief men among you are pestering my mother to marry them against her will. They are afraid to go to her father Icarius, asking him to choose the one he likes best, and to provide marriage gifts for his daughter, but day by day they keep hanging about my father's house, sacrificing our oxen, sheep, and fat goats for their banquets, and never giving so much as a thought to the quantity of wine they drink. No estate can stand such recklessness; we have now no Ulysses to ward off harm from our doors, and I cannot hold my own against them. I shall never all my days be as good a man as he was, still I would indeed defend myself if I had power to do so, for I cannot stand such treatment any longer; my house is being disgraced and ruined. Have respect, therefore, to your own consciences and to public opinion. Fear, too, the wrath of heaven, lest the gods should be displeased and turn upon you. I pray you by Jove and Themis, who is the beginning and the end of councils, [do not] hold back, my friends, and leave me singlehanded- unless it be that my brave father Ulysses did some wrong to the Achaeans which you would now avenge on me, by aiding and abetting these suitors. Moreover, if I am to be eaten out of house and home at all, I had rather you did the eating yourselves, for I could then take action against you to some purpose, and serve you with notices from house to house till I got paid in full, whereas now I have no remedy.\"\n\nWith this Telemachus dashed his staff to the ground and burst into tears. Every one was very sorry for him, but they all sat still and no one ventured to make him an angry answer, save only Antinous, who spoke thus:\n\n\"Telemachus, insolent braggart that you are, how dare you try to throw the blame upon us suitors? It is your mother's fault not ours, for she is a very artful woman. This three years past, and close on four, she has been driving us out of our minds, by encouraging each one of us, and sending him messages without meaning one word of what she says. And then there was that other trick she played us. She set up a great tambour frame in her room, and began to work on an enormous piece of fine needlework. 'Sweet hearts,' said she, 'Ulysses is indeed dead, still do not press me to marry again immediately, wait- for I would not have skill in needlework perish unrecorded- till I have completed a pall for the hero Laertes, to be in readiness against the time when death shall take him. He is very rich, and the women of the place will talk if he is laid out without a pall.'\n\n\"This was what she said, and we assented; whereon we could see her working on her great web all day long, but at night she would unpick the stitches again by torchlight. She fooled us in this way for three years and we never found her out, but as time wore on and she was now in her fourth year, one of her maids who knew what she was doing told us, and we caught her in the act of undoing her work, so she had to finish it whether she would or no. The suitors, therefore, make you this answer, that both you and the Achaeans may understand-'Send your mother away, and bid her marry the man of her own and of her father's choice'; for I do not know what will happen if she goes on plaguing us much longer with the airs she gives herself on the score of the accomplishments Minerva has taught her, and because she is so clever. We never yet heard of such a woman; we know all about Tyro, Alcmena, Mycene, and the famous women of old, but they were nothing to your mother, any one of them. It was not fair of her to treat us in that way, and as long as she continues in the mind with which heaven has now endowed her, so long shall we go on eating up your estate; and I do not see why she should change, for she gets all the honour and glory, and it is you who pay for it, not she. Understand, then, that we will not go back to our lands, neither here nor elsewhere, till she has made her choice and married some one or other of us.\"\n\nTelemachus answered, \"Antinous, how can I drive the mother who bore me from my father's house? My father is abroad and we do not know whether he is alive or dead. It will be hard on me if I have to pay Icarius the large sum which I must give him if I insist on sending his daughter back to him. Not only will he deal rigorously with me, but heaven will also punish me; for my mother when she leaves the house will calf on the Erinyes to avenge her; besides, it would not be a creditable thing to do, and I will have nothing to say to it. If you choose to take offence at this, leave the house and feast elsewhere at one another's houses at your own cost turn and turn about. If, on the other hand, you elect to persist in spunging upon one man, heaven help me, but Jove shall reckon with you in full, and when you fall in my father's house there shall be no man to avenge you.\"\n\nAs he spoke Jove sent two eagles from the top of the mountain, and they flew on and on with the wind, sailing side by side in their own lordly flight. When they were right over the middle of the assembly they wheeled and circled about, beating the air with their wings and glaring death into the eyes of them that were below; then, fighting fiercely and tearing at one another, they flew off towards the right over the town. The people wondered as they saw them, and asked each other what an this might be; whereon Halitherses, who was the best prophet and reader of omens among them, spoke to them plainly and in all honesty, saying:\n\n\"Hear me, men of Ithaca, and I speak more particularly to the suitors, for I see mischief brewing for them. Ulysses is not going to be away much longer; indeed he is close at hand to deal out death and destruction, not on them alone, but on many another of us who live in Ithaca. Let us then be wise in time, and put a stop to this wickedness before he comes. Let the suitors do so of their own accord; it will be better for them, for I am not prophesying without due knowledge; everything has happened to Ulysses as I foretold when the Argives set out for Troy, and he with them. I said that after going through much hardship and losing all his men he should come home again in the twentieth year and that no one would know him; and now all this is coming true.\"\n\nEurymachus son of Polybus then said, \"Go home, old man, and prophesy to your own children, or it may be worse for them. I can read these omens myself much better than you can; birds are always flying about in the sunshine somewhere or other, but they seldom mean anything. Ulysses has died in a far country, and it is a pity you are not dead along with him, instead of prating here about omens and adding fuel to the anger of Telemachus which is fierce enough as it is. I suppose you think he will give you something for your family, but I tell you- and it shall surely be- when an old man like you, who should know better, talks a young one over till he becomes troublesome, in the first place his young friend will only fare so much the worse- he will take nothing by it, for the suitors will prevent this- and in the next, we will lay a heavier fine, sir, upon yourself than you will at all like paying, for it will bear hardly upon you. As for Telemachus, I warn him in the presence of you all to send his mother back to her father, who will find her a husband and provide her with all the marriage gifts so dear a daughter may expect. Till we shall go on harassing him with our suit; for we fear no man, and care neither for him, with all his fine speeches, nor for any fortune-telling of yours. You may preach as much as you please, but we shall only hate you the more. We shall go back and continue to eat up Telemachus's estate without paying him, till such time as his mother leaves off tormenting us by keeping us day after day on the tiptoe of expectation, each vying with the other in his suit for a prize of such rare perfection. Besides we cannot go after the other women whom we should marry in due course, but for the way in which she treats us.\"\n\nThen Telemachus said, \"Eurymachus, and you other suitors, I shall say no more, and entreat you no further, for the gods and the people of Ithaca now know my story. Give me, then, a ship and a crew of twenty men to take me hither and thither, and I will go to Sparta and to Pylos in quest of my father who has so long been missing. Some one may tell me something, or (and people often hear things in this way) some heaven-sent message may direct me. If I can hear of him as alive and on his way home I will put up with the waste you suitors will make for yet another twelve months. If on the other hand I hear of his death, I will return at once, celebrate his funeral rites with all due pomp, build a barrow to his memory, and make my mother marry again.\"\n\nWith these words he sat down, and Mentor who had been a friend of Ulysses, and had been left in charge of everything with full authority over the servants, rose to speak. He, then, plainly and in all honesty addressed them thus:\n\n\"Hear me, men of Ithaca, I hope that you may never have a kind and well-disposed ruler any more, nor one who will govern you equitably; I hope that all your chiefs henceforward may be cruel and unjust, for there is not one of you but has forgotten Ulysses, who ruled you as though he were your father. I am not half so angry with the suitors, for if they choose to do violence in the naughtiness of their hearts, and wager their heads that Ulysses will not return, they can take the high hand and eat up his estate, but as for you others I am shocked at the way in which you all sit still without even trying to stop such scandalous goings on-which you could do if you chose, for you are many and they are few.\"\n\nLeiocritus, son of Evenor, answered him saying, \"Mentor, what folly is all this, that you should set the people to stay us? It is a hard thing for one man to fight with many about his victuals. Even though Ulysses himself were to set upon us while we are feasting in his house, and do his best to oust us, his wife, who wants him back so very badly, would have small cause for rejoicing, and his blood would be upon his own head if he fought against such great odds. There is no sense in what you have been saying. Now, therefore, do you people go about your business, and let his father's old friends, Mentor and Halitherses, speed this boy on his journey, if he goes at all- which I do not think he will, for he is more likely to stay where he is till some one comes and tells him something.\"\n\nOn this he broke up the assembly, and every man went back to his own abode, while the suitors returned to the house of Ulysses.\n\nThen Telemachus went all alone by the sea side, washed his hands in the grey waves, and prayed to Minerva.\n\n\"Hear me,\" he cried, \"you god who visited me yesterday, and bade me sail the seas in search of my father who has so long been missing. I would obey you, but the Achaeans, and more particularly the wicked suitors, are hindering me that I cannot do so.\"\n\nAs he thus prayed, Minerva came close up to him in the likeness and with the voice of Mentor. \"Telemachus,\" said she, \"if you are made of the same stuff as your father you will be neither fool nor coward henceforward, for Ulysses never broke his word nor left his work half done. If, then, you take after him, your voyage will not be fruitless, but unless you have the blood of Ulysses and of Penelope in your veins I see no likelihood of your succeeding. Sons are seldom as good men as their fathers; they are generally worse, not better; still, as you are not going to be either fool or coward henceforward, and are not entirely without some share of your father's wise discernment, I look with hope upon your undertaking. But mind you never make common cause with any of those foolish suitors, for they have neither sense nor virtue, and give no thought to death and to the doom that will shortly fall on one and all of them, so that they shall perish on the same day. As for your voyage, it shall not be long delayed; your father was such an old friend of mine that I will find you a ship, and will come with you myself. Now, however, return home, and go about among the suitors; begin getting provisions ready for your voyage; see everything well stowed, the wine in jars, and the barley meal, which is the staff of life, in leathern bags, while I go round the town and beat up volunteers at once. There are many ships in Ithaca both old and new; I will run my eye over them for you and will choose the best; we will get her ready and will put out to sea without delay.\"\n\nThus spoke Minerva daughter of Jove, and Telemachus lost no time in doing as the goddess told him. He went moodily and found the suitors flaying goats and singeing pigs in the outer court. Antinous came up to him at once and laughed as he took his hand in his own, saying, \"Telemachus, my fine fire-eater, bear no more ill blood neither in word nor deed, but eat and drink with us as you used to do. The Achaeans will find you in everything- a ship and a picked crew to boot- so that you can set sail for Pylos at once and get news of your noble father.\"\n\n\"Antinous,\" answered Telemachus, \"I cannot eat in peace, nor take pleasure of any kind with such men as you are. Was it not enough that you should waste so much good property of mine while I was yet a boy? Now that I am older and know more about it, I am also stronger, and whether here among this people, or by going to Pylos, I will do you all the harm I can. I shall go, and my going will not be in vain though, thanks to you suitors, I have neither ship nor crew of my own, and must be passenger not captain.\"\n\nAs he spoke he snatched his hand from that of Antinous. Meanwhile the others went on getting dinner ready about the buildings, jeering at him tauntingly as they did so.\n\n\"Telemachus,\" said one youngster, \"means to be the death of us; I suppose he thinks he can bring friends to help him from Pylos, or again from Sparta, where he seems bent on going. Or will he go to Ephyra as well, for poison to put in our wine and kill us?\"\n\nAnother said, \"Perhaps if Telemachus goes on board ship, he will be like his father and perish far from his friends. In this case we should have plenty to do, for we could then divide up his property amongst us: as for the house we can let his mother and the man who marries her have that.\"\n\nThis was how they talked. But Telemachus went down into the lofty and spacious store-room where his father's treasure of gold and bronze lay heaped up upon the floor, and where the linen and spare clothes were kept in open chests. Here, too, there was a store of fragrant olive oil, while casks of old, well-ripened wine, unblended and fit for a god to drink, were ranged against the wall in case Ulysses should come home again after all. The room was closed with well-made doors opening in the middle; moreover the faithful old house-keeper Euryclea, daughter of Ops the son of Pisenor, was in charge of everything both night and day. Telemachus called her to the store-room and said:\n\n\"Nurse, draw me off some of the best wine you have, after what you are keeping for my father's own drinking, in case, poor man, he should escape death, and find his way home again after all. Let me have twelve jars, and see that they all have lids; also fill me some well-sewn leathern bags with barley meal- about twenty measures in all. Get these things put together at once, and say nothing about it. I will take everything away this evening as soon as my mother has gone upstairs for the night. I am going to Sparta and to Pylos to see if I can hear anything about the return of my dear father.\n\nWhen Euryclea heard this she began to cry, and spoke fondly to him, saying, \"My dear child, what ever can have put such notion as that into your head? Where in the world do you want to go to- you, who are the one hope of the house? Your poor father is dead and gone in some foreign country nobody knows where, and as soon as your back is turned these wicked ones here will be scheming to get you put out of the way, and will share all your possessions among themselves; stay where you are among your own people, and do not go wandering and worrying your life out on the barren ocean.\"\n\n\"Fear not, nurse,\" answered Telemachus, \"my scheme is not without heaven's sanction; but swear that you will say nothing about all this to my mother, till I have been away some ten or twelve days, unless she hears of my having gone, and asks you; for I do not want her to spoil her beauty by crying.\"\n\nThe old woman swore most solemnly that she would not, and when she had completed her oath, she began drawing off the wine into jars, and getting the barley meal into the bags, while Telemachus went back to the suitors.\n\nThen Minerva bethought her of another matter. She took his shape, and went round the town to each one of the crew, telling them to meet at the ship by sundown. She went also to Noemon son of Phronius, and asked him to let her have a ship- which he was very ready to do. When the sun had set and darkness was over all the land, she got the ship into the water, put all the tackle on board her that ships generally carry, and stationed her at the end of the harbour. Presently the crew came up, and the goddess spoke encouragingly to each of them.\n\nFurthermore she went to the house of Ulysses, and threw the suitors into a deep slumber. She caused their drink to fuddle them, and made them drop their cups from their hands, so that instead of sitting over their wine, they went back into the town to sleep, with their eyes heavy and full of drowsiness. Then she took the form and voice of Mentor, and called Telemachus to come outside.\n\n\"Telemachus,\" said she, \"the men are on board and at their oars, waiting for you to give your orders, so make haste and let us be off.\"\n\nOn this she led the way, while Telemachus followed in her steps. When they got to the ship they found the crew waiting by the water side, and Telemachus said, \"Now my men, help me to get the stores on board; they are all put together in the cloister, and my mother does not know anything about it, nor any of the maid servants except one.\"\n\nWith these words he led the way and the others followed after. When they had brought the things as he told them, Telemachus went on board, Minerva going before him and taking her seat in the stern of the vessel, while Telemachus sat beside her. Then the men loosed the hawsers and took their places on the benches. Minerva sent them a fair wind from the West, that whistled over the deep blue waves whereon Telemachus told them to catch hold of the ropes and hoist sail, and they did as he told them. They set the mast in its socket in the cross plank, raised it, and made it fast with the forestays; then they hoisted their white sails aloft with ropes of twisted ox hide. As the sail bellied out with the wind, the ship flew through the deep blue water, and the foam hissed against her bows as she sped onward. Then they made all fast throughout the ship, filled the mixing-bowls to the brim, and made drink offerings to the immortal gods that are from everlasting, but more particularly to the grey-eyed daughter of Jove.\n\nThus, then, the ship sped on her way through the watches of the night from dark till dawn.\n\nBook III\n\nBut as the sun was rising from the fair sea into the firmament of heaven to shed light on mortals and immortals, they reached Pylos the city of Neleus. Now the people of Pylos were gathered on the sea shore to offer sacrifice of black bulls to Neptune lord of the Earthquake. There were nine guilds with five hundred men in each, and there were nine bulls to each guild. As they were eating the inward meats and burning the thigh bones [on the embers] in the name of Neptune, Telemachus and his crew arrived, furled their sails, brought their ship to anchor, and went ashore.\n\nMinerva led the way and Telemachus followed her. Presently she said, \"Telemachus, you must not be in the least shy or nervous; you have taken this voyage to try and find out where your father is buried and how he came by his end; so go straight up to Nestor that we may see what he has got to tell us. Beg of him to speak the truth, and he will tell no lies, for he is an excellent person.\"\n\n\"But how, Mentor,\" replied Telemachus, \"dare I go up to Nestor, and how am I to address him? I have never yet been used to holding long conversations with people, and am ashamed to begin questioning one who is so much older than myself.\"\n\n\"Some things, Telemachus,\" answered Minerva, \"will be suggested to you by your own instinct, and heaven will prompt you further; for I am assured that the gods have been with you from the time of your birth until now.\"\n\nShe then went quickly on, and Telemachus followed in her steps till they reached the place where the guilds of the Pylian people were assembled. There they found Nestor sitting with his sons, while his company round him were busy getting dinner ready, and putting pieces of meat on to the spits while other pieces were cooking. When they saw the strangers they crowded round them, took them by the hand and bade them take their places. Nestor's son Pisistratus at once offered his hand to each of them, and seated them on some soft sheepskins that were lying on the sands near his father and his brother Thrasymedes. Then he gave them their portions of the inward meats and poured wine for them into a golden cup, handing it to Minerva first, and saluting her at the same time.\n\n\"Offer a prayer, sir,\" said he, \"to King Neptune, for it is his feast that you are joining; when you have duly prayed and made your drink-offering, pass the cup to your friend that he may do so also. I doubt not that he too lifts his hands in prayer, for man cannot live without God in the world. Still he is younger than you are, and is much of an age with myself, so I he handed I will give you the precedence.\"\n\nAs he spoke he handed her the cup. Minerva thought it very right and proper of him to have given it to herself first; she accordingly began praying heartily to Neptune. \"O thou,\" she cried, \"that encirclest the earth, vouchsafe to grant the prayers of thy servants that call upon thee. More especially we pray thee send down thy grace on Nestor and on his sons; thereafter also make the rest of the Pylian people some handsome return for the goodly hecatomb they are offering you. Lastly, grant Telemachus and myself a happy issue, in respect of the matter that has brought us in our to Pylos.\"\n\nWhen she had thus made an end of praying, she handed the cup to Telemachus and he prayed likewise. By and by, when the outer meats were roasted and had been taken off the spits, the carvers gave every man his portion and they all made an excellent dinner. As soon as they had had enough to eat and drink, Nestor, knight of Gerene, began to speak.\n\n\"Now,\" said he, \"that our guests have done their dinner, it will be best to ask them who they are. Who, then, sir strangers, are you, and from what port have you sailed? Are you traders? or do you sail the seas as rovers with your hand against every man, and every man's hand against you?\"\n\nTelemachus answered boldly, for Minerva had given him courage to ask about his father and get himself a good name.\n\n\"Nestor,\" said he, \"son of Neleus, honour to the Achaean name, you ask whence we come, and I will tell you. We come from Ithaca under Neritum, and the matter about which I would speak is of private not public import. I seek news of my unhappy father Ulysses, who is said to have sacked the town of Troy in company with yourself. We know what fate befell each one of the other heroes who fought at Troy, but as regards Ulysses heaven has hidden from us the knowledge even that he is dead at all, for no one can certify us in what place he perished, nor say whether he fell in battle on the mainland, or was lost at sea amid the waves of Amphitrite. Therefore I am suppliant at your knees, if haply you may be pleased to tell me of his melancholy end, whether you saw it with your own eyes, or heard it from some other traveller, for he was a man born to trouble. Do not soften things out of any pity for me, but tell me in all plainness exactly what you saw. If my brave father Ulysses ever did you loyal service, either by word or deed, when you Achaeans were harassed among the Trojans, bear it in mind now as in my favour and tell me truly all.\"\n\n\"My friend,\" answered Nestor, \"you recall a time of much sorrow to my mind, for the brave Achaeans suffered much both at sea, while privateering under Achilles, and when fighting before the great city of king Priam. Our best men all of them fell there- Ajax, Achilles, Patroclus peer of gods in counsel, and my own dear son Antilochus, a man singularly fleet of foot and in fight valiant. But we suffered much more than this; what mortal tongue indeed could tell the whole story? Though you were to stay here and question me for five years, or even six, I could not tell you all that the Achaeans suffered, and you would turn homeward weary of my tale before it ended. Nine long years did we try every kind of stratagem, but the hand of heaven was against us; during all this time there was no one who could compare with your father in subtlety- if indeed you are his son- I can hardly believe my eyes- and you talk just like him too- no one would say that people of such different ages could speak so much alike. He and I never had any kind of difference from first to last neither in camp nor council, but in singleness of heart and purpose we advised the Argives how all might be ordered for the best.\n\n\"When however, we had sacked the city of Priam, and were setting sail in our ships as heaven had dispersed us, then Jove saw fit to vex the Argives on their homeward voyage; for they had Not all been either wise or understanding, and hence many came to a bad end through the displeasure of Jove's daughter Minerva, who brought about a quarrel between the two sons of Atreus.\n\n\"The sons of Atreus called a meeting which was not as it should be, for it was sunset and the Achaeans were heavy with wine. When they explained why they had called- the people together, it seemed that Menelaus was for sailing homeward at once, and this displeased Agamemnon, who thought that we should wait till we had offered hecatombs to appease the anger of Minerva. Fool that he was, he might have known that he would not prevail with her, for when the gods have made up their minds they do not change them lightly. So the two stood bandying hard words, whereon the Achaeans sprang to their feet with a cry that rent the air, and were of two minds as to what they should do.\n\n\"That night we rested and nursed our anger, for Jove was hatching mischief against us. But in the morning some of us drew our ships into the water and put our goods with our women on board, while the rest, about half in number, stayed behind with Agamemnon. We- the other half- embarked and sailed; and the ships went well, for heaven had smoothed the sea. When we reached Tenedos we offered sacrifices to the gods, for we were longing to get home; cruel Jove, however, did not yet mean that we should do so, and raised a second quarrel in the course of which some among us turned their ships back again, and sailed away under Ulysses to make their peace with Agamemnon; but I, and all the ships that were with me pressed forward, for I saw that mischief was brewing. The son of Tydeus went on also with me, and his crews with him. Later on Menelaus joined us at Lesbos, and found us making up our minds about our course- for we did not know whether to go outside Chios by the island of Psyra, keeping this to our left, or inside Chios, over against the stormy headland of Mimas. So we asked heaven for a sign, and were shown one to the effect that we should be soonest out of danger if we headed our ships across the open sea to Euboea. This we therefore did, and a fair wind sprang up which gave us a quick passage during the night to Geraestus, where we offered many sacrifices to Neptune for having helped us so far on our way. Four days later Diomed and his men stationed their ships in Argos, but I held on for Pylos, and the wind never fell light from the day when heaven first made it fair for me.\n\n\"Therefore, my dear young friend, I returned without hearing anything about the others. I know neither who got home safely nor who were lost but, as in duty bound, I will give you without reserve the reports that have reached me since I have been here in my own house. They say the Myrmidons returned home safely under Achilles' son Neoptolemus; so also did the valiant son of Poias, Philoctetes. Idomeneus, again, lost no men at sea, and all his followers who escaped death in the field got safe home with him to Crete. No matter how far out of the world you live, you will have heard of Agamemnon and the bad end he came to at the hands of Aegisthus- and a fearful reckoning did Aegisthus presently pay. See what a good thing it is for a man to leave a son behind him to do as Orestes did, who killed false Aegisthus the murderer of his noble father. You too, then- for you are a tall, smart-looking fellow- show your mettle and make yourself a name in story.\"\n\n\"Nestor son of Neleus,\" answered Telemachus, \"honour to the Achaean name, the Achaeans applaud Orestes and his name will live through all time for he has avenged his father nobly. Would that heaven might grant me to do like vengeance on the insolence of the wicked suitors, who are ill treating me and plotting my ruin; but the gods have no such happiness in store for me and for my father, so we must bear it as best we may.\"\n\n\"My friend,\" said Nestor, \"now that you remind me, I remember to have heard that your mother has many suitors, who are ill disposed towards you and are making havoc of your estate. Do you submit to this tamely, or are public feeling and the voice of heaven against you? Who knows but what Ulysses may come back after all, and pay these scoundrels in full, either single-handed or with a force of Achaeans behind him? If Minerva were to take as great a liking to you as she did to Ulysses when we were fighting before Troy (for I never yet saw the gods so openly fond of any one as Minerva then was of your father), if she would take as good care of you as she did of him, these wooers would soon some of them him, forget their wooing.\"\n\nTelemachus answered, \"I can expect nothing of the kind; it would be far too much to hope for. I dare not let myself think of it. Even though the gods themselves willed it no such good fortune could befall me.\"\n\nOn this Minerva said, \"Telemachus, what are you talking about? Heaven has a long arm if it is minded to save a man; and if it were me, I should not care how much I suffered before getting home, provided I could be safe when I was once there. I would rather this, than get home quickly, and then be killed in my own house as Agamemnon was by the treachery of Aegisthus and his wife. Still, death is certain, and when a man's hour is come, not even the gods can save him, no matter how fond they are of him.\"\n\n\"Mentor,\" answered Telemachus, \"do not let us talk about it any more. There is no chance of my father's ever coming back; the gods have long since counselled his destruction. There is something else, however, about which I should like to ask Nestor, for he knows much more than any one else does. They say he has reigned for three generations so that it is like talking to an immortal. Tell me, therefore, Nestor, and tell me true; how did Agamemnon come to die in that way? What was Menelaus doing? And how came false Aegisthus to kill so far better a man than himself? Was Menelaus away from Achaean Argos, voyaging elsewhither among mankind, that Aegisthus took heart and killed Agamemnon?\"\n\n\"I will tell you truly,\" answered Nestor, \"and indeed you have yourself divined how it all happened. If Menelaus when he got back from Troy had found Aegisthus still alive in his house, there would have been no barrow heaped up for him, not even when he was dead, but he would have been thrown outside the city to dogs and vultures, and not a woman would have mourned him, for he had done a deed of great wickedness; but we were over there, fighting hard at Troy, and Aegisthus who was taking his ease quietly in the heart of Argos, cajoled Agamemnon's wife Clytemnestra with incessant flattery.\n\n\"At first she would have nothing to do with his wicked scheme, for she was of a good natural disposition; moreover there was a bard with her, to whom Agamemnon had given strict orders on setting out for Troy, that he was to keep guard over his wife; but when heaven had counselled her destruction, Aegisthus thus this bard off to a desert island and left him there for crows and seagulls to batten upon- after which she went willingly enough to the house of Aegisthus. Then he offered many burnt sacrifices to the gods, and decorated many temples with tapestries and gilding, for he had succeeded far beyond his expectations.\n\n\"Meanwhile Menelaus and I were on our way home from Troy, on good terms with one another. When we got to Sunium, which is the point of Athens, Apollo with his painless shafts killed Phrontis the steersman of Menelaus' ship (and never man knew better how to handle a vessel in rough weather) so that he died then and there with the helm in his hand, and Menelaus, though very anxious to press forward, had to wait in order to bury his comrade and give him his due funeral rites. Presently, when he too could put to sea again, and had sailed on as far as the Malean heads, Jove counselled evil against him and made it it blow hard till the waves ran mountains high. Here he divided his fleet and took the one half towards Crete where the Cydonians dwell round about the waters of the river Iardanus. There is a high headland hereabouts stretching out into the sea from a place called Gortyn, and all along this part of the coast as far as Phaestus the sea runs high when there is a south wind blowing, but arter Phaestus the coast is more protected, for a small headland can make a great shelter. Here this part of the fleet was driven on to the rocks and wrecked; but the crews just managed to save themselves. As for the other five ships, they were taken by winds and seas to Egypt, where Menelaus gathered much gold and substance among people of an alien speech. Meanwhile Aegisthus here at home plotted his evil deed. For seven years after he had killed Agamemnon he ruled in Mycene, and the people were obedient under him, but in the eighth year Orestes came back from Athens to be his bane, and killed the murderer of his father. Then he celebrated the funeral rites of his mother and of false Aegisthus by a banquet to the people of Argos, and on that very day Menelaus came home, with as much treasure as his ships could carry.\n\n\"Take my advice then, and do not go travelling about for long so far from home, nor leave your property with such dangerous people in your house; they will eat up everything you have among them, and you will have been on a fool's errand. Still, I should advise you by all means to go and visit Menelaus, who has lately come off a voyage among such distant peoples as no man could ever hope to get back from, when the winds had once carried him so far out of his reckoning; even birds cannot fly the distance in a twelvemonth, so vast and terrible are the seas that they must cross. Go to him, therefore, by sea, and take your own men with you; or if you would rather travel by land you can have a chariot, you can have horses, and here are my sons who can escort you to Lacedaemon where Menelaus lives. Beg of him to speak the truth, and he will tell you no lies, for he is an excellent person.\"\n\nAs he spoke the sun set and it came on dark, whereon Minerva said, \"Sir, all that you have said is well; now, however, order the tongues of the victims to be cut, and mix wine that we may make drink-offerings to Neptune, and the other immortals, and then go to bed, for it is bed time. People should go away early and not keep late hours at a religious festival.\"\n\nThus spoke the daughter of Jove, and they obeyed her saying. Men servants poured water over the hands of the guests, while pages filled the mixing-bowls with wine and water, and handed it round after giving every man his drink-offering; then they threw the tongues of the victims into the fire, and stood up to make their drink-offerings. When they had made their offerings and had drunk each as much as he was minded, Minerva and Telemachus were forgoing on board their ship, but Nestor caught them up at once and stayed them.\n\n\"Heaven and the immortal gods,\" he exclaimed, \"forbid that you should leave my house to go on board of a ship. Do you think I am so poor and short of clothes, or that I have so few cloaks and as to be unable to find comfortable beds both for myself and for my guests? Let me tell you I have store both of rugs and cloaks, and shall not permit the son of my old friend Ulysses to camp down on the deck of a ship- not while I live- nor yet will my sons after me, but they will keep open house as have done.\"\n\nThen Minerva answered, \"Sir, you have spoken well, and it will be much better that Telemachus should do as you have said; he, therefore, shall return with you and sleep at your house, but I must go back to give orders to my crew, and keep them in good heart. I am the only older person among them; the rest are all young men of Telemachus' own age, who have taken this voyage out of friendship; so I must return to the ship and sleep there. Moreover to-morrow I must go to the Cauconians where I have a large sum of money long owing to me. As for Telemachus, now that he is your guest, send him to Lacedaemon in a chariot, and let one of your sons go with him. Be pleased also to provide him with your best and fleetest horses.\"\n\nWhen she had thus spoken, she flew away in the form of an eagle, and all marvelled as they beheld it. Nestor was astonished, and took Telemachus by the hand. \"My friend,\" said he, \"I see that you are going to be a great hero some day, since the gods wait upon you thus while you are still so young. This can have been none other of those who dwell in heaven than Jove's redoubtable daughter, the Trito-born, who showed such favour towards your brave father among the Argives.\" \"Holy queen,\" he continued, \"vouchsafe to send down thy grace upon myself, my good wife, and my children. In return, I will offer you in sacrifice a broad-browed heifer of a year old, unbroken, and never yet brought by man under the yoke. I will gild her horns, and will offer her up to you in sacrifice.\"\n\nThus did he pray, and Minerva heard his prayer. He then led the way to his own house, followed by his sons and sons-in-law. When they had got there and had taken their places on the benches and seats, he mixed them a bowl of sweet wine that was eleven years old when the housekeeper took the lid off the jar that held it. As he mixed the wine, he prayed much and made drink-offerings to Minerva, daughter of Aegis-bearing Jove. Then, when they had made their drink-offerings and had drunk each as much as he was minded, the others went home to bed each in his own abode; but Nestor put Telemachus to sleep in the room that was over the gateway along with Pisistratus, who was the only unmarried son now left him. As for himself, he slept in an inner room of the house, with the queen his wife by his side.\n\nNow when the child of morning, rosy-fingered Dawn, appeared, Nestor left his couch and took his seat on the benches of white and polished marble that stood in front of his house. Here aforetime sat Neleus, peer of gods in counsel, but he was now dead, and had gone to the house of Hades; so Nestor sat in his seat, sceptre in hand, as guardian of the public weal. His sons as they left their rooms gathered round him, Echephron, Stratius, Perseus, Aretus, and Thrasymedes; the sixth son was Pisistratus, and when Telemachus joined them they made him sit with them. Nestor then addressed them.\n\n\"My sons,\" said he, \"make haste to do as I shall bid you. I wish first and foremost to propitiate the great goddess Minerva, who manifested herself visibly to me during yesterday's festivities. Go, then, one or other of you to the plain, tell the stockman to look me out a heifer, and come on here with it at once. Another must go to Telemachus's ship, and invite all the crew, leaving two men only in charge of the vessel. Some one else will run and fetch Laerceus the goldsmith to gild the horns of the heifer. The rest, stay all of you where you are; tell the maids in the house to prepare an excellent dinner, and to fetch seats, and logs of wood for a burnt offering. Tell them also- to bring me some clear spring water.\"\n\nOn this they hurried off on their several errands. The heifer was brought in from the plain, and Telemachus's crew came from the ship; the goldsmith brought the anvil, hammer, and tongs, with which he worked his gold, and Minerva herself came to the sacrifice. Nestor gave out the gold, and the smith gilded the horns of the heifer that the goddess might have pleasure in their beauty. Then Stratius and Echephron brought her in by the horns; Aretus fetched water from the house in a ewer that had a flower pattern on it, and in his other hand he held a basket of barley meal; sturdy Thrasymedes stood by with a sharp axe, ready to strike the heifer, while Perseus held a bucket. Then Nestor began with washing his hands and sprinkling the barley meal, and he offered many a prayer to Minerva as he threw a lock from the heifer's head upon the fire.\n\nWhen they had done praying and sprinkling the barley meal Thrasymedes dealt his blow, and brought the heifer down with a stroke that cut through the tendons at the base of her neck, whereon the daughters and daughters-in-law of Nestor, and his venerable wife Eurydice (she was eldest daughter to Clymenus) screamed with delight. Then they lifted the heifer's head from off the ground, and Pisistratus cut her throat. When she had done bleeding and was quite dead, they cut her up. They cut out the thigh bones all in due course, wrapped them round in two layers of fat, and set some pieces of raw meat on the top of them; then Nestor laid them upon the wood fire and poured wine over them, while the young men stood near him with five-pronged spits in their hands. When the thighs were burned and they had tasted the inward meats, they cut the rest of the meat up small, put the pieces on the spits and toasted them over the fire.\n\nMeanwhile lovely Polycaste, Nestor's youngest daughter, washed Telemachus. When she had washed him and anointed him with oil, she brought him a fair mantle and shirt, and he looked like a god as he came from the bath and took his seat by the side of Nestor. When the outer meats were done they drew them off the spits and sat down to dinner where they were waited upon by some worthy henchmen, who kept pouring them out their wine in cups of gold. As soon as they had had had enough to eat and drink Nestor said, \"Sons, put Telemachus's horses to the chariot that he may start at once.\"\n\nThus did he speak, and they did even as he had said, and yoked the fleet horses to the chariot. The housekeeper packed them up a provision of bread, wine, and sweetmeats fit for the sons of princes. Then Telemachus got into the chariot, while Pisistratus gathered up the reins and took his seat beside him. He lashed the horses on and they flew forward nothing loth into the open country, leaving the high citadel of Pylos behind them. All that day did they travel, swaying the yoke upon their necks till the sun went down and darkness was over all the land. Then they reached Pherae where Diocles lived, who was son to Ortilochus and grandson to Alpheus. Here they passed the night and Diocles entertained them hospitably. When the child of morning, rosy-fingered Dawn; appeared, they again yoked their horses and drove out through the gateway under the echoing gatehouse. Pisistratus lashed the horses on and they flew forward nothing loth; presently they came to the corn lands Of the open country, and in the course of time completed their journey, so well did their steeds take them.\n\nNow when the sun had set and darkness was over the land.\n"
          },
          "response": {
            "data": "HTTP/1.1 200 OK\nTransfer-Encoding:chunked\n\n"
          }
        }
      ]
    }
  ],
  "_links": {
    "self": {
      "href": "http://localhost:44762/imposters/4545"
    }
  }
}

The tcp protocol is a wonderful general purpose protocol, but can get tricky to map the application protocol message length to make it work. As always, let mountebank know if he can help.