RE: DDoS protection

"Mikhail A. Utin" <[email protected]> Wed, 25 Jun 2014 09:36:31 -0400
Newsgroups gmane.comp.security.basics
Message-ID <025B5895F8BCCC40AC35F6CD6D972B1C1EBA2B448E@cca-mail1.commonwealthcare.org>
U29tZSByZW1hcmtzLg0KMS4gQ2xvdWQgQ29tcHV0aW5nLCB5ZXMsIGlzIGp1c3QgYWJvdXQg
ZGF0YWNlbnRlcnMgc2VydmluZyBob3N0aW5nLCBpLmUuIGFwcGxpY2F0aW9uIGhvc3Rpbmcg
c2VydmljZS4NCjIuIEZpcnN0IGFwcGVhcmVkIGFzIEFtYXpvbiBBV1MNCjMuIENDIGlzIG5v
dCBhY3R1YWxseSBJQk0gb3duIGNvbmNlcHQgYXMgdGhlcmUgaXMgbm8gY29uY2VwdCBpbiBD
QyBhdCBhbGwsIHNlZSAjMQ0KNC4gTklTVCBhY3R1YWxseSB3YXMgZmFyIGxhdGVyIHRoYW4g
b3RoZXIgcGFydGllcyBpbiAiY2xvdWRpemF0aW9uIiAoSSBjbGFpbSB0aGlzIHRlcm0gOikg
KQ0KNS4gRmVkUkFNUCBpcyBub3QgY2VydGlmaWNhdGlvbiBwcm9ncmFtIGF0IGFsbC4gUGx1
cywgaXRzIHNlY3VyaXR5IGNvbnRyb2xzIGxpc3QgaXMgb3V0ZGF0ZWQgLSBpdCBpcyBiYXNl
ZCBvbiBOSVNUIFNQODAwLTUzIFIzLCBwcmV0dHkgb3V0ZGF0ZWQgdmVyc2lvbi4gQ3VycmVu
dCBpcyBSNC4gU28sIGFic29sdXRlbHkgY2Fubm90IGJlIHVzZWQgZm9yIGFueXRoaW5nIGxp
a2UgY2VydGlmaWNhdGlvbi4NCg0KTWlraGFpbA0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut
LS0tLQ0KRnJvbTogQ29tcCBQeWNobyBbbWFpbHRvOmNvbXB1dGVyLnB5Y2hvQGdtYWlsLmNv
bV0gDQpTZW50OiBXZWRuZXNkYXksIEp1bmUgMjUsIDIwMTQgODo1MiBBTQ0KVG86IE1hcmlv
cyBTdHlsaWFub3UNCkNjOiBNaWtoYWlsIEEuIFV0aW47IDxEb21pbmljay5TYXJkaW5hQHBz
ZWcuY29tPjsgPHNlY3VyaXR5LWJhc2ljc0BzZWN1cml0eWZvY3VzLmNvbT4NClN1YmplY3Q6
IFJlOiBERG9TIHByb3RlY3Rpb24NCg0KQ2xvdWQgY29tcHV0aW5nIGlzIGFuIElCTSBjb25j
ZXB0IHRoYXQgd2FzIGJsb3cgdXAgYnkgTklTVC4gTklTVCBwdXNoZWQgdGhpcyAiQ2xvdWQi
IEJTIGZvciBleHRlcm5hbCBwYXJ0aWVzIHRvIG1ha2UgbW9uZXkuIFRoZSBjbG91ZCBpcyBu
b3RoaW5nIGJ1dCBhIGRhdGEgY2VudGVyLiBUaGUgc2VjdXJlIGNsb3VkcyBhcmUgZGF0YSBj
ZW50ZXJzIHdoaWNoIGhhdmUgZ29uZSB0aHJvdWdoIHRoZSBGZWRSYW1wIGNlcnRpZmljYXRp
b24gcHJvZ3JhbSBmb3Igc2VjdXJpdHkgY29tcGxpYW5jZS4gDQoNCkRvIHdoYXQgeW91IGtu
b3cNCi1EYW1lIERhc2gNCg0KDQo+IE9uIEp1biAyNSwgMjAxNCwgYXQgNjo1NiBBTSwgIk1h
cmlvcyBTdHlsaWFub3UiIDxzdHlsbG9zbWFyaW9zQGdtYWlsLmNvbT4gd3JvdGU6DQo+IA0K
PiBZb3UgY2FuIHRyeSBJbmNhcHN1bGEgc2VydmljZXMuDQo+IA0KPiANCj4gTWluZGJldHMN
Cj4gDQo+IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBsaXN0Ym91
bmNlQHNlY3VyaXR5Zm9jdXMuY29tIA0KPiBbbWFpbHRvOmxpc3Rib3VuY2VAc2VjdXJpdHlm
b2N1cy5jb21dIE9uIEJlaGFsZiBPZiBNaWtoYWlsIEEuIFV0aW4NCj4gU2VudDogTW9uZGF5
LCBKdW5lIDIzLCAyMDE0IDc6MDIgUE0NCj4gVG86IFNhcmRpbmEsIERvbWluaWNrOyBzZWN1
cml0eS1iYXNpY3NAc2VjdXJpdHlmb2N1cy5jb20NCj4gU3ViamVjdDogUkU6IEREb1MgcHJv
dGVjdGlvbg0KPiANCj4gSGVsbG8sDQo+IFllcywgYWxsIGhhcyBiZWVuIGtub3duIGZvciBh
IHdoaWxlLiBJIGdvdCB0d28gcHJlc2VudGF0aW9ucyBkaXNjdXNzaW5nIHBhcnRpYWxseSAi
Y2xvdWQiIG1hdHRlciBhdCBPV0FTUCBBcHBTZWMgREMgMjAxMiBhbmQgRGVlcFNlYyAyMDEy
IGFuZCAyMDEzLg0KPiBZb3UgY2FuIGNoZWNrIGJvdGggZm9yIHByZXNlbnRhdGlvbnMgb3Ig
YXNrIG1lIHBlcnNvbmFsbHkuDQo+IEJhc2ljYWxseSwgYWxsICJjbG91ZHMiIGFyZSBzaW1w
bHkgYXBwbGljYXRpb24gaG9zdGluZyB3ZWIgc2l0ZXMuIEFuZCB0ZWNobmljYWxseSBhICJj
bG91ZCIgaXMgYSBkYXRhY2VudGVyLiBXaGV0aGVyIHN1Y2ggYXBwIGlzIGEgdmlydHVhbCBu
ZXR3b3JrIG9yIE1vbSZEYWQgUGl6emEgc2hvcCBIVE1MIHNpdGUgZG9lcyBub3QgbWF0dGVy
Lg0KPiBTbyBuYW1lZCAiY2xvdWQgY29tcHV0aW5nIGNvbmNlcHQiIGhhcyBub3RoaW5nIGlu
IGNvbW1vbiB3aXRoIGNvbXB1dGluZywgYW5kIG5vdCBhIGNvbmNlcHQgYXQgYWxsLiBNb2Rl
bHMgYXJlIHVzZWxlc3MgYW5kIGluIHN1Y2ggY2FzZSBhcyAiQ29tbXVuaXR5IENsb3VkIiBh
bmQgIkh5YnJpZCBDbG91ZCIgaXMgbGVnYWwgbm9uc2Vuc2UsIHNpbXBseSBiZWNhdXNlIGEg
c2VydmljZSBwcm92aWRlciBjYW5ub3QgaGF2ZSBsZWdhbCBiaW5kaW5nIHJlbGF0aW9uc2hp
cCAoYWthIGEgY29udHJhY3QpIHdpdGggYSBjb21tdW5pdHksIHdoaWNoIGlzIG5vdCBhIGxl
Z2FsIGVudGl0eS4NCj4gSSB0cmllZCB0byBkaWcgb3V0IHdoZXJlICJjbG91ZCIgY2FtZSBm
cm9tLiBJdCBpcyBhbiBpbnZlbnRpb24gb2YgSUJNIA0KPiBjaXJjbGUgY29tcGFuaWVzIGhv
c3Rpbmcgc2l0ZSByZXNlbGxpbmcgSUJNIHNlcnZpY2VzLiBBbmQgaW4gZXNzZW5jZSANCj4g
aXMgdGhlIHJlcGxhY2VtZW50IG9mIEdvb2dsZSBhbmQgbmV4dCBJQk0gZnVuZGVkIGFjYWRl
bWljIGNsdXN0ZXIgDQo+IHByb2plY3QgIkFjYWRlbWlhIENsdXN0ZXIgQ29tcHV0aW5nIElu
aXRpYXRpdmUiIG9yIEFDQ0ksIHNlZTogTGV0IGEgDQo+IFRob3VzYW5kIHNlcnZlcnMgYmxv
b20g4oCTIEdvb2dsZSBvZmZpY2lhbCBwb3N0LCBQb3N0ZWQgYnkgQ2hyaXN0b3BoZSANCj4g
QmlzY2lnbGlhLCBPY3RvYmVyIDgsIDIwMDcgDQo+IGh0dHA6Ly9nb29nbGVibG9nLmJsb2dz
cG90LmNvbS8yMDA3LzEwL2xldC10aG91c2FuZC1zZXJ2ZXJzLWJsb29tLmh0bWwNCj4gSUJN
IGNpcmNsZSBndXlzIHJlcGxhY2VkICJjbHVzdGVyIiB3aXRoICJjbG91ZCIgYW5kIHJlbmFt
ZWQgQUNDSSBhcyAiQWNhZGVtaWEgQ2xvdWQgQ29tcHV0aW5nIEluaXRpYXRpdmUiLiBCaW5n
byEgTmV4dCB0aGV5IG5lZWRlZCBzb21ldGhpbmcgbG9va2luZyBsaWtlIHNjaWVuY2UgaW4g
YSBmb3JtIG9mICJtb2RlbHMiLg0KPiBIb3dldmVyLCBndXlzIHZpb2xhdGVkIEdvb2dsZSBp
bnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG9uIHRoZSBvcmlnaW5hbCBBQ0NJIHByb2pl
Y3QgbmFtZS4NCj4gDQo+IFJlZ2FyZHMNCj4gDQo+IE1pa2hhaWwNCj4gDQo+IA0KPiANCj4g
LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogbGlzdGJvdW5jZUBzZWN1cml0
eWZvY3VzLmNvbSANCj4gW21haWx0bzpsaXN0Ym91bmNlQHNlY3VyaXR5Zm9jdXMuY29tXSBP
biBCZWhhbGYgT2YgU2FyZGluYSwgRG9taW5pY2sNCj4gU2VudDogRnJpZGF5LCBKdW5lIDIw
LCAyMDE0IDI6NDkgUE0NCj4gVG86IHNlY3VyaXR5LWJhc2ljc0BzZWN1cml0eWZvY3VzLmNv
bQ0KPiBTdWJqZWN0OiBSRTogRERvUyBwcm90ZWN0aW9uDQo+IA0KPiBCcmV0dCwgSSBoYXZl
IHRvIGFncmVlIDEwMCUuDQo+IA0KPiANCj4gUmVnYXJkcywNCj4gRG9taW5pY2sNCj4gDQo+
IA0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBsaXN0Ym91bmNlQHNl
Y3VyaXR5Zm9jdXMuY29tIA0KPiBbbWFpbHRvOmxpc3Rib3VuY2VAc2VjdXJpdHlmb2N1cy5j
b21dIE9uIEJlaGFsZiBPZiBXYWduZXIsIEJyZXR0DQo+IFNlbnQ6IEZyaWRheSwgSnVuZSAy
MCwgMjAxNCAxMjo1NyBQTQ0KPiBUbzogSGFydGxleSwgQ2hyaXN0b3BoZXIgSi47IEtlbGxz
dHINCj4gQ2M6IHNlY3VyaXR5LWJhc2ljc0BzZWN1cml0eWZvY3VzLmNvbQ0KPiBTdWJqZWN0
OiBSRTogRERvUyBwcm90ZWN0aW9uDQo+IA0KPiBJTUhPIC0gSSBhbSBub3QgYSBmYW4gb2Yg
YWxsIHRoZSBtdW1ibyBqdW1ibyB0aGF0IGdvZXMgYWxvbmcgd2l0aCB0aGUgIkNsb3VkIiBs
aWtlIGl0IGlzIGEgbmV3IGludmVudGlvbi4gSSB3b3JrZWQgYXQgR1RFL0JCTiBpbiAxOTk5
IGFuZCB3ZSB3ZXJlIHNlbGxpbmcgYWxsIHRoZSBzYW1lIGNyYXAgYmFjayB0aGVuLiBXaXRo
IHRoYXQgc2FpZCBhbmQgaGF2aW5nIHdvcmtlZCBhdCBFTUMgZm9yIGEgd2hpbGUgeW91IGNh
biBoYXZlIGEgIkNsb3VkIiBvbiBwcmVtaXNlcyBqdXN0IG1lYW5zIHlvdSBoYXZlIHRoZSBo
YXJkd2FyZSBpbiBvbmUgb2YgeW91ciBjb21wYW55IGxvY2F0aW9ucy4gWW91IGNhbiBoYXZl
IHByaXZhdGUsIHNoYXJlZCwgcHVibGljIG9yIGEgY29tYm8uIA0KPiANCj4gSXQgaXMgdGhl
IHNhbWUgZXZvbHV0aW9uIGFzIElUIHNlY3VyaXR5IGNpcmNhIDE5NzAtODBzIChSYWluYm93
IEJvb2sgU2VyaWVzIGRheXMpLCB0aGVuIEluZm9ybWF0aW9uIFNlY3VyaXR5IGNpcmNhIDE5
OTBzLCB0aGVuIEluZm9ybWF0aW9uIEFzc3VyYW5jZSBjaXJjYSBsYXRlIDkwcyBlYXJseSAy
MDAwcyBhbmQgbm93IEN5YmVyIFNlY3VyaXR5LiBXaXRoIGVhY2ggbmFtZSBjaGFuZ2UgY29u
c3VsdGFudHMgYW5kIGNvbXBhbmllcyBjYW4gY2hhcmdlIG1vcmUgZm9yIHRoZSBzYW1lIHVs
dGltYXRlIGdvYWwgd2l0aCBlYWNoIG5hbWUgY2hhbmdlLg0KPiANCj4gT0sgSSB3aWxsIG5v
dyBnZXQgb2ZmIG15IHNvYXBib3guDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+
IEZyb206IGxpc3Rib3VuY2VAc2VjdXJpdHlmb2N1cy5jb20gW21haWx0bzpsaXN0Ym91bmNl
QHNlY3VyaXR5Zm9jdXMuY29tXSBPbiBCZWhhbGYgT2YgSGFydGxleSwgQ2hyaXN0b3BoZXIg
Si4NCj4gU2VudDogRnJpZGF5LCBKdW5lIDIwLCAyMDE0IDEwOjQ4IEFNDQo+IFRvOiBLZWxs
c3RyDQo+IENjOiBzZWN1cml0eS1iYXNpY3NAc2VjdXJpdHlmb2N1cy5jb20NCj4gU3ViamVj
dDogUmU6IEREb1MgcHJvdGVjdGlvbg0KPiANCj4gVGhpcyBpcyBhIGxpdHRsZSBjb25mdXNp
bmc7IOKAnGNsb3Vk4oCdLCDigJxvbi1wcmVtaXNl4oCdIGV0Y+KApiB3ZWlyZC4NCj4gDQo+
IEJ5IOKAnENsb3VkLOKAnSBpdCBzZWVtIGxpa2Ugd2UgbWVhbiDigJxieSBwcm92aWRlcuKA
nSAobWFrZXMgc2Vuc2UpLg0KPiANCj4gT24tcHJlbWlzZSBpcyB0aGUgYmVzdCB3YXkgdG8g
ZGV0ZWN0IGFuIGF0dGFjayBpbW8sIHNpbmNlIHRoZSB2aWN0aW0gbmV0d29yayBrbm93cyB3
aGF04oCZcyBnb29kIGFuZCB3aGF04oCZcyBub3QgKG9yIHNob3VsZOKApi4pLg0KPiANCj4g
U28gSSB0aGluayB0aGUgYmVzdCBzb2x1dGlvbiBpbnZvbHZlcyBzb21lIGtpbmQgb2YgcmVt
b3RlIGJsYWNraG9sZSBvciBpZGVhbGx5LCBwZXJoYXBzIGZsb3dzcGVjLg0KPiANCj4gSSBk
b27igJl0IHRoaW5rIGl04oCZcyBhIHByb2JsZW0gdGhhdCByZXF1aXJlcyBzcGVuZGluZyBz
aWduaWZpY2FudCBtb25leS4NCj4gDQo+IENocmlzDQo+IA0KPj4gT24gSnVuIDE5LCAyMDE0
LCBhdCAxMjo1MCBQTSwgS2VsbHN0ciA8a2VsbHN0ckBnbWFpbC5jb20+IHdyb3RlOg0KPj4g
DQo+PiBEaXNjbGFpbWVyOiBJIHdvcmsgZm9yIGEgY29tcGFueSB3aGljaCBvZmZlcnMgYSBE
RG9TIFByb3RlY3Rpb24gU2VydmljZS4NCj4+IA0KPj4gVGhlIGFkdmFudGFnZSBvZiBhIHNl
cnZpY2UgImluIHRoZSBjbG91ZCIgaXMgdGhhdCBpZiBhbiBhdHRhY2sgDQo+PiBleGNlZWRz
IHlvdXIgY2lyY3VpdCBiYW5kd2lkdGggdGhlIHByb3ZpZGVyIHdpbGwgYmUgYWJsZSB0byBk
cm9wIHRoZSANCj4+IG1hbGljaW91cyB0cmFmZmljLiBUaGF0IGNhbm5vdCBiZSBkb25lIGF0
IHlvdXIgcHJlbWlzZS4gQm90aCBBcmJvciANCj4+IGFuZCBSYWR3YXJlIG9mZmVyIHN0cm9u
ZyBhcHBsaWFuY2VzIHRoYXQgY2FuIGNsZWFuIHVwIHNtYWxsZXIgYXR0YWNrcyANCj4+IGF0
IHlvdXIgcHJlbWlzZSBhbmQgY2FuIHNlbmQgYSBzaWduYWwgdG8gdGhlIHByb3ZpZGVyIGlm
IHRoZXkgc3VwcG9ydCANCj4+IHRoYXQgc2VydmljZS4gWW91IGNhbiBibG9jayB0cmFmZmlj
IHVzaW5nIElQUydzIGJ1dCBrZWVwIGluIG1pbmQgdGhleSANCj4+IGFyZSBub3QgZGVzaWdu
ZWQgZm9yIGEgdm9sdW1ldHJpYyBhdHRhY2sgYW5kIG1heSBiZSBvdmVyd2hlbG1lZC4NCj4+
IA0KPj4gT24gV2VkLCBKdW4gMTgsIDIwMTQgYXQgMTE6MTAgQU0sIExhbmNlIExhc3NldHRl
ciANCj4+IDxsYW5jZWxhc3NldHRlckBnbWFpbC5jb20+IHdyb3RlOg0KPj4+IFdoYXQgYWJv
dXQgU3VyaWNhdGEgb3IgU25vcnQgSURTIGluIElQUyBtb2RlPw0KPj4+IA0KPj4+PiBPbiBK
dW4gMTgsIDIwMTQgODo0MyBBTSwgIk1pa2hhaWwgQS4gVXRpbiIgPG11dGluQGNvbW1vbndl
YWx0aGNhcmUub3JnPiB3cm90ZToNCj4+Pj4gDQo+Pj4+IEFzIHlvdSBpbmRpY2F0ZWQgIiBB
bHRob3VnaCB3ZSdyZSBzbWFsbCwgV2UncmUgYW4gb3JnYW5pemF0aW9uIHBsYXlpbmcgd2l0
aCAoJCzCpSzigqwswqMpIGV4Y2hhbmdlcyIgeW91IGFyZSBvbiBjbGllbnQgc2lkZSByYXRo
ZXIgdGhhbiBvbiBzZXJ2ZXIuIElmIHRoYXQgaXMgcmlnaHQsIHlvdSBkbyBub3QgbmVlZCB0
byBib3RoZXIgd2l0aCBERG9TIHByb3RlY3Rpb24sIHdoaWNoIGlzIGFnYWluc3Qgc2VydmVy
IHNpZGUuDQo+Pj4+IE1pa2hhaWwNCj4+Pj4gDQo+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn
ZS0tLS0tDQo+Pj4+IEZyb206IGxpc3Rib3VuY2VAc2VjdXJpdHlmb2N1cy5jb20NCj4+Pj4g
W21haWx0bzpsaXN0Ym91bmNlQHNlY3VyaXR5Zm9jdXMuY29tXSBPbiBCZWhhbGYgT2YgDQo+
Pj4+IGthcnRpay5uZXRlY0BnbWFpbC5jb20NCj4+Pj4gU2VudDogV2VkbmVzZGF5LCBKdW5l
IDE4LCAyMDE0IDEyOjQ5IEFNDQo+Pj4+IFRvOiBzZWN1cml0eS1iYXNpY3NAc2VjdXJpdHlm
b2N1cy5jb20NCj4+Pj4gU3ViamVjdDogUmU6IFJlOiBERG9TIHByb3RlY3Rpb24NCj4+Pj4g
DQo+Pj4+IEhpLA0KPj4+PiANCj4+Pj4gVGhhbmtzIGZvciB5b3VyIHJlcGxpZXMuDQo+Pj4+
IA0KPj4+PiBOb3RlZCB0aGUgcG9pbnRzIHJhaXNlZCBieSBKYWNpbnQgYW5kIEtlbGx5IEtl
ZXRvbi4gSSBhcHByZWNpYXRlIHRoYXQuDQo+Pj4+IA0KPj4+PiBNYXkgSSBiZSBraW5kIHRv
IHNlZWsgYW4gb3Bpbmlvbi8gYXJndW1lbnRzIHN1Z2dlc3RpbmcgaWYgdGhlIEluLWhvdXNl
IGFwcGxpYW5jZXMgYXJlIG1vcmUgImludGVsbGlnZW50IiB0aHdhcnRpbmcgdGhlIGFwcGxp
Y2F0aW9uIGxldmVsIERPUy8gRERvUyBhdHRhY2tzIGFzIGNvbXBhcmVkIHRvIElTUCBwcm92
aWRlZCBET1MgcHJvdGVjdGlvbiB3aGVyZWluIGl0IG1heSBldmVuIGZhaWwgdG8gZGV0ZWN0
IHRoZW0uIG9yIGlmIHRoZXJlIGFyZSBvdGhlciBiZW5lZml0cyBvd25pbmcgYW4gSW4taG91
c2UgcHJvZHVjdD8NCj4+Pj4gDQo+Pj4+IEFzIGZhciBhcyBDb25zIGFyZSBjb25jZXJuZWQs
IEkgZmVlbCB0aGF0IHRoZSBhcHBsaWFuY2UgbWF5IGFkZCBzb21lIGxhdGVuY3kgd2hpY2gg
bWF5IGNyZWF0ZSBpc3N1ZXMgd2hlcmVpbiBhIGxhdGVuY3kgb2YgbWlsbGlzZWNvbmRzIGNv
dW50Lg0KPj4+PiANCj4+Pj4gQWx0aG91Z2ggd2UncmUgc21hbGwsIFdlJ3JlIGFuIG9yZ2Fu
aXphdGlvbiBwbGF5aW5nIHdpdGggKCQswqUs4oKsLMKjKSBleGNoYW5nZXMgYW5kIGhlYXZp
bHkgcmVndWxhdGVkIGJ5IHRoZSBHb3Zlcm5tZW50Lg0KPj4+PiANCj4+Pj4gVGhhbmtzLA0K
Pj4+PiBLVA0KPj4+PiANCj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+PiAtDQo+Pj4+IC0tLS0g
U2VjdXJpbmcgQXBhY2hlIFdlYiBTZXJ2ZXIgd2l0aCB0aGF3dGUgRGlnaXRhbCBDZXJ0aWZp
Y2F0ZSBJbiANCj4+Pj4gdGhpcyBndWlkZSB3ZSBleGFtaW5lIHRoZSBpbXBvcnRhbmNlIG9m
IEFwYWNoZS1TU0wgYW5kIHdobyBuZWVkcyBhbiBTU0wgY2VydGlmaWNhdGUuICBXZSBsb29r
IGF0IGhvdyBTU0wgd29ya3MsIGhvdyBpdCBiZW5lZml0cyB5b3VyIGNvbXBhbnkgYW5kIGhv
dyB5b3VyIGN1c3RvbWVycyBjYW4gdGVsbCBpZiBhIHNpdGUgaXMgc2VjdXJlLiBZb3Ugd2ls
bCBmaW5kIG91dCBob3cgdG8gdGVzdCwgcHVyY2hhc2UsIGluc3RhbGwgYW5kIHVzZSBhIHRo
YXd0ZSBEaWdpdGFsIENlcnRpZmljYXRlIG9uIHlvdXIgQXBhY2hlIHdlYiBzZXJ2ZXIuIFRo
cm91Z2hvdXQsIGJlc3QgcHJhY3RpY2VzIGZvciBzZXQtdXAgYXJlIGhpZ2hsaWdodGVkIHRv
IGhlbHAgeW91IGVuc3VyZSBlZmZpY2llbnQgb25nb2luZyBtYW5hZ2VtZW50IG9mIHlvdXIg
ZW5jcnlwdGlvbiBrZXlzIGFuZCBkaWdpdGFsIGNlcnRpZmljYXRlcy4NCj4+Pj4gDQo+Pj4+
IGh0dHA6Ly93d3cuZGluY2xpbnguY29tL1JlZGlyZWN0LmFzcHg/MzY7NDE3NTsyNTsxMzcx
OzA7NTs5NDY7ZTEzYjYNCj4+Pj4gYg0KPj4+PiBlNDQyZjcyN2QxDQo+Pj4+IC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCj4+Pj4gLQ0KPj4+PiAtLS0tDQo+Pj4+IA0KPj4+PiANCj4+Pj4gQ09ORklERU5U
SUFMSVRZIE5PVElDRTogVGhpcyBlbWFpbCBjb21tdW5pY2F0aW9uIGFuZCBhbnkgDQo+Pj4+
IGF0dGFjaG1lbnRzIG1heSBjb250YWluIGNvbmZpZGVudGlhbCBhbmQgcHJpdmlsZWdlZCBp
bmZvcm1hdGlvbiBmb3IgDQo+Pj4+IHRoZSB1c2Ugb2YgdGhlIGRlc2lnbmF0ZWQgcmVjaXBp
ZW50cyBuYW1lZCBhYm92ZS4gSWYgeW91IGFyZSBub3QgDQo+Pj4+IHRoZSBpbnRlbmRlZCBy
ZWNpcGllbnQsIHlvdSBhcmUgaGVyZWJ5IG5vdGlmaWVkIHRoYXQgeW91IGhhdmUgDQo+Pj4+
IHJlY2VpdmVkIHRoaXMgY29tbXVuaWNhdGlvbiBpbiBlcnJvciBhbmQgdGhhdCBhbnkgcmV2
aWV3LCANCj4+Pj4gZGlzY2xvc3VyZSwgZGlzc2VtaW5hdGlvbiwgZGlzdHJpYnV0aW9uIG9y
IGNvcHlpbmcgb2YgaXQgb3IgaXRzIA0KPj4+PiBjb250ZW50cyBpcyBwcm9oaWJpdGVkLiBJ
ZiB5b3UgaGF2ZSByZWNlaXZlZCB0aGlzIGNvbW11bmljYXRpb24gaW4gDQo+Pj4+IGVycm9y
LCBwbGVhc2UgcmVwbHkgdG8gdGhlIHNlbmRlciBpbW1lZGlhdGVseSBvciBieSB0ZWxlcGhv
bmUgYXQgKDYxNykgNDI2LTA2MDAgYW5kIGRlc3Ryb3kgYWxsIGNvcGllcyBvZiB0aGlzIGNv
bW11bmljYXRpb24gYW5kIGFueSBhdHRhY2htZW50cy4gRm9yIGZ1cnRoZXIgaW5mb3JtYXRp
b24gcmVnYXJkaW5nIENvbW1vbndlYWx0aCBDYXJlIEFsbGlhbmNlJ3MgcHJpdmFjeSBwb2xp
Y3ksIHBsZWFzZSB2aXNpdCBvdXIgSW50ZXJuZXQgd2ViIHNpdGUgYXQgaHR0cDovL3d3dy5j
b21tb253ZWFsdGhjYXJlLm9yZy4NCj4+IA0KPj4gDQo+PiANCj4+IC0tDQo+PiBMYXdzIGFs
b25lIGNhbm5vdCBzZWN1cmUgZnJlZWRvbSBvZiBleHByZXNzaW9uOyBpbiBvcmRlciB0aGF0
IGV2ZXJ5IA0KPj4gbWFuIHByZXNlbnQgaGlzIHZpZXdzIHdpdGhvdXQgcGVuYWx0eSB0aGVy
ZSBtdXN0IGJlIHNwaXJpdCBvZiANCj4+IHRvbGVyYW5jZSBpbiB0aGUgZW50aXJlIHBvcHVs
YXRpb24uIC0gQWxiZXJ0IEVpbnN0ZWluDQo+PiANCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4g
LQ0KPj4gLS0gU2VjdXJpbmcgQXBhY2hlIFdlYiBTZXJ2ZXIgd2l0aCB0aGF3dGUgRGlnaXRh
bCBDZXJ0aWZpY2F0ZSBJbiB0aGlzIA0KPj4gZ3VpZGUgd2UgZXhhbWluZSB0aGUgaW1wb3J0
YW5jZSBvZiBBcGFjaGUtU1NMIGFuZCB3aG8gbmVlZHMgYW4gU1NMIGNlcnRpZmljYXRlLiAg
V2UgbG9vayBhdCBob3cgU1NMIHdvcmtzLCBob3cgaXQgYmVuZWZpdHMgeW91ciBjb21wYW55
IGFuZCBob3cgeW91ciBjdXN0b21lcnMgY2FuIHRlbGwgaWYgYSBzaXRlIGlzIHNlY3VyZS4g
WW91IHdpbGwgZmluZCBvdXQgaG93IHRvIHRlc3QsIHB1cmNoYXNlLCBpbnN0YWxsIGFuZCB1
c2UgYSB0aGF3dGUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBvbiB5b3VyIEFwYWNoZSB3ZWIgc2Vy
dmVyLiBUaHJvdWdob3V0LCBiZXN0IHByYWN0aWNlcyBmb3Igc2V0LXVwIGFyZSBoaWdobGln
aHRlZCB0byBoZWxwIHlvdSBlbnN1cmUgZWZmaWNpZW50IG9uZ29pbmcgbWFuYWdlbWVudCBv
ZiB5b3VyIGVuY3J5cHRpb24ga2V5cyBhbmQgZGlnaXRhbCBjZXJ0aWZpY2F0ZXMuDQo+PiAN
Cj4+IGh0dHA6Ly93d3cuZGluY2xpbnguY29tL1JlZGlyZWN0LmFzcHg/MzY7NDE3NTsyNTsx
MzcxOzA7NTs5NDY7ZTEzYjZiZQ0KPj4gNA0KPj4gNDJmNzI3ZDENCj4+IC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQ0KPj4gLQ0KPj4gLS0NCj4gDQo+IA0KPiANCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAt
LSBTZWN1cmluZyBBcGFjaGUgV2ViIFNlcnZlciB3aXRoIHRoYXd0ZSBEaWdpdGFsIENlcnRp
ZmljYXRlIEluIHRoaXMgDQo+IGd1aWRlIHdlIGV4YW1pbmUgdGhlIGltcG9ydGFuY2Ugb2Yg
QXBhY2hlLVNTTCBhbmQgd2hvIG5lZWRzIGFuIFNTTCBjZXJ0aWZpY2F0ZS4gIFdlIGxvb2sg
YXQgaG93IFNTTCB3b3JrcywgaG93IGl0IGJlbmVmaXRzIHlvdXIgY29tcGFueSBhbmQgaG93
IHlvdXIgY3VzdG9tZXJzIGNhbiB0ZWxsIGlmIGEgc2l0ZSBpcyBzZWN1cmUuIFlvdSB3aWxs
IGZpbmQgb3V0IGhvdyB0byB0ZXN0LCBwdXJjaGFzZSwgaW5zdGFsbCBhbmQgdXNlIGEgdGhh
d3RlIERpZ2l0YWwgQ2VydGlmaWNhdGUgb24geW91ciBBcGFjaGUgd2ViIHNlcnZlci4gVGhy
b3VnaG91dCwgYmVzdCBwcmFjdGljZXMgZm9yIHNldC11cCBhcmUgaGlnaGxpZ2h0ZWQgdG8g
aGVscCB5b3UgZW5zdXJlIGVmZmljaWVudCBvbmdvaW5nIG1hbmFnZW1lbnQgb2YgeW91ciBl
bmNyeXB0aW9uIGtleXMgYW5kIGRpZ2l0YWwgY2VydGlmaWNhdGVzLg0KPiANCj4gaHR0cDov
L3d3dy5kaW5jbGlueC5jb20vUmVkaXJlY3QuYXNweD8zNjs0MTc1OzI1OzEzNzE7MDs1Ozk0
NjtlMTNiNmJlNA0KPiA0MmY3MjdkMQ0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0tDQo+IA0K
PiANCj4gDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+
IFRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaW4gdGhpcyBlLW1haWwsIGluY2x1ZGluZyBh
bnkgYXR0YWNobWVudChzKSwgaXMgaW50ZW5kZWQgc29sZWx5IGZvciB1c2UgYnkgdGhlIG5h
bWVkIGFkZHJlc3NlZShzKS4gIElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZCByZWNpcGll
bnQsIG9yIGEgcGVyc29uIGRlc2lnbmF0ZWQgYXMgcmVzcG9uc2libGUgZm9yIGRlbGl2ZXJp
bmcgc3VjaCBtZXNzYWdlcyB0byB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCB5b3UgYXJlIG5v
dCBhdXRob3JpemVkIHRvIGRpc2Nsb3NlLCBjb3B5LCBkaXN0cmlidXRlIG9yIHJldGFpbiB0
aGlzIG1lc3NhZ2UsIGluIHdob2xlIG9yIGluIHBhcnQsIHdpdGhvdXQgd3JpdHRlbiBhdXRo
b3JpemF0aW9uIGZyb20gUFNFRy4gIFRoaXMgZS1tYWlsIG1heSBjb250YWluIHByb3ByaWV0
YXJ5LCBjb25maWRlbnRpYWwgb3IgcHJpdmlsZWdlZCBpbmZvcm1hdGlvbi4gSWYgeW91IGhh
dmUgcmVjZWl2ZWQgdGhpcyBtZXNzYWdlIGluIGVycm9yLCBwbGVhc2Ugbm90aWZ5IHRoZSBz
ZW5kZXIgaW1tZWRpYXRlbHkuIFRoaXMgbm90aWNlIGlzIGluY2x1ZGVkIGluIGFsbCBlLW1h
aWwgbWVzc2FnZXMgbGVhdmluZyBQU0VHLiAgVGhhbmsgeW91IGZvciB5b3VyIGNvb3BlcmF0
aW9uLg0KPiANCj4gQ09ORklERU5USUFMSVRZIE5PVElDRTogVGhpcyBlbWFpbCBjb21tdW5p
Y2F0aW9uIGFuZCBhbnkgYXR0YWNobWVudHMgbWF5IGNvbnRhaW4gY29uZmlkZW50aWFsIGFu
ZCBwcml2aWxlZ2VkIGluZm9ybWF0aW9uIGZvciB0aGUgdXNlIG9mIHRoZSBkZXNpZ25hdGVk
IHJlY2lwaWVudHMgbmFtZWQgYWJvdmUuIElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZCBy
ZWNpcGllbnQsIHlvdSBhcmUgaGVyZWJ5IG5vdGlmaWVkIHRoYXQgeW91IGhhdmUgcmVjZWl2
ZWQgdGhpcyBjb21tdW5pY2F0aW9uIGluIGVycm9yIGFuZCB0aGF0IGFueSByZXZpZXcsIGRp
c2Nsb3N1cmUsIGRpc3NlbWluYXRpb24sIGRpc3RyaWJ1dGlvbiBvciBjb3B5aW5nIG9mIGl0
IG9yIGl0cyBjb250ZW50cyBpcyBwcm9oaWJpdGVkLiBJZiB5b3UgaGF2ZSByZWNlaXZlZCB0
aGlzIGNvbW11bmljYXRpb24gaW4gZXJyb3IsIHBsZWFzZSByZXBseSB0byB0aGUgc2VuZGVy
IGltbWVkaWF0ZWx5IG9yIGJ5IHRlbGVwaG9uZSBhdCAoNjE3KSA0MjYtMDYwMCBhbmQgZGVz
dHJveSBhbGwgY29waWVzIG9mIHRoaXMgY29tbXVuaWNhdGlvbiBhbmQgYW55IGF0dGFjaG1l
bnRzLiBGb3IgZnVydGhlciBpbmZvcm1hdGlvbiByZWdhcmRpbmcgQ29tbW9ud2VhbHRoIENh
cmUgQWxsaWFuY2UncyBwcml2YWN5IHBvbGljeSwgcGxlYXNlIHZpc2l0IG91ciBJbnRlcm5l
dCB3ZWIgc2l0ZSBhdCBodHRwOi8vd3d3LmNvbW1vbndlYWx0aGNhcmUub3JnLg0KPiANCj4g
DQo+IA0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0tIFNlY3VyaW5nIEFwYWNoZSBXZWIgU2Vy
dmVyIHdpdGggdGhhd3RlIERpZ2l0YWwgQ2VydGlmaWNhdGUgSW4gdGhpcyANCj4gZ3VpZGUg
d2UgZXhhbWluZSB0aGUgaW1wb3J0YW5jZSBvZiBBcGFjaGUtU1NMIGFuZCB3aG8gbmVlZHMg
YW4gU1NMIGNlcnRpZmljYXRlLiAgV2UgbG9vayBhdCBob3cgU1NMIHdvcmtzLCBob3cgaXQg
YmVuZWZpdHMgeW91ciBjb21wYW55IGFuZCBob3cgeW91ciBjdXN0b21lcnMgY2FuIHRlbGwg
aWYgYSBzaXRlIGlzIHNlY3VyZS4gWW91IHdpbGwgZmluZCBvdXQgaG93IHRvIHRlc3QsIHB1
cmNoYXNlLCBpbnN0YWxsIGFuZCB1c2UgYSB0aGF3dGUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBv
biB5b3VyIEFwYWNoZSB3ZWIgc2VydmVyLiBUaHJvdWdob3V0LCBiZXN0IHByYWN0aWNlcyBm
b3Igc2V0LXVwIGFyZSBoaWdobGlnaHRlZCB0byBoZWxwIHlvdSBlbnN1cmUgZWZmaWNpZW50
IG9uZ29pbmcgbWFuYWdlbWVudCBvZiB5b3VyIGVuY3J5cHRpb24ga2V5cyBhbmQgZGlnaXRh
bCBjZXJ0aWZpY2F0ZXMuDQo+IA0KPiBodHRwOi8vd3d3LmRpbmNsaW54LmNvbS9SZWRpcmVj
dC5hc3B4PzM2OzQxNzU7MjU7MTM3MTswOzU7OTQ2O2UxM2I2YmU0DQo+IDQyZjcyN2QxDQo+
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0NCj4gLS0NCj4gDQoNCkNPTkZJREVOVElBTElUWSBOT1RJQ0U6
IFRoaXMgZW1haWwgY29tbXVuaWNhdGlvbiBhbmQgYW55IGF0dGFjaG1lbnRzIG1heSBjb250
YWluIGNvbmZpZGVudGlhbCANCmFuZCBwcml2aWxlZ2VkIGluZm9ybWF0aW9uIGZvciB0aGUg
dXNlIG9mIHRoZSBkZXNpZ25hdGVkIHJlY2lwaWVudHMgbmFtZWQgYWJvdmUuIElmIHlvdSBh
cmUgDQpub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFyZSBoZXJlYnkgbm90aWZp
ZWQgdGhhdCB5b3UgaGF2ZSByZWNlaXZlZCB0aGlzIGNvbW11bmljYXRpb24gDQppbiBlcnJv
ciBhbmQgdGhhdCBhbnkgcmV2aWV3LCBkaXNjbG9zdXJlLCBkaXNzZW1pbmF0aW9uLCBkaXN0
cmlidXRpb24gb3IgY29weWluZyBvZiBpdCBvciBpdHMgDQpjb250ZW50cyBpcyBwcm9oaWJp
dGVkLiBJZiB5b3UgaGF2ZSByZWNlaXZlZCB0aGlzIGNvbW11bmljYXRpb24gaW4gZXJyb3Is
IHBsZWFzZSByZXBseSB0byB0aGUgDQpzZW5kZXIgaW1tZWRpYXRlbHkgb3IgYnkgdGVsZXBo
b25lIGF0ICg2MTcpIDQyNi0wNjAwIGFuZCBkZXN0cm95IGFsbCBjb3BpZXMgb2YgdGhpcyBj
b21tdW5pY2F0aW9uIA0KYW5kIGFueSBhdHRhY2htZW50cy4gRm9yIGZ1cnRoZXIgaW5mb3Jt
YXRpb24gcmVnYXJkaW5nIENvbW1vbndlYWx0aCBDYXJlIEFsbGlhbmNlJ3MgcHJpdmFjeSBw
b2xpY3ksIA0KcGxlYXNlIHZpc2l0IG91ciBJbnRlcm5ldCB3ZWIgc2l0ZSBhdCBodHRwOi8v
d3d3LmNvbW1vbndlYWx0aGNhcmUub3JnLg0KDQo=