Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Jun 2006 20:17:22 -0400
From:      "John DeStefano" <john.destefano@gmail.com>
To:        "Kevin Kinsey" <kdk@daleco.biz>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Virtual hosts and PHP "downloads": php5 and apache22 on FreeBSD 6.1-STABLE
Message-ID:  <f2160e0d0606061717k721f5039le246e1fd75acf1f8@mail.gmail.com>
In-Reply-To: <4485ED7B.201@daleco.biz>
References:  <f2160e0d0606061245t7d1eb3deg9091d9117fccf3c3@mail.gmail.com> <4485ED7B.201@daleco.biz>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_63980_12306751.1149639442137
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 6/6/06, Kevin Kinsey <kdk@daleco.biz> wrote:
> John DeStefano wrote:
> > I upgraded my system from 5.4-RELEASE to 6.1-STABLE last week, and my
> > web server immediately stopped serving PHP pages, where I had no
> > problem doing so before.  Instead of processing the PHP code on the
> > server and displaying the result in a browser, browsing to any page
> > containing PHP code resulted in a prompt to download the PHP page as a
> > file.
>
> As you are probably already painfully aware, this is *usually*
> due to the absence of the necessary lines in the httpd.conf file;
> specifically, AddModule and LoadModule (pointing to the PHP shared
> object) and AddType (referring to the MIME type for PHP files).

Hi Kevin.  Yes: painfully aware at this point.

>
> > /usr/ports/UPGRADING mentions that PHP has been streamlined and must
> > be recompiled to work with Apache and other packages. After
> > deinstalling, configuring (where applicable), and reinstalling PHP5,
> > php5-extensions, and apache2 to the latest versions, not only were PHP
> > files not being served, but my web server was toast:
> > "Forbidden You don't have permission to access / on this server."
>
> Not toast, exactly.  Another configuration error, most likely.
> httpd.conf tells the server which file(s) is/are acceptable as
> INDEX files.  If all your index files were "index.php", for
> example, and the httpd.conf file (which is new, apparently?) says
> that only "index.html" files are allowed as INDEX files, you'll
> get this error every time.

Yup... and with apache22, one of the benefits is that the PHP file
handler lines are automatically filled in when compiling PHP (although
I assume that would be the case with any version of apache as well).

