PCFkb2N0eXBlIGh0bWwgcHVibGljICItLy93M2MvL2R0ZCBodG1sIDQuMCB0cmFuc2l0aW9uYWwvL2VuIj4KPGh0bWw+CjxoZWFkPgogICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KICAgPG1ldGEgbmFtZT0iR0VORVJBVE9SIiBjb250ZW50PSJNb3ppbGxhLzQuNSBbZW5dIChXaW45ODsgSSkgW05ldHNjYXBlXSI+CiAgIDxtZXRhIG5hbWU9IkF1dGhvciIgY29udGVudD0iSmltIGRlcyBSaXZp6HJlcyI+CiAgIDx0aXRsZT5BUEkgUnVsZXMgb2YgRW5nYWdlbWVudDwvdGl0bGU+CiAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9kZWZhdWx0X3N0eWxlLmNzcyI+CjwvaGVhZD4KPGJvZHk+Cgo8ZGl2IGFsaWduPXJpZ2h0Pjxmb250IGZhY2U9IlRpbWVzIE5ldyBSb21hbiwgVGltZXMsIHNlcmlmIj48Zm9udCBzaXplPS0xPkNvcHlyaWdodAomY29weTsgMjAwMSBPYmplY3QgVGVjaG5vbG9neSBJbnRlcm5hdGlvbmFsLCBJbmMuPC9mb250PjwvZm9udD48L2Rpdj4KPGRpdiBBTElHTj1yaWdodD48dGFibGUgQk9SREVSPTAgQ0VMTFNQQUNJTkc9MCBDRUxMUEFERElORz0yIFdJRFRIPSIxMDAlIiA+Cjx0cj4KPHRkIEFMSUdOPUxFRlQgVkFMSUdOPVRPUCBDT0xTUEFOPSIyIiBCR0NPTE9SPSIjMDA4MEMwIj48Yj48Zm9udCBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EiPjxmb250IGNvbG9yPSIjRkZGRkZGIj4mbmJzcDtFY2xpcHNlCkNvcm5lciBBcnRpY2xlPC9mb250PjwvZm9udD48L2I+PC90ZD4KPC90cj4KPC90YWJsZT48L2Rpdj4KCjxoMT4KPGltZyBTUkM9ImlkZWEuanBnIiBoZWlnaHQ9ODYgd2lkdGg9MTIwPjwvaDE+Cgo8Y2VudGVyPgo8aDE+CkhvdyB0byBVc2UgdGhlIEVjbGlwc2UgQVBJPC9oMT48L2NlbnRlcj4KCjxibG9ja3F1b3RlPjxiPlN1bW1hcnk8L2I+Cjxicj5UaGUgRWNsaXBzZSBQbGF0Zm9ybSBvZmZlcnMgYSBjb21wcmVoZW5zaXZlIEFQSSAoQXBwbGljYXRpb24gUHJvZ3JhbW1lcgpJbnRlcmZhY2UpIHRvIGRldmVsb3BlcnMgd3JpdGluZyBwbHVnLWlucy4gVGhpcyBhcnRpY2xlIGRpc2N1c3NlcyB0aGUgZ2VuZXJhbApncm91bmQgcnVsZXMgZm9yIHVzaW5nIHRoZSBFY2xpcHNlIFBsYXRmb3JtIEFQSSwgaW5jbHVkaW5nIGhvdyB0byB0ZWxsCkFQSSBmcm9tIG5vbi1BUEksIGFuZCBob3cgdG8gc3RheSBpbiB0aGUgQVBJICJzd2VldCBzcG90IiB0byBhdm9pZCB0aGUKcmlzayBvZiBiZWluZyBicm9rZW4gYXMgdGhlIHBsYXRmb3JtIGFuZCBpdHMgQVBJcyBldm9sdmUuIFRoZXNlIGdlbmVyYWwKZ3JvdW5kIHJ1bGVzIGFyZSBhbHNvIHJlY29tbWVuZGVkIHByYWN0aWNlIGZvciBwbHVnLWlucyB0aGF0IG11c3QgZGVjbGFyZQpBUEkgZWxlbWVudHMgb2YgdGhlaXIgb3duLgo8cD48Yj5CeSBKaW0gZGVzIFJpdmkmZWdyYXZlO3JlcywgT1RJPC9iPgo8YnI+PGZvbnQgc2l6ZT0tMT5VcGRhdGVkIE1heSAxOCwgMjAwMTwvZm9udD48L2Jsb2NrcXVvdGU+Cgo8aHIgV0lEVEg9IjEwMCUiPgo8aDM+CldoYXQgaXQgbWVhbnMgdG8gYmUgQVBJPC9oMz4KVGhlIEVjbGlwc2UgcGxhdGZvcm0gZGVmaW5lcyBBUEkgZWxlbWVudHMgZm9yIHVzZSBieSBpdHMgY2xpZW50cywgbmFtZWx5CklTVnMgd3JpdGluZyBwbHVnLWlucy4gVGhlc2UgcGx1Zy1pbnMgbWF5IGluIHR1cm4gZGVmaW5lIEFQSSBlbGVtZW50cyBmb3IKdGhlaXIgY2xpZW50cywgYW5kIHNvIG9uLiBBUEkgZWxlbWVudHMgYXJlIHRoZSBwdWJsaWMgZmFjZTogdGhleSBjYXJyeQphIHNwZWNpZmljYXRpb24gYWJvdXQgd2hhdCB0aGV5IGFyZSBzdXBwb3NlZCB0byBkbywgYW5kIGFib3V0IGhvdyB0aGV5CmFyZSBpbnRlbmRlZCB0byBiZSB1c2VkLiBBUEkgZWxlbWVudHMgYXJlIHN1cHBvcnRlZDogdGhlIEVjbGlwc2UgcGxhdGZvcm0KdGVhbSB3aWxsIGZpeCBpbXBsZW1lbnRhdGlvbiBidWdzIHdoZXJlIHRoZXJlIGlzIGEgZGV2aWF0aW9uIGZyb20gdGhlIHNwZWNpZmllZApiZWhhdmlvci4gU2luY2UgdGhlcmUgaXMgb2Z0ZW4gYSBoaWdoIGNvc3QgYXNzb2NpYXRlZCB3aXRoIGJyZWFraW5nIEFQSQpjaGFuZ2VzLCB0aGUgRWNsaXBzZSBwbGF0Zm9ybSB0ZWFtIHdpbGwgYWxzbyB0cnkgdG8gZXZvbHZlIEFQSSBlbGVtZW50cwpncmFjZWZ1bGx5IHRocm91Z2ggc3VjY2Vzc2l2ZSBtYWpvciByZWxlYXNlcy4KPGgzPgpIb3cgdG8gdGVsbCBBUEkgZnJvbSBub24tQVBJPC9oMz4KQnkgdGhlaXIgdmVyeSBuYXR1cmUsIEFQSSBlbGVtZW50cyBhcmUgZG9jdW1lbnRlZCBhbmQgaGF2ZSBhIHNwZWNpZmljYXRpb24sCmluIGNvbnRyYXN0IHRvIG5vbi1BUEkgZWxlbWVudHMgd2hpY2ggYXJlIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbHMKdXN1YWxseSB3aXRob3V0IHB1Ymxpc2hlZCBkb2N1bWVudGF0aW9uIG9yIHNwZWNpZmljYXRpb25zLiBTbyBpZiB5b3UgY2Fubm90CmZpbmQgdGhlIGRvY3VtZW50YXRpb24gZm9yIHNvbWV0aGluZywgdGhhdCdzIHVzdWFsbHkgYSBnb29kIGluZGljYXRvciB0aGF0Cml0J3Mgbm90IEFQSS4KPHA+VG8gdHJ5IHRvIGRyYXcgdGhlIGxpbmUgbW9yZSBzdGFya2x5LCB0aGUgY29kZSBiYXNlIGZvciB0aGUgcGxhdGZvcm0KaXMgc2VwYXJhdGVkIGludG8gQVBJIGFuZCBub24tQVBJIHBhY2thZ2VzLCB3aXRoIGFsbCBBUEkgZWxlbWVudHMgYmVpbmcKZGVjbGFyZWQgaW4gZGVzaWduYXRlZCBBUEkgcGFja2FnZXMuCjx1bD4KPGxpPgo8Yj5BUEkgcGFja2FnZTwvYj4gLSBhIEphdmEmdHJhZGU7IHBhY2thZ2UgdGhhdCBjb250YWlucyBhdCBsZWFzdCBvbmUgQVBJIGNsYXNzCm9yIEFQSSBpbnRlcmZhY2UuIFRoZSBuYW1lcyBvZiBBUEkgcGFja2FnZXMgYXJlIGFkdmVydGlzZWQgaW4gdGhlIGRvY3VtZW50YXRpb24KZm9yIHRoYXQgY29tcG9uZW50OyB3aGVyZSBmZWFzaWJsZSwgYWxsIG90aGVyIHBhY2thZ2VzIGNvbnRhaW5pbmcgb25seQppbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGhhdmUgImludGVybmFsIiBpbiB0aGUgcGFja2FnZSBuYW1lLiBUaGUgbmFtZXMgb2YKQVBJIHBhY2thZ2VzIG1heSBsZWdpdGltYXRlbHkgYXBwZWFyIGluIGNsaWVudCBjb2RlLiBGb3IgdGhlIEVjbGlwc2UgcGxhdGZvcm0KcHJvcGVyLCB0aGVzZSBhcmU6PC9saT4KCjx1bD4KPGxpPgo8dHQ+b3JnLmVjbGlwc2UuZm9vLio8L3R0PiAtIGZvciBleGFtcGxlLCA8dHQ+b3JnLmVjbGlwc2Uuc3d0LndpZGdldHM8L3R0PiwKPHR0Pm9yZy5lY2xpcHNlLnVpPC90dD4sCm9yIDx0dD5vcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWU8L3R0PjwvbGk+Cgo8bGk+Cjx0dD5vcmcuZWNsaXBzZS5mb28uaW50ZXJuYWwuKjwvdHQ+IC0gbm90IEFQSTsgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24KcGFja2FnZXM8L2xpPgoKPGxpPgo8dHQ+b3JnLmVjbGlwc2UuZm9vLmV4YW1wbGVzLio8L3R0PiAtIG5vdCBBUEk7IHRoZXNlIGFyZSBleGFtcGxlczwvbGk+Cgo8bGk+Cjx0dD5vcmcuZWNsaXBzZS5mb28udGVzdHMuKjwvdHQ+IC0gbm90IEFQSTsgdGhlc2UgYXJlIHRlc3Qgc3VpdGVzPC9saT4KPC91bD4KCjxsaT4KPGI+QVBJIGNsYXNzIG9yIGludGVyZmFjZTwvYj4gLSBhIDx0dD5wdWJsaWM8L3R0PiBjbGFzcyBvciBpbnRlcmZhY2UgaW4KYW4gQVBJIHBhY2thZ2UsIG9yIGEgPHR0PnB1YmxpYzwvdHQ+IG9yIDx0dD5wcm90ZWN0ZWQ8L3R0PiBjbGFzcyBvciBpbnRlcmZhY2UKbWVtYmVyIGRlY2xhcmVkIGluLCBvciBpbmhlcml0ZWQgYnksIHNvbWUgb3RoZXIgQVBJIGNsYXNzIG9yIGludGVyZmFjZS4KVGhlIG5hbWVzIG9mIEFQSSBjbGFzc2VzIGFuZCBpbnRlcmZhY2VzIG1heSBsZWdpdGltYXRlbHkgYXBwZWFyIGluIGNsaWVudApjb2RlLjwvbGk+Cgo8bGk+CjxiPkFQSSBtZXRob2Qgb3IgY29uc3RydWN0b3I8L2I+IC0gYSA8dHQ+cHVibGljPC90dD4gb3IgPHR0PnByb3RlY3RlZDwvdHQ+Cm1ldGhvZCBvciBjb25zdHJ1Y3RvciBlaXRoZXIgZGVjbGFyZWQgaW4sIG9yIGluaGVyaXRlZCBieSwgYW4gQVBJIGNsYXNzCm9yIGludGVyZmFjZS4gVGhlIG5hbWVzIG9mIEFQSSBtZXRob2RzIG1heSBsZWdpdGltYXRlbHkgYXBwZWFyIGluIGNsaWVudApjb2RlLjwvbGk+Cgo8bGk+CjxiPkFQSSBmaWVsZDwvYj4gLSBhIDx0dD5wdWJsaWM8L3R0PiBvciA8dHQ+cHJvdGVjdGVkPC90dD4gZmllbGQgZWl0aGVyCmRlY2xhcmVkIGluLCBvciBpbmhlcml0ZWQgYnksIGFuIEFQSSBjbGFzcyBvciBpbnRlcmZhY2UuIFRoZSBuYW1lcyBvZiBBUEkKZmllbGRzIG1heSBsZWdpdGltYXRlbHkgYXBwZWFyIGluIGNsaWVudCBjb2RlLjwvbGk+CjwvdWw+CkV2ZXJ5dGhpbmcgZWxzZSBpcyBjb25zaWRlcmVkIGludGVybmFsIGltcGxlbWVudGF0aW9uIGRldGFpbCBhbmQgb2ZmIGxpbWl0cwp0byBhbGwgY2xpZW50cy4gTGVnaXRpbWF0ZSBjbGllbnQgY29kZSBtdXN0IG5ldmVyIHJlZmVyZW5jZSB0aGUgbmFtZXMgb2YKbm9uLUFQSSBlbGVtZW50cyAobm90IGV2ZW4gdXNpbmcgSmF2YSByZWZsZWN0aW9uKS4gSW4gc29tZSBjYXNlcywgdGhlIEphdmEKbGFuZ3VhZ2UncyBuYW1lIGFjY2Vzc2liaWxpdHkgcnVsZXMgYXJlIHVzZWQgdG8gZGlzYWxsb3cgaWxsZWdhbCByZWZlcmVuY2VzLgpIb3dldmVyLCB0aGVyZSBhcmUgbWFueSBjYXNlcyB3aGVyZSB0aGlzIGlzIHNpbXBseSBub3QgcG9zc2libGUuIE9ic2VydmluZwp0aGlzIG9uZSBzaW1wbGUgcnVsZSBhdm9pZHMgdGhlIHByb2JsZW0gY29tcGxldGVseToKPHVsPgo8bGk+CjxiPlN0aWNrIHRvIG9mZmljaWFsbHkgZG9jdW1lbnRlZCBBUElzLiA8L2I+T25seSByZWZlcmVuY2UgcGFja2FnZXMgdGhhdAphcmUgZG9jdW1lbnRlZCBpbiB0aGUgPGI+PGk+cHVibGlzaGVkIEFQSSBKYXZhZG9jPC9pPjwvYj4gZm9yIHRoZSBjb21wb25lbnQuCk5ldmVyIHJlZmVyZW5jZSBhIHBhY2thZ2UgYmVsb25naW5nIHRvIGFub3RoZXIgY29tcG9uZW50IHRoYXQgaGFzICJpbnRlcm5hbCIKaW4gaXRzIG5hbWUtLS10aGVzZSBhcmUgbmV2ZXIgQVBJLiBOZXZlciByZWZlcmVuY2UgYSBwYWNrYWdlIGZvciB3aGljaAp0aGVyZSBpcyBubyBwdWJsaXNoZWQgQVBJIEphdmFkb2MtLS10aGVzZSBhcmUgbm90IEFQSSBlaXRoZXIuPC9saT4KPC91bD4KCjxoMz4KR2VuZXJhbCBSdWxlczwvaDM+ClRoZSBzcGVjaWZpY2F0aW9uIG9mIEFQSSBlbGVtZW50cyBpcyBnZW5lcmF0ZWQgZnJvbSBKYXZhZG9jIGNvbW1lbnRzIGluCnRoZSBlbGVtZW50J3MgSmF2YSBzb3VyY2UgY29kZS4gRm9yIHNvbWUgdHlwZXMgb2YgZWxlbWVudHMsIHRoZSBzcGVjaWZpY2F0aW9uCmlzIGluIHRoZSBmb3JtIG9mIGEgY29udHJhY3QuIEZvciBleGFtcGxlLCBpbiB0aGUgY2FzZSBvZiBtZXRob2RzLCB0aGUKY29udHJhY3QgaXMgYmV0d2VlbiB0d28gcGFydGllcywgdGhlIGNhbGxlciBvZiB0aGUgbWV0aG9kIGFuZCB0aGUgaW1wbGVtZW50b3IKb2YgdGhlIG1ldGhvZC4gVGhlIGZ1bmRhbWVudGFsIGdyb3VuZCBydWxlIGlzOgo8dWw+CjxsaT4KPGI+SG9ub3IgYWxsIGNvbnRyYWN0cy48L2I+IFRoZSBjb250cmFjdHMgYXJlIGRlc2NyaWJlZCBpbiB0aGUgcHVibGlzaGVkCkphdmFkb2MgZm9yIHRoZSBBUEkgZWxlbWVudHMgeW91IGFyZSB1c2luZy48L2xpPgo8L3VsPgpUaGUgdGVybSAibXVzdCIsIHdoZW4gdXNlZCBpbiBhbiBBUEkgY29udHJhY3QsIG1lYW5zIHRoYXQgaXQgaXMgaW5jdW1iZW50Cm9uIHRoZSBwYXJ0eSB0byBlbnN1cmUgdGhhdCB0aGUgY29uZGl0aW9uIHdvdWxkIGFsd2F5cyBiZSBtZXQ7IGFueSBmYWlsdXJlCnRvIGRvIHNvIHdvdWxkIGJlIGNvbnNpZGVyZWQgYSBwcm9ncmFtbWluZyBlcnJvciB3aXRoIHVuc3BlY2lmaWVkIChhbmQKcGVyaGFwcyB1bnByZWRpY3RhYmxlKSBjb25zZXF1ZW5jZXMuCjx1bD4KPGxpPgo8Yj5Zb3UgbXVzdCBob25vciAibXVzdCIuIDwvYj5QYXkgZXNwZWNpYWxseSBjbG9zZSBoZWVkIHRvIGNvbmRpdGlvbnMgd2hlcmUKIm11c3QiIGlzIHVzZWQuPC9saT4KPC91bD4KT3RoZXIgY29tbW9uIHNlbnNlIHJ1bGVzOgo8dWw+CjxsaT4KPGI+RG8gbm90IHJlbHkgb24gaW5jaWRlbnRhbCBiZWhhdmlvci4gPC9iPkluY2lkZW50YWwgYmVoYXZpb3IgaXMgYmVoYXZpb3IKb2JzZXJ2ZWQgYnkgZXhwZXJpbWVudCBvciBpbiBwcmFjdGljZSwgYnV0IHdoaWNoIGlzIG5vdCBndWFyYW50ZWVkIGJ5IGFueQpBUEkgc3BlY2lmaWNhdGlvbi48L2xpPgoKPGxpPgo8Yj5EbyBub3QgdHJlYXQgbnVsbCBhcyBhbiBvYmplY3QuPC9iPiBOdWxsIGlzIG1vcmUgdGhlIGxhY2sgb2YgYW4gb2JqZWN0LgpBc3N1bWUgZXZlcnl0aGluZyBpcyBub24tbnVsbCB1bmxlc3MgdGhlIEFQSSBzcGVjaWZpY2F0aW9uIHNheXMgb3RoZXJ3aXNlLjwvbGk+Cgo8bGk+CjxiPkRvIG5vdCB0cnkgdG8gY2hlYXQgd2l0aCBKYXZhIHJlZmxlY3Rpb24uPC9iPiBVc2luZyBKYXZhIHJlZmxlY3Rpb24KdG8gY2lyY3VtdmVudCBKYXZhIGNvbXBpbGVyIGNoZWNraW5nIGJ1eXMgeW91IG5vdGhpbmcgbW9yZS4gVGhlcmUgYXJlIG5vCmFkZGl0aW9uYWwgQVBJIGNvbnRyYWN0cyBmb3IgdXNlcyBvZiByZWZsZWN0aW9uOyByZWZsZWN0aW9uIHNpbXBseSBpbmNyZWFzZXMKdGhlIGxpa2VsaWhvb2Qgb2YgcmVseWluZyBvbiB1bnNwZWNpZmllZCBiZWhhdmlvciBhbmQgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24KZGV0YWlsLjwvbGk+Cgo8bGk+CjxiPlVzZSB5b3VyIG93biBwYWNrYWdlcy4gPC9iPkRvIG5vdCBkZWNsYXJlIGNvZGUgaW4gYSBwYWNrYWdlIGJlbG9uZ2luZwp0byBhbm90aGVyIGNvbXBvbmVudC4gQWx3YXlzIGRlY2xhcmUgeW91ciBvd24gY29kZSBpbiB5b3VyIG93biBwYWNrYWdlcy48L2xpPgo8L3VsPgoKPGgzPgpDYWxsaW5nIHB1YmxpYyBBUEkgbWV0aG9kczwvaDM+CkZvciBtb3N0IGNsaWVudHMsIHRoZSBidWxrIG9mIHRoZSBFY2xpcHNlIEFQSSB0YWtlcyB0aGUgZm9ybSBvZiBwdWJsaWMKbWV0aG9kcyBvbiBBUEkgaW50ZXJmYWNlcyBvciBjbGFzc2VzLCBwcm92aWRlZCBmb3IgdGhlIGNsaWVudCB0byBjYWxsIHdoZW4KYXBwcm9wcmlhdGUuCjx1bD4KPGxpPgo8Yj5FbnN1cmUgcHJlY29uZGl0aW9ucy48L2I+IERvIGVuc3VyZSB0aGF0IGFuIEFQSSBtZXRob2QncyBwcmVjb25kaXRpb25zCmFyZSBtZXQgYmVmb3JlIGNhbGxpbmcgdGhlIG1ldGhvZC4gQ29udmVyc2VseSwgdGhlIGNhbGxlciBtYXkgc2FmZWx5IGFzc3VtZQp0aGF0IHRoZSBtZXRob2QncyBwb3N0Y29uZGl0aW9ucyB3aWxsIGhhdmUgYmVlbiBhY2hpZXZlZCBpbW1lZGlhdGVseSB1cG9uCnJldHVybiBmcm9tIHRoZSBjYWxsLjwvbGk+Cgo8bGk+CjxiPk51bGwgcGFyYW1ldGVycy48L2I+IERvIG5vdCBwYXNzIG51bGwgYXMgYSBwYXJhbWV0ZXIgdG8gYW4gQVBJIG1ldGhvZAp1bmxlc3MgdGhlIHBhcmFtZXRlciBpcyBleHBsaWNpdGx5IGRvY3VtZW50ZWQgYXMgYWxsb3dpbmcgbnVsbC4gVGhpcyBpcwpwZXJoYXBzIHRoZSBtb3N0IGZyZXF1ZW50bHkgbWFkZSBwcm9ncmFtbWluZyBlcnJvci48L2xpPgoKPGxpPgo8Yj5SZXN0cmljdGVkIGNhbGxlcnMuPC9iPiBEbyBub3QgY2FsbCBhbiBBUEkgbWV0aG9kIHRoYXQgaXMgZG9jdW1lbnRlZAphcyBhdmFpbGFibGUgb25seSB0byBjZXJ0YWluIGNhbGxlcnMgdW5sZXNzIHlvdSdyZSBvbmUgb2YgdGhlbS4gSW4gc29tZQpzaXR1YXRpb25zLCBtZXRob2RzIG5lZWQgdG8gYmUgcGFydCBvZiB0aGUgcHVibGljIEFQSSBmb3IgdGhlIGJlbmVmaXQgb2YKYSBjZXJ0YWluIGNsYXNzIG9mIGNhbGxlcnMgKG9mdGVuIGludGVybmFsKTsgY2FsbGluZyBvbmUgb2YgdGhlc2UgbWV0aG9kcwphdCB0aGUgd3JvbmcgdGltZSBoYXMgdW5zcGVjaWZpZWQgKGFuZCBwZXJoYXBzIHVucHJlZGljdGFibGUpIGNvbnNlcXVlbmNlcy48L2xpPgoKPGxpPgo8Yj5EZWJ1Z2dpbmcgbWV0aG9kcy48L2I+IERvIG5vdCBjYWxsIGFuIEFQSSBtZXRob2QgbGFiZWxsZWQgImZvciBkZWJ1Z2dpbmcKcHVycG9zZXMgb25seSIuIEZvciBleGFtcGxlLCBtb3N0IDx0dD50b1N0cmluZygpPC90dD4gbWV0aG9kcyBhcmUgaW4gdGhpcwpjYXRlZ29yeS48L2xpPgoKPGxpPgo8Yj5QYXJhbWV0ZXIgY2FwdHVyZS48L2I+IERvIG5vdCBwYXNzIGFuIGFycmF5LCBjb2xsZWN0aW9uLCBvciBvdGhlciBtdXRhYmxlCm9iamVjdCBhcyBhIHBhcmFtZXRlciB0byBhbiBBUEkgbWV0aG9kIGFuZCB0aGVuIG1vZGlmeSB0aGUgb2JqZWN0IHBhc3NlZAppbi4gVGhpcyBpcyBqdXN0IGFza2luZyBmb3IgdHJvdWJsZS48L2xpPgo8L3VsPgoKPGgzPgpJbnN0YW50aWF0aW5nIHBsYXRmb3JtIEFQSSBjbGFzc2VzPC9oMz4KTm90IGFsbCBjb25jcmV0ZSBBUEkgY2xhc3NlcyBhcmUgaW50ZW5kZWQgdG8gYmUgaW5zdGFudGlhdGVkIGJ5IGp1c3QgYW55b25lLgpBUEkgY2xhc3NlcyBoYXZlIGFuIGluc3RhbnRpYXRpb24gY29udHJhY3QgaW5kaWNhdGluZyB0aGUgdGVybXMgdW5kZXIgd2hpY2gKaW5zdGFuY2VzIG1heSBiZSBjcmVhdGVkLiBUaGUgY29udHJhY3QgbWF5IGFsc28gY292ZXIgdGhpbmdzIGxpa2UgcmVzaWR1YWwKaW5pdGlhbGl6YXRpb24gcmVzcG9uc2liaWxpdGllcyAoZm9yIGV4YW1wbGUsIGNvbmZpZ3VyaW5nIGEgY2VydGFpbiBwcm9wZXJ0eQpiZWZvcmUgdGhlIGluc3RhbmNlIGlzIGZ1bGx5IGFjdGl2ZSkgYW5kIGFzc29jaWF0ZWQgbGlmZWN5Y2xlIHJlc3BvbnNpYmlsaXRpZXMKKGZvciBleGFtcGxlLCBjYWxsaW5nIDx0dD5kaXNwb3NlKCk8L3R0PiB0byBmcmVlIHVwIE9TIHJlc291cmNlcyBodW5nIG9uCnRvIGJ5IHRoZSBpbnN0YW5jZSkuIENsYXNzZXMgdGhhdCBhcmUgZGVzaWduZWQgdG8gYmUgaW5zdGFudGlhdGVkIGJ5IGNsaWVudHMKYXJlIGV4cGxpY2l0bHkgZmxhZ2dlZCBpbiB0aGUgSmF2YWRvYyBjbGFzcyBjb21tZW50ICh3aXRoIHdvcmRzIGxpa2UgIkNsaWVudHMKbWF5IGluc3RhbnRpYXRlLiIpLgo8dWw+CjxsaT4KPGI+UmVzdHJpY3RlZCBpbnN0YW50aWF0b3JzLjwvYj4gRG8gbm90IGluc3RhbnRpYXRlIGFuIEFQSSBjbGFzcyB0aGF0IGlzCmRvY3VtZW50ZWQgYXMgYXZhaWxhYmxlIG9ubHkgdG8gY2VydGFpbiBwYXJ0aWVzIHVubGVzcyB5b3UncmUgb25lIG9mIHRoZW0uCkluIHNvbWUgc2l0dWF0aW9ucywgY2xhc3NlcyBuZWVkIHRvIGJlIHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkgZm9yIHRoZSBiZW5lZml0Cm9mIGEgY2VydGFpbiBwYXJ0eSAob2Z0ZW4gaW50ZXJuYWwpOyBpbnN0YW50aWF0aW5nIG9uZSBvZiB0aGVzZSBjbGFzc2VzCmluY29ycmVjdGx5IGhhcyB1bnNwZWNpZmllZCAoYW5kIHBlcmhhcHMgdW5wcmVkaWN0YWJsZSkgY29uc2VxdWVuY2VzLjwvbGk+CjwvdWw+Cgo8aDM+ClN1YmNsYXNzaW5nIHBsYXRmb3JtIEFQSSBjbGFzc2VzPC9oMz4KT25seSBhIHN1YnNldCBvZiB0aGUgQVBJIGNsYXNzZXMgd2VyZSBkZXNpZ25lZCB0byBiZSBzdWJjbGFzc2VkLiBBUEkgY2xhc3NlcwpoYXZlIGEgc3ViY2xhc3MgY29udHJhY3QgaW5kaWNhdGluZyB0aGUgdGVybXMgdW5kZXIgd2hpY2ggc3ViY2xhc3NlcyBtYXkKYmUgZGVjbGFyZWQuIFRoaXMgY29udHJhY3QgYWxzbyBjb3ZlcnMgaW5pdGlhbGl6YXRpb24gcmVzcG9uc2liaWxpdGllcwphbmQgbGlmZWN5Y2xlIHJlc3BvbnNpYmlsaXRpZXMuIENsYXNzZXMgdGhhdCBhcmUgZGVzaWduZWQgdG8gYmUgc3ViY2xhc3NlZApieSBjbGllbnRzIGFyZSBleHBsaWNpdGx5IGZsYWdnZWQgaW4gdGhlIEphdmFkb2MgY2xhc3MgY29tbWVudCAod2l0aCB3b3JkcwpsaWtlICJDbGllbnRzIG1heSBzdWJjbGFzcy4iKS4KPHVsPgo8bGk+CjxiPlJlc3RyaWN0ZWQgc3ViY2xhc3NlcnMuPC9iPiBEbyBub3Qgc3ViY2xhc3MgYW4gQVBJIGNsYXNzIHRoYXQgaXMgbm90CmludGVuZGVkIHRvIGJlIHN1YmNsYXNzZWQuIFRyZWF0IHRoZXNlIGNsYXNzZXMgYXMgaWYgdGhleSBoYWQgYmVlbiBkZWNsYXJlZApmaW5hbC4gKFRoZXNlIGFyZSBzb21ldGltZXMgcmVmZXJyZWQgdG8gYXMgInNvZnQgZmluYWwiIGNsYXNzZXMpLjwvbGk+CjwvdWw+Cgo8aDM+CkNhbGxpbmcgcHJvdGVjdGVkIEFQSSBtZXRob2RzPC9oMz4KQ2FsbGluZyBpbmhlcml0ZWQgcHJvdGVjdGVkIGFuZCBwdWJsaWMgbWV0aG9kcyBmcm9tIHdpdGhpbiBhIHN1YmNsYXNzIGlzCmdlbmVyYWxseSBhbGxvd2VkOyBob3dldmVyLCB0aGlzIG9mdGVuIHJlcXVpcmVzIG1vcmUgY2FyZSB0byBjb3JyZWN0bHkKY2FsbCB0aGFuIHRvIGNhbGwgcHVibGljIG1ldGhvZHMgZnJvbSBvdXRzaWRlIHRoZSBoaWVyYXJjaHkuCjxoMz4KT3ZlcnJpZGluZyBBUEkgbWV0aG9kczwvaDM+Ck9ubHkgYSBzdWJzZXQgb2YgdGhlIHB1YmxpYyBhbmQgcHJvdGVjdGVkIEFQSSBtZXRob2RzIHdlcmUgZGVzaWduZWQgdG8KYmUgb3ZlcnJpZGRlbi4gRWFjaCBBUEkgbWV0aG9kIGhhcyBhIHN1YmNsYXNzIGNvbnRyYWN0IGluZGljYXRpbmcgdGhlIHRlcm1zCnVuZGVyIHdoaWNoIGEgc3ViY2xhc3MgbWF5IG92ZXJyaWRlIGl0LiBCeSBkZWZhdWx0LCBvdmVycmlkaW5nIGlzIG5vdCBwZXJtaXR0ZWQuCkl0IGlzIGltcG9ydGFudCB0byBjaGVjayB0aGUgc3ViY2xhc3MgY29udHJhY3Qgb24gdGhlIGFjdHVhbCBtZXRob2QgaW1wbGVtZW50YXRpb24KYmVpbmcgb3ZlcnJpZGRlbjsgdGhlIHRlcm1zIG9mIHN1YmNsYXNzIGNvbnRyYWN0cyBhcmUgbm90IGF1dG9tYXRpY2FsbHkKcGFzc2VkIGFsb25nIHdoZW4gdGhhdCBtZXRob2QgaXMgb3ZlcnJpZGRlbi4KPHVsPgo8bGk+CjxiPkRvIG5vdCBvdmVycmlkZSBhIHB1YmxpYyBvciBwcm90ZWN0ZWQgQVBJIG1ldGhvZCB1bmxlc3MgaXQgaXMgZXhwbGljaXRseQphbGxvd2VkLjwvYj4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIHRyZWF0IGFsbCBtZXRob2RzIGFzIGlmIHRoZXkgaGFkCmJlZW4gZGVjbGFyZWQgZmluYWwuIChUaGVzZSBhcmUgc29tZXRpbWVzIGtub3duIGFzICJzb2Z0IGZpbmFsIiBtZXRob2RzKS4KSWYgdGhlIGtpbmQgb2Ygb3ZlcnJpZGluZyBhbGxvd2VkIGlzOjwvbGk+Cgo8dWw+IjxiPmltcGxlbWVudDwvYj4iIC0gdGhlIGFic3RyYWN0IG1ldGhvZCBkZWNsYXJlZCBvbiB0aGUgc3ViY2xhc3MgbXVzdApiZSBpbXBsZW1lbnRlZCBieSBhIGNvbmNyZXRlIHN1YmNsYXNzCjxicj4iPGI+ZXh0ZW5kPC9iPiIgLSB0aGUgbWV0aG9kIGRlY2xhcmVkIG9uIHRoZSBzdWJjbGFzcyBtdXN0IGludm9rZSB0aGUKbWV0aG9kIG9uIHRoZSBzdXBlcmNsYXNzIChleGFjdGx5IG9uY2UpCjxicj4iPGI+cmUtaW1wbGVtZW50PC9iPiIgLSB0aGUgbWV0aG9kIGRlY2xhcmVkIG9uIHRoZSBzdWJjbGFzcyBtdXN0IG5vdAppbnZva2UgdGhlIG1ldGhvZCBvbiB0aGUgc3VwZXJjbGFzcwo8YnI+IjxiPm92ZXJyaWRlPC9iPiIgLSB0aGUgbWV0aG9kIGRlY2xhcmVkIG9uIHRoZSBzdWJjbGFzcyBpcyBmcmVlIHRvCmludm9rZSB0aGUgbWV0aG9kIG9uIHRoZSBzdXBlcmNsYXNzIGFzIGl0IHNlZXMgZml0PC91bD4KCjxsaT4KPGI+RW5zdXJlIHBvc3Rjb25kaXRpb25zLiA8L2I+RG8gZW5zdXJlIHRoYXQgYW55IHBvc3Rjb25kaXRpb25zIHNwZWNpZmllZApmb3IgdGhlIEFQSSBtZXRob2QgYXJlIG1ldCBieSB0aGUgaW1wbGVtZW50YXRpb24gdXBvbiByZXR1cm4uPC9saT4KCjxsaT4KPGI+UHJvYWN0aXZlbHkgY2hlY2sgcHJlY29uZGl0aW9ucy4gPC9iPkRvIG5vdCBwcmVzdW1lIHRoYXQgcHJlY29uZGl0aW9ucwpzcGVjaWZpZWQgZm9yIHRoZSBBUEkgbWV0aG9kIGhhdmUgbmVjZXNzYXJpbHkgYmVlbiBtZXQgdXBvbiBlbnRyeS4gQWx0aG91Z2gKdGhlIG1ldGhvZCBpbXBsZW1lbnRhdGlvbiB3b3VsZCBiZSB3aXRoaW4gaXRzIHJpZ2h0cyB0byBub3QgY2hlY2sgc3BlY2lmaWVkCnByZWNvbmRpdGlvbnMsIGl0IGlzIHVzdWFsbHkgYSBnb29kIGlkZWEgdG8gY2hlY2sgcHJlY29uZGl0aW9ucyAod2hlbiBmZWFzaWJsZQphbmQgcmVhc29uYWJseSBpbmV4cGVuc2l2ZSkgaW4gb3JkZXIgdG8gYmxvdyB0aGUgd2hpc3RsZSBvbiBtaXNiZWhhdmluZwpjYWxsZXJzLjwvbGk+Cgo8bGk+CjxiPk51bGwgcmVzdWx0LiA8L2I+RG8gbm90IHJldHVybiBudWxsIGFzIGEgcmVzdWx0IGZyb20gYW4gQVBJIG1ldGhvZCB1bmxlc3MKdGhlIHJlc3VsdCBpcyBleHBsaWNpdGx5IGRvY3VtZW50ZWQgKG9uIHRoZSBzcGVjaWZ5aW5nIGludGVyZmFjZSBvciBzdXBlcmNsYXNzKQphcyBhbGxvd2luZyBudWxsLjwvbGk+Cgo8bGk+CjxiPlJldHVybiBjb3BpZXMuIDwvYj5EbyBub3QgcmV0dXJuIGFuIGlycmVwbGFjZWFibGUgYXJyYXksIGNvbGxlY3Rpb24sCm9yIG90aGVyIG11dGFibGUgb2JqZWN0IGFzIHRoZSByZXN1bHQgZnJvbSBhbiBBUEkgbWV0aG9kLiBBbHdheXMgcmV0dXJuCmEgY29weSB0byBhdm9pZCB0cm91YmxlIGZyb20gY2FsbGVycyB0aGF0IG1pZ2h0IG1vZGlmeSB0aGUgb2JqZWN0LjwvbGk+CjwvdWw+Cgo8aDM+CkltcGxlbWVudGluZyBwbGF0Zm9ybSBBUEkgaW50ZXJmYWNlczwvaDM+Ck9ubHkgYSBzdWJzZXQgb2YgdGhlIEFQSSBpbnRlcmZhY2VzIHdlcmUgZGVzaWduZWQgdG8gYmUgaW1wbGVtZW50ZWQgYnkKY2xpZW50cy4gQVBJIGludGVyZmFjZXMgaGF2ZSBhIGNvbnRyYWN0IGluZGljYXRpbmcgdGhlIHRlcm1zIHVuZGVyIHdoaWNoCml0IG1heSBiZSBpbXBsZW1lbnRlZC4gSW50ZXJmYWNlcyB0aGF0IGFyZSBkZXNpZ25lZCB0byBiZSBpbXBsZW1lbnRlZCBieQpjbGllbnRzIGFyZSBleHBsaWNpdGx5IGZsYWdnZWQgaW4gdGhlIEphdmFkb2MgY2xhc3MgY29tbWVudCAod2l0aCB3b3JkcwpsaWtlICJDbGllbnRzIG1heSBpbXBsZW1lbnQuIikuIEEgY2xpZW50IG1heSBkZWNsYXJlIGEgc3ViaW50ZXJmYWNlIG9mCmFuIEFQSSBpbnRlcmZhY2UgaWYgYW5kIG9ubHkgaWYgdGhleSBhcmUgYWxsb3dlZCB0byBpbXBsZW1lbnQgaXQuCjx1bD4KPGxpPgo8Yj5SZXN0cmljdGVkIGltcGxlbWVudG9ycy48L2I+IERvIG5vdCBpbXBsZW1lbnQgYW4gQVBJIGludGVyZmFjZSB0aGF0CmlzIGRvY3VtZW50ZWQgYXMgYXZhaWxhYmxlIG9ubHkgdG8gY2VydGFpbiBwYXJ0aWVzIHVubGVzcyB5b3UncmUgb25lIG9mCnRoZW0uIEluIG1hbnkgc2l0dWF0aW9ucywgaW50ZXJmYWNlcyBhcmUgdXNlZCB0byBoaWRlIGludGVybmFsIGltcGxlbWVudGF0aW9uCmRldGFpbHMgZnJvbSB2aWV3LjwvbGk+CjwvdWw+Cgo8aDM+CkltcGxlbWVudGluZyBwdWJsaWMgQVBJIG1ldGhvZHM8L2gzPgpTZWUgIk92ZXJyaWRpbmcgQVBJIG1ldGhvZHMiLgo8aDM+CkFjY2Vzc2luZyBGaWVsZHMgaW4gQVBJIGNsYXNzZXMgYW5kIGludGVyZmFjZXM8L2gzPgpDbGllbnRzIG1heSByZWFkIEFQSSBmaWVsZHMsIG1vc3Qgb2Ygd2hpY2ggYXJlIGZpbmFsLiBDZXJ0YWluIHN0cnVjdC1saWtlCm9iamVjdHMgbWF5IGhhdmUgbm9uLWZpbmFsIHB1YmxpYyBmaWVsZHMsIHdoaWNoIGNsaWVudHMgbWF5IHJlYWQgYW5kIHdyaXRlCnVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLgo8dWw+CjxsaT4KPGI+TnVsbCBmaWVsZHMuPC9iPiBEbyBub3Qgc2V0IGFuIEFQSSBmaWVsZCB0byBudWxsIHVubGVzcyB0aGlzIGlzIGV4cGxpY2l0bHkKYWxsb3dlZC48L2xpPgo8L3VsPgoKPGgzPgpDYXN0aW5nIE9iamVjdHMgb2YgYSBrbm93biBBUEkgdHlwZTwvaDM+CkFuIG9iamVjdCBvZiBhIGtub3duIEFQSSB0eXBlIG1heSBvbmx5IGJlIGNhc3QgdG8gYSBkaWZmZXJlbnQgQVBJIHR5cGUKKG9yIGNvbmRpdGlvbmFsbHkgY2FzdCB1c2luZyBpbnN0YW5jZW9mKSBpZiB0aGlzIGlzIGV4cGxpY2l0bHkgYWxsb3dlZAppbiB0aGUgQVBJLgo8dWw+CjxsaT4KPGI+Q2FzdCBhbmQgaW5zdGFuY2VvZi48L2I+IERvIG5vdCB1c2UgaW5zdGFuY2VvZiBhbmQgY2FzdCBleHByZXNzaW9ucwp0byBpbmNyZWFzZSB3aGF0IGlzIGtub3duIGFib3V0IGFuIG9iamVjdCBiZXlvbmQgd2hhdCB0aGUgQVBJIHN1cHBvcnRzLgpJbXByb3BlciB1c2UgZXhwb3NlcyBpbmNpZGVudGFsIGltcGxlbWVudGF0aW9uIGRldGFpbHMgbm90IGd1YXJhbnRlZWQgYnkKdGhlIEFQSS48L2xpPgo8L3VsPgpBbmQsIG9mIGNvdXJzZSwgY2FzdGluZyBhbnkgb2JqZWN0IHRvIGEgbm9uLUFQSSBjbGFzcyBvciBpbnRlcmZhY2UgaXMgYWx3YXlzCmluYXBwcm9wcmlhdGUuCjxoMz4KTm90IEZvbGxvd2luZyB0aGUgUnVsZXM8L2gzPgpXaGV0aGVyIGRvbmUga25vd2luZ2x5IG9yIHVud2l0dGluZ2x5LCB0aGVyZSBhcmUgY29uc2VxdWVuY2VzIGZvciB0cmFuc2dyZXNzaW5nIAp0aGUgcnVsZXMuIEl0IG1pZ2h0IGJlIGVhc2llciBmb3IgYWxsIGludm9sdmVkIGlmIHRoZXJlIHdlcmUgQVBJIHBvbGljZSB0aGF0IHdvdWxkIApidXN0IHlvdSBmb3IgYnJlYWtpbmcgdGhlIHJ1bGVzLiBIb3dldmVyLCB0aGF0IGlzIG5vdCB0aGUgY2FzZS4gRm9yIHRoZSBtb3N0IHBhcnQsIApBUEkgY29uZm9ybWFuY2Ugb3BlcmF0ZXMgYXMgYW4gaG9ub3Igc3lzdGVtLCB3aXRoIGVhY2ggY2xpZW50IHJlc3BvbnNpYmxlIGZvciAKa25vd2luZyB0aGUgcnVsZXMgYW5kIGFkaGVyaW5nIHRvIHRoZW0uIAo8cD5UaGUgY29udHJhY3RzIG9uIHRoZSBBUEkgZWxlbWVudHMgZGVsaW1pdCB0aGUgYmVoYXZpb3IgdGhhdCBpcyBzdXBwb3J0ZWQKYW5kIHN1c3RhaW5lZC4gQXMgdGhlIEVjbGlwc2UgcGxhdGZvcm0gbWF0dXJlcyBhbmQgZXZvbHZlcywgaXQgd2lsbCBiZQp0aGUgQVBJIGNvbnRyYWN0cyB0aGF0IGd1aWRlIGhvdyB0aGlzIGV2b2x1dGlvbiBoYXBwZW5zLiBPdXRzaWRlIG9mIHRoZXNlCmNvbnRyYWN0cywgZXZlcnl0aGluZyBpcyB1bnN1cHBvcnRlZCBhbmQgc3ViamVjdCB0byBjaGFuZ2UsIHdpdGhvdXQgbm90aWNlLAphbmQgYXQgYW55IHRpbWUgKGV2ZW4gbWlkLXJlbGVhc2Ugb3IgYmV0d2VlbiBkaWZmZXJlbnQgT1MgcGxhdGZvcm1zKS4gQ2xpZW50CmNvZGUgdGhhdCBvdmVyc3RlcHMgdGhlIGFib3ZlIHJ1bGVzIG1pZ2h0IGZhaWwgb24gZGlmZmVyZW50IHZlcnNpb25zIGFuZApwYXRjaCBsZXZlbHMgb2YgdGhlIHBsYXRmb3JtOyBvciB3aGVuIHJ1biBvbiBkaWZmZXJlbnQgdW5kZXJseWluZyBPU2VzOwpvciB3aGVuIHJ1biB3aXRoIGEgZGlmZmVyZW50IG1peCBvZiBjby1yZXNpZGVudCBwbHVnLWluczsgb3Igd2hlbiBydW4gd2l0aAphIGRpZmZlcmVudCB3b3JrYmVuY2ggcGVyc3BlY3RpdmU7IGFuZCBzbyBvbi4gSW5kZWVkLCBubyBvbmUgaXMgZXZlbiBwYXJ0aWN1bGFybHkKaW50ZXJlc3RlZCBpbiBzcGVjdWxhdGluZyBleGFjdGx5IGhvdyBhbnkgcGFydGljdWxhciB0cmFuc2dyZXNzaW9uIG1pZ2h0CmNvbWUgYmFjayB0byBiaXRlIHlvdS4gVG8gdGhvc2Ugd2hvIGNob29zZSB0byBpZ25vcmUgdGhlIHJ1bGVzLCBkb24ndCBzYXkKdGhhdCB5b3Ugd2VyZW4ndCB3YXJuZWQuIEFuZCBkb24ndCBleHBlY3QgbXVjaCBtb3JlIHRoYW4gYSBzeW1wYXRoZXRpYwoiVG9sZCB5b3Ugc28uIgo8cD5PbiB0aGUgb3RoZXIgaGFuZCwgY2xpZW50IHBsdWctaW4gY29kZSB0aGF0IGxpdmVzIGJ5IHRoZSBhYm92ZSBydWxlcwpzaG91bGQgY29udGludWUgdG8gd29yayBhY3Jvc3MgZGlmZmVyZW50IHZlcnNpb25zIGFuZCBwYXRjaCBsZXZlbHMgb2YgdGhlCnBsYXRmb3JtLCBhY3Jvc3MgZGlmZmVyZW50IHVuZGVybHlpbmcgT1NlcywgYW5kIHNob3VsZCBwZWFjZWZ1bGx5IGNvLWV4aXN0CndpdGggb3RoZXIgcGx1Zy1pbnMuIElmIGV2ZXJ5b25lIHBsYXlzIGJ5IHRoZSBydWxlcywgdGhlIEVjbGlwc2UgcGxhdGZvcm0Kd2lsbCBwcm92aWRlIGEgc3RhYmxlIGFuZCBzdXBwb3J0ZWQgYmFzZSBvbiB3aGljaCB0byBidWlsZCBleGNpdGluZyBuZXcKcHJvZHVjdHMuCgo8cD48c21hbGw+SmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhbmQgbG9nb3MgYXJlIHRyYWRlbWFya3Mgb3IgcmVnaXN0ZXJlZAp0cmFkZW1hcmtzIG9mIFN1biBNaWNyb3N5c3RlbXMsIEluYy4gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IKYm90aC48L3NtYWxsPjwvcD4KPC9ib2R5Pgo8L2h0bWw+Cg==