Return-Path: X-Original-To: apmail-ctakes-dev-archive@www.apache.org Delivered-To: apmail-ctakes-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 75E5B1790D for ; Sat, 10 Jan 2015 00:18:15 +0000 (UTC) Received: (qmail 68969 invoked by uid 500); 10 Jan 2015 00:18:16 -0000 Delivered-To: apmail-ctakes-dev-archive@ctakes.apache.org Received: (qmail 68914 invoked by uid 500); 10 Jan 2015 00:18:16 -0000 Mailing-List: contact dev-help@ctakes.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ctakes.apache.org Delivered-To: mailing list dev@ctakes.apache.org Received: (qmail 68886 invoked by uid 99); 10 Jan 2015 00:18:14 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 10 Jan 2015 00:18:14 +0000 X-ASF-Spam-Status: No, hits=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of Sean.Finan@childrens.harvard.edu designates 134.174.20.73 as permitted sender) Received: from [134.174.20.73] (HELO mailsmtp3.childrenshospital.org) (134.174.20.73) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 10 Jan 2015 00:17:49 +0000 Received: from pps.filterd (mailsmtp3.childrenshospital.org [127.0.0.1]) by mailsmtp3.childrenshospital.org (8.15.0.59/8.15.0.59) with SMTP id t0A0BC8s016129 for ; Fri, 9 Jan 2015 19:15:45 -0500 Received: from smtpbdc1.chboston.org (smtpbdc1.chboston.org [10.20.18.104]) by mailsmtp3.childrenshospital.org with ESMTP id 1rtn76gtaq-1 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 09 Jan 2015 19:15:45 -0500 Received: from pps.filterd (smtpbdc1.chboston.org [127.0.0.1]) by smtpbdc1.chboston.org (8.15.0.59/8.15.0.59) with SMTP id t0A0BT4H023792 for ; Fri, 9 Jan 2015 19:15:44 -0500 Received: from chexhubcas4.chboston.org (chexhubcas4.chboston.org [10.20.50.92]) by smtpbdc1.chboston.org with ESMTP id 1rsbx9dxxh-1 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT) for ; Fri, 09 Jan 2015 19:15:44 -0500 Received: from CHEXMBX4A.CHBOSTON.ORG ([fe80::39e4:467b:9f1b:f1e4]) by CHEXHUBCAS4.CHBOSTON.ORG ([::1]) with mapi id 14.03.0169.001; Fri, 9 Jan 2015 19:15:44 -0500 From: "Finan, Sean" To: "dev@ctakes.apache.org" Subject: RE: dictionary lookup config for best F1 measure [was RE: cTakes Annotation Comparison : Span Overlap addendum Thread-Topic: dictionary lookup config for best F1 measure [was RE: cTakes Annotation Comparison : Span Overlap addendum Thread-Index: AdAsXj9QWtlx7RSbTIuWe9CDGNE2tQ== Date: Sat, 10 Jan 2015 00:15:44 +0000 Message-ID: <393252F14C42F946952F1ED75D316CAD3F4FFBCE@CHEXMBX4A.CHBOSTON.ORG> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.18.21.56] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2015-01-09_07:,, signatures=0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2015-01-09_07:,, signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 kscore.is_bulkscore=2.22044604925031e-16 compositescore=0.997184833539744 phishscore=0 kscore.is_spamscore=0 recipient_to_sender_totalscore=0 rbsscore=0.997184833539744 spamscore=0 urlsuspectscore=0.9 adultscore=0 kscore.compositescore=0 circleOfTrustscore=431.872 suspectscore=0 urlsuspect_oldscore=0.997184833539744 recipient_domain_to_sender_totalscore=3779 bulkscore=0 recipient_domain_to_sender_domain_totalscore=38868 recipient_to_sender_domain_totalscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1410280000 definitions=main-1501100000 X-Virus-Checked: Checked by ClamAV on apache.org SGkgSmFtZXMsDQoNCkkndmUgY2hlY2tlZCBpbiBhIGRlc2NyaXB0b3IgZm9yIHRoZSBVbWxzT3Zl cmxhcExvb2t1cEFubm90YXRvciBpbiBmYXN0L2Rlc2MvIC4gIEkgYWxzbyBjaGVja2VkIGluIGEg bW9kaWZpY2F0aW9uIGZvciB0aGUgQ3Vpc09ubHlQbGFpbnRleHRVTUxTUHJvY2Vzc29yLnhtbCB3 aXRoIHRoZSBPdmVybGFwIGFubm90YXRvciBjb21tZW50ZWQgb3V0IGFzIGFuIG9wdGlvbjoNCg0K ICAgICAgPGRlbGVnYXRlQW5hbHlzaXNFbmdpbmUga2V5PSJEaWN0aW9uYXJ5TG9va3VwQW5ub3Rh dG9yREIiPg0KICAgICAgICAgPCEtLSBVbWxzTG9va3VwQW5ub3RhdG9yIG9ubHkgZmluZHMgZXhh Y3Qgc3BhbiBtYXRjaGVzIC0tPg0KICAgICAgICAgPGltcG9ydCBsb2NhdGlvbj0iLi4vLi4vLi4v Y3Rha2VzLWRpY3Rpb25hcnktbG9va3VwLWZhc3QvZGVzYy9hbmFseXNpc19lbmdpbmUvVW1sc0xv b2t1cEFubm90YXRvci54bWwiLz4NCiAgICAgICAgIDwhLS0gVW1sc092ZXJsYXBMb29rdXBBbm5v dGF0b3IgZmluZHMgZXhhY3Qgc3BhbiBtYXRjaGVzIGFuZCBvdmVybGFwcGluZyBzcGFuIG1hdGNo ZXMgLS0+DQogICAgICAgICA8IS0tPGltcG9ydCBsb2NhdGlvbj0iLi4vLi4vLi4vY3Rha2VzLWRp Y3Rpb25hcnktbG9va3VwLWZhc3QvZGVzYy9hbmFseXNpc19lbmdpbmUvVW1sc092ZXJsYXBMb29r dXBBbm5vdGF0b3IueG1sIi8+LS0+DQogICAgICA8L2RlbGVnYXRlQW5hbHlzaXNFbmdpbmU+DQoN CkFzIGFuIGV4YW1wbGUgb2YgaXRzIGRpZmZlcmVuY2UgZnJvbSB0aGUgRGVmYXVsdCwgSSByYW4g dGhlIGV4YW1wbGUgY29sb24gY2FuY2VyIGRvY3VtZW50IGZyb20gdGh5bWUgYW5kIGl0IGZpbmRz IHRoZSBmb2xsb3dpbmc6DQoiYmxvb2Qgd2l0aCBzdG9vbCIgPiBDMTMyMTg5ODogYmxvb2QgaW4g c3Rvb2wNCiJwb2x5cHMsIGFsbCBhZGVub21hdG91cyIgPiBDMDIwNjY3NzogYWRlbm9tYXRvdXMg cG9seXBzDQoibGVzaW9ucyBpbiBoaXMgbGl2ZXIiID4gQzA1NzcwNTM6IGxlc2lvbiBvZiBsaXZl cg0KIlBBU1QgTUVESUNBTC9TVVJHSUNBTCBISVNUT1JZIiA+IEMwMjYyOTI2OiBtZWRpY2FsIGhp c3RvcnkgLCBDMDQ1NTQ1ODogcGFzdCBtZWRpY2FsIGhpc3RvcnkNCiJNRURJQ0FML1NVUkdJQ0FM IEhJU1RPUlkiID4gQzAyNjI5MjY6IG1lZGljYWwgaGlzdG9yeQ0KInRvbnNpbHMgYW5kIGFkZW5v aWRzIiA+IEMwNTgwNzg4OiB0b25zaWwgYW5kIGFkZW5vaWQgc3RydWN0dXJlIDsgdGhpcyBpcyBh bHNvIGZvdW5kIHdpdGhvdXQgb3ZlcmxhcCwgYnV0IG92ZXJsYXAgZmluZHMgaXQgYSBzZWNvbmQg dGltZQ0KInRvcm4gbGVmdCBBY2hpbGxlcyB0ZW5kb24iID4gQzAyNjM5NzA6IHJ1cHR1cmUgb2Yg QWNoaWxsZXMgdGVuZG9uDQoiYW5rbGUgc2NhciBvbiBsZWZ0IiA+IEMwMjMwNDQ4OiBzdHJ1Y3R1 cmUgb2YgbGVmdCBhbmtsZSAqDQoicHJvc3RhdGUsIG5vIG1hc3NlcyBwYWxwYWJsZSIgPiBDMDU3 NzI1MjogcHJvc3RhdGUgcGFscGFibGUNCiJjYW5jZXIgb2YgdGhlIGNlY3VtIiA+IEMwMTUzNDM3 OiBtYWxpZ25hbnQgbmVvcGxhc20gb2YgY2VjdW0gIDsgdGhpcyBpcyBhbHNvIGZvdW5kIHdpdGhv dXQgb3ZlcmxhcCwgYnV0IG92ZXJsYXAgZmluZHMgaXQgYSBzZWNvbmQgdGltZQ0KImNvbXBsaWNh dGlvbnMgb2YgYW5lc3RoZXNpYSIgPiBDMDM5MjAwODogY29tcGxpY2F0aW9uIG9mIGFuZXN0aGVz aWEgIDsgdGhpcyBpcyBhbHNvIGZvdW5kIHdpdGhvdXQgb3ZlcmxhcCwgYnV0IG92ZXJsYXAgZmlu ZHMgaXQgYSBzZWNvbmQgdGltZQ0KDQoqIE9uZSBpbXBvcnRhbnQgaXRlbSBpcyB0aGF0IHRoZSBv dmVybGFwIGFubm90YXRvciB1bmRlcnN0YW5kcyBkaXNjb250aWd1b3VzIHNwYW5zLiAgVGhlcmUg aXMsIGluIGZhY3QsIGEgLi4ubG9va3VwMi50ZXh0c3Bhbi5NdWx0aVRleHRTcGFuIGNsYXNzLiAg U28sIGZvciBpdGVtcyBzdWNoIGFzICJhbmtsZSBzY2FyIG9uIGxlZnQiIHRoZSBhbm5vdGF0b3Ig aXMgYWN0dWFsbHkgYW5ub3RhdGluZyBvbmx5ICJhbmtsZSAuLi4gbGVmdCIgYnV0IGl0IGhhcyB0 byBiZSBzdG9yZWQgaW4gdGhlIGNhcyBhcyBvbmUgYmlnIGhhcHB5IGFsYmVpdCB1bmRlcnNwZWNp ZmllZCBzcGFuLg0KDQpJIHRoaW5rIHRoYXQgSSBtZW50aW9uZWQgaW4gdGhlIHByZXZpb3VzIGVt YWlsIHRoYXQgdGhlIE92ZXJsYXAgYW5ub3RhdG9yIGhhcyBhIGNvdXBsZSBvZiBleHRyYSBwYXJh bWV0ZXJzLiAgVGhleSBhcmUgY2FsbGVkICJ0b3RhbFRva2VuU2tpcHMiIGFuZCAiY29uc2VjdXRp dmVUb2tlblNraXBzIi4gIFRoZSBuYW1lcyBhcmUgcHJldHR5IHNlbGYtZXhwbGFuYXRvcnk7IHRo ZSBhbGdvcml0aG0gd2lsbCBhbGxvdyBhIG1heGltdW0gbnVtYmVyIG9mIHRva2VucyB0byBiZSBz a2lwcGVkLCBjb25zZWN1dGl2ZSBvciBub3QsIGFzIGxvbmcgYXMgdGhlIHRvdGFsIG51bWJlciBv ZiBjb25zZWN1dGl2ZSB0b2tlbnMgdG8gYmUgc2tpcHBlZCBpcyBub3QgYWJvdmUgYSBjZXJ0YWlu IG51bWJlci4gIEZvciBpbnN0YW5jZSwgdG90YWw9NCBhbmQgY29uc2VjdXRpdmU9MiAodGhlIGRl ZmF1bHRzKSB3aWxsIG1hdGNoICJ0aGlzIGtpbmRhIHNvcnRhIHNob3VsZCBtYXliZSBob3BlZnVs bHkgbWF0Y2giIHdpdGggInRoaXMgc2hvdWxkIG1hdGNoIi4gIFRoaXMgaXMgcHJldHR5IGxlbmll bnQsIGJ1dCBzZWVtcyB0byB3b3JrIGluIG15IHRlc3RzLiAgInRoaXMga2luZGEtc29ydGEgc2hv dWxkIC4uLiIgd2lsbCBub3QgbWF0Y2ggLi4uIHRob3VnaCBtYXliZSAnLScgc2hvdWxkIGJlIGEg c3BlY2lhbCBjYXNlLiAgTGV0IG1lIGtub3cgd2hhdCB5b3UgdGhpbmsuDQoNCkVuam95LA0KU2Vh bg0KDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBNYXNhbnosIEphbWVzIEou IFttYWlsdG86TWFzYW56LkphbWVzQG1heW8uZWR1XSANClNlbnQ6IEZyaWRheSwgSmFudWFyeSAw OSwgMjAxNSAzOjU3IFBNDQpUbzogJ2RldkBjdGFrZXMuYXBhY2hlLm9yZycNClN1YmplY3Q6IGRp Y3Rpb25hcnkgbG9va3VwIGNvbmZpZyBmb3IgYmVzdCBGMSBtZWFzdXJlIFt3YXMgUkU6IGNUYWtl cyBBbm5vdGF0aW9uIENvbXBhcmlzb24NCg0KU2VhbiAob3Igb3RoZXJzKSwgDQoNCk9mIHRoZSB2 YXJpb3VzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBkZXNjcmliZWQgYmVsb3csIHdoaWNoIHZhbHVl cy9jaG9pY2VzIHdvdWxkIHlvdSByZWNvbW1lbmQgZm9yIGJlc3QgRjEgbWVhc3VyZSBmb3Igc29t ZXRoaW5nIGxpa2UgdGhlIHNoYXJlZCBjbGVmIDIwMTMgdGFzaz8NCmh0dHBzOi8vc2l0ZXMuZ29v Z2xlLmNvbS9zaXRlL3NoYXJlY2xlZmVoZWFsdGgvDQoNCkknbSBsb29raW5nIGZvciBzb21ldGhp bmcgdGhhdCBkb2Vzbid0IGhhdmUgdG8gYmUgdGhlIGJlc3Qgc3BlZWQtd2lzZSwgYnV0IHRoYXQg aXMgdGhlIHJlY29tbWVuZGVkIGZvciBvcHRpbWl6aW5nIEYxIG1lYXN1cmUuDQoNClJlZ2FyZHMs DQpKYW1lcyANCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IEZpbmFuLCBTZWFu IFttYWlsdG86U2Vhbi5GaW5hbkBjaGlsZHJlbnMuaGFydmFyZC5lZHVdIA0KU2VudDogRnJpZGF5 LCBEZWNlbWJlciAxOSwgMjAxNCAxMTo1NSBBTQ0KVG86IGRldkBjdGFrZXMuYXBhY2hlLm9yZzsg a2ltLmViZXJ0QGltYXRzb2x1dGlvbnMuY29tDQpTdWJqZWN0OiBSRTogY1Rha2VzIEFubm90YXRp b24gQ29tcGFyaXNvbg0KDQpXZWxsLCBJIGd1ZXNzIHRoYXQgaXQgaXMgdGltZSBmb3IgbWUgdG8g c3BlYWsgdXAg4oCmDQoNCkkgbXVzdCBzYXkgdGhhdCBJ4oCZbSBoYXBweSB0aGF0IHBlb3BsZSBh cmUgc2hvd2luZyBpbnRlcmVzdCBpbiB0aGUgZmFzdCBsb29rdXAuICBJIGFtIGFsc28gaGFwcHkg KHNvcnQgb2YpIHRoYXQgc29tZSBjb25jZXJucyBhcmUgYmVpbmcgcmFpc2VkIOKAkyBhbmQgdGhh dCB0aGVyZSBpcyBub3cgY29tbXVuaXR5IHBhcnRpY2lwYXRpb24gaW4gbXkgbGl0dGxlIHRveS4g IEkgIGhhdmUgc29tZSBjb25jZXJucyBhYm91dCB3aGF0IHBlb3BsZSBhcmUgcmVwb3J0aW5nLiAg VGhpcyBkb2VzIG5vdCBjb2luY2lkZSB3aXRoIHdoYXQgSSBoYXZlIHNlZW4gYXQgYWxsLiAgWWVz dGVyZGF5IEkgc3RhcnRlZCAod2l0aG91dCBrbm93aW5nIHRoaXMgdGhyZWFkIGV4aXN0ZWQpIHRl c3RpbmcgYSBiYXJlLW1pbmltdW0gcGlwZWxpbmUgZm9yIENVSSBleHRyYWN0aW9uLiAgSXQgaXMg anVzdCB0aGUgc3RyaXBwZWQtZG93biBBZ2dyZWdhdGUgd2l0aCBvbmx5OiBzZWdtZW50LCB0b2tl bnMsIHNlbnRlbmNlcywgUE9TLCBhbmQgdGhlIGZhc3QgbG9va3VwLiAgVGhlIHBlb3BsZSBhdCBD aGlsZHJlbuKAmXMgd2FudGVkIHRvIGtub3cgaG93IGZhc3Qgd2UgY291bGQgZ2V0LiAgMSwxOTYg bm90ZXMgaW4gdW5kZXIgOTAgc2Vjb25kcyBvbiBteSBsYXB0b3Agd2l0aCBvdmVyIDIxMCwwMDAg YW5ub3RhdGlvbnMsIHdoaWNoIGlzIDE3NS9ub3RlLiAgQWZ0ZXIgcmVhZGluZyB0aGUgdGhyZWFk IEkgZGVjaWRlZCB0byBydW4gdGhlIGZhc3QgbG9va3VwIHdpdGggc2V2ZXJhbCBjb25maWd1cmF0 aW9ucy4gIEkgYWxzbyByYW4gdGhlIGRlZmF1bHQgZm9yIDEwLjUgaG91cnMuICBJIGFtIGNvbXBh cmluZyB0aGUgYW5ub3RhdGlvbnMgZnJvbSBlYWNoIHN5c3RlbSBhZ2FpbnN0IHRoZSBodW1hbiBh bm5vdGF0aW9ucyB0aGF0IHdlIGhhdmUsIGFuZCBJIHdpbGwgbGV0IGV2ZXJ5Ym9keSBrbm93IHdo YXQgSSBmaW5kIOKAkyBmb3IgYmV0dGVyIG9yIHdvcnNlLg0KDQpUaGUgZmFzdCBsb29rdXAgZG9l cyBub3QgKG91dC1vZi1ib3gpIGRvIHRoZSBleGFjdCBzYW1lIHRoaW5nIGFzIHRoZSBkZWZhdWx0 LiAgU29tZSB0aGluZ3MgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gbWFrZSBpdCBtb3JlIGNsb3NlbHkg YXBwcm94aW1hdGUgdGhlIGRlZmF1bHQgZGljdGlvbmFyeS4NCg0KMS4gICAgICAgIFNldCB0aGUg bWluaW11bSBhbm5vdGF0aW9uIHNwYW4gbGVuZ3RoIHRvIDIgKGRlZmF1bHQgaXMgMykuICBUaGlz IGlzIGluIGRlc2MvW2FlXS9VbWxzTG9va3VwQW5ub3RhdG9yLnhtbCA6IGxpbmUgIzc4LiAgVGhl IGFubm90YXRvciBzaG91bGQgdGhlbiBwaWNrIHVwIHRleHQgbGlrZSDigJxDVOKAnSBhbmQgaW1w cm92ZSByZWNhbGwsIGJ1dCBpdCB3aWxsIGh1cnQgcHJlY2lzaW9uLg0KDQoyLiAgICAgICBTZXQg dGhlIExvb2t1cCBXaW5kb3cgdG8gTG9va3VwV2luZG93QW5ub3RhdGlvbi4gIFRoaXMgaXMgaW4g ZGVzYy9bYWVdL1VtbHNMb29rdXBBbm5vdGF0b3IueG1sOiBsaW5lcyAjNjUgJiAjOTMuICAgVGhl IExvb2t1cFdpbmRvd0Fubm90YXRvciB3aWxsIG5lZWQgdG8gYmUgYWRkZWQgdG8gdGhlIGFnZ3Jl Z2F0ZSBwaXBlbGluZSBBZ2dyZWdhdGVQbGFpbnRleHRGYXN0VU1MU1Byb2Nlc29yLnhtbCAgbGlu ZXMgIzUwICYgIzE3Mi4gIFRoaXMgd2lsbCBuYXJyb3cgdGhlIGxvb2t1cCB3aW5kb3cgYW5kIG1h eSBpbmNyZWFzZSBwcmVjaXNpb24sIGJ1dCAoaW4gbXkgZXhwZXJpZW5jZSkgcmVkdWNlcyByZWNh bGwuDQoNCjMuICAgICAgIEFsbG93IHRoZSDigJNyb3VnaC0gaWRlbnRpZmljYXRpb24gb2YgT3Zl cmxhcHBpbmcgc3BhbnMuICBUaGUgZGVmYXVsdCBkaWN0aW9uYXJ5IHdpbGwgb2Z0ZW4gaWRlbnRp ZnkgdGV4dCBsaWtlIOKAnG1ldGFzdGF0aWMgY29sb3JlY3RhbCBjYXJjaW5vbWHigJ0gd2hlbiB0 aGF0IHRleHQgYWN0dWFsbHkgZG9lcyBub3QgZXhpc3QgYW55d2hlcmUgaW4gdW1scy4gIEl0IGJh c2ljYWxseSBpZ25vcmVzIOKAnGNvbG9yZWN0YWzigJ0gYW5kIGdpdmVzIHRoZSB3aG9sZSBzcGFu IHRoZSBDVUkgZm9yIOKAnG1ldGFzdGF0aWMgY2FyY2lub21h4oCdLiAgSW4gdGhpcyBjYXNlIGl0 IGlzIGFyZ3VhYmx5IGEgZ29vZCB0aGluZy4gIEluIG1hbnkgb3RoZXJzIGl0IGlzIGFyZ3VhYmx5 IG5vdCBzbyBtdWNoLiAgVGhlcmUgaXMgYSBDbGFzcyAuLi4gbG9va3VwMi5hZS5PdmVybGFwSkNh c1Rlcm1Bbm5vdGF0b3IuamF2YSB0aGF0IHdpbGwgZG8gdGhlIHNhbWUgdGhpbmcuICBZb3UgY2Fu IGNyZWF0ZSBhIG5ldyBkZXNjL1thZV0vKkFubm90YXRvci54bWwgb3IganVzdCBjaGFuZ2UgdGhl IDxhbm5vdGF0b3JJbXBsZW1lbnRhdGlvbk5hbWU+IGluIGRlc2MvW2FlXS9VbWxzTG9va3VwQW5u b3RhdG9yLnhtbCBsaW5lICMyNS4gIEkgd2lsbCBjaGVjayBpbiBhIG5ldyBkZXNjIHhtbCAoc29y cnk7IHRob3VnaHQgSSBoYWQpIGJlY2F1c2UgdGhlcmUgYXJlIDIgcGFyYW1ldGVycyB1bmlxdWUg dG8gT3ZlcmxhcEpDYXNUZXJtQW5ub3RhdG9yDQoNCjQuICAgICAgIFlvdSBjYW4gcGxheSB3aXRo IHRoZSBPdmVybGFwSkNhc1Rlcm1Bbm5vdGF0b3IgcGFyYW1ldGVycyDigJxjb25zZWN1dGl2ZVNr aXBz4oCdIGFuZCDigJx0b3RhbFRva2VuU2tpcHPigJ0uICBUaGVzZSBjb250cm9sIGp1c3QgaG93 IGxlbmllbnQgeW91IHdhbnQgdGhlIG92ZXJsYXAgdGFnZ2luZyB0byBiZS4NCg0KNS4gICAgICAg Q3JlYXRlIGEgbmV3IGRpY3Rpb25hcnkgZGF0YWJhc2UuICBUaGVyZSBpcyBhIChiaXQgbWVzc3kp IERpY3Rpb25hcnlUb29sIGluIHNhbmRib3ggdGhhdCB3aWxsIGxldCB5b3UgZHVtcCB3aGF0ZXZl ciB5b3UgZG8gb3IgZG8gbm90IHdhbnQgZnJvbSBVTUxTIGludG8gYSBkYXRhYmFzZS4gIEl0IHdp bGwgYWxzbyBoZWxwIHlvdSBjbGVhbiB1cCBvciDigJNzZWxlY3QtIHN0b3JlZCBlbnRyaWVzIGFz IHdlbGwuICBUaGVyZSBpcyBhIGxvdCBvZiBnYXJiYWdlIGluIHRoZSBkZWZhdWx0IGRpY3Rpb25h cnkgZGF0YWJhc2U6IHJlcGVhdGVkIHRlcm1zIHdpdGggY2Fwcy9ubyBjYXBzICjigJxDYW5jZXLi gJ0s4oCdY2FuY2Vy4oCdKSwgdGV4dCB3aXRoIG1ldGFkYXRhICjigJxjYW5jZXIgW2ZpbmRpbmdd 4oCdKSBhbmQgdGV4dCB0aGF0IGp1c3QgY2x1dHRlcnMgKOKAnFBoZW5YOiBlbnRyeSBmb3IgY2Fu Y2Vy4oCdLCDigJwx4oCdLCDigJwy4oCdKS4gIFRoZSBmYXN0IGxvb2t1cCBkYXRhYmFzZSBzaG91 bGQgaGF2ZSBtb3N0IG9mIHRoZSBTbm9tZWQgYW5kIFJ4Tm9ybSB0ZXJtcyAoYW5kIHN5bm9ueW1z KSBvZiBpbnRlcmVzdCwgYnV0IHlvdSBjb3VsZCBhbHdheXMgbWFrZSBhIG5ldyBkYXRhYmFzZSB0 aGF0IGlzIG11Y2ggbW9yZSBpbmNsdXNpdmUuDQoNClRoZSBtYWluIGtleSB0byB0aGUgc3BlZWQg b2YgdGhlIGZhc3QgZGljdGlvbmFyeSBsb29rdXAgaXMgYWN0dWFsbHkg4oCmIHRoZSBrZXkuICBJ dCBpcyB0aGUgd2F5IHRoYXQgdGhlIGRhdGFiYXNlIGlzIGluZGV4ZWQgYW5kIHRoZSBsb29rdXAg Ynkg4oCccmFyZeKAnSB3b3JkIGluc3RlYWQgb2Yg4oCcZmlyc3TigJ0gd29yZC4gIEV2ZXJ5dGhp bmcgZWxzZSBjYW4gYmUgY2hhbmdlZCBhcm91bmQgaXQgYW5kIGl0IHNob3VsZCBzdGlsbCBiZSBh IGZhc3RlciB2ZXJzaW9uLg0KDQpBcyBmb3IgdGhlIGZhbHNlIHBvc2l0aXZlcyBsaWtlIOKAnFRv ZGF54oCdLCB0aGF0IHdpbGwgYWx3YXlzIGJlIGEgcHJvYmxlbSB1bnRpbCB3ZSBoYXZlIGRpc2Ft YmlndWF0aW9uLiAgVGhlIGxvb2t1cCBpcyBiYXNpY2FsbHkgYSBnbG9yaWZpZWQgZ3JlcC4NCg0K U2Vhbg0KDQpGcm9tOiBDaGVuLCBQZWkgW21haWx0bzpQZWkuQ2hlbkBjaGlsZHJlbnMuaGFydmFy ZC5lZHVdDQpTZW50OiBGcmlkYXksIERlY2VtYmVyIDE5LCAyMDE0IDEwOjQzIEFNDQpUbzogZGV2 QGN0YWtlcy5hcGFjaGUub3JnOyBraW0uZWJlcnRAaW1hdHNvbHV0aW9ucy5jb20NClN1YmplY3Q6 IFJFOiBjVGFrZXMgQW5ub3RhdGlvbiBDb21wYXJpc29uDQoNCkFsc28gY2hlY2sgb3V0IHN0YXRz IHRoYXQgU2VhbiByYW4gYmVmb3JlIHJlbGVhc2luZyB0aGUgbmV3IGNvbXBvbmVudCBvbjoNCmh0 dHA6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvY3Rha2VzL3RydW5rL2N0YWtlcy1kaWN0aW9u YXJ5LWxvb2t1cC1mYXN0L2RvYy9EaWN0aW9uYXJ5TG9va3VwU3RhdHMuZG9jeA0KRnJvbSB0aGUg ZXZhbHVhdGlvbiBhbmQgZXhwZXJpZW5jZSwgdGhlIG5ldyBsb29rdXAgYWxnb3JpdGhtIHNob3Vs ZCBiZSBhIGh1Z2UgaW1wcm92ZW1lbnQgaW4gdGVybXMgb2YgYm90aCBzcGVlZCBhbmQgYWNjdXJh Y3kuDQpUaGlzIGlzIHZlcnkgZGlmZmVyZW50IHRoYW4gd2hhdCBCcnVjZSBtZW50aW9uZWTigKYg IEnigJltIHN1cmUgU2VhbiB3aWxsIGNoaW1lIGhlcmUuDQooVGhlIG9sZCBkaWN0aW9uYXJ5IGxv b2t1cCBpcyBlc3NlbnRpYWxseSBvYnNvbGV0ZSBub3ctIHBsYWd1ZWQgd2l0aCBidWdzL2lzc3Vl cyBhcyB5b3UgbWVudGlvbmVkLikNCi0tUGVpDQoNCkZyb206IEtpbSBFYmVydCBbbWFpbHRvOmtp bS5lYmVydEBwZXJmZWN0c2VhcmNoY29ycC5jb21dDQpTZW50OiBGcmlkYXksIERlY2VtYmVyIDE5 LCAyMDE0IDEwOjI1IEFNDQpUbzogZGV2QGN0YWtlcy5hcGFjaGUub3JnPG1haWx0bzpkZXZAY3Rh a2VzLmFwYWNoZS5vcmc+DQpTdWJqZWN0OiBSZTogY1Rha2VzIEFubm90YXRpb24gQ29tcGFyaXNv bg0KDQpHdWVyZ2FuYSwNCg0KSSdtIGN1cmlvdXMgdG8gdGhlIG51bWJlciBvZiByZWNvcmRzIHRo YXQgYXJlIGluIHlvdXIgZ29sZCBzdGFuZGFyZCBzZXRzLCBvciBpZiB5b3VyIGdvbGQgc3RhbmRh cmQgc2V0IHdhcyBydW4gdGhyb3VnaCBhIGxvbmcgcnVubmluZyBjVEFLRVMgcHJvY2Vzcy4gSSBr bm93IGF0IHNvbWUgcG9pbnQgd2UgZml4ZWQgYSBidWcgaW4gdGhlIG9sZCBkaWN0aW9uYXJ5IGxv b2t1cCB0aGF0IGNhdXNlZCB0aGUgcGVybXV0YXRpb25zIHRvIGJlY29tZSBjb3JydXB0ZWQgb3Zl ciB0aW1lLiBUeXBpY2FsbHkgdGhpcyBpc24ndCBzZWVuIGluIHRoZSBmaXJzdCBmZXcgcmVjb3Jk cywgYnV0IG92ZXIgdGltZSBhcyBwYXR0ZXJucyBhcmUgdXNlZCB0aGUgcGVybXV0YXRpb25zIHdv dWxkIGJlY29tZSBjb3JydXB0ZWQuIFRoaXMgY2F1c2VkIGRvY3VtZW50cyB0aGF0IHdlcmUgZmVk IHRocm91Z2ggY1RBS0VTIG1vcmUgdGhhbiBvbmNlIHRvIGhhdmUgbGVzcyBjb2RlcyByZXR1cm5l ZCB0aGFuIHRoZSBmaXJzdCB0aW1lLg0KDQpGb3IgZXhhbXBsZSwgaWYgYSBwZXJtdXRhdGlvbiBv ZiA0LDIsMywxIHdhcyBmb3VuZCwgdGhlIHBlcm11dGF0aW9uIHdvdWxkIGJlIGNvcnJ1cHRlZCB0 byBiZSAxLDIsMyw0LiBJdCB3b3VsZCBubyBsb25nZXIgYmUgcG9zc2libGUgdG8gZGV0ZWN0IHBl cm11dGF0aW9ucyBvZiA0LDIsMywxIHVudGlsIGNUQUtFUyB3YXMgcmVzdGFydGVkLiBXZSBnb3Qg dGhlIGZpeCBpbiBhZnRlciB0aGUgY1RBS0VTIDMuMi4wIHJlbGVhc2UuIGh0dHBzOi8vaXNzdWVz LmFwYWNoZS5vcmcvamlyYS9icm93c2UvQ1RBS0VTLTMxMCBEZXBlbmRpbmcgdXBvbiB0aGUgY29y cHVzIHNpemUsIEkgY291bGQgc2VlIHRoZSBwZXJtdXRhdGlvbiBlbmdpbmUgZXZlbnR1YWxseSBv bmx5IGhhdmUgYSBzaW5nbGUgcGVybXV0YXRpb24gb2YgMSwyLDMsNC4NCg0KVHlwaWNhbGx5IHRo b3VnaCwgdGhpcyBpc24ndCB2ZXJ5IGVhc2lseSBkZXRlY3RlZCBpbiB0aGUgZmlyc3QgMTAwIG9y IHNvIGRvY3VtZW50cy4NCg0KV2UgZGlzY292ZXJlZCB0aGlzIGlzc3VlIHdoZW4gd2UgbWFkZSBj VEFLRVMgaGF2ZSBjb25zaXN0ZW50IG91dHB1dCBvZiBjb2RlcyBpbiBvdXIgc3lzdGVtLg0KDQpb SU1BVCBTb2x1dGlvbnNdPGh0dHA6Ly9pbWF0c29sdXRpb25zLmNvbT4NCktpbSBFYmVydA0KU29m dHdhcmUgRW5naW5lZXINCltPZmZpY2U6XTgwMS42NjkuNzM0Mg0Ka2ltLmViZXJ0QGltYXRzb2x1 dGlvbnMuY29tPG1haWx0bzpncmVnLmh1YmVydEBpbWF0c29sdXRpb25zLmNvbT4NCk9uIDEyLzE5 LzIwMTQgMDc6MDUgQU0sIFNhdm92YSwgR3VlcmdhbmEgd3JvdGU6DQoNCldlIGFyZSBkb2luZyBh IHNpbWlsYXIga2luZCBvZiBldmFsdWF0aW9uIGFuZCB3aWxsIHJlcG9ydCB0aGUgcmVzdWx0cy4N Cg0KDQoNCkJlZm9yZSB3ZSByZWxlYXNlZCB0aGUgRmFzdCBsb29rdXAsIHdlIGRpZCBhIHN5c3Rl bWF0aWMgZXZhbHVhdGlvbiBhY3Jvc3MgdGhyZWUgZ29sZCBzdGFuZGFyZCBzZXRzLiBXZSBkaWQg bm90IHNlZSB0aGUgdHJlbmQgdGhhdCBCcnVjZSByZXBvcnRlZCBiZWxvdy4gVGhlIFAsIFIgYW5k IEYxIHJlc3VsdHMgZnJvbSB0aGUgb2xkIGRpY3Rpb25hcnkgbG9vayB1cCBhbmQgdGhlIGZhc3Qg b25lIHdlcmUgc2ltaWxhci4NCg0KDQoNClRoYW5rIHlvdSBldmVyeW9uZSENCg0KLS1HdWVyZ2Fu YQ0KDQoNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCg0KRnJvbTogRGF2aWQgS2luY2Fp ZCBbbWFpbHRvOmtpbmNhaWQuZGF2ZUBnbWFpbC5jb21dDQoNClNlbnQ6IEZyaWRheSwgRGVjZW1i ZXIgMTksIDIwMTQgOTowMiBBTQ0KDQpUbzogZGV2QGN0YWtlcy5hcGFjaGUub3JnPG1haWx0bzpk ZXZAY3Rha2VzLmFwYWNoZS5vcmc+DQoNClN1YmplY3Q6IFJlOiBjVGFrZXMgQW5ub3RhdGlvbiBD b21wYXJpc29uDQoNCg0KDQpUaGFua3MgZm9yIHRoaXMsIEJydWNlISBWZXJ5IGludGVyZXN0aW5n IHdvcmsuIEl0IGNvbmZpcm1zIHdoYXQgSSd2ZSBzZWVuIGluIG15IHNtYWxsIHRlc3RzIHRoYXQg SSd2ZSBkb25lIGluIGEgbm9uLXN5c3RlbWF0aWMgd2F5LiBEaWQgeW91IGhhcHBlbiB0byBjYXB0 dXJlIHRoZSBudW1iZXIgb2YgZmFsc2UgcG9zaXRpdmVzIHlldCAoYW5ub3RhdGlvbnMgbWFkZSBi eSBjVEFLRVMgdGhhdCBhcmUgbm90IGluIHRoZSBodW1hbiBhZGp1ZGljYXRlZCBzdGFuZGFyZCk/ IEkndmUgc2VlbiBhIGxvdCBvZiBkaWN0aW9uYXJ5IGhpdHMgdGhhdCBhcmUgbm90IGFjdHVhbGx5 IGVudGl0eSBtZW50aW9ucywgYnV0IEkgaGF2ZW4ndCBoYWQgYSBjaGFuY2UgdG8gZG8gYSBzeXN0 ZW1hdGljIGFuYWx5c2lzICh3ZSdyZSB3b3JraW5nIG9uIG91ciBhbm5vdGF0ZWQgZ29sZCBzdGFu ZGFyZCBub3cpLiBPbmUgZ3JlYXQgZXhhbXBsZSBpcyB0aGUgYW50aWJpb3RpYyAiVG9kYXkiLiBF dmVyeSB0aW1lIHRoZSB3b3JkIHRvZGF5IGFwcGVhcnMgaW4gYW55IHRleHQgaXQgaXMgYW5ub3Rh dGVkIGFzIGEgbWVkaWNhdGlvbiBtZW50aW9uIHdoZW4gaXQgYWxtb3N0IG5ldmVyIGlzIGJlaW5n IHVzZWQgaW4gdGhhdCBzZW5zZS4NCg0KDQoNClRoZXNlIHJlc3VsdHMgYnkgdGhlbXNlbHZlcyBh cmUgcXVpdGUgZGlzYXBwb2ludGluZyB0byBtZS4gQm90aCB0aGUgVU1MU1Byb2Nlc3NvciBhbmQg ZXNwZWNpYWxseSB0aGUgRmFzdFVNTFNQcm9jZXNzb3Igc2VlbSB0byBoYXZlIHByZXR0eSBwb29y IHJlY2FsbC4gSXQgc2VlbXMgbGlrZSB0aGUgdHJhZGUgb2ZmIGZvciBtb3JlIHNwZWVkIGlzIGEg dGVuLWZvbGQgKG9yIG1vcmUpIGRlY3JlYXNlIGluIGVudGl0eSByZWNvZ25pdGlvbi4NCg0KDQoN ClRoYW5rcyBhZ2FpbiBmb3Igc2hhcmluZyB5b3VyIHJlc3VsdHMgd2l0aCB1cy4gSSB0aGluayB0 aGV5IGFyZSB2ZXJ5IHVzZWZ1bCB0byB0aGUgcHJvamVjdC4NCg0KDQoNCi0gRGF2ZQ0KDQoNCg0K T24gVGh1LCBEZWMgMTgsIDIwMTQgYXQgNTowNiBQTSwgQnJ1Y2UgVGlldGplbiA8IGJydWNlLnRp ZXRqZW5AcGVyZmVjdHNlYXJjaGNvcnAuY29tPG1haWx0bzpicnVjZS50aWV0amVuQHBlcmZlY3Rz ZWFyY2hjb3JwLmNvbT4+IHdyb3RlOg0KDQoNCg0KQWN0dWFsbHksIHdlIGFyZSB3b3JraW5nIG9u IGEgc2ltaWxhciB0b29sIHRvIGNvbXBhcmUgaXQgdG8gdGhlIGh1bWFuDQoNCmFkanVkaWNhdGVk IHN0YW5kYXJkIGZvciB0aGUgc2V0IHdlIHRlc3RlZCBhZ2FpbnN0LiAgSSBkaWRuJ3QgbWVudGlv bg0KDQppdCBiZWZvcmUgYmVjYXVzZSB0aGUgdG9vbCBpc24ndCBjb21wbGV0ZSB5ZXQsIGJ1dCBp bml0aWFsIHJlc3VsdHMgZm9yDQoNCnRoZSBzZXQgKGV4Y2x1ZGluZyB0aG9zZSBtYXJrZWQgYXMg IkNVSS1sZXNzIikgd2FzIGFzIGZvbGxvd3M6DQoNCg0KDQpIdW1hbiBhZGp1ZGljYXRlZCBhbm5v dGF0aW9uczogNDU5MSAoZXhjbHVkaW5nIENVSS1sZXNzKQ0KDQoNCg0KQW5ub3RhdGlvbnMgZm91 bmQgbWF0Y2hpbmcgdGhlIGh1bWFuIGFkanVkaWNhdGVkIHN0YW5kYXJkDQoNClVNTFNQcm9jZXNz b3IgICAgICAgICAgICAgICAgICAyMjQ1DQoNCkZhc3RVTUxTUHJvY2Vzc29yICAgICAgICAgICAy MTUNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KIFtpbWFnZTogSU1BVCBTb2x1dGlvbnNdIDxo dHRwOi8vaW1hdHNvbHV0aW9ucy5jb20+PGh0dHA6Ly9pbWF0c29sdXRpb25zLmNvbT4gIEJydWNl IFRpZXRqZW4NCg0KU2VuaW9yIFNvZnR3YXJlIEVuZ2luZWVyDQoNCltpbWFnZTogTW9iaWxlOl0g ODAxLjYzNC4xNTQ3DQoNCmJydWNlLnRpZXRqZW5AaW1hdHNvbHV0aW9ucy5jb208bWFpbHRvOmJy dWNlLnRpZXRqZW5AaW1hdHNvbHV0aW9ucy5jb20+DQoNCg0KDQpPbiBUaHUsIERlYyAxOCwgMjAx NCBhdCAzOjM3IFBNLCBDaGVuLCBQZWkNCg0KPFBlaS5DaGVuQGNoaWxkcmVucy5oYXJ2YXJkLmVk dTxtYWlsdG86UGVpLkNoZW5AY2hpbGRyZW5zLmhhcnZhcmQuZWR1Pg0KDQoNCg0Kd3JvdGU6DQoN Cg0KDQpCcnVjZSwNCg0KVGhhbmtzIGZvciB0aGlzLS0gdmVyeSB1c2VmdWwuDQoNClBlcmhhcHMg U2VhbiBGaW5hbiBjb21tZW50IG1vcmUtDQoNCmJ1dCBpdCdzIGFsc28gcHJvYmFibHkgd29ydGgg aXQgdG8gY29tcGFyZSB0byBhbiBhZGp1ZGljYXRlZCBodW1hbg0KDQphbm5vdGF0ZWQgZ29sZCBz dGFuZGFyZC4NCg0KDQoNCi0tUGVpDQoNCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K DQpGcm9tOiBCcnVjZSBUaWV0amVuIFttYWlsdG86YnJ1Y2UudGlldGplbkBwZXJmZWN0c2VhcmNo Y29ycC5jb21dDQoNClNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAxOCwgMjAxNCAxOjQ1IFBNDQoN ClRvOiBkZXZAY3Rha2VzLmFwYWNoZS5vcmc8bWFpbHRvOmRldkBjdGFrZXMuYXBhY2hlLm9yZz4N Cg0KU3ViamVjdDogY1Rha2VzIEFubm90YXRpb24gQ29tcGFyaXNvbg0KDQoNCg0KV2l0aCB0aGUg cmVjZW50IHJlbGVhc2Ugb2YgY1Rha2VzIDMuMi4xLCB3ZSB3ZXJlIHZlcnkgaW50ZXJlc3RlZCBp bg0KDQpjaGVja2luZyBmb3IgYW55IGRpZmZlcmVuY2VzIGluIGFubm90YXRpb25zIGJldHdlZW4g dXNpbmcgdGhlDQoNCkFnZ3JlZ2F0ZVBsYWludGV4dFVNTFNQcm9jZXNzb3IgcGlwZWxpbmUgYW5k IHRoZQ0KDQpBZ2dyZWdhdGVQbGFuZXRleHRGYXN0VU1MU1Byb2Nlc3NvciBwaXBlbGluZSB3aXRo aW4gdGhpcyByZWxlYXNlIG9mDQoNCmNUYWtlcw0KDQp3aXRoIGl0cyBhc3NvY2lhdGVkIHNldCBv ZiBVTUxTIHJlc291cmNlcy4NCg0KDQoNCldlIGNob3NlIHRvIHVzZSB0aGUgU0hBUkUgMTQtYS1i IFRyYWluaW5nIGRhdGEgdGhhdCBjb25zaXN0cyBvZiAxOTkNCg0KZG9jdW1lbnRzIChEaXNjaGFy Z2UgIDYxLCBFQ0cgNTQsIEVjaG8gNDIgYW5kIFJhZGlvbG9neSA0MikgYXMgdGhlDQoNCmJhc2lz IGZvciB0aGUgY29tcGFyaXNvbi4NCg0KDQoNCldlIGRlY2lkZWQgdG8gc2hhcmUgYSBzdW1tYXJ5 IG9mIHRoZSByZXN1bHRzIHdpdGggdGhlIGRldmVsb3BtZW50DQoNCmNvbW11bml0eS4NCg0KDQoN CkRvY3VtZW50cyBQcm9jZXNzZWQ6IDE5OQ0KDQoNCg0KUHJvY2Vzc2luZyBUaW1lOg0KDQpVTUxT UHJvY2Vzc29yICAgICAgICAgICAyLDQzOSBzZWNvbmRzDQoNCkZhc3RVTUxTUHJvY2Vzc29yICAg IDEsODM3IHNlY29uZHMNCg0KDQoNClRvdGFsIEFubm90YXRpb25zIFJlcG9ydGVkOg0KDQpVTUxT UHJvY2Vzc29yICAgICAgICAgICAgICAgICAgMjAsMzY1IGFubm90YXRpb25zDQoNCkZhc3RVTUxT UHJvY2Vzc29yICAgICAgICAgICAgIDgsMjg0IGFubm90YXRpb25zDQoNCg0KDQoNCg0KQW5ub3Rh dGlvbiBDb21wYXJpc29uczoNCg0KQW5ub3RhdGlvbnMgY29tbW9uIHRvIGJvdGggc2V0czogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMyw5NDANCg0KQW5ub3RhdGlvbnMgcmVwb3J0 ZWQgb25seSBieSB0aGUgVU1MU1Byb2Nlc3NvcjogICAgICAgICAxNiw0MjUNCg0KQW5ub3RhdGlv bnMgcmVwb3J0ZWQgb25seSBieSB0aGUgRmFzdFVNTFNQcm9jZXNzb3I6ICAgIDQsMzQ0DQoNCg0K DQoNCg0KSWYgYW55b25lIGlzIGludGVyZXN0ZWQsIGZvbGxvd2luZyB3YXMgb3VyIHRlc3QgcHJv Y2VkdXJlOg0KDQoNCg0KV2UgdXNlZCB0aGUgVUlNQSBDUEUgdG8gcHJvY2VzcyB0aGUgZG9jdW1l bnQgc2V0IHR3aWNlLCBvbmNlIHVzaW5nDQoNCnRoZSBBZ2dyZWdhdGVQbGFpbnRleHRVTUxTUHJv Y2Vzc29yIHBpcGVsaW5lIGFuZCBvbmNlIHVzaW5nIHRoZQ0KDQpBZ2dyZWdhdGVQbGFpbnRleHRG YXN0VU1MU1Byb2Nlc3NvciBwaXBlbGluZS4gV2UgdXNlZCB0aGUNCg0KV3JpdGVDQVN0b0ZpbGUg Q0FTIGNvbnN1bWVyIHRvIHdyaXRlIHRoZSByZXN1bHRzIHRvIG91dHB1dCBmaWxlcy4NCg0KDQoN CldlIHVzZWQgYSB0b29sIHdlIHJlY2VudGx5IGRldmVsb3BlZCB0byBhbmFseXplIGFuZCBjb21w YXJlIHRoZQ0KDQphbm5vdGF0aW9ucyBnZW5lcmF0ZWQgYnkgdGhlIHR3byBwaXBlbGluZXMuIFRo ZSB0b29sIGNvbXBhcmVzIHRoZQ0KDQp0d28gb3V0cHV0cyBmb3IgZWFjaCBmaWxlIGFuZCByZXBv cnRzIGFueSBkaWZmZXJlbmNlcyBpbiB0aGUNCg0KYW5ub3RhdGlvbnMgKE1lZGljYXRpb25NZW50 aW9uLCBTaWduU3ltcHRvbU1lbnRpb24sDQoNClByb2NlZHVyZU1lbnRpb24sIEFuYXRvbWljYWxT aXRlTWVudGlvbiwgYW5kDQoNCkRpc2Vhc2VEaXNvcmRlck1lbnRpb24pIGJldHdlZW4gdGhlIHR3 byBvdXRwdXQgc2V0cy4gVGhlIHRvb2wNCg0KcmVwb3J0cyB0aGUgbnVtYmVyIG9mICdtYXRjaGVz JyBhbmQgJ21pc3NlcycgYmV0d2VlbiBlYWNoIGFubm90YXRpb24gc2V0LiBBICdtYXRjaCcNCg0K aXMNCg0KZGVmaW5lZCBhcyB0aGUgcHJlc2VuY2Ugb2YgYW4gaWRlbnRpZmllZCBzb3VyY2UgdGV4 dCBpbnRlcnZhbCB3aXRoDQoNCml0cyBhc3NvY2lhdGVkIENVSSBhcHBlYXJpbmcgaW4gYm90aCBh bm5vdGF0aW9uIHNldHMuIEEgJ21pc3MnIGlzDQoNCmRlZmluZWQgYXMgdGhlIHByZXNlbmNlIG9m IGFuIGlkZW50aWZpZWQgc291cmNlIHRleHQgaW50ZXJ2YWwgYW5kDQoNCml0cyBhc3NvY2lhdGVk IENVSSBpbiBvbmUgYW5ub3RhdGlvbiBzZXQsIGJ1dCBubyBtYXRjaGluZyBpZGVudGlmaWVkDQoN CnNvdXJjZSB0ZXh0IGludGVydmFsDQoNCmFuZA0KDQpDVUkgaW4gdGhlIG90aGVyLiBUaGUgdG9v bCBhbHNvIHJlcG9ydHMgdGhlIHRvdGFsIG51bWJlciBvZg0KDQphbm5vdGF0aW9ucyAoc291cmNl IHRleHQgaW50ZXJ2YWxzIHdpdGggYXNzb2NpYXRlZCBDVUlzKSByZXBvcnRlZCBpbg0KDQplYWNo IGFubm90YXRpb24gc2V0LiBUaGUgY29tcGFyZSB0b29sIGlzIGluIG91ciBHaXRIdWIgcmVwb3Np dG9yeSBhdA0KDQpodHRwczovL2dpdGh1Yi5jb20vcGVyZmVjdHNlYXJjaC9jVEFLRVMtY29tcGFy ZQ0KDQoNCg0KDQoNCg==