Return-Path: Delivered-To: apmail-httpd-users-archive@httpd.apache.org Received: (qmail 58033 invoked by uid 500); 22 Apr 2002 19:27:19 -0000 Mailing-List: contact users-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: users@httpd.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list users@httpd.apache.org Received: (qmail 58020 invoked from network); 22 Apr 2002 19:27:19 -0000 Received: from uni01du.unity.ncsu.edu (152.1.2.65) by daedalus.apache.org with SMTP; 22 Apr 2002 19:27:19 -0000 Received: (from cwu4@localhost) by uni01du.unity.ncsu.edu (8.8.4/EC02Jan97) id PAA15457; Mon, 22 Apr 2002 15:27:21 -0400 (EDT) Date: Mon, 22 Apr 2002 15:27:21 -0400 (EDT) From: Chien-Lung Wu To: "ruirtsantos@clix.pt" cc: users@httpd.apache.org Subject: Re: Reverse Proxy Server In-Reply-To: <20020422181025.22217.qmail@webmail.clix.pt> Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-90654356-1019503641=:11364" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N ---559023410-90654356-1019503641=:11364 Content-Type: TEXT/PLAIN; charset=X-UNKNOWN Content-Transfer-Encoding: QUOTED-PRINTABLE Hi, Chrs: Thanks for your explanation. As you said that the name could be any name. You are right. For example, I set the proxy server to relay the service from http://172.18.24.86/ with the configuration: =09ProxyPass /test/ http://172.18.24.86/ =09ProxyPassReverse /test/ http://172.18.24.86/ And I use the remote client's browser to access the service as the following address =09http://216.166.210.183/test/ and actually it works. However, with the page showup (it is real proxy, since I use the proxy server's URL to access the service (service URL: http:172.18.24.86)), if I "input" data from my browser (remote browser), it will show me the information page as I mentioned before: --------------------begin message here------------------- If you can see this, it means that the installation of the Apache web server software on this system was successful. You may now add content to this directory and replace this page. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Seeing this instead of the website you expected? This page is here because the site administrator has changed the configuration of this web server. Please contact the person responsible for maintaining this server with questions. The Apache Software Foundation, which wrote the web server software this site administrator is using, has nothing to do with maintaining this site and cannot help resolve configuration issues. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D The Apache documentation has been included with this distribution. You are free to use the image below on an Apache-powered web server. Thanks for using Apache! --------------------End of message ------------- Note: in my case, when the first page showup, I will keyin the login name and passwd to access service from http://172.18.24.86/ Compare to the configuration with: =09ProxyPass / http://172.18.24.86/ =09ProxyPassReverse / http://172.18.24.86/ I can access the service with the login name and passwd. (Everything is o.k. as I expected and I get all data pop out.) Hence I wonder there should be some difference or missing between these two configuration. How come it is ok. if I set "/"; but it is not o.k., if I set /test/, instead of "/". Are there is any I missing or any other "parameters" I need to turn on. Attachment is the configuration file (httpd.conf) I used in my case. Thanks. Chien-Lung On Mon, 22 Apr 2002, ruirtsantos@clix.pt wrote: > > Chien, > No it doesn't you can name it what ever you want. > > Lets say you have reverse proxy named servera > that will relay requests to webserverb > > If you add the directive following directive on > the httpd.conf for you reverse proxy all requests > to http://servera/a/ will be in fact relayed from > http://webserverb/. > > ProxyPass /a/ http://webserverb/ > proxyPassReverse /a/ http://webserverb/ > > I hope this clear's it for you. > > Chrs, > > Chien-Lung Wu writes: > > > Hi, Chrs, > > > > Thanks for your reply. And couple things to make it clearlly. > > > > First, you point out the error (thanks). Do you think the name should b= e > > the same > >> > >> Hi, > >> You have an error on your configuration, it > >> should be like: > >> > >> ProxyPass /ServiceURL/ http://ServiceURL/ > >> proxyPassReverse /ServiceURL/ http://ServiceURL/ > > > > For example, if my proxy server is http://216.166.210.183 and my > > serviceURL is http://172.16.24.86/ , therefore, as you point out the > > error, > > > > the configuration should be: > > > > =09ProxyPass /172.16.24.86/ http://172.16.24.86/ > > =09ProxyPassReverse /172.16.24.86/ http://172.16.24.86/ > > > > Is that right? (it seems weird to me.) > > > > Assuming I have a service putting in > > > > =09http://172.16.24.86/TEST/ > > > > and as I check the the apache's doc and books, the configuration is: > > > > =09=09ProxyPass /TEST/ http://172.16.24.86/TEST/ > > =09=09ProxyPassReverse /TEST/ http://172.16.24.86/TEST/ > > Do you think the localtion "/TEST/" at the proxy server SHOULD be the s= ame > > as the location at the real service server, > > > > =09http://172.16.24.86/TEST/ > > =09=09=09 ------ > > > > Can you give me a little bit expain about the syntax error? Thanks. > > > > > > Chien-Lung > > > > > > > >> > >> If the proxy server is working properly you can > >> even disable proxy requests and cache. > >> ProxyRequests Off > >> NoCache * > >> > >> Chrs, > >> > >> Chien-Lung Wu writes: > >> > >> > Hi, > >> > > >> > I have a question/problem in setting apache server as Reverse proxy. > >> > > >> > Following is my configuration: > >> > > >> > > >> > http request ------ proxy server (myIPaddress, for example 192.18.= 32.3) > >> > =09=09=09| > >> > =09=09=09| > >> > =09=09=09+--> myRealWebService (URL=3D http://ServiceURL > >> > > >> > > >> > > >> > Now in my httpd.conf, I have proxy setting as following: > >> > (Note: the ServerRoot =3D"usr/local/apache2" > >> > ******* > >> > ProxyRequests on > >> > > >> > ProxyPass / http://ServiceURL > >> > proxyPassReverse / http://ServiceURL > >> > > >> > > >> > ******* > >> > > >> > With this configuration, everything is ok to access the Service by t= his > >> > proxy mechanism. > >> > > >> > > >> > However, if I set an "empty" directory (called "FBT") under the > >> > ServerRoot (/usr/local/apache2/FBT) with the privilege: > >> > > >> > =09drwxr-xr-x 2 root root 4096 Apr 22 09:49 FBT > >> > > >> > And the proxy configuration is as following: > >> > > >> > ***** > >> > ProxyRequests on > >> > > >> > > >> > ProxyPass /FBT http://serviceURL > >> > ProxyPassReverse /FBT http:/ServiceURL > >> > > >> > ********* > >> > > >> > And I always get the message as foolowing: > >> > > >> > ------------------------- > >> > Seeing this instead of the website you expected? > >> > > >> > This page is here because the site administrator has changed the > >> > configuration of this web server. Please contact the person responsi= ble > >> > for maintaining this server with > >> > questions. The Apache Software Foundation, which wrote the web serve= r > >> > software this site administrator is using, has nothing to do with > >> > maintaining this site and cannot help > >> > resolve configuration issues. > >> > ------------------------ > >> > > >> > Can any one help me out this problem? Can I just add a directory (e= mpty) > >> > as I did and then point to the real Service URL? or any thing I can = do to > >> > let reverse proxy server handle different server/service > >> > > >> > =09request<---->Proxy server > >> > =09=09=09| > >> > =09=09=09+------------service1_URL > >> > =09=09=09| > >> > =09=09=09+------------service2_URL > >> > =09=09=09| > >> > =09=09=09+------------service3_URL > >> > =09=09=09| > >> > =09=09=09. > >> > =09=09=09| > >> > =09=09=09+------------serviceN_URL > >> > > >> > > >> > Appreciate your help. Thanks. > >> > > >> > > >> > Chien-Lung > >> > ********************************************************************= ******** > >> > Chien-Lung Wu=09=09=09=09=09=09cwu4@eos.ncsu.edu > >> > Graduate Student of ECE =09=09=09=09(O) 919-513-1894 > >> > at North Carolina State University=09=09=09(H) 919-233-6724 > >> > ********************************************************************= ******** > >> > > >> > > >> > > >> > --------------------------------------------------------------------= - > >> > The official User-To-User support forum of the Apache HTTP Server Pr= oject. > >> > See for more info. > >> > To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org > >> > For additional commands, e-mail: users-help@httpd.apache.org > >> > > >> > >> > >> > >> Rui Santos > >> > >> > >> -- > >> Crie o seu Email Gr=E1tis no Clix em > >> http://registo.clix.pt/ > >> > >> --------------------------------------------------------------------- > >> The official User-To-User support forum of the Apache HTTP Server Proj= ect. > >> See for more info. > >> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org > >> For additional commands, e-mail: users-help@httpd.apache.org > >> > >> > > > > ***********************************************************************= ***** > > Chien-Lung Wu=09=09=09=09=09=09cwu4@eos.ncsu.edu > > Graduate Student of ECE =09=09=09=09(O) 919-513-1894 > > at North Carolina State University=09=09=09(H) 919-233-6724 > > ***********************************************************************= ***** > > > > > > > > --------------------------------------------------------------------- > > The official User-To-User support forum of the Apache HTTP Server Proje= ct. > > See for more info. > > To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org > > For additional commands, e-mail: users-help@httpd.apache.org > > > > > > Rui Santos > > > -- > Crie o seu Email Gr=E1tis no Clix em > http://registo.clix.pt/ > > --------------------------------------------------------------------- > The official User-To-User support forum of the Apache HTTP Server Project= =2E > See for more info. > To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org > For additional commands, e-mail: users-help@httpd.apache.org > > ***************************************************************************= * Chien-Lung Wu=09=09=09=09=09=09cwu4@eos.ncsu.edu Graduate Student of ECE =09=09=09=09(O) 919-513-1894 at North Carolina State University=09=09=09(H) 919-233-6724 ***************************************************************************= * ---559023410-90654356-1019503641=:11364 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="httpd.conf" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="httpd.conf" Iw0KIyBCYXNlZCB1cG9uIHRoZSBOQ1NBIHNlcnZlciBjb25maWd1cmF0aW9u IGZpbGVzIG9yaWdpbmFsbHkgYnkgUm9iIE1jQ29vbC4NCiMNCiMgVGhpcyBp cyB0aGUgbWFpbiBBcGFjaGUgc2VydmVyIGNvbmZpZ3VyYXRpb24gZmlsZS4g IEl0IGNvbnRhaW5zIHRoZQ0KIyBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMg dGhhdCBnaXZlIHRoZSBzZXJ2ZXIgaXRzIGluc3RydWN0aW9ucy4NCiMgU2Vl IDxVUkw6aHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy0yLjAvPiBmb3Ig ZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQNCiMgdGhlIGRpcmVjdGl2ZXMu DQojDQojIERvIE5PVCBzaW1wbHkgcmVhZCB0aGUgaW5zdHJ1Y3Rpb25zIGlu IGhlcmUgd2l0aG91dCB1bmRlcnN0YW5kaW5nDQojIHdoYXQgdGhleSBkby4g IFRoZXkncmUgaGVyZSBvbmx5IGFzIGhpbnRzIG9yIHJlbWluZGVycy4gIElm IHlvdSBhcmUgdW5zdXJlDQojIGNvbnN1bHQgdGhlIG9ubGluZSBkb2NzLiBZ b3UgaGF2ZSBiZWVuIHdhcm5lZC4gIA0KIw0KIyBUaGUgY29uZmlndXJhdGlv biBkaXJlY3RpdmVzIGFyZSBncm91cGVkIGludG8gdGhyZWUgYmFzaWMgc2Vj dGlvbnM6DQojICAxLiBEaXJlY3RpdmVzIHRoYXQgY29udHJvbCB0aGUgb3Bl cmF0aW9uIG9mIHRoZSBBcGFjaGUgc2VydmVyIHByb2Nlc3MgYXMgYQ0KIyAg ICAgd2hvbGUgKHRoZSAnZ2xvYmFsIGVudmlyb25tZW50JykuDQojICAyLiBE aXJlY3RpdmVzIHRoYXQgZGVmaW5lIHRoZSBwYXJhbWV0ZXJzIG9mIHRoZSAn bWFpbicgb3IgJ2RlZmF1bHQnIHNlcnZlciwNCiMgICAgIHdoaWNoIHJlc3Bv bmRzIHRvIHJlcXVlc3RzIHRoYXQgYXJlbid0IGhhbmRsZWQgYnkgYSB2aXJ0 dWFsIGhvc3QuDQojICAgICBUaGVzZSBkaXJlY3RpdmVzIGFsc28gcHJvdmlk ZSBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIHNldHRpbmdzDQojICAgICBvZiBh bGwgdmlydHVhbCBob3N0cy4NCiMgIDMuIFNldHRpbmdzIGZvciB2aXJ0dWFs IGhvc3RzLCB3aGljaCBhbGxvdyBXZWIgcmVxdWVzdHMgdG8gYmUgc2VudCB0 bw0KIyAgICAgZGlmZmVyZW50IElQIGFkZHJlc3NlcyBvciBob3N0bmFtZXMg YW5kIGhhdmUgdGhlbSBoYW5kbGVkIGJ5IHRoZQ0KIyAgICAgc2FtZSBBcGFj aGUgc2VydmVyIHByb2Nlc3MuDQojDQojIENvbmZpZ3VyYXRpb24gYW5kIGxv Z2ZpbGUgbmFtZXM6IElmIHRoZSBmaWxlbmFtZXMgeW91IHNwZWNpZnkgZm9y IG1hbnkNCiMgb2YgdGhlIHNlcnZlcidzIGNvbnRyb2wgZmlsZXMgYmVnaW4g d2l0aCAiLyIgKG9yICJkcml2ZTovIiBmb3IgV2luMzIpLCB0aGUNCiMgc2Vy dmVyIHdpbGwgdXNlIHRoYXQgZXhwbGljaXQgcGF0aC4gIElmIHRoZSBmaWxl bmFtZXMgZG8gKm5vdCogYmVnaW4NCiMgd2l0aCAiLyIsIHRoZSB2YWx1ZSBv ZiBTZXJ2ZXJSb290IGlzIHByZXBlbmRlZCAtLSBzbyAibG9ncy9mb28ubG9n Ig0KIyB3aXRoIFNlcnZlclJvb3Qgc2V0IHRvICIvdXNyL2xvY2FsL2FwYWNo ZTIiIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYnkgdGhlDQojIHNlcnZlciBhcyAi L3Vzci9sb2NhbC9hcGFjaGUyL2xvZ3MvZm9vLmxvZyIuDQojDQoNCiMjIyBT ZWN0aW9uIDE6IEdsb2JhbCBFbnZpcm9ubWVudA0KIw0KIyBUaGUgZGlyZWN0 aXZlcyBpbiB0aGlzIHNlY3Rpb24gYWZmZWN0IHRoZSBvdmVyYWxsIG9wZXJh dGlvbiBvZiBBcGFjaGUsDQojIHN1Y2ggYXMgdGhlIG51bWJlciBvZiBjb25j dXJyZW50IHJlcXVlc3RzIGl0IGNhbiBoYW5kbGUgb3Igd2hlcmUgaXQNCiMg Y2FuIGZpbmQgaXRzIGNvbmZpZ3VyYXRpb24gZmlsZXMuDQojDQoNCiMNCiMg U2VydmVyUm9vdDogVGhlIHRvcCBvZiB0aGUgZGlyZWN0b3J5IHRyZWUgdW5k ZXIgd2hpY2ggdGhlIHNlcnZlcidzDQojIGNvbmZpZ3VyYXRpb24sIGVycm9y LCBhbmQgbG9nIGZpbGVzIGFyZSBrZXB0Lg0KIw0KIyBOT1RFISAgSWYgeW91 IGludGVuZCB0byBwbGFjZSB0aGlzIG9uIGFuIE5GUyAob3Igb3RoZXJ3aXNl IG5ldHdvcmspDQojIG1vdW50ZWQgZmlsZXN5c3RlbSB0aGVuIHBsZWFzZSBy ZWFkIHRoZSBMb2NrRmlsZSBkb2N1bWVudGF0aW9uDQojIChhdmFpbGFibGUg YXQgPFVSTDpodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLTIuMC9tb2Qv Y29yZS5odG1sI2xvY2tmaWxlPik7DQojIHlvdSB3aWxsIHNhdmUgeW91cnNl bGYgYSBsb3Qgb2YgdHJvdWJsZS4NCiMNCiMgRG8gTk9UIGFkZCBhIHNsYXNo IGF0IHRoZSBlbmQgb2YgdGhlIGRpcmVjdG9yeSBwYXRoLg0KIw0KU2VydmVy Um9vdCAiL3Vzci9sb2NhbC9hcGFjaGUyIg0KDQojDQojIFRoZSBhY2NlcHQg c2VyaWFsaXphdGlvbiBsb2NrIGZpbGUgTVVTVCBCRSBTVE9SRUQgT04gQSBM T0NBTCBESVNLLg0KIw0KPElmTW9kdWxlICFtcG1fd2lubnQuYz4NCjxJZk1v ZHVsZSAhbXBtX25ldHdhcmUuYz4NCiNMb2NrRmlsZSBsb2dzL2FjY2VwdC5s b2NrDQo8L0lmTW9kdWxlPg0KPC9JZk1vZHVsZT4NCg0KIw0KIyBTY29yZUJv YXJkRmlsZTogRmlsZSB1c2VkIHRvIHN0b3JlIGludGVybmFsIHNlcnZlciBw cm9jZXNzIGluZm9ybWF0aW9uLg0KIyBJZiB1bnNwZWNpZmllZCAodGhlIGRl ZmF1bHQpLCB0aGUgc2NvcmVib2FyZCB3aWxsIGJlIHN0b3JlZCBpbiBhbg0K IyBhbm9ueW1vdXMgc2hhcmVkIG1lbW9yeSBzZWdtZW50LCBhbmQgd2lsbCBi ZSB1bmF2YWlsYWJsZSB0byB0aGlyZC1wYXJ0eQ0KIyBhcHBsaWNhdGlvbnMu DQojIElmIHNwZWNpZmllZCwgZW5zdXJlIHRoYXQgbm8gdHdvIGludm9jYXRp b25zIG9mIEFwYWNoZSBzaGFyZSB0aGUgc2FtZQ0KIyBzY29yZWJvYXJkIGZp bGUuIFRoZSBzY29yZWJvYXJkIGZpbGUgTVVTVCBCRSBTVE9SRUQgT04gQSBM T0NBTCBESVNLLg0KIw0KPElmTW9kdWxlICFtcG1fbmV0d2FyZS5jPg0KPElm TW9kdWxlICFwZXJjaGlsZC5jPg0KI1Njb3JlQm9hcmRGaWxlIGxvZ3MvYXBh Y2hlX3J1bnRpbWVfc3RhdHVzDQo8L0lmTW9kdWxlPg0KPC9JZk1vZHVsZT4N Cg0KDQojDQojIFBpZEZpbGU6IFRoZSBmaWxlIGluIHdoaWNoIHRoZSBzZXJ2 ZXIgc2hvdWxkIHJlY29yZCBpdHMgcHJvY2Vzcw0KIyBpZGVudGlmaWNhdGlv biBudW1iZXIgd2hlbiBpdCBzdGFydHMuDQojDQo8SWZNb2R1bGUgIW1wbV9u ZXR3YXJlLmM+DQpQaWRGaWxlIGxvZ3MvaHR0cGQucGlkDQo8L0lmTW9kdWxl Pg0KDQojDQojIFRpbWVvdXQ6IFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBiZWZv cmUgcmVjZWl2ZXMgYW5kIHNlbmRzIHRpbWUgb3V0Lg0KIw0KVGltZW91dCAz MDANCg0KIw0KIyBLZWVwQWxpdmU6IFdoZXRoZXIgb3Igbm90IHRvIGFsbG93 IHBlcnNpc3RlbnQgY29ubmVjdGlvbnMgKG1vcmUgdGhhbg0KIyBvbmUgcmVx dWVzdCBwZXIgY29ubmVjdGlvbikuIFNldCB0byAiT2ZmIiB0byBkZWFjdGl2 YXRlLg0KIw0KS2VlcEFsaXZlIE9uDQoNCiMNCiMgTWF4S2VlcEFsaXZlUmVx dWVzdHM6IFRoZSBtYXhpbXVtIG51bWJlciBvZiByZXF1ZXN0cyB0byBhbGxv dw0KIyBkdXJpbmcgYSBwZXJzaXN0ZW50IGNvbm5lY3Rpb24uIFNldCB0byAw IHRvIGFsbG93IGFuIHVubGltaXRlZCBhbW91bnQuDQojIFdlIHJlY29tbWVu ZCB5b3UgbGVhdmUgdGhpcyBudW1iZXIgaGlnaCwgZm9yIG1heGltdW0gcGVy Zm9ybWFuY2UuDQojDQpNYXhLZWVwQWxpdmVSZXF1ZXN0cyAxMDANCg0KIw0K IyBLZWVwQWxpdmVUaW1lb3V0OiBOdW1iZXIgb2Ygc2Vjb25kcyB0byB3YWl0 IGZvciB0aGUgbmV4dCByZXF1ZXN0IGZyb20gdGhlDQojIHNhbWUgY2xpZW50 IG9uIHRoZSBzYW1lIGNvbm5lY3Rpb24uDQojDQpLZWVwQWxpdmVUaW1lb3V0 IDE1DQoNCiMjDQojIyBTZXJ2ZXItUG9vbCBTaXplIFJlZ3VsYXRpb24gKE1Q TSBzcGVjaWZpYykNCiMjIA0KDQojIHByZWZvcmsgTVBNDQojIFN0YXJ0U2Vy dmVyczogbnVtYmVyIG9mIHNlcnZlciBwcm9jZXNzZXMgdG8gc3RhcnQNCiMg TWluU3BhcmVTZXJ2ZXJzOiBtaW5pbXVtIG51bWJlciBvZiBzZXJ2ZXIgcHJv Y2Vzc2VzIHdoaWNoIGFyZSBrZXB0IHNwYXJlDQojIE1heFNwYXJlU2VydmVy czogbWF4aW11bSBudW1iZXIgb2Ygc2VydmVyIHByb2Nlc3NlcyB3aGljaCBh cmUga2VwdCBzcGFyZQ0KIyBNYXhDbGllbnRzOiBtYXhpbXVtIG51bWJlciBv ZiBzZXJ2ZXIgcHJvY2Vzc2VzIGFsbG93ZWQgdG8gc3RhcnQNCiMgTWF4UmVx dWVzdHNQZXJDaGlsZDogbWF4aW11bSBudW1iZXIgb2YgcmVxdWVzdHMgYSBz ZXJ2ZXIgcHJvY2VzcyBzZXJ2ZXMNCjxJZk1vZHVsZSBwcmVmb3JrLmM+DQpT dGFydFNlcnZlcnMgICAgICAgICA1DQpNaW5TcGFyZVNlcnZlcnMgICAgICA1 DQpNYXhTcGFyZVNlcnZlcnMgICAgIDEwDQpNYXhDbGllbnRzICAgICAgICAg MTUwDQpNYXhSZXF1ZXN0c1BlckNoaWxkICAwDQo8L0lmTW9kdWxlPg0KDQoj IHdvcmtlciBNUE0NCiMgU3RhcnRTZXJ2ZXJzOiBpbml0aWFsIG51bWJlciBv ZiBzZXJ2ZXIgcHJvY2Vzc2VzIHRvIHN0YXJ0DQojIE1heENsaWVudHM6IG1h eGltdW0gbnVtYmVyIG9mIHNpbXVsdGFuZW91cyBjbGllbnQgY29ubmVjdGlv bnMNCiMgTWluU3BhcmVUaHJlYWRzOiBtaW5pbXVtIG51bWJlciBvZiB3b3Jr ZXIgdGhyZWFkcyB3aGljaCBhcmUga2VwdCBzcGFyZQ0KIyBNYXhTcGFyZVRo cmVhZHM6IG1heGltdW0gbnVtYmVyIG9mIHdvcmtlciB0aHJlYWRzIHdoaWNo IGFyZSBrZXB0IHNwYXJlDQojIFRocmVhZHNQZXJDaGlsZDogY29uc3RhbnQg bnVtYmVyIG9mIHdvcmtlciB0aHJlYWRzIGluIGVhY2ggc2VydmVyIHByb2Nl c3MNCiMgTWF4UmVxdWVzdHNQZXJDaGlsZDogbWF4aW11bSBudW1iZXIgb2Yg cmVxdWVzdHMgYSBzZXJ2ZXIgcHJvY2VzcyBzZXJ2ZXMNCjxJZk1vZHVsZSB3 b3JrZXIuYz4NClN0YXJ0U2VydmVycyAgICAgICAgIDINCk1heENsaWVudHMg ICAgICAgICAxNTANCk1pblNwYXJlVGhyZWFkcyAgICAgMjUNCk1heFNwYXJl VGhyZWFkcyAgICAgNzUgDQpUaHJlYWRzUGVyQ2hpbGQgICAgIDI1DQpNYXhS ZXF1ZXN0c1BlckNoaWxkICAwDQo8L0lmTW9kdWxlPg0KDQojIHBlcmNoaWxk IE1QTQ0KIyBOdW1TZXJ2ZXJzOiBjb25zdGFudCBudW1iZXIgb2Ygc2VydmVy IHByb2Nlc3Nlcw0KIyBTdGFydFRocmVhZHM6IGluaXRpYWwgbnVtYmVyIG9m IHdvcmtlciB0aHJlYWRzIGluIGVhY2ggc2VydmVyIHByb2Nlc3MNCiMgTWlu U3BhcmVUaHJlYWRzOiBtaW5pbXVtIG51bWJlciBvZiB3b3JrZXIgdGhyZWFk cyB3aGljaCBhcmUga2VwdCBzcGFyZQ0KIyBNYXhTcGFyZVRocmVhZHM6IG1h eGltdW0gbnVtYmVyIG9mIHdvcmtlciB0aHJlYWRzIHdoaWNoIGFyZSBrZXB0 IHNwYXJlDQojIE1heFRocmVhZHNQZXJDaGlsZDogbWF4aW11bSBudW1iZXIg b2Ygd29ya2VyIHRocmVhZHMgaW4gZWFjaCBzZXJ2ZXIgcHJvY2Vzcw0KIyBN YXhSZXF1ZXN0c1BlckNoaWxkOiBtYXhpbXVtIG51bWJlciBvZiBjb25uZWN0 aW9ucyBwZXIgc2VydmVyIHByb2Nlc3MNCjxJZk1vZHVsZSBwZXJjaGlsZC5j Pg0KTnVtU2VydmVycyAgICAgICAgICAgNQ0KU3RhcnRUaHJlYWRzICAgICAg ICAgNQ0KTWluU3BhcmVUaHJlYWRzICAgICAgNQ0KTWF4U3BhcmVUaHJlYWRz ICAgICAxMA0KTWF4VGhyZWFkc1BlckNoaWxkICAyMA0KTWF4UmVxdWVzdHNQ ZXJDaGlsZCAgMA0KPC9JZk1vZHVsZT4NCg0KIyBXaW5OVCBNUE0NCiMgVGhy ZWFkc1BlckNoaWxkOiBjb25zdGFudCBudW1iZXIgb2Ygd29ya2VyIHRocmVh ZHMgaW4gdGhlIHNlcnZlciBwcm9jZXNzDQojIE1heFJlcXVlc3RzUGVyQ2hp bGQ6IG1heGltdW0gIG51bWJlciBvZiByZXF1ZXN0cyBhIHNlcnZlciBwcm9j ZXNzIHNlcnZlcw0KPElmTW9kdWxlIG1wbV93aW5udC5jPg0KVGhyZWFkc1Bl ckNoaWxkIDI1MA0KTWF4UmVxdWVzdHNQZXJDaGlsZCAgMA0KPC9JZk1vZHVs ZT4NCg0KIyBCZU9TIE1QTQ0KIyBTdGFydFRocmVhZHM6IGhvdyBtYW55IHRo cmVhZHMgZG8gd2UgaW5pdGlhbGx5IHNwYXduPw0KIyBNYXhDbGllbnRzOiAg IG1heCBudW1iZXIgb2YgdGhyZWFkcyB3ZSBjYW4gaGF2ZSAoMSB0aHJlYWQg PT0gMSBjbGllbnQpDQojIE1heFJlcXVlc3RzUGVyVGhyZWFkOiBtYXhpbXVt IG51bWJlciBvZiByZXF1ZXN0cyBlYWNoIHRocmVhZCB3aWxsIHByb2Nlc3MN CjxJZk1vZHVsZSBiZW9zLmM+DQpTdGFydFRocmVhZHMgICAgICAgICAgICAg ICAxMA0KTWF4Q2xpZW50cyAgICAgICAgICAgICAgICAgNTANCk1heFJlcXVl c3RzUGVyVGhyZWFkICAgICAgIDEwMDAwDQo8L0lmTW9kdWxlPiAgICANCg0K IyBOZXRXYXJlIE1QTQ0KIyBUaHJlYWRTdGFja1NpemUgLi4uLi4uIFN0YWNr IHNpemUgYWxsb2NhdGVkIGZvciBlYWNoIHdvcmtlciB0aHJlYWQNCiMgU3Rh cnRUaHJlYWRzIC4uLi4uLi4uLiBOdW1iZXIgb2Ygd29ya2VyIHRocmVhZHMg bGF1bmNoZWQgYXQgc2VydmVyIHN0YXJ0dXANCiMgTWluU3BhcmVUaHJlYWRz IC4uLi4uLiBNaW5pbXVtIG51bWJlciBvZiBpZGxlIHRocmVhZHMsIHRvIGhh bmRsZSByZXF1ZXN0IHNwaWtlcw0KIyBNYXhTcGFyZVRocmVhZHMgLi4uLi4u IE1heGltdW0gbnVtYmVyIG9mIGlkbGUgdGhyZWFkcw0KIyBNYXhUaHJlYWRz IC4uLi4uLi4uLi4uIE1heGltdW0gbnVtYmVyIG9mIHdvcmtlciB0aHJlYWRz IGFsaXZlIGF0IHRoZSBzYW1lIHRpbWUNCiMgTWF4UmVxdWVzdHNQZXJDaGls ZCAuLiBNYXhpbXVtICBudW1iZXIgb2YgcmVxdWVzdHMgYSB0aHJlYWQgc2Vy dmVzLiBJdCBpcyANCiMgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb21t ZW5kZWQgdGhhdCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiAwIGJlIHNldCBmb3Ig dGhpcw0KIyAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RpdmUgb24g TmV0V2FyZS4gIFRoaXMgd2lsbCBhbGxvdyB0aGUgdGhyZWFkIHRvIA0KIyAg ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSB0byBzZXJ2aWNlIHJl cXVlc3RzIGluZGVmaW5pdGVseS4gICAgICAgICAgICAgICAgICAgICAgICAg IA0KPElmTW9kdWxlIG1wbV9uZXR3YXJlLmM+DQpUaHJlYWRTdGFja1NpemUg ICAgICA2NTUzNg0KU3RhcnRUaHJlYWRzICAgICAgICAgICAyNTANCk1pblNw YXJlVGhyZWFkcyAgICAgICAgIDI1DQpNYXhTcGFyZVRocmVhZHMgICAgICAg IDI1MA0KTWF4VGhyZWFkcyAgICAgICAgICAgIDEwMDANCk1heFJlcXVlc3Rz UGVyQ2hpbGQgICAgICAwDQo8L0lmTW9kdWxlPg0KDQojDQojIExpc3Rlbjog QWxsb3dzIHlvdSB0byBiaW5kIEFwYWNoZSB0byBzcGVjaWZpYyBJUCBhZGRy ZXNzZXMgYW5kL29yDQojIHBvcnRzLCBpbiBhZGRpdGlvbiB0byB0aGUgZGVm YXVsdC4gU2VlIGFsc28gdGhlIDxWaXJ0dWFsSG9zdD4NCiMgZGlyZWN0aXZl Lg0KIw0KIyBDaGFuZ2UgdGhpcyB0byBMaXN0ZW4gb24gc3BlY2lmaWMgSVAg YWRkcmVzc2VzIGFzIHNob3duIGJlbG93IHRvIA0KIyBwcmV2ZW50IEFwYWNo ZSBmcm9tIGdsb21taW5nIG9udG8gYWxsIGJvdW5kIElQIGFkZHJlc3NlcyAo MC4wLjAuMCkNCiMNCiNMaXN0ZW4gMTIuMzQuNTYuNzg6ODANCkxpc3RlbiA4 MA0KDQojDQojIER5bmFtaWMgU2hhcmVkIE9iamVjdCAoRFNPKSBTdXBwb3J0 DQojDQojIFRvIGJlIGFibGUgdG8gdXNlIHRoZSBmdW5jdGlvbmFsaXR5IG9m IGEgbW9kdWxlIHdoaWNoIHdhcyBidWlsdCBhcyBhIERTTyB5b3UNCiMgaGF2 ZSB0byBwbGFjZSBjb3JyZXNwb25kaW5nIGBMb2FkTW9kdWxlJyBsaW5lcyBh dCB0aGlzIGxvY2F0aW9uIHNvIHRoZQ0KIyBkaXJlY3RpdmVzIGNvbnRhaW5l ZCBpbiBpdCBhcmUgYWN0dWFsbHkgYXZhaWxhYmxlIF9iZWZvcmVfIHRoZXkg YXJlIHVzZWQuDQojIFN0YXRpY2FsbHkgY29tcGlsZWQgbW9kdWxlcyAodGhv c2UgbGlzdGVkIGJ5IGBodHRwZCAtbCcpIGRvIG5vdCBuZWVkDQojIHRvIGJl IGxvYWRlZCBoZXJlLg0KIw0KIyBFeGFtcGxlOg0KIyBMb2FkTW9kdWxlIGZv b19tb2R1bGUgbW9kdWxlcy9tb2RfZm9vLnNvDQojDQoNCiMNCiMgRXh0ZW5k ZWRTdGF0dXMgY29udHJvbHMgd2hldGhlciBBcGFjaGUgd2lsbCBnZW5lcmF0 ZSAiZnVsbCIgc3RhdHVzDQojIGluZm9ybWF0aW9uIChFeHRlbmRlZFN0YXR1 cyBPbikgb3IganVzdCBiYXNpYyBpbmZvcm1hdGlvbiAoRXh0ZW5kZWRTdGF0 dXMNCiMgT2ZmKSB3aGVuIHRoZSAic2VydmVyLXN0YXR1cyIgaGFuZGxlciBp cyBjYWxsZWQuIFRoZSBkZWZhdWx0IGlzIE9mZi4NCiMNCiNFeHRlbmRlZFN0 YXR1cyBPbg0KDQojIyMgU2VjdGlvbiAyOiAnTWFpbicgc2VydmVyIGNvbmZp Z3VyYXRpb24NCiMNCiMgVGhlIGRpcmVjdGl2ZXMgaW4gdGhpcyBzZWN0aW9u IHNldCB1cCB0aGUgdmFsdWVzIHVzZWQgYnkgdGhlICdtYWluJw0KIyBzZXJ2 ZXIsIHdoaWNoIHJlc3BvbmRzIHRvIGFueSByZXF1ZXN0cyB0aGF0IGFyZW4n dCBoYW5kbGVkIGJ5IGENCiMgPFZpcnR1YWxIb3N0PiBkZWZpbml0aW9uLiAg VGhlc2UgdmFsdWVzIGFsc28gcHJvdmlkZSBkZWZhdWx0cyBmb3INCiMgYW55 IDxWaXJ0dWFsSG9zdD4gY29udGFpbmVycyB5b3UgbWF5IGRlZmluZSBsYXRl ciBpbiB0aGUgZmlsZS4NCiMNCiMgQWxsIG9mIHRoZXNlIGRpcmVjdGl2ZXMg bWF5IGFwcGVhciBpbnNpZGUgPFZpcnR1YWxIb3N0PiBjb250YWluZXJzLA0K IyBpbiB3aGljaCBjYXNlIHRoZXNlIGRlZmF1bHQgc2V0dGluZ3Mgd2lsbCBi ZSBvdmVycmlkZGVuIGZvciB0aGUNCiMgdmlydHVhbCBob3N0IGJlaW5nIGRl ZmluZWQuDQojDQoNCjxJZk1vZHVsZSAhbXBtX3dpbm50LmM+DQo8SWZNb2R1 bGUgIW1wbV9uZXR3YXJlLmM+DQojDQojIElmIHlvdSB3aXNoIGh0dHBkIHRv IHJ1biBhcyBhIGRpZmZlcmVudCB1c2VyIG9yIGdyb3VwLCB5b3UgbXVzdCBy dW4NCiMgaHR0cGQgYXMgcm9vdCBpbml0aWFsbHkgYW5kIGl0IHdpbGwgc3dp dGNoLiAgDQojDQojIFVzZXIvR3JvdXA6IFRoZSBuYW1lIChvciAjbnVtYmVy KSBvZiB0aGUgdXNlci9ncm91cCB0byBydW4gaHR0cGQgYXMuDQojICAuIE9u IFNDTyAoT0RUIDMpIHVzZSAiVXNlciBub3VzZXIiIGFuZCAiR3JvdXAgbm9n cm91cCIuDQojICAuIE9uIEhQVVggeW91IG1heSBub3QgYmUgYWJsZSB0byB1 c2Ugc2hhcmVkIG1lbW9yeSBhcyBub2JvZHksIGFuZCB0aGUNCiMgICAgc3Vn Z2VzdGVkIHdvcmthcm91bmQgaXMgdG8gY3JlYXRlIGEgdXNlciB3d3cgYW5k IHVzZSB0aGF0IHVzZXIuDQojICBOT1RFIHRoYXQgc29tZSBrZXJuZWxzIHJl ZnVzZSB0byBzZXRnaWQoR3JvdXApIG9yIHNlbWN0bChJUENfU0VUKQ0KIyAg d2hlbiB0aGUgdmFsdWUgb2YgKHVuc2lnbmVkKUdyb3VwIGlzIGFib3ZlIDYw MDAwOyANCiMgIGRvbid0IHVzZSBHcm91cCAjLTEgb24gdGhlc2Ugc3lzdGVt cyENCiMNClVzZXIgbm9ib2R5DQpHcm91cCAjLTENCjwvSWZNb2R1bGU+DQo8 L0lmTW9kdWxlPg0KDQojDQojIFNlcnZlckFkbWluOiBZb3VyIGFkZHJlc3Ms IHdoZXJlIHByb2JsZW1zIHdpdGggdGhlIHNlcnZlciBzaG91bGQgYmUNCiMg ZS1tYWlsZWQuICBUaGlzIGFkZHJlc3MgYXBwZWFycyBvbiBzb21lIHNlcnZl ci1nZW5lcmF0ZWQgcGFnZXMsIHN1Y2gNCiMgYXMgZXJyb3IgZG9jdW1lbnRz LiAgZS5nLiBhZG1pbkB5b3VyLWRvbWFpbi5jb20NCiMNClNlcnZlckFkbWlu IGN3dUBkZWx0YXJ0cC5jb20NCg0KIw0KIyBTZXJ2ZXJOYW1lIGdpdmVzIHRo ZSBuYW1lIGFuZCBwb3J0IHRoYXQgdGhlIHNlcnZlciB1c2VzIHRvIGlkZW50 aWZ5IGl0c2VsZi4NCiMgVGhpcyBjYW4gb2Z0ZW4gYmUgZGV0ZXJtaW5lZCBh dXRvbWF0aWNhbGx5LCBidXQgd2UgcmVjb21tZW5kIHlvdSBzcGVjaWZ5DQoj IGl0IGV4cGxpY2l0bHkgdG8gcHJldmVudCBwcm9ibGVtcyBkdXJpbmcgc3Rh cnR1cC4NCiMNCiMgSWYgdGhpcyBpcyBub3Qgc2V0IHRvIHZhbGlkIEROUyBu YW1lIGZvciB5b3VyIGhvc3QsIHNlcnZlci1nZW5lcmF0ZWQNCiMgcmVkaXJl Y3Rpb25zIHdpbGwgbm90IHdvcmsuICBTZWUgYWxzbyB0aGUgVXNlQ2Fub25p Y2FsTmFtZSBkaXJlY3RpdmUuDQojDQojIElmIHlvdXIgaG9zdCBkb2Vzbid0 IGhhdmUgYSByZWdpc3RlcmVkIEROUyBuYW1lLCBlbnRlciBpdHMgSVAgYWRk cmVzcyBoZXJlLg0KIyBZb3Ugd2lsbCBoYXZlIHRvIGFjY2VzcyBpdCBieSBp dHMgYWRkcmVzcyBhbnl3YXksIGFuZCB0aGlzIHdpbGwgbWFrZSANCiMgcmVk aXJlY3Rpb25zIHdvcmsgaW4gYSBzZW5zaWJsZSB3YXkuDQojDQpTZXJ2ZXJO YW1lIDIxNi4xNjYuMjEwLjE4Mzo4MA0KDQojDQojIFVzZUNhbm9uaWNhbE5h bWU6IERldGVybWluZXMgaG93IEFwYWNoZSBjb25zdHJ1Y3RzIHNlbGYtcmVm ZXJlbmNpbmcgDQojIFVSTHMgYW5kIHRoZSBTRVJWRVJfTkFNRSBhbmQgU0VS VkVSX1BPUlQgdmFyaWFibGVzLg0KIyBXaGVuIHNldCAiT2ZmIiwgQXBhY2hl IHdpbGwgdXNlIHRoZSBIb3N0bmFtZSBhbmQgUG9ydCBzdXBwbGllZA0KIyBi eSB0aGUgY2xpZW50LiAgV2hlbiBzZXQgIk9uIiwgQXBhY2hlIHdpbGwgdXNl IHRoZSB2YWx1ZSBvZiB0aGUNCiMgU2VydmVyTmFtZSBkaXJlY3RpdmUuDQoj DQpVc2VDYW5vbmljYWxOYW1lIE9mZg0KDQojDQojIERvY3VtZW50Um9vdDog VGhlIGRpcmVjdG9yeSBvdXQgb2Ygd2hpY2ggeW91IHdpbGwgc2VydmUgeW91 cg0KIyBkb2N1bWVudHMuIEJ5IGRlZmF1bHQsIGFsbCByZXF1ZXN0cyBhcmUg dGFrZW4gZnJvbSB0aGlzIGRpcmVjdG9yeSwgYnV0DQojIHN5bWJvbGljIGxp bmtzIGFuZCBhbGlhc2VzIG1heSBiZSB1c2VkIHRvIHBvaW50IHRvIG90aGVy IGxvY2F0aW9ucy4NCiMNCkRvY3VtZW50Um9vdCAiL3Vzci9sb2NhbC9hcGFj aGUyL2h0ZG9jcyINCg0KIw0KIyBFYWNoIGRpcmVjdG9yeSB0byB3aGljaCBB cGFjaGUgaGFzIGFjY2VzcyBjYW4gYmUgY29uZmlndXJlZCB3aXRoIHJlc3Bl Y3QNCiMgdG8gd2hpY2ggc2VydmljZXMgYW5kIGZlYXR1cmVzIGFyZSBhbGxv d2VkIGFuZC9vciBkaXNhYmxlZCBpbiB0aGF0DQojIGRpcmVjdG9yeSAoYW5k IGl0cyBzdWJkaXJlY3RvcmllcykuIA0KIw0KIyBGaXJzdCwgd2UgY29uZmln dXJlIHRoZSAiZGVmYXVsdCIgdG8gYmUgYSB2ZXJ5IHJlc3RyaWN0aXZlIHNl dCBvZiANCiMgZmVhdHVyZXMuICANCiMNCjxEaXJlY3RvcnkgLz4NCiAgICBP cHRpb25zIEZvbGxvd1N5bUxpbmtzDQogICAgQWxsb3dPdmVycmlkZSBOb25l DQo8L0RpcmVjdG9yeT4NCg0KIw0KIyBOb3RlIHRoYXQgZnJvbSB0aGlzIHBv aW50IGZvcndhcmQgeW91IG11c3Qgc3BlY2lmaWNhbGx5IGFsbG93DQojIHBh cnRpY3VsYXIgZmVhdHVyZXMgdG8gYmUgZW5hYmxlZCAtIHNvIGlmIHNvbWV0 aGluZydzIG5vdCB3b3JraW5nIGFzDQojIHlvdSBtaWdodCBleHBlY3QsIG1h a2Ugc3VyZSB0aGF0IHlvdSBoYXZlIHNwZWNpZmljYWxseSBlbmFibGVkIGl0 DQojIGJlbG93Lg0KIw0KDQojDQojIFRoaXMgc2hvdWxkIGJlIGNoYW5nZWQg dG8gd2hhdGV2ZXIgeW91IHNldCBEb2N1bWVudFJvb3QgdG8uDQojDQo8RGly ZWN0b3J5ICIvdXNyL2xvY2FsL2FwYWNoZTIvaHRkb2NzIj4NCg0KIw0KIyBQ b3NzaWJsZSB2YWx1ZXMgZm9yIHRoZSBPcHRpb25zIGRpcmVjdGl2ZSBhcmUg Ik5vbmUiLCAiQWxsIiwNCiMgb3IgYW55IGNvbWJpbmF0aW9uIG9mOg0KIyAg IEluZGV4ZXMgSW5jbHVkZXMgRm9sbG93U3ltTGlua3MgU3ltTGlua3NpZk93 bmVyTWF0Y2ggRXhlY0NHSSBNdWx0aXZpZXdzDQojDQojIE5vdGUgdGhhdCAi TXVsdGlWaWV3cyIgbXVzdCBiZSBuYW1lZCAqZXhwbGljaXRseSogLS0tICJP cHRpb25zIEFsbCINCiMgZG9lc24ndCBnaXZlIGl0IHRvIHlvdS4NCiMNCiMg VGhlIE9wdGlvbnMgZGlyZWN0aXZlIGlzIGJvdGggY29tcGxpY2F0ZWQgYW5k IGltcG9ydGFudC4gIFBsZWFzZSBzZWUNCiMgaHR0cDovL2h0dHBkLmFwYWNo ZS5vcmcvZG9jcy0yLjAvbW9kL2NvcmUuaHRtbCNvcHRpb25zDQojIGZvciBt b3JlIGluZm9ybWF0aW9uLg0KIw0KICAgIE9wdGlvbnMgSW5kZXhlcyBGb2xs b3dTeW1MaW5rcw0KDQojDQojIEFsbG93T3ZlcnJpZGUgY29udHJvbHMgd2hh dCBkaXJlY3RpdmVzIG1heSBiZSBwbGFjZWQgaW4gLmh0YWNjZXNzIGZpbGVz Lg0KIyBJdCBjYW4gYmUgIkFsbCIsICJOb25lIiwgb3IgYW55IGNvbWJpbmF0 aW9uIG9mIHRoZSBrZXl3b3JkczoNCiMgICBPcHRpb25zIEZpbGVJbmZvIEF1 dGhDb25maWcgTGltaXQNCiMNCiAgICBBbGxvd092ZXJyaWRlIE5vbmUNCg0K Iw0KIyBDb250cm9scyB3aG8gY2FuIGdldCBzdHVmZiBmcm9tIHRoaXMgc2Vy dmVyLg0KIw0KICAgIE9yZGVyIGFsbG93LGRlbnkNCiAgICBBbGxvdyBmcm9t IGFsbA0KDQo8L0RpcmVjdG9yeT4NCg0KIw0KIyBVc2VyRGlyOiBUaGUgbmFt ZSBvZiB0aGUgZGlyZWN0b3J5IHRoYXQgaXMgYXBwZW5kZWQgb250byBhIHVz ZXIncyBob21lDQojIGRpcmVjdG9yeSBpZiBhIH51c2VyIHJlcXVlc3QgaXMg cmVjZWl2ZWQuDQojDQpVc2VyRGlyIHB1YmxpY19odG1sDQoNCiMNCiMgQ29u dHJvbCBhY2Nlc3MgdG8gVXNlckRpciBkaXJlY3Rvcmllcy4gIFRoZSBmb2xs b3dpbmcgaXMgYW4gZXhhbXBsZQ0KIyBmb3IgYSBzaXRlIHdoZXJlIHRoZXNl IGRpcmVjdG9yaWVzIGFyZSByZXN0cmljdGVkIHRvIHJlYWQtb25seS4NCiMN CiM8RGlyZWN0b3J5IC9ob21lLyovcHVibGljX2h0bWw+DQojICAgIEFsbG93 T3ZlcnJpZGUgRmlsZUluZm8gQXV0aENvbmZpZyBMaW1pdA0KIyAgICBPcHRp b25zIE11bHRpVmlld3MgSW5kZXhlcyBTeW1MaW5rc0lmT3duZXJNYXRjaCBJ bmNsdWRlc05vRXhlYw0KIyAgICA8TGltaXQgR0VUIFBPU1QgT1BUSU9OUyBQ Uk9QRklORD4NCiMgICAgICAgIE9yZGVyIGFsbG93LGRlbnkNCiMgICAgICAg IEFsbG93IGZyb20gYWxsDQojICAgIDwvTGltaXQ+DQojICAgIDxMaW1pdEV4 Y2VwdCBHRVQgUE9TVCBPUFRJT05TIFBST1BGSU5EPg0KIyAgICAgICAgT3Jk ZXIgZGVueSxhbGxvdw0KIyAgICAgICAgRGVueSBmcm9tIGFsbA0KIyAgICA8 L0xpbWl0RXhjZXB0Pg0KIzwvRGlyZWN0b3J5Pg0KDQojDQojIERpcmVjdG9y eUluZGV4OiBzZXRzIHRoZSBmaWxlIHRoYXQgQXBhY2hlIHdpbGwgc2VydmUg aWYgYSBkaXJlY3RvcnkNCiMgaXMgcmVxdWVzdGVkLg0KIw0KIyBUaGUgaW5k ZXguaHRtbC52YXIgZmlsZSAoYSB0eXBlLW1hcCkgaXMgdXNlZCB0byBkZWxp dmVyIGNvbnRlbnQtDQojIG5lZ290aWF0ZWQgZG9jdW1lbnRzLiAgVGhlIE11 bHRpVmlld3MgT3B0aW9uIGNhbiBiZSB1c2VkIGZvciB0aGUgDQojIHNhbWUg cHVycG9zZSwgYnV0IGl0IGlzIG11Y2ggc2xvd2VyLg0KIw0KRGlyZWN0b3J5 SW5kZXggaW5kZXguaHRtbCBpbmRleC5odG1sLnZhcg0KDQojDQojIEFjY2Vz c0ZpbGVOYW1lOiBUaGUgbmFtZSBvZiB0aGUgZmlsZSB0byBsb29rIGZvciBp biBlYWNoIGRpcmVjdG9yeQ0KIyBmb3IgYWNjZXNzIGNvbnRyb2wgaW5mb3Jt YXRpb24uICBTZWUgYWxzbyB0aGUgQWxsb3dPdmVycmlkZSBkaXJlY3RpdmUu DQojDQpBY2Nlc3NGaWxlTmFtZSAuaHRhY2Nlc3MNCg0KIw0KIyBUaGUgZm9s bG93aW5nIGxpbmVzIHByZXZlbnQgLmh0YWNjZXNzIGFuZCAuaHRwYXNzd2Qg ZmlsZXMgZnJvbSBiZWluZyANCiMgdmlld2VkIGJ5IFdlYiBjbGllbnRzLiAN CiMNCjxGaWxlcyB+ICJeXC5odCI+DQogICAgT3JkZXIgYWxsb3csZGVueQ0K ICAgIERlbnkgZnJvbSBhbGwNCjwvRmlsZXM+DQoNCiMNCiMgVHlwZXNDb25m aWcgZGVzY3JpYmVzIHdoZXJlIHRoZSBtaW1lLnR5cGVzIGZpbGUgKG9yIGVx dWl2YWxlbnQpIGlzDQojIHRvIGJlIGZvdW5kLg0KIw0KVHlwZXNDb25maWcg Y29uZi9taW1lLnR5cGVzDQoNCiMNCiMgRGVmYXVsdFR5cGUgaXMgdGhlIGRl ZmF1bHQgTUlNRSB0eXBlIHRoZSBzZXJ2ZXIgd2lsbCB1c2UgZm9yIGEgZG9j dW1lbnQNCiMgaWYgaXQgY2Fubm90IG90aGVyd2lzZSBkZXRlcm1pbmUgb25l LCBzdWNoIGFzIGZyb20gZmlsZW5hbWUgZXh0ZW5zaW9ucy4NCiMgSWYgeW91 ciBzZXJ2ZXIgY29udGFpbnMgbW9zdGx5IHRleHQgb3IgSFRNTCBkb2N1bWVu dHMsICJ0ZXh0L3BsYWluIiBpcw0KIyBhIGdvb2QgdmFsdWUuICBJZiBtb3N0 IG9mIHlvdXIgY29udGVudCBpcyBiaW5hcnksIHN1Y2ggYXMgYXBwbGljYXRp b25zDQojIG9yIGltYWdlcywgeW91IG1heSB3YW50IHRvIHVzZSAiYXBwbGlj YXRpb24vb2N0ZXQtc3RyZWFtIiBpbnN0ZWFkIHRvDQojIGtlZXAgYnJvd3Nl cnMgZnJvbSB0cnlpbmcgdG8gZGlzcGxheSBiaW5hcnkgZmlsZXMgYXMgdGhv dWdoIHRoZXkgYXJlDQojIHRleHQuDQojDQpEZWZhdWx0VHlwZSB0ZXh0L3Bs YWluDQoNCiMNCiMgVGhlIG1vZF9taW1lX21hZ2ljIG1vZHVsZSBhbGxvd3Mg dGhlIHNlcnZlciB0byB1c2UgdmFyaW91cyBoaW50cyBmcm9tIHRoZQ0KIyBj b250ZW50cyBvZiB0aGUgZmlsZSBpdHNlbGYgdG8gZGV0ZXJtaW5lIGl0cyB0 eXBlLiAgVGhlIE1JTUVNYWdpY0ZpbGUNCiMgZGlyZWN0aXZlIHRlbGxzIHRo ZSBtb2R1bGUgd2hlcmUgdGhlIGhpbnQgZGVmaW5pdGlvbnMgYXJlIGxvY2F0 ZWQuDQojDQo8SWZNb2R1bGUgbW9kX21pbWVfbWFnaWMuYz4NCiAgICBNSU1F TWFnaWNGaWxlIGNvbmYvbWFnaWMNCjwvSWZNb2R1bGU+DQoNCiMNCiMgSG9z dG5hbWVMb29rdXBzOiBMb2cgdGhlIG5hbWVzIG9mIGNsaWVudHMgb3IganVz dCB0aGVpciBJUCBhZGRyZXNzZXMNCiMgZS5nLiwgd3d3LmFwYWNoZS5vcmcg KG9uKSBvciAyMDQuNjIuMTI5LjEzMiAob2ZmKS4NCiMgVGhlIGRlZmF1bHQg aXMgb2ZmIGJlY2F1c2UgaXQnZCBiZSBvdmVyYWxsIGJldHRlciBmb3IgdGhl IG5ldCBpZiBwZW9wbGUNCiMgaGFkIHRvIGtub3dpbmdseSB0dXJuIHRoaXMg ZmVhdHVyZSBvbiwgc2luY2UgZW5hYmxpbmcgaXQgbWVhbnMgdGhhdA0KIyBl YWNoIGNsaWVudCByZXF1ZXN0IHdpbGwgcmVzdWx0IGluIEFUIExFQVNUIG9u ZSBsb29rdXAgcmVxdWVzdCB0byB0aGUNCiMgbmFtZXNlcnZlci4NCiMNCkhv c3RuYW1lTG9va3VwcyBPZmYNCg0KIw0KIyBFcnJvckxvZzogVGhlIGxvY2F0 aW9uIG9mIHRoZSBlcnJvciBsb2cgZmlsZS4NCiMgSWYgeW91IGRvIG5vdCBz cGVjaWZ5IGFuIEVycm9yTG9nIGRpcmVjdGl2ZSB3aXRoaW4gYSA8VmlydHVh bEhvc3Q+DQojIGNvbnRhaW5lciwgZXJyb3IgbWVzc2FnZXMgcmVsYXRpbmcg dG8gdGhhdCB2aXJ0dWFsIGhvc3Qgd2lsbCBiZQ0KIyBsb2dnZWQgaGVyZS4g IElmIHlvdSAqZG8qIGRlZmluZSBhbiBlcnJvciBsb2dmaWxlIGZvciBhIDxW aXJ0dWFsSG9zdD4NCiMgY29udGFpbmVyLCB0aGF0IGhvc3QncyBlcnJvcnMg d2lsbCBiZSBsb2dnZWQgdGhlcmUgYW5kIG5vdCBoZXJlLg0KIw0KRXJyb3JM b2cgbG9ncy9lcnJvcl9sb2cNCg0KIw0KIyBMb2dMZXZlbDogQ29udHJvbCB0 aGUgbnVtYmVyIG9mIG1lc3NhZ2VzIGxvZ2dlZCB0byB0aGUgZXJyb3JfbG9n Lg0KIyBQb3NzaWJsZSB2YWx1ZXMgaW5jbHVkZTogZGVidWcsIGluZm8sIG5v dGljZSwgd2FybiwgZXJyb3IsIGNyaXQsDQojIGFsZXJ0LCBlbWVyZy4NCiMN CkxvZ0xldmVsIHdhcm4NCg0KIw0KIyBUaGUgZm9sbG93aW5nIGRpcmVjdGl2 ZXMgZGVmaW5lIHNvbWUgZm9ybWF0IG5pY2tuYW1lcyBmb3IgdXNlIHdpdGgN CiMgYSBDdXN0b21Mb2cgZGlyZWN0aXZlIChzZWUgYmVsb3cpLg0KIw0KTG9n Rm9ybWF0ICIlaCAlbCAldSAldCBcIiVyXCIgJT5zICViIFwiJXtSZWZlcmVy fWlcIiBcIiV7VXNlci1BZ2VudH1pXCIiIGNvbWJpbmVkDQpMb2dGb3JtYXQg IiVoICVsICV1ICV0IFwiJXJcIiAlPnMgJWIiIGNvbW1vbg0KTG9nRm9ybWF0 ICIle1JlZmVyZXJ9aSAtPiAlVSIgcmVmZXJlcg0KTG9nRm9ybWF0ICIle1Vz ZXItYWdlbnR9aSIgYWdlbnQNCg0KIw0KIyBUaGUgbG9jYXRpb24gYW5kIGZv cm1hdCBvZiB0aGUgYWNjZXNzIGxvZ2ZpbGUgKENvbW1vbiBMb2dmaWxlIEZv cm1hdCkuDQojIElmIHlvdSBkbyBub3QgZGVmaW5lIGFueSBhY2Nlc3MgbG9n ZmlsZXMgd2l0aGluIGEgPFZpcnR1YWxIb3N0Pg0KIyBjb250YWluZXIsIHRo ZXkgd2lsbCBiZSBsb2dnZWQgaGVyZS4gIENvbnRyYXJpd2lzZSwgaWYgeW91 ICpkbyoNCiMgZGVmaW5lIHBlci08VmlydHVhbEhvc3Q+IGFjY2VzcyBsb2dm aWxlcywgdHJhbnNhY3Rpb25zIHdpbGwgYmUNCiMgbG9nZ2VkIHRoZXJlaW4g YW5kICpub3QqIGluIHRoaXMgZmlsZS4NCiMNCkN1c3RvbUxvZyBsb2dzL2Fj Y2Vzc19sb2cgY29tbW9uDQoNCiMNCiMgSWYgeW91IHdvdWxkIGxpa2UgdG8g aGF2ZSBhZ2VudCBhbmQgcmVmZXJlciBsb2dmaWxlcywgdW5jb21tZW50IHRo ZQ0KIyBmb2xsb3dpbmcgZGlyZWN0aXZlcy4NCiMNCiNDdXN0b21Mb2cgbG9n cy9yZWZlcmVyX2xvZyByZWZlcmVyDQojQ3VzdG9tTG9nIGxvZ3MvYWdlbnRf bG9nIGFnZW50DQoNCiMNCiMgSWYgeW91IHByZWZlciBhIHNpbmdsZSBsb2dm aWxlIHdpdGggYWNjZXNzLCBhZ2VudCwgYW5kIHJlZmVyZXIgaW5mb3JtYXRp b24NCiMgKENvbWJpbmVkIExvZ2ZpbGUgRm9ybWF0KSB5b3UgY2FuIHVzZSB0 aGUgZm9sbG93aW5nIGRpcmVjdGl2ZS4NCiMNCiNDdXN0b21Mb2cgbG9ncy9h Y2Nlc3NfbG9nIGNvbWJpbmVkDQoNCiMNCiMgT3B0aW9uYWxseSBhZGQgYSBs aW5lIGNvbnRhaW5pbmcgdGhlIHNlcnZlciB2ZXJzaW9uIGFuZCB2aXJ0dWFs IGhvc3QNCiMgbmFtZSB0byBzZXJ2ZXItZ2VuZXJhdGVkIHBhZ2VzIChlcnJv ciBkb2N1bWVudHMsIEZUUCBkaXJlY3RvcnkgbGlzdGluZ3MsDQojIG1vZF9z dGF0dXMgYW5kIG1vZF9pbmZvIG91dHB1dCBldGMuLCBidXQgbm90IENHSSBn ZW5lcmF0ZWQgZG9jdW1lbnRzKS4NCiMgU2V0IHRvICJFTWFpbCIgdG8gYWxz byBpbmNsdWRlIGEgbWFpbHRvOiBsaW5rIHRvIHRoZSBTZXJ2ZXJBZG1pbi4N CiMgU2V0IHRvIG9uZSBvZjogIE9uIHwgT2ZmIHwgRU1haWwNCiMNClNlcnZl clNpZ25hdHVyZSBPbg0KDQojDQojIEFsaWFzZXM6IEFkZCBoZXJlIGFzIG1h bnkgYWxpYXNlcyBhcyB5b3UgbmVlZCAod2l0aCBubyBsaW1pdCkuIFRoZSBm b3JtYXQgaXMgDQojIEFsaWFzIGZha2VuYW1lIHJlYWxuYW1lDQojDQojIE5v dGUgdGhhdCBpZiB5b3UgaW5jbHVkZSBhIHRyYWlsaW5nIC8gb24gZmFrZW5h bWUgdGhlbiB0aGUgc2VydmVyIHdpbGwNCiMgcmVxdWlyZSBpdCB0byBiZSBw cmVzZW50IGluIHRoZSBVUkwuICBTbyAiL2ljb25zIiBpc24ndCBhbGlhc2Vk IGluIHRoaXMNCiMgZXhhbXBsZSwgb25seSAiL2ljb25zLyIuICBJZiB0aGUg ZmFrZW5hbWUgaXMgc2xhc2gtdGVybWluYXRlZCwgdGhlbiB0aGUgDQojIHJl YWxuYW1lIG11c3QgYWxzbyBiZSBzbGFzaCB0ZXJtaW5hdGVkLCBhbmQgaWYg dGhlIGZha2VuYW1lIG9taXRzIHRoZSANCiMgdHJhaWxpbmcgc2xhc2gsIHRo ZSByZWFsbmFtZSBtdXN0IGFsc28gb21pdCBpdC4NCiMNCiMgV2UgaW5jbHVk ZSB0aGUgL2ljb25zLyBhbGlhcyBmb3IgRmFuY3lJbmRleGVkIGRpcmVjdG9y eSBsaXN0aW5ncy4gIElmIHlvdQ0KIyBkbyBub3QgdXNlIEZhbmN5SW5kZXhp bmcsIHlvdSBtYXkgY29tbWVudCB0aGlzIG91dC4NCiMNCkFsaWFzIC9pY29u cy8gIi91c3IvbG9jYWwvYXBhY2hlMi9pY29ucy8iDQoNCjxEaXJlY3Rvcnkg Ii91c3IvbG9jYWwvYXBhY2hlMi9pY29ucyI+DQogICAgT3B0aW9ucyBJbmRl eGVzIE11bHRpVmlld3MNCiAgICBBbGxvd092ZXJyaWRlIE5vbmUNCiAgICBP cmRlciBhbGxvdyxkZW55DQogICAgQWxsb3cgZnJvbSBhbGwNCjwvRGlyZWN0 b3J5Pg0KDQojDQojIFRoaXMgc2hvdWxkIGJlIGNoYW5nZWQgdG8gdGhlIFNl cnZlclJvb3QvbWFudWFsLy4gIFRoZSBhbGlhcyBwcm92aWRlcw0KIyB0aGUg bWFudWFsLCBldmVuIGlmIHlvdSBjaG9vc2UgdG8gbW92ZSB5b3VyIERvY3Vt ZW50Um9vdC4gIFlvdSBtYXkgY29tbWVudA0KIyB0aGlzIG91dCBpZiB5b3Ug ZG8gbm90IGNhcmUgZm9yIHRoZSBkb2N1bWVudGF0aW9uLg0KIw0KQWxpYXMg L21hbnVhbCAiL3Vzci9sb2NhbC9hcGFjaGUyL21hbnVhbCINCg0KPERpcmVj dG9yeSAiL3Vzci9sb2NhbC9hcGFjaGUyL21hbnVhbCI+DQogICAgT3B0aW9u cyBJbmRleGVzIEZvbGxvd1N5bUxpbmtzIE11bHRpVmlld3MNCiAgICBBbGxv d092ZXJyaWRlIE5vbmUNCiAgICBPcmRlciBhbGxvdyxkZW55DQogICAgQWxs b3cgZnJvbSBhbGwNCjwvRGlyZWN0b3J5Pg0KDQojDQojIFNjcmlwdEFsaWFz OiBUaGlzIGNvbnRyb2xzIHdoaWNoIGRpcmVjdG9yaWVzIGNvbnRhaW4gc2Vy dmVyIHNjcmlwdHMuDQojIFNjcmlwdEFsaWFzZXMgYXJlIGVzc2VudGlhbGx5 IHRoZSBzYW1lIGFzIEFsaWFzZXMsIGV4Y2VwdCB0aGF0DQojIGRvY3VtZW50 cyBpbiB0aGUgcmVhbG5hbWUgZGlyZWN0b3J5IGFyZSB0cmVhdGVkIGFzIGFw cGxpY2F0aW9ucyBhbmQNCiMgcnVuIGJ5IHRoZSBzZXJ2ZXIgd2hlbiByZXF1 ZXN0ZWQgcmF0aGVyIHRoYW4gYXMgZG9jdW1lbnRzIHNlbnQgdG8gdGhlIGNs aWVudC4NCiMgVGhlIHNhbWUgcnVsZXMgYWJvdXQgdHJhaWxpbmcgIi8iIGFw cGx5IHRvIFNjcmlwdEFsaWFzIGRpcmVjdGl2ZXMgYXMgdG8NCiMgQWxpYXMu DQojDQpTY3JpcHRBbGlhcyAvY2dpLWJpbi8gIi91c3IvbG9jYWwvYXBhY2hl Mi9jZ2ktYmluLyINCg0KPElmTW9kdWxlIG1vZF9jZ2lkLmM+DQojDQojIEFk ZGl0aW9uYWwgdG8gbW9kX2NnaWQuYyBzZXR0aW5ncywgbW9kX2NnaWQgaGFz IFNjcmlwdHNvY2sgPHBhdGg+DQojIGZvciBzZXR0aW5nIFVOSVggc29ja2V0 IGZvciBjb21tdW5pY2F0aW5nIHdpdGggY2dpZC4NCiMNCiNTY3JpcHRzb2Nr ICAgICAgICAgICAgbG9ncy9jZ2lzb2NrDQo8L0lmTW9kdWxlPg0KDQojDQoj ICIvdXNyL2xvY2FsL2FwYWNoZTIvY2dpLWJpbiIgc2hvdWxkIGJlIGNoYW5n ZWQgdG8gd2hhdGV2ZXIgeW91ciBTY3JpcHRBbGlhc2VkDQojIENHSSBkaXJl Y3RvcnkgZXhpc3RzLCBpZiB5b3UgaGF2ZSB0aGF0IGNvbmZpZ3VyZWQuDQoj DQo8RGlyZWN0b3J5ICIvdXNyL2xvY2FsL2FwYWNoZTIvY2dpLWJpbiI+DQog ICAgQWxsb3dPdmVycmlkZSBOb25lDQogICAgT3B0aW9ucyBOb25lDQogICAg T3JkZXIgYWxsb3csZGVueQ0KICAgIEFsbG93IGZyb20gYWxsDQo8L0RpcmVj dG9yeT4NCg0KIw0KIyBSZWRpcmVjdCBhbGxvd3MgeW91IHRvIHRlbGwgY2xp ZW50cyBhYm91dCBkb2N1bWVudHMgd2hpY2ggdXNlZCB0byBleGlzdCBpbg0K IyB5b3VyIHNlcnZlcidzIG5hbWVzcGFjZSwgYnV0IGRvIG5vdCBhbnltb3Jl LiBUaGlzIGFsbG93cyB5b3UgdG8gdGVsbCB0aGUNCiMgY2xpZW50cyB3aGVy ZSB0byBsb29rIGZvciB0aGUgcmVsb2NhdGVkIGRvY3VtZW50Lg0KIyBFeGFt cGxlOg0KIyBSZWRpcmVjdCBwZXJtYW5lbnQgL2ZvbyBodHRwOi8vd3d3LmV4 YW1wbGUuY29tL2Jhcg0KDQojDQojIERpcmVjdGl2ZXMgY29udHJvbGxpbmcg dGhlIGRpc3BsYXkgb2Ygc2VydmVyLWdlbmVyYXRlZCBkaXJlY3RvcnkgbGlz dGluZ3MuDQojDQoNCiMNCiMgRmFuY3lJbmRleGluZyBpcyB3aGV0aGVyIHlv dSB3YW50IGZhbmN5IGRpcmVjdG9yeSBpbmRleGluZyBvciBzdGFuZGFyZC4N CiMgVmVyc2lvblNvcnQgaXMgd2hldGhlciBmaWxlcyBjb250YWluaW5nIHZl cnNpb24gbnVtYmVycyBzaG91bGQgYmUgDQojIGNvbXBhcmVkIGluIHRoZSBu YXR1cmFsIHdheSwgc28gdGhhdCBgYXBhY2hlLTEuMy45LnRhcicgaXMgcGxh Y2VkIGJlZm9yZQ0KIyBgYXBhY2hlLTEuMy4xMi50YXInLg0KIw0KSW5kZXhP cHRpb25zIEZhbmN5SW5kZXhpbmcgVmVyc2lvblNvcnQNCg0KIw0KIyBBZGRJ Y29uKiBkaXJlY3RpdmVzIHRlbGwgdGhlIHNlcnZlciB3aGljaCBpY29uIHRv IHNob3cgZm9yIGRpZmZlcmVudA0KIyBmaWxlcyBvciBmaWxlbmFtZSBleHRl bnNpb25zLiAgVGhlc2UgYXJlIG9ubHkgZGlzcGxheWVkIGZvcg0KIyBGYW5j eUluZGV4ZWQgZGlyZWN0b3JpZXMuDQojDQpBZGRJY29uQnlFbmNvZGluZyAo Q01QLC9pY29ucy9jb21wcmVzc2VkLmdpZikgeC1jb21wcmVzcyB4LWd6aXAN Cg0KQWRkSWNvbkJ5VHlwZSAoVFhULC9pY29ucy90ZXh0LmdpZikgdGV4dC8q DQpBZGRJY29uQnlUeXBlIChJTUcsL2ljb25zL2ltYWdlMi5naWYpIGltYWdl LyoNCkFkZEljb25CeVR5cGUgKFNORCwvaWNvbnMvc291bmQyLmdpZikgYXVk aW8vKg0KQWRkSWNvbkJ5VHlwZSAoVklELC9pY29ucy9tb3ZpZS5naWYpIHZp ZGVvLyoNCg0KQWRkSWNvbiAvaWNvbnMvYmluYXJ5LmdpZiAuYmluIC5leGUN CkFkZEljb24gL2ljb25zL2JpbmhleC5naWYgLmhxeA0KQWRkSWNvbiAvaWNv bnMvdGFyLmdpZiAudGFyDQpBZGRJY29uIC9pY29ucy93b3JsZDIuZ2lmIC53 cmwgLndybC5neiAudnJtbCAudnJtIC5pdg0KQWRkSWNvbiAvaWNvbnMvY29t cHJlc3NlZC5naWYgLlogLnogLnRneiAuZ3ogLnppcA0KQWRkSWNvbiAvaWNv bnMvYS5naWYgLnBzIC5haSAuZXBzDQpBZGRJY29uIC9pY29ucy9sYXlvdXQu Z2lmIC5odG1sIC5zaHRtbCAuaHRtIC5wZGYNCkFkZEljb24gL2ljb25zL3Rl eHQuZ2lmIC50eHQNCkFkZEljb24gL2ljb25zL2MuZ2lmIC5jDQpBZGRJY29u IC9pY29ucy9wLmdpZiAucGwgLnB5DQpBZGRJY29uIC9pY29ucy9mLmdpZiAu Zm9yDQpBZGRJY29uIC9pY29ucy9kdmkuZ2lmIC5kdmkNCkFkZEljb24gL2lj b25zL3V1ZW5jb2RlZC5naWYgLnV1DQpBZGRJY29uIC9pY29ucy9zY3JpcHQu Z2lmIC5jb25mIC5zaCAuc2hhciAuY3NoIC5rc2ggLnRjbA0KQWRkSWNvbiAv aWNvbnMvdGV4LmdpZiAudGV4DQpBZGRJY29uIC9pY29ucy9ib21iLmdpZiBj b3JlDQoNCkFkZEljb24gL2ljb25zL2JhY2suZ2lmIC4uDQpBZGRJY29uIC9p Y29ucy9oYW5kLnJpZ2h0LmdpZiBSRUFETUUNCkFkZEljb24gL2ljb25zL2Zv bGRlci5naWYgXl5ESVJFQ1RPUlleXg0KQWRkSWNvbiAvaWNvbnMvYmxhbmsu Z2lmIF5eQkxBTktJQ09OXl4NCg0KIw0KIyBEZWZhdWx0SWNvbiBpcyB3aGlj aCBpY29uIHRvIHNob3cgZm9yIGZpbGVzIHdoaWNoIGRvIG5vdCBoYXZlIGFu IGljb24NCiMgZXhwbGljaXRseSBzZXQuDQojDQpEZWZhdWx0SWNvbiAvaWNv bnMvdW5rbm93bi5naWYNCg0KIw0KIyBBZGREZXNjcmlwdGlvbiBhbGxvd3Mg eW91IHRvIHBsYWNlIGEgc2hvcnQgZGVzY3JpcHRpb24gYWZ0ZXIgYSBmaWxl IGluDQojIHNlcnZlci1nZW5lcmF0ZWQgaW5kZXhlcy4gIFRoZXNlIGFyZSBv bmx5IGRpc3BsYXllZCBmb3IgRmFuY3lJbmRleGVkDQojIGRpcmVjdG9yaWVz Lg0KIyBGb3JtYXQ6IEFkZERlc2NyaXB0aW9uICJkZXNjcmlwdGlvbiIgZmls ZW5hbWUNCiMNCiNBZGREZXNjcmlwdGlvbiAiR1pJUCBjb21wcmVzc2VkIGRv Y3VtZW50IiAuZ3oNCiNBZGREZXNjcmlwdGlvbiAidGFyIGFyY2hpdmUiIC50 YXINCiNBZGREZXNjcmlwdGlvbiAiR1pJUCBjb21wcmVzc2VkIHRhciBhcmNo aXZlIiAudGd6DQoNCiMNCiMgUmVhZG1lTmFtZSBpcyB0aGUgbmFtZSBvZiB0 aGUgUkVBRE1FIGZpbGUgdGhlIHNlcnZlciB3aWxsIGxvb2sgZm9yIGJ5DQoj IGRlZmF1bHQsIGFuZCBhcHBlbmQgdG8gZGlyZWN0b3J5IGxpc3RpbmdzLg0K Iw0KIyBIZWFkZXJOYW1lIGlzIHRoZSBuYW1lIG9mIGEgZmlsZSB3aGljaCBz aG91bGQgYmUgcHJlcGVuZGVkIHRvDQojIGRpcmVjdG9yeSBpbmRleGVzLiAN ClJlYWRtZU5hbWUgUkVBRE1FLmh0bWwNCkhlYWRlck5hbWUgSEVBREVSLmh0 bWwNCg0KIw0KIyBJbmRleElnbm9yZSBpcyBhIHNldCBvZiBmaWxlbmFtZXMg d2hpY2ggZGlyZWN0b3J5IGluZGV4aW5nIHNob3VsZCBpZ25vcmUNCiMgYW5k IG5vdCBpbmNsdWRlIGluIHRoZSBsaXN0aW5nLiAgU2hlbGwtc3R5bGUgd2ls ZGNhcmRpbmcgaXMgcGVybWl0dGVkLg0KIw0KSW5kZXhJZ25vcmUgLj8/KiAq fiAqIyBIRUFERVIqIFJFQURNRSogUkNTIENWUyAqLHYgKix0DQoNCiMNCiMg QWRkRW5jb2RpbmcgYWxsb3dzIHlvdSB0byBoYXZlIGNlcnRhaW4gYnJvd3Nl cnMgKE1vc2FpYy9YIDIuMSspIHVuY29tcHJlc3MNCiMgaW5mb3JtYXRpb24g b24gdGhlIGZseS4gTm90ZTogTm90IGFsbCBicm93c2VycyBzdXBwb3J0IHRo aXMuDQojIERlc3BpdGUgdGhlIG5hbWUgc2ltaWxhcml0eSwgdGhlIGZvbGxv d2luZyBBZGQqIGRpcmVjdGl2ZXMgaGF2ZSBub3RoaW5nDQojIHRvIGRvIHdp dGggdGhlIEZhbmN5SW5kZXhpbmcgY3VzdG9taXphdGlvbiBkaXJlY3RpdmVz IGFib3ZlLg0KIw0KQWRkRW5jb2RpbmcgeC1jb21wcmVzcyBaDQpBZGRFbmNv ZGluZyB4LWd6aXAgZ3ogdGd6DQoNCiMNCiMgRGVmYXVsdExhbmd1YWdlIGFu ZCBBZGRMYW5ndWFnZSBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIGxhbmd1 YWdlIG9mIA0KIyBhIGRvY3VtZW50LiBZb3UgY2FuIHRoZW4gdXNlIGNvbnRl bnQgbmVnb3RpYXRpb24gdG8gZ2l2ZSBhIGJyb3dzZXIgYSANCiMgZmlsZSBp biBhIGxhbmd1YWdlIHRoZSB1c2VyIGNhbiB1bmRlcnN0YW5kLg0KIw0KIyBT cGVjaWZ5IGEgZGVmYXVsdCBsYW5ndWFnZS4gVGhpcyBtZWFucyB0aGF0IGFs bCBkYXRhDQojIGdvaW5nIG91dCB3aXRob3V0IGEgc3BlY2lmaWMgbGFuZ3Vh Z2UgdGFnIChzZWUgYmVsb3cpIHdpbGwgDQojIGJlIG1hcmtlZCB3aXRoIHRo aXMgb25lLiBZb3UgcHJvYmFibHkgZG8gTk9UIHdhbnQgdG8gc2V0DQojIHRo aXMgdW5sZXNzIHlvdSBhcmUgc3VyZSBpdCBpcyBjb3JyZWN0IGZvciBhbGwg Y2FzZXMuDQojDQojICogSXQgaXMgZ2VuZXJhbGx5IGJldHRlciB0byBub3Qg bWFyayBhIHBhZ2UgYXMgDQojICogYmVpbmcgYSBjZXJ0YWluIGxhbmd1YWdl IHRoYW4gbWFya2luZyBpdCB3aXRoIHRoZSB3cm9uZw0KIyAqIGxhbmd1YWdl IQ0KIw0KIyBEZWZhdWx0TGFuZ3VhZ2UgbmwNCiMNCiMgTm90ZSAxOiBUaGUg c3VmZml4IGRvZXMgbm90IGhhdmUgdG8gYmUgdGhlIHNhbWUgYXMgdGhlIGxh bmd1YWdlDQojIGtleXdvcmQgLS0tIHRob3NlIHdpdGggZG9jdW1lbnRzIGlu IFBvbGlzaCAod2hvc2UgbmV0LXN0YW5kYXJkDQojIGxhbmd1YWdlIGNvZGUg aXMgcGwpIG1heSB3aXNoIHRvIHVzZSAiQWRkTGFuZ3VhZ2UgcGwgLnBvIiB0 bw0KIyBhdm9pZCB0aGUgYW1iaWd1aXR5IHdpdGggdGhlIGNvbW1vbiBzdWZm aXggZm9yIHBlcmwgc2NyaXB0cy4NCiMNCiMgTm90ZSAyOiBUaGUgZXhhbXBs ZSBlbnRyaWVzIGJlbG93IGlsbHVzdHJhdGUgdGhhdCBpbiBzb21lIGNhc2Vz IA0KIyB0aGUgdHdvIGNoYXJhY3RlciAnTGFuZ3VhZ2UnIGFiYnJldmlhdGlv biBpcyBub3QgaWRlbnRpY2FsIHRvIA0KIyB0aGUgdHdvIGNoYXJhY3RlciAn Q291bnRyeScgY29kZSBmb3IgaXRzIGNvdW50cnksDQojIEUuZy4gJ0Rhbm1h cmsvZGsnIHZlcnN1cyAnRGFuaXNoL2RhJy4NCiMNCiMgTm90ZSAzOiBJbiB0 aGUgY2FzZSBvZiAnbHR6JyB3ZSB2aW9sYXRlIHRoZSBSRkMgYnkgdXNpbmcg YSB0aHJlZSBjaGFyDQojIHNwZWNpZmllci4gVGhlcmUgaXMgJ3dvcmsgaW4g cHJvZ3Jlc3MnIHRvIGZpeCB0aGlzIGFuZCBnZXQNCiMgdGhlIHJlZmVyZW5j ZSBkYXRhIGZvciByZmMxNzY2IGNsZWFuZWQgdXAuDQojDQojIERhbmlzaCAo ZGEpIC0gRHV0Y2ggKG5sKSAtIEVuZ2xpc2ggKGVuKSAtIEVzdG9uaWFuIChl dCkNCiMgRnJlbmNoIChmcikgLSBHZXJtYW4gKGRlKSAtIEdyZWVrLU1vZGVy biAoZWwpDQojIEl0YWxpYW4gKGl0KSAtIE5vcndlZ2lhbiAobm8pIC0gTm9y d2VnaWFuIE55bm9yc2sgKG5uKSAtIEtvcmVhbiAoa3IpIA0KIyBQb3J0dWdl c2UgKHB0KSAtIEx1eGVtYm91cmdlb2lzKiAobHR6KQ0KIyBTcGFuaXNoIChl cykgLSBTd2VkaXNoIChzdikgLSBDYXRhbGFuIChjYSkgLSBDemVjaChjeikN CiMgUG9saXNoIChwbCkgLSBCcmF6aWxpYW4gUG9ydHVndWVzZSAocHQtYnIp IC0gSmFwYW5lc2UgKGphKQ0KIyBSdXNzaWFuIChydSkgLSBDcm9hdGlhbiAo aHIpDQojDQpBZGRMYW5ndWFnZSBkYSAuZGsNCkFkZExhbmd1YWdlIG5sIC5u bA0KQWRkTGFuZ3VhZ2UgZW4gLmVuDQpBZGRMYW5ndWFnZSBldCAuZXQNCkFk ZExhbmd1YWdlIGZyIC5mcg0KQWRkTGFuZ3VhZ2UgZGUgLmRlDQpBZGRMYW5n dWFnZSBoZSAuaGUNCkFkZExhbmd1YWdlIGVsIC5lbA0KQWRkTGFuZ3VhZ2Ug aXQgLml0DQpBZGRMYW5ndWFnZSBqYSAuamENCkFkZExhbmd1YWdlIHBsIC5w bw0KQWRkTGFuZ3VhZ2Uga3IgLmtyDQpBZGRMYW5ndWFnZSBwdCAucHQNCkFk ZExhbmd1YWdlIG5uIC5ubg0KQWRkTGFuZ3VhZ2Ugbm8gLm5vDQpBZGRMYW5n dWFnZSBwdC1iciAucHQtYnINCkFkZExhbmd1YWdlIGx0eiAubHR6DQpBZGRM YW5ndWFnZSBjYSAuY2ENCkFkZExhbmd1YWdlIGVzIC5lcw0KQWRkTGFuZ3Vh Z2Ugc3YgLnNlDQpBZGRMYW5ndWFnZSBjeiAuY3oNCkFkZExhbmd1YWdlIHJ1 IC5ydQ0KQWRkTGFuZ3VhZ2UgdHcgLnR3DQpBZGRMYW5ndWFnZSB6aC10dyAu dHcNCkFkZExhbmd1YWdlIGhyIC5ocg0KDQojDQojIExhbmd1YWdlUHJpb3Jp dHkgYWxsb3dzIHlvdSB0byBnaXZlIHByZWNlZGVuY2UgdG8gc29tZSBsYW5n dWFnZXMNCiMgaW4gY2FzZSBvZiBhIHRpZSBkdXJpbmcgY29udGVudCBuZWdv dGlhdGlvbi4NCiMNCiMgSnVzdCBsaXN0IHRoZSBsYW5ndWFnZXMgaW4gZGVj cmVhc2luZyBvcmRlciBvZiBwcmVmZXJlbmNlLiBXZSBoYXZlDQojIG1vcmUg b3IgbGVzcyBhbHBoYWJldGl6ZWQgdGhlbSBoZXJlLiBZb3UgcHJvYmFibHkg d2FudCB0byBjaGFuZ2UgdGhpcy4NCiMNCkxhbmd1YWdlUHJpb3JpdHkgZW4g ZGEgbmwgZXQgZnIgZGUgZWwgaXQgamEga3Igbm8gcGwgcHQgcHQtYnIgbHR6 IGNhIGVzIHN2IHR3DQoNCiMNCiMgRm9yY2VMYW5ndWFnZVByaW9yaXR5IGFs bG93cyB5b3UgdG8gc2VydmUgYSByZXN1bHQgcGFnZSByYXRoZXIgdGhhbg0K IyBNVUxUSVBMRSBDSE9JQ0VTIChQcmVmZXIpIFtpbiBjYXNlIG9mIGEgdGll XSBvciBOT1QgQUNDRVBUQUJMRSAoRmFsbGJhY2spDQojIFtpbiBjYXNlIG5v IGFjY2VwdGVkIGxhbmd1YWdlcyBtYXRjaGVkIHRoZSBhdmFpbGFibGUgdmFy aWFudHNdDQojDQpGb3JjZUxhbmd1YWdlUHJpb3JpdHkgUHJlZmVyIEZhbGxi YWNrDQoNCiMNCiMgU3BlY2lmeSBhIGRlZmF1bHQgY2hhcnNldCBmb3IgYWxs IHBhZ2VzIHNlbnQgb3V0LiBUaGlzIGlzDQojIGFsd2F5cyBhIGdvb2QgaWRl YSBhbmQgb3BlbnMgdGhlIGRvb3IgZm9yIGZ1dHVyZSBpbnRlcm5hdGlvbmFs aXNhdGlvbg0KIyBvZiB5b3VyIHdlYiBzaXRlLCBzaG91bGQgeW91IGV2ZXIg d2FudCBpdC4gU3BlY2lmeWluZyBpdCBhcw0KIyBhIGRlZmF1bHQgZG9lcyBs aXR0bGUgaGFybTsgYXMgdGhlIHN0YW5kYXJkIGRpY3RhdGVzIHRoYXQgYSBw YWdlDQojIGlzIGluIGlzby04ODU5LTEgKGxhdGluMSkgdW5sZXNzIHNwZWNp ZmllZCBvdGhlcndpc2UgaS5lLiB5b3UNCiMgYXJlIG1lcmVseSBzdGF0aW5n IHRoZSBvYnZpb3VzLiBUaGVyZSBhcmUgYWxzbyBzb21lIHNlY3VyaXR5DQoj IHJlYXNvbnMgaW4gYnJvd3NlcnMsIHJlbGF0ZWQgdG8gamF2YXNjcmlwdCBh bmQgVVJMIHBhcnNpbmcNCiMgd2hpY2ggZW5jb3VyYWdlIHlvdSB0byBhbHdh eXMgc2V0IGEgZGVmYXVsdCBjaGFyIHNldC4NCiMNCkFkZERlZmF1bHRDaGFy c2V0IElTTy04ODU5LTENCg0KIw0KIyBDb21tb25seSB1c2VkIGZpbGVuYW1l IGV4dGVuc2lvbnMgdG8gY2hhcmFjdGVyIHNldHMuIFlvdSBwcm9iYWJseQ0K IyB3YW50IHRvIGF2b2lkIGNsYXNoZXMgd2l0aCB0aGUgbGFuZ3VhZ2UgZXh0 ZW5zaW9ucywgdW5sZXNzIHlvdQ0KIyBhcmUgZ29vZCBhdCBjYXJlZnVsbHkg dGVzdGluZyB5b3VyIHNldHVwIGFmdGVyIGVhY2ggY2hhbmdlLg0KIyBTZWUg ZnRwOi8vZnRwLmlzaS5lZHUvaW4tbm90ZXMvaWFuYS9hc3NpZ25tZW50cy9j aGFyYWN0ZXItc2V0cyBmb3INCiMgdGhlIG9mZmljaWFsIGxpc3Qgb2YgY2hh cnNldCBuYW1lcyBhbmQgdGhlaXIgcmVzcGVjdGl2ZSBSRkNzDQojDQpBZGRD aGFyc2V0IElTTy04ODU5LTEgIC5pc284ODU5LTEgIC5sYXRpbjENCkFkZENo YXJzZXQgSVNPLTg4NTktMiAgLmlzbzg4NTktMiAgLmxhdGluMiAuY2VuDQpB ZGRDaGFyc2V0IElTTy04ODU5LTMgIC5pc284ODU5LTMgIC5sYXRpbjMNCkFk ZENoYXJzZXQgSVNPLTg4NTktNCAgLmlzbzg4NTktNCAgLmxhdGluNA0KQWRk Q2hhcnNldCBJU08tODg1OS01ICAuaXNvODg1OS01ICAubGF0aW41IC5jeXIg Lmlzby1ydQ0KQWRkQ2hhcnNldCBJU08tODg1OS02ICAuaXNvODg1OS02ICAu bGF0aW42IC5hcmINCkFkZENoYXJzZXQgSVNPLTg4NTktNyAgLmlzbzg4NTkt NyAgLmxhdGluNyAuZ3JrDQpBZGRDaGFyc2V0IElTTy04ODU5LTggIC5pc284 ODU5LTggIC5sYXRpbjggLmhlYg0KQWRkQ2hhcnNldCBJU08tODg1OS05ICAu aXNvODg1OS05ICAubGF0aW45IC50cmsNCkFkZENoYXJzZXQgSVNPLTIwMjIt SlAgLmlzbzIwMjItanAgLmppcw0KQWRkQ2hhcnNldCBJU08tMjAyMi1LUiAu aXNvMjAyMi1rciAua2lzDQpBZGRDaGFyc2V0IElTTy0yMDIyLUNOIC5pc28y MDIyLWNuIC5jaXMNCkFkZENoYXJzZXQgQmlnNSAgICAgICAgLkJpZzUgICAg ICAgLmJpZzUNCiMgRm9yIHJ1c3NpYW4sIG1vcmUgdGhhbiBvbmUgY2hhcnNl dCBpcyB1c2VkIChkZXBlbmRzIG9uIGNsaWVudCwgbW9zdGx5KToNCkFkZENo YXJzZXQgV0lORE9XUy0xMjUxIC5jcC0xMjUxICAgLndpbi0xMjUxDQpBZGRD aGFyc2V0IENQODY2ICAgICAgIC5jcDg2Ng0KQWRkQ2hhcnNldCBLT0k4LXIg ICAgICAua29pOC1yIC5rb2k4LXJ1DQpBZGRDaGFyc2V0IEtPSTgtcnUgICAg IC5rb2k4LXVrIC51YQ0KQWRkQ2hhcnNldCBJU08tMTA2NDYtVUNTLTIgLnVj czINCkFkZENoYXJzZXQgSVNPLTEwNjQ2LVVDUy00IC51Y3M0DQpBZGRDaGFy c2V0IFVURi04ICAgICAgIC51dGY4DQoNCiMgVGhlIHNldCBiZWxvdyBkb2Vz IG5vdCBtYXAgdG8gYSBzcGVjaWZpYyAoaXNvKSBzdGFuZGFyZA0KIyBidXQg d29ya3Mgb24gYSBmYWlybHkgd2lkZSByYW5nZSBvZiBicm93c2Vycy4gTm90 ZSB0aGF0DQojIGNhcGl0YWxpemF0aW9uIGFjdHVhbGx5IG1hdHRlcnMgKGl0 IHNob3VsZCBub3QsIGJ1dCBpdA0KIyBkb2VzIGZvciBzb21lIGJyb3dzZXJz KS4NCiMNCiMgU2VlIGZ0cDovL2Z0cC5pc2kuZWR1L2luLW5vdGVzL2lhbmEv YXNzaWdubWVudHMvY2hhcmFjdGVyLXNldHMNCiMgZm9yIGEgbGlzdCBvZiBz b3J0cy4gQnV0IGJyb3dzZXJzIHN1cHBvcnQgZmV3Lg0KIw0KQWRkQ2hhcnNl dCBHQjIzMTIgICAgICAuZ2IyMzEyIC5nYiANCkFkZENoYXJzZXQgdXRmLTcg ICAgICAgLnV0ZjcNCkFkZENoYXJzZXQgdXRmLTggICAgICAgLnV0ZjgNCkFk ZENoYXJzZXQgYmlnNSAgICAgICAgLmJpZzUgLmI1DQpBZGRDaGFyc2V0IEVV Qy1UVyAgICAgIC5ldWMtdHcNCkFkZENoYXJzZXQgRVVDLUpQICAgICAgLmV1 Yy1qcA0KQWRkQ2hhcnNldCBFVUMtS1IgICAgICAuZXVjLWtyDQpBZGRDaGFy c2V0IHNoaWZ0X2ppcyAgIC5zamlzDQoNCiMNCiMgQWRkVHlwZSBhbGxvd3Mg eW91IHRvIGFkZCB0byBvciBvdmVycmlkZSB0aGUgTUlNRSBjb25maWd1cmF0 aW9uDQojIGZpbGUgbWltZS50eXBlcyBmb3Igc3BlY2lmaWMgZmlsZSB0eXBl cy4NCiMNCkFkZFR5cGUgYXBwbGljYXRpb24veC10YXIgLnRneg0KDQojDQoj IEFkZEhhbmRsZXIgYWxsb3dzIHlvdSB0byBtYXAgY2VydGFpbiBmaWxlIGV4 dGVuc2lvbnMgdG8gImhhbmRsZXJzIjoNCiMgYWN0aW9ucyB1bnJlbGF0ZWQg dG8gZmlsZXR5cGUuIFRoZXNlIGNhbiBiZSBlaXRoZXIgYnVpbHQgaW50byB0 aGUgc2VydmVyDQojIG9yIGFkZGVkIHdpdGggdGhlIEFjdGlvbiBkaXJlY3Rp dmUgKHNlZSBiZWxvdykNCiMNCiMgVG8gdXNlIENHSSBzY3JpcHRzIG91dHNp ZGUgb2YgU2NyaXB0QWxpYXNlZCBkaXJlY3RvcmllczoNCiMgKFlvdSB3aWxs IGFsc28gbmVlZCB0byBhZGQgIkV4ZWNDR0kiIHRvIHRoZSAiT3B0aW9ucyIg ZGlyZWN0aXZlLikNCiMNCiNBZGRIYW5kbGVyIGNnaS1zY3JpcHQgLmNnaQ0K DQojDQojIEZvciBmaWxlcyB0aGF0IGluY2x1ZGUgdGhlaXIgb3duIEhUVFAg aGVhZGVyczoNCiMNCiNBZGRIYW5kbGVyIHNlbmQtYXMtaXMgYXNpcw0KDQoj DQojIEZvciBzZXJ2ZXItcGFyc2VkIGltYWdlbWFwIGZpbGVzOg0KIw0KI0Fk ZEhhbmRsZXIgaW1hcC1maWxlIG1hcA0KDQojDQojIEZvciB0eXBlIG1hcHMg KG5lZ290aWF0ZWQgcmVzb3VyY2VzKToNCiMgKFRoaXMgaXMgZW5hYmxlZCBi eSBkZWZhdWx0IHRvIGFsbG93IHRoZSBBcGFjaGUgIkl0IFdvcmtlZCIgcGFn ZQ0KIyAgdG8gYmUgZGlzdHJpYnV0ZWQgaW4gbXVsdGlwbGUgbGFuZ3VhZ2Vz LikNCiMNCkFkZEhhbmRsZXIgdHlwZS1tYXAgdmFyDQoNCiMgRmlsdGVycyBh bGxvdyB5b3UgdG8gcHJvY2VzcyBjb250ZW50IGJlZm9yZSBpdCBpcyBzZW50 IHRvIHRoZSBjbGllbnQuDQojDQojIFRvIHBhcnNlIC5zaHRtbCBmaWxlcyBm b3Igc2VydmVyLXNpZGUgaW5jbHVkZXMgKFNTSSk6DQojIChZb3Ugd2lsbCBh bHNvIG5lZWQgdG8gYWRkICJJbmNsdWRlcyIgdG8gdGhlICJPcHRpb25zIiBk aXJlY3RpdmUuKQ0KIw0KI0FkZE91dHB1dEZpbHRlciBJTkNMVURFUyAuc2h0 bWwNCg0KIw0KIyBBY3Rpb24gbGV0cyB5b3UgZGVmaW5lIG1lZGlhIHR5cGVz IHRoYXQgd2lsbCBleGVjdXRlIGEgc2NyaXB0IHdoZW5ldmVyDQojIGEgbWF0 Y2hpbmcgZmlsZSBpcyBjYWxsZWQuIFRoaXMgZWxpbWluYXRlcyB0aGUgbmVl ZCBmb3IgcmVwZWF0ZWQgVVJMDQojIHBhdGhuYW1lcyBmb3Igb2Z0LXVzZWQg Q0dJIGZpbGUgcHJvY2Vzc29ycy4NCiMgRm9ybWF0OiBBY3Rpb24gbWVkaWEv dHlwZSAvY2dpLXNjcmlwdC9sb2NhdGlvbg0KIyBGb3JtYXQ6IEFjdGlvbiBo YW5kbGVyLW5hbWUgL2NnaS1zY3JpcHQvbG9jYXRpb24NCiMNCg0KIw0KIyBD dXN0b21pemFibGUgZXJyb3IgcmVzcG9uc2VzIGNvbWUgaW4gdGhyZWUgZmxh dm9yczoNCiMgMSkgcGxhaW4gdGV4dCAyKSBsb2NhbCByZWRpcmVjdHMgMykg ZXh0ZXJuYWwgcmVkaXJlY3RzDQojDQojIFNvbWUgZXhhbXBsZXM6DQojRXJy b3JEb2N1bWVudCA1MDAgIlRoZSBzZXJ2ZXIgbWFkZSBhIGJvbyBib28uIg0K I0Vycm9yRG9jdW1lbnQgNDA0IC9taXNzaW5nLmh0bWwNCiNFcnJvckRvY3Vt ZW50IDQwNCAiL2NnaS1iaW4vbWlzc2luZ19oYW5kbGVyLnBsIg0KI0Vycm9y RG9jdW1lbnQgNDAyIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vc3Vic2NyaXB0 aW9uX2luZm8uaHRtbA0KIw0KDQojDQojIFB1dHRpbmcgdGhpcyBhbGwgdG9n ZXRoZXIsIHdlIGNhbiBJbnRlcm5hdGlvbmFsaXplIGVycm9yIHJlc3BvbnNl cy4NCiMNCiMgV2UgdXNlIEFsaWFzIHRvIHJlZGlyZWN0IGFueSAvZXJyb3Iv SFRUUF88ZXJyb3I+Lmh0bWwudmFyIHJlc3BvbnNlIHRvDQojIG91ciBjb2xs ZWN0aW9uIG9mIGJ5LWVycm9yIG1lc3NhZ2UgbXVsdGktbGFuZ3VhZ2UgY29s bGVjdGlvbnMuICBXZSB1c2UgDQojIGluY2x1ZGVzIHRvIHN1YnN0aXR1dGUg dGhlIGFwcHJvcHJpYXRlIHRleHQuDQojDQojIFlvdSBjYW4gbW9kaWZ5IHRo ZSBtZXNzYWdlcycgYXBwZWFyYW5jZSB3aXRob3V0IGNoYW5naW5nIGFueSBv ZiB0aGUNCiMgZGVmYXVsdCBIVFRQXzxlcnJvcj4uaHRtbC52YXIgZmlsZXMg YnkgYWRkaW5nIHRoZSBsaW5lOw0KIw0KIyAgIEFsaWFzIC9lcnJvci9pbmNs dWRlLyAiL3lvdXIvaW5jbHVkZS9wYXRoLyINCiMNCiMgd2hpY2ggYWxsb3dz IHlvdSB0byBjcmVhdGUgeW91ciBvd24gc2V0IG9mIGZpbGVzIGJ5IHN0YXJ0 aW5nIHdpdGggdGhlDQojIC91c3IvbG9jYWwvYXBhY2hlMi9lcnJvci9pbmNs dWRlLyBmaWxlcyBhbmQNCiMgY29weWluZyB0aGVtIHRvIC95b3VyL2luY2x1 ZGUvcGF0aC8sIGV2ZW4gb24gYSBwZXItVmlydHVhbEhvc3QgYmFzaXMuDQoj DQoNCjxJZk1vZHVsZSBtb2RfbmVnb3RpYXRpb24uYz4NCjxJZk1vZHVsZSBt b2RfaW5jbHVkZS5jPg0KICAgIEFsaWFzIC9lcnJvci8gIi91c3IvbG9jYWwv YXBhY2hlMi9lcnJvci8iDQoNCiAgICA8RGlyZWN0b3J5ICIvdXNyL2xvY2Fs L2FwYWNoZTIvZXJyb3IiPg0KICAgICAgICBBbGxvd092ZXJyaWRlIE5vbmUN CiAgICAgICAgT3B0aW9ucyBJbmNsdWRlc05vRXhlYw0KICAgICAgICBBZGRP dXRwdXRGaWx0ZXIgSW5jbHVkZXMgaHRtbA0KICAgICAgICBBZGRIYW5kbGVy IHR5cGUtbWFwIHZhcg0KICAgICAgICBPcmRlciBhbGxvdyxkZW55DQogICAg ICAgIEFsbG93IGZyb20gYWxsDQogICAgICAgIExhbmd1YWdlUHJpb3JpdHkg ZW4gZXMgZGUgZnINCiAgICAgICAgRm9yY2VMYW5ndWFnZVByaW9yaXR5IFBy ZWZlciBGYWxsYmFjaw0KICAgIDwvRGlyZWN0b3J5Pg0KDQogICAgRXJyb3JE b2N1bWVudCA0MDAgL2Vycm9yL0hUVFBfQkFEX1JFUVVFU1QuaHRtbC52YXIN CiAgICBFcnJvckRvY3VtZW50IDQwMSAvZXJyb3IvSFRUUF9VTkFVVEhPUkla RUQuaHRtbC52YXINCiAgICBFcnJvckRvY3VtZW50IDQwMyAvZXJyb3IvSFRU UF9GT1JCSURERU4uaHRtbC52YXINCiAgICBFcnJvckRvY3VtZW50IDQwNCAv ZXJyb3IvSFRUUF9OT1RfRk9VTkQuaHRtbC52YXINCiAgICBFcnJvckRvY3Vt ZW50IDQwNSAvZXJyb3IvSFRUUF9NRVRIT0RfTk9UX0FMTE9XRUQuaHRtbC52 YXINCiAgICBFcnJvckRvY3VtZW50IDQwOCAvZXJyb3IvSFRUUF9SRVFVRVNU X1RJTUVfT1VULmh0bWwudmFyDQogICAgRXJyb3JEb2N1bWVudCA0MTAgL2Vy cm9yL0hUVFBfR09ORS5odG1sLnZhcg0KICAgIEVycm9yRG9jdW1lbnQgNDEx IC9lcnJvci9IVFRQX0xFTkdUSF9SRVFVSVJFRC5odG1sLnZhcg0KICAgIEVy cm9yRG9jdW1lbnQgNDEyIC9lcnJvci9IVFRQX1BSRUNPTkRJVElPTl9GQUlM RUQuaHRtbC52YXINCiAgICBFcnJvckRvY3VtZW50IDQxMyAvZXJyb3IvSFRU UF9SRVFVRVNUX0VOVElUWV9UT09fTEFSR0UuaHRtbC52YXINCiAgICBFcnJv ckRvY3VtZW50IDQxNCAvZXJyb3IvSFRUUF9SRVFVRVNUX1VSSV9UT09fTEFS R0UuaHRtbC52YXINCiAgICBFcnJvckRvY3VtZW50IDQxNSAvZXJyb3IvSFRU UF9TRVJWSUNFX1VOQVZBSUxBQkxFLmh0bWwudmFyDQogICAgRXJyb3JEb2N1 bWVudCA1MDAgL2Vycm9yL0hUVFBfSU5URVJOQUxfU0VSVkVSX0VSUk9SLmh0 bWwudmFyDQogICAgRXJyb3JEb2N1bWVudCA1MDEgL2Vycm9yL0hUVFBfTk9U X0lNUExFTUVOVEVELmh0bWwudmFyDQogICAgRXJyb3JEb2N1bWVudCA1MDIg L2Vycm9yL0hUVFBfQkFEX0dBVEVXQVkuaHRtbC52YXINCiAgICBFcnJvckRv Y3VtZW50IDUwMyAvZXJyb3IvSFRUUF9TRVJWSUNFX1VOQVZBSUxBQkxFLmh0 bWwudmFyDQogICAgRXJyb3JEb2N1bWVudCA1MDYgL2Vycm9yL0hUVFBfVkFS SUFOVF9BTFNPX1ZBUklFUy5odG1sLnZhcg0KDQo8L0lmTW9kdWxlPg0KPC9J Zk1vZHVsZT4NCg0KIw0KIyBUaGUgZm9sbG93aW5nIGRpcmVjdGl2ZXMgbW9k aWZ5IG5vcm1hbCBIVFRQIHJlc3BvbnNlIGJlaGF2aW9yIHRvDQojIGhhbmRs ZSBrbm93biBwcm9ibGVtcyB3aXRoIGJyb3dzZXIgaW1wbGVtZW50YXRpb25z Lg0KIw0KQnJvd3Nlck1hdGNoICJNb3ppbGxhLzIiIG5va2VlcGFsaXZlDQpC cm93c2VyTWF0Y2ggIk1TSUUgNFwuMGIyOyIgbm9rZWVwYWxpdmUgZG93bmdy YWRlLTEuMCBmb3JjZS1yZXNwb25zZS0xLjANCkJyb3dzZXJNYXRjaCAiUmVh bFBsYXllciA0XC4wIiBmb3JjZS1yZXNwb25zZS0xLjANCkJyb3dzZXJNYXRj aCAiSmF2YS8xXC4wIiBmb3JjZS1yZXNwb25zZS0xLjANCkJyb3dzZXJNYXRj aCAiSkRLLzFcLjAiIGZvcmNlLXJlc3BvbnNlLTEuMA0KDQojDQojIFRoZSBm b2xsb3dpbmcgZGlyZWN0aXZlIGRpc2FibGVzIHJlZGlyZWN0cyBvbiBub24t R0VUIHJlcXVlc3RzIGZvcg0KIyBhIGRpcmVjdG9yeSB0aGF0IGRvZXMgbm90 IGluY2x1ZGUgdGhlIHRyYWlsaW5nIHNsYXNoLiAgVGhpcyBmaXhlcyBhIA0K IyBwcm9ibGVtIHdpdGggTWljcm9zb2Z0IFdlYkZvbGRlcnMgd2hpY2ggZG9l cyBub3QgYXBwcm9wcmlhdGVseSBoYW5kbGUgDQojIHJlZGlyZWN0cyBmb3Ig Zm9sZGVycyB3aXRoIERBViBtZXRob2RzLg0KIw0KQnJvd3Nlck1hdGNoICJN aWNyb3NvZnQgRGF0YSBBY2Nlc3MgSW50ZXJuZXQgUHVibGlzaGluZyBQcm92 aWRlciIgcmVkaXJlY3QtY2FyZWZ1bGx5DQpCcm93c2VyTWF0Y2ggIl5XZWJE cml2ZSIgcmVkaXJlY3QtY2FyZWZ1bGx5DQoNCiMNCiMgQWxsb3cgc2VydmVy IHN0YXR1cyByZXBvcnRzLCB3aXRoIHRoZSBVUkwgb2YgaHR0cDovL3NlcnZl cm5hbWUvc2VydmVyLXN0YXR1cw0KIyBDaGFuZ2UgdGhlICIueW91ci1kb21h aW4uY29tIiB0byBtYXRjaCB5b3VyIGRvbWFpbiB0byBlbmFibGUuDQojDQo8 TG9jYXRpb24gL3NlcnZlci1zdGF0dXM+DQogICAgU2V0SGFuZGxlciBzZXJ2 ZXItc3RhdHVzDQogICAgT3JkZXIgZGVueSxhbGxvdw0KICAgIERlbnkgZnJv bSBhbGwNCiAgICBBbGxvdyBmcm9tIDIxNi4xNjYuMjEwLioNCjwvTG9jYXRp b24+DQoNCiMNCiMgQWxsb3cgcmVtb3RlIHNlcnZlciBjb25maWd1cmF0aW9u IHJlcG9ydHMsIHdpdGggdGhlIFVSTCBvZg0KIyAgaHR0cDovL3NlcnZlcm5h bWUvc2VydmVyLWluZm8gKHJlcXVpcmVzIHRoYXQgbW9kX2luZm8uYyBiZSBs b2FkZWQpLg0KIyBDaGFuZ2UgdGhlICIueW91ci1kb21haW4uY29tIiB0byBt YXRjaCB5b3VyIGRvbWFpbiB0byBlbmFibGUuDQojDQo8TG9jYXRpb24gL3Nl cnZlci1pbmZvPg0KICAgIFNldEhhbmRsZXIgc2VydmVyLWluZm8NCiAgICBP cmRlciBkZW55LGFsbG93DQogICAgRGVueSBmcm9tIGFsbA0KICAgIEFsbG93 IGZyb20gMjE2LjE2Ni4yMTAuKg0KPC9Mb2NhdGlvbj4NCg0KIw0KIyBQcm94 eSBTZXJ2ZXIgZGlyZWN0aXZlcy4gVW5jb21tZW50IHRoZSBmb2xsb3dpbmcg bGluZXMgdG8NCiMgZW5hYmxlIHRoZSBwcm94eSBzZXJ2ZXI6DQojDQo8SWZN b2R1bGUgbW9kX3Byb3h5LmM+DQpQcm94eVJlcXVlc3RzIE9mZg0KDQoNCiND TFdVDQpQcm94eVBhc3MgL3Rlc3QvICBodHRwOi8vMTcyLjE4LjI0Ljg2Lw0K UHJveHlQYXNzUmV2ZXJzZSAvdGVzdC8gIGh0dHA6Ly8xNzIuMTguMjQuODYv DQojUHJveHlQYXNzIC8gaHR0cDovLzE3Mi4xOC4yNC44Ni8NCiNQcm94eVBh c3NSZXZlcnNlIC8gaHR0cDovLzE3Mi4xOC4yNC44Ni8NCiM8UHJveHkgKj4N CiMgICAgT3JkZXIgZGVueSxhbGxvdw0KIyAgICBEZW55IGZyb20gYWxsDQoj ICAgIEFsbG93IGZyb20gLnlvdXItZG9tYWluLmNvbQ0KIzwvUHJveHk+DQoN CiMNCiMgRW5hYmxlL2Rpc2FibGUgdGhlIGhhbmRsaW5nIG9mIEhUVFAvMS4x ICJWaWE6IiBoZWFkZXJzLg0KIyAoIkZ1bGwiIGFkZHMgdGhlIHNlcnZlciB2 ZXJzaW9uOyAiQmxvY2siIHJlbW92ZXMgYWxsIG91dGdvaW5nIFZpYTogaGVh ZGVycykNCiMgU2V0IHRvIG9uZSBvZjogT2ZmIHwgT24gfCBGdWxsIHwgQmxv Y2sNCiMNCiNQcm94eVZpYSBPbg0KDQojDQojIFRvIGVuYWJsZSB0aGUgY2Fj aGUgYXMgd2VsbCwgZWRpdCBhbmQgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcg bGluZXM6DQojIChubyBjYWNoZWluZyB3aXRob3V0IENhY2hlUm9vdCkNCiMN CiNDYWNoZVJvb3QgIi91c3IvbG9jYWwvYXBhY2hlMi9wcm94eSINCiNDYWNo ZVNpemUgNQ0KI0NhY2hlR2NJbnRlcnZhbCA0DQojQ2FjaGVNYXhFeHBpcmUg MjQNCiNDYWNoZUxhc3RNb2RpZmllZEZhY3RvciAwLjENCiNDYWNoZURlZmF1 bHRFeHBpcmUgMQ0KI05vQ2FjaGUgYS1kb21haW4uY29tIGFub3RoZXItZG9t YWluLmVkdSBqb2VzLmdhcmFnZS1zYWxlLmNvbQ0KDQojPC9JZk1vZHVsZT4N CiMgRW5kIG9mIHByb3h5IGRpcmVjdGl2ZXMuDQoNCiMNCiMgQnJpbmcgaW4g YWRkaXRpb25hbCBtb2R1bGUtc3BlY2lmaWMgY29uZmlndXJhdGlvbnMNCiMN CjxJZk1vZHVsZSBtb2Rfc3NsLmM+DQogICAgSW5jbHVkZSBjb25mL3NzbC5j b25mDQo8L0lmTW9kdWxlPg0KDQoNCiMjIyBTZWN0aW9uIDM6IFZpcnR1YWwg SG9zdHMNCiMNCiMgVmlydHVhbEhvc3Q6IElmIHlvdSB3YW50IHRvIG1haW50 YWluIG11bHRpcGxlIGRvbWFpbnMvaG9zdG5hbWVzIG9uIHlvdXINCiMgbWFj aGluZSB5b3UgY2FuIHNldHVwIFZpcnR1YWxIb3N0IGNvbnRhaW5lcnMgZm9y IHRoZW0uIE1vc3QgY29uZmlndXJhdGlvbnMNCiMgdXNlIG9ubHkgbmFtZS1i YXNlZCB2aXJ0dWFsIGhvc3RzIHNvIHRoZSBzZXJ2ZXIgZG9lc24ndCBuZWVk IHRvIHdvcnJ5IGFib3V0DQojIElQIGFkZHJlc3Nlcy4gVGhpcyBpcyBpbmRp Y2F0ZWQgYnkgdGhlIGFzdGVyaXNrcyBpbiB0aGUgZGlyZWN0aXZlcyBiZWxv dy4NCiMNCiMgUGxlYXNlIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBhdCANCiMg PFVSTDpodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLTIuMC92aG9zdHMv Pg0KIyBmb3IgZnVydGhlciBkZXRhaWxzIGJlZm9yZSB5b3UgdHJ5IHRvIHNl dHVwIHZpcnR1YWwgaG9zdHMuDQojDQojIFlvdSBtYXkgdXNlIHRoZSBjb21t YW5kIGxpbmUgb3B0aW9uICctUycgdG8gdmVyaWZ5IHlvdXIgdmlydHVhbCBo b3N0DQojIGNvbmZpZ3VyYXRpb24uDQoNCiMNCiMgVXNlIG5hbWUtYmFzZWQg dmlydHVhbCBob3N0aW5nLg0KIw0KI05hbWVWaXJ0dWFsSG9zdCAqDQoNCiMN CiMgVmlydHVhbEhvc3QgZXhhbXBsZToNCiMgQWxtb3N0IGFueSBBcGFjaGUg ZGlyZWN0aXZlIG1heSBnbyBpbnRvIGEgVmlydHVhbEhvc3QgY29udGFpbmVy Lg0KIyBUaGUgZmlyc3QgVmlydHVhbEhvc3Qgc2VjdGlvbiBpcyB1c2VkIGZv ciByZXF1ZXN0cyB3aXRob3V0IGEga25vd24NCiMgc2VydmVyIG5hbWUuDQoj DQojPFZpcnR1YWxIb3N0ICo+DQojICAgIFNlcnZlckFkbWluIHdlYm1hc3Rl ckBkdW1teS1ob3N0LmV4YW1wbGUuY29tDQojICAgIERvY3VtZW50Um9vdCAv d3d3L2RvY3MvZHVtbXktaG9zdC5leGFtcGxlLmNvbQ0KIyAgICBTZXJ2ZXJO YW1lIGR1bW15LWhvc3QuZXhhbXBsZS5jb20NCiMgICAgRXJyb3JMb2cgbG9n cy9kdW1teS1ob3N0LmV4YW1wbGUuY29tLWVycm9yX2xvZw0KIyAgICBDdXN0 b21Mb2cgbG9ncy9kdW1teS1ob3N0LmV4YW1wbGUuY29tLWFjY2Vzc19sb2cg Y29tbW9uDQojPC9WaXJ0dWFsSG9zdD4NCg== ---559023410-90654356-1019503641=:11364 Content-Type: text/plain; charset=us-ascii --------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See for more info. To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org For additional commands, e-mail: users-help@httpd.apache.org ---559023410-90654356-1019503641=:11364--