>
> > I edited the new apache config file (now located in
> > /usr/local/etc/apache22/httpd.conf) with my system information,
> > including a DocumentRoot path. But when I started apache, I got some
> > very peculiar errors:
> > "Warning: DocumentRoot [/www/docs/dummy-host.example.com] does not exist
> > Warning: DocumentRoot [/www/docs/dummy-host2.example.com] does not exist"
> >
> > Not only did I confirm beforehand that I had set the DocumentRoot
> > path, and that apache was using the correct config file... but these
> > "dummy" paths didn't exist in the config file!  I learned eventually
> > that a new apache directive splits out virtual host directives to a
> > new include file (/usr/local/etc/apache22/extra/httpd-vhosts.conf).
> > Then I learned after getting a server warning ("NameVirtualHost *:80
> > has no VirtualHosts") that the syntax has been slightly modified, so
> > that the IP/port value of each VirtualHost specification must match
> > that of the NameVirtualHost directive (i.e., "NameVirtualHost *:80"
> > and "<VirtualHost *:80>").
> >
> > Still having trouble though: my "main" site loads properly, but the
> > other virtual hosts aren't. Browsing to any virtual host address other
> > than the default results in either the wrong content or an error.
> > Here's what my httpd-vhosts.conf looks like:
> >
> > NameVirtualHost *:80
> >
> > <VirtualHost *:80>
> > ServerName www.SiteA.com
> > ServerAlias SiteA.com *.SiteA.com
> > DocumentRoot /usr/www
> > ErrorLog /var/log/httpd-SiteA-error.log
> > CustomLog /var/log/httpd-SiteA-access.log combined
> > </VirtualHost>
> >
> > <VirtualHost *:80>
> > ServerName www.SiteB.com
> > ServerAlias SiteB.com *.SiteB.com
> > DocumentRoot /usr/www2
> > ErrorLog /var/log/httpd-SiteB-error.log
> > CustomLog /var/log/httpd-SiteB-access.log combined
> > </VirtualHost>
> >
>
> IANAE here, but that's not like my httpd.conf, in which
> the ports aren't specified.  I also don't use ServerAlias
> directives.  Like I said, no expert.

Right: that's not from the httpd.conf file itself any longer; it's the
httpd-vhosts.conf file, which is called on as an include in the 2.2
version of httpd.conf.  In earlier versions, the VirtualHost
directives have been moved from the main config file to that include
file.  And the IP/port specification for each VirtualHost entry must
now match that of the NameVirtualHost entry (as shown above).

>
> > So, what's happening is that SiteA works as expected, but browsing to
> > SiteB brings you to SiteA, or doesn't load at all ("403" error).
> >
> > In addition, I'm back to my original problem, where PHP files are not
> > loading, and browsing to a PHP page prompts the user to download the
> > page as a file.
> >
> > Any help on either the virtual hosts or the PHP download issue would
> > be greatly appreciated.
> >
>
> You said you did this already, but I'd again make **sure**
> I was editing the correct httpd.conf.  Get the right syntax,
> and it'll be there.  Watch out for "IF" syntax, also.

I triple-checked the config to make sure apache is loading the correct
config file.  In fact, I've finally gotten the config to the point
where none of the apache self-tests report any syntax or configuration
errors at all.  Unfortunately, that doesn't mean it works as I'd
expected; just means there are no syntax errors.

>
> Can you post the relevant lines (AddModule, LoadModule, AddType)
> and whether or not they are contained in an "IF" ??

Please find my httpd.conf and httpd-vhosts.conf files attached (didn't
want to clutter the list) in their current states.  Let me know what
you think?

Thank you,
~John

------=_Part_63980_12306751.1149639442137
Content-Type: text/plain; name="httpd.conf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="httpd.conf"
X-Attachment-Id: f_eo4xnaz2

IwojIFRoaXMgaXMgdGhlIG1haW4gQXBhY2hlIEhUVFAgc2VydmVyIGNvbmZpZ3VyYXRpb24gZmls
ZS4gIEl0IGNvbnRhaW5zIHRoZQojIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyB0aGF0IGdpdmUg
dGhlIHNlcnZlciBpdHMgaW5zdHJ1Y3Rpb25zLgojIFNlZSA8VVJMOmh0dHA6Ly9odHRwZC5hcGFj
aGUub3JnL2RvY3MvMi4yPiBmb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24uCiMgSW4gcGFydGljdWxh
ciwgc2VlIAojIDxVUkw6aHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8yLjIvbW9kL2RpcmVj
dGl2ZXMuaHRtbD4KIyBmb3IgYSBkaXNjdXNzaW9uIG9mIGVhY2ggY29uZmlndXJhdGlvbiBkaXJl
Y3RpdmUuCiMKIyBEbyBOT1Qgc2ltcGx5IHJlYWQgdGhlIGluc3RydWN0aW9ucyBpbiBoZXJlIHdp
dGhvdXQgdW5kZXJzdGFuZGluZwojIHdoYXQgdGhleSBkby4gIFRoZXkncmUgaGVyZSBvbmx5IGFz
IGhpbnRzIG9yIHJlbWluZGVycy4gIElmIHlvdSBhcmUgdW5zdXJlCiMgY29uc3VsdCB0aGUgb25s
aW5lIGRvY3MuIFlvdSBoYXZlIGJlZW4gd2FybmVkLiAgCiMKIyBDb25maWd1cmF0aW9uIGFuZCBs
b2dmaWxlIG5hbWVzOiBJZiB0aGUgZmlsZW5hbWVzIHlvdSBzcGVjaWZ5IGZvciBtYW55CiMgb2Yg
dGhlIHNlcnZlcidzIGNvbnRyb2wgZmlsZXMgYmVnaW4gd2l0aCAiLyIgKG9yICJkcml2ZTovIiBm
b3IgV2luMzIpLCB0aGUKIyBzZXJ2ZXIgd2lsbCB1c2UgdGhhdCBleHBsaWNpdCBwYXRoLiAgSWYg
dGhlIGZpbGVuYW1lcyBkbyAqbm90KiBiZWdpbgojIHdpdGggIi8iLCB0aGUgdmFsdWUgb2YgU2Vy
dmVyUm9vdCBpcyBwcmVwZW5kZWQgLS0gc28gIi92YXIvbG9nL2Zvby5sb2ciCiMgd2l0aCBTZXJ2
ZXJSb290IHNldCB0byAiL3Vzci9sb2NhbCIgd2lsbCBiZSBpbnRlcnByZXRlZCBieSB0aGUKIyBz
ZXJ2ZXIgYXMgIi91c3IvbG9jYWwvL3Zhci9sb2cvZm9vLmxvZyIuCgojCiMgU2VydmVyUm9vdDog
VGhlIHRvcCBvZiB0aGUgZGlyZWN0b3J5IHRyZWUgdW5kZXIgd2hpY2ggdGhlIHNlcnZlcidzCiMg
Y29uZmlndXJhdGlvbiwgZXJyb3IsIGFuZCBsb2cgZmlsZXMgYXJlIGtlcHQuCiMKIyBEbyBub3Qg
YWRkIGEgc2xhc2ggYXQgdGhlIGVuZCBvZiB0aGUgZGlyZWN0b3J5IHBhdGguICBJZiB5b3UgcG9p
bnQKIyBTZXJ2ZXJSb290IGF0IGEgbm9uLWxvY2FsIGRpc2ssIGJlIHN1cmUgdG8gcG9pbnQgdGhl
IExvY2tGaWxlIGRpcmVjdGl2ZQojIGF0IGEgbG9jYWwgZGlzay4gIElmIHlvdSB3aXNoIHRvIHNo
YXJlIHRoZSBzYW1lIFNlcnZlclJvb3QgZm9yIG11bHRpcGxlCiMgaHR0cGQgZGFlbW9ucywgeW91
IHdpbGwgbmVlZCB0byBjaGFuZ2UgYXQgbGVhc3QgTG9ja0ZpbGUgYW5kIFBpZEZpbGUuCiMKU2Vy
dmVyUm9vdCAiL3Vzci9sb2NhbCIKCiMKIyBMaXN0ZW46IEFsbG93cyB5b3UgdG8gYmluZCBBcGFj
aGUgdG8gc3BlY2lmaWMgSVAgYWRkcmVzc2VzIGFuZC9vcgojIHBvcnRzLCBpbnN0ZWFkIG9mIHRo
ZSBkZWZhdWx0LiBTZWUgYWxzbyB0aGUgPFZpcnR1YWxIb3N0PgojIGRpcmVjdGl2ZS4KIwojIENo
YW5nZSB0aGlzIHRvIExpc3RlbiBvbiBzcGVjaWZpYyBJUCBhZGRyZXNzZXMgYXMgc2hvd24gYmVs
b3cgdG8gCiMgcHJldmVudCBBcGFjaGUgZnJvbSBnbG9tbWluZyBvbnRvIGFsbCBib3VuZCBJUCBh
ZGRyZXNzZXMuCiMKI0xpc3RlbiAxMi4zNC41Ni43ODo4MApMaXN0ZW4gODAKCiMKIyBEeW5hbWlj
IFNoYXJlZCBPYmplY3QgKERTTykgU3VwcG9ydAojCiMgVG8gYmUgYWJsZSB0byB1c2UgdGhlIGZ1
bmN0aW9uYWxpdHkgb2YgYSBtb2R1bGUgd2hpY2ggd2FzIGJ1aWx0IGFzIGEgRFNPIHlvdQojIGhh
dmUgdG8gcGxhY2UgY29ycmVzcG9uZGluZyBgTG9hZE1vZHVsZScgbGluZXMgYXQgdGhpcyBsb2Nh
dGlvbiBzbyB0aGUKIyBkaXJlY3RpdmVzIGNvbnRhaW5lZCBpbiBpdCBhcmUgYWN0dWFsbHkgYXZh
aWxhYmxlIF9iZWZvcmVfIHRoZXkgYXJlIHVzZWQuCiMgU3RhdGljYWxseSBjb21waWxlZCBtb2R1
bGVzICh0aG9zZSBsaXN0ZWQgYnkgYGh0dHBkIC1sJykgZG8gbm90IG5lZWQKIyB0byBiZSBsb2Fk
ZWQgaGVyZS4KIwojIEV4YW1wbGU6CiMgTG9hZE1vZHVsZSBmb29fbW9kdWxlIG1vZHVsZXMvbW9k
X2Zvby5zbwojCkxvYWRNb2R1bGUgYXV0aG5fZmlsZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9t
b2RfYXV0aG5fZmlsZS5zbwpMb2FkTW9kdWxlIGF1dGhuX2RibV9tb2R1bGUgbGliZXhlYy9hcGFj
aGUyMi9tb2RfYXV0aG5fZGJtLnNvCkxvYWRNb2R1bGUgYXV0aG5fYW5vbl9tb2R1bGUgbGliZXhl
Yy9hcGFjaGUyMi9tb2RfYXV0aG5fYW5vbi5zbwpMb2FkTW9kdWxlIGF1dGhuX2RlZmF1bHRfbW9k
dWxlIGxpYmV4ZWMvYXBhY2hlMjIvbW9kX2F1dGhuX2RlZmF1bHQuc28KTG9hZE1vZHVsZSBhdXRo
el9ob3N0X21vZHVsZSBsaWJleGVjL2FwYWNoZTIyL21vZF9hdXRoel9ob3N0LnNvCkxvYWRNb2R1
bGUgYXV0aHpfZ3JvdXBmaWxlX21vZHVsZSBsaWJleGVjL2FwYWNoZTIyL21vZF9hdXRoel9ncm91
cGZpbGUuc28KTG9hZE1vZHVsZSBhdXRoel91c2VyX21vZHVsZSBsaWJleGVjL2FwYWNoZTIyL21v
ZF9hdXRoel91c2VyLnNvCkxvYWRNb2R1bGUgYXV0aHpfZGJtX21vZHVsZSBsaWJleGVjL2FwYWNo
ZTIyL21vZF9hdXRoel9kYm0uc28KTG9hZE1vZHVsZSBhdXRoel9vd25lcl9tb2R1bGUgbGliZXhl
Yy9hcGFjaGUyMi9tb2RfYXV0aHpfb3duZXIuc28KTG9hZE1vZHVsZSBhdXRoel9kZWZhdWx0X21v
ZHVsZSBsaWJleGVjL2FwYWNoZTIyL21vZF9hdXRoel9kZWZhdWx0LnNvCkxvYWRNb2R1bGUgYXV0
aF9iYXNpY19tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfYXV0aF9iYXNpYy5zbwpMb2FkTW9k
dWxlIGF1dGhfZGlnZXN0X21vZHVsZSBsaWJleGVjL2FwYWNoZTIyL21vZF9hdXRoX2RpZ2VzdC5z
bwpMb2FkTW9kdWxlIGZpbGVfY2FjaGVfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMjIvbW9kX2ZpbGVf
Y2FjaGUuc28KTG9hZE1vZHVsZSBjYWNoZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfY2Fj
aGUuc28KTG9hZE1vZHVsZSBkaXNrX2NhY2hlX21vZHVsZSBsaWJleGVjL2FwYWNoZTIyL21vZF9k
aXNrX2NhY2hlLnNvCkxvYWRNb2R1bGUgaW5jbHVkZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9t
b2RfaW5jbHVkZS5zbwpMb2FkTW9kdWxlIGZpbHRlcl9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9t
b2RfZmlsdGVyLnNvCkxvYWRNb2R1bGUgY2hhcnNldF9saXRlX21vZHVsZSBsaWJleGVjL2FwYWNo
ZTIyL21vZF9jaGFyc2V0X2xpdGUuc28KTG9hZE1vZHVsZSBkZWZsYXRlX21vZHVsZSBsaWJleGVj
L2FwYWNoZTIyL21vZF9kZWZsYXRlLnNvCkxvYWRNb2R1bGUgbG9nX2NvbmZpZ19tb2R1bGUgbGli
ZXhlYy9hcGFjaGUyMi9tb2RfbG9nX2NvbmZpZy5zbwpMb2FkTW9kdWxlIGxvZ2lvX21vZHVsZSBs
aWJleGVjL2FwYWNoZTIyL21vZF9sb2dpby5zbwpMb2FkTW9kdWxlIGVudl9tb2R1bGUgbGliZXhl
Yy9hcGFjaGUyMi9tb2RfZW52LnNvCkxvYWRNb2R1bGUgbWltZV9tYWdpY19tb2R1bGUgbGliZXhl
Yy9hcGFjaGUyMi9tb2RfbWltZV9tYWdpYy5zbwpMb2FkTW9kdWxlIGNlcm5fbWV0YV9tb2R1bGUg
bGliZXhlYy9hcGFjaGUyMi9tb2RfY2Vybl9tZXRhLnNvCkxvYWRNb2R1bGUgZXhwaXJlc19tb2R1
bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfZXhwaXJlcy5zbwpMb2FkTW9kdWxlIGhlYWRlcnNfbW9k
dWxlIGxpYmV4ZWMvYXBhY2hlMjIvbW9kX2hlYWRlcnMuc28KTG9hZE1vZHVsZSB1c2VydHJhY2tf
bW9kdWxlIGxpYmV4ZWMvYXBhY2hlMjIvbW9kX3VzZXJ0cmFjay5zbwpMb2FkTW9kdWxlIHVuaXF1
ZV9pZF9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfdW5pcXVlX2lkLnNvCkxvYWRNb2R1bGUg
c2V0ZW52aWZfbW9kdWxlIGxpYmV4ZWMvYXBhY2hlMjIvbW9kX3NldGVudmlmLnNvCkxvYWRNb2R1
bGUgdmVyc2lvbl9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfdmVyc2lvbi5zbwpMb2FkTW9k
dWxlIHNzbF9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9tb2Rfc3NsLnNvCkxvYWRNb2R1bGUgbWlt
ZV9tb2R1bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfbWltZS5zbwpMb2FkTW9kdWxlIGRhdl9tb2R1
bGUgbGliZXhlYy9hcGFjaGUyMi9tb2RfZGF2LnNvCkxvYWRNb2R1bGUgc3RhdHVzX21vZHVsZSBs
aWJleGVjL2FwYWNoZTIyL21vZF9zdGF0dXMuc28KTG9hZE1vZHVsZSBhdXRvaW5kZXhfbW9kdWxl
IGxpYmV4ZWMvYXBhY2hlMjIvbW9kX2F1dG9pbmRleC5zbwpMb2FkTW9kdWxlIGFzaXNfbW9kdWxl
IGxpYmV4ZWMvYXBhY2hlMjIvbW9kX2FzaXMuc28KTG9hZE1vZHVsZSBpbmZvX21vZHVsZSBsaWJl
eGVjL2FwYWNoZTIyL21vZF9pbmZvLnNvCkxvYWRNb2R1bGUgY2dpX21vZHVsZSBsaWJleGVjL2Fw
YWNoZTIyL21vZF9jZ2kuc28KTG9hZE1vZHVsZSBkYXZfZnNfbW9kdWxlIGxpYmV4ZWMvYXBhY2hl
MjIvbW9kX2Rhdl9mcy5zbwpMb2FkTW9kdWxlIHZob3N0X2FsaWFzX21vZHVsZSBsaWJleGVjL2Fw
YWNoZTIyL21vZF92aG9zdF9hbGlhcy5zbwpMb2FkTW9kdWxlIG5lZ290aWF0aW9uX21vZHVsZSBs
aWJleGVjL2FwYWNoZTIyL21vZF9uZWdvdGlhdGlvbi5zbwpMb2FkTW9kdWxlIGRpcl9tb2R1bGUg
bGliZXhlYy9hcGFjaGUyMi9tb2RfZGlyLnNvCkxvYWRNb2R1bGUgaW1hZ2VtYXBfbW9kdWxlIGxp
YmV4ZWMvYXBhY2hlMjIvbW9kX2ltYWdlbWFwLnNvCkxvYWRNb2R1bGUgYWN0aW9uc19tb2R1bGUg
bGliZXhlYy9hcGFjaGUyMi9tb2RfYWN0aW9ucy5zbwpMb2FkTW9kdWxlIHNwZWxpbmdfbW9kdWxl
IGxpYmV4ZWMvYXBhY2hlMjIvbW9kX3NwZWxpbmcuc28KTG9hZE1vZHVsZSB1c2VyZGlyX21vZHVs
ZSBsaWJleGVjL2FwYWNoZTIyL21vZF91c2VyZGlyLnNvCkxvYWRNb2R1bGUgYWxpYXNfbW9kdWxl
IGxpYmV4ZWMvYXBhY2hlMjIvbW9kX2FsaWFzLnNvCkxvYWRNb2R1bGUgcmV3cml0ZV9tb2R1bGUg
bGliZXhlYy9hcGFjaGUyMi9tb2RfcmV3cml0ZS5zbwpMb2FkTW9kdWxlIHBocDVfbW9kdWxlIGxp
YmV4ZWMvYXBhY2hlMjIvbGlicGhwNS5zbwo8SWZNb2R1bGUgIW1wbV9uZXR3YXJlX21vZHVsZT4K
IwojIElmIHlvdSB3aXNoIGh0dHBkIHRvIHJ1biBhcyBhIGRpZmZlcmVudCB1c2VyIG9yIGdyb3Vw
LCB5b3UgbXVzdCBydW4KIyBodHRwZCBhcyByb290IGluaXRpYWxseSBhbmQgaXQgd2lsbCBzd2l0
Y2guICAKIwojIFVzZXIvR3JvdXA6IFRoZSBuYW1lIChvciAjbnVtYmVyKSBvZiB0aGUgdXNlci9n
cm91cCB0byBydW4gaHR0cGQgYXMuCiMgSXQgaXMgdXN1YWxseSBnb29kIHByYWN0aWNlIHRvIGNy
ZWF0ZSBhIGRlZGljYXRlZCB1c2VyIGFuZCBncm91cCBmb3IKIyBydW5uaW5nIGh0dHBkLCBhcyB3
aXRoIG1vc3Qgc3lzdGVtIHNlcnZpY2VzLgojClVzZXIgd3d3Ckdyb3VwIHd3dwo8L0lmTW9kdWxl
PgoKIyAnTWFpbicgc2VydmVyIGNvbmZpZ3VyYXRpb24KIwojIFRoZSBkaXJlY3RpdmVzIGluIHRo
aXMgc2VjdGlvbiBzZXQgdXAgdGhlIHZhbHVlcyB1c2VkIGJ5IHRoZSAnbWFpbicKIyBzZXJ2ZXIs
IHdoaWNoIHJlc3BvbmRzIHRvIGFueSByZXF1ZXN0cyB0aGF0IGFyZW4ndCBoYW5kbGVkIGJ5IGEK
IyA8VmlydHVhbEhvc3Q+IGRlZmluaXRpb24uICBUaGVzZSB2YWx1ZXMgYWxzbyBwcm92aWRlIGRl
ZmF1bHRzIGZvcgojIGFueSA8VmlydHVhbEhvc3Q+IGNvbnRhaW5lcnMgeW91IG1heSBkZWZpbmUg
bGF0ZXIgaW4gdGhlIGZpbGUuCiMKIyBBbGwgb2YgdGhlc2UgZGlyZWN0aXZlcyBtYXkgYXBwZWFy
IGluc2lkZSA8VmlydHVhbEhvc3Q+IGNvbnRhaW5lcnMsCiMgaW4gd2hpY2ggY2FzZSB0aGVzZSBk
ZWZhdWx0IHNldHRpbmdzIHdpbGwgYmUgb3ZlcnJpZGRlbiBmb3IgdGhlCiMgdmlydHVhbCBob3N0
IGJlaW5nIGRlZmluZWQuCiMKCiMKIyBTZXJ2ZXJBZG1pbjogWW91ciBhZGRyZXNzLCB3aGVyZSBw
cm9ibGVtcyB3aXRoIHRoZSBzZXJ2ZXIgc2hvdWxkIGJlCiMgZS1tYWlsZWQuICBUaGlzIGFkZHJl
c3MgYXBwZWFycyBvbiBzb21lIHNlcnZlci1nZW5lcmF0ZWQgcGFnZXMsIHN1Y2gKIyBhcyBlcnJv
ciBkb2N1bWVudHMuICBlLmcuIGFkbWluQHlvdXItZG9tYWluLmNvbQojClNlcnZlckFkbWluIGRl
ZXN0b0B5YWhvby5jb20KCiMKIyBTZXJ2ZXJOYW1lIGdpdmVzIHRoZSBuYW1lIGFuZCBwb3J0IHRo
YXQgdGhlIHNlcnZlciB1c2VzIHRvIGlkZW50aWZ5IGl0c2VsZi4KIyBUaGlzIGNhbiBvZnRlbiBi
ZSBkZXRlcm1pbmVkIGF1dG9tYXRpY2FsbHksIGJ1dCB3ZSByZWNvbW1lbmQgeW91IHNwZWNpZnkK
IyBpdCBleHBsaWNpdGx5IHRvIHByZXZlbnQgcHJvYmxlbXMgZHVyaW5nIHN0YXJ0dXAuCiMKIyBJ
ZiB5b3VyIGhvc3QgZG9lc24ndCBoYXZlIGEgcmVnaXN0ZXJlZCBETlMgbmFtZSwgZW50ZXIgaXRz
IElQIGFkZHJlc3MgaGVyZS4KIwojU2VydmVyTmFtZSB3d3cuZXhhbXBsZS5jb206ODAKU2VydmVy
TmFtZSB3d3cudGhlY2hvY29sYXRlc2hhY2suY29tCgojCiMgRG9jdW1lbnRSb290OiBUaGUgZGly
ZWN0b3J5IG91dCBvZiB3aGljaCB5b3Ugd2lsbCBzZXJ2ZSB5b3VyCiMgZG9jdW1lbnRzLiBCeSBk
ZWZhdWx0LCBhbGwgcmVxdWVzdHMgYXJlIHRha2VuIGZyb20gdGhpcyBkaXJlY3RvcnksIGJ1dAoj
IHN5bWJvbGljIGxpbmtzIGFuZCBhbGlhc2VzIG1heSBiZSB1c2VkIHRvIHBvaW50IHRvIG90aGVy
IGxvY2F0aW9ucy4KIwojRG9jdW1lbnRSb290ICIvdXNyL2xvY2FsL3d3dy9hcGFjaGUyMi9kYXRh
IgpEb2N1bWVudFJvb3QgIi91c3Ivd3d3Mi90aGVjaG9jb2xhdGVzaGFjayIKCiMKIyBFYWNoIGRp
cmVjdG9yeSB0byB3aGljaCBBcGFjaGUgaGFzIGFjY2VzcyBjYW4gYmUgY29uZmlndXJlZCB3aXRo
IHJlc3BlY3QKIyB0byB3aGljaCBzZXJ2aWNlcyBhbmQgZmVhdHVyZXMgYXJlIGFsbG93ZWQgYW5k
L29yIGRpc2FibGVkIGluIHRoYXQKIyBkaXJlY3RvcnkgKGFuZCBpdHMgc3ViZGlyZWN0b3JpZXMp
LiAKIwojIEZpcnN0LCB3ZSBjb25maWd1cmUgdGhlICJkZWZhdWx0IiB0byBiZSBhIHZlcnkgcmVz
dHJpY3RpdmUgc2V0IG9mIAojIGZlYXR1cmVzLiAgCiMKPERpcmVjdG9yeSAvPgogICAgQWxsb3dP
dmVycmlkZSBOb25lCiAgICBPcmRlciBkZW55LGFsbG93CiAgICBEZW55IGZyb20gYWxsCiMgYWRk
ZWQgY2dpIHN1cHBvcnQgNi82LzA2IC1KRAogICAgT3B0aW9ucyArRXhlY0NHSQo8L0RpcmVjdG9y
eT4KCiMKIyBOb3RlIHRoYXQgZnJvbSB0aGlzIHBvaW50IGZvcndhcmQgeW91IG11c3Qgc3BlY2lm
aWNhbGx5IGFsbG93CiMgcGFydGljdWxhciBmZWF0dXJlcyB0byBiZSBlbmFibGVkIC0gc28gaWYg
c29tZXRoaW5nJ3Mgbm90IHdvcmtpbmcgYXMKIyB5b3UgbWlnaHQgZXhwZWN0LCBtYWtlIHN1cmUg
dGhhdCB5b3UgaGF2ZSBzcGVjaWZpY2FsbHkgZW5hYmxlZCBpdAojIGJlbG93LgojCgojCiMgVGhp
cyBzaG91bGQgYmUgY2hhbmdlZCB0byB3aGF0ZXZlciB5b3Ugc2V0IERvY3VtZW50Um9vdCB0by4K
Iwo8RGlyZWN0b3J5ICIvdXNyL3d3dzIvdGhlY2hvY29sYXRlc2hhY2siPgojPERpcmVjdG9yeSAi
L3Vzci9sb2NhbC93d3cvYXBhY2hlMjIvZGF0YSI+CiAgICAjCiAgICAjIFBvc3NpYmxlIHZhbHVl
cyBmb3IgdGhlIE9wdGlvbnMgZGlyZWN0aXZlIGFyZSAiTm9uZSIsICJBbGwiLAogICAgIyBvciBh
bnkgY29tYmluYXRpb24gb2Y6CiAgICAjICAgSW5kZXhlcyBJbmNsdWRlcyBGb2xsb3dTeW1MaW5r
cyBTeW1MaW5rc2lmT3duZXJNYXRjaCBFeGVjQ0dJIE11bHRpVmlld3MKICAgICMKICAgICMgTm90
ZSB0aGF0ICJNdWx0aVZpZXdzIiBtdXN0IGJlIG5hbWVkICpleHBsaWNpdGx5KiAtLS0gIk9wdGlv
bnMgQWxsIgogICAgIyBkb2Vzbid0IGdpdmUgaXQgdG8geW91LgogICAgIwogICAgIyBUaGUgT3B0
aW9ucyBkaXJlY3RpdmUgaXMgYm90aCBjb21wbGljYXRlZCBhbmQgaW1wb3J0YW50LiAgUGxlYXNl
IHNlZQogICAgIyBodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuMi9tb2QvY29yZS5odG1s
I29wdGlvbnMKICAgICMgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAjCiAgICBPcHRpb25zIElu
ZGV4ZXMgRm9sbG93U3ltTGlua3MKCiAgICAjCiAgICAjIEFsbG93T3ZlcnJpZGUgY29udHJvbHMg
d2hhdCBkaXJlY3RpdmVzIG1heSBiZSBwbGFjZWQgaW4gLmh0YWNjZXNzIGZpbGVzLgogICAgIyBJ
dCBjYW4gYmUgIkFsbCIsICJOb25lIiwgb3IgYW55IGNvbWJpbmF0aW9uIG9mIHRoZSBrZXl3b3Jk
czoKICAgICMgICBPcHRpb25zIEZpbGVJbmZvIEF1dGhDb25maWcgTGltaXQKICAgICMKICAgIEFs
bG93T3ZlcnJpZGUgTm9uZQoKICAgICMKICAgICMgQ29udHJvbHMgd2hvIGNhbiBnZXQgc3R1ZmYg
ZnJvbSB0aGlzIHNlcnZlci4KICAgICMKICAgIE9yZGVyIGFsbG93LGRlbnkKICAgIEFsbG93IGZy
b20gYWxsCgo8L0RpcmVjdG9yeT4KCiMKIyBEaXJlY3RvcnlJbmRleDogc2V0cyB0aGUgZmlsZSB0
aGF0IEFwYWNoZSB3aWxsIHNlcnZlIGlmIGEgZGlyZWN0b3J5CiMgaXMgcmVxdWVzdGVkLgojCjxJ
Zk1vZHVsZSBkaXJfbW9kdWxlPgojICAgIERpcmVjdG9yeUluZGV4IGluZGV4Lmh0bWwKICAgIERp
cmVjdG9yeUluZGV4IGluZGV4LnBocCBpbmRleC5odG1sIGluZGV4Lmh0bSBpbmRleC5odG1sLnZh
cgo8L0lmTW9kdWxlPgoKIwojIFRoZSBmb2xsb3dpbmcgbGluZXMgcHJldmVudCAuaHRhY2Nlc3Mg
YW5kIC5odHBhc3N3ZCBmaWxlcyBmcm9tIGJlaW5nIAojIHZpZXdlZCBieSBXZWIgY2xpZW50cy4g
CiMKPEZpbGVzTWF0Y2ggIl5cLmh0Ij4KICAgIE9yZGVyIGFsbG93LGRlbnkKICAgIERlbnkgZnJv
bSBhbGwKICAgIFNhdGlzZnkgQWxsCjwvRmlsZXNNYXRjaD4KCiMKIyBFcnJvckxvZzogVGhlIGxv
Y2F0aW9uIG9mIHRoZSBlcnJvciBsb2cgZmlsZS4KIyBJZiB5b3UgZG8gbm90IHNwZWNpZnkgYW4g
RXJyb3JMb2cgZGlyZWN0aXZlIHdpdGhpbiBhIDxWaXJ0dWFsSG9zdD4KIyBjb250YWluZXIsIGVy
cm9yIG1lc3NhZ2VzIHJlbGF0aW5nIHRvIHRoYXQgdmlydHVhbCBob3N0IHdpbGwgYmUKIyBsb2dn
ZWQgaGVyZS4gIElmIHlvdSAqZG8qIGRlZmluZSBhbiBlcnJvciBsb2dmaWxlIGZvciBhIDxWaXJ0
dWFsSG9zdD4KIyBjb250YWluZXIsIHRoYXQgaG9zdCdzIGVycm9ycyB3aWxsIGJlIGxvZ2dlZCB0
aGVyZSBhbmQgbm90IGhlcmUuCiMKRXJyb3JMb2cgL3Zhci9sb2cvaHR0cGQtZXJyb3IubG9nCgoj
CiMgTG9nTGV2ZWw6IENvbnRyb2wgdGhlIG51bWJlciBvZiBtZXNzYWdlcyBsb2dnZWQgdG8gdGhl
IGVycm9yX2xvZy4KIyBQb3NzaWJsZSB2YWx1ZXMgaW5jbHVkZTogZGVidWcsIGluZm8sIG5vdGlj
ZSwgd2FybiwgZXJyb3IsIGNyaXQsCiMgYWxlcnQsIGVtZXJnLgojCkxvZ0xldmVsIHdhcm4KCjxJ
Zk1vZHVsZSBsb2dfY29uZmlnX21vZHVsZT4KICAgICMKICAgICMgVGhlIGZvbGxvd2luZyBkaXJl
Y3RpdmVzIGRlZmluZSBzb21lIGZvcm1hdCBuaWNrbmFtZXMgZm9yIHVzZSB3aXRoCiAgICAjIGEg
Q3VzdG9tTG9nIGRpcmVjdGl2ZSAoc2VlIGJlbG93KS4KICAgICMKICAgIExvZ0Zvcm1hdCAiJWgg
JWwgJXUgJXQgXCIlclwiICU+cyAlYiBcIiV7UmVmZXJlcn1pXCIgXCIle1VzZXItQWdlbnR9aVwi
IiBjb21iaW5lZAogICAgTG9nRm9ybWF0ICIlaCAlbCAldSAldCBcIiVyXCIgJT5zICViIiBjb21t
b24KCiAgICA8SWZNb2R1bGUgbG9naW9fbW9kdWxlPgogICAgICAjIFlvdSBuZWVkIHRvIGVuYWJs
ZSBtb2RfbG9naW8uYyB0byB1c2UgJUkgYW5kICVPCiAgICAgIExvZ0Zvcm1hdCAiJWggJWwgJXUg
JXQgXCIlclwiICU+cyAlYiBcIiV7UmVmZXJlcn1pXCIgXCIle1VzZXItQWdlbnR9aVwiICVJICVP
IiBjb21iaW5lZGlvCiAgICA8L0lmTW9kdWxlPgoKICAgICMKICAgICMgVGhlIGxvY2F0aW9uIGFu
ZCBmb3JtYXQgb2YgdGhlIGFjY2VzcyBsb2dmaWxlIChDb21tb24gTG9nZmlsZSBGb3JtYXQpLgog
ICAgIyBJZiB5b3UgZG8gbm90IGRlZmluZSBhbnkgYWNjZXNzIGxvZ2ZpbGVzIHdpdGhpbiBhIDxW
aXJ0dWFsSG9zdD4KICAgICMgY29udGFpbmVyLCB0aGV5IHdpbGwgYmUgbG9nZ2VkIGhlcmUuICBD
b250cmFyaXdpc2UsIGlmIHlvdSAqZG8qCiAgICAjIGRlZmluZSBwZXItPFZpcnR1YWxIb3N0PiBh
Y2Nlc3MgbG9nZmlsZXMsIHRyYW5zYWN0aW9ucyB3aWxsIGJlCiAgICAjIGxvZ2dlZCB0aGVyZWlu
IGFuZCAqbm90KiBpbiB0aGlzIGZpbGUuCiAgICAjCiAgICAjQ3VzdG9tTG9nIC92YXIvbG9nL2h0
dHBkLWFjY2Vzcy5sb2cgY29tbW9uCgogICAgIwogICAgIyBJZiB5b3UgcHJlZmVyIGEgbG9nZmls
ZSB3aXRoIGFjY2VzcywgYWdlbnQsIGFuZCByZWZlcmVyIGluZm9ybWF0aW9uCiAgICAjIChDb21i
aW5lZCBMb2dmaWxlIEZvcm1hdCkgeW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBkaXJlY3RpdmUu
CiAgICAjCiAgICBDdXN0b21Mb2cgL3Zhci9sb2cvaHR0cGQtYWNjZXNzLmxvZyBjb21iaW5lZAo8
L0lmTW9kdWxlPgoKPElmTW9kdWxlIGFsaWFzX21vZHVsZT4KICAgICMKICAgICMgUmVkaXJlY3Q6
IEFsbG93cyB5b3UgdG8gdGVsbCBjbGllbnRzIGFib3V0IGRvY3VtZW50cyB0aGF0IHVzZWQgdG8g
CiAgICAjIGV4aXN0IGluIHlvdXIgc2VydmVyJ3MgbmFtZXNwYWNlLCBidXQgZG8gbm90IGFueW1v
cmUuIFRoZSBjbGllbnQgCiAgICAjIHdpbGwgbWFrZSBhIG5ldyByZXF1ZXN0IGZvciB0aGUgZG9j
dW1lbnQgYXQgaXRzIG5ldyBsb2NhdGlvbi4KICAgICMgRXhhbXBsZToKICAgICMgUmVkaXJlY3Qg
cGVybWFuZW50IC9mb28gaHR0cDovL3d3dy5leGFtcGxlLmNvbS9iYXIKCiAgICAjCiAgICAjIEFs
aWFzOiBNYXBzIHdlYiBwYXRocyBpbnRvIGZpbGVzeXN0ZW0gcGF0aHMgYW5kIGlzIHVzZWQgdG8K
ICAgICMgYWNjZXNzIGNvbnRlbnQgdGhhdCBkb2VzIG5vdCBsaXZlIHVuZGVyIHRoZSBEb2N1bWVu
dFJvb3QuCiAgICAjIEV4YW1wbGU6CiAgICAjIEFsaWFzIC93ZWJwYXRoIC9mdWxsL2ZpbGVzeXN0
ZW0vcGF0aAogICAgIwogICAgIyBJZiB5b3UgaW5jbHVkZSBhIHRyYWlsaW5nIC8gb24gL3dlYnBh
dGggdGhlbiB0aGUgc2VydmVyIHdpbGwKICAgICMgcmVxdWlyZSBpdCB0byBiZSBwcmVzZW50IGlu
IHRoZSBVUkwuICBZb3Ugd2lsbCBhbHNvIGxpa2VseQogICAgIyBuZWVkIHRvIHByb3ZpZGUgYSA8
RGlyZWN0b3J5PiBzZWN0aW9uIHRvIGFsbG93IGFjY2VzcyB0bwogICAgIyB0aGUgZmlsZXN5c3Rl
bSBwYXRoLgoKICAgICMKICAgICMgU2NyaXB0QWxpYXM6IFRoaXMgY29udHJvbHMgd2hpY2ggZGly
ZWN0b3JpZXMgY29udGFpbiBzZXJ2ZXIgc2NyaXB0cy4gCiAgICAjIFNjcmlwdEFsaWFzZXMgYXJl
IGVzc2VudGlhbGx5IHRoZSBzYW1lIGFzIEFsaWFzZXMsIGV4Y2VwdCB0aGF0CiAgICAjIGRvY3Vt
ZW50cyBpbiB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBhcmUgdHJlYXRlZCBhcyBhcHBsaWNhdGlvbnMg
YW5kCiAgICAjIHJ1biBieSB0aGUgc2VydmVyIHdoZW4gcmVxdWVzdGVkIHJhdGhlciB0aGFuIGFz
IGRvY3VtZW50cyBzZW50IHRvIHRoZQogICAgIyBjbGllbnQuICBUaGUgc2FtZSBydWxlcyBhYm91
dCB0cmFpbGluZyAiLyIgYXBwbHkgdG8gU2NyaXB0QWxpYXMKICAgICMgZGlyZWN0aXZlcyBhcyB0
byBBbGlhcy4KICAgICMKICAgIFNjcmlwdEFsaWFzIC9jZ2ktYmluLyAiL3Vzci9sb2NhbC93d3cv
Y2dpLWJpbi8iCgo8L0lmTW9kdWxlPgoKPElmTW9kdWxlIGNnaWRfbW9kdWxlPgogICAgIwogICAg
IyBTY3JpcHRTb2NrOiBPbiB0aHJlYWRlZCBzZXJ2ZXJzLCBkZXNpZ25hdGUgdGhlIHBhdGggdG8g
dGhlIFVOSVgKICAgICMgc29ja2V0IHVzZWQgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgQ0dJIGRh
ZW1vbiBvZiBtb2RfY2dpZC4KICAgICMKICAgICNTY3JpcHRzb2NrIC92YXIvcnVuL2NnaXNvY2sK
PC9JZk1vZHVsZT4KCiMKIyAiL3Vzci9sb2NhbC93d3cvYXBhY2hlMjIvY2dpLWJpbiIgc2hvdWxk
IGJlIGNoYW5nZWQgdG8gd2hhdGV2ZXIgeW91ciBTY3JpcHRBbGlhc2VkCiMgQ0dJIGRpcmVjdG9y
eSBleGlzdHMsIGlmIHlvdSBoYXZlIHRoYXQgY29uZmlndXJlZC4KIwo8RGlyZWN0b3J5ICIvdXNy
L2xvY2FsL3d3dy9jZ2ktYmluIj4KICAgIEFsbG93T3ZlcnJpZGUgTm9uZQogICAgT3B0aW9ucyBO
b25lCiAgICBPcmRlciBhbGxvdyxkZW55CiAgICBBbGxvdyBmcm9tIGFsbAo8L0RpcmVjdG9yeT4K
CiMKIyBEZWZhdWx0VHlwZTogdGhlIGRlZmF1bHQgTUlNRSB0eXBlIHRoZSBzZXJ2ZXIgd2lsbCB1
c2UgZm9yIGEgZG9jdW1lbnQKIyBpZiBpdCBjYW5ub3Qgb3RoZXJ3aXNlIGRldGVybWluZSBvbmUs
IHN1Y2ggYXMgZnJvbSBmaWxlbmFtZSBleHRlbnNpb25zLgojIElmIHlvdXIgc2VydmVyIGNvbnRh
aW5zIG1vc3RseSB0ZXh0IG9yIEhUTUwgZG9jdW1lbnRzLCAidGV4dC9wbGFpbiIgaXMKIyBhIGdv
b2QgdmFsdWUuICBJZiBtb3N0IG9mIHlvdXIgY29udGVudCBpcyBiaW5hcnksIHN1Y2ggYXMgYXBw
bGljYXRpb25zCiMgb3IgaW1hZ2VzLCB5b3UgbWF5IHdhbnQgdG8gdXNlICJhcHBsaWNhdGlvbi9v
Y3RldC1zdHJlYW0iIGluc3RlYWQgdG8KIyBrZWVwIGJyb3dzZXJzIGZyb20gdHJ5aW5nIHRvIGRp
c3BsYXkgYmluYXJ5IGZpbGVzIGFzIHRob3VnaCB0aGV5IGFyZQojIHRleHQuCiMKRGVmYXVsdFR5
cGUgdGV4dC9wbGFpbgoKPElmTW9kdWxlIG1pbWVfbW9kdWxlPgogICAgIwogICAgIyBUeXBlc0Nv
bmZpZyBwb2ludHMgdG8gdGhlIGZpbGUgY29udGFpbmluZyB0aGUgbGlzdCBvZiBtYXBwaW5ncyBm
cm9tCiAgICAjIGZpbGVuYW1lIGV4dGVuc2lvbiB0byBNSU1FLXR5cGUuCiAgICAjCiAgICBUeXBl
c0NvbmZpZyBldGMvYXBhY2hlMjIvbWltZS50eXBlcwoKICAgICMKICAgICMgQWRkVHlwZSBhbGxv
d3MgeW91IHRvIGFkZCB0byBvciBvdmVycmlkZSB0aGUgTUlNRSBjb25maWd1cmF0aW9uCiAgICAj
IGZpbGUgc3BlY2lmaWVkIGluIFR5cGVzQ29uZmlnIGZvciBzcGVjaWZpYyBmaWxlIHR5cGVzLgog
ICAgIwogICAgI0FkZFR5cGUgYXBwbGljYXRpb24veC1nemlwIC50Z3oKICAgICMKICAgICMgQWRk
RW5jb2RpbmcgYWxsb3dzIHlvdSB0byBoYXZlIGNlcnRhaW4gYnJvd3NlcnMgdW5jb21wcmVzcwog
ICAgIyBpbmZvcm1hdGlvbiBvbiB0aGUgZmx5LiBOb3RlOiBOb3QgYWxsIGJyb3dzZXJzIHN1cHBv
cnQgdGhpcy4KICAgICMKICAgICNBZGRFbmNvZGluZyB4LWNvbXByZXNzIC5aCiAgICAjQWRkRW5j
b2RpbmcgeC1nemlwIC5neiAudGd6CiAgICAjCiAgICAjIElmIHRoZSBBZGRFbmNvZGluZyBkaXJl
Y3RpdmVzIGFib3ZlIGFyZSBjb21tZW50ZWQtb3V0LCB0aGVuIHlvdQogICAgIyBwcm9iYWJseSBz
aG91bGQgZGVmaW5lIHRob3NlIGV4dGVuc2lvbnMgdG8gaW5kaWNhdGUgbWVkaWEgdHlwZXM6CiAg
ICAjCiAgICBBZGRUeXBlIGFwcGxpY2F0aW9uL3gtY29tcHJlc3MgLloKICAgIEFkZFR5cGUgYXBw
bGljYXRpb24veC1nemlwIC5neiAudGd6CiAgICBBZGRUeXBlIGFwcGxpY2F0aW9uL3gtIGh0dHBk
LXBocCAucGhwCiAgICBBZGRUeXBlIGFwcGxpY2F0aW9uL3gtIGh0dHBkLXBocC1zb3VyY2UgLnBo
cHMKCiAgICAjCiAgICAjIEFkZEhhbmRsZXIgYWxsb3dzIHlvdSB0byBtYXAgY2VydGFpbiBmaWxl
IGV4dGVuc2lvbnMgdG8gImhhbmRsZXJzIjoKICAgICMgYWN0aW9ucyB1bnJlbGF0ZWQgdG8gZmls
ZXR5cGUuIFRoZXNlIGNhbiBiZSBlaXRoZXIgYnVpbHQgaW50byB0aGUgc2VydmVyCiAgICAjIG9y
IGFkZGVkIHdpdGggdGhlIEFjdGlvbiBkaXJlY3RpdmUgKHNlZSBiZWxvdykKICAgICMKICAgICMg
VG8gdXNlIENHSSBzY3JpcHRzIG91dHNpZGUgb2YgU2NyaXB0QWxpYXNlZCBkaXJlY3RvcmllczoK
ICAgICMgKFlvdSB3aWxsIGFsc28gbmVlZCB0byBhZGQgIkV4ZWNDR0kiIHRvIHRoZSAiT3B0aW9u
cyIgZGlyZWN0aXZlLikKICAgICMKICAgICNBZGRIYW5kbGVyIGNnaS1zY3JpcHQgLmNnaQoKICAg
ICMgRm9yIHR5cGUgbWFwcyAobmVnb3RpYXRlZCByZXNvdXJjZXMpOgogICAgI0FkZEhhbmRsZXIg
dHlwZS1tYXAgdmFyCgogICAgIwogICAgIyBGaWx0ZXJzIGFsbG93IHlvdSB0byBwcm9jZXNzIGNv
bnRlbnQgYmVmb3JlIGl0IGlzIHNlbnQgdG8gdGhlIGNsaWVudC4KICAgICMKICAgICMgVG8gcGFy
c2UgLnNodG1sIGZpbGVzIGZvciBzZXJ2ZXItc2lkZSBpbmNsdWRlcyAoU1NJKToKICAgICMgKFlv
dSB3aWxsIGFsc28gbmVlZCB0byBhZGQgIkluY2x1ZGVzIiB0byB0aGUgIk9wdGlvbnMiIGRpcmVj
dGl2ZS4pCiAgICAjCiAgICAjQWRkVHlwZSB0ZXh0L2h0bWwgLnNodG1sCiAgICAjQWRkT3V0cHV0
RmlsdGVyIElOQ0xVREVTIC5zaHRtbAo8L0lmTW9kdWxlPgoKIwojIFRoZSBtb2RfbWltZV9tYWdp
YyBtb2R1bGUgYWxsb3dzIHRoZSBzZXJ2ZXIgdG8gdXNlIHZhcmlvdXMgaGludHMgZnJvbSB0aGUK
IyBjb250ZW50cyBvZiB0aGUgZmlsZSBpdHNlbGYgdG8gZGV0ZXJtaW5lIGl0cyB0eXBlLiAgVGhl
IE1JTUVNYWdpY0ZpbGUKIyBkaXJlY3RpdmUgdGVsbHMgdGhlIG1vZHVsZSB3aGVyZSB0aGUgaGlu
dCBkZWZpbml0aW9ucyBhcmUgbG9jYXRlZC4KIwojTUlNRU1hZ2ljRmlsZSBldGMvYXBhY2hlMjIv
bWFnaWMKCiMKIyBDdXN0b21pemFibGUgZXJyb3IgcmVzcG9uc2VzIGNvbWUgaW4gdGhyZWUgZmxh
dm9yczoKIyAxKSBwbGFpbiB0ZXh0IDIpIGxvY2FsIHJlZGlyZWN0cyAzKSBleHRlcm5hbCByZWRp
cmVjdHMKIwojIFNvbWUgZXhhbXBsZXM6CiNFcnJvckRvY3VtZW50IDUwMCAiVGhlIHNlcnZlciBt
YWRlIGEgYm9vIGJvby4iCiNFcnJvckRvY3VtZW50IDQwNCAvbWlzc2luZy5odG1sCiNFcnJvckRv
Y3VtZW50IDQwNCAiL2NnaS1iaW4vbWlzc2luZ19oYW5kbGVyLnBsIgojRXJyb3JEb2N1bWVudCA0
MDIgaHR0cDovL3d3dy5leGFtcGxlLmNvbS9zdWJzY3JpcHRpb25faW5mby5odG1sCiMKCiMKIyBF
bmFibGVNTUFQIGFuZCBFbmFibGVTZW5kZmlsZTogT24gc3lzdGVtcyB0aGF0IHN1cHBvcnQgaXQs
IAojIG1lbW9yeS1tYXBwaW5nIG9yIHRoZSBzZW5kZmlsZSBzeXNjYWxsIGlzIHVzZWQgdG8gZGVs
aXZlcgojIGZpbGVzLiAgVGhpcyB1c3VhbGx5IGltcHJvdmVzIHNlcnZlciBwZXJmb3JtYW5jZSwg
YnV0IG11c3QKIyBiZSB0dXJuZWQgb2ZmIHdoZW4gc2VydmluZyBmcm9tIG5ldHdvcmtlZC1tb3Vu
dGVkIAojIGZpbGVzeXN0ZW1zIG9yIGlmIHN1cHBvcnQgZm9yIHRoZXNlIGZ1bmN0aW9ucyBpcyBv
dGhlcndpc2UKIyBicm9rZW4gb24geW91ciBzeXN0ZW0uCiMKI0VuYWJsZU1NQVAgb2ZmCiNFbmFi
bGVTZW5kZmlsZSBvZmYKCiMgU3VwcGxlbWVudGFsIGNvbmZpZ3VyYXRpb24KIwojIFRoZSBjb25m
aWd1cmF0aW9uIGZpbGVzIGluIHRoZSBldGMvYXBhY2hlMjIvZXh0cmEvIGRpcmVjdG9yeSBjYW4g
YmUgCiMgaW5jbHVkZWQgdG8gYWRkIGV4dHJhIGZlYXR1cmVzIG9yIHRvIG1vZGlmeSB0aGUgZGVm
YXVsdCBjb25maWd1cmF0aW9uIG9mIAojIHRoZSBzZXJ2ZXIsIG9yIHlvdSBtYXkgc2ltcGx5IGNv
cHkgdGhlaXIgY29udGVudHMgaGVyZSBhbmQgY2hhbmdlIGFzIAojIG5lY2Vzc2FyeS4KCiMgU2Vy
dmVyLXBvb2wgbWFuYWdlbWVudCAoTVBNIHNwZWNpZmljKQojSW5jbHVkZSBldGMvYXBhY2hlMjIv
ZXh0cmEvaHR0cGQtbXBtLmNvbmYKCiMgTXVsdGktbGFuZ3VhZ2UgZXJyb3IgbWVzc2FnZXMKI0lu
Y2x1ZGUgZXRjL2FwYWNoZTIyL2V4dHJhL2h0dHBkLW11bHRpbGFuZy1lcnJvcmRvYy5jb25mCgoj
IEZhbmN5IGRpcmVjdG9yeSBsaXN0aW5ncwpJbmNsdWRlIGV0Yy9hcGFjaGUyMi9leHRyYS9odHRw
ZC1hdXRvaW5kZXguY29uZgoKIyBMYW5ndWFnZSBzZXR0aW5ncwojSW5jbHVkZSBldGMvYXBhY2hl
MjIvZXh0cmEvaHR0cGQtbGFuZ3VhZ2VzLmNvbmYKCiMgVXNlciBob21lIGRpcmVjdG9yaWVzCklu
Y2x1ZGUgZXRjL2FwYWNoZTIyL2V4dHJhL2h0dHBkLXVzZXJkaXIuY29uZgoKIyBSZWFsLXRpbWUg
aW5mbyBvbiByZXF1ZXN0cyBhbmQgY29uZmlndXJhdGlvbgpJbmNsdWRlIGV0Yy9hcGFjaGUyMi9l
eHRyYS9odHRwZC1pbmZvLmNvbmYKCiMgVmlydHVhbCBob3N0cwpJbmNsdWRlIGV0Yy9hcGFjaGUy
Mi9leHRyYS9odHRwZC12aG9zdHMuY29uZgoKIyBMb2NhbCBhY2Nlc3MgdG8gdGhlIEFwYWNoZSBI
VFRQIFNlcnZlciBNYW51YWwKI0luY2x1ZGUgZXRjL2FwYWNoZTIyL2V4dHJhL2h0dHBkLW1hbnVh
bC5jb25mCgojIERpc3RyaWJ1dGVkIGF1dGhvcmluZyBhbmQgdmVyc2lvbmluZyAoV2ViREFWKQpJ
bmNsdWRlIGV0Yy9hcGFjaGUyMi9leHRyYS9odHRwZC1kYXYuY29uZgoKIyBWYXJpb3VzIGRlZmF1
bHQgc2V0dGluZ3MKI0luY2x1ZGUgZXRjL2FwYWNoZTIyL2V4dHJhL2h0dHBkLWRlZmF1bHQuY29u
ZgoKIyBTZWN1cmUgKFNTTC9UTFMpIGNvbm5lY3Rpb25zCiNJbmNsdWRlIGV0Yy9hcGFjaGUyMi9l
eHRyYS9odHRwZC1zc2wuY29uZgojCiMgTm90ZTogVGhlIGZvbGxvd2luZyBtdXN0IG11c3QgYmUg
cHJlc2VudCB0byBzdXBwb3J0CiMgICAgICAgc3RhcnRpbmcgd2l0aG91dCBTU0wgb24gcGxhdGZv
cm1zIHdpdGggbm8gL2Rldi9yYW5kb20gZXF1aXZhbGVudAojICAgICAgIGJ1dCBhIHN0YXRpY2Fs
bHkgY29tcGlsZWQtaW4gbW9kX3NzbC4KIwo8SWZNb2R1bGUgc3NsX21vZHVsZT4KU1NMUmFuZG9t
U2VlZCBzdGFydHVwIGJ1aWx0aW4KU1NMUmFuZG9tU2VlZCBjb25uZWN0IGJ1aWx0aW4KPC9JZk1v
ZHVsZT4KCkluY2x1ZGUgZXRjL2FwYWNoZTIyL0luY2x1ZGVzLyouY29uZgoKIyBhZGRlZCBWaXJ0
dWFsSG9zdCBpbmZvIGFuZCBkaXJlY3RvcmllcyB0byB2aG9zdHMuY29uZiBpbmNsdWRlIGZpbGUg
Ni82LzA2IC1KRAo=
------=_Part_63980_12306751.1149639442137
Content-Type: text/plain; name="httpd-vhosts.conf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="httpd-vhosts.conf"
X-Attachment-Id: f_eo4xnnpe

IwojIFZpcnR1YWwgSG9zdHMKIwojIElmIHlvdSB3YW50IHRvIG1haW50YWluIG11bHRpcGxlIGRv
bWFpbnMvaG9zdG5hbWVzIG9uIHlvdXIKIyBtYWNoaW5lIHlvdSBjYW4gc2V0dXAgVmlydHVhbEhv
c3QgY29udGFpbmVycyBmb3IgdGhlbS4gTW9zdCBjb25maWd1cmF0aW9ucwojIHVzZSBvbmx5IG5h
bWUtYmFzZWQgdmlydHVhbCBob3N0cyBzbyB0aGUgc2VydmVyIGRvZXNuJ3QgbmVlZCB0byB3b3Jy
eSBhYm91dAojIElQIGFkZHJlc3Nlcy4gVGhpcyBpcyBpbmRpY2F0ZWQgYnkgdGhlIGFzdGVyaXNr
cyBpbiB0aGUgZGlyZWN0aXZlcyBiZWxvdy4KIwojIFBsZWFzZSBzZWUgdGhlIGRvY3VtZW50YXRp
b24gYXQgCiMgPFVSTDpodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLzIuMi92aG9zdHMvPgoj
IGZvciBmdXJ0aGVyIGRldGFpbHMgYmVmb3JlIHlvdSB0cnkgdG8gc2V0dXAgdmlydHVhbCBob3N0
cy4KIwojIFlvdSBtYXkgdXNlIHRoZSBjb21tYW5kIGxpbmUgb3B0aW9uICctUycgdG8gdmVyaWZ5
IHlvdXIgdmlydHVhbCBob3N0CiMgY29uZmlndXJhdGlvbi4KCiMKIyBVc2UgbmFtZS1iYXNlZCB2
aXJ0dWFsIGhvc3RpbmcuCiMKTmFtZVZpcnR1YWxIb3N0ICo6ODAKCiMKIyBWaXJ0dWFsSG9zdCBl
eGFtcGxlOgojIEFsbW9zdCBhbnkgQXBhY2hlIGRpcmVjdGl2ZSBtYXkgZ28gaW50byBhIFZpcnR1
YWxIb3N0IGNvbnRhaW5lci4KIyBUaGUgZmlyc3QgVmlydHVhbEhvc3Qgc2VjdGlvbiBpcyB1c2Vk
IGZvciBhbGwgcmVxdWVzdHMgdGhhdCBkbyBub3QKIyBtYXRjaCBhIFNlcnZlck5hbWUgb3IgU2Vy
dmVyQWxpYXMgaW4gYW55IDxWaXJ0dWFsSG9zdD4gYmxvY2suCiMKIzxWaXJ0dWFsSG9zdCAqOjgw
PgojICAgIFNlcnZlckFkbWluIHdlYm1hc3RlckBkdW1teS1ob3N0LmV4YW1wbGUuY29tCiMgICAg
RG9jdW1lbnRSb290IC93d3cvZG9jcy9kdW1teS1ob3N0LmV4YW1wbGUuY29tCiMgICAgU2VydmVy
TmFtZSBkdW1teS1ob3N0LmV4YW1wbGUuY29tCiMgICAgU2VydmVyQWxpYXMgd3d3LmR1bW15LWhv
c3QuZXhhbXBsZS5jb20KIyAgICBFcnJvckxvZyAvdmFyL2xvZy9kdW1teS1ob3N0LmV4YW1wbGUu
Y29tLWVycm9yX2xvZwojICAgIEN1c3RvbUxvZyAvdmFyL2xvZy9kdW1teS1ob3N0LmV4YW1wbGUu
Y29tLWFjY2Vzc19sb2cgY29tbW9uCiM8L1ZpcnR1YWxIb3N0PgojCiM8VmlydHVhbEhvc3QgKjo4
MD4KIyAgICBTZXJ2ZXJBZG1pbiB3ZWJtYXN0ZXJAZHVtbXktaG9zdDIuZXhhbXBsZS5jb20KIyAg
ICBEb2N1bWVudFJvb3QgL3d3dy9kb2NzL2R1bW15LWhvc3QyLmV4YW1wbGUuY29tCiMgICAgU2Vy
dmVyTmFtZSBkdW1teS1ob3N0Mi5leGFtcGxlLmNvbQojICAgIEVycm9yTG9nIC92YXIvbG9nL2R1
bW15LWhvc3QyLmV4YW1wbGUuY29tLWVycm9yX2xvZwojICAgIEN1c3RvbUxvZyAvdmFyL2xvZy9k
dW1teS1ob3N0Mi5leGFtcGxlLmNvbS1hY2Nlc3NfbG9nIGNvbW1vbgojPC9WaXJ0dWFsSG9zdD4K
PFZpcnR1YWxIb3N0ICo6ODA+CkRvY3VtZW50Um9vdCAvdXNyL3d3dzIvdGhlY2hvY29sYXRlc2hh
Y2sKU2VydmVyTmFtZSB3d3cudGhlY2hvY29sYXRlc2hhY2suY29tClNlcnZlckFsaWFzIHRoZWNo
b2NvbGF0ZXNoYWNrLmNvbSAqLnRoZWNob2NvbGF0ZXNoYWNrLmNvbSB3d3cuY2hvY29sYXRlc2hh
Y2suY29tIGNob2NvbGF0ZXNoYWNrLmNvbSAqLmNob2NvbGF0ZXNoYWNrLmNvbQpFcnJvckxvZyAv
dmFyL2xvZy9odHRwZC10aGVjaG9jb2xhdGVzaGFjay5jb20tZXJyb3IubG9nCkN1c3RvbUxvZyAv
dmFyL2xvZy9odHRwZC10aGVjaG9jb2xhdGVzaGFjay5jb20tYWNjZXNzLmxvZyBjb21iaW5lZAo8
L1ZpcnR1YWxIb3N0PgoKPFZpcnR1YWxIb3N0ICo6ODA+CkRvY3VtZW50Um9vdCAvdXNyL3d3dwpT
ZXJ2ZXJOYW1lIHd3dy50aGVkZXN0ZWZhbm9zLmNvbQpTZXJ2ZXJBbGlhcyB0aGVkZXN0ZWZhbm9z
LmNvbSAqLnRoZWRlc3RlZmFub3MuY29tCkVycm9yTG9nIC92YXIvbG9nL2h0dHBkLXRoZWRlc3Rl
ZmFub3MuY29tLWVycm9yLmxvZwpDdXN0b21Mb2cgL3Zhci9sb2cvaHR0cGQtdGhlZGVzdGVmYW5v
cy5jb20tYWNjZXNzLmxvZyBjb21iaW5lZAo8L1ZpcnR1YWxIb3N0PgoKIzxWaXJ0dWFsSG9zdCAq
OjgwPgojRG9jdW1lbnRSb290IC91c3Ivd3d3Mi90aGVjaG9jb2xhdGVzaGFjawojU2VydmVyTmFt
ZSB3d3cuY2hvY29sYXRlc2hhY2suY29tCiNTZXJ2ZXJBbGlhcyBjaG9jb2xhdGVzaGFjay5jb20g
Ki5jaG9jb2xhdGVzaGFjay5jb20KI0Vycm9yTG9nIC92YXIvbG9nL2h0dHBkLWNob2NvbGF0ZXNo
YWNrLmNvbS1lcnJvci5sb2cKI0N1c3RvbUxvZyAvdmFyL2xvZy9odHRwZC1jaG9jb2xhdGVzaGFj
ay5jb20tYWNjZXNzLmxvZyBjb21iaW5lZAojPC9WaXJ0dWFsSG9zdD4K
------=_Part_63980_12306751.1149639442137--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f2160e0d0606061717k721f5039le246e1fd75acf1f8>